From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id AD7C978080F for ; Wed, 14 Feb 2024 17:27:01 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=JAyB5U0Wd2dAlIRHWhcu+C4QKXnVZY9DFKzs/LKrjYE=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1707931620; v=1; b=aoHPmMcgdJIHvEeQUCp2HanPx/VUacBQIcz0IaZuJiF0rEvtd69ozEcuguAsw0bd2slYqG0x 695s01sTvr706n2dfDERm5dSW297qIovoI3gWqKt/OeJv5jaIoFBEyzCvGvbcNsK6JRircgSdoI hE4HuP49e+AySBmK5LXufBwQ= X-Received: by 127.0.0.2 with SMTP id WGayYY7687511x6mSijSHw0S; Wed, 14 Feb 2024 09:27:00 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.15]) by mx.groups.io with SMTP id smtpd.web10.46892.1707931619627419356 for ; Wed, 14 Feb 2024 09:26:59 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10984"; a="2116209" X-IronPort-AV: E=Sophos;i="6.06,160,1705392000"; d="scan'208";a="2116209" X-Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Feb 2024 09:26:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,160,1705392000"; d="scan'208";a="3326662" X-Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orviesa010.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 14 Feb 2024 09:26:59 -0800 X-Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 14 Feb 2024 09:26:58 -0800 X-Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 14 Feb 2024 09:26:58 -0800 X-Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Wed, 14 Feb 2024 09:26:58 -0800 X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 14 Feb 2024 09:26:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cV63bJc/OtTcGWPge1xie97weONYx8qNOLLZ4MCx5sKKvdurthXMapvH2hhzuwQ8nqJY05+O/ykHYeK7d8QpQ3ArTMcM7jILsAqMr+1Uke/6bbkESaEFCGLb8IGOYO8mUzGVcui+22a7mArDxM91/r9Tcl1ulZMVCioA7beMIEWO8lPsctCGV94UarBhpFP5F3zdb/oG3jThwy9HKC3Ph5QHAwsSkJH6cSju04SBGE1MY4CgPgOTuCYGcieMN7jthR3Gek5gx3f4A1yDja/Ivyyor2If0O8OLSAaJSlzZPqSQ5OlL3q0qwaQVdR/Jr62VIaYoz8ECh8ZQhpHNh9kfQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7nQxCc6aXs8eVV4T0lzGtH6KxiZg/IAGlSsgInFMNJ4=; b=FwiKQU4Kpn7OZZ2XiJWRZSg3eLMLutFFuu5+2JuMrlbmeEZPkdPL3Gq96IpRS7oodpp7ETeTL85fyyW8dSEArL98ZtPjyRBrcw92lq6j31QlpXzwl9DLCCbJU0/OYkZ/cADNUPkO/7iF+pgU/3CoqilEKNfz1/fgsX6qAGlaQSrUHyRBXGvO3ooD+sRtwBp0L8cVa+XPkN3tYpzKMwNiyUTRfkbH5MLXYKryBsWszokRjoBe7QR2FY5mNgaTbUIMsa1XEV2aXTMsvn2zV9ienjfi+P1pfEAkrcl1Ztpx75ggdfpIRbkjvnZ2Kv1CxIzlWAPNp855R+QnZzj6Fmv5Lw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by BL3PR11MB5700.namprd11.prod.outlook.com (2603:10b6:208:33f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.39; Wed, 14 Feb 2024 17:26:55 +0000 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00%6]) with mapi id 15.20.7292.026; Wed, 14 Feb 2024 17:26:54 +0000 From: "Michael D Kinney" To: Leif Lindholm , "devel@edk2.groups.io" , "lersek@redhat.com" , "Leif Lindholm" , "Andrew Fish (afish@apple.com)" , "Gao, Liming" CC: "Tan, Dun" , Gerd Hoffmann , "Kumar, Rahul R" , "Ni, Ray" , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-stable202402 PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: distinguish GetSmBase() failure modes Thread-Topic: [edk2-devel] [edk2-stable202402 PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: distinguish GetSmBase() failure modes Thread-Index: AQHaXsEDW6xfWbbVbkmFkNYEajHo+bEIy7iAgABd+BCAAKaSgIAASBgA Date: Wed, 14 Feb 2024 17:26:54 +0000 Message-ID: References: <20240213210918.16372-1-lersek@redhat.com> <20240213210918.16372-2-lersek@redhat.com> <5f807038-3e4b-0d82-6fee-37b81fd8e9f6@redhat.com> <8b4bffe9-2ac2-4a9f-873a-13a90f887b4a@quicinc.com> In-Reply-To: <8b4bffe9-2ac2-4a9f-873a-13a90f887b4a@quicinc.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|BL3PR11MB5700:EE_ x-ms-office365-filtering-correlation-id: cbd4ef85-32df-4dbf-02ed-08dc2d8223cb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: 5xvGXJvku6R2bodiG+uVG4WzEzY5GzeZxX0uyStzBONJLbvDQXjN5jn5ISOGhd3V0R5rHN+bm7hPu2Osxpq7NcYxQ+gkMf7Lq7ya+Z/2DDvqV9XPN/45QffDpm6AxV4hINyDi4vlqpjwN51dgCO50rD11DdKCMKhqbRZui824+Wn/RRXyjHXtWLFiGun/xxnFqG7/9PZepWdel85v38Ghe8Gn1Tymw/KvhYhlcNpT356YkBVsU4yde3Nhf7lVbZ6+M13juC/YmqgAgfIhVknt5mqkiKHhU6WGxZ1fk9p4dZVaWUrhI/jzSZVTyZ/pDeiRS7xegDNzdNINq0/57TWFayz3W5qsj473VVpkVrqjsBPcEvUz3IYP/vN6ZRuibn92sIGveeCLe05qItRLh9a+1nuWun/ad56IUcEELyncaIbac9QtPvdR7dU3oYrNujwodSfw/IGhpMyNSX3A1h53JAmmYDfGasH7QHucEcMMEI1Hh+/BhDxG9dIb8HraqV/DxEcIOXYxBLfYlYuQ/z0SsNGlFvxllUjMuyiId9m+QHo1ezCVGIHG/28N6zvZU6SDFG+zVKcUO1RcxImduCSM3Ze17bfD+eIaw6yFyZ3HN6ljLGWbBGqoVWWgV9XKHj92266ce3ysSjUOv93oBIg7Q== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QnM5Y1pwVWlOaUkwK0V4ZnRaZkptRTlQMXRTemdZaEdyZDhCNDF4UmtDVmtX?= =?utf-8?B?SmNnZjFwVlQ2cGRCMjU5S3RVY1JtM2ZSdjl4WTh4bkRtZHlyK1AwMGZBMEJK?= =?utf-8?B?cGVXTG9TVm5RQWFiZ0gvL00xa2dlcG15U1FpQVFIU1F5YUhhOXJiVEc3WXV3?= =?utf-8?B?bm5OYm1xWEJYOGFNd2ZBSTF0YU9KVng3OHd4eGMwRC9zTmxKcmlHSEtzZW1t?= =?utf-8?B?NkVocXE0dFVmRGdNT0FTQkV2eEZtWUZtQk5UcTdHZklLMWhaNGQ4UTJ1a0hL?= =?utf-8?B?VXBoT1pIbjRKOUlkOWJxOEcwRjJJZ1FKN0JMc2NESUJNVmNYdlVOTjQzcFJS?= =?utf-8?B?S1dLTkk5UmZEMjB1THRaWkVYZ29XTldsTmJtZ0d4UDNXOE1tY05xWnNkVC9O?= =?utf-8?B?TFNkMUVkaGRBR0h3OEkxT2pYb2ZsQURucy9SYjlGblY3cVpLMFVkTStGN1FJ?= =?utf-8?B?ZXBnNXFPMksweGVXemgxOVFsVWJtMjRLczYwUFZjUmJrV2FHYzZkWFBLVTJm?= =?utf-8?B?Vk5vQ0JQQnQzbk5QL1lTdWJ5MlFPeWY5MmhpRjdyTDZva2tEVHZFY3lERlFJ?= =?utf-8?B?UHM5ZjB5blVvOVJSK2JYRFZJT1JESGNmMTc2SmhzYlQ1L3FqNGV1SVpQNEdl?= =?utf-8?B?WGYyOGNpNEJSOG1HSjVOMGp4ZHVGZFVMWk5IaldFZUI2Y0RxajhtY2Jld0M5?= =?utf-8?B?RWFDVmRhTHlQbGtuaTJGWEJnbkZWTzluKzBXUmhOK0Y3dkx0ZHZuWHhCc2hQ?= =?utf-8?B?bDNuNkZ0MUdkN3Z4eEZScENuUW1SS3dhUVBUSWwxMjNNMXBoNm5ySlNTbkgw?= =?utf-8?B?cmpvaXQvWXhLVERmSkNkNFVRVmtPdUZ2dWhoZGdFa1oySHJVN1REanFQbnZC?= =?utf-8?B?cUJYNGxHd2IxZmJteW41V2ljbjBucFdaZ2V5YXRsLzlGdXIvaHFZRk5wSE9E?= =?utf-8?B?T25QNFZjUVdvVVpuNXlNalpIUWhWbWpFVUJDYXpuM0FLVTcvYmgzZWRkUVdQ?= =?utf-8?B?Y09kNEZXNkFmNER0VzdRWXozOElkNkRSZlRBRjQvUzdqcUprNVBLQ3NkS1ZT?= =?utf-8?B?aHNzM0RPczBEMHVZdllxbUtCMUhkMStRUjRvVUowdDF6eVdXY01tK1FldjRQ?= =?utf-8?B?QStwck81R1JJU3hmcUcvS3NGbnFGcUVuRU8zMjVFQTducjR0Mm9VVEY2b1Z5?= =?utf-8?B?TC8yU1FjZ21pb203enhEUjZjdGlhMUswM2hmbG9ZQ0pNQWdTeGNnMFNIVmpi?= =?utf-8?B?dVF4TEJKRWtDYUFhSjdSNHdEVFJRTEhMTlpLUE0wZE5rOW1pN280VXhLbVM5?= =?utf-8?B?NnZNQ3ZDcVArRUd5SFJka2xqU0dGa3hUT2FKZDZuUjVNLzdBOHN3eFAzYXVH?= =?utf-8?B?TzNKRVB2R3NHcnBjTkNiVVBDR1JzUTgxUDE5RU11dmhhYml2MkN5MTdhTVha?= =?utf-8?B?WGk4NEN4cjBISGZKUmdLWm5uNHMzdGxqalZPU2xPRTQwMFNVMG5BN0p5bEJt?= =?utf-8?B?YVNSQWd6QXlxR3dVQUVIS3BCUjdYWVI1RzZ2aXA3bWNuYW5hWmpXZEp3TzBN?= =?utf-8?B?K3pDSnJURHVOcnVxQXluWTg2MHRXR214T2VJRHJpcWRIUjlkMzBYeDR3dSta?= =?utf-8?B?ai9RTWpjZkRZWnUxalR1Y0lXYUtHWFZDZWdzOERqT055S2hDQnRQTDZnZFpi?= =?utf-8?B?ZzRYenA2Rk9PQ0NWVjA0eXZ0d2tRa0ZEVVJrRnRWZGgxMXl3WEZ3dUwyd2dE?= =?utf-8?B?MXkvMEJIY2g1SytLTU45QmZwUnBHVjN3VFhDai82eWsxdjYrQXoyRUVvbklT?= =?utf-8?B?UG9sTU1PQS82Y29JM3MvYmc3aUd5Rm95Z0pCZHNPUFlyTUpQWkJFTS9QRERR?= =?utf-8?B?R2RBakE1TzZ6TzZ5amlzbmUwcHNTSXl2N0pHaDdtbW5tc3JxZ0g1Q3l5d0FC?= =?utf-8?B?QUJNQTdYYTJKcEs2enNmWmJwQzJ2MStQRTVpeUp1T3FDU1h4UUlWRitBd0pu?= =?utf-8?B?Zjk0QzNmSXBkOWE0VnpoNXlER2Qya0Z2MzdpUjk3bXJvMlJkWWlyclVYYUhj?= =?utf-8?B?UzljeG1QQmZNeEhxRFhIVDJjK1dtczZuZXZhMW9KdGJtVEdES2hjck42bk1m?= =?utf-8?B?RmZFM2Vubmh3RFV4TkJiOE5BcFlwdzFaMlBjZVhTcWpFNmNZTEZQNnBNR1FV?= =?utf-8?B?MGc9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cbd4ef85-32df-4dbf-02ed-08dc2d8223cb X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2024 17:26:54.8939 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: migjN9QG9nHQt78iTu9neW9QsmxA8VX4DG4qSQcBqtN6noovr5Fqi/ZHAXzLlkuE2hX7n5G8LHPkHksr63jvEzw6MhlssyOOSaExCLbiv6Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR11MB5700 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,michael.d.kinney@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: UVS16kap22cl7ZmCyftc85lZx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=aoHPmMcg; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io TWVyZ2VkOiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC81MzczDQoNCj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGVpZiBMaW5kaG9sbSA8cXVpY19s bGluZGhvbEBxdWljaW5jLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFyeSAxNCwgMjAy NCA1OjA4IEFNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQN Cj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgbGVyc2VrQHJlZGhhdC5jb207IExlaWYg TGluZGhvbG0NCj4gPGxsaW5kaG9sQHF0aS5xdWFsY29tbS5jb20+OyBBbmRyZXcgRmlzaCAoYWZp c2hAYXBwbGUuY29tKQ0KPiA8YWZpc2hAYXBwbGUuY29tPjsgR2FvLCBMaW1pbmcgPGdhb2xpbWlu Z0BieW9zb2Z0LmNvbS5jbj4NCj4gQ2M6IFRhbiwgRHVuIDxkdW4udGFuQGludGVsLmNvbT47IEdl cmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPjsNCj4gS3VtYXIsIFJhaHVsIFIgPHJhaHVs LnIua3VtYXJAaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbZWRrMi1zdGFibGUyMDI0MDIgUEFUQ0ggMS8yXQ0KPiBVZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tOiBkaXN0aW5ndWlzaCBHZXRTbUJhc2UoKSBmYWlsdXJlIG1v ZGVzDQo+IA0KPiBPbiAyMDI0LTAyLTE0IDAzOjQzLCBNaWNoYWVsIEQgS2lubmV5IHdyb3RlOg0K PiA+IEhpIExhc3psbywNCj4gPg0KPiA+IFRoYW5rIHlvdSBmb3IgdGhlIHF1aWNrIGZpeC4NCj4g Pg0KPiA+IEkgaGF2ZSByZXZpZXdlZCB0aGUgY2hhbmdlcy4gIEkgYWdyZWUgdGhleSBmaXggdGhl IGlzc3VlIGF0IGhhbmQuDQo+ID4NCj4gPiBSZXZpZXdlZC1ieTogTWljaGFlbCBEIEtpbm5leSA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4NCj4gPiBJIGhhdmUgYWRqdXN0ZWQgdGhl IGNvbW1pdCBtZXNzYWdlIHdpdGggeW91ciBzdWdnZXN0ZWQgY2hhbmdlcyBpbg0KPiA+IHRoZSBQ UiBJIGhhdmUgcHJlcGFyZWQ6DQo+ID4NCj4gPiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3Jl L2VkazIvcHVsbC81MzczDQo+ID4NCj4gPiBUaGVyZSBtYXkgYmUgYmV0dGVyIHdheXMgdG8gb3Jn YW5pemUgdGhpcyBjb2RlIGluIGdlbmVyYWwgdG8gbWFrZQ0KPiA+IGl0IGVhc2llciB0byB1bmRl cnN0YW5kIGFuZCBtYWludGFpbiBpbiB0aGUgZnV0dXJlLCBidXQgd2UgY2FuDQo+ID4gbGV0IFJh eSByZXZpZXcgdGhhdCB3aGVuIGhlIHJldHVybnMuICBUaGF0IHdpbGwgYWxzbyBsaWtlbHkgYmUg YQ0KPiA+IG11Y2ggYnVnZ2VyIGNoYW5nZSB0aGF0IGNhbiBiZSBhY2NlcHRlZCBqdXN0IGJlZm9y ZSBhIHJlbGVhc2UuDQo+ID4NCj4gPiBJIGFsc28gYXBwcm92ZSB0aGlzIGFzIGEgY3JpdGljYWwg Zml4IGZvciBlZGsyLXN0YWJsZTIwMjQwMg0KPiA+DQo+ID4gSSB3aWxsIHdhaXQgdGlsbCB0b21v cnJvdyBtb3JuaW5nIG15IHRpbWUgdG8gc2VlIGlmIEdlcmQgYW5kDQo+ID4gUmFodWwgYW5kIExl aWYgY2FuIGFsc28gcHJvdmlkZSB0aGVpciByZXZpZXdzL2FwcHJvdmFscyBhbmQNCj4gPiB0byBn aXZlIG1lIHNvbWUgdGltZSB0byBydW4gc29tZSB0ZXN0cy4NCj4gDQo+IEZvciB0aGUgc2VyaWVz Og0KPiBSZXZpZXdlZC1ieTogTGVpZiBMaW5kaG9sbSA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNv bT4NCj4gSSdtIGhhcHB5IGZvciB0aGlzIHRvIGdvIGludG8gdGhlIHN0YWJsZSB0YWcuDQo+IA0K PiAvDQo+ICAgICAgTGVpZg0KPiANCj4gPiBJIGRvIG5vdCBleHBlY3QgUmF5IE5pIG9yIER1biBU YW4gdG8gYmUgYXZhaWxhYmxlIHRoaXMgd2Vlay4NCj4gPg0KPiA+IEJlc3QgcmVnYXJkcywNCj4g Pg0KPiA+IE1pa2UNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBG cm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFs ZiBPZg0KPiBMYXN6bG8NCj4gPj4gRXJzZWsNCj4gPj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkg MTMsIDIwMjQgMTozNiBQTQ0KPiA+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4gQ2M6 IFRhbiwgRHVuIDxkdW4udGFuQGludGVsLmNvbT47IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRo YXQuY29tPjsNCj4gPj4gS3VtYXIsIFJhaHVsIFIgPHJhaHVsLnIua3VtYXJAaW50ZWwuY29tPjsg TmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVs XSBbZWRrMi1zdGFibGUyMDI0MDIgUEFUQ0ggMS8yXQ0KPiA+PiBVZWZpQ3B1UGtnL1BpU21tQ3B1 RHhlU21tOiBkaXN0aW5ndWlzaCBHZXRTbUJhc2UoKSBmYWlsdXJlIG1vZGVzDQo+ID4+DQo+ID4+ IE9uIDIvMTMvMjQgMjI6MDksIExhc3psbyBFcnNlayB3cm90ZToNCj4gPj4+IENvbW1pdCA3MjVh Y2QwYjljYzAgKCJVZWZpQ3B1UGtnOiBBdm9pZCBhc3N1bWluZyBvbmx5IG9uZQ0KPiA+PiBzbW1i YXNlaG9iIiwNCj4gPj4+IDIwMjMtMTItMTIpIGludHJvZHVjZWQgYSBoZWxwZXIgZnVuY3Rpb24g Y2FsbGVkIEdldFNtQmFzZSgpLA0KPiA+PiByZXBsYWNpbmcgdGhlDQo+ID4+PiBsb29rdXAgb2Yg dGhlIGZpcnN0IGFuZCBvbmx5ICJnU21tQmFzZUhvYkd1aWQiIEdVSUQgSE9CLCB3aXRoDQo+ID4+ IGl0ZXJhdGVkDQo+ID4+PiBsb29rdXBzIHBsdXMgbWVtb3J5IGFsbG9jYXRpb24uDQo+ID4+Pg0K PiA+Pj4gVGhpcyBpbnRyb2R1Y2VkIGEgbmV3IGZhaWx1cmUgbW9kZSBmb3Igc2V0dGluZw0KPiA+ PiAibUNwdUhvdFBsdWdEYXRhLlNtQmFzZSIuDQo+ID4+PiBOYW1lbHksIGJlZm9yZSBjb21taXQg NzI1YWNkMGI5Y2MwLCAibUNwdUhvdFBsdWdEYXRhLlNtQmFzZSIgd291bGQNCj4gYmUNCj4gPj4g c2V0DQo+ID4+PiB0byBOVUxMIGlmIGFuZCBvbmx5IGlmIHRoZSBHVUlEIEhPQiB3YXMgYWJzZW50 LiBBZnRlciB0aGUgY29tbWl0LCBhDQo+ID4+IE5VTEwNCj4gPj4+IGFzc2lnbm1lbnQgd291bGQg YmUgcG9zc2libGUgaWYgdGhlIEdVSUQgSE9CIHdhcyBhYnNlbnQsICpvciogb25lDQo+IG9mDQo+ ID4+IHRoZQ0KPiA+Pj4gbWVtb3J5IGFsbG9jYXRpb25zIGluc2lkZSBHZXRTbUJhc2UoKSBmYWls ZWQuDQo+ID4+DQo+ID4+IFNvcnJ5LCB0aGVzZSB0d28gcGFyYWdyYXBocyBhcmUgbm90IHByZWNp c2UuIEEgYmV0dGVyIHZlcnNpb246DQo+ID4+DQo+ID4+IC0tLS0tLS0tLS0NCj4gPj4gQ29tbWl0 IDcyNWFjZDBiOWNjMCAoIlVlZmlDcHVQa2c6IEF2b2lkIGFzc3VtaW5nIG9ubHkgb25lDQo+IHNt bWJhc2Vob2IiLA0KPiA+PiAyMDIzLTEyLTEyKSBpbnRyb2R1Y2VkIGEgaGVscGVyIGZ1bmN0aW9u IGNhbGxlZCBHZXRTbUJhc2UoKSwNCj4gcmVwbGFjaW5nDQo+ID4+IHRoZSBsb29rdXAgb2YgdGhl IGZpcnN0IGFuZCBvbmx5ICJnU21tQmFzZUhvYkd1aWQiIEdVSUQgSE9CIGFuZA0KPiA+PiB1bmNv bmRpdGlvbmFsICJtQ3B1SG90UGx1Z0RhdGEuU21CYXNlIiBhbGxvY2F0aW9uLCB3aXRoIGl0ZXJh dGVkDQo+ID4+IGxvb2t1cHMNCj4gPj4gcGx1cyBjb25kaXRpb25hbCBtZW1vcnkgYWxsb2NhdGlv bi4NCj4gPj4NCj4gPj4gVGhpcyBpbnRyb2R1Y2VkIGEgbmV3IGZhaWx1cmUgbW9kZSBmb3Igc2V0 dGluZw0KPiA+PiAibUNwdUhvdFBsdWdEYXRhLlNtQmFzZSIuDQo+ID4+IE5hbWVseSwgYmVmb3Jl IGNvbW1pdCA3MjVhY2QwYjljYzAsICJtQ3B1SG90UGx1Z0RhdGEuU21CYXNlIiB3b3VsZA0KPiBi ZQ0KPiA+PiBhbGxvY2F0ZWQgcmVnYXJkbGVzcyBvZiB0aGUgR1VJRCBIT0IgYmVpbmcgYWJzZW50 LiBBZnRlciB0aGUgY29tbWl0LA0KPiA+PiAibUNwdUhvdFBsdWdEYXRhLlNtQmFzZSIgY291bGQg cmVtYWluIE5VTEwgaWYgdGhlIEdVSUQgSE9CIHdhcw0KPiBhYnNlbnQsDQo+ID4+ICpvciogb25l IG9mIHRoZSBtZW1vcnkgYWxsb2NhdGlvbnMgaW5zaWRlIEdldFNtQmFzZSgpIGZhaWxlZDsgYW5k IGluDQo+ID4+IHRoZQ0KPiA+PiBmb3JtZXIgY2FzZSwgd2UnZCBldmVuIHByb2NlZWQgdG8gdGhl IHJlc3Qgb2YgUGlDcHVTbW1FbnRyeSgpLg0KPiA+PiAtLS0tLS0tLS0tDQo+ID4+DQo+ID4+IFNv cnJ5LCBpdCdzIGxhdGUuDQo+ID4+DQo+ID4+IElmIHRoaXMgcGF0Y2ggc2V0IGlzIGFjY2VwdGVk IG90aGVyd2lzZSwgdGhlbiBNaWtlIG9yIExpbWluZywgY2FuDQo+IHlvdQ0KPiA+PiBwbGVhc2Ug dXBkYXRlIHRoZSBmaXJzdCB0d28gcGFyYWdyYXBocyBvZiB0aGUgY29tbWl0IG1lc3NhZ2UgdXBv bg0KPiA+PiBtZXJnZT8NCj4gPj4NCj4gPj4gVGhhbmtzDQo+ID4+IExhc3psbw0KPiA+Pg0KPiA+ Pj4NCj4gPj4+IEluIHJlbGF0aW9uIHRvIHRoaXMgY29uZmxhdGlvbiBvZiBkaXN0aW5jdCBmYWls dXJlIG1vZGVzLCBjb21taXQNCj4gPj4+IDcyNWFjZDBiOWNjMCBhY3R1YWxseSBpbnRyb2R1Y2Vk IGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLg0KPiBOYW1lbHksDQo+ID4+IGENCj4gPj4+IE5V TEwgIm1DcHVIb3RQbHVnRGF0YS5TbUJhc2UiIGlzIG5vdCBoYW5kbGVkIHByb3Blcmx5IGF0IGFs bCBub3cuDQo+ID4+IFdlJ3JlDQo+ID4+PiBnb2luZyB0byBmaXggdGhhdCBOVUxMIHBvaW50ZXIg ZGVyZWZlcmVuY2UgaW4gYSBzdWJzZXF1ZW50IHBhdGNoOw0KPiA+PiBob3dldmVyLA0KPiA+Pj4g YXMgYSBwcmUtcmVxdWlzaXRlIGZvciB0aGF0IHdlIG5lZWQgdG8gdGVsbCBhcGFydCB0aGUgZmFp bHVyZSBtb2Rlcw0KPiA+PiBvZg0KPiA+Pj4gR2V0U21CYXNlKCkuDQo+ID4+Pg0KPiA+Pj4gRm9y IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmVzLCByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVMu IE1vdmUNCj4gdGhlDQo+ID4+PiAiYXNzZXJ0aW9uIiB0aGF0IFNNUkFNIGNhbm5vdCBiZSBleGhh dXN0ZWQgaGFwcGVuIG91dCB0byB0aGUgY2FsbGVyDQo+ID4+PiAoUGlDcHVTbW1FbnRyeSgpKS4g U3RyZW5ndGhlbiB0aGUgYXNzZXJ0aW9uIGJ5IGFkZGluZyBhbiBleHBsaWNpdA0KPiA+Pj4gQ3B1 RGVhZExvb3AoKSBjYWxsLiAoTm90ZTogR2V0U21CYXNlKCkgKmFscmVhZHkqIGNhbGxzDQo+IENw dURlYWRMb29wKCkNCj4gPj4gaWYNCj4gPj4+IChOdW1iZXJPZlByb2Nlc3NvcnMgIT0gTWF4TnVt YmVyT2ZDcHVzKS4pDQo+ID4+Pg0KPiA+Pj4gRm9yIHRoZSBhYnNlbmNlIG9mIHRoZSBHVUlEIEhP QiwgcmV0dXJuIEVGSV9OT1RfRk9VTkQuDQo+ID4+Pg0KPiA+Pj4gRm9yIGdvb2QgbWVhc3VyZSwg bWFrZSBHZXRTbUJhc2UoKSBTVEFUSUMgKGl0IHNob3VsZCBoYXZlIGJlZW4NCj4gU1RBVElDDQo+ ID4+IGZyb20NCj4gPj4+IHRoZSBzdGFydCkuDQo+ID4+Pg0KPiA+Pj4gVGhpcyBpcyBqdXN0IGEg cmVmYWN0b3JpbmcsIG5vIGJlaGF2aW9yYWwgZGlmZmVyZW5jZSBpcyBpbnRlbmRlZA0KPiA+PiAo YmV5b25kDQo+ID4+PiB0aGUgZXhwbGljaXQgQ3B1RGVhZExvb3AoKSB1cG9uIFNNUkFNIGV4aGF1 c3Rpb24pLg0KPiA+Pj4NCj4gPj4+IENjOiBEdW4gVGFuIDxkdW4udGFuQGludGVsLmNvbT4NCj4g Pj4+IENjOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4NCj4gPj4+IENjOiBSYWh1 bCBLdW1hciA8cmFodWwxLmt1bWFyQGludGVsLmNvbT4NCj4gPj4+IENjOiBSYXkgTmkgPHJheS5u aUBpbnRlbC5jb20+DQo+ID4+PiBSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9NDY4Mg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTogTGFzemxvIEVyc2VrIDxs ZXJzZWtAcmVkaGF0LmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4NCj4gPj4+IE5vdGVzOg0KPiA+Pj4g ICAgICBjb250ZXh0Oi1VNA0KPiA+Pj4NCj4gPj4+ICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNt bS9QaVNtbUNwdUR4ZVNtbS5jIHwgNDAgKysrKysrKysrKysrKystLS0NCj4gLS0tDQo+ID4+PiAg IDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkNCj4gPj4+ DQo+ID4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4 ZVNtbS5jDQo+ID4+IGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5j DQo+ID4+PiBpbmRleCBjZDM5NDgyNmZmY2YuLjA5MzgyOTQ1ZGRiNCAxMDA2NDQNCj4gPj4+IC0t LSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uYw0KPiA+Pj4gKysr IGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5jDQo+ID4+PiBAQCAt NjE5LDE2ICs2MTksMjMgQEAgU21CYXNlSG9iQ29tcGFyZSAoDQo+ID4+Pg0KPiA+Pj4gICAvKioN Cj4gPj4+ICAgICBFeHRyYWN0IFNtQmFzZSBmb3IgYWxsIENQVSBmcm9tIFNtbUJhc2UgSE9CLg0K PiA+Pj4NCj4gPj4+IC0gIEBwYXJhbVtpbl0gIE1heE51bWJlck9mQ3B1cyAgIE1heCBOdW1iZXJP ZkNwdXMuDQo+ID4+PiArICBAcGFyYW1baW5dICBNYXhOdW1iZXJPZkNwdXMgICAgICAgIE1heCBO dW1iZXJPZkNwdXMuDQo+ID4+Pg0KPiA+Pj4gLSAgQHJldHZhbCBTbUJhc2VCdWZmZXIgICAgICAg ICAgUG9pbnRlciB0byBTbUJhc2UgQnVmZmVyLg0KPiA+Pj4gLSAgQHJldHZhbCBOVUxMICAgICAg ICAgICAgICAgICAgZ1NtbUJhc2VIb2JHdWlkIHdhcyBub3QgYmVlbg0KPiA+PiBjcmVhdGVkLg0K PiA+Pj4gKyAgQHBhcmFtW291dF0gQWxsb2NhdGVkU21CYXNlQnVmZmVyICBQb2ludGVyIHRvIFNt QmFzZSBCdWZmZXINCj4gPj4gYWxsb2NhdGVkDQo+ID4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJ5IHRoaXMgZnVuY3Rpb24uIE9ubHkgc2V0IGlmDQo+ID4+IHRoZQ0K PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiByZXR1 cm5zIEVGSV9TVUNDRVNTLg0KPiA+Pj4gKw0KPiA+Pj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAg ICAgICAgICAgU21CYXNlIEJ1ZmZlciBvdXRwdXQgc3VjY2Vzc2Z1bGx5Lg0KPiA+Pj4gKyAgQHJl dHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLg0KPiA+ Pj4gKyAgQHJldHZhbCBFRklfTk9UX0ZPVU5EICAgICAgICAgZ1NtbUJhc2VIb2JHdWlkIHdhcyBu ZXZlciBjcmVhdGVkLg0KPiA+Pj4gICAqKi8NCj4gPj4+IC1VSU5UTiAqDQo+ID4+PiArU1RBVElD DQo+ID4+PiArRUZJX1NUQVRVUw0KPiA+Pj4gICBHZXRTbUJhc2UgKA0KPiA+Pj4gLSAgSU4gIFVJ TlROICBNYXhOdW1iZXJPZkNwdXMNCj4gPj4+ICsgIElOICBVSU5UTiAgTWF4TnVtYmVyT2ZDcHVz LA0KPiA+Pj4gKyAgT1VUIFVJTlROICAqKkFsbG9jYXRlZFNtQmFzZUJ1ZmZlcg0KPiA+Pj4gICAg ICkNCj4gPj4+ICAgew0KPiA+Pj4gICAgIFVJTlROICAgICAgICAgICAgICBIb2JDb3VudDsNCj4g Pj4+ICAgICBFRklfSE9CX0dVSURfVFlQRSAgKkd1aWRIb2I7DQo+ID4+PiBAQCAtNjQ5LDkgKzY1 Niw5IEBAIEdldFNtQmFzZSAoDQo+ID4+PiAgICAgTnVtYmVyT2ZQcm9jZXNzb3JzID0gMDsNCj4g Pj4+DQo+ID4+PiAgICAgRmlyc3RTbW1CYXNlR3VpZEhvYiA9IEdldEZpcnN0R3VpZEhvYiAoJmdT bW1CYXNlSG9iR3VpZCk7DQo+ID4+PiAgICAgaWYgKEZpcnN0U21tQmFzZUd1aWRIb2IgPT0gTlVM TCkgew0KPiA+Pj4gLSAgICByZXR1cm4gTlVMTDsNCj4gPj4+ICsgICAgcmV0dXJuIEVGSV9OT1Rf Rk9VTkQ7DQo+ID4+PiAgICAgfQ0KPiA+Pj4NCj4gPj4+ICAgICBHdWlkSG9iID0gRmlyc3RTbW1C YXNlR3VpZEhvYjsNCj4gPj4+ICAgICB3aGlsZSAoR3VpZEhvYiAhPSBOVUxMKSB7DQo+ID4+PiBA QCAtNjcxLDExICs2NzgsMTAgQEAgR2V0U21CYXNlICgNCj4gPj4+ICAgICAgIENwdURlYWRMb29w ICgpOw0KPiA+Pj4gICAgIH0NCj4gPj4+DQo+ID4+PiAgICAgU21CYXNlSG9icyA9IEFsbG9jYXRl UG9vbCAoc2l6ZW9mIChTTU1fQkFTRV9IT0JfREFUQSAqKSAqDQo+ID4+IEhvYkNvdW50KTsNCj4g Pj4+IC0gIEFTU0VSVCAoU21CYXNlSG9icyAhPSBOVUxMKTsNCj4gPj4+ICAgICBpZiAoU21CYXNl SG9icyA9PSBOVUxMKSB7DQo+ID4+PiAtICAgIHJldHVybiBOVUxMOw0KPiA+Pj4gKyAgICByZXR1 cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQo+ID4+PiAgICAgfQ0KPiA+Pj4NCj4gPj4+ICAgICAv Lw0KPiA+Pj4gICAgIC8vIFJlY29yZCBlYWNoIFNtbUJhc2VIb2IgcG9pbnRlciBpbiB0aGUgU21C YXNlSG9icy4NCj4gPj4+IEBAIC02OTEsOSArNjk3LDkgQEAgR2V0U21CYXNlICgNCj4gPj4+ICAg ICBTbUJhc2VCdWZmZXIgPSAoVUlOVE4gKilBbGxvY2F0ZVBvb2wgKHNpemVvZiAoVUlOVE4pICoN Cj4gPj4gKE1heE51bWJlck9mQ3B1cykpOw0KPiA+Pj4gICAgIEFTU0VSVCAoU21CYXNlQnVmZmVy ICE9IE5VTEwpOw0KPiA+Pj4gICAgIGlmIChTbUJhc2VCdWZmZXIgPT0gTlVMTCkgew0KPiA+Pj4g ICAgICAgRnJlZVBvb2wgKFNtQmFzZUhvYnMpOw0KPiA+Pj4gLSAgICByZXR1cm4gTlVMTDsNCj4g Pj4+ICsgICAgcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KPiA+Pj4gICAgIH0NCj4gPj4+ DQo+ID4+PiAgICAgUXVpY2tTb3J0IChTbUJhc2VIb2JzLCBIb2JDb3VudCwgc2l6ZW9mIChTTU1f QkFTRV9IT0JfREFUQSAqKSwNCj4gPj4gKEJBU0VfU09SVF9DT01QQVJFKVNtQmFzZUhvYkNvbXBh cmUsICZTb3J0QnVmZmVyKTsNCj4gPj4+ICAgICBQcmV2UHJvY2Vzc29ySW5kZXggPSAwOw0KPiA+ Pj4gQEAgLTcxMyw5ICs3MTksMTAgQEAgR2V0U21CYXNlICgNCj4gPj4+ICAgICAgIFByZXZQcm9j ZXNzb3JJbmRleCArPSBTbUJhc2VIb2JzW0hvYkluZGV4XS0NCj4gPk51bWJlck9mUHJvY2Vzc29y czsNCj4gPj4+ICAgICB9DQo+ID4+Pg0KPiA+Pj4gICAgIEZyZWVQb29sIChTbUJhc2VIb2JzKTsN Cj4gPj4+IC0gIHJldHVybiBTbUJhc2VCdWZmZXI7DQo+ID4+PiArICAqQWxsb2NhdGVkU21CYXNl QnVmZmVyID0gU21CYXNlQnVmZmVyOw0KPiA+Pj4gKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ Pj4gICB9DQo+ID4+Pg0KPiA+Pj4gICAvKioNCj4gPj4+ICAgICBGdW5jdGlvbiB0byBjb21wYXJl IDIgTVBfSU5GT1JNQVRJT04yX0hPQl9EQVRBIHBvaW50ZXIgYmFzZWQgb24NCj4gPj4gUHJvY2Vz c29ySW5kZXguDQo+ID4+PiBAQCAtMTExMCwxMCArMTExNywxNyBAQCBQaUNwdVNtbUVudHJ5ICgN Cj4gPj4+ICAgICAvLw0KPiA+Pj4gICAgIC8vIFJldHJpdmUgdGhlIGFsbG9jYXRlZCBTbW1CYXNl IGZyb20gZ1NtbUJhc2VIb2JHdWlkLiBJZg0KPiBmb3VuZCwNCj4gPj4+ICAgICAvLyBtZWFucyB0 aGUgU21CYXNlIHJlbG9jYXRpb24gaGFzIGJlZW4gZG9uZS4NCj4gPj4+ICAgICAvLw0KPiA+Pj4g LSAgbUNwdUhvdFBsdWdEYXRhLlNtQmFzZSA9IEdldFNtQmFzZSAobU1heE51bWJlck9mQ3B1cyk7 DQo+ID4+PiAtICBpZiAobUNwdUhvdFBsdWdEYXRhLlNtQmFzZSAhPSBOVUxMKSB7DQo+ID4+PiAr ICBtQ3B1SG90UGx1Z0RhdGEuU21CYXNlID0gTlVMTDsNCj4gPj4+ICsgIFN0YXR1cyAgICAgICAg ICAgICAgICAgPSBHZXRTbUJhc2UgKG1NYXhOdW1iZXJPZkNwdXMsDQo+ID4+ICZtQ3B1SG90UGx1 Z0RhdGEuU21CYXNlKTsNCj4gPj4+ICsgIGlmIChTdGF0dXMgPT0gRUZJX09VVF9PRl9SRVNPVVJD RVMpIHsNCj4gPj4+ICsgICAgQVNTRVJUIChTdGF0dXMgIT0gRUZJX09VVF9PRl9SRVNPVVJDRVMp Ow0KPiA+Pj4gKyAgICBDcHVEZWFkTG9vcCAoKTsNCj4gPj4+ICsgIH0NCj4gPj4+ICsNCj4gPj4+ ICsgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+PiArICAgIEFTU0VSVCAobUNwdUhv dFBsdWdEYXRhLlNtQmFzZSAhPSBOVUxMKTsNCj4gPj4+ICAgICAgIC8vDQo+ID4+PiAgICAgICAv LyBDaGVjayB3aGV0aGVyIHRoZSBSZXF1aXJlZCBUaWxlU2l6ZSBpcyBlbm91Z2guDQo+ID4+PiAg ICAgICAvLw0KPiA+Pj4gICAgICAgaWYgKFRpbGVTaXplID4gU0laRV84S0IpIHsNCj4gPj4+IEBA IC0xMTI1LDggKzExMzksMTAgQEAgUGlDcHVTbW1FbnRyeSAoDQo+ID4+PiAgICAgICB9DQo+ID4+ Pg0KPiA+Pj4gICAgICAgbVNtbVJlbG9jYXRlZCA9IFRSVUU7DQo+ID4+PiAgICAgfSBlbHNlIHsN Cj4gPj4+ICsgICAgQVNTRVJUIChTdGF0dXMgPT0gRUZJX05PVF9GT1VORCk7DQo+ID4+PiArICAg IEFTU0VSVCAobUNwdUhvdFBsdWdEYXRhLlNtQmFzZSA9PSBOVUxMKTsNCj4gPj4+ICAgICAgIC8v DQo+ID4+PiAgICAgICAvLyBXaGVuIHRoZSBIT0IgZG9lc24ndCBleGlzdCwgYWxsb2NhdGUgbmV3 IFNNQkFTRSBpdHNlbGYuDQo+ID4+PiAgICAgICAvLw0KPiA+Pj4gICAgICAgREVCVUcgKChERUJV R19JTkZPLCAiUGlDcHVTbW1FbnRyeTogZ1NtbUJhc2VIb2JHdWlkIG5vdA0KPiA+PiBmb3VuZCFc biIpKTsNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4NCj4g Pj4NCj4gPj4NCj4gPj4NCj4gPj4NCj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0KPiA+DQoNCg0K Ci09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxs IG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMTU0Njkp OiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTU0NjkKTXV0ZSBUaGlz IFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDQzNDEzNDIvNzY4NjE3NgpHcm91cCBPd25l cjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5n cm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09LT0tPS09LT0tPS09 LT0tPS09LT0tCgoNCg==