publish stout firmware

This is a snapshot from:
	https://chrome-internal.googlesource.com/chromeos/third_party/coreboot
at git sha1:
	47aa7e8f5abcc1e70364f6b5215c7c9e1d659d21

All files in the 3rdparty/ subdir have been stripped.

BUG=None
TEST=compiled internal repo & public repo and compared disassembled files

Change-Id: Ie12f043ebb604bee71a0a4ad9bf640b77c62eff4
Reviewed-on: https://chromium-review.googlesource.com/194426
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/.gitignore b/.gitignore
index 8e259c7..0afef54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,7 +34,6 @@
 *.out
 *.\#
 *.swp
-*.bin
 util/ectool/ectool
 util/inteltool/.dependencies
 util/inteltool/inteltool
diff --git a/3rdparty b/3rdparty
deleted file mode 160000
index 1925339..0000000
--- a/3rdparty
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1925339dfbb8dd2fae439f8d07deddfc33a3de45
diff --git a/Makefile.inc b/Makefile.inc
index 176ff67..7a6f028 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -19,7 +19,7 @@
 
 #######################################################################
 # misleadingly named, this is the coreboot version
-export KERNELVERSION := $(shell if [ -d "$(top)/.git" -a -f "`which git`" ]; then git describe --dirty; else echo unknown; fi)
+export KERNELVERSION := $(shell if [ -d "$(top)/.git" -a -f "`which git`" ]; then git describe --dirty; else echo 4.0$(KERNELREVISION); fi)
 
 #######################################################################
 # Basic component discovery
@@ -30,7 +30,7 @@
 ## Final build results, which CBFSTOOL uses to create the final
 ## rom image file, are placed under $(objcbfs).
 ## These typically have suffixes .debug .elf .bin and .map
-export objcbfs := $(obj)/cbfs/$(CONFIG_CBFS_PREFIX)
+export objcbfs := $(obj)/cbfs/$(call strip_quotes,$(CONFIG_CBFS_PREFIX))
 
 ## Based on the active configuration, Makefile conditionally collects
 ## the required assembly includes and saves them in a file.
@@ -67,6 +67,9 @@
 ramstage-c-ccopts:= -finstrument-functions
 endif
 
+ifneq ($(CONFIG_CHROMEOS),y)
+# In the ChromeOS build system we keep the 3rdparty binaries in the same
+# repository.
 ifeq ($(CONFIG_USE_BLOBS),y)
 forgetthis:=$(shell git submodule update --init --checkout 3rdparty)
 else
@@ -74,6 +77,7 @@
 $(error Your current configuration requires binary-only components, but you did not choose to use them)
 endif
 endif
+endif
 
 smm-c-ccopts:=-D__SMM__
 smm-S-ccopts:=-D__SMM__
@@ -178,6 +182,10 @@
 	printf "#define COREBOOT_VERSION \"$(KERNELVERSION)\"\n" >> $(obj)/build.ht
 	printf "#define COREBOOT_EXTRA_VERSION \"$(COREBOOT_EXTRA_VERSION)\"\n" >> $(obj)/build.ht
 	printf "#define COREBOOT_BUILD \"`LANG= date`\"\n" >> $(obj)/build.ht
+	printf "#define COREBOOT_BUILD_YEAR `LANG= date +"%-y"`\n" >> $(obj)/build.ht
+	printf "#define COREBOOT_BUILD_MONTH `LANG= date +"%-m"` \n" >> $(obj)/build.ht
+	printf "#define COREBOOT_BUILD_DAY `LANG= date +"%-d"`\n" >> $(obj)/build.ht
+	printf "#define COREBOOT_BUILD_WEEKDAY `LANG= date +"%-u"`\n" >> $(obj)/build.ht
 	printf "#define COREBOOT_DMI_DATE \"`LANG= date +"%m/%d/%Y"`\"\n" >> $(obj)/build.ht
 	printf "\n" >> $(obj)/build.ht
 	printf "#define COREBOOT_COMPILER \"$(shell LANG= $(CC) --version | head -n1)\"\n" >> $(obj)/build.ht
@@ -228,6 +236,7 @@
 	$(objutil)/sconfig/sconfig $(MAINBOARDDIR) $(obj)/mainboard/$(MAINBOARDDIR)
 
 ramstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
+romstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
 
 $(objutil)/%.o: $(objutil)/%.c
 	@printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
@@ -237,6 +246,10 @@
 	@printf "    CC         $(subst $(obj)/,,$(@))\n"
 	$(CC) -MMD $(CFLAGS) -c -o $@ $<
 
+$(obj)/%.romstage.o $(abspath $(obj))/%.romstage.o: $(obj)/%.c $(obj)/config.h $(OPTION_TABLE_H)
+	@printf "    CC         $(subst $(obj)/,,$(@))\n"
+	$(CC) -MMD -D__PRE_RAM__ $(CFLAGS) -c -o $@ $<
+
 #######################################################################
 # Clean up rules
 clean-abuild:
diff --git a/PRESUBMIT.cfg b/PRESUBMIT.cfg
new file mode 100644
index 0000000..b9a7fca
--- /dev/null
+++ b/PRESUBMIT.cfg
@@ -0,0 +1,10 @@
+# This config file disables some of the ChromiumOS source style checks for
+# coreboot as they are directly conflicting with the coreboot coding
+# guidelines.
+
+[Hook Overrides]
+#stray_whitespace_check: false
+#long_line_check: false
+cros_license_check: false
+tab_check: false
+
diff --git a/configs/config.butterfly b/configs/config.butterfly
new file mode 100644
index 0000000..dd2ba81
--- /dev/null
+++ b/configs/config.butterfly
@@ -0,0 +1,403 @@
+#
+# Automatically generated make config: don't edit
+# coreboot version: 
+# Wed Oct 31 10:21:21 2012
+#
+
+#
+# General setup
+#
+CONFIG_EXPERT=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_COMPILER_LLVM_CLANG is not set
+# CONFIG_SCANBUILD_ENABLE is not set
+# CONFIG_CCACHE is not set
+# CONFIG_SCONFIG_GENPARSER is not set
+# CONFIG_USE_OPTION_TABLE is not set
+CONFIG_COMPRESS_RAMSTAGE=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+CONFIG_EARLY_CBMEM_INIT=y
+CONFIG_COLLECT_TIMESTAMPS=y
+CONFIG_USE_BLOBS=y
+CONFIG_REQUIRES_BLOB=y
+
+#
+# Mainboard
+#
+# CONFIG_VENDOR_AAEON is not set
+# CONFIG_VENDOR_ABIT is not set
+# CONFIG_VENDOR_ADVANSUS is not set
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_ARIMA is not set
+# CONFIG_VENDOR_ARTECGROUP is not set
+# CONFIG_VENDOR_ASI is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_A_TREND is not set
+# CONFIG_VENDOR_AVALUE is not set
+# CONFIG_VENDOR_AXUS is not set
+# CONFIG_VENDOR_AZZA is not set
+# CONFIG_VENDOR_BCOM is not set
+# CONFIG_VENDOR_BIFFEROS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BROADCOM is not set
+# CONFIG_VENDOR_COMPAL is not set
+# CONFIG_VENDOR_COMPAQ is not set
+# CONFIG_VENDOR_DIGITALLOGIC is not set
+# CONFIG_VENDOR_EAGLELION is not set
+# CONFIG_VENDOR_ECS is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+CONFIG_VENDOR_GOOGLE=y
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_IEI is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_IWAVE is not set
+# CONFIG_VENDOR_IWILL is not set
+# CONFIG_VENDOR_JETWAY is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LANNER is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIPPERT is not set
+# CONFIG_VENDOR_MITAC is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_NEC is not set
+# CONFIG_VENDOR_NEWISYS is not set
+# CONFIG_VENDOR_NOKIA is not set
+# CONFIG_VENDOR_NVIDIA is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_RCA is not set
+# CONFIG_VENDOR_RODA is not set
+# CONFIG_VENDOR_SAMSUNG is not set
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SOYO is not set
+# CONFIG_VENDOR_SUNW is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_TECHNEXION is not set
+# CONFIG_VENDOR_TECHNOLOGIC is not set
+# CONFIG_VENDOR_TELEVIDEO is not set
+# CONFIG_VENDOR_THOMSON is not set
+# CONFIG_VENDOR_TRAVERSE is not set
+# CONFIG_VENDOR_TYAN is not set
+# CONFIG_VENDOR_VIA is not set
+# CONFIG_VENDOR_WINENT is not set
+# CONFIG_VENDOR_WYSE is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_DIR="google/butterfly"
+CONFIG_MAINBOARD_PART_NUMBER="Butterfly"
+CONFIG_IRQ_SLOT_COUNT=18
+CONFIG_MAINBOARD_VENDOR="GOOGLE"
+CONFIG_MAX_CPUS=8
+CONFIG_RAMTOP=0x200000
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_RAMBASE=0x100000
+CONFIG_VGA_BIOS_ID="8086,0106"
+CONFIG_STACK_SIZE=0x8000
+CONFIG_ACPI_SSDTX_NUM=0
+CONFIG_DRIVERS_PS2_KEYBOARD=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
+CONFIG_VGA_BIOS=y
+# CONFIG_CONSOLE_POST is not set
+# CONFIG_PCI_ROM_RUN is not set
+# CONFIG_UDELAY_IO is not set
+CONFIG_DCACHE_RAM_BASE=0xff7e0000
+CONFIG_DCACHE_RAM_SIZE=0x20000
+CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE=0x0
+# CONFIG_SERIAL_CPU_INIT is not set
+CONFIG_VGA_BIOS_FILE="3rdparty/mainboard/google/butterfly/snm_2130_coreboot.bin"
+CONFIG_BOARD_HAS_FADT=y
+CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID=0x1ae0
+CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID=0xc000
+# CONFIG_PCI_64BIT_PREF_MEM is not set
+CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
+CONFIG_BOARD_GOOGLE_BUTTERFLY=y
+# CONFIG_BOARD_GOOGLE_PARROT is not set
+# CONFIG_BOARD_GOOGLE_LINK is not set
+# CONFIG_BOARD_GOOGLE_STOUT is not set
+CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/bd82x6x/bootblock.c"
+# CONFIG_MMCONF_SUPPORT_DEFAULT is not set
+# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
+# CONFIG_GENERATE_PIRQ_TABLE is not set
+CONFIG_LOGICAL_CPUS=y
+CONFIG_IOAPIC=y
+CONFIG_SMP=y
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL=8
+# CONFIG_CONSOLE_SERIAL8250 is not set
+# CONFIG_USBDEBUG is not set
+CONFIG_VAR_MTRR_HOLE=y
+# CONFIG_LIFT_BSP_APIC_ID is not set
+# CONFIG_WAIT_BEFORE_CPUS_INIT is not set
+# CONFIG_K8_REV_F_SUPPORT is not set
+CONFIG_BOARD_ROMSIZE_KB_1024=y
+# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_1024=y
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=1024
+CONFIG_ROM_SIZE=0x100000
+CONFIG_CACHE_ROM_SIZE=0x100000
+CONFIG_ARCH_X86=y
+
+#
+# Architecture (x86)
+#
+# CONFIG_AP_IN_SIPI_WAIT is not set
+# CONFIG_SIPI_VECTOR_IN_ROM is not set
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_X86_BOOTBLOCK_SIMPLE=y
+# CONFIG_X86_BOOTBLOCK_NORMAL is not set
+CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_ROMCC is not set
+CONFIG_PC80_SYSTEM=y
+# CONFIG_HAVE_CMOS_DEFAULT is not set
+CONFIG_HAVE_ARCH_MEMSET=y
+CONFIG_HAVE_ARCH_MEMCPY=y
+# CONFIG_BIG_ENDIAN is not set
+CONFIG_LITTLE_ENDIAN=y
+CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
+# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
+# CONFIG_PCI_CONF2 is not set
+
+#
+# Chipset
+#
+
+#
+# CPU
+#
+CONFIG_SOCKET_SPECIFIC_OPTIONS=y
+CONFIG_CPU_ADDR_BITS=36
+CONFIG_XIP_ROM_SIZE=0x10000
+CONFIG_CPU_SPECIFIC_OPTIONS=y
+# CONFIG_CPU_AMD_AGESA is not set
+CONFIG_HAVE_INIT_TIMER=y
+CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
+CONFIG_CPU_INTEL_MODEL_306AX=y
+CONFIG_BOOTBLOCK_CPU_INIT="cpu/intel/model_206ax/bootblock.c"
+CONFIG_SMM_TSEG_SIZE=0x800000
+# CONFIG_ENABLE_VMX is not set
+CONFIG_MICROCODE_INCLUDE_PATH="src/cpu/intel/model_206ax"
+CONFIG_SSE2=y
+CONFIG_CPU_INTEL_SOCKET_RPGA989=y
+CONFIG_CACHE_MRC_BIN=y
+CONFIG_UDELAY_LAPIC=y
+# CONFIG_UDELAY_TSC is not set
+# CONFIG_UDELAY_TIMER2 is not set
+# CONFIG_TSC_CALIBRATE_WITH_IO is not set
+# CONFIG_TSC_SYNC_LFENCE is not set
+CONFIG_TSC_SYNC_MFENCE=y
+CONFIG_CACHE_ROM=y
+CONFIG_SMM_TSEG=y
+CONFIG_CACHE_AS_RAM=y
+CONFIG_AP_SIPI_VECTOR=0xfffff000
+CONFIG_MMX=y
+CONFIG_SSE=y
+CONFIG_MICROCODE_IN_CBFS=y
+
+#
+# Northbridge
+#
+CONFIG_VIDEO_MB=0
+# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
+# CONFIG_S3_VGA_ROM_RUN is not set
+# CONFIG_AMD_NB_CIMX is not set
+# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
+CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE=y
+CONFIG_CACHE_MRC_SIZE_KB=512
+CONFIG_MRC_CACHE_BASE=0xff800000
+CONFIG_EXTERNAL_MRC_BLOB=y
+CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x4000
+CONFIG_HAVE_MRC=y
+CONFIG_MRC_FILE="/build/butterfly/firmware/mrc.bin"
+
+#
+# Southbridge
+#
+CONFIG_EHCI_BAR=0xfef00000
+CONFIG_EHCI_DEBUG_OFFSET=0xa0
+# CONFIG_AMD_SB_CIMX is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set
+CONFIG_SOUTHBRIDGE_INTEL_C216=y
+CONFIG_SOUTH_BRIDGE_OPTIONS=y
+CONFIG_SERIRQ_CONTINUOUS_MODE=y
+
+#
+# Super I/O
+#
+
+#
+# Devices
+#
+CONFIG_VGA_BRIDGE_SETUP=y
+CONFIG_VGA_ROM_RUN=y
+# CONFIG_ON_DEVICE_ROM_RUN is not set
+CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y
+# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
+# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
+CONFIG_PCIX_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_PLUGIN_SUPPORT=y
+CONFIG_AGP_PLUGIN_SUPPORT=y
+CONFIG_CARDBUS_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_COMMON_CLOCK=y
+CONFIG_PCIEXP_ASPM=y
+
+#
+# Embedded Controllers
+#
+CONFIG_EC_QUANTA_ENE_KB3940Q=y
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVERS_OXFORD_OXPCIE is not set
+# CONFIG_DRIVERS_SIL_3114 is not set
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_SMM=y
+CONFIG_SPI_FLASH_EON=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_NO_FAST_READ=y
+# CONFIG_ELOG is not set
+CONFIG_PCI_BUS_SEGN_BITS=0
+CONFIG_MMCONF_SUPPORT=y
+
+#
+# Console
+#
+CONFIG_HAVE_USBDEBUG=y
+# CONFIG_CONSOLE_NE2K is not set
+CONFIG_CONSOLE_CBMEM=y
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x10000
+CONFIG_CONSOLE_CAR_BUFFER_SIZE=0xc00
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_8=y
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+# CONFIG_CONSOLE_LOGBUF is not set
+# CONFIG_NO_POST is not set
+CONFIG_POST_PORT=0x80
+CONFIG_CMOS_POST=y
+CONFIG_CMOS_POST_OFFSET=0x70
+CONFIG_HAVE_UART_IO_MAPPED=y
+# CONFIG_HAVE_UART_MEMORY_MAPPED is not set
+CONFIG_HAVE_ACPI_RESUME=y
+# CONFIG_HAVE_ACPI_SLIC is not set
+CONFIG_HAVE_HARD_RESET=y
+CONFIG_HAVE_MAINBOARD_RESOURCES=y
+CONFIG_HAVE_OPTION_TABLE=y
+# CONFIG_PIRQ_ROUTE is not set
+CONFIG_HAVE_SMI_HANDLER=y
+# CONFIG_PCI_IO_CFG_EXT is not set
+CONFIG_TPM=y
+CONFIG_USE_WATCHDOG_ON_BOOT=y
+# CONFIG_VGA is not set
+CONFIG_GFXUMA=y
+CONFIG_HAVE_ACPI_TABLES=y
+CONFIG_GENERATE_ACPI_TABLES=y
+# CONFIG_GENERATE_MP_TABLE is not set
+CONFIG_GENERATE_SMBIOS_TABLES=y
+
+#
+# System tables
+#
+CONFIG_WRITE_HIGH_TABLES=y
+# CONFIG_MULTIBOOT is not set
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# CONFIG_PAYLOAD_ELF is not set
+# CONFIG_PAYLOAD_SEABIOS is not set
+# CONFIG_PAYLOAD_FILO is not set
+# CONFIG_COMPRESSED_PAYLOAD_NRV2B is not set
+
+#
+# VGA BIOS
+#
+
+#
+# Display
+#
+CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
+CONFIG_FRAMEBUFFER_VESA_MODE=0x117
+CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y
+# CONFIG_BOOTSPLASH is not set
+
+#
+# Debugging
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_HAVE_DEBUG_RAM_SETUP is not set
+# CONFIG_HAVE_DEBUG_CAR is not set
+# CONFIG_HAVE_DEBUG_SMBUS is not set
+# CONFIG_DEBUG_SMI is not set
+# CONFIG_DEBUG_SMM_RELOCATION is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_ACPI is not set
+# CONFIG_REALMODE_DEBUG is not set
+# CONFIG_DEBUG_TPM is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_LLSHELL is not set
+# CONFIG_TRACE is not set
+# CONFIG_AP_CODE_IN_CAR is not set
+# CONFIG_RAMINIT_SYSINFO is not set
+# CONFIG_ENABLE_APIC_EXT_ID is not set
+# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
+# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
+# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
+# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
+
+#
+# Deprecated
+#
+# CONFIG_BOARD_HAS_HARD_RESET is not set
+# CONFIG_HAVE_BUS_CONFIG is not set
+# CONFIG_PCIE_TUNING is not set
+CONFIG_ID_SECTION_OFFSET=0x80
+CONFIG_CHROMEOS=y
+
+#
+# ChromeOS
+#
+CONFIG_VBNV_OFFSET=0x26
+CONFIG_VBNV_SIZE=0x10
+CONFIG_CHROMEOS_RAMOOPS=y
+CONFIG_CHROMEOS_RAMOOPS_RAM_START=0x00f00000
+CONFIG_CHROMEOS_RAMOOPS_RAM_SIZE=0x00100000
+CONFIG_FLASHMAP_OFFSET=0x00610000
diff --git a/configs/config.emeraldlake2 b/configs/config.emeraldlake2
new file mode 100644
index 0000000..c15d26b
--- /dev/null
+++ b/configs/config.emeraldlake2
@@ -0,0 +1,395 @@
+#
+# Automatically generated make config: don't edit
+# coreboot version: 
+# Wed Oct 31 10:21:21 2012
+#
+
+#
+# General setup
+#
+CONFIG_EXPERT=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_COMPILER_LLVM_CLANG is not set
+# CONFIG_SCANBUILD_ENABLE is not set
+# CONFIG_CCACHE is not set
+# CONFIG_SCONFIG_GENPARSER is not set
+# CONFIG_USE_OPTION_TABLE is not set
+CONFIG_COMPRESS_RAMSTAGE=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+CONFIG_EARLY_CBMEM_INIT=y
+CONFIG_COLLECT_TIMESTAMPS=y
+CONFIG_USE_BLOBS=y
+CONFIG_REQUIRES_BLOB=y
+
+#
+# Mainboard
+#
+# CONFIG_VENDOR_AAEON is not set
+# CONFIG_VENDOR_ABIT is not set
+# CONFIG_VENDOR_ADVANSUS is not set
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_ARIMA is not set
+# CONFIG_VENDOR_ARTECGROUP is not set
+# CONFIG_VENDOR_ASI is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_A_TREND is not set
+# CONFIG_VENDOR_AVALUE is not set
+# CONFIG_VENDOR_AXUS is not set
+# CONFIG_VENDOR_AZZA is not set
+# CONFIG_VENDOR_BCOM is not set
+# CONFIG_VENDOR_BIFFEROS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BROADCOM is not set
+# CONFIG_VENDOR_COMPAL is not set
+# CONFIG_VENDOR_COMPAQ is not set
+# CONFIG_VENDOR_DIGITALLOGIC is not set
+# CONFIG_VENDOR_EAGLELION is not set
+# CONFIG_VENDOR_ECS is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+# CONFIG_VENDOR_GOOGLE is not set
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_IEI is not set
+CONFIG_VENDOR_INTEL=y
+# CONFIG_VENDOR_IWAVE is not set
+# CONFIG_VENDOR_IWILL is not set
+# CONFIG_VENDOR_JETWAY is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LANNER is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIPPERT is not set
+# CONFIG_VENDOR_MITAC is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_NEC is not set
+# CONFIG_VENDOR_NEWISYS is not set
+# CONFIG_VENDOR_NOKIA is not set
+# CONFIG_VENDOR_NVIDIA is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_RCA is not set
+# CONFIG_VENDOR_RODA is not set
+# CONFIG_VENDOR_SAMSUNG is not set
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SOYO is not set
+# CONFIG_VENDOR_SUNW is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_TECHNEXION is not set
+# CONFIG_VENDOR_TECHNOLOGIC is not set
+# CONFIG_VENDOR_TELEVIDEO is not set
+# CONFIG_VENDOR_THOMSON is not set
+# CONFIG_VENDOR_TRAVERSE is not set
+# CONFIG_VENDOR_TYAN is not set
+# CONFIG_VENDOR_VIA is not set
+# CONFIG_VENDOR_WINENT is not set
+# CONFIG_VENDOR_WYSE is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_DIR="intel/emeraldlake2"
+CONFIG_MAINBOARD_PART_NUMBER="EMERALD LAKE 2"
+CONFIG_IRQ_SLOT_COUNT=18
+CONFIG_MAINBOARD_VENDOR="Intel"
+CONFIG_MAX_CPUS=16
+CONFIG_RAMTOP=0x200000
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_RAMBASE=0x100000
+CONFIG_VGA_BIOS_ID="8086,0166"
+CONFIG_STACK_SIZE=0x8000
+CONFIG_ACPI_SSDTX_NUM=0
+CONFIG_DRIVERS_PS2_KEYBOARD=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
+CONFIG_VGA_BIOS=y
+# CONFIG_CONSOLE_POST is not set
+# CONFIG_PCI_ROM_RUN is not set
+# CONFIG_UDELAY_IO is not set
+CONFIG_DCACHE_RAM_BASE=0xff7e0000
+CONFIG_DCACHE_RAM_SIZE=0x20000
+CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE=0x0
+# CONFIG_SERIAL_CPU_INIT is not set
+CONFIG_VGA_BIOS_FILE="3rdparty/mainboard/intel/emeraldlake2/snm_2120.dat"
+CONFIG_BOARD_HAS_FADT=y
+# CONFIG_PCI_64BIT_PREF_MEM is not set
+CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
+CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/bd82x6x/bootblock.c"
+# CONFIG_MMCONF_SUPPORT_DEFAULT is not set
+# CONFIG_BOARD_INTEL_D810E2CB is not set
+# CONFIG_BOARD_INTEL_D945GCLF is not set
+# CONFIG_BOARD_INTEL_EAGLEHEIGHTS is not set
+CONFIG_BOARD_INTEL_EMERALDLAKE2=y
+# CONFIG_BOARD_INTEL_JARRELL is not set
+# CONFIG_BOARD_INTEL_MTARVON is not set
+# CONFIG_BOARD_INTEL_TRUXTON is not set
+# CONFIG_BOARD_INTEL_XE7501DEVKIT is not set
+# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
+# CONFIG_GENERATE_PIRQ_TABLE is not set
+CONFIG_LOGICAL_CPUS=y
+CONFIG_IOAPIC=y
+CONFIG_SMP=y
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL=8
+# CONFIG_CONSOLE_SERIAL8250 is not set
+# CONFIG_USBDEBUG is not set
+CONFIG_VAR_MTRR_HOLE=y
+# CONFIG_LIFT_BSP_APIC_ID is not set
+# CONFIG_WAIT_BEFORE_CPUS_INIT is not set
+# CONFIG_K8_REV_F_SUPPORT is not set
+CONFIG_BOARD_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_1024=y
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=1024
+CONFIG_ROM_SIZE=0x100000
+CONFIG_CACHE_ROM_SIZE=0x100000
+CONFIG_ARCH_X86=y
+
+#
+# Architecture (x86)
+#
+# CONFIG_AP_IN_SIPI_WAIT is not set
+# CONFIG_SIPI_VECTOR_IN_ROM is not set
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_X86_BOOTBLOCK_SIMPLE=y
+# CONFIG_X86_BOOTBLOCK_NORMAL is not set
+CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_ROMCC is not set
+CONFIG_PC80_SYSTEM=y
+# CONFIG_HAVE_CMOS_DEFAULT is not set
+CONFIG_HAVE_ARCH_MEMSET=y
+CONFIG_HAVE_ARCH_MEMCPY=y
+# CONFIG_BIG_ENDIAN is not set
+CONFIG_LITTLE_ENDIAN=y
+CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
+# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
+# CONFIG_PCI_CONF2 is not set
+
+#
+# Chipset
+#
+
+#
+# CPU
+#
+CONFIG_SOCKET_SPECIFIC_OPTIONS=y
+CONFIG_CPU_ADDR_BITS=36
+CONFIG_XIP_ROM_SIZE=0x10000
+CONFIG_CPU_SPECIFIC_OPTIONS=y
+# CONFIG_CPU_AMD_AGESA is not set
+CONFIG_HAVE_INIT_TIMER=y
+CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
+CONFIG_CPU_INTEL_MODEL_306AX=y
+CONFIG_BOOTBLOCK_CPU_INIT="cpu/intel/model_206ax/bootblock.c"
+CONFIG_SMM_TSEG_SIZE=0x800000
+# CONFIG_ENABLE_VMX is not set
+CONFIG_MICROCODE_INCLUDE_PATH="src/cpu/intel/model_206ax"
+CONFIG_SSE2=y
+CONFIG_CPU_INTEL_SOCKET_RPGA989=y
+CONFIG_CACHE_MRC_BIN=y
+CONFIG_UDELAY_LAPIC=y
+# CONFIG_UDELAY_TSC is not set
+# CONFIG_UDELAY_TIMER2 is not set
+# CONFIG_TSC_CALIBRATE_WITH_IO is not set
+# CONFIG_TSC_SYNC_LFENCE is not set
+CONFIG_TSC_SYNC_MFENCE=y
+# CONFIG_CACHE_ROM is not set
+CONFIG_SMM_TSEG=y
+CONFIG_CACHE_AS_RAM=y
+CONFIG_AP_SIPI_VECTOR=0xfffff000
+CONFIG_MMX=y
+CONFIG_SSE=y
+CONFIG_MICROCODE_IN_CBFS=y
+
+#
+# Northbridge
+#
+CONFIG_VIDEO_MB=0
+# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
+# CONFIG_S3_VGA_ROM_RUN is not set
+# CONFIG_AMD_NB_CIMX is not set
+# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
+CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE=y
+CONFIG_CACHE_MRC_SIZE_KB=512
+CONFIG_MRC_CACHE_BASE=0xff800000
+CONFIG_MRC_CACHE_LOCATION=0x370000
+CONFIG_MRC_CACHE_SIZE=0x10000
+CONFIG_EXTERNAL_MRC_BLOB=y
+CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x4000
+CONFIG_HAVE_MRC=y
+CONFIG_MRC_FILE="/build/emeraldlake2/firmware/mrc.bin"
+
+#
+# Southbridge
+#
+CONFIG_EHCI_BAR=0xfef00000
+CONFIG_EHCI_DEBUG_OFFSET=0xa0
+# CONFIG_AMD_SB_CIMX is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set
+CONFIG_SOUTHBRIDGE_INTEL_C216=y
+CONFIG_SOUTH_BRIDGE_OPTIONS=y
+# CONFIG_SERIRQ_CONTINUOUS_MODE is not set
+
+#
+# Super I/O
+#
+CONFIG_SUPERIO_SMSC_SIO1007=y
+
+#
+# Devices
+#
+CONFIG_VGA_BRIDGE_SETUP=y
+CONFIG_VGA_ROM_RUN=y
+# CONFIG_ON_DEVICE_ROM_RUN is not set
+CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y
+# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
+# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
+CONFIG_PCIX_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_PLUGIN_SUPPORT=y
+CONFIG_AGP_PLUGIN_SUPPORT=y
+CONFIG_CARDBUS_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_COMMON_CLOCK=y
+CONFIG_PCIEXP_ASPM=y
+
+#
+# Embedded Controllers
+#
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVERS_OXFORD_OXPCIE is not set
+# CONFIG_DRIVERS_SIL_3114 is not set
+CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_SMM is not set
+CONFIG_SPI_FLASH_EON=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_NO_FAST_READ=y
+# CONFIG_ELOG is not set
+CONFIG_PCI_BUS_SEGN_BITS=0
+CONFIG_MMCONF_SUPPORT=y
+
+#
+# Console
+#
+CONFIG_HAVE_USBDEBUG=y
+# CONFIG_CONSOLE_NE2K is not set
+CONFIG_CONSOLE_CBMEM=y
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x10000
+CONFIG_CONSOLE_CAR_BUFFER_SIZE=0xc00
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_8=y
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+# CONFIG_CONSOLE_LOGBUF is not set
+# CONFIG_NO_POST is not set
+CONFIG_POST_PORT=0x80
+CONFIG_CMOS_POST=y
+CONFIG_CMOS_POST_OFFSET=0x70
+CONFIG_HAVE_UART_IO_MAPPED=y
+# CONFIG_HAVE_UART_MEMORY_MAPPED is not set
+CONFIG_HAVE_ACPI_RESUME=y
+# CONFIG_HAVE_ACPI_SLIC is not set
+CONFIG_HAVE_HARD_RESET=y
+CONFIG_HAVE_MAINBOARD_RESOURCES=y
+CONFIG_HAVE_OPTION_TABLE=y
+# CONFIG_PIRQ_ROUTE is not set
+CONFIG_HAVE_SMI_HANDLER=y
+# CONFIG_PCI_IO_CFG_EXT is not set
+# CONFIG_TPM is not set
+CONFIG_USE_WATCHDOG_ON_BOOT=y
+# CONFIG_VGA is not set
+CONFIG_GFXUMA=y
+CONFIG_HAVE_ACPI_TABLES=y
+CONFIG_GENERATE_ACPI_TABLES=y
+# CONFIG_GENERATE_MP_TABLE is not set
+CONFIG_GENERATE_SMBIOS_TABLES=y
+
+#
+# System tables
+#
+CONFIG_WRITE_HIGH_TABLES=y
+# CONFIG_MULTIBOOT is not set
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# CONFIG_PAYLOAD_ELF is not set
+# CONFIG_PAYLOAD_SEABIOS is not set
+# CONFIG_PAYLOAD_FILO is not set
+# CONFIG_COMPRESSED_PAYLOAD_NRV2B is not set
+
+#
+# VGA BIOS
+#
+
+#
+# Display
+#
+CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
+CONFIG_FRAMEBUFFER_VESA_MODE=0x114
+CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y
+# CONFIG_BOOTSPLASH is not set
+
+#
+# Debugging
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_HAVE_DEBUG_RAM_SETUP is not set
+# CONFIG_HAVE_DEBUG_CAR is not set
+# CONFIG_HAVE_DEBUG_SMBUS is not set
+# CONFIG_DEBUG_SMI is not set
+# CONFIG_DEBUG_SMM_RELOCATION is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_ACPI is not set
+# CONFIG_REALMODE_DEBUG is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_LLSHELL is not set
+# CONFIG_TRACE is not set
+# CONFIG_AP_CODE_IN_CAR is not set
+# CONFIG_RAMINIT_SYSINFO is not set
+# CONFIG_ENABLE_APIC_EXT_ID is not set
+# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
+# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
+# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
+# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
+
+#
+# Deprecated
+#
+# CONFIG_BOARD_HAS_HARD_RESET is not set
+# CONFIG_HAVE_BUS_CONFIG is not set
+# CONFIG_PCIE_TUNING is not set
+CONFIG_ID_SECTION_OFFSET=0x80
+# CONFIG_CHROMEOS is not set
diff --git a/configs/config.link b/configs/config.link
new file mode 100644
index 0000000..378a93a
--- /dev/null
+++ b/configs/config.link
@@ -0,0 +1,411 @@
+#
+# Automatically generated make config: don't edit
+# coreboot version: 
+# Wed Oct 31 10:21:23 2012
+#
+
+#
+# General setup
+#
+CONFIG_EXPERT=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_COMPILER_LLVM_CLANG is not set
+# CONFIG_SCANBUILD_ENABLE is not set
+# CONFIG_CCACHE is not set
+# CONFIG_SCONFIG_GENPARSER is not set
+# CONFIG_USE_OPTION_TABLE is not set
+CONFIG_COMPRESS_RAMSTAGE=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+CONFIG_EARLY_CBMEM_INIT=y
+CONFIG_COLLECT_TIMESTAMPS=y
+CONFIG_USE_BLOBS=y
+CONFIG_REQUIRES_BLOB=y
+
+#
+# Mainboard
+#
+# CONFIG_VENDOR_AAEON is not set
+# CONFIG_VENDOR_ABIT is not set
+# CONFIG_VENDOR_ADVANSUS is not set
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_ARIMA is not set
+# CONFIG_VENDOR_ARTECGROUP is not set
+# CONFIG_VENDOR_ASI is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_A_TREND is not set
+# CONFIG_VENDOR_AVALUE is not set
+# CONFIG_VENDOR_AXUS is not set
+# CONFIG_VENDOR_AZZA is not set
+# CONFIG_VENDOR_BCOM is not set
+# CONFIG_VENDOR_BIFFEROS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BROADCOM is not set
+# CONFIG_VENDOR_COMPAL is not set
+# CONFIG_VENDOR_COMPAQ is not set
+# CONFIG_VENDOR_DIGITALLOGIC is not set
+# CONFIG_VENDOR_EAGLELION is not set
+# CONFIG_VENDOR_ECS is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+CONFIG_VENDOR_GOOGLE=y
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_IEI is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_IWAVE is not set
+# CONFIG_VENDOR_IWILL is not set
+# CONFIG_VENDOR_JETWAY is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LANNER is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIPPERT is not set
+# CONFIG_VENDOR_MITAC is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_NEC is not set
+# CONFIG_VENDOR_NEWISYS is not set
+# CONFIG_VENDOR_NOKIA is not set
+# CONFIG_VENDOR_NVIDIA is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_RCA is not set
+# CONFIG_VENDOR_RODA is not set
+# CONFIG_VENDOR_SAMSUNG is not set
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SOYO is not set
+# CONFIG_VENDOR_SUNW is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_TECHNEXION is not set
+# CONFIG_VENDOR_TECHNOLOGIC is not set
+# CONFIG_VENDOR_TELEVIDEO is not set
+# CONFIG_VENDOR_THOMSON is not set
+# CONFIG_VENDOR_TRAVERSE is not set
+# CONFIG_VENDOR_TYAN is not set
+# CONFIG_VENDOR_VIA is not set
+# CONFIG_VENDOR_WINENT is not set
+# CONFIG_VENDOR_WYSE is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_DIR="google/link"
+CONFIG_MAINBOARD_PART_NUMBER="Link"
+CONFIG_IRQ_SLOT_COUNT=18
+CONFIG_MAINBOARD_VENDOR="GOOGLE"
+CONFIG_MAX_CPUS=8
+CONFIG_RAMTOP=0x200000
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_RAMBASE=0x100000
+CONFIG_VGA_BIOS_ID="8086,0166"
+CONFIG_STACK_SIZE=0x8000
+CONFIG_ACPI_SSDTX_NUM=0
+CONFIG_DRIVERS_PS2_KEYBOARD=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
+CONFIG_VGA_BIOS=y
+# CONFIG_CONSOLE_POST is not set
+# CONFIG_PCI_ROM_RUN is not set
+# CONFIG_UDELAY_IO is not set
+CONFIG_DCACHE_RAM_BASE=0xff7e0000
+CONFIG_DCACHE_RAM_SIZE=0x20000
+CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE=0x0
+# CONFIG_SERIAL_CPU_INIT is not set
+CONFIG_VGA_BIOS_FILE="3rdparty/mainboard/google/link/snm_2137.dat"
+CONFIG_BOARD_HAS_FADT=y
+# CONFIG_PCI_64BIT_PREF_MEM is not set
+CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
+# CONFIG_BOARD_GOOGLE_BUTTERFLY is not set
+# CONFIG_BOARD_GOOGLE_PARROT is not set
+CONFIG_BOARD_GOOGLE_LINK=y
+# CONFIG_BOARD_GOOGLE_STOUT is not set
+CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/bd82x6x/bootblock.c"
+# CONFIG_MMCONF_SUPPORT_DEFAULT is not set
+# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
+# CONFIG_GENERATE_PIRQ_TABLE is not set
+CONFIG_LOGICAL_CPUS=y
+CONFIG_IOAPIC=y
+CONFIG_SMP=y
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL=8
+# CONFIG_CONSOLE_SERIAL8250 is not set
+# CONFIG_USBDEBUG is not set
+CONFIG_VAR_MTRR_HOLE=y
+# CONFIG_LIFT_BSP_APIC_ID is not set
+# CONFIG_WAIT_BEFORE_CPUS_INIT is not set
+# CONFIG_K8_REV_F_SUPPORT is not set
+CONFIG_BOARD_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_1024=y
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=1024
+CONFIG_ROM_SIZE=0x100000
+CONFIG_CACHE_ROM_SIZE=0x100000
+CONFIG_ARCH_X86=y
+
+#
+# Architecture (x86)
+#
+# CONFIG_AP_IN_SIPI_WAIT is not set
+# CONFIG_SIPI_VECTOR_IN_ROM is not set
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_X86_BOOTBLOCK_SIMPLE=y
+# CONFIG_X86_BOOTBLOCK_NORMAL is not set
+CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_ROMCC is not set
+CONFIG_PC80_SYSTEM=y
+# CONFIG_HAVE_CMOS_DEFAULT is not set
+CONFIG_HAVE_ARCH_MEMSET=y
+CONFIG_HAVE_ARCH_MEMCPY=y
+# CONFIG_BIG_ENDIAN is not set
+CONFIG_LITTLE_ENDIAN=y
+CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
+# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
+# CONFIG_PCI_CONF2 is not set
+
+#
+# Chipset
+#
+
+#
+# CPU
+#
+CONFIG_SOCKET_SPECIFIC_OPTIONS=y
+CONFIG_CPU_ADDR_BITS=36
+CONFIG_XIP_ROM_SIZE=0x10000
+CONFIG_CPU_SPECIFIC_OPTIONS=y
+# CONFIG_CPU_AMD_AGESA is not set
+CONFIG_HAVE_INIT_TIMER=y
+CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
+CONFIG_CPU_INTEL_MODEL_306AX=y
+CONFIG_BOOTBLOCK_CPU_INIT="cpu/intel/model_206ax/bootblock.c"
+CONFIG_SMM_TSEG_SIZE=0x800000
+# CONFIG_ENABLE_VMX is not set
+CONFIG_MICROCODE_INCLUDE_PATH="src/cpu/intel/model_206ax"
+CONFIG_SSE2=y
+CONFIG_CPU_INTEL_SOCKET_RPGA989=y
+CONFIG_CACHE_MRC_BIN=y
+CONFIG_UDELAY_LAPIC=y
+# CONFIG_UDELAY_TSC is not set
+# CONFIG_UDELAY_TIMER2 is not set
+# CONFIG_TSC_CALIBRATE_WITH_IO is not set
+# CONFIG_TSC_SYNC_LFENCE is not set
+CONFIG_TSC_SYNC_MFENCE=y
+CONFIG_CACHE_ROM=y
+CONFIG_SMM_TSEG=y
+CONFIG_CACHE_AS_RAM=y
+CONFIG_AP_SIPI_VECTOR=0xfffff000
+CONFIG_MMX=y
+CONFIG_SSE=y
+CONFIG_MICROCODE_IN_CBFS=y
+
+#
+# Northbridge
+#
+CONFIG_VIDEO_MB=0
+# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
+# CONFIG_S3_VGA_ROM_RUN is not set
+# CONFIG_AMD_NB_CIMX is not set
+# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
+CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE=y
+CONFIG_CACHE_MRC_SIZE_KB=512
+CONFIG_MRC_CACHE_BASE=0xff800000
+CONFIG_EXTERNAL_MRC_BLOB=y
+CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x4000
+CONFIG_HAVE_MRC=y
+CONFIG_MRC_FILE="/build/link/firmware/mrc.bin"
+
+#
+# Southbridge
+#
+CONFIG_EHCI_BAR=0xfef00000
+CONFIG_EHCI_DEBUG_OFFSET=0xa0
+# CONFIG_AMD_SB_CIMX is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set
+CONFIG_SOUTHBRIDGE_INTEL_C216=y
+CONFIG_SOUTH_BRIDGE_OPTIONS=y
+CONFIG_SERIRQ_CONTINUOUS_MODE=y
+
+#
+# Super I/O
+#
+
+#
+# Devices
+#
+CONFIG_VGA_BRIDGE_SETUP=y
+CONFIG_VGA_ROM_RUN=y
+# CONFIG_ON_DEVICE_ROM_RUN is not set
+CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y
+# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
+# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
+CONFIG_PCIX_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_PLUGIN_SUPPORT=y
+CONFIG_AGP_PLUGIN_SUPPORT=y
+CONFIG_CARDBUS_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_COMMON_CLOCK=y
+CONFIG_PCIEXP_ASPM=y
+
+#
+# Embedded Controllers
+#
+CONFIG_EC_GOOGLE_CHROMEEC=y
+CONFIG_EC_GOOGLE_API_ROOT="/build/link/usr/include"
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVERS_OXFORD_OXPCIE is not set
+# CONFIG_DRIVERS_SIL_3114 is not set
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_SMM=y
+CONFIG_SPI_FLASH_EON=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_NO_FAST_READ=y
+CONFIG_ELOG=y
+# CONFIG_ELOG_DEBUG is not set
+CONFIG_ELOG_FLASH_BASE=0x0
+CONFIG_ELOG_AREA_SIZE=0x1000
+CONFIG_ELOG_FULL_THRESHOLD=0xC00
+CONFIG_ELOG_SHRINK_SIZE=0x400
+# CONFIG_ELOG_CBMEM is not set
+CONFIG_ELOG_GSMI=y
+CONFIG_ELOG_BOOT_COUNT=y
+CONFIG_ELOG_BOOT_COUNT_CMOS_OFFSET=144
+CONFIG_PCI_BUS_SEGN_BITS=0
+CONFIG_MMCONF_SUPPORT=y
+
+#
+# Console
+#
+CONFIG_HAVE_USBDEBUG=y
+# CONFIG_CONSOLE_NE2K is not set
+CONFIG_CONSOLE_CBMEM=y
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x10000
+CONFIG_CONSOLE_CAR_BUFFER_SIZE=0xc00
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_8=y
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+# CONFIG_CONSOLE_LOGBUF is not set
+# CONFIG_NO_POST is not set
+CONFIG_POST_PORT=0x80
+CONFIG_CMOS_POST=y
+CONFIG_CMOS_POST_OFFSET=0x70
+CONFIG_HAVE_UART_IO_MAPPED=y
+# CONFIG_HAVE_UART_MEMORY_MAPPED is not set
+CONFIG_HAVE_ACPI_RESUME=y
+# CONFIG_HAVE_ACPI_SLIC is not set
+CONFIG_HAVE_HARD_RESET=y
+CONFIG_HAVE_MAINBOARD_RESOURCES=y
+CONFIG_HAVE_OPTION_TABLE=y
+# CONFIG_PIRQ_ROUTE is not set
+CONFIG_HAVE_SMI_HANDLER=y
+# CONFIG_PCI_IO_CFG_EXT is not set
+CONFIG_TPM=y
+CONFIG_USE_WATCHDOG_ON_BOOT=y
+# CONFIG_VGA is not set
+CONFIG_GFXUMA=y
+CONFIG_HAVE_ACPI_TABLES=y
+CONFIG_GENERATE_ACPI_TABLES=y
+# CONFIG_GENERATE_MP_TABLE is not set
+CONFIG_GENERATE_SMBIOS_TABLES=y
+
+#
+# System tables
+#
+CONFIG_WRITE_HIGH_TABLES=y
+# CONFIG_MULTIBOOT is not set
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# CONFIG_PAYLOAD_ELF is not set
+# CONFIG_PAYLOAD_SEABIOS is not set
+# CONFIG_PAYLOAD_FILO is not set
+# CONFIG_COMPRESSED_PAYLOAD_NRV2B is not set
+
+#
+# VGA BIOS
+#
+
+#
+# Display
+#
+CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
+CONFIG_FRAMEBUFFER_VESA_MODE=0x164
+CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y
+# CONFIG_BOOTSPLASH is not set
+
+#
+# Debugging
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_HAVE_DEBUG_RAM_SETUP is not set
+# CONFIG_HAVE_DEBUG_CAR is not set
+# CONFIG_HAVE_DEBUG_SMBUS is not set
+# CONFIG_DEBUG_SMI is not set
+# CONFIG_DEBUG_SMM_RELOCATION is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_ACPI is not set
+# CONFIG_REALMODE_DEBUG is not set
+# CONFIG_DEBUG_TPM is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_LLSHELL is not set
+# CONFIG_TRACE is not set
+# CONFIG_AP_CODE_IN_CAR is not set
+# CONFIG_RAMINIT_SYSINFO is not set
+# CONFIG_ENABLE_APIC_EXT_ID is not set
+# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
+# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
+# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
+# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
+
+#
+# Deprecated
+#
+# CONFIG_BOARD_HAS_HARD_RESET is not set
+# CONFIG_HAVE_BUS_CONFIG is not set
+# CONFIG_PCIE_TUNING is not set
+CONFIG_ID_SECTION_OFFSET=0x80
+CONFIG_CHROMEOS=y
+
+#
+# ChromeOS
+#
+CONFIG_VBNV_OFFSET=0x26
+CONFIG_VBNV_SIZE=0x10
+CONFIG_CHROMEOS_RAMOOPS=y
+CONFIG_CHROMEOS_RAMOOPS_RAM_START=0x00f00000
+CONFIG_CHROMEOS_RAMOOPS_RAM_SIZE=0x00100000
+CONFIG_FLASHMAP_OFFSET=0x00610000
diff --git a/configs/config.lumpy b/configs/config.lumpy
new file mode 100644
index 0000000..485d89e
--- /dev/null
+++ b/configs/config.lumpy
@@ -0,0 +1,402 @@
+#
+# Automatically generated make config: don't edit
+# coreboot version: 
+# Wed Oct 31 10:21:23 2012
+#
+
+#
+# General setup
+#
+CONFIG_EXPERT=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_COMPILER_LLVM_CLANG is not set
+# CONFIG_SCANBUILD_ENABLE is not set
+# CONFIG_CCACHE is not set
+# CONFIG_SCONFIG_GENPARSER is not set
+# CONFIG_USE_OPTION_TABLE is not set
+CONFIG_COMPRESS_RAMSTAGE=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+CONFIG_EARLY_CBMEM_INIT=y
+CONFIG_COLLECT_TIMESTAMPS=y
+CONFIG_USE_BLOBS=y
+CONFIG_REQUIRES_BLOB=y
+
+#
+# Mainboard
+#
+# CONFIG_VENDOR_AAEON is not set
+# CONFIG_VENDOR_ABIT is not set
+# CONFIG_VENDOR_ADVANSUS is not set
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_ARIMA is not set
+# CONFIG_VENDOR_ARTECGROUP is not set
+# CONFIG_VENDOR_ASI is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_A_TREND is not set
+# CONFIG_VENDOR_AVALUE is not set
+# CONFIG_VENDOR_AXUS is not set
+# CONFIG_VENDOR_AZZA is not set
+# CONFIG_VENDOR_BCOM is not set
+# CONFIG_VENDOR_BIFFEROS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BROADCOM is not set
+# CONFIG_VENDOR_COMPAL is not set
+# CONFIG_VENDOR_COMPAQ is not set
+# CONFIG_VENDOR_DIGITALLOGIC is not set
+# CONFIG_VENDOR_EAGLELION is not set
+# CONFIG_VENDOR_ECS is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+# CONFIG_VENDOR_GOOGLE is not set
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_IEI is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_IWAVE is not set
+# CONFIG_VENDOR_IWILL is not set
+# CONFIG_VENDOR_JETWAY is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LANNER is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIPPERT is not set
+# CONFIG_VENDOR_MITAC is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_NEC is not set
+# CONFIG_VENDOR_NEWISYS is not set
+# CONFIG_VENDOR_NOKIA is not set
+# CONFIG_VENDOR_NVIDIA is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_RCA is not set
+# CONFIG_VENDOR_RODA is not set
+CONFIG_VENDOR_SAMSUNG=y
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SOYO is not set
+# CONFIG_VENDOR_SUNW is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_TECHNEXION is not set
+# CONFIG_VENDOR_TECHNOLOGIC is not set
+# CONFIG_VENDOR_TELEVIDEO is not set
+# CONFIG_VENDOR_THOMSON is not set
+# CONFIG_VENDOR_TRAVERSE is not set
+# CONFIG_VENDOR_TYAN is not set
+# CONFIG_VENDOR_VIA is not set
+# CONFIG_VENDOR_WINENT is not set
+# CONFIG_VENDOR_WYSE is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_DIR="samsung/lumpy"
+CONFIG_MAINBOARD_PART_NUMBER="Lumpy"
+CONFIG_IRQ_SLOT_COUNT=18
+CONFIG_MAINBOARD_VENDOR="SAMSUNG"
+CONFIG_MAX_CPUS=8
+CONFIG_RAMTOP=0x200000
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_RAMBASE=0x100000
+CONFIG_VGA_BIOS_ID="8086,0106"
+CONFIG_STACK_SIZE=0x8000
+CONFIG_ACPI_SSDTX_NUM=0
+CONFIG_DRIVERS_PS2_KEYBOARD=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
+CONFIG_VGA_BIOS=y
+# CONFIG_CONSOLE_POST is not set
+# CONFIG_PCI_ROM_RUN is not set
+# CONFIG_UDELAY_IO is not set
+CONFIG_DCACHE_RAM_BASE=0xff7f0000
+CONFIG_DCACHE_RAM_SIZE=0x10000
+CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE=0x0
+# CONFIG_SERIAL_CPU_INIT is not set
+CONFIG_VGA_BIOS_FILE="3rdparty/mainboard/samsung/lumpy/snm_2130_coreboot.bin"
+CONFIG_BOARD_HAS_FADT=y
+# CONFIG_PCI_64BIT_PREF_MEM is not set
+CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
+CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/bd82x6x/bootblock.c"
+# CONFIG_MMCONF_SUPPORT_DEFAULT is not set
+# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
+# CONFIG_GENERATE_PIRQ_TABLE is not set
+CONFIG_LOGICAL_CPUS=y
+CONFIG_IOAPIC=y
+CONFIG_SMP=y
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL=8
+# CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL is not set
+# CONFIG_CONSOLE_SERIAL8250 is not set
+# CONFIG_USBDEBUG is not set
+CONFIG_VAR_MTRR_HOLE=y
+# CONFIG_LIFT_BSP_APIC_ID is not set
+# CONFIG_WAIT_BEFORE_CPUS_INIT is not set
+# CONFIG_K8_REV_F_SUPPORT is not set
+CONFIG_BOARD_SAMSUNG_LUMPY=y
+# CONFIG_BOARD_SAMSUNG_STUMPY is not set
+CONFIG_BOARD_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_1024=y
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=1024
+CONFIG_ROM_SIZE=0x100000
+CONFIG_CACHE_ROM_SIZE=0x100000
+CONFIG_ARCH_X86=y
+
+#
+# Architecture (x86)
+#
+# CONFIG_AP_IN_SIPI_WAIT is not set
+# CONFIG_SIPI_VECTOR_IN_ROM is not set
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_X86_BOOTBLOCK_SIMPLE=y
+# CONFIG_X86_BOOTBLOCK_NORMAL is not set
+CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_ROMCC is not set
+CONFIG_PC80_SYSTEM=y
+# CONFIG_HAVE_CMOS_DEFAULT is not set
+CONFIG_HAVE_ARCH_MEMSET=y
+CONFIG_HAVE_ARCH_MEMCPY=y
+# CONFIG_BIG_ENDIAN is not set
+CONFIG_LITTLE_ENDIAN=y
+CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
+# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
+# CONFIG_PCI_CONF2 is not set
+
+#
+# Chipset
+#
+
+#
+# CPU
+#
+CONFIG_SOCKET_SPECIFIC_OPTIONS=y
+CONFIG_CPU_ADDR_BITS=36
+CONFIG_XIP_ROM_SIZE=0x10000
+CONFIG_CPU_SPECIFIC_OPTIONS=y
+# CONFIG_CPU_AMD_AGESA is not set
+CONFIG_HAVE_INIT_TIMER=y
+CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
+CONFIG_CPU_INTEL_MODEL_206AX=y
+CONFIG_BOOTBLOCK_CPU_INIT="cpu/intel/model_206ax/bootblock.c"
+CONFIG_SMM_TSEG_SIZE=0x800000
+# CONFIG_ENABLE_VMX is not set
+CONFIG_MICROCODE_INCLUDE_PATH="src/cpu/intel/model_206ax"
+CONFIG_SSE2=y
+CONFIG_CPU_INTEL_SOCKET_RPGA989=y
+CONFIG_CACHE_MRC_BIN=y
+CONFIG_UDELAY_LAPIC=y
+# CONFIG_UDELAY_TSC is not set
+# CONFIG_UDELAY_TIMER2 is not set
+# CONFIG_TSC_CALIBRATE_WITH_IO is not set
+# CONFIG_TSC_SYNC_LFENCE is not set
+CONFIG_TSC_SYNC_MFENCE=y
+CONFIG_CACHE_ROM=y
+CONFIG_SMM_TSEG=y
+CONFIG_CACHE_AS_RAM=y
+CONFIG_AP_SIPI_VECTOR=0xfffff000
+CONFIG_MMX=y
+CONFIG_SSE=y
+CONFIG_MICROCODE_IN_CBFS=y
+
+#
+# Northbridge
+#
+CONFIG_VIDEO_MB=0
+# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
+# CONFIG_S3_VGA_ROM_RUN is not set
+# CONFIG_AMD_NB_CIMX is not set
+# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
+CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y
+CONFIG_CACHE_MRC_SIZE_KB=256
+CONFIG_MRC_CACHE_BASE=0xff800000
+CONFIG_EXTERNAL_MRC_BLOB=y
+CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x4000
+CONFIG_HAVE_MRC=y
+CONFIG_MRC_FILE="/build/lumpy/firmware/mrc.bin"
+
+#
+# Southbridge
+#
+CONFIG_EHCI_BAR=0xfef00000
+CONFIG_EHCI_DEBUG_OFFSET=0xa0
+# CONFIG_AMD_SB_CIMX is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set
+CONFIG_SOUTHBRIDGE_INTEL_BD82X6X=y
+CONFIG_SOUTH_BRIDGE_OPTIONS=y
+# CONFIG_SERIRQ_CONTINUOUS_MODE is not set
+
+#
+# Super I/O
+#
+CONFIG_SUPERIO_SMSC_MEC1308=y
+
+#
+# Devices
+#
+CONFIG_VGA_BRIDGE_SETUP=y
+CONFIG_VGA_ROM_RUN=y
+# CONFIG_ON_DEVICE_ROM_RUN is not set
+CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y
+# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
+# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
+CONFIG_PCIX_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_PLUGIN_SUPPORT=y
+CONFIG_AGP_PLUGIN_SUPPORT=y
+CONFIG_CARDBUS_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_COMMON_CLOCK=y
+CONFIG_PCIEXP_ASPM=y
+
+#
+# Embedded Controllers
+#
+CONFIG_EC_SMSC_MEC1308=y
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVERS_OXFORD_OXPCIE is not set
+# CONFIG_DRIVERS_SIL_3114 is not set
+CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_SMM is not set
+CONFIG_SPI_FLASH_EON=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_NO_FAST_READ=y
+# CONFIG_ELOG is not set
+CONFIG_PCI_BUS_SEGN_BITS=0
+CONFIG_MMCONF_SUPPORT=y
+
+#
+# Console
+#
+CONFIG_HAVE_USBDEBUG=y
+# CONFIG_CONSOLE_NE2K is not set
+CONFIG_CONSOLE_CBMEM=y
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x10000
+CONFIG_CONSOLE_CAR_BUFFER_SIZE=0xc00
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_8=y
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+# CONFIG_CONSOLE_LOGBUF is not set
+# CONFIG_NO_POST is not set
+CONFIG_POST_PORT=0x80
+CONFIG_CMOS_POST=y
+CONFIG_CMOS_POST_OFFSET=0x70
+CONFIG_HAVE_UART_IO_MAPPED=y
+# CONFIG_HAVE_UART_MEMORY_MAPPED is not set
+CONFIG_HAVE_ACPI_RESUME=y
+# CONFIG_HAVE_ACPI_SLIC is not set
+CONFIG_HAVE_HARD_RESET=y
+CONFIG_HAVE_MAINBOARD_RESOURCES=y
+CONFIG_HAVE_OPTION_TABLE=y
+# CONFIG_PIRQ_ROUTE is not set
+CONFIG_HAVE_SMI_HANDLER=y
+# CONFIG_PCI_IO_CFG_EXT is not set
+CONFIG_TPM=y
+CONFIG_USE_WATCHDOG_ON_BOOT=y
+# CONFIG_VGA is not set
+CONFIG_GFXUMA=y
+CONFIG_HAVE_ACPI_TABLES=y
+CONFIG_GENERATE_ACPI_TABLES=y
+# CONFIG_GENERATE_MP_TABLE is not set
+CONFIG_GENERATE_SMBIOS_TABLES=y
+
+#
+# System tables
+#
+CONFIG_WRITE_HIGH_TABLES=y
+# CONFIG_MULTIBOOT is not set
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# CONFIG_PAYLOAD_ELF is not set
+# CONFIG_PAYLOAD_SEABIOS is not set
+# CONFIG_PAYLOAD_FILO is not set
+# CONFIG_COMPRESSED_PAYLOAD_NRV2B is not set
+
+#
+# VGA BIOS
+#
+
+#
+# Display
+#
+CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
+CONFIG_FRAMEBUFFER_VESA_MODE=0x114
+CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y
+# CONFIG_BOOTSPLASH is not set
+
+#
+# Debugging
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_HAVE_DEBUG_RAM_SETUP is not set
+# CONFIG_HAVE_DEBUG_CAR is not set
+# CONFIG_HAVE_DEBUG_SMBUS is not set
+# CONFIG_DEBUG_SMI is not set
+# CONFIG_DEBUG_SMM_RELOCATION is not set
+# CONFIG_DEBUG_MALLOC is not set
+CONFIG_DEBUG_ACPI=y
+# CONFIG_REALMODE_DEBUG is not set
+# CONFIG_DEBUG_TPM is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_DEBUG_INTEL_ME is not set
+# CONFIG_LLSHELL is not set
+# CONFIG_TRACE is not set
+# CONFIG_AP_CODE_IN_CAR is not set
+# CONFIG_RAMINIT_SYSINFO is not set
+# CONFIG_ENABLE_APIC_EXT_ID is not set
+# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
+# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
+# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
+# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
+
+#
+# Deprecated
+#
+# CONFIG_BOARD_HAS_HARD_RESET is not set
+# CONFIG_HAVE_BUS_CONFIG is not set
+# CONFIG_PCIE_TUNING is not set
+CONFIG_ID_SECTION_OFFSET=0x80
+CONFIG_CHROMEOS=y
+
+#
+# ChromeOS
+#
+CONFIG_VBNV_OFFSET=0x26
+CONFIG_VBNV_SIZE=0x10
+CONFIG_CHROMEOS_RAMOOPS=y
+CONFIG_CHROMEOS_RAMOOPS_RAM_START=0x00f00000
+CONFIG_CHROMEOS_RAMOOPS_RAM_SIZE=0x00100000
+CONFIG_FLASHMAP_OFFSET=0x00670000
diff --git a/configs/config.parrot b/configs/config.parrot
new file mode 100644
index 0000000..f8ef100
--- /dev/null
+++ b/configs/config.parrot
@@ -0,0 +1,412 @@
+#
+# Automatically generated make config: don't edit
+# coreboot version: 
+# Wed Oct 31 10:21:24 2012
+#
+
+#
+# General setup
+#
+CONFIG_EXPERT=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_COMPILER_LLVM_CLANG is not set
+# CONFIG_SCANBUILD_ENABLE is not set
+# CONFIG_CCACHE is not set
+# CONFIG_SCONFIG_GENPARSER is not set
+# CONFIG_USE_OPTION_TABLE is not set
+CONFIG_COMPRESS_RAMSTAGE=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+CONFIG_EARLY_CBMEM_INIT=y
+CONFIG_COLLECT_TIMESTAMPS=y
+CONFIG_USE_BLOBS=y
+CONFIG_REQUIRES_BLOB=y
+
+#
+# Mainboard
+#
+# CONFIG_VENDOR_AAEON is not set
+# CONFIG_VENDOR_ABIT is not set
+# CONFIG_VENDOR_ADVANSUS is not set
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_ARIMA is not set
+# CONFIG_VENDOR_ARTECGROUP is not set
+# CONFIG_VENDOR_ASI is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_A_TREND is not set
+# CONFIG_VENDOR_AVALUE is not set
+# CONFIG_VENDOR_AXUS is not set
+# CONFIG_VENDOR_AZZA is not set
+# CONFIG_VENDOR_BCOM is not set
+# CONFIG_VENDOR_BIFFEROS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BROADCOM is not set
+# CONFIG_VENDOR_COMPAL is not set
+# CONFIG_VENDOR_COMPAQ is not set
+# CONFIG_VENDOR_DIGITALLOGIC is not set
+# CONFIG_VENDOR_EAGLELION is not set
+# CONFIG_VENDOR_ECS is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+CONFIG_VENDOR_GOOGLE=y
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_IEI is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_IWAVE is not set
+# CONFIG_VENDOR_IWILL is not set
+# CONFIG_VENDOR_JETWAY is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LANNER is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIPPERT is not set
+# CONFIG_VENDOR_MITAC is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_NEC is not set
+# CONFIG_VENDOR_NEWISYS is not set
+# CONFIG_VENDOR_NOKIA is not set
+# CONFIG_VENDOR_NVIDIA is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_RCA is not set
+# CONFIG_VENDOR_RODA is not set
+# CONFIG_VENDOR_SAMSUNG is not set
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SOYO is not set
+# CONFIG_VENDOR_SUNW is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_TECHNEXION is not set
+# CONFIG_VENDOR_TECHNOLOGIC is not set
+# CONFIG_VENDOR_TELEVIDEO is not set
+# CONFIG_VENDOR_THOMSON is not set
+# CONFIG_VENDOR_TRAVERSE is not set
+# CONFIG_VENDOR_TYAN is not set
+# CONFIG_VENDOR_VIA is not set
+# CONFIG_VENDOR_WINENT is not set
+# CONFIG_VENDOR_WYSE is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_DIR="google/parrot"
+CONFIG_MAINBOARD_PART_NUMBER="Parrot"
+CONFIG_IRQ_SLOT_COUNT=18
+CONFIG_MAINBOARD_VENDOR="GOOGLE"
+CONFIG_MAX_CPUS=8
+CONFIG_RAMTOP=0x200000
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_RAMBASE=0x100000
+CONFIG_VGA_BIOS_ID="8086,0106"
+CONFIG_STACK_SIZE=0x8000
+CONFIG_ACPI_SSDTX_NUM=0
+CONFIG_DRIVERS_PS2_KEYBOARD=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
+CONFIG_VGA_BIOS=y
+# CONFIG_CONSOLE_POST is not set
+# CONFIG_PCI_ROM_RUN is not set
+# CONFIG_UDELAY_IO is not set
+CONFIG_DCACHE_RAM_BASE=0xff7e0000
+CONFIG_DCACHE_RAM_SIZE=0x20000
+CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE=0x0
+# CONFIG_SERIAL_CPU_INIT is not set
+CONFIG_VGA_BIOS_FILE="3rdparty/mainboard/google/parrot/snm_2130_coreboot.bin"
+CONFIG_BOARD_HAS_FADT=y
+CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID=0x1ae0
+CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID=0xc000
+# CONFIG_PCI_64BIT_PREF_MEM is not set
+CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
+# CONFIG_BOARD_GOOGLE_BUTTERFLY is not set
+CONFIG_BOARD_GOOGLE_PARROT=y
+# CONFIG_BOARD_GOOGLE_LINK is not set
+# CONFIG_BOARD_GOOGLE_STOUT is not set
+CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/bd82x6x/bootblock.c"
+# CONFIG_MMCONF_SUPPORT_DEFAULT is not set
+# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
+# CONFIG_GENERATE_PIRQ_TABLE is not set
+CONFIG_LOGICAL_CPUS=y
+CONFIG_IOAPIC=y
+CONFIG_SMP=y
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL=8
+# CONFIG_CONSOLE_SERIAL8250 is not set
+# CONFIG_USBDEBUG is not set
+CONFIG_VAR_MTRR_HOLE=y
+# CONFIG_LIFT_BSP_APIC_ID is not set
+# CONFIG_WAIT_BEFORE_CPUS_INIT is not set
+# CONFIG_K8_REV_F_SUPPORT is not set
+CONFIG_BOARD_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_1024=y
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=1024
+CONFIG_ROM_SIZE=0x100000
+CONFIG_CACHE_ROM_SIZE=0x100000
+CONFIG_ARCH_X86=y
+
+#
+# Architecture (x86)
+#
+# CONFIG_AP_IN_SIPI_WAIT is not set
+# CONFIG_SIPI_VECTOR_IN_ROM is not set
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_X86_BOOTBLOCK_SIMPLE=y
+# CONFIG_X86_BOOTBLOCK_NORMAL is not set
+CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_ROMCC is not set
+CONFIG_PC80_SYSTEM=y
+# CONFIG_HAVE_CMOS_DEFAULT is not set
+CONFIG_HAVE_ARCH_MEMSET=y
+CONFIG_HAVE_ARCH_MEMCPY=y
+# CONFIG_BIG_ENDIAN is not set
+CONFIG_LITTLE_ENDIAN=y
+CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
+# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
+# CONFIG_PCI_CONF2 is not set
+
+#
+# Chipset
+#
+
+#
+# CPU
+#
+CONFIG_SOCKET_SPECIFIC_OPTIONS=y
+CONFIG_CPU_ADDR_BITS=36
+CONFIG_XIP_ROM_SIZE=0x10000
+CONFIG_CPU_SPECIFIC_OPTIONS=y
+# CONFIG_CPU_AMD_AGESA is not set
+CONFIG_HAVE_INIT_TIMER=y
+CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
+CONFIG_CPU_INTEL_MODEL_306AX=y
+CONFIG_BOOTBLOCK_CPU_INIT="cpu/intel/model_206ax/bootblock.c"
+CONFIG_SMM_TSEG_SIZE=0x800000
+# CONFIG_ENABLE_VMX is not set
+CONFIG_MICROCODE_INCLUDE_PATH="src/cpu/intel/model_206ax"
+CONFIG_SSE2=y
+CONFIG_CPU_INTEL_SOCKET_RPGA989=y
+CONFIG_CACHE_MRC_BIN=y
+CONFIG_UDELAY_LAPIC=y
+# CONFIG_UDELAY_TSC is not set
+# CONFIG_UDELAY_TIMER2 is not set
+# CONFIG_TSC_CALIBRATE_WITH_IO is not set
+# CONFIG_TSC_SYNC_LFENCE is not set
+CONFIG_TSC_SYNC_MFENCE=y
+CONFIG_CACHE_ROM=y
+CONFIG_SMM_TSEG=y
+CONFIG_CACHE_AS_RAM=y
+CONFIG_AP_SIPI_VECTOR=0xfffff000
+CONFIG_MMX=y
+CONFIG_SSE=y
+CONFIG_MICROCODE_IN_CBFS=y
+
+#
+# Northbridge
+#
+CONFIG_VIDEO_MB=0
+# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
+# CONFIG_S3_VGA_ROM_RUN is not set
+# CONFIG_AMD_NB_CIMX is not set
+# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
+CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE=y
+CONFIG_CACHE_MRC_SIZE_KB=512
+CONFIG_MRC_CACHE_BASE=0xff800000
+CONFIG_EXTERNAL_MRC_BLOB=y
+CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x4000
+CONFIG_HAVE_MRC=y
+CONFIG_MRC_FILE="/build/parrot/firmware/mrc.bin"
+
+#
+# Southbridge
+#
+CONFIG_EHCI_BAR=0xfef00000
+CONFIG_EHCI_DEBUG_OFFSET=0xa0
+# CONFIG_AMD_SB_CIMX is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set
+CONFIG_SOUTHBRIDGE_INTEL_C216=y
+CONFIG_SOUTH_BRIDGE_OPTIONS=y
+CONFIG_SERIRQ_CONTINUOUS_MODE=y
+
+#
+# Super I/O
+#
+
+#
+# Devices
+#
+CONFIG_VGA_BRIDGE_SETUP=y
+CONFIG_VGA_ROM_RUN=y
+# CONFIG_ON_DEVICE_ROM_RUN is not set
+CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y
+# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
+# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
+CONFIG_PCIX_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_PLUGIN_SUPPORT=y
+CONFIG_AGP_PLUGIN_SUPPORT=y
+CONFIG_CARDBUS_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_COMMON_CLOCK=y
+CONFIG_PCIEXP_ASPM=y
+
+#
+# Embedded Controllers
+#
+CONFIG_EC_COMPAL_ENE932=y
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVERS_OXFORD_OXPCIE is not set
+# CONFIG_DRIVERS_SIL_3114 is not set
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_SMM=y
+CONFIG_SPI_FLASH_EON=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_NO_FAST_READ=y
+CONFIG_ELOG=y
+# CONFIG_ELOG_DEBUG is not set
+CONFIG_ELOG_FLASH_BASE=0x0
+CONFIG_ELOG_AREA_SIZE=0x1000
+CONFIG_ELOG_FULL_THRESHOLD=0xC00
+CONFIG_ELOG_SHRINK_SIZE=0x400
+# CONFIG_ELOG_CBMEM is not set
+CONFIG_ELOG_GSMI=y
+CONFIG_ELOG_BOOT_COUNT=y
+CONFIG_ELOG_BOOT_COUNT_CMOS_OFFSET=144
+CONFIG_PCI_BUS_SEGN_BITS=0
+CONFIG_MMCONF_SUPPORT=y
+
+#
+# Console
+#
+CONFIG_HAVE_USBDEBUG=y
+# CONFIG_CONSOLE_NE2K is not set
+CONFIG_CONSOLE_CBMEM=y
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x10000
+CONFIG_CONSOLE_CAR_BUFFER_SIZE=0xc00
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_8=y
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+# CONFIG_CONSOLE_LOGBUF is not set
+# CONFIG_NO_POST is not set
+CONFIG_POST_PORT=0x80
+CONFIG_CMOS_POST=y
+CONFIG_CMOS_POST_OFFSET=0x70
+CONFIG_HAVE_UART_IO_MAPPED=y
+# CONFIG_HAVE_UART_MEMORY_MAPPED is not set
+CONFIG_HAVE_ACPI_RESUME=y
+# CONFIG_HAVE_ACPI_SLIC is not set
+CONFIG_HAVE_HARD_RESET=y
+CONFIG_HAVE_MAINBOARD_RESOURCES=y
+CONFIG_HAVE_OPTION_TABLE=y
+# CONFIG_PIRQ_ROUTE is not set
+CONFIG_HAVE_SMI_HANDLER=y
+# CONFIG_PCI_IO_CFG_EXT is not set
+CONFIG_TPM=y
+CONFIG_USE_WATCHDOG_ON_BOOT=y
+# CONFIG_VGA is not set
+CONFIG_GFXUMA=y
+CONFIG_HAVE_ACPI_TABLES=y
+CONFIG_GENERATE_ACPI_TABLES=y
+# CONFIG_GENERATE_MP_TABLE is not set
+CONFIG_GENERATE_SMBIOS_TABLES=y
+
+#
+# System tables
+#
+CONFIG_WRITE_HIGH_TABLES=y
+# CONFIG_MULTIBOOT is not set
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# CONFIG_PAYLOAD_ELF is not set
+# CONFIG_PAYLOAD_SEABIOS is not set
+# CONFIG_PAYLOAD_FILO is not set
+# CONFIG_COMPRESSED_PAYLOAD_NRV2B is not set
+
+#
+# VGA BIOS
+#
+
+#
+# Display
+#
+CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
+CONFIG_FRAMEBUFFER_VESA_MODE=0x117
+CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y
+# CONFIG_BOOTSPLASH is not set
+
+#
+# Debugging
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_HAVE_DEBUG_RAM_SETUP is not set
+# CONFIG_HAVE_DEBUG_CAR is not set
+# CONFIG_HAVE_DEBUG_SMBUS is not set
+# CONFIG_DEBUG_SMI is not set
+# CONFIG_DEBUG_SMM_RELOCATION is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_ACPI is not set
+# CONFIG_REALMODE_DEBUG is not set
+# CONFIG_DEBUG_TPM is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_LLSHELL is not set
+# CONFIG_TRACE is not set
+# CONFIG_AP_CODE_IN_CAR is not set
+# CONFIG_RAMINIT_SYSINFO is not set
+# CONFIG_ENABLE_APIC_EXT_ID is not set
+# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
+# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
+# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
+# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
+
+#
+# Deprecated
+#
+# CONFIG_BOARD_HAS_HARD_RESET is not set
+# CONFIG_HAVE_BUS_CONFIG is not set
+# CONFIG_PCIE_TUNING is not set
+CONFIG_ID_SECTION_OFFSET=0x80
+CONFIG_CHROMEOS=y
+
+#
+# ChromeOS
+#
+CONFIG_VBNV_OFFSET=0x26
+CONFIG_VBNV_SIZE=0x10
+CONFIG_CHROMEOS_RAMOOPS=y
+CONFIG_CHROMEOS_RAMOOPS_RAM_START=0x00f00000
+CONFIG_CHROMEOS_RAMOOPS_RAM_SIZE=0x00100000
+CONFIG_FLASHMAP_OFFSET=0x00610000
diff --git a/configs/config.stout b/configs/config.stout
new file mode 100644
index 0000000..f34d7c3
--- /dev/null
+++ b/configs/config.stout
@@ -0,0 +1,412 @@
+#
+# Automatically generated make config: don't edit
+# coreboot version: 
+# Wed Oct 31 10:21:25 2012
+#
+
+#
+# General setup
+#
+CONFIG_EXPERT=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_COMPILER_LLVM_CLANG is not set
+# CONFIG_SCANBUILD_ENABLE is not set
+# CONFIG_CCACHE is not set
+# CONFIG_SCONFIG_GENPARSER is not set
+# CONFIG_USE_OPTION_TABLE is not set
+CONFIG_COMPRESS_RAMSTAGE=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+CONFIG_EARLY_CBMEM_INIT=y
+CONFIG_COLLECT_TIMESTAMPS=y
+CONFIG_USE_BLOBS=y
+CONFIG_REQUIRES_BLOB=y
+
+#
+# Mainboard
+#
+# CONFIG_VENDOR_AAEON is not set
+# CONFIG_VENDOR_ABIT is not set
+# CONFIG_VENDOR_ADVANSUS is not set
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_ARIMA is not set
+# CONFIG_VENDOR_ARTECGROUP is not set
+# CONFIG_VENDOR_ASI is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_A_TREND is not set
+# CONFIG_VENDOR_AVALUE is not set
+# CONFIG_VENDOR_AXUS is not set
+# CONFIG_VENDOR_AZZA is not set
+# CONFIG_VENDOR_BCOM is not set
+# CONFIG_VENDOR_BIFFEROS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BROADCOM is not set
+# CONFIG_VENDOR_COMPAL is not set
+# CONFIG_VENDOR_COMPAQ is not set
+# CONFIG_VENDOR_DIGITALLOGIC is not set
+# CONFIG_VENDOR_EAGLELION is not set
+# CONFIG_VENDOR_ECS is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+CONFIG_VENDOR_GOOGLE=y
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_IEI is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_IWAVE is not set
+# CONFIG_VENDOR_IWILL is not set
+# CONFIG_VENDOR_JETWAY is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LANNER is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIPPERT is not set
+# CONFIG_VENDOR_MITAC is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_NEC is not set
+# CONFIG_VENDOR_NEWISYS is not set
+# CONFIG_VENDOR_NOKIA is not set
+# CONFIG_VENDOR_NVIDIA is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_RCA is not set
+# CONFIG_VENDOR_RODA is not set
+# CONFIG_VENDOR_SAMSUNG is not set
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SOYO is not set
+# CONFIG_VENDOR_SUNW is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_TECHNEXION is not set
+# CONFIG_VENDOR_TECHNOLOGIC is not set
+# CONFIG_VENDOR_TELEVIDEO is not set
+# CONFIG_VENDOR_THOMSON is not set
+# CONFIG_VENDOR_TRAVERSE is not set
+# CONFIG_VENDOR_TYAN is not set
+# CONFIG_VENDOR_VIA is not set
+# CONFIG_VENDOR_WINENT is not set
+# CONFIG_VENDOR_WYSE is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_DIR="google/stout"
+CONFIG_MAINBOARD_PART_NUMBER="Stout"
+CONFIG_IRQ_SLOT_COUNT=18
+CONFIG_MAINBOARD_VENDOR="GOOGLE"
+CONFIG_MAX_CPUS=8
+CONFIG_RAMTOP=0x200000
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_RAMBASE=0x100000
+CONFIG_VGA_BIOS_ID="8086,0106"
+CONFIG_STACK_SIZE=0x8000
+CONFIG_ACPI_SSDTX_NUM=0
+CONFIG_DRIVERS_PS2_KEYBOARD=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
+CONFIG_VGA_BIOS=y
+# CONFIG_CONSOLE_POST is not set
+# CONFIG_PCI_ROM_RUN is not set
+# CONFIG_UDELAY_IO is not set
+CONFIG_DCACHE_RAM_BASE=0xff7e0000
+CONFIG_DCACHE_RAM_SIZE=0x20000
+CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE=0x0
+# CONFIG_SERIAL_CPU_INIT is not set
+CONFIG_VGA_BIOS_FILE="3rdparty/mainboard/google/stout/snm_2137.dat"
+CONFIG_BOARD_HAS_FADT=y
+CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID=0x1ae0
+CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID=0xc000
+# CONFIG_PCI_64BIT_PREF_MEM is not set
+CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
+# CONFIG_BOARD_GOOGLE_BUTTERFLY is not set
+# CONFIG_BOARD_GOOGLE_PARROT is not set
+# CONFIG_BOARD_GOOGLE_LINK is not set
+CONFIG_BOARD_GOOGLE_STOUT=y
+CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/bd82x6x/bootblock.c"
+# CONFIG_MMCONF_SUPPORT_DEFAULT is not set
+# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
+# CONFIG_GENERATE_PIRQ_TABLE is not set
+CONFIG_LOGICAL_CPUS=y
+CONFIG_IOAPIC=y
+CONFIG_SMP=y
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL=8
+# CONFIG_CONSOLE_SERIAL8250 is not set
+# CONFIG_USBDEBUG is not set
+CONFIG_VAR_MTRR_HOLE=y
+# CONFIG_LIFT_BSP_APIC_ID is not set
+# CONFIG_WAIT_BEFORE_CPUS_INIT is not set
+# CONFIG_K8_REV_F_SUPPORT is not set
+CONFIG_BOARD_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_1024=y
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=1024
+CONFIG_ROM_SIZE=0x100000
+CONFIG_CACHE_ROM_SIZE=0x100000
+CONFIG_ARCH_X86=y
+
+#
+# Architecture (x86)
+#
+# CONFIG_AP_IN_SIPI_WAIT is not set
+# CONFIG_SIPI_VECTOR_IN_ROM is not set
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_X86_BOOTBLOCK_SIMPLE=y
+# CONFIG_X86_BOOTBLOCK_NORMAL is not set
+CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_ROMCC is not set
+CONFIG_PC80_SYSTEM=y
+# CONFIG_HAVE_CMOS_DEFAULT is not set
+CONFIG_HAVE_ARCH_MEMSET=y
+CONFIG_HAVE_ARCH_MEMCPY=y
+# CONFIG_BIG_ENDIAN is not set
+CONFIG_LITTLE_ENDIAN=y
+CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
+# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
+# CONFIG_PCI_CONF2 is not set
+
+#
+# Chipset
+#
+
+#
+# CPU
+#
+CONFIG_SOCKET_SPECIFIC_OPTIONS=y
+CONFIG_CPU_ADDR_BITS=36
+CONFIG_XIP_ROM_SIZE=0x10000
+CONFIG_CPU_SPECIFIC_OPTIONS=y
+# CONFIG_CPU_AMD_AGESA is not set
+CONFIG_HAVE_INIT_TIMER=y
+CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
+CONFIG_CPU_INTEL_MODEL_306AX=y
+CONFIG_BOOTBLOCK_CPU_INIT="cpu/intel/model_206ax/bootblock.c"
+CONFIG_SMM_TSEG_SIZE=0x800000
+# CONFIG_ENABLE_VMX is not set
+CONFIG_MICROCODE_INCLUDE_PATH="src/cpu/intel/model_206ax"
+CONFIG_SSE2=y
+CONFIG_CPU_INTEL_SOCKET_RPGA989=y
+CONFIG_CACHE_MRC_BIN=y
+CONFIG_UDELAY_LAPIC=y
+# CONFIG_UDELAY_TSC is not set
+# CONFIG_UDELAY_TIMER2 is not set
+# CONFIG_TSC_CALIBRATE_WITH_IO is not set
+# CONFIG_TSC_SYNC_LFENCE is not set
+CONFIG_TSC_SYNC_MFENCE=y
+CONFIG_CACHE_ROM=y
+CONFIG_SMM_TSEG=y
+CONFIG_CACHE_AS_RAM=y
+CONFIG_AP_SIPI_VECTOR=0xfffff000
+CONFIG_MMX=y
+CONFIG_SSE=y
+CONFIG_MICROCODE_IN_CBFS=y
+
+#
+# Northbridge
+#
+CONFIG_VIDEO_MB=0
+# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
+# CONFIG_S3_VGA_ROM_RUN is not set
+# CONFIG_AMD_NB_CIMX is not set
+# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
+CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE=y
+CONFIG_CACHE_MRC_SIZE_KB=512
+CONFIG_MRC_CACHE_BASE=0xff800000
+CONFIG_EXTERNAL_MRC_BLOB=y
+CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x4000
+CONFIG_HAVE_MRC=y
+CONFIG_MRC_FILE="/build/stout/firmware/mrc.bin"
+
+#
+# Southbridge
+#
+CONFIG_EHCI_BAR=0xfef00000
+CONFIG_EHCI_DEBUG_OFFSET=0xa0
+# CONFIG_AMD_SB_CIMX is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set
+CONFIG_SOUTHBRIDGE_INTEL_C216=y
+CONFIG_SOUTH_BRIDGE_OPTIONS=y
+# CONFIG_SERIRQ_CONTINUOUS_MODE is not set
+
+#
+# Super I/O
+#
+
+#
+# Devices
+#
+CONFIG_VGA_BRIDGE_SETUP=y
+CONFIG_VGA_ROM_RUN=y
+# CONFIG_ON_DEVICE_ROM_RUN is not set
+CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y
+# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
+# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
+CONFIG_PCIX_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_PLUGIN_SUPPORT=y
+CONFIG_AGP_PLUGIN_SUPPORT=y
+CONFIG_CARDBUS_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_COMMON_CLOCK=y
+CONFIG_PCIEXP_ASPM=y
+
+#
+# Embedded Controllers
+#
+CONFIG_EC_QUANTA_IT8518=y
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVERS_OXFORD_OXPCIE is not set
+# CONFIG_DRIVERS_SIL_3114 is not set
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_SMM=y
+CONFIG_SPI_FLASH_EON=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+# CONFIG_SPI_FLASH_NO_FAST_READ is not set
+CONFIG_ELOG=y
+# CONFIG_ELOG_DEBUG is not set
+CONFIG_ELOG_FLASH_BASE=0x0
+CONFIG_ELOG_AREA_SIZE=0x1000
+CONFIG_ELOG_FULL_THRESHOLD=0xC00
+CONFIG_ELOG_SHRINK_SIZE=0x400
+# CONFIG_ELOG_CBMEM is not set
+CONFIG_ELOG_GSMI=y
+CONFIG_ELOG_BOOT_COUNT=y
+CONFIG_ELOG_BOOT_COUNT_CMOS_OFFSET=144
+CONFIG_PCI_BUS_SEGN_BITS=0
+CONFIG_MMCONF_SUPPORT=y
+
+#
+# Console
+#
+CONFIG_HAVE_USBDEBUG=y
+# CONFIG_CONSOLE_NE2K is not set
+CONFIG_CONSOLE_CBMEM=y
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x10000
+CONFIG_CONSOLE_CAR_BUFFER_SIZE=0xc00
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_8=y
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+# CONFIG_CONSOLE_LOGBUF is not set
+# CONFIG_NO_POST is not set
+CONFIG_POST_PORT=0x80
+CONFIG_CMOS_POST=y
+CONFIG_CMOS_POST_OFFSET=0x70
+CONFIG_HAVE_UART_IO_MAPPED=y
+# CONFIG_HAVE_UART_MEMORY_MAPPED is not set
+CONFIG_HAVE_ACPI_RESUME=y
+# CONFIG_HAVE_ACPI_SLIC is not set
+CONFIG_HAVE_HARD_RESET=y
+CONFIG_HAVE_MAINBOARD_RESOURCES=y
+CONFIG_HAVE_OPTION_TABLE=y
+# CONFIG_PIRQ_ROUTE is not set
+CONFIG_HAVE_SMI_HANDLER=y
+# CONFIG_PCI_IO_CFG_EXT is not set
+CONFIG_TPM=y
+CONFIG_USE_WATCHDOG_ON_BOOT=y
+# CONFIG_VGA is not set
+CONFIG_GFXUMA=y
+CONFIG_HAVE_ACPI_TABLES=y
+CONFIG_GENERATE_ACPI_TABLES=y
+# CONFIG_GENERATE_MP_TABLE is not set
+CONFIG_GENERATE_SMBIOS_TABLES=y
+
+#
+# System tables
+#
+CONFIG_WRITE_HIGH_TABLES=y
+# CONFIG_MULTIBOOT is not set
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# CONFIG_PAYLOAD_ELF is not set
+# CONFIG_PAYLOAD_SEABIOS is not set
+# CONFIG_PAYLOAD_FILO is not set
+# CONFIG_COMPRESSED_PAYLOAD_NRV2B is not set
+
+#
+# VGA BIOS
+#
+
+#
+# Display
+#
+CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
+CONFIG_FRAMEBUFFER_VESA_MODE=0x117
+CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y
+# CONFIG_BOOTSPLASH is not set
+
+#
+# Debugging
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_HAVE_DEBUG_RAM_SETUP is not set
+# CONFIG_HAVE_DEBUG_CAR is not set
+# CONFIG_HAVE_DEBUG_SMBUS is not set
+# CONFIG_DEBUG_SMI is not set
+# CONFIG_DEBUG_SMM_RELOCATION is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_ACPI is not set
+# CONFIG_REALMODE_DEBUG is not set
+# CONFIG_DEBUG_TPM is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_LLSHELL is not set
+# CONFIG_TRACE is not set
+# CONFIG_AP_CODE_IN_CAR is not set
+# CONFIG_RAMINIT_SYSINFO is not set
+# CONFIG_ENABLE_APIC_EXT_ID is not set
+# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
+# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
+# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
+# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
+
+#
+# Deprecated
+#
+# CONFIG_BOARD_HAS_HARD_RESET is not set
+# CONFIG_HAVE_BUS_CONFIG is not set
+# CONFIG_PCIE_TUNING is not set
+CONFIG_ID_SECTION_OFFSET=0x80
+CONFIG_CHROMEOS=y
+
+#
+# ChromeOS
+#
+CONFIG_VBNV_OFFSET=0x26
+CONFIG_VBNV_SIZE=0x10
+CONFIG_CHROMEOS_RAMOOPS=y
+CONFIG_CHROMEOS_RAMOOPS_RAM_START=0x00f00000
+CONFIG_CHROMEOS_RAMOOPS_RAM_SIZE=0x00100000
+CONFIG_FLASHMAP_OFFSET=0x00610000
diff --git a/configs/config.stumpy b/configs/config.stumpy
new file mode 100644
index 0000000..be2e5bb
--- /dev/null
+++ b/configs/config.stumpy
@@ -0,0 +1,401 @@
+#
+# Automatically generated make config: don't edit
+# coreboot version: 
+# Wed Oct 31 10:21:25 2012
+#
+
+#
+# General setup
+#
+CONFIG_EXPERT=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_COMPILER_LLVM_CLANG is not set
+# CONFIG_SCANBUILD_ENABLE is not set
+# CONFIG_CCACHE is not set
+# CONFIG_SCONFIG_GENPARSER is not set
+# CONFIG_USE_OPTION_TABLE is not set
+CONFIG_COMPRESS_RAMSTAGE=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+CONFIG_EARLY_CBMEM_INIT=y
+CONFIG_COLLECT_TIMESTAMPS=y
+CONFIG_USE_BLOBS=y
+CONFIG_REQUIRES_BLOB=y
+
+#
+# Mainboard
+#
+# CONFIG_VENDOR_AAEON is not set
+# CONFIG_VENDOR_ABIT is not set
+# CONFIG_VENDOR_ADVANSUS is not set
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_ARIMA is not set
+# CONFIG_VENDOR_ARTECGROUP is not set
+# CONFIG_VENDOR_ASI is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_A_TREND is not set
+# CONFIG_VENDOR_AVALUE is not set
+# CONFIG_VENDOR_AXUS is not set
+# CONFIG_VENDOR_AZZA is not set
+# CONFIG_VENDOR_BCOM is not set
+# CONFIG_VENDOR_BIFFEROS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BROADCOM is not set
+# CONFIG_VENDOR_COMPAL is not set
+# CONFIG_VENDOR_COMPAQ is not set
+# CONFIG_VENDOR_DIGITALLOGIC is not set
+# CONFIG_VENDOR_EAGLELION is not set
+# CONFIG_VENDOR_ECS is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+# CONFIG_VENDOR_GOOGLE is not set
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_IEI is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_IWAVE is not set
+# CONFIG_VENDOR_IWILL is not set
+# CONFIG_VENDOR_JETWAY is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LANNER is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIPPERT is not set
+# CONFIG_VENDOR_MITAC is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_NEC is not set
+# CONFIG_VENDOR_NEWISYS is not set
+# CONFIG_VENDOR_NOKIA is not set
+# CONFIG_VENDOR_NVIDIA is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_RCA is not set
+# CONFIG_VENDOR_RODA is not set
+CONFIG_VENDOR_SAMSUNG=y
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SOYO is not set
+# CONFIG_VENDOR_SUNW is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_TECHNEXION is not set
+# CONFIG_VENDOR_TECHNOLOGIC is not set
+# CONFIG_VENDOR_TELEVIDEO is not set
+# CONFIG_VENDOR_THOMSON is not set
+# CONFIG_VENDOR_TRAVERSE is not set
+# CONFIG_VENDOR_TYAN is not set
+# CONFIG_VENDOR_VIA is not set
+# CONFIG_VENDOR_WINENT is not set
+# CONFIG_VENDOR_WYSE is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_DIR="samsung/stumpy"
+CONFIG_MAINBOARD_PART_NUMBER="Stumpy"
+CONFIG_IRQ_SLOT_COUNT=18
+CONFIG_MAINBOARD_VENDOR="SAMSUNG"
+CONFIG_MAX_CPUS=8
+CONFIG_RAMTOP=0x200000
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_RAMBASE=0x100000
+CONFIG_VGA_BIOS_ID="8086,0106"
+CONFIG_STACK_SIZE=0x8000
+CONFIG_ACPI_SSDTX_NUM=0
+CONFIG_DRIVERS_PS2_KEYBOARD=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
+CONFIG_VGA_BIOS=y
+# CONFIG_CONSOLE_POST is not set
+# CONFIG_PCI_ROM_RUN is not set
+# CONFIG_UDELAY_IO is not set
+CONFIG_DCACHE_RAM_BASE=0xff7f0000
+CONFIG_DCACHE_RAM_SIZE=0x10000
+CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE=0x0
+# CONFIG_SERIAL_CPU_INIT is not set
+CONFIG_VGA_BIOS_FILE="3rdparty/mainboard/samsung/stumpy/snm_2124_coreboot.bin"
+CONFIG_BOARD_HAS_FADT=y
+# CONFIG_PCI_64BIT_PREF_MEM is not set
+CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
+CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/bd82x6x/bootblock.c"
+# CONFIG_MMCONF_SUPPORT_DEFAULT is not set
+# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
+# CONFIG_GENERATE_PIRQ_TABLE is not set
+CONFIG_LOGICAL_CPUS=y
+CONFIG_IOAPIC=y
+CONFIG_SMP=y
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL=8
+# CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL is not set
+# CONFIG_CONSOLE_SERIAL8250 is not set
+# CONFIG_USBDEBUG is not set
+CONFIG_VAR_MTRR_HOLE=y
+# CONFIG_LIFT_BSP_APIC_ID is not set
+# CONFIG_WAIT_BEFORE_CPUS_INIT is not set
+# CONFIG_K8_REV_F_SUPPORT is not set
+# CONFIG_BOARD_SAMSUNG_LUMPY is not set
+CONFIG_BOARD_SAMSUNG_STUMPY=y
+CONFIG_BOARD_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_1024=y
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=1024
+CONFIG_ROM_SIZE=0x100000
+CONFIG_CACHE_ROM_SIZE=0x100000
+CONFIG_ARCH_X86=y
+
+#
+# Architecture (x86)
+#
+# CONFIG_AP_IN_SIPI_WAIT is not set
+# CONFIG_SIPI_VECTOR_IN_ROM is not set
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_X86_BOOTBLOCK_SIMPLE=y
+# CONFIG_X86_BOOTBLOCK_NORMAL is not set
+CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_ROMCC is not set
+CONFIG_PC80_SYSTEM=y
+# CONFIG_HAVE_CMOS_DEFAULT is not set
+CONFIG_HAVE_ARCH_MEMSET=y
+CONFIG_HAVE_ARCH_MEMCPY=y
+# CONFIG_BIG_ENDIAN is not set
+CONFIG_LITTLE_ENDIAN=y
+CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
+# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
+# CONFIG_PCI_CONF2 is not set
+
+#
+# Chipset
+#
+
+#
+# CPU
+#
+CONFIG_SOCKET_SPECIFIC_OPTIONS=y
+CONFIG_CPU_ADDR_BITS=36
+CONFIG_XIP_ROM_SIZE=0x10000
+CONFIG_CPU_SPECIFIC_OPTIONS=y
+# CONFIG_CPU_AMD_AGESA is not set
+CONFIG_HAVE_INIT_TIMER=y
+CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
+CONFIG_CPU_INTEL_MODEL_206AX=y
+CONFIG_BOOTBLOCK_CPU_INIT="cpu/intel/model_206ax/bootblock.c"
+CONFIG_SMM_TSEG_SIZE=0x800000
+# CONFIG_ENABLE_VMX is not set
+CONFIG_MICROCODE_INCLUDE_PATH="src/cpu/intel/model_206ax"
+CONFIG_SSE2=y
+CONFIG_CPU_INTEL_SOCKET_RPGA989=y
+CONFIG_CACHE_MRC_BIN=y
+CONFIG_UDELAY_LAPIC=y
+# CONFIG_UDELAY_TSC is not set
+# CONFIG_UDELAY_TIMER2 is not set
+# CONFIG_TSC_CALIBRATE_WITH_IO is not set
+# CONFIG_TSC_SYNC_LFENCE is not set
+CONFIG_TSC_SYNC_MFENCE=y
+CONFIG_CACHE_ROM=y
+CONFIG_SMM_TSEG=y
+CONFIG_CACHE_AS_RAM=y
+CONFIG_AP_SIPI_VECTOR=0xfffff000
+CONFIG_MMX=y
+CONFIG_SSE=y
+CONFIG_MICROCODE_IN_CBFS=y
+
+#
+# Northbridge
+#
+CONFIG_VIDEO_MB=0
+# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
+# CONFIG_S3_VGA_ROM_RUN is not set
+# CONFIG_AMD_NB_CIMX is not set
+# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
+CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y
+CONFIG_CACHE_MRC_SIZE_KB=256
+CONFIG_MRC_CACHE_BASE=0xff800000
+CONFIG_EXTERNAL_MRC_BLOB=y
+CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x4000
+CONFIG_HAVE_MRC=y
+CONFIG_MRC_FILE="/build/stumpy/firmware/mrc.bin"
+
+#
+# Southbridge
+#
+CONFIG_EHCI_BAR=0xfef00000
+CONFIG_EHCI_DEBUG_OFFSET=0xa0
+# CONFIG_AMD_SB_CIMX is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
+# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set
+CONFIG_SOUTHBRIDGE_INTEL_BD82X6X=y
+CONFIG_SOUTH_BRIDGE_OPTIONS=y
+# CONFIG_SERIRQ_CONTINUOUS_MODE is not set
+
+#
+# Super I/O
+#
+CONFIG_SUPERIO_ITE_IT8772F=y
+
+#
+# Devices
+#
+CONFIG_VGA_BRIDGE_SETUP=y
+CONFIG_VGA_ROM_RUN=y
+# CONFIG_ON_DEVICE_ROM_RUN is not set
+CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y
+# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
+# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
+CONFIG_PCIX_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_PLUGIN_SUPPORT=y
+CONFIG_AGP_PLUGIN_SUPPORT=y
+CONFIG_CARDBUS_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_COMMON_CLOCK=y
+CONFIG_PCIEXP_ASPM=y
+
+#
+# Embedded Controllers
+#
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVERS_OXFORD_OXPCIE is not set
+# CONFIG_DRIVERS_SIL_3114 is not set
+CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_SMM is not set
+CONFIG_SPI_FLASH_EON=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_NO_FAST_READ=y
+# CONFIG_ELOG is not set
+CONFIG_PCI_BUS_SEGN_BITS=0
+CONFIG_MMCONF_SUPPORT=y
+
+#
+# Console
+#
+CONFIG_HAVE_USBDEBUG=y
+# CONFIG_CONSOLE_NE2K is not set
+CONFIG_CONSOLE_CBMEM=y
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x10000
+CONFIG_CONSOLE_CAR_BUFFER_SIZE=0xc00
+CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_8=y
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_MAXIMUM_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+# CONFIG_CONSOLE_LOGBUF is not set
+# CONFIG_NO_POST is not set
+CONFIG_POST_PORT=0x80
+CONFIG_CMOS_POST=y
+CONFIG_CMOS_POST_OFFSET=0x70
+CONFIG_HAVE_UART_IO_MAPPED=y
+# CONFIG_HAVE_UART_MEMORY_MAPPED is not set
+CONFIG_HAVE_ACPI_RESUME=y
+# CONFIG_HAVE_ACPI_SLIC is not set
+CONFIG_HAVE_HARD_RESET=y
+CONFIG_HAVE_MAINBOARD_RESOURCES=y
+CONFIG_HAVE_OPTION_TABLE=y
+# CONFIG_PIRQ_ROUTE is not set
+CONFIG_HAVE_SMI_HANDLER=y
+# CONFIG_PCI_IO_CFG_EXT is not set
+CONFIG_TPM=y
+CONFIG_USE_WATCHDOG_ON_BOOT=y
+# CONFIG_VGA is not set
+CONFIG_GFXUMA=y
+CONFIG_HAVE_ACPI_TABLES=y
+CONFIG_GENERATE_ACPI_TABLES=y
+# CONFIG_GENERATE_MP_TABLE is not set
+CONFIG_GENERATE_SMBIOS_TABLES=y
+
+#
+# System tables
+#
+CONFIG_WRITE_HIGH_TABLES=y
+# CONFIG_MULTIBOOT is not set
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# CONFIG_PAYLOAD_ELF is not set
+# CONFIG_PAYLOAD_SEABIOS is not set
+# CONFIG_PAYLOAD_FILO is not set
+# CONFIG_COMPRESSED_PAYLOAD_NRV2B is not set
+
+#
+# VGA BIOS
+#
+
+#
+# Display
+#
+CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
+CONFIG_FRAMEBUFFER_VESA_MODE=0x114
+CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y
+# CONFIG_BOOTSPLASH is not set
+
+#
+# Debugging
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_HAVE_DEBUG_RAM_SETUP is not set
+# CONFIG_HAVE_DEBUG_CAR is not set
+# CONFIG_HAVE_DEBUG_SMBUS is not set
+# CONFIG_DEBUG_SMI is not set
+# CONFIG_DEBUG_SMM_RELOCATION is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_ACPI is not set
+# CONFIG_REALMODE_DEBUG is not set
+# CONFIG_DEBUG_TPM is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_DEBUG_INTEL_ME is not set
+# CONFIG_LLSHELL is not set
+# CONFIG_TRACE is not set
+# CONFIG_AP_CODE_IN_CAR is not set
+# CONFIG_RAMINIT_SYSINFO is not set
+# CONFIG_ENABLE_APIC_EXT_ID is not set
+# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
+# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
+# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
+# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
+
+#
+# Deprecated
+#
+# CONFIG_BOARD_HAS_HARD_RESET is not set
+# CONFIG_HAVE_BUS_CONFIG is not set
+# CONFIG_PCIE_TUNING is not set
+CONFIG_ID_SECTION_OFFSET=0x80
+CONFIG_CHROMEOS=y
+
+#
+# ChromeOS
+#
+CONFIG_VBNV_OFFSET=0x26
+CONFIG_VBNV_SIZE=0x10
+CONFIG_CHROMEOS_RAMOOPS=y
+CONFIG_CHROMEOS_RAMOOPS_RAM_START=0x00f00000
+CONFIG_CHROMEOS_RAMOOPS_RAM_SIZE=0x00100000
+CONFIG_FLASHMAP_OFFSET=0x00670000
diff --git a/payloads/libpayload/libcbfs/cbfs_core.c b/payloads/libpayload/libcbfs/cbfs_core.c
index 4bf755b..7f6adfd 100644
--- a/payloads/libpayload/libcbfs/cbfs_core.c
+++ b/payloads/libpayload/libcbfs/cbfs_core.c
@@ -107,7 +107,7 @@
 		if (memcmp(CBFS_FILE_MAGIC, file->magic, strlen(CBFS_FILE_MAGIC)) != 0) {
 			// no file header found. corruption?
 			// proceed in aligned steps to resynchronize
-			LOG("ERROR: No file header found at %p, attempting to recover by searching for header\n", data);
+			LOG("WARNING: No file header found at %p, attempting to recover by searching for header\n", data);
 			data = phys_to_virt(CBFS_ALIGN_UP(virt_to_phys(data), align));
 			continue;
 		}
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 5486bb1..ec2b330 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -34,6 +34,12 @@
 OPTION_TABLE_H:=$(obj)/option_table.h
 endif
 
+ifeq ($(CONFIG_MICROCODE_IN_CBFS),y)
+cbfs-files-y += microcode_blob.bin
+microcode_blob.bin-file = $(obj)/microcode_blob.bin
+microcode_blob.bin-type = 0x53
+endif
+
 #######################################################################
 # Build the final rom image
 COREBOOT_ROM_DEPENDENCIES:=
@@ -319,6 +325,10 @@
 $(objcbfs)/romstage_null.debug: $$(romstage-objs) $(objgenerated)/romstage_null.ld
 	@printf "    LINK       $(subst $(obj)/,,$(@))\n"
 	$(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(objgenerated)/romstage_null.ld $(romstage-objs)
+	$(NM) $@ | grep -q " [DdBb] "; if [ $$? -eq 0 ]; then \
+		echo "Forbidden global variables in romstage:"; \
+		$(NM) $@ | grep " [DdBb] "; test "$(CONFIG_CPU_AMD_AGESA)" == y; \
+		else true; fi
 
 $(objcbfs)/romstage_xip.debug: $$(romstage-objs) $(objgenerated)/romstage_xip.ld
 	@printf "    LINK       $(subst $(obj)/,,$(@))\n"
diff --git a/src/arch/x86/boot/acpi.c b/src/arch/x86/boot/acpi.c
index 6932208..20bd725 100644
--- a/src/arch/x86/boot/acpi.c
+++ b/src/arch/x86/boot/acpi.c
@@ -32,6 +32,7 @@
 #include <device/pci.h>
 #include <cbmem.h>
 #include <cpu/x86/lapic_def.h>
+#include <cpu/cpu.h>
 #if CONFIG_COLLECT_TIMESTAMPS
 #include <timestamp.h>
 #endif
@@ -135,7 +136,7 @@
 unsigned long acpi_create_madt_lapics(unsigned long current)
 {
 	device_t cpu;
-	int cpu_index = 0;
+	int index = 0;
 
 	for (cpu = all_devices; cpu; cpu = cpu->next) {
 		if ((cpu->path.type != DEVICE_PATH_APIC) ||
@@ -145,8 +146,8 @@
 		if (!cpu->enabled)
 			continue;
 		current += acpi_create_madt_lapic((acpi_madt_lapic_t *)current,
-				cpu_index, cpu->path.apic.apic_id);
-		cpu_index++;
+				index, cpu->path.apic.apic_id);
+		index++;
 	}
 
 	return current;
@@ -558,9 +559,19 @@
 	/* If we happen to be resuming find wakeup vector and jump to OS. */
 	wake_vec = acpi_find_wakeup_vector();
 	if (wake_vec) {
+		u32 *gnvs_address = cbmem_find(CBMEM_ID_ACPI_GNVS);
+
+		/* Restore GNVS pointer in SMM if found */
+		if (gnvs_address && *gnvs_address) {
+			printk(BIOS_DEBUG, "Restore GNVS pointer to 0x%08x\n",
+			       *gnvs_address);
+			smm_setup_structures((void *)*gnvs_address, NULL, NULL);
+		}
+
 		/* Call mainboard resume handler first, if defined. */
 		if (mainboard_suspend_resume)
 			mainboard_suspend_resume();
+		post_code(POST_OS_RESUME);
 		acpi_jump_to_wakeup(wake_vec);
 	}
 }
@@ -700,3 +711,10 @@
 		       HIGH_MEMORY_SAVE);
 }
 #endif
+
+void acpi_save_gnvs(u32 gnvs_address)
+{
+	u32 *gnvs = cbmem_add(CBMEM_ID_ACPI_GNVS, sizeof(*gnvs));
+	if (gnvs)
+		*gnvs = gnvs_address;
+}
diff --git a/src/arch/x86/boot/acpigen.c b/src/arch/x86/boot/acpigen.c
index e7a297d..bec47fe 100644
--- a/src/arch/x86/boot/acpigen.c
+++ b/src/arch/x86/boot/acpigen.c
@@ -394,6 +394,32 @@
 	return len;
 }
 
+/* generates a func with max supported P states */
+int acpigen_write_PPC_NVS(void)
+{
+/*
+    Method (_PPC, 0, NotSerialized)
+    {
+        Return (PPCM)
+    }
+*/
+	int len;
+	/* method op */
+	acpigen_emit_byte(0x14);
+	len = acpigen_write_len_f();
+	len += acpigen_emit_namestring("_PPC");
+	/* no fnarg */
+	acpigen_emit_byte(0x00);
+	/* return */
+	acpigen_emit_byte(0xa4);
+	/* arg */
+	len += acpigen_emit_namestring("PPCM");
+	/* add all single bytes */
+	len += 3;
+	acpigen_patch_len(len - 1);
+	return len;
+}
+
 int acpigen_write_TPC(const char *gnvs_tpc_limit)
 {
 /*
diff --git a/src/arch/x86/boot/smbios.c b/src/arch/x86/boot/smbios.c
index f39bf04..313b680 100644
--- a/src/arch/x86/boot/smbios.c
+++ b/src/arch/x86/boot/smbios.c
@@ -29,6 +29,7 @@
 #include <cpu/x86/name.h>
 #include <cbfs_core.h>
 #include <arch/byteorder.h>
+#include <elog.h>
 #if CONFIG_CHROMEOS
 #include <vendorcode/google/chromeos/gnvs.h>
 #endif
@@ -296,6 +297,9 @@
 	len += smbios_write_type1(&current, handle++);
 	len += smbios_write_type3(&current, handle++);
 	len += smbios_write_type4(&current, handle++);
+#if CONFIG_ELOG
+	len += elog_smbios_write_type15(&current, handle++);
+#endif
 	len += smbios_write_type32(&current, handle++);
 
 	len += smbios_walk_device_tree(all_devices, &handle, &current);
diff --git a/src/arch/x86/include/arch/acpi.h b/src/arch/x86/include/arch/acpi.h
index 9f790cc..97afa1b 100644
--- a/src/arch/x86/include/arch/acpi.h
+++ b/src/arch/x86/include/arch/acpi.h
@@ -500,6 +500,7 @@
 void *acpi_find_wakeup_vector(void);
 void *acpi_get_wakeup_rsdp(void);
 void acpi_jump_to_wakeup(void *wakeup_addr);
+void acpi_save_gnvs(u32 gnvs_address);
 
 int acpi_get_sleep_type(void);
 #else	/* CONFIG_HAVE_ACPI_RESUME */
@@ -519,8 +520,4 @@
 
 #endif	/* CONFIG_GENERATE_ACPI_TABLES */
 
-#if CONFIG_CHROMEOS
-void acpi_get_vdat_info(void **vdat_addr, uint32_t *vdat_size);
-#endif /* CONFIG_CHROMEOS */
-
 #endif  /* __ASM_ACPI_H */
diff --git a/src/arch/x86/include/arch/acpigen.h b/src/arch/x86/include/arch/acpigen.h
index aebf508..5297aff 100644
--- a/src/arch/x86/include/arch/acpigen.h
+++ b/src/arch/x86/include/arch/acpigen.h
@@ -42,6 +42,7 @@
 int acpigen_write_name_byte(const char *name, uint8_t val);
 int acpigen_write_scope(const char *name);
 int acpigen_write_PPC(u8 nr);
+int acpigen_write_PPC_NVS(void);
 int acpigen_write_empty_PCT(void);
 int acpigen_write_empty_PTC(void);
 int acpigen_write_TPC(const char *gnvs_tpc_limit);
diff --git a/src/arch/x86/include/arch/cbfs.h b/src/arch/x86/include/arch/cbfs.h
index 635ff10..8a61d6e 100644
--- a/src/arch/x86/include/arch/cbfs.h
+++ b/src/arch/x86/include/arch/cbfs.h
@@ -1,3 +1,25 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef __INCLUDE_ARCH_CBFS__
+#define __INCLUDE_ARCH_CBFS__
+
 static void *walkcbfs(char *target)
 {
 	void *entry;
@@ -23,4 +45,4 @@
 {
 	asm volatile ("jmp *%0\n\t" : : "r" (addr), "a" (bist));
 }
-
+#endif
diff --git a/src/arch/x86/include/arch/cpu.h b/src/arch/x86/include/arch/cpu.h
index 0dc92fb..aa0412f 100644
--- a/src/arch/x86/include/arch/cpu.h
+++ b/src/arch/x86/include/arch/cpu.h
@@ -160,7 +160,7 @@
 
 struct cpu_info {
 	device_t cpu;
-	unsigned long index;
+	unsigned int index;
 };
 
 static inline struct cpu_info *cpu_info(void)
diff --git a/src/arch/x86/include/arch/pci_ops.h b/src/arch/x86/include/arch/pci_ops.h
index 955ccd3..eca9390 100644
--- a/src/arch/x86/include/arch/pci_ops.h
+++ b/src/arch/x86/include/arch/pci_ops.h
@@ -2,12 +2,18 @@
 #define ARCH_I386_PCI_OPS_H
 
 extern const struct pci_bus_operations pci_cf8_conf1;
-extern const struct pci_bus_operations pci_cf8_conf2;
 
 #if CONFIG_MMCONF_SUPPORT
 extern const struct pci_bus_operations pci_ops_mmconf;
 #endif
 
-void pci_set_method(device_t dev);
+static inline const struct pci_bus_operations *pci_config_default(void)
+{
+	return &pci_cf8_conf1;
+}
 
+static inline void pci_set_method(device_t dev)
+{
+	dev->ops->ops_pci_bus = pci_config_default();
+}
 #endif /* ARCH_I386_PCI_OPS_H */
diff --git a/src/arch/x86/include/bootblock_common.h b/src/arch/x86/include/bootblock_common.h
index bd19682..c9674f4 100644
--- a/src/arch/x86/include/bootblock_common.h
+++ b/src/arch/x86/include/bootblock_common.h
@@ -34,3 +34,27 @@
 	}
 }
 #endif
+
+#if CONFIG_CMOS_POST
+#include <pc80/mc146818rtc.h>
+
+static void cmos_post_init(void)
+{
+	u8 magic = CMOS_POST_BANK_0_MAGIC;
+
+	/* Switch to the other bank */
+	switch (cmos_read(CMOS_POST_BANK_OFFSET)) {
+	case CMOS_POST_BANK_1_MAGIC:
+		break;
+	case CMOS_POST_BANK_0_MAGIC:
+		magic = CMOS_POST_BANK_1_MAGIC;
+		break;
+	default:
+		/* Initialize to zero */
+		cmos_write(0, CMOS_POST_BANK_0_OFFSET);
+		cmos_write(0, CMOS_POST_BANK_1_OFFSET);
+	}
+
+	cmos_write(magic, CMOS_POST_BANK_OFFSET);
+}
+#endif
diff --git a/src/arch/x86/include/stddef.h b/src/arch/x86/include/stddef.h
index e4fc019..fc89de5 100644
--- a/src/arch/x86/include/stddef.h
+++ b/src/arch/x86/include/stddef.h
@@ -2,7 +2,10 @@
 #define I386_STDDEF_H
 
 typedef long ptrdiff_t;
-typedef unsigned long size_t;
+#ifndef __SIZE_TYPE__
+#define __SIZE_TYPE__ unsigned long
+#endif
+typedef __SIZE_TYPE__ size_t;
 typedef long ssize_t;
 
 typedef int wchar_t;
@@ -12,4 +15,10 @@
 
 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
 
+#ifdef __PRE_RAM__
+#define ROMSTAGE_CONST const
+#else
+#define ROMSTAGE_CONST
+#endif
+
 #endif /* I386_STDDEF_H */
diff --git a/src/arch/x86/init/bootblock.ld b/src/arch/x86/init/bootblock.ld
index ca4e820..7245794 100644
--- a/src/arch/x86/init/bootblock.ld
+++ b/src/arch/x86/init/bootblock.ld
@@ -53,5 +53,4 @@
 	}
 
 	_bogus = ASSERT((SIZEOF(.car.data) <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
-	_bogus = ASSERT((SIZEOF(.bss) + SIZEOF(.data)) == 0 || CONFIG_CPU_AMD_AGESA, "Do not use global variables in romstage");
 }
diff --git a/src/arch/x86/init/bootblock_simple.c b/src/arch/x86/init/bootblock_simple.c
index 41f73b4..fd9ba22 100644
--- a/src/arch/x86/init/bootblock_simple.c
+++ b/src/arch/x86/init/bootblock_simple.c
@@ -10,6 +10,9 @@
 #if CONFIG_USE_OPTION_TABLE
 		sanitize_cmos();
 #endif
+#if CONFIG_CMOS_POST
+		cmos_post_init();
+#endif
 	}
 
 	const char* target1 = "fallback/romstage";
diff --git a/src/arch/x86/lib/Makefile.inc b/src/arch/x86/lib/Makefile.inc
index 4375952..2186072 100644
--- a/src/arch/x86/lib/Makefile.inc
+++ b/src/arch/x86/lib/Makefile.inc
@@ -3,7 +3,6 @@
 ramstage-y += pci_ops_conf1.c
 ramstage-$(CONFIG_PCI_CONF2) += pci_ops_conf2.c
 ramstage-$(CONFIG_MMCONF_SUPPORT) += pci_ops_mmconf.c
-ramstage-y += pci_ops_auto.c
 ramstage-y += exception.c
 ramstage-$(CONFIG_IOAPIC) += ioapic.c
 ramstage-y += memset.c
diff --git a/src/arch/x86/lib/c_start.S b/src/arch/x86/lib/c_start.S
index 005ac33..7ac94a9 100644
--- a/src/arch/x86/lib/c_start.S
+++ b/src/arch/x86/lib/c_start.S
@@ -16,17 +16,19 @@
 
 	post_code(POST_ENTRY_C_START)		/* post 13 */
 
-	/** clear stack */
+	/** poison the stack. Code should not count on the
+	 * stack being full of zeros.
+	 */
 	cld
 	leal	_stack, %edi
 	movl	$_estack, %ecx
 	subl	%edi, %ecx
 	shrl	$2, %ecx   /* it is 32 bit aligned, right? */
-	xorl	%eax, %eax
+	movl	$0xDEADBEEF, %eax
 	rep
 	stosl
 
-	/** clear bss */
+	/** clear bss, which is zero by definition */
 	leal	_bss, %edi
 	movl	$_ebss, %ecx
 	subl	%edi, %ecx
diff --git a/src/arch/x86/lib/cpu.c b/src/arch/x86/lib/cpu.c
index 98ede06..be8e38d 100644
--- a/src/arch/x86/lib/cpu.c
+++ b/src/arch/x86/lib/cpu.c
@@ -234,7 +234,7 @@
 	cpu->ops = driver ? driver->ops : NULL;
 }
 
-void cpu_initialize(void)
+void cpu_initialize(unsigned int index)
 {
 	/* Because we busy wait at the printk spinlock.
 	 * It is important to keep the number of printed messages
@@ -247,7 +247,7 @@
 
 	info = cpu_info();
 
-	printk(BIOS_INFO, "Initializing CPU #%ld\n", info->index);
+	printk(BIOS_INFO, "Initializing CPU #%d\n", index);
 
 	cpu = info->cpu;
 	if (!cpu) {
@@ -284,7 +284,7 @@
 		cpu->ops->init(cpu);
 	}
 
-	printk(BIOS_INFO, "CPU #%ld initialized\n", info->index);
+	printk(BIOS_INFO, "CPU #%d initialized\n", index);
 
 	return;
 }
diff --git a/src/arch/x86/lib/pci_ops_auto.c b/src/arch/x86/lib/pci_ops_auto.c
deleted file mode 100644
index 58e098b..0000000
--- a/src/arch/x86/lib/pci_ops_auto.c
+++ /dev/null
@@ -1,107 +0,0 @@
-#include <stddef.h>
-#include <console/console.h>
-#include <arch/io.h>
-#include <arch/pciconf.h>
-#include <device/pci.h>
-#include <device/pci_ids.h>
-#include <device/pci_ops.h>
-
-#if CONFIG_PCI_CONF2
-/*
- * Before we decide to use direct hardware access mechanisms, we try to do some
- * trivial checks to ensure it at least _seems_ to be working -- we just test
- * whether bus 00 contains a host bridge (this is similar to checking
- * techniques used in XFree86, but ours should be more reliable since we
- * attempt to make use of direct access hints provided by the PCI BIOS).
- *
- * This should be close to trivial, but it isn't, because there are buggy
- * chipsets (yes, you guessed it, by Intel and Compaq) that have no class ID.
- */
-static int pci_sanity_check(const struct pci_bus_operations *o)
-{
-	uint16_t class, vendor;
-	unsigned bus;
-	int devfn;
-	struct bus pbus; /* Dummy device */
-#define PCI_CLASS_BRIDGE_HOST		0x0600
-#define PCI_CLASS_DISPLAY_VGA		0x0300
-#define PCI_VENDOR_ID_COMPAQ		0x0e11
-#define PCI_VENDOR_ID_INTEL		0x8086
-#define PCI_VENDOR_ID_MOTOROLA		0x1057
-
-	for (bus = 0, devfn = 0; devfn < 0x100; devfn++) {
-		class = o->read16(&pbus, bus, devfn, PCI_CLASS_DEVICE);
-		vendor = o->read16(&pbus, bus, devfn, PCI_VENDOR_ID);
-		if (((class == PCI_CLASS_BRIDGE_HOST) || (class == PCI_CLASS_DISPLAY_VGA)) ||
-			((vendor == PCI_VENDOR_ID_INTEL) || (vendor == PCI_VENDOR_ID_COMPAQ) ||
-				(vendor == PCI_VENDOR_ID_MOTOROLA))) {
-			return 1;
-		}
-	}
-	printk(BIOS_ERR, "PCI: Sanity check failed\n");
-	return 0;
-}
-
-static struct pci_bus_operations *pci_bus_fallback_ops = NULL;
-
-static const struct pci_bus_operations *pci_check_direct(void)
-{
-	unsigned int tmp;
-
-	/*
-	 * Check if configuration type 1 works.
-	 */
-	{
-		outb(0x01, 0xCFB);
-		tmp = inl(0xCF8);
-		outl(0x80000000, 0xCF8);
-		if ((inl(0xCF8) == 0x80000000) &&
-			pci_sanity_check(&pci_cf8_conf1))
-		{
-			outl(tmp, 0xCF8);
-			printk(BIOS_DEBUG, "PCI: Using configuration type 1\n");
-			return &pci_cf8_conf1;
-		}
-		outl(tmp, 0xCF8);
-	}
-
-	/*
-	 * Check if configuration type 2 works.
-	 */
-	{
-		outb(0x00, 0xCFB);
-		outb(0x00, 0xCF8);
-		outb(0x00, 0xCFA);
-		if ((inb(0xCF8) == 0x00 && inb(0xCFA) == 0x00) &&
-			pci_sanity_check(&pci_cf8_conf2))
-		{
-			printk(BIOS_DEBUG, "PCI: Using configuration type 2\n");
-			return &pci_cf8_conf2;
-		}
-	}
-
-	die("pci_check_direct failed\n");
-	return NULL;
-}
-
-const struct pci_bus_operations *pci_remember_direct(void)
-{
-	if (!pci_bus_fallback_ops)
-		pci_bus_fallback_ops = (struct pci_bus_operations *)pci_check_direct();
-	return pci_bus_fallback_ops;
-}
-#else
-const struct pci_bus_operations *pci_remember_direct(void)
-{
-	return &pci_cf8_conf1;
-}
-#endif
-
-/** Set the method to be used for PCI, type I or type II
- */
-void pci_set_method(device_t dev)
-{
-	printk(BIOS_INFO, "Finding PCI configuration type.\n");
-	dev->ops->ops_pci_bus = pci_remember_direct();
-	post_code(0x5f);
-}
diff --git a/src/arch/x86/lib/pci_ops_conf2.c b/src/arch/x86/lib/pci_ops_conf2.c
deleted file mode 100644
index e89c933..0000000
--- a/src/arch/x86/lib/pci_ops_conf2.c
+++ /dev/null
@@ -1,80 +0,0 @@
-#include <console/console.h>
-#include <arch/io.h>
-#include <arch/pciconf.h>
-#include <device/pci.h>
-#include <device/pci_ids.h>
-#include <device/pci_ops.h>
-/*
- * Functions for accessing PCI configuration space with type 2 accesses
- */
-
-#define IOADDR(devfn, where)	((0xC000 | ((devfn & 0x78) << 5)) + where)
-#define FUNC(devfn)		(((devfn & 7) << 1) | 0xf0)
-#define SET(bus,devfn)		outb(FUNC(devfn), 0xCF8); outb(bus, 0xCFA);
-
-static uint8_t pci_conf2_read_config8(struct bus *pbus, int bus, int devfn,
-				      int where)
-{
-	uint8_t value;
-	SET(bus, devfn);
-	value = inb(IOADDR(devfn, where));
-	outb(0, 0xCF8);
-	return value;
-}
-
-static uint16_t pci_conf2_read_config16(struct bus *pbus, int bus, int devfn,
-					int where)
-{
-	uint16_t value;
-	SET(bus, devfn);
-	value = inw(IOADDR(devfn, where));
-	outb(0, 0xCF8);
-	return value;
-}
-
-static uint32_t pci_conf2_read_config32(struct bus *pbus, int bus, int devfn,
-					int where)
-{
-	uint32_t value;
-	SET(bus, devfn);
-	value = inl(IOADDR(devfn, where));
-	outb(0, 0xCF8);
-	return value;
-}
-
-static void pci_conf2_write_config8(struct bus *pbus, int bus, int devfn,
-				    int where, uint8_t value)
-{
-	SET(bus, devfn);
-	outb(value, IOADDR(devfn, where));
-	outb(0, 0xCF8);
-}
-
-static void pci_conf2_write_config16(struct bus *pbus, int bus, int devfn,
-				     int where, uint16_t value)
-{
-	SET(bus, devfn);
-	outw(value, IOADDR(devfn, where));
-	outb(0, 0xCF8);
-}
-
-static void pci_conf2_write_config32(struct bus *pbus, int bus, int devfn,
-				     int where, uint32_t value)
-{
-	SET(bus, devfn);
-	outl(value, IOADDR(devfn, where));
-	outb(0, 0xCF8);
-}
-
-#undef SET
-#undef IOADDR
-#undef FUNC
-
-const struct pci_bus_operations pci_cf8_conf2 = {
-	.read8 = pci_conf2_read_config8,
-	.read16 = pci_conf2_read_config16,
-	.read32 = pci_conf2_read_config32,
-	.write8 = pci_conf2_write_config8,
-	.write16 = pci_conf2_write_config16,
-	.write32 = pci_conf2_write_config32,
-};
diff --git a/src/arch/x86/lib/romstage_console.c b/src/arch/x86/lib/romstage_console.c
index 25eda9b..78a8aec 100644
--- a/src/arch/x86/lib/romstage_console.c
+++ b/src/arch/x86/lib/romstage_console.c
@@ -29,7 +29,7 @@
 #include <console/ne2k.h>
 #endif
 
-static void console_tx_byte(unsigned char byte)
+void console_tx_byte(unsigned char byte)
 {
 	if (byte == '\n')
 		console_tx_byte('\r');
@@ -54,7 +54,7 @@
 #endif
 }
 
-static void console_tx_flush(void)
+void console_tx_flush(void)
 {
 #if CONFIG_CONSOLE_SERIAL8250MEM
 	uart8250_mem_tx_flush(CONFIG_OXFORD_OXPCIE_BASE_ADDRESS + 0x1000);
diff --git a/src/boot/hardwaremain.c b/src/boot/hardwaremain.c
index d78b859..27edc1a 100644
--- a/src/boot/hardwaremain.c
+++ b/src/boot/hardwaremain.c
@@ -35,6 +35,7 @@
 #include <boot/tables.h>
 #include <boot/elf.h>
 #include <cbfs.h>
+#include <lib.h>
 #if CONFIG_HAVE_ACPI_RESUME
 #include <arch/acpi.h>
 #endif
@@ -101,13 +102,14 @@
 #endif
 	/* Now actually enable devices on the bus */
 	dev_enable();
+	post_code(POST_DEVICES_ENABLED);
 
 #if CONFIG_COLLECT_TIMESTAMPS
 	timestamps[4] = rdtsc();
 #endif
 	/* And of course initialize devices on the bus */
 	dev_initialize();
-	post_code(POST_DEVICES_ENABLED);
+	post_code(POST_DEVICES_INITIALIZED);
 
 #if CONFIG_COLLECT_TIMESTAMPS
 	timestamps[5] = rdtsc();
@@ -143,7 +145,19 @@
 	lb_mem = write_tables();
 
 	timestamp_add_now(TS_LOAD_PAYLOAD);
-	cbfs_load_payload(lb_mem, CONFIG_CBFS_PREFIX "/payload");
-	printk(BIOS_ERR, "Boot failed.\n");
+
+	void *payload;
+	payload = cbfs_load_payload(lb_mem, CONFIG_CBFS_PREFIX "/payload");
+	if (! payload)
+		die("Could not find a payload\n");
+
+	printk(BIOS_DEBUG, "Got a payload\n");
+	/* Before we go off to run the payload, see if
+	 * we stayed within our bounds.
+	 */
+	checkstack(&_estack, 0);
+
+	selfboot(lb_mem, payload);
+	printk(BIOS_EMERG, "Boot failed");
 }
 
diff --git a/src/boot/selfboot.c b/src/boot/selfboot.c
index 3c31023..fd5b382 100644
--- a/src/boot/selfboot.c
+++ b/src/boot/selfboot.c
@@ -494,7 +494,7 @@
 	return 1;
 }
 
-static int selfboot(struct lb_memory *mem, struct cbfs_payload *payload)
+int selfboot(struct lb_memory *mem, struct cbfs_payload *payload)
 {
 	u32 entry=0;
 	struct segment head;
@@ -532,13 +532,7 @@
 	struct cbfs_payload *payload;
 
 	payload = (struct cbfs_payload *)cbfs_find_file(name, CBFS_TYPE_PAYLOAD);
-	if (payload == NULL)
-		return (void *) -1;
-	printk(BIOS_DEBUG, "Got a payload\n");
 
-	selfboot(lb_mem, payload);
-	printk(BIOS_EMERG, "SELFBOOT RETURNED!\n");
-
-	return (void *) -1;
+	return payload;
 }
 
diff --git a/src/console/Kconfig b/src/console/Kconfig
index f1129a1..c1c2012 100644
--- a/src/console/Kconfig
+++ b/src/console/Kconfig
@@ -373,5 +373,23 @@
 	  usually displayed using a so-called "POST card" ISA/PCI/PCI-E
 	  device) on the debug console.
 
+config CMOS_POST
+	bool "Store post codes in CMOS for debugging"
+	depends on !NO_POST
+	default n
+	help
+	  If enabled, coreboot will store post codes in CMOS and switch between
+	  two offsets on each boot so the last post code in the previous boot
+	  can be retrieved.  This uses 3 bytes of CMOS.
+
+config CMOS_POST_OFFSET
+	hex "Offset into CMOS to store POST codes"
+	depends on CMOS_POST
+	default 0
+	help
+	  If CMOS_POST is enabled then an offset into CMOS must be provided.
+	  If CONFIG_HAVE_OPTION_TABLE is enabled then it will use the value
+	  defined in the mainboard option table.
+
 endmenu
 
diff --git a/src/console/Makefile.inc b/src/console/Makefile.inc
index f3b8758..f8928ad 100644
--- a/src/console/Makefile.inc
+++ b/src/console/Makefile.inc
@@ -7,6 +7,7 @@
 
 smm-y += printk.c
 smm-y += vtxprintf.c
+smm-$(CONFIG_SMM_TSEG) += die.c
 
 romstage-y += vtxprintf.c
 romstage-$(CONFIG_CACHE_AS_RAM) += console.c
diff --git a/src/console/post.c b/src/console/post.c
index 08336a2..27f1692 100644
--- a/src/console/post.c
+++ b/src/console/post.c
@@ -21,9 +21,67 @@
 
 #include <arch/io.h>
 #include <console/console.h>
+#include <pc80/mc146818rtc.h>
+#include <elog.h>
 
 /* Write POST information */
 
+/* Some mainboards have very nice features beyond just a simple
+ * display. They can override this function.
+ */
+void __attribute__((weak)) mainboard_post(uint8_t value)
+{
+}
+
+#if CONFIG_CMOS_POST
+
+#if !defined(__PRE_RAM__)
+void cmos_post_log(void)
+{
+	u8 code;
+
+	/* Get post code from other bank */
+	switch (cmos_read(CMOS_POST_BANK_OFFSET)) {
+	case CMOS_POST_BANK_0_MAGIC:
+		code = cmos_read(CMOS_POST_BANK_1_OFFSET);
+		break;
+	case CMOS_POST_BANK_1_MAGIC:
+		code = cmos_read(CMOS_POST_BANK_0_OFFSET);
+		break;
+	default:
+		return;
+	}
+
+	/* Check last post code in previous boot against normal list */
+	switch (code) {
+	case POST_OS_BOOT:
+	case POST_OS_RESUME:
+	case POST_ENTER_ELF_BOOT:
+	case 0:
+		break;
+	default:
+		printk(BIOS_WARNING, "POST: Unexpected post code "
+		       "in previous boot: 0x%02x\n", code);
+#if CONFIG_ELOG
+		elog_add_event_word(ELOG_TYPE_LAST_POST_CODE, code);
+#endif
+	}
+}
+#endif /* !__PRE_RAM__ */
+
+static void cmos_post_code(u8 value)
+{
+	switch (cmos_read(CMOS_POST_BANK_OFFSET)) {
+	case CMOS_POST_BANK_0_MAGIC:
+		cmos_write(value, CMOS_POST_BANK_0_OFFSET);
+		break;
+	case CMOS_POST_BANK_1_MAGIC:
+		cmos_write(value, CMOS_POST_BANK_1_OFFSET);
+		break;
+	}
+}
+#endif /* CONFIG_CMOS_POST */
+
 void post_code(uint8_t value)
 {
 #if !CONFIG_NO_POST
@@ -32,6 +90,10 @@
 	print_emerg_hex8(value);
 	print_emerg("\n");
 #endif
+#if CONFIG_CMOS_POST
+	cmos_post_code(value);
+#endif
 	outb(value, CONFIG_POST_PORT);
+	mainboard_post(value);
 #endif
 }
diff --git a/src/console/uart8250mem_console.c b/src/console/uart8250mem_console.c
index 923df99..ed77237 100644
--- a/src/console/uart8250mem_console.c
+++ b/src/console/uart8250mem_console.c
@@ -23,7 +23,7 @@
 
 static u32 uart_bar = 0;
 
-static void uartmem_init(void)
+void uartmem_init(void)
 {
 	uart_bar = uart_mem_init();
 }
diff --git a/src/console/vtxprintf.c b/src/console/vtxprintf.c
index a370e5f..28c5a60 100644
--- a/src/console/vtxprintf.c
+++ b/src/console/vtxprintf.c
@@ -170,7 +170,7 @@
 
 		/* get the conversion qualifier */
 		qualifier = -1;
-		if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L') {
+		if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt == 'z') {
 			qualifier = *fmt;
 			++fmt;
 			if (*fmt == 'l') {
@@ -218,7 +218,6 @@
 				field_width, precision, flags);
 			continue;
 
-
 		case 'n':
 			if (qualifier == 'L') {
 				long long *ip = va_arg(args, long long *);
@@ -265,6 +264,8 @@
 			num = va_arg(args, unsigned long long);
 		} else if (qualifier == 'l') {
 			num = va_arg(args, unsigned long);
+		} else if (qualifier == 'z') {
+			num = va_arg(args, size_t);
 		} else if (qualifier == 'h') {
 			num = (unsigned short) va_arg(args, int);
 			if (flags & SIGN)
diff --git a/src/cpu/Kconfig b/src/cpu/Kconfig
index acb9bb5..c48ee80 100644
--- a/src/cpu/Kconfig
+++ b/src/cpu/Kconfig
@@ -23,6 +23,7 @@
 # yet be dropped completely.
 config MAX_PHYSICAL_CPUS
 	int
+	depends on CPU_AMD_MODEL_10XXX || CPU_AMD_MODEL_FXX || CPU_AMD_AGESA
 	default 1
 
 config SMP
@@ -68,4 +69,10 @@
 		Unset this if you don't want the MTRR code to use
 		subtractive MTRRs
 
+config MICROCODE_IN_CBFS
+	bool "Look for microcode in CBFS"
+	default n
+	help
+	  Send coreboot debug output to a memory mapped serial port console.
+
 endif # ARCH_X86
diff --git a/src/cpu/amd/agesa/Kconfig b/src/cpu/amd/agesa/Kconfig
index 18f74e8..b3f895f 100644
--- a/src/cpu/amd/agesa/Kconfig
+++ b/src/cpu/amd/agesa/Kconfig
@@ -24,6 +24,7 @@
         default y if CPU_AMD_AGESA_FAMILY14
         default y if CPU_AMD_AGESA_FAMILY15
         default n
+	select TSC_SYNC_LFENCE
 
 if CPU_AMD_AGESA
 
diff --git a/src/cpu/amd/agesa/s3_resume.c b/src/cpu/amd/agesa/s3_resume.c
index 16c959a..cae7e4e 100644
--- a/src/cpu/amd/agesa/s3_resume.c
+++ b/src/cpu/amd/agesa/s3_resume.c
@@ -29,7 +29,9 @@
 #endif
 #include <device/device.h>
 #include <device/pci.h>
+#ifndef __PRE_RAM__
 #include <device/pci_ops.h>
+#endif
 #include <arch/io.h>
 #include <arch/acpi.h>
 #include <string.h>
diff --git a/src/cpu/amd/model_10xxx/Kconfig b/src/cpu/amd/model_10xxx/Kconfig
index 221d044..0890771 100644
--- a/src/cpu/amd/model_10xxx/Kconfig
+++ b/src/cpu/amd/model_10xxx/Kconfig
@@ -3,6 +3,7 @@
 	select SSE
 	select SSE2
 	select MMCONF_SUPPORT_DEFAULT
+	select TSC_SYNC_LFENCE
 
 if CPU_AMD_MODEL_10XXX
 config CPU_ADDR_BITS
diff --git a/src/cpu/amd/model_fxx/Kconfig b/src/cpu/amd/model_fxx/Kconfig
index e04605b..0afc4b0 100644
--- a/src/cpu/amd/model_fxx/Kconfig
+++ b/src/cpu/amd/model_fxx/Kconfig
@@ -3,6 +3,7 @@
 	select MMX
 	select SSE
 	select SSE2
+	select TSC_SYNC_LFENCE
 
 if CPU_AMD_MODEL_FXX
 config UDELAY_IO
diff --git a/src/cpu/intel/microcode/Makefile.inc b/src/cpu/intel/microcode/Makefile.inc
index 6631019..f4d0102 100644
--- a/src/cpu/intel/microcode/Makefile.inc
+++ b/src/cpu/intel/microcode/Makefile.inc
@@ -1 +1,15 @@
 ramstage-y += microcode.c
+
+
+ifeq ($(CONFIG_MICROCODE_IN_CBFS),y)
+
+SRC_PATH = src/cpu/intel/microcode
+FLAGS = -I $(CONFIG_MICROCODE_INCLUDE_PATH) -include $(obj)/config.h
+$(obj)/microcode_blob.o: $(SRC_PATH)/microcode_blob.c
+	$(CC) $(FLAGS) -MMD -c -o $@ $<
+
+$(obj)/microcode_blob.bin: $(obj)/microcode_blob.o
+	objcopy -j .data -O binary $< $@
+
+-include $(obj)/microcode_blob.d
+endif
diff --git a/src/cpu/intel/microcode/microcode.c b/src/cpu/intel/microcode/microcode.c
index ec42fb9..e84bad9 100644
--- a/src/cpu/intel/microcode/microcode.c
+++ b/src/cpu/intel/microcode/microcode.c
@@ -1,6 +1,7 @@
 /*
  * This file is part of the coreboot project.
  *
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
  * Copyright (C) 2000 Ronald G. Minnich
  *
  * This program is free software; you can redistribute it and/or modify
@@ -27,6 +28,14 @@
 #include <cpu/x86/msr.h>
 #include <cpu/intel/microcode.h>
 
+#if CONFIG_MICROCODE_IN_CBFS
+#ifdef __PRE_RAM__
+#include <arch/cbfs.h>
+#else
+#include <cbfs.h>
+#endif
+#endif
+
 struct microcode {
 	u32 hdrver;	/* Header Version */
 	u32 rev;	/* Update Revision */
@@ -68,6 +77,9 @@
 	return msr.hi;
 }
 
+#if CONFIG_MICROCODE_IN_CBFS
+static
+#endif
 void intel_update_microcode(const void *microcode_updates)
 {
 	u32 eax;
@@ -115,8 +127,8 @@
 #if !defined(__ROMCC__)
 			printk(BIOS_DEBUG, "microcode: updated to revision "
 				    "0x%x date=%04x-%02x-%02x\n", new_rev,
-				    m->date & 0xffff, (m->date >> 16) & 0xff,
-				    (m->date >> 24) & 0xff);
+				    m->date & 0xffff, (m->date >> 24) & 0xff,
+				    (m->date >> 16) & 0xff);
 #endif
 			break;
 		}
@@ -131,3 +143,21 @@
 		}
 	}
 }
+
+#if CONFIG_MICROCODE_IN_CBFS
+
+#define MICROCODE_CBFS_FILE "microcode_blob.bin"
+
+void intel_update_microcode_from_cbfs(void)
+{
+	void *microcode_blob;
+
+#ifdef __PRE_RAM__
+	microcode_blob = walkcbfs((char *) MICROCODE_CBFS_FILE);
+#else
+	microcode_blob = cbfs_find_file(MICROCODE_CBFS_FILE,
+					CBFS_TYPE_MICROCODE);
+#endif
+	intel_update_microcode(microcode_blob);
+}
+#endif
diff --git a/src/mainboard/intel/eagleheights/chip.h b/src/cpu/intel/microcode/microcode_blob.c
similarity index 84%
rename from src/mainboard/intel/eagleheights/chip.h
rename to src/cpu/intel/microcode/microcode_blob.c
index 3ae8657..69238a9 100644
--- a/src/mainboard/intel/eagleheights/chip.h
+++ b/src/cpu/intel/microcode/microcode_blob.c
@@ -1,7 +1,7 @@
 /*
  * This file is part of the coreboot project.
  *
- * Copyright (C) 2007-2008 coresystems GmbH
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,6 +17,6 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-extern struct chip_operations mainboard_ops;
-
-struct mainboard_config {};
+unsigned microcode[] = {
+#include <microcode_blob.h>
+};
diff --git a/src/cpu/intel/model_1067x/Kconfig b/src/cpu/intel/model_1067x/Kconfig
index b079922..852c9cd 100644
--- a/src/cpu/intel/model_1067x/Kconfig
+++ b/src/cpu/intel/model_1067x/Kconfig
@@ -2,3 +2,4 @@
 	bool
 	select SMP
 	select SSE2
+	select TSC_SYNC_MFENCE
diff --git a/src/cpu/intel/model_106cx/Kconfig b/src/cpu/intel/model_106cx/Kconfig
index 09449cb..ce4957d 100644
--- a/src/cpu/intel/model_106cx/Kconfig
+++ b/src/cpu/intel/model_106cx/Kconfig
@@ -4,3 +4,4 @@
 	select SSE2
 	select UDELAY_LAPIC
 	select AP_IN_SIPI_WAIT
+	select TSC_SYNC_MFENCE
diff --git a/src/cpu/intel/model_206ax/Kconfig b/src/cpu/intel/model_206ax/Kconfig
index c11f21a..c006c7a 100644
--- a/src/cpu/intel/model_206ax/Kconfig
+++ b/src/cpu/intel/model_206ax/Kconfig
@@ -12,7 +12,9 @@
 	select SSE2
 	select UDELAY_LAPIC
 	select SMM_TSEG
+	select MICROCODE_IN_CBFS
 	#select AP_IN_SIPI_WAIT
+	select TSC_SYNC_MFENCE
 
 config BOOTBLOCK_CPU_INIT
 	string
@@ -30,24 +32,7 @@
 	bool "Enable VMX for virtualization"
 	default n
 
-endif
-
-if CPU_INTEL_MODEL_206AX
-   config CPU_MODEL_NAME
+config MICROCODE_INCLUDE_PATH
 	string
-	default "Intel SandyBridge CPU"
-
-   config CPU_MODEL_INDEX
-	hex
-	default 0x2a
-endif
-
-if CPU_INTEL_MODEL_306AX
-   config CPU_MODEL_NAME
-	string
-	default "Intel IvyBridge CPU"
-
-   config CPU_MODEL_INDEX
-	hex
-	default 0x3a
+	default "src/cpu/intel/model_206ax"
 endif
diff --git a/src/cpu/intel/model_206ax/acpi.c b/src/cpu/intel/model_206ax/acpi.c
index 1a8ceb7..c8c30a4 100644
--- a/src/cpu/intel/model_206ax/acpi.c
+++ b/src/cpu/intel/model_206ax/acpi.c
@@ -44,15 +44,8 @@
 	if (c.x86 != 6)
 		return 1;
 
-	switch (c.x86_model) {
-	case CONFIG_CPU_MODEL_INDEX:
-		result = cpuid_ext(0xb, 1);
-		cores = result.ebx & 0xff;
-		break;
-	default:
-		cores = (cpuid_ebx(1) >> 16) & 0xff;
-		break;
-	}
+	result = cpuid_ext(0xb, 1);
+	cores = result.ebx & 0xff;
 
 	return cores;
 }
@@ -85,7 +78,7 @@
 		length += acpigen_write_CST_package_entry(&cstates[c2]);
 	}
 	if (c3 > 0) {
-		cstates[c2].ctype = 2;
+		cstates[c3].ctype = 3;
 		length += acpigen_write_CST_package_entry(&cstates[c3]);
 	}
 
@@ -235,7 +228,16 @@
 	/* Get bus ratio limits and calculate clock speeds */
 	msr = rdmsr(MSR_PLATFORM_INFO);
 	ratio_min = (msr.hi >> (40-32)) & 0xff; /* Max Efficiency Ratio */
-	ratio_max = (msr.lo >> 8) & 0xff;       /* Max Non-Turbo Ratio */
+
+	/* Determine if this CPU has configurable TDP */
+	if (cpu_config_tdp_levels()) {
+		/* Set max ratio to nominal TDP ratio */
+		msr = rdmsr(MSR_CONFIG_TDP_NOMINAL);
+		ratio_max = msr.lo & 0xff;
+	} else {
+		/* Max Non-Turbo Ratio */
+		ratio_max = (msr.lo >> 8) & 0xff;
+	}
 	clock_max = ratio_max * SANDYBRIDGE_BCLK;
 
 	/* Calculate CPU TDP in mW */
@@ -248,7 +250,7 @@
 	len = acpigen_write_empty_PCT();
 
 	/* Write _PPC with no limit on supported P-state */
-	len += acpigen_write_PPC(0);
+	len += acpigen_write_PPC_NVS();
 
 	/* Write PSD indicating configured coordination type */
 	len += acpigen_write_PSD_package(core, cores_per_package, coord_type);
@@ -359,5 +361,5 @@
 }
 
 struct chip_operations cpu_intel_model_206ax_ops = {
-	CHIP_NAME(CONFIG_CPU_MODEL_NAME)
+	CHIP_NAME("Intel SandyBridge/IvyBridge CPU")
 };
diff --git a/src/cpu/intel/model_206ax/acpi/cpu.asl b/src/cpu/intel/model_206ax/acpi/cpu.asl
index a9d5eeb..558a9d3 100644
--- a/src/cpu/intel/model_206ax/acpi/cpu.asl
+++ b/src/cpu/intel/model_206ax/acpi/cpu.asl
@@ -33,29 +33,40 @@
 Method (PNOT)
 {
 	If (LGreaterEqual (\PCNT, 2)) {
-		Notify (\_PR.CPU0, 0x80)  // _PPC
 		Notify (\_PR.CPU0, 0x81)  // _CST
-		Notify (\_PR.CPU1, 0x80)  // _PPC
 		Notify (\_PR.CPU1, 0x81)  // _CST
 	}
 	If (LGreaterEqual (\PCNT, 4)) {
-		Notify (\_PR.CPU2, 0x80)  // _PPC
 		Notify (\_PR.CPU2, 0x81)  // _CST
-		Notify (\_PR.CPU3, 0x80)  // _PPC
 		Notify (\_PR.CPU3, 0x81)  // _CST
 	}
 	If (LGreaterEqual (\PCNT, 8)) {
-		Notify (\_PR.CPU4, 0x80)  // _PPC
 		Notify (\_PR.CPU4, 0x81)  // _CST
-		Notify (\_PR.CPU5, 0x80)  // _PPC
 		Notify (\_PR.CPU5, 0x81)  // _CST
-		Notify (\_PR.CPU6, 0x80)  // _PPC
 		Notify (\_PR.CPU6, 0x81)  // _CST
-		Notify (\_PR.CPU7, 0x80)  // _PPC
 		Notify (\_PR.CPU7, 0x81)  // _CST
 	}
 }
 
+/* Notify OS to re-read CPU _PPC limit, assuming ^2 CPU count */
+Method (PPCN)
+{
+	If (LGreaterEqual (\PCNT, 2)) {
+		Notify (\_PR.CPU0, 0x80)  // _PPC
+		Notify (\_PR.CPU1, 0x80)  // _PPC
+	}
+	If (LGreaterEqual (\PCNT, 4)) {
+		Notify (\_PR.CPU2, 0x80)  // _PPC
+		Notify (\_PR.CPU3, 0x80)  // _PPC
+	}
+	If (LGreaterEqual (\PCNT, 8)) {
+		Notify (\_PR.CPU4, 0x80)  // _PPC
+		Notify (\_PR.CPU5, 0x80)  // _PPC
+		Notify (\_PR.CPU6, 0x80)  // _PPC
+		Notify (\_PR.CPU7, 0x80)  // _PPC
+	}
+}
+
 /* Notify OS to re-read Throttle Limit tables, assuming ^2 CPU count */
 Method (TNOT)
 {
diff --git a/src/cpu/intel/model_206ax/bootblock.c b/src/cpu/intel/model_206ax/bootblock.c
index 9549d23..02958bb 100644
--- a/src/cpu/intel/model_206ax/bootblock.c
+++ b/src/cpu/intel/model_206ax/bootblock.c
@@ -22,12 +22,18 @@
 #include <cpu/x86/cache.h>
 #include <cpu/x86/msr.h>
 #include <cpu/x86/mtrr.h>
-
-static const uint32_t microcode_updates[] = {
-	#include "x06_microcode.h"
-};
+#include <arch/io.h>
+#include <arch/romcc_io.h>
 
 #include <cpu/intel/microcode/microcode.c>
+#include "model_206ax.h"
+
+#if CONFIG_SOUTHBRIDGE_INTEL_BD82X6X || CONFIG_SOUTHBRIDGE_INTEL_C216
+/* Needed for RCBA access to set Soft Reset Data register */
+#include <southbridge/intel/bd82x6x/pch.h>
+#else
+#error "CPU must be paired with Intel BD82X6X or C216 southbridge"
+#endif
 
 static void set_var_mtrr(
 	unsigned reg, unsigned base, unsigned size, unsigned type)
@@ -58,8 +64,60 @@
 	wrmsr(MTRRdefType_MSR, msr);
 }
 
+static void set_flex_ratio_to_tdp_nominal(void)
+{
+	msr_t flex_ratio, msr;
+	u32 soft_reset;
+	u8 nominal_ratio;
+
+	/* Minimum CPU revision for configurable TDP support */
+	if (cpuid_eax(1) < IVB_CONFIG_TDP_MIN_CPUID)
+		return;
+
+	/* Check for Flex Ratio support */
+	flex_ratio = rdmsr(MSR_FLEX_RATIO);
+	if (!(flex_ratio.lo & FLEX_RATIO_EN))
+		return;
+
+	/* Check for >0 configurable TDPs */
+	msr = rdmsr(MSR_PLATFORM_INFO);
+	if (((msr.hi >> 1) & 3) == 0)
+		return;
+
+	/* Use nominal TDP ratio for flex ratio */
+	msr = rdmsr(MSR_CONFIG_TDP_NOMINAL);
+	nominal_ratio = msr.lo & 0xff;
+
+	/* See if flex ratio is already set to nominal TDP ratio */
+	if (((flex_ratio.lo >> 8) & 0xff) == nominal_ratio)
+		return;
+
+	/* Set flex ratio to nominal TDP ratio */
+	flex_ratio.lo &= ~0xff00;
+	flex_ratio.lo |= nominal_ratio << 8;
+	flex_ratio.lo |= FLEX_RATIO_LOCK;
+	wrmsr(MSR_FLEX_RATIO, flex_ratio);
+
+	/* Set flex ratio in soft reset data register bits 11:6.
+	 * RCBA region is enabled in southbridge bootblock */
+	soft_reset = RCBA32(SOFT_RESET_DATA);
+	soft_reset &= ~(0x3f << 6);
+	soft_reset |= (nominal_ratio & 0x3f) << 6;
+	RCBA32(SOFT_RESET_DATA) = soft_reset;
+
+	/* Set soft reset control to use register value */
+	RCBA32_OR(SOFT_RESET_CTRL, 1);
+
+	/* Issue warm reset, will be "CPU only" due to soft reset data */
+	outb(0x0, 0xcf9);
+	outb(0x6, 0xcf9);
+	asm("hlt");
+}
+
 static void bootblock_cpu_init(void)
 {
+	/* Set flex ratio and reset if needed */
+	set_flex_ratio_to_tdp_nominal();
 	enable_rom_caching();
-	intel_update_microcode(microcode_updates);
+	intel_update_microcode_from_cbfs();
 }
diff --git a/src/cpu/intel/model_206ax/chip.h b/src/cpu/intel/model_206ax/chip.h
index 48e0c89..96b4c5d 100644
--- a/src/cpu/intel/model_206ax/chip.h
+++ b/src/cpu/intel/model_206ax/chip.h
@@ -34,4 +34,6 @@
 	int c1_acpower;		/* ACPI C1 on AC Power */
 	int c2_acpower;		/* ACPI C2 on AC Power */
 	int c3_acpower;		/* ACPI C3 on AC Power */
+
+	int tcc_offset;		/* TCC Activation Offset */
 };
diff --git a/src/cpu/intel/model_206ax/finalize.c b/src/cpu/intel/model_206ax/finalize.c
index 9de94c4..4ed5d1e 100644
--- a/src/cpu/intel/model_206ax/finalize.c
+++ b/src/cpu/intel/model_206ax/finalize.c
@@ -43,18 +43,30 @@
 
 void intel_model_206ax_finalize_smm(void)
 {
-	msr_set_bit(IA32_FEATURE_CONTROL, 0);
 	msr_set_bit(MSR_PMG_CST_CONFIG_CONTROL, 15);
 
 	/* Lock AES-NI only if supported */
 	if (cpuid_ecx(1) & (1 << 25))
 		msr_set_bit(MSR_FEATURE_CONFIG, 0);
 
+#ifdef LOCK_POWER_CONTROL_REGISTERS
+	/*
+	 * Lock the power control registers.
+	 *
+	 * These registers can be left unlocked if modifying power
+	 * limits from the OS is desirable. Modifying power limits
+	 * from the OS can be especially useful for experimentation
+	 * during  early phases of system bringup while the thermal
+	 * power envelope is being proven.
+	 */
+
 	msr_set_bit(MSR_PP0_CURRENT_CONFIG, 31);
 	msr_set_bit(MSR_PP1_CURRENT_CONFIG, 31);
 	msr_set_bit(MSR_PKG_POWER_LIMIT, 63);
 	msr_set_bit(MSR_PP0_POWER_LIMIT, 31);
 	msr_set_bit(MSR_PP1_POWER_LIMIT, 31);
+#endif
+
 	msr_set_bit(MSR_MISC_PWR_MGMT, 22);
 	msr_set_bit(MSR_LT_LOCK_MEMORY, 0);
 }
diff --git a/src/cpu/intel/model_206ax/microcode-M12206A7_00000028.h b/src/cpu/intel/model_206ax/microcode-M12206A7_00000028.h
new file mode 100644
index 0000000..8b2550c
--- /dev/null
+++ b/src/cpu/intel/model_206ax/microcode-M12206A7_00000028.h
@@ -0,0 +1,611 @@
+//+++
+//       Copyright (c) <1995-2012>, Intel Corporation.
+//	All rights reserved.
+//
+//	Redistribution. Redistribution and use in binary form, without modification, are
+//	permitted provided that the following conditions are met:
+//		.Redistributions must reproduce the above copyright notice and the following
+//	disclaimer in the documentation and/or other materials provided with the
+//	distribution.
+//		.Neither the name of Intel Corporation nor the names of its suppliers may be used
+//	to endorse or promote products derived from this software without specific prior
+//	written permission.
+//		.No reverse engineering, decompilation, or disassembly of this software is
+//	permitted.
+//		."Binary form" includes any format commonly used for electronic conveyance
+//	which is a reversible, bit-exact translation of binary representation to ASCII or
+//	ISO text, for example, "uuencode."
+//
+//	DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+//	HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+//	WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+//	WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+//	PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+//	OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+//	SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+//	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//	LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//	CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+//	STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+//	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+//	ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+//---
+/*  Wed Jun 6 09:55:27 CST 2012  */
+/*  m12206a7_00000028.inc  */
+0x00000001,	0x00000028,	0x04242012,	0x000206a7,
+0xf3e9935d,	0x00000001,	0x00000012,	0x000023d0,
+0x00002400,	0x00000000,	0x00000000,	0x00000000,
+0x00000000,	0x000000a1,	0x00020001,	0x00000028,
+0x00000000,	0x00000000,	0x20120423,	0x000008f1,
+0x00000001,	0x000206a7,	0x00000000,	0x00000000,
+0x00000000,	0x00000000,	0x00000000,	0x00000000,
+0x00000000,	0x000008f1,	0x00000000,	0x00000000,
+0x00000000,	0x00000000,	0x00000000,	0x00000000,
+0x52b813ac,	0xdb8994c7,	0x70e9f6bb,	0x9d6db2ff,
+0xf4d70f5d,	0x5b1eccf6,	0xac59106f,	0x0ae2e2c1,
+0x1a7bbeb1,	0x355a1d62,	0x2e7eb594,	0x09f8dea9,
+0x432a49e4,	0xbf520253,	0xdafa4010,	0x893a858a,
+0x766e0efb,	0xd91e196d,	0x838bd2ef,	0xe5146494,
+0xd515f413,	0x29704828,	0xe85598b6,	0xdcbe6c51,
+0x88eabbfa,	0xa1e8909f,	0xd8931721,	0x35386554,
+0x089a78a7,	0xd9914775,	0xd4644748,	0x1556a4dc,
+0xf44448f6,	0xd054d7db,	0xf30f2b7d,	0x5ae223d0,
+0xcbbb48b0,	0x5c8b0383,	0x177de157,	0x9c1e5f73,
+0x2ec28289,	0xd72a7b6c,	0x823b6eb2,	0x35e02171,
+0xba8deae4,	0x06f4d468,	0x13dbafaa,	0x72b419f1,
+0x033385b5,	0x05806920,	0x4c6034cf,	0x9bd117dc,
+0x976e2d04,	0x250330f0,	0x7250b5e1,	0x184980c2,
+0x12a9d7d6,	0x1bc808f9,	0xae79994f,	0xc6f87901,
+0xc0e3132f,	0x671491c5,	0x236cad39,	0x37889d9c,
+0x67f7c3f3,	0x964a6be5,	0xbcced7da,	0x57eeaa6e,
+0x7bca1522,	0x654fee4c,	0x2a1ca5d9,	0xa1803cf3,
+0x00000011,	0x8c316d2c,	0x17603b7e,	0x32e42981,
+0xc26c1400,	0xf0fbccb6,	0xeab6b43a,	0x11d456a5,
+0x5b912d46,	0x15195fe0,	0x542f6db3,	0x0b7f212e,
+0x47718dd9,	0x7c41b108,	0x06c21111,	0x4445d5ea,
+0xb4fb8128,	0xe07404a6,	0x8d503da4,	0x78fc7e44,
+0xb9919656,	0x9968c797,	0x87f26ab0,	0x23bb1af7,
+0x1ec5d761,	0x26f30d2c,	0x7cdb747c,	0xe4d42033,
+0x8a5d4801,	0x768aff57,	0xbcfd5d11,	0x7c853c2d,
+0x231e6207,	0x8b1988a6,	0xd68fdb75,	0x58dcb417,
+0x44422ef9,	0x2a186ebb,	0x7d27e85f,	0x36ac31f7,
+0x1e487e77,	0x2b0b8c37,	0xd8ba682f,	0x2cba791b,
+0xe6d3dece,	0x1b2c2a99,	0x4e5decab,	0xfbd313a3,
+0xdbc78294,	0x5a80cce7,	0x2d8e0f0b,	0xcf564f71,
+0x073d1f37,	0x25162870,	0x96cdb85b,	0x9c553048,
+0x24eba740,	0xfc0f352e,	0x0c83be68,	0x89b5076c,
+0xc39c4355,	0x6a4cf25c,	0x2bbd2682,	0xc524fdb9,
+0x7ea19bae,	0x191ad6f1,	0xd3fbf3bf,	0x21bf77fa,
+0x8f77fec4,	0x0f90f635,	0xe55e165c,	0x868d58c0,
+0x966bc0ad,	0x6c276364,	0x9d8f7eff,	0x4b7925d4,
+0x8b2f9326,	0x4ab7b47e,	0x33a9087c,	0xf31ab949,
+0x69831dfb,	0x4711a215,	0x8128c1fa,	0x8481c213,
+0x7401b01b,	0xfdcfdc50,	0xd6b55266,	0xae9b23ac,
+0xfa2ad275,	0xa225bb45,	0x4dd720c4,	0x760a20e6,
+0x5f1223c9,	0x2f334372,	0x6e1dcdab,	0xe8ee8638,
+0x1c19ba8a,	0xef9341c4,	0x360aaa9d,	0x90452ea9,
+0x65852446,	0xe9398fa3,	0xbba6a631,	0x1a3e90b9,
+0xe2a73a56,	0x6e8c0747,	0x35c7c53d,	0xcc1ac842,
+0x183356af,	0xb6e98608,	0x987b43c2,	0xa8a3cfd2,
+0xc2c5fce0,	0xcc3af64a,	0xd6d3a291,	0xe59ad1f5,
+0x124ca513,	0x9522b50a,	0x25150477,	0xa2eb5797,
+0x7fc63626,	0x648c48e3,	0x9f5797ff,	0x2307b84d,
+0x980625a4,	0xabc05983,	0x24980807,	0x773c4f99,
+0x3407b872,	0x07c3657a,	0xa2cd9e48,	0x49c1e6a8,
+0xa881b84c,	0xf804d72c,	0xb5319d2a,	0x3e39780f,
+0x97518822,	0x0acd54c2,	0x0721a9ff,	0x10e1d2fd,
+0xa7b6db77,	0x845b1a56,	0xef00160e,	0x6b41bfd5,
+0xc994df0d,	0xcf44a5ca,	0x794b36a4,	0xf9fdb127,
+0x922a1366,	0x822aa8a9,	0x4b137bd5,	0x5722a49f,
+0x8933719a,	0x17edc1a9,	0x079d9538,	0x21fae7d5,
+0xe534fd73,	0x9d3038d5,	0x48c3a056,	0x5b22d58a,
+0x6f142866,	0xf1d767cd,	0xb51ad5a6,	0x34a0ef85,
+0x0111703e,	0xca4b3a30,	0xa0f3c34d,	0x9d48775a,
+0x3f2059f9,	0xf2fe2c36,	0x588861a9,	0xed5bd9fe,
+0x8231f7cb,	0x8c115969,	0x3f82ba00,	0x21b3730c,
+0xba757997,	0x3ec0bb2c,	0x16f11def,	0x5d4356c6,
+0xdc2e0bc2,	0x58c1eb6e,	0x313ede0c,	0xb68fcc52,
+0x84d3e1b5,	0xcc6d9201,	0x95046196,	0x276b527b,
+0x80a4a729,	0xe782916d,	0x5cf09e0b,	0x98aaf9fa,
+0x1de6dd43,	0xab4f1962,	0x49ece734,	0x81455488,
+0xc2597b61,	0x5b22af85,	0x646f7b94,	0x09213a1f,
+0x08edf7e4,	0x963d343c,	0x059ba888,	0xb4e804ed,
+0xe7cc826c,	0xf87bafc7,	0xeecaec10,	0x8e60919c,
+0xbf14c996,	0xd3dcaee3,	0xb8fa0b7e,	0x81563c6e,
+0x7f59a258,	0x2f344446,	0x374d8aa6,	0x9b6de5c9,
+0xbf992857,	0xbc5b94fc,	0x28adb080,	0x17e41044,
+0xb87b469e,	0xda504d12,	0xf21bef8b,	0xce75c1e3,
+0xdbd92c83,	0x58bba0af,	0x77b42977,	0x506cfd75,
+0x1139e875,	0x6ce5fe43,	0xc6a5d7b3,	0x87f9e628,
+0x7b5c500b,	0x130066b3,	0x789b611f,	0xec8c1ba9,
+0xb7e6872d,	0xaf828cd6,	0xc28d3316,	0x2a91f6d0,
+0xc725f063,	0x065ac531,	0x4f9ef4b8,	0x2b9d927e,
+0xaf54f3f9,	0x7c924f72,	0xda1d77ad,	0xff00db67,
+0xaf4f03c0,	0xb4f4ee64,	0x169e64e5,	0x04653ac0,
+0xed51cb70,	0xfeaff0e5,	0x51dbf346,	0x072a2407,
+0x23fb74f4,	0x9a906eef,	0x5d6fc3f0,	0xbc3c374c,
+0x1cf9f063,	0x919015d9,	0x5b3e9d07,	0xd6209d8b,
+0xa3710b3d,	0x90ad23b8,	0x420ceedc,	0x58e8371f,
+0x5d419d1f,	0xb8acd13f,	0x7d100d6d,	0x210c10d1,
+0xcd0a697e,	0x5023db4b,	0x33e6d8e7,	0x44bbe6b4,
+0x827e859f,	0x6ca4cc81,	0x661bb2c3,	0x71209ee8,
+0xb8c3ffaf,	0xd1075f51,	0xba1eae10,	0x728b0a6a,
+0xe4af7a2f,	0xca9bcf2e,	0xb249a631,	0xdce6be47,
+0x5c910321,	0x425c3c27,	0x33083e43,	0xdea067ae,
+0xea594a23,	0x41b75c2c,	0x3a401a95,	0xd33cd88a,
+0xc295cad0,	0x67f48045,	0x1dc9ad4c,	0x4bc48864,
+0x53991b6e,	0x7aadde5f,	0x2b0bf775,	0x06ba5380,
+0x9eb874be,	0x2c4b967a,	0x1bcc342f,	0xe875001b,
+0x15b5642d,	0x5be99c9d,	0xcb210ace,	0x1b4924ad,
+0x3793ed81,	0x8b983114,	0x3ec33981,	0x75ec71e7,
+0x8b5b7df3,	0x834756f4,	0x100fad01,	0x70037fdf,
+0x0cef9a36,	0x3d9e3a2d,	0x38b48efd,	0xfc4034b6,
+0xa32e29dd,	0x388944bc,	0xc1c15614,	0x3877e9c7,
+0xa5e733fa,	0xa621bd53,	0x4b651df6,	0xce082970,
+0x85f30d6f,	0x729a5c87,	0x31dd7ba9,	0xdb495828,
+0x7b12c698,	0x953495c9,	0x6b5f99e7,	0x2cc42fa8,
+0x697ac512,	0x1be679de,	0xc116d305,	0x94a36606,
+0x9e5e141e,	0x874affed,	0x58d40b0b,	0x5e3cf5e5,
+0x5d05e9a9,	0x06840efc,	0xd2f98b21,	0xa1e83ab2,
+0x4f726202,	0xa6394535,	0x62a02403,	0x9f2167ec,
+0x4f9fc77b,	0x98073be4,	0x2bc781fa,	0xfc8e4c89,
+0xc7179b97,	0x692cf793,	0x708ff7bb,	0x12ecba93,
+0xacd06e21,	0x202bef76,	0x03852241,	0xe84e02a1,
+0xf1f9ac8d,	0xcee61aef,	0x61a4f235,	0xd22991eb,
+0x67a81345,	0x375a15c6,	0xe8fae8a3,	0xb4ff2b37,
+0x339ee4ea,	0x14ffadc3,	0xf49340dd,	0xf285e568,
+0x00fc6970,	0x369c52d1,	0x4f55368f,	0x3f4d75f1,
+0x6a73b603,	0x963c1f59,	0x171e2bdc,	0x72bac76b,
+0x9e2e5c32,	0x307f7c3f,	0xd3b48637,	0x3a917acf,
+0xea52a65f,	0xecd209fb,	0xf0ad84bf,	0xd4bdea70,
+0xa2647b38,	0xce040b49,	0xc6d5f13d,	0x5d942c52,
+0xf8edc042,	0x798fdefd,	0x4b074246,	0x1cb1873a,
+0x6793c186,	0x23b9c774,	0x77bb0202,	0xc519b3aa,
+0xa30c09a2,	0xe1f6669a,	0xb7eddb8d,	0x7aaa91d6,
+0x076a3789,	0x0ac47791,	0x1e503404,	0x44fe8c54,
+0xf3cbbf49,	0xd3234eef,	0x0d898b3f,	0xe854984b,
+0xe3986de9,	0x923a5c76,	0x2ee9abca,	0x1a9fedbe,
+0xdf76dcd1,	0xea07936b,	0xcdaaf247,	0xe62d98fa,
+0xa99c7f7b,	0x34fc84d4,	0x03a35111,	0xad5675c8,
+0xcc64075b,	0x408203f9,	0x846e1f08,	0xe934019e,
+0x423d1223,	0x2f04f9e3,	0xee1dbf40,	0x65edc60f,
+0x097aa22f,	0x7058a2b7,	0x41c8a0a5,	0xa68aa391,
+0x0f345c40,	0x667517e6,	0x860838ba,	0x6dae933b,
+0x764d5919,	0x6673fa0f,	0xf0a5e97d,	0x4262ebbe,
+0x64b413f2,	0xd2c4145a,	0x0b2c11f3,	0xfdfe9f93,
+0x96c77107,	0x1399fdda,	0xf599f215,	0xb504da5d,
+0xf8a95268,	0x9ed1ef87,	0x9ae33cfb,	0x3b21f1ef,
+0xc6d447c2,	0xe0694d4e,	0x967febab,	0xc13f631d,
+0x8393bfba,	0x37438788,	0x1724194d,	0x8e77a045,
+0x20e2483c,	0xb961c2fc,	0x485cf593,	0xb3462621,
+0xcb2959b8,	0x10307e19,	0xf71fbbfd,	0xdda641e1,
+0x0daf5f66,	0x56d85178,	0x145f6749,	0xebc46ed1,
+0x5593c249,	0x94561f51,	0x534cc654,	0xca7c8814,
+0xb59a578c,	0x40b2b614,	0xeaf3437a,	0x198d5b4e,
+0xf245fa53,	0xfb75e0b0,	0xa363c46d,	0xc43b5468,
+0xdf036413,	0xc59f5a36,	0xd8ff4381,	0xa3af3e36,
+0x7af63462,	0x414526d7,	0x7bdc41c5,	0xa416f1e7,
+0x6987d9ad,	0x472c5499,	0x4f10ee37,	0x47bb7ff7,
+0xc7f2e621,	0x820008f7,	0x33a475db,	0x91ff5d72,
+0x0517401c,	0x73d067c8,	0xe417b69d,	0xb86d9903,
+0x1ac9a032,	0x74bbf582,	0x8b65596e,	0x883be34c,
+0x95dcc26f,	0xe232c646,	0xfae9c19f,	0x35cb5273,
+0x6a94d095,	0xfff6ca91,	0xb9c40eb5,	0xd351dcac,
+0xc90d464f,	0x9b609642,	0x15663b56,	0x15f7f88d,
+0x22499f60,	0x417fd6c5,	0x2dc36fe2,	0x712bf66a,
+0x22f1fba8,	0x531b8092,	0x40d269b6,	0x1d227898,
+0xeb6ff35b,	0x2490ac31,	0xc958ed65,	0x3ce6ffb7,
+0x9338a806,	0x3beadfe2,	0x1c361ac9,	0x53d0e3b0,
+0x91d46102,	0x4d57045f,	0xb5c8afb3,	0xfd2c9e7d,
+0x3d578410,	0x2adb9406,	0x10df7459,	0x90abccfb,
+0xe3f217ed,	0xef5f4e09,	0x74925ce4,	0x169b5879,
+0xfeff4ad5,	0xb300dd1d,	0xc96022ba,	0x72da501b,
+0x1e694296,	0x9efa33cb,	0x0dc3ee6c,	0x0ac4e7ea,
+0x73041130,	0xf0e6a295,	0xc46bdb6a,	0x6a927044,
+0xd217ceca,	0x0b744007,	0xd5a2bafb,	0x4220cd92,
+0x70d3352a,	0x5ee4f661,	0xfa07e5c0,	0x155542d9,
+0x4a39fba0,	0xcec0552d,	0x30c1d8ef,	0xbef9d21e,
+0x183879aa,	0x5b3f30a8,	0x54a06db4,	0xef876e4e,
+0x5e823680,	0x53e2a353,	0xc9aa4112,	0x13a56ee5,
+0x848859fd,	0x0ba2b801,	0xec15260f,	0x7bb22672,
+0x1a097332,	0xb141339f,	0x752a67d9,	0xdae373f3,
+0x3c8cfd49,	0x2dfaf2a9,	0x95820c6c,	0x956b39a2,
+0x1ca0d24e,	0x1312b978,	0x7280e1bd,	0xa7a7c2ff,
+0x0b48e987,	0xb6083e55,	0x4b4b82f4,	0x9c6104ad,
+0xcb93beca,	0xe1c34035,	0x34de740d,	0xbb151baa,
+0x71f5942f,	0x1eaac228,	0x0c68331b,	0x3d2a1dd0,
+0xe7a3d41a,	0x7253acae,	0xfd4de230,	0x79988d80,
+0x4468f19b,	0xac4440fd,	0x6e8a6ef3,	0x5736adf8,
+0xded67716,	0x1f1d5a4b,	0x96c5f451,	0x85bae181,
+0x1293ab28,	0xc2ba53c2,	0x729ff4cf,	0x60218df8,
+0xc2870138,	0x6127d844,	0x89604e9e,	0xd2b9ad4e,
+0x4f6ded9f,	0xdd263849,	0x1633bd92,	0x64b03a24,
+0x96dabd4d,	0x6e85d235,	0x1ab69ad0,	0x9aa80454,
+0x6b9041e0,	0x106c7e9a,	0x8f54812f,	0xa274efe4,
+0xe45d6695,	0xf3aa7bd3,	0x6a5a2a63,	0xe36f3525,
+0x6238fa4b,	0x7d6cb06f,	0x16d3b4a2,	0xf3b04822,
+0x638f1a60,	0x0e1875fa,	0x1c0292b9,	0x6b519ea4,
+0x9faba37b,	0x209341ec,	0x83c9061f,	0x3387dfe8,
+0xc7f12ceb,	0x2bef45d7,	0x8f8acb47,	0x35d9741b,
+0x7009f514,	0xfd003802,	0x6f9489c5,	0xe2ea2504,
+0x910e996a,	0xcc81d016,	0x3280730d,	0xdedfef59,
+0x5a7357cc,	0x8fe8dd39,	0x15543fe5,	0x976c4207,
+0xe41cf62b,	0x0ba6b4b5,	0x5c3b7ced,	0xa6c5b72b,
+0x72ad3b4d,	0xff143181,	0x2b78a157,	0x7fe231a5,
+0x6ff0538a,	0xe58ed1ac,	0x81a311a5,	0xefaa54b8,
+0xf04a797e,	0xce6e69c7,	0xdc810726,	0x7bab7be3,
+0xdd5923e8,	0x5a2413ed,	0x31cef794,	0x73dfd806,
+0x1b9223c1,	0x0c370882,	0x04fa3b68,	0x87c50bc1,
+0x1d78c90f,	0xf4e2cee6,	0xebea941b,	0x73e5838f,
+0xca8d39a6,	0xe004296b,	0x28cf8a0e,	0x7c73e7ef,
+0x26a296c2,	0x789d4c72,	0xd1490265,	0xd9a9e843,
+0xf03504c3,	0xfae6dffb,	0x7a48f00d,	0x51e369c8,
+0xcb3eeee6,	0x0625e936,	0xe93d0d7d,	0xfb15ba6b,
+0xec5c76da,	0x8fdf44f1,	0xa036653a,	0x5730c4a3,
+0xe5bfe6dd,	0x0b8c091f,	0x3b51558c,	0x403748f4,
+0xf4007f86,	0x952b5db6,	0x5524d8ba,	0x8046409a,
+0xe3fc61a9,	0x66f4ea56,	0x5645150b,	0xdb2bec15,
+0x50672218,	0x7f40e87d,	0x2b8359f8,	0x438787dc,
+0x7f221597,	0xf8b1590c,	0x4f468251,	0xff586d05,
+0xb9195380,	0x0ee09e0b,	0x2fa7dbd9,	0xd197b327,
+0xa0dbad58,	0xb485681f,	0x5ef0937c,	0x1e07ebb6,
+0xcb49fe3f,	0xc2427cd9,	0x6c2c5298,	0x4a2e171a,
+0xa7f333a8,	0xb3609ad6,	0x94e374d6,	0x0e1eb64d,
+0x22c3367d,	0xcdf89975,	0x647aceef,	0x16727c9c,
+0xf476ae53,	0x35a1212e,	0x0db768b8,	0xfff8b53d,
+0xbd4fe45e,	0xab28a5a3,	0x59cec0af,	0x28bcd1ef,
+0x6f43ad69,	0x2658a059,	0x27aee0ec,	0x4e8bbd15,
+0xa9fdcf04,	0xc9aa329f,	0x687f010f,	0x5c968a07,
+0xb894e607,	0x0e1cba22,	0x2f00f203,	0xe8e133ac,
+0x494a4746,	0xe8bdff9a,	0xf69791a2,	0x64179ce2,
+0xbfd10dc6,	0xc026f6d8,	0x4871923a,	0x8946b277,
+0x609f49a4,	0x6466df1b,	0xd8c3c131,	0x46ef0291,
+0x0fdce8b6,	0x2b9aedb7,	0x225c4520,	0x72b332cf,
+0x4e220d47,	0xf2f69c36,	0x2c23fad9,	0x57a2a918,
+0xe017409c,	0x490819af,	0xf2121afd,	0x951ff7ff,
+0x40363fcf,	0x5078b94e,	0x9e4be775,	0xee97ef16,
+0xdb3a2390,	0x17d42af9,	0x96f56a51,	0x1b4c2934,
+0xc866315c,	0x2b746f99,	0x9a3b73f6,	0xa1e081fc,
+0xa9d07ebd,	0xa6359fae,	0xdf50d099,	0x55304e01,
+0xfe5aaa81,	0x1e74267d,	0x38b1d2d7,	0x8633e9af,
+0x99b013df,	0x3aa05831,	0x86279736,	0xd2b464e0,
+0xdf036a9f,	0xe8162915,	0x876c0d4f,	0x4beb7d0e,
+0xfec9b170,	0x46bc9df4,	0x46cb88fa,	0x0cb5904d,
+0x2e2961cf,	0x7ea5dc1a,	0x60670df2,	0xf935ca32,
+0x67e6777b,	0x8bacc97a,	0x5cd07248,	0x32e483e6,
+0xfdf09b0d,	0xca57150b,	0x3f432d09,	0xdea2d7db,
+0x9f6a2954,	0x6f07dff3,	0x4133f394,	0x60272f97,
+0x1b98c9ec,	0x2ab648d9,	0xb5df14a8,	0x0d2c38f2,
+0x5dfde2c4,	0x7cb43ca3,	0x8d0c6c01,	0xe80ea41e,
+0x5f58b71e,	0x4ca9fef2,	0xabd201a4,	0x50905c08,
+0xca8ba387,	0x5592922b,	0xfa4e05f5,	0xceb64b14,
+0x0845c5bd,	0x518d369b,	0x727e570c,	0x1daaab31,
+0x801e8b9c,	0xec6568f3,	0xd4c3760f,	0x40a78d22,
+0x38af58b5,	0xc406a76e,	0x8c3a7779,	0x18272c42,
+0x45cf7b70,	0xa6f3c0f3,	0x88021e41,	0xda662504,
+0xe97aa709,	0xe93bafe0,	0x8862ed5f,	0x35bc8268,
+0xf5a41551,	0x3dd3bb21,	0x1af0cf11,	0x08fe1ad7,
+0x53ecae41,	0x01a4a8ae,	0xfed636b7,	0xf09323e6,
+0x73b9b253,	0x7ebd7ce2,	0x7074b4de,	0x21c719b2,
+0x50982743,	0xd23cfd27,	0x136a1f4a,	0x23260f6e,
+0xfad89dcd,	0x57586681,	0xadc4fba5,	0xad0f71b8,
+0x91a3f188,	0x20d62385,	0xfecda9cb,	0x33d67776,
+0x2abb0e6c,	0x0ad16087,	0x486332da,	0x2928d342,
+0xf6d1b174,	0x5e133a4e,	0x72fc0ad4,	0x940578b8,
+0x320a42b1,	0x9cbda7d4,	0xf2a36135,	0x00ab8de3,
+0x5bad9000,	0x5778e633,	0x3952763d,	0xe0e58583,
+0xdfb0bf19,	0xb11914b6,	0xa67da7a1,	0x8d9a9f81,
+0x638cbcf7,	0x83bf931d,	0x8703b0dd,	0xcab30fa4,
+0xd6db2ee6,	0x5cc2e5ac,	0x717e636b,	0xfdcbc760,
+0x563b3b25,	0x0e4df458,	0x9efb8fa7,	0x95aaa7a1,
+0xf05b6680,	0x5e237e59,	0xc884018a,	0x177b5a30,
+0x3ea2c9bc,	0xd0325ee6,	0xb1dae51b,	0x812ee29d,
+0x6d58db21,	0xb787fa68,	0xfd092294,	0x09683dd3,
+0xfe0d6405,	0xfdd99aad,	0x78744a59,	0x936738e6,
+0x6ad6cba7,	0x370f7f8f,	0xd208c214,	0x12239384,
+0xbe71f0e7,	0xfc0ef264,	0xc04e4a49,	0x354f9cf3,
+0xf5d7572c,	0x07839ad0,	0x834a003d,	0x23ba26e2,
+0xf4049ecf,	0x5ff402b2,	0xff9d6769,	0x074ebe6d,
+0xdc829da1,	0xc3d7697d,	0x973efe4f,	0xfc2a9165,
+0x126dc518,	0x0b824ca4,	0xc438fb70,	0xb7b0ee00,
+0xbe56afd9,	0xa3d8defd,	0x971455ae,	0xc11ffde7,
+0x346e619a,	0xb41111a9,	0x6004b62e,	0x896c668d,
+0x738e458c,	0x351f9fdd,	0xe771b2ba,	0xad6d7464,
+0x719b57c2,	0x6f6a4611,	0x8a676f2d,	0xb8db1c43,
+0x3f102641,	0x51bffdbc,	0xb7862565,	0x5d8dd231,
+0x7a79bd39,	0xfa472894,	0x0fd1d2ff,	0x64cf589a,
+0x38234d7a,	0x5c9acefd,	0x8eb0b9f8,	0x761e1c95,
+0xf2fe78fa,	0xe06220d7,	0xaf82a919,	0xf4e196e1,
+0xa17c8935,	0x06d08d16,	0x6bad807b,	0xf410805d,
+0x4ff2bce6,	0x3297c81f,	0x06e35353,	0xbe1f5e1c,
+0x65d1cb92,	0x0dc69b2f,	0xac55d597,	0x636ff24c,
+0xe2e4f2ba,	0x63d64922,	0x4b2e9f71,	0xad2279ec,
+0x5f0b5c0e,	0xac688638,	0x35613358,	0xf5531360,
+0x54a304e8,	0x27ebfe65,	0x977b5a3c,	0x3dc5e10c,
+0x73b32ee9,	0x3a2c9454,	0x30a149c6,	0x31e5b55c,
+0x2c10854f,	0x745cd38a,	0x2853a27b,	0x6629e355,
+0x0bb67e39,	0x5469184d,	0x694a9bb6,	0x0a0ca25f,
+0xa878c5de,	0xee15fd46,	0x23d92ff8,	0x02328404,
+0x1c9402b5,	0xa46b6ce0,	0xefc3e947,	0x0e9312ad,
+0x5830ae9e,	0xe30e32f2,	0x9db8ee81,	0xe8aeebbc,
+0x30675c83,	0x447278c2,	0xab2bad3b,	0x08ba3d0c,
+0x1124e681,	0x3691242d,	0x903c8d2b,	0x3281c312,
+0x22af690f,	0xd69a150c,	0x57622c5b,	0x29313c73,
+0x6ab2d7c6,	0x39b06dad,	0x6e1f9f81,	0x03324986,
+0x53a49093,	0x7654eba3,	0x2527245a,	0x9af596fb,
+0x818ffb3a,	0xa3817173,	0x6a2c4b80,	0xfcc42ad5,
+0xfb1bbb69,	0x3a3720a2,	0x90a89bcf,	0xed80308d,
+0x7753cb1c,	0x1c2654a5,	0xb01ee4af,	0x81091e85,
+0x9067b3f1,	0x2e2b9b5e,	0x9fb0c7d1,	0x78fd9f69,
+0x5771c46d,	0xacdf498d,	0xfd8b8e77,	0x4c15fa61,
+0x607120ce,	0x18a298d8,	0x73716420,	0x65e5e06a,
+0x18c53e04,	0x35b84427,	0xcd82b522,	0x9a7d26bb,
+0xd56b4b74,	0x49b47fe8,	0x63178dc6,	0x0bac0f46,
+0xc8b0755a,	0x9bbaaf1f,	0x18131d2b,	0xcc019330,
+0x0ceb89bb,	0x8808c2d6,	0xfb5bd86c,	0x6c945b71,
+0xdc911924,	0x4ebb8d35,	0x44e46d08,	0xabfee615,
+0xf456931f,	0x7a244955,	0x0bffce7d,	0x5533ca5f,
+0xb1b2c636,	0x4f29075e,	0x64012561,	0x7aa5e7c7,
+0x9c8a0666,	0x9698782d,	0x3481ad8f,	0x21a55b19,
+0x735aa45d,	0x4245b9c4,	0x0d4c3fdc,	0xd1b10966,
+0x7035fcde,	0xc2257947,	0x4a37271a,	0x9da464a9,
+0x228adbf8,	0xbf309e03,	0x096f560a,	0xa2b8ca78,
+0x427702cd,	0x35a99cf5,	0x99811758,	0x6953db58,
+0xec07533e,	0xe95838b9,	0x61c71654,	0xc9cce595,
+0x275af106,	0xc8697af3,	0xb3f27e58,	0x411d8d30,
+0xd0d90ecd,	0x1503b9dc,	0x76bf070e,	0x49f89ef0,
+0x7333b083,	0x53f9c44b,	0x8330c3a2,	0x6a1119c3,
+0xca555f2b,	0x3d51fc6f,	0xac7b3320,	0xf8e42cdf,
+0x053753fe,	0xc122336f,	0x94d289c6,	0x088b5a64,
+0xc3aac7f0,	0x96a76344,	0x2ff05828,	0x9b4f2af3,
+0x46de6a46,	0x4ed29d98,	0xe2ab7634,	0x27481ddc,
+0x300ca71f,	0xce7ac539,	0x88240e09,	0xb1a14e78,
+0x2addd4c5,	0xb3a7f320,	0xe91f549b,	0x6881c45b,
+0x0e381c47,	0x1018feb4,	0x64679650,	0xe62281cc,
+0x670ee6d4,	0x0d226160,	0x947b7f08,	0xbc595a74,
+0x2380c0b3,	0xc0235785,	0x63b41221,	0x80b9cc31,
+0x3231b4ae,	0x33ed5718,	0xf2c5c90f,	0xdd3b03ea,
+0x67dfca08,	0x453e9d29,	0xa2bdecbf,	0x5e9a3181,
+0xad17aea2,	0xff0a8f13,	0xdf946849,	0xcfbbecb7,
+0xb0a602d7,	0xb1a820c6,	0xfe7abbc8,	0x7f70790d,
+0xeb5f8863,	0x266d3cc1,	0xbd552a44,	0xe19b1b3d,
+0x856aefbd,	0x51c11f1e,	0xde661b7f,	0x61c075d2,
+0xd0f6a834,	0xff1d0d37,	0x6793d1c2,	0x70c133a5,
+0x20c4d2cf,	0x8c80d4d3,	0x61ebe382,	0x788b74df,
+0x11c56903,	0x535889ba,	0x0a9c7380,	0xf9de2837,
+0x09437fe7,	0x1627c6b2,	0xb943bdb8,	0x69bc29b2,
+0xee9795a4,	0x83c992e0,	0x95437918,	0x8ce166a2,
+0x56b56b66,	0xb0680941,	0x623d38a9,	0x2add07ad,
+0xe583ba09,	0x96f6532a,	0x3eff4696,	0x2a8a6b0b,
+0x905b913b,	0xafc01673,	0xe871e006,	0x2c2339ad,
+0x248438e5,	0x96d83e53,	0xb3a75d6b,	0x2258cf63,
+0x69ff39bf,	0x95727173,	0xc3ac09d5,	0xea8d2c06,
+0x0e7c0a4b,	0x144fcade,	0x28a9a5a3,	0x97c11ae8,
+0x89865e3d,	0x1640cd32,	0xe3e551f8,	0x1f7ba770,
+0x6d23fb31,	0x11eceae3,	0xc8ccb8ee,	0x46dd0bb0,
+0xd01a46ff,	0x0504adf5,	0xec6e170e,	0x2e3d7ac5,
+0x70f893ac,	0xaf9963db,	0x061e283c,	0xf0ad248f,
+0x2fe97e19,	0x881fd340,	0xc686c9d5,	0x88ea8ba5,
+0x92f05cd7,	0xd6716148,	0x6fc47fc3,	0x2c51d9b9,
+0xd50a7faf,	0x4eccacd1,	0x7c92f802,	0xa63ffc83,
+0x7cb0ab1d,	0x4492e81b,	0x7d906554,	0x43306ba1,
+0x73a5d57a,	0xe57a05d6,	0x6850b964,	0xefed595c,
+0x7754978f,	0x629e8236,	0x62ec4dde,	0x247439ee,
+0x8b9982fa,	0x4eece5c2,	0x48599175,	0x0fdc752c,
+0xecd87b12,	0x94936c75,	0x17a45ea1,	0x80a899ac,
+0x22a39ee7,	0x745730b6,	0x03ea4daf,	0x4a7570d7,
+0x307621fa,	0x7322e0a7,	0x3a8e0316,	0x454e46f7,
+0x08773750,	0x156dcaad,	0x5562bc06,	0xa23a1ee3,
+0x20435211,	0x1d679ea0,	0xb220e205,	0x682cc1a6,
+0xd64a71c7,	0x3ca7f8e3,	0x2e92f253,	0xa7cfdd0b,
+0xd62b4053,	0xf5c5f641,	0xbf72dde1,	0xdcb716c1,
+0xe2f7b05d,	0xa03145ea,	0xc09828d2,	0x7dae7916,
+0x6fb97c79,	0xb3a85204,	0x998a9c7b,	0x5f42ba8c,
+0xd9c628b3,	0x6b17bacb,	0xa889b716,	0x450ff97d,
+0xe9166f3c,	0x2d20777b,	0x82a003ae,	0x2c7ae0aa,
+0x6011a9fe,	0xfeed34be,	0x1328f67e,	0xf61003a3,
+0xfaecdf20,	0xee18c81e,	0x731a0302,	0x11a39e60,
+0x355d78dc,	0x99088f2c,	0xcf253759,	0x97347603,
+0x736f71f1,	0x37e4b395,	0x9cc74540,	0xf7e39994,
+0xf01c5f64,	0xbec519f1,	0xa79c1067,	0x76000d5e,
+0x1ac85b6e,	0x51e5b7a3,	0x62a97ddf,	0x6f20096a,
+0x2af51e77,	0xea5554f6,	0xb4e581da,	0xc1ac4ba8,
+0xc8f22bf7,	0x9e254d3b,	0xd7dd62f6,	0x6461ae3e,
+0x423e1f10,	0xf143e7b9,	0x18c73b04,	0xa43de614,
+0x2da8d02f,	0x9befa706,	0xc01dcd49,	0xa278f1e0,
+0xd85f3177,	0x6b6679fd,	0x1ccef04e,	0x53af9252,
+0x34d751db,	0xc8d32c86,	0x3d725097,	0xa64ed581,
+0xd090c42f,	0x9e92bf3f,	0x6f82b089,	0xd42728eb,
+0x3dd651e0,	0x1985bc52,	0x4b0f4159,	0x0f99bd7f,
+0xe2597023,	0xca0cae4c,	0xce48a894,	0x7249dd88,
+0x8e146632,	0xb4be1d6c,	0x790ae7e5,	0x6747b657,
+0x52143947,	0xa2e42ed3,	0xea359617,	0x6ca01a11,
+0x35c5e2dc,	0xc97b78fc,	0x5db6db2a,	0x80fe3414,
+0x27da19d4,	0xd7431d04,	0xa91e9110,	0x7d8ecb23,
+0x2508700a,	0xc8c71ed9,	0xd28835af,	0x018c2887,
+0x3d0a6fab,	0x3e8523d6,	0xd0688dee,	0xe5c3865c,
+0x838d72e4,	0x6bb73a1d,	0x497a59ca,	0xf77c56de,
+0x38ecb72e,	0xa55e3565,	0x04b12c92,	0x1aec9997,
+0x037c340a,	0xef0d04c3,	0x78f74bd6,	0xdec9b9e8,
+0xd95b61ea,	0x5528e8f5,	0x4ecd325c,	0x88ffdc0b,
+0xb337ac61,	0x899d90e7,	0xb5eeb978,	0x8295d9ae,
+0x1ed8978b,	0xa8849eda,	0x8633b4a3,	0xb8c858b5,
+0xbe3c4375,	0x28b9e84e,	0xb2a26def,	0x22f8f66b,
+0x3a4aed99,	0x0c4914ea,	0xad103249,	0xba5a5eff,
+0x8a052461,	0x26938899,	0x915c6ed7,	0xe6268ad9,
+0x246e8c74,	0x75f3c196,	0xc3e725d6,	0x92e02549,
+0x1f78a5cb,	0xeada57e5,	0x40f14906,	0x0215e49c,
+0x57c06bae,	0xc1896b87,	0x0cd40a63,	0x60741d80,
+0x11a69899,	0x80fed942,	0x0497e115,	0x56697b55,
+0xba89c3d4,	0x27d6b7c5,	0xddff87b0,	0xd3b1ff2f,
+0x3160e528,	0x9cca1286,	0x13b4fdf1,	0x38cdd907,
+0xb50c4597,	0x4c151714,	0x1cab86c7,	0x23126a3e,
+0xe26e9749,	0x289a0d0e,	0xc4004640,	0x9d33928d,
+0x33b691a2,	0x15ed6e6b,	0x6e773980,	0xadd59678,
+0x188ba49f,	0x08da4c6d,	0x6d150d0b,	0x0c6c7b98,
+0xc8e1df7e,	0xb8b1e692,	0x5e89fd35,	0xcb253d24,
+0xfc6ee27c,	0x8013de3d,	0x1d38012b,	0xe50a8f7b,
+0x7d410ff1,	0xceee4e9f,	0x0e8094b6,	0xaa1a5f57,
+0xb395a551,	0xbd62b2ae,	0x5d7b34c8,	0xbd2d6195,
+0x33af4109,	0x0769ff18,	0x9c6cc123,	0x78ee6eb6,
+0x412644e7,	0x70e0c6f4,	0xf45d8fc6,	0x0435f5af,
+0xd43622b7,	0x27409d5b,	0x6dd04e8f,	0x9f02ecf5,
+0xca415f7d,	0xc9f439c2,	0x7198e539,	0x20476b75,
+0x3cdd8dd8,	0xce17fbb0,	0xa5bc115e,	0xb0ee52c1,
+0x0b074cfa,	0xd26d4f99,	0x3b43320b,	0x230b680b,
+0x9908f2d2,	0xcbcb1952,	0xf45a2f53,	0x7b4564c6,
+0xcf2fd983,	0x414fe4b2,	0x55ea7f11,	0x63e8117d,
+0xe8954052,	0x7c2ea344,	0x97a02aaf,	0x6ca874c3,
+0x1ae5b4ee,	0x41754eae,	0x6954abe0,	0x115ddcda,
+0x9a27968b,	0x32a53e65,	0xffe47b2f,	0x4fe7e5a7,
+0x6016dedc,	0xb3c0893e,	0x9626776d,	0x5ec773f9,
+0x1104e01c,	0x1473cfb3,	0x43b2cedf,	0x8ca9d119,
+0x7f1bc844,	0xd8bb7387,	0xba90d2ef,	0x2bb0dcf4,
+0x2340f124,	0xa5bd514c,	0x50afab05,	0x718f5ad5,
+0x7c03fad9,	0x71d00d2d,	0x1c31fdc2,	0x4a938809,
+0x40945ded,	0x437f2a0d,	0x83c10d64,	0xd224c6ab,
+0x0cd44481,	0xb0040966,	0x27fd6e7f,	0x6ff45d4c,
+0xab057ad1,	0x8fa4e5d4,	0xac50270c,	0x6e4926ca,
+0xc5721498,	0x2529b458,	0x40ee2ad5,	0xde5e21f2,
+0xea8964ca,	0x56766e60,	0xdc3b8702,	0xa93528d4,
+0x28d7713d,	0x42edf022,	0x59774dd8,	0x200ff942,
+0xe7a4d769,	0xd8c4ef5e,	0xe177f715,	0xe9d53cd6,
+0xc11270bb,	0xb25977e5,	0xb80867b4,	0xfb48468b,
+0xdbf166a8,	0x49700d85,	0x0f85f98a,	0xa7ca7a75,
+0x109817ce,	0xca243f19,	0x8bed7688,	0x9a1c8231,
+0x94f0ce97,	0xc36309ca,	0x90ecac24,	0x67e7e0de,
+0x86b18d62,	0x18c7b7a5,	0x622f5d3a,	0x47e1e067,
+0xdc96b94d,	0xe4a03beb,	0x59d17692,	0x040abc0d,
+0x44a5ae50,	0x3d3dab7d,	0xc18dfd30,	0x2802b9d9,
+0x6818379f,	0x56db41d7,	0x97cbf039,	0xe41d6a32,
+0x64b5fb01,	0x6506e0b4,	0xd60a3234,	0xdf3573d2,
+0xac148579,	0xe7f46ac0,	0x05e1c763,	0x904a5aa9,
+0xc7ca1ee0,	0xe0c3b047,	0x5e36e1bc,	0x447a9141,
+0xe24654df,	0x9853a49b,	0x6a29cedb,	0x022f00dc,
+0x6df2a7a7,	0x3636da02,	0x72bb9c81,	0x4f0e0918,
+0xd649f4a5,	0xbb0c81f9,	0xc0ba93fd,	0xc1b390f1,
+0xda84e720,	0x1aea0064,	0xf3ee67e1,	0xb874ef4a,
+0x82467ce6,	0x59abf506,	0xafbf145a,	0x9a4cf8a1,
+0x17247c89,	0xd8669398,	0x1796eaf7,	0xbc2d24a9,
+0xcb486570,	0x17a9db23,	0x3e6504f0,	0x08684517,
+0x2723ab28,	0x7081b814,	0x8a265a04,	0x697e6d8b,
+0x69b146dc,	0x6434c182,	0x27ec8101,	0x864405c5,
+0xfff86c9e,	0x3052d8a6,	0x23d283db,	0x492970e8,
+0xbc6c64c3,	0x46d8f98b,	0xe16e7ff3,	0x731e4f82,
+0xbd26b1af,	0x6b30e6c1,	0xff192fce,	0x097e0bba,
+0x49df63a5,	0x2fdc3f01,	0x50aae053,	0x60177b8f,
+0x1949eb85,	0xa46084ce,	0x9658f694,	0xcb951fbc,
+0xc53806d9,	0x63a17d30,	0x3b3f86c2,	0x8a37aa6c,
+0xedf8fe5c,	0x87aee1d3,	0x8c680126,	0xfd8b27a6,
+0x231fa106,	0x69358c25,	0x4502c348,	0xc107861c,
+0x46280e70,	0xcf6067ac,	0xf6a04ff3,	0x3e488677,
+0x6f3fb4c1,	0xeec1f758,	0x560e1c48,	0xb604c06b,
+0x69e34b1e,	0x8ef41dec,	0x854cea22,	0x726581d7,
+0x55ea91f3,	0x38ae4053,	0x5ff7389d,	0x6952cbf6,
+0x09aa0fc1,	0xcccb1d50,	0x5c1a633a,	0xde1eba46,
+0x797212d8,	0xa943fb3d,	0x6063a1a8,	0xbe68ef36,
+0x6ba0d5ba,	0x0dbe2061,	0x47711712,	0x62679807,
+0x6f34009e,	0xe6fe8f18,	0x66a6a64b,	0x3f80f472,
+0xe953d5e0,	0xbcd8196a,	0x086faad0,	0x49da7f16,
+0x7f2199a5,	0x55af4af2,	0x085b4d38,	0x22e634bd,
+0x6cff0416,	0x343466f4,	0xd121a7a6,	0x6caa3942,
+0xe4f365a2,	0xd832eb0c,	0x616728e5,	0xcca4c71a,
+0x4010cdc2,	0xd0f1d1cb,	0x5e695f89,	0x27719206,
+0x0ec92854,	0x76144a1b,	0x49808021,	0x12457a1b,
+0xdde7aa5c,	0x8f1a077f,	0x110a4a5a,	0xb3a5ad31,
+0xaacebf8f,	0x66ff7f33,	0xa2340971,	0xfb4c7e82,
+0x8dd536d7,	0xafd2021a,	0x72aa9c6e,	0x22df6952,
+0x83c4b4fb,	0xba515555,	0x93eee8f0,	0x22d0ed5a,
+0xbec05586,	0x83828f28,	0xe0d7f930,	0xac0f0199,
+0xef6d76f9,	0xf56ebdf8,	0xf67323c9,	0x8b805745,
+0xce5902c0,	0xfa2ce3da,	0x10f836dd,	0xe1ac6d97,
+0xa0e415ea,	0xbb7c32ad,	0xc421f3b0,	0x8166e898,
+0x74e7a73c,	0xf454b82a,	0x631369b1,	0xe30ed23f,
+0xdaa1c75b,	0xe7c9c6a7,	0x5f33c375,	0x99c05187,
+0xf2d6e6ae,	0xcd2045b8,	0x92ff3009,	0x15082015,
+0xd1a1580e,	0xdce25f9b,	0x21984a75,	0xa9be5388,
+0x099a5372,	0x3ab9bcfa,	0xdb9069aa,	0x49a99be6,
+0x42a9ee0b,	0xfe32d832,	0x24e11ad3,	0xd16f596b,
+0xb95982cc,	0x754ab1c8,	0x42ffa128,	0x539e823d,
+0x28e0f976,	0x262ddfc0,	0x2a16e7ad,	0x49b5acd9,
+0x931f3def,	0xdc419b84,	0x8412cc3c,	0x81056cd9,
+0x91933e1f,	0x57710b15,	0xa55d2696,	0x87d88724,
+0xd4fedfdc,	0xcc3825c6,	0x397f382f,	0x80f9b6ba,
+0xcdd6d59f,	0x24b984d8,	0x8f1c5bcf,	0x25bcef1d,
+0x00dc603a,	0x76fd94c2,	0xa267a7dc,	0xa6e90a6a,
+0x5c5916d6,	0x065a52cf,	0xa28d3263,	0x9b17b72d,
+0xb8436b48,	0x1b1c2391,	0x1fda3395,	0xa6cecbcb,
+0xbc4ec502,	0x1766b590,	0x5945fbd6,	0x6a124405,
+0xf92d06f2,	0xe24694b7,	0xf6befd08,	0x8266cf5c,
+0x03ed670a,	0x5f98be62,	0xf27b7e2e,	0x598cf22c,
+0x2e855591,	0x879815fb,	0x153799c6,	0x3820faf6,
+0x3d3a2cc6,	0xdbb6dece,	0x1a3c46b2,	0x5031bdda,
+0x47894c03,	0xe43661fe,	0x7a6ee548,	0xa5ca9779,
+0x6aa9e105,	0xbc8505a3,	0xa03b860a,	0x448faeb9,
+0x367de4a9,	0xc9779c7d,	0x6535ad8c,	0x4b7fcacc,
+0xb2db5c10,	0x0ab41ec6,	0xe528ab90,	0x5e6f03da,
+0x98bc76d3,	0xf38df42e,	0xea59b039,	0x1c2eaa28,
+0xca30dac5,	0xdb0eb8c6,	0x60063860,	0x18823f8d,
+0x164e2f28,	0x7cbbe080,	0x70a12315,	0xb08f44d9,
+0x5fbb9453,	0x4bc62738,	0x9fa15ffc,	0xe4033ca1,
+0xc9dfbc13,	0x58245d7d,	0x588113aa,	0x8f5a6ac8,
+0x92588a60,	0x26330c74,	0xb2aaf0e3,	0x24ada1ea,
+0xa9e973ae,	0x624b73e7,	0x4ef961db,	0x95ede155,
+0xf2bb86ff,	0x96bc79d9,	0x95cd646b,	0x1c3af453,
+0xf60fa711,	0x10905115,	0x0e24b740,	0x169bb227,
+0x34cee6f0,	0x990980db,	0x18d8ace5,	0xd4c87504,
+0x29515d32,	0x2e5d9c04,	0x87dffa60,	0x12e815d1,
+0x021db8e9,	0x2c5a42fd,	0x6e3a1a13,	0x88889ab5,
+0x3bc915a6,	0x608919c5,	0xd310a970,	0xea8f3218,
+0x949f55bc,	0x9ed7aadd,	0x6d990157,	0x181f1c2f,
+0xa940df64,	0xf3be8c39,	0x7ca2e699,	0x7b4f07f9,
+0x89e83fee,	0xe66b9493,	0x54fc3d17,	0xa63d2d46,
+0xd5e835d5,	0x910e0144,	0xecf67025,	0x1fa6a93a,
+0xe692dbca,	0x466af681,	0xc2bc808c,	0xbb4ebd60,
+0x74d5c729,	0xa283ad25,	0x1e66fa23,	0x6d372988,
+0x753c9fcb,	0x1742efdb,	0x5b68cf15,	0x372a0e33,
+0xaa3a7ebd,	0xa0e944d5,	0x95d5cbb4,	0x4fb6020b,
+0xced927b0,	0xb2afea78,	0xd0646b72,	0x1622fad4,
+0x4672c6b6,	0x736ae4f8,	0x8d46a4db,	0x0e6a432e,
+0xe0a30a98,	0x4c2bcf4f,	0xd87acedd,	0x19682d7a,
+0xf97c025c,	0x55d8feb3,	0xbcd4d2ff,	0x236c6f9f,
+0x8ba0246d,	0x42812f73,	0x327636f5,	0xc92cd30a,
+0x08a69d9d,	0xc735a946,	0x82eca01f,	0xda0753a0,
+0x7077b1d1,	0x17b05834,	0xfa24bc02,	0xf49f4473,
+0x8f9ac6b4,	0xa880c630,	0xf7457b4d,	0xd5f829e4,
+0x25c49a99,	0x1176a997,	0xbb2d2009,	0x61d35764,
+0xa322c752,	0x6ef3ae02,	0x5faae6f8,	0x9a52acf1,
+0x19176f43,	0x43843b07,	0x14efc471,	0xee474403,
+0x319c4857,	0xa19adcf0,	0xc0a466e1,	0x02db14ad,
+0xb7f211f3,	0x72aa6ca6,	0x0eb9bffe,	0x48a6d284,
+0x9a93a2ee,	0xac09fc5f,	0x92a62c4f,	0xd34f0271,
+0xffb348c7,	0xf229b6e2,	0xc68ec1ca,	0x19577dbc,
+0x069a10bf,	0xf64ac347,	0xf7c3c848,	0x81975294,
+0x6376e550,	0x93b53440,	0x8bb17daa,	0xc4c64c07,
+0xcaeff293,	0xd51497b0,	0x33da3565,	0xa73d5def,
+0x4bf4dcde,	0xfb470fcd,	0xca7db864,	0x7ef17022,
+0x47567363,	0xd8fb8d74,	0xa68c3c72,	0x8202e4f3,
+0x75bf1798,	0x16a70fd2,	0xcc3b697f,	0xab9a1075,
+0x13f56ef3,	0x269d0302,	0xcb655a43,	0xc9a4de88,
+0xfb8363de,	0xff40f36d,	0xd2555489,	0x647a7995,
+0xfd8eda6e,	0xa3958c9a,	0x20e029b4,	0xbed3e225,
+0xa7df5f17,	0x63bc3c1a,	0x337ecc9d,	0x6c329508,
+0x786aa47e,	0x1db5b093,	0xc0acd73b,	0xf9587237,
+0x243e5d40,	0xd3623c3a,	0x338c4740,	0xb672140e,
+0x43640a9b,	0xb7ef3f6a,	0x44151074,	0x749bcc46,
+0xfa1f103b,	0x0fefb19e,	0x58855538,	0x138ad276,
+0x2641fd80,	0x297d99d0,	0xfaa63ba2,	0x00b6f11a,
+0x3793fb6b,	0x124763a1,	0x8b9419ac,	0x56abf9eb,
+0xdbf83419,	0x43570571,	0x37299cd8,	0x8b201e62,
+0xa4058fa5,	0xb320e91b,	0xbe7d40b7,	0x4eca3b2d,
+0x8519c155,	0xf4b17021,	0x9e4c572a,	0xdc1f9e16,
+0x39a589a3,	0xa6cfc7a8,	0x5b986910,	0x64e150e7,
+0x60b6f2c1,	0x02bacd3f,	0x2f3b5a5c,	0xc6f453a8,
+0x15a87a7e,	0x76104a14,	0xafa2ef63,	0x2cd48dbe,
+0x3c7abddc,	0xd786ea5a,	0x4f65867a,	0x355cda38,
+0x2ae03d9e,	0x4f11f6be,	0xfc0a0034,	0xde4ea602,
+0x21ff83ea,	0x0f12d913,	0xedf4da28,	0xc96d8fd1,
+0xd7e82c3c,	0xfec63bdc,	0x37a456d7,	0x3007e18c,
+0x091a47b6,	0x82f1c641,	0x82219cce,	0x3e7e6993,
+0x7b3a2115,	0x0b8e1a02,	0x40f88213,	0xfa2f9c21,
diff --git a/src/cpu/intel/model_206ax/microcode-M12306A2_00000008.h b/src/cpu/intel/model_206ax/microcode-M12306A2_00000008.h
new file mode 100644
index 0000000..05b0ce2
--- /dev/null
+++ b/src/cpu/intel/model_206ax/microcode-M12306A2_00000008.h
@@ -0,0 +1,512 @@
+ 0x00000001, 0x00000008, 0x05182011, 0x000306a2,
+ 0xa0e51feb, 0x00000001, 0x00000012, 0x00001fd0,
+ 0x00002000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000000a1, 0x00020001, 0x00000008,
+ 0x00000000, 0x00000000, 0x20110517, 0x000007d1,
+ 0x00000001, 0x000306a2, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x94ff6556, 0xcfa79d17, 0xb29f811e, 0x8e4ec2b0,
+ 0xb5beb75c, 0x6c9aaf43, 0xcc4c0bcb, 0x12875d19,
+ 0x5a3401db, 0x42caecce, 0xb4d8e75e, 0xe6dbaf24,
+ 0x7861b35f, 0x6bd717bc, 0x23b9b731, 0x82ec1ac8,
+ 0x20337b64, 0x5396dbf1, 0x59973bff, 0x724bc7e9,
+ 0x5237193b, 0x0b8647c1, 0x6a0d0e16, 0xbf9ddb5b,
+ 0xace2cc1c, 0xad707638, 0x056f102f, 0xa37e60f8,
+ 0x76255642, 0xfb86e030, 0xb8069a40, 0x367795f1,
+ 0x653fb05e, 0xab7f14ad, 0xb6e8a8e1, 0xd2598d20,
+ 0x2eba3f68, 0x78b372f1, 0xba8d13f8, 0x1f1de861,
+ 0x97f951d5, 0x8097c728, 0x27dbf904, 0xb97906a8,
+ 0xffe7a4ac, 0x4b947668, 0xc1dbd726, 0x2adcf777,
+ 0x63b1bcf0, 0x818e2a1b, 0x49aa907b, 0x2faf5e8d,
+ 0xae842352, 0x82707fae, 0x0aa12b41, 0xa0bae11c,
+ 0xb4298c47, 0xd2b4099c, 0x4ff625f2, 0xcd2630d4,
+ 0x79850981, 0x05dbf57d, 0xb05b81a5, 0x56e73ec7,
+ 0x95cb3897, 0xe262bda5, 0xb2c6e288, 0xcb7f8e77,
+ 0x72b8bdd3, 0x3f400494, 0x63ade65b, 0xbc4adc71,
+ 0x00000011, 0xb03d8772, 0xd6a6410f, 0xc3179f60,
+ 0xd049131b, 0x520c95e1, 0xfce4c8db, 0xb512c2eb,
+ 0x71736977, 0x8269157b, 0xcf5c1ee7, 0x8c63bd78,
+ 0x2263191b, 0xbfbf7e8b, 0x8f58e2c2, 0x26b839f1,
+ 0x6931ac98, 0xb03191aa, 0xf863752d, 0x390b30a1,
+ 0x5f67d45b, 0x79b0a425, 0xb1af06e0, 0x2808d62b,
+ 0xbb0a3a45, 0x7946943b, 0xfd63fd33, 0xc9f36fd2,
+ 0x81a5c023, 0x3ab0bef3, 0xcb0971c0, 0xd9274c2e,
+ 0x2ea257c8, 0x1d5b0c47, 0x430a995b, 0xe699699f,
+ 0x308fd8b5, 0x5ca9c648, 0xc5bd5637, 0xd21170dc,
+ 0xf28e5d70, 0x6cf557a6, 0xa468b1a0, 0x733d9a21,
+ 0x0a6361b7, 0x9afba13f, 0xc6742be8, 0xbe117903,
+ 0x0df10451, 0x4ce0b9b4, 0x9358b04d, 0x35b6fe86,
+ 0xd4fe9173, 0x8100695a, 0x027a7905, 0x5e4630ce,
+ 0xc2de9c98, 0xc8a878a4, 0x2bb006a4, 0x70e1c64a,
+ 0x3fefce54, 0x0fe1e5bb, 0xe1e8607e, 0xcf15a032,
+ 0xa89164af, 0x391c6cef, 0x814bd538, 0x3faaa9bc,
+ 0x7178e47b, 0x0784f21a, 0x4de0fd07, 0x4826d856,
+ 0x4fa2919f, 0x68b71ea7, 0x6d173f26, 0xdd964132,
+ 0xa9371aa3, 0x8c17143f, 0x9eb8fbb3, 0x039bd218,
+ 0x49e3c295, 0xbe9b55bf, 0x8ac611a0, 0xcf9ee50b,
+ 0xf4174264, 0x56830a33, 0x6e95f589, 0x203110b7,
+ 0x03220d7d, 0x96fc409d, 0x799627a9, 0x0623d281,
+ 0xfab5c71b, 0x283a9e67, 0x29711a51, 0xa406a081,
+ 0x09dd9197, 0x9ad69ded, 0xab0489e2, 0x2e1a6290,
+ 0x4de2ef22, 0x43d05f21, 0x14723f83, 0x913460f4,
+ 0x327d1438, 0xdffaa8b4, 0xc3476930, 0x938699f0,
+ 0xd83efc42, 0xc42048e0, 0x27007e37, 0x923cedd9,
+ 0x696b16cd, 0xb7b6431d, 0x8ac1ef16, 0x2a999058,
+ 0x651f28ae, 0x2593b094, 0xe5de2961, 0x89eccc60,
+ 0xbb351bae, 0xb389e3db, 0xcfa740d1, 0x862efecc,
+ 0xe3f1ef72, 0xd5925e62, 0x0e42857e, 0xdb437f85,
+ 0x4b78c822, 0xff4f4e61, 0xf87ce802, 0x43deb62c,
+ 0x5d23bcd0, 0x8c9619cd, 0x041fe9cc, 0x2b1f6bf3,
+ 0x38a65285, 0xfa663b8c, 0xb017ce6f, 0x8443a4a1,
+ 0x98871c14, 0x4d1b98a8, 0xa2ef625d, 0xdd0c9c2b,
+ 0xb2b45d98, 0x5795cbbd, 0xe4706ad4, 0x62373590,
+ 0xd98e08db, 0xb40e41cb, 0xb1b46b7d, 0x221d459b,
+ 0x73ca6dd9, 0xfce856ec, 0x65a750a4, 0x11a57c32,
+ 0x5983498d, 0xa8c39e1c, 0xa5a98619, 0xd579c642,
+ 0x6461bebf, 0xbab072de, 0x936e2cec, 0x04960797,
+ 0x6b7c6511, 0xbe6b2ef8, 0x0bdccd98, 0x828616b3,
+ 0xe39628c2, 0x64598833, 0x831279c4, 0x98395550,
+ 0x04679721, 0x9a457c16, 0x8c1683b0, 0x0f8cf077,
+ 0x07efbb31, 0xda2f14ff, 0xaac369ca, 0x7cc9b256,
+ 0x1667a14b, 0xa888067c, 0x9754978a, 0xf6397d5b,
+ 0x73588192, 0x5aa8bb83, 0xe18f1a56, 0x19a4b1d8,
+ 0xaf762b09, 0xccfd08a7, 0xb36e9849, 0x263bffd6,
+ 0xa262c17b, 0xfb64d1e1, 0xe0058700, 0xb2f65b82,
+ 0xbee5145f, 0xf87fa269, 0xea3c80d8, 0xd2893c81,
+ 0xee8a55d0, 0x34dddf88, 0xe2a059b9, 0x09438e94,
+ 0xfa401ed1, 0xee39e712, 0x846b3a45, 0xb97451b8,
+ 0x8c0d3b43, 0x45a1a844, 0x1bb204e9, 0x9146826a,
+ 0xff91a1f9, 0x49a230e9, 0x1b51cc54, 0x60028676,
+ 0xd3568726, 0x5655536c, 0xea1495a8, 0x92373d55,
+ 0x7b4a00cb, 0x4b23f0a2, 0x130f4d04, 0x0e80fa92,
+ 0xd0f93f5c, 0x4dc1db58, 0xdac405e3, 0x4304afa8,
+ 0x5cdaef88, 0xec05bade, 0xf7ac28b1, 0x8d644682,
+ 0x32d4f61f, 0xecfa19e9, 0x793759d7, 0xfa4f4fbf,
+ 0x673fff26, 0x5ce785e3, 0xfa3ae4ec, 0xac6183d1,
+ 0xfdf01f6f, 0x030c9334, 0x52bbc321, 0x5a8c5018,
+ 0x4759ac5f, 0xc546bf93, 0x5f139300, 0x2bee6e97,
+ 0xeb1d150d, 0x7a98804b, 0xace72c17, 0xa0dc5838,
+ 0xdb7070f9, 0x482fc62a, 0x8a1ea5b4, 0x351d9c41,
+ 0x57519edd, 0xeaaa21db, 0x85991fb8, 0x5998ad19,
+ 0xfba37420, 0x7df2156f, 0x2b653fef, 0x2e589698,
+ 0xe9ef8767, 0xa6638ccd, 0x52a04fb9, 0xc5590be2,
+ 0xb4c0e51a, 0xccb1c346, 0xa2e07ae4, 0x01eb9c97,
+ 0x94c58182, 0xbc30d487, 0xf142698e, 0x7700f473,
+ 0xc5151420, 0xeae2f346, 0x07b30428, 0xc77d89fa,
+ 0x56849cb7, 0x681b7f9a, 0x8873f721, 0x57a8400a,
+ 0x6e099ffa, 0x4bec7f09, 0x26839ab5, 0x92518225,
+ 0xa0b0c668, 0x437f75d2, 0x8f409bd0, 0x48e75e72,
+ 0xebe49143, 0x82e94781, 0x183b152f, 0x00b55162,
+ 0x113d9669, 0xf7673ddd, 0xc9acef67, 0x1864cefa,
+ 0x54b1d9f4, 0x276c6a3e, 0xe629ab95, 0x8312d175,
+ 0x097737e5, 0xbb1c8308, 0xeef95191, 0x5edde323,
+ 0xd1877c8b, 0x0f55e271, 0x22359485, 0x6b918644,
+ 0x1f3c258c, 0x1c277c19, 0x037e89da, 0x57b9a00b,
+ 0xf365fbfe, 0xf300e553, 0x0b6352cc, 0x79c58e00,
+ 0x63a35d22, 0x9f9d12fb, 0x3e496970, 0xd2e25746,
+ 0x793cd7c1, 0x1b1992d2, 0x0f4c3126, 0x48f2208a,
+ 0xb362a176, 0x77dd555b, 0x9b9e3ea0, 0x3d076bca,
+ 0xa7ba3c81, 0x4ea97870, 0x49ed147d, 0xdc4d6ed8,
+ 0xb78a03e2, 0x49cae375, 0xe1fa5dd6, 0xb8250134,
+ 0x09b55b81, 0x140f27e7, 0x0c77f5d9, 0xc522ca9a,
+ 0xcade480c, 0x4ff22f3c, 0x05bcfd2a, 0x0aceaf1d,
+ 0xb490be3c, 0xaf8f7bb3, 0x72c33cb8, 0xa68b46e0,
+ 0x11a5dc32, 0x6667023c, 0x380bb3ce, 0x9661fe4c,
+ 0x31babb98, 0x2c2e32e6, 0x5a46cd7b, 0x05fc2598,
+ 0xad69a4e9, 0xec17e594, 0x228a3149, 0x9e3ce0be,
+ 0xf37de385, 0x918a3544, 0x0a49c000, 0x41401ead,
+ 0x889350ef, 0x504019f3, 0xe50d5ada, 0x1a1b9d84,
+ 0xe75c5cad, 0xd7ad4c62, 0xc8b200ef, 0x5039425c,
+ 0x50f1cb8e, 0x68423198, 0xa48c18e7, 0x2eb57a4c,
+ 0x4f4cbde8, 0xe46023dd, 0xe82326f7, 0x86c145ed,
+ 0x391f27f1, 0x6c0728f1, 0x44e69f49, 0x0d4643c2,
+ 0x2a9199b3, 0xfcc19418, 0xf5125acc, 0x6ce054b5,
+ 0xfd59cff7, 0xede79cd0, 0x5d99938f, 0x80e438ad,
+ 0xcba3cf92, 0x8cce29ef, 0xb2efa81c, 0x1806394c,
+ 0x7162e333, 0xa0742075, 0x2d8d47da, 0x8c2da510,
+ 0xa7369ad9, 0x0ddbd050, 0x682f8e72, 0x98c7ae2e,
+ 0x97e05e6f, 0x080f5b96, 0x52ab150e, 0xda83cdad,
+ 0xbb86a3c2, 0x1f07a09b, 0x402724ac, 0xf6682636,
+ 0xeaade001, 0x54221b6d, 0x8dfad0db, 0xe98ff62e,
+ 0xda2c7419, 0xd12c52a2, 0xc10960ad, 0x424b3756,
+ 0x877b7ef7, 0x52517df4, 0x4c27ef34, 0xdb698f6c,
+ 0x2acdc1e7, 0x6c1aad60, 0x20b9115f, 0xe203e9e4,
+ 0x27926d6d, 0xb22e1fcd, 0x2d90815c, 0xa0407863,
+ 0x3c8bf847, 0x3410c5fc, 0x5caf97ad, 0x023d4014,
+ 0xd022ae9a, 0x600bc542, 0x6e3d48df, 0x8f3f125b,
+ 0x307856b8, 0x2d285245, 0x4fb5ec67, 0x689a27c5,
+ 0x0f43ca47, 0xcf81b5f3, 0x82490870, 0x16a8e704,
+ 0x52249e33, 0x04fbf10e, 0xcc18e015, 0x5235f8d2,
+ 0x9442be25, 0xa0423a64, 0x7e20a86e, 0x3a0501fd,
+ 0x0b0525fb, 0x9b5a9d8f, 0x3451e597, 0x05c738b3,
+ 0x07ed1fcd, 0xa1fee521, 0x2a89fdbe, 0xb7d370e8,
+ 0xe9556569, 0xfb0ee802, 0xe536be91, 0x2a728ee9,
+ 0x1b108409, 0x4c347e5b, 0x8db8372c, 0x06be53d1,
+ 0xe92ea058, 0x84de4cb7, 0x1645c7f2, 0x08e6e386,
+ 0x6ee876f4, 0x89340508, 0x95a2ead8, 0xaae14210,
+ 0x3a611fdc, 0x7b7baf87, 0xb17dc84b, 0x8faa05a0,
+ 0x66855ef8, 0x9178fbee, 0xdecd716a, 0x7c2397c8,
+ 0xac7887d0, 0x7ef446db, 0x44089087, 0xab15bf19,
+ 0x101bac0f, 0x8524a2bc, 0x74339af0, 0xb1942522,
+ 0x176eacbe, 0x0ad55197, 0xde787be5, 0xd401c900,
+ 0xb069856f, 0x8e8d777d, 0x5e7a6b14, 0xfe527701,
+ 0x56abefd2, 0x4b41b692, 0xac0d6c79, 0x15bac9f2,
+ 0x07f7aaff, 0x820c1e9e, 0x00094122, 0xf1aa3c70,
+ 0xb8fba13b, 0x790a336e, 0x6d41e3e8, 0x996df919,
+ 0x955fd4aa, 0xceaf238c, 0x031cee79, 0x386e92f9,
+ 0x8e595245, 0x85b11a2a, 0x4fa71496, 0xe85de73e,
+ 0xbfe9d5cf, 0x108c7cfa, 0xdd7d72ec, 0x3a2a6c59,
+ 0x77a50226, 0xc01c70c8, 0xa50c6790, 0x4a07d26f,
+ 0xe5297723, 0xfe8943f9, 0xca4a2956, 0xcb5fe2f0,
+ 0x5e75d892, 0x69abebc9, 0xbfc45600, 0xbdb40208,
+ 0xfb06a5dc, 0xc11af78a, 0x70ee6456, 0x129bccc0,
+ 0x7c952b1f, 0x655bd786, 0x61f05603, 0x2ddfa7b2,
+ 0xd9aebcee, 0x860f2482, 0x6ee642d4, 0xa0f7901c,
+ 0x46fd0f34, 0x0d836566, 0x7090d792, 0x3bb2845b,
+ 0x40216573, 0x89bac49c, 0x1b365e7a, 0xa4e89d88,
+ 0x5b4467f7, 0x16736e9c, 0xc47fe035, 0xc9782676,
+ 0xa1233e8a, 0xc692f38c, 0x49ba9bbb, 0x38b512b2,
+ 0xbe116d78, 0x9b984bc0, 0x64c686d2, 0x966e669e,
+ 0x627d9828, 0x1fe32056, 0x404b2809, 0x8754652c,
+ 0x72602dce, 0x2933251f, 0xfe93dcff, 0x00e74579,
+ 0x0934063e, 0x6ca7246b, 0x135d16dc, 0xad24193f,
+ 0xc4ae209a, 0x4137bdab, 0x412524a9, 0x0b782e9c,
+ 0x559a36c8, 0x8fee5b28, 0x354d5634, 0x1359e536,
+ 0x1f99643e, 0x8ce5d917, 0x64fbd18d, 0xd358834d,
+ 0x6103a887, 0xc41dd6a4, 0x82a4dff6, 0x354cd281,
+ 0xa3cb27af, 0x9523335e, 0xa3e5d6fa, 0x3af3ab9c,
+ 0x1d92f0dc, 0xa9c393d8, 0xa4d58cee, 0x01a80348,
+ 0x3b028340, 0x21292723, 0x2a1063be, 0xfcf4626b,
+ 0x258935d1, 0x0c47874c, 0x370c7eed, 0xb5869f78,
+ 0x142d3148, 0xc34705b5, 0xb3180331, 0x6b870ead,
+ 0x7d372b3a, 0x9b8205ed, 0x97ed2d65, 0xba816031,
+ 0x1ce2d2d2, 0xb5a23cfc, 0x5b0f481d, 0xb9e04a85,
+ 0xaeedb91c, 0x6c5f8f1e, 0x90ac1c0b, 0xf87424d0,
+ 0x5903cbb6, 0x1f241a99, 0xd4fd1d96, 0x5ba9f8f4,
+ 0x06527ea6, 0x25fa5ebe, 0x649c61dc, 0xb2e250f3,
+ 0xa0d74482, 0x4028ff95, 0x51078b1c, 0x7baf1d00,
+ 0xf60a69b4, 0x6543da8a, 0xfb8aaeeb, 0xc79c89a9,
+ 0x764e1b65, 0xd50125d4, 0x302d5abb, 0xe74f0b6b,
+ 0x41526db6, 0x343b79e4, 0x0680e918, 0xe417622f,
+ 0x2137d39d, 0xb34fd1fd, 0xd02ae803, 0xaadfe2d5,
+ 0x1b4648a2, 0xf3be09a3, 0xe02d4747, 0xc7c4e60c,
+ 0x01bfc0d9, 0xcaa2545c, 0x97fa559e, 0x894b2a99,
+ 0x82975bc7, 0x3d7a2db0, 0xb4fa48d9, 0xd601651b,
+ 0xada87426, 0x480dcab1, 0xc834b5cf, 0xbb649872,
+ 0x78217b04, 0x57a68ed8, 0x50f43c86, 0x2369fbf0,
+ 0x4f579983, 0x5c3dc02b, 0x34d3f7b0, 0x727cdffd,
+ 0x32112f46, 0x38ff4006, 0xbe26b403, 0xf8f1f76a,
+ 0x5c954d47, 0x734517d8, 0x19e77599, 0x4c645649,
+ 0x13267038, 0xdd4ccaa5, 0x34525ec5, 0x32357fcd,
+ 0x4ee39656, 0x3a5c5abe, 0xbc53aa1f, 0x0a5b0bba,
+ 0x330e2bc0, 0xc57e3fa1, 0x5cbc4c42, 0xcf97a05a,
+ 0x221c8d8e, 0x27e466ab, 0xf753109c, 0x1d75627e,
+ 0xa194b0d4, 0x6f76d457, 0x3ab323d0, 0x960202be,
+ 0x5f750281, 0x7c66da6b, 0x76eaf698, 0xb3ffea6d,
+ 0x3caa1c15, 0xda40100a, 0xd5eb25f1, 0x19e79d92,
+ 0x07f31866, 0xaa5c7230, 0xbf34a043, 0x266c573c,
+ 0x26f4fc77, 0x49ce60c3, 0x4849bc11, 0xf3cb6d2e,
+ 0x44bf978b, 0x103cb16e, 0xab36cd00, 0x2c88b696,
+ 0x252e310b, 0x5fe44c53, 0x019698a6, 0xdf7c6c6c,
+ 0xb5f9fc55, 0xc02b94ea, 0xcec55282, 0x5c7809fd,
+ 0x7d3b9c22, 0x979a12e7, 0xfbb88d9f, 0x622369cf,
+ 0x9bd48bec, 0xc5f78a5b, 0x43480d02, 0xc8f23cb9,
+ 0xa74fcded, 0x4a57a9f2, 0x742c0fa9, 0x79cf075e,
+ 0x4c3cec0e, 0xf5b57270, 0xd6920751, 0xa68c3a90,
+ 0x85d95209, 0x79598ba4, 0xc7cff1c6, 0xbe13c8ba,
+ 0xef636173, 0xe9448e6c, 0x0abdd206, 0xd587c53f,
+ 0x651d6e28, 0xf655655b, 0xcc8d5f27, 0x0334db5e,
+ 0xed742441, 0x00ec414e, 0x78c215b7, 0x92a17727,
+ 0x94d4de40, 0xa6c89e31, 0xef0e9cb3, 0xcaaf4dfe,
+ 0x62b108a7, 0x1f11d211, 0x8e6d80c2, 0x9019632b,
+ 0x27bb59fc, 0xec670644, 0x9937c4c1, 0xc71ba54a,
+ 0x0d99ce08, 0x0c582524, 0x2ade4596, 0x6c6d19e7,
+ 0x24d5d408, 0x2a774ecf, 0x4783c121, 0x562dd75b,
+ 0x0bf93b88, 0xf02f26bc, 0x55dccf10, 0x97210218,
+ 0x6fb30a5f, 0xb8e289d6, 0x62f4691c, 0xd6a7bb48,
+ 0xcd72b10a, 0x040506df, 0x1b3c97f8, 0xfead0632,
+ 0x3517cbb2, 0x37229acd, 0xde46fba5, 0x44cbfc9f,
+ 0x0e190df1, 0xc0667958, 0xf65111c5, 0x1344f0ad,
+ 0x1bc3063d, 0x5549ee04, 0x58c6e0c8, 0xb3f48cc1,
+ 0x109081b8, 0x20524fca, 0x60f044e3, 0xda4c0b57,
+ 0xbc0b2d01, 0x4258d7dd, 0x235878a6, 0xbe7b8103,
+ 0xc3b9360a, 0x01e63ca6, 0x89ed00b4, 0xfd9f2654,
+ 0x25852e93, 0x409ee6e2, 0xcc548be5, 0xe6139471,
+ 0x93674f7d, 0x39456d64, 0xac347169, 0x9986745e,
+ 0x599a139c, 0x19124870, 0x7402de5d, 0x3a526063,
+ 0xc71cb5db, 0x114e4bba, 0x63cf3a96, 0xde873102,
+ 0x20baaf7c, 0x28230a72, 0x5144dedf, 0x9265313f,
+ 0x0bcda190, 0x77f1fc1e, 0x53f67026, 0x805dc15d,
+ 0xaeb6f6f3, 0xc7db990a, 0x9c19fa42, 0x9afb07d0,
+ 0xa0dbfd20, 0x7657406a, 0xcc279772, 0xb5be41d2,
+ 0x9b7d1568, 0x027075e4, 0x65362117, 0x2a35a675,
+ 0x00fc01f5, 0x85243c1b, 0x052bb326, 0x48564c13,
+ 0x3d49a902, 0xa2719bd0, 0x9634c037, 0xcc61cc93,
+ 0x5ecb40b5, 0x221e6297, 0xeb800e10, 0xdda6c6a1,
+ 0x7c0e7d69, 0xf13e9850, 0x15e4ad94, 0x6d994c59,
+ 0xf7aaad83, 0xbbbddecd, 0x4d08d515, 0x4534557f,
+ 0x88499baa, 0x85642d7d, 0xce057574, 0x7a8fcecf,
+ 0xb1e36024, 0x7bae9b8a, 0xb17795ef, 0x4daad89b,
+ 0x5bd2390b, 0x1358e77e, 0xf0254d35, 0x990a23b3,
+ 0x6fe79940, 0xdc9452ef, 0xd7299274, 0xba28364a,
+ 0x8c33bcf3, 0x5dd8fd27, 0xdc0b7188, 0x20ae1980,
+ 0x10bad203, 0x71207d35, 0x4d4932a6, 0xdde5722b,
+ 0x0d09dc66, 0x166d4e7b, 0xc4048d5b, 0xfe8a18a7,
+ 0xc4bf6c43, 0x33bb066b, 0x4ab6d34e, 0xa6f9191f,
+ 0x4d124cb7, 0x38a55a03, 0xa2904e20, 0x4ea3f407,
+ 0x486e4c24, 0x9261f56d, 0xdaeff698, 0x38feebf5,
+ 0x2b8e50a2, 0x61baa841, 0xe16b0719, 0xcaae5c26,
+ 0x0a33e85a, 0xb954cb72, 0x2e3f4201, 0xc0dd26bd,
+ 0xcdfbff5c, 0x26a1a823, 0x981b0d07, 0x2fee4978,
+ 0xf99b8039, 0x5d25dac2, 0xcd6934c1, 0x066228f6,
+ 0xba7e0704, 0x337a1b20, 0x8c323be3, 0x7ff9c315,
+ 0xf4ac9eb3, 0x5fc1175d, 0xdc296f20, 0x41d498a2,
+ 0xd3d7c30b, 0xe7386b05, 0xdd2dba6d, 0xe2e81592,
+ 0x9ea5b6dd, 0x357be182, 0x83d9c558, 0x28a5717d,
+ 0x54d5b3d9, 0xc0e43744, 0x5f2e7524, 0x09ab2d34,
+ 0x7e6a9707, 0x176caa28, 0x2e82adfc, 0x3b3081da,
+ 0x1c7d7047, 0x791acb94, 0x85554aca, 0xd340db82,
+ 0x17ab8f41, 0x57d4079f, 0x6909bf5f, 0x67926a3f,
+ 0x4699d010, 0x6ab9fd79, 0x5bcfe302, 0xc8331dcc,
+ 0x06438b8d, 0xe4f4a14e, 0x16bdd6a1, 0xbd522605,
+ 0xfdc3f0fd, 0x1519c8d3, 0xc028a731, 0xfa093171,
+ 0xd9e7ad75, 0xf101f517, 0x21fc9f6a, 0xa722aecb,
+ 0x478eb517, 0x531ef72d, 0xc729d08f, 0x1b43148a,
+ 0x57e617d0, 0x327422e5, 0xb7a20ad6, 0xc25ccf5c,
+ 0x9bb93736, 0x0ad5ab2f, 0x16353f25, 0x7e64734c,
+ 0xc1a7c1f1, 0xf8d949ff, 0x31bc7294, 0xfcbdecd7,
+ 0x3b4a5813, 0xffa05a93, 0x8b56f1e8, 0xf1932e6f,
+ 0x188d84d0, 0x0b77acea, 0x6b838d06, 0x307fcbd7,
+ 0x03755582, 0xdd8fccb2, 0xbe2465b1, 0x4cc8e1be,
+ 0xa7673f91, 0x5d22ef2c, 0xf34b5c90, 0xa055faef,
+ 0x23582017, 0x42ad337b, 0x2239da5e, 0x51447628,
+ 0x59d2e16b, 0xd853c1de, 0xffd49bdb, 0xbc334817,
+ 0xb2d18b9b, 0xc8692375, 0xfa851045, 0x82e9cf0b,
+ 0xe377945f, 0x942a7b28, 0xc00f78da, 0xa26cdac0,
+ 0x7b52fc41, 0x3b49aca2, 0xeaf3b2ca, 0x61c6849a,
+ 0xa8d3c24d, 0xc0d80f55, 0x4c77d1d9, 0xe07a7713,
+ 0x24cea55b, 0xf7839272, 0x837a2e88, 0xb6a20e1c,
+ 0x385ba2d6, 0x5d16140f, 0xf755021e, 0x9d588670,
+ 0x81c9e230, 0xf8ce940e, 0xe8f0b292, 0x1656e7b2,
+ 0xa3345b8c, 0x651b48f6, 0xba13d42a, 0x51ff69e7,
+ 0xceeba4df, 0x7c5d1b2b, 0x201ae48c, 0x1f6e6d22,
+ 0x0fa59228, 0x073a3fad, 0x476c7965, 0x6cb62b62,
+ 0xca850d99, 0x659d223d, 0x340fd07f, 0x2c26dace,
+ 0xfd0b441d, 0x2ddca03c, 0x0c3c870f, 0x66f2587e,
+ 0x60b0cc54, 0xe64fff4f, 0x6404437b, 0x131802bb,
+ 0xbdaff5c8, 0x8315c5d8, 0x87a0bf17, 0x6f7cb63a,
+ 0x955d568a, 0x6b6a40af, 0x93902e51, 0x624a8eda,
+ 0xa457e199, 0x33469b2f, 0x79ddd09c, 0x0781d418,
+ 0x8685284d, 0x41257c02, 0x0218e1c8, 0xb8a65398,
+ 0xe2394e17, 0x271966b7, 0x3cdedc6e, 0x97b0d5e7,
+ 0x5ae801bc, 0xd23df137, 0x32a4cc8a, 0xfa675478,
+ 0x27720acb, 0xfd06aa13, 0x1a9563ce, 0xb9ddae63,
+ 0x39e9f560, 0xdcb8c8ea, 0xec327cad, 0xad00bc29,
+ 0x628a204a, 0x010ccda5, 0x4ae1e6b7, 0x7839b974,
+ 0xed8ab90c, 0xd190cf1a, 0x6329a130, 0xbfa3fae2,
+ 0x84e0388a, 0x9cd706b5, 0x98a3f5e9, 0x43dca149,
+ 0x66e49f64, 0xd70bfb71, 0xea5470d3, 0x4620eb99,
+ 0x13b98bf9, 0x66d96da6, 0xd833f53b, 0x940d0cb9,
+ 0xbb440af1, 0x24b1244e, 0x982197ab, 0xe667c0b1,
+ 0x60b6b551, 0x15965925, 0xcd8ab77f, 0x6ffb8611,
+ 0x6c8a292e, 0x10977564, 0xf44663ea, 0x0fe25bd9,
+ 0x80ccfa9d, 0x73048454, 0xd85fe220, 0x17b677f4,
+ 0x65801095, 0xd5d65368, 0xef594093, 0x4f02ed98,
+ 0x3cb19a2b, 0x8cf0abeb, 0xcb3c5f45, 0xec9567e1,
+ 0xac374fee, 0xe83dc258, 0x1af95b60, 0xaf060682,
+ 0x26017849, 0xb2f2e63d, 0x543a16d7, 0x12bd7fe3,
+ 0xc84adc42, 0xa8a6dba9, 0x44e0522a, 0x55d73c6a,
+ 0x7ebd500a, 0xece58173, 0x0b301361, 0xc4f19eca,
+ 0xb19fbffc, 0x14fef202, 0x928def14, 0xf57934af,
+ 0xade67654, 0x1ca5f860, 0x4e29489a, 0x1aa27463,
+ 0xcd05a93a, 0x0ffd7d0b, 0x9623738c, 0xe9b8fe32,
+ 0x61b5f6a6, 0x3121b153, 0xabd3333c, 0x3ca6219d,
+ 0x5ebff047, 0x4aa52427, 0x138b9eaf, 0x5108fade,
+ 0x69ee4246, 0x7037c5d1, 0xf26dae96, 0x1d38eccd,
+ 0x0aa2cd66, 0x96ab1831, 0xb7b276b9, 0x39fced26,
+ 0x13509355, 0xd76ead9f, 0xc98a8245, 0x75ff6c22,
+ 0x3426ed0f, 0xba14d8a1, 0x471f2b07, 0xceb2ff8f,
+ 0x43689aa0, 0xe4730653, 0xbfb95948, 0x4aa28781,
+ 0xe08179e2, 0xd991f3e8, 0x209e5832, 0x9e37da37,
+ 0xdbaf59ad, 0xd3d43c18, 0x089146f7, 0x728562bc,
+ 0x4c945175, 0x3a9de3fe, 0xead91cde, 0x5538f57e,
+ 0x297e2b5d, 0xcfda2ca6, 0x785adb1a, 0xf7540ba4,
+ 0xe1c56896, 0x4c0c1e19, 0xeb21a193, 0x1f1f5309,
+ 0xf449ba96, 0x6c891e2d, 0x0af978ba, 0x3e58e1ec,
+ 0x44bc156c, 0x0a528fcf, 0xad839e9a, 0x7c6c6b9b,
+ 0xa262f8bf, 0xed487cf1, 0x86b340cc, 0xa09a3775,
+ 0xf978cc6f, 0x1dd9e65e, 0x1b88e260, 0x2b0fa5c5,
+ 0x761ce2b0, 0x3f3b2977, 0x25c1c34d, 0x26e3e571,
+ 0xb6802175, 0xf76a96f6, 0x473fb196, 0x70142f84,
+ 0x0abcced3, 0xa21c9323, 0x412ea89f, 0x5a626915,
+ 0xfdf011ab, 0x2ffcab0d, 0x069d494f, 0x1f552fdf,
+ 0x66c8591d, 0x5a7c8b22, 0x8c335ccb, 0x37d379f7,
+ 0x79e16156, 0x7466ee57, 0x127bc692, 0x9400b22a,
+ 0x09364486, 0x0316c196, 0x420c1552, 0x0c1a7abe,
+ 0xc5237341, 0x205a538f, 0xbc5ae40e, 0xabb331d8,
+ 0x5ec3564b, 0x03a9fcad, 0x873e95db, 0xbe00c106,
+ 0xa1e5d4cc, 0x7aebb184, 0x47ce0c74, 0x7fa6e961,
+ 0x773e3b87, 0x0e26bb7d, 0xdcca3728, 0x423b252f,
+ 0x7a42fe7a, 0x1037ece8, 0xbcdb0059, 0x14e57421,
+ 0x6a37ea84, 0xa3793edd, 0xf1ab67a5, 0x1f89f5df,
+ 0x2f08884b, 0x4e8ed270, 0x70f965b2, 0x8c7ca58f,
+ 0x6742b86f, 0x89d6fe1f, 0x03afdfc8, 0x50673d59,
+ 0x39ee965c, 0x6c639901, 0xc2b65f41, 0x5a0cab77,
+ 0x14003d7f, 0x43f81eb5, 0xeb2cc0dc, 0x1a2acf75,
+ 0x7e055e67, 0xe0b8d46f, 0x0a815cc3, 0x28e86302,
+ 0x6a8eb3b3, 0x04196feb, 0xd5e3e038, 0xcb976ce5,
+ 0xfe05abb9, 0xe0aa007d, 0x90f2e2c3, 0x39057bd1,
+ 0x3c0d6bab, 0x899b9401, 0x5ad4e6bd, 0x3485a43e,
+ 0xaeb38525, 0x0aecea20, 0x61511612, 0x239eeb81,
+ 0x427008bf, 0xd3379a76, 0x4b4ee9be, 0x46032dd8,
+ 0x16452895, 0x0b53dd9c, 0xa3880161, 0x841acbe1,
+ 0xe8231020, 0xa11ab5a2, 0xe73d795f, 0xb7f62278,
+ 0x61fd1534, 0xd2dbd080, 0xd0b1a0ea, 0x51a14706,
+ 0x5341a037, 0x5b9bdd64, 0x4939a4be, 0x1d6bfc7f,
+ 0xd971c13e, 0x42983916, 0x5b9e530d, 0xaf728716,
+ 0x248a5250, 0x4869a41b, 0x22761c4d, 0x7bb8ab7e,
+ 0x538ff2e1, 0x509ffeed, 0xf4e68208, 0x8c850e0b,
+ 0x09282053, 0x1c4840dd, 0x8c54f998, 0xf4e705d3,
+ 0x823b3aaa, 0x5abddff5, 0x03013f7f, 0x8ae4d768,
+ 0xece6cbf9, 0xe66caa0a, 0xdb303498, 0xf07334a9,
+ 0xe89f4aab, 0x5faf6759, 0xad1a4a2e, 0xb953b70e,
+ 0x8fc75252, 0x569ecc20, 0xb4067d6d, 0x542ced01,
+ 0x14f05874, 0x3b0872c4, 0x2d4bbc5e, 0x15819311,
+ 0xd3a00956, 0x7cc4cccf, 0x5c21c744, 0xc11174f8,
+ 0x6522a922, 0x0706b0d2, 0x80a63b03, 0xed58edb4,
+ 0x874a8ec5, 0x066e8360, 0xfcf4af9e, 0x788e52a0,
+ 0xd3b020fd, 0x106e3502, 0x04e447a0, 0x933528a9,
+ 0x7dffcd54, 0x3e40b13e, 0x567f4a9f, 0xe4190a67,
+ 0x904c7d49, 0x525b4b7d, 0x4fd40a24, 0x30f7d2a8,
+ 0x47e953ae, 0x3f966c56, 0xa86c9b10, 0x3f1add27,
+ 0xf05e1c2c, 0xe6286279, 0x880a2224, 0xcb2b8e00,
+ 0xa55bd474, 0xfb8404ce, 0x45be6081, 0xb54b3bdc,
+ 0x3d6eccc1, 0x982d691f, 0x6d7a38d4, 0xab2afc6e,
+ 0xeb07addc, 0x6609be95, 0x64c3b658, 0xb51336c2,
+ 0xc4e211e9, 0x2da523d3, 0x37099aba, 0xa6b76d02,
+ 0x3e25b5dc, 0x7658d7c4, 0x82587cfe, 0xaa8fcb70,
+ 0x6f39d48f, 0x8a9bf171, 0x37816d5c, 0xe2553caf,
+ 0xaf5efae4, 0x28bc89b4, 0x209d05e4, 0x276f777f,
+ 0x677e8d41, 0x23dd6005, 0xf2a9c8dd, 0xc9cf245d,
+ 0x7d800e9e, 0x2bbaae1b, 0x295708d4, 0x27446095,
+ 0x012ab8a1, 0xb378bf9e, 0xbba0a97d, 0xcc0badeb,
+ 0xf0c56a87, 0x6de5f550, 0xc51abd35, 0x785ece33,
+ 0x066879d0, 0xb03e5228, 0x4255e2e0, 0x2f9c9ed8,
+ 0x944aaaf6, 0x543f84d9, 0xf0581cde, 0x39743ba4,
+ 0x2a408c43, 0x68849eb2, 0x398b8b2d, 0xc583c53a,
+ 0xa02426ad, 0x2dfd572e, 0xb8d64fbf, 0xada6868f,
+ 0xce107bee, 0x5cffa0d6, 0x16c36c79, 0x972c59e9,
+ 0x4804fb78, 0xa74271eb, 0x30e33dc2, 0xd9810651,
+ 0x904a0334, 0xd7c55c53, 0x8cd3afba, 0x11e6115d,
+ 0x2c9bc958, 0x005fb92e, 0x7620b68d, 0x96839df4,
+ 0x6e906fae, 0xff72c67a, 0x2f6f2fc8, 0xc77140e0,
+ 0x0bb70fc6, 0xb465002d, 0x8e4ddcc7, 0x506438e5,
+ 0x4876de45, 0xd59e9d4d, 0x263ca61e, 0x25c5657e,
+ 0x3da43a5a, 0x03add868, 0x7fdc5e12, 0x2f7144e4,
+ 0x7402f204, 0xe52a898e, 0x41010c79, 0x96a28935,
+ 0x2c471566, 0xe6993392, 0x99db96b7, 0x7603b736,
+ 0x8eef59fa, 0x3fd40e58, 0xc8410c77, 0x46ac6007,
+ 0x0a5f7576, 0x712e2755, 0x448d7764, 0x7a528ecc,
+ 0x48f56308, 0xc5f2422b, 0xcb6b7520, 0x6a3f75f1,
+ 0x8dbcb7aa, 0x5ac6588d, 0xd52e29c2, 0x73f1f592,
+ 0xe6fbf90f, 0x12255f80, 0x905b7a61, 0x77255392,
+ 0x3b0a2d15, 0x3a27c651, 0x12eb67b4, 0xfca53a97,
+ 0x17fed5ff, 0xb48fef9d, 0x6feef9e5, 0x5b215030,
+ 0xc412c5a6, 0x2528fc95, 0x6ac8b956, 0xf7f96f29,
+ 0x6fd1bbd5, 0x8f40d6fd, 0x03ceb0ca, 0x4272a3a3,
+ 0xd845bc6f, 0x444f8f52, 0xa53a5c19, 0xfeddf13d,
+ 0x1a8705d7, 0xdb5f526d, 0x7b17f0f2, 0xf9b556e8,
+ 0x0efb625a, 0x116b0ca1, 0x6adec476, 0xd3290962,
+ 0xcd6544c7, 0x66ebd670, 0xf7cf89c7, 0x8cec409b,
+ 0x904bd4f8, 0x00714689, 0x74e45dbf, 0x76fb3fd9,
+ 0xd60f7ea7, 0xf2ed6d9a, 0xff5b4b7a, 0x95cc5343,
+ 0x4161ad19, 0xc1fc3ee9, 0x58627163, 0xe090cb5d,
+ 0x16d36e21, 0xf753e038, 0x291ad1b2, 0x96b61f40,
+ 0x0aff600f, 0xe36cc959, 0xbf78ae41, 0x02382911,
+ 0x310114e2, 0xedaab306, 0x4d8a5a94, 0xcc51c0bd,
+ 0xf896a312, 0x404cc886, 0x5d469823, 0x19138390,
+ 0x4e478b4d, 0x4af7ed31, 0xfb5f6068, 0xb4aad5db,
+ 0xf40ea203, 0x098357cb, 0xe48dcf55, 0x3ecc63eb,
+ 0x57e6b677, 0x04c26490, 0xa78c507e, 0x07ccf951,
+ 0x7fa83420, 0x63638d9e, 0x8b344723, 0xf81138b3,
+ 0x509c0561, 0x0c044466, 0x6a1847bb, 0xa5b8390b,
+ 0xb05c9a71, 0x509903f6, 0xa5c30d89, 0x09e9c3b2,
+ 0x8aa23b84, 0xc624b8ee, 0xc8d30f0b, 0x585baea0,
+ 0xadfbc05f, 0x430f9e86, 0xcea65781, 0xe2f92f01,
+ 0x8e58a07a, 0x7e0ca7ce, 0xa231ebdb, 0x3c81dc1c,
+ 0x192a7758, 0x398befd6, 0x2b0c1d21, 0xf3361352,
+ 0xd6e04807, 0x540d1831, 0x91e3f217, 0x5108207b,
+ 0xfa6ea712, 0x834a5893, 0x006da259, 0xf8af43f4,
+ 0x641c6c3a, 0xb19f94ab, 0xa506bb54, 0x121d8d81,
+ 0xc88397c6, 0xa8a0ff6e, 0x050c1cd6, 0x7a616dd7,
+ 0x363b9cf8, 0xe4c9f2bb, 0x6ae1d5ef, 0x0be739f2,
+ 0xf9dc24e1, 0x7e5ae30c, 0x98e85d4e, 0x85bb98e8,
+ 0x4395da0e, 0x5eb89b18, 0x1ed53732, 0xa4fb1aa8,
+ 0x7c41e550, 0x1385fead, 0xc3970ad0, 0x9ce74279,
+ 0x5df9a345, 0x7f2dc938, 0x65fab066, 0x2e4bf388,
+ 0xde835e94, 0xfa18d76f, 0xbc8e9809, 0x1afb5a18,
+ 0xab09bca4, 0x95e13e76, 0x62b565d5, 0xcc303d51,
+ 0xdb27ca4e, 0x61cb95ab, 0xa20b7f79, 0x137cd1d1,
+ 0xc0cbbd7f, 0x380568f2, 0x39807d8b, 0xbe925a54,
+ 0x0bdce5f7, 0xcb40ff17, 0xf5aab191, 0xecfa5ca6,
+ 0x598fb8e4, 0x523d4a5d, 0xa7b849f6, 0x0a24d5e2,
+ 0xd890405e, 0x4cb6cee8, 0xa004765e, 0x840be587,
+ 0xb7a4ba78, 0x2845138a, 0x24aa30c1, 0x926bdfba,
+ 0x21d39639, 0x6446d413, 0x8f61306c, 0x58bc4695,
+ 0x802d0b44, 0xaf2bb84a, 0x2c6705e6, 0xc7841eda,
+ 0xe8c43604, 0xd46c72f1, 0xf4f70d38, 0xeaf6cf76,
+ 0x39b452ec, 0xa6cf0abd, 0xc1c6664a, 0xc8b377ee,
+ 0xd15a5e30, 0x5f7adfe3, 0x52a43c6d, 0x6abbf0e2,
+ 0xdca9ac20, 0x85275fff, 0xe8851daf, 0x5356c5d4,
+ 0xe124bb52, 0xac28d954, 0xee70cd07, 0x92442739,
+ 0xc4ebbaf7, 0xbc1b0765, 0x04633ab7, 0x2c40182a,
+ 0x515de804, 0x761cb00e, 0x55e2736f, 0xabe392d3,
+ 0x1606ab31, 0x65bab89a, 0xb92e2aab, 0x784a9334,
+ 0x481356f8, 0xb142662f, 0x321a2630, 0x9ac0a6b2,
+ 0x880e424a, 0x53745533, 0x03a0bd19, 0xba764eaf,
+ 0x85c69ded, 0xa9614c60, 0x72b92597, 0xc2019232,
+ 0x87b0b4a9, 0x4dc7065e, 0xb1fd2896, 0x040ddce6,
+ 0xfa7785b1, 0xccc389a9, 0xb79f295b, 0xcba3aa36,
+ 0x61a7396b, 0x5ff0bd25, 0xba717c7b, 0x16ae6582,
+ 0x56e43f40, 0xf145ec96, 0x70547b08, 0x4d737e21,
+ 0x41955ce6, 0xf3438d68, 0x0fc9ce5b, 0xc071e980,
+ 0x356df762, 0xd030905f, 0x5fa0efac, 0x1098ac64,
+ 0x937766d6, 0x5f56f835, 0xcb7b24f7, 0xeb0f4ec3,
+ 0x220ee6ca, 0xe8ff8f72, 0xce166acf, 0x73ac4f8d,
+ 0xfc30d28a, 0xc0577298, 0xa51d7a8c, 0x8ddadba7,
+ 0x85c3093c, 0x67287f64, 0xdcb5b3f0, 0xe9b01e78,
+ 0x5dd04462, 0xa2d67b33, 0x289edd77, 0x12558cc4,
+ 0xfe4c3e88, 0xfd74ad66, 0x379c651f, 0x11fb5bd6,
+ 0xda9c38b2, 0x4161dddf, 0x3d8c8828, 0x3fac762e,
+ 0xf9a7217b, 0x5b1feb5c, 0x4525f697, 0x0f19feae,
+ 0x7d07fd16, 0x27d158d5, 0xa7a8e81f, 0x71dcb0aa,
+ 0x6c57a48e, 0xefb8a817, 0x4f367674, 0xa90c9b22,
+ 0x561e6b23, 0x52d11b5c, 0x52260020, 0xcd05088c,
+ 0x4d2c124c, 0xdb72bd6c, 0x58d2d9a9, 0x88fa1748,
+ 0xb3ad05c8, 0xdb167422, 0xb5db8ad5, 0x37d0cd11,
+ 0x926c6ec0, 0x2585541c, 0x9fabbf8c, 0x80c1b1a4,
+ 0x242babff, 0xbb686018, 0x3bf68389, 0xb0972998,
+ 0xe610bc5a, 0xc539d1df, 0xe9b6c911, 0x81fccd86,
+ 0xc710804f, 0xb646161e, 0xd2a0669d, 0x9d23c437,
+ 0x7b846680, 0x1ed6daaa, 0xaf7caf3e, 0x5c017e95,
+ 0xc3bf784d, 0x27fec315, 0xc52f2d6c, 0x8b2aaf84,
+ 0x0b6aa659, 0x46f3133e, 0x624a87e9, 0x436844a7,
+ 0x2ce9cfde, 0x98f00c12, 0xb68c181d, 0x5f8e93a4,
+ 0xe1d72390, 0xdbb7bd8b, 0xe82c45af, 0xe8d95468,
+ 0x18f20406, 0x37329cd3, 0xafeb5437, 0x909de54a,
+ 0x67e31339, 0x2a90b199, 0xf66fc078, 0xa5a477c1,
+ 0xad598121, 0xd67cec01, 0x31da6b5a, 0x923f759a,
+ 0xd936adec, 0xdb6c21a2, 0x8e32c84f, 0xbec79a87,
+ 0x07f9f323, 0xd8fa595b, 0x44162a12, 0x0932e616,
+ 0xa127c8cf, 0x762433fe, 0x15bb722b, 0xf1ca78d4,
+ 0xe0b5de21, 0x1e561a3c, 0xe8e49bb5, 0x3ef69845,
+ 0x014b1920, 0xd56ed7b4, 0xd8068eb5, 0x369a21b1,
+ 0x4639fede, 0x8f243107, 0x939fa0cf, 0xe6d620e4,
+ 0xba18058a, 0x808f3d01, 0xed052ad3, 0x09829d7d,
+ 0xd4b18c54, 0x2c7a4569, 0x700a8a66, 0x61b6c28c,
+ 0xd34a2db7, 0xc788b319, 0x6fdd44b8, 0x9394c34d,
+ 0x5c56967e, 0x36929553, 0x49a3d41d, 0xa51409e5,
+ 0xc0449831, 0xbd2abbdd, 0xa46b122f, 0x636d6ca4,
+ 0x4d9c82d6, 0x7786178f, 0x1d29e68a, 0x020766b5,
diff --git a/src/cpu/intel/model_206ax/microcode-M12306A4_00000007.h b/src/cpu/intel/model_206ax/microcode-M12306A4_00000007.h
new file mode 100644
index 0000000..989081c
--- /dev/null
+++ b/src/cpu/intel/model_206ax/microcode-M12306A4_00000007.h
@@ -0,0 +1,576 @@
+ 0x00000001, 0x00000007, 0x09082011, 0x000306a4,
+ 0x7e23e5af, 0x00000001, 0x00000012, 0x000023d0,
+ 0x00002400, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000000a1, 0x00020001, 0x00000007,
+ 0x00000000, 0x00000000, 0x20110907, 0x000008d1,
+ 0x00000001, 0x000306a4, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xb3a03995, 0x1d99bbc7, 0x1a0f8f30, 0x7d07bab1,
+ 0x0b26d78b, 0x0cad10d7, 0x4be62ef8, 0xe11cf1e6,
+ 0x5a3401db, 0x42caecce, 0xb4d8e75e, 0xe6dbaf24,
+ 0x7861b35f, 0x6bd717bc, 0x23b9b731, 0x82ec1ac8,
+ 0x20337b64, 0x5396dbf1, 0x59973bff, 0x724bc7e9,
+ 0x5237193b, 0x0b8647c1, 0x6a0d0e16, 0xbf9ddb5b,
+ 0xace2cc1c, 0xad707638, 0x056f102f, 0xa37e60f8,
+ 0x76255642, 0xfb86e030, 0xb8069a40, 0x367795f1,
+ 0x653fb05e, 0xab7f14ad, 0xb6e8a8e1, 0xd2598d20,
+ 0x2eba3f68, 0x78b372f1, 0xba8d13f8, 0x1f1de861,
+ 0x97f951d5, 0x8097c728, 0x27dbf904, 0xb97906a8,
+ 0xffe7a4ac, 0x4b947668, 0xc1dbd726, 0x2adcf777,
+ 0x63b1bcf0, 0x818e2a1b, 0x49aa907b, 0x2faf5e8d,
+ 0xae842352, 0x82707fae, 0x0aa12b41, 0xa0bae11c,
+ 0xb4298c47, 0xd2b4099c, 0x4ff625f2, 0xcd2630d4,
+ 0x79850981, 0x05dbf57d, 0xb05b81a5, 0x56e73ec7,
+ 0x95cb3897, 0xe262bda5, 0xb2c6e288, 0xcb7f8e77,
+ 0x72b8bdd3, 0x3f400494, 0x63ade65b, 0xbc4adc71,
+ 0x00000011, 0x19abf071, 0x575e6385, 0x36ebcdfe,
+ 0x57f4937c, 0x92fbe313, 0x1d5512a5, 0x0905c16a,
+ 0x8de33f42, 0xb6818477, 0x233c41ff, 0x6c1d4d53,
+ 0x9c1be6ad, 0x623ec48c, 0x91508e0a, 0x79253847,
+ 0x85d8e18e, 0xdc150937, 0xf974828d, 0x81ba11ff,
+ 0x7d9d91b0, 0x214843ac, 0x9434d146, 0x2ec1fce7,
+ 0xc16e8737, 0x027ba667, 0x52b9808d, 0x6eb2bda2,
+ 0x770c9cf1, 0x96521f7b, 0x2fbc4f54, 0xdeb1a3a8,
+ 0xfbfc8582, 0xc3dcb6ca, 0xdef8632a, 0xcfed28ab,
+ 0xcfe1e086, 0x37511ec2, 0x18686104, 0x2ecc7231,
+ 0x102e474a, 0x3d7f8dea, 0x9454227e, 0x43bef27d,
+ 0x1cb1868a, 0x264a89f6, 0x9adfb681, 0x76407c96,
+ 0x477b3e8c, 0xe70917f8, 0xd922c68b, 0xaeaed84e,
+ 0xb596c67c, 0x1d13fb45, 0xfb22f377, 0x3e170148,
+ 0x3db16d05, 0x3afc649a, 0xa7af0815, 0xd37c35bb,
+ 0x72aa63b8, 0x2d937be5, 0x35258930, 0x67e1a556,
+ 0x2f402d84, 0x4cbd1331, 0xe36a0104, 0x83c9817d,
+ 0x6090b7de, 0xe6140e95, 0xc93378ab, 0xbe8a7e29,
+ 0x31282549, 0x6fcc9a48, 0xab3fd69e, 0x6d416631,
+ 0x43933197, 0xd740ad28, 0x529bbb3f, 0x60743c20,
+ 0xa8f63be0, 0x658f28be, 0xd7b58381, 0x4b815237,
+ 0x58594057, 0x8dabb3b4, 0x07a25b23, 0x4032bf20,
+ 0x77daa69e, 0xf67bf7b8, 0x90ced783, 0xded37555,
+ 0x2d6af421, 0x916ea5ab, 0x167465b5, 0xe3bcd36e,
+ 0x508bf21c, 0x73853f7e, 0x2880ed76, 0x225c788c,
+ 0x15ec0f5a, 0x15acc7be, 0xc6a06337, 0xdbfcfcd0,
+ 0xa21b5839, 0x740e6e38, 0xa8b43643, 0x7651cc4b,
+ 0xa12d4b31, 0x386cc72e, 0xe57b512a, 0x786fce17,
+ 0x6b4d127f, 0x6ae88cc6, 0xf3297dac, 0xd0cba77e,
+ 0xe4693105, 0x6c5e0d4c, 0x1aa89ae3, 0xbd393a08,
+ 0x68ce716d, 0x9bcc507c, 0xb972aa10, 0x52c911dd,
+ 0x8da8be43, 0xb6da1d9c, 0xaf13b041, 0x66de981e,
+ 0xa3924b55, 0x33c2ba86, 0xf6e8fa50, 0xc8428735,
+ 0xd9500ca8, 0x2d30e9df, 0x15c7b4c9, 0x661c4bdb,
+ 0x5bd7b778, 0xa88adead, 0x749dc059, 0xd0876ba4,
+ 0xb2c58c54, 0x29b7b8f9, 0xc3e838a7, 0xe1005a1c,
+ 0x9ad5c2d9, 0xdec51c8d, 0xe5e2ba05, 0x2efdcd0e,
+ 0x4e983aab, 0x57db53cf, 0x883cbc3e, 0x77e4606b,
+ 0xb0a312a1, 0xc9007482, 0x95847d9e, 0x488c37ea,
+ 0x60af9eb1, 0x05dae2df, 0xf0706b79, 0x5c5e596c,
+ 0x020c60c0, 0x3685039e, 0x724091ea, 0xb8203ea5,
+ 0x5396ab30, 0xeb4bbbb0, 0x2c843dce, 0x91cca5b2,
+ 0x7f846faa, 0x1414aae2, 0x3182deee, 0xda997d06,
+ 0x218b63a5, 0x321fac27, 0xa1ad3122, 0xe481a05c,
+ 0x78a5308e, 0x3df4f921, 0x88eab5c3, 0x749d1a1f,
+ 0x90bafaf7, 0x01a86381, 0xd6dcb109, 0x5a381934,
+ 0xe1b2ecd4, 0x04dfe933, 0xf79a65d5, 0x2e6eea9e,
+ 0x9e85aef6, 0x8181267c, 0x78ea07aa, 0x421c2c89,
+ 0xe05f6ae6, 0x46547f9e, 0xcb428cf1, 0x6a29c749,
+ 0xa0841467, 0xe231df3b, 0xd1d131ed, 0x0b90e8c2,
+ 0x6c997511, 0x4fc0a070, 0xc4f29403, 0xa39c0d07,
+ 0xd12972c6, 0x28d229cf, 0xc41fd64f, 0xf45daa92,
+ 0x58fb8aa8, 0xc7a283b6, 0xe49f2316, 0x5b68bb84,
+ 0x69dc9cb0, 0x8c54be58, 0x40c9f099, 0x2dae4ba5,
+ 0xcf7c8d10, 0x133f7708, 0xc853a94b, 0x7cc290d2,
+ 0xbef31399, 0x76ab3883, 0x62ca514a, 0x2c8600eb,
+ 0x62093203, 0x25b2bfd9, 0x8ee2907e, 0xaea4867a,
+ 0x9499913a, 0x57ecaf91, 0x80a3f1ae, 0x2c8bee30,
+ 0xa3a7dcb3, 0xb10fbb26, 0xd78ea136, 0xbce5f1e0,
+ 0x7b7b3ccd, 0x46753e6a, 0xefb8fb11, 0x97048045,
+ 0x14278dd1, 0xe105225b, 0x773c9088, 0x713c4cb0,
+ 0x2cca528f, 0x45f41034, 0x39728447, 0x73dc9a51,
+ 0x8c940b5e, 0xf799830d, 0xd01f5d09, 0xd5431a00,
+ 0x35d806e8, 0xd8f39f19, 0x09b85f61, 0x7faad8a6,
+ 0xf1fdf364, 0x338b046d, 0x29769669, 0xf5ea3620,
+ 0x6d4a51d2, 0x1af81917, 0xaac93080, 0xaf23163b,
+ 0x590899c8, 0x875f7dea, 0xd1dd5f92, 0x5ef57034,
+ 0x726a4ccc, 0xa8db944e, 0xfd1b8651, 0x0ea53afc,
+ 0x77095765, 0x67bb5b61, 0x1c8ccdd1, 0x282cc5e8,
+ 0x99b5b1a4, 0x992f09ef, 0x4b7cc638, 0xb01f8ba4,
+ 0xeedfbb34, 0x08032a16, 0x20df1801, 0xdd549c83,
+ 0xc98bc230, 0xb6aa95d1, 0xfacbee14, 0x62e29252,
+ 0x4860d2c4, 0x25f7a7c8, 0x2b92beb5, 0x4a730c54,
+ 0x0736c512, 0xb998a584, 0xf218847c, 0xdc820ce7,
+ 0x19f2f9a5, 0x21a82370, 0xefe72372, 0x8e003cd6,
+ 0xf4f8dd29, 0xeac46a58, 0x0948738f, 0x2dff22bf,
+ 0xef1a9b1c, 0xdbd54942, 0x090c14c4, 0xe3aa27c9,
+ 0x0d7dc1f6, 0x29d72b82, 0xbc6fa51e, 0xf4401294,
+ 0x20e2a293, 0xa8eb9685, 0x5a28dcb9, 0x37323458,
+ 0xb3479f64, 0x8afb14c2, 0x4cb8ce1a, 0x8a1f318a,
+ 0x984b8e40, 0x071a40d0, 0x307afe99, 0x1802a7db,
+ 0xcbceab6e, 0x37493f96, 0xb10a984c, 0xb80c70b1,
+ 0x53c56287, 0x67728ded, 0xbd21ef96, 0xe1521485,
+ 0x8cc8ac0c, 0xf90b32b6, 0x2ee7992c, 0xdfaaac98,
+ 0x7df2c219, 0x583aa4e6, 0xcf6f513b, 0xc1053364,
+ 0xc191a928, 0x6f9c0bcf, 0x30801e06, 0x5caf1fcf,
+ 0xce41b4f5, 0x1e23000d, 0x21cb56ab, 0xa0f4b728,
+ 0x8ce5c84f, 0x7cd86048, 0xdcbb964b, 0x765cf373,
+ 0xf809cb81, 0xf03507d8, 0xf294d43d, 0xe41745ce,
+ 0xe24a314c, 0x18cb3342, 0x4bb837f7, 0x085c741c,
+ 0x415e64e0, 0xb8dd16e7, 0x0f7c3cec, 0xa47d66a3,
+ 0x72315363, 0x06835946, 0x1aef4dd3, 0x423344df,
+ 0x01b07c51, 0xaed97e91, 0xab70300d, 0x1b43d0f3,
+ 0x46b16ac7, 0x3d166779, 0x6258643f, 0x10368aa9,
+ 0xb9c87eb1, 0xa3d70988, 0x84ab98bf, 0xb7f0dd6a,
+ 0xa0a36b4a, 0x627e374d, 0x6dc1135c, 0x82b85706,
+ 0x41c8be24, 0x6d479f63, 0xcbb87d49, 0x43c53a97,
+ 0xa70aca34, 0xa1f43320, 0xacd255f0, 0x05061e4f,
+ 0x0d026da0, 0x257b9d7e, 0x95f5dc24, 0xf3888c08,
+ 0xe5d4a1cd, 0x219f9f2b, 0x38b0eb4c, 0xa5aefb4b,
+ 0x98921ed5, 0x4dd4df26, 0x59229d41, 0x8ba8906b,
+ 0x56b38a69, 0x8d9ce578, 0x607558c9, 0xc64795e8,
+ 0x0e0c2bc9, 0xca64a377, 0x726efba7, 0x9c2f5f9e,
+ 0xb8ed25a8, 0x9dd4d875, 0xd7617c22, 0x77e875be,
+ 0xbf282699, 0x0f575dcb, 0xa0b25cd5, 0xd0d58e6b,
+ 0xbb546f19, 0xff33d417, 0x1a4089b0, 0x8c6c2089,
+ 0xefdac5d2, 0xd307ffaf, 0xf5add107, 0xa97cb249,
+ 0x7a15392e, 0xa314d29b, 0x159140e2, 0x6b1cface,
+ 0x1078b0dc, 0x2e1e2641, 0xf2ff5d66, 0x425731bb,
+ 0x137def65, 0x291cb270, 0xd97d5074, 0xd90e9c12,
+ 0x2a74e10a, 0xce613cd7, 0xda0e191e, 0x063d4ef7,
+ 0x1de08f03, 0x3a516d55, 0xf6aecd3f, 0x4dfa8665,
+ 0xcae6d7d2, 0x3b932e7e, 0x6aa40f12, 0xa4874989,
+ 0xf599574d, 0x63ed7b31, 0xe32b8beb, 0x337692cc,
+ 0x065d65ff, 0x40f43575, 0x701928b3, 0xb62d790f,
+ 0xcfe6cd53, 0x6f9ab30d, 0x5ab29eef, 0x58ff395e,
+ 0x766c6b11, 0xb829aa6f, 0xc1ba3696, 0x6adbb942,
+ 0xf087105e, 0x883ccb50, 0xa80baebe, 0x6a532c5e,
+ 0x0e7f81f7, 0x7d3da268, 0xb0955f4e, 0xbed3c8b0,
+ 0x7a5765e7, 0x384cf1e7, 0xeae2b05c, 0x040e766c,
+ 0x2309f0d4, 0xcaad1d76, 0x52b7b326, 0x5a72ddfd,
+ 0x8f782d7a, 0x455f89d8, 0x89bfe426, 0x0348f165,
+ 0x489b2e0d, 0x990cf7c3, 0xbb61c3f2, 0x36ca2306,
+ 0x4cdca11d, 0xbe6bf45c, 0x51d93659, 0x26f8c7f3,
+ 0xaffbec9f, 0x85ab6174, 0x7444540d, 0x8f0a12e4,
+ 0x3b039d56, 0xe3128b94, 0x53b441db, 0x092a76e9,
+ 0x9fed2d7f, 0x18dc256c, 0xbfdbacd2, 0xa804ed23,
+ 0x43bc563b, 0x68d2c5bf, 0x05c4d52f, 0x06eab2c7,
+ 0x2360545a, 0x0a04e930, 0x2d72c7e3, 0xf4a64ccf,
+ 0x33c3325f, 0x3d7df032, 0xd6d4b945, 0x5faf419c,
+ 0xc8a9e95e, 0xfa80e2c3, 0x135057ee, 0x7a60e004,
+ 0x0f8094dd, 0x3ad99282, 0x69e410ff, 0x186970cb,
+ 0x6a27a9da, 0xd9ad914d, 0x82bb1e8e, 0x08214567,
+ 0x5d2bb249, 0xa610b870, 0xb4d99744, 0x3503cd86,
+ 0x5ed691a6, 0x7db74d82, 0x13d409eb, 0xbc3e729b,
+ 0x36c46d89, 0x10087864, 0xf74ee3c5, 0x188f104f,
+ 0x5e06558b, 0xae22f54e, 0xd01b782c, 0xeb8d0832,
+ 0x0824052e, 0xeccb789b, 0xc31bed4a, 0x3927db31,
+ 0x9566eb89, 0x2736dff3, 0xdf456657, 0x77ff3c12,
+ 0x2215cb1a, 0x9e716e24, 0xcb34aa8b, 0xea3aa46b,
+ 0xc37a05fb, 0xa44070c8, 0x8cb53a3d, 0x382e44e9,
+ 0xcf6ece89, 0xc769a63f, 0x449e9158, 0x582e8aa0,
+ 0x50fad18f, 0x03b087c0, 0xe387e7bf, 0x5ab77856,
+ 0x7bb31f91, 0x75a34299, 0x92acfecf, 0x2b8c3824,
+ 0xd21e48fe, 0xdc22e3f6, 0x5f21cc48, 0x48d9dcaf,
+ 0x2574d9bc, 0xbb945665, 0x105b0a97, 0x8e398cef,
+ 0xbe1b17b8, 0xc639e799, 0x00b169e1, 0x425c6ce5,
+ 0x45cd9081, 0xddb2d2f8, 0xa681e9e1, 0xf0aac2c0,
+ 0xa1bac0c5, 0x379de16c, 0x0a239d83, 0xafb284fb,
+ 0x69902bf5, 0xb2393c90, 0x922dc597, 0xe48bd771,
+ 0xc512bb9b, 0x0d99f3af, 0x6ddc5f57, 0xd717437e,
+ 0x499b1fdd, 0x68319024, 0x4ffa0720, 0x6d4fbe4a,
+ 0xfa393e26, 0x5540e2b7, 0x6c5f2693, 0x82e383e1,
+ 0x6c04192b, 0xe5325618, 0x44df24a0, 0x406a7bdc,
+ 0x5a7bc931, 0xfb7adbd1, 0x3676f27f, 0x9193f7bd,
+ 0xc2a64851, 0xf691cf9f, 0x724f4f81, 0x2ed4605a,
+ 0x1c9a3fed, 0xfbfac0bc, 0xc6fc2f26, 0xa22a1f04,
+ 0xacdfbca9, 0x117789c5, 0x4b159bf3, 0x8726bbe8,
+ 0xaa11c468, 0xc1cbe367, 0x04db4d54, 0x66c848d2,
+ 0x9b7e109b, 0xd88c6bff, 0x6222dd94, 0x5cd17d1a,
+ 0x79e803ea, 0x4f2434f5, 0x54534884, 0x965d2235,
+ 0x198b8cb5, 0xe5f04cc6, 0x1b410573, 0x15077780,
+ 0x001fc7bf, 0xc0cc62b9, 0xe2f0bd21, 0x12da8b04,
+ 0x9eac0221, 0xd589e864, 0x49eb30bc, 0x04b0ea03,
+ 0xa324e1ab, 0xe71aa458, 0x34ba45d9, 0x3b5b487d,
+ 0x7fcf3c01, 0x44f47d48, 0xdeb974ae, 0x2a972848,
+ 0xa21cbd97, 0x584ec628, 0x3f1de1be, 0xc7527634,
+ 0xf44a8137, 0xc4adb799, 0x70abebf6, 0xff21aa07,
+ 0x62481764, 0x31e37d46, 0x8781a8b6, 0xc2b363de,
+ 0xc836ecca, 0xe83d4fbf, 0x150ed79b, 0x7c904bdf,
+ 0x94250f64, 0xf660eefa, 0x81c38094, 0x96094ecb,
+ 0x9104b303, 0x2e515c05, 0x675b2e51, 0x09520c3c,
+ 0xbec0c984, 0xcf079906, 0x71a8d449, 0x8a97fde5,
+ 0x3afb7fbd, 0x3b64f9fa, 0x55d19b11, 0x32c0eb4e,
+ 0xd1fe2cf1, 0x3ddc23ae, 0xdc7294bf, 0x0e249f0c,
+ 0xb3c576a3, 0x618e16bc, 0xc8e95e71, 0x95bfd3f0,
+ 0x8c931f95, 0xf2b2a117, 0x632c8b99, 0x20ef6b5f,
+ 0x8bfb64c3, 0x3f86d990, 0x4f6765bb, 0x6640f99c,
+ 0x1f3ba4f4, 0x130a5f9e, 0x3c6262ae, 0x58c845f4,
+ 0x28ed2140, 0x042756f1, 0x96151c0e, 0xee23cde9,
+ 0xac1e1328, 0xd2ab0654, 0xb89e597f, 0x701f47af,
+ 0xdcf675d2, 0x545af75f, 0xb9132ca8, 0x83a5b0a2,
+ 0x3cfdafbf, 0xf44253ac, 0x3c96e1f0, 0xaeba3d99,
+ 0x11d10c3d, 0xe36ceee9, 0x04505fd8, 0x1a718fec,
+ 0xf2b6cfaf, 0xc1e12669, 0x405e1a0f, 0x74ec02c0,
+ 0x03423483, 0x7fcddaff, 0xc1fc2e1f, 0x8215518b,
+ 0xf8b63c01, 0x77d78177, 0x9fabaa4a, 0xd63f22a2,
+ 0x7e55c207, 0x1b06ca27, 0x43f594be, 0x76ff94fa,
+ 0xb713ab03, 0x848abf69, 0xeb41b6bc, 0x8b20895e,
+ 0x7618e5c4, 0xbed98dd5, 0xacf2bd4e, 0x5497b714,
+ 0x3894c78c, 0x3774d3b6, 0x9730846b, 0xe4bd110d,
+ 0x04fdf02e, 0x07308b78, 0x51a0ec6f, 0x8eb947e1,
+ 0x9c13b9a6, 0x6db24694, 0xabad2049, 0x8049b97c,
+ 0x2b7bf15f, 0xea812ba2, 0x9f995ece, 0xac73417d,
+ 0xfca49ad9, 0xf50beceb, 0x526c0df1, 0x2cf8975d,
+ 0x3b353807, 0xa6438e20, 0xb3ddc8ce, 0xe8479899,
+ 0x4145d910, 0xa2c5d568, 0x23f634ee, 0x80625386,
+ 0xc05b4e4f, 0x0e9e564e, 0x38177d4c, 0xc3427d42,
+ 0x7fa294aa, 0x6bf3ff8b, 0x73106d03, 0xf167be2e,
+ 0xd5e9f885, 0x25547c6b, 0xc22df74e, 0x0d45898b,
+ 0x1f1c0120, 0x711dd9eb, 0x50bac016, 0x190fc1d7,
+ 0x67cac946, 0x88777823, 0x535e17e8, 0x525ee0eb,
+ 0x3faf0333, 0x558a056b, 0xbd0a963f, 0x0724368d,
+ 0x6f5c4133, 0xd054addb, 0x123847fd, 0xc2e49493,
+ 0x3a803cac, 0xcd139148, 0x709074eb, 0x2937814f,
+ 0x2e10831f, 0x4dd439da, 0x9258992f, 0xe4498517,
+ 0x8d8304aa, 0xf2c68bc0, 0x6153968e, 0xfb3e63e5,
+ 0x9f7e9239, 0x14507d5c, 0x48503f78, 0x552f871c,
+ 0x25a61be4, 0x96c2cfea, 0xd902121e, 0xa6a09fde,
+ 0xd66dac1d, 0x5d86aa6e, 0xd90ff409, 0x47968d9c,
+ 0x45668efc, 0x36626277, 0x76121dc6, 0xa38f9459,
+ 0x66fd9602, 0x1f6107cf, 0xbd2270c2, 0xc9a9aa34,
+ 0x1db7d70a, 0x02c63eb1, 0xcc44d2ab, 0xf087333d,
+ 0xbe9f9f5a, 0x1d97e411, 0xb2a9f038, 0x3379bc44,
+ 0xfd5de5ae, 0x37215c9a, 0xe0853a8d, 0x10d948f7,
+ 0x7fb55ee2, 0xe4afdbb3, 0x200f6b38, 0xb5727876,
+ 0x695767fd, 0x1f84ba34, 0x1a4e60f7, 0x47295799,
+ 0xedc0fc72, 0x814e918f, 0xde04d4eb, 0xbd63c229,
+ 0x028d9710, 0x8e3357ea, 0x470daae7, 0x4d124abd,
+ 0x5a18d74f, 0xc2f9f7cb, 0x18437f56, 0x8b85b196,
+ 0x24fc240f, 0xf400c27a, 0xfcd18a68, 0x4db7c38b,
+ 0x5ae45a27, 0x57d9dcd4, 0x1d359848, 0x5312d4ed,
+ 0x093d41ce, 0x9792df11, 0x8a5ae34e, 0xc506e5b3,
+ 0x62f2436f, 0xb46ccff7, 0xc3a2877c, 0xb47c4bcf,
+ 0x042ff7b7, 0xbb351dc2, 0x07a80f57, 0xf00f504a,
+ 0x61fa57d1, 0x6cabe9ac, 0x3f8db966, 0x59c459dd,
+ 0xfe22805a, 0x76231272, 0xbe067850, 0xbeb7e473,
+ 0xebe7884a, 0xfbd672ef, 0xd1d7ea57, 0x21eba2b7,
+ 0xab307832, 0x860b4e87, 0x5e7bc217, 0x4de67fdf,
+ 0x8e157fc0, 0x1c5a6a50, 0xadf02e8e, 0xfbdcedea,
+ 0x8dd4d576, 0xde010af2, 0x954d4562, 0x7b38eec5,
+ 0x9071b1c3, 0xcc6c1300, 0xd8bb8a98, 0x77adc657,
+ 0x35f870de, 0x72c4fb01, 0x2f82b499, 0xbff0fb00,
+ 0x0b9c916e, 0xd51efec5, 0x66aef35f, 0x98c0425d,
+ 0x1257bd59, 0x73c96fb0, 0x143009b6, 0xc8da6154,
+ 0xcedd3931, 0xe639f255, 0x31195455, 0xf8d384f1,
+ 0x7c622711, 0x76461b7e, 0x12d1b13a, 0x49458cad,
+ 0xf70d1701, 0x2258e262, 0xab241855, 0x7e2af8b2,
+ 0x0f4a5415, 0x9fabfb24, 0x025367e3, 0x8ee2dd89,
+ 0x370ace6d, 0x71b1d73d, 0x1be9048d, 0x40268ddd,
+ 0x1bb00dab, 0x08846f16, 0xb1d94d3a, 0x710e6e0f,
+ 0x5c2f324f, 0x41383439, 0x48ca7be0, 0xe55c13aa,
+ 0xf21122b1, 0xf5cdfcab, 0x10f5f7eb, 0x43c07367,
+ 0xcc013676, 0x28fa490a, 0x6c8f7f9a, 0xf68e1b8e,
+ 0xc934f441, 0xd3a873c6, 0x50ca67db, 0xbcc54c78,
+ 0x909d33b4, 0xfb1a331b, 0x4ab01904, 0xcd3c9876,
+ 0xcc564d2f, 0x20091bbd, 0x79755f60, 0x8260b295,
+ 0x53f31a5d, 0x0093a19a, 0x43fdbbac, 0x15e6d171,
+ 0xa77e03f9, 0xf46444a1, 0x897398ac, 0xf6d63a11,
+ 0xfc75a39c, 0xa900fd98, 0xd0dd0777, 0x5cab7856,
+ 0x80d06a1c, 0x9ee8c1d8, 0x1cd7712c, 0x5b1a4f07,
+ 0xb7039a75, 0x62435396, 0x324194bb, 0xae5e5eb5,
+ 0x91cbfc4b, 0x46ef4da2, 0x40571d59, 0x9db9c694,
+ 0xf07420fb, 0x1e6f4e49, 0x7452ae52, 0x1a9cd4e1,
+ 0x3431f092, 0x52bf5917, 0xe2bc92c3, 0x74c7c2e6,
+ 0xc3551052, 0x21993218, 0x988d3083, 0x543f7bba,
+ 0x22684d70, 0xf162e524, 0x92894a49, 0x26e78331,
+ 0xd8b286ef, 0x8cfcb379, 0x00b2ea56, 0x41ae0286,
+ 0x13360a90, 0x84f80051, 0xeba616e2, 0x87a827e2,
+ 0x1bd09ffe, 0x9b70baf3, 0xf3d2a45e, 0x3ceec8fe,
+ 0x696ddfed, 0x70c86b0d, 0xd2b0c194, 0x63606821,
+ 0x2fba5d37, 0x2fab6508, 0x07896201, 0x07b10a17,
+ 0x36ef09e9, 0xdd60c2e9, 0x9c602225, 0xc556599a,
+ 0xec4c491e, 0x6b6c0ebf, 0x178486f8, 0x9ae164d6,
+ 0xdb334752, 0x709b9cfb, 0xb6bb8bb9, 0x383c0808,
+ 0x4703d8e5, 0x2db679ee, 0xac7f3801, 0xc4876dd2,
+ 0xb568e55f, 0xda2fa896, 0x8fe566ca, 0x8c767925,
+ 0x36651163, 0xe7d259e9, 0xf94c850f, 0xb6e9ab4e,
+ 0xd31cce5e, 0xd5794bd1, 0x3130d416, 0x30e2eec3,
+ 0xe9dcf8e5, 0x11d435c4, 0x0d0ec366, 0x845b8178,
+ 0x858a73ae, 0xdd80b6fc, 0x48c85811, 0xe39934f8,
+ 0x1b442724, 0x2515deb5, 0x2efd8f90, 0xab25c3d0,
+ 0x23ce7269, 0x3fde4de1, 0x5a5c6a9d, 0x57e01ac8,
+ 0x9e2375e7, 0x83d0d980, 0xd7ae58b7, 0x0f960a4b,
+ 0xb121d495, 0x00d85784, 0x330fdf7f, 0x72a98d6a,
+ 0xa6431e5a, 0x83b37570, 0xdfe8561a, 0x0def8168,
+ 0x534a7e92, 0x8899222b, 0x6b5c95bf, 0xe968b1dd,
+ 0x1ba4c3f4, 0xb2ae5a7f, 0x12df0337, 0x6dfcfe82,
+ 0x3aa87290, 0xb32e9115, 0xb709b7c3, 0x118968f2,
+ 0x081176ff, 0x9e12bca9, 0x5c18b7a8, 0xbba6183e,
+ 0x222dd29a, 0x612d9cd8, 0xf5f5778a, 0x78e262dc,
+ 0x085022f9, 0x7210f53a, 0xcd39e0cf, 0xea7d3d44,
+ 0xf28012f1, 0x15ef37d5, 0x9b3c568a, 0xa9a67e97,
+ 0x1b79e75a, 0xecd56787, 0x2f4c1cbc, 0x7bd4fab0,
+ 0xee076605, 0x644306e3, 0xb0a4d867, 0xf10ec614,
+ 0xf08158cd, 0x21af5c11, 0x8f52852f, 0x20c602e0,
+ 0x3f06c7b6, 0xfec4ec97, 0x317776f1, 0x88ffe504,
+ 0xdee24a8a, 0x058c9061, 0x5ffbeac5, 0xd5540516,
+ 0x1a89f410, 0x21506f34, 0xf6a5cfbb, 0x6581ef0d,
+ 0x81c5deb2, 0x8059e379, 0xf537286f, 0xc225b03d,
+ 0x6a6912de, 0x59d5f033, 0x116066b7, 0xd870df1d,
+ 0x316e1195, 0x2f7483c2, 0xa990c0f7, 0xcd5ac3d6,
+ 0x95fa591b, 0x40a4d640, 0x8e4a12f5, 0xb52e1b85,
+ 0x9e903fe2, 0x3ed4e751, 0xd28a44e8, 0x3ab4ebec,
+ 0x3f4d21ba, 0xf0ac6886, 0x0f7cf03a, 0xb72c525d,
+ 0x76e7e118, 0x18c1d113, 0x539dae8e, 0x8d25bb9a,
+ 0x484b5d4b, 0x72da9543, 0x20e6b3b8, 0xdbe01baf,
+ 0xba5ec55d, 0x252ed21b, 0xd0727a55, 0xf7003e16,
+ 0x818e1861, 0x1e2c8a25, 0xee76420c, 0xcff6c0d7,
+ 0x8303e9ca, 0x6d229a6b, 0xa9050013, 0xb58d50de,
+ 0x3c4c83aa, 0xbf3875e0, 0x40965c5d, 0xa6e3e509,
+ 0x592f5b92, 0x2c260cfc, 0x8284feb3, 0xd29d5fd5,
+ 0xdd4d8218, 0x0ae2a0cc, 0x1ee9f558, 0x6bfc9bbe,
+ 0x82b48fed, 0x30232706, 0x9c9c0458, 0xc42e6c74,
+ 0x0c56f7b3, 0xfcfaca28, 0xd3957753, 0xa28b1974,
+ 0xf4674ee7, 0xca4f2977, 0x990ef13a, 0x12bc198e,
+ 0x8dd91865, 0x9c1170f7, 0x06eedf30, 0xc1751117,
+ 0xdaca3428, 0x8047dc38, 0x3e87a8b1, 0xf226a647,
+ 0x7c750e79, 0x6b19d571, 0xff42d3de, 0x8797ce4f,
+ 0x8a196cae, 0xe30061b2, 0xa3928975, 0x081e02c9,
+ 0x9a12de54, 0x402e3b79, 0x5ce9d578, 0x463a436f,
+ 0xe94d2649, 0x0ebf55e1, 0x8b78d43b, 0xec91927b,
+ 0x503c0bf8, 0x873bda5a, 0x55b0a7d1, 0x44ebb04c,
+ 0x7823714f, 0xb414bc36, 0xb9b6d07b, 0x54059262,
+ 0x25a50e78, 0x29f6741c, 0x381d43e1, 0x33ffa14e,
+ 0xabd49aba, 0xfe13816b, 0x39a12200, 0xe0035383,
+ 0xf6cf39fa, 0xa51859e4, 0xa2844484, 0x182eb455,
+ 0x64d94cf1, 0xfa5e5cb6, 0xbb9c4ed0, 0xf6eda8cb,
+ 0x6ea7d62d, 0xeca15d1d, 0x8bbd2993, 0x4c6e7d52,
+ 0xfa566995, 0xde1abaea, 0xfddd2591, 0x189af0d6,
+ 0x60b22d4d, 0x8d9e8b8c, 0x0aab95ca, 0x7305be5b,
+ 0x4ba61073, 0x734c5c4d, 0x120b2f0a, 0xc7f69baf,
+ 0xa87a68c9, 0x04a6a2e5, 0xbe3dec54, 0xc16c25f4,
+ 0x17c45f40, 0x99a39ca1, 0xda1b5393, 0xc7985259,
+ 0x52fa8da2, 0x66a28573, 0x6cc37d02, 0x0329b8cd,
+ 0x2cb8e45c, 0x44729798, 0x74f44c0d, 0x65642399,
+ 0x72867ab6, 0x2bee1f1e, 0x7157a738, 0xc37a01fb,
+ 0xd48948c0, 0x94387593, 0x393460a9, 0xa72c7ab3,
+ 0xb3a29184, 0x03ad1cdf, 0x79cc1767, 0xaeac8b9f,
+ 0x1e6453a0, 0x3bfb8383, 0x12b12902, 0xf0a0d2f9,
+ 0x0eff78b5, 0x108fa479, 0x33f1a233, 0xae779a8d,
+ 0x20bc31d9, 0x39f82966, 0xda4a0eeb, 0x90128c2b,
+ 0x9bee3a2c, 0x42ef4e32, 0x020ab513, 0x72a89a05,
+ 0x060fc28a, 0x70ebd8d2, 0x8c2975f5, 0x5b7665ca,
+ 0x0120a9f7, 0xc8deb59b, 0x854fb449, 0x1136f9a3,
+ 0xfd1bd5f2, 0x1826e4f8, 0xdda8d903, 0x3b6d5234,
+ 0x2a11b9a3, 0x61f25f38, 0x2f1c99ae, 0xfb0a99dd,
+ 0xf17104f1, 0xeb7f2b84, 0xa6bb59c9, 0xca24db51,
+ 0x5815f07a, 0x4222bc1a, 0x9aa6de8a, 0xed0c1477,
+ 0x1f45fad7, 0x088fc446, 0xc74595f1, 0xa0c271c5,
+ 0xc28841d2, 0xc2f8a32d, 0x47185b03, 0x6ccfbccf,
+ 0x3e12e6e4, 0xb07b9656, 0x257718b0, 0x1fdd981e,
+ 0x178b5f2c, 0x446cad42, 0xafcdc07d, 0x6277bcbd,
+ 0xfba426f9, 0xa69e0bac, 0x88af0871, 0x854e5f33,
+ 0x19f34f17, 0x30332608, 0x30c8b69a, 0xa563ca2d,
+ 0x30f79b47, 0xd67f18c8, 0xaaf5da97, 0x7c14f966,
+ 0xb1628b44, 0xaadfb39d, 0xecbe0a4c, 0x3be0b53e,
+ 0xd9066672, 0xf8fac3e2, 0x74f1f28b, 0xfbc19563,
+ 0x32bf841e, 0x862545fb, 0x690d55ee, 0xdd8c8540,
+ 0x26cd54f4, 0x501db8ef, 0xfc9c873c, 0x1288a541,
+ 0xea8a3330, 0x928f2842, 0xa680494a, 0x1f6e5540,
+ 0xdbbc143d, 0x139d50d6, 0x138e4d49, 0x9d94ae05,
+ 0xcb28851d, 0xb93cc740, 0xba0be624, 0xe92ad5bd,
+ 0x29fca04a, 0x2b79015f, 0x7538d1d0, 0xdd53357c,
+ 0x5529a541, 0xf0f02503, 0x1c41ba49, 0xd10bd305,
+ 0x4beaf82a, 0x396a1ef9, 0x98480517, 0xf46f5133,
+ 0x5cf72cc6, 0x59041a30, 0xe35788c1, 0x8555f078,
+ 0xdbe4ee07, 0x2d9d4c01, 0x2ea8675e, 0x58f4ab9b,
+ 0xa8a3adb7, 0xea78c9b4, 0x644ec10a, 0x91ff476c,
+ 0xa4ee0099, 0x85c2a71b, 0xe4f0c751, 0x25f7d864,
+ 0x9cdc0c0f, 0x3a6ccd69, 0xc19c5837, 0x33d1bce9,
+ 0x3491b323, 0x64a55b20, 0xfbbf0dc0, 0x80361cf0,
+ 0xc4dfa1ad, 0x47c59434, 0x085bf934, 0xb544fffa,
+ 0x4a6e2b8a, 0x043f9f57, 0x17fced7c, 0x4443ef41,
+ 0x57cd86e7, 0x7bbcdf5d, 0x28c6d5ec, 0x6ea655fe,
+ 0x08cf8ba6, 0xd98493d6, 0x6869fe9c, 0xb1018ba9,
+ 0x00ba69f5, 0x1c1db5db, 0x46a3f43d, 0xfccb13f9,
+ 0x286a158b, 0xbc8456f9, 0xcd70c05b, 0x4875b2f6,
+ 0xaec2f9e7, 0x1d353392, 0x8193baa9, 0x97912c63,
+ 0x2270bd6d, 0xdf48b467, 0x43f862bb, 0x0922716a,
+ 0x59778603, 0xb4eebad7, 0x2ac10451, 0xc8e0f911,
+ 0x8691ae9f, 0xa47cc146, 0x9365b133, 0x78803020,
+ 0x28e4ebdf, 0x33d927ac, 0x48f9cf59, 0x7fe5ea60,
+ 0x358130ec, 0xa33d2b2a, 0x7e4cc747, 0xac1bdd24,
+ 0x9070f611, 0xf57db3d2, 0x0b176723, 0x06ceb308,
+ 0x0d94effe, 0x1965cd46, 0xe3ce8566, 0x76482423,
+ 0x79c72959, 0xb552fdf8, 0x1b252075, 0x34ea64be,
+ 0x2ea74b59, 0x1828528a, 0x5937563a, 0x58fe8d44,
+ 0x3a19b828, 0x6d8a898b, 0x4f86b126, 0x12a5b994,
+ 0x9972c558, 0x963c6b32, 0xc2f07330, 0xf523965c,
+ 0x4dd1e269, 0x279bc606, 0x290ae7ba, 0xff0e1277,
+ 0x35a157bd, 0x24e08231, 0xfce08cc4, 0xf2769488,
+ 0x8e425c9c, 0x483a2418, 0x00e226f2, 0x0abc34a4,
+ 0xba7519c3, 0x8cf47f7a, 0x3b9a456e, 0xcc571017,
+ 0xaeac4c7e, 0x66952d6e, 0x893a254a, 0xab3c6bb2,
+ 0x9ca62b34, 0xa43bc103, 0x637e66ce, 0x840c2532,
+ 0x5a105fb1, 0x665c6c43, 0xb179fddb, 0x74a20c09,
+ 0xe3ecf5a3, 0x50463b4b, 0xb2961aa4, 0x5dbc27e5,
+ 0x6ddea0ad, 0x44a9e587, 0x54e6995d, 0x5cd9c33c,
+ 0xfee1c267, 0x05825ba0, 0xef02e95f, 0x375bf0ce,
+ 0xf5e48110, 0x2c0181e3, 0x823b95d4, 0xb444b3ac,
+ 0x04518b27, 0x536f8f9e, 0xcdc19c53, 0x9960a155,
+ 0xc55a5f23, 0x9c43edca, 0x286738ad, 0xfd56265d,
+ 0x2b62e150, 0x54274276, 0x09a1c288, 0xa8aa5f6c,
+ 0xa4aa3f41, 0xa2ec648e, 0x410d901c, 0x3cb389ab,
+ 0x8a419eec, 0xb84d7dcd, 0xb17aa165, 0x94c652bf,
+ 0x35f7cfee, 0xc3d840a5, 0x30a945aa, 0x020507c0,
+ 0x6ce7f818, 0xbc58090d, 0x4daac2f5, 0x878beb1d,
+ 0xcbdb6eb0, 0x79832250, 0xb3470960, 0xc61bf099,
+ 0xf1ad9092, 0x5ffa5333, 0xefcb5652, 0xfb96c119,
+ 0x487e2b82, 0xc3d00054, 0x0f15fe12, 0x1a54da5a,
+ 0x57ea0e41, 0xc30a4bc3, 0x61a37e3a, 0x15bcfd3d,
+ 0x74e52a3d, 0x5619f4d3, 0xc8ebbc79, 0x60166885,
+ 0xc65d8527, 0xa2d81be6, 0x02e4ee47, 0xc9746e7e,
+ 0xbfd61f0e, 0xb52cf36f, 0x4787da40, 0x6b2ae085,
+ 0x5c9a7d9f, 0xfd2e51aa, 0x193d67c6, 0x18c31882,
+ 0x1287de0f, 0xc8c92e61, 0x5c7440bd, 0xa088af2d,
+ 0xc6446ead, 0x9e7d082e, 0x2a705216, 0xe1afd94f,
+ 0xef30e8ab, 0x1339dd08, 0x5eaf99ce, 0x5892d22a,
+ 0xfcb12b2d, 0x075fd04c, 0x13d3c186, 0x89df21c1,
+ 0xd7b934dc, 0x0ba666cf, 0xc735bef4, 0x0775a6ae,
+ 0xb2d50509, 0x02ec6a6e, 0x1f41eda4, 0xeca4adea,
+ 0x2bfe48f5, 0x7f9a2e4a, 0x8d168488, 0xf9d83c7b,
+ 0x2ec780e3, 0x1d533263, 0x288e2296, 0x7894010d,
+ 0xa7bbb038, 0x12de353b, 0x61f08cbd, 0xdbe00bc4,
+ 0x4f628f30, 0x9cce4d01, 0x1c4c9ddc, 0x4548cfe7,
+ 0x56cbc3d3, 0xa6ec73d2, 0x884a57d4, 0x1f61df47,
+ 0x0eb7a7ee, 0xb8814bdc, 0x2edf3a1f, 0xc6345669,
+ 0x5ff19e24, 0xfa6d2b7b, 0x67739aa3, 0xdc99ccf3,
+ 0x363274e0, 0xefec006e, 0x6b4cc24b, 0x04a87c55,
+ 0x039d75be, 0xc4c5b20e, 0xa46d6a36, 0x07cf0aa4,
+ 0x5279aaca, 0x895bdd63, 0x4df5096f, 0xb8a398c5,
+ 0xa9708281, 0x532b5ee8, 0xed7c436d, 0xffc40133,
+ 0x23ff5089, 0x3d30e388, 0x45c7b7f3, 0x6d9923d8,
+ 0xbcae4c2a, 0x2c7eeba1, 0x85a70f96, 0x2d19d9a5,
+ 0x5fa771b7, 0xa4bd176c, 0x9022c6a4, 0xc459f501,
+ 0x90cb6b5b, 0x60e2f4bd, 0x4641d237, 0x13c1f7e9,
+ 0x1e8d4c22, 0x140d4f94, 0xdb46a4b7, 0xd81b0e47,
+ 0xb153455b, 0x1fed1397, 0x1f62b03b, 0xd2cc135d,
+ 0x762851d1, 0x032e1792, 0x4ef3d480, 0x9ea803fd,
+ 0x7a67de82, 0x3b0a2ee7, 0x02053b59, 0x45be2578,
+ 0xc7c665a7, 0x6993efdd, 0xa6c649d4, 0x030244e4,
+ 0x5c4ae38b, 0x38796122, 0x0bcdaa6e, 0x8371b4d0,
+ 0xf48995d3, 0x97c55931, 0xeca4a076, 0xc5b134f4,
+ 0xe76da2f3, 0x3c9eb6e9, 0xf832b2ce, 0x431cc97b,
+ 0x3afa5c22, 0x66b1abdb, 0x2f78d404, 0x4a8873d5,
+ 0x885f1f35, 0xe6a1cd4a, 0x683bb92c, 0x63064bed,
+ 0xb047d11d, 0x81aa644b, 0xd3ddaa9b, 0x035d30db,
+ 0xaa0344e4, 0xb84021d5, 0x97212e44, 0xa28a8ffb,
+ 0x54b0d2a1, 0x0e7bac30, 0x38f15f53, 0xfb294ca3,
+ 0xe5f8cf4d, 0xf75a4b4d, 0x8b6d8475, 0x75020629,
+ 0xbc0d4f15, 0x96c606f5, 0x086d7018, 0xfedd1cbe,
+ 0xf3ed72c9, 0xae4a0f07, 0x905205e5, 0x6390ff12,
+ 0x091ab8e4, 0x4883ad11, 0xa6ae4f18, 0x74369bfe,
+ 0x8c8ca6d8, 0xa26d3628, 0x979272d0, 0x7be7078c,
+ 0x07b55ce8, 0xd182d554, 0x56aa100e, 0xf3af795f,
+ 0x8cf5c2b5, 0x59ca7609, 0x61ed3bd4, 0x1d95769e,
+ 0x2e54c24b, 0xfc70187a, 0x6612d02c, 0xaa7d71cc,
+ 0x57275e04, 0xc843b9a5, 0x511eb2bb, 0x0c079ba1,
+ 0x583e5e98, 0x2325f2b0, 0x93c6fa1d, 0x461949e2,
+ 0xb6919764, 0xfcf8d454, 0xc0c02029, 0x3c98af45,
+ 0x8f8700d4, 0x47ce94bf, 0x15cbda00, 0xc0af798f,
+ 0xf6d1d496, 0xee4fccda, 0x872aac3e, 0xa308f889,
+ 0xb33e96a8, 0xfcf9fb3b, 0x5b0a9716, 0xcb5e92dc,
+ 0x20495efa, 0xeafb9f21, 0x8f2d44fb, 0x57d6a532,
+ 0x3a48b77d, 0x670133fb, 0x877f5fe7, 0xe1e01dea,
+ 0x0a084b76, 0x80ab1eed, 0x9af5756b, 0x7fbace8d,
+ 0xce7f5a73, 0x37881268, 0x7b054372, 0x27a0a74d,
+ 0xca02c5c1, 0xc4bcf2a5, 0x9c20c6f2, 0x5dc475b6,
+ 0x23f4aea5, 0xf45d2b36, 0x9c604078, 0xea094271,
+ 0x09be1939, 0x0b367cc6, 0x848dfe6f, 0x100ecc3d,
+ 0xddc88e55, 0x7b5d28a2, 0x7860b89e, 0x775e68b4,
+ 0x30ab4038, 0xb1fdc22a, 0xc095b7c6, 0xc0154c83,
+ 0x42f90faa, 0xe3c7fd74, 0x6535ab87, 0x1cf7d3a9,
+ 0x5549ad53, 0xde9151ad, 0x9ea7303e, 0x027722ee,
+ 0xaacb1059, 0xbc6d92ce, 0xd9379962, 0xea981e27,
+ 0x126fac29, 0x69862409, 0xb5fbd874, 0xc3835a43,
+ 0xa339dd93, 0xabb8ca7b, 0xac5868f8, 0xa8233840,
+ 0x6956fbd9, 0xb6c2fddd, 0x1a777e9b, 0x74a5a6f7,
+ 0x6200dc1b, 0xbe21c654, 0xc59aa445, 0x8cc3b5f4,
+ 0x1f6b91e7, 0x21f1a74e, 0x867945d5, 0x6f7ab56b,
+ 0x2bd4c41b, 0x84eeb02a, 0x8e508e5b, 0x600bdf6a,
+ 0x48dc391c, 0xce8fd525, 0x327b3254, 0x03897193,
+ 0x2b451e99, 0xd3c07c62, 0x71382315, 0x9af721f9,
+ 0xd17564ea, 0x4351159b, 0x94ee1459, 0xcf43ebbb,
+ 0x260459bd, 0xc4a0aa8a, 0xa174b150, 0x5519aa51,
+ 0xfc9d34ea, 0xe42d5a00, 0x3aa60346, 0xb8f01a97,
+ 0x179ad8bc, 0x31e6491d, 0x0ca4d363, 0xebf1b063,
+ 0xfe575797, 0x6e086e70, 0xad0c1d16, 0xe04f5f5b,
+ 0xdef4824a, 0x890a8034, 0x96ebfedc, 0xb80b9cae,
+ 0x152c42a6, 0x0db1e18e, 0x0bec54a4, 0xebe7511a,
+ 0x647576d2, 0x26c74185, 0xb88c0a7e, 0xef586fbd,
+ 0xfdc52573, 0x44818b5f, 0xe25388b1, 0x903eacd6,
+ 0xaadfcfec, 0x7887ed8b, 0x20f2657d, 0xdb2d5086,
+ 0xbd7b2d27, 0xb4be4695, 0x71c9db2f, 0x6dc2868f,
+ 0xee317131, 0x4bd8a206, 0x74b2aecf, 0x9644c6bd,
+ 0x16ee2e84, 0x5e6e59c5, 0x3ed8c83f, 0x3d3ece60,
+ 0x6ff23f23, 0x69ea7e8e, 0x628bfb3d, 0x1f27d10b,
+ 0xd3ad7632, 0x22f3e0dc, 0xed2f2f27, 0xb9010b31,
+ 0xffdb13ec, 0x5fefec44, 0xb1956a71, 0x60d72e8e,
+ 0xf3db1cfc, 0x21b03a36, 0x9c749c52, 0x871736b8,
+ 0xddb876b5, 0xbe72ba05, 0xcadd94bd, 0xcd235899,
+ 0x990ef14b, 0x75d45063, 0x5d0dab6f, 0xf07efba3,
+ 0x19d755a7, 0x225cebef, 0x0eb66983, 0xb2b790a1,
+ 0xba5ecaf1, 0x8fbd6f40, 0x598d850b, 0x993a4f9f,
+ 0xc0060760, 0xfd77fb8e, 0xfe23bd8e, 0x934e2ba8,
+ 0x4f0ed544, 0xa1b5a292, 0xa02982de, 0xa48b12a9,
+ 0xbb29c86d, 0xc1ba635d, 0x16d44889, 0xbcee85bb,
+ 0x180f284b, 0x4be25661, 0x6e527152, 0x7009553a,
+ 0x42c91272, 0xba0e0409, 0xe09a190c, 0xf9b3413f,
+ 0x0194438d, 0x2d9b3183, 0xb4ffdef3, 0x2a3e81fd,
+ 0x506aaca8, 0x22808572, 0xeaa65056, 0xa3189e8b,
+ 0x8ed4c27d, 0x5cc3f0ab, 0x5c3fd9e9, 0xd4128422,
+ 0x1670b0a7, 0x1bb0ab0b, 0x24a5fa36, 0x90fe5731,
+ 0x08fdf04c, 0x6aa77212, 0x541e708e, 0x6730edd1,
+ 0xacc62be9, 0x5dcc2fea, 0xc7a6e1da, 0x5f46c34e,
+ 0x41615597, 0x932828da, 0xf377df2b, 0x7bbb8a45,
+ 0x7ed2988c, 0x8edc2d9f, 0x3461f64b, 0x1d3df37e,
+ 0x39efbfe7, 0x3e7db3a9, 0x85b77222, 0xd332bc41,
+ 0x7a0e7916, 0xa972d1fc, 0x4fdbcb4d, 0xa4cec6ad,
+ 0x79ab2ae7, 0xcd30a5d3, 0xea713115, 0x2e12d660,
+ 0xdeeb001b, 0xf2616836, 0x14fc8167, 0x9c18d6e6,
+ 0xbbee9b3b, 0x079e235c, 0x73959951, 0x940c905b,
+ 0xae4fa152, 0xfbbdc0c7, 0x46b6eb5b, 0x2fcaebaa,
+ 0x2f6d0c36, 0x5334b4c8, 0x3d68ae16, 0x2a8d2411,
+ 0x1730fa08, 0x6f63fc2b, 0x91ae6073, 0x3cd23a79,
+ 0xbcc42b7d, 0x6456502d, 0x949c44ee, 0x6aeb0bbd,
+ 0xe718b8a9, 0xca541325, 0xe5259811, 0x2c8d8bae,
+ 0x2f5aa1ee, 0xad473c8b, 0xc74af72a, 0x5681dbae,
+ 0x47ee969b, 0x2f4a0305, 0x22872f75, 0x72e31e0f,
+ 0xb5b455ff, 0xad4e2dd1, 0xc4314c55, 0x9a8467c1,
+ 0x619c8d11, 0xb5a52598, 0x921594d1, 0xd64014a2,
+ 0x74a88f0c, 0x3cf93fd2, 0x5bf792f5, 0x3111176d,
+ 0x8b84cce1, 0xcfe53fe7, 0x4a7f6738, 0x04d0bbdd,
+ 0x5497f76a, 0x8eb366a6, 0x55baaff5, 0x0b1f6b03,
+ 0xf26058d5, 0x6fbefd1e, 0xa457c5af, 0x7dc2243b,
+ 0xef19f368, 0x5e2863f8, 0x6385e880, 0xa4f62abe,
+ 0x09093681, 0x9aacbacf, 0x0575a0a0, 0x3436658c,
+ 0x25bc30f6, 0x0f64a1de, 0x22504451, 0x9421d08b,
+ 0xc9853159, 0xf1983fc2, 0x84d3b606, 0xed782243,
+ 0x1925429c, 0x91dc6406, 0x75703e73, 0xc2a4059e,
+ 0x1041011b, 0x337278c4, 0x8b48ad4a, 0x470d6f75,
+ 0xdfa6299e, 0x5d4bdeab, 0xdb7b7223, 0x5da0e3f1,
+ 0x402cf2a1, 0x9000292d, 0x12b2d362, 0x957124cc,
+ 0xa1845ccd, 0x1fc677f2, 0x3a219f4f, 0x91739ea6,
+ 0x62419ff0, 0x71147744, 0xf902e26b, 0xbd057ef2,
+ 0xc6ff27ef, 0x958b4db9, 0x114e12cc, 0x55e9226d,
+ 0xf02e578c, 0xf02797c5, 0x58a88aa6, 0xf4e54d03,
+ 0xae002724, 0x5a22d4ca, 0xea92e7b5, 0x32ab91f7,
+ 0x63a8758f, 0x02bb78d0, 0x629a88ec, 0xa89fe5ba,
+ 0x376be9d0, 0xa9e32771, 0x7c3a2869, 0xca6fe27f,
+ 0x7ff9333b, 0xd2fa3bef, 0x11c0330a, 0x580e0e06,
+ 0x0214de27, 0xc9b8f055, 0x1ce38df4, 0x7e1cbcac,
+ 0xe6598422, 0x4ca01991, 0xef73e1ea, 0x6c7a3450,
+ 0x72aea16d, 0x6b25a1ce, 0x6afe28c3, 0x538ba485,
+ 0x9bb4bdd8, 0x11d67c85, 0x75a91822, 0xe3fb9348,
+ 0x90750bbd, 0x30b435dc, 0xa4d8370b, 0x778a93c1,
+ 0xe33b4278, 0x91bb14bb, 0xe50f900c, 0x1e7d0382,
+ 0xc5a8c01f, 0x7acd835b, 0x8dffa7f1, 0xe683cb36,
diff --git a/src/cpu/intel/model_206ax/microcode-M12306A5_00000007.h b/src/cpu/intel/model_206ax/microcode-M12306A5_00000007.h
new file mode 100644
index 0000000..7f7e590
--- /dev/null
+++ b/src/cpu/intel/model_206ax/microcode-M12306A5_00000007.h
@@ -0,0 +1,576 @@
+ 0x00000001, 0x00000007, 0x09092011, 0x000306a5,
+ 0x08e38731, 0x00000001, 0x00000012, 0x000023d0,
+ 0x00002400, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000000a1, 0x00020001, 0x00000007,
+ 0x00000000, 0x00000000, 0x20110908, 0x00000871,
+ 0x00000001, 0x000306a5, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xb19d6427, 0x45644b90, 0xe8f7cf6a, 0x3106acc4,
+ 0x45ec3068, 0x8de9ec3a, 0xc840bf97, 0xf0feb883,
+ 0x5a3401db, 0x42caecce, 0xb4d8e75e, 0xe6dbaf24,
+ 0x7861b35f, 0x6bd717bc, 0x23b9b731, 0x82ec1ac8,
+ 0x20337b64, 0x5396dbf1, 0x59973bff, 0x724bc7e9,
+ 0x5237193b, 0x0b8647c1, 0x6a0d0e16, 0xbf9ddb5b,
+ 0xace2cc1c, 0xad707638, 0x056f102f, 0xa37e60f8,
+ 0x76255642, 0xfb86e030, 0xb8069a40, 0x367795f1,
+ 0x653fb05e, 0xab7f14ad, 0xb6e8a8e1, 0xd2598d20,
+ 0x2eba3f68, 0x78b372f1, 0xba8d13f8, 0x1f1de861,
+ 0x97f951d5, 0x8097c728, 0x27dbf904, 0xb97906a8,
+ 0xffe7a4ac, 0x4b947668, 0xc1dbd726, 0x2adcf777,
+ 0x63b1bcf0, 0x818e2a1b, 0x49aa907b, 0x2faf5e8d,
+ 0xae842352, 0x82707fae, 0x0aa12b41, 0xa0bae11c,
+ 0xb4298c47, 0xd2b4099c, 0x4ff625f2, 0xcd2630d4,
+ 0x79850981, 0x05dbf57d, 0xb05b81a5, 0x56e73ec7,
+ 0x95cb3897, 0xe262bda5, 0xb2c6e288, 0xcb7f8e77,
+ 0x72b8bdd3, 0x3f400494, 0x63ade65b, 0xbc4adc71,
+ 0x00000011, 0x8eba90b2, 0x99b07166, 0x60fb3478,
+ 0x9f432ee0, 0x61217155, 0xba20ca5d, 0xdf062cb6,
+ 0x0361d883, 0x38e4cb35, 0xc94178eb, 0x9aadd7de,
+ 0xf2b976da, 0xf53392a3, 0x107a3711, 0xe1a02869,
+ 0xe14b16f6, 0x00b49cab, 0x64e8c50a, 0xdc6c8e97,
+ 0x0c07d951, 0x96d88637, 0xd003b1a6, 0x838c8c28,
+ 0x9940649c, 0xada7a8f9, 0x6665a9d2, 0x7e5d982e,
+ 0xb8b03135, 0x9b900639, 0xc37838ce, 0xa650b930,
+ 0x2c316b53, 0x7374f0b9, 0x166b3629, 0x525f517a,
+ 0xff217dce, 0x73ef5afe, 0x781fb969, 0x86960bd5,
+ 0x5cac84a3, 0x1b98906e, 0xfa2870c3, 0x95c648c4,
+ 0xe075523c, 0xc080a72e, 0xb5aee95f, 0xe1e833a7,
+ 0x22c4042a, 0x2e3f2468, 0x3bd41153, 0xfc7dc293,
+ 0x1f438bc7, 0x4ed57b9a, 0x25f23177, 0x56db710f,
+ 0x8c8f9af8, 0x2a2debc5, 0xec73f945, 0xb33506bb,
+ 0xcf5a825b, 0xefcc4487, 0xcadfb1ce, 0x2f885b5e,
+ 0x00fd6c35, 0x022ce468, 0x976eeaf0, 0x7c32c1a0,
+ 0x3863b05f, 0x93f87d3e, 0xecb03e5c, 0x9fc77cac,
+ 0x4b3bee3d, 0x15293a31, 0x54db0240, 0x046aa9e8,
+ 0x7e369cb7, 0xa8a3536d, 0xc720279b, 0xe4dee7f5,
+ 0xd7c37f35, 0x4eb5c9cf, 0x2e73f972, 0x91e9cb3c,
+ 0x336048e0, 0x49b5eaab, 0xb2892003, 0xb36714eb,
+ 0x3de29838, 0xd4f3254f, 0x9745f6e2, 0xd4ac7f3e,
+ 0xe6145545, 0xe4a4de99, 0x001220c1, 0x8181d672,
+ 0x7e6d0425, 0xa4adb6d3, 0xb258f3d3, 0xf5dca0b6,
+ 0x2636f4fb, 0x7afacad9, 0x4a8dec27, 0x140cd684,
+ 0x7592e735, 0xbe693141, 0xc44798bc, 0x0faddc0d,
+ 0x038c095e, 0x63771803, 0xffab64ed, 0x0cdaaa8e,
+ 0x188037df, 0xfab094f3, 0x64caabd4, 0xb603d23a,
+ 0xf9cd4713, 0x4010afff, 0xaf6b8c07, 0x1fd3e7f2,
+ 0xc534c3df, 0x48231d06, 0x03758785, 0xef6c1b56,
+ 0xeda29afc, 0xb6d05760, 0x9af58d28, 0xf2477cda,
+ 0x84857a72, 0x644df758, 0xdc48fa8a, 0x82350df5,
+ 0xc8ee429f, 0x6a1b6d77, 0x6827f435, 0xbbf7b7bd,
+ 0x05bc39a2, 0xcebc261d, 0xca685502, 0x8981efa2,
+ 0x7e415400, 0xb5f2aff9, 0xbe33cc56, 0x865169ed,
+ 0x0d1db258, 0xc71522ea, 0x24b765a5, 0x22c43129,
+ 0x43200be2, 0x2d085aa8, 0x890776d7, 0xcd17c358,
+ 0x700d508c, 0x7529d2ec, 0x542e5479, 0x8f040b79,
+ 0xfb98bccb, 0xf9815b12, 0x0940e7e3, 0xc8ebf4c6,
+ 0xb7f4221e, 0xc9ca8504, 0xc9c64deb, 0xa37690ab,
+ 0x38cdec9f, 0xdc573e73, 0x5cd250e2, 0x8f5aebf0,
+ 0x3c3cb33d, 0x3b2bc536, 0xfa925ffe, 0xbf38dc0d,
+ 0x42653c00, 0x1dbb4a15, 0x858deb4f, 0xdd78ae6a,
+ 0x122b2859, 0x1cc8fe04, 0xc717f1f6, 0x6eb52371,
+ 0x483dc5d8, 0xc6ea2eff, 0xee6d7109, 0x13cb245d,
+ 0xef777cae, 0x383c21f0, 0x200329d7, 0x27e63cfe,
+ 0x7f600294, 0xc3f5eb42, 0x36a5254b, 0x97f96771,
+ 0x20ed56e4, 0x4cd58e5a, 0x9c4e778f, 0x83bff1a9,
+ 0x10ca2223, 0x1f02d63b, 0xfbafd02a, 0xa87c720a,
+ 0x7ff78c22, 0x704ff519, 0x11c87c2b, 0x613b19a7,
+ 0x887609cc, 0x00875a39, 0x6b2b3e07, 0x18c7908e,
+ 0xc6f85508, 0x2bd6e37d, 0xee2a582f, 0xb76786eb,
+ 0x00f6096a, 0x6a659a11, 0x0c100275, 0xb01cd536,
+ 0xfea298b3, 0xfe111ace, 0x5b725ba7, 0x5a9cd6f8,
+ 0x7fa0b669, 0x2b715e3b, 0xd047d607, 0xafe6bb80,
+ 0xb0efcd80, 0xe917ae03, 0x60a87dda, 0x97096139,
+ 0x64eaaf67, 0x3012142d, 0xe5ef45d8, 0x229c6b34,
+ 0xce453df0, 0xfd6ff9a7, 0xfdd7bb21, 0xc4975203,
+ 0x338bb827, 0x900ff88f, 0xcc6111a4, 0xd1338ae3,
+ 0x3cc7123d, 0x05a71cc8, 0xa979bb55, 0xb23700c8,
+ 0x7d7c1b2b, 0x1ec9cc47, 0xf4700344, 0xe2bf54b7,
+ 0x914b77f9, 0x85fad2a8, 0x313adbb7, 0x31712a10,
+ 0xb000a261, 0xf9f08bea, 0x13a66c82, 0x562884d3,
+ 0x1b5ffa27, 0xa87a6fdc, 0xf11f35c4, 0x6cd5e813,
+ 0xfbf6813b, 0xa0b64b44, 0x26dffab5, 0x81fde0f1,
+ 0x49fa755c, 0x33f5661e, 0xa73df874, 0xf5279374,
+ 0x5dd3411f, 0x2c0cb1ab, 0x3f55ff15, 0x32d75abb,
+ 0xde2b4b90, 0xd7c5b66e, 0x3eef8cc3, 0xc7a4625b,
+ 0x97021d4c, 0xe3880deb, 0xc8c647e1, 0x4dde6b72,
+ 0xca53ce2c, 0x84d70a2e, 0x2e9cceb5, 0x1c3afa04,
+ 0xbac1fd85, 0x0731a787, 0xdb121a3b, 0x86c8f784,
+ 0xd3659cbb, 0x80fa19f3, 0x1aad8486, 0x5457678b,
+ 0xe88bfece, 0x427ffb19, 0xde80bc9f, 0x839c16ea,
+ 0x5a70eb7a, 0xeef425ee, 0x22d2512f, 0x58b553e5,
+ 0x2635bc3b, 0x52ac999b, 0x61fab797, 0xfdf07f99,
+ 0x9d09901d, 0xdf8f1d61, 0x56120e18, 0xd86d4302,
+ 0x8b08c0f5, 0x45e17c97, 0x9a55223e, 0xbc4b43a7,
+ 0x67f70abc, 0xbdadf261, 0xa54a416b, 0x87642523,
+ 0xdea190cd, 0x5fe812a2, 0xdabf8c5a, 0x8de91c90,
+ 0x38457858, 0xb2dd023a, 0xfed888d3, 0x1411e218,
+ 0xac52cec0, 0xb399eb10, 0x0dbf4d43, 0xe85dc29f,
+ 0x7d6b16f4, 0x39d320f5, 0x48978880, 0x2f12c536,
+ 0x623df5b0, 0x2b8cf178, 0xece0b710, 0x6e9215b5,
+ 0x26570670, 0xcb263bd8, 0x1e194b28, 0xf7a3c433,
+ 0x968f9997, 0x728645d7, 0x4ec1235e, 0xf984a578,
+ 0xd1e734a3, 0x9229cf8f, 0xbe48770d, 0x09935e3d,
+ 0x2461a4a4, 0xb4086153, 0x090caf57, 0x0618c17e,
+ 0x3bc0b8d6, 0x0f901886, 0xbb601c6c, 0x3baf5096,
+ 0x09c1b883, 0x2013e9fb, 0x92c71c68, 0x1f44fb76,
+ 0x4aceea69, 0x62385666, 0x09a9a786, 0x865c8159,
+ 0x9f944c60, 0xa4a039ba, 0x2d32a151, 0x50a1f2af,
+ 0x5626a8cb, 0xcb792ac8, 0x8959aa9e, 0x5ba20256,
+ 0x307c9191, 0xb410e646, 0x168669cb, 0xc8ac1c57,
+ 0xfd252c64, 0x965c1ac6, 0x2b7b0d5c, 0x68282eb2,
+ 0xc37a69c5, 0xbe9597f6, 0x4ff2a59a, 0x15084cbd,
+ 0x5739e661, 0x0c3a2c9a, 0x62d62b45, 0xe951ce06,
+ 0xc2699784, 0xe0ecd1e7, 0x9ae9fb53, 0x76398c1f,
+ 0x99f1bb04, 0x8bbe1ea1, 0x062186cf, 0x0f41f975,
+ 0x0f3a574e, 0x22187bd3, 0xb521e845, 0x3e102fa7,
+ 0x9a1bd487, 0x60131c75, 0x04bfd9a3, 0x3b7c8138,
+ 0x923024a1, 0x79a9ffea, 0xea685d31, 0xd44445df,
+ 0xd88ebcd7, 0x4fe10042, 0x5d8dcb46, 0x5a693ee5,
+ 0x05ccfd20, 0xc11fc97b, 0x388ca021, 0x59713770,
+ 0x52b800f0, 0x51200b01, 0xae7df264, 0x9f0cd4a5,
+ 0xdb052d0d, 0xb4265003, 0xc69dfd4d, 0xb651bae1,
+ 0xb3212918, 0x50fd143a, 0x9f2b82fd, 0x7756471c,
+ 0xd4a23ca2, 0x001547a4, 0x5d42a3b0, 0x2e4284c3,
+ 0x5ebb9117, 0x57b00d30, 0x9bdb5c01, 0x824725a9,
+ 0xd26e0a85, 0xa4709293, 0x01f37361, 0xbd78c659,
+ 0x873dc38d, 0xbe4ba28e, 0x07f8fa8f, 0x2a3932d1,
+ 0x6c4b82eb, 0x54e2c06d, 0xea8825ba, 0x5bb6c583,
+ 0x12fa46ed, 0x952293c9, 0x9821eb6f, 0x3cf4ce74,
+ 0x7d1434da, 0xcd8a8e33, 0xe38abcb6, 0x57ebee62,
+ 0xec03d7cf, 0xb71fa50f, 0xc6dfdee6, 0x8950e006,
+ 0xf611d70c, 0x6939f743, 0x5e943bf4, 0x78c8631a,
+ 0x11a96a36, 0xd0066e94, 0xf5d6f08f, 0x28a1e799,
+ 0x828cbf96, 0x77c3ff93, 0xa8657d9e, 0x39f6f26e,
+ 0x722eac57, 0xe243d6d0, 0xcdc48b22, 0xa3d2f876,
+ 0x505f842c, 0x29370d83, 0x5d48d758, 0xa6ca2400,
+ 0x90553aac, 0xa6178ef1, 0x26c54d68, 0x927c726c,
+ 0x66aaba9a, 0xb8b878bd, 0x26345aac, 0x1b11c115,
+ 0xc1a7e10e, 0x31455f66, 0x1f897e61, 0xd5e48532,
+ 0xdd47f34c, 0x4a02667b, 0x06e01d08, 0x0a600510,
+ 0x6a8224f1, 0x2857cb2f, 0xdec0ddc1, 0xd8767cbd,
+ 0xf09e4ded, 0x2a47b0ae, 0xb0a2072b, 0xedff3737,
+ 0x24f10ed4, 0xfc77c5d1, 0x856c0758, 0xc00d8ab8,
+ 0x0d02a587, 0xd0c12d06, 0x0628c6b7, 0xcfc8a29a,
+ 0xe86a89ca, 0xd125ff40, 0x0f167ee9, 0x1b45559f,
+ 0x2374a09b, 0x2fa2936c, 0xcf24f155, 0x5e75ef39,
+ 0x3bc7da04, 0x7cc9e8a8, 0xe27b7df9, 0x180b20d6,
+ 0x799b29f9, 0x89aeab86, 0x345e1f66, 0xdadf1773,
+ 0xe7f8df38, 0xba93ea9c, 0xa0713950, 0x1c693728,
+ 0x09b24ebf, 0x94e80ca2, 0xff4f5c25, 0x050a1874,
+ 0xda15573c, 0x0bc47e01, 0x3406586f, 0xb416b3aa,
+ 0x94fef9ca, 0x5eb6a63c, 0xee5c0174, 0x13a23c4a,
+ 0x4543dba7, 0x0cb92b5a, 0x3e1bc02b, 0xb9fa4989,
+ 0x0dbb8c54, 0x87a3fdf8, 0x3036836e, 0x73b06a78,
+ 0x8757fae6, 0x869d650a, 0xce175be7, 0x9874d0f2,
+ 0x78efb32a, 0xa91bb374, 0xe57e3e62, 0x63acd71d,
+ 0xca1706f3, 0x0c5e3834, 0xddcaff5c, 0xb421bb97,
+ 0xe5caa70a, 0xe2839e67, 0xa7e35bd1, 0x9982a635,
+ 0x30a5b07b, 0x3d79f433, 0x9e4d8b09, 0x643f1210,
+ 0xc1e4df39, 0x0cca26c8, 0x9a95f0c0, 0x8d6ab68a,
+ 0x73427e53, 0xacc3a993, 0x5a4dd0d8, 0x961051ec,
+ 0xca1843e1, 0x3b223329, 0x447a9ef8, 0x0d68e38f,
+ 0x4f6cc40a, 0x2ebcbf87, 0xd76141af, 0x20d0a180,
+ 0x29b7b791, 0x94722b21, 0x7947f16c, 0x4af7fa89,
+ 0xfabb5e7c, 0xa0b4c06d, 0x727c61d3, 0x97505208,
+ 0x60b92b10, 0xcac0c6cf, 0xbd04a665, 0xdbff9ad3,
+ 0x61dfb7ca, 0x0d08b92f, 0x895e1748, 0x92301325,
+ 0xe529024a, 0x3dc58ef8, 0xe7ab24ac, 0xf89845b8,
+ 0xdb71ab1b, 0xcda66f3c, 0x2efd4d2c, 0xefc3db22,
+ 0xcbe6c35a, 0x294a2366, 0xcbaa262c, 0x99bbb4fc,
+ 0x6c224c20, 0xac6105c2, 0xafff5b1e, 0x8cfecaaa,
+ 0x31fa3bf0, 0x9603be0d, 0x7f1d56d7, 0xdc9437b5,
+ 0x5e1d64fe, 0x5384e454, 0xe5001761, 0xcfb53906,
+ 0xefa72870, 0xb7e43b6f, 0x55175bda, 0x9a1988c9,
+ 0x7a7e4948, 0xfef33c4e, 0xe312d299, 0xe6892bbd,
+ 0x8aefb498, 0x02e6f8ee, 0x893f15ef, 0xc2513114,
+ 0x9b7d5590, 0x65efa8e6, 0x6600382e, 0x24c34ae5,
+ 0xdcc68f8e, 0xdd7a3fc2, 0x36b31faf, 0x9ac2603e,
+ 0xa36bd5e1, 0x534c658f, 0x5d750ef3, 0x85a44f3b,
+ 0xd05eabf8, 0xd76b3377, 0x49914856, 0x3e4084c2,
+ 0x981f8086, 0xca30425a, 0x6206f73a, 0x5be88cfd,
+ 0xa8fcadf6, 0x2110cde8, 0xd2bb3b20, 0xc1c8b3db,
+ 0x6a738ae0, 0xfab3a929, 0xa08ac13a, 0x19b609a1,
+ 0x67bcfdc7, 0xb0f51e16, 0xc18dfe6e, 0xdc14923b,
+ 0x4bf12eda, 0xacc8ee4b, 0xa1067858, 0x3ab996e7,
+ 0x91fc1ecd, 0x72e40234, 0x86051577, 0x1e38b4f8,
+ 0xe1fa8b9d, 0xe9a307fb, 0x528f4de8, 0x6eeab097,
+ 0x352a083e, 0x0254b0f4, 0x91489dd2, 0xd2c1a37d,
+ 0x56fba53e, 0x7f5f7878, 0x4ef7096b, 0x3e5e05d4,
+ 0x530ddeee, 0x4b358b5b, 0xfa2d13b5, 0x612468c5,
+ 0xa41d9778, 0xa1690829, 0x60742e97, 0x0affe291,
+ 0xc3110b6c, 0x1c471ae9, 0x24ac0e6e, 0x64700f32,
+ 0xb40d7e01, 0x8fcb8777, 0x9187eeae, 0x4f374518,
+ 0x9dfaaf96, 0x1ea8b126, 0x0634309d, 0xb947ea87,
+ 0x77e091fb, 0x585e6f9b, 0xe2fa3cc0, 0xf8554c49,
+ 0x29c48030, 0x8ab401e0, 0x03f11938, 0x863bcd13,
+ 0x04c3bdc8, 0x1d679416, 0x70722137, 0x2e9915fa,
+ 0xa18f44f3, 0x607b5670, 0xdbb3e675, 0xba1e419e,
+ 0xca50acee, 0x7a065a5d, 0x8e5a551f, 0xefe7daa5,
+ 0x1b550562, 0xd76a881f, 0x7a3380b9, 0x7cf80cb2,
+ 0x2c48edf2, 0x0e6e7c78, 0x9f800a18, 0xb1ef3e72,
+ 0xa942bab4, 0x4b057a61, 0x07d35ced, 0x1484ee3a,
+ 0x2e3adb03, 0xd3b0177b, 0x15cfb615, 0x20c2fd07,
+ 0x4a172f17, 0x6ff62034, 0xc1941273, 0xbd404f2f,
+ 0x597507c5, 0xd0c024e2, 0x14061e48, 0x869afa52,
+ 0xfcebe92d, 0x73da8c56, 0x21e5e330, 0x41db744d,
+ 0xbda3bbe6, 0x05f2dc15, 0xbb954c68, 0x76dc00c7,
+ 0x8abab209, 0xc4b1fa44, 0xb59cc60c, 0x127b6430,
+ 0xe527601d, 0xa5ce413e, 0xc890aceb, 0xb5ceaa0f,
+ 0xa096a30d, 0xb7dba77b, 0xb2f08363, 0x0e9bb72a,
+ 0xc8b00926, 0xdca48394, 0xbd18b515, 0xb34af68e,
+ 0x07575204, 0xa508752e, 0x8cf44563, 0xb5d9914c,
+ 0xeb5bac0c, 0x0efc0826, 0xf256e8f2, 0x8d96cd98,
+ 0xf5913d1d, 0xea046617, 0xfc2d2d0a, 0x9e4c43b3,
+ 0x4c0c3139, 0x46320203, 0x87e05cf3, 0xd9dc8716,
+ 0xb1c9a742, 0xe116b27c, 0x28e5ea42, 0xf72a419f,
+ 0x24724f77, 0x120c8167, 0x18f2a565, 0xb5a7e461,
+ 0x4a5f54e7, 0x97391799, 0xa475c0be, 0xb4392065,
+ 0xb2e70f78, 0xf1dd8409, 0x5768dcba, 0xc86ae8de,
+ 0x1178323d, 0x7251421b, 0xd137d355, 0xb87741b4,
+ 0x37789ef7, 0xf574daf8, 0x6808c1b5, 0x56cbceb9,
+ 0x02621bd6, 0xe1d58259, 0x410594eb, 0xfe1a760b,
+ 0x8fcc5ae6, 0x8eb49454, 0x5914fdc5, 0x4d482918,
+ 0x9bcebc94, 0xf8dfb0a2, 0x708a7faf, 0xeac28b23,
+ 0x94bb4dad, 0xfb543078, 0x36c58c0d, 0x86a10337,
+ 0x2f56c640, 0xe125eeea, 0x099890e2, 0x356784a9,
+ 0x5a89add8, 0x995e6137, 0xe0d6959c, 0x365b7c04,
+ 0x81bb9664, 0xc085d819, 0x92b191e2, 0x3378b1c8,
+ 0x9c535ad5, 0xac7281c6, 0xebc83ec6, 0xcc1524d1,
+ 0xb9222b86, 0xeab14329, 0xb1a4d78e, 0x432a05fe,
+ 0x03a48e25, 0xd78da70c, 0x4760588f, 0xb67ffebb,
+ 0x8a0f38a3, 0x98915610, 0xa6887f59, 0xda9faea0,
+ 0xcb24dd66, 0x5721831c, 0x73199e39, 0x48d59dcf,
+ 0x207fee88, 0x96f50f10, 0x563ebed9, 0xc136f2de,
+ 0xaf990e2f, 0xd952a732, 0x128766c9, 0x80546c7f,
+ 0xf2445ac1, 0xd4d8f998, 0xbcbcadaf, 0x4da44337,
+ 0x884b3df0, 0x186aca55, 0xe6c9dbb0, 0x482e2171,
+ 0x6371bed3, 0x9f54d44f, 0xe99d6661, 0xbcd49a8d,
+ 0x63b586f6, 0x430d36fa, 0x21d0ad53, 0x906f32be,
+ 0x83848189, 0xd711a5a7, 0xe1a2462d, 0xf1f80181,
+ 0x0af3d2b2, 0x4a3a5e2c, 0xa2392474, 0x305d006a,
+ 0x46785678, 0xf54eb005, 0x4a2c189a, 0x6e441e22,
+ 0x8dda18d0, 0x6c2e9e11, 0xf9a75cad, 0x698bd350,
+ 0x87bbdb99, 0xd656e312, 0x921579c3, 0x50a50d30,
+ 0x816c8aad, 0xf019dba0, 0x6144b38c, 0xa97e7083,
+ 0x77d5dcbc, 0xdb753e67, 0x61ac35bc, 0x67eee916,
+ 0x93cfdcd9, 0xe2f1ca57, 0x9954cfec, 0x0f2dc1fd,
+ 0x3700da97, 0xb9851596, 0xe872c6cc, 0xf59221d6,
+ 0x9aa19c43, 0xd3c518d9, 0xbff5c0d2, 0x53a0dbf8,
+ 0xaa8a4b43, 0x7f7f9e5e, 0x64d6a2db, 0x9d780f09,
+ 0x2a4e70da, 0x6b9bf43b, 0x88e6569a, 0x036c4a46,
+ 0xb3502407, 0x5a95f09b, 0x97ad6ba5, 0xcb9d99ba,
+ 0x227d8004, 0xa7b76d48, 0x141431e6, 0x6cbf8e06,
+ 0xbefa69bb, 0x2ac7bf1a, 0x6098834b, 0xdbb6fe67,
+ 0x8f5196e9, 0x217fb6f6, 0x7f915b8b, 0xf6903013,
+ 0xed24352e, 0x3dbbfda6, 0x2d1c7f6e, 0x5a769449,
+ 0xf5fb4435, 0xd4e6667e, 0xb65f6d6d, 0xcae2e91c,
+ 0x015998ff, 0xf4be0d8e, 0x2d8a387b, 0xc59d14e9,
+ 0x6843c8a3, 0xb3c78d8d, 0x9f65a7da, 0xc2918a86,
+ 0xd0236b2c, 0xdcc4dece, 0xcb2231e0, 0x1f9443ba,
+ 0x9c3e887b, 0xe878416c, 0x3e3f6bda, 0x09ac5540,
+ 0x4415c5e7, 0x244776e5, 0xc2f9a797, 0x064b9578,
+ 0x0199e4c6, 0xcdabd3b7, 0x45f30d15, 0x3ad21f49,
+ 0x3864670e, 0xe1dcd5e6, 0x5c27b602, 0x80887553,
+ 0x4db58644, 0x7025bbfc, 0xe5f27d4b, 0x81f12d53,
+ 0x98b4f58d, 0x59f24cf8, 0xad6930ce, 0x64d83c3c,
+ 0x465f846c, 0x88baefc1, 0x819a6a9d, 0x2f315e06,
+ 0x70b4c6c8, 0xbba3c425, 0xc5753e27, 0x74eac5a1,
+ 0xe9b8ec61, 0xd3536052, 0x24ce33da, 0x7a24ade4,
+ 0x2e24fa6e, 0x4f02551b, 0x47e4c103, 0x1d33c34b,
+ 0x20483b9b, 0xc8317f9b, 0x65a8faed, 0xd5c07a48,
+ 0xa1643073, 0x5ddb5d3a, 0xc2135afd, 0x9d800ad0,
+ 0xafaf0168, 0xd6067383, 0xddeb3052, 0x1002fc07,
+ 0xda51b249, 0x2504ca4a, 0x5dff4899, 0xa5e8ebce,
+ 0xbab8909c, 0x5ca2971b, 0xb0af040e, 0x2f9dff7f,
+ 0xe58f53a0, 0x22a8ba4f, 0x22b66a7c, 0x9a51d9a3,
+ 0x4edecd09, 0x7e6d6402, 0x7cf06d67, 0xca2faa15,
+ 0x5727e450, 0xbb8dfbfd, 0xef13b160, 0x541731a5,
+ 0xa176b699, 0x337ad6b5, 0xafe718e7, 0x31ea4773,
+ 0x1859cd94, 0x504c70c4, 0xd0f5da5a, 0xe0bab277,
+ 0x75a92a95, 0xcb232237, 0x0b149a4a, 0x4931a161,
+ 0x8176d7ff, 0xa8e73d6f, 0xe6763fb0, 0x9a509b92,
+ 0x71543ebf, 0xaf2afbb6, 0xfa8f2e98, 0xd6b299e1,
+ 0x42a9edd3, 0xe9c970db, 0xb52b7668, 0x0df769cc,
+ 0xf5fdce17, 0x4117919f, 0x10abe7db, 0xff0f27b7,
+ 0x4d241470, 0x89ee8762, 0xacbc4618, 0xd8136844,
+ 0xf0e36131, 0xaac6de18, 0xe0ebb8fc, 0x122aab9e,
+ 0x825a9a49, 0x16fa2e3e, 0xe73a7ca0, 0x810c8f07,
+ 0xe116ad18, 0x213a034c, 0x7c9a9f0b, 0xea5e5ac2,
+ 0x75212ee5, 0x9155f794, 0x414f642e, 0xccc41808,
+ 0x2159d497, 0x5d0426e1, 0x13bc77d0, 0x786b666d,
+ 0x8dea44bc, 0xcf5485c6, 0xc66baa60, 0x1859c1a7,
+ 0xc4abc762, 0xa80be227, 0x87b2e69e, 0x2f0af08c,
+ 0x0ad4e0de, 0x62197a58, 0x94c03262, 0xdad43b71,
+ 0x2d63d69f, 0x81af9e07, 0xf0653b05, 0x5427be4e,
+ 0xa3c6d4cb, 0x31793877, 0x6b870325, 0x21ed52c1,
+ 0xdde3d817, 0xd43c5a16, 0x1df2ea8f, 0x43f59dcd,
+ 0xa3363c8d, 0x42aedb7f, 0x9aa014cc, 0x05d63699,
+ 0xfc35577e, 0x9034b5f3, 0xb5bef0c1, 0x0bdfdd96,
+ 0x6a3ababf, 0x4ff499f5, 0x51988400, 0xfcdc956c,
+ 0x8cad4f49, 0x00e34d8e, 0x88d54613, 0x74fd6f41,
+ 0x2d50a76a, 0x6ff5593d, 0x455a008e, 0x54d299d5,
+ 0xe156182e, 0x790c7fad, 0xab5cb66d, 0xf5bb192c,
+ 0x91efb2ae, 0xa58bdeff, 0x983f2596, 0x61c92fd2,
+ 0xcb04a9c6, 0x1c5869ac, 0x054b690c, 0xd75f853a,
+ 0x38291bbf, 0x01974bff, 0x731e8674, 0x5ecf03db,
+ 0xfd8e064b, 0x33dee27c, 0xf4514376, 0x9694e016,
+ 0x96f4c916, 0xabed9ea6, 0x23341d38, 0xb248222b,
+ 0x9785d01b, 0xfea938b4, 0x5dd07e44, 0x102f0aaf,
+ 0x93e932d4, 0x94efbfe1, 0x6be51f97, 0xe94cd91a,
+ 0x6164ea96, 0xaa6bc520, 0x48092613, 0xcc475e66,
+ 0x5bae345b, 0xc5ecf8a7, 0x86a432b1, 0x176749bf,
+ 0x18aeff8a, 0xbedc0266, 0xff1164c7, 0x7da72f42,
+ 0x033ff853, 0x0ee392c2, 0x78426196, 0xff6c5bd7,
+ 0x761fc7e0, 0xcc0818ec, 0x4688a1ac, 0xe5d10549,
+ 0x398c6420, 0xd6171b4b, 0x64b6c776, 0x3cd2dffb,
+ 0x94006e50, 0x6d609469, 0x7593312f, 0xae93bf2f,
+ 0x86401bff, 0x4803f688, 0x8133107a, 0x42c27314,
+ 0x73128b38, 0x0bbea19d, 0x817bbc13, 0xa35b592b,
+ 0xf3f7435e, 0x3d2d4506, 0xa2a2a123, 0x6299fc29,
+ 0xc8d0b6f4, 0x3e074310, 0x5a3ffe01, 0xa3f48f59,
+ 0xc6e1afdd, 0x5e2bfa3f, 0x4dd49e68, 0x016658d9,
+ 0x48cd4509, 0x72e502a9, 0xc708d696, 0xff96db51,
+ 0xa03f4710, 0x2b6bc06d, 0xa12ed2b1, 0xf5f2fece,
+ 0x0d3d44e3, 0xd8375553, 0xd56b5b22, 0x66f2aa06,
+ 0x576f76eb, 0x5a3c8604, 0xc624c43b, 0x3df16065,
+ 0x7e62abf7, 0xbf4d015b, 0xf564e063, 0x4ee519cc,
+ 0x34938aac, 0x60c035fc, 0x0a726280, 0xe81f1516,
+ 0xd6eacf56, 0x84dbdff8, 0x0ceb2641, 0x5ab07c3d,
+ 0xe9c7ffe8, 0x012ae0e0, 0xb9a20bfb, 0x6ef2aa82,
+ 0x87c34b2f, 0xb0405904, 0x0be39045, 0x7ed550b9,
+ 0x5a099efc, 0x7e1094ac, 0x0c9ae5bd, 0x8b80843a,
+ 0xe040325d, 0x7b861c95, 0x325e699e, 0xcee68f99,
+ 0x1da23e51, 0x8b2c2ea5, 0xb911e819, 0x4f40b8f7,
+ 0x2b97709e, 0xba6b3a91, 0x9a0be148, 0xd31e017e,
+ 0xf4764c73, 0x579759e1, 0x7b93aeaa, 0x470d1051,
+ 0x4e12177d, 0x95fdec35, 0x1533952e, 0x8b68fff5,
+ 0x1e9016ed, 0x37894290, 0xaf70209e, 0x9788efe4,
+ 0x3f3343c4, 0xffc3c2ee, 0x1d0394d1, 0x940546ff,
+ 0x6acde9d1, 0xf30ed7b1, 0xc0001534, 0xcbb9909e,
+ 0x73479a46, 0x7c47e28d, 0x66c67f11, 0xff54904f,
+ 0xeddb27c9, 0x3749c767, 0xea30af3b, 0x146d9340,
+ 0x39c79a0c, 0xe0371104, 0x0990053d, 0x1a42f5b7,
+ 0xaf2601bb, 0x107517ce, 0xc921def6, 0x76c0f3b5,
+ 0x63ff2f0f, 0x85fdea86, 0xeb882180, 0x4dbf7b0f,
+ 0x9ec8d9cb, 0xf3229afd, 0x50c2d2ed, 0x49a7586c,
+ 0x771a4fa1, 0xee0e534d, 0x2f12f5ac, 0xa73ac75e,
+ 0x60b9af6f, 0xf7ff83a1, 0xe2bb703c, 0x64306302,
+ 0x14568be5, 0x9dd33411, 0xd281f8f8, 0x4099d569,
+ 0xe9858186, 0xfa90089d, 0x65f19b7d, 0x70dbb85b,
+ 0x395b94a8, 0xeffed9a7, 0x3f350714, 0x7e61d143,
+ 0xfe0a0d12, 0x9541c3aa, 0xdf6871a5, 0xd51f96cb,
+ 0x074022c3, 0x67999ef5, 0x6ad1158f, 0xc96d31a1,
+ 0x7ff426cb, 0x60ea27c5, 0x46336d92, 0xde686b2c,
+ 0xfb06301b, 0x186375b2, 0xaf73a4ac, 0xcb572b27,
+ 0x462c0dd6, 0x51e4954e, 0xf194f3a2, 0xd2143268,
+ 0xdc5b60b9, 0xe4d615a1, 0x9c3a08a6, 0x473ddc68,
+ 0xce508f5a, 0x88249b16, 0x8e8e2027, 0x0bd98ae5,
+ 0xe801d745, 0x2f921241, 0x3f2baab9, 0x2a20e2ed,
+ 0x47f792a3, 0xada7bfb4, 0x6fd81fce, 0x4287ef70,
+ 0x5b3b9520, 0xeed4eb13, 0x6b9395f5, 0xdddee8c9,
+ 0xfde20095, 0xf5d910b3, 0xdebda085, 0x2058c161,
+ 0xd3f81511, 0xbef78587, 0x9148c141, 0xc2df3379,
+ 0xbab4d171, 0x02813ba2, 0x85b2ae5f, 0x62ea578e,
+ 0x930785cc, 0xd23979c8, 0x980fe259, 0x983b1aca,
+ 0x3469b033, 0x31335aee, 0xf362d1bd, 0xbb3befae,
+ 0x6423a378, 0x58e05f60, 0xdc6fb246, 0x72788312,
+ 0x349e0916, 0x8c185f08, 0xc84c5efe, 0xa1d83cd9,
+ 0x0590c56d, 0x2e6a3128, 0x18e49591, 0x254d210e,
+ 0x535b0efe, 0xfe769c6e, 0x923acb1d, 0x86d01399,
+ 0xe4235164, 0x2ba908c9, 0x41bf884b, 0x41f69720,
+ 0xb844e280, 0x3037005e, 0xd3580f5a, 0x61870816,
+ 0xcf9185d2, 0x36e90fce, 0xa1535504, 0x0504c026,
+ 0xf0f34b6e, 0xe60d2964, 0xff9aa1e9, 0x84f67bd8,
+ 0x00af4ded, 0xdbc01028, 0xe0fe8c12, 0x6d8c501e,
+ 0x29794649, 0x1d2bfbbb, 0x5720c3d9, 0x608ace6e,
+ 0xbcd5e222, 0x52c4abd1, 0x99d96a1d, 0x52d7558a,
+ 0xd3051dbb, 0x1d23ddfd, 0x735901d4, 0x3bec2256,
+ 0xf164dd09, 0x430fd7a9, 0x7e29e768, 0x30709d33,
+ 0xff5d894e, 0x210d67f4, 0x26a43609, 0xdfa922d1,
+ 0x4f1816d2, 0xa0a47b38, 0x333d24c8, 0xd0976685,
+ 0xefcaabf6, 0xa4a4d784, 0x15e5be4d, 0xe5e8c993,
+ 0xa69391b2, 0x607d1f4f, 0x555a1576, 0x703aacdc,
+ 0x0dbcfa8b, 0xf4e9a3f9, 0x0eae9403, 0xcb19f1f6,
+ 0x7716adab, 0x69d3ac10, 0xa05d8d97, 0x552600cf,
+ 0x31b62fe8, 0xc14ba90a, 0xd42c2d72, 0x22a919d7,
+ 0x81ba57a7, 0x96d0fb81, 0xe251a5f9, 0x2d9e1476,
+ 0x0a02dc1d, 0xdbec72d3, 0x1a8c63d9, 0x8a8be8a1,
+ 0x918c0750, 0xfe504821, 0x07b0d625, 0x3ee97d72,
+ 0x09c43cf0, 0xdc953705, 0xd41bf31e, 0xc9105c2f,
+ 0xd1bccefc, 0xe99eac44, 0x02834280, 0x59f7ce4a,
+ 0x95741bd9, 0xe152f131, 0xff8eed72, 0x4e118500,
+ 0x96afbb81, 0xffedec84, 0x0cbbf7be, 0xdb48c8b5,
+ 0xea45b323, 0x258f38ab, 0x7c930fd3, 0x6898f771,
+ 0x325e520f, 0x7b76fadb, 0xb8e00dcf, 0x0359f17a,
+ 0x62ee1ea1, 0xd563cf70, 0x62af5844, 0x0809d556,
+ 0x3f40a89d, 0xcca31d22, 0xe5ad0abd, 0x7e263d18,
+ 0x2061153e, 0x329a509b, 0xe8dc5d3b, 0xfd6916c1,
+ 0x1a9817a9, 0xc8cda37d, 0xe8ab3b78, 0x8800bf51,
+ 0x98c4009c, 0x174f871e, 0x49b8de46, 0x8e98bf0f,
+ 0x286f44a5, 0x22086f7e, 0x2515f46c, 0xfcbf726c,
+ 0x3d720c72, 0x0cfe552b, 0xef6887f1, 0xf931ab5a,
+ 0x3aed9c78, 0x660d3196, 0xc813fcef, 0x4beb76f8,
+ 0x6331873d, 0x6d94fc13, 0xf0ddd8e8, 0x699b0b21,
+ 0x353430fc, 0x725e44c0, 0x7ffd3708, 0xf1dde8ba,
+ 0xbcc2e9c0, 0xdc805299, 0xda5f6846, 0xd475aff3,
+ 0xbed1dee7, 0x5ad0afdc, 0xd7e66e20, 0xbe33608f,
+ 0xce795b21, 0x167e90ed, 0x38af0156, 0x88ac7309,
+ 0xd25033d5, 0xdcab169d, 0x820a374d, 0x39d34b84,
+ 0x28dd94f7, 0x834bd392, 0xda139605, 0xc053d8aa,
+ 0x2cb9580b, 0x80d230e9, 0x5467e33a, 0x2fd7b149,
+ 0x3a6186a8, 0x884dd788, 0x1d70568f, 0xee18e8f1,
+ 0x315979b2, 0xe261b648, 0x10d221a2, 0x7815b83b,
+ 0xff808b41, 0xb9c6863e, 0x806fd3ae, 0x3e344141,
+ 0xa3ea1cad, 0xdfcb2933, 0x30a77d85, 0xa6a9d431,
+ 0x785e7c27, 0xda942cb3, 0xb0034267, 0x1594440c,
+ 0x79ae7746, 0x96f8ab25, 0xab1a09a1, 0x5b832528,
+ 0xe2b679e6, 0xa78d5d20, 0xc8aae1e4, 0x55078395,
+ 0xbbe4e640, 0xdffb0c61, 0x441c1bca, 0x8d30e73f,
+ 0xfa30e9b3, 0xd8f06b07, 0x7f1b4e35, 0x4d6ef0ad,
+ 0x3a64b06d, 0x97bcd436, 0x3ed822eb, 0x6f969930,
+ 0x103c07ac, 0xe537e4d5, 0xa309b9bb, 0x838beb4f,
+ 0x64f2d7ed, 0xf1decabd, 0x906908f3, 0x7450e4ec,
+ 0x8dde52f9, 0x8b599262, 0xbfab80bc, 0x7bcb9373,
+ 0xcdf4a2b5, 0xc2c4a81c, 0x17b105af, 0x3f797206,
+ 0xc075d0d0, 0x31854148, 0x011a018d, 0x9b1ec515,
+ 0x517e1ec5, 0xb5ba74a9, 0x8c9a1095, 0xa13ceb06,
+ 0xf097a087, 0xd0a414ad, 0xb1914131, 0x5e952756,
+ 0x34618c45, 0x920a0fb1, 0xf3aeac96, 0xf15704d9,
+ 0xae19e04d, 0x705ca2eb, 0x4bc1e5eb, 0x98388d15,
+ 0x201869f0, 0xbbf41d16, 0x580c6e13, 0x4560f83a,
+ 0x24e7c61b, 0x771c1023, 0xd4313415, 0xc0b209d6,
+ 0x19e51aaa, 0x4ba1e72b, 0x6cc1bce7, 0x7980dcc2,
+ 0xfb0599b4, 0x333f5ed9, 0xf4632eb9, 0x982ccdd3,
+ 0xd7540319, 0x06ce2da6, 0x310060fa, 0xd3efc6ef,
+ 0x4c653b1d, 0xd0cc39b6, 0x83097b2b, 0xb9e4ea63,
+ 0x330d4bd5, 0xea5eaa08, 0x0249be99, 0xa17810cc,
+ 0x41030c1c, 0xe12027c8, 0x7b41d9dc, 0xc37aa89f,
+ 0xa35673a7, 0x5ee7359f, 0x48426bdc, 0x1b6d141a,
+ 0xd9b7fba7, 0x0a49211e, 0x3014b927, 0xc1754959,
+ 0x1c3ad354, 0x61640912, 0xf5f12724, 0x24070d11,
+ 0x3d6e2ca7, 0x29f6096e, 0x98adacbc, 0x6a273297,
+ 0xe5079174, 0x707df4eb, 0x634c6c6b, 0x3ecb22fb,
+ 0x3d458436, 0x8191fc3d, 0xebe7bbc5, 0xf364347d,
+ 0x12dbb37d, 0x4ad5f869, 0xe957cbc3, 0x64c3a6a3,
+ 0xfbad0854, 0x84230f26, 0x436faf5b, 0x261079d3,
+ 0x8f231927, 0xcdf3d468, 0xbbcd7bc6, 0xaa473eb2,
+ 0xece8c033, 0x26edb28e, 0x53055db4, 0xdf1ea5a0,
+ 0xbe4bd963, 0xe297793b, 0xf27a24a8, 0xff60af66,
+ 0xd596cfa5, 0x57fd7b35, 0x813057ea, 0x3a9453d9,
+ 0x1a80704b, 0x9ca1185b, 0x447b5483, 0x315a22d1,
+ 0x1ddcecaa, 0xc52dbcd9, 0x9746abdb, 0x4bc737e8,
+ 0xb4deaff3, 0x277baea4, 0xd514f567, 0x7f8d5d13,
+ 0x61c98c71, 0x9746a13f, 0x284e6bd7, 0x9ff47773,
+ 0xb223170e, 0xa24cb3b2, 0xaf13a7e5, 0xf9eef2d0,
+ 0x42d825d4, 0xde85f61b, 0x848068fc, 0xb40d1de0,
+ 0x87af332b, 0x2e543f52, 0xfb493958, 0xcf5d6d71,
+ 0xb216b5f2, 0xb10cb4bb, 0xaf95a328, 0x47806d41,
+ 0x9e46dd3a, 0xd5a5dd2b, 0x2fab0b4a, 0x5abb26bb,
+ 0x8f45c4a5, 0x8da3ae87, 0xbcfb840d, 0xee5d1cc9,
+ 0x3f406d22, 0xb10398a8, 0x61642f36, 0xc3cc27d3,
+ 0xfe72310d, 0x7af5e85e, 0x4e2a86ed, 0xca2fe7c9,
+ 0xbba737af, 0x623c820e, 0x85d1f1c1, 0x8120e232,
+ 0x257d4272, 0xadc79294, 0x7197d2ae, 0xdf5ef3df,
+ 0x5e0aefbd, 0x182f9d5d, 0xe91ebca0, 0x657a390c,
+ 0x30d511c9, 0x4c291d48, 0x5dce841a, 0x4b50a5f5,
+ 0x7ecacf22, 0xe9e8f7af, 0xb1d99403, 0x5b303278,
+ 0x44d353f8, 0x4e1b5789, 0xddbfe2d2, 0x67e4720c,
+ 0xa0ae36b2, 0xceab6cde, 0xd515e5fc, 0x79478c0f,
+ 0x71d9743c, 0xe3b3b081, 0xcc4e4c2d, 0xe00adaf4,
+ 0x827a94a0, 0xd39c6047, 0x8fad816f, 0x0c5bf72b,
+ 0xb840cf46, 0xdf9e4f34, 0xafa5d2ba, 0x84f8139e,
+ 0x13a05e20, 0x5dcb4fd5, 0x5866a820, 0x67fb9c73,
+ 0x26ea7179, 0x5b374178, 0xe7819b64, 0x7901ab31,
+ 0x870473b0, 0x6314a2db, 0x07cbf6a5, 0x8726f9d4,
+ 0xdabc5fca, 0x4e46dec8, 0x7b3f26c7, 0xdb7836b9,
+ 0xdda83c1b, 0x01a93646, 0x1466a1d4, 0xe1266cf9,
+ 0xa68d8cc5, 0x4ac76529, 0xcd32ff59, 0x8ee8774d,
+ 0xd33a8423, 0x46925ba8, 0xef5b2dfd, 0x58bf5712,
+ 0x62a70a9c, 0x35acc89e, 0x0abcd977, 0xe5debba2,
+ 0xcf90d656, 0x6144dc5c, 0xedaff63e, 0x801fb5ae,
+ 0xc96f2d49, 0xb1f44dfe, 0x6f6023ce, 0x2df8ef40,
+ 0x41aa5e71, 0xadb2e8a4, 0x2fe7c319, 0xf2d43393,
+ 0xf02c909b, 0xd4bbc970, 0x89f80199, 0x6dab42c3,
+ 0xae9264d3, 0x9c73dc38, 0xceff2809, 0x2b4b728d,
+ 0xbc9bb2d5, 0x2d99cea0, 0x8b175688, 0xbf486902,
+ 0x049e8008, 0x0d961c54, 0xe0710b21, 0x74e4b9f1,
+ 0xcca8bc85, 0xb742ce90, 0xd8b78266, 0x480cc5e0,
+ 0x5e07a825, 0xb11adc33, 0x2716fff0, 0xe9d8d689,
+ 0xbbeb9047, 0xb5cfa57b, 0xbb2773e9, 0xd6a06fb0,
+ 0x484bb37d, 0x15d196df, 0x71b83fce, 0x7c55b103,
+ 0x3cd4b67e, 0x2638afce, 0x51087e24, 0xd2370684,
+ 0x5599979f, 0x6a7af608, 0x95825d52, 0xc947e4de,
+ 0xbc75ed91, 0x190496e4, 0x510070b9, 0x6eb44403,
+ 0x27686bbd, 0x19b28aa3, 0xa08b7e81, 0x0fd26de8,
+ 0x810124b9, 0x8cdd6547, 0x25839dc5, 0x61fb8c9b,
+ 0x6ed83266, 0x112a8caf, 0xfbdc47bc, 0x74435426,
+ 0x9dcabee2, 0x635835f6, 0x11bd9142, 0x1c9a4894,
+ 0xf97624c5, 0xda6ffb05, 0xdb5e314d, 0xd085e2a8,
+ 0xe324d60c, 0x809d9b59, 0x46871dd2, 0x28359f4d,
+ 0x7642633a, 0x81141f9a, 0xee15a0a5, 0xbdf73966,
+ 0x140ed2d5, 0xf1520de9, 0x0da41833, 0xdbf5f4f3,
+ 0xb57e2ab9, 0x4408732d, 0x9dae8282, 0xed9c362f,
+ 0x3dd65553, 0x1b654d98, 0x381c0447, 0x5b225dd6,
+ 0xa5772cfc, 0xe6ef2288, 0x74790849, 0xf0043cff,
+ 0x0105a8cb, 0x681c6e7e, 0x1d42b7a7, 0x7167906b,
+ 0x5e3b2b4b, 0xe5213423, 0xd8d0d078, 0x37ad2d22,
+ 0x4f565b87, 0xfa626633, 0x45e3fa2b, 0x919fff47,
+ 0xeebee7b3, 0x71e07a3a, 0x9ef2d03b, 0x97afe9ae,
+ 0xfd580d6f, 0x037814b5, 0x49eaa632, 0x45a2a070,
+ 0xe0acb025, 0x18441e28, 0x3f55b5fc, 0x8f515111,
+ 0x6077e650, 0x228b8c06, 0x4a23d7be, 0xd6c52041,
+ 0xd5b622ec, 0xf1be00c6, 0xa2d49bfd, 0xb65194a2,
+ 0xc2ba51cd, 0x260ebdc1, 0x252d43e8, 0xa006eb2d,
+ 0x7a4ae59a, 0xe4996753, 0x62ab4fef, 0x5d3e9f4c,
+ 0xfb19a2ed, 0xbdee4759, 0xae73ec2d, 0xcf15da11,
+ 0x4cc2dd94, 0x10b7282c, 0x0c62c3a5, 0x36dd2207,
+ 0x6484d9ed, 0x3ce2a8af, 0x040c75fd, 0xd6c69d82,
+ 0x9766e56e, 0x0f38f22c, 0xd68cfa3c, 0x1f9742fa,
+ 0x36d95a41, 0x9aea1f0b, 0xd2b5c865, 0xa628581a,
+ 0x2a099542, 0x126d5954, 0xefac19a4, 0xf9dbedef,
+ 0x15a9bdca, 0x3cbb3a05, 0x108db3e4, 0xbc9e1d14,
+ 0x753eebcc, 0xcfd9fda4, 0x18f75094, 0xe0e7a7e2,
+ 0xa0f698bf, 0xd5a78548, 0xb371f853, 0xcfe4570a,
+ 0x986bb322, 0x11d605d7, 0x110fdb12, 0xe1866154,
+ 0x7f252926, 0x52745874, 0x6c525926, 0x70ca1329,
+ 0x7eb2d5b3, 0x27c84010, 0xd192a118, 0x8aba3127,
+ 0x5da16558, 0xe7dcb912, 0xea5fb0d0, 0xe22d5de3,
+ 0x09c31f0f, 0x0d23df28, 0x8a33c0ca, 0x250b4f72,
+ 0xebbf360a, 0x4364194c, 0xee682039, 0xd9a2c18c,
+ 0x71084fbc, 0x6e9833ea, 0xa10ae922, 0xe3d9432a,
+ 0x48432181, 0x69f44537, 0x1240d2ae, 0x8f722a09,
+ 0x59b65b6b, 0x0d816db4, 0xa5cf46c1, 0x54693edd,
+ 0x3c28d620, 0xeeba470a, 0x7338aa45, 0x5b79c0e2,
+ 0x1935cbf1, 0x1f956f56, 0x4d31345e, 0xf1c431ab,
+ 0x05b3e010, 0x3c0a7dfa, 0xfc26dc9a, 0xf58afc55,
+ 0x7d4c3190, 0xf95449a5, 0x210fcc27, 0x42da30be,
+ 0xb03244a0, 0x6c170e67, 0xf44d4a90, 0x8d614243,
+ 0xf8d3438b, 0x28bc6f08, 0x7a4d9554, 0x232d5073,
+ 0x2eaabb2e, 0x53f54925, 0xf56e9406, 0xd421b661,
+ 0x4c5ddeaf, 0xbeaa0fbc, 0x040c110e, 0x52dadd44,
+ 0xba8338ad, 0x95c56414, 0x289f5d3c, 0x65315795,
+ 0x93db923e, 0x039bf141, 0x714c0ab6, 0x23a619f5,
+ 0x62b5c25d, 0x5de222a8, 0x9367ba09, 0x58593f5e,
+ 0x2ae30ab8, 0x20812a3f, 0x16b9ca50, 0xc764268a,
+ 0x0e73a0e9, 0x029cef74, 0x1b891bbe, 0xcbb1de8c,
+ 0x7ef8058f, 0xe8aeebf4, 0xddb9fa12, 0x3cabc8fb,
+ 0xb843d4e6, 0x5392afba, 0x5683b2a4, 0x025c103a,
+ 0x34b6ceb3, 0x31d2c226, 0x459d501e, 0x16dc10b0,
+ 0xe693edba, 0xa595d9ff, 0x79c57422, 0xf5201c08,
+ 0x4505890e, 0x670af29b, 0x68164d53, 0x9e8a0dbe,
+ 0xa6b6a3e6, 0xe82698a1, 0x0096368c, 0x71d1009b,
+ 0xf72fc2de, 0x440be50d, 0x35d7a24c, 0x072314e9,
+ 0x8f5ed7b2, 0x51860174, 0xdcb3938a, 0x26899f67,
+ 0xdcf616f2, 0xe558bcae, 0x60670b82, 0xb6fe496e,
+ 0x8f8ad53a, 0x6e57ab62, 0x469e8231, 0x35bda2b1,
+ 0x3597dbd3, 0x9a8e8c24, 0xa62fb58d, 0xdeb2658b,
+ 0x8ee0feeb, 0xa1da2b0d, 0x82a2d9b3, 0x301f36de,
+ 0x5cc421c1, 0x27cbcd12, 0x75b87a8d, 0xdcc8face,
+ 0x24843f57, 0x63b23f78, 0x2f8f2dbc, 0x9157f004,
+ 0x2a9180a8, 0x63210422, 0x1d1d89b7, 0x2ab8a327,
+ 0xe95ee370, 0xc84db7b0, 0xf41eb572, 0x1c9474c0,
+ 0x695576eb, 0x5b1fba8f, 0xfaae4a04, 0xd048dbc0,
+ 0x2ad7be31, 0x20d25a7f, 0xa01d2e13, 0xb5e7c74c,
+ 0xc6805a14, 0x73713639, 0x63d18906, 0x9a2f8296,
diff --git a/src/cpu/intel/model_206ax/microcode-M12306A6_00000002.h b/src/cpu/intel/model_206ax/microcode-M12306A6_00000002.h
new file mode 100644
index 0000000..3c6ba76
--- /dev/null
+++ b/src/cpu/intel/model_206ax/microcode-M12306A6_00000002.h
@@ -0,0 +1,384 @@
+ 0x00000001, 0x00000002, 0x08312011, 0x000306a6,
+ 0xe9ce4ee5, 0x00000001, 0x00000012, 0x000017d0,
+ 0x00001800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000000a1, 0x00020001, 0x00000002,
+ 0x00000000, 0x00000000, 0x20110830, 0x000005f1,
+ 0x00000001, 0x000306a6, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xeaa96815, 0xbf0016eb, 0x16d2125d, 0x3ed0f544,
+ 0xd82192eb, 0xd4963752, 0xa4a5f9f7, 0xad490c3c,
+ 0x5a3401db, 0x42caecce, 0xb4d8e75e, 0xe6dbaf24,
+ 0x7861b35f, 0x6bd717bc, 0x23b9b731, 0x82ec1ac8,
+ 0x20337b64, 0x5396dbf1, 0x59973bff, 0x724bc7e9,
+ 0x5237193b, 0x0b8647c1, 0x6a0d0e16, 0xbf9ddb5b,
+ 0xace2cc1c, 0xad707638, 0x056f102f, 0xa37e60f8,
+ 0x76255642, 0xfb86e030, 0xb8069a40, 0x367795f1,
+ 0x653fb05e, 0xab7f14ad, 0xb6e8a8e1, 0xd2598d20,
+ 0x2eba3f68, 0x78b372f1, 0xba8d13f8, 0x1f1de861,
+ 0x97f951d5, 0x8097c728, 0x27dbf904, 0xb97906a8,
+ 0xffe7a4ac, 0x4b947668, 0xc1dbd726, 0x2adcf777,
+ 0x63b1bcf0, 0x818e2a1b, 0x49aa907b, 0x2faf5e8d,
+ 0xae842352, 0x82707fae, 0x0aa12b41, 0xa0bae11c,
+ 0xb4298c47, 0xd2b4099c, 0x4ff625f2, 0xcd2630d4,
+ 0x79850981, 0x05dbf57d, 0xb05b81a5, 0x56e73ec7,
+ 0x95cb3897, 0xe262bda5, 0xb2c6e288, 0xcb7f8e77,
+ 0x72b8bdd3, 0x3f400494, 0x63ade65b, 0xbc4adc71,
+ 0x00000011, 0x38ac9f0f, 0xb4156ce3, 0x5dc4da3f,
+ 0x53eb7c7b, 0x0079dd4f, 0xaa3df28f, 0xce6fdcc9,
+ 0x074a5ae8, 0x67b50ca6, 0x5b24a2c7, 0x8a2b7c07,
+ 0x677ee532, 0x7051267a, 0xfefcafc5, 0x6ef28a14,
+ 0xb87e54e6, 0xac6522da, 0xdc689c8c, 0x94c73235,
+ 0xbb421b4b, 0x63c30d81, 0x966f29e4, 0xc2cac70e,
+ 0x18da0d29, 0x24a7e1fb, 0x4214c1cc, 0x6064b927,
+ 0x55a1889d, 0xefdea3e4, 0xde89d159, 0xbddbae9e,
+ 0xbca4b888, 0x1fad580a, 0x1ee6f78d, 0x75c5f074,
+ 0x21b90fd7, 0xa257e08c, 0x5e83b04e, 0xe5ac0763,
+ 0xe7073db6, 0xa9a313ca, 0xd0b03786, 0x7b02d7f7,
+ 0xcae1c146, 0xc365fc96, 0x0fa15115, 0xb336207b,
+ 0xe59703c8, 0x8f48b65c, 0xcf458fab, 0xc4a1d377,
+ 0xee0b0f7d, 0xf8e75028, 0x102af212, 0xcef8363d,
+ 0x022842da, 0x8ed4bf21, 0xb29d35ad, 0x94e37988,
+ 0xc1fe410d, 0x561f5885, 0x0dacb91c, 0xcc3cd641,
+ 0x9de4f875, 0xf3bdea1e, 0x372a102d, 0xfd42391c,
+ 0xff2e9fbe, 0x58805096, 0x2d39e235, 0xe7cc4864,
+ 0x11343168, 0x968b9ceb, 0x24ed599a, 0xc7a55e50,
+ 0x24c70ff5, 0xa0697d66, 0x02c7a31e, 0x04017ae6,
+ 0xb27ad9b3, 0x9c2487c6, 0xd3347029, 0x1dac49fb,
+ 0x21acf089, 0x06382af3, 0x7aa6e972, 0xb749e98c,
+ 0x4d55714e, 0xc10cd419, 0x85416ad9, 0x0c0e2407,
+ 0xcc71cca2, 0x70a69969, 0x6c953e87, 0xe66be904,
+ 0xf69fab02, 0x7259d978, 0x90e2daca, 0xe6f6ecfd,
+ 0xe1c36d4a, 0xded87dc4, 0x2aa35e4b, 0xb9d8d1ac,
+ 0xd2d0f621, 0x10894447, 0x725086e8, 0x4c3f37f2,
+ 0x6beca92d, 0x6a4b1d5b, 0xffc8b550, 0x5733694b,
+ 0xf6162227, 0x3f748554, 0x261c9891, 0x0efbec4d,
+ 0xcb0758db, 0xee819d84, 0x1b9f30ed, 0xcdfb096e,
+ 0x7a8a26ba, 0xd1dbcfd5, 0x50ec8c13, 0x8197cff5,
+ 0x3a0ddf9a, 0xc33e268a, 0x80ff474d, 0x0fa70985,
+ 0xaa8e0eb5, 0x6ba07e75, 0xc49a118c, 0xdbba7064,
+ 0x60e66252, 0x3d6efb61, 0xc8ec2eab, 0xec4ec2e9,
+ 0x64e6b27d, 0x861c7b8f, 0x04e4e01e, 0xba9800ed,
+ 0x607056a9, 0x5c076ab3, 0xe4ac7092, 0x4ad67f26,
+ 0x03394408, 0xc922fd95, 0x231ed10f, 0x01c6821e,
+ 0xd3d4022d, 0x50d69c90, 0x355c96e2, 0x0b7e2df6,
+ 0xba8476de, 0x20fa0033, 0xc2391bff, 0x1cf3dded,
+ 0x2b15eb1e, 0xd3d79c61, 0xe8791aee, 0x596182bf,
+ 0x08ae5405, 0x2c21bede, 0x67201199, 0x04a637e0,
+ 0x3dd39f30, 0x7149b326, 0x98731a76, 0x5ca773e2,
+ 0xaa42585a, 0xf66b28e6, 0xa1be70ba, 0x914d5f3e,
+ 0x7fc56635, 0x985cd1b4, 0x0abd5590, 0x2032d2fa,
+ 0x42052ce9, 0x9dff6fda, 0xd358630b, 0xca6fd0db,
+ 0xa16fe2ff, 0xf75fe9c4, 0x37fcfef2, 0xf9ed9368,
+ 0x93594de4, 0x389a32d3, 0xc4ec7a4c, 0xaf92e40c,
+ 0xb876be6e, 0xa03b4f5a, 0x520efd67, 0xe7024eaa,
+ 0x847577d8, 0x53c065f2, 0xcd3d6215, 0xc4628ba4,
+ 0xea05a759, 0xe5f54593, 0xa94a5f9d, 0x51c8acc6,
+ 0xb415164a, 0xa1a94b2c, 0xfb16a62a, 0x3b9a8b86,
+ 0x2c15e4c3, 0xbe17f0b4, 0x8bdeda08, 0x8dc040de,
+ 0x85173ff8, 0xa93526fb, 0x82a14d2c, 0x6b77fdfe,
+ 0x0ffefc0d, 0xf9d60197, 0xef228860, 0x4907df59,
+ 0xf0067253, 0x7b642650, 0x2a2393a8, 0x745609b2,
+ 0x2cb652ce, 0xa8f15683, 0x71f3a1ff, 0xe737983c,
+ 0x7231e659, 0xf3ae658c, 0x66ab51be, 0x545b1d2a,
+ 0xc0ff3437, 0x1b47397d, 0xd2d35a19, 0x04badbdd,
+ 0x0f2bcc0d, 0xe7aee4ef, 0xca09614b, 0x0217101e,
+ 0x9d7b6cc7, 0xcc347bcf, 0xa08e33be, 0x22d8e5d7,
+ 0x11155f1d, 0x141c6886, 0x5a51f28c, 0x6c24f4f6,
+ 0x16a82fc1, 0x8b451f91, 0x769e8906, 0x1847c4e5,
+ 0x762b06b4, 0x3c41a6b4, 0x5368060b, 0x887e0654,
+ 0xfc47b486, 0x60a0d279, 0x05896959, 0xd4f9ec57,
+ 0x34d88a6b, 0x2ea299af, 0x5383e6e8, 0xd99590e4,
+ 0xbbbd7ce8, 0x67d781ce, 0x29662b72, 0x10e919eb,
+ 0xb9e7d23c, 0x64503030, 0x02890e86, 0x4edea478,
+ 0x13c6e0f0, 0x08fe7c81, 0x9341eb6a, 0xd842f9fd,
+ 0x3199d533, 0x220d7d0d, 0x37cf33f0, 0x992b0333,
+ 0x93cb3b74, 0x544dd8f8, 0x7633881c, 0x93a6fd49,
+ 0x0ed83723, 0xe2a85a87, 0xe336dbf8, 0x839e7d3b,
+ 0xd0e6815a, 0xc88bb70e, 0x2b1d8552, 0xa84e999f,
+ 0xf9bf094d, 0xd35bd5bd, 0x1f7b2873, 0x3f079540,
+ 0x823951d5, 0x4d989993, 0x91c1dcfa, 0xc935a629,
+ 0x22ca55df, 0x6fb04a93, 0x41bfb297, 0xe80a493c,
+ 0x059c2d2f, 0x1824b40f, 0xc7b5b891, 0x1a344e47,
+ 0x635191f4, 0x44f4b87f, 0xbd9a5d61, 0xa9eec49d,
+ 0xb2b26209, 0x05fab66c, 0xf74b4dcf, 0x927c41f5,
+ 0x2c06e8f0, 0x7c02c993, 0xeca47568, 0xa0dbd313,
+ 0xe50d7c89, 0x3aae0da2, 0x6045fa68, 0x334403ca,
+ 0xe9fac688, 0x288b3c3f, 0xc148ee64, 0x7c1f4e20,
+ 0x5800dc60, 0xe7ce5fa5, 0xcd833c1a, 0x28f035d7,
+ 0xe397fb4d, 0xc4011f25, 0x119cc6c4, 0x9f9e07b4,
+ 0x04283b5d, 0xee1b4c20, 0x5f57842a, 0x97749294,
+ 0xc80d31e6, 0xcf639a39, 0xc52ef00d, 0x97c8a3bf,
+ 0xf49260c6, 0x4773eb81, 0xb1aeb5af, 0xcd641b80,
+ 0x9931fd15, 0xd9ece255, 0xc13d3104, 0xa8fa5745,
+ 0x6c718c54, 0xeb8f64c8, 0xaa7d0037, 0x79b0154d,
+ 0x3f98f1c8, 0x884528f3, 0xbadef46d, 0xdabec09e,
+ 0x75e249aa, 0x01fffa2b, 0xa5d5b9f1, 0x3f40bb16,
+ 0x0ab461ab, 0x83342953, 0xa2978bf2, 0x0f98f86e,
+ 0xecfb066b, 0xbb486e27, 0xe0c6d03f, 0x84445088,
+ 0x3bb688dc, 0x508c4338, 0x803a32f3, 0xdf955c80,
+ 0x6b84e4d8, 0x2d590a90, 0xb5b0e0fd, 0x0c79af18,
+ 0x09918548, 0xc9aa474e, 0x26bcbccf, 0xd70c5c18,
+ 0xd0b6b42e, 0xd4a8c97b, 0xb8bf3877, 0x1cf6b7ae,
+ 0x991e7fd6, 0x965e5d35, 0x06b33509, 0xba5b0e05,
+ 0x2d2f4820, 0x26e278c5, 0x1f516c10, 0xc670a2a6,
+ 0xeb10ae27, 0x36307698, 0x01523c03, 0x06417c57,
+ 0x2901e3a5, 0xa1f61ee5, 0x454c61c9, 0xd51f4cff,
+ 0x5450c647, 0x156ab06e, 0x13e4d416, 0x43b2e55d,
+ 0x01b9b2f4, 0xa3a0b87e, 0x83b91344, 0xbba16bfe,
+ 0x6a889ebb, 0x5f97942b, 0x610c3a6a, 0x85dbc617,
+ 0xc5ae2b2d, 0xa1f320cb, 0x35a5cf5e, 0xec0af4c5,
+ 0x4a4780cc, 0xbda150a6, 0x26a91e0b, 0x89e02118,
+ 0xa13ae1ef, 0x72aec6a9, 0xf978bdab, 0x7bf5557a,
+ 0x28eac9da, 0x93d1259d, 0x6a7a1262, 0x4c54fd91,
+ 0x6189e29e, 0x8f3c1f14, 0x85417a4a, 0x31efe683,
+ 0x9cc5ef64, 0x4b65fdf6, 0xdd5a66bb, 0xd6cd06d4,
+ 0x9ed09d41, 0xe56704f6, 0xf0942c8a, 0x6cb0ab33,
+ 0xbcbb4648, 0x5c0cf32b, 0x13c294a0, 0x22e6134c,
+ 0x16020bfa, 0x7a34d63e, 0xbb9ff793, 0x60020f2d,
+ 0x52715f71, 0x85b278be, 0x06d9c6e4, 0x9ea397ce,
+ 0x0af08069, 0x6e4281e9, 0x7304f7ab, 0xbb241137,
+ 0x8ed10cac, 0x04736847, 0x8dae29e1, 0x168f1aa3,
+ 0x6e2aba1f, 0x47ab0ebd, 0x62187535, 0xe276b5a7,
+ 0x77879654, 0x262a0d48, 0x846bc810, 0x44ab1be4,
+ 0xf945289f, 0xeaea018e, 0x9b8bdbc9, 0x990e7f6c,
+ 0x713fc43b, 0x4c02802b, 0x64d3bc7d, 0x9a217516,
+ 0xb727ab52, 0x6cdc56a8, 0xebb8d351, 0x905cede3,
+ 0xff58d536, 0x1a1ba1fb, 0x9bad80a8, 0x61842623,
+ 0x56032aba, 0xa778a686, 0xb1a8fcba, 0x7a053440,
+ 0x1caba507, 0xafd2ed87, 0x1592a689, 0x5916be55,
+ 0x82614e21, 0x0f85a939, 0x48c4c6cb, 0x6d1ab12f,
+ 0x16091fc0, 0x97dcbac1, 0xc9c2acd7, 0x43b796d9,
+ 0xe95d2022, 0x585b20a4, 0x34eac923, 0x3b60dbb4,
+ 0x41ad361d, 0x448eef1c, 0x58011794, 0x664d8775,
+ 0x32adbedc, 0x81db1825, 0x796161f4, 0x04d4efc3,
+ 0x89f29fed, 0x44c929ea, 0x22a258ee, 0x2f379a8a,
+ 0xab6fa455, 0xa4c357ee, 0xfdede306, 0x1eea21a6,
+ 0xb2dada43, 0x53b8126b, 0x7a1d93ea, 0x6e320d26,
+ 0x81df4c72, 0x6bcf3d1a, 0x53d97407, 0xb93da96f,
+ 0x4ca83508, 0x152d39f6, 0x139b211d, 0x0c60ec25,
+ 0x78fc6997, 0xea232eca, 0x2bf69997, 0x9799dba7,
+ 0xbfa64e15, 0x5385edb8, 0xeae9a72e, 0x7b04646c,
+ 0x1524210c, 0x700296b9, 0xfa9efa76, 0xdb1ec967,
+ 0xd9559a88, 0xe1cef762, 0xb3bdac80, 0xc1a085a6,
+ 0xa6645021, 0xb4d39a1c, 0xbf866682, 0x14188e1b,
+ 0x5477797e, 0xd4888548, 0x707d0d12, 0xc87b1693,
+ 0xeb0d9e22, 0x227d5ef1, 0x658dc627, 0xb8a4fedb,
+ 0x8186ca84, 0xed54db37, 0x611ade6b, 0x9a95fa10,
+ 0x0bfe233b, 0x42676905, 0x6f00d1c7, 0xc6db9823,
+ 0xe385fd97, 0xd7f43f60, 0xde693ed2, 0xfc5f6753,
+ 0x672e3232, 0x0c051e6f, 0xfe6c7a31, 0x13305b5d,
+ 0x3f42f2fd, 0xdc217f86, 0x8484af50, 0xb4ab372c,
+ 0x8df7e31b, 0x3e8edb85, 0x6f746731, 0xbad73a1b,
+ 0x50b5c6a9, 0x6673ca19, 0x6d1efe4e, 0xa9f22f6d,
+ 0x12a85175, 0xb8dce570, 0x01c4dfca, 0x32738ba1,
+ 0x1e8faaad, 0xdcb58a2b, 0xd28ca3a6, 0xd836dec7,
+ 0x245bbd41, 0xb7ae396c, 0x8aa97452, 0x9eac9899,
+ 0x5856a849, 0xed668405, 0xc6eb79d3, 0x2bc6d735,
+ 0xd866a5f6, 0xcb4eb649, 0x4c2bb992, 0x63bcf3c3,
+ 0x0a3c2b25, 0x1b0fa3fe, 0x55bdd9cb, 0x91c0a44b,
+ 0x36debaf4, 0x0fc3fa30, 0x135f05ce, 0x7486c06f,
+ 0xab814f50, 0x7245b169, 0x0d588979, 0x3955156b,
+ 0x6ae3fac8, 0x9e3142dc, 0xff6b5558, 0x6d0bbdb7,
+ 0x5eae4fcd, 0x506d05e8, 0x4fc08e61, 0xf3318ee7,
+ 0x5129b256, 0x26fccfc8, 0xf3799a23, 0x65429a3e,
+ 0xb84035e6, 0x2ca651eb, 0x2a6d4a7c, 0x2cc2b89f,
+ 0x5211893d, 0xf9fb2a86, 0xeb6fe6c3, 0xfc184d2d,
+ 0x5439b889, 0x4f43a3cd, 0x890e8bb3, 0x5ca34837,
+ 0xb0a2aebb, 0xb125b056, 0x815eb93a, 0xe41f19a8,
+ 0x0bcea835, 0x033fc017, 0x6ede6d41, 0xa123bdbb,
+ 0x7ca43851, 0x74f272f4, 0x7ebc956c, 0x6f7b4c30,
+ 0xbee92a5c, 0x68e1530d, 0x532553d1, 0xd1b88b16,
+ 0x82c15e64, 0x0beb18ac, 0x74348efd, 0xea7242fc,
+ 0x90b7658f, 0x5f4aa652, 0xa4c89968, 0xd13ffee2,
+ 0x31a185de, 0xea95476e, 0x74f2e4fb, 0xc1bfb0d2,
+ 0xc8d9dc22, 0xc8ed0f3b, 0x9257519d, 0x951699cc,
+ 0x65ceeeb1, 0xada75da2, 0x203f05c0, 0x82e3aed8,
+ 0x0046e8f3, 0xf51092c1, 0x2f97a780, 0xb9f49d70,
+ 0xc548ccc6, 0x71b17d57, 0x06d60c08, 0xba1266e4,
+ 0xac00b3c5, 0x6ecd17bf, 0xafe69e47, 0x2cf15183,
+ 0x170df923, 0x9965db00, 0xddd0975d, 0xfc97318e,
+ 0xb823145f, 0xc9148971, 0x451a60d1, 0x142dc417,
+ 0xb821eaac, 0x8a226b83, 0x7f3a42fd, 0x46bdc002,
+ 0x63d30c50, 0x33bf607b, 0x1622d1ab, 0x84406663,
+ 0x05fa508a, 0x99e4a7ce, 0x85b74d2e, 0x06e757e8,
+ 0xcf31f2e8, 0xa2d96da5, 0xa9609871, 0x66c174da,
+ 0x25c0beb2, 0x2f431c4b, 0x5c84ed22, 0x5a32725d,
+ 0x830ffc70, 0x740965db, 0x1209289b, 0xed00d801,
+ 0x548c1be8, 0x3fe17d39, 0xd064f60b, 0x1daeb1c1,
+ 0xe7700c0f, 0x6f921a2f, 0x817c79e7, 0x309317d8,
+ 0x0a8e54d7, 0x7de8f19f, 0xfeaa6d93, 0x0f9b2e2d,
+ 0x6ca506d7, 0x78a8a02d, 0x09308118, 0x29f0c3dd,
+ 0x93b68bd8, 0x38e50107, 0x9e7455b6, 0x76d45134,
+ 0x98fabf9c, 0x6655e512, 0x66a64b4b, 0x59cad0ac,
+ 0x348493b9, 0xd7f0cdac, 0xd3e8b666, 0x73bef86c,
+ 0xa0cd8753, 0x688a19e3, 0x62d76794, 0x9190fd83,
+ 0xffbff536, 0xbc1e8fe5, 0xde0790de, 0xa977326e,
+ 0xbdeb2bc3, 0x991e3548, 0xd30c4867, 0xd878747a,
+ 0xe9ac9864, 0xfc481d14, 0x150a17dc, 0x74d119fb,
+ 0x2e90c950, 0xb50608d9, 0xc0793460, 0x8dc70895,
+ 0x046975eb, 0x209e5f44, 0x20512ecb, 0x6dbc6a4e,
+ 0xc616bf46, 0xde922fcb, 0x8cde7cb2, 0xe469e1ae,
+ 0x5c34da1a, 0x41cdb147, 0x9ea48b58, 0x058d1560,
+ 0x1760ade6, 0xe4641418, 0x1a75a0be, 0x80a19c95,
+ 0xf8de79d8, 0x9bc8a253, 0x7bcf96c5, 0x29d75f45,
+ 0x0b881e46, 0xdbedcce1, 0xcbca8678, 0x487fc6fb,
+ 0x22e423dd, 0xeee86593, 0x00c0d4a2, 0xa97a9dc2,
+ 0x936f09b3, 0xf46221ba, 0x88ba82c9, 0x981e806c,
+ 0xc242a920, 0x647d9a1c, 0x5afba7ee, 0x9250b299,
+ 0x287473fc, 0xe0a958d6, 0x45abe4c3, 0xf530dbda,
+ 0x23901326, 0xf2abef55, 0xc00b15a5, 0xb5560695,
+ 0xac324464, 0xeaedff30, 0x2fb72613, 0x7f80ceb8,
+ 0xd92e61ad, 0xa3922d8f, 0xdb0c649e, 0xb2bd43b5,
+ 0xff6de336, 0xa37580c2, 0x1a76d318, 0xfc6a2eaa,
+ 0xba663743, 0xe0e9c85c, 0xc9e7c52f, 0x2451eb8f,
+ 0x1dc47d35, 0x1eae01b0, 0x8a4f0872, 0x748faf7d,
+ 0xe1c06cf6, 0xa5dddb88, 0xbfe7e0fa, 0xb696f377,
+ 0xc8d622f4, 0x256ebdae, 0xd0e30ce8, 0xed1222c4,
+ 0xe56c0c13, 0xfe59e2b0, 0x493a329d, 0xf803fba7,
+ 0x734b7982, 0x115c76be, 0xb69c8cac, 0x5f172599,
+ 0xe56b1a64, 0xa7472163, 0x5d2e7eb5, 0xc425e08e,
+ 0x24e63c5a, 0x7ba0b8aa, 0x3b29597f, 0x9dd86ba2,
+ 0x5cada62a, 0x2c54c829, 0xf7a94555, 0x244728be,
+ 0x9e85c26f, 0x2a433437, 0x43b471a0, 0xfe0f1cf5,
+ 0xe2befd62, 0x7e0a3cfe, 0x853af42c, 0xe8ba9b10,
+ 0x30f844f6, 0x1faab458, 0x818de104, 0xbf265ce4,
+ 0x34af9651, 0xe71a8b35, 0x5fc96bd1, 0x5d625c4c,
+ 0xf35b9216, 0x75a36ab7, 0x025759f5, 0x47f2f62c,
+ 0x1c5d4213, 0xcbbfa087, 0x9539604d, 0x4da0af8d,
+ 0x2ff219ce, 0xc3f76c29, 0xef089d74, 0x60ca4b6f,
+ 0x82bd32af, 0x1d5424ff, 0x46d4f77b, 0xf70bbcc7,
+ 0xe758c403, 0x47df7637, 0x175bf34a, 0x33a0241e,
+ 0x9cf24ccd, 0xab4fc44f, 0xe798328f, 0x407bf3dd,
+ 0x84a7d158, 0xcc152534, 0xef51a4a8, 0xb7450836,
+ 0x1972ed3f, 0xae8be937, 0xa6c4dc3d, 0xd793fea6,
+ 0xfb409d42, 0xcf83ac4b, 0xf468e31f, 0xf915180b,
+ 0x53ad27d6, 0x98c4d239, 0x5af4e4be, 0x28be952f,
+ 0xbf09115b, 0x92eed6f9, 0x45f64b4e, 0x33e42757,
+ 0x6f1d23ce, 0x226db3df, 0xf1286ab1, 0x4f9e4dea,
+ 0x20486bcd, 0xdf8419bc, 0xf9dadaa2, 0x118a5517,
+ 0x652bd97c, 0x01f83569, 0x7aa4dbd1, 0x7aaf2f69,
+ 0x444c6b89, 0x679bbc56, 0x05d752ac, 0x18eb8462,
+ 0x1fed6072, 0x21d7484c, 0x5da02ac1, 0x1f416be5,
+ 0xccc1618f, 0x8f4c0e76, 0x5f56c103, 0xb404f46c,
+ 0x57079839, 0xc7165e79, 0xb14a3d71, 0x463af1e9,
+ 0x4348c4ba, 0x522fd29e, 0xa660346b, 0x6683ccba,
+ 0x02ec59bc, 0xe1514013, 0x55d9631b, 0xceddab96,
+ 0x64ce3004, 0xf01e9c36, 0x377f85be, 0x47217cea,
+ 0x7002c461, 0x20369470, 0x145f162e, 0xe941d828,
+ 0xcbd8517f, 0x14e8e489, 0x6b2b06bc, 0xdc004075,
+ 0x723014c8, 0x640a537f, 0xc831e89e, 0xd82df3ae,
+ 0xa5ca8c97, 0x83f99215, 0x202f7c21, 0x0e7c6962,
+ 0xadcaa3a2, 0xde77a73b, 0x0f0beb7d, 0x6ade3ea7,
+ 0x520734e7, 0x017159ea, 0x133cdddb, 0x79651221,
+ 0xe5af92c7, 0x4d3abed4, 0x92b2b2de, 0x6e68386f,
+ 0x885d07a7, 0x185cbb66, 0xcc7f2080, 0xdaedd636,
+ 0xeacf4a3d, 0x6c17ad90, 0xb8474d66, 0x377d8588,
+ 0x5f2af28e, 0xd272e4db, 0x8a727a31, 0x623cd060,
+ 0xbd17142a, 0x39f43230, 0x5385856e, 0xbaa19999,
+ 0x8c29b382, 0xc5e8bca9, 0xb0766a2f, 0x72de1ea7,
+ 0x82db58d7, 0xcd686d45, 0x55b8a187, 0xe3fe770b,
+ 0x3fd01567, 0x9daf6042, 0x4330ba5e, 0x25f8ca25,
+ 0x7feb8b8c, 0xe2a49567, 0xd19902a6, 0xbca3f61f,
+ 0xbc55dfdd, 0x4adccac8, 0x948b7bdf, 0xeeb2257e,
+ 0x61790c85, 0x4deb3663, 0x537eb6f3, 0xa984d8cb,
+ 0x5e3ccd7f, 0x1076cc3b, 0x9993b755, 0xe55ac802,
+ 0x597daf68, 0xc0aeaf5c, 0x05fa176d, 0x873c6b98,
+ 0x73f55379, 0xdac484b2, 0x71d83be7, 0xc11eccd6,
+ 0xad21100c, 0x902e517e, 0xc2dfc41f, 0x91aa4f5a,
+ 0x3c1aea4b, 0x2b70e6f1, 0x9f89d3d8, 0xba5e6fb0,
+ 0x42148819, 0x3c5f837b, 0x926ac3ba, 0x03447e81,
+ 0xd7a666dd, 0x09bca9f9, 0x33f360fe, 0x8fb072d1,
+ 0x3ea3d789, 0x249a7b62, 0x887c85e2, 0xd773d347,
+ 0x4d509729, 0x8e70cd83, 0x40e206b7, 0xca15d5e2,
+ 0x4fbc41cc, 0x0dffe7f9, 0x6f423942, 0xbf66de01,
+ 0x61adb429, 0x0c25d19a, 0x8f0c4af2, 0x245b3640,
+ 0x71a93e9a, 0x3064f7b5, 0x8fcc7ce8, 0x3c72fd22,
+ 0xa8d506fb, 0x5b57670f, 0x6cc3da45, 0x0f51a6a3,
+ 0xb0494ab3, 0x4516ce3d, 0x95965825, 0xabced34a,
+ 0x8bc9789e, 0xa93d81e0, 0xe0db2466, 0x1919134b,
+ 0x4c00d4e5, 0x2b9ab4ce, 0x4ffea6aa, 0x1240070b,
+ 0xee1ddd9c, 0xd927cb4c, 0x39d9b3b9, 0xfd79d79c,
+ 0x80ff4d52, 0xb2d12f16, 0x43690044, 0xa0c64fbc,
+ 0xbdf7ed27, 0x74be0dfb, 0x1cbac9f8, 0x87c51b24,
+ 0x13f60cfb, 0xafe77b05, 0x5b17986c, 0x334b6e14,
+ 0xf5303945, 0x1dec53e6, 0x94b31630, 0xb6677e38,
+ 0x4036ee99, 0x0279aa47, 0x7b877890, 0x5f6af223,
+ 0x270e8414, 0x980f3ea1, 0x4d072b3d, 0x9782822e,
+ 0x0f81b474, 0x14a74b39, 0x70c996f8, 0x254f9ddf,
+ 0x285cf710, 0x728e3003, 0xe910d915, 0x1e0dc365,
+ 0x46e3f9b5, 0x186e4a2c, 0x53a47fe9, 0x30031402,
+ 0xeedb25f6, 0xf47a0564, 0xc741ea25, 0x43830a2f,
+ 0x1079ee84, 0x790e49b1, 0xd73b66b8, 0xbca6fb27,
+ 0x573a5e83, 0xa0964bd9, 0xd4f65a5d, 0x399914b4,
+ 0xf87a6f20, 0xd6251b6c, 0x04aec019, 0xe0056f0b,
+ 0xfbc51f69, 0x8ed78136, 0xc8eedf0d, 0x969bcafc,
+ 0x664dc3ec, 0xc22e0074, 0x8d695eae, 0x85eb07ed,
+ 0x0b1a3c48, 0x06ad64ce, 0xf3f742ff, 0xc84356e1,
+ 0x642a55ed, 0x97f94824, 0x988ed85e, 0xe90e2aaa,
+ 0x91e3325d, 0xaf1a13c3, 0x59dccee0, 0xac947fda,
+ 0xe2000f40, 0xb0f49ab7, 0x7ce3292f, 0x79bcdb1b,
+ 0x3d1efcae, 0x08ad67fd, 0xdc3d9dc2, 0x58b6a9f9,
+ 0x616e9986, 0x4c414f34, 0xaae23616, 0xaf980b07,
+ 0x925b08b1, 0x58712776, 0x39d14331, 0xf0991d83,
+ 0x9d2afd7a, 0x6895d6be, 0x8509da31, 0xb669643c,
+ 0xbdf301d5, 0x230ab7ef, 0xb5be4ce7, 0x32faee37,
+ 0x79eb836a, 0x2de038b4, 0x2a5edb92, 0xe0d41400,
+ 0x0fd463c1, 0x38619ed4, 0x052b60c4, 0x4ac45a2a,
+ 0xcd992782, 0x66a42505, 0x948b3dcc, 0x4890ed9f,
+ 0x3f0944df, 0xa5031959, 0xbaef9cbd, 0xc9fd58e4,
+ 0x6b01540b, 0x1553420c, 0xf3bf279a, 0xb2647028,
+ 0xab22933b, 0xefa0e657, 0xa6ba2a3c, 0xd2eec6cd,
+ 0x2647f2b3, 0x00e5a483, 0xfbe910f0, 0xfd92fb11,
+ 0xb5366a32, 0xbfbe393e, 0x01f511e9, 0xfd3fddf1,
+ 0x26b634a1, 0x6f5b92e5, 0x94dbf536, 0xceab9d5d,
+ 0x607ff06c, 0x8955a5e3, 0xf71f24e7, 0x30df8e14,
+ 0x1429761b, 0xe94df1cc, 0x9a1f821f, 0x21e15d73,
+ 0x86f2960d, 0x6f4ee7f1, 0x86ec25f3, 0xf6f0f0f5,
+ 0x03606361, 0x3b90c2e7, 0x2302dd2f, 0x5753a789,
+ 0x2e3a0c07, 0x2327269f, 0x41051953, 0xc2be42c3,
+ 0xb27f1956, 0x2f36176f, 0xc24b662e, 0x541875d2,
+ 0x435cbc65, 0x8c6928fe, 0x1f282682, 0x1f2da9d1,
+ 0xa9f93ee2, 0x04227aa0, 0xfb3951e4, 0xae72dc77,
+ 0x330e3b18, 0x34fdc918, 0x317dffe2, 0x7c7631bd,
+ 0x5ed76305, 0x581b5979, 0x94c15074, 0x9e610748,
+ 0xe10cb169, 0x490c1baa, 0x9a0a6775, 0x5550ee45,
+ 0x582ae8af, 0xd5ccc66a, 0xc7331fb5, 0xcaaaa739,
+ 0xff03332f, 0x496799b1, 0x5e1f80c4, 0xe0175b6d,
+ 0x852d709f, 0xcbdd5250, 0x133484a3, 0xb71fde2b,
+ 0xfb2e77a0, 0xba2f26a3, 0x02f50324, 0x634f7a59,
+ 0x20d04d76, 0x67db3fec, 0xa45c88dc, 0x9217183a,
+ 0xe861f7a8, 0xb1c9baa7, 0x29ec4e3d, 0x78e806e0,
+ 0x5ce0e9af, 0x88d6cb15, 0x396ef45c, 0xb7429997,
+ 0x6ca35b40, 0xcd04ef55, 0xe27fac1a, 0x21b0eaf6,
+ 0x8d844678, 0x8954090d, 0xb6b85c1e, 0x2b244dbe,
+ 0x45547dc6, 0xa436b970, 0x4ce19b18, 0x36fc3457,
+ 0xcfb1a35c, 0x15302cef, 0xb59e3515, 0x141097dc,
+ 0xd6fbd844, 0x3aaf6931, 0xb0b5401f, 0x05469bfe,
+ 0x466c6b32, 0x85505bf5, 0xc8ca5a73, 0x77054c9f,
+ 0x143e80c4, 0xc64885c6, 0xd700c060, 0x2b86831e,
+ 0xcc4190ec, 0x19b614ad, 0x62314429, 0x1900a299,
+ 0x757a7e5f, 0x733329aa, 0x679eb7ef, 0xbb2a7f89,
+ 0x047047b8, 0x0955a5d4, 0x62a59106, 0xce9de78b,
+ 0x82182e03, 0x97e75a6f, 0x4a62f5c1, 0x3bd2df51,
+ 0x2c9edb8c, 0x0c457bc3, 0xb9eedd66, 0xdadb756d,
+ 0x5e9e33ea, 0xcd532541, 0x296dd564, 0xd67e7450,
+ 0xcea6df03, 0xab8798b8, 0x272ac204, 0x5f43f31b,
+ 0xe84fe559, 0xfe26bf7a, 0xfe00504b, 0x17e849aa,
+ 0x8fae7d57, 0x3b5d0580, 0x5e0f11ca, 0x03d66007,
+ 0x3eb21080, 0x125196f3, 0x65c24637, 0x1b986ad5,
+ 0x628309d9, 0x83971881, 0xaeeea5e9, 0x552893db,
+ 0x7cbe399d, 0xe4fd478e, 0x3db795f8, 0x092aa958,
+ 0x523fb2e1, 0xa47f99c0, 0x0e3516c5, 0x42dfacc2,
+ 0x5619e0b4, 0x46738297, 0xa9245fad, 0x5fffd06e,
+ 0xafb5ab01, 0xf08fdf29, 0x9abdff9e, 0xeadf7f0e,
+ 0xb5f57798, 0x1cd128da, 0xe6d64296, 0x15f16c59,
+ 0xd7ba399f, 0xf113ff8d, 0x3547b881, 0x74d4236e,
+ 0x679e4f48, 0xcad6fb29, 0x4c54a82d, 0xd19c5b11,
+ 0x7fedbe91, 0x6dbc0a20, 0xf18e9da7, 0xcbee3417,
+ 0xa5611e5d, 0xc4e5cf62, 0x918a88da, 0x12cfdf03,
+ 0xc7d84404, 0x6f80d41b, 0x8b352752, 0xc1af0120,
+ 0xdea03916, 0x597dd900, 0x7ba04f97, 0x4c0e7e49,
+ 0x11c4a446, 0xf4fbb8aa, 0x07bc87cf, 0x264b0e53,
+ 0xf3760292, 0x471b31dd, 0xf36e1742, 0xfbaddcb6,
diff --git a/src/cpu/intel/model_206ax/microcode-M12306A8_00000010.h b/src/cpu/intel/model_206ax/microcode-M12306A8_00000010.h
new file mode 100644
index 0000000..ce80526
--- /dev/null
+++ b/src/cpu/intel/model_206ax/microcode-M12306A8_00000010.h
@@ -0,0 +1,640 @@
+ 0x00000001, 0x00000010, 0x02202012, 0x000306a8,
+ 0xe44a4ef2, 0x00000001, 0x00000012, 0x000027d0,
+ 0x00002800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000000a1, 0x00020001, 0x00000010,
+ 0x00000000, 0x00000000, 0x20120217, 0x000009e1,
+ 0x00000001, 0x000306a8, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1b403d49, 0xf16c1064, 0x0f7ffc0f, 0xf6974b9b,
+ 0xc2b9fab8, 0x16333546, 0x1bd94702, 0x61c3363c,
+ 0x5a3401db, 0x42caecce, 0xb4d8e75e, 0xe6dbaf24,
+ 0x7861b35f, 0x6bd717bc, 0x23b9b731, 0x82ec1ac8,
+ 0x20337b64, 0x5396dbf1, 0x59973bff, 0x724bc7e9,
+ 0x5237193b, 0x0b8647c1, 0x6a0d0e16, 0xbf9ddb5b,
+ 0xace2cc1c, 0xad707638, 0x056f102f, 0xa37e60f8,
+ 0x76255642, 0xfb86e030, 0xb8069a40, 0x367795f1,
+ 0x653fb05e, 0xab7f14ad, 0xb6e8a8e1, 0xd2598d20,
+ 0x2eba3f68, 0x78b372f1, 0xba8d13f8, 0x1f1de861,
+ 0x97f951d5, 0x8097c728, 0x27dbf904, 0xb97906a8,
+ 0xffe7a4ac, 0x4b947668, 0xc1dbd726, 0x2adcf777,
+ 0x63b1bcf0, 0x818e2a1b, 0x49aa907b, 0x2faf5e8d,
+ 0xae842352, 0x82707fae, 0x0aa12b41, 0xa0bae11c,
+ 0xb4298c47, 0xd2b4099c, 0x4ff625f2, 0xcd2630d4,
+ 0x79850981, 0x05dbf57d, 0xb05b81a5, 0x56e73ec7,
+ 0x95cb3897, 0xe262bda5, 0xb2c6e288, 0xcb7f8e77,
+ 0x72b8bdd3, 0x3f400494, 0x63ade65b, 0xbc4adc71,
+ 0x00000011, 0x8ed1ffe5, 0x32c0109c, 0x587709ef,
+ 0x3bfb445b, 0x7369bcab, 0x2f3140b0, 0x0aab6762,
+ 0x5536ef35, 0xa70d4c69, 0xdb94af6e, 0x5feb3f29,
+ 0xbf625a22, 0x27dd0e55, 0x70a64d8e, 0x9bd2fc9a,
+ 0xf152ad62, 0xfbc6cddd, 0x6b159e05, 0x91a47294,
+ 0xfbe6d820, 0x2d824170, 0x18c5f95a, 0x2f346c7e,
+ 0x11a313b1, 0x5066c4de, 0x1ca9c891, 0x4dde7c15,
+ 0x5d3d56ec, 0x0e0d4792, 0x8c483c37, 0x848f8af1,
+ 0xada87f75, 0xe79c95f8, 0xc9e3e195, 0x307f3447,
+ 0xa3e4d6fb, 0xe2f2c218, 0x68ebc6b6, 0x3818a8d2,
+ 0xbb6449a4, 0x553d8936, 0x471d410b, 0x15cfdd5a,
+ 0x69425847, 0xb3082c97, 0x00b33509, 0xa7367dec,
+ 0x2338371c, 0xbe267648, 0x64cdfeac, 0x3cc88866,
+ 0xf9016fb9, 0x19976c2b, 0xda55e997, 0x5ab2f3c4,
+ 0x5020f1fc, 0xbec51b96, 0xe4b1eb53, 0xa3ea7ddc,
+ 0x9a81863b, 0x218a497c, 0xb6c19b12, 0x24c3a52a,
+ 0x2080b56f, 0xa8248e0c, 0xcff0c1b7, 0x81752837,
+ 0x11e317f4, 0xcbb8d75f, 0x6ac515e6, 0xa76a6c6a,
+ 0x637dc946, 0xeead71cc, 0x83749b23, 0xf75067ea,
+ 0xc2e7ba17, 0xe1e54dbf, 0xe0a1376c, 0x62c74f31,
+ 0x94fcbf68, 0x5c876940, 0x93a5d360, 0x9534923a,
+ 0x99a8f770, 0x6fdb59c9, 0x740344fd, 0x68f6e40b,
+ 0xe9745bc1, 0xc75fb19e, 0x3959dc04, 0xaf0f2d1c,
+ 0xc978a38c, 0x90aeaa15, 0x71e4532c, 0x7739da2a,
+ 0x3b6d0d75, 0xdd7ce2d3, 0x4cce3ef6, 0x6394bfcb,
+ 0xad6ab2f0, 0x7edcc9ac, 0xeb3121cb, 0xbc14dac2,
+ 0x1977b501, 0xe9191390, 0x256db186, 0x275efe89,
+ 0xcd3531fa, 0x8ecfeb51, 0x0768b391, 0xa187fb6e,
+ 0x9f4805be, 0xc7f66104, 0x59db1d4f, 0x357e7a00,
+ 0x60c3e5dd, 0x20a537f1, 0x12953d15, 0x4099e4eb,
+ 0xb32717b8, 0xda4af0df, 0xd5114850, 0xa1a29261,
+ 0x87d28a41, 0x0f8f2744, 0xcc0fd7c8, 0xca53595d,
+ 0x03aea4ec, 0x86f807b5, 0x6b72a690, 0xb6602cec,
+ 0x233900fe, 0xb22bd58c, 0xbb7b3987, 0x14c598ec,
+ 0x52135028, 0x708d51d5, 0x198a25f3, 0xf4e0e415,
+ 0x182627ae, 0x6fce4e16, 0x9c44b519, 0x2acf1727,
+ 0xcf98eeff, 0x046c8df1, 0x44f7b6ff, 0x50cbd25e,
+ 0x5aa62194, 0xe70b1576, 0xebd98996, 0x5b39cee6,
+ 0x377785a5, 0x0f5a1be5, 0x6657c95c, 0x046f5a36,
+ 0x1b6d8aee, 0xe7a39d21, 0x46490081, 0xf9004fce,
+ 0xd0eb2e85, 0x64b1393a, 0xdd3d8696, 0x696db443,
+ 0x8b134e06, 0xa312c32a, 0x82c0eae7, 0x3f8058b9,
+ 0x0e943831, 0x995d1d4c, 0x02ede949, 0x4e903aeb,
+ 0x82cec214, 0x3e494984, 0xbf6ddd3c, 0x2e59dbdd,
+ 0xca9fe3aa, 0x656e3c16, 0x520e5aee, 0x8c2f8cae,
+ 0x1614fd07, 0xdcd06b40, 0x061c8152, 0x63633118,
+ 0xebd254f9, 0xdc83eca8, 0xe99649e2, 0x5ff42ac9,
+ 0xd0f1735a, 0x8f94b9f5, 0x5f0f96a6, 0x66123def,
+ 0x432bac97, 0xfe72ce20, 0x964f770d, 0x67396529,
+ 0xe65f76ca, 0x7fed0d47, 0x7eb8a942, 0x36fb9c3c,
+ 0xdb5493cd, 0x89a82f0f, 0x715c5eb3, 0x0d1edac3,
+ 0xd0bff985, 0xa194fc1a, 0xd42455f0, 0xef38212b,
+ 0x05b9773c, 0x066ad255, 0x5d043acc, 0x56a505ad,
+ 0xb7f580ef, 0xdee8a63c, 0xe4f90dc4, 0x8add5bdc,
+ 0x9d34e9de, 0xc9cb8e25, 0x0eaf9fa2, 0xb4aa1df4,
+ 0x8b93af47, 0xf11c6a6a, 0x4a2f3d7a, 0x96e7ed11,
+ 0x2257f261, 0x5ea36468, 0xae6fd9b4, 0x22a7c6cd,
+ 0x5d6164ce, 0x52b256ef, 0x0b02890b, 0x4cc21a2a,
+ 0x83322c58, 0x4e274f12, 0xdc8fa5f6, 0x2d267c84,
+ 0x9b7f5131, 0x8449d38c, 0x04720fc6, 0xc17548a9,
+ 0xe6f4ab12, 0x292bddfb, 0xc1a151db, 0xc99e0fb1,
+ 0x3c5d2bc5, 0xc4755ffa, 0xef6f3cb6, 0xe04fcd8c,
+ 0x11ccb674, 0xd9ab3b01, 0x0902c30b, 0xcf7d59b1,
+ 0x76aca5bd, 0x3ad17103, 0x05252567, 0x691308f3,
+ 0x534e7a0d, 0x9f9af825, 0x3fe5d9d0, 0x7d895da2,
+ 0xe0832f82, 0xe6ea0830, 0x20338d42, 0x35d29098,
+ 0x1089c3fe, 0x217ec856, 0x4b597f7f, 0x6a8646df,
+ 0x404ba334, 0x7e268709, 0xd13370b4, 0x405d1f33,
+ 0xc54e5a93, 0x950f48ab, 0xe7d80318, 0x93e6e200,
+ 0x53b018ab, 0xdd06f71c, 0x4958da7d, 0xe3e222b4,
+ 0xf3d05fba, 0xe12cee3a, 0x4711b233, 0xd7c0de5f,
+ 0x89d209d5, 0xf47b1861, 0x847668f7, 0x90bced48,
+ 0x0bcd9d51, 0xeb26f077, 0x70b42ec5, 0x97d44d1d,
+ 0x9c9ca62f, 0x0defcf8f, 0xb3a0d81e, 0x99d11293,
+ 0xbe556b59, 0x568ec6c8, 0x28dca86a, 0x70ec0031,
+ 0xf7ff7b73, 0x141fe540, 0x1faf5b69, 0x406778ad,
+ 0x08b17862, 0xb06f06cd, 0x2cd2f974, 0xf6d6d79d,
+ 0x81d0d8c9, 0xae322fb8, 0xedee7b79, 0xdde84ca3,
+ 0x6ed57ad5, 0x9fc1bea4, 0x6872cce2, 0x645fb8d2,
+ 0x5d83af4f, 0x33396fda, 0xd37c3928, 0x175a0b01,
+ 0xfb4b906d, 0x262bfc26, 0x0c447bdc, 0x165f984e,
+ 0xbe8afb92, 0x777b8dab, 0x4f0006b9, 0x98acbdb0,
+ 0x0b2364ee, 0xf6eb68e7, 0x34a5963c, 0x84a02a4e,
+ 0x4a5c4c5f, 0x4e96ff7b, 0xe3dd4f4b, 0x0b5536fc,
+ 0xbe2002e9, 0xd4c35600, 0x51975965, 0x6512c700,
+ 0xa41e0183, 0x3f11d85b, 0xabc46b61, 0xabfdbbcd,
+ 0xe6bd7a18, 0x59200bcb, 0x944c2424, 0x8bac5ca0,
+ 0xebe4e015, 0x1e7e3de9, 0x086e01d4, 0xe9e14481,
+ 0x2566251c, 0x79431f84, 0x54db2e78, 0x4d67706a,
+ 0xf974e85d, 0x3b425b07, 0xc4ada871, 0xd15e7c3f,
+ 0xb0ff45c0, 0xbf8b4ed9, 0xdc3efff7, 0xb5aad3b1,
+ 0xb5f4787e, 0x640c9f2e, 0x5ae4ef17, 0x4bd12d2a,
+ 0x594eda9e, 0xc789362c, 0xfc5e5ee1, 0x2f1af1f4,
+ 0x0000db0e, 0x69a1aff7, 0x038b5505, 0x69aad61e,
+ 0x62d37481, 0xcc142892, 0x1cc3b1cf, 0xa6abcbe7,
+ 0x7a7da76a, 0x7ba348ea, 0xafa2b723, 0xda02b6c2,
+ 0xeb6a0703, 0xb59e65ef, 0xe633283c, 0x1b52d87d,
+ 0xf38f0ae8, 0xd224afe3, 0x67f0156d, 0x0bb9051c,
+ 0xea106e30, 0x991a5bd4, 0xac855ac6, 0x13daddb4,
+ 0xbe0b2b1f, 0xc1216471, 0x99f5c233, 0x88a6eb0d,
+ 0xc2e14da4, 0x3e83331d, 0x0046453d, 0x55b8cd07,
+ 0x1429b457, 0xd815302b, 0x193189f7, 0x11aa54a7,
+ 0x1cab8bfc, 0xffb3ab6a, 0xba359aeb, 0x24e23394,
+ 0x565f2288, 0x466d37b3, 0x5d220392, 0xf891d5fd,
+ 0x632f45b4, 0x9ccfcbec, 0x287ad060, 0x697b1f02,
+ 0xf5e155c3, 0x4b3fbcda, 0xe825393a, 0x965ec1ff,
+ 0x17f77cd3, 0x300858bd, 0x6cf92795, 0x9b11b191,
+ 0x62af7b52, 0x14cbd8dc, 0xf86effce, 0x7db2647a,
+ 0x42edbcc2, 0x67386962, 0x69781d17, 0xaf02a582,
+ 0x3e4cc898, 0x7ed70d8a, 0xbbc701cb, 0x92393791,
+ 0x81728ed2, 0x36207d48, 0x8cd4981e, 0x746bf560,
+ 0x9d129931, 0xca0562ab, 0xb611c895, 0xbbfb78ce,
+ 0x6ab7f092, 0x7682442a, 0x1a895d97, 0x1754945c,
+ 0x0326ffc2, 0x048a5c04, 0x0c1eb4c8, 0xd6231646,
+ 0xbdb50b64, 0x24eb6f38, 0xdc0bcc5e, 0x05fd561c,
+ 0xa1326b3c, 0x8a2b2dde, 0x3eb2761f, 0x08918cc7,
+ 0x99f8eb5f, 0x72d7553c, 0x03a96a22, 0x1d231649,
+ 0x528c9244, 0x2a93fe7d, 0x680942b4, 0xaafa9719,
+ 0xb1daa3b9, 0x705dec5b, 0x0dba5dcb, 0xbb5240cc,
+ 0x57b526fc, 0x4a044af0, 0x1b1bad83, 0xb0351978,
+ 0x0271fed3, 0x157f0b21, 0x7fe40200, 0xe39d7095,
+ 0x76abcb7c, 0xb1281f70, 0x801815c2, 0xeb7887b8,
+ 0xb0eebf33, 0x2fb59814, 0xbbb59426, 0x532e3385,
+ 0xdf6d3b10, 0x99d910b4, 0xfed28736, 0xd7ecfd92,
+ 0x79417d6c, 0x40fca289, 0xb0a4a2c8, 0xa6a640c1,
+ 0x9805b236, 0xb6056e3c, 0x7bb8672d, 0x1c659bc0,
+ 0xf028d52c, 0xb7382f2e, 0xfba27fee, 0xca5f0784,
+ 0x32cfba98, 0x1554962b, 0x29df19d0, 0x80e9a583,
+ 0xb62283de, 0x9def92f5, 0x4b4abe22, 0x83e86855,
+ 0x3b3995af, 0x28f8b243, 0x94084fe4, 0x1aa9170c,
+ 0x4c1d2746, 0xba08a33e, 0x5fb97a75, 0xfb1e84eb,
+ 0x48f4de86, 0x0a7e6b80, 0xce254170, 0x8d1303b1,
+ 0x0fdc0bc7, 0x6409029b, 0xc326538d, 0xf15c2622,
+ 0x8e15e907, 0xe7f0771b, 0x779a24c4, 0x1797c90e,
+ 0x0f86f991, 0xbf2725a2, 0x0119351c, 0x2377d08d,
+ 0x2a06101b, 0x1b2adb75, 0xc7480f30, 0xc57db4e2,
+ 0x3e87bef9, 0xa6cb78eb, 0x6220a048, 0x344d7ae5,
+ 0x93606d8d, 0xaf48370f, 0x6ad80fea, 0xc5ca57bb,
+ 0xa231ae1a, 0x32678fc6, 0xa2096dfe, 0x5576eca8,
+ 0xe482fb15, 0x022ad60f, 0xc62c71de, 0x8d3f98a6,
+ 0x2316510a, 0x0c140218, 0x61d18288, 0xbef73906,
+ 0xb1c88fca, 0xb07ecc87, 0x4b81d2aa, 0x76697353,
+ 0xd2aac2d6, 0xd678d02a, 0x3785098d, 0x651f9e0d,
+ 0x92d40e06, 0xbd55fe47, 0xd9f9e256, 0xd5c9af7d,
+ 0xfb213b1f, 0xeee981b7, 0x99d86138, 0x9823535e,
+ 0x73348159, 0xc3e8baf0, 0x481c627b, 0x382fe4c6,
+ 0x5ae779a7, 0x1f06fb44, 0xdc994d8e, 0x85981396,
+ 0xc4f10d52, 0x5a3b6a16, 0xc5535f55, 0x65e7f841,
+ 0x2b012276, 0x0cb8266d, 0xee9242ec, 0x01e79281,
+ 0x36ad3368, 0x5a76aca0, 0xb6c69a47, 0xb0de9732,
+ 0x86031993, 0xd8a949f3, 0x818d13ff, 0x30b618ba,
+ 0x0b41f5e8, 0x220ce2bf, 0x5c5033c2, 0x5eb2be40,
+ 0x6d86e9ca, 0xd9cab26e, 0x6e6a83c2, 0xfe20df66,
+ 0xb56eaa8f, 0xdeb4dfb8, 0x1e39e229, 0x37fa254e,
+ 0xea4d899b, 0x0d201062, 0x1ffcbc7e, 0x7950e245,
+ 0x11aa5c3a, 0xb040a745, 0xb8ebaf3b, 0x4c29509e,
+ 0x073250a2, 0x1da9f622, 0x6a4bda04, 0xd35893e8,
+ 0xcccfc85a, 0x21086f8b, 0x1c3e7485, 0x89534bf8,
+ 0x7be16a45, 0xca0715a5, 0x4302cf50, 0x51b80127,
+ 0xd60a0621, 0x34d2b035, 0xc030f24e, 0x088f8a8e,
+ 0xc0491916, 0x990334ff, 0x6ca3afda, 0x22ae33e3,
+ 0xab25beee, 0x2267dbd8, 0x4493a840, 0xecd18496,
+ 0xc5817a35, 0xd4d92168, 0xfb91c7fa, 0x85cb2d4f,
+ 0xa61770b6, 0x884e23d3, 0xa45c9d27, 0x99ba633f,
+ 0xbf2b6221, 0xebf2ca07, 0xab76708b, 0xbdbc4e8e,
+ 0xfb0b0ad1, 0xf95259f5, 0x7a8388f4, 0xfbe6fa8f,
+ 0x1565d771, 0x3037fb44, 0xb7617c7a, 0xdee2d11b,
+ 0xafea928a, 0x51771eb2, 0xe52285b2, 0x73b1d3ed,
+ 0xfd2a8803, 0x71fdb1fa, 0x89d3b8f5, 0x5bba7300,
+ 0xdebdc483, 0x3c30e40a, 0xb9a85c44, 0x777b756b,
+ 0xe903b1fe, 0xbc85d4cc, 0xc210d30a, 0x5c2e19e2,
+ 0x821cec4d, 0xb78619ee, 0xc8802a35, 0x751515a8,
+ 0x8fd2e06f, 0x8f3d1c77, 0xe1871e87, 0x59bcceda,
+ 0xf649cae8, 0x28a026b9, 0x15e5b3a6, 0xa523a2ef,
+ 0x54e3548a, 0x4d5a7e89, 0x4d22b821, 0xecf216d4,
+ 0xbdf0e7cb, 0xea7f44b2, 0x693f799e, 0xad54ef0f,
+ 0x3397b5e8, 0x4a601fcf, 0x90cafcb6, 0x37b68a82,
+ 0x6a1f4d54, 0x08bbf9d3, 0x02503ed3, 0x0209bbf2,
+ 0x9374cbba, 0x50ee498f, 0xfd26b0c8, 0x6a5f8c54,
+ 0x6cc59aa6, 0xfec94830, 0xbe99402f, 0x58b82d5e,
+ 0x4004af86, 0x0c79ad63, 0x6a59212f, 0x0e7778a6,
+ 0x6b02356d, 0xd7ffe560, 0x84eec5d8, 0x5f4a8f0e,
+ 0xab6823b3, 0x776dce06, 0xa7a8f9af, 0x08fe7b9b,
+ 0xd91bc4f1, 0x5ae6975d, 0xd08531ae, 0xe01ca804,
+ 0xf2fa5a51, 0x19ed0bcc, 0x19eda07f, 0xda47d729,
+ 0x426dbeb3, 0xfc91a8ae, 0xf6276359, 0xd7859616,
+ 0xc327c5ae, 0xa5f4d758, 0xfbf0c81e, 0x73ab2151,
+ 0x342d4877, 0x234037b9, 0xb72f3f59, 0x3cd06b80,
+ 0xf92d3d0c, 0x6a6adb48, 0xf03b4e8d, 0x14b6c0f7,
+ 0x2e697742, 0xe8a7d28b, 0x7894ed2c, 0x8f95d0d6,
+ 0x90c5111f, 0x4ea6ee64, 0x81910dfd, 0x317733fe,
+ 0x8bd6e4f2, 0x225e5c5f, 0x16e11bba, 0xd27b9401,
+ 0xf05c6f6e, 0x0b61ed99, 0x91659c1c, 0x32e9b9b5,
+ 0x45f08118, 0x2cd2074a, 0x1a673425, 0xe6b08df9,
+ 0xccedec3e, 0x388ad803, 0x03883f47, 0x294e960e,
+ 0x095186e7, 0xa2e37c06, 0x47a57eb6, 0x118d47c9,
+ 0x80468277, 0x0b874ee4, 0x769f4026, 0xe42563f5,
+ 0x250a8583, 0xe0bd7857, 0xbe9cccec, 0x0c512a2b,
+ 0xe54ffb00, 0x884de4b1, 0x6f7b0125, 0x8ad2076a,
+ 0xdf5932c6, 0x4e533861, 0x8e0965b3, 0xe5c56390,
+ 0x21764545, 0x606da180, 0xa1e6acd8, 0x12568eaf,
+ 0x5a03595a, 0x35ce7e4a, 0xa7ed542b, 0xb6bec35b,
+ 0xfb9db787, 0x56591449, 0xc673abec, 0xc529199d,
+ 0x3e409a8d, 0x620b6762, 0xe1121630, 0x641d6655,
+ 0xcf4246fa, 0x48b695e9, 0x40fc8d67, 0xc970eed4,
+ 0x4a8b149b, 0x0febfe26, 0xa4c1e834, 0xf7abee0e,
+ 0x83cd8531, 0xe85dfd17, 0x607ab40e, 0x1402398b,
+ 0x06263d81, 0xcf8086a9, 0x2c0b32e1, 0x98f2cfb1,
+ 0x204a9555, 0x6f303228, 0x5a5c2e02, 0x30ce8a24,
+ 0xefb8fd12, 0x83d4cca1, 0xa62b7246, 0xa3573938,
+ 0xabdad789, 0x375cea5b, 0x70e6fdef, 0x5c75b51b,
+ 0x5142b3dd, 0x45d9ed97, 0x62c53875, 0xa4d319d2,
+ 0xff0fd17d, 0xca5f75cd, 0x084eb7b6, 0x4b093a95,
+ 0xcc8a5c6d, 0x77a5d617, 0xfacff95c, 0x8f25ef6b,
+ 0x1c167f25, 0x6d59a3ef, 0x1dd0552e, 0x49cecc8a,
+ 0x12766378, 0x40a709b7, 0x6da4409d, 0x9365b7f1,
+ 0x2fb51b94, 0x34e3e872, 0xa9551d73, 0x2611eb28,
+ 0x688b4864, 0x9c60c81b, 0xd331e77a, 0xd8e9d96c,
+ 0xb193f1e3, 0xdc024170, 0xef17c2c9, 0xc6e93473,
+ 0x2cf37b07, 0x51861e11, 0x811bdd0a, 0xe64caa50,
+ 0x651d9358, 0x8d2fc170, 0x6c1458f9, 0x86c23e31,
+ 0x84e96ab6, 0xedc1dfee, 0x26b9f5df, 0x7a76d67c,
+ 0x2a1f9e90, 0x4ace672e, 0xa9170d21, 0xd6a70724,
+ 0x464c45a9, 0x23afb74a, 0x244a4e67, 0x9f49f35d,
+ 0x859dfe87, 0x23b638d5, 0x0a7915d7, 0x24693b5a,
+ 0x89642898, 0xfa54e0d0, 0x4827d5e0, 0x283bbd2c,
+ 0x2b1d24ed, 0x352f52f1, 0x3f6b3f2d, 0xbac4ad18,
+ 0xe47ad8ae, 0x7920e58f, 0x84126fde, 0x70c9e2bc,
+ 0x432e56c3, 0x05727033, 0x7c0baf74, 0xb65b0da9,
+ 0x5c0b85ae, 0x6ebba8bb, 0x0b510538, 0x17d5cc78,
+ 0xfa9a1328, 0x21a3a39a, 0x397c5702, 0x379b33d1,
+ 0x6ab13ac7, 0x6898216d, 0xd10e7fc4, 0x1993673d,
+ 0x8d51a0a6, 0x44f88ebd, 0x76a6706c, 0x5c745e9f,
+ 0xc838ecbb, 0x7e1e5b08, 0x4800c838, 0x9f17eb73,
+ 0xa6dd8e15, 0x0f986b08, 0x5012f5ae, 0x22fb1345,
+ 0x497eb5ab, 0xdeccd541, 0x6e18d847, 0xbafb05c4,
+ 0xc8815898, 0x5c55204c, 0x4e9f71d4, 0x63d824eb,
+ 0x3dce3f16, 0x203208c4, 0x2774d25c, 0xbc3d1bd2,
+ 0xf78afd97, 0x6ab636e9, 0x7f594e02, 0xaa5cd483,
+ 0x8a666ca1, 0xf5cf69d8, 0x57d7b663, 0x1a9480b7,
+ 0xd9f296aa, 0xa86106bc, 0x6b3324e9, 0x17017a58,
+ 0xa3ebd90d, 0x28b90859, 0x6f386d33, 0x36c09d11,
+ 0x61d51e5e, 0x19f3d44a, 0xc11d90cf, 0x78584b15,
+ 0x60c9ae16, 0x43563af1, 0x01e255a7, 0xffb45991,
+ 0x50f83e98, 0x29e9d365, 0xeda210e3, 0x35f08bd5,
+ 0x133655a2, 0x9b581fc5, 0x1c37f368, 0x10ec99ca,
+ 0xc978fcdb, 0xddc5c480, 0xd70fac0f, 0xaf4ba338,
+ 0xb762a6b5, 0x259ae10b, 0xedd7e5fa, 0xb7cebff1,
+ 0x62e161c2, 0xc39049be, 0x6b1d91b8, 0x01877387,
+ 0x04438b9e, 0x551dec6c, 0xe12e3e27, 0x0e2f5a34,
+ 0x0f41fcd5, 0x4408dc25, 0x9a7454ff, 0x64530a2a,
+ 0x151779c8, 0x97fc86e0, 0x1376755f, 0x762be945,
+ 0xa62e8987, 0x3ae4b0e3, 0xb08a647c, 0x4ec5a8a3,
+ 0xeea0e55f, 0x61427aca, 0x79db5d55, 0x632a4f9d,
+ 0x7868f074, 0x980720de, 0xf2e57ad3, 0xc0a6d755,
+ 0x4edcb25f, 0x26d33a5b, 0xf56557b6, 0x70764263,
+ 0xd4c7f546, 0x357e3012, 0x178aa2e8, 0xa62fb39d,
+ 0xddcbdc9a, 0xae4c18c6, 0x2b1978fd, 0x91576d92,
+ 0xe8b403e7, 0x459ee6a5, 0x083b2288, 0x288a3b9e,
+ 0x63a85704, 0x05db372a, 0x0a405391, 0xac148b3b,
+ 0x69e2bf69, 0xbfe4f506, 0xa5af64d4, 0xf3829a2d,
+ 0xdb922a60, 0x918f3387, 0xdd09f267, 0xe6b3e45c,
+ 0x229580e2, 0x1740f9b7, 0x63e8ecc9, 0x89edaeb6,
+ 0x1f898f37, 0x73a9d6ca, 0xf16c6cb9, 0x010ac646,
+ 0xd85984b8, 0x79373efe, 0xcea11305, 0xddf200f4,
+ 0xeccb238f, 0xe511b52f, 0x4fe080ec, 0x878420db,
+ 0x81d314d3, 0x848b5ded, 0xb757a66d, 0xbdd01bcb,
+ 0x1efce9c4, 0x6527ae2d, 0xa0b0d3a6, 0x6ba2faa1,
+ 0x61f5f27c, 0x32e0524d, 0x52f1ee1b, 0x41059595,
+ 0xbe3d8cf1, 0x18085d49, 0x2ca2c542, 0x358e8859,
+ 0xee5cdded, 0x9e6bd8af, 0x027ee4ae, 0xedeabe23,
+ 0xecced6b9, 0x29ecedbe, 0x1ce532ac, 0xe397c104,
+ 0xd135a120, 0xa54814b1, 0x14ae8434, 0x59b33404,
+ 0xc8c23eef, 0x9002e9cc, 0x89b795c6, 0x1fb7a8d3,
+ 0x21d67258, 0x96612b72, 0x79d416b6, 0xd8668aab,
+ 0x12e1e7d2, 0x31953412, 0xd34a3efc, 0x87ddccb2,
+ 0x51bda328, 0xede2163b, 0xe878cef8, 0x861a7320,
+ 0xfc9b715e, 0x9aa47c2d, 0x3f2d99a3, 0x17f351e5,
+ 0x4c633268, 0x224deb7d, 0xf4c80b7c, 0x82575a27,
+ 0x0f33dd3f, 0x4d4c8d13, 0x8d7e15a4, 0xbeb9f234,
+ 0xac2bf51b, 0x283b81b9, 0x35fa9d51, 0xa58ce501,
+ 0xd87736bc, 0xd5c99c93, 0xddcf1559, 0xfade7cb9,
+ 0x7f65151d, 0x16f0721e, 0x77462cfd, 0x5f1497bc,
+ 0x7d9f07ab, 0x72595eed, 0x780e191e, 0xae31129a,
+ 0x0b09d91e, 0xe4cd5c89, 0xe6b037a9, 0x7158ff60,
+ 0x2b394758, 0xb2175e78, 0xfd129bd8, 0xeac7b5a0,
+ 0x6312d772, 0x7ea2119f, 0xae09544e, 0xfaedf2b5,
+ 0x8a949887, 0xe3742e45, 0x075fc968, 0x0d43f6c4,
+ 0xc4c2466c, 0x4ba7af2f, 0x3cc5446a, 0xc2e87cdf,
+ 0x3568c951, 0x22059762, 0x27fe9c91, 0x4ec94958,
+ 0x0948b4bf, 0x2ee1ddb7, 0xcd669f99, 0x5447070c,
+ 0xbcc04a8f, 0xd59f2f65, 0x3c61b752, 0xc53548e0,
+ 0xa5347af1, 0xfd8e21e2, 0x6ea18c85, 0x6bc0ea47,
+ 0x406af654, 0x6680a87e, 0x4594eb83, 0x3736d113,
+ 0xff75ebfa, 0xc283a0c9, 0x30fdc02c, 0x4ad413f5,
+ 0x1168b9f6, 0xa6a74149, 0x109a81c1, 0x0a203996,
+ 0xad96b12c, 0x2c351783, 0x31290cf1, 0x26a313e7,
+ 0x2d79aa22, 0xccb4efa1, 0xd3536b7c, 0x927dc8b6,
+ 0x81642186, 0x63715a7f, 0x31a1462e, 0xf88df170,
+ 0xfd4e9618, 0xe8f76cb5, 0x601934e7, 0xe703c7ee,
+ 0xb3121c92, 0xd7ab4739, 0x3a5a8781, 0xa1e2cc74,
+ 0x1b4664a1, 0xa3bf6d4c, 0xa38a918d, 0x333af7fe,
+ 0x8796e366, 0xb4d964b4, 0x36862242, 0xfb03e488,
+ 0x57ae22ac, 0x1b2917e0, 0x095ba4f3, 0x77225ce3,
+ 0x95a615e3, 0x3a405d3f, 0x540344ed, 0xcf0fb4f7,
+ 0x7dd639f5, 0x54920f80, 0x1f974d25, 0x5a2b925a,
+ 0x96d1040b, 0xc4c86188, 0x326406f1, 0xa9cc6593,
+ 0x7c3acdca, 0xdc0dc158, 0x03a211d4, 0xb6a8cd3a,
+ 0xd396387c, 0x8041c158, 0x0abb174f, 0x3d5d53cb,
+ 0x6ae0ae00, 0xe4e814a0, 0xbeae7023, 0x0d89b28d,
+ 0x941f1032, 0x4e36e593, 0x1b7d9420, 0xba4641d1,
+ 0x1ce691c4, 0x425a0353, 0x79e8358d, 0x6b308b9a,
+ 0xbc82e1ee, 0xfddc2391, 0x9772070e, 0xa55de228,
+ 0x75f35f16, 0x9a7f5ac9, 0xc74328c3, 0x15f624d2,
+ 0x3b8bad64, 0x9603a99d, 0x0e6331a2, 0x0d6a8071,
+ 0xd6452f4e, 0xbe4b4421, 0x6af26b98, 0x2f0d09d9,
+ 0x5857e60e, 0x61568954, 0x233f2e07, 0xaf50e307,
+ 0x703295e3, 0xb9cfc0a7, 0x83cbce02, 0x384ff1c3,
+ 0x0bcbd690, 0xd36f3716, 0x261d9c35, 0xe746d986,
+ 0x4df8db91, 0x49b3a981, 0x26f83690, 0x03d63279,
+ 0x94df7e92, 0x038dbc18, 0x4185674d, 0x35e6ad17,
+ 0xf981bb19, 0xf345f071, 0xad25bdf4, 0x380676a5,
+ 0x8e6856e7, 0x3c9db238, 0x0c4630fb, 0xd6c48ac6,
+ 0x94723706, 0x7672325a, 0x684a8b77, 0x7274fa4f,
+ 0xe6569c06, 0x8a4933e9, 0x9b0804ef, 0x03330a78,
+ 0xb3e1b166, 0x2337391c, 0x11346ba8, 0x687276ec,
+ 0x538d7fb9, 0x10d9b0cc, 0x4dbd11b0, 0xaabf12ee,
+ 0x0bf8ee48, 0x362e140a, 0x109f8f7f, 0xde2986c7,
+ 0x02f2fb3e, 0xe3160753, 0x25a50bd1, 0x807e9654,
+ 0x057c6b4c, 0x7a6eb29f, 0xc5d9a9a4, 0x3ecba6bb,
+ 0x9cb18e85, 0x0344940d, 0x708c7b90, 0xd8375fcb,
+ 0x36151be9, 0xf1e34368, 0xb4abafc8, 0xe9d90485,
+ 0xc2f61317, 0xc2eb0f53, 0x2a8620b6, 0x50ede275,
+ 0x07371694, 0x8204ea66, 0xb78b70f1, 0x757067f0,
+ 0x1ffeafee, 0xa2306368, 0xe5eadfb8, 0xc28ee5c6,
+ 0xb5620fcb, 0x6fd00771, 0xaf36ce1b, 0x9fbf999d,
+ 0xa20999e7, 0x0a5ea119, 0xf563a582, 0x06fb985c,
+ 0x29534d59, 0xe7fb575e, 0x06bb9bff, 0x40bed6ab,
+ 0x5c22ef4e, 0xb662605f, 0x56c6612b, 0x7709f0b2,
+ 0x3d99f203, 0xc9954f0b, 0x0177d29a, 0x787d232e,
+ 0x210c0a3d, 0xfd4ee781, 0x00da0579, 0x61df5388,
+ 0x29156932, 0x4ad5141e, 0x69a504cc, 0xdbde5849,
+ 0xaa2b4836, 0x838aabc1, 0x678c3aca, 0xd05f37fc,
+ 0x079c38c4, 0x6a673153, 0x252d7bdd, 0xaf4e523e,
+ 0x442cd80e, 0x4ee8da68, 0x6b0341d1, 0x065e1da2,
+ 0x25fe25f5, 0xbf3241b7, 0x3f014040, 0x4f88928e,
+ 0xfeb7fd97, 0xc953054c, 0xf5758a32, 0xa3d45bce,
+ 0x0f450249, 0x77954633, 0xcd3a074e, 0x913cd9d6,
+ 0x4d24b7fd, 0x9c426986, 0x90164c9b, 0x1aecccaa,
+ 0xe2e81ccd, 0x1db0b130, 0x08ff97de, 0x5cbe5455,
+ 0x2ce36ab7, 0x1ee784e9, 0x899fb86f, 0x9b89511d,
+ 0x053e1673, 0xff210754, 0x033d2639, 0x5c361df5,
+ 0x337a95d9, 0xd135bb80, 0xe5a2f8f3, 0xd35239d4,
+ 0xcfbb987c, 0xddfb29db, 0x42efff26, 0x0ce3fb52,
+ 0xafcbc601, 0xa85fb67b, 0x50540153, 0x470a92ae,
+ 0x5720bb24, 0xa93e677c, 0x7dbd2d60, 0x4b9992eb,
+ 0xc0c81b82, 0x188bec4f, 0xf01c36f1, 0x4294e9b5,
+ 0x2cb9a37e, 0xc8b03e84, 0xa5c63116, 0x7c4fbe38,
+ 0x0525cbae, 0x99577296, 0xd6b16604, 0x3d6cc3db,
+ 0x1d98f615, 0xc5c8522e, 0x3aeb8134, 0x7d628433,
+ 0x95cf53ea, 0x97ec7df7, 0xc77b8966, 0xd1a15401,
+ 0x4664c21e, 0xeded479a, 0x4822da2c, 0xc198bb96,
+ 0x8ad2d4e3, 0x0c3c5311, 0x3d58ea9b, 0xf58051fe,
+ 0xdb0c1886, 0xb2b167f0, 0xde971158, 0x1dbfc236,
+ 0x3802142d, 0x893f6d64, 0xcb1a4a4b, 0xcd0c5335,
+ 0xd48773e8, 0x9093f2b2, 0x59f4cdf9, 0x02182dae,
+ 0x1d78d610, 0x030a689a, 0x5c5ff561, 0xdecd1261,
+ 0x3aa1ae39, 0x7dc58609, 0x81ee7412, 0xb00229fc,
+ 0x415d0312, 0xdfbd3c4d, 0x36611f2f, 0x37e91411,
+ 0x2085572b, 0x11589fdf, 0xf9e04555, 0x5b020432,
+ 0x5aef16d9, 0x368c5efb, 0x3eb9a776, 0xcc81a840,
+ 0x744531ed, 0xcae9fe81, 0x2741665e, 0xdcfe6725,
+ 0x4545c2cc, 0x333cd69b, 0x2a5d87dc, 0xcbaf91a9,
+ 0x4c48fbcf, 0x1b206188, 0x7cfe676a, 0xba7cdafc,
+ 0x8e824a1f, 0x5bde2471, 0x1fe8b793, 0xb616b31f,
+ 0x0b42b7b3, 0xdededee8, 0x0a3a2a5f, 0xba4093f8,
+ 0x525d154c, 0x4dd07872, 0xa3f445a2, 0xfbf0fc5d,
+ 0x1347dc1a, 0xfe7753b8, 0x968a1335, 0x0056ac5f,
+ 0x388dcfde, 0xfb1f4cdb, 0x9e4607db, 0x0820af26,
+ 0x051c5371, 0x1095264f, 0x60002a33, 0xf2df08cb,
+ 0xdbb1ea48, 0x0765a888, 0x01056ddf, 0xca2c2036,
+ 0x0ff34cef, 0x2d66bb9a, 0xedf0d73e, 0x6bf2bc43,
+ 0xaf889ffd, 0xffabb752, 0x0204d224, 0x6d24bc8d,
+ 0xa4520453, 0xe214374b, 0x629ed991, 0x836ce84b,
+ 0x7636a7cf, 0xf1c94c81, 0xc75ea049, 0x53e875ea,
+ 0x59e4fab2, 0x6dbf49e0, 0x8fd7f995, 0x6fa712b5,
+ 0x77b53f76, 0xc3554d12, 0x280e0877, 0x72246789,
+ 0x378257ce, 0x73d359cf, 0x2d5ea417, 0x82c4d3aa,
+ 0x24101650, 0xe7adc8bd, 0xe074e4e9, 0x081fdb30,
+ 0xba5f593e, 0x43e3da0b, 0x82befd35, 0x12261903,
+ 0xcc73ba61, 0x3316f440, 0xcad9e1a9, 0x9922b74a,
+ 0xa8ca9b4e, 0x3b9dc087, 0x24e6a2d5, 0x04b031fe,
+ 0xafac80e0, 0x9fb52cf5, 0x8997d60e, 0x50ae7abc,
+ 0xc90d7d09, 0x5a8350b2, 0x622b4dac, 0xab75d772,
+ 0xad99ed29, 0x1f1594da, 0x71aa2ad1, 0x8511c0d5,
+ 0x880b1db5, 0x2d6f9d0c, 0xc59483a4, 0x7ed5b2db,
+ 0x0ad7e43a, 0xd7d3add6, 0x51c23d4b, 0x1fbed1af,
+ 0x0a7d6890, 0x857da084, 0x6bca8ee7, 0xa86af668,
+ 0xeea3646b, 0x34e3a044, 0x1b798580, 0x93988bcc,
+ 0x3cf50e60, 0xa769cba4, 0x12e3309d, 0x16eb2811,
+ 0x44ce514d, 0x36072ddc, 0x7f5b60df, 0xb3834b85,
+ 0xe78ee22e, 0xb389c816, 0x0fce5025, 0xa34eff4c,
+ 0x23a1b542, 0x1c3c7736, 0x328d35de, 0xa5643a06,
+ 0x503107ca, 0x6dad558e, 0x44e08e35, 0x2107fb1a,
+ 0x62103e9a, 0xafa6ba2b, 0x349c6729, 0x7d3a077e,
+ 0x61648e3d, 0xbefc4681, 0x45aec9bf, 0x8c8e3e89,
+ 0x8c50f506, 0x7ac24dad, 0xc124b58e, 0x8a6e9d08,
+ 0x20448106, 0xa0e695f1, 0xb151965b, 0x7a73557f,
+ 0xb1b33ff2, 0xc0100a27, 0xf6add1c6, 0xd17eef16,
+ 0xb7923446, 0x36771aa7, 0xf25f68c8, 0xadbcee46,
+ 0x99c28944, 0xcda56ec4, 0x887ca30b, 0xe14b748e,
+ 0x5f312beb, 0xee80c1b3, 0x403e83ab, 0xa2d82322,
+ 0x02ba184e, 0x59550b83, 0xe5c300c1, 0xcda4bc89,
+ 0x896b6443, 0x310f4da9, 0x8faa7d51, 0x023863f0,
+ 0x86982d5f, 0x913e6f47, 0xc90ea280, 0x97960365,
+ 0xc021c058, 0x86c0ad06, 0xdc6d7a9a, 0xe98bd4ed,
+ 0xec3d3885, 0xf4a0deb5, 0xa338b4d3, 0x8867ef20,
+ 0x29f43403, 0x55be8fc9, 0x248fa311, 0x380f0f02,
+ 0x0f4e6b1d, 0x26af994a, 0xcad8f11a, 0x92b4610f,
+ 0xb839f02d, 0xd99ddbc8, 0x42148c97, 0x5af73ad4,
+ 0x1a10a9ab, 0x7d8b7747, 0xad6ca358, 0x6725062b,
+ 0x2e83681b, 0xd3af30e7, 0xdfac83d0, 0x18c8ee4b,
+ 0x38135ee1, 0x6c9a4b13, 0x745fa6e5, 0xed4dd682,
+ 0xe0c92e55, 0xde5aff36, 0xce84ec0e, 0x217bf7df,
+ 0xb47b33c2, 0x93c338b0, 0x87a46186, 0x8ebd471c,
+ 0x0e336416, 0x4edf9347, 0x7b359cba, 0xa9f2ecbc,
+ 0x424a48f8, 0x4163e289, 0x2042a8de, 0x02ff7371,
+ 0x1be091f0, 0x059178d1, 0xa3a77688, 0xc1989324,
+ 0x2865a935, 0x55d59c2c, 0xbb26908f, 0xe7df8346,
+ 0x0e2c320d, 0xc2addecf, 0x7a656d2e, 0xad7f4f21,
+ 0x96eb6f1a, 0x8449f270, 0x9b912e1e, 0x2c419a70,
+ 0xe020087c, 0xe0a27243, 0x7bca5f3a, 0x9286097e,
+ 0x6adbdadc, 0xceaebb83, 0xe74e7bcf, 0x5ceb5da1,
+ 0x50d85c0a, 0x92264376, 0x7ae833d6, 0x756b103b,
+ 0x5d671ffb, 0x535dd7e2, 0x9e8125e5, 0x94c79e63,
+ 0x1ece3faf, 0xfac2f731, 0x9aed2ef6, 0xe4cb81a5,
+ 0x0939fddc, 0x0a243b68, 0x5291605e, 0x2ce511c0,
+ 0x9609b4e2, 0x82c5a9d4, 0x6eb1f134, 0x19c2fc67,
+ 0x654b5558, 0xeeff82ee, 0x26234d57, 0xf12df7b3,
+ 0x0b745fe7, 0x1b278120, 0xca9c0321, 0xd95e4f27,
+ 0xf1160ead, 0xa88c9592, 0x6ff39abc, 0xc0810dde,
+ 0x6990548e, 0xf95f677b, 0x4acd69c4, 0xfe86927e,
+ 0x745995ad, 0x9ff5da5d, 0xc3e344b4, 0x41dac048,
+ 0x91604908, 0x2e3e0813, 0xe7c069d7, 0xacc1c912,
+ 0x72af0ead, 0x0edcb49f, 0x9fec8dba, 0xb1b8eb92,
+ 0x53b9cf17, 0x08a61abd, 0xe08b48a7, 0x99020207,
+ 0xed400e68, 0x84b31e8a, 0x7e047e33, 0x88618ea6,
+ 0x28eb6380, 0x335341c3, 0x9948744f, 0xd1f1555c,
+ 0xe3d1718f, 0x1121a006, 0xc0ce8e25, 0xc5abd11f,
+ 0x66ddc911, 0xd5d7daa4, 0xfcecaeed, 0x782d171b,
+ 0xf33c430f, 0x8ea1c843, 0x5a2faf64, 0x14423708,
+ 0x1e21d21b, 0x3441d442, 0xb77b5bd4, 0x8e1a987f,
+ 0xbb8ca78c, 0xd6e4f1e2, 0x9a235eb7, 0x4706be43,
+ 0x0e4e4a37, 0x2559bbd9, 0x828515cf, 0x3f2029f2,
+ 0x27fbb870, 0x77b645a2, 0x26d5d8d2, 0x10952a19,
+ 0xed4fa283, 0x4b6e80db, 0x62de67d6, 0x259c1179,
+ 0x8464a228, 0x47569f25, 0x37386538, 0x63420827,
+ 0xada11d29, 0x2d9d6208, 0x6f2545c6, 0xbcfe5b5f,
+ 0x540a2c1c, 0xd53491d2, 0x1c445feb, 0x22b9ca4d,
+ 0x7502bd96, 0xf4c4e79c, 0xcf3e4ce7, 0x4abf7e4d,
+ 0x878cb9cc, 0x3d538740, 0x51d5c94b, 0x9fb4d91d,
+ 0xf8820147, 0x664376e5, 0xf4bbbc5c, 0x20cde3a6,
+ 0xb1faee0b, 0x2997e271, 0xad9d3e02, 0x306f81c2,
+ 0x9c20178c, 0xf79e57db, 0x828af3c2, 0x229d2181,
+ 0x3aaceaa7, 0x32e6b551, 0xfa3cd28c, 0x51a7141c,
+ 0x652e944e, 0xa03bc7a8, 0xd7b649f9, 0xf1c28fe7,
+ 0x854a9789, 0x57b05eed, 0xb69be3de, 0xab0c8ced,
+ 0x096c522a, 0x4009e6cf, 0x5e0c610d, 0xee994848,
+ 0x09c5d492, 0x5029823d, 0xfc1bc29c, 0x03bf3586,
+ 0x1d72a9ac, 0x87db4a65, 0x22ee4296, 0xfd682d29,
+ 0x25235455, 0xddb31b51, 0xc3d7b30d, 0x34fd9c21,
+ 0xee44b970, 0xbfb3969a, 0x32bd7d7c, 0x377e2347,
+ 0x05642393, 0xa06768c1, 0x59907071, 0x3c2b606a,
+ 0x0442c4e0, 0xac10c021, 0xb2b71411, 0xdc944099,
+ 0x66fae366, 0xfa8abb6a, 0x46c2d13d, 0xc9d1351f,
+ 0xbd6a38d6, 0xef921e5a, 0x92e71482, 0x7b724217,
+ 0xb82457ea, 0x6c8717d1, 0x36e6ea8a, 0x0b9639c3,
+ 0x1d1591b4, 0xa317dc1c, 0x56b583e5, 0x6b552739,
+ 0x9e2cb656, 0xd3ad90da, 0x8fa0402c, 0x8a9262b0,
+ 0x6efbb731, 0x7ef631a0, 0x6405c99a, 0x1e79a409,
+ 0x8ca97586, 0x71dad014, 0xa7130e9c, 0x0d41d7fa,
+ 0xb3b9eadf, 0x758c798f, 0x5ae65923, 0x4e076c66,
+ 0xb959a579, 0xfc6c7a29, 0x25d7809b, 0xdf801923,
+ 0x8241ba5a, 0xed30896b, 0xbfb3d6fa, 0x9393b903,
+ 0x9bb1e72c, 0xf47120d1, 0x04022d4c, 0xe93f8354,
+ 0x33048d1c, 0x24972eb3, 0xbf73a202, 0x5a9d2ac5,
+ 0xa61faa62, 0xad34ca68, 0x914cc91a, 0x8de59417,
+ 0xef9146a7, 0xd3c1220e, 0x3f92be66, 0x452c6f6f,
+ 0xa479ce15, 0x409c8c3b, 0xf9f21fa1, 0x8a0e8fb1,
+ 0xe863071e, 0x972e47ab, 0xc7b911d0, 0x7ed74c7f,
+ 0x081b2960, 0xdb4647fc, 0x2fcb0111, 0x3ee02771,
+ 0x5484dd39, 0x9be0189e, 0xba719c44, 0x226510c1,
+ 0x3bc538ee, 0xa1f2308e, 0x98c3a530, 0x23c6e9bd,
+ 0x7810ff49, 0x91003636, 0x997c792b, 0x5af23f55,
+ 0xe2743106, 0x64b05fcd, 0x03c0f1ba, 0x60a0bbbb,
+ 0x4ad57b9e, 0x4c94bbe3, 0xa46c58a7, 0x06a78645,
+ 0x123ed45b, 0x58b23991, 0x3eb26259, 0xb89907b2,
+ 0x219aef23, 0x56a105b5, 0xaed151ed, 0x20eddc82,
+ 0x1540d1fe, 0x53e10de5, 0x01e21dcb, 0x56714020,
+ 0x9f8c6c6e, 0xf7f0334e, 0xea0610b6, 0x2dcabc81,
+ 0x9546d98f, 0xc7e56f57, 0xdbf24f07, 0xf4cc07d7,
+ 0xca031558, 0x1bc7c1fc, 0x0518c2cf, 0xa85182cb,
+ 0x9a1b3669, 0xbe2bec14, 0xf6d3f32d, 0x8160e6a5,
+ 0x230bc7c5, 0x8b02fa5d, 0xfa8f3322, 0x8a163219,
+ 0x71eda011, 0x17d776f6, 0xd7483b82, 0x7ec32be0,
+ 0xac4c62fc, 0xde5a7903, 0x49f15f84, 0xd47e655b,
+ 0x2e4a43be, 0xdeaf778a, 0x9db31536, 0xd90072ba,
+ 0x41454e67, 0x651cf912, 0xabb64c69, 0x4681e722,
+ 0x6141578f, 0x6850f358, 0x436f5bce, 0x1ef2f0d1,
+ 0x353de71b, 0x3fd02d7b, 0x8749bf39, 0x8b0aa0d9,
+ 0x045028a1, 0x1e87b664, 0xaf7773ee, 0xc839d251,
+ 0x4e1a5254, 0x191f66cb, 0xa8c36df2, 0xa3cd7287,
+ 0xa97f822c, 0x6ff7f816, 0x897ae21d, 0x70a0b4f8,
+ 0xb44342ab, 0x0302912c, 0xad63c61f, 0xa3c210e3,
+ 0x0d007694, 0x1369e611, 0xa8426d34, 0x81fd13a5,
+ 0x0f0d26fc, 0x5a99c754, 0xbc858522, 0xb0dbc0ef,
+ 0xa49c99b9, 0xc29efc7d, 0xe4bd5615, 0x3fb84927,
+ 0x31a83d75, 0x405b415d, 0xe4eb3d76, 0xdfd4a294,
+ 0x070756cc, 0x8ddea308, 0x97099f7d, 0x5e55ffe3,
+ 0x3151d0a8, 0x9c1e5ac7, 0x91df96d6, 0xa7513563,
+ 0x8029ad7e, 0xb9108b6c, 0x58f7972b, 0x8f0485a7,
+ 0xdca04b74, 0x2d3450d3, 0xaaccbd6d, 0x24e2a510,
+ 0x6d176309, 0x5c32a471, 0xa5ecbfa9, 0x160bc973,
+ 0x7762485f, 0x5a5297c8, 0x4d23a857, 0xeb3ea778,
+ 0x4e604026, 0xd9ef9815, 0x08b45c13, 0xd3d66b48,
+ 0x1bab98ef, 0x4c74e20c, 0x5d0e696a, 0xf13a5ea6,
+ 0x9df66352, 0x4eb1fe10, 0x3ad957d8, 0x4629d594,
+ 0x562f1652, 0x7d0b2ae7, 0x237b7d3e, 0x63b6f4df,
+ 0x0501adcb, 0x29da8648, 0xd021557d, 0xb6d77aa3,
+ 0x689ae7e4, 0x15c76c4c, 0x876a74bb, 0xa22a220a,
+ 0x5164f2cf, 0x1a1db5e5, 0x8d6586d7, 0xdc8ddc0e,
+ 0x591ba995, 0xd70d7b2b, 0xa83c00c4, 0x4b570ea9,
+ 0xc5b6d1f6, 0xaafc8008, 0x31fd31da, 0x99302c5e,
+ 0x01f89c9e, 0xb4479306, 0xcc5b2166, 0xccd99886,
+ 0xceb7535d, 0x25300a3b, 0x98a56517, 0x294f1fba,
+ 0x4a7b01a6, 0x22bbb61d, 0xaf3cb6d9, 0x01261e53,
+ 0x9b81fa24, 0xa291b08a, 0x6ab9c3bb, 0x1d064e6d,
+ 0x3a1d7b5f, 0x2529fc13, 0x069a4b56, 0x907a0d2b,
+ 0xc7103a93, 0x8ae3a58a, 0x54b2799b, 0xc2c34494,
+ 0x2d2137d7, 0xdf743fb1, 0xc1f89371, 0xde425fa9,
+ 0xde395a6c, 0xb03e26f1, 0xea22c357, 0xe7f79c82,
+ 0x2e8ac5f8, 0x3aad0824, 0xb7a25fe0, 0x32211cf6,
+ 0x02b1bc47, 0xb34e7f16, 0x9aa49c6a, 0x3964c703,
+ 0xcc64fa69, 0xb1ea15d7, 0x58ffb926, 0x62d3a065,
+ 0x7ed38e16, 0x52374f1c, 0xded4e7d4, 0x5d86e726,
+ 0x8657d2fb, 0xc6e57b34, 0x32ff10b6, 0x0f72e6da,
+ 0x08f61fa0, 0x6634094a, 0x2b18ce7d, 0x1eccb35e,
+ 0xb442d5ad, 0xb208f3ff, 0xfbf2ea9d, 0xac9bfad6,
+ 0xb929177f, 0x2c19ae54, 0x37e3e885, 0xfc4b0f84,
+ 0xd1936956, 0x63aff22c, 0x7bbf6cf8, 0xa14a8ea7,
+ 0xdc6a8011, 0x3d0f0706, 0x24c733a8, 0x88f0fe3f,
+ 0x93bffe78, 0x38aef62c, 0x67884d8c, 0x45285a48,
+ 0xef5d3a00, 0x55b1d1e8, 0xa85c67cb, 0x75ec4fcf,
+ 0x9831feb7, 0x9008daf5, 0xb499159f, 0x4ea352b9,
+ 0x51c11b7f, 0xbb7b2e36, 0xa0073506, 0xe45dc699,
+ 0xb30e13d5, 0x0bee1386, 0x87896afd, 0x325ac801,
+ 0xcea825ed, 0x4d11813e, 0xbed0963f, 0x122989fa,
+ 0x943dabb8, 0x09a9107f, 0x7ebd0ee2, 0xb700e930,
+ 0x17d1b005, 0x99e53e42, 0xd3ac9dd0, 0x38eb85d3,
+ 0xee9e83a0, 0x0cf8294f, 0x6e3d257f, 0x727a75bc,
+ 0x5c616c32, 0xe2c8e043, 0x93157721, 0x72601ea7,
+ 0x09b155f3, 0x192285f2, 0xb6b76a9a, 0xad391c9b,
+ 0x2f94db2e, 0x784e2351, 0x024be4bb, 0x6a447890,
+ 0x317bf91f, 0x977296b2, 0xac67125f, 0x29d0ccf8,
+ 0xa2cb6c84, 0x97822a3a, 0xae1e0cf6, 0x67a4b7d8,
+ 0x1f2f7e51, 0x657808e0, 0xa42f952a, 0x8d3d9675,
+ 0x8847b11b, 0xb3ed7513, 0xf7031394, 0xc9a93867,
+ 0x0295c9e3, 0xecb5425f, 0xd33933b5, 0xac6c8965,
+ 0x2326998d, 0xc1fd098b, 0x6414e747, 0xfb3397c0,
+ 0xfefb8cfa, 0x7da58b89, 0x47a24ce7, 0x9f1fc24f,
+ 0x9ae380c8, 0xb7b53a97, 0xd68a6278, 0xa0e26f8a,
+ 0x89a1a592, 0x75f46f7a, 0x101db87d, 0x09eade81,
+ 0xfd44ffa4, 0x3e386e05, 0x4c7bd47c, 0x01a48221,
+ 0x01cec4d0, 0x653631eb, 0x074ebb8b, 0x644a4dbb,
+ 0xcb41fe15, 0xce67a253, 0x7caee48e, 0x30866701,
+ 0xaf7d47da, 0xb44de77e, 0x8b22e9f6, 0xef7ac506,
+ 0x808e9c5b, 0x1b61051e, 0x07276826, 0x1a591171,
+ 0x3bcb4676, 0x17d1f220, 0xa944ae4d, 0xda715839,
+ 0x2c17e654, 0x710fb94a, 0x36952065, 0x857cb5b3,
+ 0x0b0bd111, 0x5602e5c9, 0x5a1f5247, 0x2f011644,
+ 0xb642806d, 0xfa424545, 0xa3fef077, 0x273a98ce,
+ 0x4e4af740, 0x76d4c2ab, 0x7d646acd, 0x363363ca,
+ 0x67a47feb, 0x5f42144b, 0x15aeabd7, 0x062365b9,
+ 0x983a0b99, 0x3af5e603, 0x3cecf3a5, 0x3f950cb4,
+ 0x0a47d85c, 0x01da93bf, 0x282ea589, 0x42bd8459,
+ 0x953ed9e9, 0xbf7bb6a3, 0xcff79f09, 0x8600b807,
+ 0xcbf1cd20, 0x2edbbbcf, 0x3da50deb, 0x362fb833,
+ 0xca9afb28, 0xb7b53b01, 0xeaefbfcf, 0xd100447f,
+ 0x8f10add3, 0xf35625e3, 0x417ee7a9, 0x38539592,
+ 0x6326103d, 0x3fe9bd63, 0xc464b4bb, 0x7ff21fcc,
+ 0x3bd86879, 0x2db532ca, 0xff02411d, 0x95d6cf84,
+ 0xd3a60383, 0x69baf8c6, 0xefd478dd, 0xaf95b198,
+ 0x152af950, 0x03c56620, 0x97152861, 0xb797015d,
+ 0xbef0e659, 0xd63d4202, 0xaf274d9b, 0x5d75a0b2,
+ 0x4eebf272, 0x19a85adb, 0x822eb4dd, 0x2a718896,
+ 0x84e330b4, 0x39e48464, 0x178df644, 0x82635c19,
+ 0xb12deedd, 0x182eafd9, 0xd630bd7f, 0xdb23c22a,
+ 0x09d83b0d, 0x302598ec, 0x3fd1411a, 0xa84928ef,
+ 0x2130239c, 0x9ca274c0, 0x8ff2b8e7, 0x7ff4add0,
+ 0x0df7cd23, 0x5de89567, 0xead66811, 0xc7b48b3c,
+ 0xc9001dad, 0xd0b5eef3, 0x8209952f, 0x57debb9f,
+ 0x933a73dc, 0xeb2b3eb2, 0xaf34bb7d, 0xff3c32f1,
+ 0xbca9c9f6, 0xa60099f6, 0x0bab4794, 0xfa553ef0,
+ 0x9b471628, 0x7e507e48, 0xfb874049, 0xefd10106,
+ 0x1065c827, 0x1a69146a, 0xde8688b7, 0x848c9ee8,
+ 0x3c07cdf2, 0x704b1409, 0xa52722a8, 0x2888f882,
+ 0x0ae1f771, 0xb6462b6c, 0x7dfe13f8, 0x02266df7,
+ 0x43554d04, 0x766a1b9e, 0xb5d77a96, 0xa7b003e8,
+ 0xd93de001, 0xd8945c6d, 0xc8572311, 0x12fe0b8e,
+ 0x61748ccc, 0x62c5c1fb, 0x6c883898, 0xa7466ca1,
+ 0xad310602, 0xff29fb70, 0x95175f5f, 0xe862a707,
+ 0x2baa6734, 0xd7d196d3, 0x4caf2aa1, 0x6b3bc1d3,
+ 0xddd758f1, 0x7a31b117, 0x1da947d8, 0x8eab1276,
diff --git a/src/cpu/intel/model_206ax/microcode-M12306A9_00000016.h b/src/cpu/intel/model_206ax/microcode-M12306A9_00000016.h
new file mode 100644
index 0000000..e47f7f4
--- /dev/null
+++ b/src/cpu/intel/model_206ax/microcode-M12306A9_00000016.h
@@ -0,0 +1,2816 @@
+0x000000001,
+0x000000016,
+0x010302012,
+0x0000306a9,
+0x06d587ade,
+0x000000001,
+0x000000012,
+0x000002bd0,
+0x000002c00,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x0000000a1,
+0x000020001,
+0x000000016,
+0x000000000,
+0x000000000,
+0x020121027,
+0x000000a41,
+0x000000001,
+0x0000306a9,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x0aab89ecc,
+0x03db1fa17,
+0x0b37444c6,
+0x0a89dcc17,
+0x0114aa102,
+0x0e12d53e6,
+0x03e71976d,
+0x08cefadab,
+0x05a3401db,
+0x042caecce,
+0x0b4d8e75e,
+0x0e6dbaf24,
+0x07861b35f,
+0x06bd717bc,
+0x023b9b731,
+0x082ec1ac8,
+0x020337b64,
+0x05396dbf1,
+0x059973bff,
+0x0724bc7e9,
+0x05237193b,
+0x00b8647c1,
+0x06a0d0e16,
+0x0bf9ddb5b,
+0x0ace2cc1c,
+0x0ad707638,
+0x0056f102f,
+0x0a37e60f8,
+0x076255642,
+0x0fb86e030,
+0x0b8069a40,
+0x0367795f1,
+0x0653fb05e,
+0x0ab7f14ad,
+0x0b6e8a8e1,
+0x0d2598d20,
+0x02eba3f68,
+0x078b372f1,
+0x0ba8d13f8,
+0x01f1de861,
+0x097f951d5,
+0x08097c728,
+0x027dbf904,
+0x0b97906a8,
+0x0ffe7a4ac,
+0x04b947668,
+0x0c1dbd726,
+0x02adcf777,
+0x063b1bcf0,
+0x0818e2a1b,
+0x049aa907b,
+0x02faf5e8d,
+0x0ae842352,
+0x082707fae,
+0x00aa12b41,
+0x0a0bae11c,
+0x0b4298c47,
+0x0d2b4099c,
+0x04ff625f2,
+0x0cd2630d4,
+0x079850981,
+0x005dbf57d,
+0x0b05b81a5,
+0x056e73ec7,
+0x095cb3897,
+0x0e262bda5,
+0x0b2c6e288,
+0x0cb7f8e77,
+0x072b8bdd3,
+0x03f400494,
+0x063ade65b,
+0x0bc4adc71,
+0x000000011,
+0x057b222db,
+0x031dcba15,
+0x0aa8ae504,
+0x05536afec,
+0x071afae90,
+0x058cde3dc,
+0x0d02bbc82,
+0x00d89e0e9,
+0x0f86789b6,
+0x00b9031e9,
+0x0238d2c22,
+0x016801fc0,
+0x0c4e75393,
+0x0efe8d6e3,
+0x03e2cb963,
+0x0275f5511,
+0x01df584ba,
+0x0cafb123a,
+0x0feb98894,
+0x018f866ba,
+0x085236867,
+0x0919f42a4,
+0x07ec36123,
+0x0b27b631e,
+0x08946fc41,
+0x03360b6cf,
+0x00208fea0,
+0x073c13010,
+0x0118662c6,
+0x075379b5c,
+0x0368f7a21,
+0x0832d8cb6,
+0x02c8bbfd5,
+0x04433d8d2,
+0x043ca3e18,
+0x0da5066ca,
+0x04e25eb29,
+0x014dfd9fa,
+0x003b9fa4a,
+0x00d9b7cca,
+0x0a1cef286,
+0x01f2c1a67,
+0x0141e8477,
+0x0f8b05fc8,
+0x0eb3a054f,
+0x0689a96ce,
+0x0f2a5e796,
+0x07ae027ce,
+0x02d347919,
+0x03a8b1878,
+0x0099a78fe,
+0x0cbb04441,
+0x00a02ed1d,
+0x0b07de70c,
+0x0b2875da4,
+0x01a9acff6,
+0x0df13de0d,
+0x0a9b74997,
+0x04658ae7f,
+0x0bd1f48a0,
+0x03b0510d2,
+0x03dddd967,
+0x0f9dda444,
+0x09206219e,
+0x04d358fc6,
+0x0e286191e,
+0x02fd09f2a,
+0x05cbbb2b7,
+0x0cbb79120,
+0x0e605d7a1,
+0x06ce49f29,
+0x036368c67,
+0x0d4fd048a,
+0x0723191ef,
+0x07297206e,
+0x091136fdd,
+0x0a797aa25,
+0x0c847a862,
+0x03fe95ec6,
+0x0f2e7343c,
+0x0f1cdc387,
+0x0d1560e6b,
+0x02cb38cd6,
+0x0c8d65238,
+0x0a41e8cb0,
+0x09be62e66,
+0x05f6a9356,
+0x038707071,
+0x0a8ab69d7,
+0x01bb06deb,
+0x018ac9f82,
+0x03011bc21,
+0x05eb7b03b,
+0x084bddd71,
+0x018d750fb,
+0x0442aac73,
+0x0f62941e9,
+0x014798f0c,
+0x04c013bdd,
+0x03c3b6880,
+0x074b9c11c,
+0x0841404ab,
+0x06cdf51ce,
+0x0015fea58,
+0x092d4fa31,
+0x0069710e9,
+0x0b755f193,
+0x0d8dc7035,
+0x0c2697ce4,
+0x02455ee62,
+0x032eea54b,
+0x0bcbb1ca5,
+0x0fa12260f,
+0x093c6d7c1,
+0x0ebbec8dc,
+0x01b4fc0be,
+0x0a934978a,
+0x0a0182482,
+0x0bd717478,
+0x079eb9b4b,
+0x0bc1c3b43,
+0x0c792c7d9,
+0x016de63e6,
+0x0d2c45ea2,
+0x0ed29e28c,
+0x083fe0ff8,
+0x097922d78,
+0x0a4b0446d,
+0x0c9f22989,
+0x0c10bfefa,
+0x05f5f1a16,
+0x095fb1462,
+0x068308c06,
+0x0dcdf1e18,
+0x0bf3f0af7,
+0x03f1074c0,
+0x0bcad5781,
+0x0a93b29f7,
+0x0c271f710,
+0x0440b9959,
+0x098ef0589,
+0x075d3efe0,
+0x0a771d80f,
+0x066f5b7f9,
+0x079359a9c,
+0x07317cdb3,
+0x079232bad,
+0x0a87ea419,
+0x04c68a3fe,
+0x0b7500510,
+0x0220fc00f,
+0x0ca7cf1dd,
+0x0a3b23862,
+0x09a0ce9c3,
+0x0c57b85ab,
+0x055de7d9f,
+0x0b008df6e,
+0x062e546ce,
+0x0dddc2a67,
+0x07433b0a4,
+0x03629fe60,
+0x0522ae26a,
+0x00f845a6e,
+0x04634d6f3,
+0x080468378,
+0x0ed86aad6,
+0x091dbcecd,
+0x0e3ef8acf,
+0x07314bd5a,
+0x0fe33df1f,
+0x0837c547e,
+0x03592bc11,
+0x0f87e96b8,
+0x06a6d3acc,
+0x05d3e2b7a,
+0x02258f3a5,
+0x0f07d0428,
+0x08d31366a,
+0x0daa8fe20,
+0x0a2120ab4,
+0x07cf5eb01,
+0x073621089,
+0x0eac89f7f,
+0x0397790bb,
+0x01b48edf9,
+0x054ed11ba,
+0x0a846b280,
+0x056c08b29,
+0x0035bfa88,
+0x046a3cf0e,
+0x068d344d1,
+0x0b8bbcaa0,
+0x0154f2f07,
+0x0a8948841,
+0x0035a2c9f,
+0x0bf28b81f,
+0x0731e49b9,
+0x0413a3eda,
+0x0184659b6,
+0x0973675f0,
+0x0002ff60d,
+0x07b66d77d,
+0x0a08a15f2,
+0x0e9261298,
+0x02eda09e7,
+0x033d274c5,
+0x0ad1e509d,
+0x0ca1743e8,
+0x0ea1f871e,
+0x0f1fb2a7b,
+0x033a69b54,
+0x0707c7a71,
+0x0ec890294,
+0x0dcfb4de8,
+0x0a36d3ef2,
+0x0c40db8f3,
+0x001f1c478,
+0x0f3b5f6c1,
+0x006f18e74,
+0x08a897499,
+0x0d3a1d98e,
+0x05adadb85,
+0x0b327511b,
+0x09e9740a4,
+0x00ff4a592,
+0x08c8d7d43,
+0x0ed4178ae,
+0x0a2c8caa9,
+0x01323d559,
+0x026c0e8f4,
+0x09c3f4dda,
+0x08dc3d74d,
+0x0231b1470,
+0x05cb79fa5,
+0x00048eb42,
+0x0a51ddf4f,
+0x057334bb2,
+0x08762d11e,
+0x04aadd29e,
+0x0fbbf4d63,
+0x0b57a933e,
+0x0faf545d0,
+0x0a7bddd1f,
+0x0df130474,
+0x0358b90c3,
+0x05532282d,
+0x057c7d0c1,
+0x0ad4a00f8,
+0x02183b97f,
+0x0bc0b8763,
+0x09ce56f94,
+0x0821d561e,
+0x01addd598,
+0x04b522f0b,
+0x0fd5fa604,
+0x0b86eee14,
+0x08e6ff670,
+0x052e24d97,
+0x0c8d0b6f1,
+0x0d563a794,
+0x06c01b502,
+0x0f3b97474,
+0x0ef49fea0,
+0x09d495be5,
+0x00c7c17c7,
+0x05b1ae806,
+0x01d0343db,
+0x0a74f174a,
+0x02c0a7fdc,
+0x0dd5b0f03,
+0x051a80d08,
+0x081db7fe5,
+0x038455e08,
+0x0a5b9e462,
+0x0997c142e,
+0x0335082f3,
+0x0980163b0,
+0x06db7735a,
+0x0f80e2c73,
+0x095c1e811,
+0x0ae5a23c4,
+0x0698b546a,
+0x0d3d933ae,
+0x00d8e4837,
+0x0c205ac37,
+0x0bc46dffa,
+0x044a68330,
+0x0f4bbf727,
+0x099171da8,
+0x021551de5,
+0x0aa14307c,
+0x001cd9f9b,
+0x0d4c7173e,
+0x0fe890ab5,
+0x00db8f080,
+0x0c48ac587,
+0x08254fa33,
+0x07a2a2be6,
+0x0d4874589,
+0x054905913,
+0x01eceb5a2,
+0x09f0a4219,
+0x08ae389be,
+0x02aecb6e9,
+0x02d488873,
+0x0ac373eaf,
+0x0bce78fa9,
+0x0b28dd493,
+0x00dd581a2,
+0x0b131ebf4,
+0x0c6ef826b,
+0x0e2f01198,
+0x01a21cd93,
+0x0345d1791,
+0x0ee8975d8,
+0x0a5999af8,
+0x09eed21d8,
+0x03e4d9055,
+0x099aacda8,
+0x0d6a7b413,
+0x032f10ed0,
+0x0f1b12efe,
+0x040b12e2d,
+0x0a879d6b5,
+0x05cc7fbd0,
+0x095150da6,
+0x0bf88569c,
+0x0615edeb7,
+0x044e41a1a,
+0x0971ca4aa,
+0x0a8626b92,
+0x075f98d77,
+0x02a448363,
+0x0a02e7a08,
+0x06ad72705,
+0x0b564846a,
+0x0ce1cbad4,
+0x06753c9d4,
+0x09e25702c,
+0x055664843,
+0x0df5b06bb,
+0x07bd36c12,
+0x058d47e49,
+0x0d4881d31,
+0x08a8ef913,
+0x07260936d,
+0x0d44c9fe2,
+0x0e49b1fc1,
+0x0643fb639,
+0x04343c08e,
+0x026e1c608,
+0x0e30d5188,
+0x00cf87c75,
+0x091bcb0b9,
+0x07d0f0d72,
+0x035fb81ed,
+0x080f54819,
+0x01299a23c,
+0x09a0d17f1,
+0x0964dd2a6,
+0x06d6d87ef,
+0x04d34cbf6,
+0x0164b1653,
+0x058feb824,
+0x0bb705996,
+0x04a39c68e,
+0x00107e3e7,
+0x002e9eafc,
+0x06cb3343b,
+0x033e7443b,
+0x0011d1b9c,
+0x055a68df0,
+0x005052166,
+0x0224a352c,
+0x0a490fb14,
+0x04290504f,
+0x025755b8a,
+0x0a0597d84,
+0x09c80626f,
+0x0c617fe5f,
+0x074980219,
+0x017463171,
+0x09e4efd24,
+0x01f92cfc3,
+0x082be75b0,
+0x0e3d009bf,
+0x097e1bb96,
+0x0f2cc21cc,
+0x0601a8e4a,
+0x004aa3358,
+0x0e3c0c8bd,
+0x0a825a2aa,
+0x0aa8d5ff1,
+0x0e44166b7,
+0x092143575,
+0x005938744,
+0x0d03af015,
+0x0475694c6,
+0x02b451b57,
+0x0224f1ec9,
+0x0392066d4,
+0x06331b32e,
+0x0dc16cb3e,
+0x00fecce09,
+0x087501522,
+0x008b820f1,
+0x0ae2c5f6c,
+0x0e6260e95,
+0x044b2bd21,
+0x061e44f5f,
+0x0e669f81a,
+0x012dcf5f2,
+0x0d704af54,
+0x0a68369e5,
+0x0c38ba1b2,
+0x00d2af6e7,
+0x0c00740cf,
+0x08e685624,
+0x02c803fff,
+0x03f9fc69d,
+0x0bf8f7eab,
+0x073f6a13f,
+0x06f391e54,
+0x0b5f08b54,
+0x081434cb9,
+0x07f933899,
+0x05ce3bd80,
+0x0f2e1ebd9,
+0x0ccc82aea,
+0x02d2001ba,
+0x060e5851d,
+0x0823498d7,
+0x0eaacb209,
+0x001fcd1e3,
+0x0a98930b8,
+0x070f1b08f,
+0x0d5372d41,
+0x0ba23a812,
+0x0bb2b9ed8,
+0x0956b8e58,
+0x0c5858286,
+0x0d858b8ad,
+0x06a7a00e1,
+0x02af2a943,
+0x052c608b9,
+0x0b81ca6d8,
+0x03077c73b,
+0x0aa2523ca,
+0x0232cc270,
+0x061a089fe,
+0x084575342,
+0x020beecd0,
+0x0677a9d0e,
+0x049ac526e,
+0x06a7d6960,
+0x065f072fe,
+0x0996a9f93,
+0x0649dbe09,
+0x01a32ebb3,
+0x02d8b797b,
+0x0c14ffa86,
+0x02c696ea3,
+0x06e0007bd,
+0x0123dfcb5,
+0x071ecee5f,
+0x05bc841ff,
+0x018519a5b,
+0x0dbbfa2d8,
+0x00455d09c,
+0x0237b4d6a,
+0x04aa14f91,
+0x0e59881dc,
+0x07c9d1896,
+0x05d08e404,
+0x0df9da175,
+0x0fea0bb37,
+0x07ee2d82a,
+0x047fc56cf,
+0x0dcaf3250,
+0x03abdab4f,
+0x0e0e44246,
+0x0498efbed,
+0x07699e2ef,
+0x0e1aa509f,
+0x0a4c3c00a,
+0x079a3c153,
+0x09c866703,
+0x0d17f19ed,
+0x0e692bc2a,
+0x068623719,
+0x0fe4b6d59,
+0x04cf30596,
+0x033c3653c,
+0x0903a54bc,
+0x0e2cea55a,
+0x031a0587b,
+0x092fab348,
+0x0c9b6b69d,
+0x0bcf0705c,
+0x09ba230db,
+0x01aa0e5e2,
+0x0d1f88d08,
+0x0f1c2e5b5,
+0x0ae9aee14,
+0x018aa5ed8,
+0x04b6fe999,
+0x0b7d5e226,
+0x0b44f145b,
+0x0630bfbe0,
+0x0a2fed3a3,
+0x078ef5858,
+0x0e1a33e90,
+0x0b932b58c,
+0x05fb53a1f,
+0x075e14bd9,
+0x0f1f9cbd4,
+0x0f9071660,
+0x0d33145d1,
+0x0e71fea39,
+0x0c9ce34d7,
+0x0fe756847,
+0x021018548,
+0x0bb840e8a,
+0x065d29cb5,
+0x05f253d23,
+0x088195503,
+0x04eb9cff2,
+0x02f7bcfa2,
+0x071cfe897,
+0x0e1bd059a,
+0x0724af87b,
+0x034f610d6,
+0x0090000b4,
+0x0d1138b31,
+0x02a0f8b46,
+0x050218d7f,
+0x09d355534,
+0x0c154a1ad,
+0x03f7e030e,
+0x0de893873,
+0x0e8332216,
+0x087a94c50,
+0x0e6a502e3,
+0x03924af43,
+0x017ce85ee,
+0x033656109,
+0x0db7f22d4,
+0x080a80a5f,
+0x06ae6479a,
+0x057d969d9,
+0x039316162,
+0x0bdc5a803,
+0x0a8e4463e,
+0x034438014,
+0x04410b172,
+0x00635db01,
+0x03211bac3,
+0x06700862d,
+0x0d24f4e7f,
+0x01b7fe777,
+0x04883e544,
+0x02829f931,
+0x05d8a4fb6,
+0x0192080c1,
+0x0144f8c59,
+0x01e60bfbb,
+0x09c7a9b00,
+0x0dbfa28f2,
+0x094f61f15,
+0x08d249676,
+0x00d9097cf,
+0x01b835c9c,
+0x0577519d8,
+0x0ce066e1e,
+0x0fa73d65f,
+0x05eca3c4b,
+0x018dc8299,
+0x0a8a66c13,
+0x0a033112f,
+0x02c86e10b,
+0x06e7aec6b,
+0x07e2980d7,
+0x0f4e98a80,
+0x0421c798e,
+0x06d406aae,
+0x0ccb810da,
+0x0e1651f59,
+0x030bce2eb,
+0x0516e7e30,
+0x058352654,
+0x08f6c0bd7,
+0x0b36f1630,
+0x0b403f16e,
+0x0bfb383ed,
+0x07ee2f5ad,
+0x0d403f8e0,
+0x088a8dd48,
+0x027c76b0d,
+0x06105df79,
+0x057fcf590,
+0x0ccb8435f,
+0x05d3a669e,
+0x02fc3b248,
+0x027466a5d,
+0x04687f93f,
+0x0d383ca83,
+0x028fe5434,
+0x038a0ad3a,
+0x009cc2469,
+0x0cce62e3b,
+0x087f87822,
+0x064dcbcc0,
+0x05d9f8246,
+0x0d7ad2e25,
+0x0a228b578,
+0x046587a71,
+0x0a1756106,
+0x0ca9d5ca2,
+0x0a9bce936,
+0x0a287470e,
+0x053460ece,
+0x031e633a6,
+0x007f8a428,
+0x0fa083a84,
+0x0de971b99,
+0x02a623102,
+0x04b981913,
+0x0ca7c1a34,
+0x0f9aac28f,
+0x0a5853ee5,
+0x0286fb7d8,
+0x0645db8e3,
+0x061e59156,
+0x0d3bbaff6,
+0x0426c28ff,
+0x07ecfcdcf,
+0x089733528,
+0x088367f2e,
+0x041a935e1,
+0x092aa269d,
+0x0b1b0f3b0,
+0x0056653ab,
+0x06e502f2e,
+0x0ad64e2c0,
+0x06d6c1697,
+0x05a8bd31b,
+0x06fd233a8,
+0x029ee470d,
+0x06e306c80,
+0x09d0b4243,
+0x03406ac5a,
+0x08db9358b,
+0x0398a6663,
+0x0d17e1e46,
+0x0e3a91929,
+0x0d68db035,
+0x03a665ddb,
+0x0bccec3d4,
+0x03e650f68,
+0x0ade09c1a,
+0x057b65ad1,
+0x0d240cf3e,
+0x09fa2dd2e,
+0x076c83d74,
+0x065d09c1e,
+0x08cb51db8,
+0x0ee4a456d,
+0x0906c6715,
+0x09254aca2,
+0x05fe64618,
+0x03e17e184,
+0x0d6a7096f,
+0x0f43af464,
+0x02d79282a,
+0x0c1b58f78,
+0x0e3def9c2,
+0x0010616f4,
+0x061578fe5,
+0x09ee3ef98,
+0x028e4994c,
+0x06e4ead38,
+0x0bbc4d391,
+0x08aeed83a,
+0x0ae71e15f,
+0x0cde9e290,
+0x044873434,
+0x053161d9f,
+0x0918ea330,
+0x03b95af51,
+0x0a4b0155e,
+0x07cf6da58,
+0x0a0b54282,
+0x07ed29784,
+0x07b30a659,
+0x09fa3afb9,
+0x05fe0f43a,
+0x0ad064990,
+0x007b60428,
+0x076dbf19a,
+0x01c0d88c5,
+0x027ae3721,
+0x01bc5261d,
+0x003b2224c,
+0x07c39e83b,
+0x07e36b20a,
+0x0aec5907c,
+0x05f922f4e,
+0x049ee5e78,
+0x013399548,
+0x0780f5d54,
+0x0896057d7,
+0x00786e1a3,
+0x041fe678a,
+0x0a114691c,
+0x02a3b7aa6,
+0x0d848ce9c,
+0x0eb26a523,
+0x08a379efd,
+0x07dfebf29,
+0x0adfe00a6,
+0x0b4e1d4ff,
+0x00cf33f00,
+0x00175cf45,
+0x0dcf81553,
+0x01a5be028,
+0x01cd223ca,
+0x0c71ace77,
+0x0a7f388ed,
+0x0b6dc5d22,
+0x020790c51,
+0x090e11cbd,
+0x0d73b6a35,
+0x03189571b,
+0x0058b899b,
+0x05df66b1d,
+0x0a3291251,
+0x0f2024293,
+0x0f6aaa09e,
+0x0912856ac,
+0x05a8fa290,
+0x0f521077e,
+0x09324ad25,
+0x0e35ff339,
+0x0d5ffbf4b,
+0x085c1361c,
+0x0e076a46c,
+0x0185c9ed0,
+0x0b3904a95,
+0x0e1c0a811,
+0x000c61ab0,
+0x0e7ededdd,
+0x0654fa983,
+0x01910f193,
+0x0bdac16cf,
+0x0b8f7d596,
+0x035a76737,
+0x05ce2f07a,
+0x0cb5afd32,
+0x08a09d7ab,
+0x0caf9f4d4,
+0x0c0bafc36,
+0x07b1f6231,
+0x05278b021,
+0x06d4fa559,
+0x040ec6625,
+0x000b8e0f1,
+0x0713f0f28,
+0x0fbd34711,
+0x01254139d,
+0x0c8878a8f,
+0x022da94c1,
+0x0434103a0,
+0x0cbe60ad1,
+0x0180f9b67,
+0x0592a8828,
+0x01fd18dee,
+0x0b25e4b15,
+0x0945ccc4e,
+0x0dc44029a,
+0x0129f782a,
+0x0c7f8090f,
+0x07fc6cd24,
+0x012c01c1c,
+0x04af409bf,
+0x0a29538db,
+0x0bbbb11f4,
+0x0cc15d490,
+0x022de857e,
+0x0ff3c5cda,
+0x022fd9553,
+0x0b7a79450,
+0x0b6f24ef8,
+0x08e96c0db,
+0x0cfed2abc,
+0x040912146,
+0x0f0c4fbcb,
+0x08bc29f73,
+0x0f94d6500,
+0x0cb6dd600,
+0x0017c9e83,
+0x0386e9dab,
+0x0380ba38c,
+0x070293966,
+0x01c20de24,
+0x0096c3f88,
+0x08dfe16de,
+0x0a26b04a3,
+0x0d0779ec0,
+0x03778b850,
+0x04480cc63,
+0x0d2019f45,
+0x0dc77924c,
+0x03703a8ff,
+0x0229a44d8,
+0x0ee774325,
+0x0dd73b62b,
+0x0ec677a6a,
+0x0fea29eac,
+0x05aabeb6e,
+0x0aaf42923,
+0x03efe65a0,
+0x04f400c05,
+0x067f167a5,
+0x0cdc65160,
+0x0c0182df6,
+0x0e08c87ff,
+0x0021c29c9,
+0x017f93f1d,
+0x0da3be650,
+0x00ac906f0,
+0x002ca2011,
+0x0b08793ab,
+0x05c1dd27c,
+0x0ff1998ad,
+0x06110bfb6,
+0x0b97cf128,
+0x006b7b582,
+0x0b544b0f2,
+0x082fa301b,
+0x0d66d3d82,
+0x0d570de8a,
+0x0a5c497da,
+0x0af2b4220,
+0x04c630679,
+0x0da3328fc,
+0x048f9afa8,
+0x0d78f898f,
+0x00260ca08,
+0x03460121e,
+0x060726b2b,
+0x0e1531ee8,
+0x00730893c,
+0x0fedf7584,
+0x0d1966350,
+0x011f4126b,
+0x07ba0828e,
+0x0bb033521,
+0x01baa8215,
+0x0ca25d1e5,
+0x0f5124320,
+0x00cc42baa,
+0x051789bd5,
+0x0cbbfacf8,
+0x04dfb38aa,
+0x0898c8506,
+0x0f3abe052,
+0x0892a9971,
+0x04c764071,
+0x04a2e51fa,
+0x086d5e155,
+0x019af6d9b,
+0x02ef24cde,
+0x072993563,
+0x08503c9ff,
+0x05d76c726,
+0x03ac1637b,
+0x00d6a36d8,
+0x064fd323e,
+0x0daf6a36a,
+0x08ffcdaf3,
+0x011cc63f1,
+0x0aaef4fb5,
+0x0e6c67991,
+0x07358d7d5,
+0x0e7142d0b,
+0x0db87df86,
+0x0f90e039d,
+0x006255297,
+0x0c6de78a8,
+0x0226b4f4c,
+0x095453e47,
+0x017d4ad73,
+0x04e103582,
+0x0e3915fa8,
+0x0ed379b2d,
+0x0b1e1316d,
+0x04166af9b,
+0x003c321b2,
+0x0f6bfab36,
+0x0f8006c88,
+0x0d2536776,
+0x03f7f2e04,
+0x08b94337f,
+0x0e41a6901,
+0x00efa254c,
+0x0cd3e7eef,
+0x01c35abf4,
+0x07a95d13d,
+0x0ac04501e,
+0x0bd933ed4,
+0x0be7d32bf,
+0x096212439,
+0x01460bb08,
+0x0fb097604,
+0x081ddb1f5,
+0x0f3a9351b,
+0x0c4abb079,
+0x0d0059ad4,
+0x0feed722b,
+0x0cc7bfc4c,
+0x0d7cbac28,
+0x0df6bc192,
+0x05d499fbc,
+0x0d082d7ba,
+0x0f5c66d80,
+0x092430f26,
+0x037358ba1,
+0x01063ae7c,
+0x06839add5,
+0x0495251ab,
+0x00b71e0a8,
+0x028d05d7f,
+0x048dca9b8,
+0x087304134,
+0x06bace15c,
+0x057b6fe82,
+0x0f753fa81,
+0x070a0f73c,
+0x0c0bf732f,
+0x04fd3fe38,
+0x0cbe21bb3,
+0x0c6b79eeb,
+0x02afbe65e,
+0x05bb111c4,
+0x092d2fe32,
+0x04192c9f3,
+0x06ad8f490,
+0x011a618ba,
+0x0d530ca5f,
+0x09de83c99,
+0x0395b2179,
+0x0baf70074,
+0x0b2436002,
+0x0aab0fbba,
+0x070384ae5,
+0x0d4452f28,
+0x0765402dc,
+0x03403c6fa,
+0x03bf8340d,
+0x04417352e,
+0x001c58400,
+0x093466bf7,
+0x087ef05b9,
+0x0b8fe5a63,
+0x0fa4423d0,
+0x0b6103dc5,
+0x09b364164,
+0x087881eed,
+0x0c87ba475,
+0x0fa4240cc,
+0x03c85d0bb,
+0x00e161afb,
+0x0cabf522d,
+0x0b82ddec7,
+0x02b7b805d,
+0x0be595a19,
+0x0c0cf71fe,
+0x0854c8c18,
+0x0b8cef4ef,
+0x09f656fef,
+0x04878edd4,
+0x0d9063ae8,
+0x0d95942bf,
+0x048adddcc,
+0x0308dcf3a,
+0x0382fd0d7,
+0x0e9ab4837,
+0x0ad6a2564,
+0x053e36782,
+0x0f0e99d02,
+0x05c332154,
+0x0f6eae982,
+0x09f3e9833,
+0x0035fddfc,
+0x08caf8f8f,
+0x0ff64b189,
+0x045b7f909,
+0x0e844cb68,
+0x09ae8f044,
+0x0f3e614f8,
+0x01973f294,
+0x05876198d,
+0x0df3533c8,
+0x0aa5413be,
+0x095889c6e,
+0x0d020661b,
+0x07fcdf420,
+0x0d6c622b7,
+0x06db88985,
+0x0a86fdb54,
+0x086232c0e,
+0x02995acd2,
+0x02f8e2bc1,
+0x0707778fa,
+0x0c3f554f9,
+0x06f281f12,
+0x037d96065,
+0x0a4158067,
+0x0b6e5e422,
+0x0999a19db,
+0x0090466a6,
+0x0002cf2ef,
+0x0e5f86236,
+0x0810e73eb,
+0x0bb502f39,
+0x024a79488,
+0x05ae73e62,
+0x0a56b6ac9,
+0x02c42330f,
+0x04c8a99a0,
+0x07c211452,
+0x02542d9a3,
+0x0edc3f86b,
+0x03418e37b,
+0x023a2353d,
+0x0577e6a45,
+0x0c6a02614,
+0x071e17ce3,
+0x0730cd640,
+0x013279034,
+0x0a2473fbd,
+0x0b337a433,
+0x0a4633665,
+0x0ed6dcc04,
+0x0f675f33c,
+0x0c4d57e77,
+0x0ec3193ca,
+0x0c87e090b,
+0x0db4ee670,
+0x08890d853,
+0x081164b2d,
+0x00870cb35,
+0x080c5fc28,
+0x0a69d5d6e,
+0x0d9d28b65,
+0x01f03ce72,
+0x0d167fe11,
+0x0d928365b,
+0x0f73a8306,
+0x06112b074,
+0x0b4e48bc1,
+0x05961c551,
+0x09d6b0a49,
+0x060dd4e46,
+0x0e07ccbd5,
+0x01e126e22,
+0x0a2f7a957,
+0x0a930e896,
+0x0e1762db1,
+0x025d755e3,
+0x031c02d94,
+0x0e5401051,
+0x0ceb1840d,
+0x00f70923e,
+0x05f0c02aa,
+0x0c066f506,
+0x02890db1a,
+0x06988bfa5,
+0x0e6e3bad7,
+0x0c1c807f9,
+0x0fd6f7781,
+0x0659f34f8,
+0x0e6ec23a5,
+0x00a5c8f6e,
+0x013aa632d,
+0x04a7ff47b,
+0x00080c827,
+0x0360e0b61,
+0x0555d69ef,
+0x0f6bef3a6,
+0x07f6030b4,
+0x0c4f84415,
+0x0f6f00824,
+0x0e04da921,
+0x03f52cf2f,
+0x0393232dc,
+0x074b94693,
+0x019a99cb7,
+0x0de1260da,
+0x088062c1d,
+0x006d6a454,
+0x02f764684,
+0x0307c233e,
+0x067b5c177,
+0x0bfbae416,
+0x0dfdc8d8f,
+0x0063bd645,
+0x0d574b0f8,
+0x0946ad439,
+0x054aab758,
+0x00a5824fa,
+0x08f704cd1,
+0x017005153,
+0x039d82d5e,
+0x0ddd60350,
+0x078a0e399,
+0x03c975e35,
+0x017c25fc0,
+0x0dcf6158a,
+0x0d3349a83,
+0x0a40737f3,
+0x0b1da954d,
+0x0a0e42983,
+0x0f05ecbfe,
+0x0a3c037ee,
+0x0c58ffd0a,
+0x02cffa90a,
+0x0e410de7a,
+0x00acb128d,
+0x08bba921f,
+0x0740ad35d,
+0x025d91826,
+0x0559503b5,
+0x0587ace06,
+0x0fb3157a9,
+0x0cf49a695,
+0x0674cda76,
+0x0fed51db6,
+0x04683e8c5,
+0x0fc7a06bf,
+0x0c3a0274d,
+0x0b0fc83ba,
+0x070fe46d1,
+0x03e3b0c57,
+0x09e8e4895,
+0x0b7213ba3,
+0x0f2684328,
+0x04c8e4999,
+0x08df4e06b,
+0x02a90638a,
+0x0b4d6f787,
+0x001bb5f19,
+0x0357d8973,
+0x022741158,
+0x020f29c51,
+0x0e8a7d306,
+0x03fdf5a15,
+0x0e41d4298,
+0x03b65818b,
+0x0730d818f,
+0x0940b9159,
+0x0eebc09e2,
+0x0d6977add,
+0x08c976b09,
+0x0c48a3b01,
+0x0f4f7df43,
+0x020180e7b,
+0x08865bb51,
+0x066faa752,
+0x043a19d8d,
+0x03972f697,
+0x050b3e4e4,
+0x0eecfe5b6,
+0x039472a04,
+0x0b8f9b9dc,
+0x0124f1536,
+0x057f17958,
+0x08a83bbdb,
+0x0032d5751,
+0x0e7e5a35a,
+0x00f213392,
+0x0c1bb5885,
+0x0006486e0,
+0x006bacccc,
+0x01fa751bf,
+0x0cb816a64,
+0x0b8d5261d,
+0x006182b83,
+0x00694bba4,
+0x0e69f741a,
+0x006ed483a,
+0x0a2d7fb74,
+0x0f69baa7a,
+0x0dba14f9d,
+0x0c9b996cc,
+0x0f19219bc,
+0x06fd69a85,
+0x04f77f652,
+0x070561736,
+0x053d2b60f,
+0x04f560575,
+0x0fd1303da,
+0x020558f96,
+0x0b5e0d7b0,
+0x06b8e27d1,
+0x0f279d413,
+0x0988cb190,
+0x0c56c4216,
+0x09ced00de,
+0x0687aaf9b,
+0x0da63dfcc,
+0x0dc72d812,
+0x0cb9c3b51,
+0x0a2288ce3,
+0x09606b42e,
+0x0c160893f,
+0x0867b47a5,
+0x0d2e5d102,
+0x0ae9ee4b9,
+0x0fac008bd,
+0x063bb5f1d,
+0x02b8f66c9,
+0x069f382cb,
+0x0fa657334,
+0x0952ba67c,
+0x02a2204b8,
+0x04778dc0e,
+0x0665790af,
+0x07f034e77,
+0x0f342eca4,
+0x00c7a59ed,
+0x03b3afa6d,
+0x0cc77909f,
+0x06365bb0b,
+0x09fa26f8a,
+0x0c018c182,
+0x082d6715a,
+0x044e39e42,
+0x0be6ea89d,
+0x0c40239d4,
+0x04cd35267,
+0x02eff5a0e,
+0x011bc7a12,
+0x03a83179f,
+0x0ca1a57c7,
+0x00077b254,
+0x082a6eb30,
+0x02c13a1a4,
+0x0fd5e515b,
+0x09d503a0e,
+0x0d2453c41,
+0x05fa56121,
+0x073d519a1,
+0x0c5887d94,
+0x0d1e7c96e,
+0x015682b28,
+0x03e72fe3c,
+0x0dc8053da,
+0x03ef641dc,
+0x0d7d5d176,
+0x0d91e9363,
+0x08c25458b,
+0x0dd09e4c5,
+0x0da0b563b,
+0x0669611b7,
+0x0e3ceb2b2,
+0x0da772cef,
+0x0ab29f4d6,
+0x042e5bc83,
+0x03cf2ec5d,
+0x0aa5e0925,
+0x06543f238,
+0x0a8072aa8,
+0x0a499f6b7,
+0x09913fcf2,
+0x0ad8909c3,
+0x0a11a5152,
+0x0279a8d86,
+0x04a69c71e,
+0x02d6b9874,
+0x014c13a5b,
+0x01df27d55,
+0x0a8800d69,
+0x03535ab73,
+0x0a90558c8,
+0x00cec88a5,
+0x05d5731f5,
+0x066d61100,
+0x03dde94e8,
+0x00486f9bc,
+0x0ecdca5e8,
+0x02e0f508c,
+0x08c57ae70,
+0x0ba455b69,
+0x0d8cfc4a7,
+0x0fb76be62,
+0x0f1f8c0f4,
+0x0b97c95cd,
+0x0276dedea,
+0x06d01da7b,
+0x0cfd2fbac,
+0x04222adc2,
+0x01de82b08,
+0x004086276,
+0x022ab3c01,
+0x04a5b73cb,
+0x098442699,
+0x0c39d450d,
+0x06920fe74,
+0x00a3eb2fa,
+0x0e3e6b48f,
+0x0e2ce1de5,
+0x071f5884f,
+0x01e177527,
+0x0ea0024fc,
+0x09c90b6ef,
+0x0219054e6,
+0x0641747fb,
+0x0bcaa050c,
+0x0020a216c,
+0x0b8c8056e,
+0x0e7615f07,
+0x0e3eb2c63,
+0x04a83b31f,
+0x017fc741f,
+0x0a71d6913,
+0x0385b59ff,
+0x021b5d94f,
+0x0562b5123,
+0x0d54dbe41,
+0x02953e282,
+0x0583b6699,
+0x0a052bca7,
+0x00095d8f6,
+0x029d3ef94,
+0x0433946fe,
+0x00f0055db,
+0x053abefa6,
+0x024cf3067,
+0x069aa0d4b,
+0x064c19f42,
+0x01913ec94,
+0x0bbcfc618,
+0x0b4a3b8f2,
+0x01125f3ec,
+0x01c0acf47,
+0x075d345d0,
+0x07177b391,
+0x04c53ce7f,
+0x00f1eec09,
+0x03f088d96,
+0x04165d85b,
+0x008989053,
+0x06627876b,
+0x0a6b738e9,
+0x02f71e344,
+0x07d04021a,
+0x0f6d34a20,
+0x07cfb1329,
+0x0473358ac,
+0x09225ef97,
+0x095f22c80,
+0x083ff7925,
+0x022422d3a,
+0x058563eb1,
+0x07f51ba9b,
+0x014302911,
+0x01aa7b93c,
+0x076a9b0e6,
+0x05b52eb7e,
+0x0accaef4e,
+0x082e95b5d,
+0x0798db469,
+0x06b4b72e9,
+0x0936ffec8,
+0x01c49ecc2,
+0x03f381d1c,
+0x01f040c58,
+0x0c0177132,
+0x00ed4740b,
+0x066d8309e,
+0x06175da23,
+0x0b879980f,
+0x03e9c404b,
+0x04e726bd4,
+0x031a2a74c,
+0x07d10219e,
+0x0a711df79,
+0x042a1d573,
+0x01ccb35eb,
+0x0e0510f25,
+0x0b2184993,
+0x0dbdcc9c4,
+0x03b43da71,
+0x0f8029e78,
+0x0abe2ccc4,
+0x02b2b8e8f,
+0x0f8c9d1ab,
+0x09180ef9c,
+0x08d24139a,
+0x01b7e95d0,
+0x0896d3502,
+0x0c3a58127,
+0x0ad5d4433,
+0x0bd0305c8,
+0x06ee832e7,
+0x0188200d0,
+0x0c21dec01,
+0x0a4311bec,
+0x0027fb3cd,
+0x0c13d1f03,
+0x048268278,
+0x0878a26a3,
+0x0a15dbc09,
+0x02fdb1db7,
+0x0219d6b04,
+0x081288534,
+0x0abd9c56a,
+0x065949e7a,
+0x099baf3c3,
+0x0874da129,
+0x0ca4c49e8,
+0x0b02baebd,
+0x0d69ae474,
+0x0c9b9cd8b,
+0x0f5d85fb9,
+0x0a2e10ac2,
+0x06002ccdf,
+0x045f45fdf,
+0x0c9aea1d7,
+0x088d83854,
+0x08eb825de,
+0x084307c90,
+0x000907ffe,
+0x0525d7a2b,
+0x0f7a3c353,
+0x062b03d08,
+0x0a73ef72a,
+0x07ece9c97,
+0x0fb527fc5,
+0x0cf5f5d89,
+0x053970837,
+0x003fe1ed1,
+0x0e6f3d129,
+0x0ba3555ed,
+0x05c781a79,
+0x0af651667,
+0x00a983b70,
+0x064989ba6,
+0x06890b9f5,
+0x087e1b4e4,
+0x0dc485ec0,
+0x018aca1c2,
+0x0d23d875c,
+0x06401902c,
+0x02f32781f,
+0x088fe73f4,
+0x0106c9e15,
+0x0aec04f24,
+0x04758fa48,
+0x029b92b48,
+0x00d47ecd8,
+0x0c44c3d0d,
+0x04b7ac068,
+0x0a0919c7e,
+0x03104c019,
+0x0563628ed,
+0x034268547,
+0x0d798de84,
+0x0d37b888b,
+0x0ec151a08,
+0x0621f62b1,
+0x0d02528d0,
+0x06ba6d0a5,
+0x0eb35cb12,
+0x077da563e,
+0x0580f039a,
+0x0cec6f275,
+0x050aac89e,
+0x00f2eb109,
+0x0af917e40,
+0x06bfb8047,
+0x0f04c1009,
+0x0dbafac64,
+0x0323aa4f1,
+0x0d11fbd35,
+0x0becc782d,
+0x074d5758b,
+0x0a5f3d0bc,
+0x086af3014,
+0x081d207c4,
+0x03275810b,
+0x0d448c1ec,
+0x0a6663d90,
+0x04e93e92b,
+0x0bcef308e,
+0x07048e42b,
+0x00155f980,
+0x02b5d95f2,
+0x05ad28bea,
+0x0703ef085,
+0x018b882e2,
+0x0c3df4bdb,
+0x0f16e0d72,
+0x06698329b,
+0x0f4ca390d,
+0x027a5433c,
+0x036caf042,
+0x02ddac4f9,
+0x06d9a3613,
+0x0cc5b4c3e,
+0x05446fbea,
+0x0156b0988,
+0x0f18e7c67,
+0x077d0271c,
+0x037976ecf,
+0x036505082,
+0x0af3e3821,
+0x0227362ef,
+0x08391db72,
+0x0b0da1351,
+0x0c48fcf48,
+0x0721619ea,
+0x00604bf92,
+0x045af6d93,
+0x0c921026c,
+0x0c9f1f9ef,
+0x025d7580d,
+0x0b6c4f6a5,
+0x0e6f38d33,
+0x035750f86,
+0x01c10cb36,
+0x03c77a4fb,
+0x0aed3704c,
+0x09157b9c7,
+0x01107e810,
+0x0c2e4d034,
+0x08f94e5ad,
+0x001b021f1,
+0x0f1eb3efe,
+0x03fba554f,
+0x08602c12a,
+0x02713b96e,
+0x0858fbef8,
+0x0ecc15a72,
+0x01edbb540,
+0x071d7d7af,
+0x0026a1c98,
+0x0738a08ee,
+0x0862a3d15,
+0x0889cb478,
+0x01ac1e27b,
+0x0f7ff5f0d,
+0x0ab86e516,
+0x03cc86d44,
+0x0067dfe02,
+0x00d6869f6,
+0x0c90b04dc,
+0x099183bd2,
+0x07f8563f6,
+0x0e2d3355c,
+0x03e7d64ae,
+0x0e7c2f2c8,
+0x00386debd,
+0x02578270c,
+0x0561eb437,
+0x0fd144942,
+0x0e811241a,
+0x022b3c719,
+0x00a200aba,
+0x01c29e2f5,
+0x00bd8a13a,
+0x08ec0ebad,
+0x0c3223afb,
+0x081d0108b,
+0x0eaeda335,
+0x03f446821,
+0x0cde4e9ad,
+0x0dec11f46,
+0x0a8d57985,
+0x0168ca5e7,
+0x03a2c34b1,
+0x0983f1dff,
+0x038bf44e7,
+0x0f44e7d70,
+0x018f16d72,
+0x0d21cc9c1,
+0x00fd06050,
+0x09bf90df0,
+0x05d168324,
+0x0187768d6,
+0x0a3434794,
+0x0bd551c5c,
+0x0e2ab2093,
+0x07d168c6e,
+0x00e4ff3ae,
+0x0c001a2ae,
+0x0531ac011,
+0x03df73a54,
+0x078ae45e3,
+0x090510c8b,
+0x0c57f8b13,
+0x0570e8028,
+0x0c9670a73,
+0x0adf3e659,
+0x009e73e4e,
+0x081513458,
+0x09ffeb789,
+0x0d51355b2,
+0x0bd55b97e,
+0x06485431b,
+0x06c2bd492,
+0x019cafc9e,
+0x0f5928e0d,
+0x0ab044593,
+0x0b67312f4,
+0x0219d9a94,
+0x022795d0b,
+0x0429de294,
+0x01c4ee3c5,
+0x08f5131c6,
+0x0f9662038,
+0x043afbc49,
+0x0ea8a8c84,
+0x02c88f725,
+0x0a82dcbe3,
+0x09b8445ae,
+0x0f8e53d5a,
+0x0a1ba8b2c,
+0x032646e6d,
+0x0ee0482ba,
+0x0d8842671,
+0x02fc009b8,
+0x06bd78e17,
+0x057928023,
+0x002842807,
+0x0f2d95d61,
+0x0a7738197,
+0x0979777f7,
+0x09dfc4224,
+0x0d3f6f471,
+0x08ea7d11c,
+0x05c7984e1,
+0x076a0dfdb,
+0x0e2554381,
+0x04a212b19,
+0x09a5884b5,
+0x0b5d0636c,
+0x02dee009a,
+0x0c3ee97ac,
+0x01b32452d,
+0x044cd0eac,
+0x0dc234bfd,
+0x0d92ba042,
+0x06545103c,
+0x0c99e2c9f,
+0x00c83daf2,
+0x01704aa65,
+0x0c26fb9dd,
+0x0461a78fb,
+0x0542e0ca8,
+0x0bca45d08,
+0x089b59a85,
+0x0f8218bf4,
+0x0f68934c4,
+0x09228525d,
+0x0996a9291,
+0x09a0c9bb5,
+0x0de14a93e,
+0x0c29df7aa,
+0x06bea0ebc,
+0x01abc0ab3,
+0x02694a703,
+0x007fcfc56,
+0x0b25b6440,
+0x04c5c5037,
+0x078b30a32,
+0x021fe94d3,
+0x03f6a9457,
+0x0bc3770ae,
+0x0893bfe41,
+0x07823a814,
+0x02b48c137,
+0x0760c046a,
+0x00c4791ce,
+0x04421568e,
+0x0c6409e50,
+0x0e4ebcaf6,
+0x07575b475,
+0x049778bcf,
+0x0e16efd21,
+0x0eb6c1dc6,
+0x02594f1a0,
+0x079856e5c,
+0x0a3f5c6af,
+0x0d53fbdfe,
+0x0658ebcd3,
+0x0170e804d,
+0x04845220b,
+0x0222b076e,
+0x053caac59,
+0x078ff70f0,
+0x0ba8e94e1,
+0x0373305f3,
+0x0cda90b25,
+0x089cf63c9,
+0x04a07cfe2,
+0x03a67b30b,
+0x0e7354429,
+0x0724c2902,
+0x03d26896c,
+0x01e48ae37,
+0x046d792e5,
+0x05509c265,
+0x0bbc184cb,
+0x04354b3c7,
+0x09143f362,
+0x040ba93e6,
+0x0c2e1fe34,
+0x047194380,
+0x00f48b02d,
+0x07ccabc54,
+0x01d3158f2,
+0x056acf27a,
+0x083adaab2,
+0x02ecb069b,
+0x00ec41592,
+0x0acf8ea51,
+0x0b959a5ac,
+0x02cf46fa4,
+0x07845ddec,
+0x071e47b21,
+0x024ec399e,
+0x092a96fab,
+0x03b062379,
+0x0960439ca,
+0x0b9bce0fd,
+0x07e1fdf97,
+0x06ed07f71,
+0x0d6fdd362,
+0x0d4d87d37,
+0x03c2e4ac3,
+0x0962ed8ae,
+0x00a51976e,
+0x0f951a8c7,
+0x017354b9b,
+0x028f0a4c1,
+0x0c60ca1d3,
+0x09f63b322,
+0x0074f1d39,
+0x0799f885f,
+0x05d00b295,
+0x0456abe3e,
+0x01b42246b,
+0x0974425aa,
+0x035d32083,
+0x0358c5eca,
+0x0ee7ec23b,
+0x021a676e0,
+0x0b5c1a166,
+0x0fa1456e4,
+0x05687b500,
+0x06ceed59f,
+0x05c97d460,
+0x055515d50,
+0x097d157ef,
+0x099853966,
+0x06d2b0c2c,
+0x06aefc2b6,
+0x063424035,
+0x0cae5872b,
+0x0e6298c3d,
+0x00cd2a8da,
+0x00e208866,
+0x0e9910a6b,
+0x01ce1c024,
+0x090546f92,
+0x00085db05,
+0x0a385ac41,
+0x00710a3fd,
+0x08bdde216,
+0x0f72b2b3b,
+0x02bc7da4e,
+0x080543e1c,
+0x0309f1f4d,
+0x0a5f16537,
+0x0b6128bf3,
+0x0f0e8457f,
+0x0e3e4015a,
+0x0bb573e3d,
+0x0a00c18b9,
+0x0cf7b18c5,
+0x09747024d,
+0x0e7bcd8fc,
+0x071a86317,
+0x057904efa,
+0x0fef03962,
+0x0406b8089,
+0x0c6225282,
+0x00cae18cf,
+0x0eb1223b7,
+0x04114c118,
+0x0549dc28f,
+0x013cffc58,
+0x00459ef93,
+0x02d9ded9d,
+0x0311ff50a,
+0x0f29334db,
+0x0f98a2600,
+0x0c6793a48,
+0x09c10e63c,
+0x0c9314e98,
+0x09761d759,
+0x05198e477,
+0x04c326536,
+0x0ce905795,
+0x06c07bdec,
+0x07ec2a760,
+0x08766dd42,
+0x0c9a67b20,
+0x05b408195,
+0x077cfb806,
+0x01b94a6aa,
+0x02a7554a8,
+0x055342cfc,
+0x04eb35bbb,
+0x08015f9ee,
+0x047963838,
+0x0e190ae57,
+0x02fdfda85,
+0x01ad2c06e,
+0x0329ab1a7,
+0x0aaa35418,
+0x0ae2840f8,
+0x03e286fcc,
+0x0287c5131,
+0x0a2d8beab,
+0x04a9f42e9,
+0x0391a0bb9,
+0x0c0c6c0c7,
+0x07a0b9660,
+0x0f1696c47,
+0x0437201c2,
+0x02ce2fb14,
+0x06a33fc62,
+0x04f18fbb5,
+0x07504af75,
+0x01b526b7c,
+0x010a893cb,
+0x03b6dc16a,
+0x05f4ed50f,
+0x0244da017,
+0x021bab769,
+0x0cbb83c64,
+0x005575881,
+0x08a386c65,
+0x09d4f639d,
+0x0f0dbd4de,
+0x0ba12d03e,
+0x036909d0f,
+0x0cac04b29,
+0x0f6086129,
+0x09a2168e6,
+0x0ceac0ee0,
+0x028928e46,
+0x088f9e6ee,
+0x0fddb7e23,
+0x0952ceabe,
+0x0ab0d12c9,
+0x0b1853cad,
+0x04df8b1a0,
+0x08ffc8915,
+0x0626bafba,
+0x00a9fb259,
+0x00b0059ad,
+0x09a47abfd,
+0x05f4674e7,
+0x0d9e10aae,
+0x0031c4d4b,
+0x00dd9f52a,
+0x0053de15f,
+0x03544078f,
+0x047c1d714,
+0x0a490ef39,
+0x063a3f153,
+0x0c73091bf,
+0x0d799772b,
+0x0c2f3df74,
+0x0b3929c5f,
+0x0ce668aae,
+0x0ff840a9d,
+0x06d55eedb,
+0x08a3d814f,
+0x01c4aa298,
+0x0c0b07753,
+0x0bb0d72af,
+0x04fb03e3c,
+0x0d02aa6b6,
+0x02b899c8e,
+0x0c05bc61f,
+0x043ec4aa3,
+0x0137ebb58,
+0x0f19008e4,
+0x0d537fc00,
+0x03d96c901,
+0x0631a270f,
+0x066a63e3a,
+0x01041769c,
+0x006b2c8d5,
+0x0d17dd395,
+0x08700fdf0,
+0x0cc5f0ed1,
+0x0be15b7f0,
+0x053862609,
+0x0ceca8790,
+0x0db91ad3b,
+0x0be58f87c,
+0x0eb27fba0,
+0x06ad376f2,
+0x0bfcb1417,
+0x06d399a17,
+0x08956748f,
+0x0bfc13c21,
+0x048eb330b,
+0x0b0487639,
+0x07b28142a,
+0x0ce5563a7,
+0x09e8f6942,
+0x099b7a069,
+0x03a280226,
+0x09ea1b7fe,
+0x014b673e7,
+0x00bdc4180,
+0x0bb51c3a8,
+0x06541705b,
+0x05fdd74f4,
+0x00c7393e6,
+0x0f6efbff2,
+0x05c671b30,
+0x01c63331e,
+0x0b5a9cf7d,
+0x0b046e7d4,
+0x09f71793e,
+0x00fdb6dc8,
+0x01c5b915a,
+0x0da83bf27,
+0x0fd9242f3,
+0x023215e80,
+0x0ff12a9e6,
+0x001733f75,
+0x082f2fb45,
+0x069a391b8,
+0x0bac0767b,
+0x03e22213a,
+0x0a295018e,
+0x05f590e16,
+0x0774b382e,
+0x0537f341d,
+0x0ad2fd1df,
+0x05e3fe186,
+0x016c5cbd3,
+0x07aade438,
+0x0221fb367,
+0x051a9fd14,
+0x0e9a3ddda,
+0x0a22dff17,
+0x047e66e4f,
+0x069f303e3,
+0x009caa94b,
+0x0ce80cbed,
+0x0cc116a0f,
+0x0f586b103,
+0x07e554a56,
+0x0d47de114,
+0x0be49267a,
+0x0d21c016e,
+0x0961148ca,
+0x06cfd8861,
+0x02b5c89f2,
+0x018e194be,
+0x0b874c8e0,
+0x0a58e73fe,
+0x09bb87e89,
+0x0d46850f4,
+0x080dac4e2,
+0x0b85349d9,
+0x012fec0c8,
+0x0891e9f3e,
+0x06ffbf6eb,
+0x07b4e6720,
+0x0726e58ed,
+0x0a53f3a39,
+0x0433d54c8,
+0x0339f5ad4,
+0x0c697a561,
+0x00b7845af,
+0x04409fb02,
+0x0e4648713,
+0x0aec2ff4a,
+0x0090f4ad2,
+0x0c4eb7713,
+0x0947dce8e,
+0x02484da4d,
+0x0c12fb4e7,
+0x079afc021,
+0x09700d470,
+0x02a35b027,
+0x0d2673ca9,
+0x08836adf6,
+0x0dc649a46,
+0x03bf091c7,
+0x0e0e88b82,
+0x001dec3c0,
+0x022353c76,
+0x0b2d666e0,
+0x0d0932d17,
+0x0c0041b08,
+0x00ed1a69f,
+0x040d36267,
+0x08617c074,
+0x05b3b1397,
+0x0e767329e,
+0x0d0437b9e,
+0x0e0c9ef12,
+0x0681435f7,
+0x0994ded72,
+0x073d9e0ed,
+0x006d27f1f,
+0x050c2fba1,
+0x02e8d32b7,
+0x09ea9857a,
+0x0f4ca5535,
+0x057141f47,
+0x01f592f2e,
+0x034652123,
+0x04b5e965d,
+0x0a0154cc9,
+0x0d8cb0eec,
+0x0d78669ce,
+0x0733e132b,
+0x070a21bfe,
+0x0220fadc0,
+0x083a79339,
+0x0814ee990,
+0x0a84a880f,
+0x025be3242,
+0x046b7cc2c,
+0x01d2dc678,
+0x0f54695df,
+0x0ba3c25e1,
+0x03c001860,
+0x099140693,
+0x066eb8be5,
+0x0125a281c,
+0x0117ebbe6,
+0x0393f6cfa,
+0x0168d239d,
+0x0a98da366,
+0x0b0f1e01a,
+0x08197cf6b,
+0x040abc1d0,
+0x0091d462f,
+0x0933fcdd0,
+0x0457eacf5,
+0x0b4337781,
+0x092ebc668,
+0x0daf7f687,
+0x00ec7929f,
+0x012808993,
+0x0928dd303,
+0x0e1dd9379,
+0x09efd8f98,
+0x01efd9aa9,
+0x083840a92,
+0x03c9af931,
+0x0adb76fef,
+0x069ca51b6,
+0x097b77045,
+0x061f5d525,
+0x001c067e5,
+0x0e610fa8b,
+0x0fe69f9ee,
+0x0ef6341e6,
+0x033aff6a4,
+0x0833a6996,
+0x0d3e3977f,
+0x06b24688e,
+0x00bdef675,
+0x003232ab5,
+0x01b3826cb,
+0x0c4888a73,
+0x09d31b5f1,
+0x00c449834,
+0x09093752d,
+0x0c3dab77e,
+0x031222ae3,
+0x06c6fe140,
+0x0338b448e,
+0x0bb8deeda,
+0x01815343b,
+0x020867a64,
+0x0edf3e74d,
+0x04295db09,
+0x07e619bc7,
+0x0aa20757c,
+0x0e470cef7,
+0x05a6ac150,
+0x0cf9096d3,
+0x0d32c180f,
+0x0918a8e71,
+0x0d6327d95,
+0x0e009d380,
+0x0dd8c888c,
+0x06f6484a9,
+0x0d6f61129,
+0x0a6e5a1b5,
+0x0171bbe63,
+0x06266ea13,
+0x08999c4d6,
+0x0f2173bf4,
+0x0076e249d,
+0x0f5931642,
+0x02a906145,
+0x03d23a71a,
+0x03cb85833,
+0x070704500,
+0x050895a27,
+0x035ec949e,
+0x00f0bffa9,
+0x0fa507d27,
+0x066bc07e3,
+0x093b55122,
+0x05d43e64d,
+0x080cd2413,
+0x00748d44c,
+0x0dac30106,
+0x07770de0d,
+0x009396a23,
+0x0dfc4c7d0,
+0x0056a299d,
+0x0e56ca298,
+0x083f6ca8b,
+0x05953a4f0,
+0x05f383389,
+0x074943e2e,
+0x03b46dfd3,
+0x08cfb69db,
+0x020194171,
+0x037ecc4e1,
+0x0557ce3ac,
+0x04b96cd50,
+0x0bc3d7acd,
+0x002a8c79a,
+0x0cd89aa3a,
+0x028855811,
+0x0c50e86bf,
+0x0d721c5b7,
+0x09a2dc057,
+0x06003b347,
+0x0ba0c0387,
+0x04eca763e,
+0x0b3f14986,
+0x0ca69d420,
+0x026d11b6c,
+0x08efc92be,
+0x05af25ace,
+0x0f9cafd68,
+0x0eb7c4ad2,
+0x04e3b062c,
+0x06df7f581,
+0x04143adce,
+0x0f0fed831,
+0x038ddb147,
+0x04443a19b,
+0x07fe6791c,
+0x0b9b8a026,
+0x0a748b28e,
+0x000218f39,
+0x0e2522b4b,
+0x0f0beeb3b,
+0x0dd420eec,
+0x04139b103,
+0x0d6d4fe1c,
+0x0a2ff3e36,
+0x021f43f4c,
+0x0460b39a5,
+0x07161177e,
+0x0ab71a038,
+0x0d104e224,
+0x084d9843e,
+0x04109a249,
+0x0b7faa916,
+0x058ec7bfa,
+0x07fc0c5a1,
+0x003938afc,
+0x08cba9e8a,
+0x0b7485520,
+0x02e91ff16,
+0x0f751fcd0,
+0x02b25bde8,
+0x0d90f3f2e,
+0x0978c90ea,
+0x00d7ad91f,
+0x0292bc688,
+0x0eae3efcc,
+0x09bd3b009,
+0x019daa97c,
+0x02d7781ad,
+0x0472105ab,
+0x0a4849067,
+0x0beb10cea,
+0x0a2e142f4,
+0x057b8b105,
+0x0c03557ca,
+0x0588525c9,
+0x06ba17352,
+0x070989eb4,
+0x05dce6585,
+0x06adc0b1e,
+0x0c67ea888,
+0x0e7245be6,
+0x00d6fea99,
+0x050af5d39,
+0x0438c0b70,
+0x0e0d739e1,
+0x0bbd8cdf8,
+0x026ee9191,
+0x01c02a6ae,
+0x06d38f374,
+0x0817625c2,
+0x07fd8078e,
+0x097f15ca9,
+0x094448e6e,
+0x0eb062c75,
+0x0526f1e61,
+0x072929578,
+0x0dd4d744e,
+0x073039758,
+0x0d7c36b8b,
+0x067a832cf,
+0x0258104f5,
+0x0624b03ef,
+0x098cf1bdd,
+0x080c4720c,
+0x02d3f944b,
+0x0c3802165,
+0x0e62b4c35,
+0x0acc87cf0,
+0x0f613ae5c,
+0x0e3cb3ea2,
+0x0a445a29a,
+0x08a3f07bc,
+0x0614a91ac,
+0x0f63a0bf6,
+0x064995a89,
+0x007d0cfca,
+0x08e57e005,
+0x0bee1a252,
+0x0c82996a0,
+0x0df1f41b3,
+0x08f2e87ea,
+0x0816eac08,
+0x01b0d8d62,
+0x0c721019b,
+0x023b40214,
+0x09f052f7c,
+0x0e8fc360e,
+0x0d8e13f06,
+0x0ea3719d4,
+0x0aee4f935,
+0x0974edd4f,
+0x0cedc8479,
+0x0f224b497,
+0x0ad84fd4b,
+0x02f9d939f,
+0x0f72eac4b,
+0x0c65a6d53,
+0x007cb790d,
+0x09eac83f6,
+0x016056b68,
+0x0c39a0909,
+0x0eea71871,
+0x0ce3ed03a,
+0x0aa67f128,
+0x00839bf2a,
+0x049558928,
+0x0521cf5b5,
+0x0aad816df,
+0x0f2685e70,
+0x089fbb298,
+0x08bfc6703,
+0x0cec720f9,
+0x08401bff6,
+0x0e60ffdb9,
+0x00c8e572d,
+0x02ea11748,
+0x0dcfe7cf4,
+0x055a1221a,
+0x00dc89d0b,
+0x0e1a736e6,
+0x0dea88a03,
+0x01e83f3eb,
+0x05e18817d,
+0x02a2737a3,
+0x05e3a8014,
+0x0f4d31f55,
+0x00a5d962c,
+0x0217b3706,
+0x018784198,
+0x0178acc71,
+0x030ba3da7,
+0x0eae8f10b,
+0x00a15a733,
+0x0fb39a584,
+0x0582ea7d1,
+0x073d011c7,
+0x01635f576,
+0x05e3da059,
+0x098fa59bb,
+0x0784f8976,
+0x0fc00f6da,
+0x02a24bec4,
+0x05ae4d304,
+0x0bdcdb6ae,
+0x0cbccf546,
+0x06faccd50,
+0x0a8e7d2de,
+0x0e3e0a6f3,
+0x038b65d5d,
+0x08a3aaf6c,
+0x0e0c2ba0b,
+0x066fb7945,
+0x037e62e6e,
+0x0a5fca7e4,
+0x0544019de,
+0x0b5fd005b,
+0x0df72d043,
+0x015c7fdca,
+0x0ac468676,
+0x0deb985c8,
+0x0cb42ee97,
+0x09f64cee6,
+0x0fb3bc9cc,
+0x0c3c7dc5d,
+0x01bfe2add,
+0x01b70f2a8,
+0x0e47479a9,
+0x09bdfa084,
+0x0e408af5a,
+0x0efb75f84,
+0x04efd6341,
+0x0789209b0,
+0x01a29321a,
+0x0006ae8bb,
+0x0e68e43f9,
+0x04b598e73,
+0x005f7e592,
+0x08500d1de,
+0x0ecf0049e,
+0x0d8bdaba1,
+0x00342c11a,
+0x046ffe989,
+0x0598b5ad7,
+0x0476b848b,
+0x0257efc72,
+0x0a7e90156,
+0x0862f3090,
+0x039be580e,
+0x0ecf9a93b,
+0x0cdebf49d,
+0x098bdc3b7,
+0x08e0461e8,
+0x09b21b2aa,
+0x0485a3a47,
+0x0d82eb017,
+0x0cc0be122,
+0x0f92c541d,
+0x01ccebd18,
+0x0cc1e574f,
+0x0fe6035a9,
+0x0a5684b5d,
+0x0e18ff72e,
+0x0b1b17eae,
+0x08013b6e3,
+0x0a9284a5c,
+0x0f0365927,
+0x0e47574e2,
+0x06e4793f2,
+0x086ca81fa,
+0x046a1b305,
+0x0e18ff428,
+0x0178c9cfc,
+0x010770bba,
+0x0f02841e5,
+0x0b8068d78,
+0x0fc8665b5,
+0x0ac919600,
+0x00902604c,
+0x0b770b2a2,
+0x0ae413527,
+0x06410cfeb,
+0x0682852fc,
+0x0b3e77132,
+0x094c9a8b4,
+0x0f5a8b962,
+0x0345e877d,
+0x0d9ff85c4,
+0x0f7140055,
+0x024910aba,
+0x003928b19,
+0x07b13a562,
+0x051bbd1e3,
+0x085cc9170,
+0x02850714f,
+0x00408ce7c,
+0x0c1adeba0,
+0x0053fb229,
+0x03f6446f5,
+0x036d23353,
+0x07f5d84cd,
+0x0c862f80a,
+0x0d8a51798,
+0x08704c386,
+0x01f2444c8,
+0x035ec611f,
+0x0163ee792,
+0x01258dcfa,
+0x02784954a,
+0x0552b46b4,
+0x01f1ad8a7,
+0x07c568266,
+0x03a8ca573,
+0x0077186fe,
+0x011d760d3,
+0x0464864b7,
+0x0211ce840,
+0x0d6d33b08,
+0x00555a538,
+0x017d4d53d,
+0x0cb3ffbd3,
+0x00d0a8df8,
+0x074daa602,
+0x08da0f210,
+0x0be762c9d,
+0x063a570b7,
+0x062d12b26,
+0x085b3af15,
+0x08d69a03c,
+0x07f8da640,
+0x02a4bc1b2,
+0x0d16b6e17,
+0x06aee948f,
+0x008fe983b,
+0x0a53e2bfe,
+0x0fd99375c,
+0x0cc687379,
+0x04b7836b5,
+0x0ff783c03,
+0x039733505,
+0x01936e19d,
+0x075380994,
+0x021895c94,
+0x01a5dc1d1,
+0x015bbc44d,
+0x0156dc6c4,
+0x0ab8cf79b,
+0x054049315,
+0x0b7b4ebff,
+0x0ceac5824,
+0x000538424,
+0x06c0aa48a,
+0x0b43f5e2b,
+0x089f6d45b,
+0x057c4759b,
+0x0e95c3c7c,
+0x002cf9a73,
+0x0c4590052,
+0x0c9554711,
+0x0700c6bb8,
+0x0a2ac2cdd,
+0x04b1942e6,
+0x0f628576d,
+0x0939155ea,
+0x04db02e42,
+0x0227486f1,
+0x0610c0a15,
+0x04d9d8eb8,
+0x03b01255c,
+0x0f33d74e7,
+0x0bfddf224,
+0x09f9288de,
+0x0f601edd6,
+0x0f7e692c1,
+0x052885565,
+0x0b1859e47,
+0x012780615,
+0x03c1ab087,
+0x00b7d3934,
+0x0c37cca63,
+0x025ec7534,
+0x00ed25231,
+0x02e1755bb,
+0x00cb184a8,
+0x0b21616a5,
+0x087dca961,
+0x0a21b933e,
+0x085278ba1,
+0x086428368,
+0x00e3b9715,
+0x03ff63f32,
+0x0a00fb43a,
+0x0d879e104,
+0x03260e1f2,
+0x0e8789f25,
+0x08939b73f,
+0x00c384a3d,
+0x0f11be5e4,
+0x0e41f4b91,
+0x0786f1538,
+0x04a5977d4,
+0x0ece4ca24,
+0x0ef405bdc,
+0x0202e151f,
+0x09a41a3cc,
+0x00b2e6126,
+0x06a0361d3,
+0x0bace4a29,
+0x02430611e,
+0x0796b3ff9,
+0x056523591,
+0x0423d3415,
+0x0d240428d,
+0x08392fe31,
+0x00eaaf74d,
+0x035901a01,
+0x0d590a25e,
+0x0050ef368,
+0x0a29ce813,
+0x086bc778b,
+0x0498740dd,
+0x0e4ff4d64,
+0x02e5e9baa,
+0x05b0efffb,
+0x05fc1945d,
+0x0f215314b,
+0x06583f606,
+0x038f5346d,
+0x0da31efdc,
+0x0a2bbd3ae,
+0x05bd75a0f,
+0x0fbca3489,
+0x02ad92608,
+0x0ef72abec,
+0x004000328,
+0x0f09c593d,
+0x0b097e7ac,
+0x05d51ba46,
+0x02b697b60,
+0x0579b5607,
+0x08742e970,
+0x053f6946e,
+0x06248d625,
+0x09f04dd99,
+0x03c75b703,
+0x04754f071,
+0x08dc095e0,
+0x0ad9ccefc,
+0x0bdbffc1c,
+0x01313b235,
+0x0d96fe8e1,
+0x07c25c06a,
+0x00016f5e6,
+0x022921405,
+0x05cf5386b,
+0x00e4b558b,
+0x033bcb1d0,
+0x0a5ae5ecb,
+0x01135dae3,
+0x095072ed6,
+0x0d302b8c3,
+0x01fd2cafa,
+0x0a0601856,
+0x02571682b,
+0x07d8ec841,
+0x0140e8f52,
+0x0331396e9,
+0x0f8738cfb,
+0x05d1444f4,
+0x06e24d6f6,
+0x09c13b2ec,
+0x098e6a097,
+0x0c3a624a3,
+0x08dd55477,
+0x02b6f3c95,
+0x0bf015964,
+0x0cf0b27a2,
+0x086cf6be2,
+0x00112939c,
+0x0d926f616,
+0x01fbf5c25,
+0x03d1779e1,
+0x0ee0f1f4b,
+0x06b752449,
+0x01d911014,
+0x082c79280,
+0x0d337afba,
+0x080b647f1,
+0x0d6f98849,
+0x0417a2e2f,
+0x0f2b86b2c,
+0x060731394,
+0x043ab0e52,
+0x006c1a008,
+0x0d9d488f4,
+0x09f65c93e,
+0x095e92822,
+0x00076dc77,
+0x05f054133,
+0x06885aca5,
+0x051ab1741,
+0x092d50bc9,
+0x0afff0762,
+0x08e5d26e7,
+0x0139f0f7b,
+0x0379da044,
+0x092755b7d,
+0x08d77dcde,
+0x04d8cef0f,
+0x042b42bc8,
+0x0c9983c3a,
+0x02a0280f5,
+0x0c0a2a4db,
+0x07e01fd1c,
+0x009a48aad,
+0x0bc0479f1,
+0x029c5db12,
+0x04b79a16b,
+0x002007e2e,
+0x08eb39023,
+0x066daef70,
+0x021a6c28c,
+0x0cdbf9d7d,
+0x0f0dab2f2,
+0x05795bc01,
+0x0c4047f25,
+0x089889066,
+0x0b55190b1,
+0x0df7135e1,
+0x08e1145b5,
+0x0e52e8369,
+0x0ebf22b2f,
+0x0b9b5719a,
+0x084f07023,
+0x0468dc525,
+0x08ca1cb7c,
+0x043ad2efd,
+0x0a8e2595a,
+0x07a67bb88,
+0x0a738b7c9,
+0x0fc92a8a1,
+0x02d186b02,
+0x0ff524d0d,
+0x06c81d65e,
+0x03db40556,
+0x0d185ad7a,
+0x0ae05607e,
+0x00d8bf913,
+0x098e8744e,
+0x097b9b886,
+0x0e184240a,
+0x0fff4e4c8,
+0x05e4baeb9,
+0x070fb7f69,
+0x04902629f,
+0x0af1148b7,
+0x005de5417,
+0x0511b5754,
+0x03c754ce1,
+0x002f9c1b0,
+0x09c8a588d,
+0x046b2c369,
+0x0c433c12a,
+0x06fdcb597,
+0x0df9086e5,
+0x0d6d805b3,
+0x083144c62,
+0x0713f4bae,
+0x0647bea1b,
+0x0df7430d2,
+0x059f2d3ae,
+0x06de8067e,
+0x0070dcca1,
+0x0b0b57a4e,
+0x0ea87153a,
+0x002ac8c75,
+0x0d9bdddad,
+0x0e365d9b4,
+0x016f7f495,
+0x09b64fc8a,
+0x000cdf739,
+0x0af0b9500,
+0x03a8cd573,
+0x012b0c478,
+0x03307f1a0,
+0x0282036ff,
+0x01f731dcb,
+0x0ca5b4e60,
diff --git a/src/cpu/intel/model_206ax/microcode-m12206a7_00000025.h b/src/cpu/intel/model_206ax/microcode-m12206a7_00000025.h
deleted file mode 100644
index 229fba2..0000000
--- a/src/cpu/intel/model_206ax/microcode-m12206a7_00000025.h
+++ /dev/null
@@ -1,611 +0,0 @@
-//+++
-//	Copyright (c) <1995-2011>, Intel Corporation.
-//	All rights reserved.
-//
-//	Redistribution. Redistribution and use in binary form, without modification, are
-//	permitted provided that the following conditions are met:
-//		.Redistributions must reproduce the above copyright notice and the following
-//	disclaimer in the documentation and/or other materials provided with the
-//	distribution.
-//		.Neither the name of Intel Corporation nor the names of its suppliers may be used
-//	to endorse or promote products derived from this software without specific prior
-//	written permission.
-//		.No reverse engineering, decompilation, or disassembly of this software is
-//	permitted.
-//		."Binary form" includes any format commonly used for electronic conveyance
-//	which is a reversible, bit-exact translation of binary representation to ASCII or
-//	ISO text, for example, "uuencode."
-//
-//	DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-//	HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-//	WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-//	WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-//	PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-//	OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-//	SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-//	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-//	LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-//	CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-//	STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-//	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-//	ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-//---
-/*  Thu Nov 10 10:30:59 CST 2011  */
-/*  m12206a7_00000025.inc  */
-0x00000001,	0x00000025,	0x10112011,	0x000206a7,
-0x6aa14554,	0x00000001,	0x00000012,	0x000023d0,
-0x00002400,	0x00000000,	0x00000000,	0x00000000,
-0x00000000,	0x000000a1,	0x00020001,	0x00000025,
-0x00000000,	0x00000000,	0x20111011,	0x000008d1,
-0x00000001,	0x000206a7,	0x00000000,	0x00000000,
-0x00000000,	0x00000000,	0x00000000,	0x00000000,
-0x00000000,	0x000008d1,	0x00000000,	0x00000000,
-0x00000000,	0x00000000,	0x00000000,	0x00000000,
-0x9d225b45,	0x6ab4c3b0,	0xebba1c32,	0x469a230a,
-0x8a7d6315,	0x2fc24d3e,	0x82506f79,	0x18dbb9d6,
-0x1a7bbeb1,	0x355a1d62,	0x2e7eb594,	0x09f8dea9,
-0x432a49e4,	0xbf520253,	0xdafa4010,	0x893a858a,
-0x766e0efb,	0xd91e196d,	0x838bd2ef,	0xe5146494,
-0xd515f413,	0x29704828,	0xe85598b6,	0xdcbe6c51,
-0x88eabbfa,	0xa1e8909f,	0xd8931721,	0x35386554,
-0x089a78a7,	0xd9914775,	0xd4644748,	0x1556a4dc,
-0xf44448f6,	0xd054d7db,	0xf30f2b7d,	0x5ae223d0,
-0xcbbb48b0,	0x5c8b0383,	0x177de157,	0x9c1e5f73,
-0x2ec28289,	0xd72a7b6c,	0x823b6eb2,	0x35e02171,
-0xba8deae4,	0x06f4d468,	0x13dbafaa,	0x72b419f1,
-0x033385b5,	0x05806920,	0x4c6034cf,	0x9bd117dc,
-0x976e2d04,	0x250330f0,	0x7250b5e1,	0x184980c2,
-0x12a9d7d6,	0x1bc808f9,	0xae79994f,	0xc6f87901,
-0xc0e3132f,	0x671491c5,	0x236cad39,	0x37889d9c,
-0x67f7c3f3,	0x964a6be5,	0xbcced7da,	0x57eeaa6e,
-0x7bca1522,	0x654fee4c,	0x2a1ca5d9,	0xa1803cf3,
-0x00000011,	0x3f96e33b,	0xbcc97e7d,	0xfecb5781,
-0x24a87ac3,	0x281fad3d,	0x6c5d0169,	0x406f3d4b,
-0x1bedf9bf,	0x514f3332,	0xb33e1926,	0x539139d4,
-0x0b5a03bb,	0x7948224c,	0x403919aa,	0xd30c64b2,
-0xb1df420a,	0xbc62cb65,	0x8b036cd8,	0x662064a0,
-0x7381ae61,	0xfb070274,	0x9a3978d9,	0x051c1cbd,
-0x7bcfb857,	0x2c94fcc0,	0x25f643f1,	0xda3d4463,
-0x8aad6318,	0xabd2966c,	0x663d015a,	0x9fe4c504,
-0x43786fce,	0xa1b3dfdc,	0x435783a4,	0x1e44e90a,
-0x85ae6018,	0x9402a6c9,	0x709f4d13,	0x1bdec841,
-0x4840a539,	0xaa446221,	0x27401d2d,	0x1e0d39c6,
-0x6ae8973f,	0xc8b603b8,	0x8044340d,	0x9a4846e1,
-0xf7e68ad9,	0xd2a0cbd1,	0xc64bf2bf,	0x51286697,
-0xf3110b6f,	0x1562e9dc,	0xc682712e,	0x5cfbda8f,
-0x0d575c4f,	0x929f8530,	0x69abd158,	0x41c783e1,
-0xbfe313de,	0x33cbec29,	0xbcbddb8a,	0xe0861b12,
-0x866f3884,	0xf3b79ad6,	0x3415ad37,	0x3a17893c,
-0xb29694df,	0xecd242ce,	0x5d8231ef,	0x5b208f8f,
-0xc781cb94,	0xeb8dc8b8,	0x9d04fd73,	0x4639b3f9,
-0x543fbc28,	0x3957879c,	0xc7f0d4a1,	0x29ac4965,
-0x10f47a96,	0xf7d5b5ce,	0x8ed0c39f,	0x5a36d20f,
-0xff5bd157,	0xf4a3152e,	0xfa9087b4,	0xe4021354,
-0x2b394395,	0x118d8abd,	0xa6ef26da,	0xe47688e5,
-0x15352ccd,	0xa2a1120c,	0xf86a3b13,	0x3453d233,
-0x74d464e9,	0x28cb0910,	0x1c0d9908,	0xf7a672c4,
-0xa725013d,	0xfd618f4a,	0x2035f826,	0x2544d00b,
-0xe6bd2f30,	0xd6e3992f,	0xf7f39f5e,	0x282a3593,
-0x00de27bf,	0x5d0470c2,	0x14473c88,	0xc763ad23,
-0x2ccd5c60,	0x71f0d333,	0x09e8b8cd,	0x716fd1e1,
-0x2dfd1003,	0x006b819f,	0x7b157ad2,	0xa6305470,
-0xcde50f1a,	0x955bc9c8,	0xbe464835,	0xf67f9b33,
-0x21ab56ea,	0xc133d4c6,	0x77d754bf,	0x130877e0,
-0xbd1b247a,	0x7840690d,	0xe6174dd0,	0x61d13bfd,
-0x675ae943,	0x9149e21b,	0xce8ddf65,	0xe06ca163,
-0x33ee3750,	0xa89318e4,	0xa5476a0f,	0x72d15429,
-0x1442d6e5,	0x13f70d65,	0x81923d22,	0x4eefbbc5,
-0x1af2cbf1,	0x052ae881,	0x2fcb621a,	0x44e6c1f6,
-0x10c0c127,	0x6132dbfc,	0x0b3e5d38,	0x18379c7c,
-0x24848ccf,	0xb929cddf,	0xbd0c9549,	0x68d44ac1,
-0xf1a4967b,	0x60d466f9,	0x60a12700,	0x6bdf875f,
-0x2d8255a9,	0x464c149d,	0x32c047ee,	0x5d744d6c,
-0xdf44c2b2,	0xda41f152,	0xb83bd853,	0x3f612ed9,
-0xcecd3f95,	0xde938fc5,	0x2120712d,	0x6e895650,
-0xa5d34947,	0xb5d7459d,	0x13df64d9,	0xf8d40e55,
-0x7f590e01,	0x1724e7cf,	0x5843ee08,	0xdce43dd9,
-0x574cae1c,	0x5ec349e6,	0x56ab1066,	0x7d518ee9,
-0x1f83b1fe,	0xac633b58,	0xcef8a5fd,	0xacf35357,
-0xa93932b1,	0x64e73ca0,	0xb824e2b0,	0xb6c68da4,
-0x287ee847,	0xec1dbf97,	0xd313d2fa,	0x9fe37eec,
-0x281d8559,	0x2fd0c6c7,	0x15e9a89a,	0x273e9932,
-0xf081dec8,	0xa04d5e16,	0x8a3ac66a,	0xe5b25b5c,
-0x4138b7b3,	0xace013c4,	0xe5bee1c8,	0xd9daafd4,
-0x952af837,	0xf28c36bf,	0xcdff2a71,	0xa1cf3b94,
-0x8821440c,	0x3693fab8,	0xd6d2d0d0,	0xa2ccd66d,
-0xe8736467,	0x8a8952f8,	0xe32db4d9,	0x47b71bdf,
-0x620f3c22,	0xdb2922a7,	0x98e5cc6b,	0x905be886,
-0x822feb82,	0xf722cf0c,	0x7a356d80,	0x9c6b3ab6,
-0x19a3cc17,	0x08dfaf09,	0x4c99a23d,	0x0926d99e,
-0xa81577e5,	0xc684495a,	0x359aa743,	0xbc7aa166,
-0xaac2e24d,	0x16110785,	0x8ccc6fbc,	0xfd90cf70,
-0xb34be19c,	0xf57fef0d,	0x9c29c8a7,	0x022c249d,
-0x946cef68,	0xe07b7779,	0x4f6ea6b4,	0xe3a4eef4,
-0xfed31061,	0x96e78ae9,	0x220c0f91,	0x30aca707,
-0xa081c7b9,	0x159dc936,	0x4cbaa290,	0x447910e2,
-0x6ec95f93,	0x3cc3fde8,	0xce2c17a1,	0x4f18c4cb,
-0x025605b1,	0xbce02471,	0x21656693,	0x9368f6cd,
-0x0c19760f,	0xcc35da81,	0x4c5edab1,	0x85a0890e,
-0xbc5b861e,	0x203a23a6,	0xddc7d7ed,	0x0b585825,
-0xec9e7ab2,	0x1f1ad49a,	0xa7444b1f,	0xe77976b4,
-0x99e8c05e,	0x8b04c7c2,	0xb1aeb88b,	0x416d07ac,
-0x5a5689be,	0xe4094686,	0xe048c8e6,	0x2e0259dd,
-0xd2fe1113,	0x6190504b,	0xa0352318,	0x6f0cae7c,
-0x040da641,	0x29fab483,	0x2e354a07,	0xab62c485,
-0xbd787e0a,	0xc345308c,	0xc8ab8568,	0xf75adc1d,
-0x82b55654,	0x6cf29bbf,	0x8786a46e,	0x433c20d2,
-0x9229c1ee,	0x5e8eedf5,	0xab9bb981,	0x1a1a5419,
-0x97994816,	0x010eef10,	0x0172fd65,	0x975b8297,
-0xff6c4377,	0x6fca39f8,	0x13accf88,	0x94f05a02,
-0x5a772f20,	0xfbf97bca,	0x60801139,	0x64cbd0a6,
-0x72512821,	0x0830cb9a,	0x402f033c,	0xd0e2a50d,
-0x7ac45ee3,	0xbae23515,	0xd213695d,	0x72016572,
-0x20651143,	0x3552bc4d,	0xf014ebb1,	0x9aeebedf,
-0xee65d90f,	0x53abd424,	0x841f5383,	0xa43a2e44,
-0xee379480,	0x1638e568,	0x2573aad0,	0x2e935090,
-0xb9dcbe13,	0x9cdc4e30,	0xce8d170c,	0xbc546d14,
-0x18b77a7b,	0x3b652642,	0x79ae26c2,	0x5ab240c2,
-0xf74cfe35,	0x30be64cf,	0x3b5e7456,	0x81be84d1,
-0x12bb10db,	0x573da6b3,	0x83e28efe,	0x395c1512,
-0xf11928ee,	0xe64d50b5,	0x6f714c8b,	0xb3393f61,
-0x13b6b2f4,	0x0ab3b2aa,	0x5cada4c7,	0x19dfb423,
-0xe7b1c195,	0x47ee32d7,	0x03ab86bd,	0x08b8a8c6,
-0xdc7a6cdf,	0x3e5b4f68,	0x9ea0e297,	0x13193f7e,
-0x8fe31f30,	0x6118a11c,	0xc0762196,	0x9fd26fc0,
-0x9f515662,	0x5a1abb55,	0x5e434855,	0x4c6af26a,
-0x163cf95d,	0xa54ee076,	0xb41a0c1a,	0xf8a8affb,
-0x69db8391,	0xa7204db3,	0x86dc9909,	0x25ba82c5,
-0x04154f7a,	0xa191c23a,	0x6f3ee8ed,	0x55162d2b,
-0x14f9478d,	0xc717fb1c,	0x91408cdd,	0x7a87a50d,
-0x44d10ceb,	0xd04b5347,	0x82a3b3ce,	0x07e3998e,
-0x1dafee6f,	0x77c24219,	0x4ff885ef,	0xd994194a,
-0xfeff078a,	0x20f4b18a,	0x529676bd,	0x17738de7,
-0x01f8491b,	0xe31d2728,	0x34e5155b,	0x87120d79,
-0xb96f615c,	0xd6d15cd2,	0x4a1f66a8,	0xa0b37474,
-0x0713a36e,	0x70df574c,	0xe6015de6,	0x5f50f282,
-0xbd828397,	0xda75bb9f,	0x13e35581,	0x5bb84a7f,
-0xf66216ca,	0xac35d098,	0xff3a8f78,	0xb43a2d55,
-0xcb820994,	0x74f97ab1,	0x0ebb37aa,	0x5457d670,
-0xc7617908,	0x5f0ad21e,	0xeb8a4b9f,	0x0c678bc7,
-0x705cb6ce,	0xc2b3ef2a,	0x89c0c723,	0xab4399a9,
-0xc2216b3e,	0x9adda9ee,	0x82c7bfa0,	0x9d56f661,
-0x0f715ee5,	0x627d8182,	0x306a00b9,	0x2d9c259c,
-0x251b933c,	0x67fbe9e7,	0x103e2322,	0x29d1c68a,
-0x8f019d2f,	0x077e80b4,	0xbbbd9c2a,	0x266f4f74,
-0x96b32213,	0x5019c61d,	0x4a59782c,	0x8810efb7,
-0xfa55eaae,	0xbabe0b82,	0x956cae7f,	0xf016453c,
-0x255e2b2a,	0x1b805b17,	0x9c9b51cb,	0x0eaafa33,
-0x45fb3835,	0x2c2070d2,	0x70005da8,	0xf39c43b4,
-0x78c372ac,	0xa6fe8b80,	0x473ab824,	0x758cf1c0,
-0x8d012210,	0x8e26dc51,	0xf8f88450,	0xd1ffe2b8,
-0xa36a40ff,	0xbed11609,	0xaaa32039,	0xbc6ee3b5,
-0x36f84b62,	0xbacf3880,	0x26af8917,	0x9c6cb47f,
-0xa2a70b0b,	0x4b003af3,	0x83d9d354,	0x7aa355ce,
-0x75ec5db9,	0xa4384855,	0x0e8ac979,	0xa55a370e,
-0xbb3af0dd,	0x42153802,	0x32531de8,	0xe57570a8,
-0xe490a98c,	0xa9a910ee,	0x453953a6,	0x1348535e,
-0xb73595c5,	0x89bcd5dd,	0x0c68cc61,	0x5e880831,
-0x65cf0e50,	0xa4ccd3ac,	0xe61f9f5f,	0x01b610b0,
-0x7387c5aa,	0x6458654f,	0x35bbb16c,	0x90e9e91c,
-0xc56957f2,	0xaadb7f70,	0x07732d08,	0xce4ad932,
-0x7fa3e135,	0x31a83cad,	0x43271bcf,	0xa74b4eab,
-0x4f483674,	0x9cc84d3c,	0x7562feb5,	0x0b445b18,
-0xc1b1b769,	0xcfd31f23,	0xdf6f0843,	0x56789e7b,
-0x0ed7daf8,	0xe28e3610,	0x0b516cac,	0x5d805128,
-0xe430861d,	0x993bc596,	0xd85434cb,	0x740f7d13,
-0xe91e0d47,	0xe518a80f,	0xf729e13a,	0xd7fde910,
-0x838697c0,	0xf25c49b6,	0x7b9a6956,	0x70c8cb88,
-0xe5befc43,	0x84e0cd72,	0x2799a866,	0x62f8241e,
-0xa13dd267,	0x675404c0,	0x107995e6,	0xd5a44abb,
-0xe8b14bc2,	0x299705c4,	0xe691d679,	0x2a72edfa,
-0x353adfa6,	0x89aa4a58,	0x22247d90,	0x5a97fc14,
-0x09843de7,	0x4537f188,	0x7cd7cb9c,	0x7395900f,
-0xa178c352,	0x96fff660,	0x3b1d36a9,	0x7872cd2c,
-0x4e8e86ac,	0x6d0d129e,	0x366d1810,	0x84e4869f,
-0x9d73317d,	0xfc92685c,	0x6b3ba9cf,	0x573d9a1f,
-0xa5e5a1bd,	0x29620cbd,	0xd7a53209,	0x156f5151,
-0x58a48a3b,	0x91e00b57,	0xf68f1270,	0xb0911b95,
-0xf33c953b,	0x7402498a,	0x7cd9d9b5,	0x7f306060,
-0x08de3b88,	0x4e1b3dfa,	0xb7f0044f,	0x1e215ef7,
-0xaa6a9016,	0xdc45a3f7,	0x6a5266f9,	0x44f25fa1,
-0x64d10347,	0xf518fca6,	0x0043e846,	0x9f768875,
-0x2338de08,	0xecb485e7,	0xe53abf19,	0xdb887ab5,
-0xb61c7a2e,	0x33ff900b,	0xf8323567,	0x34eaf959,
-0x861b3ee3,	0xb416d9a8,	0x38073e63,	0x2f05c10f,
-0x84159c49,	0xaeb0462f,	0x82c74fd4,	0x471c5d20,
-0x6c6b77b9,	0xd9e07c77,	0xe49a020b,	0x9b15469b,
-0x53a1dd1d,	0xf372f68c,	0xc42b3729,	0xee64f017,
-0x06969bc7,	0xbc538ee3,	0xec79f4dd,	0xa948e000,
-0x77e45852,	0xeba3a61e,	0x21d74dc6,	0x62c47642,
-0xa12854b5,	0x10359530,	0x181703f1,	0xae4b7bf7,
-0x567633f7,	0x585012e9,	0x74e8837e,	0xf6750d5c,
-0x31edb0be,	0xa1fbe771,	0x1414bb70,	0x5f451222,
-0x56b71fa1,	0x42fe4e54,	0xaafb543f,	0x8e861547,
-0x8281a64c,	0x9f316107,	0x156bd5db,	0xd6b8e0e9,
-0x419fe658,	0x6897a516,	0x98d60208,	0xbbf31e8a,
-0x82e78e6f,	0xbb08b49a,	0x5b5fdeb5,	0xb3a9e8da,
-0xbfc6b353,	0xfbcdcf56,	0x20732e73,	0x8026f595,
-0x99cabead,	0xa831e2aa,	0x6a70356d,	0xa1566f0c,
-0x2340d50a,	0xd9e99b6f,	0xddd31fec,	0x79479c00,
-0x66c993e9,	0x3e5a6bbb,	0xc973c063,	0xcaf97f9a,
-0x94726d54,	0x367a657d,	0x084244e0,	0xea281246,
-0x8deca641,	0xca9812de,	0x9e6c0227,	0x6572f207,
-0x3d9282ad,	0x9a5888f8,	0x437fb2f2,	0xa59fd791,
-0xf46fad2f,	0x91b04878,	0xdbe527b9,	0xddf11081,
-0xfe7aab5d,	0x535d00d2,	0x6281997a,	0xbdf3a7fb,
-0x2b00033a,	0xfa6eee8c,	0xdf2ddf1c,	0x67a47291,
-0x5fcc2258,	0x9718099f,	0xb667495e,	0x154f12da,
-0xcade895c,	0x3c5a8529,	0x06727bf8,	0x28ece4f9,
-0x881481f3,	0xa5299ac6,	0x7602f0ed,	0x9cc90020,
-0x0e6e42bc,	0x749c85a6,	0x8fff0e9f,	0x75e4e9a4,
-0xd7d1b424,	0xec83f7d6,	0x229a883e,	0x35790b38,
-0x7f973e98,	0x1198edd9,	0x15349ffa,	0x3a5224ad,
-0x135f46e2,	0xa62b3da4,	0x3924c952,	0xcf193aed,
-0x1de1ce38,	0x57d72478,	0x605c1961,	0x45f76230,
-0x55f8d7b8,	0xe26499d8,	0xd214b4b8,	0xa9939f45,
-0x36610bd1,	0x65a3d400,	0xce82c54b,	0x2e4d3e01,
-0x07fdb9ec,	0xda246930,	0x6dcf119a,	0x80904d6c,
-0xe4950422,	0xe5e8bee8,	0x19e9d0d5,	0xacecf91b,
-0x0f4edefe,	0xc1d98382,	0x7e22975d,	0x3cc17318,
-0x036df2e6,	0x8811ba2d,	0xf9a75154,	0xeb65faa4,
-0xad7b4294,	0xae8be741,	0x23009705,	0xc3ec4131,
-0xf1257f3a,	0x7472f715,	0x6e6a9a61,	0x4f54f585,
-0xdc200841,	0x05164b24,	0x633b0c72,	0x7abd83a7,
-0xc32b4865,	0x7fafd317,	0x835395a1,	0xa1989b58,
-0x3638fae8,	0xcfcb3e12,	0x8370e894,	0x39ff005a,
-0xb61a1923,	0x047e0336,	0x5a7e61bb,	0x79bf462e,
-0xb978d8e2,	0x61036c49,	0xc4590141,	0x6a1b3cc8,
-0xef911d1f,	0x037c8e5e,	0x5e03ff55,	0x1d987d84,
-0x577afd01,	0xca680678,	0xef93d41f,	0x7eb7a00d,
-0x24b96544,	0xcae6dc5c,	0x13880a0c,	0x1931eb40,
-0x120bb052,	0x9d29c0d5,	0xe8508f3e,	0x48f79aa3,
-0x620c6e62,	0xe8a32b41,	0x9ef5f0cd,	0x734ccfe1,
-0xe373ddfd,	0xa58f816a,	0xbf0a8320,	0xdc9eb021,
-0x8d111767,	0xb63f07af,	0x34a49062,	0xc766e22e,
-0x7b858a87,	0xe30429f2,	0xb9d6e6d2,	0x2a5a0a5c,
-0xa69fcc61,	0xeabc878b,	0xa1bd76a3,	0xc1e7ad18,
-0xcdbb6778,	0x26f9f4cb,	0x5c5eb98e,	0x68595618,
-0x18980a09,	0x3f2fd59f,	0xc190c9e6,	0xbf9feb9b,
-0x82904bda,	0xd8caf976,	0x17759190,	0x0e3584d7,
-0xaae29da2,	0x5af72bb9,	0x10032dfb,	0x78fb8c42,
-0xb883ecb2,	0x023b5f8a,	0x29c8fac5,	0x6c0fd4dc,
-0x566ad781,	0x7c467064,	0x40b04bd0,	0x17483069,
-0x4edb6951,	0x722e9b73,	0x6b3aa8fa,	0x6102de88,
-0xf329cc45,	0xb9d9e5c6,	0xfdd1b48a,	0x7bee844f,
-0xdaa5ba6e,	0x1a77be4e,	0xf3fff7e4,	0x77f23560,
-0x52ec1835,	0x5a3309e6,	0x66e57a4f,	0x2e09d3f9,
-0x06c8dc63,	0x41cdbae8,	0x0471a391,	0x08f42ae2,
-0xd210e0d5,	0xffb0605d,	0x2bbc723b,	0x9bb7ebac,
-0xc8b1514e,	0x988de7d9,	0x3fe2681f,	0x25d50d87,
-0x75ef655e,	0xe4b6ee36,	0x534d0ed7,	0x09bbabc5,
-0x8c98d8c1,	0xda844b84,	0xe4cc19c5,	0xa337404b,
-0x2a0274f1,	0xbd2efe16,	0x7da6a62e,	0x2ac77399,
-0xb3354115,	0x147f564d,	0x53e0081c,	0x5879feab,
-0x6677eb78,	0x7a092b8d,	0xe4767106,	0x2522d836,
-0xe41a4856,	0x44375433,	0x03e50549,	0x82a25e07,
-0x600fc53a,	0xe9df6e40,	0x270a0e39,	0x99f3c993,
-0xdf81fa72,	0x4ebfc21d,	0xca53b339,	0x774df819,
-0xa91d2d62,	0xfeb422a7,	0x5441fa53,	0x5b233223,
-0xa804fafb,	0xbd45f42a,	0x4c5e0f6b,	0xe24ef499,
-0x4910fcd6,	0xadd7dafb,	0x2fd61693,	0x4472656d,
-0xa2764e29,	0x7d599640,	0xeb70907c,	0x4a649bcc,
-0xdfc05c3f,	0xeaef2ec4,	0xf6e1145e,	0x37bcc4e4,
-0xa53dba9e,	0xf03cc163,	0xc13c6931,	0x2edc20df,
-0x078d54b7,	0xee035c4b,	0x76101348,	0x72f252c9,
-0x98f1e252,	0x14daa04f,	0xed8ffea5,	0x3d2dab6b,
-0x44e76b29,	0xcdcd35ea,	0xfdb49b6c,	0x03f54f94,
-0x2b45bc9b,	0x1f13d589,	0x6695eb7f,	0xba389af8,
-0x9d3a77e6,	0x85b5d65f,	0x8bb17ab8,	0xdb6c6029,
-0xbec995d1,	0xbee54aa1,	0x5ea9416c,	0x8ef97a5e,
-0x704b8d5c,	0xcdc04d02,	0x9c6c5475,	0x4b296402,
-0x47387a84,	0x75d7d716,	0x7fabb8c9,	0xfe635111,
-0xb87ba47b,	0xe1c1fd1b,	0x5318691c,	0x0f4ea1d0,
-0xbc473b01,	0x0fa27fb4,	0x87dfe823,	0xc0b25fc7,
-0xef102726,	0x85246ca6,	0x82530da1,	0x6e520f56,
-0x6dad6256,	0x6d085c80,	0x06d4db1a,	0x9b346bf6,
-0x0de7db35,	0x7f20a08b,	0xbc587ca1,	0xb87be5ce,
-0x792d1d77,	0xd170de23,	0xa84917cd,	0xa508a09f,
-0x80c3fb3d,	0xdce4c70c,	0xd8803517,	0xb29e7dfb,
-0x922b4c99,	0xbcac718b,	0x2c3c2933,	0x21286fbe,
-0xf323b403,	0xc4d0fde9,	0xca754bcf,	0x4f87cb96,
-0xef6ef20d,	0xfdcc7cc1,	0x25c910ed,	0x3cc3835e,
-0xbf490f6c,	0x5c38abf6,	0x1ed9ac16,	0x06d77efd,
-0xf36d3abf,	0x812c8c7e,	0xa6adf73d,	0xcfcb345a,
-0xedb6a82f,	0x47132156,	0x810b50c1,	0xd75fa9e8,
-0xa11e5166,	0x25ca93a2,	0x3f5c3d5c,	0xc35f5289,
-0x32b5a15b,	0x5a5c99b2,	0xe8a5efb9,	0x6a764bc5,
-0xc841c2b3,	0xfcbcacfc,	0x8bb897f8,	0xa3651805,
-0x9bb91956,	0xc0262cbb,	0x693c8072,	0xcb6bd69f,
-0xcf9ff920,	0xd550b6e0,	0x95602c8f,	0x444f40c7,
-0x894d4cd0,	0x0010e65d,	0x6705fd32,	0x9b9c1c49,
-0x89447cd9,	0x791d1c5e,	0x3545f4eb,	0xbd708c36,
-0x54d4ec1f,	0x8e8c7541,	0x0befc0bb,	0x604b32b1,
-0x472242d0,	0xee64a895,	0x1aa38ffb,	0x58129ee0,
-0xca4f73f8,	0x402508a0,	0x9e47bdc7,	0x68f66e41,
-0xd21fc596,	0x22c6ad97,	0x895b94dd,	0xa2504849,
-0xa2e93280,	0xdb8b1017,	0x3d5c2f41,	0xa1141892,
-0x1bc6761f,	0xddd38e05,	0x6765e5fc,	0xdaf73d22,
-0xefea8b26,	0x072db03e,	0x206395f6,	0xd1f157cc,
-0x48076326,	0x96cc1c9e,	0x5d22a18e,	0xe09876c9,
-0x49735852,	0x2d22596d,	0x83fbd660,	0xad07c37b,
-0xa7eb7c8f,	0x8749415b,	0x4e2fb8ad,	0xfd14301e,
-0x2f34bf4c,	0x0897e405,	0xdd1674fb,	0x3fbbcb6c,
-0xce64eb32,	0x635f92ee,	0x0703710a,	0x8f5bbb08,
-0x44d53fea,	0x4031aeaa,	0x6c8e46b0,	0x3ef83794,
-0xf1a53b71,	0xf9fa63ac,	0x7eee8f50,	0x372a2115,
-0xbf5778e4,	0x9a0fa641,	0x7ce02977,	0x543b876e,
-0xcdc95e5e,	0xc2b9bbe0,	0x1ce9b510,	0x53e6085a,
-0xf5a1687c,	0x5a081846,	0x2e75f4e8,	0x59435753,
-0x3b1b421a,	0x181d1935,	0x80d07eeb,	0xbbf10c83,
-0x7dab3f14,	0xb00d2bf6,	0x0f118041,	0xc36373ce,
-0x8a9727da,	0x0694ab19,	0x406262c9,	0x7d03dc82,
-0xd381fc9d,	0x8b0a38a0,	0xd02ca17b,	0xd5f1b2e4,
-0xa3073d25,	0xf7bc4bb9,	0x71d3bcfd,	0x4b581f61,
-0x8b73ebcc,	0x59e0c26a,	0xdb93fe79,	0x3cbd90ba,
-0x69914b97,	0xd3165a59,	0xd56f756e,	0xa73ecf33,
-0xb1e27146,	0xb6869cdb,	0xd1535149,	0x1abbd8cf,
-0xafab3059,	0x75802fb5,	0x9e306c2d,	0x70775bb3,
-0xeb61fefb,	0x06417435,	0x3b0677c9,	0x2052b076,
-0x3ddafb36,	0x768e1e6c,	0x9fcb0e24,	0x8c48bbb0,
-0x325b3d6e,	0x71d22a1c,	0x82a4b55f,	0x9991b978,
-0xf6395a90,	0xcef98150,	0x34bf6ba8,	0x025faf6c,
-0x16e1532f,	0x0bcbb9be,	0xb538e854,	0x50a44c93,
-0xf3bb28e8,	0xc7a58580,	0x1d0c37bc,	0x537e7a40,
-0x87ae36f9,	0xefe50765,	0x91d4e689,	0x9feea767,
-0x40633598,	0xd73d5f27,	0xb9b3dfb6,	0x871e45d5,
-0xf14b7246,	0x7e30ec5f,	0xcca72651,	0x5bf4bec9,
-0x1febf9b2,	0xd3c0cc4d,	0x7011372c,	0xe43c14c4,
-0x383a72c5,	0x0d0ad12d,	0x10351ed2,	0xed4d4eed,
-0xf6ce5995,	0xf8013eb7,	0x797e2a3a,	0x50bfb3eb,
-0x21a827f9,	0xe57f0f1c,	0x5ad1f4f7,	0x94c96972,
-0x31fd2341,	0x5c3fdc9f,	0xc9977254,	0x4ff165c9,
-0x3f2fe417,	0x6ea43e26,	0x3ebb9fb6,	0x1bc55753,
-0x70c99c08,	0xc39c0026,	0x537681b9,	0x208c21cd,
-0x0c7a5403,	0x597efcef,	0x6be988ec,	0x218165ee,
-0x844795ec,	0x7628644a,	0xdca723b8,	0xece99c20,
-0xf0cf60a0,	0x530f93a6,	0x09d5e5b7,	0xb7374d5a,
-0x6c48408f,	0x1f538e31,	0x60992c0a,	0xaf459405,
-0xcc41703b,	0x60e58f6d,	0x9490284a,	0xf17ae982,
-0x3d95264d,	0xc8392eb8,	0xab992abc,	0x1e7895e4,
-0xe8488196,	0x332ecbb8,	0x218fc7f6,	0xe98dfb71,
-0x77d7e6e5,	0xfe1fba07,	0x2542bb6f,	0x934e60ff,
-0xe0e829e9,	0x1c00b6b9,	0x85395a25,	0x69daf035,
-0x30abc36a,	0x66dd22b7,	0x6245306a,	0xaddde5c0,
-0x4e04dbd0,	0xbb5a030c,	0xa5cca2d3,	0xa2e74827,
-0x5895a5d5,	0xa469ec03,	0x952dbea9,	0x10945bfc,
-0xadded5ea,	0x0819a75f,	0x98b50299,	0x6db9ac1f,
-0x8ec51f0f,	0x9876b3e0,	0xa604a743,	0xc4daa955,
-0x0ce72bbe,	0x3d45ccdb,	0x266e63c3,	0x9a6e65ef,
-0xad49601a,	0xaefbba48,	0x684ae417,	0x7eb5d504,
-0xdb3b476d,	0x935a21cd,	0xca75a938,	0xc9b5db9f,
-0xbff1d079,	0x672f54b5,	0xb06203d6,	0x5a8c1c73,
-0xc7baad2a,	0x241cdc99,	0xacba90b9,	0x9ebf8815,
-0x00bc590e,	0xd0ca284f,	0x6ef95529,	0xa3f8fade,
-0xa8730db1,	0xa8daf232,	0xf83dbbc1,	0xe92365fd,
-0x7de3f217,	0xd8fcfe30,	0x5477e0ae,	0x113c2c12,
-0x42670906,	0x6e1c5e37,	0x53704757,	0x212a922a,
-0x80446b4b,	0xac1e5158,	0x3d5138f7,	0x531ea8ad,
-0x9c750cca,	0x72aa6f97,	0x0c25e215,	0x852d7a37,
-0xd0d8f8ff,	0x3ace7b86,	0x1535e3bb,	0x216a5a59,
-0xb5cd6f41,	0x734d63a8,	0x9454799c,	0xd4fad0e2,
-0x73669742,	0xfe67a49d,	0xc55c7355,	0x08c4e57e,
-0xef962f80,	0x9664274e,	0xd349ab2e,	0x67961ba0,
-0x63dc0bc9,	0x46a1ae19,	0x08e1627e,	0x7d6ca569,
-0x101c5ea2,	0xdab84bbb,	0x2dc55a75,	0xcd49a33a,
-0x848200de,	0xa9d13dd1,	0xbeb93d9e,	0xb11aaa1c,
-0xb8d2d50c,	0xb56a384a,	0x62913304,	0x273503f6,
-0xce3b70e9,	0x2d792155,	0x395f4fa4,	0xd285d394,
-0x04119784,	0xd311691d,	0x176a6f10,	0x1f2e7a50,
-0x51efaa32,	0xc5ee3906,	0x79125b79,	0x1d2af495,
-0xd7358d56,	0xff8e5367,	0xc4234368,	0x3c461649,
-0x197af5ba,	0xd22701f7,	0x19ccadbc,	0x808da622,
-0x0d5a41b9,	0x34292985,	0x6d57221f,	0x952150b5,
-0xf5e39633,	0x65aa7a0c,	0x238fe4ec,	0x692c6d01,
-0x0587bd92,	0x298154c5,	0xceb23846,	0xbb18653d,
-0x0e081538,	0xd4b81118,	0xb3788dbf,	0x9384e224,
-0x126ebd30,	0x6cad6a3f,	0x0915426c,	0x1547b564,
-0x22d204ce,	0xfead5812,	0x513c91dd,	0x307cf6ba,
-0x1971d8a0,	0x045f93c7,	0x27c96ae2,	0x625a1a6e,
-0x940fa029,	0x1cb12b97,	0xc00e41bb,	0x8c6a032b,
-0x469108da,	0x4505b8ab,	0x5010b78f,	0x390e0be8,
-0xf4bf5a37,	0xf3494ab2,	0x5c9084f5,	0x2a197c7a,
-0x5611276e,	0x40b8a450,	0xba4f6321,	0xc772e5cd,
-0x0ea7070e,	0xbd4afff0,	0x6a9715ec,	0x21b2e161,
-0xfac2ae9b,	0x00e5ff50,	0xceba2003,	0xcd9bf99f,
-0xa5dcc3a2,	0xeccb134d,	0x213224c5,	0x37426c43,
-0x34af1b6c,	0xe7743de6,	0xc8dd2a26,	0xee5ab984,
-0xe09ab493,	0xde0066c7,	0x37529565,	0xbd3dfe53,
-0x27202b4e,	0xbcc7a208,	0xed6f4c45,	0x82cab65e,
-0x2afc80a9,	0xd063c3c2,	0xf41d48f4,	0xdc5fefee,
-0x4111aa68,	0xb20bef31,	0xf8004c44,	0x1c632882,
-0xd2530ec9,	0x4e956f3b,	0x240d5d12,	0x3dac3b36,
-0x2970d02a,	0xefa4c0eb,	0x950537cf,	0xcdc9d1b9,
-0x25449a3d,	0x1e76f046,	0x708114f9,	0x02a9ad00,
-0x5186ab9f,	0x8a301145,	0x8175f0f4,	0xacdff2ab,
-0xbaca756d,	0x65d33620,	0xe35a5db7,	0x69bb75cb,
-0x2f5c123d,	0x841f9c77,	0xffcf384e,	0x3aa6d707,
-0x3207be98,	0x83784052,	0x4eb0c27d,	0x6def8ca4,
-0x427910cf,	0x28bfceb8,	0x0ebda330,	0x9850fd1e,
-0x81e639f4,	0xa838aa33,	0x0174e6e7,	0xd768e4a2,
-0x2abe1041,	0x9cc6ecd8,	0x58c20300,	0x5824ebfa,
-0xadb81dfc,	0x3770a8b2,	0x473d8f26,	0x1e775e35,
-0x259f5ad7,	0x13fef5c5,	0x3aa92640,	0x5a76c79b,
-0xdfa3ff6b,	0x43d6bba4,	0xae2a900e,	0x8c698a3e,
-0x51ce5a96,	0x66908c24,	0x0911f46e,	0x70d619f7,
-0x972efb65,	0xb5c23792,	0x1b3ee153,	0x909746c1,
-0x8370fa25,	0xbcde8c5c,	0x1aa4f41d,	0x373a398a,
-0x3c8559a2,	0x4b528ba2,	0x54019afe,	0xe409c632,
-0x160581e2,	0x7e30d7d4,	0xf841f0a0,	0xdc1d200a,
-0x46ed47de,	0x0f77093c,	0xac835c24,	0x2ce29974,
-0xc031bfe9,	0xe879d971,	0xa67200ee,	0x3fe62089,
-0x90a38599,	0xcf7107d2,	0x45b49b01,	0xebb5ad89,
-0x8f42d795,	0x77b19427,	0x800e71fa,	0x6bc93b64,
-0xc0cdf4d6,	0x97dc9d9f,	0x7cf2edd3,	0xcb482372,
-0x6221fd9e,	0x84492515,	0xbd2b7283,	0xfc15f19e,
-0x547a79ae,	0x73337e65,	0xec64a1de,	0x822bf271,
-0x65c6b44a,	0x6d3246ea,	0x464aa85a,	0xd5110102,
-0x2578e4ef,	0xb5c4273f,	0xef03fde4,	0x1c5358fd,
-0x9b30fb66,	0x214b5514,	0xc7c50eb5,	0x76372928,
-0x5ec235f3,	0x20df4fbc,	0x12c684c5,	0x141308c1,
-0x1ffda6ae,	0x1a64f972,	0xad2f29b8,	0x4de7315a,
-0xd0fa953d,	0x8c55fe93,	0xa375129d,	0xd120f9b8,
-0xbb20cb19,	0x535d873d,	0x1fa8e047,	0x6dd4c1f5,
-0xd456632c,	0xa388867b,	0x762656d5,	0x00812012,
-0x1225a049,	0xf7900f05,	0x5b50f75d,	0xf720a919,
-0xbb8dcb70,	0xa6d48d13,	0xf750522c,	0x8ad277b3,
-0x334daf09,	0x5f882b42,	0x38a53713,	0xe9bbeef7,
-0xcc7fd1d6,	0xda484573,	0x4b3e2894,	0xbc0ef5ab,
-0xb2be1128,	0x88f27a64,	0x84ccdf55,	0x93aca22b,
-0x80b9641e,	0xa2bc2354,	0x5d78ca97,	0xb36ab105,
-0xdeb4d233,	0xe7e653bc,	0x7a29de17,	0x950c7ece,
-0xca5e997c,	0x5b8d4b6c,	0xaa5b0c7f,	0x2048cacf,
-0x71bd96bf,	0x580520f9,	0xc4da2129,	0xa3f0d78e,
-0x5235e085,	0x30c220c3,	0x2edbb5eb,	0xd12227ed,
-0x67f8faf5,	0x0d5f8ef1,	0xd8176ac6,	0x1ee955f7,
-0x13b75133,	0xb935ee9d,	0xdfe2d54f,	0x43ff1de9,
-0x6e848017,	0x4011e255,	0x5180f71b,	0x72ed0330,
-0xc737adbd,	0x7f6839a6,	0x142bd2d2,	0x66d6143b,
-0x69cf3cd0,	0x9b492cb9,	0x3266f995,	0x8ce763fe,
-0xdf8493e0,	0x8a981e31,	0xe6351c8e,	0xb0fd34fe,
-0xdc236978,	0x385f0118,	0x1c44fcdb,	0xcf70bb77,
-0x6046d066,	0x2d9475af,	0x3799ac4b,	0xe9efc39c,
-0x90d0450c,	0xa40a5fc6,	0xcfb5ef83,	0x049854c0,
-0x7215e231,	0x0424cc7e,	0x56ad0075,	0xff0a28a0,
-0x7488be97,	0xe1f82798,	0xc445794d,	0xeb7dd129,
-0x631403b5,	0xfcfd85de,	0xbf795cac,	0x00aafac9,
-0x6a2fe3ec,	0x294c2bde,	0x12861212,	0xddff6bfb,
-0xb0b29b5a,	0x46387e2d,	0x4a5a42a2,	0x4549f462,
-0x4f20df9b,	0xd189a190,	0x0ef70bb7,	0xa544ce4b,
-0x44a69377,	0x5e8c0f35,	0x2ecf5b5c,	0x0c1b08be,
-0x7f054c31,	0x73ed91a2,	0x82cd81c4,	0xf693111c,
-0x1ce7be10,	0x55d7acf8,	0x015c32a7,	0x5a3d7795,
-0x1372ac6d,	0x038755f6,	0xd1ed8be2,	0xe1b2bd04,
-0x20f3c81c,	0x326ffd81,	0x658c1e11,	0x37f74017,
-0x0a8388b2,	0xa8e74512,	0xcb9f97ab,	0x3588376e,
-0x483048d2,	0xe3ee2145,	0x029eba71,	0x2a6efdb8,
-0x7e629d7c,	0xe7458f31,	0xd2edd71b,	0xa265588c,
-0xee3a7a3d,	0xc3f6a74d,	0xb55fbbb2,	0xac3dc469,
-0x350e24ac,	0xfdfb094c,	0xc6760d93,	0x014aad92,
-0x4bf74e51,	0x9ab932af,	0xc600d00f,	0x5dd0c96d,
-0x6b081fbe,	0xecba3e1c,	0x19abcf55,	0x46905ea0,
-0x41ff2a8f,	0x9305e1c0,	0xdbfa1df1,	0x8100370e,
-0x0df9b3df,	0x09763efc,	0x60447b79,	0xb64eb88a,
-0xe4c706de,	0x2dadc973,	0xf6bc6357,	0x7395486a,
-0xf15aae31,	0x1daca268,	0xa5b8395f,	0x127bcb11,
-0xe84c9715,	0xe0417152,	0xc3d8520e,	0x0bdcbb00,
-0xf3daba82,	0xe1925ffb,	0x3526a2e8,	0xda189c78,
-0xa32bf2fc,	0xe7de02ab,	0x2f344593,	0x07b916dd,
-0xe2d46b57,	0x83921885,	0x6f066626,	0x7ce5ab67,
-0xebcaf5de,	0xbb0f6b00,	0x6d1faffb,	0x1eff0018,
-0x2debe6bc,	0x57d003b3,	0x3a3f5f80,	0xec6b7c0e,
-0x9f1dd663,	0xbebdbf56,	0x98e5774e,	0xb7a29504,
-0x5166a8c5,	0xaf7ce332,	0xca5e70c5,	0xfe235309,
-0x9c23f707,	0x99b08cc4,	0x2fe1edd1,	0xba36918f,
-0x262dd395,	0x423edc8c,	0x801e8f1f,	0x5b4cc6c5,
-0x3fcdf7f4,	0x5a490992,	0xd4006978,	0x977e2f86,
-0x6311af7b,	0x06bb2412,	0x2be72eb1,	0x5706b252,
-0xa000c75b,	0xe3ea5cff,	0xc9208730,	0xd9e369fb,
-0x1aed50e2,	0x8916d70d,	0x87f01eb6,	0x663b8f67,
-0x3dc68ee3,	0x5197b72b,	0xddb19fb8,	0x6839be2a,
-0x99fcfc25,	0x5542f267,	0xa922eea9,	0xc9ae9d93,
-0xcf8a9d64,	0x76bfeec4,	0xacbcd4c6,	0x81960ab0,
-0x7b24eb81,	0x8e8cad81,	0xfb2c1362,	0x9ccf1224,
-0x16d2c962,	0x18f7d553,	0x2a7f9c1e,	0x3678f775,
-0x1210588a,	0xe1644769,	0x3dd29db7,	0xbe9daa2c,
-0xe9c4e13a,	0x8d9de528,	0x19c3075e,	0x68a336d4,
-0x0ba157f3,	0xe3780ca6,	0x69c54c28,	0x9f96bb00,
-0xa78204e9,	0x1c8627cf,	0x2fd52aa9,	0x957b15ed,
-0xd3d61e03,	0x658cea71,	0x42d77750,	0x0c0755bc,
-0xde372a0d,	0x0d3687d7,	0xc04c56f6,	0xc3882257,
-0x98fd462c,	0xb65fac1e,	0x01b5ecab,	0xd554413d,
-0xb4beec40,	0xb4caab5e,	0xdeee4085,	0xd1b0500c,
-0x6845de70,	0x5a06e889,	0xfc89a4a7,	0xedbfd435,
-0xac039058,	0x9c1acd2f,	0x876fbfac,	0x9d8b83f3,
-0x8aa71c5f,	0x2e0f12ef,	0x87ff0c68,	0x53a9d19a,
-0x0ee62d27,	0x5d93a3f4,	0x7f13dc77,	0xd4ec7c79,
-0xd72a35c8,	0xb84ba058,	0x21e1d1ad,	0xbcf9c0fe,
-0x106fb166,	0x84ff4a86,	0x3b2d960f,	0x4cf3ab0e,
-0x65d25f76,	0xdcda7e29,	0xc444ddc8,	0xe97096dc,
-0xbfe1815c,	0x25b9dec5,	0x7aed80de,	0x6cbb6f7a,
-0x2daf76b7,	0x249ee47f,	0xdc6e770d,	0xa5a02e7d,
-0xd019d0d7,	0x17feead1,	0xbf80c1f6,	0x83644ac0,
-0x412f1ce4,	0x59c1de41,	0x1a47db26,	0x8848ab89,
-0xc2c17745,	0x31183c80,	0x9bb13cc3,	0x6da9c349,
-0x414b378d,	0xd58df4ba,	0x41f5ca37,	0x02a5162f,
-0x2843bb24,	0xbd2bb85a,	0x0b2c6e81,	0x2d50fe1d,
-0xc67b2c07,	0x630ce2b3,	0x73274d84,	0x3b4ba900,
-0x5e672d3c,	0x7ef23846,	0x81036625,	0x380b3d3b,
-0x391470b1,	0x5b3dcbed,	0x63038751,	0xa0c7aed8,
-0xc185b677,	0x516b8170,	0xbf79f025,	0x2b4c9edb,
-0x29354139,	0x9deabe33,	0x2838f581,	0x0574281f,
-0xc1267da2,	0x0c070755,	0x6832a8b9,	0x57436eed,
-0xe604c645,	0x4f13172a,	0x3227ac12,	0xf6b78267,
-0xbbd5d003,	0x5f8ae7ed,	0x74b6682c,	0x356b9e81,
-0x82703c20,	0x8ccf1f78,	0xa6b79197,	0x434d5316,
-0x1ba0853a,	0xe6ae4829,	0x1193ed0a,	0xa2d171f0,
-0x4f565a15,	0xf78ea4af,	0xa9a27e39,	0x30a45316,
-0xc005a8f6,	0x79a23d86,	0x07edcbe3,	0x3b76806b,
-0x3df6268a,	0xb0f33186,	0x2fd51855,	0xb34efefe,
-0xa24ce423,	0x6c62d711,	0x335c7252,	0x0d2ddcff,
-0x64485539,	0x00c8a89e,	0x4827ad2d,	0x01de50f4,
-0x593a9a38,	0xee90b919,	0xf523cd40,	0x97ed7009,
-0x1038e6b0,	0x95931966,	0xaaac22b9,	0xef1b9915,
-0x23f6d33c,	0xe417a460,	0x4e9b59c2,	0x3fd38b75,
-0x7ceabd08,	0x8279d672,	0xf24936e8,	0x668630f8,
-0x3cb0ddc0,	0x56c56418,	0x91221ef8,	0xc8926c65,
-0x4d7436b6,	0xc06b5b1e,	0xdea496b1,	0x4fa4c971,
-0xeea15028,	0x7aead456,	0x1329b826,	0xcf9a4d4f,
-0xabd69aba,	0x9dd78c2e,	0x5e9782ff,	0x563f3cb0,
-0xfc2db55c,	0xb2d5f64b,	0x9478caeb,	0x7409ae76,
-0xc4690516,	0xb12bb352,	0xad5283c7,	0x608e7a23,
-0xc8b4b59a,	0x0da06391,	0x9a6ccd78,	0xe4af91ad,
-0xb156f74a,	0x790b21dd,	0x6ce9970b,	0x46e89ac1,
-0x07815d28,	0x1f2fc3ac,	0x690cd168,	0x6ae48bb4,
-0x1ed48c84,	0xe5f121a3,	0x49a762cf,	0xc5e8fd6a,
-0x75d45162,	0xf49c2c5e,	0xd161eb4a,	0xb6351b73,
-0xc2605562,	0xb097aa9d,	0x114421ee,	0xf93baf78,
-0x82b9b2ab,	0x0374be4d,	0xd715656b,	0x3524549f,
-0xb37dc283,	0xfa8308d0,	0x3f69f2be,	0x238bc31e,
-0x839f3f68,	0x0639b8d7,	0xa8cdbe8e,	0xd15c7cb3,
-0x0a31ec87,	0x39a57286,	0x7c3ffef5,	0x461d70b2,
-0x7d1e8a90,	0x629b803f,	0x351b6cb8,	0x255391c2,
-0x07215420,	0x5e1aef8c,	0xa3b48e74,	0x8fa78c73,
-0xb6fab65c,	0xb13cb77f,	0x5bd44236,	0x31cbeab2,
-0x9f68d29a,	0x207a2b05,	0x668ac8a7,	0xb6de6033,
-0x3d2a4173,	0x04a2543a,	0x559b1b7c,	0x5e9116d4,
-0x5cb3ee57,	0x4a47f644,	0x90be9381,	0xbccc9cd2,
-0x3160e0d5,	0xed791f87,	0xdd9da7a8,	0x3e6d398b,
-0x6a68ad78,	0x418974ef,	0xfd010940,	0x8bed7055,
-0xf21e4d13,	0xac8160b9,	0x85f10ecb,	0xd637b0e2,
-0x987dd54e,	0x9835f225,	0xdbee940c,	0x9a34e16d,
-0x15fcfb54,	0x6720e48c,	0x9a42e266,	0x31eb0270,
-0x714dee04,	0xbcd417d8,	0xedf7757e,	0x099c4e89,
-0xee3e6c2e,	0x6246d530,	0xfbdad1d6,	0xbbe301a3,
-0xe08f829c,	0xa3c7d9c4,	0xe753a1dd,	0xf1466da1,
-0xa1e353a7,	0x33828150,	0x267d4059,	0x458bd806,
-0xac0ed307,	0x2079bf7c,	0xb25200db,	0x9dfd338c,
-0x0b94573e,	0x8188fa16,	0x9e641b63,	0xafa2a60c,
-0x61e5f820,	0x63a38983,	0x172d3a6f,	0xc98a34b2,
-0x532b56f5,	0x1883cb1a,	0x93ba9692,	0x7d85d109,
-0xd20ffd1a,	0xcc6e9937,	0xb3813eb1,	0xea7e1b45,
-0xf1e09c71,	0x35aa1ab9,	0xbd2d43d7,	0xc53a07ef,
-0xf3fa3fd6,	0xf3cd1e20,	0x5e620481,	0xd7bec1b0,
-0xc7d3caf6,	0xe9eae29f,	0x19c5b2c1,	0x940e3186,
-0x200f0a30,	0xbaf511b1,	0x103cb39c,	0x3f46b067,
-0xba6c5e9a,	0xc32b5592,	0x393e8503,	0x7ea29847,
-0x04d4a493,	0x18fc67d5,	0xea4ff94e,	0xc0281d5e,
-0xaeeaae85,	0x13be6b70,	0xa1bc8be4,	0xa1edbe06,
-0x572b8b35,	0x3baca7c5,	0x06ac9591,	0x8309b11d,
-0x7f381b05,	0xb16dd9b2,	0xf9b5d898,	0xb2e04c3a,
-0xed89b7dd,	0xd30e7e33,	0x4ac6cb61,	0xd2c50800,
-0x6554ae61,	0xa263efe2,	0x666244c3,	0xb6aaa480,
-0xcb4344ee,	0x31cf3efa,	0x14a4a476,	0xf6804765,
-0xaca47c23,	0x7e15ae69,	0xaffade7d,	0x693a6ff9,
-0x3f0f22c0,	0xe6135bcb,	0xf0632009,	0x06fa2abb,
-0xad0c1085,	0x3ce130b3,	0x70001594,	0xd80c452b,
-0x486c9d1f,	0x93b94966,	0x81612f95,	0x7573faea,
-0x1568ddb9,	0x3c1d26e5,	0x0a5d7b45,	0x5ea78077,
-0x1c5491f9,	0x24363c4b,	0x54b8e62a,	0xb86697e6,
-0x18750c76,	0xa355cee8,	0x9c09de46,	0xb022ec2b,
-0xfa142272,	0xd1e1dcce,	0xc7c2f6c9,	0xd8e72fc1,
diff --git a/src/cpu/intel/model_206ax/x06_microcode.h b/src/cpu/intel/model_206ax/microcode_blob.h
similarity index 72%
rename from src/cpu/intel/model_206ax/x06_microcode.h
rename to src/cpu/intel/model_206ax/microcode_blob.h
index d055b2e..1b14394 100644
--- a/src/cpu/intel/model_206ax/x06_microcode.h
+++ b/src/cpu/intel/model_206ax/microcode_blob.h
@@ -18,11 +18,14 @@
  */
 
 
-#if CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE
-	#include "microcode-m12206a7_00000025.h"
-#elif CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE
-#else
-#error "Which microcode to use?"
+	#include "microcode-M12206A7_00000028.h"
+#if CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE
+	#include "microcode-M12306A2_00000008.h"
+	#include "microcode-M12306A4_00000007.h"
+	#include "microcode-M12306A5_00000007.h"
+	#include "microcode-M12306A6_00000002.h"
+	#include "microcode-M12306A8_00000010.h"
+	#include "microcode-M12306A9_00000016.h"
 #endif
 	/*  Dummy terminator  */
         0x0, 0x0, 0x0, 0x0,
diff --git a/src/cpu/intel/model_206ax/model_206ax.h b/src/cpu/intel/model_206ax/model_206ax.h
index 3343d11..a7ca04a 100644
--- a/src/cpu/intel/model_206ax/model_206ax.h
+++ b/src/cpu/intel/model_206ax/model_206ax.h
@@ -22,15 +22,19 @@
 #ifndef _CPU_INTEL_MODEL_206AX_H
 #define _CPU_INTEL_MODEL_206AX_H
 
-/* SandyBridge bus clock is fixed at 100MHz */
+/* SandyBridge/IvyBridge bus clock is fixed at 100MHz */
 #define SANDYBRIDGE_BCLK		100
 
 #define IA32_FEATURE_CONTROL		0x3a
 #define  CPUID_VMX			(1 << 5)
 #define  CPUID_SMX			(1 << 6)
 #define MSR_FEATURE_CONFIG		0x13c
+#define MSR_FLEX_RATIO			0x194
+#define  FLEX_RATIO_LOCK		(1 << 20)
+#define  FLEX_RATIO_EN			(1 << 16)
 #define IA32_PLATFORM_DCA_CAP		0x1f8
 #define IA32_MISC_ENABLE		0x1a0
+#define MSR_TEMPERATURE_TARGET		0x1a2
 #define IA32_PERF_CTL 			0x199
 #define IA32_THERM_INTERRUPT		0x19b
 #define IA32_ENERGY_PERFORMANCE_BIAS	0x1b0
@@ -75,24 +79,35 @@
 #define MSR_PP0_CURRENT_CONFIG		0x601
 #define  PP0_CURRENT_LIMIT		(112 << 3) /* 112 A */
 #define MSR_PP1_CURRENT_CONFIG		0x602
-#define  PP1_CURRENT_LIMIT		(35 << 3) /* 35 A */
+#define  PP1_CURRENT_LIMIT_SNB		(35 << 3) /* 35 A */
+#define  PP1_CURRENT_LIMIT_IVB		(50 << 3) /* 50 A */
 #define MSR_PKG_POWER_SKU_UNIT		0x606
 #define MSR_PKG_POWER_SKU		0x614
 #define MSR_PP0_POWER_LIMIT		0x638
 #define MSR_PP1_POWER_LIMIT		0x640
 
+#define IVB_CONFIG_TDP_MIN_CPUID	0x306a2
+#define MSR_CONFIG_TDP_NOMINAL		0x648
+#define MSR_CONFIG_TDP_LEVEL1		0x649
+#define MSR_CONFIG_TDP_LEVEL2		0x64a
+#define MSR_CONFIG_TDP_CONTROL		0x64b
+#define MSR_TURBO_ACTIVATION_RATIO	0x64c
+
 /* P-state configuration */
 #define PSS_MAX_ENTRIES			8
 #define PSS_RATIO_STEP			2
 #define PSS_LATENCY_TRANSITION		10
 #define PSS_LATENCY_BUSMASTER		10
 
+#ifndef __ROMCC__
 #ifdef __SMM__
 /* Lock MSRs */
 void intel_model_206ax_finalize_smm(void);
 #else
 /* Configure power limits for turbo mode */
 void set_power_limits(u8 power_limit_1_time);
+int cpu_config_tdp_levels(void);
+#endif
 #endif
 
 #endif
diff --git a/src/cpu/intel/model_206ax/model_206ax_init.c b/src/cpu/intel/model_206ax/model_206ax_init.c
index 874ce4d..cb8a633 100644
--- a/src/cpu/intel/model_206ax/model_206ax_init.c
+++ b/src/cpu/intel/model_206ax/model_206ax_init.c
@@ -37,6 +37,7 @@
 #include <pc80/mc146818rtc.h>
 #include <usbdebug.h>
 #include "model_206ax.h"
+#include "chip.h"
 
 /*
  * List of suported C-states in this processor
@@ -115,40 +116,38 @@
 	{ 0 }
 };
 
-static const uint32_t microcode_updates[] = {
-	#include "x06_microcode.h"
-};
-
 static void enable_vmx(void)
 {
 	struct cpuid_result regs;
 	msr_t msr;
 	int enable = CONFIG_ENABLE_VMX;
 
+	regs = cpuid(1);
+	/* Check that the VMX is supported before reading or writing the MSR. */
+	if (!((regs.ecx & CPUID_VMX) || (regs.ecx & CPUID_SMX)))
+		return;
+
 	msr = rdmsr(IA32_FEATURE_CONTROL);
 
 	if (msr.lo & (1 << 0)) {
-		printk(BIOS_ERR, "VMX is locked, so enable_vmx will do nothing\n");
+		printk(BIOS_ERR, "VMX is locked, so %s will do nothing\n", __func__);
 		/* VMX locked. If we set it again we get an illegal
 		 * instruction
 		 */
 		return;
 	}
 
-	regs = cpuid(1);
-	printk(BIOS_DEBUG, "%s VMX\n", enable ? "Enabling" : "Disabling");
-	if (regs.ecx & CPUID_VMX) {
-		if (enable)
-			msr.lo |= (1 << 2);
-		else
-			msr.lo &= ~(1 << 2);
+	/* The IA32_FEATURE_CONTROL MSR may initialize with random values.
+	 * It must be cleared regardless of VMX config setting.
+	 */
+	msr.hi = msr.lo = 0;
 
-		if (regs.ecx & CPUID_SMX) {
-			if (enable)
+	printk(BIOS_DEBUG, "%s VMX\n", enable ? "Enabling" : "Disabling");
+
+	if (enable) {
+			msr.lo |= (1 << 2);
+			if (regs.ecx & CPUID_SMX)
 				msr.lo |= (1 << 1);
-			else
-				msr.lo &= ~(1 << 1);
-		}
 	}
 
 	wrmsr(IA32_FEATURE_CONTROL, msr);
@@ -212,6 +211,19 @@
 	[0x11] = 128,
 };
 
+int cpu_config_tdp_levels(void)
+{
+	msr_t platform_info;
+
+	/* Minimum CPU revision */
+	if (cpuid_eax(1) < IVB_CONFIG_TDP_MIN_CPUID)
+		return 0;
+
+	/* Bits 34:33 indicate how many levels supported */
+	platform_info = rdmsr(MSR_PLATFORM_INFO);
+	return (platform_info.hi >> 1) & 3;
+}
+
 /*
  * Configure processor power limits if possible
  * This must be done AFTER set of BIOS_RESET_CPL
@@ -268,6 +280,14 @@
 	/* Power limit 2 time is only programmable on SNB EP/EX */
 
 	wrmsr(MSR_PKG_POWER_LIMIT, limit);
+
+	/* Use nominal TDP values for CPUs with configurable TDP */
+	if (cpu_config_tdp_levels()) {
+		msr = rdmsr(MSR_CONFIG_TDP_NOMINAL);
+		limit.hi = 0;
+		limit.lo = msr.lo & 0xff;
+		wrmsr(MSR_TURBO_ACTIVATION_RATIO, limit);
+	}
 }
 
 static void configure_c_states(void)
@@ -323,10 +343,35 @@
 	/* Secondary Plane Current Limit */
 	msr = rdmsr(MSR_PP1_CURRENT_CONFIG);
 	msr.lo &= ~0x1fff;
-	msr.lo |= PP1_CURRENT_LIMIT;
+	if (cpuid_eax(1) >= 0x30600)
+		msr.lo |= PP1_CURRENT_LIMIT_IVB;
+	else
+		msr.lo |= PP1_CURRENT_LIMIT_SNB;
 	wrmsr(MSR_PP1_CURRENT_CONFIG, msr);
 }
 
+static void configure_thermal_target(void)
+{
+	struct cpu_intel_model_206ax_config *conf;
+	device_t lapic;
+	msr_t msr;
+
+	/* Find pointer to CPU configuration */
+	lapic = dev_find_lapic(SPEEDSTEP_APIC_MAGIC);
+	if (!lapic || !lapic->chip_info)
+		return;
+	conf = lapic->chip_info;
+
+	/* Set TCC activaiton offset if supported */
+	msr = rdmsr(MSR_PLATFORM_INFO);
+	if ((msr.lo & (1 << 30)) && conf->tcc_offset) {
+		msr = rdmsr(MSR_TEMPERATURE_TARGET);
+		msr.lo &= ~(0xf << 24); /* Bits 27:24 */
+		msr.lo |= (conf->tcc_offset & 0xf) << 24;
+		wrmsr(MSR_TEMPERATURE_TARGET, msr);
+	}
+}
+
 static void configure_misc(void)
 {
 	msr_t msr;
@@ -373,16 +418,24 @@
 
 static void set_max_ratio(void)
 {
-	msr_t msr;
+	msr_t msr, perf_ctl;
 
-	/* Platform Info bits 15:8 give max ratio */
-	msr = rdmsr(MSR_PLATFORM_INFO);
-	msr.hi = 0;
-	msr.lo &= 0xff00;
-	wrmsr(IA32_PERF_CTL, msr);
+	perf_ctl.hi = 0;
+
+	/* Check for configurable TDP option */
+	if (cpu_config_tdp_levels()) {
+		/* Set to nominal TDP ratio */
+		msr = rdmsr(MSR_CONFIG_TDP_NOMINAL);
+		perf_ctl.lo = (msr.lo & 0xff) << 8;
+	} else {
+		/* Platform Info bits 15:8 give max ratio */
+		msr = rdmsr(MSR_PLATFORM_INFO);
+		perf_ctl.lo = msr.lo & 0xff00;
+	}
+	wrmsr(IA32_PERF_CTL, perf_ctl);
 
 	printk(BIOS_DEBUG, "model_x06ax: frequency set to %d\n",
-	       ((msr.lo >> 8) & 0xff) * 100);
+	       ((perf_ctl.lo >> 8) & 0xff) * SANDYBRIDGE_BCLK);
 }
 
 static void set_energy_perf_bias(u8 policy)
@@ -457,12 +510,14 @@
 		       cpu->path.apic.apic_id,
 		       new->path.apic.apic_id);
 
+#if CONFIG_SMP && CONFIG_MAX_CPUS > 1
 		/* Start the new cpu */
 		if (!start_cpu(new)) {
 			/* Record the error in cpu? */
 			printk(BIOS_ERR, "CPU %u would not start!\n",
 			       new->path.apic.apic_id);
 		}
+#endif
 	}
 }
 
@@ -474,8 +529,7 @@
 	/* Turn on caching if we haven't already */
 	x86_enable_cache();
 
-	/* Update the microcode */
-	intel_update_microcode(microcode_updates);
+	intel_update_microcode_from_cbfs();
 
 	/* Clear out pending MCEs */
 	configure_mca();
@@ -517,6 +571,9 @@
 	/* Configure Enhanced SpeedStep and Thermal Sensors */
 	configure_misc();
 
+	/* Thermal throttle activation offset */
+	configure_thermal_target();
+
 	/* Enable Direct Cache Access */
 	configure_dca_cap();
 
diff --git a/src/cpu/intel/model_6ex/Kconfig b/src/cpu/intel/model_6ex/Kconfig
index 31d24bd..e2b1986 100644
--- a/src/cpu/intel/model_6ex/Kconfig
+++ b/src/cpu/intel/model_6ex/Kconfig
@@ -4,3 +4,4 @@
 	select SSE2
 	select UDELAY_LAPIC
 	select AP_IN_SIPI_WAIT
+	select TSC_SYNC_MFENCE
diff --git a/src/cpu/intel/model_6fx/Kconfig b/src/cpu/intel/model_6fx/Kconfig
index 851685c..4517f17 100644
--- a/src/cpu/intel/model_6fx/Kconfig
+++ b/src/cpu/intel/model_6fx/Kconfig
@@ -4,3 +4,4 @@
 	select SSE2
 	select UDELAY_LAPIC
 	select AP_IN_SIPI_WAIT
+	select TSC_SYNC_MFENCE
diff --git a/src/cpu/x86/Kconfig b/src/cpu/x86/Kconfig
index 0eaee2e..e85a76b 100644
--- a/src/cpu/x86/Kconfig
+++ b/src/cpu/x86/Kconfig
@@ -27,6 +27,22 @@
 	bool
 	default n
 
+config TSC_SYNC_LFENCE
+	bool
+	default n
+	help
+	  The CPU driver should select this if the CPU needs
+	  to execute an lfence instruction in order to synchronize
+	  rdtsc. This is true for all modern AMD CPUs.
+
+config TSC_SYNC_MFENCE
+	bool
+	default n
+	help
+	  The CPU driver should select this if the CPU needs
+	  to execute an mfence instruction in order to synchronize
+	  rdtsc. This is true for all modern Intel CPUs.
+
 config XIP_ROM_SIZE
 	hex
 	default ROM_SIZE if ROMCC
diff --git a/src/cpu/x86/lapic/apic_timer.c b/src/cpu/x86/lapic/apic_timer.c
index bb6cca7..c7b0aa7 100644
--- a/src/cpu/x86/lapic/apic_timer.c
+++ b/src/cpu/x86/lapic/apic_timer.c
@@ -50,6 +50,7 @@
 		timer_fsb = core2_fsb[rdmsr(0xcd).lo & 7];
 		break;
 	case 0x2a: /* SandyBridge BCLK fixed at 100MHz*/
+	case 0x3a: /* IvyBridge BCLK fixed at 100MHz*/
 		timer_fsb = 100;
 		break;
 	default:
@@ -79,7 +80,9 @@
 {
 	u32 start, value, ticks;
 
-	if (!timer_fsb)
+	if (!timer_fsb || (lapic_read(LAPIC_LVTT) &
+		(LAPIC_LVT_TIMER_PERIODIC | LAPIC_LVT_MASKED)) !=
+		(LAPIC_LVT_TIMER_PERIODIC | LAPIC_LVT_MASKED))
 		init_timer();
 
 	/* Calculate the number of ticks to run, our FSB runs at timer_fsb Mhz */
diff --git a/src/cpu/x86/lapic/lapic_cpu_init.c b/src/cpu/x86/lapic/lapic_cpu_init.c
index e491d46..540791c 100644
--- a/src/cpu/x86/lapic/lapic_cpu_init.c
+++ b/src/cpu/x86/lapic/lapic_cpu_init.c
@@ -1,8 +1,24 @@
 /*
-	2005.12 yhlu add coreboot_ram cross the vga font buffer handling
-	2005.12 yhlu add CONFIG_RAMBASE above 1M support for SMP
-	2008.05 stepan add support for going back to sipi wait state
-*/
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2001 Eric Biederman
+ * Copyright (C) 2001 Ronald G. Minnich
+ * Copyright (C) 2005 Yinghai Lu
+ * Copyright (C) 2008 coresystems GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
 
 #include <cpu/x86/lapic.h>
 #include <delay.h>
@@ -16,7 +32,15 @@
 #include <cpu/cpu.h>
 #include <cpu/intel/speedstep.h>
 
-#if CONFIG_SMP
+#if CONFIG_HAVE_ACPI_RESUME
+char *lowmem_backup;
+char *lowmem_backup_ptr;
+int  lowmem_backup_size;
+#endif
+
+extern char _secondary_start[];
+
+#if CONFIG_SMP && CONFIG_MAX_CPUS > 1
 /* This is a lot more paranoid now, since Linux can NOT handle
  * being told there is a CPU when none exists. So any errors
  * will return 0, meaning no CPU.
@@ -26,28 +50,23 @@
  */
 static unsigned long get_valid_start_eip(unsigned long orig_start_eip)
 {
-	return (unsigned long)orig_start_eip & 0xffff; // 16 bit to avoid 0xa0000
+	// 16 bit to avoid 0xa0000
+	return (unsigned long)orig_start_eip & 0xffff;
 }
 
-#if CONFIG_HAVE_ACPI_RESUME
-char *lowmem_backup;
-char *lowmem_backup_ptr;
-int  lowmem_backup_size;
-#endif
-
-extern char _secondary_start[];
-
-static void copy_secondary_start_to_1m_below(void)
+static void copy_secondary_start_to_lowest_1M(void)
 {
 	extern char _secondary_start_end[];
 	unsigned long code_size;
 	unsigned long start_eip;
 
-	/* _secondary_start need to be masked 20 above bit, because 16 bit code in secondary.S
-	   Also We need to copy the _secondary_start to the below 1M region
-	*/
+	/* _secondary_start need to be masked 20 above bit, because 16 bit
+	 * code in secondary.S. Also we need to copy the _secondary_start
+	 * to the below 1M region.
+	 */
 	start_eip = get_valid_start_eip((unsigned long)_secondary_start);
-	code_size = (unsigned long)_secondary_start_end - (unsigned long)_secondary_start;
+	code_size = (unsigned long)_secondary_start_end -
+				(unsigned long)_secondary_start;
 
 #if CONFIG_HAVE_ACPI_RESUME
 	/* need to save it for RAM resume */
@@ -61,9 +80,12 @@
 	memcpy(lowmem_backup, lowmem_backup_ptr, lowmem_backup_size);
 #endif
 	/* copy the _secondary_start to the ram below 1M*/
-	memcpy((unsigned char *)start_eip, (unsigned char *)_secondary_start, code_size);
+	memcpy((unsigned char *)start_eip,
+		(unsigned char *)_secondary_start, code_size);
 
-	printk(BIOS_DEBUG, "start_eip=0x%08lx, offset=0x%08lx, code_size=0x%08lx\n", start_eip, ((unsigned long)_secondary_start - start_eip), code_size);
+	printk(BIOS_DEBUG, "start_eip=0x%08lx, offset=0x%08lx, "
+		"code_size=0x%08lx\n", start_eip,
+		((unsigned long)_secondary_start - start_eip), code_size);
 }
 
 static int lapic_start_cpu(unsigned long apicid)
@@ -98,14 +120,15 @@
 		send_status = lapic_read(LAPIC_ICR) & LAPIC_ICR_BUSY;
 	} while (send_status && (timeout++ < 1000));
 	if (timeout >= 1000) {
-		printk(BIOS_ERR, "CPU %ld: First apic write timed out. Disabling\n",
-			 apicid);
+		printk(BIOS_ERR, "CPU %ld: First APIC write timed out. "
+			"Disabling\n", apicid);
 		// too bad.
 		printk(BIOS_ERR, "ESR is 0x%lx\n", lapic_read(LAPIC_ESR));
 		if (lapic_read(LAPIC_ESR)) {
 			printk(BIOS_ERR, "Try to reset ESR\n");
 			lapic_write_around(LAPIC_ESR, 0);
-			printk(BIOS_ERR, "ESR is 0x%lx\n", lapic_read(LAPIC_ESR));
+			printk(BIOS_ERR, "ESR is 0x%lx\n",
+				lapic_read(LAPIC_ESR));
 		}
 		return 0;
 	}
@@ -129,8 +152,8 @@
 		send_status = lapic_read(LAPIC_ICR) & LAPIC_ICR_BUSY;
 	} while (send_status && (timeout++ < 1000));
 	if (timeout >= 1000) {
-		printk(BIOS_ERR, "CPU %ld: Second apic write timed out. Disabling\n",
-			 apicid);
+		printk(BIOS_ERR, "CPU %ld: Second apic write timed out. "
+			"Disabling\n", apicid);
 		// too bad.
 		return 0;
 	}
@@ -203,7 +226,8 @@
 	if (send_status)
 		printk(BIOS_WARNING, "APIC never delivered???\n");
 	if (accept_status)
-		printk(BIOS_WARNING, "APIC delivery error (%lx).\n", accept_status);
+		printk(BIOS_WARNING, "APIC delivery error (%lx).\n",
+			accept_status);
 	if (send_status || accept_status)
 		return 0;
 	return 1;
@@ -217,44 +241,58 @@
  * for select the stack from assembly language.
  *
  * In addition communicating by variables to the cpu I
- * am starting allows me to veryify it has started before
+ * am starting allows me to verify it has started before
  * start_cpu returns.
  */
 
 static spinlock_t start_cpu_lock = SPIN_LOCK_UNLOCKED;
-static unsigned last_cpu_index = 0;
+static unsigned int last_cpu_index = 0;
+static void *stacks[CONFIG_MAX_CPUS];
 volatile unsigned long secondary_stack;
+volatile unsigned int secondary_cpu_index;
 
 int start_cpu(device_t cpu)
 {
 	extern unsigned char _estack[];
 	struct cpu_info *info;
 	unsigned long stack_end;
+	unsigned long stack_base;
+	unsigned long *stack;
 	unsigned long apicid;
-	unsigned long index;
+	unsigned int index;
 	unsigned long count;
+	int i;
 	int result;
 
 	spin_lock(&start_cpu_lock);
 
-	/* Get the cpu's apicid */
+	/* Get the CPU's apicid */
 	apicid = cpu->path.apic.apic_id;
 
 	/* Get an index for the new processor */
 	index = ++last_cpu_index;
 
-	/* Find end of the new processors stack */
-	stack_end = ((unsigned long)_estack) - (CONFIG_STACK_SIZE*index) - sizeof(struct cpu_info);
+	/* Find end of the new processor's stack */
+	stack_end = ((unsigned long)_estack) - (CONFIG_STACK_SIZE*index) -
+			sizeof(struct cpu_info);
 
-	/* Record the index and which cpu structure we are using */
+	stack_base = ((unsigned long)_estack) - (CONFIG_STACK_SIZE*(index+1));
+	printk(BIOS_SPEW, "CPU%d: stack_base %p, stack_end %p\n", index,
+		(void *)stack_base, (void *)stack_end);
+	/* poison the stack */
+	for(stack = (void *)stack_base, i = 0; i < CONFIG_STACK_SIZE; i++)
+		stack[i/sizeof(*stack)] = 0xDEADBEEF;
+	stacks[index] = stack;
+	/* Record the index and which CPU structure we are using */
 	info = (struct cpu_info *)stack_end;
 	info->index = index;
 	info->cpu   = cpu;
 
-	/* Advertise the new stack to start_cpu */
+	/* Advertise the new stack and index to start_cpu */
 	secondary_stack = stack_end;
+	secondary_cpu_index = index;
 
-	/* Until the cpu starts up report the cpu is not enabled */
+	/* Until the CPU starts up report the CPU is not enabled */
 	cpu->enabled = 0;
 	cpu->initialized = 0;
 
@@ -280,7 +318,8 @@
 #if CONFIG_AP_IN_SIPI_WAIT
 
 /**
- * Sending INIT IPI to self is equivalent of asserting #INIT with a bit of delay.
+ * Sending INIT IPI to self is equivalent of asserting #INIT with a bit of
+ * delay.
  * An undefined number of instruction cycles will complete. All global locks
  * must be released before INIT IPI and no printk is allowed after this.
  * De-asserting INIT IPI is a no-op on later Intel CPUs.
@@ -309,7 +348,8 @@
 
 	/* send an LAPIC INIT to myself */
 	lapic_write_around(LAPIC_ICR2, SET_LAPIC_DEST_FIELD(id));
-	lapic_write_around(LAPIC_ICR, LAPIC_INT_LEVELTRIG | LAPIC_INT_ASSERT | LAPIC_DM_INIT);
+	lapic_write_around(LAPIC_ICR, LAPIC_INT_LEVELTRIG |
+				LAPIC_INT_ASSERT | LAPIC_DM_INIT);
 
 	/* wait for the ipi send to finish */
 #if DEBUG_HALT_SELF
@@ -381,7 +421,7 @@
 #endif
 
 /* C entry point of secondary cpus */
-void secondary_cpu_init(void)
+void secondary_cpu_init(unsigned int index)
 {
 	atomic_inc(&active_cpus);
 #if CONFIG_SERIAL_CPU_INIT
@@ -398,7 +438,7 @@
 	cr4_val |= (1 << 9 | 1 << 10);
 	writecr4(cr4_val);
 #endif
-	cpu_initialize();
+	cpu_initialize(index);
 #if CONFIG_SERIAL_CPU_INIT
 	spin_unlock(&start_cpu_lock);
 #endif
@@ -448,13 +488,15 @@
 	device_t cpu;
 	int old_active_count, active_count;
 	long loopcount = 0;
+	int i;
 
 	/* Now loop until the other cpus have finished initializing */
 	old_active_count = 1;
 	active_count = atomic_read(&active_cpus);
 	while(active_count > 1) {
 		if (active_count != old_active_count) {
-			printk(BIOS_INFO, "Waiting for %d CPUS to stop\n", active_count - 1);
+			printk(BIOS_INFO, "Waiting for %d CPUS to stop\n",
+				active_count - 1);
 			old_active_count = active_count;
 		}
 		udelay(10);
@@ -474,6 +516,21 @@
 		}
 	}
 	printk(BIOS_DEBUG, "All AP CPUs stopped (%ld loops)\n", loopcount);
+	for(i = 1; i <= last_cpu_index; i++){
+		unsigned long *stack = stacks[i];
+		int lowest;
+		int maxstack = (CONFIG_STACK_SIZE - sizeof(struct cpu_info))
+					/sizeof(*stack) - 1;
+		if (stack[0] != 0xDEADBEEF)
+			printk(BIOS_ERR, "CPU%d overran its stack\n", i);
+		for(lowest = 0; lowest < maxstack; lowest++)
+			if (stack[lowest] != 0xDEADBEEF)
+				break;
+		printk(BIOS_SPEW, "CPU%d: stack allocated from %p to %p:", i,
+			stack, &stack[maxstack]);
+		printk(BIOS_SPEW, "lowest stack address was %p\n",
+			&stack[lowest]);
+	}
 }
 
 #endif /* CONFIG_SMP */
@@ -502,8 +559,9 @@
 	/* Find the device structure for the boot cpu */
 	info->cpu = alloc_find_dev(cpu_bus, &cpu_path);
 
-#if CONFIG_SMP
-	copy_secondary_start_to_1m_below(); // why here? In case some day we can start core1 in amd_sibling_init
+#if CONFIG_SMP && CONFIG_MAX_CPUS > 1
+	// why here? In case some day we can start core1 in amd_sibling_init
+	copy_secondary_start_to_lowest_1M();
 #endif
 
 #if CONFIG_HAVE_SMI_HANDLER
@@ -512,7 +570,7 @@
 
 	cpus_ready_for_init();
 
-#if CONFIG_SMP
+#if CONFIG_SMP && CONFIG_MAX_CPUS > 1
 	#if !CONFIG_SERIAL_CPU_INIT
 	/* start all aps at first, so we can init ECC all together */
 	start_other_cpus(cpu_bus, info->cpu);
@@ -520,9 +578,9 @@
 #endif
 
 	/* Initialize the bootstrap processor */
-	cpu_initialize();
+	cpu_initialize(0);
 
-#if CONFIG_SMP
+#if CONFIG_SMP && CONFIG_MAX_CPUS > 1
 	#if CONFIG_SERIAL_CPU_INIT
 	start_other_cpus(cpu_bus, info->cpu);
 	#endif
@@ -531,4 +589,3 @@
 	wait_other_cpus_stop(cpu_bus);
 #endif
 }
-
diff --git a/src/cpu/x86/lapic/secondary.S b/src/cpu/x86/lapic/secondary.S
index dc00b08..bc6e5bc 100644
--- a/src/cpu/x86/lapic/secondary.S
+++ b/src/cpu/x86/lapic/secondary.S
@@ -41,6 +41,8 @@
 	/* Set the stack pointer, and flag that we are done */
 	xorl	%eax, %eax
 	movl	secondary_stack, %esp
+	movl	secondary_cpu_index, %edi
+	pushl	%edi
 	movl	%eax, secondary_stack
 
 	call	secondary_cpu_init
diff --git a/src/cpu/x86/mtrr/earlymtrr.c b/src/cpu/x86/mtrr/earlymtrr.c
index 7a1f51d..593f066 100644
--- a/src/cpu/x86/mtrr/earlymtrr.c
+++ b/src/cpu/x86/mtrr/earlymtrr.c
@@ -21,11 +21,11 @@
 }
 
 #if !defined(CONFIG_CACHE_AS_RAM) || !CONFIG_CACHE_AS_RAM
-static void cache_lbmem(int type)
+static void cache_ramstage(void)
 {
-	/* Enable caching for 0 - 1MB using variable mtrr */
+	/* Enable caching for lower 1MB and ram stage using variable mtrr */
 	disable_cache();
-	set_var_mtrr(0, 0x00000000, CONFIG_RAMTOP, type);
+	set_var_mtrr(0, 0x00000000, CONFIG_RAMTOP, MTRR_TYPE_WRBACK);
 	enable_cache();
 }
 
diff --git a/src/cpu/x86/mtrr/mtrr.c b/src/cpu/x86/mtrr/mtrr.c
index cce526a..e645f8d 100644
--- a/src/cpu/x86/mtrr/mtrr.c
+++ b/src/cpu/x86/mtrr/mtrr.c
@@ -118,8 +118,6 @@
 	base.hi = basek >> 22;
 	base.lo  = basek << 10;
 
-	printk(BIOS_SPEW, "ADDRESS_MASK_HIGH=%#x\n", address_mask_high);
-
 	if (sizek < 4*1024*1024) {
 		mask.hi = address_mask_high;
 		mask.lo = ~((sizek << 10) -1);
diff --git a/src/cpu/x86/smm/smihandler.c b/src/cpu/x86/smm/smihandler.c
index bbed0f1..83ebaf9 100644
--- a/src/cpu/x86/smm/smihandler.c
+++ b/src/cpu/x86/smm/smihandler.c
@@ -117,8 +117,14 @@
 {
 	unsigned int node;
 	smm_state_save_area_t state_save;
+	u32 smm_base = 0xa8000; /* ASEG */
 
-#if !CONFIG_SMM_TSEG
+#if CONFIG_SMM_TSEG
+	/* Update global variable TSEG base */
+	if (!smi_get_tseg_base())
+		return;
+	smm_base = smi_get_tseg_base() + 0x8000;
+#else
 	/* Are we ok to execute the handler? */
 	if (!smi_obtain_lock()) {
 		/* For security reasons we don't release the other CPUs
@@ -146,18 +152,22 @@
 	case 0x00030007:
 		state_save.type = LEGACY;
 		state_save.legacy_state_save = (legacy_smm_state_save_area_t *)
-			(0xa8000 + 0x7e00 - (node * 0x400));
+			(smm_base + 0x7e00 - (node * 0x400));
 		break;
 	case 0x00030100:
-	case 0x00030101: /* SandyBridge */
 		state_save.type = EM64T;
 		state_save.em64t_state_save = (em64t_smm_state_save_area_t *)
-			(0xa8000 + 0x7d00 - (node * 0x400));
+			(smm_base + 0x7d00 - (node * 0x400));
+	case 0x00030101: /* SandyBridge/IvyBridge */
+		state_save.type = EM64T101;
+		state_save.em64t101_state_save =
+			(em64t101_smm_state_save_area_t *)
+			(smm_base + 0x7d00 - (node * 0x400));
 		break;
 	case 0x00030064:
 		state_save.type = AMD64;
 		state_save.amd64_state_save = (amd64_smm_state_save_area_t *)
-			(0xa8000 + 0x7e00 - (node * 0x400));
+			(smm_base + 0x7e00 - (node * 0x400));
 		break;
 	default:
 		printk(BIOS_DEBUG, "smm_revision: 0x%08x\n", smm_revision);
diff --git a/src/cpu/x86/smm/smm_tseg.ld b/src/cpu/x86/smm/smm_tseg.ld
index 016b5a0..6def972 100644
--- a/src/cpu/x86/smm/smm_tseg.ld
+++ b/src/cpu/x86/smm/smm_tseg.ld
@@ -10,6 +10,34 @@
 	.handler (.): {
 		/* Assembler stub */
 		*(.handler)
+	}
+
+	/* We are using the TSEG interleaved to stuff the SMM handlers
+	 * for all CPU cores in there. The jump table redirects the execution
+	 * to the actual SMM handler
+	 */
+	. = 0x8000 - (( CPUS - 1) * 0x400);
+	.jumptable : {
+		*(.jumptable)
+	}
+
+	/* Data used in early SMM TSEG handler. */
+	. = 0x8400;
+	.earlydata : {
+		*(.earlydata)
+	}
+
+	/* 16KB for the heap at 64KB */
+	. = 0x10000;
+	.heap : {
+		_heap = .;
+		. = 0x4000;
+		_eheap = .;
+	}
+
+	. = ALIGN(0x4000);
+	.smm_c_handler : {
+		_smm_c_handler_start = .;
 
 		/* C code of the SMM handler */
 		*(.text);
@@ -29,25 +57,10 @@
 		 . = ALIGN(4);
 		*(.bss)
 		*(.sbss)
-
-		/* What is this? */
 		*(COMMON)
 		 . = ALIGN(4);
-	}
 
-	/* We are using the TSEG interleaved to stuff the SMM handlers
-	 * for all CPU cores in there. The jump table redirects the execution
-	 * to the actual SMM handler
-	 */
-	. = 0x8000 - (( CPUS - 1) * 0x400);
-	.jumptable : {
-		*(.jumptable)
-	}
-
-	/* Data used in early SMM TSEG handler. */
-	. = 0x8400;
-	.earlydata : {
-		*(.earlydata)
+		_smm_c_handler_end = .;
 	}
 
 	/DISCARD/ : {
diff --git a/src/cpu/x86/smm/smmhandler_tseg.S b/src/cpu/x86/smm/smmhandler_tseg.S
index 8fdd75f..c61a611 100644
--- a/src/cpu/x86/smm/smmhandler_tseg.S
+++ b/src/cpu/x86/smm/smmhandler_tseg.S
@@ -20,7 +20,11 @@
  */
 
 /*
- * +--------------------------------+ 0xffff
+ * +--------------------------------+
+ * | SMM Handler C Code             |
+ * +--------------------------------+ 0x14000
+ * | SMM Handler Heap               |
+ * +--------------------------------+ 0x10000
  * |  Save State Map Node 0         |
  * |  Save State Map Node 1         |
  * |  Save State Map Node 2         |
@@ -39,7 +43,7 @@
  * | ...                            |
  * +--------------------------------+ 0x7400
  * |                                |
- * | SMM Handler                    |
+ * | SMM Handler Assembly Stub      |
  * |                                |
  * +--------------------------------+ TSEG
  *
@@ -91,6 +95,7 @@
 
 	/* If we did not get the lock, wait for release */
 wait_for_unlock:
+	pause
 	addr32	movw (%ebx), %ax
 	cmpw	$SMI_LOCKED, %ax
 	je	wait_for_unlock
diff --git a/src/devices/Makefile.inc b/src/devices/Makefile.inc
index 9ffc0bb..9a2f71e 100644
--- a/src/devices/Makefile.inc
+++ b/src/devices/Makefile.inc
@@ -11,6 +11,8 @@
 ramstage-y += pci_ops.c
 ramstage-y += smbus_ops.c
 
+romstage-y+= device_romstage.c
+
 subdirs-y += oprom
 
 ifeq ($(CONFIG_PCI_ROM_RUN),y)
diff --git a/src/devices/device_romstage.c b/src/devices/device_romstage.c
new file mode 100644
index 0000000..475f94a
--- /dev/null
+++ b/src/devices/device_romstage.c
@@ -0,0 +1,80 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2003-2004 Linux Networx
+ * (Written by Eric Biederman <ebiederman@lnxi.com> for Linux Networx)
+ * Copyright (C) 2003 Greg Watson <jarrah@users.sourceforge.net>
+ * Copyright (C) 2004 Li-Ta Lo <ollie@lanl.gov>
+ * Copyright (C) 2005-2006 Tyan
+ * (Written by Yinghai Lu <yhlu@tyan.com> for Tyan)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#include <device/device.h>
+#include <device/path.h>
+#include <device/pci.h>
+#include <device/resource.h>
+
+/** Linked list of ALL devices */
+ROMSTAGE_CONST struct device * ROMSTAGE_CONST all_devices = &dev_root;
+
+/**
+ * Given a PCI bus and a devfn number, find the device structure.
+ *
+ * @param bus The bus number.
+ * @param devfn A device/function number.
+ * @return Pointer to the device structure (if found), 0 otherwise.
+ */
+ROMSTAGE_CONST struct device *dev_find_slot(unsigned int bus,
+						unsigned int devfn)
+{
+	ROMSTAGE_CONST struct device *dev, *result;
+
+	result = 0;
+	for (dev = all_devices; dev; dev = dev->next) {
+		if ((dev->path.type == DEVICE_PATH_PCI) &&
+		    (dev->bus->secondary == bus) &&
+		    (dev->path.pci.devfn == devfn)) {
+			result = dev;
+			break;
+		}
+	}
+	return result;
+}
+
+/**
+ * Given an SMBus bus and a device number, find the device structure.
+ *
+ * @param bus The bus number.
+ * @param addr A device number.
+ * @return Pointer to the device structure (if found), 0 otherwise.
+ */
+ROMSTAGE_CONST struct device *dev_find_slot_on_smbus(unsigned int bus,
+							unsigned int addr)
+{
+	ROMSTAGE_CONST struct device *dev, *result;
+
+	result = 0;
+	for (dev = all_devices; dev; dev = dev->next) {
+		if ((dev->path.type == DEVICE_PATH_I2C) &&
+		    (dev->bus->secondary == bus) &&
+		    (dev->path.i2c.device == addr)) {
+			result = dev;
+			break;
+		}
+	}
+	return result;
+}
+
diff --git a/src/devices/oprom/x86_interrupts.c b/src/devices/oprom/x86_interrupts.c
index bada546..2ea05d4 100644
--- a/src/devices/oprom/x86_interrupts.c
+++ b/src/devices/oprom/x86_interrupts.c
@@ -114,9 +114,7 @@
 }
 
 #define PCI_CONFIG_SPACE_TYPE1	(1 << 0)
-#define PCI_CONFIG_SPACE_TYPE2	(1 << 1)
 #define PCI_SPECIAL_CYCLE_TYPE1	(1 << 4)
-#define PCI_SPECIAL_CYCLE_TYPE2	(1 << 5)
 
 int int1a_handler(struct eregs *regs)
 {
diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c
index 7fa7384..4ced6b0 100644
--- a/src/devices/pci_device.c
+++ b/src/devices/pci_device.c
@@ -656,7 +656,10 @@
 			   ((device & 0xffff) << 16) | (vendor & 0xffff));
 }
 
-/** Default handler: only runs the relevant PCI BIOS. */
+
+int oprom_is_loaded;
+
+/* Default handler: only runs the relevant PCI BIOS. */
 void pci_dev_init(struct device *dev)
 {
 #if CONFIG_PCI_ROM_RUN == 1 || CONFIG_VGA_ROM_RUN == 1
@@ -675,8 +678,11 @@
 	 * we don't run (VGA) option ROMs, unless we have to print
 	 * something on the screen before the kernel is loaded.
 	 */
-	if (!developer_mode_enabled() && !recovery_mode_enabled())
+	if (!developer_mode_enabled() && !recovery_mode_enabled() &&
+	    !vboot_wants_oprom()) {
+		printk(BIOS_DEBUG, "Not loading VGA Option ROM\n");
 		return;
+	}
 #endif
 
 	rom = pci_rom_probe(dev);
@@ -696,6 +702,8 @@
 		return;
 #endif
 	run_bios(dev, (unsigned long)ram);
+	oprom_is_loaded = 1;
+	printk(BIOS_DEBUG, "VGA Option ROM has been loaded\n");
 #endif /* CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN */
 }
 
diff --git a/src/drivers/Kconfig b/src/drivers/Kconfig
index 60e5b65..99cdaa0 100644
--- a/src/drivers/Kconfig
+++ b/src/drivers/Kconfig
@@ -27,3 +27,4 @@
 source src/drivers/trident/Kconfig
 source src/drivers/ics/Kconfig
 source src/drivers/spi/Kconfig
+source src/drivers/elog/Kconfig
diff --git a/src/drivers/Makefile.inc b/src/drivers/Makefile.inc
index 851a4df..e329e1b 100644
--- a/src/drivers/Makefile.inc
+++ b/src/drivers/Makefile.inc
@@ -27,4 +27,5 @@
 subdirs-y += trident
 subdirs-y += ics
 subdirs-y += spi
+subdirs-y += elog
 subdirs-$(CONFIG_ARCH_X86) += pc80
diff --git a/src/drivers/elog/Kconfig b/src/drivers/elog/Kconfig
new file mode 100644
index 0000000..02274c4
--- /dev/null
+++ b/src/drivers/elog/Kconfig
@@ -0,0 +1,105 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2012 The Chromium OS Authors.  All rights reserved.
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; version 2 of the License.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+##
+
+config ELOG
+	depends on SPI_FLASH
+	bool "Support for flash based event log"
+	default n
+	help
+	  Enable support for flash based event logging.
+
+if ELOG
+
+config ELOG_DEBUG
+	bool "Enable debug output for event logging"
+	default n
+
+config ELOG_FLASH_BASE
+	hex "Event log offset into flash"
+	default 0
+	help
+	  Offset into the flash chip for the ELOG block.
+	  This should be allocated in the FMAP.
+
+config ELOG_AREA_SIZE
+	hex "Size of Event Log area in flash"
+	default 0x1000
+	help
+	  This should be a multiple of flash block size.
+
+	  Default is 4K.
+
+config ELOG_FULL_THRESHOLD
+	hex "Threshold at which flash is considered full"
+	default 0xC00
+	help
+	  When the Event Log size is larger than this it will be shrunk
+	  to ELOG_SHRINK_SIZE.  Must be greater than ELOG_AREA_SIZE, and
+	  ELOG_AREA_SIZE - ELOG_FULL_THRESHOLD must be greater than the
+	  maximum event size of 128.
+
+	  Default is 75% of the log, or 3K.
+
+config ELOG_SHRINK_SIZE
+	hex "Resulting size when the event log is shrunk"
+	default 0x400
+	help
+	  When the Event Log is shrunk it will go to this size.
+	  ELOG_AREA_SIZE - ELOG_SHRINK_SIZE must be less than
+	  CONFIG_ELOG_FULL_THRESHOLD.
+
+	  Default is 1K.
+
+config ELOG_CBMEM
+	bool "Store a copy of ELOG in CBMEM"
+	default n
+	help
+	 This option will have ELOG store a copy of the flash event log
+	 in a CBMEM region and export that address in SMBIOS to the OS.
+	 This is useful if the ELOG location is not in memory mapped flash,
+	 but it means that events added at runtime via the SMI handler
+	 will not be reflected in the CBMEM copy of the log.
+
+endif
+
+config ELOG_GSMI
+	depends on ELOG && SPI_FLASH_SMM && SMM_TSEG
+	bool "SMI interface to write and clear event log"
+	default n
+	help
+	  This interface is compatible with the linux kernel driver
+	  available with CONFIG_GOOGLE_GSMI and can be used to write
+	  kernel reset/shutdown messages to the event log.
+
+config ELOG_BOOT_COUNT
+	depends on ELOG
+	bool "Maintain a monotonic boot number in CMOS"
+	default n
+	help
+	  Store a monotonic boot number in CMOS and provide an interface
+	  to read the current value and increment the counter.  This boot
+	  counter will be logged as part of the System Boot event.
+
+config ELOG_BOOT_COUNT_CMOS_OFFSET
+	depends on ELOG && ELOG_BOOT_COUNT && !USE_OPTION_TABLE
+	int "Offset in CMOS to store the boot count"
+	default 0
+	help
+	  This value must be greater than 16 bytes so as not to interfere
+	  with the standard RTC region.  Requires 8 bytes.
diff --git a/src/drivers/elog/Makefile.inc b/src/drivers/elog/Makefile.inc
new file mode 100644
index 0000000..79a7cc0
--- /dev/null
+++ b/src/drivers/elog/Makefile.inc
@@ -0,0 +1,6 @@
+ramstage-$(CONFIG_ELOG) += elog.c
+
+smm-$(CONFIG_ELOG_GSMI) += elog.c gsmi.c
+
+romstage-$(CONFIG_ELOG_BOOT_COUNT) += boot_count.c
+ramstage-$(CONFIG_ELOG_BOOT_COUNT) += boot_count.c
diff --git a/src/drivers/elog/boot_count.c b/src/drivers/elog/boot_count.c
new file mode 100644
index 0000000..9ea828d
--- /dev/null
+++ b/src/drivers/elog/boot_count.c
@@ -0,0 +1,122 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
+ */
+
+#include <console/console.h>
+#include <ip_checksum.h>
+#include <pc80/mc146818rtc.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <elog.h>
+
+/*
+ * We need a region in CMOS to store the boot counter.
+ *
+ * This can either be declared as part of the option
+ * table or statically defined in the board config.
+ */
+#if CONFIG_USE_OPTION_TABLE
+# include "option_table.h"
+# define BOOT_COUNT_CMOS_OFFSET (CMOS_VSTART_boot_count_offset >> 3)
+#else
+# if defined(CONFIG_ELOG_BOOT_COUNT_CMOS_OFFSET)
+#  define BOOT_COUNT_CMOS_OFFSET CONFIG_ELOG_BOOT_COUNT_CMOS_OFFSET
+# else
+#  error "Must define CONFIG_ELOG_BOOT_COUNT_CMOS_OFFSET"
+# endif
+#endif
+
+#define BOOT_COUNT_SIGNATURE 0x4342 /* 'BC' */
+
+struct boot_count {
+	u16 signature;
+	u32 count;
+	u16 checksum;
+} __attribute__ ((packed));
+
+/* Read and validate boot count structure from CMOS */
+static int boot_count_cmos_read(struct boot_count *bc)
+{
+	u8 i, *p;
+	u16 csum;
+
+	for (p = (u8*)bc, i = 0; i < sizeof(*bc); i++, p++)
+		*p = cmos_read(BOOT_COUNT_CMOS_OFFSET + i);
+
+	/* Verify signature */
+	if (bc->signature != BOOT_COUNT_SIGNATURE) {
+		printk(BIOS_DEBUG, "Boot Count invalid signature\n");
+		return -1;
+	}
+
+	/* Verify checksum over signature and counter only */
+	csum = compute_ip_checksum(bc, offsetof(struct boot_count, checksum));
+
+	if (csum != bc->checksum) {
+		printk(BIOS_DEBUG, "Boot Count checksum mismatch\n");
+		return -1;
+	}
+
+	return 0;
+}
+
+/* Write boot count structure to CMOS */
+static void boot_count_cmos_write(struct boot_count *bc)
+{
+	u8 i, *p;
+
+	/* Checksum over signature and counter only */
+	bc->checksum = compute_ip_checksum(
+		bc, offsetof(struct boot_count, checksum));
+
+	for (p = (u8*)bc, i = 0; i < sizeof(*bc); i++, p++)
+		cmos_write(*p, BOOT_COUNT_CMOS_OFFSET + i);
+}
+
+/* Increment boot count and return the new value */
+u32 boot_count_increment(void)
+{
+	struct boot_count bc;
+
+	/* Read and increment boot count */
+	if (boot_count_cmos_read(&bc) < 0) {
+		/* Structure invalid, re-initialize */
+		bc.signature = BOOT_COUNT_SIGNATURE;
+		bc.count = 0;
+	}
+
+	/* Increment boot counter */
+	bc.count++;
+
+	/* Write the new count to CMOS */
+	boot_count_cmos_write(&bc);
+
+	printk(BIOS_DEBUG, "Boot Count incremented to %u\n", bc.count);
+	return bc.count;
+}
+
+/* Return the current boot count */
+u32 boot_count_read(void)
+{
+	struct boot_count bc;
+
+	if (boot_count_cmos_read(&bc) < 0)
+		return 0;
+
+	return bc.count;
+}
diff --git a/src/drivers/elog/elog.c b/src/drivers/elog/elog.c
new file mode 100644
index 0000000..e6baace
--- /dev/null
+++ b/src/drivers/elog/elog.c
@@ -0,0 +1,977 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
+ */
+
+#include <arch/acpi.h>
+#include <cbmem.h>
+#include <console/console.h>
+#include <pc80/mc146818rtc.h>
+#include <smbios.h>
+#include <spi.h>
+#include <spi_flash.h>
+#include <stdint.h>
+#include <string.h>
+#include <elog.h>
+#include "elog_internal.h"
+
+#if CONFIG_CHROMEOS
+#include <vendorcode/google/chromeos/fmap.h>
+#elif CONFIG_ELOG_FLASH_BASE == 0
+#error "CONFIG_ELOG_FLASH_BASE is invalid"
+#endif
+#if CONFIG_ELOG_FULL_THRESHOLD >= CONFIG_ELOG_AREA_SIZE
+#error "CONFIG_ELOG_FULL_THRESHOLD is larger than CONFIG_ELOG_AREA_SIZE"
+#endif
+#if (CONFIG_ELOG_AREA_SIZE - CONFIG_ELOG_FULL_THRESHOLD) < (MAX_EVENT_SIZE + 1)
+#error "CONFIG_ELOG_FULL_THRESHOLD is too small"
+#endif
+#if CONFIG_ELOG_SHRINK_SIZE >= CONFIG_ELOG_AREA_SIZE
+#error "CONFIG_ELOG_SHRINK_SIZE is larger than CONFIG_ELOG_AREA_SIZE"
+#endif
+#if (CONFIG_ELOG_AREA_SIZE - CONFIG_ELOG_SHRINK_SIZE) > \
+	CONFIG_ELOG_FULL_THRESHOLD
+#error "CONFIG_ELOG_SHRINK_SIZE is too large"
+#endif
+
+#if CONFIG_ELOG_DEBUG
+#define elog_debug(STR...) printk(BIOS_DEBUG, STR)
+#else
+#define elog_debug(STR...)
+#endif
+
+/*
+ * Static variables for ELOG state
+ */
+static int elog_initialized;
+static struct spi_flash *elog_spi;
+static struct elog_descriptor elog_flash_area;
+static struct elog_descriptor elog_mem_area;
+
+static inline struct elog_descriptor* elog_get_mem(void)
+{
+	return &elog_mem_area;
+}
+
+static inline struct elog_descriptor* elog_get_flash(void)
+{
+	return &elog_flash_area;
+}
+
+/*
+ * Convert a memory mapped flash address into a flash offset
+ */
+static inline u32 elog_flash_address_to_offset(u8 *address)
+{
+	if (!elog_spi)
+		return 0;
+	return (u32)address - ((u32)~0UL - elog_spi->size + 1);
+}
+
+/*
+ * Convert a flash offset into a memory mapped flash address
+ */
+static inline u8* elog_flash_offset_to_address(u32 offset)
+{
+	if (!elog_spi)
+		return NULL;
+	return (u8*)((u32)~0UL - elog_spi->size + 1 + offset);
+}
+
+/*
+ * The ELOG header is at the very beginning of the area
+ */
+static inline struct elog_header*
+elog_get_header(struct elog_descriptor *elog)
+{
+	return elog->backing_store;
+}
+
+/*
+ * Pointer to an event log header in the event data area
+ */
+static inline struct event_header*
+elog_get_event_base(struct elog_descriptor *elog, u32 offset)
+{
+	return (struct event_header *)&elog->data[offset];
+}
+
+/*
+ * Pointer to where the next event should be stored
+ */
+static inline struct event_header*
+elog_get_next_event_base(struct elog_descriptor *elog)
+{
+	return elog_get_event_base(elog, elog->next_event_offset);
+}
+
+/*
+ * Pointer to the last logged event
+ */
+static inline struct event_header*
+elog_get_last_event_base(struct elog_descriptor *elog)
+{
+	return elog_get_event_base(elog, elog->last_event_offset);
+}
+
+/*
+ * Update the checksum at the last byte
+ */
+static void elog_update_checksum(struct event_header *event, u8 checksum)
+{
+	u8 *event_data = (u8*)event;
+	event_data[event->length - 1] = checksum;
+}
+
+/*
+ * Simple byte checksum for events
+ */
+static u8 elog_checksum_event(struct event_header *event)
+{
+	u8 index, checksum = 0;
+	u8 *data = (u8*)event;
+
+	for (index = 0; index < event->length; index++)
+		checksum += data[index];
+	return checksum;
+}
+
+/*
+ * Check if a raw buffer is filled with ELOG_TYPE_EOL byte
+ */
+static int elog_is_buffer_clear(u8 *base, u32 size)
+{
+	u8 *current = base;
+	u8 *end = current + size;
+
+	elog_debug("elog_is_buffer_clear(base=0x%p size=%u)\n", base, size);
+
+	for (; current != end; current++) {
+		if (*current != ELOG_TYPE_EOL)
+			return 0;
+	}
+	return 1;
+}
+
+/*
+ * Verify whether ELOG area is filled with ELOG_TYPE_EOL byte
+ */
+static int elog_is_area_clear(struct elog_descriptor *elog)
+{
+	return elog_is_buffer_clear(elog->backing_store, elog->total_size);
+}
+
+/*
+ * Check that the ELOG area has been initialized and is valid.
+ */
+static int elog_is_area_valid(struct elog_descriptor *elog)
+{
+	elog_debug("elog_is_area_valid()\n");
+
+	if (elog->area_state != ELOG_AREA_HAS_CONTENT)
+		return 0;
+	if (elog->header_state != ELOG_HEADER_VALID)
+		return 0;
+	if (elog->event_buffer_state != ELOG_EVENT_BUFFER_OK)
+		return 0;
+	return 1;
+}
+
+/*
+ * Verify the contents of an ELOG Header structure
+ * Returns 1 if the header is valid, 0 otherwise
+ */
+static int elog_is_header_valid(struct elog_header *header)
+{
+	elog_debug("elog_is_header_valid()\n");
+
+	if (header->magic != ELOG_SIGNATURE) {
+		printk(BIOS_ERR, "ELOG: header magic 0x%X != 0x%X\n",
+		       header->magic, ELOG_SIGNATURE);
+		return 0;
+	}
+	if (header->version != ELOG_VERSION) {
+		printk(BIOS_ERR, "ELOG: header version %u != %u\n",
+		       header->version, ELOG_VERSION);
+		return 0;
+	}
+	if (header->header_size != sizeof(*header)) {
+		printk(BIOS_ERR, "ELOG: header size mismatch %u != %u\n",
+		       header->header_size, sizeof(*header));
+		return 0;
+	}
+	return 1;
+}
+
+/*
+ * Validate the event header and data.
+ */
+static int elog_is_event_valid(struct elog_descriptor *elog, u32 offset)
+{
+	struct event_header *event;
+
+	event = elog_get_event_base(elog, offset);
+	if (!event)
+		return 0;
+
+	/* Validate event length */
+	if ((offsetof(struct event_header, type) +
+	     sizeof(event->type) - 1 + offset) >= elog->data_size)
+		return 0;
+
+	/* End of event marker has been found */
+	if (event->type == ELOG_TYPE_EOL)
+		return 0;
+
+	/* Check if event fits in area */
+	if ((offsetof(struct event_header, length) +
+	     sizeof(event->length) - 1 + offset) >= elog->data_size)
+		return 0;
+
+	/*
+	 * If the current event length + the current offset exceeds
+	 * the area size then the event area is corrupt.
+	 */
+	if ((event->length + offset) >= elog->data_size)
+		return 0;
+
+	/* Event length must be at least header size + checksum */
+	if (event->length < (sizeof(*event) + 1))
+		return 0;
+
+	/* If event checksum is invalid the area is corrupt */
+	if (elog_checksum_event(event) != 0)
+		return 0;
+
+	/* Event is valid */
+	return 1;
+}
+
+/*
+ * Write 'size' bytes of data provided in 'buffer' into flash
+ * device at offset 'offset'. This will not erase the flash and
+ * it assumes the flash area is erased appropriately.
+ */
+static void elog_flash_write(u8 *address, u8 *buffer, u32 size)
+{
+	struct elog_descriptor *flash = elog_get_flash();
+	u32 offset;
+
+	if (!address || !buffer || !size || !elog_spi)
+		return;
+
+	offset = flash->flash_base;
+	offset += address - (u8*)flash->backing_store;
+
+	elog_debug("elog_flash_write(address=0x%p offset=0x%08x buffer=0x%p "
+		   "size=%u)\n", address, offset, buffer, size);
+
+	/* Write the data to flash */
+	elog_spi->write(elog_spi, offset, size, buffer);
+
+	/* Update the copy in memory */
+	memcpy(address, buffer, size);
+}
+
+/*
+ * Erase the first block specified in the address.
+ * Only handles flash area within a single flash block.
+ */
+static void elog_flash_erase(u8 *address, u32 size)
+{
+	struct elog_descriptor *flash = elog_get_flash();
+	u32 offset;
+
+	if (!address || !size || !elog_spi)
+		return;
+
+	offset = flash->flash_base;
+	offset += address - (u8*)flash->backing_store;
+
+	elog_debug("elog_flash_erase(address=0x%p offset=0x%08x size=%u)\n",
+		   address, offset, size);
+
+	/* Erase the sectors in this region */
+	elog_spi->erase(elog_spi, offset, size);
+}
+
+/*
+ * Scan the event area and validate each entry and
+ * update the ELOG descriptor state.
+ */
+static void elog_update_event_buffer_state(struct elog_descriptor *elog)
+{
+	u32 count = 0;
+	u32 offset = 0;
+	u32 last_offset = 0;
+	u32 last_event_size = 0;
+	struct event_header *event;
+
+	elog_debug("elog_update_event_buffer_state()\n");
+
+	/* Go through each event and validate it */
+	while (1) {
+		event = elog_get_event_base(elog, offset);
+
+		/* Do not de-reference anything past the area length */
+		if ((offsetof(struct event_header, type) +
+		     sizeof(event->type) - 1 + offset) >= elog->data_size) {
+			elog->event_buffer_state = ELOG_EVENT_BUFFER_CORRUPTED;
+			break;
+		}
+
+		/* The end of the event marker has been found */
+		if (event->type == ELOG_TYPE_EOL)
+			break;
+
+		/* Validate the event */
+		if (!elog_is_event_valid(elog, offset)) {
+			elog->event_buffer_state = ELOG_EVENT_BUFFER_CORRUPTED;
+			break;
+		}
+
+		/* Move to the next event */
+		count++;
+		last_offset = offset;
+		last_event_size = event->length;
+		offset += event->length;
+	}
+
+	/* Ensure the remaining buffer is empty */
+	if (!elog_is_buffer_clear(&elog->data[offset],
+				  elog->data_size - offset))
+		elog->event_buffer_state = ELOG_EVENT_BUFFER_CORRUPTED;
+
+	/* Update data into elog descriptor */
+	elog->event_count = count;
+	elog->next_event_offset = offset;
+	elog->last_event_offset = last_offset;
+	elog->last_event_size = last_event_size;
+}
+
+static void elog_validate_and_fill(struct elog_descriptor *elog)
+{
+	elog_debug("elog_validate_and_fill()\n");
+
+	/* Check if the area is empty or not */
+	if (elog_is_area_clear(elog)) {
+		elog->area_state = ELOG_AREA_EMPTY;
+		return;
+	}
+
+	elog->area_state = ELOG_AREA_HAS_CONTENT;
+
+	/* Validate the header */
+	if (!elog_is_header_valid(elog->staging_header)) {
+		elog->header_state = ELOG_HEADER_INVALID;
+		return;
+	}
+
+	elog->header_state = ELOG_HEADER_VALID;
+	elog_update_event_buffer_state(elog);
+}
+
+/*
+ * Initialize a new ELOG descriptor
+ */
+static void elog_init_descriptor(struct elog_descriptor *elog,
+				 elog_descriptor_type type,
+				 u8 *buffer, u32 size,
+				 struct elog_header *header)
+{
+	elog_debug("elog_init_descriptor(type=%u buffer=0x%p size=%u)\n",
+		   type, buffer, size);
+
+	elog->type = type;
+	elog->area_state = ELOG_AREA_UNDEFINED;
+	elog->header_state = ELOG_HEADER_INVALID;
+	elog->event_buffer_state = ELOG_EVENT_BUFFER_OK;
+	elog->backing_store = buffer;
+	elog->total_size = size;
+
+	/* Fill memory buffer by reading from SPI */
+	if (type == ELOG_DESCRIPTOR_FLASH)
+		elog_spi->read(elog_spi, elog->flash_base, size, buffer);
+
+	/* Get staging header from backing store */
+	elog->staging_header = header;
+	memcpy(header, buffer, sizeof(struct elog_header));
+
+	/* Data starts immediately after header */
+	elog->data = &buffer[sizeof(struct elog_header)];
+	elog->data_size = size - sizeof(struct elog_header);
+
+	elog->next_event_offset = 0;
+	elog->last_event_offset = 0;
+	elog->last_event_size = 0;
+	elog->event_count = 0;
+
+	elog_validate_and_fill(elog);
+}
+
+/*
+ * Re-initialize an existing ELOG descriptor
+ */
+static void elog_reinit_descriptor(struct elog_descriptor *elog)
+{
+	elog_debug("elog_reinit_descriptor()\n");
+	elog_init_descriptor(elog, elog->type, elog->backing_store,
+			     elog->total_size, elog->staging_header);
+}
+
+/*
+ * Create ELOG descriptor data structures for all ELOG areas.
+ */
+static int elog_setup_descriptors(u32 flash_base, u32 area_size)
+{
+	struct elog_header *staging_header;
+	u8 *area;
+
+	elog_debug("elog_setup_descriptors(base=0x%08x size=%u)\n",
+		   flash_base, area_size);
+
+	/* Prepare flash descriptors */
+	if (flash_base == 0) {
+		printk(BIOS_ERR, "ELOG: Invalid flash base\n");
+		return -1;
+	}
+
+	staging_header = malloc(sizeof(struct elog_header));
+	if (!staging_header) {
+		printk(BIOS_ERR, "ELOG: Unable to allocate header\n");
+		return -1;
+	}
+
+	area = malloc(area_size);
+	if (!area) {
+		printk(BIOS_ERR, "ELOG: Unable to determine flash address\n");
+		return -1;
+	}
+	elog_get_flash()->flash_base = flash_base;
+	elog_init_descriptor(elog_get_flash(), ELOG_DESCRIPTOR_FLASH,
+			     area, area_size, staging_header);
+
+	/* Initialize the memory area to look like a cleared flash area */
+	area = malloc(area_size);
+	if (!area) {
+		printk(BIOS_ERR, "ELOG: Unable to allocate mem area\n");
+		return -1;
+	}
+	memset(area, ELOG_TYPE_EOL, area_size);
+	elog_init_descriptor(elog_get_mem(), ELOG_DESCRIPTOR_MEMORY,
+			     area, area_size, (struct elog_header *)area);
+
+	return 0;
+}
+
+static void elog_flash_erase_area(void)
+{
+	struct elog_descriptor *elog = elog_get_flash();
+
+	elog_debug("elog_flash_erase_area()\n");
+
+	elog_flash_erase(elog->backing_store, elog->total_size);
+	memset(elog->backing_store, ELOG_TYPE_EOL, elog->total_size);
+	elog_reinit_descriptor(elog);
+}
+
+static void elog_prepare_empty(struct elog_descriptor *elog,
+			       u8 *data, u32 data_size)
+{
+	struct elog_header *header;
+
+	elog_debug("elog_prepare_empty(%u bytes)\n", data_size);
+
+	if (!elog_is_area_clear(elog))
+		return;
+
+	/* Write out the header */
+	header = elog->staging_header;
+	header->magic = ELOG_SIGNATURE;
+	header->version = ELOG_VERSION;
+	header->header_size = sizeof(struct elog_header);
+	header->reserved[0] = ELOG_TYPE_EOL;
+	header->reserved[1] = ELOG_TYPE_EOL;
+	elog_flash_write(elog->backing_store, (u8*)header,
+			 header->header_size);
+
+	/* Write out the data */
+	if (data)
+		elog_flash_write(elog->data, data, data_size);
+
+	elog_reinit_descriptor(elog);
+
+	/* Clear the log if corrupt */
+	if (!elog_is_area_valid(elog))
+		elog_flash_erase_area();
+}
+
+static int elog_sync_flash_to_mem(void)
+{
+	struct elog_descriptor *mem = elog_get_mem();
+	struct elog_descriptor *flash = elog_get_flash();
+
+	elog_debug("elog_sync_flash_to_mem()\n");
+
+	/* Fill with empty pattern first */
+	memset(mem->backing_store, ELOG_TYPE_EOL, mem->total_size);
+
+	/* Read the header from SPI to memory */
+	elog_spi->read(elog_spi, flash->flash_base,
+		       sizeof(struct elog_header), mem->backing_store);
+
+	/* Read the valid flash contents from SPI to memory */
+	elog_spi->read(elog_spi, flash->flash_base + sizeof(struct elog_header),
+		       flash->next_event_offset, mem->data);
+
+	elog_reinit_descriptor(mem);
+
+	return elog_is_area_valid(mem) ? 0 : -1;
+}
+
+static int elog_sync_mem_to_flash(void)
+{
+	struct elog_descriptor *mem = elog_get_mem();
+	struct elog_descriptor *flash = elog_get_flash();
+	u8 *src, *dest;
+	u32 size;
+
+	elog_debug("elog_sync_mem_to_flash()\n");
+
+	/*
+	 * In the case of a BIOS flash the active area will be cleared.
+	 * One can catch this case and log the proper shutdown event by
+	 * checking if the active flash elog is empty.  Note that if the
+	 * header size changes we will have corrupted the flash area.
+	 * However that will be corrected on the next boot.
+	 */
+	if (elog_is_area_clear(flash)) {
+		elog_prepare_empty(flash,
+				   (u8*)elog_get_last_event_base(mem),
+				   mem->last_event_size);
+		elog_sync_flash_to_mem();
+		return 0;
+	}
+
+	/* Calculate the destination and source bases */
+	dest = (u8*)elog_get_next_event_base(flash);
+	src = (u8*)elog_get_event_base(mem, flash->next_event_offset);
+
+	/* Calculate how much data to sync */
+	size = mem->next_event_offset - flash->next_event_offset;
+
+	/* Write the log data */
+	elog_flash_write(dest, src, size);
+
+	/* Update descriptor */
+	flash->event_count = mem->event_count;
+	flash->next_event_offset = mem->next_event_offset;
+	flash->last_event_offset = mem->last_event_offset;
+	flash->last_event_size = mem->last_event_size;
+
+	return 0;
+}
+
+/*
+ * Called during ELOG entry handler to prepare state for flash.
+ */
+static int elog_flash_area_bootstrap(void)
+{
+	struct elog_descriptor *elog = elog_get_flash();
+
+	elog_debug("elog_flash_area_bootstrap()\n");
+
+	switch (elog->area_state) {
+	case ELOG_AREA_UNDEFINED:
+		printk(BIOS_ERR, "ELOG: flash area undefined\n");
+		return -1;
+
+	case ELOG_AREA_EMPTY:
+		/* Write a new header with no data */
+		elog_prepare_empty(elog, NULL, 0);
+		break;
+
+	case ELOG_AREA_HAS_CONTENT:
+		break;
+	}
+
+	if (elog->header_state == ELOG_HEADER_INVALID) {
+		/* If the header is invalid no events can be salvaged
+		 * so erase the entire area. */
+		printk(BIOS_ERR, "ELOG: flash area header invalid\n");
+		elog_flash_erase_area();
+		elog_prepare_empty(elog, NULL, 0);
+	}
+
+	if (elog->event_buffer_state == ELOG_EVENT_BUFFER_CORRUPTED) {
+		/* Wipe the source flash area */
+		elog_flash_erase_area();
+		elog_prepare_empty(elog, elog_get_mem()->data,
+				   elog_get_mem()->next_event_offset);
+	}
+
+	return 0;
+}
+
+/*
+ * Shrink the log, deleting old entries and moving the
+ * remining ones to the front of the log.
+ */
+static int elog_shrink(void)
+{
+	struct elog_descriptor *mem = elog_get_mem();
+	struct event_header *event;
+	u16 discard_count = 0;
+	u16 offset = 0;
+
+	elog_debug("elog_shrink()\n");
+
+	if (mem->next_event_offset < CONFIG_ELOG_SHRINK_SIZE)
+		return 0;
+
+	while (1) {
+		/* Next event has exceeded constraints */
+		if (offset > CONFIG_ELOG_SHRINK_SIZE)
+			break;
+
+		event = elog_get_event_base(mem, offset);
+
+		/* Reached the end of the area */
+		if (!event || event->type == ELOG_TYPE_EOL)
+			break;
+
+		offset += event->length;
+		discard_count++;
+	}
+
+	/* Erase flash area */
+	elog_flash_erase_area();
+
+	/* Write new flash area */
+	elog_prepare_empty(elog_get_flash(),
+			   (u8*)elog_get_event_base(mem, offset),
+			   mem->next_event_offset - offset);
+
+	/* Update memory area from flash */
+	if (elog_sync_flash_to_mem() < 0) {
+		printk(BIOS_ERR, "Unable to update memory area from flash\n");
+		return -1;
+	}
+
+	/* Add clear event */
+	elog_add_event_word(ELOG_TYPE_LOG_CLEAR, offset);
+
+	return 0;
+}
+
+/*
+ * Initialize the SPI bus and probe for a flash chip
+ */
+static int elog_spi_init(void)
+{
+	elog_debug("elog_spi_init()\n");
+
+	/* Prepare SPI subsystem */
+	spi_init();
+
+	/* Look for flash chip */
+	elog_spi = spi_flash_probe(0, 0, 0, 0);
+
+	return elog_spi ? 0 : -1;
+}
+
+#ifndef __SMM__
+/*
+ * Fill out SMBIOS Type 15 table entry so the
+ * event log can be discovered at runtime.
+ */
+int elog_smbios_write_type15(unsigned long *current, int handle)
+{
+	struct elog_descriptor *flash = elog_get_flash();
+	struct smbios_type15 *t = (struct smbios_type15 *)*current;
+	int len = sizeof(struct smbios_type15);
+
+#if CONFIG_ELOG_CBMEM
+	/* Save event log buffer into CBMEM for the OS to read */
+	void *cbmem = cbmem_add(CBMEM_ID_ELOG, flash->total_size);
+	if (!cbmem)
+		return 0;
+	memcpy(cbmem, flash->backing_store, flash->total_size);
+#endif
+
+	memset(t, 0, len);
+	t->type = SMBIOS_EVENT_LOG;
+	t->length = len - 2;
+	t->handle = handle;
+	t->area_length = flash->total_size - 1;
+	t->header_offset = 0;
+	t->data_offset = sizeof(struct elog_header);
+	t->access_method = SMBIOS_EVENTLOG_ACCESS_METHOD_MMIO32;
+	t->log_status = SMBIOS_EVENTLOG_STATUS_VALID;
+	t->change_token = 0;
+#if CONFIG_ELOG_CBMEM
+	t->address = (u32)cbmem;
+#else
+	t->address = (u32)elog_flash_offset_to_address(flash->flash_base);
+#endif
+	t->header_format = ELOG_HEADER_TYPE_OEM;
+	t->log_type_descriptors = 0;
+	t->log_type_descriptor_length = 2;
+
+	*current += len;
+	return len;
+}
+#endif
+
+/*
+ * Clear the entire event log
+ */
+int elog_clear(void)
+{
+	struct elog_descriptor *flash = elog_get_flash();
+
+	elog_debug("elog_clear()\n");
+
+	/* Erase flash area */
+	elog_flash_erase_area();
+
+	/* Prepare new empty area */
+	elog_prepare_empty(flash, NULL, 0);
+
+	/* Update memory area from flash */
+	if (elog_sync_flash_to_mem() < 0)
+		return -1;
+
+	/* Log the clear event */
+	elog_add_event_word(ELOG_TYPE_LOG_CLEAR, flash->total_size);
+
+	return 0;
+}
+
+/*
+ * Event log main entry point
+ */
+int elog_init(void)
+{
+	u32 flash_base = CONFIG_ELOG_FLASH_BASE;
+	int flash_size = CONFIG_ELOG_AREA_SIZE;
+#if CONFIG_CHROMEOS
+	u8 *flash_base_ptr;
+#endif
+
+	if (elog_initialized)
+		return 0;
+
+	elog_debug("elog_init()\n");
+
+	/* Find SPI flash chip for backing store */
+	if (elog_spi_init() < 0) {
+		printk(BIOS_ERR, "ELOG: Unable to find SPI flash\n");
+		return -1;
+	}
+
+#if CONFIG_CHROMEOS
+	/* Find the ELOG base and size in FMAP */
+	flash_size = find_fmap_entry("RW_ELOG", (void **)&flash_base_ptr);
+	if (flash_size < 0) {
+		printk(BIOS_WARNING, "ELOG: Unable to find RW_ELOG in FMAP, "
+		       "using CONFIG_ELOG_FLASH_BASE instead\n");
+		flash_size = CONFIG_ELOG_AREA_SIZE;
+	} else {
+		flash_base = elog_flash_address_to_offset(flash_base_ptr);
+
+		/* Use configured size if smaller than FMAP size */
+		if (flash_size > CONFIG_ELOG_AREA_SIZE)
+			flash_size = CONFIG_ELOG_AREA_SIZE;
+	}
+#endif
+
+	/* Setup descriptors for flash and memory areas */
+	if (elog_setup_descriptors(flash_base, flash_size) < 0) {
+		printk(BIOS_ERR, "ELOG: Unable to initialize descriptors\n");
+		return -1;
+	}
+
+	/* Bootstrap the flash area */
+	if (elog_flash_area_bootstrap() < 0) {
+		printk(BIOS_ERR, "ELOG: Unable to bootstrap flash area\n");
+		return -1;
+	}
+
+	/* Initialize the memory area */
+	if (elog_sync_flash_to_mem() < 0) {
+		printk(BIOS_ERR, "ELOG: Unable to initialize memory area\n");
+		return -1;
+	}
+
+	elog_initialized = 1;
+
+	printk(BIOS_INFO, "ELOG: MEM @0x%p FLASH @0x%p [SPI 0x%08x]\n",
+	       elog_get_mem()->backing_store,
+	       elog_get_flash()->backing_store, elog_get_flash()->flash_base);
+
+	printk(BIOS_INFO, "ELOG: areas are %d bytes, full threshold %d,"
+	       " shrink size %d\n", CONFIG_ELOG_AREA_SIZE,
+	       CONFIG_ELOG_FULL_THRESHOLD, CONFIG_ELOG_SHRINK_SIZE);
+
+	/* Log a clear event if necessary */
+	if (elog_get_flash()->event_count == 0)
+		elog_add_event_word(ELOG_TYPE_LOG_CLEAR,
+				    elog_get_flash()->total_size);
+
+	/* Shrink the log if we are getting too full */
+	if (elog_get_mem()->next_event_offset >= CONFIG_ELOG_FULL_THRESHOLD)
+		elog_shrink();
+
+#if CONFIG_ELOG_BOOT_COUNT && !defined(__SMM__)
+	/* Log boot count event except in S3 resume */
+	if (acpi_slp_type != 3)
+		elog_add_event_dword(ELOG_TYPE_BOOT, boot_count_read());
+#endif
+
+#if CONFIG_CMOS_POST && !defined(__SMM__)
+	/* Check and log POST codes from previous boot */
+	cmos_post_log();
+#endif
+
+	return 0;
+}
+
+/*
+ * Populate timestamp in event header with current time
+ */
+static void elog_fill_timestamp(struct event_header *event)
+{
+	event->second = cmos_read(RTC_CLK_SECOND);
+	event->minute = cmos_read(RTC_CLK_MINUTE);
+	event->hour   = cmos_read(RTC_CLK_HOUR);
+	event->day    = cmos_read(RTC_CLK_DAYOFMONTH);
+	event->month  = cmos_read(RTC_CLK_MONTH);
+	event->year   = cmos_read(RTC_CLK_YEAR);
+
+	/* Basic sanity check of expected ranges */
+	if (event->month > 0x12 || event->day > 0x31 || event->hour > 0x23 ||
+	    event->minute > 0x59 || event->second > 0x59) {
+		event->year   = 0;
+		event->month  = 0;
+		event->day    = 0;
+		event->hour   = 0;
+		event->minute = 0;
+		event->second = 0;
+	}
+}
+
+/*
+ * Add an event to the memory area
+ */
+static int elog_add_event_mem(u8 event_type, void *data, u8 data_size)
+{
+	struct event_header *event;
+	struct elog_descriptor *mem = elog_get_mem();
+	u8 event_size;
+
+	elog_debug("elog_add_event_mem(type=%X)\n", event_type);
+
+	/* Make sure ELOG structures are initialized */
+	if (elog_init() < 0)
+		return -1;
+
+	/* Header + Data + Checksum */
+	event_size = sizeof(*event) + data_size + 1;
+	if (event_size > MAX_EVENT_SIZE) {
+		printk(BIOS_ERR, "ELOG: Event(%X) data size too "
+		       "big (%d)\n", event_type, event_size);
+		return -1;
+	}
+
+	/* Make sure event data can fit */
+	if ((mem->next_event_offset + event_size) >= mem->data_size) {
+		printk(BIOS_ERR, "ELOG: Event(%X) does not fit\n",
+		       event_type);
+		return -1;
+	}
+
+	/* Fill out event data */
+	event = elog_get_next_event_base(mem);
+	event->type = event_type;
+	event->length = event_size;
+	elog_fill_timestamp(event);
+
+	if (data_size)
+		memcpy(&event[1], data, data_size);
+
+	/* Zero the checksum byte and then compute checksum */
+	elog_update_checksum(event, 0);
+	elog_update_checksum(event, -(elog_checksum_event(event)));
+
+	/* Update memory descriptor parameters */
+	mem->event_count++;
+	mem->last_event_offset = mem->next_event_offset;
+	mem->last_event_size = event_size;
+	mem->next_event_offset += event_size;
+
+	printk(BIOS_INFO, "ELOG: Event(%X) added with size %d\n",
+	       event_type, event_size);
+	return 0;
+}
+
+void elog_add_event_raw(u8 event_type, void *data, u8 data_size)
+{
+	elog_debug("elog_add_event_raw(type=%X)\n", event_type);
+
+	/* Add event to the memory area */
+	if (elog_add_event_mem(event_type, data, data_size) < 0) {
+		printk(BIOS_ERR, "Unable to add event to memory area\n");
+		return;
+	}
+
+	/* Sync the memory buffer to flash */
+	elog_sync_mem_to_flash();
+
+	/* Shrink the log if we are getting too full */
+	if (elog_get_mem()->next_event_offset >= CONFIG_ELOG_FULL_THRESHOLD)
+		elog_shrink();
+}
+
+void elog_add_event(u8 event_type)
+{
+	elog_add_event_raw(event_type, NULL, 0);
+}
+
+void elog_add_event_byte(u8 event_type, u8 data)
+{
+	elog_add_event_raw(event_type, &data, sizeof(data));
+}
+
+void elog_add_event_word(u8 event_type, u16 data)
+{
+	elog_add_event_raw(event_type, &data, sizeof(data));
+}
+
+void elog_add_event_dword(u8 event_type, u32 data)
+{
+	elog_add_event_raw(event_type, &data, sizeof(data));
+}
+
+void elog_add_event_wake(u8 source, u32 instance)
+{
+	struct elog_event_data_wake wake = {
+		.source = source,
+		.instance = instance
+	};
+	elog_add_event_raw(ELOG_TYPE_WAKE_SOURCE, &wake, sizeof(wake));
+}
diff --git a/src/drivers/elog/elog_internal.h b/src/drivers/elog/elog_internal.h
new file mode 100644
index 0000000..f6aa051
--- /dev/null
+++ b/src/drivers/elog/elog_internal.h
@@ -0,0 +1,92 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
+ */
+
+#ifndef ELOG_INTERNAL_H_
+#define ELOG_INTERNAL_H_
+
+/* ELOG header */
+struct elog_header {
+	u32 magic;
+	u8 version;
+	u8 header_size;
+	u8 reserved[2];
+} __attribute__ ((packed));
+
+/* ELOG related constants */
+#define ELOG_SIGNATURE			0x474f4c45  /* 'ELOG' */
+#define ELOG_VERSION			1
+
+/* SMBIOS event log header */
+struct event_header {
+	u8 type;
+	u8 length;
+	u8 year;
+	u8 month;
+	u8 day;
+	u8 hour;
+	u8 minute;
+	u8 second;
+} __attribute__ ((packed));
+
+/* SMBIOS Type 15 related constants */
+#define ELOG_HEADER_TYPE_OEM		0x88
+
+typedef enum elog_descriptor_type {
+	ELOG_DESCRIPTOR_UNKNOWN,
+	ELOG_DESCRIPTOR_MEMORY,
+	ELOG_DESCRIPTOR_FLASH,
+} elog_descriptor_type;
+
+typedef enum elog_area_state {
+	ELOG_AREA_UNDEFINED,		/* Initial boot strap state */
+	ELOG_AREA_EMPTY,		/* Entire area is empty */
+	ELOG_AREA_HAS_CONTENT,		/* Area has some content */
+} elog_area_state;
+
+typedef enum elog_header_state {
+	ELOG_HEADER_INVALID,
+	ELOG_HEADER_VALID,
+} elog_header_state;
+
+typedef enum elog_event_buffer_state {
+	ELOG_EVENT_BUFFER_OK,
+	ELOG_EVENT_BUFFER_CORRUPTED,
+} elog_event_buffer_state;
+
+/*
+ * Internal handler for event log buffers
+ */
+struct elog_descriptor {
+	elog_descriptor_type	type;
+	elog_area_state		area_state;
+	elog_header_state	header_state;
+	elog_event_buffer_state	event_buffer_state;
+	struct elog_header	*staging_header;
+	void			*backing_store;
+	u8			*data;
+	u32			flash_base;
+	u16                     total_size;
+	u16			data_size;
+	u16			next_event_offset;
+	u16			last_event_offset;
+	u16			last_event_size;
+	u16			event_count;
+};
+
+#endif /* ELOG_INTERNAL_H_ */
diff --git a/src/drivers/elog/gsmi.c b/src/drivers/elog/gsmi.c
new file mode 100644
index 0000000..dac1af4
--- /dev/null
+++ b/src/drivers/elog/gsmi.c
@@ -0,0 +1,117 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
+ */
+
+#include <arch/io.h>
+#include <console/console.h>
+#include <cpu/x86/smm.h>
+#include <elog.h>
+
+#define GSMI_RET_SUCCESS		0x00
+#define GSMI_RET_INVALID_PARAMETER	0x82
+#define GSMI_RET_UNSUPPORTED		0x83
+
+#define GSMI_CMD_SET_EVENT_LOG		0x08
+#define GSMI_CMD_CLEAR_EVENT_LOG	0x09
+#define GSMI_CMD_HANDSHAKE_TYPE		0xc1
+
+#define GSMI_HANDSHAKE_NONE		0x7f
+#define GSMI_LOG_ENTRY_TYPE_KERNEL	0xDEAD
+
+struct gsmi_set_eventlog_param {
+	u32 data_ptr;
+	u32 data_len;
+	u32 type;
+} __attribute__ ((packed));
+
+struct gsmi_set_eventlog_type1 {
+	u16 type;
+	u32 instance;
+} __attribute__ ((packed));
+
+struct gsmi_clear_eventlog_param {
+	u32 percentage;
+	u32 data_type;
+} __attribute__ ((packed));
+
+/* Param is usually EBX, ret in EAX */
+u32 gsmi_exec(u8 command, u32 *param)
+{
+	struct gsmi_set_eventlog_param *sel;
+	struct gsmi_set_eventlog_type1 *type1;
+	struct gsmi_clear_eventlog_param *cel;
+	u32 ret = GSMI_RET_UNSUPPORTED;
+
+	switch (command) {
+	case GSMI_CMD_HANDSHAKE_TYPE:
+		/* Used by kernel to verify basic SMI functionality */
+		printk(BIOS_DEBUG, "GSMI Handshake\n");
+		ret = GSMI_HANDSHAKE_NONE;
+		break;
+
+	case GSMI_CMD_SET_EVENT_LOG:
+		/* Look for a type1 event */
+		sel = (struct gsmi_set_eventlog_param *)(*param);
+		if (!sel)
+			break;
+
+		/* Make sure the input is usable */
+		if (sel->type != 1 && sel->data_ptr != 0 &&
+		    sel->data_len != sizeof(struct gsmi_set_eventlog_type1))
+			break;
+
+		/* Event structure within the data buffer */
+		type1 = (struct gsmi_set_eventlog_type1 *)(sel->data_ptr);
+		if (!type1)
+			break;
+
+		printk(BIOS_DEBUG, "GSMI Set Event Log "
+		       "(type=0x%x instance=0x%x)\n",
+		       type1->type, type1->instance);
+
+		if (type1->type == GSMI_LOG_ENTRY_TYPE_KERNEL) {
+			/* Special case for linux kernel shutdown reason */
+			elog_add_event_dword(ELOG_TYPE_OS_EVENT,
+					     type1->instance);
+		} else {
+			/* Add other events that may be used for testing */
+			elog_add_event_dword(type1->type, type1->instance);
+		}
+		ret = GSMI_RET_SUCCESS;
+		break;
+
+	case GSMI_CMD_CLEAR_EVENT_LOG:
+		/* Get paramter buffer even though we don't use it */
+		cel = (struct gsmi_clear_eventlog_param *)(*param);
+		if (!cel)
+			break;
+
+		printk(BIOS_DEBUG, "GSMI Clear Event Log (%u%% type=%u)\n",
+		       cel->percentage, cel->data_type);
+
+		if (elog_clear() == 0)
+			ret = GSMI_RET_SUCCESS;
+		break;
+
+	default:
+		printk(BIOS_DEBUG, "GSMI Unknown: 0x%02x\n", command);
+		break;
+	}
+
+	return ret;
+}
diff --git a/src/drivers/oxford/oxpcie/oxpcie.c b/src/drivers/oxford/oxpcie/oxpcie.c
index 8afdd1f..5ce4f62 100644
--- a/src/drivers/oxford/oxpcie/oxpcie.c
+++ b/src/drivers/oxford/oxpcie/oxpcie.c
@@ -38,6 +38,7 @@
 			(read32(res->base) >> 8), (read32(res->base) & 0xff));
 	printk(BIOS_DEBUG, "OXPCIe952: %d UARTs detected.\n",
 			(read32(res->base + 4) & 3));
+	printk(BIOS_DEBUG, "OXPCIe952: UART BAR: 0x%x\n", (u32)res->base);
 }
 
 
diff --git a/src/drivers/pc80/Makefile.inc b/src/drivers/pc80/Makefile.inc
index 8ca21bf..0c1a1f0 100644
--- a/src/drivers/pc80/Makefile.inc
+++ b/src/drivers/pc80/Makefile.inc
@@ -14,3 +14,6 @@
 cmos.default-type = 0xaa
 
 smm-y += mc146818rtc.c
+
+$(obj)/drivers/pc80/mc146818rtc.ramstage.o : $(obj)/build.h
+$(obj)/drivers/pc80/mc146818rtc.smm.o : $(obj)/build.h
diff --git a/src/drivers/pc80/i8254.c b/src/drivers/pc80/i8254.c
index f75216d..ca993f4 100644
--- a/src/drivers/pc80/i8254.c
+++ b/src/drivers/pc80/i8254.c
@@ -35,7 +35,7 @@
 	outb(0x12, TIMER1_PORT);
 }
 
-#if defined(CONFIG_UDELAY_TIMER2) &&  CONFIG_UDELAY_TIMER2
+#if CONFIG_UDELAY_TIMER2
 static void load_timer2(unsigned int ticks)
 {
         /* Set up the timer gate, turn off the speaker */
diff --git a/src/drivers/pc80/mc146818rtc.c b/src/drivers/pc80/mc146818rtc.c
index 99d670d..cde13b7 100644
--- a/src/drivers/pc80/mc146818rtc.c
+++ b/src/drivers/pc80/mc146818rtc.c
@@ -1,4 +1,5 @@
 #include <stdint.h>
+#include <build.h>
 #include <console/console.h>
 #include <pc80/mc146818rtc.h>
 #include <boot/coreboot_tables.h>
@@ -7,6 +8,9 @@
 #include "option_table.h"
 #include <cbfs.h>
 #endif
+#if CONFIG_HAVE_ACPI_RESUME
+#include <arch/acpi.h>
+#endif
 
 /* control registers - Moto names
  */
@@ -113,11 +117,13 @@
 #endif
 #endif
 
+#ifndef __SMM__
 void rtc_init(int invalid)
 {
+	int cmos_invalid = 0;
+	int checksum_invalid = 0;
 #if CONFIG_USE_OPTION_TABLE
 	unsigned char x;
-	int cmos_invalid, checksum_invalid;
 #endif
 
 	printk(BIOS_DEBUG, "RTC Init\n");
@@ -132,38 +138,47 @@
 			PC_CKS_RANGE_END,PC_CKS_LOC);
 
 #define CLEAR_CMOS 0
+#else
+#define CLEAR_CMOS 1
+#endif
+
 	if (invalid || cmos_invalid || checksum_invalid) {
+#if CLEAR_CMOS
+		int i;
+
+		cmos_write(0, 0x01);
+		cmos_write(0, 0x03);
+		cmos_write(0, 0x05);
+		for(i = 10; i < 128; i++) {
+			cmos_write(0, i);
+		}
+
+		/* Now setup a default date equals to the build date */
+		cmos_write(0, RTC_CLK_SECOND);
+		cmos_write(0, RTC_CLK_MINUTE);
+		cmos_write(1, RTC_CLK_HOUR);
+		cmos_write(RTC_TO_BCD(COREBOOT_BUILD_WEEKDAY),
+			   RTC_CLK_DAYOFWEEK);
+		cmos_write(RTC_TO_BCD(COREBOOT_BUILD_DAY),
+			   RTC_CLK_DAYOFMONTH);
+		cmos_write(RTC_TO_BCD(COREBOOT_BUILD_MONTH),
+			   RTC_CLK_MONTH);
+		cmos_write(RTC_TO_BCD(COREBOOT_BUILD_YEAR),
+			   RTC_CLK_YEAR);
+#endif
 		printk(BIOS_WARNING, "RTC:%s%s%s%s\n",
 			invalid?" Clear requested":"",
 			cmos_invalid?" Power Problem":"",
 			checksum_invalid?" Checksum invalid":"",
 			CLEAR_CMOS?" zeroing cmos":"");
-#if CLEAR_CMOS
-		cmos_write(0, 0x01);
-		cmos_write(0, 0x03);
-		cmos_write(0, 0x05);
-		for(i = 10; i < 48; i++) {
-			cmos_write(0, i);
-		}
-
-		if (cmos_invalid) {
-			/* Now setup a default date of Sat 1 January 2000 */
-			cmos_write(0, 0x00); /* seconds */
-			cmos_write(0, 0x02); /* minutes */
-			cmos_write(1, 0x04); /* hours */
-			cmos_write(7, 0x06); /* day of week */
-			cmos_write(1, 0x07); /* day of month */
-			cmos_write(1, 0x08); /* month */
-			cmos_write(0, 0x09); /* year */
-		}
-#endif
 	}
-#endif
 
 	/* Setup the real time clock */
 	cmos_write(RTC_CONTROL_DEFAULT, RTC_CONTROL);
 	/* Setup the frequency it operates at */
 	cmos_write(RTC_FREQ_SELECT_DEFAULT, RTC_FREQ_SELECT);
+	/* Ensure all reserved bits are 0 in register D */
+	cmos_write(RTC_VRT, RTC_VALID);
 
 #if CONFIG_USE_OPTION_TABLE
 	/* See if there is a LB CMOS checksum error */
@@ -177,9 +192,20 @@
                         PC_CKS_RANGE_END,PC_CKS_LOC);
 #endif
 
+#if CONFIG_HAVE_ACPI_RESUME
+	/*
+	 * Avoid clearing pending interrupts in the resume path because
+	 * the Linux kernel relies on this to know if it should restart
+	 * the RTC timerqueue if the wake was due to the RTC alarm.
+	 */
+	if (acpi_slp_type == 3)
+		return;
+#endif
+
 	/* Clear any pending interrupts */
 	(void) cmos_read(RTC_INTR_FLAGS);
 }
+#endif
 
 
 #if CONFIG_USE_OPTION_TABLE
diff --git a/src/drivers/spi/Kconfig b/src/drivers/spi/Kconfig
index ee7584c..b3c982e 100644
--- a/src/drivers/spi/Kconfig
+++ b/src/drivers/spi/Kconfig
@@ -24,6 +24,13 @@
 	  Select this option if your chipset driver needs to store certain
 	  data in the SPI flash.
 
+config SPI_FLASH_SMM
+	bool "SPI flash driver support in SMM"
+	default n
+	depends on SPI_FLASH && HAVE_SMI_HANDLER
+	help
+	  Select this option if you want SPI flash support in SMM.
+
 config SPI_FLASH_EON
 	bool
 	default y
@@ -73,7 +80,7 @@
 	  data in the SPI flash and your SPI flash is made by Winbond.
 
 config SPI_FLASH_NO_FAST_READ
-	bool
+	bool "Disable Fast Read command"
 	default n
 	depends on SPI_FLASH
 	help
diff --git a/src/drivers/spi/Makefile.inc b/src/drivers/spi/Makefile.inc
index 1814e80..7f94abd 100644
--- a/src/drivers/spi/Makefile.inc
+++ b/src/drivers/spi/Makefile.inc
@@ -10,3 +10,16 @@
 ramstage-$(CONFIG_SPI_FLASH_WINBOND) += winbond.c
 ramstage-$(CONFIG_SPI_FRAM_RAMTRON) += ramtron.c
 
+ifeq ($(CONFIG_SPI_FLASH_SMM),y)
+# SPI flash driver interface
+smm-$(CONFIG_SPI_FLASH) += spi_flash.c
+
+# drivers
+smm-$(CONFIG_SPI_FLASH_EON) += eon.c
+smm-$(CONFIG_SPI_FLASH_MACRONIX) += macronix.c
+smm-$(CONFIG_SPI_FLASH_SPANSION) += spansion.c
+smm-$(CONFIG_SPI_FLASH_SST) += sst.c
+smm-$(CONFIG_SPI_FLASH_STMICRO) += stmicro.c
+smm-$(CONFIG_SPI_FLASH_WINBOND) += winbond.c
+smm-$(CONFIG_SPI_FRAM_RAMTRON) += ramtron.c
+endif
\ No newline at end of file
diff --git a/src/drivers/spi/eon.c b/src/drivers/spi/eon.c
index 4056953..7d9bc44 100644
--- a/src/drivers/spi/eon.c
+++ b/src/drivers/spi/eon.c
@@ -85,9 +85,11 @@
 		cmd[2] = page_addr;
 		cmd[3] = byte_addr;
 
+#if CONFIG_DEBUG_SPI_FLASH
 		printk(BIOS_SPEW,
-		    "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x } chunk_len = %zd\n",
+		    "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x } chunk_len = %zu\n",
 		     buf + actual, cmd[0], cmd[1], cmd[2], cmd[3], chunk_len);
+#endif
 
 		ret = spi_flash_cmd(flash->spi, CMD_EN25Q128_WREN, NULL, 0);
 		if (ret < 0) {
diff --git a/src/drivers/spi/macronix.c b/src/drivers/spi/macronix.c
index 130e746..baee0a5 100644
--- a/src/drivers/spi/macronix.c
+++ b/src/drivers/spi/macronix.c
@@ -141,8 +141,11 @@
 		cmd[2] = (offset >> 8) & 0xff;
 		cmd[3] = offset & 0xff;
 
-		printk(BIOS_SPEW, "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x } chunk_len = %zd\n",
+#if CONFIG_DEBUG_SPI_FLASH
+		printk(BIOS_SPEW, "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x }"
+		     " chunk_len = %zu\n",
 		     buf + actual, cmd[0], cmd[1], cmd[2], cmd[3], chunk_len);
+#endif
 
 		ret = spi_flash_cmd(flash->spi, CMD_MX25XX_WREN, NULL, 0);
 		if (ret < 0) {
@@ -165,8 +168,9 @@
 		byte_addr = 0;
 	}
 
-	printk(BIOS_INFO, "SF: Macronix: Successfully programmed %zu bytes @ 0x%lx\n",
-	      len, offset - len);
+	printk(BIOS_INFO, "SF: Macronix: Successfully programmed %zu bytes @"
+	      " 0x%x\n",
+	      len, (unsigned int)(offset - len));
 
 	spi_release_bus(flash->spi);
 	return ret;
@@ -207,7 +211,7 @@
 
 	mcx->flash.write = macronix_write;
 	mcx->flash.erase = macronix_erase;
-#ifdef CONFIG_SPI_FLASH_NO_FAST_READ
+#if CONFIG_SPI_FLASH_NO_FAST_READ
 	mcx->flash.read = spi_flash_cmd_read_slow;
 #else
 	mcx->flash.read = spi_flash_cmd_read_fast;
diff --git a/src/drivers/spi/spansion.c b/src/drivers/spi/spansion.c
index a4f370a..511091b 100644
--- a/src/drivers/spi/spansion.c
+++ b/src/drivers/spi/spansion.c
@@ -162,8 +162,11 @@
 		cmd[2] = page_addr;
 		cmd[3] = byte_addr;
 
-		printk(BIOS_SPEW, "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x } chunk_len = %zd\n",
+#if CONFIG_DEBUG_SPI_FLASH
+		printk(BIOS_SPEW, "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x }"
+		     " chunk_len = %zu\n",
 		     buf + actual, cmd[0], cmd[1], cmd[2], cmd[3], chunk_len);
+#endif
 
 		ret = spi_flash_cmd(flash->spi, CMD_S25FLXX_WREN, NULL, 0);
 		if (ret < 0) {
diff --git a/src/drivers/spi/spi_flash.c b/src/drivers/spi/spi_flash.c
index 7384cbc..2ae669b 100644
--- a/src/drivers/spi/spi_flash.c
+++ b/src/drivers/spi/spi_flash.c
@@ -12,6 +12,9 @@
 #include <spi.h>
 #include <spi_flash.h>
 #include <delay.h>
+#ifdef __SMM__
+#include <cpu/x86/smm.h>
+#endif
 #include "spi_flash_internal.h"
 
 static void spi_flash_addr(u32 addr, u8 *cmd)
@@ -115,7 +118,7 @@
 		if ((status & poll_bit) == 0)
 			break;
 
-		mdelay(1);
+		udelay(500);
 	} while (timebase--);
 
 	if ((status & poll_bit) == 0)
@@ -206,7 +209,7 @@
  */
 #define IDCODE_CONT_LEN 0
 #define IDCODE_PART_LEN 5
-static const struct {
+static struct {
 	const u8 shift;
 	const u8 idcode;
 	struct spi_flash *(*probe) (struct spi_slave *spi, u8 *idcode);
@@ -264,7 +267,6 @@
 
 #if CONFIG_DEBUG_SPI_FLASH
 	printk(BIOS_SPEW, "SF: Got idcodes\n");
-	print_buffer(0, idcode, 1, sizeof(idcode), 0);
 #endif
 
 	/* count the number of continuation bytes */
@@ -276,6 +278,10 @@
 	/* search the table for matches in shift and id */
 	for (i = 0; i < ARRAY_SIZE(flashes); ++i)
 		if (flashes[i].shift == shift && flashes[i].idcode == *idp) {
+#if CONFIG_SMM_TSEG && defined(__SMM__)
+			/* Need to relocate this function */
+			tseg_relocate((void **)&flashes[i].probe);
+#endif
 			/* we have a match, call probe */
 			flash = flashes[i].probe(spi, idp);
 			if (flash)
@@ -287,6 +293,14 @@
 		goto err_manufacturer_probe;
 	}
 
+#if CONFIG_SMM_TSEG && defined(__SMM__)
+	/* Ensure flash handlers are valid for TSEG */
+	tseg_relocate((void **)&flash->read);
+	tseg_relocate((void **)&flash->write);
+	tseg_relocate((void **)&flash->erase);
+	tseg_relocate((void **)&flash->name);
+#endif
+
 	printk(BIOS_INFO, "SF: Detected %s with page size %x, total %x\n",
 			flash->name, flash->sector_size, flash->size);
 
@@ -298,12 +312,5 @@
 err_read_id:
 	spi_release_bus(spi);
 err_claim_bus:
-	spi_free_slave(spi);
 	return NULL;
 }
-
-void spi_flash_free(struct spi_flash *flash)
-{
-	spi_free_slave(flash->spi);
-	free(flash);
-}
diff --git a/src/drivers/spi/sst.c b/src/drivers/spi/sst.c
index 56cc851..07050fc 100644
--- a/src/drivers/spi/sst.c
+++ b/src/drivers/spi/sst.c
@@ -194,8 +194,8 @@
 		ret = sst_byte_write(flash, offset, buf + actual);
 
  done:
-	printk(BIOS_INFO, "SF: SST: program %s %zu bytes @ 0x%lx\n",
-	      ret ? "failure" : "success", len, offset - actual);
+	printk(BIOS_INFO, "SF: SST: program %s %zu bytes @ 0x%x\n",
+	      ret ? "failure" : "success", len, (unsigned int)(offset - actual));
 
 	spi_release_bus(flash->spi);
 	return ret;
diff --git a/src/drivers/spi/stmicro.c b/src/drivers/spi/stmicro.c
index 8cbdad5..ccdfa00 100644
--- a/src/drivers/spi/stmicro.c
+++ b/src/drivers/spi/stmicro.c
@@ -163,8 +163,11 @@
 		cmd[2] = page_addr;
 		cmd[3] = byte_addr;
 
-		printk(BIOS_SPEW, "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x } chunk_len = %zd\n",
+#if CONFIG_DEBUG_SPI_FLASH
+		printk(BIOS_SPEW, "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x }"
+		     " chunk_len = %zu\n",
 		     buf + actual, cmd[0], cmd[1], cmd[2], cmd[3], chunk_len);
+#endif
 
 		ret = spi_flash_cmd(flash->spi, CMD_M25PXX_WREN, NULL, 0);
 		if (ret < 0) {
diff --git a/src/drivers/spi/winbond.c b/src/drivers/spi/winbond.c
index 65818d5..ac9cf30 100644
--- a/src/drivers/spi/winbond.c
+++ b/src/drivers/spi/winbond.c
@@ -130,9 +130,11 @@
 		cmd[1] = (offset >> 16) & 0xff;
 		cmd[2] = (offset >> 8) & 0xff;
 		cmd[3] = offset & 0xff;
-		printk(BIOS_SPEW, "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x } chunk_len = %ld\n",
-			buf + actual,
+#if CONFIG_DEBUG_SPI_FLASH
+		printk(BIOS_SPEW, "PP: 0x%p => cmd = { 0x%02x 0x%02x%02x%02x }"
+		        " chunk_len = %zu\n", buf + actual,
 			cmd[0], cmd[1], cmd[2], cmd[3], chunk_len);
+#endif
 
 		ret = spi_flash_cmd(flash->spi, CMD_W25_WREN, NULL, 0);
 		if (ret < 0) {
@@ -155,8 +157,8 @@
 		byte_addr = 0;
 	}
 
-	printk(BIOS_INFO, "SF: Winbond: Successfully programmed %zu bytes @ 0x%lx\n",
-			len, offset - len);
+	printk(BIOS_INFO, "SF: Winbond: Successfully programmed %zu bytes @ 0x%x\n",
+			len, (unsigned int)(offset - len));
 	ret = 0;
 
 out:
@@ -203,7 +205,7 @@
 
 	stm->flash.write = winbond_write;
 	stm->flash.erase = winbond_erase;
-#ifdef CONFIG_SPI_FLASH_NO_FAST_READ
+#if CONFIG_SPI_FLASH_NO_FAST_READ
 	stm->flash.read = spi_flash_cmd_read_slow;
 #else
 	stm->flash.read = spi_flash_cmd_read_fast;
diff --git a/src/ec/Kconfig b/src/ec/Kconfig
index 935b40b..d3ac471 100644
--- a/src/ec/Kconfig
+++ b/src/ec/Kconfig
@@ -1,3 +1,6 @@
 source src/ec/acpi/Kconfig
+source src/ec/compal/Kconfig
+source src/ec/google/Kconfig
 source src/ec/lenovo/Kconfig
 source src/ec/smsc/Kconfig
+source src/ec/quanta/Kconfig
diff --git a/src/ec/Makefile.inc b/src/ec/Makefile.inc
index b334c1f..b363016 100644
--- a/src/ec/Makefile.inc
+++ b/src/ec/Makefile.inc
@@ -1,2 +1,2 @@
 subdirs-$(CONFIG_EC_ACPI) += acpi
-subdirs-y += lenovo smsc
+subdirs-y += compal google lenovo smsc quanta
diff --git a/src/ec/compal/Kconfig b/src/ec/compal/Kconfig
new file mode 100644
index 0000000..5b7899a
--- /dev/null
+++ b/src/ec/compal/Kconfig
@@ -0,0 +1 @@
+source src/ec/compal/ene932/Kconfig
diff --git a/src/ec/compal/Makefile.inc b/src/ec/compal/Makefile.inc
new file mode 100644
index 0000000..ce75ca6
--- /dev/null
+++ b/src/ec/compal/Makefile.inc
@@ -0,0 +1 @@
+subdirs-$(CONFIG_EC_COMPAL_ENE932) += ene932
diff --git a/src/ec/compal/ene932/Kconfig b/src/ec/compal/ene932/Kconfig
new file mode 100644
index 0000000..47e4b7b
--- /dev/null
+++ b/src/ec/compal/ene932/Kconfig
@@ -0,0 +1,4 @@
+config EC_COMPAL_ENE932
+	bool
+	help
+	Interface to COMPAL ENE932 Embedded Controller.
diff --git a/src/ec/compal/ene932/Makefile.inc b/src/ec/compal/ene932/Makefile.inc
new file mode 100644
index 0000000..0a8d0ca
--- /dev/null
+++ b/src/ec/compal/ene932/Makefile.inc
@@ -0,0 +1,3 @@
+driver-y += ec.c
+smm-y += ec.c
+smm-y += ../../../lib/delay.c
diff --git a/src/mainboard/getac/p470/chip.h b/src/ec/compal/ene932/acpi/ac.asl
similarity index 72%
copy from src/mainboard/getac/p470/chip.h
copy to src/ec/compal/ene932/acpi/ac.asl
index b75c381..8c85fc3 100644
--- a/src/mainboard/getac/p470/chip.h
+++ b/src/ec/compal/ene932/acpi/ac.asl
@@ -1,7 +1,7 @@
 /*
  * This file is part of the coreboot project.
  *
- * Copyright (C) 2007-2009 coresystems GmbH
+ * Copyright (C) 2011-2012 The Chromium OS Authors. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -19,5 +19,21 @@
  * MA 02110-1301 USA
  */
 
-extern struct chip_operations mainboard_ops;
-struct mainboard_config {};
+// Scope (EC0)
+
+Device (AC)
+{
+	Name (_HID, "ACPI0003")
+	Name (_PCL, Package () { \_SB })
+
+	Method (_PSR)
+	{
+		Store(ADPT, Local0)
+		Return(Local0)
+	}
+
+	Method (_STA)
+	{
+		Return (0x0F)
+	}
+}
diff --git a/src/ec/compal/ene932/acpi/battery.asl b/src/ec/compal/ene932/acpi/battery.asl
new file mode 100644
index 0000000..90d8adb
--- /dev/null
+++ b/src/ec/compal/ene932/acpi/battery.asl
@@ -0,0 +1,158 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2011-2012 The Chromium OS Authors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+// Scope (EC0)
+
+Device (BATX)
+{
+	Name (_HID, EISAID ("PNP0C0A"))
+	Name (_UID, 1)
+	Name (_PCL, Package () { \_SB })
+
+	Name (PBIF, Package () {
+		0x00000001,  // Power Unit: mAh
+		0xFFFFFFFF,  // Design Capacity
+		0xFFFFFFFF,  // Last Full Charge Capacity
+		0x00000001,  // Battery Technology: Rechargeable
+		0xFFFFFFFF,  // Design Voltage
+		0x00000003,  // Design Capacity of Warning
+		0xFFFFFFFF,  // Design Capacity of Low
+		0x00000001,  // Capacity Granularity 1
+		0x00000001,  // Capacity Granularity 2
+		"",          // Model Number
+		"",          // Serial Number
+		"LION",      // Battery Type
+		""           // OEM Information
+	})
+
+	Name (PBST, Package () {
+		0x00000000,  // Battery State
+		0xFFFFFFFF,  // Battery Present Rate
+		0xFFFFFFFF,  // Battery Remaining Capacity
+		0xFFFFFFFF,  // Battery Present Voltage
+	})
+	Name (BTNM, Zero)  // Battery number
+
+	// Workaround for full battery status, enabled by default
+	Name (BFWK, One)
+
+	// Method to enable full battery workaround
+	Method (BFWE)
+	{
+		Store (One, BFWK)
+	}
+
+	// Method to disable full battery workaround
+	Method (BFWD)
+	{
+		Store (Zero, BFWK)
+	}
+
+	Method (_STA, 0, Serialized)
+	{
+		If (BOL0) {
+			Return (0x1F)
+		} Else {
+			Return (0x0F)
+		}
+	}
+
+	Method (_BIF, 0, Serialized)
+	{
+		// Update fields from EC
+		Store (BAM0, Index (PBIF, 0))
+		Store (BDC0, Index (PBIF, 1))
+		Store (BFC0, Index (PBIF, 2))
+		Store (BDV0, Index (PBIF, 4))
+		Divide(BFC0, 0x64, Local0, Local1)
+		Multiply(Local1, 0x0A, Local1)
+		Store(Local1, Index(PBIF, 5))
+		Divide(BFC0, 0x64, Local0, Local1)
+		Multiply(Local1, 0x03, Local1)
+		Store (Local1, Index (PBIF, 6))
+
+		Store (ToString(BATD), Index (PBIF, 9))  // model
+		Store (ToHexString(BSN0), Index (PBIF, 10))  // serial
+		Store (ToString(BMFN), Index (PBIF, 12))  // venor
+
+		Store(BDN0, BTNM)	// Save the battery number
+
+		Return (PBIF)
+	}
+
+	Method (_BST, 0, Serialized)
+	{
+		//
+		// 0: BATTERY STATE
+		//
+		// bit 0 = discharging
+		// bit 1 = charging
+		// bit 2 = critical level
+		//
+
+		// Get battery state from EC and save it for the charging workaround
+		Store (BST0, Local0)
+		Store (Local0, Index (PBST, 0))
+
+		//
+		// 1: BATTERY PRESENT RATE/CURRENT
+		//
+
+		Store (BAC0, Local1)
+		Subtract(0xFFFF, Local1, Local1)
+		Store (Local1, Index (PBST, 1))
+
+		//
+		// 2: BATTERY REMAINING CAPACITY
+		//
+		Multiply(BFC0, GAU0, Local1)
+		Divide(Local1, 0x64, Local2, Local1)
+
+		If (LAnd (BFWK, LAnd (ADPT, LNot (Local0)))) {
+			// On AC power and battery is neither charging
+			// nor discharging.  Linux expects a full battery
+			// to report same capacity as last full charge.
+			// https://bugzilla.kernel.org/show_bug.cgi?id=12632
+			Store (GAU0, Local2)
+
+			// See if within ~3% of full
+			ShiftRight (Local2, 5, Local3)
+			If (LAnd (LGreater (Local1, Subtract (Local2, Local3)),
+			          LLess (Local1, Add (Local2, Local3))))
+			{
+				Store (Local2, Local1)
+			}
+		}
+		Store (Local1, Index (PBST, 2))
+
+		//
+		// 3: BATTERY PRESENT VOLTAGE
+		//
+		Store (BPV0, Index (PBST, 3))
+
+		// Check the Battery Number
+		If(LNotEqual(BDN0, BTNM)) {
+			Notify(BATX, 0x81)
+		}
+
+		Return (PBST)
+	}
+}
diff --git a/src/ec/compal/ene932/acpi/ec.asl b/src/ec/compal/ene932/acpi/ec.asl
new file mode 100644
index 0000000..cb50a21
--- /dev/null
+++ b/src/ec/compal/ene932/acpi/ec.asl
@@ -0,0 +1,355 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2011-2012 The Chromium OS Authors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * The mainboard must define a PNOT method to handle power
+ * state notifications and Notify CPU device objects to
+ * re-evaluate their _PPC and _CST tables.
+ */
+
+Device (EC0)
+{
+	Name (_HID, EISAID ("PNP0C09"))
+	Name (_UID, 1)
+	Name (_GPE, EC_SCI)	// GPE for Runtime SCI
+
+	OperationRegion (ERAM, EmbeddedControl, 0x00, 0xff)
+	Field (ERAM, ByteAcc, Lock, Preserve)
+	{
+		// EC Name Space Configuration
+		Offset(0x00),
+		, 1,            // Reserved                              ; 00h.0
+		LCDS, 1,        // 1= BACKLIGHT ON , 0= BACKLIGHT OFF    ; 00h.1
+			, 6,        // Reserved                              ; 00h.2 ~ 00h.6
+		HTBN, 8,        // HOTKEY_BUTTON_NUMBER                  ; 01h For ABO Hot Key Function
+		HTBT, 8,        // HOTKEY_BUTTON_TYPE                    ; 02h For ABO Hot Key Function
+		LMEN, 1,        // Launch Manager enable .(1=Enable )    ; 03h.0, Lauanch manage
+		, 7,            // Reserved                              ; 03h.1 ~ 03h.7
+		ADAP, 2,        // Adaptor Type                          ; 04h.0 ~ 1
+		                // 0x00 = default(65w)
+		                // 0x01 = 65w
+		                // 0x02 = 90w
+		                // 0x03 = 120w
+		, 6,            // Reserved                             ; 04h.2 ~ 04h.7
+		Offset(0x08),   // Project Common Name space definition ; 08h - 2Ch
+		Offset(0x2D),
+		DSPM, 1,        // Display Mode.(0=dGPU, 1=iGPU )       ; 2Dh.0
+		Offset(0x2E),
+		EFP1, 4,        // Turbo Off P-State                    ; 2Eh.3-0
+		Offset(0x40),   // ABO Common Name space definition     ; 2F - 5Ch
+		Offset(0x5D),
+		ENIB, 16,       // Ext_NameSpace_Index                  ; 5Dh
+		                // Ext_NameSpace_Bank                   ; 5Eh
+		ENDD, 8,        // Ext_NameSpace_Data                   ; 5Fh
+		Offset(0x60),
+		SMPR, 8,        // SMBus protocol register              ; 60h
+		SMST, 8,        // SMBus status register                ; 61h
+		SMAD, 8,        // SMBus address register               ; 62h
+		SMCM, 8,        // SMBus command register               ; 63h
+		SMD0, 0x100,    // SMBus data regs (32)                 ; 64h - 83h
+		BCNT, 8,        // SMBus Block Count                    ; 84h
+		SMAA, 24,       // SMBus Alarm Address                  ; 85h - 87h
+		Offset(0x90),
+		BMFN, 72,       // Battery Manufacture name             ; 90h - 98h
+		BATD, 56,       // Battery Device name                  ; 99h - 9fh
+		Offset(0xA1),
+		, 1,            // Reserve                              ; A1h.0
+		VIDO, 1,        // Video Out Button (1=Pressed)         ; A1h.1
+		TOUP, 1,        // Touch Pad Button (0=On, 1=Off)       ; A1h.2
+		Offset(0xA2),
+		ODTS, 8,        // OS Shutdown Temp2 (DTS)              ; A2h
+		Offset(0xA3),
+		OSTY, 3,        // OSTYPE :   000- XP                   ; A3h.0-2
+		                //            001- Vista
+		                //            010- Linux
+		                //            011- Win7
+		, 4,            // Reserve                              ; A3h.3-6
+		ADPT, 1,        // AC Adapter (0=OffLine, 1=OnLine)     ; A3h.7
+		Offset(0xA4),
+		PWAK, 1,        // PME Wake Enable(0=Disable, 1=Enable) ; A4h.0
+		MWAK, 1,        // Modem Wake Enable(0/1=Disable/Enable); A4h.1
+		LWAK, 1,        // LAN Wake Enable (0=Disable, 1=Enable); A4h.2
+		RWAK, 1,        // RTC Wake Enable(0=DIsable,1=Enable)  ; A4h.3
+		WWAK, 1,        // WLAN wake Enable (0=Disable,1=Enable); A4h.4
+		UWAK, 1,        // USB WAKE(0=Disable, 1=Enable)        ; A4h.5
+		KWAK, 1,        // Keyboard WAKE(0=Disable,1=Enable)    ; A4h.6
+		TWAK, 1,        // TouchPad WAKE(0=Disable,1=Enable)    ; A4h.7
+		Offset(0xA5),
+		CCAC, 1,        // Charge Current (1=AC OFF)            ; A5h.0
+		AOAC, 1,        // Adapter OVP (1=AC OFF)               ; A5h.1
+		BLAC, 1,        // Batt learning (1=AC OFF)             ; A5h.2
+		PSRC, 1,        // Command (1=AC OFF)                   ; A5h.3
+		BOAC, 1,        // Batt OVP (1=AC OFF)                  ; A5h.4
+		LCAC, 1,        // Leak Current (1=AC OFF)              ; A5h.5
+		AAAC, 1,        // Air Adapter (1=AC OFF)               ; A5h.6
+		ACAC, 1,        // AC Off (1=AC OFF)                    ; A5h.7
+		Offset(0xA6),
+		S3ST, 1,        // System entry S3 State                : A6.0
+		S3RM, 1,        // System resume from S3 State          : A6.1
+		S4ST, 1,        // System entry S4 State                : A6.2
+		S4RM, 1,        // System resume from S4 State          : A6.3
+		S5ST, 1,        // System entry S4 State                : A6.4
+		S5RM, 1,        // System resume from S4 State          : A6.5
+		, 2,            // Reserve                              ; A6h.6-7
+		Offset(0xA7),
+		OSTT, 8,        // OS Throttling Temp                   ; A7h
+		OSST, 8,        // OS Shutdown Temp                     ; A8h
+		THLT, 8,        // Throttling Temp                      ; A9h
+		TCNL, 8,        // Tcontrol Temp                        ; AAh
+		MODE, 1,        // Mode(0=Local, 1=Remote)              ; ABh.0
+		, 2,            // Reserve                              ; ABh.1-2
+		INIT, 1,        // INITOK(0/1=Controlled by OS/EC)      ; ABh.3
+		FAN1, 1,        // FAN1 Active                          ; ABh.4
+		FAN2, 1,        // FAN2 Active                          ; ABh.5
+		FANT, 1,        // FAN Speed Time OK                    ; ABh.6
+		SKNM, 1,        // Skin Mode (0/1=Skin Address 90/92)   ; ABh.7
+		SDTM, 8,        // Shutdown Thermal Temperature         ; ACh
+		FSSN, 4,        // Fan Speed Step Number                ; ADh.0-3
+		                // 00 : Fan Off
+		                // 01 : Fan On Speed 1
+		                // 10 : Fan On Speed 2
+		                // 11 : Fan On Speed 3
+		FANU, 4,        // Machine Fan's number                 ; ADh.4-7
+		PCVL, 4,        // Throttling Level                     ; AEh.0-3
+		                // 0000 : Nothing
+		                // 0001 : Clock throttling 12.5%
+		                // 0010 : Clock throttling 25%
+		                // 0011 : Clock throttling 37.5%
+		                // 0100 : Clock throttling 50%
+		, 2,            // Reserved                             ; AEh.4-5
+		SWTO, 1,        // SW Throttling (1=Active)             ; AEh.6
+		TTHR, 1,        // HW (THRM#) Throttling (1=Active)     ; AEh.7
+		TTHM, 1,        // TS_THERMAL(1:Throttling for thermal) ; AFh.0
+		THTL, 1,        // THROTTLING(1:Ctrl H/W throtting act) ; AFh.1
+		, 2,            // Reserved                             ; AFh.2-3
+		NPST, 4,        // Number of P-State level              ; AFh.4-7
+		CTMP, 8,        // Current CPU Temperature              ; B0h
+		CTML, 8,        // CPU local temperature                ; B1h
+		SKTA, 8,        // Skin Temperature A                   ; B2h
+		SKTB, 8,        // GPU Temperature                      ; B3h
+		SKTC, 8,        // Skin Temperature C                   ; B4h
+		, 8,            // Reserved                             ; B5h
+		NTMP, 8,        // North Bridge Diode Temp              ; B6h
+		Offset(0xB7),
+		, 1,            // Reserved                             ; B7h.0
+		SKEY, 1,        // Security key event                   ; B7h.1
+		DIGM, 1,        // Digital Mode (1=Selected)            ; B7h.2
+		CDLE, 1,        // CD lock mode enable                  ; B7h.3
+		, 4,            // Reserved                             ; B7h.4-7
+		, 1,            // Reserved                             ; B8h.0
+		LIDF, 1,        // LID flag (1=Closed, 0=Opened)        ; B8h.1
+		PMEE, 1,        // PME event (0=off, 1=On)              ; B8h.2
+		PWBE, 1,        // Power button event (0=off, 1=On)     ; B8h.3
+		RNGE, 1,        // Ring in event (0=off, 1=On)          ; B8h.4
+		BTWE, 1,        // Bluetooth wake event (0=off, 1=On)   ; B8h.5
+		, 2,            // Reserved                             ; B8h.6-7
+		Offset(0xB9),
+		BRTS, 8,        // Brightness Value                     ; B9h
+		S35M, 1,        // S3.5 HotKey test mode                ; BAh.0
+		S35S, 1,        // S3.5 function status                 ; BAh.1
+		, 2,            // Reserved                             ; BAh.2-3
+		FFEN, 1,        // IRST support bit (1= Support)        ; BAh.4
+		FFST, 1,        // IRST status flag                     ; BAh.5
+		, 2,            // Reserved                             ; BAh.6-7
+		WLAT, 1,        // Wireless LAN (0=Inactive, 1=Active)  ; BBh.0
+		BTAT, 1,        // BlueTooth (0=Inactive, 1=Active)     ; BBh.1
+		WLEX, 1,        // Wireless LAN (0=Not Exist, 1=Exist)  ; BBh.2
+		BTEX, 1,        // BlueTooth (0=Not Exist, 1=Exist)     ; BBh.3
+		KLSW, 1,        // Kill Switch (0=Off, 1=On)            ; BBh.4
+		WLOK, 1,        // Wireless LAN Initialize OK           ; BBh.5
+		AT3G, 1,        // 3G (0=non-active, 1=active)          ; BBh.6
+		EX3G, 1,        // 3G (0=Not Exist, 1=Exist)            ; BBh.7
+		PJID, 8,        // Project ID                           ; BCh
+		CPUJ, 3,        // CPU Type                             ; BDh.0-2
+		                // 00, Tj85,
+		                // 01, Tj90,
+		                // 02, Tj100,
+		                // 03, Tj105,
+		                // 04 - 07, Reserved
+		CPNM, 3,        // CPU Core number                      ; BDh.3-5
+		                // 00, Single Core
+		                // 01, Dual Core
+		                // 02, Quad Core
+		                // 03 - 07, Reserved
+		GATY, 2,        // VGA Type                             ; BDh.6-7
+		                // 00, UMA
+		                // 01. Discrete
+		                // 02 - 03, Reserved
+		Offset(0xBE),
+		BOL0, 1,        // Batt0 (0=OffLine, 1=OnLine)          ; BEh.0
+		BOL1, 1,        // Batt1 (0=OffLine, 1=OnLine)          ; BEh.1
+		, 2,            // Reserved                             ; BEh.2-3
+		BCC0, 1,        // Batt0 be charging (1=Charging)       ; BEh.4
+		BCC1, 1,        // Batt1 be charging (1=Charging)       ; BEh.5
+		, 2,            // Reserved                             ; BEh.6-7
+		BPU0, 1,        // Batt0 (1=PowerUp)                    ; BFh.0
+		BPU1, 1,        // Batt1 (1=PowerUp)                    ; BFh.1
+		, 2,            // Reserved                             ; BFh.2-3
+		BOS0, 1,        // Batt0 (1=OnSMBUS)                    ; BFh.4
+		BOS1, 1,        // Batt1 (1=OnSMBUS)                    ; BFh.5
+		, 2,            // Reserved                             ; BFh.6-7
+		Offset(0xC0),
+		BTY0, 1,        // Batt Type (0=NiMh, 1=LiIon)          ; C0h.0
+		BAM0, 1,        // Battery mode (0=mA, 1=mW)            ; C0h.1
+		BAL0, 1,        // Low Battery                          ; C0h.2
+		, 1,            // Reserved                             ; C0h.3
+		BMF0, 3,        // Battery Manufacturer                 ; C0h.4-6
+		                // 001 : Sanyo
+		                // 010 : Sony
+		                // 100 : Pansonic
+		                // 101 : CPT
+		, 1,            // Reserved                             ; C0h.7
+		BST0, 8,        // Battery Status                       ; C1h
+                        // Bit0 : Discharging
+                        // Bit1 : Charging
+                        // Bit2 : Discharg and Critical Low
+		                // Bit3-7 : Reserved
+		BRC0, 16,       // Batt Remaining Capacity              ; C2h, C3h
+		BSN0, 16,       // Batt Serial Number                   ; C4h, C5h
+		BPV0, 16,       // Batt Present Voltage                 ; C6h, C7h
+		BDV0, 16,       // Batt Design Voltage                  ; C8h, C9h
+		BDC0, 16,       // Batt Design Capacity                 ; CAh, CBh
+		BFC0, 16,       // Batt Last Full Charge Capacity       ; CCh, CDh
+		GAU0, 8,        // Batt Gasgauge                        ; CEh
+		CYC0, 8,        // Batt Cycle Counter                   ; CFh
+		BPC0, 16,       // Batt Current                         ; D0h, D1h
+		BAC0, 16,       // Batt Average Current                 ; D2h, D3h
+		BTW0, 8,        // Batt Comsuption                      ; D4h
+		BVL0, 8,        // Batt Battery Volt                    ; D5h
+		BTM0, 8,        // Batt Battery Temp                    ; D6h
+		BAT0, 8,        // Batt Average Temp (Degree C)         ; D7h
+		BCG0, 16,       // Batt charge current                  ; D8h, D9h
+		BCT0, 8,        // Batt Current Temp Semple counter     ; DAh
+		BCI0, 8,        // BATT CMD Index for read BATT(SMB)    ; DBh
+		BCM0, 8,        // Count up to Communicate BATT         ; DCh
+		BOT0, 8,        // Count up if BATT over Temp           ; DDh
+		BSSB, 16,       // BATT Battery Status SMB              ; DEh, DFh
+		BOV0, 8,        // BATT Over Voltage Count              ; E0h
+		BCF0, 8,        // BATT Communication Fail Counter      ; E1h
+		BAD0, 8,        // Battery Voltage of ADC               ; E2h
+		BCV1, 16,       // Cell Voltage 1 (mV)                  ; E3h, E4h
+		BCV2, 16,       // Cell Voltage 2 (mV)                  ; E5h, E6h
+		BCV3, 16,       // Cell Voltage 3 (mV)                  ; E7h, E8h
+		BCV4, 16,       // Cell Voltage 4 (mV)                  ; E9h, EAh
+		Offset(0xF4),
+		BMD0, 16,       // Manufacture Date                     ; F4h, F5h
+		                // Batt Day	                            ; BIT[4:0] (Day)
+		                // Batt Month                           ; BIT[9:5] (Month)
+		                // Batt Year                            ; BIT[15:10] (Year)
+		BACV, 16,       // Charging Voltage                     ; F6h, F7h
+		BDN0, 8,        // Battery Cell Number                  ; F8h
+		, 8             // Last byte for Reserved.
+	}
+
+	Method (_CRS, 0, NotSerialized)
+	{
+		Name (ECMD, ResourceTemplate()
+		{
+			IO (Decode16, 0x62, 0x62, 0, 1)
+			IO (Decode16, 0x66, 0x66, 0, 1)
+		})
+		Return (ECMD)
+	}
+
+	Method (_REG, 2, NotSerialized)
+	{
+		// Initialize AC power state
+		Store (ADPT, \PWRS)
+
+		// Initialize LID switch state
+		Store (GP15, \LIDS)
+
+		// Force a read of CPU temperature
+		Store (CTML, Local0)
+	}
+
+
+/*
+ * EC Query Responses
+ *
+ * DTS temperature update    10h
+ * Decrease brightness event 11h
+ * Increase brightness event 12h
+ * Cover lid open            15h
+ * Cover lid close           16h
+ * External device plugged   17h
+ * External device removed   18h
+ * Bluetooth wake up event   19h
+ * Scr expand event          1Bh
+ * Display toggle            1Ch
+ * CPU  fast/slow event      1Dh
+ * Battery in critical low   22h
+ * Battery in low state      23h
+ * Battery pack plug in      25h
+ * Docking in                2Ah
+ * Undock                    2Bh
+ * Power button pressed      32h
+ * AC plug in                37h
+ * AC removed                38h
+ * Modem ring in             3Ah
+ * PME signal active         3Eh
+ * Hotkey make Function      45h
+ * Hotkey break Function     46h
+ */
+
+	// AC Power Connected
+	Method (_Q37, 0, NotSerialized)
+	{
+		Store (One, \PWRS)
+		Notify (AC, 0x80)
+		Notify (BATX, 0x80)
+		// TODO ADD CPU power profile
+		\PNOT ()
+	}
+
+	// AC Power Removed
+	Method (_Q38, 0, NotSerialized)
+	{
+		Store (Zero, \PWRS)
+		Notify (AC, 0x80)
+		Notify (BATX, 0x80)
+		// TODO ADD CPU power profile
+		\PNOT ()
+	}
+
+	// Battery at critical low state
+	Method (_Q22, 0, NotSerialized)
+	{
+		Notify (BATX, 0x80)
+	}
+
+	// Battery insert
+	Method(_Q25, 0, NotSerialized)
+	{
+		Notify(BATX, 0x81)
+		Notify(BATX, 0x80)
+	}
+
+	// Commuation Device Disable/Enable Event
+	Method(_Q60, 0, NotSerialized)
+	{
+		IF(WLEX) //if Wlan exist
+		{
+			//TODO Store(WLAT, LANE)
+		}
+	}
+
+	#include "ac.asl"
+	#include "battery.asl"
+}
diff --git a/src/ec/compal/ene932/acpi/superio.asl b/src/ec/compal/ene932/acpi/superio.asl
new file mode 100644
index 0000000..db4b412
--- /dev/null
+++ b/src/ec/compal/ene932/acpi/superio.asl
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+// Scope is \_SB.PCI0.LPCB
+
+Device (SIO) {
+	Name (_UID, 0)
+	Name (_ADR, 0)
+
+
+#ifdef SIO_EC_ENABLE_PS2K
+	Device (PS2K)		// Keyboard
+	{
+		Name (_UID, 0)
+		Name (_ADR, 0)
+		Name (_HID, EISAID("PNP0303"))
+		Name (_CID, EISAID("PNP030B"))
+
+		Method (_STA, 0, NotSerialized) {
+			Return (0x0F)
+		}
+
+		Name (_CRS, ResourceTemplate()
+		{
+			FixedIO (0x60, 0x01)
+			FixedIO (0x64, 0x01)
+			IRQNoFlags () {1}
+		})
+
+		Name (_PRS, ResourceTemplate()
+		{
+			StartDependentFn (0, 0) {
+				FixedIO (0x60, 0x01)
+				FixedIO (0x64, 0x01)
+				IRQNoFlags () {1}
+			}
+			EndDependentFn ()
+		})
+	}
+#endif
+}
diff --git a/src/mainboard/getac/p470/chip.h b/src/ec/compal/ene932/chip.h
similarity index 66%
copy from src/mainboard/getac/p470/chip.h
copy to src/ec/compal/ene932/chip.h
index b75c381..5d209ff 100644
--- a/src/mainboard/getac/p470/chip.h
+++ b/src/ec/compal/ene932/chip.h
@@ -1,7 +1,7 @@
 /*
  * This file is part of the coreboot project.
  *
- * Copyright (C) 2007-2009 coresystems GmbH
+ * Copyright (C) 2012 The Chromium OS Authors. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -19,5 +19,17 @@
  * MA 02110-1301 USA
  */
 
-extern struct chip_operations mainboard_ops;
-struct mainboard_config {};
+#ifndef _EC_COMPAL_ENE932_CHIP_H
+#define _EC_COMPAL_ENE932_CHIP_H
+
+#include <device/device.h>
+#include <pc80/keyboard.h>
+
+struct chip_operations;
+extern struct chip_operations ec_compal_ene932_ops;
+
+struct ec_compal_ene932_config {
+	struct pc_keyboard keyboard;
+};
+
+#endif /* _EC_COMPAL_ENE932_CHIP_H */
diff --git a/src/ec/compal/ene932/ec.c b/src/ec/compal/ene932/ec.c
new file mode 100644
index 0000000..c3087e9
--- /dev/null
+++ b/src/ec/compal/ene932/ec.c
@@ -0,0 +1,180 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The Chromium OS Authors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#ifndef __PRE_RAM__
+
+#include <console/console.h>
+#include <device/device.h>
+#include <device/pnp.h>
+#include <stdlib.h>
+#include <arch/io.h>
+#include <delay.h>
+#include "ec.h"
+#include "chip.h"
+
+/* kbc helper functions from drivers/pc80/keyboard.c. TODO: share functions. */
+static int kbc_input_buffer_empty(void)
+{
+	u32 timeout;
+	for(timeout = KBC_TIMEOUT_IN_MS; timeout && (inb(KBD_STATUS) & KBD_IBF);
+	    timeout--) {
+		mdelay(1);
+	}
+
+	if (!timeout) {
+		printk(BIOS_WARNING,
+		       "Unexpected Keyboard controller input buffer full\n");
+	}
+	return !!timeout;
+}
+
+
+static int kbc_output_buffer_full(void)
+{
+	u32 timeout;
+	for(timeout = KBC_TIMEOUT_IN_MS; timeout && ((inb(KBD_STATUS)
+	    & KBD_OBF) == 0); timeout--) {
+		mdelay(1);
+	}
+
+	if (!timeout) {
+		printk(BIOS_INFO, "Keyboard controller output buffer result timeout\n");
+	}
+	return !!timeout;
+}
+
+int kbc_cleanup_buffers(void)
+{
+	u32 timeout;
+	for(timeout = KBC_TIMEOUT_IN_MS; timeout && (inb(KBD_STATUS)
+	    & (KBD_OBF | KBD_IBF)); timeout--) {
+		mdelay(1);
+		inb(KBD_DATA);
+	}
+
+	if (!timeout) {
+		printk(BIOS_ERR, "Couldn't cleanup the keyboard controller buffers\n");
+		printk(BIOS_ERR, "Status (0x%x): 0x%x, Buffer (0x%x): 0x%x\n",
+				KBD_STATUS, inb(KBD_STATUS), KBD_DATA, inb(KBD_DATA));
+	}
+
+	return !!timeout;
+}
+
+
+/* The ENE 60/64 EC registers are the same comand/status IB/OB KBC pair.
+ * Check status from 64 port before each command.
+ *
+ *  Ex. Get panel ID command C43/D77
+ *  Check IBF empty. Then Write 0x43(CMD) to 0x64 Port
+ *  Check IBF empty. Then Write 0x77(DATA) to 0x60 Port
+ *  Check OBF set. Then Get Data(0x03:panel ID) from 0x60
+ * Different commands return may or maynot respond and may have multiple
+ * bytes. Keep it simple for nor
+ */
+
+u8 ec_kbc_read_ob(void)
+{
+	if (!kbc_output_buffer_full()) return 0;
+	return inb(KBD_DATA);
+}
+
+void ec_kbc_write_cmd(u8 cmd)
+{
+	if (!kbc_input_buffer_empty()) return;
+	outb(cmd, KBD_COMMAND);
+}
+
+void ec_kbc_write_ib(u8 data)
+{
+	if (!kbc_input_buffer_empty()) return;
+	outb(data, KBD_DATA);
+}
+
+
+/*
+ * These functions are for accessing the ENE932 device space, but are not
+ * currently used.
+ */
+/*
+static u8 ec_io_read(u16 addr)
+{
+	outb(addr >> 8, EC_IO_HIGH);
+	outb(addr & 0xff, EC_IO_LOW);
+	return inb(EC_IO_DATA);
+}
+*/
+/*static void ec_write(u16 addr, u8 data)
+{
+	outb(addr >> 8, EC_IO_HIGH);
+	outb(addr & 0xff, EC_IO_LOW;
+	outb(data, EC_IO_DATA);
+}
+*/
+
+#ifndef __SMM__
+static void ene932_init(device_t dev)
+{
+	struct ec_compal_ene932_config *conf = dev->chip_info;
+
+
+	if (!dev->enabled)
+		return;
+
+	printk(BIOS_DEBUG, "Compal ENE932: Initializing keyboard.\n");
+	pc_keyboard_init(&conf->keyboard);
+
+}
+
+
+static void ene932_read_resources(device_t dev)
+{
+	/* This function avoids an error on serial console. */
+}
+
+
+static void ene932_enable_resources(device_t dev)
+{
+	/* This function avoids an error on serial console. */
+}
+
+static struct device_operations ops = {
+	.init             = ene932_init,
+	.read_resources   = ene932_read_resources,
+	.enable_resources = ene932_enable_resources
+};
+
+static struct pnp_info pnp_dev_info[] = {
+        { &ops, 0, 0, { 0, 0 }, }
+};
+
+static void enable_dev(device_t dev)
+{
+	pnp_enable_devices(dev, &pnp_ops, ARRAY_SIZE(pnp_dev_info),
+			   pnp_dev_info);
+}
+
+struct chip_operations ec_compal_ene932_ops = {
+	CHIP_NAME("COMPAL ENE932 EC")
+	.enable_dev = enable_dev
+};
+#endif /* ! __SMM__ */
+#endif /* ! __PRE_RAM__ */
diff --git a/src/ec/compal/ene932/ec.h b/src/ec/compal/ene932/ec.h
new file mode 100644
index 0000000..879925f
--- /dev/null
+++ b/src/ec/compal/ene932/ec.h
@@ -0,0 +1,56 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The Chromium OS Authors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * EC communication interface for COMPAL ENE932 Embedded Controller.
+ */
+
+#ifndef _EC_COMPAL_ENE932_EC_H
+#define _EC_COMPAL_ENE932_EC_H
+
+#define EC_IO 0xfd60 /* Mainboard specific. Could be Kconfig option */
+#define EC_IO_HIGH EC_IO + 1
+#define EC_IO_LOW  EC_IO + 2
+#define EC_IO_DATA EC_IO + 3
+
+/* ENE EC internal address space */
+#define REG_SPI_DATA    0xfeab
+#define REG_SPI_COMMAND 0xfeac
+#define REG_SPI_CONFIG  0xfead
+#define CFG_CSn_FORCE_LOW        (1 << 4)
+#define CFG_COMMAND_WRITE_ENABLE (1 << 3)
+#define CFG_STATUS               (1 << 1)
+
+
+#define KBD_DATA	0x60
+#define KBD_COMMAND	0x64
+#define KBD_STATUS	0x64
+#define   KBD_IBF	(1 << 1) // 1: input buffer full (data ready for ec)
+#define   KBD_OBF	(1 << 0) // 1: output buffer full (data ready for host)
+
+
+/* Wait 400ms for keyboard controller answers */
+#define KBC_TIMEOUT_IN_MS 400
+
+u8 ec_kbc_read_ob(void);
+void ec_kbc_write_cmd(u8 cmd);
+void ec_kbc_write_ib(u8 data);
+int kbc_cleanup_buffers(void);
+
+#endif /* _EC_COMPAL_ENE932_EC_H */
diff --git a/src/ec/google/Kconfig b/src/ec/google/Kconfig
new file mode 100644
index 0000000..f83741e
--- /dev/null
+++ b/src/ec/google/Kconfig
@@ -0,0 +1 @@
+source src/ec/google/chromeec/Kconfig
diff --git a/src/ec/google/Makefile.inc b/src/ec/google/Makefile.inc
new file mode 100644
index 0000000..9ca3f0f
--- /dev/null
+++ b/src/ec/google/Makefile.inc
@@ -0,0 +1 @@
+subdirs-$(CONFIG_EC_GOOGLE_CHROMEEC) += chromeec
diff --git a/src/ec/google/chromeec/Kconfig b/src/ec/google/chromeec/Kconfig
new file mode 100644
index 0000000..b8d3444
--- /dev/null
+++ b/src/ec/google/chromeec/Kconfig
@@ -0,0 +1,11 @@
+config EC_GOOGLE_CHROMEEC
+	bool
+	help
+	  Google's Chrome EC
+
+config EC_GOOGLE_API_ROOT
+       depends on EC_GOOGLE_CHROMEEC
+       string "Path to the EC API include file"
+       default "/usr/include"
+       help
+         Path to the ec API file (ec/ec_commands.h).
diff --git a/src/ec/google/chromeec/Makefile.inc b/src/ec/google/chromeec/Makefile.inc
new file mode 100644
index 0000000..db7ba51
--- /dev/null
+++ b/src/ec/google/chromeec/Makefile.inc
@@ -0,0 +1,5 @@
+driver-y += ec.c
+smm-y += ec.c
+romstage-y += ec.c
+
+CFLAGS += -I $(call strip_quotes,$(CONFIG_EC_GOOGLE_API_ROOT))
diff --git a/src/mainboard/intel/emeraldlake2/chip.h b/src/ec/google/chromeec/acpi/ac.asl
similarity index 81%
rename from src/mainboard/intel/emeraldlake2/chip.h
rename to src/ec/google/chromeec/acpi/ac.asl
index fbe2477..34b9080 100644
--- a/src/mainboard/intel/emeraldlake2/chip.h
+++ b/src/ec/google/chromeec/acpi/ac.asl
@@ -17,5 +17,20 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-extern struct chip_operations mainboard_ops;
-struct mainboard_config {};
+// Scope (EC0)
+
+Device (AC)
+{
+	Name (_HID, "ACPI0003")
+	Name (_PCL, Package () { \_SB })
+
+	Method (_PSR)
+	{
+		Return (ACEX)
+	}
+
+	Method (_STA)
+	{
+		Return (0x0F)
+	}
+}
diff --git a/src/ec/google/chromeec/acpi/battery.asl b/src/ec/google/chromeec/acpi/battery.asl
new file mode 100644
index 0000000..341911c
--- /dev/null
+++ b/src/ec/google/chromeec/acpi/battery.asl
@@ -0,0 +1,230 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2011 The Chromium OS Authors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+// Scope (EC0)
+
+Device (BAT0)
+{
+	Name (_HID, EISAID ("PNP0C0A"))
+	Name (_UID, 1)
+	Name (_PCL, Package () { \_SB })
+
+	Name (PBIF, Package () {
+		0x00000001,  // 0x00: Power Unit: mAh
+		0xFFFFFFFF,  // 0x01: Design Capacity
+		0xFFFFFFFF,  // 0x02: Last Full Charge Capacity
+		0x00000001,  // 0x03: Battery Technology: Rechargeable
+		0xFFFFFFFF,  // 0x04: Design Voltage
+		0x00000003,  // 0x05: Design Capacity of Warning
+		0xFFFFFFFF,  // 0x06: Design Capacity of Low
+		0x00000001,  // 0x07: Capacity Granularity 1
+		0x00000001,  // 0x08: Capacity Granularity 2
+		"",          // 0x09: Model Number
+		"",          // 0x0a: Serial Number
+		"LION",      // 0x0b: Battery Type
+		""           // 0x0c: OEM Information
+	})
+
+	Name (PBIX, Package () {
+		0x00000000,  // 0x00: Revision
+		0x00000001,  // 0x01: Power Unit: mAh
+		0xFFFFFFFF,  // 0x02: Design Capacity
+		0xFFFFFFFF,  // 0x03: Last Full Charge Capacity
+		0x00000001,  // 0x04: Battery Technology: Rechargeable
+		0xFFFFFFFF,  // 0x05: Design Voltage
+		0x00000003,  // 0x06: Design Capacity of Warning
+		0xFFFFFFFF,  // 0x07: Design Capacity of Low
+		0x00000000,  // 0x08: Cycle Count
+		0x00018000,  // 0x09: Measurement Accuracy (98.3%?)
+		0x000001F4,  // 0x0a: Max Sampling Time (500ms)
+		0x0000000a,  // 0x0b: Min Sampling Time (10ms)
+		0xFFFFFFFF,  // 0x0c: Max Averaging Interval
+		0xFFFFFFFF,  // 0x0d: Min Averaging Interval
+		0x00000001,  // 0x0e: Capacity Granularity 1
+		0x00000001,  // 0x0f: Capacity Granularity 2
+		"",          // 0x10 Model Number
+		"",          // 0x11: Serial Number
+		"LION",      // 0x12: Battery Type
+		""           // 0x13: OEM Information
+	})
+
+	Name (PBST, Package () {
+		0x00000000,  // 0x00: Battery State
+		0xFFFFFFFF,  // 0x01: Battery Present Rate
+		0xFFFFFFFF,  // 0x02: Battery Remaining Capacity
+		0xFFFFFFFF,  // 0x03: Battery Present Voltage
+	})
+	Name (BSTP, Zero)
+
+	// Workaround for full battery status, enabled by default
+	Name (BFWK, One)
+
+	// Method to enable full battery workaround
+	Method (BFWE)
+	{
+		Store (One, BFWK)
+	}
+
+	// Method to disable full battery workaround
+	Method (BFWD)
+	{
+		Store (Zero, BFWK)
+	}
+
+	Method (_STA, 0, Serialized)
+	{
+		If (BTEX) {
+			Return (0x1F)
+		} Else {
+			Return (0x0F)
+		}
+	}
+
+	Method (_BIF, 0, Serialized)
+	{
+		// Last Full Charge Capacity
+		Store (BTDF, Index (PBIF, 2))
+
+		// Design Voltage
+		Store (BTDV, Index (PBIF, 4))
+
+		// Design Capacity
+		Store (BTDA, Local0)
+		Store (Local0, Index (PBIF, 1))
+
+		// Design Capacity of Warning
+		Divide (Multiply (Local0, DWRN), 100, Local1, Local2)
+		Store (Local2, Index (PBIF, 5))
+
+		// Design Capacity of Low
+		Divide (Multiply (Local0, DLOW), 100, Local1, Local2)
+		Store (Local2, Index (PBIF, 6))
+
+		// Get battery info from mainboard
+		Store (ToString(BMOD), Index (PBIF, 9))
+		Store (ToString(BSER), Index (PBIF, 10))
+		Store (ToString(BMFG), Index (PBIF, 12))
+
+		Return (PBIF)
+	}
+
+	// Extended Battery info method is disabled for now due to
+	// a bug in the Linux kernel: http://crosbug.com/28747
+	Method (XBIX, 0, Serialized)
+	{
+		// Last Full Charge Capacity
+		Store (BTDF, Index (PBIX, 3))
+
+		// Design Voltage
+		Store (BTDV, Index (PBIX, 5))
+
+		// Design Capacity
+		Store (BTDA, Local0)
+		Store (Local0, Index (PBIX, 2))
+
+		// Design Capacity of Warning
+		Divide (Multiply (Local0, DWRN), 100, Local1, Local2)
+		Store (Local2, Index (PBIX, 6))
+
+		// Design Capacity of Low
+		Divide (Multiply (Local0, DLOW), 100, Local1, Local2)
+		Store (Local2, Index (PBIX, 7))
+
+		// Cycle Count
+		Store (BTCC, Index (PBIX, 8))
+
+		// Get battery info from mainboard
+		Store (ToString(BMOD), Index (PBIX, 16))
+		Store (ToString(BSER), Index (PBIX, 17))
+		Store (ToString(BMFG), Index (PBIX, 19))
+
+		Return (PBIX)
+	}
+
+	Method (_BST, 0, Serialized)
+	{
+		//
+		// 0: BATTERY STATE
+		//
+		// bit 0 = discharging
+		// bit 1 = charging
+		// bit 2 = critical level
+		//
+		Store (Zero, Local1)
+
+		// Check if AC is present
+		If (ACEX) {
+			If (BFCG) {
+				Store (0x02, Local1)
+			} ElseIf (BFDC) {
+				Store (0x01, Local1)
+			}
+		} Else {
+			// Always discharging when on battery power
+			Store (0x01, Local1)
+		}
+
+		// Check for critical battery level
+		If (BFCR) {
+			Or (Local1, 0x04, Local1)
+		}
+		Store (Local1, Index (PBST, 0))
+
+		// Notify if battery state has changed since last time
+		If (LNotEqual (Local1, BSTP)) {
+			Store (Local1, BSTP)
+			Notify (BAT0, 0x80)
+		}
+
+		//
+		// 1: BATTERY PRESENT RATE
+		//
+		Store (BTPR, Index (PBST, 1))
+
+		//
+		// 2: BATTERY REMAINING CAPACITY
+		//
+		Store (BTRA, Local1)
+		If (LAnd (BFWK, LAnd (ACEX, LNot (LAnd (BFDC, BFCG))))) {
+			// On AC power and battery is neither charging
+			// nor discharging.  Linux expects a full battery
+			// to report same capacity as last full charge.
+			// https://bugzilla.kernel.org/show_bug.cgi?id=12632
+			Store (BTDF, Local2)
+
+			// See if within ~3% of full
+			ShiftRight (Local2, 5, Local3)
+			If (LAnd (LGreater (Local1, Subtract (Local2, Local3)),
+			          LLess (Local1, Add (Local2, Local3))))
+			{
+				Store (Local2, Local1)
+			}
+		}
+		Store (Local1, Index (PBST, 2))
+
+		//
+		// 3: BATTERY PRESENT VOLTAGE
+		//
+		Store (BTVO, Index (PBST, 3))
+
+		Return (PBST)
+	}
+}
diff --git a/src/ec/google/chromeec/acpi/ec.asl b/src/ec/google/chromeec/acpi/ec.asl
new file mode 100644
index 0000000..2fb8e79
--- /dev/null
+++ b/src/ec/google/chromeec/acpi/ec.asl
@@ -0,0 +1,230 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The Chromium OS Authors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * The mainboard must define a PNOT method to handle power
+ * state notifications and Notify CPU device objects to
+ * re-evaluate their _PPC and _CST tables.
+ */
+
+Device (EC0)
+{
+	Name (_HID, EISAID ("PNP0C09"))
+	Name (_UID, 1)
+	Name (_GPE, Add(EC_SCI_GPI, 16))
+	Name (TOFS, EC_TEMP_SENSOR_OFFSET)
+	Name (TNOP, 0xFD)	// Thermal sensor has no power
+	Name (TBAD, 0xFE)	// Thermal sensor bad reading
+	Name (TNPR, 0xFF)	// Thermal sensor not present
+	Name (DWRN, 15)		// Battery capacity warning at 15%
+	Name (DLOW, 10)		// Battery capacity low at 10%
+
+	OperationRegion (ERAM, EmbeddedControl, 0x00, 0xff)
+	Field (ERAM, ByteAcc, Lock, Preserve)
+	{
+		Offset (0x00),
+		RAMV, 8,	// EC RAM Version
+		TSTB, 8,	// Test Byte
+		TSTC, 8,	// Complement of Test Byte
+		KBLV, 8,	// Keyboard Backlight
+	}
+
+	OperationRegion (EMEM, SystemIO, EC_LPC_ADDR_MEMMAP, EC_MEMMAP_SIZE)
+	Field (EMEM, ByteAcc, NoLock, Preserve)
+	{
+		Offset (0x00),
+		TIN0, 8,	// Temperature 0
+		TIN1, 8,	// Temperature 1
+		TIN2, 8,	// Temperature 2
+		TIN3, 8,	// Temperature 3
+		TIN4, 8,	// Temperature 4
+		TIN5, 8,	// Temperature 5
+		TIN6, 8,	// Temperature 6
+		TIN7, 8,	// Temperature 7
+		TIN8, 8,	// Temperature 8
+		TIN9, 8,	// Temperature 9
+		Offset (0x10),
+		FAN0, 16,	// Fan Speed 0
+		Offset (0x30),
+		LIDS, 1,	// Lid Switch State
+		PBTN, 1,	// Power Button Pressed
+		WPDI, 1,	// Write Protect Disabled
+		RECK, 1,	// Keyboard Initiated Recovery
+		RECD, 1,	// Dedicated Recovery Mode
+		Offset (0x40),
+		BTVO, 32,	// Battery Present Voltage
+		BTPR, 32,	// Battery Present Rate
+		BTRA, 32,	// Battery Remaining Capacity
+		ACEX, 1,	// AC Present
+		BTEX, 1,	// Battery Present
+		BFDC, 1,	// Battery Discharging
+		BFCG, 1,	// Battery Charging
+		BFCR, 1,	// Battery Level Critical
+		Offset (0x50),
+		BTDA, 32,	// Battery Design Capacity
+		BTDV, 32,	// Battery Design Voltage
+		BTDF, 32,	// Battery Last Full Charge Capacity
+		BTCC, 32,	// Battery Cycle Count
+		BMFG, 64,	// Battery Manufacturer String
+		BMOD, 64,	// Battery Model String
+		BSER, 64,	// Battery Serial String
+		BTYP, 64,	// Battery Type String
+	}
+
+	Method (TINS, 1, Serialized)
+	{
+		Switch (ToInteger (Arg0))
+		{
+			Case (0) { Return (TIN0) }
+			Case (1) { Return (TIN1) }
+			Case (2) { Return (TIN2) }
+			Case (3) { Return (TIN3) }
+			Case (4) { Return (TIN4) }
+			Case (5) { Return (TIN5) }
+			Case (6) { Return (TIN6) }
+			Case (7) { Return (TIN7) }
+			Case (8) { Return (TIN8) }
+			Case (9) { Return (TIN9) }
+			Default  { Return (TIN0) }
+		}
+	}
+
+	Method (_CRS, 0, NotSerialized)
+	{
+		Name (ECMD, ResourceTemplate()
+		{
+			IO (Decode16,
+			    EC_LPC_ADDR_ACPI_DATA,
+			    EC_LPC_ADDR_ACPI_DATA,
+			    0, 1)
+			IO (Decode16,
+			    EC_LPC_ADDR_ACPI_CMD,
+			    EC_LPC_ADDR_ACPI_CMD,
+			    0, 1)
+		})
+		Return (ECMD)
+	}
+
+	Method (_REG, 2, NotSerialized)
+	{
+		// Initialize AC power state
+		Store (ACEX, \PWRS)
+
+		// Initialize LID switch state
+		Store (LIDS, \LIDS)
+	}
+
+	// Lid Closed Event
+	Method (_Q01, 0, NotSerialized)
+	{
+		Store ("EC: LID CLOSE", Debug)
+		Store (LIDS, \LIDS)
+		Notify (\_SB.LID0, 0x80)
+	}
+
+	// Lid Open Event
+	Method (_Q02, 0, NotSerialized)
+	{
+		Store ("EC: LID OPEN", Debug)
+		Store (LIDS, \LIDS)
+		Notify (\_SB.LID0, 0x80)
+	}
+
+	// Power Button
+	Method (_Q03, 0, NotSerialized)
+	{
+		Store ("EC: POWER BUTTON", Debug)
+		Notify (\_SB.PWRB, 0x80)
+	}
+
+	// AC Connected
+	Method (_Q04, 0, NotSerialized)
+	{
+		Store ("EC: AC CONNECTED", Debug)
+		Store (ACEX, \PWRS)
+		Notify (AC, 0x80)
+		\PNOT ()
+	}
+
+	// AC Disconnected
+	Method (_Q05, 0, NotSerialized)
+	{
+		Store ("EC: AC DISCONNECTED", Debug)
+		Store (ACEX, \PWRS)
+		Notify (AC, 0x80)
+		\PNOT ()
+	}
+
+	// Battery Low Event
+	Method (_Q06, 0, NotSerialized)
+	{
+		Store ("EC: BATTERY LOW", Debug)
+		Notify (BAT0, 0x80)
+	}
+
+	// Battery Critical Event
+	Method (_Q07, 0, NotSerialized)
+	{
+		Store ("EC: BATTERY CRITICAL", Debug)
+		Notify (BAT0, 0x80)
+	}
+
+	// Battery Info Event
+	Method (_Q08, 0, NotSerialized)
+	{
+		Store ("EC: BATTERY INFO", Debug)
+		Notify (BAT0, 0x81)
+	}
+
+	// Thermal Treshold Event
+	Method (_Q09, 0, NotSerialized)
+	{
+		Store ("EC: THERMAL THRESHOLD", Debug)
+		Notify (\_TZ, 0x80)
+	}
+
+	// Thermal Overload Event
+	Method (_Q0A, 0, NotSerialized)
+	{
+		Store ("EC: THERMAL OVERLOAD", Debug)
+		Notify (\_TZ, 0x80)
+	}
+
+	// Thermal Event
+	Method (_Q0B, 0, NotSerialized)
+	{
+		Store ("EC: THERMAL", Debug)
+		Notify (\_TZ, 0x80)
+	}
+
+	// USB Charger
+	Method (_Q0C, 0, NotSerialized)
+	{
+		Store ("EC: USB CHARGER", Debug)
+	}
+
+	// Key Pressed
+	Method (_Q0D, 0, NotSerialized)
+	{
+		Store ("EC: KEY PRESSED", Debug)
+	}
+
+	#include "ac.asl"
+	#include "battery.asl"
+}
diff --git a/src/ec/google/chromeec/acpi/superio.asl b/src/ec/google/chromeec/acpi/superio.asl
new file mode 100644
index 0000000..56f0f18
--- /dev/null
+++ b/src/ec/google/chromeec/acpi/superio.asl
@@ -0,0 +1,152 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 The ChromiumOS Authors.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * Chrome OS Embedded Controller interface
+ *
+ * Constants that should be defined:
+ *
+ * SIO_EC_MEMMAP_ENABLE     : Enable EC LPC memory map resources
+ * EC_LPC_ADDR_MEMMAP       : Base address of memory map range
+ * EC_MEMMAP_SIZE           : Size of memory map range
+ *
+ * SIO_EC_HOST_ENABLE       : Enable EC host command interface resources
+ * EC_LPC_ADDR_HOST_DATA    : EC host command interface data port
+ * EC_LPC_ADDR_HOST_CMD     : EC host command interface command port
+ * EC_LPC_ADDR_OLD_PARAM    : EC host command parameter range base (old)
+ * EC_OLD_PARAM_SIZE        : Parameter buffer size (old)
+ */
+
+// Scope is \_SB.PCI0.LPCB
+
+Device (SIO) {
+	Name (_UID, 0)
+	Name (_ADR, 0)
+
+#ifdef SIO_EC_MEMMAP_ENABLE
+	Device (ECMM) {
+		Name (_HID, EISAID ("PNP0C02"))
+		Name (_UID, 1)
+		Name (_ADR, 0)
+
+		Method (_STA, 0, NotSerialized) {
+			Return (0x0F)
+		}
+
+		Name (_CRS, ResourceTemplate ()
+		{
+			FixedIO (EC_LPC_ADDR_MEMMAP, EC_MEMMAP_SIZE)
+		})
+
+		Name (_PRS, ResourceTemplate ()
+		{
+			FixedIO (EC_LPC_ADDR_MEMMAP, EC_MEMMAP_SIZE)
+		})
+	}
+#endif
+
+#ifdef SIO_EC_HOST_ENABLE
+	Device (ECUI) {
+		Name (_HID, EISAID ("PNP0C02"))
+		Name (_UID, 3)
+		Name (_ADR, 0)
+
+		Method (_STA, 0, NotSerialized) {
+			Return (0x0F)
+		}
+
+		Name (_CRS, ResourceTemplate ()
+		{
+			FixedIO (EC_LPC_ADDR_HOST_DATA, 1)
+			FixedIO (EC_LPC_ADDR_HOST_CMD, 1)
+			FixedIO (EC_LPC_ADDR_OLD_PARAM,
+				 EC_OLD_PARAM_SIZE)
+		})
+
+		Name (_PRS, ResourceTemplate ()
+		{
+			StartDependentFn (0, 0) {
+				FixedIO (EC_LPC_ADDR_HOST_DATA, 1)
+				FixedIO (EC_LPC_ADDR_HOST_CMD, 1)
+				FixedIO (EC_LPC_ADDR_OLD_PARAM,
+					 EC_OLD_PARAM_SIZE)
+			}
+			EndDependentFn ()
+		})
+	}
+#endif
+
+#ifdef SIO_EC_ENABLE_COM1
+	Device (COM1) {
+		Name (_HID, EISAID ("PNP0501"))
+		Name (_UID, 1)
+		Name (_ADR, 0)
+
+		Method (_STA, 0, NotSerialized) {
+			Return (0x0F)
+		}
+
+		Name (_CRS, ResourceTemplate ()
+		{
+			FixedIO (0x03F8, 0x08)
+			IRQNoFlags () {4}
+		})
+
+		Name (_PRS, ResourceTemplate ()
+		{
+			StartDependentFn (0, 0) {
+				FixedIO (0x03F8, 0x08)
+				IRQNoFlags () {4}
+			}
+			EndDependentFn ()
+		})
+	}
+#endif
+
+#ifdef SIO_EC_ENABLE_PS2K
+	Device (PS2K)		// Keyboard
+	{
+		Name (_UID, 0)
+		Name (_ADR, 0)
+		Name (_HID, EISAID("PNP0303"))
+		Name (_CID, EISAID("PNP030B"))
+
+		Method (_STA, 0, NotSerialized) {
+			Return (0x0F)
+		}
+
+		Name (_CRS, ResourceTemplate()
+		{
+			FixedIO (0x60, 0x01)
+			FixedIO (0x64, 0x01)
+			IRQNoFlags () {1}
+		})
+
+		Name (_PRS, ResourceTemplate()
+		{
+			StartDependentFn (0, 0) {
+				FixedIO (0x60, 0x01)
+				FixedIO (0x64, 0x01)
+				IRQNoFlags () {1}
+			}
+			EndDependentFn ()
+		})
+	}
+#endif
+}
diff --git a/src/mainboard/amd/inagua/chip.h b/src/ec/google/chromeec/chip.h
similarity index 69%
rename from src/mainboard/amd/inagua/chip.h
rename to src/ec/google/chromeec/chip.h
index a252705..0ca2183 100644
--- a/src/mainboard/amd/inagua/chip.h
+++ b/src/ec/google/chromeec/chip.h
@@ -1,7 +1,7 @@
 /*
  * This file is part of the coreboot project.
  *
- * Copyright (C) 2011 Advanced Micro Devices, Inc.
+ * Copyright (C) 2012 The Chromium OS Authors. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,7 +17,16 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */