From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: bsdio.com, ip: 65.103.231.193, mailfrom: rebecca@bsdio.com) Received: from muon.bsdio.com (muon.bsdio.com [65.103.231.193]) by groups.io with SMTP; Thu, 11 Jul 2019 20:39:29 -0700 Received: from muon.bsdio.com (localhost [127.0.0.1]) by muon.bsdio.com (Postfix) with ESMTP id 6D5BE757BD; Thu, 11 Jul 2019 21:39:48 -0600 (MDT) Received: from muon.bsdio.com ([127.0.0.1]) by muon.bsdio.com (muon.bsdio.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Ry4fxtmoCUZq; Thu, 11 Jul 2019 21:39:44 -0600 (MDT) Received: from macbex.int.bluestop.org (unknown [10.0.10.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by muon.bsdio.com (Postfix) with ESMTPSA; Thu, 11 Jul 2019 21:39:44 -0600 (MDT) Subject: Re: [edk2-devel] [edk2-platforms Patch 26/28] Vlv2TbltDevicePkg: Clean up all build scripts To: devel@edk2.groups.io, michael.d.kinney@intel.com Cc: Zailiang Sun , Yi Qian , Gary Lin References: <20190710190516.6012-1-michael.d.kinney@intel.com> <20190710190516.6012-27-michael.d.kinney@intel.com> From: rebecca@bsdio.com Message-ID: <78d4d896-c40a-f4ce-ae7d-a89efa8d97ec@bsdio.com> Date: Thu, 11 Jul 2019 21:39:23 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190710190516.6012-27-michael.d.kinney@intel.com> Content-Type: multipart/alternative; boundary="------------E9BFF21C510A4D4EE2E772FA" Content-Language: en-US --------------E9BFF21C510A4D4EE2E772FA Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit bld_vlv.sh should probably have "set -e" at the top, like the change to Build_IFWI.sh See https://bugzilla.tianocore.org/show_bug.cgi?id=1599 ("bld_vlv.sh isn't `set -e` and doesn't check if commands completed successfully"). -- Rebecca Cran On 7/10/19 1:05 PM, Michael D Kinney wrote: > * Remove cln.sh > * Remove unused PlatformDefintions.h file > * Remove unused defines from DSC files > * Make Windows and Linux script more consistent > * Remove unused options from Windows/Linux scripts > * Remove unused defines from Windows/Linux scripts > * Do not modify Target.txt in Conf directory. Instead, > pass all build flags on the command line > * Generate build report in the build output directory > * Generate build logs in the build output directory > * Do not delete files from Conf directory > * Update clean operation to only clean one platform target > * Do not generate AutoPlatformCFG.txt file anymore > > Cc: Zailiang Sun > Cc: Yi Qian > Cc: Gary Lin > Signed-off-by: Michael D Kinney > --- > Platform/Intel/Vlv2TbltDevicePkg/.gitignore | 5 - > .../Intel/Vlv2TbltDevicePkg/Build_IFWI.bat | 75 ++------- > .../Intel/Vlv2TbltDevicePkg/Build_IFWI.sh | 57 +++---- > .../Include/PlatformDefinitions.h | 43 ----- > .../Vlv2TbltDevicePkg/PlatformPkgConfig.dsc | 2 - > .../Vlv2TbltDevicePkg/PlatformPkgGccIA32.dsc | 55 +----- > .../Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc | 53 +----- > .../Vlv2TbltDevicePkg/PlatformPkgIA32.dsc | 53 +----- > .../Vlv2TbltDevicePkg/PlatformPkgX64.dsc | 55 +----- > Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.bat | 120 ++++++------- > Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.sh | 159 ++++++++---------- > Platform/Intel/Vlv2TbltDevicePkg/cln.sh | 62 ------- > 12 files changed, 156 insertions(+), 583 deletions(-) > delete mode 100644 Platform/Intel/Vlv2TbltDevicePkg/.gitignore > delete mode 100644 Platform/Intel/Vlv2TbltDevicePkg/Include/PlatformDefinitions.h > delete mode 100644 Platform/Intel/Vlv2TbltDevicePkg/cln.sh > > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/.gitignore b/Platform/Intel/Vlv2TbltDevicePkg/.gitignore > deleted file mode 100644 > index c7698262ad..0000000000 > --- a/Platform/Intel/Vlv2TbltDevicePkg/.gitignore > +++ /dev/null > @@ -1,5 +0,0 @@ > -AutoPlatformCFG.txt > -Stitch/Stitching.log > -Stitch/MNW*.bin > -Stitch/MNW*.rom > -Stitch/MNW*.rom.orig > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/Build_IFWI.bat b/Platform/Intel/Vlv2TbltDevicePkg/Build_IFWI.bat > index 44759c617f..f65aa61f4a 100644 > --- a/Platform/Intel/Vlv2TbltDevicePkg/Build_IFWI.bat > +++ b/Platform/Intel/Vlv2TbltDevicePkg/Build_IFWI.bat > @@ -9,15 +9,9 @@ > > SetLocal EnableDelayedExpansion EnableExtensions > > -@REM Go to work space directory. > -cd .. > -cd .. > - > :: Assign initial values > set exitCode=0 > set "Build_Flags= " > -set "Stitch_Flags= " > -set Arch=X64 > set PLATFORM_PACKAGE=Vlv2TbltDevicePkg > > set PLATFORM_PATH=%WORKSPACE% > @@ -42,11 +36,6 @@ if not exist %PLATFORM_PATH%\%PLATFORM_PACKAGE% ( > :OptLoop > if /i "%~1"=="/?" goto Usage > > -if /i "%~1"=="/q" ( > - set Build_Flags=%Build_Flags% /q > - shift > - goto OptLoop > -) > if /i "%~1"=="/l" ( > set Build_Flags=%Build_Flags% /l > shift > @@ -67,53 +56,17 @@ if /i "%~1" == "/c" ( > shift > goto OptLoop > ) > -if /i "%~1" == "/ECP" ( > - set Build_Flags=%Build_Flags% /ecp > - shift > - goto OptLoop > -) > - > -if /i "%~1"=="/s" ( > - set Build_Flags=%Build_Flags% /s > - shift > - goto OptLoop > -) > - > if /i "%~1"=="/x64" ( > - set Arch=X64 > set Build_Flags=%Build_Flags% /x64 > shift > goto OptLoop > ) > - > if /i "%~1"=="/IA32" ( > - set Arch=IA32 > set Build_Flags=%Build_Flags% /IA32 > shift > goto OptLoop > ) > > -if /i "%~1"=="/nG" ( > - set Stitch_Flags=%Stitch_Flags% /nG > - shift > - goto OptLoop > -) > -if /i "%~1"=="/nM" ( > - set Stitch_Flags=%Stitch_Flags% /nM > - shift > - goto OptLoop > -) > -if /i "%~1"=="/nB" ( > - set Stitch_Flags=%Stitch_Flags% /nB > - shift > - goto OptLoop > -) > -if /i "%~1"=="/yL" ( > - set Stitch_Flags=%Stitch_Flags% /yL > - shift > - goto OptLoop > -) > - > :: Require 2 input parameters > if "%~2"=="" goto Usage > > @@ -125,7 +78,7 @@ set Build_Target=%~2 > echo ====================================================================== > echo Build_IFWI: Calling BIOS build Script... > > -call %PLATFORM_PATH%\%PLATFORM_PACKAGE%\bld_vlv.bat %Build_Flags% %Platform_Type% %Build_Target% > +call %PLATFORM_PATH%\%PLATFORM_PACKAGE%\bld_vlv.bat %Build_Flags% %Platform_Type% %Build_Target% > > if %ERRORLEVEL% NEQ 0 ( > echo echo -- Error Building BIOS & echo. > @@ -139,23 +92,21 @@ goto Exit > :Usage > echo Script to build BIOS firmware and stitch the entire IFWI. > echo. > -echo Usage: Build_IFWI.bat [options] PlatformType BuildTarget [IFWI Suffix] > +echo Usage: Build_IFWI.bat [options] PlatformType BuildTarget > echo. > -echo /c CleanAll before building > -echo /x64 Set Arch to X64 (default: X64) > -echo /IA32 Set Arch to IA32 (default: X64) > -echo /yL Enable SPI lock > -echo. > -echo Platform Types: MNW2 > -echo Build Targets: Release, Debug > -echo IFWI Suffix: Suffix to append to end of IFWI filename (default: MM_DD_YYYY) > +echo /c CleanAll > +echo /l Generate build log file > +echo /y Generate build report file > +echo /m Enable multi-processor build > +echo /IA32 Set Arch to IA32 (default: X64) > +echo /X64 Set Arch to X64 (default: X64) > echo. > -echo See Stitch/Stitch_Config.txt for additional stitching settings. > +echo Platform Types: MNW2 > +echo Build Targets: Debug, Release (default: Debug) > echo. > -echo If capsule update is needed, please update CAPSULE_ENABLE = TRUE in Config.dsc. > -echo If recovery is needed, please update RECOVERY_ENABLE = TRUE in Config.dsc. > -echo If either of above is TRUE, please set OPENSSL_PATH in windows evironment > -echo and put openssl.exe there, to generate final capsule image. > +echo Examples: > +echo Build_IFWI.bat MNW2 debug : X64 Debug build for MinnowMax > +echo Build_IFWI.bat /IA32 MNW2 release : IA32 Release build for MinnowMax > echo. > set exitCode=1 > > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/Build_IFWI.sh b/Platform/Intel/Vlv2TbltDevicePkg/Build_IFWI.sh > index 349f0c7ba7..153c8c5fae 100755 > --- a/Platform/Intel/Vlv2TbltDevicePkg/Build_IFWI.sh > +++ b/Platform/Intel/Vlv2TbltDevicePkg/Build_IFWI.sh > @@ -6,15 +6,21 @@ function Usage ( ) { > echo > echo "Script to build BIOS firmware and stitch the entire IFWI." > echo > - echo "Usage: Build_IFWI.sh [options] PlatformType BuildTarget " > + echo "Usage: Build_IFWI.sh [options] PlatformType BuildTarget" > echo > - echo > - echo " /yL [option] : Enable SPI lock" > - echo " Platform Types: MNW2" > - echo " Build Targets: Release, Debug" > + echo " /c CleanAll" > + echo " /l Generate build log file" > + echo " /y Generate build report file" > + echo " /m Enable multi-processor build" > + echo " /IA32 Set Arch to IA32 (default: X64)" > + echo " /X64 Set Arch to X64 (default: X64)" > echo > - echo " See Stitch/Stitch_Config.txt for additional stitching settings." > + echo " Platform Types: MNW2" > + echo " Build Targets: Debug, Release (default: Debug)" > echo > + echo "Examples:" > + echo " Build_IFWI.sh MNW2 debug : X64 Debug build for MinnowMax" > + echo " Build_IFWI.sh /IA32 MNW2 release : IA32 Release build for MinnowMax" > echo > exit 0 > } > @@ -24,9 +30,6 @@ set -e > ## Assign initial values > exitCode=0 > Build_Flags= > -Stitch_Flags= > -Arch=X64 > -PLATFORM_PACKAGE=Vlv2TbltDevicePkg > > ## Check whether WORKSPACE is set or not > if [[ -z "$WORKSPACE" ]]; then > @@ -47,41 +50,24 @@ fi > > for (( i=1; i<=$#; )) > do > - if [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Q" ]; then > - Build_Flags="$Build_Flags /q" > - shift > - elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/L" ]; then > + if [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/L" ]; then > Build_Flags="$Build_Flags /l" > shift > + elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Y" ]; then > + Build_Flags="$Build_Flags /y" > + shift > + elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/M" ]; then > + Build_Flags="$Build_Flags /m" > + shift > elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/C" ]; then > Build_Flags="$Build_Flags /c" > shift > - elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/ECP" ]; then > - Build_Flags="$Build_Flags /ecp" > - shift > elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/X64" ]; then > - Arch=X64 > Build_Flags="$Build_Flags /x64" > shift > elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/IA32" ]; then > - Arch=IA32 > Build_Flags="$Build_Flags /IA32" > shift > - elif [ "$1" == "/nG" ]; then > - Stitch_Flags="$Stitch_Flags /nG" > - shift > - elif [ "$1" == "/nM" ]; then > - Stitch_Flags="$Stitch_Flags /nM" > - shift > - elif [ "$1" == "/nB" ]; then > - Stitch_Flags="$Stitch_Flags /nB" > - shift > - elif [ "$1" == "/nV" ]; then > - Stitch_Flags="$Stitch_Flags /nV" > - shift > - elif [ "$1" == "/yL" ]; then > - Build_Flags="$Build_Flags /yL" > - shift > else > break > fi > @@ -95,11 +81,6 @@ fi > ## Assign required arguments > Platform_Type=$1 > Build_Target=$2 > -if [ "$3" == "" ]; then > - IFWI_Suffix= > -else > - IFWI_Suffix="/S $3" > -fi > > ## Build BIOS > echo "======================================================================" > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/Include/PlatformDefinitions.h b/Platform/Intel/Vlv2TbltDevicePkg/Include/PlatformDefinitions.h > deleted file mode 100644 > index a64cda0799..0000000000 > --- a/Platform/Intel/Vlv2TbltDevicePkg/Include/PlatformDefinitions.h > +++ /dev/null > @@ -1,43 +0,0 @@ > -/*++ > - > -Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved > - > > - SPDX-License-Identifier: BSD-2-Clause-Patent > - > - > > - > - > -Module Name: > - > - PlatformDefinitions.h > - > -Abstract: > - > - This header file provides platform specific definitions used by other modules > - for platform specific initialization. > - > - THIS FILE SHOULD ONLY CONTAIN #defines BECAUSE IT IS CONSUMED BY NON-C MODULES > - (ASL and VFR) > - > - This file should not contain addition or other operations that an ASL compiler or > - VFR compiler does not understand. > - > ---*/ > - > -#ifndef _PLATFORM_DEFINITIONS_H_ > -#define _PLATFORM_DEFINITIONS_H_ > - > - > -// > -// Platform Base Address definitions > -// > -#define PCIEX_BASE_ADDRESS EDKII_GLUE_PciExpressBaseAddress // Pci Express Configuration Space Base Address > - > -#define PCIEX_LENGTH PLATFORM_PCIEXPRESS_LENGTH > - > -#define THERMAL_BASE_ADDRESS 0xFED08000 > - > -#ifndef MCH_BASE_ADDRESS > -#define MCH_BASE_ADDRESS 0xFED10000 // MCH Register Base Address > -#endif > -#endif > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgConfig.dsc b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgConfig.dsc > index 7b48d7b44e..43db3e28ab 100644 > --- a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgConfig.dsc > +++ b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgConfig.dsc > @@ -54,8 +54,6 @@ > DEFINE USB_SERIAL_STATUS_CODE_ENABLE = FALSE > DEFINE RAM_SERIAL_STATUS_CODE_ENABLE = FALSE > > -DEFINE ENBDT_S3_SUPPORT = TRUE > - > DEFINE LZMA_ENABLE = TRUE > DEFINE S4_ENABLE = TRUE > > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgGccIA32.dsc b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgGccIA32.dsc > index eb7ae46505..0f9651cfba 100644 > --- a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgGccIA32.dsc > +++ b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgGccIA32.dsc > @@ -27,20 +27,9 @@ [Defines] > # > # Platform On/Off features are defined here > # > - # > - # Platform Support:: Set only one token except Crestview Hills > - # > - # 3.BayleyBay > - # ENBDT_PF_ENABLE = TRUE > - # > - !include Vlv2TbltDevicePkg/AutoPlatformCFG.txt > !include Vlv2TbltDevicePkg/PlatformPkgConfig.dsc > > -!if $(X64_CONFIG) == TRUE > - DEFINE DXE_ARCHITECTURE = X64 > -!else > DEFINE DXE_ARCHITECTURE = IA32 > -!endif > > FLASH_DEFINITION = Vlv2TbltDevicePkg/PlatformPkgGcc.fdf > !if $(LFMA_ENABLE) == TRUE > @@ -761,8 +750,6 @@ [Components.IA32] > > !if $(RC_BINARY_RELEASE) == TRUE > Vlv2TbltDevicePkg/PlatformPei/PlatformPei.inf { > - > - *_*_IA32_CC_FLAGS = -DRC_BINARY_RELEASE > !if $(TARGET) == DEBUG > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2E > @@ -1231,56 +1218,19 @@ [BuildOptions] > # > # Define token for different Platform > # > - DEFINE MINNOW2_FSP_OPTION = > - > -!if $(ENBDT_PF_BUILD) == TRUE > - DEFINE ENBDT_PF_ENABLE = -DENBDT_PF_ENABLE=1 > -!else > - DEFINE ENBDT_PF_ENABLE = -DENBDT_PF_ENABLE=0 > -!endif > - > - > !if $(CLKGEN_CONFIG_EXTRA_ENABLE) == TRUE > DEFINE CLKGEN_CONFIG_EXTRA_BUILD_OPTION = -DCLKGEN_CONFIG_EXTRA=1 > !else > DEFINE CLKGEN_CONFIG_EXTRA_BUILD_OPTION = > !endif > > - > - > !if $(PCIESC_ENABLE) == TRUE > DEFINE PCIESC_SUPPORT_BUILD_OPTION = -DPCIESC_SUPPORT=1 > !else > DEFINE PCIESC_SUPPORT_BUILD_OPTION = > !endif > -!if $(SATA_ENABLE) == TRUE > - DEFINE SATA_SUPPORT_BUILD_OPTION = -DSATA_SUPPORT=1 > -!else > - DEFINE SATA_SUPPORT_BUILD_OPTION = > -!endif > -!if $(ENBDT_S3_SUPPORT) == TRUE > - DEFINE ENBDT_S3_SUPPORT_OPTIONS = -DNOCS_S3_SUPPORT > -!else > - DEFINE ENBDT_S3_SUPPORT_OPTIONS = > -!endif > > -!if $(X64_CONFIG) == TRUE > - DEFINE X64_BUILD_ENABLE = -DX64_BUILD_ENABLE=1 > -!else > - DEFINE X64_BUILD_ENABLE = > -!endif > - > -!if $(TPM_ENABLED) == TRUE > - DEFINE DSC_TPM_BUILD_OPTIONS = -DTPM_ENABLED > -!else > - DEFINE DSC_TPM_BUILD_OPTIONS = > -!endif > - > - > - DEFINE EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS = $(MINNOW2_FSP_OPTION) $(MINNOW2_BUILD_OPTION) $(ENBDT_PF_ENABLE) $(EXTERNAL_VGA_BUILD_OPTION) $(PCIE_ENUM_WA_BUILD_OPTION) $(X0_WA_ENABLE_BUILD_OPTION) $(A0_WA_ENABLE_BUILD_OPTION) $(MICROCODE_FREE_BUILD_OPTIONS) $(SIMICS_BUILD_OPTIONS) $(HYBRID_BUILD_OPTIONS) $(COMPACT_BUILD_OPTIONS) $(VP_BUILD_OPTIONS) $(SYSCTL_ID_BUILD_OPTION) $(CLKGEN_CONFIG_EXTRA_BUILD_OPTION) $(SYSCTL_X0_CONVERT_BOARD_OPTION) $(ENBDT_S3_SUPPORT_OPTIONS) $(SATA_SUPPORT_BUILD_OPTION) $(PCIESC_SUPPORT_BUILD_OPTION) $(DSC_FTPM_ERROR_WR_BUILD_OPTIONS) $(DSC_TPM_BUILD_OPTIONS) $(DSC_BYTI_SECURE_BOOT_BUILD_OPTIONS) > -!if $(PERFORMANCE_ENABLE) == TRUE > - DEFINE PDB_BUILD_OPTION = /Zi > -!endif > + DEFINE EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS = $(CLKGEN_CONFIG_EXTRA_BUILD_OPTION) $(PCIESC_SUPPORT_BUILD_OPTION) > > GCC:*_*_*_CC_FLAGS = -Wno-missing-braces > !if $(SOURCE_DEBUG_ENABLE) == TRUE > @@ -1290,7 +1240,6 @@ [BuildOptions] > DEFINE SOURCE_LEVEL_DEBUG_BUILD_OPTIONS = > !else > DEFINE SOURCE_LEVEL_DEBUG_BUILD_OPTIONS = > - > !endif > > # > @@ -1310,8 +1259,6 @@ [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > > [BuildOptions.Common.EDKII] > - *_*_IA32_ASM_FLAGS = $(VP_BUILD_OPTIONS) -D EDKII_GLUE_PciExpressBaseAddress=$(PLATFORM_PCIEXPRESS_BASE)h -DNOCS_S3_SUPPORT > - > *_*_IA32_CC_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > *_*_IA32_VFRPP_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > *_*_IA32_APP_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc > index 69f2b22aff..257bba7485 100644 > --- a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc > +++ b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc > @@ -27,22 +27,11 @@ [Defines] > # > # Platform On/Off features are defined here > # > - # > - # Platform Support:: Set only one token except Crestview Hills > - # > - # 3.BayleyBay > - # ENBDT_PF_ENABLE = TRUE > - # > - !include Vlv2TbltDevicePkg/AutoPlatformCFG.txt > !include Vlv2TbltDevicePkg/PlatformPkgConfig.dsc > > DEFINE PLATFORMX64_ENABLE = TRUE > > -!if $(X64_CONFIG) == TRUE > DEFINE DXE_ARCHITECTURE = X64 > -!else > - DEFINE DXE_ARCHITECTURE = IA32 > -!endif > > FLASH_DEFINITION = Vlv2TbltDevicePkg/PlatformPkgGcc.fdf > !if $(LFMA_ENABLE) == TRUE > @@ -763,8 +752,6 @@ [Components.IA32] > > !if $(RC_BINARY_RELEASE) == TRUE > Vlv2TbltDevicePkg/PlatformPei/PlatformPei.inf { > - > - *_*_IA32_CC_FLAGS = -DRC_BINARY_RELEASE > !if $(TARGET) == DEBUG > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2E > @@ -1246,15 +1233,6 @@ [BuildOptions] > # > # Define token for different Platform > # > - DEFINE MINNOW2_FSP_OPTION = > - > -!if $(ENBDT_PF_BUILD) == TRUE > - DEFINE ENBDT_PF_ENABLE = -DENBDT_PF_ENABLE=1 > -!else > - DEFINE ENBDT_PF_ENABLE = -DENBDT_PF_ENABLE=0 > -!endif > - > - > !if $(CLKGEN_CONFIG_EXTRA_ENABLE) == TRUE > DEFINE CLKGEN_CONFIG_EXTRA_BUILD_OPTION = -DCLKGEN_CONFIG_EXTRA=1 > !else > @@ -1268,34 +1246,8 @@ [BuildOptions] > !else > DEFINE PCIESC_SUPPORT_BUILD_OPTION = > !endif > -!if $(SATA_ENABLE) == TRUE > - DEFINE SATA_SUPPORT_BUILD_OPTION = -DSATA_SUPPORT=1 > -!else > - DEFINE SATA_SUPPORT_BUILD_OPTION = > -!endif > -!if $(ENBDT_S3_SUPPORT) == TRUE > - DEFINE ENBDT_S3_SUPPORT_OPTIONS = -DNOCS_S3_SUPPORT > -!else > - DEFINE ENBDT_S3_SUPPORT_OPTIONS = > -!endif > > -!if $(X64_CONFIG) == TRUE > - DEFINE X64_BUILD_ENABLE = -DX64_BUILD_ENABLE=1 > -!else > - DEFINE X64_BUILD_ENABLE = > -!endif > - > -!if $(TPM_ENABLED) == TRUE > - DEFINE DSC_TPM_BUILD_OPTIONS = -DTPM_ENABLED > -!else > - DEFINE DSC_TPM_BUILD_OPTIONS = > -!endif > - > - > - DEFINE EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS = $(MINNOW2_FSP_OPTION) $(MINNOW2_BUILD_OPTION) $(ENBDT_PF_ENABLE) $(EXTERNAL_VGA_BUILD_OPTION) $(PCIE_ENUM_WA_BUILD_OPTION) $(X0_WA_ENABLE_BUILD_OPTION) $(A0_WA_ENABLE_BUILD_OPTION) $(MICROCODE_FREE_BUILD_OPTIONS) $(SIMICS_BUILD_OPTIONS) $(HYBRID_BUILD_OPTIONS) $(COMPACT_BUILD_OPTIONS) $(VP_BUILD_OPTIONS) $(SYSCTL_ID_BUILD_OPTION) $(CLKGEN_CONFIG_EXTRA_BUILD_OPTION) $(SYSCTL_X0_CONVERT_BOARD_OPTION) $(ENBDT_S3_SUPPORT_OPTIONS) $(SATA_SUPPORT_BUILD_OPTION) $(PCIESC_SUPPORT_BUILD_OPTION) $(DSC_FTPM_ERROR_WR_BUILD_OPTIONS) $(DSC_TPM_BUILD_OPTIONS) $(DSC_BYTI_SECURE_BOOT_BUILD_OPTIONS) > -!if $(PERFORMANCE_ENABLE) == TRUE > - DEFINE PDB_BUILD_OPTION = /Zi > -!endif > + DEFINE EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS = $(CLKGEN_CONFIG_EXTRA_BUILD_OPTION) $(PCIESC_SUPPORT_BUILD_OPTION) > > GCC:*_*_*_CC_FLAGS = -Wno-missing-braces > !if $(SOURCE_DEBUG_ENABLE) == TRUE > @@ -1305,7 +1257,6 @@ [BuildOptions] > DEFINE SOURCE_LEVEL_DEBUG_BUILD_OPTIONS = > !else > DEFINE SOURCE_LEVEL_DEBUG_BUILD_OPTIONS = > - > !endif > > # > @@ -1325,8 +1276,6 @@ [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > > [BuildOptions.Common.EDKII] > - *_*_IA32_ASM_FLAGS = $(VP_BUILD_OPTIONS) -D EDKII_GLUE_PciExpressBaseAddress=$(PLATFORM_PCIEXPRESS_BASE)h -DNOCS_S3_SUPPORT > - > *_*_IA32_CC_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > *_*_IA32_VFRPP_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > *_*_IA32_APP_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc > index 7092ab6e6b..23e296d432 100644 > --- a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc > +++ b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc > @@ -27,20 +27,9 @@ [Defines] > # > # Platform On/Off features are defined here > # > - # > - # Platform Support:: Set only one token except Crestview Hills > - # > - # 3.BayleyBay > - # ENBDT_PF_ENABLE = TRUE > - # > - !include Vlv2TbltDevicePkg/AutoPlatformCFG.txt > !include Vlv2TbltDevicePkg/PlatformPkgConfig.dsc > > -!if $(X64_CONFIG) == TRUE > - DEFINE DXE_ARCHITECTURE = X64 > -!else > DEFINE DXE_ARCHITECTURE = IA32 > -!endif > > FLASH_DEFINITION = Vlv2TbltDevicePkg/PlatformPkg.fdf > !if $(LFMA_ENABLE) == TRUE > @@ -761,8 +750,6 @@ [Components.IA32] > > !if $(RC_BINARY_RELEASE) == TRUE > Vlv2TbltDevicePkg/PlatformPei/PlatformPei.inf { > - > - *_*_IA32_CC_FLAGS = /DRC_BINARY_RELEASE > !if $(TARGET) == DEBUG > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2E > @@ -1231,15 +1218,6 @@ [BuildOptions] > # > # Define token for different Platform > # > - DEFINE MINNOW2_FSP_OPTION = > - > -!if $(ENBDT_PF_BUILD) == TRUE > - DEFINE ENBDT_PF_ENABLE = /DENBDT_PF_ENABLE=1 > -!else > - DEFINE ENBDT_PF_ENABLE = /DENBDT_PF_ENABLE=0 > -!endif > - > - > !if $(CLKGEN_CONFIG_EXTRA_ENABLE) == TRUE > DEFINE CLKGEN_CONFIG_EXTRA_BUILD_OPTION = /DCLKGEN_CONFIG_EXTRA=1 > !else > @@ -1253,34 +1231,8 @@ [BuildOptions] > !else > DEFINE PCIESC_SUPPORT_BUILD_OPTION = > !endif > -!if $(SATA_ENABLE) == TRUE > - DEFINE SATA_SUPPORT_BUILD_OPTION = /DSATA_SUPPORT=1 > -!else > - DEFINE SATA_SUPPORT_BUILD_OPTION = > -!endif > -!if $(ENBDT_S3_SUPPORT) == TRUE > - DEFINE ENBDT_S3_SUPPORT_OPTIONS = /DNOCS_S3_SUPPORT > -!else > - DEFINE ENBDT_S3_SUPPORT_OPTIONS = > -!endif > > -!if $(X64_CONFIG) == TRUE > - DEFINE X64_BUILD_ENABLE = /DX64_BUILD_ENABLE=1 > -!else > - DEFINE X64_BUILD_ENABLE = > -!endif > - > -!if $(TPM_ENABLED) == TRUE > - DEFINE DSC_TPM_BUILD_OPTIONS = /DTPM_ENABLED > -!else > - DEFINE DSC_TPM_BUILD_OPTIONS = > -!endif > - > - > - DEFINE EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS = $(MINNOW2_FSP_OPTION) $(MINNOW2_BUILD_OPTION) $(ENBDT_PF_ENABLE) $(EXTERNAL_VGA_BUILD_OPTION) $(PCIE_ENUM_WA_BUILD_OPTION) $(X0_WA_ENABLE_BUILD_OPTION) $(A0_WA_ENABLE_BUILD_OPTION) $(MICROCODE_FREE_BUILD_OPTIONS) $(SIMICS_BUILD_OPTIONS) $(HYBRID_BUILD_OPTIONS) $(COMPACT_BUILD_OPTIONS) $(VP_BUILD_OPTIONS) $(SYSCTL_ID_BUILD_OPTION) $(CLKGEN_CONFIG_EXTRA_BUILD_OPTION) $(SYSCTL_X0_CONVERT_BOARD_OPTION) $(ENBDT_S3_SUPPORT_OPTIONS) $(SATA_SUPPORT_BUILD_OPTION) $(PCIESC_SUPPORT_BUILD_OPTION) $(DSC_FTPM_ERROR_WR_BUILD_OPTIONS) $(DSC_TPM_BUILD_OPTIONS) $(DSC_BYTI_SECURE_BOOT_BUILD_OPTIONS) > -!if $(PERFORMANCE_ENABLE) == TRUE > - DEFINE PDB_BUILD_OPTION = /Zi > -!endif > + DEFINE EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS = $(CLKGEN_CONFIG_EXTRA_BUILD_OPTION) $(PCIESC_SUPPORT_BUILD_OPTION) > > !if $(SOURCE_DEBUG_ENABLE) == TRUE > MSFT:*_*_X64_GENFW_FLAGS = --keepexceptiontable > @@ -1291,7 +1243,6 @@ [BuildOptions] > !endif > !else > DEFINE SOURCE_LEVEL_DEBUG_BUILD_OPTIONS = > - > !endif > > # > @@ -1311,8 +1262,6 @@ [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > > [BuildOptions.Common.EDKII] > - *_*_IA32_ASM_FLAGS = $(VP_BUILD_OPTIONS) /D EDKII_GLUE_PciExpressBaseAddress=$(PLATFORM_PCIEXPRESS_BASE)h /DNOCS_S3_SUPPORT > - > *_*_IA32_CC_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > *_*_IA32_VFRPP_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > *_*_IA32_APP_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgX64.dsc b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgX64.dsc > index 238561191f..e0fd767dea 100644 > --- a/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgX64.dsc > +++ b/Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgX64.dsc > @@ -27,22 +27,11 @@ [Defines] > # > # Platform On/Off features are defined here > # > - # > - # Platform Support:: Set only one token except Crestview Hills > - # > - # 3.BayleyBay > - # ENBDT_PF_ENABLE = TRUE > - # > - !include Vlv2TbltDevicePkg/AutoPlatformCFG.txt > !include Vlv2TbltDevicePkg/PlatformPkgConfig.dsc > > DEFINE PLATFORMX64_ENABLE = TRUE > > -!if $(X64_CONFIG) == TRUE > DEFINE DXE_ARCHITECTURE = X64 > -!else > - DEFINE DXE_ARCHITECTURE = IA32 > -!endif > > FLASH_DEFINITION = Vlv2TbltDevicePkg/PlatformPkg.fdf > !if $(LFMA_ENABLE) == TRUE > @@ -763,8 +752,6 @@ [Components.IA32] > > !if $(RC_BINARY_RELEASE) == TRUE > Vlv2TbltDevicePkg/PlatformPei/PlatformPei.inf { > - > - *_*_IA32_CC_FLAGS = /DRC_BINARY_RELEASE > !if $(TARGET) == DEBUG > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2E > @@ -1246,56 +1233,19 @@ [BuildOptions] > # > # Define token for different Platform > # > - DEFINE MINNOW2_FSP_OPTION = > - > -!if $(ENBDT_PF_BUILD) == TRUE > - DEFINE ENBDT_PF_ENABLE = /DENBDT_PF_ENABLE=1 > -!else > - DEFINE ENBDT_PF_ENABLE = /DENBDT_PF_ENABLE=0 > -!endif > - > - > !if $(CLKGEN_CONFIG_EXTRA_ENABLE) == TRUE > DEFINE CLKGEN_CONFIG_EXTRA_BUILD_OPTION = /DCLKGEN_CONFIG_EXTRA=1 > !else > DEFINE CLKGEN_CONFIG_EXTRA_BUILD_OPTION = > !endif > > - > - > !if $(PCIESC_ENABLE) == TRUE > DEFINE PCIESC_SUPPORT_BUILD_OPTION = /DPCIESC_SUPPORT=1 > !else > DEFINE PCIESC_SUPPORT_BUILD_OPTION = > !endif > -!if $(SATA_ENABLE) == TRUE > - DEFINE SATA_SUPPORT_BUILD_OPTION = /DSATA_SUPPORT=1 > -!else > - DEFINE SATA_SUPPORT_BUILD_OPTION = > -!endif > -!if $(ENBDT_S3_SUPPORT) == TRUE > - DEFINE ENBDT_S3_SUPPORT_OPTIONS = /DNOCS_S3_SUPPORT > -!else > - DEFINE ENBDT_S3_SUPPORT_OPTIONS = > -!endif > > -!if $(X64_CONFIG) == TRUE > - DEFINE X64_BUILD_ENABLE = /DX64_BUILD_ENABLE=1 > -!else > - DEFINE X64_BUILD_ENABLE = > -!endif > - > -!if $(TPM_ENABLED) == TRUE > - DEFINE DSC_TPM_BUILD_OPTIONS = /DTPM_ENABLED > -!else > - DEFINE DSC_TPM_BUILD_OPTIONS = > -!endif > - > - > - DEFINE EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS = $(MINNOW2_FSP_OPTION) $(MINNOW2_BUILD_OPTION) $(ENBDT_PF_ENABLE) $(EXTERNAL_VGA_BUILD_OPTION) $(PCIE_ENUM_WA_BUILD_OPTION) $(X0_WA_ENABLE_BUILD_OPTION) $(A0_WA_ENABLE_BUILD_OPTION) $(MICROCODE_FREE_BUILD_OPTIONS) $(SIMICS_BUILD_OPTIONS) $(HYBRID_BUILD_OPTIONS) $(COMPACT_BUILD_OPTIONS) $(VP_BUILD_OPTIONS) $(SYSCTL_ID_BUILD_OPTION) $(CLKGEN_CONFIG_EXTRA_BUILD_OPTION) $(SYSCTL_X0_CONVERT_BOARD_OPTION) $(ENBDT_S3_SUPPORT_OPTIONS) $(SATA_SUPPORT_BUILD_OPTION) $(PCIESC_SUPPORT_BUILD_OPTION) $(DSC_FTPM_ERROR_WR_BUILD_OPTIONS) $(DSC_TPM_BUILD_OPTIONS) $(DSC_BYTI_SECURE_BOOT_BUILD_OPTIONS) > -!if $(PERFORMANCE_ENABLE) == TRUE > - DEFINE PDB_BUILD_OPTION = /Zi > -!endif > + DEFINE EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS = $(CLKGEN_CONFIG_EXTRA_BUILD_OPTION) $(PCIESC_SUPPORT_BUILD_OPTION) > > !if $(SOURCE_DEBUG_ENABLE) == TRUE > MSFT:*_*_X64_GENFW_FLAGS = --keepexceptiontable > @@ -1306,7 +1256,6 @@ [BuildOptions] > !endif > !else > DEFINE SOURCE_LEVEL_DEBUG_BUILD_OPTIONS = > - > !endif > > # > @@ -1326,8 +1275,6 @@ [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 > > [BuildOptions.Common.EDKII] > - *_*_IA32_ASM_FLAGS = $(VP_BUILD_OPTIONS) /D EDKII_GLUE_PciExpressBaseAddress=$(PLATFORM_PCIEXPRESS_BASE)h /DNOCS_S3_SUPPORT > - > *_*_IA32_CC_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > *_*_IA32_VFRPP_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > *_*_IA32_APP_FLAGS = $(EDK_EDKII_DSC_FEATURE_BUILD_OPTIONS) > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.bat b/Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.bat > index ffd6722582..c39b8ccd62 100644 > --- a/Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.bat > +++ b/Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.bat > @@ -11,7 +11,6 @@ echo. > echo %date% %time% > echo. > > - > ::********************************************************************** > :: Initial Setup > ::********************************************************************** > @@ -20,9 +19,14 @@ set /a build_threads=1 > set "Build_Flags= " > set exitCode=0 > set Arch=X64 > -set Source=0 > +set GenLog=FALSE > +set GenReport=FALSE > +set Clean=FALSE > set PLATFORM_NAME=Vlv2TbltDevicePkg > > +::********************************************************************** > +:: Detect full path to the edk2 repo > +::********************************************************************** > set CORE_PATH=%WORKSPACE% > if not exist %CORE_PATH%\edksetup.bat ( > if defined PACKAGES_PATH ( > @@ -41,6 +45,9 @@ if not exist %CORE_PATH%\edksetup.bat ( > ) > :CorePathFound > > +::********************************************************************** > +:: Detect full path to the Vlv2TbltDevicePkg > +::********************************************************************** > set PLATFORM_PACKAGE=%WORKSPACE%\%PLATFORM_NAME% > if not exist %PLATFORM_PACKAGE% ( > if defined PACKAGES_PATH ( > @@ -61,28 +68,13 @@ if not exist %PLATFORM_PACKAGE% ( > > cd %CORE_PATH% > > -:: Clean up previous build files. > -if exist %WORKSPACE%\edk2.log del %WORKSPACE%\edk2.log > -if exist %WORKSPACE%\unitool.log del %WORKSPACE%\unitool.log > -if exist %WORKSPACE%\Conf\target.txt del %WORKSPACE%\Conf\target.txt > -if exist %WORKSPACE%\Conf\tools_def.txt del %WORKSPACE%\Conf\tools_def.txt > -if exist %WORKSPACE%\Conf\build_rule.txt del %WORKSPACE%\Conf\build_rule.txt > -if exist %WORKSPACE%\Conf\.cache rmdir /q/s %WORKSPACE%\Conf\.cache > +::********************************************************************** > +:: Run edksetup.bat and make sure tools are up to date > +::********************************************************************** > > -:: Setup EDK environment. Edksetup puts new copies of target.txt, tools_def.txt, build_rule.txt in WorkSpace\Conf > -:: Also run edksetup as soon as possible to avoid it from changing environment variables we're overriding > call %CORE_PATH%\edksetup.bat Rebuild > @echo off > > -:: Define platform specific environment variables. > -set config_file=%PLATFORM_PACKAGE%\PlatformPkgConfig.dsc > -set auto_config_inc=%PLATFORM_PACKAGE%\AutoPlatformCFG.txt > - > - > - > -::create new AutoPlatformCFG.txt file > -copy /y nul %auto_config_inc% >nul > - > ::********************************************************************** > :: Parse command line arguments > ::********************************************************************** > @@ -92,12 +84,12 @@ copy /y nul %auto_config_inc% >nul > if /i "%~1"=="/?" goto Usage > > if /i "%~1"=="/l" ( > - set Build_Flags=%Build_Flags% -j EDK2.log > + set GenLog=TRUE > shift > goto OptLoop > ) > if /i "%~1"=="/y" ( > - set Build_Flags=%Build_Flags% -y %PLATFORM_PACKAGE%\EDK2_%PLATFORM_PACKAGE%.report > + set GenReport=TRUE > shift > goto OptLoop > ) > @@ -109,16 +101,7 @@ if /i "%~1"=="/m" ( > goto OptLoop > ) > if /i "%~1" == "/c" ( > - echo Removing previous build files ... > - if exist build ( > - del /f/s/q build > nul > - rmdir /s/q build > - ) > - if exist %WORKSPACE%\Conf\.cache ( > - del /f/s/q %WORKSPACE%\Conf\.cache > nul > - rmdir /s/q %WORKSPACE%\Conf\.cache > - ) > - echo. > + set Clean=TRUE > shift > goto OptLoop > ) > @@ -137,23 +120,6 @@ if /i "%~1"=="/IA32" ( > :: Required argument(s) > if "%~1"=="" goto Usage > > -if "%Arch%"=="IA32" ( > - echo DEFINE X64_CONFIG = FALSE >> %auto_config_inc% > -) else if "%Arch%"=="X64" ( > - echo DEFINE X64_CONFIG = TRUE >> %auto_config_inc% > -) > - > -:: -- Build flags settings for each Platform -- > -echo Setting %1 platform configuration... > -if /i "%~1" == "MNW2" ( > - echo DEFINE ENBDT_PF_BUILD = TRUE >> %auto_config_inc% > - > -) else ( > - echo Error - Unsupported PlatformType: %1 > - goto Usage > -) > -set Platform_Type=%~1 > - > if /i "%~2" == "RELEASE" ( > set target=RELEASE > ) else ( > @@ -161,8 +127,9 @@ if /i "%~2" == "RELEASE" ( > ) > > ::********************************************************************** > -:: Additional EDK Build Setup/Configuration > +:: Detect TOOL_CHAIN_TAG > ::********************************************************************** > + > echo. > echo Setting the Build environment for VS2015/VS2013/VS2012/VS2010/VS2008... > if defined VS140COMNTOOLS ( > @@ -206,6 +173,10 @@ if defined VS140COMNTOOLS ( > goto :BldFail > ) > > +::********************************************************************** > +:: Generate BUILD_PATH and make sure the directory exists > +::********************************************************************** > + > echo Ensuring correct build directory is present > if not exist %WORKSPACE%\Build mkdir %WORKSPACE%\Build > if "%Arch%"=="IA32" ( > @@ -217,26 +188,41 @@ if "%Arch%"=="IA32" ( > ) > if not exist %BUILD_PATH% mkdir %BUILD_PATH% > > -echo Modifing Conf files for this build... > -:: Remove lines with these tags from target.txt > -findstr /V "TARGET TARGET_ARCH TOOL_CHAIN_TAG BUILD_RULE_CONF ACTIVE_PLATFORM MAX_CONCURRENT_THREAD_NUMBER" %WORKSPACE%\Conf\target.txt > %WORKSPACE%\Conf\target.txt.tmp > +::********************************************************************** > +:: Check for clean operation > +::********************************************************************** > > -echo TARGET = %TARGET% >> %WORKSPACE%\Conf\target.txt.tmp > +if "%Clean%"=="TRUE" ( > + echo Removing previous build files ... > + if exist %BUILD_PATH% ( > + rmdir /s/q %BUILD_PATH% > + ) > + if exist %WORKSPACE%\Conf\.cache ( > + rmdir /s/q %WORKSPACE%\Conf\.cache > + ) > + echo. > + goto :Exit > +) > + > +::********************************************************************** > +:: Generate Build_Flags > +::********************************************************************** > + > +set Build_Flags=%Build_Flags% -b %TARGET% > if "%Arch%"=="IA32" ( > - echo TARGET_ARCH = IA32 >> %WORKSPACE%\Conf\target.txt.tmp > + set Build_Flags=%Build_Flags% -a IA32 > ) else if "%Arch%"=="X64" ( > - echo TARGET_ARCH = IA32 X64 >> %WORKSPACE%\Conf\target.txt.tmp > + set Build_Flags=%Build_Flags% -a IA32 -a X64 > ) > -echo TOOL_CHAIN_TAG = %TOOL_CHAIN_TAG% >> %WORKSPACE%\Conf\target.txt.tmp > -echo BUILD_RULE_CONF = Conf/build_rule.txt >> %WORKSPACE%\Conf\target.txt.tmp > -if %Source% == 0 ( > - echo ACTIVE_PLATFORM = %PLATFORM_PACKAGE%/PlatformPkg%Arch%.dsc >> %WORKSPACE%\Conf\target.txt.tmp > -) else ( > - echo ACTIVE_PLATFORM = %PLATFORM_PACKAGE%/PlatformPkg%Arch%Source.dsc >> %WORKSPACE%\Conf\target.txt.tmp > +set Build_Flags=%Build_Flags% -t %TOOL_CHAIN_TAG% > +set Build_Flags=%Build_Flags% -p %PLATFORM_PACKAGE%/PlatformPkg%Arch%.dsc > +set Build_Flags=%Build_Flags% -n %build_threads% > +if "%GenLog%"=="TRUE" ( > + set Build_Flags=%Build_Flags% -j %BUILD_PATH%\%PLATFORM_NAME%.log > +) > +if "%GenReport%"=="TRUE" ( > + set Build_Flags=%Build_Flags% -y %BUILD_PATH%\%PLATFORM_NAME%.report > ) > -echo MAX_CONCURRENT_THREAD_NUMBER = %build_threads% >> %WORKSPACE%\Conf\target.txt.tmp > - > -move /Y %WORKSPACE%\Conf\target.txt.tmp %WORKSPACE%\Conf\target.txt >nul > > ::********************************************************************** > :: Generate BIOS ID > @@ -267,6 +253,8 @@ echo VERSION_MINOR = 01 >> %BUILD_PATH%/BiosId.env > > echo. > echo Invoking EDK2 build... > +echo build %Build_Flags% > + > call build %Build_Flags% > > if %ERRORLEVEL% NEQ 0 goto BldFail > @@ -300,7 +288,7 @@ echo Build BIOS rom for VLV platforms. > echo. > echo Usage: bld_vlv.bat [options] PlatformType [Build Target] > echo. > -echo /c CleanAll before building > +echo /c CleanAll > echo /l Generate build log file > echo /y Generate build report file > echo /m Enable multi-processor build > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.sh b/Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.sh > index 1705b1628b..d32beb6a45 100755 > --- a/Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.sh > +++ b/Platform/Intel/Vlv2TbltDevicePkg/bld_vlv.sh > @@ -7,15 +7,22 @@ function Usage() { > echo "***************************************************************************" > echo "Build BIOS rom for VLV platforms." > echo > - echo "Usage: bld_vlv.sh PlatformType [Build Target]" > + echo "Usage: bld_vlv.sh [options] PlatformType [Build Target]" > echo > + echo " /c CleanAll" > + echo " /l Generate build log file" > + echo " /y Generate build report file" > + echo " /m Enable multi-processor build" > + echo " /IA32 Set Arch to IA32 (default: X64)" > + echo " /X64 Set Arch to X64 (default: X64)" > echo > echo " Platform Types: MNW2" > echo " Build Targets: Debug, Release (default: Debug)" > echo > + echo "Examples:" > + echo " bld_vlv.sh MNW2 : X64 Debug build for MinnowMax" > + echo " bld_vlv.sh /IA32 MNW2 release : IA32 Release build for MinnowMax" > echo "***************************************************************************" > - echo "Press any key......" > - read > exit 0 > } > > @@ -29,8 +36,12 @@ echo -e $(date) > #build_threads=($NUMBER_OF_PROCESSORS)+1 > Build_Flags= > exitCode=0 > +build_threads=1 > Arch=X64 > -SpiLock=0 > +GenLog=FALSE > +GenReport=FALSE > +Clean=FALSE > + > > export CORE_PATH=$WORKSPACE/edk2 > export PLATFORM_PATH=$WORKSPACE/edk2-platforms/Platform/Intel/ > @@ -38,27 +49,6 @@ export SILICON_PATH=$WORKSPACE/edk2-platforms/Silicon/Intel/ > export BINARY_PATH=$WORKSPACE/edk2-non-osi/Silicon/Intel/ > export PACKAGES_PATH=$PLATFORM_PATH:$SILICON_PATH:$BINARY_PATH:$CORE_PATH > > -## Clean up previous build files. > -if [ -e $WORKSPACE/EDK2.log ]; then > - rm $WORKSPACE/EDK2.log > -fi > - > -if [ -e $WORKSPACE/Unitool.log ]; then > - rm $WORKSPACE/Unitool.log > -fi > - > -if [ -e $WORKSPACE/Conf/target.txt ]; then > - rm $WORKSPACE/Conf/target.txt > -fi > - > -if [ -e $WORKSPACE/Conf/tools_def.txt ]; then > - rm $WORKSPACE/Conf/tools_def.txt > -fi > - > -if [ -e $WORKSPACE/Conf/build_rule.txt ]; then > - rm $WORKSPACE/Conf/build_rule.txt > -fi > - > ## Setup EDK environment. Edksetup puts new copies of target.txt, tools_def.txt, build_rule.txt in WorkSpace\Conf > ## Also run edksetup as soon as possible to avoid it from changing environment variables we're overriding > cd $CORE_PATH > @@ -69,17 +59,9 @@ make -C BaseTools > PLATFORM_NAME=Vlv2TbltDevicePkg > PLATFORM_PACKAGE=Vlv2TbltDevicePkg > PLATFORM_PKG_PATH=$PLATFORM_PATH/$PLATFORM_PACKAGE > -config_file=$PLATFORM_PKG_PATH/PlatformPkgConfig.dsc > -auto_config_inc=$PLATFORM_PKG_PATH/AutoPlatformCFG.txt > > cd $PLATFORM_PKG_PATH > > -## create new AutoPlatformCFG.txt file > -if [ -f "$auto_config_inc" ]; then > - rm $auto_config_inc > -fi > -touch $auto_config_inc > - > ##********************************************************************** > ## Parse command line arguments > ##********************************************************************** > @@ -89,17 +71,17 @@ for (( i=1; i<=$#; )) > do > if [ "$1" == "/?" ]; then > Usage > - elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Q" ]; then > - Build_Flags="$Build_Flags --quiet" > - shift > elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/L" ]; then > - Build_Flags="$Build_Flags -j EDK2.log" > + GenLog=TRUE > + shift > + elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Y" ]; then > + GenReport=TRUE > + shift > + elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/M" ]; then > + build_threads=8 > shift > elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/C" ]; then > - echo Removing previous build files ... > - if [ -d "Build" ]; then > - rm -r Build > - fi > + Clean=TRUE > shift > elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/X64" ]; then > Arch=X64 > @@ -107,9 +89,6 @@ for (( i=1; i<=$#; )) > elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/IA32" ]; then > Arch=IA32 > shift > - elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/YL" ]; then > - SpiLock=1 > - shift > else > break > fi > @@ -120,26 +99,7 @@ if [ "$2" == "" ]; then > Usage > fi > > -if [ $Arch == "IA32" ]; then > - echo DEFINE X64_CONFIG = FALSE >> $auto_config_inc > -else > - echo DEFINE X64_CONFIG = TRUE >> $auto_config_inc > -fi > - > -## -- Build flags settings for each Platform -- > -## AlpineValley (ALPV): SVP_PF_BUILD = TRUE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE > -## BayleyBay (BBAY): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = TRUE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE > -## BayLake (BLAK): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = TRUE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE > -## Bakersport (BYTI): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = TRUE, IVI_PF_BUILD = FALSE > -## Crestview Hills (CVHS): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = TRUE, IVI_PF_BUILD = TRUE > -## FFD8 (BLAK): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = TRUE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE > echo "Setting $1 platform configuration and BIOS ID..." > -if [ "$(echo $1 | tr 'a-z' 'A-Z')" == "MNW2" ]; then > - echo DEFINE ENBDT_PF_BUILD = TRUE >> $auto_config_inc > -else > - echo "Error - Unsupported PlatformType: $1" > - Usage > -fi > > if [ "$(echo $2 | tr 'a-z' 'A-Z')" == "RELEASE" ]; then > export TARGET=RELEASE > @@ -148,18 +108,8 @@ else > fi > > ##********************************************************************** > -## Additional EDK Build Setup/Configuration > +## Detect TOOL_CHAIN_TAG > ##********************************************************************** > -echo "Ensuring correct build directory is present for GenBiosId..." > - > -echo Modifying Conf files for this build... > -## Remove lines with these tags from target.txt > -sed -i '/^ACTIVE_PLATFORM/d' $WORKSPACE/Conf/target.txt > -sed -i '/^TARGET /d' $WORKSPACE/Conf/target.txt > -sed -i '/^TARGET_ARCH/d' $WORKSPACE/Conf/target.txt > -sed -i '/^TOOL_CHAIN_TAG/d' $WORKSPACE/Conf/target.txt > -sed -i '/^MAX_CONCURRENT_THREAD_NUMBER/d' $WORKSPACE/Conf/target.txt > - > gcc_version=$(gcc -v 2>&1 | tail -1 | awk '{print $3}') > case $gcc_version in > [1-3].*|4.[0-7].*) > @@ -167,31 +117,19 @@ case $gcc_version in > exit 1 > ;; > 4.8.*) > - TARGET_TOOLS=GCC48 > + export TOOL_CHAIN_TAG=GCC48 > ;; > 4.9.*|6.[0-2].*) > - TARGET_TOOLS=GCC49 > + export TOOL_CHAIN_TAG=GCC49 > ;; > *) > - TARGET_TOOLS=GCC5 > + export TOOL_CHAIN_TAG=GCC5 > ;; > esac > > -ACTIVE_PLATFORM=$PLATFORM_PKG_PATH/PlatformPkgGcc"$Arch".dsc > -export TOOL_CHAIN_TAG=$TARGET_TOOLS > -MAX_CONCURRENT_THREAD_NUMBER=8 > -echo ACTIVE_PLATFORM = $ACTIVE_PLATFORM >> $WORKSPACE/Conf/target.txt > -echo TARGET = $TARGET >> $WORKSPACE/Conf/target.txt > -echo TOOL_CHAIN_TAG = $TOOL_CHAIN_TAG >> $WORKSPACE/Conf/target.txt > -echo MAX_CONCURRENT_THREAD_NUMBER = $MAX_CONCURRENT_THREAD_NUMBER >> $WORKSPACE/Conf/target.txt > -if [ $Arch == "IA32" ]; then > - echo TARGET_ARCH = IA32 >> $WORKSPACE/Conf/target.txt > -else > - echo TARGET_ARCH = IA32 X64 >> $WORKSPACE/Conf/target.txt > -fi > - > - > -## Set and Create $BUILD_PATH if necessary > +##********************************************************************** > +## Generate $BUILD_PATH and make sure the directory exists > +##********************************************************************** > if [ ! -d ${WORKSPACE}/Build ]; then > mkdir ${WORKSPACE}/Build > fi > @@ -212,6 +150,40 @@ if [ ! -d $BUILD_PATH ]; then > mkdir $BUILD_PATH > fi > > +##********************************************************************** > +## Check for clean operation > +##********************************************************************** > +if [ $Clean == "TRUE" ]; then > + echo Removing previous build files ... > + if [ -d ${BUILD_PATH} ]; then > + rm -r ${BUILD_PATH} > + fi > + if [ -d ${WORKSPACE}/Conf/.cache ]; then > + rm -r ${WORKSPACE}/Conf/.cache > + fi > + exit 0 > +fi > + > +##********************************************************************** > +## Generate Build_Flags > +##********************************************************************** > + > +Build_Flags="$Build_Flags -b $TARGET" > +if [ $Arch == "IA32" ]; then > + Build_Flags="$Build_Flags -a IA32" > +else > + Build_Flags="$Build_Flags -a IA32 -a X64" > +fi > +Build_Flags="$Build_Flags -t $TOOL_CHAIN_TAG" > +Build_Flags="$Build_Flags -p ${PLATFORM_PKG_PATH}/PlatformPkgGcc${Arch}.dsc" > +Build_Flags="$Build_Flags -n $build_threads" > +if [ $GenLog == "TRUE" ]; then > + Build_Flags="$Build_Flags -j ${BUILD_PATH}/${PLATFORM_NAME}.log" > +fi > +if [ $GenReport == "TRUE" ]; then > + Build_Flags="$Build_Flags -y ${BUILD_PATH}/${PLATFORM_NAME}.report" > +fi > + > ##********************************************************************** > ## Generate BIOS ID > ##********************************************************************** > @@ -239,7 +211,8 @@ python $WORKSPACE/edk2-platforms/Platform/Intel/Tools/GenBiosId/GenBiosId.py -i > ## Build BIOS > ##********************************************************************** > echo "Invoking EDK2 build..." > -build > +echo build $Build_Flags > +build $Build_Flags > > ##********************************************************************** > ## Post Build processing and cleanup > diff --git a/Platform/Intel/Vlv2TbltDevicePkg/cln.sh b/Platform/Intel/Vlv2TbltDevicePkg/cln.sh > deleted file mode 100644 > index 3511695f6f..0000000000 > --- a/Platform/Intel/Vlv2TbltDevicePkg/cln.sh > +++ /dev/null > @@ -1,62 +0,0 @@ > -#!/usr/bin/env bash > -echo > -echo Run build cleanall... > -echo > - > -echo > -echo Directories to clean... > -echo > - > -cd .. > - > -if [ -d "Build" ]; then > - rm -r Build > -fi > - > -if [ -d "Conf/.cache" ]; then > - rm -r Conf/.cache > -fi > - > -if [ -d "RomImages" ]; then > - rm -r RomImages > -fi > - > -echo > -echo Files to clean... > -echo > - > -if [ -e $(pwd)/EDK2.log ]; then > - rm $(pwd)/EDK2.log > -fi > - > -if [ -e $(pwd)/Unitool.log ]; then > - rm $(pwd)/Unitool.log > -fi > - > -if [ -e $(pwd)/Conf/target.txt ]; then > - rm $(pwd)/Conf/target.txt > -fi > - > -if [ -e $(pwd)/Conf/BiosId.env ]; then > - rm $(pwd)/Conf/BiosId.env > -fi > - > -if [ -e $(pwd)/Conf/tools_def.txt ]; then > - rm $(pwd)/Conf/tools_def.txt > -fi > - > -if [ -e $(pwd)/Conf/build_rule.txt ]; then > - rm $(pwd)/Conf/build_rule.txt > -fi > - > -if [ -e $(pwd)/Conf/BuildEnv.sh ]; then > - rm $(pwd)/Conf/BuildEnv.sh > -fi > - > -if [ -e $(pwd)/Vlv2TbltDevicePkg/AutoPlatformCFG.txt ]; then > - rm $(pwd)/Vlv2TbltDevicePkg/AutoPlatformCFG.txt > -fi > - > -echo > -echo All done... > -echo --------------E9BFF21C510A4D4EE2E772FA Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CiAgPC9oZWFkPgogIDxib2R5IHRl eHQ9IiMwMDAwMDAiIGJnY29sb3I9IiNGRkZGRkYiPgogICAgPHA+YmxkX3Zsdi5zaCBzaG91 bGQgcHJvYmFibHkgaGF2ZSAic2V0IC1lIiBhdCB0aGUgdG9wLCBsaWtlIHRoZQogICAgICBj aGFuZ2UgdG8gQnVpbGRfSUZXSS5zaDwvcD4KICAgIDxwPlNlZSA8YSBjbGFzcz0ibW96LXR4 dC1saW5rLWZyZWV0ZXh0IiBocmVmPSJodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcv c2hvd19idWcuY2dpP2lkPTE1OTkiPmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MTU5OTwvYT4gKCI8c3BhbgogICAgICAgIGlkPSJzdW1tYXJ5X2Nv bnRhaW5lciI+PHNwYW4gaWQ9InNob3J0X2Rlc2Nfbm9uZWRpdF9kaXNwbGF5Ij5ibGRfdmx2 LnNoCiAgICAgICAgICBpc24ndCBgc2V0IC1lYCBhbmQgZG9lc24ndCBjaGVjayBpZiBjb21t YW5kcyBjb21wbGV0ZWQKICAgICAgICAgIHN1Y2Nlc3NmdWxseSIpLjwvc3Bhbj48L3NwYW4+ PC9wPgogICAgPHA+PHNwYW4gaWQ9InN1bW1hcnlfY29udGFpbmVyIj48c3BhbgogICAgICAg ICAgaWQ9InNob3J0X2Rlc2Nfbm9uZWRpdF9kaXNwbGF5Ij48YnI+CiAgICAgICAgPC9zcGFu Pjwvc3Bhbj48L3A+CiAgICA8cD48c3BhbiBpZD0ic3VtbWFyeV9jb250YWluZXIiPjxzcGFu CiAgICAgICAgICBpZD0ic2hvcnRfZGVzY19ub25lZGl0X2Rpc3BsYXkiPi0tIDxicj4KICAg ICAgICAgIFJlYmVjY2EgQ3Jhbjxicj4KICAgICAgICA8L3NwYW4+PC9zcGFuPjwvcD4KICAg IDxwPjxicj4KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9Im1vei1jaXRlLXByZWZpeCI+T24g Ny8xMC8xOSAxOjA1IFBNLCBNaWNoYWVsIEQgS2lubmV5CiAgICAgIHdyb3RlOjxicj4KICAg IDwvZGl2PgogICAgPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIKICAgICAgY2l0ZT0ibWlkOjIw MTkwNzEwMTkwNTE2LjYwMTItMjctbWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20iPgogICAg ICA8cHJlIGNsYXNzPSJtb3otcXVvdGUtcHJlIiB3cmFwPSIiPiogUmVtb3ZlIGNsbi5zaAoq IFJlbW92ZSB1bnVzZWQgUGxhdGZvcm1EZWZpbnRpb25zLmggZmlsZQoqIFJlbW92ZSB1bnVz ZWQgZGVmaW5lcyBmcm9tIERTQyBmaWxlcwoqIE1ha2UgV2luZG93cyBhbmQgTGludXggc2Ny aXB0IG1vcmUgY29uc2lzdGVudAoqIFJlbW92ZSB1bnVzZWQgb3B0aW9ucyBmcm9tIFdpbmRv d3MvTGludXggc2NyaXB0cwoqIFJlbW92ZSB1bnVzZWQgZGVmaW5lcyBmcm9tIFdpbmRvd3Mv TGludXggc2NyaXB0cwoqIERvIG5vdCBtb2RpZnkgVGFyZ2V0LnR4dCBpbiBDb25mIGRpcmVj dG9yeS4gIEluc3RlYWQsCiAgcGFzcyBhbGwgYnVpbGQgZmxhZ3Mgb24gdGhlIGNvbW1hbmQg bGluZQoqIEdlbmVyYXRlIGJ1aWxkIHJlcG9ydCBpbiB0aGUgYnVpbGQgb3V0cHV0IGRpcmVj dG9yeQoqIEdlbmVyYXRlIGJ1aWxkIGxvZ3MgaW4gdGhlIGJ1aWxkIG91dHB1dCBkaXJlY3Rv cnkKKiBEbyBub3QgZGVsZXRlIGZpbGVzIGZyb20gQ29uZiBkaXJlY3RvcnkKKiBVcGRhdGUg Y2xlYW4gb3BlcmF0aW9uIHRvIG9ubHkgY2xlYW4gb25lIHBsYXRmb3JtIHRhcmdldAoqIERv IG5vdCBnZW5lcmF0ZSBBdXRvUGxhdGZvcm1DRkcudHh0IGZpbGUgYW55bW9yZQoKQ2M6IFph aWxpYW5nIFN1biA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWls dG86emFpbGlhbmcuc3VuQGludGVsLmNvbSI+Jmx0O3phaWxpYW5nLnN1bkBpbnRlbC5jb20m Z3Q7PC9hPgpDYzogWWkgUWlhbiA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBo cmVmPSJtYWlsdG86eWkucWlhbkBpbnRlbC5jb20iPiZsdDt5aS5xaWFuQGludGVsLmNvbSZn dDs8L2E+CkNjOiBHYXJ5IExpbiA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBo cmVmPSJtYWlsdG86Z2xpbkBzdXNlLmNvbSI+Jmx0O2dsaW5Ac3VzZS5jb20mZ3Q7PC9hPgpT aWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEQgS2lubmV5IDxhIGNsYXNzPSJtb3otdHh0LWxpbmst cmZjMjM5NkUiIGhyZWY9Im1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbSI+Jmx0 O21pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tJmd0OzwvYT4KLS0tCiBQbGF0Zm9ybS9JbnRl bC9WbHYyVGJsdERldmljZVBrZy8uZ2l0aWdub3JlICAgfCAgIDUgLQogLi4uL0ludGVsL1Zs djJUYmx0RGV2aWNlUGtnL0J1aWxkX0lGV0kuYmF0ICAgIHwgIDc1ICsrLS0tLS0tLQogLi4u L0ludGVsL1ZsdjJUYmx0RGV2aWNlUGtnL0J1aWxkX0lGV0kuc2ggICAgIHwgIDU3ICsrKy0t LS0KIC4uLi9JbmNsdWRlL1BsYXRmb3JtRGVmaW5pdGlvbnMuaCAgICAgICAgICAgICB8ICA0 MyAtLS0tLQogLi4uL1ZsdjJUYmx0RGV2aWNlUGtnL1BsYXRmb3JtUGtnQ29uZmlnLmRzYyAg IHwgICAyIC0KIC4uLi9WbHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ0djY0lBMzIuZHNj ICB8ICA1NSArLS0tLS0KIC4uLi9WbHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ0djY1g2 NC5kc2MgICB8ICA1MyArLS0tLS0KIC4uLi9WbHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBr Z0lBMzIuZHNjICAgICB8ICA1MyArLS0tLS0KIC4uLi9WbHYyVGJsdERldmljZVBrZy9QbGF0 Zm9ybVBrZ1g2NC5kc2MgICAgICB8ICA1NSArLS0tLS0KIFBsYXRmb3JtL0ludGVsL1ZsdjJU Ymx0RGV2aWNlUGtnL2JsZF92bHYuYmF0ICB8IDEyMCArKysrKystLS0tLS0tCiBQbGF0Zm9y bS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9ibGRfdmx2LnNoICAgfCAxNTkgKysrKysrKyst LS0tLS0tLS0tCiBQbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9jbG4uc2ggICAg ICAgfCAgNjIgLS0tLS0tLQogMTIgZmlsZXMgY2hhbmdlZCwgMTU2IGluc2VydGlvbnMoKyks IDU4MyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBQbGF0Zm9ybS9JbnRlbC9W bHYyVGJsdERldmljZVBrZy8uZ2l0aWdub3JlCiBkZWxldGUgbW9kZSAxMDA2NDQgUGxhdGZv cm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvSW5jbHVkZS9QbGF0Zm9ybURlZmluaXRpb25z LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBQbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBr Zy9jbG4uc2gKCmRpZmYgLS1naXQgYS9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBr Zy8uZ2l0aWdub3JlIGIvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvLmdpdGln bm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc2OTgyNjJhZC4uMDAwMDAw MDAwMAotLS0gYS9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy8uZ2l0aWdub3Jl CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1BdXRvUGxhdGZvcm1DRkcudHh0Ci1T dGl0Y2gvU3RpdGNoaW5nLmxvZwotU3RpdGNoL01OVyouYmluCi1TdGl0Y2gvTU5XKi5yb20K LVN0aXRjaC9NTlcqLnJvbS5vcmlnCmRpZmYgLS1naXQgYS9QbGF0Zm9ybS9JbnRlbC9WbHYy VGJsdERldmljZVBrZy9CdWlsZF9JRldJLmJhdCBiL1BsYXRmb3JtL0ludGVsL1ZsdjJUYmx0 RGV2aWNlUGtnL0J1aWxkX0lGV0kuYmF0CmluZGV4IDQ0NzU5YzYxN2YuLmY2NWFhNjFmNGEg MTAwNjQ0Ci0tLSBhL1BsYXRmb3JtL0ludGVsL1ZsdjJUYmx0RGV2aWNlUGtnL0J1aWxkX0lG V0kuYmF0CisrKyBiL1BsYXRmb3JtL0ludGVsL1ZsdjJUYmx0RGV2aWNlUGtnL0J1aWxkX0lG V0kuYmF0CkBAIC05LDE1ICs5LDkgQEAKIAogU2V0TG9jYWwgRW5hYmxlRGVsYXllZEV4cGFu c2lvbiBFbmFibGVFeHRlbnNpb25zCiAKLUBSRU0gR28gdG8gd29yayBzcGFjZSBkaXJlY3Rv cnkuCi1jZCAuLgotY2QgLi4KLQogOjogQXNzaWduIGluaXRpYWwgdmFsdWVzCiBzZXQgZXhp dENvZGU9MAogc2V0ICJCdWlsZF9GbGFncz0gIgotc2V0ICJTdGl0Y2hfRmxhZ3M9ICIKLXNl dCBBcmNoPVg2NAogc2V0IFBMQVRGT1JNX1BBQ0tBR0U9Vmx2MlRibHREZXZpY2VQa2cKIAog c2V0IFBMQVRGT1JNX1BBVEg9JVdPUktTUEFDRSUKQEAgLTQyLDExICszNiw2IEBAIGlmIG5v dCBleGlzdCAlUExBVEZPUk1fUEFUSCVcJVBMQVRGT1JNX1BBQ0tBR0UlICgKIDpPcHRMb29w CiBpZiAvaSAiJX4xIj09Ii8/IiBnb3RvIFVzYWdlCiAKLWlmIC9pICIlfjEiPT0iL3EiICgK LSAgICBzZXQgQnVpbGRfRmxhZ3M9JUJ1aWxkX0ZsYWdzJSAvcQotICAgIHNoaWZ0Ci0gICAg Z290byBPcHRMb29wCi0pCiBpZiAvaSAiJX4xIj09Ii9sIiAoCiAgICAgc2V0IEJ1aWxkX0Zs YWdzPSVCdWlsZF9GbGFncyUgL2wKICAgICBzaGlmdApAQCAtNjcsNTMgKzU2LDE3IEBAIGlm IC9pICIlfjEiID09ICIvYyIgKAogICAgIHNoaWZ0CiAgICAgZ290byBPcHRMb29wCiApCi1p ZiAvaSAiJX4xIiA9PSAiL0VDUCIgKAotICAgIHNldCBCdWlsZF9GbGFncz0lQnVpbGRfRmxh Z3MlIC9lY3AKLSAgICBzaGlmdAotICAgIGdvdG8gT3B0TG9vcAotKQotCi1pZiAvaSAiJX4x Ij09Ii9zIiAoCi0gICAgc2V0IEJ1aWxkX0ZsYWdzPSVCdWlsZF9GbGFncyUgL3MKLSAgICBz aGlmdAotICAgIGdvdG8gT3B0TG9vcAotKQotCiBpZiAvaSAiJX4xIj09Ii94NjQiICgKLSAg ICBzZXQgQXJjaD1YNjQKICAgICBzZXQgQnVpbGRfRmxhZ3M9JUJ1aWxkX0ZsYWdzJSAveDY0 CiAgICAgc2hpZnQKICAgICBnb3RvIE9wdExvb3AKICkKLQogaWYgL2kgIiV+MSI9PSIvSUEz MiIgKAotICAgIHNldCBBcmNoPUlBMzIKICAgICBzZXQgQnVpbGRfRmxhZ3M9JUJ1aWxkX0Zs YWdzJSAvSUEzMgogICAgIHNoaWZ0CiAgICAgZ290byBPcHRMb29wCiApCiAKLWlmIC9pICIl fjEiPT0iL25HIiAoCi0gICAgc2V0IFN0aXRjaF9GbGFncz0lU3RpdGNoX0ZsYWdzJSAvbkcK LSAgICBzaGlmdAotICAgIGdvdG8gT3B0TG9vcAotKQotaWYgL2kgIiV+MSI9PSIvbk0iICgK LSAgICBzZXQgU3RpdGNoX0ZsYWdzPSVTdGl0Y2hfRmxhZ3MlIC9uTQotICAgIHNoaWZ0Ci0g ICAgZ290byBPcHRMb29wCi0pCi1pZiAvaSAiJX4xIj09Ii9uQiIgKAotICAgIHNldCBTdGl0 Y2hfRmxhZ3M9JVN0aXRjaF9GbGFncyUgL25CCi0gICAgc2hpZnQKLSAgICBnb3RvIE9wdExv b3AKLSkKLWlmIC9pICIlfjEiPT0iL3lMIiAoCi0gICAgc2V0IFN0aXRjaF9GbGFncz0lU3Rp dGNoX0ZsYWdzJSAveUwKLSAgICBzaGlmdAotICAgIGdvdG8gT3B0TG9vcAotKQotCiA6OiBS ZXF1aXJlIDIgaW5wdXQgcGFyYW1ldGVycwogaWYgIiV+MiI9PSIiIGdvdG8gVXNhZ2UKIApA QCAtMTI1LDcgKzc4LDcgQEAgc2V0IEJ1aWxkX1RhcmdldD0lfjIKIGVjaG8gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogZWNobyBCdWlsZF9JRldJOiAgQ2FsbGluZyBCSU9TIGJ1aWxkIFNjcmlwdC4u LgogCi1jYWxsICVQTEFURk9STV9QQVRIJVwlUExBVEZPUk1fUEFDS0FHRSVcYmxkX3Zsdi5i YXQgJUJ1aWxkX0ZsYWdzJSAgJVBsYXRmb3JtX1R5cGUlICVCdWlsZF9UYXJnZXQlCitjYWxs ICVQTEFURk9STV9QQVRIJVwlUExBVEZPUk1fUEFDS0FHRSVcYmxkX3Zsdi5iYXQgJUJ1aWxk X0ZsYWdzJSAlUGxhdGZvcm1fVHlwZSUgJUJ1aWxkX1RhcmdldCUKIAogaWYgJUVSUk9STEVW RUwlIE5FUSAwICgKICAgICBlY2hvIGVjaG8gIC0tIEVycm9yIEJ1aWxkaW5nIEJJT1MgICZh bXA7IGVjaG8uCkBAIC0xMzksMjMgKzkyLDIxIEBAIGdvdG8gRXhpdAogOlVzYWdlCiBlY2hv IFNjcmlwdCB0byBidWlsZCBCSU9TIGZpcm13YXJlIGFuZCBzdGl0Y2ggdGhlIGVudGlyZSBJ RldJLgogZWNoby4KLWVjaG8gVXNhZ2U6IEJ1aWxkX0lGV0kuYmF0IFtvcHRpb25zXSAgUGxh dGZvcm1UeXBlICBCdWlsZFRhcmdldCAgW0lGV0kgU3VmZml4XQorZWNobyBVc2FnZTogQnVp bGRfSUZXSS5iYXQgW29wdGlvbnNdICBQbGF0Zm9ybVR5cGUgIEJ1aWxkVGFyZ2V0CiBlY2hv LgotZWNobyAgICAgICAgL2MgICAgIENsZWFuQWxsIGJlZm9yZSBidWlsZGluZwotZWNobyAg ICAgICAgL3g2NCAgIFNldCBBcmNoIHRvIFg2NCAgKGRlZmF1bHQ6IFg2NCkKLWVjaG8gICAg ICAgIC9JQTMyICBTZXQgQXJjaCB0byBJQTMyIChkZWZhdWx0OiBYNjQpCi1lY2hvICAgICAg ICAveUwgICAgRW5hYmxlIFNQSSBsb2NrCi1lY2hvLiAKLWVjaG8gICAgICAgIFBsYXRmb3Jt IFR5cGVzOiAgIE1OVzIKLWVjaG8gICAgICAgIEJ1aWxkIFRhcmdldHM6ICAgIFJlbGVhc2Us IERlYnVnCi1lY2hvICAgICAgICBJRldJIFN1ZmZpeDogICAgICBTdWZmaXggdG8gYXBwZW5k IHRvIGVuZCBvZiBJRldJIGZpbGVuYW1lIChkZWZhdWx0OiBNTV9ERF9ZWVlZKQorZWNobyAg ICAvYyAgICBDbGVhbkFsbAorZWNobyAgICAvbCAgICBHZW5lcmF0ZSBidWlsZCBsb2cgZmls ZQorZWNobyAgICAveSAgICBHZW5lcmF0ZSBidWlsZCByZXBvcnQgZmlsZQorZWNobyAgICAv bSAgICBFbmFibGUgbXVsdGktcHJvY2Vzc29yIGJ1aWxkCitlY2hvICAgIC9JQTMyIFNldCBB cmNoIHRvIElBMzIgKGRlZmF1bHQ6IFg2NCkKK2VjaG8gICAgL1g2NCAgU2V0IEFyY2ggdG8g WDY0IChkZWZhdWx0OiBYNjQpCiBlY2hvLgotZWNobyAgICAgICAgU2VlICBTdGl0Y2gvU3Rp dGNoX0NvbmZpZy50eHQgIGZvciBhZGRpdGlvbmFsIHN0aXRjaGluZyBzZXR0aW5ncy4KK2Vj aG8gICAgICAgIFBsYXRmb3JtIFR5cGVzOiAgTU5XMgorZWNobyAgICAgICAgQnVpbGQgVGFy Z2V0czogICBEZWJ1ZywgUmVsZWFzZSAgKGRlZmF1bHQ6IERlYnVnKQogZWNoby4KLWVjaG8g ICAgICAgIElmIGNhcHN1bGUgdXBkYXRlIGlzIG5lZWRlZCwgcGxlYXNlIHVwZGF0ZSBDQVBT VUxFX0VOQUJMRSA9IFRSVUUgaW4gQ29uZmlnLmRzYy4KLWVjaG8gICAgICAgIElmIHJlY292 ZXJ5IGlzIG5lZWRlZCwgcGxlYXNlIHVwZGF0ZSBSRUNPVkVSWV9FTkFCTEUgPSBUUlVFIGlu IENvbmZpZy5kc2MuCi1lY2hvICAgICAgICBJZiBlaXRoZXIgb2YgYWJvdmUgaXMgVFJVRSwg cGxlYXNlIHNldCBPUEVOU1NMX1BBVEggaW4gd2luZG93cyBldmlyb25tZW50Ci1lY2hvICAg ICAgICBhbmQgcHV0IG9wZW5zc2wuZXhlIHRoZXJlLCB0byBnZW5lcmF0ZSBmaW5hbCBjYXBz dWxlIGltYWdlLgorZWNobyBFeGFtcGxlczoKK2VjaG8gICAgQnVpbGRfSUZXSS5iYXQgTU5X MiBkZWJ1ZyAgICAgICAgICAgOiBYNjQgRGVidWcgYnVpbGQgZm9yIE1pbm5vd01heAorZWNo byAgICBCdWlsZF9JRldJLmJhdCAvSUEzMiBNTlcyIHJlbGVhc2UgICA6IElBMzIgUmVsZWFz ZSBidWlsZCBmb3IgTWlubm93TWF4CiBlY2hvLgogc2V0IGV4aXRDb2RlPTEKIApkaWZmIC0t Z2l0IGEvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvQnVpbGRfSUZXSS5zaCBi L1BsYXRmb3JtL0ludGVsL1ZsdjJUYmx0RGV2aWNlUGtnL0J1aWxkX0lGV0kuc2gKaW5kZXgg MzQ5ZjBjN2JhNy4uMTUzYzhjNWZhZSAxMDA3NTUKLS0tIGEvUGxhdGZvcm0vSW50ZWwvVmx2 MlRibHREZXZpY2VQa2cvQnVpbGRfSUZXSS5zaAorKysgYi9QbGF0Zm9ybS9JbnRlbC9WbHYy VGJsdERldmljZVBrZy9CdWlsZF9JRldJLnNoCkBAIC02LDE1ICs2LDIxIEBAIGZ1bmN0aW9u IFVzYWdlICggKSB7CiAgIGVjaG8KICAgZWNobyAiU2NyaXB0IHRvIGJ1aWxkIEJJT1MgZmly bXdhcmUgYW5kIHN0aXRjaCB0aGUgZW50aXJlIElGV0kuIgogICBlY2hvCi0gIGVjaG8gIlVz YWdlOiBCdWlsZF9JRldJLnNoIFtvcHRpb25zXSAgUGxhdGZvcm1UeXBlICBCdWlsZFRhcmdl dCAgIgorICBlY2hvICJVc2FnZTogQnVpbGRfSUZXSS5zaCBbb3B0aW9uc10gIFBsYXRmb3Jt VHlwZSAgQnVpbGRUYXJnZXQiCiAgIGVjaG8KLSAgZWNobyAKLSAgZWNobyAiICAgICAgIC95 TCBbb3B0aW9uXSAgOiAgIEVuYWJsZSBTUEkgbG9jayIKLSAgZWNobyAiICAgICAgIFBsYXRm b3JtIFR5cGVzOiAgIE1OVzIiCi0gIGVjaG8gIiAgICAgICBCdWlsZCBUYXJnZXRzOiAgICBS ZWxlYXNlLCBEZWJ1ZyIKKyAgZWNobyAiICAgL2MgICAgQ2xlYW5BbGwiCisgIGVjaG8gIiAg IC9sICAgIEdlbmVyYXRlIGJ1aWxkIGxvZyBmaWxlIgorICBlY2hvICIgICAveSAgICBHZW5l cmF0ZSBidWlsZCByZXBvcnQgZmlsZSIKKyAgZWNobyAiICAgL20gICAgRW5hYmxlIG11bHRp LXByb2Nlc3NvciBidWlsZCIKKyAgZWNobyAiICAgL0lBMzIgU2V0IEFyY2ggdG8gSUEzMiAo ZGVmYXVsdDogWDY0KSIKKyAgZWNobyAiICAgL1g2NCAgU2V0IEFyY2ggdG8gWDY0IChkZWZh dWx0OiBYNjQpIgogICBlY2hvCi0gIGVjaG8gIiAgICAgICBTZWUgIFN0aXRjaC9TdGl0Y2hf Q29uZmlnLnR4dCAgZm9yIGFkZGl0aW9uYWwgc3RpdGNoaW5nIHNldHRpbmdzLiIKKyAgZWNo byAiICAgICAgIFBsYXRmb3JtIFR5cGVzOiAgTU5XMiIKKyAgZWNobyAiICAgICAgIEJ1aWxk IFRhcmdldHM6ICAgRGVidWcsIFJlbGVhc2UgIChkZWZhdWx0OiBEZWJ1ZykiCiAgIGVjaG8K KyAgZWNobyAiRXhhbXBsZXM6IgorICBlY2hvICIgICBCdWlsZF9JRldJLnNoIE1OVzIgZGVi dWcgICAgICAgICAgIDogWDY0IERlYnVnIGJ1aWxkIGZvciBNaW5ub3dNYXgiCisgIGVjaG8g IiAgIEJ1aWxkX0lGV0kuc2ggL0lBMzIgTU5XMiByZWxlYXNlICAgOiBJQTMyIFJlbGVhc2Ug YnVpbGQgZm9yIE1pbm5vd01heCIKICAgZWNobwogICBleGl0IDAKIH0KQEAgLTI0LDkgKzMw LDYgQEAgc2V0IC1lCiAjIyBBc3NpZ24gaW5pdGlhbCB2YWx1ZXMKIGV4aXRDb2RlPTAKIEJ1 aWxkX0ZsYWdzPQotU3RpdGNoX0ZsYWdzPQotQXJjaD1YNjQKLVBMQVRGT1JNX1BBQ0tBR0U9 Vmx2MlRibHREZXZpY2VQa2cKIAogIyMgQ2hlY2sgd2hldGhlciBXT1JLU1BBQ0UgaXMgc2V0 IG9yIG5vdAogaWYgW1sgLXogIiRXT1JLU1BBQ0UiIF1dOyB0aGVuCkBAIC00Nyw0MSArNTAs MjQgQEAgZmkKIAogZm9yICgoIGk9MTsgaSZsdDs9JCM7ICkpCiAgIGRvCi0gICAgaWYgWyAi JChlY2hvICQxIHwgdHIgJ2EteicgJ0EtWicpIiA9PSAiL1EiIF07IHRoZW4KLSAgICAgIEJ1 aWxkX0ZsYWdzPSIkQnVpbGRfRmxhZ3MgL3EiCi0gICAgICBzaGlmdAotICAgIGVsaWYgWyAi JChlY2hvICQxIHwgdHIgJ2EteicgJ0EtWicpIiA9PSAiL0wiIF07IHRoZW4KKyAgICBpZiBb ICIkKGVjaG8gJDEgfCB0ciAnYS16JyAnQS1aJykiID09ICIvTCIgXTsgdGhlbgogICAgICAg QnVpbGRfRmxhZ3M9IiRCdWlsZF9GbGFncyAvbCIKICAgICAgIHNoaWZ0CisgICAgZWxpZiBb ICIkKGVjaG8gJDEgfCB0ciAnYS16JyAnQS1aJykiID09ICIvWSIgXTsgdGhlbgorICAgICAg QnVpbGRfRmxhZ3M9IiRCdWlsZF9GbGFncyAveSIKKyAgICAgIHNoaWZ0CisgICAgZWxpZiBb ICIkKGVjaG8gJDEgfCB0ciAnYS16JyAnQS1aJykiID09ICIvTSIgXTsgdGhlbgorICAgICAg QnVpbGRfRmxhZ3M9IiRCdWlsZF9GbGFncyAvbSIKKyAgICAgIHNoaWZ0CiAgICAgZWxpZiBb ICIkKGVjaG8gJDEgfCB0ciAnYS16JyAnQS1aJykiID09ICIvQyIgXTsgdGhlbgogICAgICAg QnVpbGRfRmxhZ3M9IiRCdWlsZF9GbGFncyAvYyIKICAgICAgIHNoaWZ0Ci0gICAgZWxpZiBb ICIkKGVjaG8gJDEgfCB0ciAnYS16JyAnQS1aJykiID09ICIvRUNQIiBdOyB0aGVuCi0gICAg ICBCdWlsZF9GbGFncz0iJEJ1aWxkX0ZsYWdzIC9lY3AiCi0gICAgICBzaGlmdAogICAgIGVs aWYgWyAiJChlY2hvICQxIHwgdHIgJ2EteicgJ0EtWicpIiA9PSAiL1g2NCIgXTsgdGhlbgot ICAgICAgQXJjaD1YNjQKICAgICAgIEJ1aWxkX0ZsYWdzPSIkQnVpbGRfRmxhZ3MgL3g2NCIK ICAgICAgIHNoaWZ0CiAgICAgZWxpZiBbICIkKGVjaG8gJDEgfCB0ciAnYS16JyAnQS1aJyki ID09ICIvSUEzMiIgXTsgdGhlbgotICAgICAgQXJjaD1JQTMyCiAgICAgICBCdWlsZF9GbGFn cz0iJEJ1aWxkX0ZsYWdzIC9JQTMyIgogICAgICAgc2hpZnQKLSAgICBlbGlmIFsgIiQxIiA9 PSAiL25HIiBdOyB0aGVuCi0gICAgICBTdGl0Y2hfRmxhZ3M9IiRTdGl0Y2hfRmxhZ3MgL25H IgotICAgICAgc2hpZnQKLSAgICBlbGlmIFsgIiQxIiA9PSAiL25NIiBdOyB0aGVuCi0gICAg ICBTdGl0Y2hfRmxhZ3M9IiRTdGl0Y2hfRmxhZ3MgL25NIgotICAgICAgc2hpZnQKLSAgICBl bGlmIFsgIiQxIiA9PSAiL25CIiBdOyB0aGVuCi0gICAgICBTdGl0Y2hfRmxhZ3M9IiRTdGl0 Y2hfRmxhZ3MgL25CIgotICAgICAgc2hpZnQKLSAgICBlbGlmIFsgIiQxIiA9PSAiL25WIiBd OyB0aGVuCi0gICAgICBTdGl0Y2hfRmxhZ3M9IiRTdGl0Y2hfRmxhZ3MgL25WIgotICAgICAg c2hpZnQKLSAgICBlbGlmIFsgIiQxIiA9PSAiL3lMIiBdOyB0aGVuCi0gICAgICBCdWlsZF9G bGFncz0iJEJ1aWxkX0ZsYWdzIC95TCIKLSAgICAgIHNoaWZ0CiAgICAgZWxzZQogICAgICAg YnJlYWsKICAgICBmaQpAQCAtOTUsMTEgKzgxLDYgQEAgZmkKICMjIEFzc2lnbiByZXF1aXJl ZCBhcmd1bWVudHMKIFBsYXRmb3JtX1R5cGU9JDEKIEJ1aWxkX1RhcmdldD0kMgotaWYgWyAi JDMiID09ICIiIF07IHRoZW4KLSAgSUZXSV9TdWZmaXg9Ci1lbHNlCi0gIElGV0lfU3VmZml4 PSIvUyAkMyIKLWZpCiAKICMjIEJ1aWxkIEJJT1MKIGVjaG8gIj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0i CmRpZmYgLS1naXQgYS9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9JbmNsdWRl L1BsYXRmb3JtRGVmaW5pdGlvbnMuaCBiL1BsYXRmb3JtL0ludGVsL1ZsdjJUYmx0RGV2aWNl UGtnL0luY2x1ZGUvUGxhdGZvcm1EZWZpbml0aW9ucy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBhNjRjZGEwNzk5Li4wMDAwMDAwMDAwCi0tLSBhL1BsYXRmb3JtL0ludGVs L1ZsdjJUYmx0RGV2aWNlUGtnL0luY2x1ZGUvUGxhdGZvcm1EZWZpbml0aW9ucy5oCisrKyAv ZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyorKwotCi1Db3B5cmlnaHQgKGMpIDE5OTkg IC0gMjAxNCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCgotICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudAotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoK LQotCi1Nb2R1bGUgTmFtZToKLQotICBQbGF0Zm9ybURlZmluaXRpb25zLmgKLQotQWJzdHJh Y3Q6Ci0KLSAgVGhpcyBoZWFkZXIgZmlsZSBwcm92aWRlcyBwbGF0Zm9ybSBzcGVjaWZpYyBk ZWZpbml0aW9ucyB1c2VkIGJ5IG90aGVyIG1vZHVsZXMKLSAgZm9yIHBsYXRmb3JtIHNwZWNp ZmljIGluaXRpYWxpemF0aW9uLgotCi0gIFRISVMgRklMRSBTSE9VTEQgT05MWSBDT05UQUlO ICNkZWZpbmVzIEJFQ0FVU0UgSVQgSVMgQ09OU1VNRUQgQlkgTk9OLUMgTU9EVUxFUwotICAo QVNMIGFuZCBWRlIpCi0KLSAgVGhpcyBmaWxlIHNob3VsZCBub3QgY29udGFpbiBhZGRpdGlv biBvciBvdGhlciBvcGVyYXRpb25zIHRoYXQgYW4gQVNMIGNvbXBpbGVyIG9yCi0gIFZGUiBj b21waWxlciBkb2VzIG5vdCB1bmRlcnN0YW5kLgotCi0tLSovCi0KLSNpZm5kZWYgX1BMQVRG T1JNX0RFRklOSVRJT05TX0hfCi0jZGVmaW5lIF9QTEFURk9STV9ERUZJTklUSU9OU19IXwot Ci0KLS8vCi0vLyBQbGF0Zm9ybSBCYXNlIEFkZHJlc3MgZGVmaW5pdGlvbnMKLS8vCi0jZGVm aW5lIFBDSUVYX0JBU0VfQUREUkVTUyAgICAgICAgICBFREtJSV9HTFVFX1BjaUV4cHJlc3NC YXNlQWRkcmVzcyAvLyBQY2kgRXhwcmVzcyBDb25maWd1cmF0aW9uIFNwYWNlIEJhc2UgQWRk cmVzcwotCi0jZGVmaW5lIFBDSUVYX0xFTkdUSCAgICAgICAgICAgICAgICBQTEFURk9STV9Q Q0lFWFBSRVNTX0xFTkdUSAotCi0jZGVmaW5lIFRIRVJNQUxfQkFTRV9BRERSRVNTICAgICAg ICAweEZFRDA4MDAwCi0KLSNpZm5kZWYgTUNIX0JBU0VfQUREUkVTUwotI2RlZmluZSBNQ0hf QkFTRV9BRERSRVNTICAgICAgICAgICAgMHhGRUQxMDAwMCAgLy8gTUNIICBSZWdpc3RlciBC YXNlIEFkZHJlc3MKLSNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9QbGF0Zm9ybS9JbnRl bC9WbHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ0NvbmZpZy5kc2MgYi9QbGF0Zm9ybS9J bnRlbC9WbHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ0NvbmZpZy5kc2MKaW5kZXggN2I0 OGQ3YjQ0ZS4uNDNkYjNlMjhhYiAxMDA2NDQKLS0tIGEvUGxhdGZvcm0vSW50ZWwvVmx2MlRi bHREZXZpY2VQa2cvUGxhdGZvcm1Qa2dDb25maWcuZHNjCisrKyBiL1BsYXRmb3JtL0ludGVs L1ZsdjJUYmx0RGV2aWNlUGtnL1BsYXRmb3JtUGtnQ29uZmlnLmRzYwpAQCAtNTQsOCArNTQs NiBAQAogREVGSU5FIFVTQl9TRVJJQUxfU1RBVFVTX0NPREVfRU5BQkxFID0gRkFMU0UKIERF RklORSBSQU1fU0VSSUFMX1NUQVRVU19DT0RFX0VOQUJMRSA9IEZBTFNFCiAKLURFRklORSBF TkJEVF9TM19TVVBQT1JUID0gVFJVRQotCiBERUZJTkUgTFpNQV9FTkFCTEUgPSBUUlVFCiBE RUZJTkUgUzRfRU5BQkxFID0gVFJVRQogCmRpZmYgLS1naXQgYS9QbGF0Zm9ybS9JbnRlbC9W bHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ0djY0lBMzIuZHNjIGIvUGxhdGZvcm0vSW50 ZWwvVmx2MlRibHREZXZpY2VQa2cvUGxhdGZvcm1Qa2dHY2NJQTMyLmRzYwppbmRleCBlYjdh ZTQ2NTA1Li4wZjk2NTFjZmJhIDEwMDY0NAotLS0gYS9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJs dERldmljZVBrZy9QbGF0Zm9ybVBrZ0djY0lBMzIuZHNjCisrKyBiL1BsYXRmb3JtL0ludGVs L1ZsdjJUYmx0RGV2aWNlUGtnL1BsYXRmb3JtUGtnR2NjSUEzMi5kc2MKQEAgLTI3LDIwICsy Nyw5IEBAIFtEZWZpbmVzXQogICAjCiAgICMgUGxhdGZvcm0gT24vT2ZmIGZlYXR1cmVzIGFy ZSBkZWZpbmVkIGhlcmUKICAgIwotICAjCi0gICMgUGxhdGZvcm0gU3VwcG9ydDo6IFNldCBv bmx5IG9uZSB0b2tlbiBleGNlcHQgQ3Jlc3R2aWV3IEhpbGxzCi0gICMKLSAgIyAgIDMuQmF5 bGV5QmF5Ci0gICMgICAgIEVOQkRUX1BGX0VOQUJMRSAgPSBUUlVFCi0gICMKLSAgIWluY2x1 ZGUgVmx2MlRibHREZXZpY2VQa2cvQXV0b1BsYXRmb3JtQ0ZHLnR4dAogICAhaW5jbHVkZSBW bHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ0NvbmZpZy5kc2MKIAotIWlmICQoWDY0X0NP TkZJRykgPT0gVFJVRQotICBERUZJTkUgICAgICBEWEVfQVJDSElURUNUVVJFICAgICAgICA9 IFg2NAotIWVsc2UKICAgREVGSU5FICAgICAgRFhFX0FSQ0hJVEVDVFVSRSAgICAgICAgPSBJ QTMyCi0hZW5kaWYKIAogICBGTEFTSF9ERUZJTklUSU9OICAgICAgICAgICAgICAgICAgICA9 IFZsdjJUYmx0RGV2aWNlUGtnL1BsYXRmb3JtUGtnR2NjLmZkZgogIWlmICQoTEZNQV9FTkFC TEUpID09IFRSVUUKQEAgLTc2MSw4ICs3NTAsNiBAQCBbQ29tcG9uZW50cy5JQTMyXQogCiAh aWYgJChSQ19CSU5BUllfUkVMRUFTRSkgPT0gVFJVRQogICBWbHYyVGJsdERldmljZVBrZy9Q bGF0Zm9ybVBlaS9QbGF0Zm9ybVBlaS5pbmYgewotICAgICZsdDtCdWlsZE9wdGlvbnMmZ3Q7 Ci0gICAgICAqXypfSUEzMl9DQ19GTEFHUyAgICAgID0gLURSQ19CSU5BUllfUkVMRUFTRQog ICAhaWYgJChUQVJHRVQpID09IERFQlVHCiAgICAgICAmbHQ7UGNkc0ZpeGVkQXRCdWlsZCZn dDsKICAgICAgICAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZERlYnVnUHJvcGVydHlN YXNrfDB4MkUKQEAgLTEyMzEsNTYgKzEyMTgsMTkgQEAgW0J1aWxkT3B0aW9uc10KICMKICMg RGVmaW5lIHRva2VuIGZvciBkaWZmZXJlbnQgUGxhdGZvcm0KICMKLSAgREVGSU5FIE1JTk5P VzJfRlNQX09QVElPTiA9Ci0KLSFpZiAkKEVOQkRUX1BGX0JVSUxEKSA9PSBUUlVFCi0gIERF RklORSBFTkJEVF9QRl9FTkFCTEUgPSAtREVOQkRUX1BGX0VOQUJMRT0xCi0hZWxzZQotICBE RUZJTkUgRU5CRFRfUEZfRU5BQkxFID0gLURFTkJEVF9QRl9FTkFCTEU9MAotIWVuZGlmCi0K LQogIWlmICQoQ0xLR0VOX0NPTkZJR19FWFRSQV9FTkFCTEUpID09IFRSVUUKICAgREVGSU5F IENMS0dFTl9DT05GSUdfRVhUUkFfQlVJTERfT1BUSU9OID0gLURDTEtHRU5fQ09ORklHX0VY VFJBPTEKICFlbHNlCiAgIERFRklORSBDTEtHRU5fQ09ORklHX0VYVFJBX0JVSUxEX09QVElP TiA9CiAhZW5kaWYKIAotCi0KICFpZiAkKFBDSUVTQ19FTkFCTEUpID09IFRSVUUKICAgREVG SU5FIFBDSUVTQ19TVVBQT1JUX0JVSUxEX09QVElPTiA9IC1EUENJRVNDX1NVUFBPUlQ9MQog IWVsc2UKICAgREVGSU5FIFBDSUVTQ19TVVBQT1JUX0JVSUxEX09QVElPTiA9CiAhZW5kaWYK LSFpZiAkKFNBVEFfRU5BQkxFKSA9PSBUUlVFCi0gIERFRklORSBTQVRBX1NVUFBPUlRfQlVJ TERfT1BUSU9OID0gLURTQVRBX1NVUFBPUlQ9MQotIWVsc2UKLSAgREVGSU5FIFNBVEFfU1VQ UE9SVF9CVUlMRF9PUFRJT04gPQotIWVuZGlmCi0haWYgJChFTkJEVF9TM19TVVBQT1JUKSA9 PSBUUlVFCi0gIERFRklORSBFTkJEVF9TM19TVVBQT1JUX09QVElPTlMgPSAtRE5PQ1NfUzNf U1VQUE9SVAotIWVsc2UKLSAgREVGSU5FIEVOQkRUX1MzX1NVUFBPUlRfT1BUSU9OUyA9Ci0h ZW5kaWYKIAotIWlmICQoWDY0X0NPTkZJRykgPT0gVFJVRQotICBERUZJTkUgWDY0X0JVSUxE X0VOQUJMRSA9IC1EWDY0X0JVSUxEX0VOQUJMRT0xCi0hZWxzZQotICBERUZJTkUgWDY0X0JV SUxEX0VOQUJMRSA9Ci0hZW5kaWYKLQotIWlmICQoVFBNX0VOQUJMRUQpID09IFRSVUUKLSAg REVGSU5FIERTQ19UUE1fQlVJTERfT1BUSU9OUyA9IC1EVFBNX0VOQUJMRUQKLSFlbHNlCi0g IERFRklORSBEU0NfVFBNX0JVSUxEX09QVElPTlMgPQotIWVuZGlmCi0KLQotICBERUZJTkUg RURLX0VES0lJX0RTQ19GRUFUVVJFX0JVSUxEX09QVElPTlMgPSAkKE1JTk5PVzJfRlNQX09Q VElPTikgJChNSU5OT1cyX0JVSUxEX09QVElPTikgJChFTkJEVF9QRl9FTkFCTEUpICQoRVhU RVJOQUxfVkdBX0JVSUxEX09QVElPTikgJChQQ0lFX0VOVU1fV0FfQlVJTERfT1BUSU9OKSAk KFgwX1dBX0VOQUJMRV9CVUlMRF9PUFRJT04pICQoQTBfV0FfRU5BQkxFX0JVSUxEX09QVElP TikgJChNSUNST0NPREVfRlJFRV9CVUlMRF9PUFRJT05TKSAkKFNJTUlDU19CVUlMRF9PUFRJ T05TKSAkKEhZQlJJRF9CVUlMRF9PUFRJT05TKSAkKENPTVBBQ1RfQlVJTERfT1BUSU9OUykg JChWUF9CVUlMRF9PUFRJT05TKSAkKFNZU0NUTF9JRF9CVUlMRF9PUFRJT04pICQoQ0xLR0VO X0NPTkZJR19FWFRSQV9CVUlMRF9PUFRJT04pICQoU1lTQ1RMX1gwX0NPTlZFUlRfQk9BUkRf T1BUSU9OKSAkKEVOQkRUX1MzX1NVUFBPUlRfT1BUSU9OUykgJChTQVRBX1NVUFBPUlRfQlVJ TERfT1BUSU9OKSAkKFBDSUVTQ19TVVBQT1JUX0JVSUxEX09QVElPTikgJChEU0NfRlRQTV9F UlJPUl9XUl9CVUlMRF9PUFRJT05TKSAkKERTQ19UUE1fQlVJTERfT1BUSU9OUykgJChEU0Nf QllUSV9TRUNVUkVfQk9PVF9CVUlMRF9PUFRJT05TKQotIWlmICQoUEVSRk9STUFOQ0VfRU5B QkxFKSA9PSBUUlVFCi0gIERFRklORSBQREJfQlVJTERfT1BUSU9OID0gL1ppCi0hZW5kaWYK KyAgREVGSU5FIEVES19FREtJSV9EU0NfRkVBVFVSRV9CVUlMRF9PUFRJT05TID0gJChDTEtH RU5fQ09ORklHX0VYVFJBX0JVSUxEX09QVElPTikgJChQQ0lFU0NfU1VQUE9SVF9CVUlMRF9P UFRJT04pCiAKICAgR0NDOipfKl8qX0NDX0ZMQUdTID0gLVduby1taXNzaW5nLWJyYWNlcwog IWlmICQoU09VUkNFX0RFQlVHX0VOQUJMRSkgPT0gVFJVRQpAQCAtMTI5MCw3ICsxMjQwLDYg QEAgW0J1aWxkT3B0aW9uc10KICAgREVGSU5FIFNPVVJDRV9MRVZFTF9ERUJVR19CVUlMRF9P UFRJT05TID0KICFlbHNlCiAgIERFRklORSBTT1VSQ0VfTEVWRUxfREVCVUdfQlVJTERfT1BU SU9OUyA9Ci0KICFlbmRpZgogCiAjCkBAIC0xMzEwLDggKzEyNTksNiBAQCBbQnVpbGRPcHRp b25zLmNvbW1vbi5FREtJSS5EWEVfU01NX0RSSVZFUiwgQnVpbGRPcHRpb25zLmNvbW1vbi5F REtJSS5TTU1fQ09SRV0KICAgR0NDOipfKl8qX0RMSU5LX0ZMQUdTID0gLXogY29tbW9uLXBh Z2Utc2l6ZT0weDEwMDAKIAogW0J1aWxkT3B0aW9ucy5Db21tb24uRURLSUldCi0gICpfKl9J QTMyX0FTTV9GTEFHUyAgICAgPSAkKFZQX0JVSUxEX09QVElPTlMpIC1EIEVES0lJX0dMVUVf UGNpRXhwcmVzc0Jhc2VBZGRyZXNzPSQoUExBVEZPUk1fUENJRVhQUkVTU19CQVNFKWggLURO T0NTX1MzX1NVUFBPUlQKLQogICAqXypfSUEzMl9DQ19GTEFHUyAgICAgID0gJChFREtfRURL SUlfRFNDX0ZFQVRVUkVfQlVJTERfT1BUSU9OUykKICAgKl8qX0lBMzJfVkZSUFBfRkxBR1Mg ICA9ICQoRURLX0VES0lJX0RTQ19GRUFUVVJFX0JVSUxEX09QVElPTlMpCiAgICpfKl9JQTMy X0FQUF9GTEFHUyAgICAgPSAkKEVES19FREtJSV9EU0NfRkVBVFVSRV9CVUlMRF9PUFRJT05T KQpkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvUGxhdGZv cm1Qa2dHY2NYNjQuZHNjIGIvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvUGxh dGZvcm1Qa2dHY2NYNjQuZHNjCmluZGV4IDY5ZjJiMjJhZmYuLjI1N2JiYTc0ODUgMTAwNjQ0 Ci0tLSBhL1BsYXRmb3JtL0ludGVsL1ZsdjJUYmx0RGV2aWNlUGtnL1BsYXRmb3JtUGtnR2Nj WDY0LmRzYworKysgYi9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9QbGF0Zm9y bVBrZ0djY1g2NC5kc2MKQEAgLTI3LDIyICsyNywxMSBAQCBbRGVmaW5lc10KICAgIwogICAj IFBsYXRmb3JtIE9uL09mZiBmZWF0dXJlcyBhcmUgZGVmaW5lZCBoZXJlCiAgICMKLSAgIwot ICAjIFBsYXRmb3JtIFN1cHBvcnQ6OiBTZXQgb25seSBvbmUgdG9rZW4gZXhjZXB0IENyZXN0 dmlldyBIaWxscwotICAjCi0gICMgICAzLkJheWxleUJheQotICAjICAgICBFTkJEVF9QRl9F TkFCTEUgID0gVFJVRQotICAjCi0gICFpbmNsdWRlIFZsdjJUYmx0RGV2aWNlUGtnL0F1dG9Q bGF0Zm9ybUNGRy50eHQKICAgIWluY2x1ZGUgVmx2MlRibHREZXZpY2VQa2cvUGxhdGZvcm1Q a2dDb25maWcuZHNjCiAKICAgREVGSU5FIFBMQVRGT1JNWDY0X0VOQUJMRSA9IFRSVUUKIAot IWlmICQoWDY0X0NPTkZJRykgPT0gVFJVRQogICBERUZJTkUgICAgICBEWEVfQVJDSElURUNU VVJFICAgICAgICA9IFg2NAotIWVsc2UKLSAgREVGSU5FICAgICAgRFhFX0FSQ0hJVEVDVFVS RSAgICAgICAgPSBJQTMyCi0hZW5kaWYKIAogICBGTEFTSF9ERUZJTklUSU9OICAgICAgICAg ICAgICAgICAgICA9IFZsdjJUYmx0RGV2aWNlUGtnL1BsYXRmb3JtUGtnR2NjLmZkZgogIWlm ICQoTEZNQV9FTkFCTEUpID09IFRSVUUKQEAgLTc2Myw4ICs3NTIsNiBAQCBbQ29tcG9uZW50 cy5JQTMyXQogCiAhaWYgJChSQ19CSU5BUllfUkVMRUFTRSkgPT0gVFJVRQogICBWbHYyVGJs dERldmljZVBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybVBlaS5pbmYgewotICAgICZsdDtCdWls ZE9wdGlvbnMmZ3Q7Ci0gICAgICAqXypfSUEzMl9DQ19GTEFHUyAgICAgID0gLURSQ19CSU5B UllfUkVMRUFTRQogICAhaWYgJChUQVJHRVQpID09IERFQlVHCiAgICAgICAmbHQ7UGNkc0Zp eGVkQXRCdWlsZCZndDsKICAgICAgICAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZERl YnVnUHJvcGVydHlNYXNrfDB4MkUKQEAgLTEyNDYsMTUgKzEyMzMsNiBAQCBbQnVpbGRPcHRp b25zXQogIwogIyBEZWZpbmUgdG9rZW4gZm9yIGRpZmZlcmVudCBQbGF0Zm9ybQogIwotICBE RUZJTkUgTUlOTk9XMl9GU1BfT1BUSU9OID0KLQotIWlmICQoRU5CRFRfUEZfQlVJTEQpID09 IFRSVUUKLSAgREVGSU5FIEVOQkRUX1BGX0VOQUJMRSA9IC1ERU5CRFRfUEZfRU5BQkxFPTEK LSFlbHNlCi0gIERFRklORSBFTkJEVF9QRl9FTkFCTEUgPSAtREVOQkRUX1BGX0VOQUJMRT0w Ci0hZW5kaWYKLQotCiAhaWYgJChDTEtHRU5fQ09ORklHX0VYVFJBX0VOQUJMRSkgPT0gVFJV RQogICBERUZJTkUgQ0xLR0VOX0NPTkZJR19FWFRSQV9CVUlMRF9PUFRJT04gPSAtRENMS0dF Tl9DT05GSUdfRVhUUkE9MQogIWVsc2UKQEAgLTEyNjgsMzQgKzEyNDYsOCBAQCBbQnVpbGRP cHRpb25zXQogIWVsc2UKICAgREVGSU5FIFBDSUVTQ19TVVBQT1JUX0JVSUxEX09QVElPTiA9 CiAhZW5kaWYKLSFpZiAkKFNBVEFfRU5BQkxFKSA9PSBUUlVFCi0gIERFRklORSBTQVRBX1NV UFBPUlRfQlVJTERfT1BUSU9OID0gLURTQVRBX1NVUFBPUlQ9MQotIWVsc2UKLSAgREVGSU5F IFNBVEFfU1VQUE9SVF9CVUlMRF9PUFRJT04gPQotIWVuZGlmCi0haWYgJChFTkJEVF9TM19T VVBQT1JUKSA9PSBUUlVFCi0gIERFRklORSBFTkJEVF9TM19TVVBQT1JUX09QVElPTlMgPSAt RE5PQ1NfUzNfU1VQUE9SVAotIWVsc2UKLSAgREVGSU5FIEVOQkRUX1MzX1NVUFBPUlRfT1BU SU9OUyA9Ci0hZW5kaWYKIAotIWlmICQoWDY0X0NPTkZJRykgPT0gVFJVRQotICBERUZJTkUg WDY0X0JVSUxEX0VOQUJMRSA9IC1EWDY0X0JVSUxEX0VOQUJMRT0xCi0hZWxzZQotICBERUZJ TkUgWDY0X0JVSUxEX0VOQUJMRSA9Ci0hZW5kaWYKLQotIWlmICQoVFBNX0VOQUJMRUQpID09 IFRSVUUKLSAgREVGSU5FIERTQ19UUE1fQlVJTERfT1BUSU9OUyA9IC1EVFBNX0VOQUJMRUQK LSFlbHNlCi0gIERFRklORSBEU0NfVFBNX0JVSUxEX09QVElPTlMgPQotIWVuZGlmCi0KLQot ICBERUZJTkUgRURLX0VES0lJX0RTQ19GRUFUVVJFX0JVSUxEX09QVElPTlMgPSAkKE1JTk5P VzJfRlNQX09QVElPTikgJChNSU5OT1cyX0JVSUxEX09QVElPTikgJChFTkJEVF9QRl9FTkFC TEUpICQoRVhURVJOQUxfVkdBX0JVSUxEX09QVElPTikgJChQQ0lFX0VOVU1fV0FfQlVJTERf T1BUSU9OKSAkKFgwX1dBX0VOQUJMRV9CVUlMRF9PUFRJT04pICQoQTBfV0FfRU5BQkxFX0JV SUxEX09QVElPTikgJChNSUNST0NPREVfRlJFRV9CVUlMRF9PUFRJT05TKSAkKFNJTUlDU19C VUlMRF9PUFRJT05TKSAkKEhZQlJJRF9CVUlMRF9PUFRJT05TKSAkKENPTVBBQ1RfQlVJTERf T1BUSU9OUykgJChWUF9CVUlMRF9PUFRJT05TKSAkKFNZU0NUTF9JRF9CVUlMRF9PUFRJT04p ICQoQ0xLR0VOX0NPTkZJR19FWFRSQV9CVUlMRF9PUFRJT04pICQoU1lTQ1RMX1gwX0NPTlZF UlRfQk9BUkRfT1BUSU9OKSAkKEVOQkRUX1MzX1NVUFBPUlRfT1BUSU9OUykgJChTQVRBX1NV UFBPUlRfQlVJTERfT1BUSU9OKSAkKFBDSUVTQ19TVVBQT1JUX0JVSUxEX09QVElPTikgJChE U0NfRlRQTV9FUlJPUl9XUl9CVUlMRF9PUFRJT05TKSAkKERTQ19UUE1fQlVJTERfT1BUSU9O UykgJChEU0NfQllUSV9TRUNVUkVfQk9PVF9CVUlMRF9PUFRJT05TKQotIWlmICQoUEVSRk9S TUFOQ0VfRU5BQkxFKSA9PSBUUlVFCi0gIERFRklORSBQREJfQlVJTERfT1BUSU9OID0gL1pp Ci0hZW5kaWYKKyAgREVGSU5FIEVES19FREtJSV9EU0NfRkVBVFVSRV9CVUlMRF9PUFRJT05T ID0gJChDTEtHRU5fQ09ORklHX0VYVFJBX0JVSUxEX09QVElPTikgJChQQ0lFU0NfU1VQUE9S VF9CVUlMRF9PUFRJT04pCiAKICAgR0NDOipfKl8qX0NDX0ZMQUdTID0gLVduby1taXNzaW5n LWJyYWNlcwogIWlmICQoU09VUkNFX0RFQlVHX0VOQUJMRSkgPT0gVFJVRQpAQCAtMTMwNSw3 ICsxMjU3LDYgQEAgW0J1aWxkT3B0aW9uc10KICAgREVGSU5FIFNPVVJDRV9MRVZFTF9ERUJV R19CVUlMRF9PUFRJT05TID0KICFlbHNlCiAgIERFRklORSBTT1VSQ0VfTEVWRUxfREVCVUdf QlVJTERfT1BUSU9OUyA9Ci0KICFlbmRpZgogCiAjCkBAIC0xMzI1LDggKzEyNzYsNiBAQCBb QnVpbGRPcHRpb25zLmNvbW1vbi5FREtJSS5EWEVfU01NX0RSSVZFUiwgQnVpbGRPcHRpb25z LmNvbW1vbi5FREtJSS5TTU1fQ09SRV0KICAgR0NDOipfKl8qX0RMSU5LX0ZMQUdTID0gLXog Y29tbW9uLXBhZ2Utc2l6ZT0weDEwMDAKIAogW0J1aWxkT3B0aW9ucy5Db21tb24uRURLSUld Ci0gICpfKl9JQTMyX0FTTV9GTEFHUyAgICAgPSAkKFZQX0JVSUxEX09QVElPTlMpIC1EIEVE S0lJX0dMVUVfUGNpRXhwcmVzc0Jhc2VBZGRyZXNzPSQoUExBVEZPUk1fUENJRVhQUkVTU19C QVNFKWggLUROT0NTX1MzX1NVUFBPUlQKLQogICAqXypfSUEzMl9DQ19GTEFHUyAgICAgID0g JChFREtfRURLSUlfRFNDX0ZFQVRVUkVfQlVJTERfT1BUSU9OUykKICAgKl8qX0lBMzJfVkZS UFBfRkxBR1MgICA9ICQoRURLX0VES0lJX0RTQ19GRUFUVVJFX0JVSUxEX09QVElPTlMpCiAg ICpfKl9JQTMyX0FQUF9GTEFHUyAgICAgPSAkKEVES19FREtJSV9EU0NfRkVBVFVSRV9CVUlM RF9PUFRJT05TKQpkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQ a2cvUGxhdGZvcm1Qa2dJQTMyLmRzYyBiL1BsYXRmb3JtL0ludGVsL1ZsdjJUYmx0RGV2aWNl UGtnL1BsYXRmb3JtUGtnSUEzMi5kc2MKaW5kZXggNzA5MmFiNmU2Yi4uMjNlMjk2ZDQzMiAx MDA2NDQKLS0tIGEvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvUGxhdGZvcm1Q a2dJQTMyLmRzYworKysgYi9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9QbGF0 Zm9ybVBrZ0lBMzIuZHNjCkBAIC0yNywyMCArMjcsOSBAQCBbRGVmaW5lc10KICAgIwogICAj IFBsYXRmb3JtIE9uL09mZiBmZWF0dXJlcyBhcmUgZGVmaW5lZCBoZXJlCiAgICMKLSAgIwot ICAjIFBsYXRmb3JtIFN1cHBvcnQ6OiBTZXQgb25seSBvbmUgdG9rZW4gZXhjZXB0IENyZXN0 dmlldyBIaWxscwotICAjCi0gICMgICAzLkJheWxleUJheQotICAjICAgICBFTkJEVF9QRl9F TkFCTEUgID0gVFJVRQotICAjCi0gICFpbmNsdWRlIFZsdjJUYmx0RGV2aWNlUGtnL0F1dG9Q bGF0Zm9ybUNGRy50eHQKICAgIWluY2x1ZGUgVmx2MlRibHREZXZpY2VQa2cvUGxhdGZvcm1Q a2dDb25maWcuZHNjCiAKLSFpZiAkKFg2NF9DT05GSUcpID09IFRSVUUKLSAgREVGSU5FICAg ICAgRFhFX0FSQ0hJVEVDVFVSRSAgICAgICAgPSBYNjQKLSFlbHNlCiAgIERFRklORSAgICAg IERYRV9BUkNISVRFQ1RVUkUgICAgICAgID0gSUEzMgotIWVuZGlmCiAKICAgRkxBU0hfREVG SU5JVElPTiAgICAgICAgICAgICAgICAgICAgPSBWbHYyVGJsdERldmljZVBrZy9QbGF0Zm9y bVBrZy5mZGYKICFpZiAkKExGTUFfRU5BQkxFKSA9PSBUUlVFCkBAIC03NjEsOCArNzUwLDYg QEAgW0NvbXBvbmVudHMuSUEzMl0KIAogIWlmICQoUkNfQklOQVJZX1JFTEVBU0UpID09IFRS VUUKICAgVmx2MlRibHREZXZpY2VQa2cvUGxhdGZvcm1QZWkvUGxhdGZvcm1QZWkuaW5mIHsK LSAgICAmbHQ7QnVpbGRPcHRpb25zJmd0OwotICAgICAgKl8qX0lBMzJfQ0NfRkxBR1MgICAg ICA9IC9EUkNfQklOQVJZX1JFTEVBU0UKICAgIWlmICQoVEFSR0VUKSA9PSBERUJVRwogICAg ICAgJmx0O1BjZHNGaXhlZEF0QnVpbGQmZ3Q7CiAgICAgICAgIGdFZmlNZGVQa2dUb2tlblNw YWNlR3VpZC5QY2REZWJ1Z1Byb3BlcnR5TWFza3wweDJFCkBAIC0xMjMxLDE1ICsxMjE4LDYg QEAgW0J1aWxkT3B0aW9uc10KICMKICMgRGVmaW5lIHRva2VuIGZvciBkaWZmZXJlbnQgUGxh dGZvcm0KICMKLSAgREVGSU5FIE1JTk5PVzJfRlNQX09QVElPTiA9Ci0KLSFpZiAkKEVOQkRU X1BGX0JVSUxEKSA9PSBUUlVFCi0gIERFRklORSBFTkJEVF9QRl9FTkFCTEUgPSAvREVOQkRU X1BGX0VOQUJMRT0xCi0hZWxzZQotICBERUZJTkUgRU5CRFRfUEZfRU5BQkxFID0gL0RFTkJE VF9QRl9FTkFCTEU9MAotIWVuZGlmCi0KLQogIWlmICQoQ0xLR0VOX0NPTkZJR19FWFRSQV9F TkFCTEUpID09IFRSVUUKICAgREVGSU5FIENMS0dFTl9DT05GSUdfRVhUUkFfQlVJTERfT1BU SU9OID0gL0RDTEtHRU5fQ09ORklHX0VYVFJBPTEKICFlbHNlCkBAIC0xMjUzLDM0ICsxMjMx LDggQEAgW0J1aWxkT3B0aW9uc10KICFlbHNlCiAgIERFRklORSBQQ0lFU0NfU1VQUE9SVF9C VUlMRF9PUFRJT04gPQogIWVuZGlmCi0haWYgJChTQVRBX0VOQUJMRSkgPT0gVFJVRQotICBE RUZJTkUgU0FUQV9TVVBQT1JUX0JVSUxEX09QVElPTiA9IC9EU0FUQV9TVVBQT1JUPTEKLSFl bHNlCi0gIERFRklORSBTQVRBX1NVUFBPUlRfQlVJTERfT1BUSU9OID0KLSFlbmRpZgotIWlm ICQoRU5CRFRfUzNfU1VQUE9SVCkgPT0gVFJVRQotICBERUZJTkUgRU5CRFRfUzNfU1VQUE9S VF9PUFRJT05TID0gL0ROT0NTX1MzX1NVUFBPUlQKLSFlbHNlCi0gIERFRklORSBFTkJEVF9T M19TVVBQT1JUX09QVElPTlMgPQotIWVuZGlmCiAKLSFpZiAkKFg2NF9DT05GSUcpID09IFRS VUUKLSAgREVGSU5FIFg2NF9CVUlMRF9FTkFCTEUgPSAvRFg2NF9CVUlMRF9FTkFCTEU9MQot IWVsc2UKLSAgREVGSU5FIFg2NF9CVUlMRF9FTkFCTEUgPQotIWVuZGlmCi0KLSFpZiAkKFRQ TV9FTkFCTEVEKSA9PSBUUlVFCi0gIERFRklORSBEU0NfVFBNX0JVSUxEX09QVElPTlMgPSAv RFRQTV9FTkFCTEVECi0hZWxzZQotICBERUZJTkUgRFNDX1RQTV9CVUlMRF9PUFRJT05TID0K LSFlbmRpZgotCi0KLSAgREVGSU5FIEVES19FREtJSV9EU0NfRkVBVFVSRV9CVUlMRF9PUFRJ T05TID0gJChNSU5OT1cyX0ZTUF9PUFRJT04pICQoTUlOTk9XMl9CVUlMRF9PUFRJT04pICQo RU5CRFRfUEZfRU5BQkxFKSAkKEVYVEVSTkFMX1ZHQV9CVUlMRF9PUFRJT04pICQoUENJRV9F TlVNX1dBX0JVSUxEX09QVElPTikgJChYMF9XQV9FTkFCTEVfQlVJTERfT1BUSU9OKSAkKEEw X1dBX0VOQUJMRV9CVUlMRF9PUFRJT04pICQoTUlDUk9DT0RFX0ZSRUVfQlVJTERfT1BUSU9O UykgJChTSU1JQ1NfQlVJTERfT1BUSU9OUykgJChIWUJSSURfQlVJTERfT1BUSU9OUykgJChD T01QQUNUX0JVSUxEX09QVElPTlMpICQoVlBfQlVJTERfT1BUSU9OUykgJChTWVNDVExfSURf QlVJTERfT1BUSU9OKSAkKENMS0dFTl9DT05GSUdfRVhUUkFfQlVJTERfT1BUSU9OKSAkKFNZ U0NUTF9YMF9DT05WRVJUX0JPQVJEX09QVElPTikgJChFTkJEVF9TM19TVVBQT1JUX09QVElP TlMpICQoU0FUQV9TVVBQT1JUX0JVSUxEX09QVElPTikgJChQQ0lFU0NfU1VQUE9SVF9CVUlM RF9PUFRJT04pICQoRFNDX0ZUUE1fRVJST1JfV1JfQlVJTERfT1BUSU9OUykgJChEU0NfVFBN X0JVSUxEX09QVElPTlMpICQoRFNDX0JZVElfU0VDVVJFX0JPT1RfQlVJTERfT1BUSU9OUykK LSFpZiAkKFBFUkZPUk1BTkNFX0VOQUJMRSkgPT0gVFJVRQotICBERUZJTkUgUERCX0JVSUxE X09QVElPTiA9IC9aaQotIWVuZGlmCisgIERFRklORSBFREtfRURLSUlfRFNDX0ZFQVRVUkVf QlVJTERfT1BUSU9OUyA9ICQoQ0xLR0VOX0NPTkZJR19FWFRSQV9CVUlMRF9PUFRJT04pICQo UENJRVNDX1NVUFBPUlRfQlVJTERfT1BUSU9OKQogCiAhaWYgJChTT1VSQ0VfREVCVUdfRU5B QkxFKSA9PSBUUlVFCiAgIE1TRlQ6Kl8qX1g2NF9HRU5GV19GTEFHUyAgPSAtLWtlZXBleGNl cHRpb250YWJsZQpAQCAtMTI5MSw3ICsxMjQzLDYgQEAgW0J1aWxkT3B0aW9uc10KICFlbmRp ZgogIWVsc2UKICAgREVGSU5FIFNPVVJDRV9MRVZFTF9ERUJVR19CVUlMRF9PUFRJT05TID0K LQogIWVuZGlmCiAKICMKQEAgLTEzMTEsOCArMTI2Miw2IEBAIFtCdWlsZE9wdGlvbnMuY29t bW9uLkVES0lJLkRYRV9TTU1fRFJJVkVSLCBCdWlsZE9wdGlvbnMuY29tbW9uLkVES0lJLlNN TV9DT1JFXQogICBHQ0M6Kl8qXypfRExJTktfRkxBR1MgPSAteiBjb21tb24tcGFnZS1zaXpl PTB4MTAwMAogCiBbQnVpbGRPcHRpb25zLkNvbW1vbi5FREtJSV0KLSAgKl8qX0lBMzJfQVNN X0ZMQUdTICAgICA9ICQoVlBfQlVJTERfT1BUSU9OUykgL0QgRURLSUlfR0xVRV9QY2lFeHBy ZXNzQmFzZUFkZHJlc3M9JChQTEFURk9STV9QQ0lFWFBSRVNTX0JBU0UpaCAvRE5PQ1NfUzNf U1VQUE9SVAotCiAgICpfKl9JQTMyX0NDX0ZMQUdTICAgICAgPSAkKEVES19FREtJSV9EU0Nf RkVBVFVSRV9CVUlMRF9PUFRJT05TKQogICAqXypfSUEzMl9WRlJQUF9GTEFHUyAgID0gJChF REtfRURLSUlfRFNDX0ZFQVRVUkVfQlVJTERfT1BUSU9OUykKICAgKl8qX0lBMzJfQVBQX0ZM QUdTICAgICA9ICQoRURLX0VES0lJX0RTQ19GRUFUVVJFX0JVSUxEX09QVElPTlMpCmRpZmYg LS1naXQgYS9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ1g2 NC5kc2MgYi9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ1g2 NC5kc2MKaW5kZXggMjM4NTYxMTkxZi4uZTBmZDc2N2RlYSAxMDA2NDQKLS0tIGEvUGxhdGZv cm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvUGxhdGZvcm1Qa2dYNjQuZHNjCisrKyBiL1Bs YXRmb3JtL0ludGVsL1ZsdjJUYmx0RGV2aWNlUGtnL1BsYXRmb3JtUGtnWDY0LmRzYwpAQCAt MjcsMjIgKzI3LDExIEBAIFtEZWZpbmVzXQogICAjCiAgICMgUGxhdGZvcm0gT24vT2ZmIGZl YXR1cmVzIGFyZSBkZWZpbmVkIGhlcmUKICAgIwotICAjCi0gICMgUGxhdGZvcm0gU3VwcG9y dDo6IFNldCBvbmx5IG9uZSB0b2tlbiBleGNlcHQgQ3Jlc3R2aWV3IEhpbGxzCi0gICMKLSAg IyAgIDMuQmF5bGV5QmF5Ci0gICMgICAgIEVOQkRUX1BGX0VOQUJMRSAgPSBUUlVFCi0gICMK LSAgIWluY2x1ZGUgVmx2MlRibHREZXZpY2VQa2cvQXV0b1BsYXRmb3JtQ0ZHLnR4dAogICAh aW5jbHVkZSBWbHYyVGJsdERldmljZVBrZy9QbGF0Zm9ybVBrZ0NvbmZpZy5kc2MKIAogICBE RUZJTkUgUExBVEZPUk1YNjRfRU5BQkxFID0gVFJVRQogCi0haWYgJChYNjRfQ09ORklHKSA9 PSBUUlVFCiAgIERFRklORSAgICAgIERYRV9BUkNISVRFQ1RVUkUgICAgICAgID0gWDY0Ci0h ZWxzZQotICBERUZJTkUgICAgICBEWEVfQVJDSElURUNUVVJFICAgICAgICA9IElBMzIKLSFl bmRpZgogCiAgIEZMQVNIX0RFRklOSVRJT04gICAgICAgICAgICAgICAgICAgID0gVmx2MlRi bHREZXZpY2VQa2cvUGxhdGZvcm1Qa2cuZmRmCiAhaWYgJChMRk1BX0VOQUJMRSkgPT0gVFJV RQpAQCAtNzYzLDggKzc1Miw2IEBAIFtDb21wb25lbnRzLklBMzJdCiAKICFpZiAkKFJDX0JJ TkFSWV9SRUxFQVNFKSA9PSBUUlVFCiAgIFZsdjJUYmx0RGV2aWNlUGtnL1BsYXRmb3JtUGVp L1BsYXRmb3JtUGVpLmluZiB7Ci0gICAgJmx0O0J1aWxkT3B0aW9ucyZndDsKLSAgICAgICpf Kl9JQTMyX0NDX0ZMQUdTICAgICAgPSAvRFJDX0JJTkFSWV9SRUxFQVNFCiAgICFpZiAkKFRB UkdFVCkgPT0gREVCVUcKICAgICAgICZsdDtQY2RzRml4ZWRBdEJ1aWxkJmd0OwogICAgICAg ICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRGVidWdQcm9wZXJ0eU1hc2t8MHgyRQpA QCAtMTI0Niw1NiArMTIzMywxOSBAQCBbQnVpbGRPcHRpb25zXQogIwogIyBEZWZpbmUgdG9r ZW4gZm9yIGRpZmZlcmVudCBQbGF0Zm9ybQogIwotICBERUZJTkUgTUlOTk9XMl9GU1BfT1BU SU9OID0KLQotIWlmICQoRU5CRFRfUEZfQlVJTEQpID09IFRSVUUKLSAgREVGSU5FIEVOQkRU X1BGX0VOQUJMRSA9IC9ERU5CRFRfUEZfRU5BQkxFPTEKLSFlbHNlCi0gIERFRklORSBFTkJE VF9QRl9FTkFCTEUgPSAvREVOQkRUX1BGX0VOQUJMRT0wCi0hZW5kaWYKLQotCiAhaWYgJChD TEtHRU5fQ09ORklHX0VYVFJBX0VOQUJMRSkgPT0gVFJVRQogICBERUZJTkUgQ0xLR0VOX0NP TkZJR19FWFRSQV9CVUlMRF9PUFRJT04gPSAvRENMS0dFTl9DT05GSUdfRVhUUkE9MQogIWVs c2UKICAgREVGSU5FIENMS0dFTl9DT05GSUdfRVhUUkFfQlVJTERfT1BUSU9OID0KICFlbmRp ZgogCi0KLQogIWlmICQoUENJRVNDX0VOQUJMRSkgPT0gVFJVRQogICBERUZJTkUgUENJRVND X1NVUFBPUlRfQlVJTERfT1BUSU9OID0gL0RQQ0lFU0NfU1VQUE9SVD0xCiAhZWxzZQogICBE RUZJTkUgUENJRVNDX1NVUFBPUlRfQlVJTERfT1BUSU9OID0KICFlbmRpZgotIWlmICQoU0FU QV9FTkFCTEUpID09IFRSVUUKLSAgREVGSU5FIFNBVEFfU1VQUE9SVF9CVUlMRF9PUFRJT04g PSAvRFNBVEFfU1VQUE9SVD0xCi0hZWxzZQotICBERUZJTkUgU0FUQV9TVVBQT1JUX0JVSUxE X09QVElPTiA9Ci0hZW5kaWYKLSFpZiAkKEVOQkRUX1MzX1NVUFBPUlQpID09IFRSVUUKLSAg REVGSU5FIEVOQkRUX1MzX1NVUFBPUlRfT1BUSU9OUyA9IC9ETk9DU19TM19TVVBQT1JUCi0h ZWxzZQotICBERUZJTkUgRU5CRFRfUzNfU1VQUE9SVF9PUFRJT05TID0KLSFlbmRpZgogCi0h aWYgJChYNjRfQ09ORklHKSA9PSBUUlVFCi0gIERFRklORSBYNjRfQlVJTERfRU5BQkxFID0g L0RYNjRfQlVJTERfRU5BQkxFPTEKLSFlbHNlCi0gIERFRklORSBYNjRfQlVJTERfRU5BQkxF ID0KLSFlbmRpZgotCi0haWYgJChUUE1fRU5BQkxFRCkgPT0gVFJVRQotICBERUZJTkUgRFND X1RQTV9CVUlMRF9PUFRJT05TID0gL0RUUE1fRU5BQkxFRAotIWVsc2UKLSAgREVGSU5FIERT Q19UUE1fQlVJTERfT1BUSU9OUyA9Ci0hZW5kaWYKLQotCi0gIERFRklORSBFREtfRURLSUlf RFNDX0ZFQVRVUkVfQlVJTERfT1BUSU9OUyA9ICQoTUlOTk9XMl9GU1BfT1BUSU9OKSAkKE1J Tk5PVzJfQlVJTERfT1BUSU9OKSAkKEVOQkRUX1BGX0VOQUJMRSkgJChFWFRFUk5BTF9WR0Ff QlVJTERfT1BUSU9OKSAkKFBDSUVfRU5VTV9XQV9CVUlMRF9PUFRJT04pICQoWDBfV0FfRU5B QkxFX0JVSUxEX09QVElPTikgJChBMF9XQV9FTkFCTEVfQlVJTERfT1BUSU9OKSAkKE1JQ1JP Q09ERV9GUkVFX0JVSUxEX09QVElPTlMpICQoU0lNSUNTX0JVSUxEX09QVElPTlMpICQoSFlC UklEX0JVSUxEX09QVElPTlMpICQoQ09NUEFDVF9CVUlMRF9PUFRJT05TKSAkKFZQX0JVSUxE X09QVElPTlMpICQoU1lTQ1RMX0lEX0JVSUxEX09QVElPTikgJChDTEtHRU5fQ09ORklHX0VY VFJBX0JVSUxEX09QVElPTikgJChTWVNDVExfWDBfQ09OVkVSVF9CT0FSRF9PUFRJT04pICQo RU5CRFRfUzNfU1VQUE9SVF9PUFRJT05TKSAkKFNBVEFfU1VQUE9SVF9CVUlMRF9PUFRJT04p ICQoUENJRVNDX1NVUFBPUlRfQlVJTERfT1BUSU9OKSAkKERTQ19GVFBNX0VSUk9SX1dSX0JV SUxEX09QVElPTlMpICQoRFNDX1RQTV9CVUlMRF9PUFRJT05TKSAkKERTQ19CWVRJX1NFQ1VS RV9CT09UX0JVSUxEX09QVElPTlMpCi0haWYgJChQRVJGT1JNQU5DRV9FTkFCTEUpID09IFRS VUUKLSAgREVGSU5FIFBEQl9CVUlMRF9PUFRJT04gPSAvWmkKLSFlbmRpZgorICBERUZJTkUg RURLX0VES0lJX0RTQ19GRUFUVVJFX0JVSUxEX09QVElPTlMgPSAkKENMS0dFTl9DT05GSUdf RVhUUkFfQlVJTERfT1BUSU9OKSAkKFBDSUVTQ19TVVBQT1JUX0JVSUxEX09QVElPTikKIAog IWlmICQoU09VUkNFX0RFQlVHX0VOQUJMRSkgPT0gVFJVRQogICBNU0ZUOipfKl9YNjRfR0VO RldfRkxBR1MgID0gLS1rZWVwZXhjZXB0aW9udGFibGUKQEAgLTEzMDYsNyArMTI1Niw2IEBA IFtCdWlsZE9wdGlvbnNdCiAhZW5kaWYKICFlbHNlCiAgIERFRklORSBTT1VSQ0VfTEVWRUxf REVCVUdfQlVJTERfT1BUSU9OUyA9Ci0KICFlbmRpZgogCiAjCkBAIC0xMzI2LDggKzEyNzUs NiBAQCBbQnVpbGRPcHRpb25zLmNvbW1vbi5FREtJSS5EWEVfU01NX0RSSVZFUiwgQnVpbGRP cHRpb25zLmNvbW1vbi5FREtJSS5TTU1fQ09SRV0KICAgR0NDOipfKl8qX0RMSU5LX0ZMQUdT ID0gLXogY29tbW9uLXBhZ2Utc2l6ZT0weDEwMDAKIAogW0J1aWxkT3B0aW9ucy5Db21tb24u RURLSUldCi0gICpfKl9JQTMyX0FTTV9GTEFHUyAgICAgPSAkKFZQX0JVSUxEX09QVElPTlMp IC9EIEVES0lJX0dMVUVfUGNpRXhwcmVzc0Jhc2VBZGRyZXNzPSQoUExBVEZPUk1fUENJRVhQ UkVTU19CQVNFKWggL0ROT0NTX1MzX1NVUFBPUlQKLQogICAqXypfSUEzMl9DQ19GTEFHUyAg ICAgID0gJChFREtfRURLSUlfRFNDX0ZFQVRVUkVfQlVJTERfT1BUSU9OUykKICAgKl8qX0lB MzJfVkZSUFBfRkxBR1MgICA9ICQoRURLX0VES0lJX0RTQ19GRUFUVVJFX0JVSUxEX09QVElP TlMpCiAgICpfKl9JQTMyX0FQUF9GTEFHUyAgICAgPSAkKEVES19FREtJSV9EU0NfRkVBVFVS RV9CVUlMRF9PUFRJT05TKQpkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHRE ZXZpY2VQa2cvYmxkX3Zsdi5iYXQgYi9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBr Zy9ibGRfdmx2LmJhdAppbmRleCBmZmQ2NzIyNTgyLi5jMzliOGNjZDYyIDEwMDY0NAotLS0g YS9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9ibGRfdmx2LmJhdAorKysgYi9Q bGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9ibGRfdmx2LmJhdApAQCAtMTEsNyAr MTEsNiBAQCBlY2hvLgogZWNobyAlZGF0ZSUgICV0aW1lJQogZWNoby4KIAotCiA6OioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKIDo6IEluaXRpYWwgU2V0dXAKIDo6KioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAt MjAsOSArMTksMTQgQEAgc2V0IC9hIGJ1aWxkX3RocmVhZHM9MQogc2V0ICJCdWlsZF9GbGFn cz0gIgogc2V0IGV4aXRDb2RlPTAKIHNldCBBcmNoPVg2NAotc2V0IFNvdXJjZT0wCitzZXQg R2VuTG9nPUZBTFNFCitzZXQgR2VuUmVwb3J0PUZBTFNFCitzZXQgQ2xlYW49RkFMU0UKIHNl dCBQTEFURk9STV9OQU1FPVZsdjJUYmx0RGV2aWNlUGtnCiAKKzo6KioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorOjogRGV0ZWN0IGZ1bGwgcGF0aCB0byB0aGUgZWRrMiByZXBvCis6OioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKIHNldCBDT1JFX1BBVEg9JVdPUktTUEFDRSUKIGlmIG5vdCBleGlzdCAlQ09SRV9Q QVRIJVxlZGtzZXR1cC5iYXQgKAogICBpZiBkZWZpbmVkIFBBQ0tBR0VTX1BBVEggKApAQCAt NDEsNiArNDUsOSBAQCBpZiBub3QgZXhpc3QgJUNPUkVfUEFUSCVcZWRrc2V0dXAuYmF0ICgK ICkKIDpDb3JlUGF0aEZvdW5kCiAKKzo6KioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOjogRGV0ZWN0IGZ1 bGwgcGF0aCB0byB0aGUgVmx2MlRibHREZXZpY2VQa2cKKzo6KioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgog c2V0IFBMQVRGT1JNX1BBQ0tBR0U9JVdPUktTUEFDRSVcJVBMQVRGT1JNX05BTUUlCiBpZiBu b3QgZXhpc3QgJVBMQVRGT1JNX1BBQ0tBR0UlICgKICAgaWYgZGVmaW5lZCBQQUNLQUdFU19Q QVRIICgKQEAgLTYxLDI4ICs2OCwxMyBAQCBpZiBub3QgZXhpc3QgJVBMQVRGT1JNX1BBQ0tB R0UlICgKIAogY2QgJUNPUkVfUEFUSCUKIAotOjogQ2xlYW4gdXAgcHJldmlvdXMgYnVpbGQg ZmlsZXMuCi1pZiBleGlzdCAlV09SS1NQQUNFJVxlZGsyLmxvZyBkZWwgJVdPUktTUEFDRSVc ZWRrMi5sb2cKLWlmIGV4aXN0ICVXT1JLU1BBQ0UlXHVuaXRvb2wubG9nIGRlbCAlV09SS1NQ QUNFJVx1bml0b29sLmxvZwotaWYgZXhpc3QgJVdPUktTUEFDRSVcQ29uZlx0YXJnZXQudHh0 IGRlbCAlV09SS1NQQUNFJVxDb25mXHRhcmdldC50eHQKLWlmIGV4aXN0ICVXT1JLU1BBQ0Ul XENvbmZcdG9vbHNfZGVmLnR4dCBkZWwgJVdPUktTUEFDRSVcQ29uZlx0b29sc19kZWYudHh0 Ci1pZiBleGlzdCAlV09SS1NQQUNFJVxDb25mXGJ1aWxkX3J1bGUudHh0IGRlbCAlV09SS1NQ QUNFJVxDb25mXGJ1aWxkX3J1bGUudHh0Ci1pZiBleGlzdCAlV09SS1NQQUNFJVxDb25mXC5j YWNoZSBybWRpciAvcS9zICVXT1JLU1BBQ0UlXENvbmZcLmNhY2hlCis6OioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKzo6IFJ1biBlZGtzZXR1cC5iYXQgYW5kIG1ha2Ugc3VyZSB0b29scyBhcmUgdXAg dG8gZGF0ZQorOjoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLTo6IFNldHVwIEVESyBlbnZpcm9ubWVu dC4gRWRrc2V0dXAgcHV0cyBuZXcgY29waWVzIG9mIHRhcmdldC50eHQsIHRvb2xzX2RlZi50 eHQsIGJ1aWxkX3J1bGUudHh0IGluIFdvcmtTcGFjZVxDb25mCi06OiBBbHNvIHJ1biBlZGtz ZXR1cCBhcyBzb29uIGFzIHBvc3NpYmxlIHRvIGF2b2lkIGl0IGZyb20gY2hhbmdpbmcgZW52 aXJvbm1lbnQgdmFyaWFibGVzIHdlJ3JlIG92ZXJyaWRpbmcKIGNhbGwgJUNPUkVfUEFUSCVc ZWRrc2V0dXAuYmF0IFJlYnVpbGQKIEBlY2hvIG9mZgogCi06OiBEZWZpbmUgcGxhdGZvcm0g c3BlY2lmaWMgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotc2V0IGNvbmZpZ19maWxlPSVQTEFU Rk9STV9QQUNLQUdFJVxQbGF0Zm9ybVBrZ0NvbmZpZy5kc2MKLXNldCBhdXRvX2NvbmZpZ19p bmM9JVBMQVRGT1JNX1BBQ0tBR0UlXEF1dG9QbGF0Zm9ybUNGRy50eHQKLQotCi0KLTo6Y3Jl YXRlIG5ldyBBdXRvUGxhdGZvcm1DRkcudHh0IGZpbGUKLWNvcHkgL3kgbnVsICVhdXRvX2Nv bmZpZ19pbmMlICZndDtudWwKLQogOjoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA6OiBQYXJzZSBjb21t YW5kIGxpbmUgYXJndW1lbnRzCiA6OioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTkyLDEyICs4NCwx MiBAQCBjb3B5IC95IG51bCAlYXV0b19jb25maWdfaW5jJSAmZ3Q7bnVsCiBpZiAvaSAiJX4x Ij09Ii8/IiBnb3RvIFVzYWdlCiAKIGlmIC9pICIlfjEiPT0iL2wiICgKLSAgICBzZXQgQnVp bGRfRmxhZ3M9JUJ1aWxkX0ZsYWdzJSAtaiBFREsyLmxvZworICAgIHNldCBHZW5Mb2c9VFJV RQogICAgIHNoaWZ0CiAgICAgZ290byBPcHRMb29wCiApCiBpZiAvaSAiJX4xIj09Ii95IiAo Ci0gICAgc2V0IEJ1aWxkX0ZsYWdzPSVCdWlsZF9GbGFncyUgLXkgJVBMQVRGT1JNX1BBQ0tB R0UlXEVESzJfJVBMQVRGT1JNX1BBQ0tBR0UlLnJlcG9ydAorICAgIHNldCBHZW5SZXBvcnQ9 VFJVRQogICAgIHNoaWZ0CiAgICAgZ290byBPcHRMb29wCiApCkBAIC0xMDksMTYgKzEwMSw3 IEBAIGlmIC9pICIlfjEiPT0iL20iICgKICAgICBnb3RvIE9wdExvb3AKICkKIGlmIC9pICIl fjEiID09ICIvYyIgKAotICAgIGVjaG8gUmVtb3ZpbmcgcHJldmlvdXMgYnVpbGQgZmlsZXMg Li4uCi0gICAgaWYgZXhpc3QgYnVpbGQgKAotICAgICAgICBkZWwgL2Yvcy9xIGJ1aWxkICZn dDsgbnVsCi0gICAgICAgIHJtZGlyIC9zL3EgYnVpbGQKLSAgICApCi0gICAgaWYgZXhpc3Qg JVdPUktTUEFDRSVcQ29uZlwuY2FjaGUgKAotICAgICAgICBkZWwgL2Yvcy9xICVXT1JLU1BB Q0UlXENvbmZcLmNhY2hlICZndDsgbnVsCi0gICAgICAgIHJtZGlyIC9zL3EgJVdPUktTUEFD RSVcQ29uZlwuY2FjaGUKLSAgICApCi0gICAgZWNoby4KKyAgICBzZXQgQ2xlYW49VFJVRQog ICAgIHNoaWZ0CiAgICAgZ290byBPcHRMb29wCiApCkBAIC0xMzcsMjMgKzEyMCw2IEBAIGlm IC9pICIlfjEiPT0iL0lBMzIiICgKIDo6IFJlcXVpcmVkIGFyZ3VtZW50KHMpCiBpZiAiJX4x Ij09IiIgZ290byBVc2FnZQogCi1pZiAiJUFyY2glIj09IklBMzIiICgKLSAgICBlY2hvIERF RklORSBYNjRfQ09ORklHID0gRkFMU0UgICZndDsmZ3Q7ICVhdXRvX2NvbmZpZ19pbmMlCi0p IGVsc2UgaWYgIiVBcmNoJSI9PSJYNjQiICgKLSAgICBlY2hvIERFRklORSBYNjRfQ09ORklH ID0gVFJVRSAgJmd0OyZndDsgJWF1dG9fY29uZmlnX2luYyUKLSkKLQotOjogLS0gQnVpbGQg ZmxhZ3Mgc2V0dGluZ3MgZm9yIGVhY2ggUGxhdGZvcm0gLS0KLWVjaG8gU2V0dGluZyAgJTEg IHBsYXRmb3JtIGNvbmZpZ3VyYXRpb24uLi4KLWlmIC9pICIlfjEiID09ICJNTlcyIiAoCi0g ICAgZWNobyBERUZJTkUgRU5CRFRfUEZfQlVJTEQgPSBUUlVFICAgJmd0OyZndDsgJWF1dG9f Y29uZmlnX2luYyUKLSAgICAKLSkgZWxzZSAoCi0gICAgZWNobyBFcnJvciAtIFVuc3VwcG9y dGVkIFBsYXRmb3JtVHlwZTogJTEKLSAgICBnb3RvIFVzYWdlCi0pCi1zZXQgUGxhdGZvcm1f VHlwZT0lfjEKLQogaWYgL2kgIiV+MiIgPT0gIlJFTEVBU0UiICgKICAgICBzZXQgdGFyZ2V0 PVJFTEVBU0UKICkgZWxzZSAoCkBAIC0xNjEsOCArMTI3LDkgQEAgaWYgL2kgIiV+MiIgPT0g IlJFTEVBU0UiICgKICkKIAogOjoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi06OiBBZGRpdGlvbmFsIEVE SyBCdWlsZCBTZXR1cC9Db25maWd1cmF0aW9uCis6OiBEZXRlY3QgVE9PTF9DSEFJTl9UQUcK IDo6KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorCiBlY2hvLgogZWNobyBTZXR0aW5nIHRoZSBCdWlsZCBl bnZpcm9ubWVudCBmb3IgVlMyMDE1L1ZTMjAxMy9WUzIwMTIvVlMyMDEwL1ZTMjAwOC4uLgog aWYgZGVmaW5lZCBWUzE0MENPTU5UT09MUyAoCkBAIC0yMDYsNiArMTczLDEwIEBAIGlmIGRl ZmluZWQgVlMxNDBDT01OVE9PTFMgKAogICBnb3RvIDpCbGRGYWlsCiApCiAKKzo6KioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorOjogR2VuZXJhdGUgQlVJTERfUEFUSCBhbmQgbWFrZSBzdXJlIHRoZSBk aXJlY3RvcnkgZXhpc3RzCis6OioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKwogZWNobyBFbnN1cmluZyBj b3JyZWN0IGJ1aWxkIGRpcmVjdG9yeSBpcyBwcmVzZW50CiBpZiBub3QgZXhpc3QgJVdPUktT UEFDRSVcQnVpbGQgbWtkaXIgJVdPUktTUEFDRSVcQnVpbGQKIGlmICIlQXJjaCUiPT0iSUEz MiIgKApAQCAtMjE3LDI2ICsxODgsNDEgQEAgaWYgIiVBcmNoJSI9PSJJQTMyIiAoCiApCiBp ZiBub3QgZXhpc3QgJUJVSUxEX1BBVEglIG1rZGlyICVCVUlMRF9QQVRIJQogCi1lY2hvIE1v ZGlmaW5nIENvbmYgZmlsZXMgZm9yIHRoaXMgYnVpbGQuLi4KLTo6IFJlbW92ZSBsaW5lcyB3 aXRoIHRoZXNlIHRhZ3MgZnJvbSB0YXJnZXQudHh0Ci1maW5kc3RyIC9WICJUQVJHRVQgIFRB UkdFVF9BUkNIICBUT09MX0NIQUlOX1RBRyAgQlVJTERfUlVMRV9DT05GICBBQ1RJVkVfUExB VEZPUk0gIE1BWF9DT05DVVJSRU5UX1RIUkVBRF9OVU1CRVIiICVXT1JLU1BBQ0UlXENvbmZc dGFyZ2V0LnR4dCAmZ3Q7ICVXT1JLU1BBQ0UlXENvbmZcdGFyZ2V0LnR4dC50bXAKKzo6Kioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorOjogQ2hlY2sgZm9yIGNsZWFuIG9wZXJhdGlvbgorOjoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAKLWVjaG8gVEFSR0VUICAgICAgICAgID0gJVRBUkdFVCUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmd0OyZndDsgJVdPUktTUEFDRSVcQ29uZlx0YXJn ZXQudHh0LnRtcAoraWYgIiVDbGVhbiUiPT0iVFJVRSIgKAorICBlY2hvIFJlbW92aW5nIHBy ZXZpb3VzIGJ1aWxkIGZpbGVzIC4uLgorICBpZiBleGlzdCAlQlVJTERfUEFUSCUgKAorICAg IHJtZGlyIC9zL3EgJUJVSUxEX1BBVEglCisgICkKKyAgaWYgZXhpc3QgJVdPUktTUEFDRSVc Q29uZlwuY2FjaGUgKAorICAgIHJtZGlyIC9zL3EgJVdPUktTUEFDRSVcQ29uZlwuY2FjaGUK KyAgKQorICBlY2hvLgorICBnb3RvIDpFeGl0CispCisKKzo6KioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor OjogR2VuZXJhdGUgQnVpbGRfRmxhZ3MKKzo6KioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitzZXQgQnVp bGRfRmxhZ3M9JUJ1aWxkX0ZsYWdzJSAtYiAlVEFSR0VUJQogaWYgIiVBcmNoJSI9PSJJQTMy IiAoCi0gICAgZWNobyBUQVJHRVRfQVJDSCA9IElBMzIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAlV09SS1NQQUNFJVxDb25mXHRhcmdldC50eHQu dG1wCisgICAgc2V0IEJ1aWxkX0ZsYWdzPSVCdWlsZF9GbGFncyUgLWEgSUEzMgogKSBlbHNl IGlmICIlQXJjaCUiPT0iWDY0IiAoCi0gICAgZWNobyBUQVJHRVRfQVJDSCA9IElBMzIgWDY0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZndDsmZ3Q7ICVXT1JLU1BBQ0Ul XENvbmZcdGFyZ2V0LnR4dC50bXAKKyAgICBzZXQgQnVpbGRfRmxhZ3M9JUJ1aWxkX0ZsYWdz JSAtYSBJQTMyIC1hIFg2NAogKQotZWNobyBUT09MX0NIQUlOX1RBRyAgPSAlVE9PTF9DSEFJ Tl9UQUclICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZndDsmZ3Q7ICVXT1JL U1BBQ0UlXENvbmZcdGFyZ2V0LnR4dC50bXAKLWVjaG8gQlVJTERfUlVMRV9DT05GID0gQ29u Zi9idWlsZF9ydWxlLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ3Q7Jmd0 OyAlV09SS1NQQUNFJVxDb25mXHRhcmdldC50eHQudG1wCi1pZiAlU291cmNlJSA9PSAwICgK LSAgZWNobyBBQ1RJVkVfUExBVEZPUk0gPSAlUExBVEZPUk1fUEFDS0FHRSUvUGxhdGZvcm1Q a2clQXJjaCUuZHNjICAgICAgICAmZ3Q7Jmd0OyAlV09SS1NQQUNFJVxDb25mXHRhcmdldC50 eHQudG1wCi0pIGVsc2UgKAotICBlY2hvIEFDVElWRV9QTEFURk9STSA9ICVQTEFURk9STV9Q QUNLQUdFJS9QbGF0Zm9ybVBrZyVBcmNoJVNvdXJjZS5kc2MgICZndDsmZ3Q7ICVXT1JLU1BB Q0UlXENvbmZcdGFyZ2V0LnR4dC50bXAKK3NldCBCdWlsZF9GbGFncz0lQnVpbGRfRmxhZ3Ml IC10ICVUT09MX0NIQUlOX1RBRyUKK3NldCBCdWlsZF9GbGFncz0lQnVpbGRfRmxhZ3MlIC1w ICVQTEFURk9STV9QQUNLQUdFJS9QbGF0Zm9ybVBrZyVBcmNoJS5kc2MKK3NldCBCdWlsZF9G bGFncz0lQnVpbGRfRmxhZ3MlIC1uICVidWlsZF90aHJlYWRzJQoraWYgIiVHZW5Mb2clIj09 IlRSVUUiICgKKyAgc2V0IEJ1aWxkX0ZsYWdzPSVCdWlsZF9GbGFncyUgLWogJUJVSUxEX1BB VEglXCVQTEFURk9STV9OQU1FJS5sb2cKKykKK2lmICIlR2VuUmVwb3J0JSI9PSJUUlVFIiAo CisgIHNldCBCdWlsZF9GbGFncz0lQnVpbGRfRmxhZ3MlIC15ICVCVUlMRF9QQVRIJVwlUExB VEZPUk1fTkFNRSUucmVwb3J0CiApCi1lY2hvIE1BWF9DT05DVVJSRU5UX1RIUkVBRF9OVU1C RVIgPSAlYnVpbGRfdGhyZWFkcyUgICAgICAgICAgICAgICAgICAgICAgJmd0OyZndDsgJVdP UktTUEFDRSVcQ29uZlx0YXJnZXQudHh0LnRtcAotCi1tb3ZlIC9ZICVXT1JLU1BBQ0UlXENv bmZcdGFyZ2V0LnR4dC50bXAgJVdPUktTUEFDRSVcQ29uZlx0YXJnZXQudHh0ICZndDtudWwK IAogOjoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiA6OiBHZW5lcmF0ZSBCSU9TIElECkBAIC0yNjcsNiAr MjUzLDggQEAgZWNobyBWRVJTSU9OX01JTk9SICA9IDAxICAgICAgJmd0OyZndDsgJUJVSUxE X1BBVEglL0Jpb3NJZC5lbnYKIAogZWNoby4KIGVjaG8gSW52b2tpbmcgRURLMiBidWlsZC4u LgorZWNobyBidWlsZCAlQnVpbGRfRmxhZ3MlCisKIGNhbGwgYnVpbGQgJUJ1aWxkX0ZsYWdz JQogCiBpZiAlRVJST1JMRVZFTCUgTkVRIDAgZ290byBCbGRGYWlsCkBAIC0zMDAsNyArMjg4 LDcgQEAgZWNobyBCdWlsZCBCSU9TIHJvbSBmb3IgVkxWIHBsYXRmb3Jtcy4KIGVjaG8uCiBl Y2hvIFVzYWdlOiBibGRfdmx2LmJhdCBbb3B0aW9uc10gUGxhdGZvcm1UeXBlIFtCdWlsZCBU YXJnZXRdCiBlY2hvLgotZWNobyAgICAvYyAgICBDbGVhbkFsbCBiZWZvcmUgYnVpbGRpbmcK K2VjaG8gICAgL2MgICAgQ2xlYW5BbGwKIGVjaG8gICAgL2wgICAgR2VuZXJhdGUgYnVpbGQg bG9nIGZpbGUKIGVjaG8gICAgL3kgICAgR2VuZXJhdGUgYnVpbGQgcmVwb3J0IGZpbGUKIGVj aG8gICAgL20gICAgRW5hYmxlIG11bHRpLXByb2Nlc3NvciBidWlsZApkaWZmIC0tZ2l0IGEv UGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvYmxkX3Zsdi5zaCBiL1BsYXRmb3Jt L0ludGVsL1ZsdjJUYmx0RGV2aWNlUGtnL2JsZF92bHYuc2gKaW5kZXggMTcwNWIxNjI4Yi4u ZDMyYmViNmE0NSAxMDA3NTUKLS0tIGEvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQ a2cvYmxkX3Zsdi5zaAorKysgYi9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBrZy9i bGRfdmx2LnNoCkBAIC03LDE1ICs3LDIyIEBAIGZ1bmN0aW9uIFVzYWdlKCkgewogICBlY2hv ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioiCiAgIGVjaG8gIkJ1aWxkIEJJT1Mgcm9tIGZvciBW TFYgcGxhdGZvcm1zLiIKICAgZWNobwotICBlY2hvICJVc2FnZTogYmxkX3Zsdi5zaCAgUGxh dGZvcm1UeXBlIFtCdWlsZCBUYXJnZXRdIgorICBlY2hvICJVc2FnZTogYmxkX3Zsdi5zaCAg W29wdGlvbnNdIFBsYXRmb3JtVHlwZSBbQnVpbGQgVGFyZ2V0XSIKICAgZWNobworICBlY2hv ICIgICAvYyAgICBDbGVhbkFsbCIKKyAgZWNobyAiICAgL2wgICAgR2VuZXJhdGUgYnVpbGQg bG9nIGZpbGUiCisgIGVjaG8gIiAgIC95ICAgIEdlbmVyYXRlIGJ1aWxkIHJlcG9ydCBmaWxl IgorICBlY2hvICIgICAvbSAgICBFbmFibGUgbXVsdGktcHJvY2Vzc29yIGJ1aWxkIgorICBl Y2hvICIgICAvSUEzMiBTZXQgQXJjaCB0byBJQTMyIChkZWZhdWx0OiBYNjQpIgorICBlY2hv ICIgICAvWDY0ICBTZXQgQXJjaCB0byBYNjQgKGRlZmF1bHQ6IFg2NCkiCiAgIGVjaG8KICAg ZWNobyAiICAgICAgIFBsYXRmb3JtIFR5cGVzOiAgTU5XMiIKICAgZWNobyAiICAgICAgIEJ1 aWxkIFRhcmdldHM6ICAgRGVidWcsIFJlbGVhc2UgIChkZWZhdWx0OiBEZWJ1ZykiCiAgIGVj aG8KKyAgZWNobyAiRXhhbXBsZXM6IgorICBlY2hvICIgICBibGRfdmx2LnNoIE1OVzIgICAg ICAgICAgICAgICAgIDogWDY0IERlYnVnIGJ1aWxkIGZvciBNaW5ub3dNYXgiCisgIGVjaG8g IiAgIGJsZF92bHYuc2ggL0lBMzIgTU5XMiByZWxlYXNlICAgOiBJQTMyIFJlbGVhc2UgYnVp bGQgZm9yIE1pbm5vd01heCIKICAgZWNobyAiKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIgotICBl Y2hvICJQcmVzcyBhbnkga2V5Li4uLi4uPGEgY2xhc3M9Im1vei10eHQtbGluay1yZmMyMzk2 RSIgaHJlZj0ibWFpbHRvOi1yZWFkZXhpdDB9QEAtMjksOCszNiwxMkBAZWNoby1lJChkYXRl KSNidWlsZF90aHJlYWRzPSgkTlVNQkVSX09GX1BST0NFU1NPUlMpKzFCdWlsZF9GbGFncz1l eGl0Q29kZT0wK2J1aWxkX3RocmVhZHM9MUFyY2g9WDY0LVNwaUxvY2s9MCtHZW5Mb2c9RkFM U0UrR2VuUmVwb3J0PUZBTFNFK0NsZWFuPUZBTFNFK2V4cG9ydENPUkVfUEFUSD0kV09SS1NQ QUNFL2VkazJleHBvcnRQTEFURk9STV9QQVRIPSRXT1JLU1BBQ0UvZWRrMi1wbGF0Zm9ybXMv UGxhdGZvcm0vSW50ZWwvQEAtMzgsMjcrNDksNkBAZXhwb3J0U0lMSUNPTl9QQVRIPSRXT1JL U1BBQ0UvZWRrMi1wbGF0Zm9ybXMvU2lsaWNvbi9JbnRlbC9leHBvcnRCSU5BUllfUEFUSD0k V09SS1NQQUNFL2VkazItbm9uLW9zaS9TaWxpY29uL0ludGVsL2V4cG9ydFBBQ0tBR0VTX1BB VEg9JFBMQVRGT1JNX1BBVEg6JFNJTElDT05fUEFUSDokQklOQVJZX1BBVEg6JENPUkVfUEFU SC0jI0NsZWFudXBwcmV2aW91c2J1aWxkZmlsZXMuLWlmWy1lJFdPUktTUEFDRS9FREsyLmxv Z107dGhlbi1ybSRXT1JLU1BBQ0UvRURLMi5sb2ctZmktLWlmWy1lJFdPUktTUEFDRS9Vbml0 b29sLmxvZ107dGhlbi1ybSRXT1JLU1BBQ0UvVW5pdG9vbC5sb2ctZmktLWlmWy1lJFdPUktT UEFDRS9Db25mL3RhcmdldC50eHRdO3RoZW4tcm0kV09SS1NQQUNFL0NvbmYvdGFyZ2V0LnR4 dC1maS0taWZbLWUkV09SS1NQQUNFL0NvbmYvdG9vbHNfZGVmLnR4dF07dGhlbi1ybSRXT1JL U1BBQ0UvQ29uZi90b29sc19kZWYudHh0LWZpLS1pZlstZSRXT1JLU1BBQ0UvQ29uZi9idWls ZF9ydWxlLnR4dF07dGhlbi1ybSRXT1JLU1BBQ0UvQ29uZi9idWlsZF9ydWxlLnR4dC1maS0j I1NldHVwRURLZW52aXJvbm1lbnQuRWRrc2V0dXBwdXRzbmV3Y29waWVzb2Z0YXJnZXQudHh0 LHRvb2xzX2RlZi50eHQsYnVpbGRfcnVsZS50eHRpbldvcmtTcGFjZVxDb25mIyNBbHNvcnVu ZWRrc2V0dXBhc3Nvb25hc3Bvc3NpYmxldG9hdm9pZGl0ZnJvbWNoYW5naW5nZW52aXJvbm1l bnR2YXJpYWJsZXN3ZSdyZW92ZXJyaWRpbmdjZCRDT1JFX1BBVEhAQC02OSwxNys1OSw5QEBt YWtlLUNCYXNlVG9vbHNQTEFURk9STV9OQU1FPVZsdjJUYmx0RGV2aWNlUGtnUExBVEZPUk1f UEFDS0FHRT1WbHYyVGJsdERldmljZVBrZ1BMQVRGT1JNX1BLR19QQVRIPSRQTEFURk9STV9Q QVRILyRQTEFURk9STV9QQUNLQUdFLWNvbmZpZ19maWxlPSRQTEFURk9STV9QS0dfUEFUSC9Q bGF0Zm9ybVBrZ0NvbmZpZy5kc2MtYXV0b19jb25maWdfaW5jPSRQTEFURk9STV9QS0dfUEFU SC9BdXRvUGxhdGZvcm1DRkcudHh0Y2QkUExBVEZPUk1fUEtHX1BBVEgtIyNjcmVhdGVuZXdB dXRvUGxhdGZvcm1DRkcudHh0ZmlsZS1pZlstZiI+IgotICByZWFkCiAgIGV4aXQgMAogfQog CkBAIC0yOSw4ICszNiwxMiBAQCBlY2hvIC1lICQoZGF0ZSkKICNidWlsZF90aHJlYWRzPSgk TlVNQkVSX09GX1BST0NFU1NPUlMpKzEKIEJ1aWxkX0ZsYWdzPQogZXhpdENvZGU9MAorYnVp bGRfdGhyZWFkcz0xCiBBcmNoPVg2NAotU3BpTG9jaz0wCitHZW5Mb2c9RkFMU0UKK0dlblJl cG9ydD1GQUxTRQorQ2xlYW49RkFMU0UKKwogCiBleHBvcnQgQ09SRV9QQVRIPSRXT1JLU1BB Q0UvZWRrMgogZXhwb3J0IFBMQVRGT1JNX1BBVEg9JFdPUktTUEFDRS9lZGsyLXBsYXRmb3Jt cy9QbGF0Zm9ybS9JbnRlbC8KQEAgLTM4LDI3ICs0OSw2IEBAIGV4cG9ydCBTSUxJQ09OX1BB VEg9JFdPUktTUEFDRS9lZGsyLXBsYXRmb3Jtcy9TaWxpY29uL0ludGVsLwogZXhwb3J0IEJJ TkFSWV9QQVRIPSRXT1JLU1BBQ0UvZWRrMi1ub24tb3NpL1NpbGljb24vSW50ZWwvCiBleHBv cnQgUEFDS0FHRVNfUEFUSD0kUExBVEZPUk1fUEFUSDokU0lMSUNPTl9QQVRIOiRCSU5BUllf UEFUSDokQ09SRV9QQVRICiAKLSMjIENsZWFuIHVwIHByZXZpb3VzIGJ1aWxkIGZpbGVzLgot aWYgWyAtZSAkV09SS1NQQUNFL0VESzIubG9nIF07IHRoZW4KLSAgcm0gJFdPUktTUEFDRS9F REsyLmxvZwotZmkKLQotaWYgWyAtZSAkV09SS1NQQUNFL1VuaXRvb2wubG9nIF07IHRoZW4K LSAgcm0gJFdPUktTUEFDRS9Vbml0b29sLmxvZwotZmkKLQotaWYgWyAtZSAkV09SS1NQQUNF L0NvbmYvdGFyZ2V0LnR4dCBdOyB0aGVuCi0gIHJtICRXT1JLU1BBQ0UvQ29uZi90YXJnZXQu dHh0Ci1maQotCi1pZiBbIC1lICRXT1JLU1BBQ0UvQ29uZi90b29sc19kZWYudHh0IF07IHRo ZW4KLSAgcm0gJFdPUktTUEFDRS9Db25mL3Rvb2xzX2RlZi50eHQKLWZpCi0KLWlmIFsgLWUg JFdPUktTUEFDRS9Db25mL2J1aWxkX3J1bGUudHh0IF07IHRoZW4KLSAgcm0gJFdPUktTUEFD RS9Db25mL2J1aWxkX3J1bGUudHh0Ci1maQotCiAjIyBTZXR1cCBFREsgZW52aXJvbm1lbnQu IEVka3NldHVwIHB1dHMgbmV3IGNvcGllcyBvZiB0YXJnZXQudHh0LCB0b29sc19kZWYudHh0 LCBidWlsZF9ydWxlLnR4dCBpbiBXb3JrU3BhY2VcQ29uZgogIyMgQWxzbyBydW4gZWRrc2V0 dXAgYXMgc29vbiBhcyBwb3NzaWJsZSB0byBhdm9pZCBpdCBmcm9tIGNoYW5naW5nIGVudmly b25tZW50IHZhcmlhYmxlcyB3ZSdyZSBvdmVycmlkaW5nCiBjZCAkQ09SRV9QQVRICkBAIC02 OSwxNyArNTksOSBAQCBtYWtlIC1DIEJhc2VUb29scwogUExBVEZPUk1fTkFNRT1WbHYyVGJs dERldmljZVBrZwogUExBVEZPUk1fUEFDS0FHRT1WbHYyVGJsdERldmljZVBrZwogUExBVEZP Uk1fUEtHX1BBVEg9JFBMQVRGT1JNX1BBVEgvJFBMQVRGT1JNX1BBQ0tBR0UKLWNvbmZpZ19m aWxlPSRQTEFURk9STV9QS0dfUEFUSC9QbGF0Zm9ybVBrZ0NvbmZpZy5kc2MKLWF1dG9fY29u ZmlnX2luYz0kUExBVEZPUk1fUEtHX1BBVEgvQXV0b1BsYXRmb3JtQ0ZHLnR4dAogCiBjZCAk UExBVEZPUk1fUEtHX1BBVEgKIAotIyMgY3JlYXRlIG5ldyBBdXRvUGxhdGZvcm1DRkcudHh0 IGZpbGUKLWlmIFsgLWYgIjwvYT4kYXV0b19jb25maWdfaW5jIiBdOyB0aGVuCi0gIHJtICRh dXRvX2NvbmZpZ19pbmMKLWZpCi10b3VjaCAkYXV0b19jb25maWdfaW5jCi0KICMjKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgogIyMgUGFyc2UgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwogIyMqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCkBAIC04OSwxNyArNzEsMTcgQEAgZm9yICgoIGk9MTsgaSZsdDs9JCM7ICkp CiAgIGRvCiAgICAgaWYgWyAiJDEiID09ICIvPyIgXTsgdGhlbgogICAgICAgVXNhZ2UKLSAg ICBlbGlmIFsgIiQoZWNobyAkMSB8IHRyICdhLXonICdBLVonKSIgPT0gIi9RIiBdOyB0aGVu Ci0gICAgICBCdWlsZF9GbGFncz0iJEJ1aWxkX0ZsYWdzIC0tcXVpZXQiCi0gICAgICBzaGlm dAogICAgIGVsaWYgWyAiJChlY2hvICQxIHwgdHIgJ2EteicgJ0EtWicpIiA9PSAiL0wiIF07 IHRoZW4KLSAgICAgIEJ1aWxkX0ZsYWdzPSIkQnVpbGRfRmxhZ3MgLWogRURLMi5sb2ciCisg ICAgICBHZW5Mb2c9VFJVRQorICAgICAgc2hpZnQKKyAgICBlbGlmIFsgIiQoZWNobyAkMSB8 IHRyICdhLXonICdBLVonKSIgPT0gIi9ZIiBdOyB0aGVuCisgICAgICBHZW5SZXBvcnQ9VFJV RQorICAgICAgc2hpZnQKKyAgICBlbGlmIFsgIiQoZWNobyAkMSB8IHRyICdhLXonICdBLVon KSIgPT0gIi9NIiBdOyB0aGVuCisgICAgICBidWlsZF90aHJlYWRzPTgKICAgICAgIHNoaWZ0 CiAgICAgZWxpZiBbICIkKGVjaG8gJDEgfCB0ciAnYS16JyAnQS1aJykiID09ICIvQyIgXTsg dGhlbgotICAgICAgZWNobyBSZW1vdmluZyBwcmV2aW91cyBidWlsZCBmaWxlcyAuLi4KLSAg ICAgIGlmIFsgLWQgIkJ1aWxkIiBdOyB0aGVuCi0gICAgICAgIHJtIC1yIEJ1aWxkCi0gICAg ICBmaQorICAgICAgQ2xlYW49VFJVRQogICAgICAgc2hpZnQKICAgICBlbGlmIFsgIiQoZWNo byAkMSB8IHRyICdhLXonICdBLVonKSIgPT0gIi9YNjQiIF07IHRoZW4KICAgICAgIEFyY2g9 WDY0CkBAIC0xMDcsOSArODksNiBAQCBmb3IgKCggaT0xOyBpJmx0Oz0kIzsgKSkKICAgICBl bGlmIFsgIiQoZWNobyAkMSB8IHRyICdhLXonICdBLVonKSIgPT0gIi9JQTMyIiBdOyB0aGVu CiAgICAgICBBcmNoPUlBMzIKICAgICAgIHNoaWZ0Ci0gICAgZWxpZiBbICIkKGVjaG8gJDEg fCB0ciAnYS16JyAnQS1aJykiID09ICIvWUwiIF07IHRoZW4KLSAgICAgIFNwaUxvY2s9MQot ICAgICAgc2hpZnQgICAgICAKICAgICBlbHNlCiAgICAgICBicmVhawogICAgIGZpCkBAIC0x MjAsMjYgKzk5LDcgQEAgaWYgWyAiJDIiID09ICIiIF07IHRoZW4KICAgVXNhZ2UKIGZpCiAK LWlmIFsgJEFyY2ggPT0gIklBMzIiIF07IHRoZW4KLSAgZWNobyBERUZJTkUgWDY0X0NPTkZJ RyA9IEZBTFNFICZndDsmZ3Q7ICRhdXRvX2NvbmZpZ19pbmMKLWVsc2UKLSAgZWNobyBERUZJ TkUgWDY0X0NPTkZJRyA9IFRSVUUgICZndDsmZ3Q7ICRhdXRvX2NvbmZpZ19pbmMKLWZpCi0K LSMjIC0tIEJ1aWxkIGZsYWdzIHNldHRpbmdzIGZvciBlYWNoIFBsYXRmb3JtIC0tCi0jIyAg ICBBbHBpbmVWYWxsZXkgKEFMUFYpOiAgU1ZQX1BGX0JVSUxEID0gVFJVRSwgICBFTkJEVF9Q Rl9CVUlMRCA9IEZBTFNFLCAgVEFCTEVUX1BGX0JVSUxEID0gRkFMU0UsICBCWVRJX1BGX0JV SUxEID0gRkFMU0UsIElWSV9QRl9CVUlMRCA9IEZBTFNFCi0jIyAgICAgICBCYXlsZXlCYXkg KEJCQVkpOiAgU1ZQX1BGX0JVSUxEID0gRkFMU0UsICBFTkJEVF9QRl9CVUlMRCA9IFRSVUUs ICAgVEFCTEVUX1BGX0JVSUxEID0gRkFMU0UsICBCWVRJX1BGX0JVSUxEID0gRkFMU0UsIElW SV9QRl9CVUlMRCA9IEZBTFNFCi0jIyAgICAgICAgIEJheUxha2UgKEJMQUspOiAgU1ZQX1BG X0JVSUxEID0gRkFMU0UsICBFTkJEVF9QRl9CVUlMRCA9IEZBTFNFLCAgVEFCTEVUX1BGX0JV SUxEID0gVFJVRSwgICBCWVRJX1BGX0JVSUxEID0gRkFMU0UsIElWSV9QRl9CVUlMRCA9IEZB TFNFCi0jIyAgICAgIEJha2Vyc3BvcnQgKEJZVEkpOiAgU1ZQX1BGX0JVSUxEID0gRkFMU0Us ICBFTkJEVF9QRl9CVUlMRCA9IEZBTFNFLCAgVEFCTEVUX1BGX0JVSUxEID0gRkFMU0UsICBC WVRJX1BGX0JVSUxEID0gVFJVRSwgSVZJX1BGX0JVSUxEID0gRkFMU0UKLSMjIENyZXN0dmll dyBIaWxscyAoQ1ZIUyk6ICBTVlBfUEZfQlVJTEQgPSBGQUxTRSwgIEVOQkRUX1BGX0JVSUxE ID0gRkFMU0UsICBUQUJMRVRfUEZfQlVJTEQgPSBGQUxTRSwgIEJZVElfUEZfQlVJTEQgPSBU UlVFLCBJVklfUEZfQlVJTEQgPSBUUlVFCi0jIyAgICAgICAgICAgIEZGRDggKEJMQUspOiAg U1ZQX1BGX0JVSUxEID0gRkFMU0UsICBFTkJEVF9QRl9CVUlMRCA9IEZBTFNFLCAgVEFCTEVU X1BGX0JVSUxEID0gVFJVRSwgICBCWVRJX1BGX0JVSUxEID0gRkFMU0UsIElWSV9QRl9CVUlM RCA9IEZBTFNFCiBlY2hvICJTZXR0aW5nICAkMSAgcGxhdGZvcm0gY29uZmlndXJhdGlvbiBh bmQgQklPUyBJRC4uLiIKLWlmIFsgIiQoZWNobyAkMSB8IHRyICdhLXonICdBLVonKSIgPT0g Ik1OVzIiIF07IHRoZW4KLSAgZWNobyBERUZJTkUgRU5CRFRfUEZfQlVJTEQgPSBUUlVFICZn dDsmZ3Q7ICRhdXRvX2NvbmZpZ19pbmMKLWVsc2UKLSAgZWNobyAiRXJyb3IgLSBVbnN1cHBv cnRlZCBQbGF0Zm9ybVR5cGU6ICQxIgotICBVc2FnZQotZmkKIAogaWYgWyAiJChlY2hvICQy IHwgdHIgJ2EteicgJ0EtWicpIiA9PSAiUkVMRUFTRSIgXTsgdGhlbgogICBleHBvcnQgVEFS R0VUPVJFTEVBU0UKQEAgLTE0OCwxOCArMTA4LDggQEAgZWxzZQogZmkKIAogIyMqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCi0jIyBBZGRpdGlvbmFsIEVESyBCdWlsZCBTZXR1cC9Db25maWd1cmF0aW9u CisjIyBEZXRlY3QgVE9PTF9DSEFJTl9UQUcKICMjKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotZWNobyAi RW5zdXJpbmcgY29ycmVjdCBidWlsZCBkaXJlY3RvcnkgaXMgcHJlc2VudCBmb3IgR2VuQmlv c0lkLi4uIgotCi1lY2hvIE1vZGlmeWluZyBDb25mIGZpbGVzIGZvciB0aGlzIGJ1aWxkLi4u Ci0jIyBSZW1vdmUgbGluZXMgd2l0aCB0aGVzZSB0YWdzIGZyb20gdGFyZ2V0LnR4dAotc2Vk IC1pICcvXkFDVElWRV9QTEFURk9STS9kJyAkV09SS1NQQUNFL0NvbmYvdGFyZ2V0LnR4dAot c2VkIC1pICcvXlRBUkdFVCAvZCcgJFdPUktTUEFDRS9Db25mL3RhcmdldC50eHQKLXNlZCAt aSAnL15UQVJHRVRfQVJDSC9kJyAkV09SS1NQQUNFL0NvbmYvdGFyZ2V0LnR4dAotc2VkIC1p ICcvXlRPT0xfQ0hBSU5fVEFHL2QnICRXT1JLU1BBQ0UvQ29uZi90YXJnZXQudHh0Ci1zZWQg LWkgJy9eTUFYX0NPTkNVUlJFTlRfVEhSRUFEX05VTUJFUi9kJyAkV09SS1NQQUNFL0NvbmYv dGFyZ2V0LnR4dAotCiBnY2NfdmVyc2lvbj0kKGdjYyAtdiAyJmd0OyZhbXA7MSB8IHRhaWwg LTEgfCBhd2sgJ3twcmludCAkM30nKQogY2FzZSAkZ2NjX3ZlcnNpb24gaW4KICAgICAgIFsx LTNdLip8NC5bMC03XS4qKQpAQCAtMTY3LDMxICsxMTcsMTkgQEAgY2FzZSAkZ2NjX3ZlcnNp b24gaW4KICAgICAgICAgZXhpdCAxCiAgICAgICAgIDs7CiAgICAgICA0LjguKikKLSAgICAg ICAgVEFSR0VUX1RPT0xTPUdDQzQ4CisgICAgICAgIGV4cG9ydCBUT09MX0NIQUlOX1RBRz1H Q0M0OAogICAgICAgICA7OwogICAgICAgNC45Lip8Ni5bMC0yXS4qKQotICAgICAgICBUQVJH RVRfVE9PTFM9R0NDNDkKKyAgICAgICAgZXhwb3J0IFRPT0xfQ0hBSU5fVEFHPUdDQzQ5CiAg ICAgICAgIDs7CiAgICAgICAqKQotICAgICAgICBUQVJHRVRfVE9PTFM9R0NDNQorICAgICAg ICBleHBvcnQgVE9PTF9DSEFJTl9UQUc9R0NDNQogICAgICAgICA7OwogZXNhYwogCi1BQ1RJ VkVfUExBVEZPUk09JFBMQVRGT1JNX1BLR19QQVRIL1BsYXRmb3JtUGtnR2NjIiRBcmNoIi5k c2MKLWV4cG9ydCBUT09MX0NIQUlOX1RBRz0kVEFSR0VUX1RPT0xTCi1NQVhfQ09OQ1VSUkVO VF9USFJFQURfTlVNQkVSPTgKLWVjaG8gQUNUSVZFX1BMQVRGT1JNID0gJEFDVElWRV9QTEFU Rk9STSAgICAgICAgICAgICAgICAgICAgICAgICAgICZndDsmZ3Q7ICRXT1JLU1BBQ0UvQ29u Zi90YXJnZXQudHh0Ci1lY2hvIFRBUkdFVCAgICAgICAgICA9ICRUQVJHRVQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAkV09SS1NQQUNFL0NvbmYvdGFy Z2V0LnR4dAotZWNobyBUT09MX0NIQUlOX1RBRyAgPSAkVE9PTF9DSEFJTl9UQUcgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmd0OyZndDsgJFdPUktTUEFDRS9Db25mL3RhcmdldC50 eHQKLWVjaG8gTUFYX0NPTkNVUlJFTlRfVEhSRUFEX05VTUJFUiA9ICRNQVhfQ09OQ1VSUkVO VF9USFJFQURfTlVNQkVSICZndDsmZ3Q7ICRXT1JLU1BBQ0UvQ29uZi90YXJnZXQudHh0Ci1p ZiBbICRBcmNoID09ICJJQTMyIiBdOyB0aGVuCi0gIGVjaG8gVEFSR0VUX0FSQ0ggICA9IElB MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAkV09S S1NQQUNFL0NvbmYvdGFyZ2V0LnR4dAotZWxzZQotICBlY2hvIFRBUkdFVF9BUkNIICAgPSBJ QTMyIFg2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmd0OyZndDsgJFdP UktTUEFDRS9Db25mL3RhcmdldC50eHQKLWZpCi0KLQotIyMgU2V0IGFuZCBDcmVhdGUgJEJV SUxEX1BBVEggaWYgbmVjZXNzYXJ5CisjIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMjIEdlbmVyYXRl ICRCVUlMRF9QQVRIIGFuZCBtYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMKKyMjKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgogaWYgWyAhIC1kICR7V09SS1NQQUNFfS9CdWlsZCBdOyB0aGVuCiAg IG1rZGlyICR7V09SS1NQQUNFfS9CdWlsZAogZmkKQEAgLTIxMiw2ICsxNTAsNDAgQEAgaWYg WyAhIC1kICRCVUlMRF9QQVRIIF07IHRoZW4KICAgbWtkaXIgJEJVSUxEX1BBVEgKIGZpCiAK KyMjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorIyMgQ2hlY2sgZm9yIGNsZWFuIG9wZXJhdGlvbgorIyMq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCitpZiBbICRDbGVhbiA9PSAiVFJVRSIgXTsgdGhlbgorICBlY2hv IFJlbW92aW5nIHByZXZpb3VzIGJ1aWxkIGZpbGVzIC4uLgorICBpZiBbIC1kICR7QlVJTERf UEFUSH0gXTsgdGhlbgorICAgIHJtIC1yICR7QlVJTERfUEFUSH0KKyAgZmkKKyAgaWYgWyAt ZCAke1dPUktTUEFDRX0vQ29uZi8uY2FjaGUgXTsgdGhlbgorICAgIHJtIC1yICR7V09SS1NQ QUNFfS9Db25mLy5jYWNoZQorICBmaQorICBleGl0IDAKK2ZpCisKKyMjKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorIyMgR2VuZXJhdGUgQnVpbGRfRmxhZ3MKKyMjKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitC dWlsZF9GbGFncz0iJEJ1aWxkX0ZsYWdzIC1iICRUQVJHRVQiCitpZiBbICRBcmNoID09ICJJ QTMyIiBdOyB0aGVuCisgIEJ1aWxkX0ZsYWdzPSIkQnVpbGRfRmxhZ3MgLWEgSUEzMiIKK2Vs c2UKKyAgQnVpbGRfRmxhZ3M9IiRCdWlsZF9GbGFncyAtYSBJQTMyIC1hIFg2NCIKK2ZpCitC dWlsZF9GbGFncz0iJEJ1aWxkX0ZsYWdzIC10ICRUT09MX0NIQUlOX1RBRyIKK0J1aWxkX0Zs YWdzPSIkQnVpbGRfRmxhZ3MgLXAgJHtQTEFURk9STV9QS0dfUEFUSH0vUGxhdGZvcm1Qa2dH Y2Mke0FyY2h9LmRzYyIKK0J1aWxkX0ZsYWdzPSIkQnVpbGRfRmxhZ3MgLW4gJGJ1aWxkX3Ro cmVhZHMiCitpZiBbICRHZW5Mb2cgPT0gIlRSVUUiIF07IHRoZW4KKyAgQnVpbGRfRmxhZ3M9 IiRCdWlsZF9GbGFncyAtaiAke0JVSUxEX1BBVEh9LyR7UExBVEZPUk1fTkFNRX0ubG9nIgor ZmkKK2lmIFsgJEdlblJlcG9ydCA9PSAiVFJVRSIgXTsgdGhlbgorICBCdWlsZF9GbGFncz0i JEJ1aWxkX0ZsYWdzIC15ICR7QlVJTERfUEFUSH0vJHtQTEFURk9STV9OQU1FfS5yZXBvcnQi CitmaQorCiAjIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICMjIEdlbmVyYXRlIEJJT1MgSUQKICMjKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgpAQCAtMjM5LDcgKzIxMSw4IEBAIHB5dGhvbiAkV09SS1NQQUNFL2Vk azItcGxhdGZvcm1zL1BsYXRmb3JtL0ludGVsL1Rvb2xzL0dlbkJpb3NJZC9HZW5CaW9zSWQu cHkgLWkKICMjIEJ1aWxkIEJJT1MKICMjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogZWNobyAiSW52b2tp bmcgRURLMiBidWlsZC4uLiIKLWJ1aWxkCitlY2hvIGJ1aWxkICRCdWlsZF9GbGFncworYnVp bGQgJEJ1aWxkX0ZsYWdzCiAKICMjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogIyMgUG9zdCBCdWlsZCBw cm9jZXNzaW5nIGFuZCBjbGVhbnVwCmRpZmYgLS1naXQgYS9QbGF0Zm9ybS9JbnRlbC9WbHYy VGJsdERldmljZVBrZy9jbG4uc2ggYi9QbGF0Zm9ybS9JbnRlbC9WbHYyVGJsdERldmljZVBr Zy9jbG4uc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1MTE2OTVmNmYuLjAw MDAwMDAwMDAKLS0tIGEvUGxhdGZvcm0vSW50ZWwvVmx2MlRibHREZXZpY2VQa2cvY2xuLnNo CisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgYmFzaAot ZWNobwotZWNobyBSdW4gYnVpbGQgY2xlYW5hbGwuLi4KLWVjaG8KLQotZWNobwotZWNobyBE aXJlY3RvcmllcyB0byBjbGVhbi4uLgotZWNobwotCi1jZCAuLgotCi1pZiBbIC1kICJCdWls ZCIgXTsgdGhlbgotICBybSAtciBCdWlsZAotZmkKLQotaWYgWyAtZCAiQ29uZi8uY2FjaGUi IF07IHRoZW4KLSAgcm0gLXIgQ29uZi8uY2FjaGUKLWZpCi0KLWlmIFsgLWQgIlJvbUltYWdl cyIgXTsgdGhlbgotICBybSAtciBSb21JbWFnZXMKLWZpCi0KLWVjaG8KLWVjaG8gRmlsZXMg dG8gY2xlYW4uLi4KLWVjaG8KLQotaWYgWyAtZSAkKHB3ZCkvRURLMi5sb2cgXTsgdGhlbgot ICBybSAkKHB3ZCkvRURLMi5sb2cKLWZpCi0KLWlmIFsgLWUgJChwd2QpL1VuaXRvb2wubG9n IF07IHRoZW4KLSAgcm0gJChwd2QpL1VuaXRvb2wubG9nCi1maQotCi1pZiBbIC1lICQocHdk KS9Db25mL3RhcmdldC50eHQgXTsgdGhlbgotICBybSAkKHB3ZCkvQ29uZi90YXJnZXQudHh0 Ci1maQotCi1pZiBbIC1lICQocHdkKS9Db25mL0Jpb3NJZC5lbnYgXTsgdGhlbgotICBybSAk KHB3ZCkvQ29uZi9CaW9zSWQuZW52Ci1maQotCi1pZiBbIC1lICQocHdkKS9Db25mL3Rvb2xz X2RlZi50eHQgXTsgdGhlbgotICBybSAkKHB3ZCkvQ29uZi90b29sc19kZWYudHh0Ci1maQot Ci1pZiBbIC1lICQocHdkKS9Db25mL2J1aWxkX3J1bGUudHh0IF07IHRoZW4KLSAgcm0gJChw d2QpL0NvbmYvYnVpbGRfcnVsZS50eHQKLWZpCi0KLWlmIFsgLWUgJChwd2QpL0NvbmYvQnVp bGRFbnYuc2ggXTsgdGhlbgotICBybSAkKHB3ZCkvQ29uZi9CdWlsZEVudi5zaAotZmkKLQot aWYgWyAtZSAkKHB3ZCkvVmx2MlRibHREZXZpY2VQa2cvQXV0b1BsYXRmb3JtQ0ZHLnR4dCBd OyB0aGVuCi0gIHJtICQocHdkKS9WbHYyVGJsdERldmljZVBrZy9BdXRvUGxhdGZvcm1DRkcu dHh0Ci1maQotCi1lY2hvCi1lY2hvIEFsbCBkb25lLi4uCi1lY2hvCjwvcHJlPgogICAgPC9i bG9ja3F1b3RlPgogIDwvYm9keT4KPC9odG1sPgo= --------------E9BFF21C510A4D4EE2E772FA--