From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.7833.1664440336094791261 for ; Thu, 29 Sep 2022 01:32:16 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=JLmtwuqc; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: w.sheng@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664440336; x=1695976336; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=bN7ztqFwCLl7lgyyA3Ust/ArHgL1UDRM3adBmHM2Mrw=; b=JLmtwuqcFjkJoSwRSyeHemV7ztOifqRmvrgkvVOI6h+mMRDRIaC9+aCC g7A0gI2qEJW5j9Y9gXcg3XTqBFJCcxBK10VmGeLr/oue/WuAcPVOsKczV y+hHCl7pNGo5LYY1wNPX5W0jL9Cj06E2flMj6vhKnKWf3z5bE5UaQkFB7 +6yx+MrLc50yLTblF4Z4AUT8pKZiLzHMocfIHfx30RYP+0PA5o/fk81kB bXDYGtctX2oPlmjF+kFzlidsjYocsrVgAYPQXPAVrW2S7yOP85LAky0mR qPod/3yqQ68lMqKauIetC6RBJ+9pYxWJ/SnU4AxDZrC4xALzu2vQss9gS A==; X-IronPort-AV: E=McAfee;i="6500,9779,10484"; a="282198298" X-IronPort-AV: E=Sophos;i="5.93,354,1654585200"; d="scan'208,223";a="282198298" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2022 01:32:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10484"; a="599908222" X-IronPort-AV: E=Sophos;i="5.93,354,1654585200"; d="scan'208,223";a="599908222" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga006.jf.intel.com with ESMTP; 29 Sep 2022 01:32:11 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 29 Sep 2022 01:32:11 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Thu, 29 Sep 2022 01:32:10 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.103) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Thu, 29 Sep 2022 01:32:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QYzlPdJVLhqyHQR7m6FphGaS8TJevcCp5ebuNO++mixvrNBdCVF4qV7pK55E8RxyOPsD3+QhNhfrKe2fk/iOtxgVTSleYNb8tC+NvhFmcLUDVfWyHJVoRhf5LxI3BzFcaaFrk8gdqz/kV+1XHdzIwgl3nqIdQit1mrtsPzqqnMp5I2hFSS004tF+dbXeCOEdarwnx/3xnBKhzLlc6YmHZru23BQmi8f+H4zg2CaeW63stbaQO0D6nhLHxWKLD7eaMapQb4C9hHGKPrsuuDI63cm2+uMDqxLsTCQU2uvTea0xhvU5E0eWnIBk4mwxJrj3OeHnCUYFhOL+Q7YbpTNP6w== 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=G5u0C9zJwh3B3Uc0maovrRw5pIz/+YufTy3LbFX3Zho=; b=gKO3swwehWP5ZM5QBum/qUzFKMPUBaG0hq0ylm9saLE9JStNi4GuinXLbRhL6+plHKWqBMkid25Sjd54p9C7XSuSVa9OdmicU4lfVEXVLBeNyCmpKM7/ZWEacc4MxEkciUDGzsCvVsdZR8oZjUqsZ3uC0VlWxSQhnt2JDkuFHxCHrMHVm95HLUXaylA9gainrWwYjI1feSjh6VipOx7N5DBYBJBNj5lbrkRxHv5HeHy9uPbIvne2kntnfWTHV15AvDqnZsW/CGyhbcuO74rrHp1Q4bijYDn2YcJwMIJ5c7dBs+qTnFzjqY9N8Z+USoVfzl/4XhoQwJWcj0+fxPACEQ== 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 Received: from PH0PR11MB4870.namprd11.prod.outlook.com (2603:10b6:510:34::16) by PH0PR11MB5877.namprd11.prod.outlook.com (2603:10b6:510:141::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17; Thu, 29 Sep 2022 08:32:08 +0000 Received: from PH0PR11MB4870.namprd11.prod.outlook.com ([fe80::891c:71e3:1833:bb04]) by PH0PR11MB4870.namprd11.prod.outlook.com ([fe80::891c:71e3:1833:bb04%7]) with mapi id 15.20.5676.019; Thu, 29 Sep 2022 08:32:08 +0000 From: "Sheng Wei" To: "Ni, Ray" CC: "Chaganty, Rangasai V" , "Kowalewski, Robert" , "Huang, Jenny" , "devel@edk2.groups.io" Subject: Re: [edk2-devel] [PATCH] IntelSiliconPkg/VTd: Enable ADM when change TTM Thread-Topic: [edk2-devel] [PATCH] IntelSiliconPkg/VTd: Enable ADM when change TTM Thread-Index: AQHYwQR+YwMYhT53OUSQxj/p+0KR6a316+pggAAaFsA= Date: Thu, 29 Sep 2022 08:32:07 +0000 Message-ID: References: <1711EAB1819FAD8B.21447@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB4870:EE_|PH0PR11MB5877:EE_ x-ms-office365-filtering-correlation-id: ef06784c-6ac1-4ca3-c230-08daa1f518a7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MJEjbf+N2J85X2cpJWbdWLlWbV3PnqX54XGCp2QqS7HFaSe+ESeV+7MsvGIu/GUkAr85rvOKDo68LqJuXgJlKFxQOlDg3XgX0PrKsT7WeBUhxHT/hxEeqUZDDuhh1bsxObnANDEtGsDLxWlZx8okNKMo9jedPFDBLEWREc/9eD9s7kaKC3JjZ3UmvOtAEJXt8goF5CvJFtd7hoK2s8wXI0+A/+hQ7UVSdhorM0bYMJh1GBUmVbgX6FllSYvY93mzOqlltTMVGJAXp38JJU1JrC7S8k5LGUHCoXexwU6NRa1uRvfgh+tekOxhOawRb56SrCESrKplIh7mt4IEKI6hcWL+2KdVfvQzcqjOqKbHSLf/udNALM+7D5V0ooQkvsY3Ys4h/QtNhlnR0Y31M9EmnPkrO9rWRsScuLlFU0QvhfEnGacXMJDnz0bg1K/T2dcCTWGwOGAFqMvPuI+QjRktmp/SkXO4PQyAOdOOcc6oAXSPesz8i4pPa/rUpaeUJdauZTg46LY7KRFhqSg5KlbAdcKOQHX8LLnfldOFC1VHV9GVQxEBGBUCQXzTq90j+4k9/f6/cKKXBtP4gU6Q0jUoogiGQtMbVHGxFr/fZEgfTs1/KzNXr0GtLJkzRbFgbgIVwoycKxhqvrszE6ap3TP5WQtcgdwE66KBW+LHPESibGO5rf0JmzweNHiX5b4ufY1eXB9LH7xQs5XobxVzNZJbTb/IBeyqxGkiTShZCy/KQaRGWLlofl1J8JQNbyjelKTCElkquGCPVqyUBlyM/A1PZzYjjBGi6CsprAiXEM4Fmji3IhMdqgSPFc35jdm4X4ibvwFjbQKOjAAhmV2/Ba/IPA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4870.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(376002)(346002)(396003)(136003)(366004)(451199015)(38100700002)(82960400001)(99936003)(6636002)(966005)(54906003)(66899015)(2906002)(122000001)(71200400001)(66446008)(86362001)(55016003)(38070700005)(8676002)(4326008)(41300700001)(66946007)(76116006)(478600001)(66476007)(316002)(66556008)(64756008)(53546011)(6862004)(26005)(6506007)(52536014)(8936002)(9686003)(30864003)(7696005)(33656002)(83380400001)(186003)(5660300002)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?dXRoblp1MnM2N0diK2QzbzV2OXNjU0tNaUxqZTVQZkpzeXRjR0xjS2EzRmJt?= =?gb2312?B?d1Y1ckF0TXBGM2ZsTTU3d1p0bWZGaFgrQnB1UUtnYjI2ZmloTjR4R0NuV0lD?= =?gb2312?B?akRlUktQbzlsVUhlcTExaGRMWmVlR3ZSWHpXSC9XQlBqVVlyMWk2Rnh3Tll0?= =?gb2312?B?aHhoT3NlY3RlaGlrMm1EMGxYSXd6cDFVQWRlR0phNHR5cGpkQ0tJdEZRb0h6?= =?gb2312?B?NkRjcTRxOHM3Y1U5ZC9heUh2YVdSU1BYQUN4b0p0T0dCa0pEYWFmbXVqR0Nm?= =?gb2312?B?TUQ5VkYwQUdFekFuSGw0dFB3c0NNLzRxVW16THVnelkxN0dWenVVZDhFV0R3?= =?gb2312?B?ZUV5QStWbVV6YTRRcXQ2RjRKSlEzWnNvcFdsbldGYUNNYUxLai9jb3BvM3Y1?= =?gb2312?B?WkdudVlwNkhTS2tsMFppUFBSckJLc0pkcnMrR1NiUzRtaUdob1hkQ2t3aW5P?= =?gb2312?B?V29xUnA3cHNNWVphc2RKNEJjR3IvYXJVbDhsOWVzcFVGcVIwdmRMbVMveXNy?= =?gb2312?B?VWZ0VGtpZXEvNFJkbWc3YVFBUVFGZFEvYmJZbVpDNXRkTFlkUnpQSjQ2T2t1?= =?gb2312?B?RDFyWWh3SFBYZVNiRjlZcUxRQ2tOYjV2czBIbXN6RENHMVFBNUluMkxMRUhV?= =?gb2312?B?blVoeDBHWmZGeHpmZmx0MlY1ZmMvdDgyT0crOHh0d25LQmhoSGUzZVRQdHRF?= =?gb2312?B?dEhWMmowR3FiZG1vVGM0NVFaUTUweUczUldBVVYyNFlpMlpNOWNnd0pDNFM2?= =?gb2312?B?U29XY3BCV2VpYWk2UmtWb2JsUkhDL0YxcjNId0djYXRJdUJpTU9xYlBINEpH?= =?gb2312?B?SFhjQjRxTGgwZjJrU2diWm0yN0VCb0tvclljdUszWUxXcFhTTkl2V3FtVmd5?= =?gb2312?B?M2hGTERPMTM1ejBaeldvMXRoN3ZId0JvNElMRWNrK09PZE54SEVkOGZKVkFQ?= =?gb2312?B?MTdaWitleFBjSGhWN1ZzYjFab2NydHZNb1hXdEo2WW5HVGVuUmRSbTBHWGZX?= =?gb2312?B?byt3WG5mdVNhVnpLcm00ekFGQWU2ajNrV3lYZGo2MEY1dE9SRmxleGpSNzAz?= =?gb2312?B?OEZ4ZkNSdzMxMURXemZ0UTRtWjk4V1hpSEs0bzFYRVBXWjF5QmRnZ0tyZVZX?= =?gb2312?B?TXFBN2NPemliNHpTdUU1ZThJNDhzWlJ3LzJzTWt1WUJUSkVybXN5VWU1Q3Jx?= =?gb2312?B?NTMvNmJ5SWJTcm9yWVFzS3dOOTE4a2Z4VXRvV2dRdWFJTGk1NTJsVmlwZ0tL?= =?gb2312?B?S09lY0pEKzhXWW11aVY1Y0xFU2Mwa0YvanpManZuQ3dzRm4yZmN6dTBrYXFB?= =?gb2312?B?NWxsMFh6VERkQ3V4b01oRnVINUZGU1ZqY2g2K29NY2VXelBSV0xiYVQwSTJv?= =?gb2312?B?Ly8yUzBZVVlyRHA1aVkzZXdyUFVGVlczTTVPalUzQTZrRFh4aWRPMXpLTkFM?= =?gb2312?B?N3RsKzJYNSs5ZFlCZjFKditUQ2ZpY0N1QXF6ZU1FMDRpcmI5Nnh5OVp2c3Ra?= =?gb2312?B?VnlBK0hUdHBWMzJKT25EZ2xCT2Y4bE13RTY5cnpONXNDNnZ3MFo2WTExRkta?= =?gb2312?B?TG1qY1hOaC95OFN0Q0VqTEtwTFRYRkYwMjl1bkc5LzhHTFhTMTBjWFdLaVd4?= =?gb2312?B?RVhLQzYxRTVtTEt6Z2Nmdkw0S3VVbmh5a0duV2N2UW9razBaYjdNWTJ6YUVE?= =?gb2312?B?cjFPUzlkcFRPTlk1clRlUFE4RnAzMm11WVo3cXJqYzhrTEY2OXRqVWJiTG05?= =?gb2312?B?cHgwV2EzMm1tcXdyZjZsN2dPRVdJUmwvK3RkSUZkSG05NnJPRHhFc1dzUmxs?= =?gb2312?B?bHFxK2ZsVnJrSTJsTzFIdkl3bzlDaHZqN0RIZ0RpOVRLMVRWSWJLU3JJQkhF?= =?gb2312?B?QjY2TERJUWpudzZjaGRubWo5U08wY3BjaW5PckNwbFIyanpPVHBnaHhaS3ho?= =?gb2312?B?MHhtK1RFM2pqQkNKemFNeEh4OXdMV2pCTnVYRUcrZWtVanlhYWtXdnVKNXFh?= =?gb2312?B?TjJBSmdXRk1zc3BRREk0cEdnUlB3WjVIQThSbVorcHpUTVBYNmYzUVMwTUh0?= =?gb2312?B?SUN5cDZtTVJKc1BQais0aE5uY2tqaXVDNkM3MmJxL3ZDQjZUSk5XUnlFUGgv?= =?gb2312?Q?ZgUw=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4870.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef06784c-6ac1-4ca3-c230-08daa1f518a7 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2022 08:32:07.8584 (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: z6x7p8pcujw6ENFXkqRhPPQlGLvyMYtzxgqAFQyM2cm3uPRjMPPWa6qz8Zbl8PQFH6be3EgFFgbeVhgiW7D7KA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5877 Return-Path: w.sheng@intel.com X-OriginatorOrg: intel.com X-Groupsio-MsgNum: 94511 Content-Language: en-US Content-Type: multipart/mixed; boundary="_002_PH0PR11MB4870D7795F28C631B6F26B79E1579PH0PR11MB4870namp_" --_002_PH0PR11MB4870D7795F28C631B6F26B79E1579PH0PR11MB4870namp_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgUmF5LA0KQ291bGQgeW91IGhlbHAgdG8gcmV2aWV3IHRoZSBtZXJnZSB0aGUgcGF0Y2ggdG8g dGhlIFZUZCBkcml2ZXIgaW4gZWRrcGxhdGZvcm0gYnJhbmNoID8NClRoaXMgcGF0Y2ggaXMgdXNl ZCB0byBlbmFibGUgQWJvcnQgRE1BIE1vZGUoQURNKSB3aGVuIGNoYW5nZSB0aGUgVFRNIC4NClRo ZSBjb21tZW50IGZyb20gVlRkIHNwZWMgaXMgYmVsb3cuDQoNCiBGb3IgaW1wbGVtZW50YXRpb25z IHJlcG9ydGluZyBFbmhhbmNlZCBTUlRQIFN1cHBvcnQgKEVTUlRQUykgZmllbGQgYXMNCiBDbGVh ciBpbiB0aGUgQ2FwYWJpbGl0eSByZWdpc3Rlciwgc29mdHdhcmUgbXVzdCBub3QgbW9kaWZ5IHRo aXMgZmllbGQgd2hpbGUNCiBETUEgcmVtYXBwaW5nIGlzIGFjdGl2ZSAoVEVTPTEgaW4gR2xvYmFs IFN0YXR1cyByZWdpc3RlcikuDQoNClNvLCB3ZSB3aWxsIGVuYWJsZSBBRE0gd2hpbGUgVEUgaXMg ZGlzYWJsZS4NClRoYW5rIHlvdQ0KQlINClNoZW5nIFdlaQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IEh1YW5nLCBKZW5ueSA8amVubnkuaHVhbmdAaW50ZWwuY29tPg0K PiBTZW50OiAyMDIyxOo51MIyOcjVIDExOjU0DQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg U2hlbmcsIFcgPHcuc2hlbmdAaW50ZWwuY29tPg0KPiBDYzogTmksIFJheSA8cmF5Lm5pQGludGVs LmNvbT47IENoYWdhbnR5LCBSYW5nYXNhaSBWDQo+IDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVs LmNvbT47IEtvd2FsZXdza2ksIFJvYmVydA0KPiA8cm9iZXJ0Lmtvd2FsZXdza2lAaW50ZWwuY29t Pg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gSW50ZWxTaWxpY29uUGtnL1ZU ZDogRW5hYmxlIEFETSB3aGVuDQo+IGNoYW5nZSBUVE0NCj4gDQo+IFJldmlld2VkLWJ5OiBKZW5u eSBIdWFuZyA8amVubnkuaHVhbmdAaW50ZWwuY29tPg0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiBPbiBCZWhhbGYgT2YgU2hlbmcsDQo+IFcNCj4gU2VudDogTW9uZGF5LCBTZXB0ZW1iZXIg NSwgMjAyMiAxOjQ5IEFNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogSHVhbmcs IEplbm55IDxqZW5ueS5odWFuZ0BpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29t PjsNCj4gQ2hhZ2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29t PjsgS293YWxld3NraSwNCj4gUm9iZXJ0IDxyb2JlcnQua293YWxld3NraUBpbnRlbC5jb20+DQo+ IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGQ6IEVuYWJs ZSBBRE0gd2hlbiBjaGFuZ2UNCj4gVFRNDQo+IA0KPiBJbiBBYm9ydCBETUEgTW9kZShBRE0pLCBo YXJkd2FyZSB3aWxsIGFib3J0IGFsbCBETUEgb3BlcmF0aW9ucyB3aXRob3V0DQo+IHRoZSBuZWVk IHRvIHNldCB1cCBhIHJvb3R0YWJsZS4gRW5hYmxlIEFib3J0IERNQSBNb2RlLCB3aGVuIGNoYW5n ZQ0KPiBUcmFuc2xhdGlvbiBUYWJsZSBNb2RlKFRUTSkNCj4gDQo+IENoYW5nZS1JZDogSTc0MjA3 ZmU5NmVmN2E1N2Q4OWEzNTVkNDBkZmJkZDM2MTg2ZjA2YzMNCj4gU2lnbmVkLW9mZi1ieTogU2hl bmcgV2VpIDx3LnNoZW5nQGludGVsLmNvbT4NCj4gQ2M6IEplbm55IEh1YW5nIDxqZW5ueS5odWFu Z0BpbnRlbC5jb20+DQo+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+IENjOiBSYW5n YXNhaSBWIENoYWdhbnR5IDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gDQo+IENj OiBSb2JlcnQgS293YWxld3NraSA8cm9iZXJ0Lmtvd2FsZXdza2lAaW50ZWwuY29tPg0KPiAtLS0N Cj4gIC4uLi9WVGQvSW50ZWxWVGREbWFyUGVpL0ludGVsVlRkRG1hci5jICAgICAgICB8IDE1NyAr KysrKysrKysrKy0tLS0tDQo+ICAuLi4vRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvSW50ZWxWVGRE eGUuaW5mICAgfCAgIDEgKw0KPiAgLi4uL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL1Z0ZFJlZy5j ICAgICAgICAgIHwgMTY5ICsrKysrKysrKysrKystLS0tLQ0KPiAgLi4uL0ludGVsL0ludGVsU2ls aWNvblBrZy9JbnRlbFNpbGljb25Qa2cuZGVjIHwgIDEyICstDQo+ICA0IGZpbGVzIGNoYW5nZWQs IDI0NSBpbnNlcnRpb25zKCspLCA5NCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQNCj4g YS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZERtYXJQ ZWkvSW50ZWxWVGREbWFyLg0KPiBjDQo+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cv RmVhdHVyZS9WVGQvSW50ZWxWVGREbWFyUGVpL0ludGVsVlRkRG1hci4NCj4gYw0KPiBpbmRleCBi NWI3OGY3NzkuLjI0YmVjY2QyNiAxMDA2NDQNCj4gLS0tDQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRl bFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREbWFyUGVpL0ludGVsVlRkRG1hci4NCj4g Yw0KPiArKysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRl bFZUZERtYXJQZWkvSW50ZWxWVGQNCj4gKysrIERtYXIuYw0KPiBAQCAtMzYxLDYgKzM2MSw2OCBA QCBJbnZhbGlkYXRlSU9UTEIgKA0KPiAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+IA0KPiAgfQ0K PiANCj4gDQo+IA0KPiArLyoqDQo+IA0KPiArICBDbGVhciBHbG9iYWwgQ29tbWFuZCBSZWdpc3Rl ciBCaXRzDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW1baW5dIFZ0ZFVuaXRCYXNlQWRkcmVzcyBU aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBWVGQgZW5naW5lLg0KPiANCj4gKyAgQHBhcmFtW2luXSBC aXRNYXNrICAgICAgICAgICAgQml0IG1hc2suDQo+IA0KPiArKiovDQo+IA0KPiArVk9JRA0KPiAN Cj4gK0NsZWFyR2xvYmFsQ29tbWFuZFJlZ2lzdGVyQml0cyAoDQo+IA0KPiArICBJTiBVSU5UTiAg ICAgVnRkVW5pdEJhc2VBZGRyZXNzLA0KPiANCj4gKyAgSU4gVUlOVDMyICAgIEJpdE1hc2sNCj4g DQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBVSU5UMzIgICAgUmVnMzI7DQo+IA0KPiArICBV SU5UMzIgICAgU3RhdHVzOw0KPiANCj4gKyAgVUlOVDMyICAgIENvbW1hbmQ7DQo+IA0KPiArDQo+ IA0KPiArICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19S RUcpOw0KPiANCj4gKyAgU3RhdHVzID0gKFJlZzMyICYgMHg5NkZGRkZGRik7ICAgICAgIC8vIFJl c2V0IHRoZSBvbmUtc2hvdCBiaXRzDQo+IA0KPiArICBDb21tYW5kID0gKFN0YXR1cyAmICh+Qml0 TWFzaykpOw0KPiANCj4gKyAgTW1pb1dyaXRlMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR0NN RF9SRUcsIENvbW1hbmQpOw0KPiANCj4gKw0KPiANCj4gKyAgREVCVUcoKERFQlVHX0lORk8sICJD bGVhciBHQ01EX1JFRyBiaXRzIDB4JXguXG4iLCBCaXRNYXNrKSk7DQo+IA0KPiArDQo+IA0KPiAr ICAvLw0KPiANCj4gKyAgLy8gUG9sbCBvbiBTdGF0dXMgYml0IG9mIEdsb2JhbCBzdGF0dXMgcmVn aXN0ZXIgdG8gYmVjb21lIHplcm8NCj4gDQo+ICsgIC8vDQo+IA0KPiArICBkbyB7DQo+IA0KPiAr ICAgIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7 DQo+IA0KPiArICB9IHdoaWxlICgoUmVnMzIgJiBCaXRNYXNrKSA9PSBCaXRNYXNrKTsNCj4gDQo+ ICt9DQo+IA0KPiArDQo+IA0KPiArLyoqDQo+IA0KPiArICBTZXQgR2xvYmFsIENvbW1hbmQgUmVn aXN0ZXIgQml0cw0KPiANCj4gKw0KPiANCj4gKyAgQHBhcmFtW2luXSBWdGRVbml0QmFzZUFkZHJl c3MgVGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgVlRkIGVuZ2luZS4NCj4gDQo+ICsgIEBwYXJhbVtp bl0gQml0TWFzayAgICAgICAgICAgIEJpdCBtYXNrLg0KPiANCj4gKyoqLw0KPiANCj4gK1ZPSUQN Cj4gDQo+ICtTZXRHbG9iYWxDb21tYW5kUmVnaXN0ZXJCaXRzICgNCj4gDQo+ICsgIElOIFVJTlRO ICAgICBWdGRVbml0QmFzZUFkZHJlc3MsDQo+IA0KPiArICBJTiBVSU5UMzIgICAgQml0TWFzaw0K PiANCj4gKyAgKQ0KPiANCj4gK3sNCj4gDQo+ICsgIFVJTlQzMiAgICBSZWczMjsNCj4gDQo+ICsg IFVJTlQzMiAgICBTdGF0dXM7DQo+IA0KPiArICBVSU5UMzIgICAgQ29tbWFuZDsNCj4gDQo+ICsN Cj4gDQo+ICsgIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RT X1JFRyk7DQo+IA0KPiArICBTdGF0dXMgPSAoUmVnMzIgJiAweDk2RkZGRkZGKTsgICAgICAgLy8g UmVzZXQgdGhlIG9uZS1zaG90IGJpdHMNCj4gDQo+ICsgIENvbW1hbmQgPSAoU3RhdHVzIHwgQml0 TWFzayk7DQo+IA0KPiArICBNbWlvV3JpdGUzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HQ01E X1JFRywgQ29tbWFuZCk7DQo+IA0KPiArDQo+IA0KPiArICBERUJVRygoREVCVUdfSU5GTywgIlNl dCBHQ01EX1JFRyBiaXRzIDB4JXguXG4iLCBCaXRNYXNrKSk7DQo+IA0KPiArDQo+IA0KPiArICAv Lw0KPiANCj4gKyAgLy8gUG9sbCBvbiBTdGF0dXMgYml0IG9mIEdsb2JhbCBzdGF0dXMgcmVnaXN0 ZXIgdG8gYmVjb21lIG5vdCB6ZXJvDQo+IA0KPiArICAvLw0KPiANCj4gKyAgZG8gew0KPiANCj4g KyAgICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19SRUcp Ow0KPiANCj4gKyAgfSB3aGlsZSAoKFJlZzMyICYgQml0TWFzaykgPT0gMCk7DQo+IA0KPiArfQ0K PiANCj4gKw0KPiANCj4gIC8qKg0KPiANCj4gICAgRW5hYmxlIERNQVIgdHJhbnNsYXRpb24gaW4g cHJlLW1lbSBwaGFzZS4NCj4gDQo+IA0KPiANCj4gQEAgLTM4MywxMyArNDQ1LDEwIEBAIEVuYWJs ZURtYXJQcmVNZW0gKA0KPiAgICBERUJVRyAoKERFQlVHX0lORk8sICJSVEFERFJfUkVHIDogMHgl MDE2bHggXG4iLCBSdGFkZHJSZWdWYWx1ZSkpOw0KPiANCj4gICAgTW1pb1dyaXRlNjQgKFZ0ZFVu aXRCYXNlQWRkcmVzcyArIFJfUlRBRERSX1JFRywgUnRhZGRyUmVnVmFsdWUpOw0KPiANCj4gDQo+ IA0KPiAtICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19S RUcpOw0KPiANCj4gLSAgTW1pb1dyaXRlMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR0NNRF9S RUcsIFJlZzMyIHwNCj4gQl9HTUNEX1JFR19TUlRQKTsNCj4gDQo+IC0NCj4gDQo+ICAgIERFQlVH ICgoREVCVUdfSU5GTywgIkVuYWJsZURtYXJQcmVNZW06IHdhaXRpbmcgZm9yIFJUUFMgYml0IHRv IGJlDQo+IHNldC4uLiBcbiIpKTsNCj4gDQo+IC0gIGRvIHsNCj4gDQo+IC0gICAgUmVnMzIgPSBN bWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVHKTsNCj4gDQo+IC0gIH0g d2hpbGUoKFJlZzMyICYgQl9HU1RTX1JFR19SVFBTKSA9PSAwKTsNCj4gDQo+ICsgIFNldEdsb2Jh bENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0ZFVuaXRCYXNlQWRkcmVzcywNCj4gQl9HTUNEX1JFR19T UlRQKTsNCj4gDQo+ICsNCj4gDQo+ICsgIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VB ZGRyZXNzICsgUl9HU1RTX1JFRyk7DQo+IA0KPiAgICBERUJVRyAoKERFQlVHX0lORk8sICJFbmFi bGVEbWFyUHJlTWVtOiBSX0dTVFNfUkVHID0gMHgleCBcbiIsDQo+IFJlZzMyKSk7DQo+IA0KPiAN Cj4gDQo+ICAgIC8vDQo+IA0KPiBAQCAtNDA1LDEyICs0NjQsNyBAQCBFbmFibGVEbWFyUHJlTWVt ICgNCj4gICAgLy8NCj4gDQo+ICAgIC8vIEVuYWJsZSBWVGQNCj4gDQo+ICAgIC8vDQo+IA0KPiAt ICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19SRUcpOw0K PiANCj4gLSAgTW1pb1dyaXRlMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR0NNRF9SRUcsIFJl ZzMyIHwNCj4gQl9HTUNEX1JFR19URSk7DQo+IA0KPiAtICBERUJVRyAoKERFQlVHX0lORk8sICJF bmFibGVEbWFyUHJlTWVtOiBXYWl0aW5nDQo+IEJfR1NUU19SRUdfVEUgLi4uXG4iKSk7DQo+IA0K PiAtICBkbyB7DQo+IA0KPiAtICAgIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRy ZXNzICsgUl9HU1RTX1JFRyk7DQo+IA0KPiAtICB9IHdoaWxlICgoUmVnMzIgJiBCX0dTVFNfUkVH X1RFKSA9PSAwKTsNCj4gDQo+ICsgIFNldEdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0ZFVu aXRCYXNlQWRkcmVzcywgQl9HTUNEX1JFR19URSk7DQo+IA0KPiANCj4gDQo+ICAgIERFQlVHICgo REVCVUdfSU5GTywgIlZURCAoKSBlbmFibGVkITw8PDw8PFxuIikpOw0KPiANCj4gDQo+IA0KPiBA QCAtNDM0LDIyICs0ODgsNDMgQEAgRW5hYmxlRG1hciAoDQo+ICB7DQo+IA0KPiAgICBVSU5UMzIg ICAgICAgICAgICAgICAgICAgICAgICBSZWczMjsNCj4gDQo+ICAgIFVJTlROICAgICAgICAgICAg ICAgICAgICAgICAgIFZ0ZFVuaXRCYXNlQWRkcmVzczsNCj4gDQo+ICsgIEJPT0xFQU4gICAgICAg ICAgICAgICAgICAgICAgIFRFV2FzRW5hYmxlZDsNCj4gDQo+IA0KPiANCj4gICAgVnRkVW5pdEJh c2VBZGRyZXNzID0gVlRkVW5pdEluZm8tPlZ0ZFVuaXRCYXNlQWRkcmVzczsNCj4gDQo+IA0KPiAN Cj4gICAgREVCVUcgKChERUJVR19JTkZPLCAiPj4+Pj4+RW5hYmxlRG1hcigpIGZvciBlbmdpbmUg WyV4XSBcbiIsDQo+IFZ0ZFVuaXRCYXNlQWRkcmVzcykpOw0KPiANCj4gDQo+IA0KPiAtICBERUJV RyAoKERFQlVHX0lORk8sICJSb290RW50cnlUYWJsZSAweCV4IFxuIiwgUm9vdEVudHJ5VGFibGUp KTsNCj4gDQo+IC0gIE1taW9Xcml0ZTY0IChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX1JUQUREUl9S RUcsIChVSU5UNjQpDQo+IFJvb3RFbnRyeVRhYmxlKTsNCj4gDQo+ICsgIC8vDQo+IA0KPiArICAv LyBDaGVjayBURSB3YXMgZW5hYmxlZCBvciBub3QuDQo+IA0KPiArICAvLw0KPiANCj4gKyAgVEVX YXNFbmFibGVkID0gKChNbWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVH KSAmDQo+ICsgQl9HU1RTX1JFR19URSkgPT0gQl9HU1RTX1JFR19URSk7DQo+IA0KPiANCj4gDQo+ IC0gIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7 DQo+IA0KPiAtICBNbWlvV3JpdGUzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HQ01EX1JFRywg UmVnMzIgfA0KPiBCX0dNQ0RfUkVHX1NSVFApOw0KPiANCj4gKyAgaWYgKFRFV2FzRW5hYmxlZCAm JiAoVlRkVW5pdEluZm8tPkVDYXBSZWcuQml0cy5BRE1TID09IDEpICYmDQo+ICsgUGNkR2V0Qm9v bCAoUGNkVlRkU3VwcG9ydEFib3J0RG1hTW9kZSkpIHsNCj4gDQo+ICsgICAgLy8NCj4gDQo+ICsg ICAgLy8gRm9yIGltcGxlbWVudGF0aW9ucyByZXBvcnRpbmcgRW5oYW5jZWQgU1JUUCBTdXBwb3J0 IChFU1JUUFMpDQo+ICsgZmllbGQgYXMNCj4gDQo+ICsgICAgLy8gQ2xlYXIgaW4gdGhlIENhcGFi aWxpdHkgcmVnaXN0ZXIsIHNvZnR3YXJlIG11c3Qgbm90IG1vZGlmeSB0aGlzDQo+ICsgZmllbGQg d2hpbGUNCj4gDQo+ICsgICAgLy8gRE1BIHJlbWFwcGluZyBpcyBhY3RpdmUgKFRFUz0xIGluIEds b2JhbCBTdGF0dXMgcmVnaXN0ZXIpLg0KPiANCj4gKyAgICAvLw0KPiANCj4gKyAgICBpZiAoVlRk VW5pdEluZm8tPkNhcFJlZy5CaXRzLkVTUlRQUyA9PSAwKSB7DQo+IA0KPiArICAgICAgQ2xlYXJH bG9iYWxDb21tYW5kUmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJlc3MsDQo+ICsgQl9HTUNE X1JFR19URSk7DQo+IA0KPiArICAgIH0NCj4gDQo+ICsNCj4gDQo+ICsgICAgLy8NCj4gDQo+ICsg ICAgLy8gRW5hYmxlIEFETQ0KPiANCj4gKyAgICAvLw0KPiANCj4gKyAgICBNbWlvV3JpdGU2NCAo VnRkVW5pdEJhc2VBZGRyZXNzICsgUl9SVEFERFJfUkVHLCAoVUlOVDY0KQ0KPiArIChSb290RW50 cnlUYWJsZSB8IFZfUlRBRERSX1JFR19UVE1fQURNKSk7DQo+IA0KPiArDQo+IA0KPiArICAgIERF QlVHKChERUJVR19JTkZPLCAiRW5hYmxlIEFib3J0IERNQSBNb2RlLi4uXG4iKSk7DQo+IA0KPiAr ICAgIFNldEdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0ZFVuaXRCYXNlQWRkcmVzcywgQl9H TUNEX1JFR19URSk7DQo+IA0KPiArDQo+IA0KPiArICB9IGVsc2Ugew0KPiANCj4gKyAgICBERUJV RyAoKERFQlVHX0lORk8sICJSb290RW50cnlUYWJsZSAweCV4IFxuIiwgUm9vdEVudHJ5VGFibGUp KTsNCj4gDQo+ICsgICAgTW1pb1dyaXRlNjQgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfUlRBRERS X1JFRywgKFVJTlQ2NCkNCj4gKyBSb290RW50cnlUYWJsZSk7DQo+IA0KPiArDQo+IA0KPiArICB9 DQo+IA0KPiANCj4gDQo+ICAgIERFQlVHICgoREVCVUdfSU5GTywgIkVuYWJsZURtYXI6IHdhaXRp bmcgZm9yIFJUUFMgYml0IHRvIGJlIHNldC4uLiBcbiIpKTsNCj4gDQo+IC0gIGRvIHsNCj4gDQo+ IC0gICAgUmVnMzIgPSBNbWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVH KTsNCj4gDQo+IC0gIH0gd2hpbGUoKFJlZzMyICYgQl9HU1RTX1JFR19SVFBTKSA9PSAwKTsNCj4g DQo+IC0gIERFQlVHICgoREVCVUdfSU5GTywgIkVuYWJsZURtYXI6IFJfR1NUU19SRUcgPSAweCV4 IFxuIiwgUmVnMzIpKTsNCj4gDQo+ICsgIFNldEdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0 ZFVuaXRCYXNlQWRkcmVzcywNCj4gQl9HTUNEX1JFR19TUlRQKTsNCj4gDQo+IA0KPiANCj4gICAg Ly8NCj4gDQo+ICAgIC8vIEluaXQgRE1BciBGYXVsdCBFdmVudCBhbmQgRGF0YSByZWdpc3RlcnMN Cj4gDQo+IEBAIC00NzEsMTUgKzU0NiwxOSBAQCBFbmFibGVEbWFyICgNCj4gICAgLy8NCj4gDQo+ ICAgIEludmFsaWRhdGVJT1RMQiAoVlRkVW5pdEluZm8pOw0KPiANCj4gDQo+IA0KPiArICBpZiAo VEVXYXNFbmFibGVkICYmIChWVGRVbml0SW5mby0+RUNhcFJlZy5CaXRzLkFETVMgPT0gMSkgJiYN Cj4gKyBQY2RHZXRCb29sIChQY2RWVGRTdXBwb3J0QWJvcnREbWFNb2RlKSkgew0KPiANCj4gKyAg ICBpZiAoVlRkVW5pdEluZm8tPkNhcFJlZy5CaXRzLkVTUlRQUyA9PSAwKSB7DQo+IA0KPiArICAg ICAgQ2xlYXJHbG9iYWxDb21tYW5kUmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJlc3MsDQo+ ICsgQl9HTUNEX1JFR19URSk7DQo+IA0KPiArICAgIH0NCj4gDQo+ICsNCj4gDQo+ICsgICAgREVC VUcgKChERUJVR19JTkZPLCAiUm9vdEVudHJ5VGFibGUgMHgleCBcbiIsIFJvb3RFbnRyeVRhYmxl KSk7DQo+IA0KPiArICAgIE1taW9Xcml0ZTY0IChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX1JUQURE Ul9SRUcsIChVSU5UNjQpDQo+ICsgUm9vdEVudHJ5VGFibGUpOw0KPiANCj4gKyAgfQ0KPiANCj4g Kw0KPiANCj4gICAgLy8NCj4gDQo+ICAgIC8vIEVuYWJsZSBWVGQNCj4gDQo+ICAgIC8vDQo+IA0K PiAtICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19SRUcp Ow0KPiANCj4gLSAgTW1pb1dyaXRlMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR0NNRF9SRUcs IFJlZzMyIHwNCj4gQl9HTUNEX1JFR19URSk7DQo+IA0KPiAtICBERUJVRyAoKERFQlVHX0lORk8s ICJFbmFibGVEbWFyOiBXYWl0aW5nIEJfR1NUU19SRUdfVEUgLi4uXG4iKSk7DQo+IA0KPiAtICBk byB7DQo+IA0KPiAtICAgIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsg Ul9HU1RTX1JFRyk7DQo+IA0KPiAtICB9IHdoaWxlICgoUmVnMzIgJiBCX0dTVFNfUkVHX1RFKSA9 PSAwKTsNCj4gDQo+ICsgIFNldEdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0ZFVuaXRCYXNl QWRkcmVzcywgQl9HTUNEX1JFR19URSk7DQo+IA0KPiANCj4gDQo+ICAgIERFQlVHICgoREVCVUdf SU5GTywgIlZURCAoKSBlbmFibGVkITw8PDw8PFxuIikpOw0KPiANCj4gDQo+IA0KPiBAQCAtNTAw LDggKzU3OSw2IEBAIERpc2FibGVEbWFyICgNCj4gICAgKQ0KPiANCj4gIHsNCj4gDQo+ICAgIFVJ TlQzMiAgICAgICAgICAgICAgICAgICAgICAgIFJlZzMyOw0KPiANCj4gLSAgVUlOVDMyICAgICAg ICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiANCj4gLSAgVUlOVDMyICAgICAgICAgICAgICAg ICAgICAgICAgQ29tbWFuZDsNCj4gDQo+IA0KPiANCj4gICAgREVCVUcgKChERUJVR19JTkZPLCAi Pj4+Pj4+RGlzYWJsZURtYXIoKSBmb3IgZW5naW5lIFsleF0gXG4iLA0KPiBWdGRVbml0QmFzZUFk ZHJlc3MpKTsNCj4gDQo+IA0KPiANCj4gQEAgLTUxNiwyOCArNTkzLDEyIEBAIERpc2FibGVEbWFy ICgNCj4gICAgLy8NCj4gDQo+ICAgIC8vIFNldCBURSAoVHJhbnNsYXRpb24gRW5hYmxlOiBCSVQz MSkgb2YgR2xvYmFsIGNvbW1hbmQgcmVnaXN0ZXIgdG8gemVybw0KPiANCj4gICAgLy8NCj4gDQo+ IC0gIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7 DQo+IA0KPiAtICBTdGF0dXMgPSAoUmVnMzIgJiAweDk2RkZGRkZGKTsgICAgICAgLy8gUmVzZXQg dGhlIG9uZS1zaG90IGJpdHMNCj4gDQo+IC0gIENvbW1hbmQgPSAoU3RhdHVzICYgfkJfR01DRF9S RUdfVEUpOw0KPiANCj4gLSAgTW1pb1dyaXRlMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR0NN RF9SRUcsIENvbW1hbmQpOw0KPiANCj4gLQ0KPiANCj4gLSAgIC8vDQo+IA0KPiAtICAgLy8gUG9s bCBvbiBURSBTdGF0dXMgYml0IG9mIEdsb2JhbCBzdGF0dXMgcmVnaXN0ZXIgdG8gYmVjb21lIHpl cm8NCj4gDQo+IC0gICAvLw0KPiANCj4gLSAgIGRvIHsNCj4gDQo+IC0gICAgIFJlZzMyID0gTW1p b1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7DQo+IA0KPiAtICAgfSB3 aGlsZSAoKFJlZzMyICYgQl9HU1RTX1JFR19URSkgPT0gQl9HU1RTX1JFR19URSk7DQo+IA0KPiAr ICBDbGVhckdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0ZFVuaXRCYXNlQWRkcmVzcywNCj4g Ql9HTUNEX1JFR19URSk7DQo+IA0KPiANCj4gDQo+ICAgIC8vDQo+IA0KPiAgICAvLyBTZXQgU1JU UCAoU2V0IFJvb3QgVGFibGUgUG9pbnRlcjogQklUMzApIG9mIEdsb2JhbCBjb21tYW5kIHJlZ2lz dGVyIGluDQo+IG9yZGVyIHRvIHVwZGF0ZSB0aGUgcm9vdCB0YWJsZSBwb2ludGVyRGlzYWJsZSBW VGQNCj4gDQo+ICAgIC8vDQo+IA0KPiAtICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNl QWRkcmVzcyArIFJfR1NUU19SRUcpOw0KPiANCj4gLSAgU3RhdHVzID0gKFJlZzMyICYgMHg5NkZG RkZGRik7ICAgICAgIC8vIFJlc2V0IHRoZSBvbmUtc2hvdCBiaXRzDQo+IA0KPiAtICBDb21tYW5k ID0gKFN0YXR1cyB8IEJfR01DRF9SRUdfU1JUUCk7DQo+IA0KPiAtICBNbWlvV3JpdGUzMiAoVnRk VW5pdEJhc2VBZGRyZXNzICsgUl9HQ01EX1JFRywgQ29tbWFuZCk7DQo+IA0KPiAtICBkbyB7DQo+ IA0KPiAtICAgIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RT X1JFRyk7DQo+IA0KPiAtICB9IHdoaWxlKChSZWczMiAmIEJfR1NUU19SRUdfUlRQUykgPT0gMCk7 DQo+IA0KPiArICBTZXRHbG9iYWxDb21tYW5kUmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJl c3MsDQo+IEJfR01DRF9SRUdfU1JUUCk7DQo+IA0KPiANCj4gDQo+ICAgIFJlZzMyID0gTW1pb1Jl YWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7DQo+IA0KPiAgICBERUJVRygo REVCVUdfSU5GTywgIkRpc2FibGVEbWFyOiBHU1RTX1JFRyAtIDB4JTA4eFxuIiwgUmVnMzIpKTsN Cj4gDQo+IEBAIC01NjgsMTIgKzYyOSwxMiBAQCBFbmFibGVWVGRUcmFuc2xhdGlvblByb3RlY3Rp b25CbG9ja0RtYSAoDQo+IA0KPiANCj4gICAgREVCVUcgKChERUJVR19JTkZPLCAiRW5hYmxlVlRk VHJhbnNsYXRpb25Qcm90ZWN0aW9uQmxvY2tEbWEgLQ0KPiAweCUwOHhcbiIsIFZ0ZFVuaXRCYXNl QWRkcmVzcykpOw0KPiANCj4gDQo+IA0KPiAtICBERUJVRyAoKERFQlVHX0lORk8sICJQY2RWVGRT dXBwb3J0QWJvcnREbWFNb2RlIDogJWRcbiIsDQo+IEZpeGVkUGNkR2V0Qm9vbCAoUGNkVlRkU3Vw cG9ydEFib3J0RG1hTW9kZSkpKTsNCj4gDQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIlBjZFZU ZFN1cHBvcnRBYm9ydERtYU1vZGUgOiAlZFxuIiwNCj4gUGNkR2V0Qm9vbA0KPiArIChQY2RWVGRT dXBwb3J0QWJvcnREbWFNb2RlKSkpOw0KPiANCj4gDQo+IA0KPiAgICBFQ2FwUmVnLlVpbnQ2NCA9 IE1taW9SZWFkNjQgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfRUNBUF9SRUcpOw0KPiANCj4gICAg REVCVUcgKChERUJVR19JTkZPLCAiRUNhcFJlZy5BRE1TIDogJWRcbiIsIEVDYXBSZWcuQml0cy5B RE1TKSk7DQo+IA0KPiANCj4gDQo+IC0gIGlmICgoRUNhcFJlZy5CaXRzLkFETVMgPT0gMSkgJiYg Rml4ZWRQY2RHZXRCb29sDQo+IChQY2RWVGRTdXBwb3J0QWJvcnREbWFNb2RlKSkgew0KPiANCj4g KyAgaWYgKChFQ2FwUmVnLkJpdHMuQURNUyA9PSAxKSAmJiBQY2RHZXRCb29sDQo+ICsgKFBjZFZU ZFN1cHBvcnRBYm9ydERtYU1vZGUpKSB7DQo+IA0KPiAgICAgIC8vDQo+IA0KPiAgICAgIC8vIFVz ZSBBYm9ydCBETUEgTW9kZQ0KPiANCj4gICAgICAvLw0KPiANCj4gZGlmZiAtLWdpdA0KPiBhL1Np bGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0ludGVs VlRkRHhlLmluZg0KPiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRk L0ludGVsVlRkRHhlL0ludGVsVlRkRHhlLmluZg0KPiBpbmRleCAzODdmOTBlMzcuLmIxNTI4MzFj MCAxMDA2NDQNCj4gLS0tIGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9W VGQvSW50ZWxWVGREeGUvSW50ZWxWVGREeGUuaW5mDQo+ICsrKyBiL1NpbGljb24vSW50ZWwvSW50 ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0ludGVsVlRkRHhlLg0KPiArKysg aW5mDQo+IEBAIC03NSw2ICs3NSw3IEBADQo+ICBbUGNkXQ0KPiANCj4gICAgZ0ludGVsU2lsaWNv blBrZ1Rva2VuU3BhY2VHdWlkLlBjZFZUZFBvbGljeVByb3BlcnR5TWFzayAgICMjDQo+IENPTlNV TUVTDQo+IA0KPiAgICBnSW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNkRXJyb3JDb2Rl VlRkRXJyb3IgICAgICAgIyMgQ09OU1VNRVMNCj4gDQo+ICsgIGdJbnRlbFNpbGljb25Qa2dUb2tl blNwYWNlR3VpZC5QY2RWVGRTdXBwb3J0QWJvcnREbWFNb2RlICAjIw0KPiBDT05TVU1FUw0KPiAN Cj4gDQo+IA0KPiAgW0RlcGV4XQ0KPiANCj4gICAgZ0VmaVBjaVJvb3RCcmlkZ2VJb1Byb3RvY29s R3VpZA0KPiANCj4gZGlmZiAtLWdpdCBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0Zl YXR1cmUvVlRkL0ludGVsVlRkRHhlL1Z0ZFJlZy5jDQo+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNp bGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvVnRkUmVnLmMNCj4gaW5kZXggYzdhNTZj ZjU3Li4zOTZhYTRhNzAgMTAwNjQ0DQo+IC0tLSBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29u UGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL1Z0ZFJlZy5jDQo+ICsrKyBiL1NpbGljb24vSW50 ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL1Z0ZFJlZy5jDQo+IEBA IC00NzUsNiArNDc1LDkyIEBAIERpc2FibGVQbXIgKA0KPiAgICByZXR1cm4gOw0KPiANCj4gIH0N Cj4gDQo+IA0KPiANCj4gKy8qKg0KPiANCj4gKyAgQ2xlYXIgR2xvYmFsIENvbW1hbmQgUmVnaXN0 ZXIgQml0cw0KPiANCj4gKw0KPiANCj4gKyAgQHBhcmFtW2luXSBWdGRVbml0QmFzZUFkZHJlc3Mg VGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgVlRkIGVuZ2luZS4NCj4gDQo+ICsgIEBwYXJhbVtpbl0g Qml0TWFzayAgICAgICAgICAgIEJpdCBtYXNrLg0KPiANCj4gKyoqLw0KPiANCj4gK1ZPSUQNCj4g DQo+ICtDbGVhckdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKA0KPiANCj4gKyAgSU4gVUlOVE4g ICAgIFZ0ZFVuaXRCYXNlQWRkcmVzcywNCj4gDQo+ICsgIElOIFVJTlQzMiAgICBCaXRNYXNrDQo+ IA0KPiArICApDQo+IA0KPiArew0KPiANCj4gKyAgVUlOVDMyICAgIFJlZzMyOw0KPiANCj4gKyAg VUlOVDMyICAgIFN0YXR1czsNCj4gDQo+ICsgIFVJTlQzMiAgICBDb21tYW5kOw0KPiANCj4gKw0K PiANCj4gKyAgUmVnMzIgPSBNbWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNf UkVHKTsNCj4gDQo+ICsgIFN0YXR1cyA9IChSZWczMiAmIDB4OTZGRkZGRkYpOyAgICAgICAvLyBS ZXNldCB0aGUgb25lLXNob3QgYml0cw0KPiANCj4gKyAgQ29tbWFuZCA9IChTdGF0dXMgJiAofkJp dE1hc2spKTsNCj4gDQo+ICsgIE1taW9Xcml0ZTMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dD TURfUkVHLCBDb21tYW5kKTsNCj4gDQo+ICsNCj4gDQo+ICsgIERFQlVHKChERUJVR19JTkZPLCAi Q2xlYXIgR0NNRF9SRUcgYml0cyAweCV4LlxuIiwgQml0TWFzaykpOw0KPiANCj4gKw0KPiANCj4g KyAgLy8NCj4gDQo+ICsgIC8vIFBvbGwgb24gU3RhdHVzIGJpdCBvZiBHbG9iYWwgc3RhdHVzIHJl Z2lzdGVyIHRvIGJlY29tZSB6ZXJvDQo+IA0KPiArICAvLw0KPiANCj4gKyAgZG8gew0KPiANCj4g KyAgICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19SRUcp Ow0KPiANCj4gKyAgfSB3aGlsZSAoKFJlZzMyICYgQml0TWFzaykgPT0gQml0TWFzayk7DQo+IA0K PiArfQ0KPiANCj4gKw0KPiANCj4gKy8qKg0KPiANCj4gKyAgU2V0IEdsb2JhbCBDb21tYW5kIFJl Z2lzdGVyIEJpdHMNCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbVtpbl0gVnRkVW5pdEJhc2VBZGRy ZXNzIFRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIFZUZCBlbmdpbmUuDQo+IA0KPiArICBAcGFyYW1b aW5dIEJpdE1hc2sgICAgICAgICAgICBCaXQgbWFzay4NCj4gDQo+ICsqKi8NCj4gDQo+ICtWT0lE DQo+IA0KPiArU2V0R2xvYmFsQ29tbWFuZFJlZ2lzdGVyQml0cyAoDQo+IA0KPiArICBJTiBVSU5U TiAgICAgVnRkVW5pdEJhc2VBZGRyZXNzLA0KPiANCj4gKyAgSU4gVUlOVDMyICAgIEJpdE1hc2sN Cj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBVSU5UMzIgICAgUmVnMzI7DQo+IA0KPiAr ICBVSU5UMzIgICAgU3RhdHVzOw0KPiANCj4gKyAgVUlOVDMyICAgIENvbW1hbmQ7DQo+IA0KPiAr DQo+IA0KPiArICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NU U19SRUcpOw0KPiANCj4gKyAgU3RhdHVzID0gKFJlZzMyICYgMHg5NkZGRkZGRik7ICAgICAgIC8v IFJlc2V0IHRoZSBvbmUtc2hvdCBiaXRzDQo+IA0KPiArICBDb21tYW5kID0gKFN0YXR1cyB8IEJp dE1hc2spOw0KPiANCj4gKyAgTW1pb1dyaXRlMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR0NN RF9SRUcsIENvbW1hbmQpOw0KPiANCj4gKw0KPiANCj4gKyAgREVCVUcoKERFQlVHX0lORk8sICJT ZXQgR0NNRF9SRUcgYml0cyAweCV4LlxuIiwgQml0TWFzaykpOw0KPiANCj4gKw0KPiANCj4gKyAg Ly8NCj4gDQo+ICsgIC8vIFBvbGwgb24gU3RhdHVzIGJpdCBvZiBHbG9iYWwgc3RhdHVzIHJlZ2lz dGVyIHRvIGJlY29tZSBub3QgemVybw0KPiANCj4gKyAgLy8NCj4gDQo+ICsgIGRvIHsNCj4gDQo+ ICsgICAgUmVnMzIgPSBNbWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVH KTsNCj4gDQo+ICsgIH0gd2hpbGUgKChSZWczMiAmIEJpdE1hc2spID09IDApOw0KPiANCj4gK30N Cj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIFVwZGF0ZSBSb290IFRhYmxlIEFkZHJlc3Mg UmVnaXN0ZXINCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbVtpbl0gIFZ0ZEluZGV4ICAgICAgICAg IFRoZSBpbmRleCB1c2VkIHRvIGlkZW50aWZ5IGEgVlRkIGVuZ2luZS4NCj4gDQo+ICsgIEBwYXJh bVtpbl0gIEVuYWJsZUFETSAgICAgICAgIFRSVUUgLSBFbmFibGUgQURNIGluIFRUTSBiaXRzDQo+ IA0KPiArKiovDQo+IA0KPiArVk9JRA0KPiANCj4gK1VwZGF0ZVJvb3RUYWJsZUFkZHJlc3NSZWdp c3RlciAoDQo+IA0KPiArICBJTiBVSU5UTiAgIFZ0ZEluZGV4LA0KPiANCj4gKyAgSU4gQk9PTEVB TiBFbmFibGVBRE0NCj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBVSU5UNjQgUmVnNjQ7 DQo+IA0KPiArDQo+IA0KPiArICBpZiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltWdGRJbmRleF0uRXh0 Um9vdEVudHJ5VGFibGUgIT0gTlVMTCkgew0KPiANCj4gKyAgICBERUJVRygoREVCVUdfSU5GTywg IkV4dFJvb3RFbnRyeVRhYmxlIDB4JXggXG4iLA0KPiArIG1WdGRVbml0SW5mb3JtYXRpb25bVnRk SW5kZXhdLkV4dFJvb3RFbnRyeVRhYmxlKSk7DQo+IA0KPiArICAgIFJlZzY0ID0NCj4gKyAoVUlO VDY0KShVSU5UTiltVnRkVW5pdEluZm9ybWF0aW9uW1Z0ZEluZGV4XS5FeHRSb290RW50cnlUYWJs ZSB8DQo+ICsgKEVuYWJsZUFETSA/IFZfUlRBRERSX1JFR19UVE1fQURNIDogQklUMTEpOw0KPiAN Cj4gKyAgfSBlbHNlIHsNCj4gDQo+ICsgICAgREVCVUcoKERFQlVHX0lORk8sICJSb290RW50cnlU YWJsZSAweCV4IFxuIiwNCj4gKyBtVnRkVW5pdEluZm9ybWF0aW9uW1Z0ZEluZGV4XS5Sb290RW50 cnlUYWJsZSkpOw0KPiANCj4gKyAgICBSZWc2NCA9DQo+IChVSU5UNjQpKFVJTlROKW1WdGRVbml0 SW5mb3JtYXRpb25bVnRkSW5kZXhdLlJvb3RFbnRyeVRhYmxlDQo+ICsgfCAoRW5hYmxlQURNID8g Vl9SVEFERFJfUkVHX1RUTV9BRE0gOiAwKTsNCj4gDQo+ICsgIH0NCj4gDQo+ICsgIE1taW9Xcml0 ZTY0IChtVnRkVW5pdEluZm9ybWF0aW9uW1Z0ZEluZGV4XS5WdGRVbml0QmFzZUFkZHJlc3MgKw0K PiArIFJfUlRBRERSX1JFRywgUmVnNjQpOw0KPiANCj4gK30NCj4gDQo+ICsNCj4gDQo+ICAvKioN Cj4gDQo+ICAgIEVuYWJsZSBETUFSIHRyYW5zbGF0aW9uLg0KPiANCj4gDQo+IA0KPiBAQCAtNDg4 LDI1ICs1NzQsNDMgQEAgRW5hYmxlRG1hciAoDQo+ICB7DQo+IA0KPiAgICBVSU5UTiAgICAgSW5k ZXg7DQo+IA0KPiAgICBVSU5UMzIgICAgUmVnMzI7DQo+IA0KPiArICBVSU5UTiAgICAgVnRkVW5p dEJhc2VBZGRyZXNzOw0KPiANCj4gKyAgQk9PTEVBTiAgIFRFV2FzRW5hYmxlZDsNCj4gDQo+IA0K PiANCj4gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgbVZ0ZFVuaXROdW1iZXI7IEluZGV4Kysp IHsNCj4gDQo+IC0gICAgREVCVUcoKERFQlVHX0lORk8sICI+Pj4+Pj5FbmFibGVEbWFyKCkgZm9y IGVuZ2luZSBbJWRdIFxuIiwgSW5kZXgpKTsNCj4gDQo+ICsgICAgVnRkVW5pdEJhc2VBZGRyZXNz ID0gbVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRkVW5pdEJhc2VBZGRyZXNzOw0KPiANCj4g KyAgICBERUJVRygoREVCVUdfSU5GTywgIj4+Pj4+PkVuYWJsZURtYXIoKSBmb3IgZW5naW5lIFsl ZF0gQkFSDQo+ICsgWzB4JXhdXG4iLCBJbmRleCwgVnRkVW5pdEJhc2VBZGRyZXNzKSk7DQo+IA0K PiArDQo+IA0KPiArICAgIC8vDQo+IA0KPiArICAgIC8vIENoZWNrIFRFIHdhcyBlbmFibGVkIG9y IG5vdC4NCj4gDQo+ICsgICAgLy8NCj4gDQo+ICsgICAgVEVXYXNFbmFibGVkID0gKChNbWlvUmVh ZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVHKSAmDQo+ICsgQl9HU1RTX1JFR19U RSkgPT0gQl9HU1RTX1JFR19URSk7DQo+IA0KPiArDQo+IA0KPiArICAgIGlmIChURVdhc0VuYWJs ZWQgJiYgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLkVDYXBSZWcuQml0cy5BRE1TDQo+ICsg PT0gMSkgJiYgUGNkR2V0Qm9vbCAoUGNkVlRkU3VwcG9ydEFib3J0RG1hTW9kZSkpIHsNCj4gDQo+ ICsgICAgICAvLw0KPiANCj4gKyAgICAgIC8vIEZvciBpbXBsZW1lbnRhdGlvbnMgcmVwb3J0aW5n IEVuaGFuY2VkIFNSVFAgU3VwcG9ydCAoRVNSVFBTKQ0KPiArIGZpZWxkIGFzDQo+IA0KPiArICAg ICAgLy8gQ2xlYXIgaW4gdGhlIENhcGFiaWxpdHkgcmVnaXN0ZXIsIHNvZnR3YXJlIG11c3Qgbm90 IG1vZGlmeQ0KPiArIHRoaXMgZmllbGQgd2hpbGUNCj4gDQo+ICsgICAgICAvLyBETUEgcmVtYXBw aW5nIGlzIGFjdGl2ZSAoVEVTPTEgaW4gR2xvYmFsIFN0YXR1cyByZWdpc3RlcikuDQo+IA0KPiAr ICAgICAgLy8NCj4gDQo+ICsgICAgICBpZiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uQ2Fw UmVnLkJpdHMuRVNSVFBTID09IDApIHsNCj4gDQo+ICsgICAgICAgIENsZWFyR2xvYmFsQ29tbWFu ZFJlZ2lzdGVyQml0cyAoVnRkVW5pdEJhc2VBZGRyZXNzLA0KPiArIEJfR01DRF9SRUdfVEUpOw0K PiANCj4gKyAgICAgIH0NCj4gDQo+ICsNCj4gDQo+ICsgICAgICAvLw0KPiANCj4gKyAgICAgIC8v IEVuYWJsZSBBRE0NCj4gDQo+ICsgICAgICAvLw0KPiANCj4gKyAgICAgIFVwZGF0ZVJvb3RUYWJs ZUFkZHJlc3NSZWdpc3RlciAoSW5kZXgsIFRSVUUpOw0KPiANCj4gKw0KPiANCj4gKyAgICAgIERF QlVHKChERUJVR19JTkZPLCAiRW5hYmxlIEFib3J0IERNQSBNb2RlLi4uXG4iKSk7DQo+IA0KPiAr ICAgICAgU2V0R2xvYmFsQ29tbWFuZFJlZ2lzdGVyQml0cyAoVnRkVW5pdEJhc2VBZGRyZXNzLA0K PiBCX0dNQ0RfUkVHX1RFKTsNCj4gDQo+IA0KPiANCj4gLSAgICBpZiAobVZ0ZFVuaXRJbmZvcm1h dGlvbltJbmRleF0uRXh0Um9vdEVudHJ5VGFibGUgIT0gTlVMTCkgew0KPiANCj4gLSAgICAgIERF QlVHKChERUJVR19JTkZPLCAiRXh0Um9vdEVudHJ5VGFibGUgMHgleCBcbiIsDQo+IG1WdGRVbml0 SW5mb3JtYXRpb25bSW5kZXhdLkV4dFJvb3RFbnRyeVRhYmxlKSk7DQo+IA0KPiAtICAgICAgTW1p b1dyaXRlNjQgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcyAr DQo+IFJfUlRBRERSX1JFRywNCj4gKFVJTlQ2NCkoVUlOVE4pbVZ0ZFVuaXRJbmZvcm1hdGlvbltJ bmRleF0uRXh0Um9vdEVudHJ5VGFibGUgfCBCSVQxMSk7DQo+IA0KPiAgICAgIH0gZWxzZSB7DQo+ IA0KPiAtICAgICAgREVCVUcoKERFQlVHX0lORk8sICJSb290RW50cnlUYWJsZSAweCV4IFxuIiwN Cj4gbVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uUm9vdEVudHJ5VGFibGUpKTsNCj4gDQo+IC0g ICAgICBNbWlvV3JpdGU2NCAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRkVW5pdEJhc2VB ZGRyZXNzICsNCj4gUl9SVEFERFJfUkVHLA0KPiAoVUlOVDY0KShVSU5UTiltVnRkVW5pdEluZm9y bWF0aW9uW0luZGV4XS5Sb290RW50cnlUYWJsZSk7DQo+IA0KPiAtICAgIH0NCj4gDQo+ICsgICAg ICBVcGRhdGVSb290VGFibGVBZGRyZXNzUmVnaXN0ZXIgKEluZGV4LCBGQUxTRSk7DQo+IA0KPiAN Cj4gDQo+IC0gICAgUmVnMzIgPSBNbWlvUmVhZDMyIChtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4 XS5WdGRVbml0QmFzZUFkZHJlc3MNCj4gKyBSX0dTVFNfUkVHKTsNCj4gDQo+IC0gICAgTW1pb1dy aXRlMzIgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcyArDQo+ IFJfR0NNRF9SRUcsIFJlZzMyIHwgQl9HTUNEX1JFR19TUlRQKTsNCj4gDQo+ICsgICAgfQ0KPiAN Cj4gDQo+IA0KPiAgICAgIERFQlVHKChERUJVR19JTkZPLCAiRW5hYmxlRG1hcjogd2FpdGluZyBm b3IgUlRQUyBiaXQgdG8gYmUgc2V0Li4uIFxuIikpOw0KPiANCj4gLSAgICBkbyB7DQo+IA0KPiAt ICAgICAgUmVnMzIgPSBNbWlvUmVhZDMyIChtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5WdGRV bml0QmFzZUFkZHJlc3MNCj4gKyBSX0dTVFNfUkVHKTsNCj4gDQo+IC0gICAgfSB3aGlsZSgoUmVn MzIgJiBCX0dTVFNfUkVHX1JUUFMpID09IDApOw0KPiANCj4gKyAgICBTZXRHbG9iYWxDb21tYW5k UmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJlc3MsDQo+IEJfR01DRF9SRUdfU1JUUCk7DQo+ IA0KPiANCj4gDQo+ICAgICAgLy8NCj4gDQo+ICAgICAgLy8gSW5pdCBETUFyIEZhdWx0IEV2ZW50 IGFuZCBEYXRhIHJlZ2lzdGVycw0KPiANCj4gQEAgLTUyOCwxNSArNjMyLDE5IEBAIEVuYWJsZURt YXIgKA0KPiAgICAgIC8vDQo+IA0KPiAgICAgIEludmFsaWRhdGVJT1RMQiAoSW5kZXgpOw0KPiAN Cj4gDQo+IA0KPiArICAgIGlmIChURVdhc0VuYWJsZWQgJiYgKG1WdGRVbml0SW5mb3JtYXRpb25b SW5kZXhdLkVDYXBSZWcuQml0cy5BRE1TDQo+ICsgPT0gMSkgJiYgUGNkR2V0Qm9vbCAoUGNkVlRk U3VwcG9ydEFib3J0RG1hTW9kZSkpIHsNCj4gDQo+ICsgICAgICBpZiAobVZ0ZFVuaXRJbmZvcm1h dGlvbltJbmRleF0uQ2FwUmVnLkJpdHMuRVNSVFBTID09IDApIHsNCj4gDQo+ICsgICAgICAgIENs ZWFyR2xvYmFsQ29tbWFuZFJlZ2lzdGVyQml0cyAoVnRkVW5pdEJhc2VBZGRyZXNzLA0KPiArIEJf R01DRF9SRUdfVEUpOw0KPiANCj4gKyAgICAgIH0NCj4gDQo+ICsNCj4gDQo+ICsgICAgICBVcGRh dGVSb290VGFibGVBZGRyZXNzUmVnaXN0ZXIgKEluZGV4LCBGQUxTRSk7DQo+IA0KPiArICAgIH0N Cj4gDQo+ICsNCj4gDQo+ICAgICAgLy8NCj4gDQo+ICAgICAgLy8gRW5hYmxlIFZUZA0KPiANCj4g ICAgICAvLw0KPiANCj4gLSAgICBSZWczMiA9IE1taW9SZWFkMzIgKG1WdGRVbml0SW5mb3JtYXRp b25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcw0KPiArIFJfR1NUU19SRUcpOw0KPiANCj4gLSAg ICBNbWlvV3JpdGUzMiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRkVW5pdEJhc2VBZGRy ZXNzICsNCj4gUl9HQ01EX1JFRywgUmVnMzIgfCBCX0dNQ0RfUkVHX1RFKTsNCj4gDQo+IC0gICAg REVCVUcoKERFQlVHX0lORk8sICJFbmFibGVEbWFyOiBXYWl0aW5nIEJfR1NUU19SRUdfVEUgLi4u XG4iKSk7DQo+IA0KPiAtICAgIGRvIHsNCj4gDQo+IC0gICAgICBSZWczMiA9IE1taW9SZWFkMzIg KG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcw0KPiArIFJfR1NU U19SRUcpOw0KPiANCj4gLSAgICB9IHdoaWxlICgoUmVnMzIgJiBCX0dTVFNfUkVHX1RFKSA9PSAw KTsNCj4gDQo+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiRW5hYmxlRG1hcjogV2FpdGluZyBC X0dTVFNfUkVHX1RFIC4uLlxuIikpOw0KPiANCj4gKyAgICBTZXRHbG9iYWxDb21tYW5kUmVnaXN0 ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJlc3MsIEJfR01DRF9SRUdfVEUpOw0KPiANCj4gDQo+IA0K PiAgICAgIERFQlVHICgoREVCVUdfSU5GTywiVlREICglZCkgZW5hYmxlZCE8PDw8PDxcbiIsSW5k ZXgpKTsNCj4gDQo+ICAgIH0NCj4gDQo+IEBAIC01NjUsOCArNjczLDYgQEAgRGlzYWJsZURtYXIg KA0KPiAgICBVSU5UTiAgICAgSW5kZXg7DQo+IA0KPiAgICBVSU5UTiAgICAgU3ViSW5kZXg7DQo+ IA0KPiAgICBVSU5UMzIgICAgUmVnMzI7DQo+IA0KPiAtICBVSU5UMzIgICAgU3RhdHVzOw0KPiAN Cj4gLSAgVUlOVDMyICAgIENvbW1hbmQ7DQo+IA0KPiANCj4gDQo+ICAgIGZvciAoSW5kZXggPSAw OyBJbmRleCA8IG1WdGRVbml0TnVtYmVyOyBJbmRleCsrKSB7DQo+IA0KPiAgICAgIERFQlVHKChE RUJVR19JTkZPLCAiPj4+Pj4+RGlzYWJsZURtYXIoKSBmb3IgZW5naW5lIFslZF0gXG4iLCBJbmRl eCkpOw0KPiANCj4gQEAgLTU4MiwzMiArNjg4LDE1IEBAIERpc2FibGVEbWFyICgNCj4gICAgICAv Lw0KPiANCj4gICAgICAvLyBTZXQgVEUgKFRyYW5zbGF0aW9uIEVuYWJsZTogQklUMzEpIG9mIEds b2JhbCBjb21tYW5kIHJlZ2lzdGVyIHRvIHplcm8NCj4gDQo+ICAgICAgLy8NCj4gDQo+IC0gICAg UmVnMzIgPSBNbWlvUmVhZDMyIChtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5WdGRVbml0QmFz ZUFkZHJlc3MNCj4gKyBSX0dTVFNfUkVHKTsNCj4gDQo+IC0gICAgU3RhdHVzID0gKFJlZzMyICYg MHg5NkZGRkZGRik7ICAgICAgIC8vIFJlc2V0IHRoZSBvbmUtc2hvdCBiaXRzDQo+IA0KPiAtICAg IENvbW1hbmQgPSAoU3RhdHVzICYgfkJfR01DRF9SRUdfVEUpOw0KPiANCj4gLSAgICBNbWlvV3Jp dGUzMiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRkVW5pdEJhc2VBZGRyZXNzICsNCj4g Ul9HQ01EX1JFRywgQ29tbWFuZCk7DQo+IA0KPiAtDQo+IA0KPiAtICAgIC8vDQo+IA0KPiAtICAg IC8vIFBvbGwgb24gVEUgU3RhdHVzIGJpdCBvZiBHbG9iYWwgc3RhdHVzIHJlZ2lzdGVyIHRvIGJl Y29tZSB6ZXJvDQo+IA0KPiAtICAgIC8vDQo+IA0KPiAtICAgIGRvIHsNCj4gDQo+IC0gICAgICBS ZWczMiA9IE1taW9SZWFkMzIgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNl QWRkcmVzcw0KPiArIFJfR1NUU19SRUcpOw0KPiANCj4gLSAgICB9IHdoaWxlICgoUmVnMzIgJiBC X0dTVFNfUkVHX1RFKSA9PSBCX0dTVFNfUkVHX1RFKTsNCj4gDQo+ICsgICAgQ2xlYXJHbG9iYWxD b21tYW5kUmVnaXN0ZXJCaXRzDQo+ICsgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVu aXRCYXNlQWRkcmVzcywgQl9HTUNEX1JFR19URSk7DQo+IA0KPiANCj4gDQo+ICAgICAgLy8NCj4g DQo+ICAgICAgLy8gU2V0IFNSVFAgKFNldCBSb290IFRhYmxlIFBvaW50ZXI6IEJJVDMwKSBvZiBH bG9iYWwgY29tbWFuZCByZWdpc3RlciBpbg0KPiBvcmRlciB0byB1cGRhdGUgdGhlIHJvb3QgdGFi bGUgcG9pbnRlckRpc2FibGUgVlRkDQo+IA0KPiAgICAgIC8vDQo+IA0KPiAtICAgIFJlZzMyID0g TW1pb1JlYWQzMiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRkVW5pdEJhc2VBZGRyZXNz DQo+ICsgUl9HU1RTX1JFRyk7DQo+IA0KPiAtICAgIFN0YXR1cyA9IChSZWczMiAmIDB4OTZGRkZG RkYpOyAgICAgICAvLyBSZXNldCB0aGUgb25lLXNob3QgYml0cw0KPiANCj4gLSAgICBDb21tYW5k ID0gKFN0YXR1cyB8IEJfR01DRF9SRUdfU1JUUCk7DQo+IA0KPiAtICAgIE1taW9Xcml0ZTMyICht VnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5WdGRVbml0QmFzZUFkZHJlc3MgKw0KPiBSX0dDTURf UkVHLCBDb21tYW5kKTsNCj4gDQo+IC0NCj4gDQo+IC0gICAgZG8gew0KPiANCj4gLSAgICAgIFJl ZzMyID0gTW1pb1JlYWQzMiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRkVW5pdEJhc2VB ZGRyZXNzDQo+ICsgUl9HU1RTX1JFRyk7DQo+IA0KPiAtICAgIH0gd2hpbGUoKFJlZzMyICYgQl9H U1RTX1JFR19SVFBTKSA9PSAwKTsNCj4gDQo+ICsgICAgU2V0R2xvYmFsQ29tbWFuZFJlZ2lzdGVy Qml0cw0KPiArIChtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5WdGRVbml0QmFzZUFkZHJlc3Ms IEJfR1NUU19SRUdfUlRQUyk7DQo+IA0KPiANCj4gDQo+ICAgICAgUmVnMzIgPSBNbWlvUmVhZDMy IChtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5WdGRVbml0QmFzZUFkZHJlc3MNCj4gKyBSX0dT VFNfUkVHKTsNCj4gDQo+IC0gICAgREVCVUcoKERFQlVHX0lORk8sICJEaXNhYmxlRG1hcjogR1NU U19SRUcgLSAweCUwOHhcbiIsIFJlZzMyKSk7DQo+IA0KPiArICAgIERFQlVHICgoREVCVUdfSU5G TywgIkRpc2FibGVEbWFyOiBHU1RTX1JFRyAtIDB4JTA4eFxuIiwgUmVnMzIpKTsNCj4gDQo+IA0K PiANCj4gICAgICBERUJVRyAoKERFQlVHX0lORk8sIlZURCAoJWQpIERpc2FibGVkITw8PDw8PFxu IixJbmRleCkpOw0KPiANCj4gDQo+IA0KPiBkaWZmIC0tZ2l0IGEvU2lsaWNvbi9JbnRlbC9JbnRl bFNpbGljb25Qa2cvSW50ZWxTaWxpY29uUGtnLmRlYw0KPiBiL1NpbGljb24vSW50ZWwvSW50ZWxT aWxpY29uUGtnL0ludGVsU2lsaWNvblBrZy5kZWMNCj4gaW5kZXggYzM2ZDEzMGEwLi45MTY2ZTU5 OWEgMTAwNjQ0DQo+IC0tLSBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ludGVsU2ls aWNvblBrZy5kZWMNCj4gKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvSW50ZWxT aWxpY29uUGtnLmRlYw0KPiBAQCAtMTM1LDEyICsxMzUsNiBAQA0KPiANCj4gZ0ludGVsU2lsaWNv blBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZsYXNoTWljcm9jb2RlRnZTaXplfDB4MDAwQTAwMDB8VUlO DQo+IFQzMnwweDAwMDAwMDBBDQo+IA0KPiANCj4gZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VH dWlkLlBjZEZsYXNoTWljcm9jb2RlRnZPZmZzZXR8MHgwMDY2MDAwMHxVDQo+IElOVDMyfDB4MDAw MDAwMEINCj4gDQo+IA0KPiANCj4gLSAgIyMgSW5kaWNhdGVzIGlmIFZUZCBBYm9ydCBETUEgTW9k ZSBpcyBzdXBwb3J0ZWQuPEJSPjxCUj4NCj4gDQo+IC0gICMgICBUUlVFICAtIFN1cHBvcnQgVlRk IGFib3J0IERNQSBtb2RlLg0KPiANCj4gLSAgIyAgIEZBTFNFIC0gTm90IHN1cHBvcnQgVlRkIGFi b3J0IERNQSBtb2RlLg0KPiANCj4gLSAgIyBAUHJvbXB0IFZUZCBhYm9ydCBETUEgbW9kZSBzdXBw b3J0Lg0KPiANCj4gLQ0KPiBnSW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNkVlRkU3Vw cG9ydEFib3J0RG1hTW9kZXxGQUxTRXxCT08NCj4gTEVBTnwweDAwMDAwMDBDDQo+IA0KPiAtDQo+ IA0KPiAgW1BjZHNGaXhlZEF0QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZV0NCj4gDQo+ICAg ICMjIEVycm9yIGNvZGUgZm9yIFZUZCBlcnJvci48QlI+PEJSPg0KPiANCj4gICAgIyAgRURLSUlf RVJST1JfQ09ERV9WVERfRVJST1IgPSAoRUZJX0lPX0JVU19VTlNQRUNJRklFRCB8DQo+IChFRklf T0VNX1NQRUNJRklDIHwgMHgwMDAwMDAwMCkpID0gMHgwMjAwODAwMDxCUj4NCj4gDQo+IEBAIC0x NzgsMyArMTcyLDkgQEANCj4gICAgIyBAUHJvbXB0IFRoZSBWVGQgUEVJIERNQSBidWZmZXIgc2l6 ZSBmb3IgUzMuDQo+IA0KPiANCj4gZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBjZFZU ZFBlaURtYUJ1ZmZlclNpemVTM3wweDAwMjAwMDAwfFUNCj4gSU5UMzJ8MHgwMDAwMDAwNA0KPiAN Cj4gDQo+IA0KPiArICAjIyBJbmRpY2F0ZXMgaWYgVlRkIEFib3J0IERNQSBNb2RlIGlzIHN1cHBv cnRlZC48QlI+PEJSPg0KPiANCj4gKyAgIyAgIFRSVUUgIC0gU3VwcG9ydCBWVGQgYWJvcnQgRE1B IG1vZGUuDQo+IA0KPiArICAjICAgRkFMU0UgLSBOb3Qgc3VwcG9ydCBWVGQgYWJvcnQgRE1BIG1v ZGUuDQo+IA0KPiArICAjIEBQcm9tcHQgVlRkIGFib3J0IERNQSBtb2RlIHN1cHBvcnQuDQo+IA0K PiArDQo+ICsNCj4gZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBjZFZUZFN1cHBvcnRB Ym9ydERtYU1vZGV8RkFMU0V8Qk9PDQo+IExFQU4NCj4gKyB8MHgwMDAwMDAwQw0KPiANCj4gKw0K PiANCj4gLS0NCj4gMi4yNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IA0KPiAtPS09LT0tPS09LT0N Cj4gR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2VudCB0byB0aGlz IGdyb3VwLg0KPiBWaWV3L1JlcGx5IE9ubGluZSAoIzkzMTM4KTogaHR0cHM6Ly9lZGsyLmdyb3Vw cy5pby9nL2RldmVsL21lc3NhZ2UvOTMxMzgNCj4gTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dy b3Vwcy5pby9tdC85MzQ3NDYyMC8yNTU4NTU4DQo+IEdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBl ZGsyLmdyb3Vwcy5pbw0KPiBVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2Rl dmVsL3Vuc3ViIFt3LnNoZW5nQGludGVsLmNvbV0NCj4gLT0tPS09LT0tPS09DQo+IA0KDQo= --_002_PH0PR11MB4870D7795F28C631B6F26B79E1579PH0PR11MB4870namp_ Content-Type: application/octet-stream; name="0001-IntelSiliconPkg-VTd-Enable-ADM-when-change-TTM.patch" Content-Description: 0001-IntelSiliconPkg-VTd-Enable-ADM-when-change-TTM.patch Content-Disposition: attachment; filename="0001-IntelSiliconPkg-VTd-Enable-ADM-when-change-TTM.patch"; size=20538; creation-date="Thu, 29 Sep 2022 05:35:00 GMT"; modification-date="Thu, 29 Sep 2022 08:32:06 GMT" Content-Transfer-Encoding: base64 RnJvbSA4NWVhYmYwYmUyYzhmNjQ5YWY4YzA3NTllOTgwNzMzODE4OTZlMmVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGVuZyBXZWkgPHcuc2hlbmdAaW50ZWwuY29tPgpEYXRlOiBX ZWQsIDI0IEF1ZyAyMDIyIDEzOjMwOjE2ICswODAwClN1YmplY3Q6IFtQQVRDSF0gSW50ZWxTaWxp Y29uUGtnL1ZUZDogRW5hYmxlIEFETSB3aGVuIGNoYW5nZSBUVE0KCkluIEFib3J0IERNQSBNb2Rl KEFETSksIGhhcmR3YXJlIHdpbGwgYWJvcnQgYWxsIERNQSBvcGVyYXRpb25zIHdpdGhvdXQKdGhl IG5lZWQgdG8gc2V0IHVwIGEgcm9vdHRhYmxlLiBFbmFibGUgQWJvcnQgRE1BIE1vZGUsIHdoZW4g Y2hhbmdlClRyYW5zbGF0aW9uIFRhYmxlIE1vZGUoVFRNKQoKQ2hhbmdlLUlkOiBJNzQyMDdmZTk2 ZWY3YTU3ZDg5YTM1NWQ0MGRmYmRkMzYxODZmMDZjMwpTaWduZWQtb2ZmLWJ5OiBTaGVuZyBXZWkg PHcuc2hlbmdAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSmVubnkgSHVhbmcgPGplbm55Lmh1YW5n QGludGVsLmNvbT4KQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4KQ2M6IFJhbmdhc2FpIFYg Q2hhZ2FudHkgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPgotLS0KIC4uLi9WVGQvSW50 ZWxWVGREbWFyUGVpL0ludGVsVlRkRG1hci5jICAgICAgICB8IDE1NyArKysrKysrKysrKy0tLS0t CiAuLi4vRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvSW50ZWxWVGREeGUuaW5mICAgfCAgIDEgKwog Li4uL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL1Z0ZFJlZy5jICAgICAgICAgIHwgMTY5ICsrKysr KysrKysrKystLS0tLQogLi4uL0ludGVsL0ludGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Qa2cu ZGVjIHwgIDEyICstCiA0IGZpbGVzIGNoYW5nZWQsIDI0NSBpbnNlcnRpb25zKCspLCA5NCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0 dXJlL1ZUZC9JbnRlbFZUZERtYXJQZWkvSW50ZWxWVGREbWFyLmMgYi9TaWxpY29uL0ludGVsL0lu dGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZERtYXJQZWkvSW50ZWxWVGREbWFyLmMK aW5kZXggYjViNzhmNzc5Li4yNGJlY2NkMjYgMTAwNjQ0Ci0tLSBhL1NpbGljb24vSW50ZWwvSW50 ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRG1hclBlaS9JbnRlbFZUZERtYXIuYwor KysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZERt YXJQZWkvSW50ZWxWVGREbWFyLmMKQEAgLTM2MSw2ICszNjEsNjggQEAgSW52YWxpZGF0ZUlPVExC ICgKICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KIH0NCiANCisvKioNCisgIENsZWFyIEdsb2JhbCBD b21tYW5kIFJlZ2lzdGVyIEJpdHMNCisNCisgIEBwYXJhbVtpbl0gVnRkVW5pdEJhc2VBZGRyZXNz IFRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIFZUZCBlbmdpbmUuDQorICBAcGFyYW1baW5dIEJpdE1h c2sgICAgICAgICAgICBCaXQgbWFzay4NCisqKi8NCitWT0lEDQorQ2xlYXJHbG9iYWxDb21tYW5k UmVnaXN0ZXJCaXRzICgNCisgIElOIFVJTlROICAgICBWdGRVbml0QmFzZUFkZHJlc3MsDQorICBJ TiBVSU5UMzIgICAgQml0TWFzaw0KKyAgKQ0KK3sNCisgIFVJTlQzMiAgICBSZWczMjsNCisgIFVJ TlQzMiAgICBTdGF0dXM7DQorICBVSU5UMzIgICAgQ29tbWFuZDsNCisNCisgIFJlZzMyID0gTW1p b1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7DQorICBTdGF0dXMgPSAo UmVnMzIgJiAweDk2RkZGRkZGKTsgICAgICAgLy8gUmVzZXQgdGhlIG9uZS1zaG90IGJpdHMNCisg IENvbW1hbmQgPSAoU3RhdHVzICYgKH5CaXRNYXNrKSk7DQorICBNbWlvV3JpdGUzMiAoVnRkVW5p dEJhc2VBZGRyZXNzICsgUl9HQ01EX1JFRywgQ29tbWFuZCk7DQorDQorICBERUJVRygoREVCVUdf SU5GTywgIkNsZWFyIEdDTURfUkVHIGJpdHMgMHgleC5cbiIsIEJpdE1hc2spKTsNCisNCisgIC8v DQorICAvLyBQb2xsIG9uIFN0YXR1cyBiaXQgb2YgR2xvYmFsIHN0YXR1cyByZWdpc3RlciB0byBi ZWNvbWUgemVybw0KKyAgLy8NCisgIGRvIHsNCisgICAgUmVnMzIgPSBNbWlvUmVhZDMyIChWdGRV bml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVHKTsNCisgIH0gd2hpbGUgKChSZWczMiAmIEJpdE1h c2spID09IEJpdE1hc2spOw0KK30NCisNCisvKioNCisgIFNldCBHbG9iYWwgQ29tbWFuZCBSZWdp c3RlciBCaXRzDQorDQorICBAcGFyYW1baW5dIFZ0ZFVuaXRCYXNlQWRkcmVzcyBUaGUgYmFzZSBh ZGRyZXNzIG9mIHRoZSBWVGQgZW5naW5lLg0KKyAgQHBhcmFtW2luXSBCaXRNYXNrICAgICAgICAg ICAgQml0IG1hc2suDQorKiovDQorVk9JRA0KK1NldEdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMg KA0KKyAgSU4gVUlOVE4gICAgIFZ0ZFVuaXRCYXNlQWRkcmVzcywNCisgIElOIFVJTlQzMiAgICBC aXRNYXNrDQorICApDQorew0KKyAgVUlOVDMyICAgIFJlZzMyOw0KKyAgVUlOVDMyICAgIFN0YXR1 czsNCisgIFVJTlQzMiAgICBDb21tYW5kOw0KKw0KKyAgUmVnMzIgPSBNbWlvUmVhZDMyIChWdGRV bml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVHKTsNCisgIFN0YXR1cyA9IChSZWczMiAmIDB4OTZG RkZGRkYpOyAgICAgICAvLyBSZXNldCB0aGUgb25lLXNob3QgYml0cw0KKyAgQ29tbWFuZCA9IChT dGF0dXMgfCBCaXRNYXNrKTsNCisgIE1taW9Xcml0ZTMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBS X0dDTURfUkVHLCBDb21tYW5kKTsNCisNCisgIERFQlVHKChERUJVR19JTkZPLCAiU2V0IEdDTURf UkVHIGJpdHMgMHgleC5cbiIsIEJpdE1hc2spKTsNCisNCisgIC8vDQorICAvLyBQb2xsIG9uIFN0 YXR1cyBiaXQgb2YgR2xvYmFsIHN0YXR1cyByZWdpc3RlciB0byBiZWNvbWUgbm90IHplcm8NCisg IC8vDQorICBkbyB7DQorICAgIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNz ICsgUl9HU1RTX1JFRyk7DQorICB9IHdoaWxlICgoUmVnMzIgJiBCaXRNYXNrKSA9PSAwKTsNCit9 DQorDQogLyoqDQogICBFbmFibGUgRE1BUiB0cmFuc2xhdGlvbiBpbiBwcmUtbWVtIHBoYXNlLg0K IA0KQEAgLTM4MywxMyArNDQ1LDEwIEBAIEVuYWJsZURtYXJQcmVNZW0gKAogICBERUJVRyAoKERF QlVHX0lORk8sICJSVEFERFJfUkVHIDogMHglMDE2bHggXG4iLCBSdGFkZHJSZWdWYWx1ZSkpOw0K ICAgTW1pb1dyaXRlNjQgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfUlRBRERSX1JFRywgUnRhZGRy UmVnVmFsdWUpOw0KIA0KLSAgUmVnMzIgPSBNbWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3Mg KyBSX0dTVFNfUkVHKTsNCi0gIE1taW9Xcml0ZTMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dD TURfUkVHLCBSZWczMiB8IEJfR01DRF9SRUdfU1JUUCk7DQotDQogICBERUJVRyAoKERFQlVHX0lO Rk8sICJFbmFibGVEbWFyUHJlTWVtOiB3YWl0aW5nIGZvciBSVFBTIGJpdCB0byBiZSBzZXQuLi4g XG4iKSk7DQotICBkbyB7DQotICAgIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRy ZXNzICsgUl9HU1RTX1JFRyk7DQotICB9IHdoaWxlKChSZWczMiAmIEJfR1NUU19SRUdfUlRQUykg PT0gMCk7DQorICBTZXRHbG9iYWxDb21tYW5kUmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJl c3MsIEJfR01DRF9SRUdfU1JUUCk7DQorDQorICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRC YXNlQWRkcmVzcyArIFJfR1NUU19SRUcpOw0KICAgREVCVUcgKChERUJVR19JTkZPLCAiRW5hYmxl RG1hclByZU1lbTogUl9HU1RTX1JFRyA9IDB4JXggXG4iLCBSZWczMikpOw0KIA0KICAgLy8NCkBA IC00MDUsMTIgKzQ2NCw3IEBAIEVuYWJsZURtYXJQcmVNZW0gKAogICAvLw0KICAgLy8gRW5hYmxl IFZUZA0KICAgLy8NCi0gIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsg Ul9HU1RTX1JFRyk7DQotICBNbWlvV3JpdGUzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HQ01E X1JFRywgUmVnMzIgfCBCX0dNQ0RfUkVHX1RFKTsNCi0gIERFQlVHICgoREVCVUdfSU5GTywgIkVu YWJsZURtYXJQcmVNZW06IFdhaXRpbmcgQl9HU1RTX1JFR19URSAuLi5cbiIpKTsNCi0gIGRvIHsN Ci0gICAgUmVnMzIgPSBNbWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVH KTsNCi0gIH0gd2hpbGUgKChSZWczMiAmIEJfR1NUU19SRUdfVEUpID09IDApOw0KKyAgU2V0R2xv YmFsQ29tbWFuZFJlZ2lzdGVyQml0cyAoVnRkVW5pdEJhc2VBZGRyZXNzLCBCX0dNQ0RfUkVHX1RF KTsNCiANCiAgIERFQlVHICgoREVCVUdfSU5GTywgIlZURCAoKSBlbmFibGVkITw8PDw8PFxuIikp Ow0KIA0KQEAgLTQzNCwyMiArNDg4LDQzIEBAIEVuYWJsZURtYXIgKAogew0KICAgVUlOVDMyICAg ICAgICAgICAgICAgICAgICAgICAgUmVnMzI7DQogICBVSU5UTiAgICAgICAgICAgICAgICAgICAg ICAgICBWdGRVbml0QmFzZUFkZHJlc3M7DQorICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAg ICBURVdhc0VuYWJsZWQ7DQogDQogICBWdGRVbml0QmFzZUFkZHJlc3MgPSBWVGRVbml0SW5mby0+ VnRkVW5pdEJhc2VBZGRyZXNzOw0KIA0KICAgREVCVUcgKChERUJVR19JTkZPLCAiPj4+Pj4+RW5h YmxlRG1hcigpIGZvciBlbmdpbmUgWyV4XSBcbiIsIFZ0ZFVuaXRCYXNlQWRkcmVzcykpOw0KIA0K LSAgREVCVUcgKChERUJVR19JTkZPLCAiUm9vdEVudHJ5VGFibGUgMHgleCBcbiIsIFJvb3RFbnRy eVRhYmxlKSk7DQotICBNbWlvV3JpdGU2NCAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9SVEFERFJf UkVHLCAoVUlOVDY0KSBSb290RW50cnlUYWJsZSk7DQorICAvLw0KKyAgLy8gQ2hlY2sgVEUgd2Fz IGVuYWJsZWQgb3Igbm90Lg0KKyAgLy8NCisgIFRFV2FzRW5hYmxlZCA9ICgoTW1pb1JlYWQzMiAo VnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRykgJiBCX0dTVFNfUkVHX1RFKSA9PSBCX0dT VFNfUkVHX1RFKTsNCiANCi0gIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNz ICsgUl9HU1RTX1JFRyk7DQotICBNbWlvV3JpdGUzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9H Q01EX1JFRywgUmVnMzIgfCBCX0dNQ0RfUkVHX1NSVFApOw0KKyAgaWYgKFRFV2FzRW5hYmxlZCAm JiAoVlRkVW5pdEluZm8tPkVDYXBSZWcuQml0cy5BRE1TID09IDEpICYmIFBjZEdldEJvb2wgKFBj ZFZUZFN1cHBvcnRBYm9ydERtYU1vZGUpKSB7DQorICAgIC8vDQorICAgIC8vIEZvciBpbXBsZW1l bnRhdGlvbnMgcmVwb3J0aW5nIEVuaGFuY2VkIFNSVFAgU3VwcG9ydCAoRVNSVFBTKSBmaWVsZCBh cw0KKyAgICAvLyBDbGVhciBpbiB0aGUgQ2FwYWJpbGl0eSByZWdpc3Rlciwgc29mdHdhcmUgbXVz dCBub3QgbW9kaWZ5IHRoaXMgZmllbGQgd2hpbGUNCisgICAgLy8gRE1BIHJlbWFwcGluZyBpcyBh Y3RpdmUgKFRFUz0xIGluIEdsb2JhbCBTdGF0dXMgcmVnaXN0ZXIpLg0KKyAgICAvLw0KKyAgICBp ZiAoVlRkVW5pdEluZm8tPkNhcFJlZy5CaXRzLkVTUlRQUyA9PSAwKSB7DQorICAgICAgQ2xlYXJH bG9iYWxDb21tYW5kUmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJlc3MsIEJfR01DRF9SRUdf VEUpOw0KKyAgICB9DQorDQorICAgIC8vDQorICAgIC8vIEVuYWJsZSBBRE0NCisgICAgLy8NCisg ICAgTW1pb1dyaXRlNjQgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfUlRBRERSX1JFRywgKFVJTlQ2 NCkgKFJvb3RFbnRyeVRhYmxlIHwgVl9SVEFERFJfUkVHX1RUTV9BRE0pKTsNCisNCisgICAgREVC VUcoKERFQlVHX0lORk8sICJFbmFibGUgQWJvcnQgRE1BIE1vZGUuLi5cbiIpKTsNCisgICAgU2V0 R2xvYmFsQ29tbWFuZFJlZ2lzdGVyQml0cyAoVnRkVW5pdEJhc2VBZGRyZXNzLCBCX0dNQ0RfUkVH X1RFKTsNCisNCisgIH0gZWxzZSB7DQorICAgIERFQlVHICgoREVCVUdfSU5GTywgIlJvb3RFbnRy eVRhYmxlIDB4JXggXG4iLCBSb290RW50cnlUYWJsZSkpOw0KKyAgICBNbWlvV3JpdGU2NCAoVnRk VW5pdEJhc2VBZGRyZXNzICsgUl9SVEFERFJfUkVHLCAoVUlOVDY0KSBSb290RW50cnlUYWJsZSk7 DQorDQorICB9DQogDQogICBERUJVRyAoKERFQlVHX0lORk8sICJFbmFibGVEbWFyOiB3YWl0aW5n IGZvciBSVFBTIGJpdCB0byBiZSBzZXQuLi4gXG4iKSk7DQotICBkbyB7DQotICAgIFJlZzMyID0g TW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7DQotICB9IHdoaWxl KChSZWczMiAmIEJfR1NUU19SRUdfUlRQUykgPT0gMCk7DQotICBERUJVRyAoKERFQlVHX0lORk8s ICJFbmFibGVEbWFyOiBSX0dTVFNfUkVHID0gMHgleCBcbiIsIFJlZzMyKSk7DQorICBTZXRHbG9i YWxDb21tYW5kUmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJlc3MsIEJfR01DRF9SRUdfU1JU UCk7DQogDQogICAvLw0KICAgLy8gSW5pdCBETUFyIEZhdWx0IEV2ZW50IGFuZCBEYXRhIHJlZ2lz dGVycw0KQEAgLTQ3MSwxNSArNTQ2LDE5IEBAIEVuYWJsZURtYXIgKAogICAvLw0KICAgSW52YWxp ZGF0ZUlPVExCIChWVGRVbml0SW5mbyk7DQogDQorICBpZiAoVEVXYXNFbmFibGVkICYmIChWVGRV bml0SW5mby0+RUNhcFJlZy5CaXRzLkFETVMgPT0gMSkgJiYgUGNkR2V0Qm9vbCAoUGNkVlRkU3Vw cG9ydEFib3J0RG1hTW9kZSkpIHsNCisgICAgaWYgKFZUZFVuaXRJbmZvLT5DYXBSZWcuQml0cy5F U1JUUFMgPT0gMCkgew0KKyAgICAgIENsZWFyR2xvYmFsQ29tbWFuZFJlZ2lzdGVyQml0cyAoVnRk VW5pdEJhc2VBZGRyZXNzLCBCX0dNQ0RfUkVHX1RFKTsNCisgICAgfQ0KKw0KKyAgICBERUJVRyAo KERFQlVHX0lORk8sICJSb290RW50cnlUYWJsZSAweCV4IFxuIiwgUm9vdEVudHJ5VGFibGUpKTsN CisgICAgTW1pb1dyaXRlNjQgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfUlRBRERSX1JFRywgKFVJ TlQ2NCkgUm9vdEVudHJ5VGFibGUpOw0KKyAgfQ0KKw0KICAgLy8NCiAgIC8vIEVuYWJsZSBWVGQN CiAgIC8vDQotICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NU U19SRUcpOw0KLSAgTW1pb1dyaXRlMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR0NNRF9SRUcs IFJlZzMyIHwgQl9HTUNEX1JFR19URSk7DQotICBERUJVRyAoKERFQlVHX0lORk8sICJFbmFibGVE bWFyOiBXYWl0aW5nIEJfR1NUU19SRUdfVEUgLi4uXG4iKSk7DQotICBkbyB7DQotICAgIFJlZzMy ID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7DQotICB9IHdo aWxlICgoUmVnMzIgJiBCX0dTVFNfUkVHX1RFKSA9PSAwKTsNCisgIFNldEdsb2JhbENvbW1hbmRS ZWdpc3RlckJpdHMgKFZ0ZFVuaXRCYXNlQWRkcmVzcywgQl9HTUNEX1JFR19URSk7DQogDQogICBE RUJVRyAoKERFQlVHX0lORk8sICJWVEQgKCkgZW5hYmxlZCE8PDw8PDxcbiIpKTsNCiANCkBAIC01 MDAsOCArNTc5LDYgQEAgRGlzYWJsZURtYXIgKAogICApDQogew0KICAgVUlOVDMyICAgICAgICAg ICAgICAgICAgICAgICAgUmVnMzI7DQotICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBT dGF0dXM7DQotICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kOw0KIA0KICAg REVCVUcgKChERUJVR19JTkZPLCAiPj4+Pj4+RGlzYWJsZURtYXIoKSBmb3IgZW5naW5lIFsleF0g XG4iLCBWdGRVbml0QmFzZUFkZHJlc3MpKTsNCiANCkBAIC01MTYsMjggKzU5MywxMiBAQCBEaXNh YmxlRG1hciAoCiAgIC8vDQogICAvLyBTZXQgVEUgKFRyYW5zbGF0aW9uIEVuYWJsZTogQklUMzEp IG9mIEdsb2JhbCBjb21tYW5kIHJlZ2lzdGVyIHRvIHplcm8NCiAgIC8vDQotICBSZWczMiA9IE1t aW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19SRUcpOw0KLSAgU3RhdHVzID0g KFJlZzMyICYgMHg5NkZGRkZGRik7ICAgICAgIC8vIFJlc2V0IHRoZSBvbmUtc2hvdCBiaXRzDQot ICBDb21tYW5kID0gKFN0YXR1cyAmIH5CX0dNQ0RfUkVHX1RFKTsNCi0gIE1taW9Xcml0ZTMyIChW dGRVbml0QmFzZUFkZHJlc3MgKyBSX0dDTURfUkVHLCBDb21tYW5kKTsNCi0NCi0gICAvLw0KLSAg IC8vIFBvbGwgb24gVEUgU3RhdHVzIGJpdCBvZiBHbG9iYWwgc3RhdHVzIHJlZ2lzdGVyIHRvIGJl Y29tZSB6ZXJvDQotICAgLy8NCi0gICBkbyB7DQotICAgICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0 ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19SRUcpOw0KLSAgIH0gd2hpbGUgKChSZWczMiAmIEJf R1NUU19SRUdfVEUpID09IEJfR1NUU19SRUdfVEUpOw0KKyAgQ2xlYXJHbG9iYWxDb21tYW5kUmVn aXN0ZXJCaXRzIChWdGRVbml0QmFzZUFkZHJlc3MsIEJfR01DRF9SRUdfVEUpOw0KIA0KICAgLy8N CiAgIC8vIFNldCBTUlRQIChTZXQgUm9vdCBUYWJsZSBQb2ludGVyOiBCSVQzMCkgb2YgR2xvYmFs IGNvbW1hbmQgcmVnaXN0ZXIgaW4gb3JkZXIgdG8gdXBkYXRlIHRoZSByb290IHRhYmxlIHBvaW50 ZXJEaXNhYmxlIFZUZA0KICAgLy8NCi0gIFJlZzMyID0gTW1pb1JlYWQzMiAoVnRkVW5pdEJhc2VB ZGRyZXNzICsgUl9HU1RTX1JFRyk7DQotICBTdGF0dXMgPSAoUmVnMzIgJiAweDk2RkZGRkZGKTsg ICAgICAgLy8gUmVzZXQgdGhlIG9uZS1zaG90IGJpdHMNCi0gIENvbW1hbmQgPSAoU3RhdHVzIHwg Ql9HTUNEX1JFR19TUlRQKTsNCi0gIE1taW9Xcml0ZTMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBS X0dDTURfUkVHLCBDb21tYW5kKTsNCi0gIGRvIHsNCi0gICAgUmVnMzIgPSBNbWlvUmVhZDMyIChW dGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVHKTsNCi0gIH0gd2hpbGUoKFJlZzMyICYgQl9H U1RTX1JFR19SVFBTKSA9PSAwKTsNCisgIFNldEdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0 ZFVuaXRCYXNlQWRkcmVzcywgQl9HTUNEX1JFR19TUlRQKTsNCiANCiAgIFJlZzMyID0gTW1pb1Jl YWQzMiAoVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HU1RTX1JFRyk7DQogICBERUJVRygoREVCVUdf SU5GTywgIkRpc2FibGVEbWFyOiBHU1RTX1JFRyAtIDB4JTA4eFxuIiwgUmVnMzIpKTsNCkBAIC01 NjgsMTIgKzYyOSwxMiBAQCBFbmFibGVWVGRUcmFuc2xhdGlvblByb3RlY3Rpb25CbG9ja0RtYSAo CiANCiAgIERFQlVHICgoREVCVUdfSU5GTywgIkVuYWJsZVZUZFRyYW5zbGF0aW9uUHJvdGVjdGlv bkJsb2NrRG1hIC0gMHglMDh4XG4iLCBWdGRVbml0QmFzZUFkZHJlc3MpKTsNCiANCi0gIERFQlVH ICgoREVCVUdfSU5GTywgIlBjZFZUZFN1cHBvcnRBYm9ydERtYU1vZGUgOiAlZFxuIiwgRml4ZWRQ Y2RHZXRCb29sIChQY2RWVGRTdXBwb3J0QWJvcnREbWFNb2RlKSkpOw0KKyAgREVCVUcgKChERUJV R19JTkZPLCAiUGNkVlRkU3VwcG9ydEFib3J0RG1hTW9kZSA6ICVkXG4iLCBQY2RHZXRCb29sIChQ Y2RWVGRTdXBwb3J0QWJvcnREbWFNb2RlKSkpOw0KIA0KICAgRUNhcFJlZy5VaW50NjQgPSBNbWlv UmVhZDY0IChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0VDQVBfUkVHKTsNCiAgIERFQlVHICgoREVC VUdfSU5GTywgIkVDYXBSZWcuQURNUyA6ICVkXG4iLCBFQ2FwUmVnLkJpdHMuQURNUykpOw0KIA0K LSAgaWYgKChFQ2FwUmVnLkJpdHMuQURNUyA9PSAxKSAmJiBGaXhlZFBjZEdldEJvb2wgKFBjZFZU ZFN1cHBvcnRBYm9ydERtYU1vZGUpKSB7DQorICBpZiAoKEVDYXBSZWcuQml0cy5BRE1TID09IDEp ICYmIFBjZEdldEJvb2wgKFBjZFZUZFN1cHBvcnRBYm9ydERtYU1vZGUpKSB7DQogICAgIC8vDQog ICAgIC8vIFVzZSBBYm9ydCBETUEgTW9kZQ0KICAgICAvLw0KZGlmZiAtLWdpdCBhL1NpbGljb24v SW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0ludGVsVlRkRHhl LmluZiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRk RHhlL0ludGVsVlRkRHhlLmluZgppbmRleCAzODdmOTBlMzcuLmIxNTI4MzFjMCAxMDA2NDQKLS0t IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUv SW50ZWxWVGREeGUuaW5mCisrKyBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1 cmUvVlRkL0ludGVsVlRkRHhlL0ludGVsVlRkRHhlLmluZgpAQCAtNzUsNiArNzUsNyBAQAogW1Bj ZF0NCiAgIGdJbnRlbFNpbGljb25Qa2dUb2tlblNwYWNlR3VpZC5QY2RWVGRQb2xpY3lQcm9wZXJ0 eU1hc2sgICAjIyBDT05TVU1FUw0KICAgZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBj ZEVycm9yQ29kZVZUZEVycm9yICAgICAgICMjIENPTlNVTUVTDQorICBnSW50ZWxTaWxpY29uUGtn VG9rZW5TcGFjZUd1aWQuUGNkVlRkU3VwcG9ydEFib3J0RG1hTW9kZSAgIyMgQ09OU1VNRVMNCiAN CiBbRGVwZXhdDQogICBnRWZpUGNpUm9vdEJyaWRnZUlvUHJvdG9jb2xHdWlkDQpkaWZmIC0tZ2l0 IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUv VnRkUmVnLmMgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRl bFZUZER4ZS9WdGRSZWcuYwppbmRleCBjN2E1NmNmNTcuLjM5NmFhNGE3MCAxMDA2NDQKLS0tIGEv U2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvVnRk UmVnLmMKKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50 ZWxWVGREeGUvVnRkUmVnLmMKQEAgLTQ3NSw2ICs0NzUsOTIgQEAgRGlzYWJsZVBtciAoCiAgIHJl dHVybiA7DQogfQ0KIA0KKy8qKg0KKyAgQ2xlYXIgR2xvYmFsIENvbW1hbmQgUmVnaXN0ZXIgQml0 cw0KKw0KKyAgQHBhcmFtW2luXSBWdGRVbml0QmFzZUFkZHJlc3MgVGhlIGJhc2UgYWRkcmVzcyBv ZiB0aGUgVlRkIGVuZ2luZS4NCisgIEBwYXJhbVtpbl0gQml0TWFzayAgICAgICAgICAgIEJpdCBt YXNrLg0KKyoqLw0KK1ZPSUQNCitDbGVhckdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKA0KKyAg SU4gVUlOVE4gICAgIFZ0ZFVuaXRCYXNlQWRkcmVzcywNCisgIElOIFVJTlQzMiAgICBCaXRNYXNr DQorICApDQorew0KKyAgVUlOVDMyICAgIFJlZzMyOw0KKyAgVUlOVDMyICAgIFN0YXR1czsNCisg IFVJTlQzMiAgICBDb21tYW5kOw0KKw0KKyAgUmVnMzIgPSBNbWlvUmVhZDMyIChWdGRVbml0QmFz ZUFkZHJlc3MgKyBSX0dTVFNfUkVHKTsNCisgIFN0YXR1cyA9IChSZWczMiAmIDB4OTZGRkZGRkYp OyAgICAgICAvLyBSZXNldCB0aGUgb25lLXNob3QgYml0cw0KKyAgQ29tbWFuZCA9IChTdGF0dXMg JiAofkJpdE1hc2spKTsNCisgIE1taW9Xcml0ZTMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dD TURfUkVHLCBDb21tYW5kKTsNCisNCisgIERFQlVHKChERUJVR19JTkZPLCAiQ2xlYXIgR0NNRF9S RUcgYml0cyAweCV4LlxuIiwgQml0TWFzaykpOw0KKw0KKyAgLy8NCisgIC8vIFBvbGwgb24gU3Rh dHVzIGJpdCBvZiBHbG9iYWwgc3RhdHVzIHJlZ2lzdGVyIHRvIGJlY29tZSB6ZXJvDQorICAvLw0K KyAgZG8gew0KKyAgICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJf R1NUU19SRUcpOw0KKyAgfSB3aGlsZSAoKFJlZzMyICYgQml0TWFzaykgPT0gQml0TWFzayk7DQor fQ0KKw0KKy8qKg0KKyAgU2V0IEdsb2JhbCBDb21tYW5kIFJlZ2lzdGVyIEJpdHMNCisNCisgIEBw YXJhbVtpbl0gVnRkVW5pdEJhc2VBZGRyZXNzIFRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIFZUZCBl bmdpbmUuDQorICBAcGFyYW1baW5dIEJpdE1hc2sgICAgICAgICAgICBCaXQgbWFzay4NCisqKi8N CitWT0lEDQorU2V0R2xvYmFsQ29tbWFuZFJlZ2lzdGVyQml0cyAoDQorICBJTiBVSU5UTiAgICAg VnRkVW5pdEJhc2VBZGRyZXNzLA0KKyAgSU4gVUlOVDMyICAgIEJpdE1hc2sNCisgICkNCit7DQor ICBVSU5UMzIgICAgUmVnMzI7DQorICBVSU5UMzIgICAgU3RhdHVzOw0KKyAgVUlOVDMyICAgIENv bW1hbmQ7DQorDQorICBSZWczMiA9IE1taW9SZWFkMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJf R1NUU19SRUcpOw0KKyAgU3RhdHVzID0gKFJlZzMyICYgMHg5NkZGRkZGRik7ICAgICAgIC8vIFJl c2V0IHRoZSBvbmUtc2hvdCBiaXRzDQorICBDb21tYW5kID0gKFN0YXR1cyB8IEJpdE1hc2spOw0K KyAgTW1pb1dyaXRlMzIgKFZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR0NNRF9SRUcsIENvbW1hbmQp Ow0KKw0KKyAgREVCVUcoKERFQlVHX0lORk8sICJTZXQgR0NNRF9SRUcgYml0cyAweCV4LlxuIiwg Qml0TWFzaykpOw0KKw0KKyAgLy8NCisgIC8vIFBvbGwgb24gU3RhdHVzIGJpdCBvZiBHbG9iYWwg c3RhdHVzIHJlZ2lzdGVyIHRvIGJlY29tZSBub3QgemVybw0KKyAgLy8NCisgIGRvIHsNCisgICAg UmVnMzIgPSBNbWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVHKTsNCisg IH0gd2hpbGUgKChSZWczMiAmIEJpdE1hc2spID09IDApOw0KK30NCisNCisvKioNCisgIFVwZGF0 ZSBSb290IFRhYmxlIEFkZHJlc3MgUmVnaXN0ZXINCisNCisgIEBwYXJhbVtpbl0gIFZ0ZEluZGV4 ICAgICAgICAgIFRoZSBpbmRleCB1c2VkIHRvIGlkZW50aWZ5IGEgVlRkIGVuZ2luZS4NCisgIEBw YXJhbVtpbl0gIEVuYWJsZUFETSAgICAgICAgIFRSVUUgLSBFbmFibGUgQURNIGluIFRUTSBiaXRz DQorKiovDQorVk9JRA0KK1VwZGF0ZVJvb3RUYWJsZUFkZHJlc3NSZWdpc3RlciAoDQorICBJTiBV SU5UTiAgIFZ0ZEluZGV4LA0KKyAgSU4gQk9PTEVBTiBFbmFibGVBRE0NCisgICkNCit7DQorICBV SU5UNjQgUmVnNjQ7DQorDQorICBpZiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltWdGRJbmRleF0uRXh0 Um9vdEVudHJ5VGFibGUgIT0gTlVMTCkgew0KKyAgICBERUJVRygoREVCVUdfSU5GTywgIkV4dFJv b3RFbnRyeVRhYmxlIDB4JXggXG4iLCBtVnRkVW5pdEluZm9ybWF0aW9uW1Z0ZEluZGV4XS5FeHRS b290RW50cnlUYWJsZSkpOw0KKyAgICBSZWc2NCA9IChVSU5UNjQpKFVJTlROKW1WdGRVbml0SW5m b3JtYXRpb25bVnRkSW5kZXhdLkV4dFJvb3RFbnRyeVRhYmxlIHwgKEVuYWJsZUFETSA/IFZfUlRB RERSX1JFR19UVE1fQURNIDogQklUMTEpOw0KKyAgfSBlbHNlIHsNCisgICAgREVCVUcoKERFQlVH X0lORk8sICJSb290RW50cnlUYWJsZSAweCV4IFxuIiwgbVZ0ZFVuaXRJbmZvcm1hdGlvbltWdGRJ bmRleF0uUm9vdEVudHJ5VGFibGUpKTsNCisgICAgUmVnNjQgPSAoVUlOVDY0KShVSU5UTiltVnRk VW5pdEluZm9ybWF0aW9uW1Z0ZEluZGV4XS5Sb290RW50cnlUYWJsZSB8IChFbmFibGVBRE0gPyBW X1JUQUREUl9SRUdfVFRNX0FETSA6IDApOw0KKyAgfQ0KKyAgTW1pb1dyaXRlNjQgKG1WdGRVbml0 SW5mb3JtYXRpb25bVnRkSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfUlRBRERSX1JFRywg UmVnNjQpOw0KK30NCisNCiAvKioNCiAgIEVuYWJsZSBETUFSIHRyYW5zbGF0aW9uLg0KIA0KQEAg LTQ4OCwyNSArNTc0LDQzIEBAIEVuYWJsZURtYXIgKAogew0KICAgVUlOVE4gICAgIEluZGV4Ow0K ICAgVUlOVDMyICAgIFJlZzMyOw0KKyAgVUlOVE4gICAgIFZ0ZFVuaXRCYXNlQWRkcmVzczsNCisg IEJPT0xFQU4gICBURVdhc0VuYWJsZWQ7DQogDQogICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBt VnRkVW5pdE51bWJlcjsgSW5kZXgrKykgew0KLSAgICBERUJVRygoREVCVUdfSU5GTywgIj4+Pj4+ PkVuYWJsZURtYXIoKSBmb3IgZW5naW5lIFslZF0gXG4iLCBJbmRleCkpOw0KKyAgICBWdGRVbml0 QmFzZUFkZHJlc3MgPSBtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5WdGRVbml0QmFzZUFkZHJl c3M7DQorICAgIERFQlVHKChERUJVR19JTkZPLCAiPj4+Pj4+RW5hYmxlRG1hcigpIGZvciBlbmdp bmUgWyVkXSBCQVIgWzB4JXhdXG4iLCBJbmRleCwgVnRkVW5pdEJhc2VBZGRyZXNzKSk7DQorDQor ICAgIC8vDQorICAgIC8vIENoZWNrIFRFIHdhcyBlbmFibGVkIG9yIG5vdC4NCisgICAgLy8NCisg ICAgVEVXYXNFbmFibGVkID0gKChNbWlvUmVhZDMyIChWdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dT VFNfUkVHKSAmIEJfR1NUU19SRUdfVEUpID09IEJfR1NUU19SRUdfVEUpOw0KKw0KKyAgICBpZiAo VEVXYXNFbmFibGVkICYmIChtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5FQ2FwUmVnLkJpdHMu QURNUyA9PSAxKSAmJiBQY2RHZXRCb29sIChQY2RWVGRTdXBwb3J0QWJvcnREbWFNb2RlKSkgew0K KyAgICAgIC8vDQorICAgICAgLy8gRm9yIGltcGxlbWVudGF0aW9ucyByZXBvcnRpbmcgRW5oYW5j ZWQgU1JUUCBTdXBwb3J0IChFU1JUUFMpIGZpZWxkIGFzDQorICAgICAgLy8gQ2xlYXIgaW4gdGhl IENhcGFiaWxpdHkgcmVnaXN0ZXIsIHNvZnR3YXJlIG11c3Qgbm90IG1vZGlmeSB0aGlzIGZpZWxk IHdoaWxlDQorICAgICAgLy8gRE1BIHJlbWFwcGluZyBpcyBhY3RpdmUgKFRFUz0xIGluIEdsb2Jh bCBTdGF0dXMgcmVnaXN0ZXIpLg0KKyAgICAgIC8vDQorICAgICAgaWYgKG1WdGRVbml0SW5mb3Jt YXRpb25bSW5kZXhdLkNhcFJlZy5CaXRzLkVTUlRQUyA9PSAwKSB7DQorICAgICAgICBDbGVhckds b2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0ZFVuaXRCYXNlQWRkcmVzcywgQl9HTUNEX1JFR19U RSk7DQorICAgICAgfQ0KKw0KKyAgICAgIC8vDQorICAgICAgLy8gRW5hYmxlIEFETQ0KKyAgICAg IC8vDQorICAgICAgVXBkYXRlUm9vdFRhYmxlQWRkcmVzc1JlZ2lzdGVyIChJbmRleCwgVFJVRSk7 DQorDQorICAgICAgREVCVUcoKERFQlVHX0lORk8sICJFbmFibGUgQWJvcnQgRE1BIE1vZGUuLi5c biIpKTsNCisgICAgICBTZXRHbG9iYWxDb21tYW5kUmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFk ZHJlc3MsIEJfR01DRF9SRUdfVEUpOw0KIA0KLSAgICBpZiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJ bmRleF0uRXh0Um9vdEVudHJ5VGFibGUgIT0gTlVMTCkgew0KLSAgICAgIERFQlVHKChERUJVR19J TkZPLCAiRXh0Um9vdEVudHJ5VGFibGUgMHgleCBcbiIsIG1WdGRVbml0SW5mb3JtYXRpb25bSW5k ZXhdLkV4dFJvb3RFbnRyeVRhYmxlKSk7DQotICAgICAgTW1pb1dyaXRlNjQgKG1WdGRVbml0SW5m b3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfUlRBRERSX1JFRywgKFVJTlQ2 NCkoVUlOVE4pbVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uRXh0Um9vdEVudHJ5VGFibGUgfCBC SVQxMSk7DQogICAgIH0gZWxzZSB7DQotICAgICAgREVCVUcoKERFQlVHX0lORk8sICJSb290RW50 cnlUYWJsZSAweCV4IFxuIiwgbVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uUm9vdEVudHJ5VGFi bGUpKTsNCi0gICAgICBNbWlvV3JpdGU2NCAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRk VW5pdEJhc2VBZGRyZXNzICsgUl9SVEFERFJfUkVHLCAoVUlOVDY0KShVSU5UTiltVnRkVW5pdElu Zm9ybWF0aW9uW0luZGV4XS5Sb290RW50cnlUYWJsZSk7DQotICAgIH0NCisgICAgICBVcGRhdGVS b290VGFibGVBZGRyZXNzUmVnaXN0ZXIgKEluZGV4LCBGQUxTRSk7DQogDQotICAgIFJlZzMyID0g TW1pb1JlYWQzMiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRkVW5pdEJhc2VBZGRyZXNz ICsgUl9HU1RTX1JFRyk7DQotICAgIE1taW9Xcml0ZTMyIChtVnRkVW5pdEluZm9ybWF0aW9uW0lu ZGV4XS5WdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dDTURfUkVHLCBSZWczMiB8IEJfR01DRF9SRUdf U1JUUCk7DQorICAgIH0NCiANCiAgICAgREVCVUcoKERFQlVHX0lORk8sICJFbmFibGVEbWFyOiB3 YWl0aW5nIGZvciBSVFBTIGJpdCB0byBiZSBzZXQuLi4gXG4iKSk7DQotICAgIGRvIHsNCi0gICAg ICBSZWczMiA9IE1taW9SZWFkMzIgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRC YXNlQWRkcmVzcyArIFJfR1NUU19SRUcpOw0KLSAgICB9IHdoaWxlKChSZWczMiAmIEJfR1NUU19S RUdfUlRQUykgPT0gMCk7DQorICAgIFNldEdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMgKFZ0ZFVu aXRCYXNlQWRkcmVzcywgQl9HTUNEX1JFR19TUlRQKTsNCiANCiAgICAgLy8NCiAgICAgLy8gSW5p dCBETUFyIEZhdWx0IEV2ZW50IGFuZCBEYXRhIHJlZ2lzdGVycw0KQEAgLTUyOCwxNSArNjMyLDE5 IEBAIEVuYWJsZURtYXIgKAogICAgIC8vDQogICAgIEludmFsaWRhdGVJT1RMQiAoSW5kZXgpOw0K IA0KKyAgICBpZiAoVEVXYXNFbmFibGVkICYmIChtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5F Q2FwUmVnLkJpdHMuQURNUyA9PSAxKSAmJiBQY2RHZXRCb29sIChQY2RWVGRTdXBwb3J0QWJvcnRE bWFNb2RlKSkgew0KKyAgICAgIGlmIChtVnRkVW5pdEluZm9ybWF0aW9uW0luZGV4XS5DYXBSZWcu Qml0cy5FU1JUUFMgPT0gMCkgew0KKyAgICAgICAgQ2xlYXJHbG9iYWxDb21tYW5kUmVnaXN0ZXJC aXRzIChWdGRVbml0QmFzZUFkZHJlc3MsIEJfR01DRF9SRUdfVEUpOw0KKyAgICAgIH0NCisNCisg ICAgICBVcGRhdGVSb290VGFibGVBZGRyZXNzUmVnaXN0ZXIgKEluZGV4LCBGQUxTRSk7DQorICAg IH0NCisNCiAgICAgLy8NCiAgICAgLy8gRW5hYmxlIFZUZA0KICAgICAvLw0KLSAgICBSZWczMiA9 IE1taW9SZWFkMzIgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVz cyArIFJfR1NUU19SRUcpOw0KLSAgICBNbWlvV3JpdGUzMiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJ bmRleF0uVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HQ01EX1JFRywgUmVnMzIgfCBCX0dNQ0RfUkVH X1RFKTsNCi0gICAgREVCVUcoKERFQlVHX0lORk8sICJFbmFibGVEbWFyOiBXYWl0aW5nIEJfR1NU U19SRUdfVEUgLi4uXG4iKSk7DQotICAgIGRvIHsNCi0gICAgICBSZWczMiA9IE1taW9SZWFkMzIg KG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19S RUcpOw0KLSAgICB9IHdoaWxlICgoUmVnMzIgJiBCX0dTVFNfUkVHX1RFKSA9PSAwKTsNCisgICAg REVCVUcgKChERUJVR19JTkZPLCAiRW5hYmxlRG1hcjogV2FpdGluZyBCX0dTVFNfUkVHX1RFIC4u LlxuIikpOw0KKyAgICBTZXRHbG9iYWxDb21tYW5kUmVnaXN0ZXJCaXRzIChWdGRVbml0QmFzZUFk ZHJlc3MsIEJfR01DRF9SRUdfVEUpOw0KIA0KICAgICBERUJVRyAoKERFQlVHX0lORk8sIlZURCAo JWQpIGVuYWJsZWQhPDw8PDw8XG4iLEluZGV4KSk7DQogICB9DQpAQCAtNTY1LDggKzY3Myw2IEBA IERpc2FibGVEbWFyICgKICAgVUlOVE4gICAgIEluZGV4Ow0KICAgVUlOVE4gICAgIFN1YkluZGV4 Ow0KICAgVUlOVDMyICAgIFJlZzMyOw0KLSAgVUlOVDMyICAgIFN0YXR1czsNCi0gIFVJTlQzMiAg ICBDb21tYW5kOw0KIA0KICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgbVZ0ZFVuaXROdW1iZXI7 IEluZGV4KyspIHsNCiAgICAgREVCVUcoKERFQlVHX0lORk8sICI+Pj4+Pj5EaXNhYmxlRG1hcigp IGZvciBlbmdpbmUgWyVkXSBcbiIsIEluZGV4KSk7DQpAQCAtNTgyLDMyICs2ODgsMTUgQEAgRGlz YWJsZURtYXIgKAogICAgIC8vDQogICAgIC8vIFNldCBURSAoVHJhbnNsYXRpb24gRW5hYmxlOiBC SVQzMSkgb2YgR2xvYmFsIGNvbW1hbmQgcmVnaXN0ZXIgdG8gemVybw0KICAgICAvLw0KLSAgICBS ZWczMiA9IE1taW9SZWFkMzIgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNl QWRkcmVzcyArIFJfR1NUU19SRUcpOw0KLSAgICBTdGF0dXMgPSAoUmVnMzIgJiAweDk2RkZGRkZG KTsgICAgICAgLy8gUmVzZXQgdGhlIG9uZS1zaG90IGJpdHMNCi0gICAgQ29tbWFuZCA9IChTdGF0 dXMgJiB+Ql9HTUNEX1JFR19URSk7DQotICAgIE1taW9Xcml0ZTMyIChtVnRkVW5pdEluZm9ybWF0 aW9uW0luZGV4XS5WdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dDTURfUkVHLCBDb21tYW5kKTsNCi0N Ci0gICAgLy8NCi0gICAgLy8gUG9sbCBvbiBURSBTdGF0dXMgYml0IG9mIEdsb2JhbCBzdGF0dXMg cmVnaXN0ZXIgdG8gYmVjb21lIHplcm8NCi0gICAgLy8NCi0gICAgZG8gew0KLSAgICAgIFJlZzMy ID0gTW1pb1JlYWQzMiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uVnRkVW5pdEJhc2VBZGRy ZXNzICsgUl9HU1RTX1JFRyk7DQotICAgIH0gd2hpbGUgKChSZWczMiAmIEJfR1NUU19SRUdfVEUp ID09IEJfR1NUU19SRUdfVEUpOw0KKyAgICBDbGVhckdsb2JhbENvbW1hbmRSZWdpc3RlckJpdHMg KG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcywgQl9HTUNEX1JF R19URSk7DQogDQogICAgIC8vDQogICAgIC8vIFNldCBTUlRQIChTZXQgUm9vdCBUYWJsZSBQb2lu dGVyOiBCSVQzMCkgb2YgR2xvYmFsIGNvbW1hbmQgcmVnaXN0ZXIgaW4gb3JkZXIgdG8gdXBkYXRl IHRoZSByb290IHRhYmxlIHBvaW50ZXJEaXNhYmxlIFZUZA0KICAgICAvLw0KLSAgICBSZWczMiA9 IE1taW9SZWFkMzIgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVz cyArIFJfR1NUU19SRUcpOw0KLSAgICBTdGF0dXMgPSAoUmVnMzIgJiAweDk2RkZGRkZGKTsgICAg ICAgLy8gUmVzZXQgdGhlIG9uZS1zaG90IGJpdHMNCi0gICAgQ29tbWFuZCA9IChTdGF0dXMgfCBC X0dNQ0RfUkVHX1NSVFApOw0KLSAgICBNbWlvV3JpdGUzMiAobVZ0ZFVuaXRJbmZvcm1hdGlvbltJ bmRleF0uVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HQ01EX1JFRywgQ29tbWFuZCk7DQotDQotICAg IGRvIHsNCi0gICAgICBSZWczMiA9IE1taW9SZWFkMzIgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5k ZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcyArIFJfR1NUU19SRUcpOw0KLSAgICB9IHdoaWxlKChSZWcz MiAmIEJfR1NUU19SRUdfUlRQUykgPT0gMCk7DQorICAgIFNldEdsb2JhbENvbW1hbmRSZWdpc3Rl ckJpdHMgKG1WdGRVbml0SW5mb3JtYXRpb25bSW5kZXhdLlZ0ZFVuaXRCYXNlQWRkcmVzcywgQl9H U1RTX1JFR19SVFBTKTsNCiANCiAgICAgUmVnMzIgPSBNbWlvUmVhZDMyIChtVnRkVW5pdEluZm9y bWF0aW9uW0luZGV4XS5WdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVHKTsNCi0gICAgREVC VUcoKERFQlVHX0lORk8sICJEaXNhYmxlRG1hcjogR1NUU19SRUcgLSAweCUwOHhcbiIsIFJlZzMy KSk7DQorICAgIERFQlVHICgoREVCVUdfSU5GTywgIkRpc2FibGVEbWFyOiBHU1RTX1JFRyAtIDB4 JTA4eFxuIiwgUmVnMzIpKTsNCiANCiAgICAgREVCVUcgKChERUJVR19JTkZPLCJWVEQgKCVkKSBE aXNhYmxlZCE8PDw8PDxcbiIsSW5kZXgpKTsNCiANCmRpZmYgLS1naXQgYS9TaWxpY29uL0ludGVs L0ludGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Qa2cuZGVjIGIvU2lsaWNvbi9JbnRlbC9JbnRl bFNpbGljb25Qa2cvSW50ZWxTaWxpY29uUGtnLmRlYwppbmRleCBjMzZkMTMwYTAuLjkxNjZlNTk5 YSAxMDA2NDQKLS0tIGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvSW50ZWxTaWxpY29u UGtnLmRlYworKysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Q a2cuZGVjCkBAIC0xMzUsMTIgKzEzNSw2IEBACiAgIGdJbnRlbFNpbGljb25Qa2dUb2tlblNwYWNl R3VpZC5QY2RGbGFzaE1pY3JvY29kZUZ2U2l6ZXwweDAwMEEwMDAwfFVJTlQzMnwweDAwMDAwMDBB DQogICBnSW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hNaWNyb2NvZGVGdk9m ZnNldHwweDAwNjYwMDAwfFVJTlQzMnwweDAwMDAwMDBCDQogDQotICAjIyBJbmRpY2F0ZXMgaWYg VlRkIEFib3J0IERNQSBNb2RlIGlzIHN1cHBvcnRlZC48QlI+PEJSPg0KLSAgIyAgIFRSVUUgIC0g U3VwcG9ydCBWVGQgYWJvcnQgRE1BIG1vZGUuDQotICAjICAgRkFMU0UgLSBOb3Qgc3VwcG9ydCBW VGQgYWJvcnQgRE1BIG1vZGUuDQotICAjIEBQcm9tcHQgVlRkIGFib3J0IERNQSBtb2RlIHN1cHBv cnQuDQotICBnSW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNkVlRkU3VwcG9ydEFib3J0 RG1hTW9kZXxGQUxTRXxCT09MRUFOfDB4MDAwMDAwMEMNCi0NCiBbUGNkc0ZpeGVkQXRCdWlsZCwg UGNkc1BhdGNoYWJsZUluTW9kdWxlXQ0KICAgIyMgRXJyb3IgY29kZSBmb3IgVlRkIGVycm9yLjxC Uj48QlI+DQogICAjICBFREtJSV9FUlJPUl9DT0RFX1ZURF9FUlJPUiA9IChFRklfSU9fQlVTX1VO U1BFQ0lGSUVEIHwgKEVGSV9PRU1fU1BFQ0lGSUMgfCAweDAwMDAwMDAwKSkgPSAweDAyMDA4MDAw PEJSPg0KQEAgLTE3OCwzICsxNzIsOSBAQAogICAjIEBQcm9tcHQgVGhlIFZUZCBQRUkgRE1BIGJ1 ZmZlciBzaXplIGZvciBTMy4NCiAgIGdJbnRlbFNpbGljb25Qa2dUb2tlblNwYWNlR3VpZC5QY2RW VGRQZWlEbWFCdWZmZXJTaXplUzN8MHgwMDIwMDAwMHxVSU5UMzJ8MHgwMDAwMDAwNA0KIA0KKyAg IyMgSW5kaWNhdGVzIGlmIFZUZCBBYm9ydCBETUEgTW9kZSBpcyBzdXBwb3J0ZWQuPEJSPjxCUj4N CisgICMgICBUUlVFICAtIFN1cHBvcnQgVlRkIGFib3J0IERNQSBtb2RlLg0KKyAgIyAgIEZBTFNF IC0gTm90IHN1cHBvcnQgVlRkIGFib3J0IERNQSBtb2RlLg0KKyAgIyBAUHJvbXB0IFZUZCBhYm9y dCBETUEgbW9kZSBzdXBwb3J0Lg0KKyAgZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBj ZFZUZFN1cHBvcnRBYm9ydERtYU1vZGV8RkFMU0V8Qk9PTEVBTnwweDAwMDAwMDBDDQorDQotLSAK Mi4yNi4yLndpbmRvd3MuMQoK --_002_PH0PR11MB4870D7795F28C631B6F26B79E1579PH0PR11MB4870namp_--