From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR02-AM5-obe.outbound.protection.outlook.com (EUR02-AM5-obe.outbound.protection.outlook.com [40.107.0.65]) by mx.groups.io with SMTP id smtpd.web11.11986.1614263966461542679 for ; Thu, 25 Feb 2021 06:39:27 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=Algx426j; spf=pass (domain: arm.com, ip: 40.107.0.65, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z644J3P+bkRFkATV5Z4GAU6RGGlnRkXjUD3TGYXGUCw=; b=Algx426jH7Wj8tGxxGgTtW1GbsLybS+rqqnDY6KjkKXtl308UHXDkcBOLjpUi2s+WGDnOWLMyBpEUeS+G9VN55YWVjCQWbtlemZ5w000+oo0pR7O2VCMeXH4sP+UH18Rl7eIf6vgnA/dXIVgENOMNjs/9xErRFtZY15PwsPgjeQ= Received: from AM5PR0601CA0049.eurprd06.prod.outlook.com (2603:10a6:206::14) by DB7PR08MB3356.eurprd08.prod.outlook.com (2603:10a6:5:1c::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.29; Thu, 25 Feb 2021 14:39:22 +0000 Received: from AM5EUR03FT046.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:0:cafe::67) by AM5PR0601CA0049.outlook.office365.com (2603:10a6:206::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.19 via Frontend Transport; Thu, 25 Feb 2021 14:39:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT046.mail.protection.outlook.com (10.152.16.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.19 via Frontend Transport; Thu, 25 Feb 2021 14:39:22 +0000 Received: ("Tessian outbound 9eff4099a602:v71"); Thu, 25 Feb 2021 14:39:21 +0000 X-CR-MTA-TID: 64aa7808 Received: from 4fb7356a961f.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id CA79CE79-B34C-4482-8B91-7AE1A04FF840.1; Thu, 25 Feb 2021 14:39:16 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4fb7356a961f.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 25 Feb 2021 14:39:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TAHZD1w8eG53Af1aU1FoP//6PiUNKbSOoCjaeAcX+63w+3ItvLqsKqt/Es8hAuAX22uFU73g2JYKfvYtLbFXv35uhyDkd+51AvHm2DZMCunny7rjFuyylKwrP1mx0hqsrV9DvKbpLB3G1DQAheUS9t19AGgzAXeamdkMQR4Y5GGWV1Rt7cTPxrwxowTmNcBM+jRNidX6CF1ivRhnWYgwg7AqSjffPrjiEypiv3pw/hZw+RSzuQVl6CMLirurVCP+eDAFJL4zyoxZe5A07pBdaD+tSvpr083pG+jm81Xp4TYWdwlnl2KpXd37pL6YJv07//b/fMU8y7WVa3gNe1YamQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z644J3P+bkRFkATV5Z4GAU6RGGlnRkXjUD3TGYXGUCw=; b=MFzIK8WEgjGF9Z54JmgOhlaOgKF08C9SaeivGaRYiYrgi0CqxC2c0D6Jd9iboALm2XwkQIZPRKr05AC39/V/sUevI2qS78OSkox7IwlSjcrzuppl8C9eIO8CxaWaNLyx6P1sJopkpj16xK/uXtprXgRatx9hfi68y4JLrH4saxkkJeykVVlYxt0W1iorUMZ6kJf/BXXMeyFwFO6E9Ri6zN4nrv9TmRsu3FzLh/3KD38CkSRbQw5i+K9Io/x3ByaX/Om7iqgL0PihsYa8EWV04mnmtwbxOIkks+e6DQWOyYPe/SxLjGWjYf2JTqeiCDgkV4/iez1enzFP/kwPm8FU5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z644J3P+bkRFkATV5Z4GAU6RGGlnRkXjUD3TGYXGUCw=; b=Algx426jH7Wj8tGxxGgTtW1GbsLybS+rqqnDY6KjkKXtl308UHXDkcBOLjpUi2s+WGDnOWLMyBpEUeS+G9VN55YWVjCQWbtlemZ5w000+oo0pR7O2VCMeXH4sP+UH18Rl7eIf6vgnA/dXIVgENOMNjs/9xErRFtZY15PwsPgjeQ= Received: from DB7PR08MB3097.eurprd08.prod.outlook.com (2603:10a6:5:1d::27) by DBBPR08MB4805.eurprd08.prod.outlook.com (2603:10a6:10:dd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.31; Thu, 25 Feb 2021 14:39:14 +0000 Received: from DB7PR08MB3097.eurprd08.prod.outlook.com ([fe80::8c43:eec3:76be:9001]) by DB7PR08MB3097.eurprd08.prod.outlook.com ([fe80::8c43:eec3:76be:9001%4]) with mapi id 15.20.3868.033; Thu, 25 Feb 2021 14:39:13 +0000 From: "Sami Mujawar" To: gaoliming , "devel@edk2.groups.io" , "spbrogan@outlook.com" CC: "ardb+tianocore@kernel.org" , "leif@nuviainc.com" , "sean.brogan@microsoft.com" , "Bret.Barkelew@microsoft.com" , "michael.d.kinney@intel.com" , "lersek@redhat.com" , Matteo Carlini , Ben Adderson , nd Subject: Re: [edk2-devel] [PATCH v1 1/2] ArmVirtPkg/PlatformCI: Add EDKII CI support for Kvmtool Thread-Topic: [edk2-devel] [PATCH v1 1/2] ArmVirtPkg/PlatformCI: Add EDKII CI support for Kvmtool Thread-Index: AQHW8OLPImw6xYrEMEO1QGQMfS7YpqpmhZcAgAKecICAAAD2IA== Date: Thu, 25 Feb 2021 14:39:11 +0000 Message-ID: References: <20210122171941.30724-1-sami.mujawar@arm.com> <20210122171941.30724-2-sami.mujawar@arm.com> <006001d70b82$e723dc20$b56b9460$@byosoft.com.cn> In-Reply-To: <006001d70b82$e723dc20$b56b9460$@byosoft.com.cn> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 17FBADFEAA161348BCF521AD3FF8FF05.0 x-checkrecipientchecked: true Authentication-Results-Original: byosoft.com.cn; dkim=none (message not signed) header.d=none;byosoft.com.cn; dmarc=none action=none header.from=arm.com; x-originating-ip: [86.150.156.12] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 88cfe12c-4ecb-4cf7-dfa4-08d8d99b2429 x-ms-traffictypediagnostic: DBBPR08MB4805:|DB7PR08MB3356: x-ms-exchange-minimumurldomainage: groups.io#3762 x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:514;OLM:514; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 43ROI05v+bp8PcJdJHJScAyrpB1i9leEvu7cXuL0+4mNU0qqEh1RwCmHSmTg1z7jjvvHrJIgOP97FJx9Mbu4hH9wqbftaxYpvkY0ZrLtEJxV2h7MROMi0LUk2782BPxwf+ACutchrVJ0T7LP00MzEbjybD5QuI/d8sjEeIE1ZWIBe/lEKrZnYnFb5CDCuEfjpIwhusiRi7/8yAfRVJvpMCQakvys1mWGybLW4AtY2nQqtUtUcvmGJ//Y+7Y/v+J5UjKEuHnw9u7KRle9pUghm8Ciiz7GtUDbdfU9wfRqdd5euGzP8CIPWkRRJDTxrtjz30Fx/47TChSE4SnI8qT5BkOM4vr7LI0Ny/0AXRRU6Zsrw4tW9DjBcwCBywfX6Hndn1+oZMvXiu5enst2JCxRkfzKddrZFWaOtv+kJljX4f22RPklPNA8Yiko8/eY6bkRAcfdE/72zsazI52rDCF1BJBORyi7rWf6DMf3R5dgZFdYoJ+7tX/hDZsiCRAmbxDts0Vus1JvrM4in0E+p6uEdYSaQtRuKtLgYD4b3g/Pr752X9Abukqw6k03EcpKBA4EbMphL6fOZ5uvCuSpNucm/4ltQIhcoC1PR5amayLy+7M= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB3097.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(376002)(39860400002)(136003)(346002)(396003)(55016002)(9686003)(86362001)(66556008)(4326008)(2906002)(76116006)(7696005)(33656002)(8676002)(8936002)(71200400001)(966005)(52536014)(5660300002)(30864003)(54906003)(45080400002)(66476007)(186003)(6506007)(66446008)(110136005)(64756008)(478600001)(83380400001)(66946007)(316002)(53546011)(26005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?dUZpWElyUW1YZzUxT1dXOVVHbGVSakFDNnl1WDNUMVdUVkRLUEZ5NmlreFlD?= =?utf-8?B?V3dZd0s0ZVJTckFzWjlHYWxCWXpseEZVTkxLSEFOd0F0TThtRXRKNDBOcjd1?= =?utf-8?B?QmNVRHpJMTZHUnh6Q0s0STFQcldyd2FYOUJMS2ZrZHlzc3pYVzJuSlVvYXlT?= =?utf-8?B?bU90WC9hVThkN0xoY2hNM0VuV2VJY2R2TjMvWVFqUURiY1RvZ1d4RmJkTDkr?= =?utf-8?B?M3BiZkE1NFJLdzlBYnhlQzFFZGxlajlEemd4eTN6bTl0YVZtN3pSRlk3eklV?= =?utf-8?B?ZTc4L2xuUFJvVWVrSWcrWXIvcXNka3FQV04xQ1BwT0dmTUI1eWRnVTc1dEdv?= =?utf-8?B?Zys4VFZPeW03Vm5LejUzelBzZkQvcHVsSll0R0NxU0kyUVN0elhSVUo2VnJL?= =?utf-8?B?emxUbklPcnRqRXdNNjhZS3hLWFJxZndIbVFJWWVWc1gwZDVkL092bDlBWEJG?= =?utf-8?B?UWlDOGErS2J1UXprV05LNk4vK0hwQlFJTGVXZk5iWXkzWjY2R0J0YUw5UStB?= =?utf-8?B?VkcxL05uYzJUOXQ4cEFaSzFHelZnMkQ5TzVNZUJHbjNDNFZreUkvaldCclFl?= =?utf-8?B?dEMxcHl3c0NGODNzM3RvbGNjZkhVTEYreko4R1R5RmpLVlFCT0RxMkIvQ291?= =?utf-8?B?dE1BODlSNGZuTHlHUkVvdytlZ1dRMVMwWXRHenowZE5OTFNWc2hXdzhORTlx?= =?utf-8?B?M1pTVXp1cVk3cGZNTXBySWZsdElZTlE0Q0RwaWFrd0RWMHo2dkw3VTdvNmFL?= =?utf-8?B?SkJyVmpwbmRWYTQ4OVdGekM2SFVIOEFhbkw3VTBKUm5vbEFxbzNSdkdRcGQ2?= =?utf-8?B?WVdMaHdCMHR3aS9DT2plNnJUdnplTmowQVAwMWxuOVpGSzJRRXdHbjBtN2Yw?= =?utf-8?B?elp1bXNnSWlWdFNKZ29VRmIwVmR6eWRaUDhReUxzTzFKKzNDYXM1NjhtRzNP?= =?utf-8?B?YkU1M1R3cGp1T3Q3dWNxMFlIcjZLRlpRYkttQitzeVlaNkxOWlZRUjUzQy9y?= =?utf-8?B?SmNmdGhOVWdaUGVDSGdTM1VIcllsbCtLcG90UEZPaHkvK0tIY3o2Yk56T0JL?= =?utf-8?B?OVF6Vm5lNkpvd3MwQUF1NzIyS0lZVERkVjNOY3ZKOVE0SU9aVmlHMkpNb0Rk?= =?utf-8?B?OFdLNG14QUIzNUxMcmJsZUZlZWExRThINHQzaWF4SGIwVk1hVEN4VHhyY3la?= =?utf-8?B?eTZuYVBqSU5qVjhiME1TcjEzQ1AydWtoT2FEUXJpNmRiRFR6L1J5ekxqUEV5?= =?utf-8?B?R3E4dVJBU2dUZjc2UG1GdmI4dlhqYktSSXRhQ3NaSVlGZWxuYlhZeWNYd3JX?= =?utf-8?B?VDFxYUpENkZKU1JkV0tQVUZlTHY3aVBPNTJMS0swa2l4Y0xaazdOOFMrTVU4?= =?utf-8?B?cmxPdUhlQy9MSmd4QmhoMktXbTQxNlBrZjhyYmd4dnV3ZXV6d0k2eUpBQ1Vi?= =?utf-8?B?Q1YxeUNMMWp1U2wrZzB0ejhKUjlKb091UU9QeFh4aER6Znp1Q09ZdHVqVU1J?= =?utf-8?B?a1QrN1FnU2hvU0lzQ2tLZVJ5VDhlVDBEbFBBcnVaYTh5L3BMVkFYTzcyUk1L?= =?utf-8?B?QU1tdnJDenRqcFZWUkI5SmpzczQyZEt5TGpObW4rOGVNSDZKZnFWczhVc1pp?= =?utf-8?B?QW1WVmE4c2NpbnoxUmk4UDMwZDJTR3ZJMjVidC9oUndrMWYxeXcwOFJDUTZn?= =?utf-8?B?K29WRU1mbE5KSER1UDlTTHFrbVMrVEMxN1Z6cHpUNFZnejkrcGZ3T0hVcFkv?= =?utf-8?Q?aF1KKpjTvPXvn1ADr0JPOgq7zMSguU5vWE6NuYo?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4805 Original-Authentication-Results: byosoft.com.cn; dkim=none (message not signed) header.d=none;byosoft.com.cn; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT046.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: b5dc2a76-6758-4bb2-feea-08d8d99b1eeb X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 768vMl25NLHYx64goHMtA5yokvj+zT7UHtSTQugoW+tNUQxJnMXhtdhGCNo8ARZT9oV+wvyGwzH6P0UbK5061uxoHVnJcYbyhPCYxJvewEUdqMUK+WHdHGGn+WeG0tVWEbwXbwtqzql27ihfy1gC4YvrB16tHRQhgMdSEcqoD22bA8YP2crL1d0MsLifr7sDVIwCQNX7CqGM+84KhZMOVRCKPhsWDaoP3/W5k2lAFAcXPOyeJriCp2k+EBKJLGQDiIA/wu4PwkMUPjSepwHSVXKFPRgKNBO4hqacC/f8Vvi4NGjS4R7nvum+5XABQuqtI0zk5+tkssiyWBRGfmSoI035e92zibW+cF8Xb/Atl71voOmsC5ROFRQhZeBDy5Qr6ueaVXOitEAk3tkxdEcQST8Zz8j+iypmjXiu5LnwapqqRBFxNTykS7Uq1qvcC8NzY1gBG+0xsZ2ttK/IR8chZhy+Kvy981ZAHbndsEBYORebmxY1gmbbn4pShQI80AHjsyarM01eKGeZqzWVXDXy+L2Ehc2T2npKY9OLC9eSlRuulglqbnWMfnmtEEYMFTCcmQQcnpV0/ZRimy/+EjUH/fAmW68U4knDn/HeqCOnekai1IMreOIMovj8V+j3b27u2rS2DOhe8v24kInGG5UI061oDh9BZd3BjrnwtktB6gaFTcXGqcULC0lzpreSJNe3yp/NTPK+z+ufsf2VHQ0RgNkaF4GR+rBaXHoTCtLChz4= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(376002)(136003)(396003)(39860400002)(346002)(36840700001)(46966006)(966005)(4326008)(54906003)(70206006)(110136005)(70586007)(8936002)(83380400001)(2906002)(86362001)(6506007)(82740400003)(52536014)(81166007)(5660300002)(55016002)(30864003)(7696005)(186003)(53546011)(8676002)(45080400002)(316002)(336012)(478600001)(47076005)(9686003)(26005)(82310400003)(33656002)(356005)(36860700001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2021 14:39:22.2137 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 88cfe12c-4ecb-4cf7-dfa4-08d8d99b2429 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT046.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3356 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQWxsLA0KDQpJdCBhcHBlYXJzIHRoYXQgdGhlIC0tZHNjIHBhcmFtZXRlciB3b3VsZCBmYWls IGluIHRoZSBzdHVhcnRfc2V0dXAgc3RhZ2Ugd2hlbiBydW5uaW5nIGluIHRoZSB1cHN0cmVhbSBF REtJSSBDb3JlIENJIGVudmlyb25tZW50LiBGb3Igc29tZSByZWFzb24gaXQgd29ya2VkIGZvciBt ZSBpbiB0aGUgbG9jYWwgQ0kgYnVpbGRzLg0KDQpJIGFtIHRlc3RpbmcgYSB2MiB2ZXJzaW9uIG9m IG15IHBhdGNoIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9zYW1pbXVqYXdhci9lZGsyL3RyZWUvMTU5 Nl9rdm10b29sX2NpX3YyIGFuZCB3aWxsIHN1Ym1pdCBpdCBzaG9ydGx5Lg0KDQpSZWdhcmRzLA0K DQpTYW1pIE11amF3YXINCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGdhb2xp bWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPiANClNlbnQ6IDI1IEZlYnJ1YXJ5IDIwMjEg MDI6MzEgUE0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgc3Bicm9nYW5Ab3V0bG9vay5jb207 IFNhbWkgTXVqYXdhciA8U2FtaS5NdWphd2FyQGFybS5jb20+DQpDYzogYXJkYit0aWFub2NvcmVA a2VybmVsLm9yZzsgbGVpZkBudXZpYWluYy5jb207IHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb207 IEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbTsgbWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb207 IGxlcnNla0ByZWRoYXQuY29tOyBNYXR0ZW8gQ2FybGluaSA8TWF0dGVvLkNhcmxpbmlAYXJtLmNv bT47IEJlbiBBZGRlcnNvbiA8QmVuLkFkZGVyc29uQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT4N ClN1YmplY3Q6IOWbnuWkjTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MSAxLzJdIEFybVZpcnRQa2cv UGxhdGZvcm1DSTogQWRkIEVES0lJIENJIHN1cHBvcnQgZm9yIEt2bXRvb2wNCg0KU2VhbjoNCg0K PiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+IOWPkeS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMu aW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiDku6PooaggU2Vhbg0KPiDlj5HpgIHml7bpl7Q6IDIw MjHlubQy5pyIMjTml6UgNjozMg0KPiDmlLbku7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBz YW1pLm11amF3YXJAYXJtLmNvbQ0KPiDmioTpgIE6IGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc7 IGxlaWZAbnV2aWFpbmMuY29tOw0KPiBzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tOyBCcmV0LkJh cmtlbGV3QG1pY3Jvc29mdC5jb207DQo+IG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tOyBnYW9s aW1pbmdAYnlvc29mdC5jb20uY247IGxlcnNla0ByZWRoYXQuY29tOw0KPiBNYXR0ZW8uQ2FybGlu aUBhcm0uY29tOyBCZW4uQWRkZXJzb25AYXJtLmNvbTsgbmRAYXJtLmNvbQ0KPiDkuLvpopg6IFJl OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDEvMl0gQXJtVmlydFBrZy9QbGF0Zm9ybUNJOiBBZGQg RURLSUkgQ0kNCj4gc3VwcG9ydCBmb3IgS3ZtdG9vbA0KPiANCj4gU2FtaSwNCj4gDQo+IERvIHlv dSBoYXZlIHRoZXNlIGluIGEgUFIgb3Igc29tZXdoZXJlIG9ubGluZSB0aGF0IGlzIGFscmVhZHkg bWVyZ2VkPw0KPiBPYnZpb3VzbHkgaSBjYW4gZG8gdGhhdCBidXQgdXN1YWxseSBkZXZlbG9wZXJz IGFscmVhZHkgaGF2ZSB0aGF0IChlaXRoZXINCj4gZWRrMiBQUiBmb3IgY2kgdGVzdGluZyBvciBv biB0aGVpciBmb3JrKS4NCj4gDQo+IG9uZSBjb21tZW50IGJlbG93Lg0KPiANCj4gVGhhbmtzDQo+ IFNlYW4NCj4gDQo+IA0KPiBPbiAxLzIyLzIwMjEgOToxOSBBTSwgU2FtaSBNdWphd2FyIHdyb3Rl Og0KPiA+IEt2bXRvb2wgaXMgYSB2aXJ0dWFsIG1hY2hpbmUgbWFuYWdlciB0aGF0IGNhbiBiZSB1 c2VkIHRvIGxhdW5jaA0KPiA+IGd1ZXN0IHBhcnRpdGlvbnMuIEFybVZpcnRQa2cgYWxyZWFkeSBo YXMgVUVGSSAodmlydHVhbC9ndWVzdCkNCj4gPiBmaXJtd2FyZSBzdXBwb3J0IGZvciBLdm10b29s IGd1ZXN0Lg0KPiA+DQo+ID4gVGhlcmVmb3JlLCB1cGRhdGUgdGhlIFBsYXRmb3JtIENJIHNjcmlw dCB0byBhZGQgc3VwcG9ydCBmb3INCj4gPiBidWlsZGluZyB0aGUgS3ZtdG9vbCBmaXJtd2FyZS4N Cj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFNhbWkgTXVqYXdhciA8c2FtaS5tdWphd2FyQGFybS5j b20+DQo+ID4gLS0tDQo+ID4gICBBcm1WaXJ0UGtnL1BsYXRmb3JtQ0kvUGxhdGZvcm1CdWlsZC5w eSB8IDEzMiArKysrKysrKysrKy0tLS0tLS0tLQ0KPiA+ICAgQXJtVmlydFBrZy9QbGF0Zm9ybUNJ L1JlYWRNZS5tZCAgICAgICAgfCAgMjEgKystLQ0KPiA+ICAgMiBmaWxlcyBjaGFuZ2VkLCA4OCBp bnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9Bcm1W aXJ0UGtnL1BsYXRmb3JtQ0kvUGxhdGZvcm1CdWlsZC5weQ0KPiBiL0FybVZpcnRQa2cvUGxhdGZv cm1DSS9QbGF0Zm9ybUJ1aWxkLnB5DQo+ID4gaW5kZXgNCj4gZGZmNjUzZTkxOWViNDIzOTFmYzU2 ZWM0NGI0MDQzYTc1Zjc5ZDE2Mi4uNDczZjdkNThkMTVjM2UyNmVmNWEyNWUyDQo+IDEwY2I2Nzk2 NzliMjgxMzEgMTAwNjQ0DQo+ID4gLS0tIGEvQXJtVmlydFBrZy9QbGF0Zm9ybUNJL1BsYXRmb3Jt QnVpbGQucHkNCj4gPiArKysgYi9Bcm1WaXJ0UGtnL1BsYXRmb3JtQ0kvUGxhdGZvcm1CdWlsZC5w eQ0KPiA+IEBAIC0yLDYgKzIsNyBAQA0KPiA+ICAgIyBTY3JpcHQgdG8gQnVpbGQgQXJtVmlydFBr ZyBVRUZJIGZpcm13YXJlDQo+ID4gICAjDQo+ID4gICAjIENvcHlyaWdodCAoYykgTWljcm9zb2Z0 IENvcnBvcmF0aW9uLg0KPiA+ICsjIENvcHlyaWdodCAoYykgMjAyMSwgQXJtIExpbWl0ZWQuIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICAgIyMNCj4gPiAgIGltcG9ydCBvcw0KPiA+IEBAIC0x MzksNyArMTQwLDggQEAgY2xhc3MgU2V0dGluZ3NNYW5hZ2VyKFVwZGF0ZVNldHRpbmdzTWFuYWdl ciwNCj4gU2V0dXBTZXR0aW5nc01hbmFnZXIsIFByRXZhbFNldHRpbmcNCj4gPg0KPiA+ICAgICAg ICAgICBUaGUgdHVwbGUgc2hvdWxkIGJlICg8d29ya3NwYWNlIHJlbGF0aXZlIHBhdGggdG8gZHNj IGZpbGU+LA0KPiA8aW5wdXQgZGljdGlvbmFyeSBvZiBkc2Mga2V5IHZhbHVlIHBhaXJzPikNCj4g PiAgICAgICAgICAgJycnDQo+IA0KPiBUaGlzIGRvZXNuJ3QgbG9vayByaWdodC4gIFdoZW4gcmV0 dXJuaW5nIHRoZSBkc2MgdG8gdXNlIGl0IHNob3VsZCBvbmx5DQo+IHJldHVybiAxIGRzYyBmaWxl LiAgVGhlIHNlY29uZCBwYXJhbWV0ZXIgb2YgdGhlIHR1cGxlIGlzIGZvciBrZXk9dmFsdWUNCj4g cGFpcnMgdG8gcHJvY2VzcyB0aGUgRFNDIGZpbGUuDQo+IA0KDQpJZiB0aGUgc2Vjb25kIHBhcmFt ZXRlciBpcyBub3QgRFNDIGZpbGUsIHRoYXQgbWVhbnMgQXJtVmlydEt2bVRvb2wuZHNjIGlzIG5v dCB1c2VkLiANClNvLCB0aGlzIHBhdGNoIGRvZXNuJ3QgZW5hYmxlIENJIHN1cHBvcnQgZm9yIEFy bVZpcnRLdm1Ub29sLiBSaWdodD8gDQoNClRoYW5rcw0KTGltaW5nDQo+IA0KPiA+IC0gICAgICAg IHJldHVybiAob3MucGF0aC5qb2luKCJBcm1WaXJ0UGtnIiwgIkFybVZpcnRRZW11LmRzYyIpLCB7 fSkNCj4gPiArICAgICAgICByZXR1cm4gKG9zLnBhdGguam9pbigiQXJtVmlydFBrZyIsICJBcm1W aXJ0UWVtdS5kc2MiKSwNCj4gPiArICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbigiQXJtVmly dFBrZyIsICJBcm1WaXJ0S3ZtVG9vbC5kc2MiKSwge30pDQo+ID4NCj4gPg0KPiA+ICAgICAgICMN Cj4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMNCj4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAjDQo+ID4gQEAgLTE1MCwxMSAr MTUyLDE1IEBAIGNsYXNzIFNldHRpbmdzTWFuYWdlcihVcGRhdGVTZXR0aW5nc01hbmFnZXIsDQo+ IFNldHVwU2V0dGluZ3NNYW5hZ2VyLCBQckV2YWxTZXR0aW5nDQo+ID4gICBjbGFzcyBQbGF0Zm9y bUJ1aWxkZXIoVWVmaUJ1aWxkZXIsIEJ1aWxkU2V0dGluZ3NNYW5hZ2VyKToNCj4gPiAgICAgICBk ZWYgX19pbml0X18oc2VsZik6DQo+ID4gICAgICAgICAgIFVlZmlCdWlsZGVyLl9faW5pdF9fKHNl bGYpDQo+ID4gKyAgICAgICAgc2VsZi5QbGF0Zm9ybUxpc3QgPSBbb3MucGF0aC5qb2luKCJBcm1W aXJ0UGtnIiwNCj4gIkFybVZpcnRRZW11LmRzYyIpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICBvcy5wYXRoLmpvaW4oIkFybVZpcnRQa2ciLA0KPiAiQXJtVmlydEt2bVRvb2wuZHNjIild DQo+ID4NCj4gPiAgICAgICBkZWYgQWRkQ29tbWFuZExpbmVPcHRpb25zKHNlbGYsIHBhcnNlck9i aik6DQo+ID4gICAgICAgICAgICcnJyBBZGQgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gdGhlIGFy Z3BhcnNlciAnJycNCj4gPiAgICAgICAgICAgcGFyc2VyT2JqLmFkZF9hcmd1bWVudCgnLWEnLCAi LS1hcmNoIiwgZGVzdD0iYnVpbGRfYXJjaCIsDQo+IHR5cGU9c3RyLCBkZWZhdWx0PSJBQVJDSDY0 IiwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJPcHRpb25hbCAt IEFyY2hpdGVjdHVyZSB0bw0KPiBidWlsZC4gIERlZmF1bHQgPSBBQVJDSDY0IikNCj4gPiArICAg ICAgICBwYXJzZXJPYmouYWRkX2FyZ3VtZW50KCctZCcsICItLWRzYyIsIGRlc3Q9ImFjdGl2ZV9w bGF0Zm9ybSIsDQo+IHR5cGU9c3RyLCBkZWZhdWx0PXNlbGYuUGxhdGZvcm1MaXN0WzBdLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iT3B0aW9uYWwgLSBQbGF0Zm9y bSB0byBidWlsZC4NCj4gRGVmYXVsdCA9ICIgKyBzZWxmLlBsYXRmb3JtTGlzdFswXSkNCj4gPg0K PiA+ICAgICAgIGRlZiBSZXRyaWV2ZUNvbW1hbmRMaW5lT3B0aW9ucyhzZWxmLCBhcmdzKToNCj4g PiAgICAgICAgICAgJycnICBSZXRyaWV2ZSBjb21tYW5kIGxpbmUgb3B0aW9ucyBmcm9tIHRoZSBh cmdwYXJzZXIgJycnDQo+ID4gQEAgLTE2Miw4ICsxNjgsMTIgQEAgY2xhc3MgUGxhdGZvcm1CdWls ZGVyKFVlZmlCdWlsZGVyLA0KPiBCdWlsZFNldHRpbmdzTWFuYWdlcik6DQo+ID4gICAgICAgICAg IHNoZWxsX2Vudmlyb25tZW50LkdldEJ1aWxkVmFycygpLlNldFZhbHVlKA0KPiA+ICAgICAgICAg ICAgICAgIlRBUkdFVF9BUkNIIiwgYXJncy5idWlsZF9hcmNoLnVwcGVyKCksICJGcm9tDQo+IENt ZExpbmUiKQ0KPiA+DQo+ID4gLSAgICAgICAgc2hlbGxfZW52aXJvbm1lbnQuR2V0QnVpbGRWYXJz KCkuU2V0VmFsdWUoDQo+ID4gLSAgICAgICAgICAgICJBQ1RJVkVfUExBVEZPUk0iLCAiQXJtVmly dFBrZy9Bcm1WaXJ0UWVtdS5kc2MiLA0KPiAiRnJvbSBDbWRMaW5lIikNCj4gPiArICAgICAgICBp ZiAoYXJncy5hY3RpdmVfcGxhdGZvcm0gPT0gc2VsZi5QbGF0Zm9ybUxpc3RbMV0pOg0KPiA+ICsg ICAgICAgICAgICBzaGVsbF9lbnZpcm9ubWVudC5HZXRCdWlsZFZhcnMoKS5TZXRWYWx1ZSgNCj4g PiArICAgICAgICAgICAgICAgICJBQ1RJVkVfUExBVEZPUk0iLCBzZWxmLlBsYXRmb3JtTGlzdFsx XSwgIkZyb20NCj4gQ21kTGluZSIpDQo+ID4gKyAgICAgICAgZWxzZToNCj4gPiArICAgICAgICAg ICAgc2hlbGxfZW52aXJvbm1lbnQuR2V0QnVpbGRWYXJzKCkuU2V0VmFsdWUoDQo+ID4gKyAgICAg ICAgICAgICAgICAiQUNUSVZFX1BMQVRGT1JNIiwgc2VsZi5QbGF0Zm9ybUxpc3RbMF0sICJGcm9t DQo+IENtZExpbmUiKQ0KPiA+DQo+ID4gICAgICAgZGVmIEdldFdvcmtzcGFjZVJvb3Qoc2VsZik6 DQo+ID4gICAgICAgICAgICcnJyBnZXQgV29ya3NwYWNlUGF0aCAnJycNCj4gPiBAQCAtMjA3LDkg KzIxNywxMiBAQCBjbGFzcyBQbGF0Zm9ybUJ1aWxkZXIoVWVmaUJ1aWxkZXIsDQo+IEJ1aWxkU2V0 dGluZ3NNYW5hZ2VyKToNCj4gPg0KPiA+ICAgICAgIGRlZiBTZXRQbGF0Zm9ybUVudihzZWxmKToN Cj4gPiAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygiUGxhdGZvcm1CdWlsZGVyIFNldFBsYXRmb3Jt RW52IikNCj4gPiAtICAgICAgICBzZWxmLmVudi5TZXRWYWx1ZSgiUFJPRFVDVF9OQU1FIiwgIkFy bVZpcnRRZW11IiwgIlBsYXRmb3JtDQo+IEhhcmRjb2RlZCIpDQo+ID4gICAgICAgICAgIHNlbGYu ZW52LlNldFZhbHVlKCJNQUtFX1NUQVJUVVBfTlNIIiwgIkZBTFNFIiwgIkRlZmF1bHQgdG8NCj4g ZmFsc2UiKQ0KPiA+ICAgICAgICAgICBzZWxmLmVudi5TZXRWYWx1ZSgiUUVNVV9IRUFETEVTUyIs ICJGQUxTRSIsICJEZWZhdWx0IHRvDQo+IGZhbHNlIikNCj4gPiArICAgICAgICBpZiAoc2VsZi5l bnYuR2V0VmFsdWUoIkFDVElWRV9QTEFURk9STSIpID09DQo+IHNlbGYuUGxhdGZvcm1MaXN0WzFd KToNCj4gPiArICAgICAgICAgICAgc2VsZi5lbnYuU2V0VmFsdWUoIlBST0RVQ1RfTkFNRSIsICJB cm1WaXJ0S3ZtdG9vbCIsDQo+ICJQbGF0Zm9ybSBIYXJkY29kZWQiKQ0KPiA+ICsgICAgICAgIGVs c2U6DQo+ID4gKyAgICAgICAgICAgIHNlbGYuZW52LlNldFZhbHVlKCJQUk9EVUNUX05BTUUiLCAi QXJtVmlydFFlbXUiLA0KPiAiUGxhdGZvcm0gSGFyZGNvZGVkIikNCj4gPiAgICAgICAgICAgcmV0 dXJuIDANCj4gPg0KPiA+ICAgICAgIGRlZiBQbGF0Zm9ybVByZUJ1aWxkKHNlbGYpOg0KPiA+IEBA IC0yMTksNTggKzIzMiw2MSBAQCBjbGFzcyBQbGF0Zm9ybUJ1aWxkZXIoVWVmaUJ1aWxkZXIsDQo+ IEJ1aWxkU2V0dGluZ3NNYW5hZ2VyKToNCj4gPiAgICAgICAgICAgcmV0dXJuIDANCj4gPg0KPiA+ ICAgICAgIGRlZiBGbGFzaFJvbUltYWdlKHNlbGYpOg0KPiA+IC0gICAgICAgIFZpcnR1YWxEcml2 ZSA9IG9zLnBhdGguam9pbihzZWxmLmVudi5HZXRWYWx1ZSgNCj4gPiAtICAgICAgICAgICAgIkJV SUxEX09VVFBVVF9CQVNFIiksICJWaXJ0dWFsRHJpdmUiKQ0KPiA+IC0gICAgICAgIG9zLm1ha2Vk aXJzKFZpcnR1YWxEcml2ZSwgZXhpc3Rfb2s9VHJ1ZSkNCj4gPiAtICAgICAgICBPdXRwdXRQYXRo X0ZWID0gb3MucGF0aC5qb2luKA0KPiA+IC0gICAgICAgICAgICBzZWxmLmVudi5HZXRWYWx1ZSgi QlVJTERfT1VUUFVUX0JBU0UiKSwgIkZWIikNCj4gPiAtICAgICAgICBCdWlsdF9GViA9IG9zLnBh dGguam9pbihPdXRwdXRQYXRoX0ZWLCAiUUVNVV9FRkkuZmQiKQ0KPiA+IC0NCj4gPiAtICAgICAg ICAjIHBhZCBmZCB0byA2NG1iDQo+ID4gLSAgICAgICAgd2l0aCBvcGVuKEJ1aWx0X0ZWLCAiYWIi KSBhcyBmdmZpbGU6DQo+ID4gLSAgICAgICAgICAgIGZ2ZmlsZS5zZWVrKDAsIG9zLlNFRUtfRU5E KQ0KPiA+IC0gICAgICAgICAgICBhZGRpdGlvbmFsID0gYidcMCcgKiAoKDY0ICogMTAyNCAqIDEw MjQpLWZ2ZmlsZS50ZWxsKCkpDQo+ID4gLSAgICAgICAgICAgIGZ2ZmlsZS53cml0ZShhZGRpdGlv bmFsKQ0KPiA+IC0NCj4gPiAtICAgICAgICAjIFFFTVUgbXVzdCBiZSBvbiB0aGF0IHBhdGgNCj4g PiAtDQo+ID4gLSAgICAgICAgIyBVbmlxdWUgQ29tbWFuZCBhbmQgQXJncyBwYXJhbWV0ZXJzIHBl ciBBUkNIDQo+ID4gLSAgICAgICAgaWYgKHNlbGYuZW52LkdldFZhbHVlKCJUQVJHRVRfQVJDSCIp LnVwcGVyKCkgPT0gIkFBUkNINjQiKToNCj4gPiAtICAgICAgICAgICAgY21kID0gInFlbXUtc3lz dGVtLWFhcmNoNjQiDQo+ID4gLSAgICAgICAgICAgIGFyZ3MgPSAiLU0gdmlydCINCj4gPiAtICAg ICAgICAgICAgYXJncyArPSAiIC1jcHUgY29ydGV4LWE1NyINCj4gIyBlbXVsYXRlIGNwdQ0KPiA+ IC0gICAgICAgIGVsaWYoc2VsZi5lbnYuR2V0VmFsdWUoIlRBUkdFVF9BUkNIIikudXBwZXIoKSA9 PSAiQVJNIik6DQo+ID4gLSAgICAgICAgICAgIGNtZCA9ICJxZW11LXN5c3RlbS1hcm0iDQo+ID4g LSAgICAgICAgICAgIGFyZ3MgPSAiLU0gdmlydCINCj4gPiAtICAgICAgICAgICAgYXJncyArPSAi IC1jcHUgY29ydGV4LWExNSINCj4gIyBlbXVsYXRlIGNwdQ0KPiA+ICsgICAgICAgIGlmIChzZWxm LmVudi5HZXRWYWx1ZSgiQUNUSVZFX1BMQVRGT1JNIikgPT0NCj4gc2VsZi5QbGF0Zm9ybUxpc3Rb MV0pOg0KPiA+ICsgICAgICAgICAgICAgIHJldHVybiAwDQo+ID4gICAgICAgICAgIGVsc2U6DQo+ ID4gLSAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQ0KPiA+IC0NCj4gPiAt ICAgICAgICAjIENvbW1vbiBBcmdzDQo+ID4gLSAgICAgICAgYXJncyArPSAiIC1wZmxhc2ggIiAr IEJ1aWx0X0ZWDQo+ICMgcGF0aCB0byBmdw0KPiA+IC0gICAgICAgIGFyZ3MgKz0gIiAtbSAxMDI0 Ig0KPiAjIDFnYiBtZW1vcnkNCj4gPiAtICAgICAgICAjIHR1cm4gb2ZmIG5ldHdvcmsNCj4gPiAt ICAgICAgICBhcmdzICs9ICIgLW5ldCBub25lIg0KPiA+IC0gICAgICAgICMgU2VyaWFsIG1lc3Nh Z2VzIG91dA0KPiA+IC0gICAgICAgIGFyZ3MgKz0gIiAtc2VyaWFsIHN0ZGlvIg0KPiA+IC0gICAg ICAgICMgTW91bnQgZGlzayB3aXRoIHN0YXJ0dXAubnNoDQo+ID4gLSAgICAgICAgYXJncyArPSBm IiAtZHJpdmUNCj4gZmlsZT1mYXQ6cnc6e1ZpcnR1YWxEcml2ZX0sZm9ybWF0PXJhdyxtZWRpYT1k aXNrIg0KPiA+IC0NCj4gPiAtICAgICAgICAjIENvbmRpdGlvbmFsIEFyZ3MNCj4gPiAtICAgICAg ICBpZiAoc2VsZi5lbnYuR2V0VmFsdWUoIlFFTVVfSEVBRExFU1MiKS51cHBlcigpID09ICJUUlVF Iik6DQo+ID4gLSAgICAgICAgICAgIGFyZ3MgKz0gIiAtZGlzcGxheSBub25lIiAgIyBubyBncmFw aGljcw0KPiA+IC0NCj4gPiAtICAgICAgICBpZiAoc2VsZi5lbnYuR2V0VmFsdWUoIk1BS0VfU1RB UlRVUF9OU0giKS51cHBlcigpID09ICJUUlVFIik6DQo+ID4gLSAgICAgICAgICAgIGYgPSBvcGVu KG9zLnBhdGguam9pbihWaXJ0dWFsRHJpdmUsICJzdGFydHVwLm5zaCIpLCAidyIpDQo+ID4gLSAg ICAgICAgICAgIGYud3JpdGUoIkJPT1QgU1VDQ0VTUyAhISEgXG4iKQ0KPiA+IC0gICAgICAgICAg ICAjIGFkZCBjb21tYW5kcyBoZXJlDQo+ID4gLSAgICAgICAgICAgIGYud3JpdGUoInJlc2V0IC1z XG4iKQ0KPiA+IC0gICAgICAgICAgICBmLmNsb3NlKCkNCj4gPiAtDQo+ID4gLSAgICAgICAgcmV0 ID0gUnVuQ21kKGNtZCwgYXJncykNCj4gPiAtDQo+ID4gLSAgICAgICAgaWYgcmV0ID09IDB4YzAw MDAwMDU6DQo+ID4gLSAgICAgICAgICAgICMgZm9yIHNvbWUgcmVhc29uIGdldHRpbmcgYSBjMDAw MDAwNSBvbiBzdWNjZXNzZnVsIHJldHVybg0KPiA+IC0gICAgICAgICAgICByZXR1cm4gMA0KPiA+ IC0NCj4gPiAtICAgICAgICByZXR1cm4gcmV0DQo+ID4gKyAgICAgICAgICAgICAgVmlydHVhbERy aXZlID0gb3MucGF0aC5qb2luKHNlbGYuZW52LkdldFZhbHVlKA0KPiA+ICsgICAgICAgICAgICAg ICAgICAiQlVJTERfT1VUUFVUX0JBU0UiKSwgIlZpcnR1YWxEcml2ZSIpDQo+ID4gKyAgICAgICAg ICAgICAgb3MubWFrZWRpcnMoVmlydHVhbERyaXZlLCBleGlzdF9vaz1UcnVlKQ0KPiA+ICsgICAg ICAgICAgICAgIE91dHB1dFBhdGhfRlYgPSBvcy5wYXRoLmpvaW4oDQo+ID4gKyAgICAgICAgICAg ICAgICAgIHNlbGYuZW52LkdldFZhbHVlKCJCVUlMRF9PVVRQVVRfQkFTRSIpLCAiRlYiKQ0KPiA+ ICsgICAgICAgICAgICAgIEJ1aWx0X0ZWID0gb3MucGF0aC5qb2luKE91dHB1dFBhdGhfRlYsICJR RU1VX0VGSS5mZCIpDQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICMgcGFkIGZkIHRvIDY0bWIN Cj4gPiArICAgICAgICAgICAgICB3aXRoIG9wZW4oQnVpbHRfRlYsICJhYiIpIGFzIGZ2ZmlsZToN Cj4gPiArICAgICAgICAgICAgICAgICAgZnZmaWxlLnNlZWsoMCwgb3MuU0VFS19FTkQpDQo+ID4g KyAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWwgPSBiJ1wwJyAqICgoNjQgKiAxMDI0ICogMTAy NCktZnZmaWxlLnRlbGwoKSkNCj4gPiArICAgICAgICAgICAgICAgICAgZnZmaWxlLndyaXRlKGFk ZGl0aW9uYWwpDQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICMgUUVNVSBtdXN0IGJlIG9uIHRo YXQgcGF0aA0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAjIFVuaXF1ZSBDb21tYW5kIGFuZCBB cmdzIHBhcmFtZXRlcnMgcGVyIEFSQ0gNCj4gPiArICAgICAgICAgICAgICBpZiAoc2VsZi5lbnYu R2V0VmFsdWUoIlRBUkdFVF9BUkNIIikudXBwZXIoKSA9PQ0KPiAiQUFSQ0g2NCIpOg0KPiA+ICsg ICAgICAgICAgICAgICAgICBjbWQgPSAicWVtdS1zeXN0ZW0tYWFyY2g2NCINCj4gPiArICAgICAg ICAgICAgICAgICAgYXJncyA9ICItTSB2aXJ0Ig0KPiA+ICsgICAgICAgICAgICAgICAgICBhcmdz ICs9ICIgLWNwdSBjb3J0ZXgtYTU3Ig0KPiAjIGVtdWxhdGUgY3B1DQo+ID4gKyAgICAgICAgICAg ICAgZWxpZihzZWxmLmVudi5HZXRWYWx1ZSgiVEFSR0VUX0FSQ0giKS51cHBlcigpID09DQo+ICJB Uk0iKToNCj4gPiArICAgICAgICAgICAgICAgICAgY21kID0gInFlbXUtc3lzdGVtLWFybSINCj4g PiArICAgICAgICAgICAgICAgICAgYXJncyA9ICItTSB2aXJ0Ig0KPiA+ICsgICAgICAgICAgICAg ICAgICBhcmdzICs9ICIgLWNwdSBjb3J0ZXgtYTE1Ig0KPiAjIGVtdWxhdGUgY3B1DQo+ID4gKyAg ICAgICAgICAgICAgZWxzZToNCj4gPiArICAgICAgICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVt ZW50ZWRFcnJvcigpDQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICMgQ29tbW9uIEFyZ3MNCj4g PiArICAgICAgICAgICAgICBhcmdzICs9ICIgLXBmbGFzaCAiICsgQnVpbHRfRlYNCj4gIyBwYXRo IHRvIGZ3DQo+ID4gKyAgICAgICAgICAgICAgYXJncyArPSAiIC1tIDEwMjQiDQo+ICMgMWdiIG1l bW9yeQ0KPiA+ICsgICAgICAgICAgICAgICMgdHVybiBvZmYgbmV0d29yaw0KPiA+ICsgICAgICAg ICAgICAgIGFyZ3MgKz0gIiAtbmV0IG5vbmUiDQo+ID4gKyAgICAgICAgICAgICAgIyBTZXJpYWwg bWVzc2FnZXMgb3V0DQo+ID4gKyAgICAgICAgICAgICAgYXJncyArPSAiIC1zZXJpYWwgc3RkaW8i DQo+ID4gKyAgICAgICAgICAgICAgIyBNb3VudCBkaXNrIHdpdGggc3RhcnR1cC5uc2gNCj4gPiAr ICAgICAgICAgICAgICBhcmdzICs9IGYiIC1kcml2ZQ0KPiBmaWxlPWZhdDpydzp7VmlydHVhbERy aXZlfSxmb3JtYXQ9cmF3LG1lZGlhPWRpc2siDQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICMg Q29uZGl0aW9uYWwgQXJncw0KPiA+ICsgICAgICAgICAgICAgIGlmIChzZWxmLmVudi5HZXRWYWx1 ZSgiUUVNVV9IRUFETEVTUyIpLnVwcGVyKCkgPT0NCj4gIlRSVUUiKToNCj4gPiArICAgICAgICAg ICAgICAgICAgYXJncyArPSAiIC1kaXNwbGF5IG5vbmUiICAjIG5vIGdyYXBoaWNzDQo+ID4gKw0K PiA+ICsgICAgICAgICAgICAgIGlmIChzZWxmLmVudi5HZXRWYWx1ZSgiTUFLRV9TVEFSVFVQX05T SCIpLnVwcGVyKCkgPT0NCj4gIlRSVUUiKToNCj4gPiArICAgICAgICAgICAgICAgICAgZiA9IG9w ZW4ob3MucGF0aC5qb2luKFZpcnR1YWxEcml2ZSwgInN0YXJ0dXAubnNoIiksDQo+ICJ3IikNCj4g PiArICAgICAgICAgICAgICAgICAgZi53cml0ZSgiQk9PVCBTVUNDRVNTICEhISBcbiIpDQo+ID4g KyAgICAgICAgICAgICAgICAgICMgYWRkIGNvbW1hbmRzIGhlcmUNCj4gPiArICAgICAgICAgICAg ICAgICAgZi53cml0ZSgicmVzZXQgLXNcbiIpDQo+ID4gKyAgICAgICAgICAgICAgICAgIGYuY2xv c2UoKQ0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICByZXQgPSBSdW5DbWQoY21kLCBhcmdzKQ0K PiA+ICsNCj4gPiArICAgICAgICAgICAgICBpZiByZXQgPT0gMHhjMDAwMDAwNToNCj4gPiArICAg ICAgICAgICAgICAgICAgIyBmb3Igc29tZSByZWFzb24gZ2V0dGluZyBhIGMwMDAwMDA1IG9uIHN1 Y2Nlc3NmdWwNCj4gcmV0dXJuDQo+ID4gKyAgICAgICAgICAgICAgICAgIHJldHVybiAwDQo+ID4g Kw0KPiA+ICsgICAgICAgICAgICAgIHJldHVybiByZXQNCj4gPiBkaWZmIC0tZ2l0IGEvQXJtVmly dFBrZy9QbGF0Zm9ybUNJL1JlYWRNZS5tZA0KPiBiL0FybVZpcnRQa2cvUGxhdGZvcm1DSS9SZWFk TWUubWQNCj4gPiBpbmRleA0KPiA3YzExZDkyNWY1OWVkZTQ3MTdkNGIyMTBkZjlkMmI5N2Y3NTVl YmQ4Li45OGEzY2E5MWY0MGMwNzViZjFhMjA2OQ0KPiBlZGQ5OWU5NjgwYTEyNTJlOSAxMDA2NDQN Cj4gPiAtLS0gYS9Bcm1WaXJ0UGtnL1BsYXRmb3JtQ0kvUmVhZE1lLm1kDQo+ID4gKysrIGIvQXJt VmlydFBrZy9QbGF0Zm9ybUNJL1JlYWRNZS5tZA0KPiA+IEBAIC02LDEzICs2LDE0IEBAIHRvIHVz ZSB0aGUgc2FtZSBQeXRvb2xzIGJhc2VkIGJ1aWxkIGluZnJhc3RydWN0dXJlDQo+IGxvY2FsbHku DQo+ID4gICAjIyBTdXBwb3J0ZWQgQ29uZmlndXJhdGlvbiBEZXRhaWxzDQo+ID4NCj4gPiAgIFRo aXMgc29sdXRpb24gZm9yIGJ1aWxkaW5nIGFuZCBydW5uaW5nIEFybVZpcnRQa2cgaGFzIG9ubHkg YmVlbiB2YWxpZGF0ZWQNCj4gd2l0aCBVYnVudHUNCj4gPiAtMTguMDQgYW5kIHRoZSBHQ0M1IHRv b2xjaGFpbi4gVHdvIGRpZmZlcmVudCBmaXJtd2FyZSBidWlsZHMgYXJlIHN1cHBvcnRlZA0KPiBh bmQgYXJlDQo+ID4gLWRlc2NyaWJlZCBiZWxvdy4NCj4gPiArMTguMDQgYW5kIHRoZSBHQ0M1IHRv b2xjaGFpbi4gVGhlIHN1cHBvcnRlZCBmaXJtd2FyZSBidWlsZHMgYXJlDQo+IGRlc2NyaWJlZCBi ZWxvdy4NCj4gPg0KPiA+IC18IENvbmZpZ3VyYXRpb24gbmFtZSAgICAgIHwgQXJjaGl0ZWN0dXJl ICAgICAgIHwgRFNDIEZpbGUNCj4gfEFkZGl0aW9uYWwgRmxhZ3MgfA0KPiA+IC18IDotLS0tLS0t LS0tICAgICAgICAgICAgIHwgOi0tLS0tICAgICAgICAgICAgIHwgOi0tLS0tDQo+IHwgOi0tLS0g ICAgICAgICAgIHwNCj4gPiAtfCBBQVJDSDY0ICAgICAgICAgICAgICAgICB8IEFBUkNINjQgICAg ICAgICAgICB8DQo+IEFybVZpcnRRZW11LmRzYyAgfCBOb25lICAgICAgICAgICAgfA0KPiA+IC18 IEFSTSAgICAgICAgICAgICAgICAgICAgIHwgQVJNICAgICAgICAgICAgICAgIHwNCj4gQXJtVmly dFFlbXUuZHNjICB8IE5vbmUgICAgICAgICAgICB8DQo+ID4gK3wgQ29uZmlndXJhdGlvbiBuYW1l ICAgICAgfCBBcmNoaXRlY3R1cmUgICAgICAgfCBEU0MgRmlsZQ0KPiB8QWRkaXRpb25hbCBGbGFn cyB8DQo+ID4gK3wgOi0tLS0tLS0tLS0gICAgICAgICAgICAgfCA6LS0tLS0gICAgICAgICAgICAg fCA6LS0tLS0NCj4gfCA6LS0tLSAgICAgICAgICAgfA0KPiA+ICt8IEFBUkNINjQgICAgICAgICAg ICAgICAgIHwgQUFSQ0g2NCAgICAgICAgICAgIHwNCj4gQXJtVmlydFFlbXUuZHNjICAgICB8IE5v bmUgICAgICAgICAgICB8DQo+ID4gK3wgQVJNICAgICAgICAgICAgICAgICAgICAgfCBBUk0gICAg ICAgICAgICAgICAgfA0KPiBBcm1WaXJ0UWVtdS5kc2MgICAgIHwgTm9uZSAgICAgICAgICAgIHwN Cj4gPiArfCBBQVJDSDY0ICAgICAgICAgICAgICAgICB8IEFBUkNINjQgICAgICAgICAgICB8DQo+ IEFybVZpcnRLdm1Ub29sLmRzYyAgfCBOb25lICAgICAgICAgICAgfA0KPiA+ICt8IEFSTSAgICAg ICAgICAgICAgICAgICAgIHwgQVJNICAgICAgICAgICAgICAgIHwNCj4gQXJtVmlydEt2bVRvb2wu ZHNjICB8IE5vbmUgICAgICAgICAgICB8DQo+ID4NCj4gPiAgICMjIEVESzIgRGV2ZWxvcGVyIGVu dmlyb25tZW50DQo+ID4NCj4gPiBAQCAtNzksNyArODAsMTMgQEAgUHl0b29scyBidWlsZCBzeXN0 ZW0uDQo+ID4gICAgICAgYGBgDQo+ID4NCj4gPiAgICAgICAtIHVzZSBgc3R1YXJ0X2J1aWxkIC1j IEFybVZpcnRQa2cvUGxhdGZvcm1DSS9QbGF0Zm9ybUJ1aWxkLnB5IC1oYA0KPiBvcHRpb24gdG8g c2VlIGFkZGl0aW9uYWwNCj4gPiAtICAgIG9wdGlvbnMgbGlrZSBgLS1jbGVhbmANCj4gPiArICAg IG9wdGlvbnMgbGlrZSBgLS1jbGVhbmAsIGAtLWRzY2AsIGV0Yy4NCj4gPiArDQo+ID4gKyAgICBF eGFtcGxlOiBUaGUgYC0tZHNjYCBvcHRpb24gY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgcGxh dGZvcm0gdG8NCj4gYnVpbGQuDQo+ID4gKw0KPiA+ICsgICAgICBgYGAgYmFzaA0KPiA+ICsgICAg ICBzdHVhcnRfYnVpbGQgLWMgQXJtVmlydFBrZy9QbGF0Zm9ybUNJL1BsYXRmb3JtQnVpbGQucHkN Cj4gVE9PTF9DSEFJTl9UQUc9PFRPT0xfQ0hBSU5fVEFHPiAtYSA8VEFSR0VUX0FSQ0g+IC0tZHNj DQo+IEFybVZpcnRQa2cvQXJtVmlydEt2bVRvb2wuZHNjDQo+ID4gKyAgICAgIGBgYA0KPiA+DQo+ ID4gICA4LiBSdW5uaW5nIEVtdWxhdG9yDQo+ID4gICAgICAgLSBZb3UgY2FuIGFkZCBgLS1GbGFz aFJvbWAgdG8gdGhlIGVuZCBvZiB5b3VyIGJ1aWxkIGNvbW1hbmQgYW5kDQo+IHRoZSBlbXVsYXRv ciB3aWxsIHJ1biBhZnRlciB0aGUNCj4gPg0KPiANCj4gDQo+IA0KPiANCg0KDQoNCg==