From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.19151.1594136544103225253 for ; Tue, 07 Jul 2020 08:42:24 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=EFfxbdjo; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: JcNTZUwBm54t4ZiImbfAUUovpOUHDJrko2SzO6d/q8me0PZAR97lRsxsPyjQIDSL4ZBWwRpFwy pV9Sk5jFjW5A== X-IronPort-AV: E=McAfee;i="6000,8403,9675"; a="147639973" X-IronPort-AV: E=Sophos;i="5.75,324,1589266800"; d="scan'208";a="147639973" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jul 2020 08:42:23 -0700 IronPort-SDR: 0skUir4WONMxKBAThfBTDdri9k+LwDAgRFp4TSPtVV1EULr2ftEg4pqmXd+YuokELAb5OhXDNf vzGBdTd2zCwA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,324,1589266800"; d="scan'208";a="388543729" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga001.fm.intel.com with ESMTP; 07 Jul 2020 08:42:22 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) 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.1713.5; Tue, 7 Jul 2020 08:42:22 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 7 Jul 2020 08:42:22 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.100) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 7 Jul 2020 08:42:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SYYg8kwx9HwW8OUQuiz42+59VqiSZR0ZsCoxdUjZtA7tUAYz6QEZ1QMO6b6PB3HdzAiXm7IFns0SBrd2Welduwnv7Voe4MweKHqT/idSQS3BIEZGRm3QbKcpGbWkq09JAf70aVWDCdU9sw+9fhCiA9UD5HNTOmUSEF/DqZkJMD+22QedZB2hlvMy/fmVuhacUird8D4ROOXTfNNjlCMPVSJCfc4jd4byqjy3yTjsccXOHhcT2mk7oTF63M8+KHy/LgFGvXR8SylAgQuskkzIOOF6jqWDiTEZtXsAGNKXWwx+RcA3QWrZpW+CzVfTpIIAT3YSnaqa7ISlczmteL4kpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lBHeYrbFjO/O7SmWp89aS5IytZxRifOPtzo3kaZwbKI=; b=KEkt4F7oUpf3xVc8Noxf3Z95i7mw8JHFLiIxSYvWliY9a7G5e/wFJCnuEMBcBtn1MGQZkQrPxz3bjXXatgOfdrewKtz+yEzCra6GZJJ6KPruvvyf0ib3SXsI6Nn+CAYFcUth7Jhomko7yo/HknxYft1cZBIgVJcTeyIJjI6e5xBG3RpO8iEbGCu6C9MUTSm3hAbEooy9xZDwIOc69GwIxcoOVFKFW0aiBf8QtUTRSkuYa1Os86I9X2Z+8J7bfqhkZSs9stx+G3IGB5f6YUxn4Ce3J7O94kWjJnhgzH9vy/M/7ulqttgtqnCcWt8f1H57XEgEEKo/A9/Hh8NwpBfl4Q== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lBHeYrbFjO/O7SmWp89aS5IytZxRifOPtzo3kaZwbKI=; b=EFfxbdjoeyimsR//nuMv9GcMwXNIFuoun6cis4/D6HdPggD83JEnUyBJyJYZ+F8Pg/eLawBtXHHEyNW5Vxzybjggn7acBCUnr45UuRkWd+Q9FEjCbTChdAGT4iem1BAu3GE4xOTO4QUA8wUXZNXNp/uPFmZcbjn0xwcEgR2AkB4= Received: from MN2PR11MB4461.namprd11.prod.outlook.com (2603:10b6:208:192::29) by MN2PR11MB4584.namprd11.prod.outlook.com (2603:10b6:208:264::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.23; Tue, 7 Jul 2020 15:42:18 +0000 Received: from MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1]) by MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1%3]) with mapi id 15.20.3153.029; Tue, 7 Jul 2020 15:42:18 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "lsun@mellanox.com" , "Jiang, Guomin" , "Xu, Wei6" , "Gao, Liming" , "Ni, Ray" , "Zimmer, Vincent" , "Rothman, Michael A" , "Kinney, Michael D" CC: Sean Brogan Subject: Re: [edk2-devel] [PATCH] FmpDevicePkg: Enhance capsule verification with secure boot keys Thread-Topic: [edk2-devel] [PATCH] FmpDevicePkg: Enhance capsule verification with secure boot keys Thread-Index: AQHWRmHkwzsQ1FwWN0yXDTbJEKh6m6ju+xgAgAGWkICAAELiAIAAV9EAgADLtoCAAQPtAIAAE/hQgAgTzACAAThrgA== Date: Tue, 7 Jul 2020 15:42:17 +0000 Message-ID: References: <5b42e8e089fb961766c639b733284413ccf03272.1592587621.git.lsun@mellanox.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [134.134.136.210] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 231847ff-ff42-42a0-aaf3-08d8228c547e x-ms-traffictypediagnostic: MN2PR11MB4584: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-forefront-prvs: 0457F11EAF x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uqlRMQOhdb3oYp9J3pPfJy1GFNT8oq7cAvg6xQ0m8nvwdpP4n0agXv79M+o6MT1DxDEW1yUKihO59sIVV9aWIRTYdCOFo8rB0Cc4iIcnNfDek52k54lksS6WuCnFJXcOAxHrpOilX8Cp2XmAqTckgB9y/gwBp/DOAfgOKt3SrJQKFClaAz226V0qCZvXzQeJfFc+C4XX3HAtZlinjEuq6ByDQFeA71kP1O1nMsTcCp2ZUNLr7OnNGCFCT/T/cI/Buq7f8EANzLL6b9xQFkk3hbcSjwwc+5NgJQpLVaSgq2+U+ccLrTbDSntRVUCmA32SHgdHwwtaERzLCD+UvYTYbT2kLe+o7hunbnYelylv5Aq+lxqAE/VOac3SNeTTrC2eywfnLrrvXfAJeQQn/Gtz8gOmr36obUyixP0r2VNIuDJuKwmBb0FB0S1W8N5PEZLm x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4461.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(346002)(376002)(366004)(136003)(39860400002)(53546011)(966005)(8676002)(83380400001)(7696005)(33656002)(30864003)(4326008)(9686003)(55016002)(15650500001)(2906002)(478600001)(66946007)(66446008)(64756008)(66476007)(66556008)(71200400001)(52536014)(8936002)(19627235002)(6506007)(86362001)(5660300002)(316002)(110136005)(76116006)(26005)(186003)(921003)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: ga+4Bpry+EvIi18v4+H2R/B9/coTRJJBJNx+p22F0BoBdhXcUYuGyFmGgOZnfOn1NAqrpWC67xGl84TrmF9ZP8shVv4etfujep4XytEEMAUkuDXpqjVtHQIA4xbW+7sMmKzD652Y+XXqdH7twKQpqEiXPQ1UPj+pLawDMoo4TvkgS4Whz0HeJwmJ5ecQVUtscw9bMENpD3SMAYFmhHtqQucN4QWu7D+qmSJmUBb0s+REsZb4sLMGtP/brA/vFjxDlINaJs2YmQqQoQrjPUxyXM7yxjkcEMQyPnmuwRfVhFdcVsIJdFOiJEMddO4YW7Ce7xQLQ0uc/Cl1AP0HrA8SnTZPKMtHnERE/kWXN0SZ0dOPupGRK6kQMRtIJgjkH0U7RgPURiOgfzW7HyjKM+WoMrk5dWKxgtRP53grFh+WhP6SEJ4Uy+F+lWWzwhgtcIknx7xUUxj5GG84/BhPsEdTF2sPX2nkRpsVMFpI273vp3beoAS42M3ItdroEgPTEABd MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4461.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 231847ff-ff42-42a0-aaf3-08d8228c547e X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jul 2020 15:42:17.9949 (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: qVbWGWBf6c62bGTBxfAOd3qp+Q+VXtIrC7WRbMocqrwzHcTetn+xPpmvCm2cIBCSleOwOEjTDYM4+AeBytTorjocM410zYGNl5RJZAtvXaw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4584 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nIFN1biwNCg0KVGhhbmsgeW91IGZvciBwcm92aWRpbmcgdGhlIGFkZGl0aW9uYWwg ZGV0YWlscy4NCg0KVGhlIHVzZSBjYXNlIGRlc2NyaXB0aW9uIGlzIHZlcnkgYnJpZWYgYW5kIGFw cGVhcnMgdGhhdCBpdCANCm1heSBub3QgZm9sbG93IHNvbWUgb2YgdGhlIFVFRkkgU3BlY2lmaWNh dGlvbiByZXF1aXJlbWVudHMuDQpJIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGhhdmUgYSBjbGVhciB1 bmRlcnN0YW5kaW5nIG9mIHRoZSB1c2UNCmNhc2VzIHdpdGggc29tZSBvZiB0aGUgVUVGSSBTZWN1 cmUgQm9vdCBhbmQgRmlybXdhcmUgVXBkYXRlcw0KZXhwZXJ0cy4NCg0KV2UgaGF2ZSBhIFRpYW5v Q29yZSBkZXNpZ24gbWVldGluZyB0aGF0IGlzIGhvc3RlZCBieSBSYXkgTmkuDQoNCkNhbiB5b3Ug cGxlYXNlIHdvcmsgd2l0aCBSYXkgdG8gZ2V0IG9udG8gdGhlIGFnZW5kYSBmb3IgDQp0aGF0IG1l ZXRpbmcgd2hlcmUgeW91IGNhbiBwcmVzZW50IHlvdXIgaWRlYXM/DQoNClRoYW5rcywNCg0KTWlr ZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3Jv dXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24NCj4gQmVoYWxmIE9mIExpbWluZyBTdW4N Cj4gU2VudDogTW9uZGF5LCBKdWx5IDYsIDIwMjAgMTo1OSBQTQ0KPiBUbzogS2lubmV5LCBNaWNo YWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gZGV2ZWxAZWRrMi5ncm91cHMu aW87IEppYW5nLCBHdW9taW4NCj4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBYdSwgV2VpNiA8 d2VpNi54dUBpbnRlbC5jb20+Ow0KPiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+ DQo+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIEZtcERldmljZVBrZzogRW5oYW5jZQ0KPiBjYXBz dWxlIHZlcmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBib290IGtleXMNCj4gDQo+IFRoYW5rcyBNaWNo YWVsLiBCZWxvdyBpcyB0aGUgdXNlIGNhc2U6DQo+IA0KPiAtIERldmljZSB2ZW5kb3IgcHJvdmlk ZXMgZGV2aWNlcyB3aXRoIFVFRkkgcHJlaW5zdGFsbGVkOw0KPiAtIEN1c3RvbWVyIGdldHMgdGhl IGRldmljZSBpbiBub24tc2VjdXJlLWJvb3QgbW9kZSBieQ0KPiBkZWZhdWx0LCBhbmQgd291bGQg bGlrZSB0byBlbnJvbGwgdGhlIHNlY3VyZSBib290IGtleXMNCj4gdGhlbXNlbHZlcyBpbiBzb21l IGF1dG9tYXRpYyB3YXkgKHN1Y2ggYXMgdXNpbmcNCj4gY2Fwc3VsZSkuDQo+IA0KPiBQY2RGbXBE ZXZpY2VQa2NzN0NlcnRCdWZmZXJYZHIgaXMgbm90IHVzZWQgZm9yIHR3bw0KPiByZWFzb25zIGZv ciB0aGlzIHVzZSBjYXNlOg0KPiAxLiBTaW1wbGljaXR5LiBTbyB2ZW5kb3IgZG9lc24ndCBuZWVk IHRvIGJlIGludm9sdmVkIGluDQo+IHRoZSBrZXkgbWFuYWdlbWVudCwgYW5kIGN1c3RvbWVyIGNv dWxkIGNyZWF0ZSBhbmQgc2lnbg0KPiB0aGUgY2Fwc3VsZSB0aGVtc2VsdmVzLg0KPiAyLiBTZWN1 cmUgcmVhc29ucy4gT25jZSBjdXN0b21lciBmdWxseSBvd24gdGhlIGRldmljZQ0KPiBhbmQgcHV0 IGl0IGludG8gc2VjdXJlLWJvb3QgbW9kZSwgZXZlbiB0aGUgY2Fwc3VsZSBmcm9tDQo+IHRoZSBk ZXZpY2UgdmVuZG9yIGNvdWxkbid0IGJlIGFwcGxpZWQgd2l0aG91dCBiZWluZw0KPiBzaWduZWQg YnkgY3VzdG9tZXIuIChUaGUgaGFyZGNvZGVkDQo+IFBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZl clhkciBjb3VsZG4ndCBhY2hpZXZlIHRoaXMNCj4gZ29hbCkuDQo+IA0KPiBUaGFua3MsDQo+IExp bWluZw0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBTZW50OiBXZWRu ZXNkYXksIEp1bHkgMSwgMjAyMCAxOjQzIFBNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBMaW1pbmcgU3VuDQo+IDxsc3VuQG1lbGxhbm94LmNvbT47IEppYW5nLCBHdW9taW4NCj4gPGd1 b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBYdSwgV2VpNg0KPiA+IDx3ZWk2Lnh1QGludGVsLmNvbT47 IEdhbywgTGltaW5nDQo+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBE DQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogU2VhbiBCcm9nYW4gPHNl YW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBb UEFUQ0hdIEZtcERldmljZVBrZzoNCj4gRW5oYW5jZSBjYXBzdWxlIHZlcmlmaWNhdGlvbiB3aXRo IHNlY3VyZSBib290IGtleXMNCj4gPg0KPiA+IExpbWluZyBTdW4sDQo+ID4NCj4gPiBDYW4geW91 IGV4cGxhaW4gd2h5IHlvdSBjYW5ub3QgdXNlDQo+IFBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZl clhkcg0KPiA+IGZvciB5b3VyIHVzZSBjYXNlPyAgSSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlIHVz ZSBjYXNlDQo+IHRvIHNlZSBpZg0KPiA+IHRoYXQgZmVhdHVyZSBjYW4gYmUgYXBwbGllZCBvciBp ZiBhIG1pbm9yIGVuaGFuY2VtZW50DQo+IHRvIHRoaXMNCj4gPiBmZWF0dXJlIGNhbiB3b3JrLg0K PiA+DQo+ID4gVXNpbmcgdGhlIFVFRkkgU2VjdXJlIEJvb3QgREIgZm9yIGFueXRoaW5nIG90aGVy IHRoYW4NCj4gYXV0aGVudGljYXRpb24NCj4gPiBvZiBVRUZJIGJvb3QgbG9hZGVycyBpcyBub3Qg cmVjb21tZW5kZWQuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4NCj4gPiBNaWtlDQo+ID4NCj4gPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uDQo+ID4gPiBCZWhhbGYgT2YgTGltaW5nIFN1 bg0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBKdWx5IDEsIDIwMjAgOToyNyBBTQ0KPiA+ID4gVG86 IEppYW5nLCBHdW9taW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+Ow0KPiA+ID4gZGV2ZWxAZWRr Mi5ncm91cHMuaW87IFh1LCBXZWk2IDx3ZWk2Lnh1QGludGVsLmNvbT47DQo+IEdhbywNCj4gPiA+ IExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+ID4g PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IFNlYW4gQnJvZ2FuIDxzZWFu LmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBb UEFUQ0hdIEZtcERldmljZVBrZzoNCj4gRW5oYW5jZQ0KPiA+ID4gY2Fwc3VsZSB2ZXJpZmljYXRp b24gd2l0aCBzZWN1cmUgYm9vdCBrZXlzDQo+ID4gPg0KPiA+ID4gPj4gQnV0IGlmIHlvdXIgY3Vz dG9tZXIgaW5kZWVkIHdhbnQgaXQsIHlvdSBjYW4gYWRkDQo+IGl0DQo+ID4gPiB0byB5b3VyIGN1 c3RvbWl6YXRpb24gY29kZS4NCj4gPiA+IFRoYW5rcy4gWWVzLCB0aGlzIGlzIGEgYmVoYXZpb3Ig Y3VzdG9tZXIgZXhwZWN0cy4NCj4gVGhpcw0KPiA+ID4gY2hhbmdlIGp1c3QgdHJpZXMgdG8gcHJv dmlkZSBhIGhhbmR5IHdheSB0byBlbnJvbGwNCj4gPiA+IGluaXRpYWwga2V5cy4NCj4gPiA+IFNv IHRoZSBpbml0aWFsIGtleXMgY291bGQgYmUgY2FycmllZCBpbiB0aGUgY2Fwc3VsZQ0KPiA+ID4g aXRzZWxmLg0KPiA+ID4gSXQgYWxzbyBoYXMgIlBjZEZtcERldmljZUFsbG93U2VjdXJlQm9vdEtl eXMiDQo+IGRpc2FibGVkDQo+ID4gPiBieSBkZWZhdWx0LCBzbyBpdCBiZWhhdmVzIHRoZSBzYW1l IGFzIGJlZm9yZS4NCj4gPiA+DQo+ID4gPiBXZSdsbCB0cnkgdG8gdXNlIGN1c3RvbWl6YXRpb24g Y29kZSBpbnN0ZWFkIGFzDQo+ID4gPiBzdWdnZXN0ZWQuDQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0K PiA+ID4gTGltaW5nDQo+ID4gPg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+ID4gPiBGcm9tOiBKaWFuZywgR3VvbWluIDxndW9taW4uamlhbmdAaW50ZWwuY29tPg0KPiA+ ID4gPiBTZW50OiBUdWVzZGF5LCBKdW5lIDMwLCAyMDIwIDg6NTYgUE0NCj4gPiA+ID4gVG86IExp bWluZyBTdW4gPGxzdW5AbWVsbGFub3guY29tPjsNCj4gPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBYdSwgV2VpNiA8d2VpNi54dUBpbnRlbC5jb20+Ow0KPiBHYW8sDQo+ID4gPiBMaW1pbmcgPGxp bWluZy5nYW9AaW50ZWwuY29tPjsNCj4gPiA+ID4gS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2Fu QG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENI XSBGbXBEZXZpY2VQa2c6DQo+ID4gPiBFbmhhbmNlIGNhcHN1bGUgdmVyaWZpY2F0aW9uIHdpdGgg c2VjdXJlIGJvb3Qga2V5cw0KPiA+ID4gPg0KPiA+ID4gPiBJIHdhbnQgdG8gYXNrIHlvdXIgb25l IHF1ZXN0aW9uOiBhcmUgeW91IHN1cmUgdGhhdA0KPiA+ID4gZXZlcnkgbW90aGVyIGJvYXJkIHdo aWNoIGRlbGl2ZXIgdG8gY3VzdG9tZXIgd2lsbA0KPiBlbmFibGUNCj4gPiA+IHRoZSBzZWN1cmUg Ym9vdCBtb2RlPw0KPiA+ID4gPg0KPiA+ID4gPiBJIGp1c3QgZW1waGFzaXplIHRoYXQgSSB3YW50 IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZQ0KPiA+ID4gZGV2aWNlIGZpcm13YXJlIGNvbWUgZnJvbSB0 aGUgZGV2aWNlIHZlbmRvci4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzIGZvciB5b3VyIGVmZm9y dCwgdGhlIHBhdGNoIGlzIGdvb2QsIEkganVzdA0KPiA+ID4gdGhpbmsgaXQgaXMgbm90IHN1aXRh YmxlIGZvciBjb21tb24gc29sdXRpb24uDQo+ID4gPiA+DQo+ID4gPiA+IEJ1dCBpZiB5b3VyIGN1 c3RvbWVyIGluZGVlZCB3YW50IGl0LCB5b3UgY2FuIGFkZA0KPiBpdCB0bw0KPiA+ID4geW91ciBj dXN0b21pemF0aW9uIGNvZGUuDQo+ID4gPiA+DQo+ID4gPiA+IFRoYW5rcw0KPiA+ID4gPiBHdW9t aW4NCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4g PiA+IEZyb206IExpbWluZyBTdW4gPGxzdW5AbWVsbGFub3guY29tPg0KPiA+ID4gPiA+IFNlbnQ6 IFR1ZXNkYXksIEp1bmUgMzAsIDIwMjAgODo0NyBQTQ0KPiA+ID4gPiA+IFRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgSmlhbmcsIEd1b21pbg0KPiA+ID4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+ OyBYdSwNCj4gPiA+ID4gPiBXZWk2IDx3ZWk2Lnh1QGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+ ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksDQo+ID4gPiA+ID4gTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gPiBDYzogU2VhbiBCcm9nYW4g PHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsy LWRldmVsXSBbUEFUQ0hdIEZtcERldmljZVBrZzoNCj4gPiA+IEVuaGFuY2UgY2Fwc3VsZQ0KPiA+ ID4gPiA+IHZlcmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBib290IGtleXMNCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IFRoYW5rcyBHdW9taW4uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJIHN0aWxsIGhhdmUg b25lIHF1ZXN0aW9uLiBMZXQncyBhc3N1bWUgd2UncmUNCj4gdGhlDQo+ID4gPiBkZXZpY2UgdmVu ZG9yIGFuZCB3ZSBsZXQNCj4gPiA+ID4gPiBjdXN0b21lciB0byBlbnJvbGwgdGhlaXIga2V5cy4g T25jZSB0aGUga2V5cyBhcmUNCj4gPiA+IGVucm9sbGVkLCB0aGUgZGV2aWNlIHdpbGwgYmUNCj4g PiA+ID4gPiBpbiBzZWN1cmUgYm9vdCBtb2RlLiBBcmUgeW91IHNheWluZyB0aGF0IHRoZSBlbmQN Cj4gPiA+IHVzZXIgY291bGQgImhhdmUgdGhlIGFiaWxpdHkNCj4gPiA+ID4gPiB0byBlbnJvbGwg dGhlaXIgREIgd2l0aG91dCB0b28gbWFueSBlZmZvcnQiIGV2ZW4NCj4gPiA+IGFmdGVyIHRoZSBz ZWN1cmUgYm9vdCBoYXMNCj4gPiA+ID4gPiBiZWVuIGVuYWJsZWQgYWxyZWFkeT8NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFBsZWFzZSBjb3JyZWN0IG1lIGlmIEkgbWlzdW5kZXJzdG9vZCBpdC4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IC0gTGltaW5nDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPiA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+DQo+ID4gPiBPbiBCZWhhbGYgT2YNCj4gPiA+ ID4gPiBHdW9taW4NCj4gPiA+ID4gPiA+IEppYW5nIHZpYSBncm91cHMuaW8NCj4gPiA+ID4gPiA+ IFNlbnQ6IFR1ZXNkYXksIEp1bmUgMzAsIDIwMjAgMzozMyBBTQ0KPiA+ID4gPiA+ID4gVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBMaW1pbmcgU3VuDQo+ID4gPiA8bHN1bkBtZWxsYW5veC5jb20+ OyBYdSwgV2VpNg0KPiA+ID4gPiA+ID4gPHdlaTYueHVAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcN Cj4gPiA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwNCj4gPiA+ID4gPiA+IE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzogU2VhbiBC cm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBS ZTogW2VkazItZGV2ZWxdIFtQQVRDSF0NCj4gRm1wRGV2aWNlUGtnOg0KPiA+ID4gRW5oYW5jZSBj YXBzdWxlDQo+ID4gPiA+ID4gPiB2ZXJpZmljYXRpb24gd2l0aCBzZWN1cmUgYm9vdCBrZXlzDQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gTGltaW5nLA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IFRoZSBlbmQgdXNlciBoYXZlIHRoZSBhYmlsaXR5IHRvIGVucm9sbCB0aGVpcg0KPiBEQg0KPiA+ ID4gd2l0aG91dCB0b28gbWFueSBlZmZvcnQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQW5k IEkgdGhpbmsgc29tZSBlbmQgdXNlciBhbHNvIGhhdmUgdGhlDQo+IGFiaWxpdHkgdG8NCj4gPiA+ IGdldCBpbnNlY3VyZSBmaXJtd2FyZQ0KPiA+ID4gPiA+IHdoaWNoIG5vdCBmcm9tIHRoZSBkZXZp Y2UgdmVuZG9yLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgc3VnZ2VzdCB0aGF0IHRlbGwg dGhlIGRldmljZSB2ZW5kb3IgdGhhdCBpdA0KPiBpcw0KPiA+ID4gY3JpdGljYWwgdGhhdCBzZXQg dGhlDQo+ID4gPiA+ID4gUGNkRm1wRGV2aWNlUGtjczdDZXJ0QnVmZmVyWGRyIHJhdGhlciB0aGFu DQo+IGRlY3JlYXNlDQo+ID4gPiB0aGUgc2VjdXJpdHkuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gQmVzdCBSZWdhcmRzDQo+ID4gPiA+ID4gPiBHdW9taW4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+IEZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFs ZiBPZg0KPiA+ID4gPiA+ID4gPiBMaW1pbmcgU3VuDQo+ID4gPiA+ID4gPiA+IFNlbnQ6IFR1ZXNk YXksIEp1bmUgMzAsIDIwMjAgMTE6MzMgQU0NCj4gPiA+ID4gPiA+ID4gVG86IEppYW5nLCBHdW9t aW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+Ow0KPiA+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW87 DQo+ID4gPiA+ID4gPiA+IFh1LA0KPiA+ID4gPiA+ID4gPiBXZWk2IDx3ZWk2Lnh1QGludGVsLmNv bT47IEdhbywgTGltaW5nDQo+ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+Ow0KPiA+ID4gPiA+ ID4gPiBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ ID4gPiA+ID4gPiA+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4N Cj4gPiA+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdDQo+IEZtcERl dmljZVBrZzoNCj4gPiA+IEVuaGFuY2UgY2Fwc3VsZQ0KPiA+ID4gPiA+ID4gPiB2ZXJpZmljYXRp b24gd2l0aCBzZWN1cmUgYm9vdCBrZXlzDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRo YW5rcyBHdW9taW4gZm9yIHRoZSBjb21tZW50cyENCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gQmVsb3cgaXMgdGhlIG1haW4gc2NlbmFyaW8gZm9yIHRoZSBwcm9wb3NlZA0KPiA+ID4gY2hh bmdlOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtIERldmljZSBNYW51ZmFjdHVyZXIg cHJvdmlkZXMgdGhlIGRldmljZXMNCj4gd2l0aA0KPiA+ID4gVUVGSSBwcmVpbnN0YWxsZWQgaW4N Cj4gPiA+ID4gPiA+ID4gbm9uLSBzZWN1cmUgc3RhdGUgYW5kIG5vIGhhcmQtY29kZWQga2V5cyAo DQo+ID4gPiA+ID4gUGNkRm1wRGV2aWNlUGtjczdDZXJ0QnVmZmVyWGRyKS4NCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gLSBDdXN0b21lciAobm90IEVuZC1Vc2VyKSBlbnJvbGxzIHRoZWly IG93bg0KPiBrZXlzDQo+ID4gPiBpbiB0cnVzdGVkDQo+ID4gPiA+ID4gPiA+IGVudmlyb25tZW50 IGJlZm9yZSBkZWxpdmVyaW5nIHRvIEVuZCBVc2VyLg0KPiA+ID4gPiA+ID4gPiBUaGlzIGNhcHN1 bGUgYXBwcm9hY2ggY2FuIGJlIHVzZWQgZm9yIGxhcmdlDQo+ID4gPiBkZXBsb3ltZW50IHdpdGhv dXQNCj4gPiA+ID4gPiA+ID4gaW52b2x2aW5nIGFueSBwcml2YXRlIGtleXMuDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IFllcywgSSBkbyBhZ3JlZSB0aGF0IG9uY2UgaXQncyBkZWxpdmVy ZWQgdG8NCj4gRW5kDQo+ID4gPiBVc2VyIGl0IHdvbid0IGJlDQo+ID4gPiA+ID4gPiA+IGNvbnNp ZGVyZWQgc2VjdXJlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGFua3MsDQo+ID4g PiA+ID4gPiA+IExpbWluZw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+ID4gRnJvbTogSmlhbmcsIEd1b21pbg0K PiA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBTZW50OiBTdW5kYXks IEp1bmUgMjgsIDIwMjAgMTE6MTggUE0NCj4gPiA+ID4gPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW87IExpbWluZyBTdW4NCj4gPiA+IDxsc3VuQG1lbGxhbm94LmNvbT47IFh1LCBXZWk2 DQo+ID4gPiA+ID4gPiA+ID4gPHdlaTYueHVAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPiA+ IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwNCj4gPiA+ID4gPiA+ID4gPiBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+IENjOiBTZWFu IEJyb2dhbg0KPiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBT dWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0NCj4gPiA+IEZtcERldmljZVBrZzogRW5o YW5jZSBjYXBzdWxlDQo+ID4gPiA+ID4gPiA+ID4gdmVyaWZpY2F0aW9uIHdpdGggc2VjdXJlIGJv b3Qga2V5cw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSSB0aGluayBpdCBoYXZl IHNvbWUgdnVsbmVyYWJpbGl0eSwgdGhlDQo+IGNhc2UNCj4gPiA+IGFzIGJlbG93Lg0KPiA+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gMS4gVW50cnVzdGVkIEVuZCBVc2VyIGVucm9sbCB0 aGUgbmV3IERCDQo+IGtleSAtPg0KPiA+ID4gc2lnbiB0aGUgdW50cnVzdGVkDQo+ID4gPiA+ID4g PiA+ID4gZGV2aWNlIGZpcm13YXJlIC0+IGZsYXNoIHRoZSB1bnRydXN0ZWQNCj4gZGV2aWNlDQo+ ID4gPiBmaXJtd2FyZSAtPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiBzeXN0ZW0gd2lsbA0KPiA+ID4g PiA+ID4gPiBiZWNvbWUgdW5zYWZlLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g SSB0aGluayB0aGUgZW5kIHVzZXIgaXMgdW50cnVzdGVkIGFuZCB3ZQ0KPiBuZWVkDQo+ID4gPiB0 byBtYWtlIHN1cmUgb25seQ0KPiA+ID4gPiA+ID4gPiA+IGZldyBwZXJzb24NCj4gPiA+ID4gPiA+ ID4gY2FuIGhhdmUgdGhlIHByaXZpbGVnZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+IEJlc3QgUmVnYXJkcw0KPiA+ID4gPiA+ID4gPiA+IEd1b21pbg0KPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ ID4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+IDxkZXZlbEBlZGsyLmdy b3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+ID4gPiA+ID4gPiA+ID4gPiBMaW1pbmcgU3VuDQo+ID4g PiA+ID4gPiA+ID4gPiBTZW50OiBTYXR1cmRheSwgSnVuZSAyMCwgMjAyMCAxOjQ4IEFNDQo+ID4g PiA+ID4gPiA+ID4gPiBUbzogWHUsIFdlaTYgPHdlaTYueHVAaW50ZWwuY29tPjsgR2FvLA0KPiA+ ID4gTGltaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5u ZXksIE1pY2hhZWwNCj4gRA0KPiA+ID4gPiA+ID4gPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IExpbWluZyBTdW4gPGxzdW5AbWVsbGFub3gu Y29tPjsNCj4gPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBTZWFuDQo+ID4gPiA+ID4gPiA+ID4g PiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiBT dWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIXQ0KPiBGbXBEZXZpY2VQa2c6DQo+ID4gPiBFbmhh bmNlIGNhcHN1bGUNCj4gPiA+ID4gPiA+ID4gPiA+IHZlcmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBi b290IGtleXMNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIGNvbW1p dCBlbmhhbmNlcyB0aGUgRm1wRGV2aWNlUGtnDQo+ID4gPiBwYWNrYWdlIHRvIG9wdGlvbmFsbHkN Cj4gPiA+ID4gPiA+ID4gPiA+IHZlcmlmeSBjYXBzdWxlIHdpdGggdGhlIHNlY3VyZSBib290IGtl eXMNCj4gPiA+IHdoZW4NCj4gPiA+ID4gPiA+ID4gPiA+IFBjZEZtcERldmljZVBrY3M3Q2VydEJ1 ZmZlclhkciBpcyBub3QNCj4gc2V0DQo+ID4gPiBhbmQgdGhlIG5ldyBQQ0QNCj4gPiA+ID4gPiA+ ID4gPiA+IHZhcmlhYmxlIFBjZEZtcERldmljZUFsbG93U2VjdXJlQm9vdEtleXMNCj4gaXMNCj4g PiA+IGNvbmZpZ3VyZWQuIEJlbG93IGlzDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGUgY2hlY2sNCj4g PiA+ID4gPiA+ID4gbG9naWM6DQo+ID4gPiA+ID4gPiA+ID4gPiAgIC0gUGFzcyBpZiB2ZXJpZmll ZCB3aXRoIFBLIGtleSwgb3IgUEsNCj4ga2V5DQo+ID4gPiBub3Qgc2V0IHlldDsNCj4gPiA+ID4g PiA+ID4gPiA+ICAgLSBEZW55IGlmIHZlcmlmaWVkIHdpdGggdGhlIERCWCBrZXlzOw0KPiA+ID4g PiA+ID4gPiA+ID4gICAtIFZlcmlmaWVkIGl0IGFnYWluc3QgdGhlIERCIGtleXM7DQo+ID4gPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gT25lIHB1cnBvc2UgZm9yIHRoaXMgY2hhbmdl IGlzIHRvIGF1dG8tDQo+ID4gPiBkZXBsb3kgdGhlIFVFRkkgc2VjdXJlDQo+ID4gPiA+ID4gPiA+ ID4gPiBib290IGtleXMgd2l0aCBVRUZJIGNhcHN1bGUuIEluaXRpYWxseQ0KPiBpdCdzDQo+ID4g PiBkb25lIGluIHRydXN0ZWQgZW52aXJvbm1lbnQuDQo+ID4gPiA+ID4gPiA+ID4gPiBPbmNlIHNl Y3VyZSBib290IGlzIGVuYWJsZWQsIHRoZSBzYW1lDQo+IGtleXMNCj4gPiA+IHdpbGwgYmUgdXNl ZCB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gdmVyaWZ5IHRoZSBzaWduZWQgY2Fwc3VsZXMgYXMgd2Vs bCBmb3INCj4gPiA+IGZ1cnRoZXIgdXBkYXRlcy4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBMaW1pbmcgU3VuDQo+ID4gPiA8bHN1bkBtZWxsYW5v eC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ID4gPiA+ICBGbXBEZXZp Y2VQa2cvRm1wRGV2aWNlUGtnLmRlYyAgICAgfCAgIDYNCj4gKysrDQo+ID4gPiA+ID4gPiA+ID4g PiAgRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuYyAgICAgIHwgMTA5DQo+ID4gPiA+ID4gPiA+ ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiA+ID4gPiA+ID4g PiA+ID4gIEZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmggICAgICB8ICAgMQ0KPiArDQo+ID4g PiA+ID4gPiA+ID4gPiAgRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuaW5mICAgIHwgICAzDQo+ ICsrDQo+ID4gPiA+ID4gPiA+ID4gPiAgRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGVMaWIuaW5m IHwgICAxDQo+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNl cnRpb25zKCspLCAzDQo+ID4gPiBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+IGEvRm1wRGV2aWNlUGtnL0ZtcERldmljZVBrZy5k ZWMNCj4gPiA+ID4gPiA+ID4gPiA+IGIvRm1wRGV2aWNlUGtnL0ZtcERldmljZVBrZy5kZWMgaW5k ZXgNCj4gPiA+IGNhYjYzZjUuLjNhZWI4OWMgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiAtLS0g YS9GbXBEZXZpY2VQa2cvRm1wRGV2aWNlUGtnLmRlYw0KPiA+ID4gPiA+ID4gPiA+ID4gKysrIGIv Rm1wRGV2aWNlUGtnL0ZtcERldmljZVBrZy5kZWMNCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xMjYs NiArMTI2LDEyIEBADQo+ID4gPiA+ID4gPiA+ID4gPiAgICAjIEBQcm9tcHQgRmlybXdhcmUgRGV2 aWNlIEltYWdlIFR5cGUNCj4gSUQNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiBnRm1wRGV2aWNlUGtnVG9rZW5T cGFjZUd1aWQuUGNkRm1wRGV2aWNlSW1hZ2VUeXBlSWRHdWlkfA0KPiA+ID4gezB9fFZPSUQNCj4g PiA+ID4gPiA+ID4gPiA+ICp8MHg0MDAwMDAxMA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ICsgICMjIFRoaXMgb3B0aW9uIGlzIHVzZWQgdG8gdmVyaWZ5IHRoZQ0KPiA+ID4g Y2Fwc3VsZSB1c2luZyBzZWN1cmUNCj4gPiA+ID4gPiA+ID4gPiA+ICsgYm9vdCBrZXlzIGlmIHRo ZSAgIw0KPiA+ID4gUGNkRm1wRGV2aWNlUGtjczdDZXJ0QnVmZmVyWGRyIGlzIG5vdA0KPiA+ID4g PiA+IGNvbmZpZ3VyZWQuDQo+ID4gPiA+ID4gPiA+ID4gPiArIEluIHN1Y2ggY2FzZSwgdGhlIGNo ZWNrICAjIHdpbGwgcGFzcw0KPiBpZg0KPiA+ID4gc2VjdXJlIGJvb3QgaGFzbid0DQo+ID4gPiA+ ID4gPiA+ID4gPiArIGJlZW4gZW5hYmxlZA0KPiA+ID4gPiA+ID4gPiB5ZXQuDQo+ID4gPiA+ID4g PiA+ID4gPiArICAjIEBBIGZsYWcgdG8gdGVsbCB3aGV0aGVyIHRvIHVzZQ0KPiBzZWN1cmUNCj4g PiA+IGJvb3Qga2V5cyB3aGVuDQo+ID4gPiA+ID4gPiA+ID4gPiBQY2RGbXBEZXZpY2VQa2NzN0Nl cnRCdWZmZXJYZHIgaXMgbm90DQo+IHNldC4NCj4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4N Cj4gPiA+DQo+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VBbGxvd1Nl Y3VyZUJvb3RLDQo+ID4gPiBleXN8MHgwfA0KPiA+ID4gPiA+ID4gPiA+ID4gVUlOVDh8DQo+ID4g PiA+ID4gPiA+ID4gPiArIDB4NDAwMDAwMTINCj4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4gPiA+ICBbUGNkc0ZpeGVkQXRCdWlsZCwNCj4gUGNkc1BhdGNoYWJsZUluTW9kdWxlLA0K PiA+ID4gUGNkc0R5bmFtaWMsDQo+ID4gPiA+ID4gPiA+IFBjZHNEeW5hbWljRXhdDQo+ID4gPiA+ ID4gPiA+ID4gPiAgICAjIyBPbmUgb3IgbW9yZSBQS0NTNyBjZXJ0aWZpY2F0ZXMNCj4gdXNlZCB0 bw0KPiA+ID4gdmVyaWZ5IGEgZmlybXdhcmUNCj4gPiA+ID4gPiA+ID4gPiA+IGRldmljZQ0KPiA+ ID4gPiA+ID4gPiBjYXBzdWxlDQo+ID4gPiA+ID4gPiA+ID4gPiAgICAjICB1cGRhdGUgaW1hZ2Uu ICBFbmNvZGVkIHVzaW5nIHRoZQ0KPiA+ID4gVmFyaWFibGUtTGVuZ3RoIE9wYXF1ZQ0KPiA+ID4g PiA+ID4gPiA+ID4gRGF0YSBmb3JtYXQgb2YgUkZDIGRpZmYgLS1naXQNCj4gPiA+IGEvRm1wRGV2 aWNlUGtnL0ZtcER4ZS9GbXBEeGUuYw0KPiA+ID4gPiA+ID4gPiA+ID4gYi9GbXBEZXZpY2VQa2cv Rm1wRHhlL0ZtcER4ZS5jIGluZGV4DQo+ID4gPiA1ODg0MTc3Li42ZjgyYWVlIDEwMDY0NA0KPiA+ ID4gPiA+ID4gPiA+ID4gLS0tIGEvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuYw0KPiA+ID4g PiA+ID4gPiA+ID4gKysrIGIvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuYw0KPiA+ID4gPiA+ ID4gPiA+ID4gQEAgLTY4Miw2ICs2ODIsMTAyIEBAIEdldEFsbEhlYWRlclNpemUgKA0KPiA+ID4g PiA+ID4gPiA+ID4gICAgcmV0dXJuIENhbGN1bGF0ZWRTaXplOw0KPiA+ID4gPiA+ID4gPiA+ID4g IH0NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiArRUZJX1NUQVRVUw0KPiA+ ID4gPiA+ID4gPiA+ID4gK0NoZWNrVGhlSW1hZ2VXaXRoU2VjdXJlQm9vdFZhcmlhYmxlICgNCj4g PiA+ID4gPiA+ID4gPiA+ICsgIElOIENPTlNUIENIQVIxNiAgICAqTmFtZSwNCj4gPiA+ID4gPiA+ ID4gPiA+ICsgIElOIENPTlNUIEVGSV9HVUlEICAqR3VpZCwNCj4gPiA+ID4gPiA+ID4gPiA+ICsg IElOIENPTlNUIFZPSUQgICAgICAqSW1hZ2UsDQo+ID4gPiA+ID4gPiA+ID4gPiArICBJTiBVSU5U TiAgICAgICAgICAgSW1hZ2VTaXplDQo+ID4gPiA+ID4gPiA+ID4gPiArICApDQo+ID4gPiA+ID4g PiA+ID4gPiArew0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgICBTdGF0 dXM7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBWT0lEICAgICAgICAgICAgICAgICpEYXRhOw0KPiA+ ID4gPiA+ID4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICBMZW5ndGg7DQo+ID4gPiA+ID4g PiA+ID4gPiArICBFRklfU0lHTkFUVVJFX0xJU1QgICpDZXJ0TGlzdDsNCj4gPiA+ID4gPiA+ID4g PiA+ICsgIEVGSV9TSUdOQVRVUkVfREFUQSAgKkNlcnREYXRhOw0KPiA+ID4gPiA+ID4gPiA+ID4g KyAgVUlOVE4gICAgICAgICAgICAgICBDZXJ0Q291bnQ7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBV SU5UTiAgICAgICAgICAgICAgIEluZGV4Ow0KPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gPiA+ID4gKyAgU3RhdHVzID0gR2V0VmFyaWFibGUyIChOYW1lLCBHdWlkLA0KPiAmRGF0YSwN Cj4gPiA+ICZMZW5ndGgpOyAgaWYNCj4gPiA+ID4gPiA+ID4gPiA+ICsgKEVGSV9FUlJPUg0KPiA+ ID4gPiA+ID4gPiA+ID4gKyAoU3RhdHVzKSkgew0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICByZXR1 cm4gRUZJX05PVF9GT1VORDsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIENlcnRMaXN0ID0gKEVGSV9TSUdOQVRVUkVfTElT VCAqKQ0KPiBEYXRhOw0KPiA+ID4gd2hpbGUgKChMZW5ndGggPiAwKQ0KPiA+ID4gPiA+ID4gPiA+ ID4gKyAmJiAoTGVuZ3RoID49IENlcnRMaXN0LQ0KPiA+ID4gPlNpZ25hdHVyZUxpc3RTaXplKSkg ew0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICBpZiAoQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0NCj4g PiA+ID5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRYNTA5R3VpZCkpDQo+ID4gPiA+ID4gew0KPiA+ ID4gPiA+ID4gPiA+ID4gKyAgICAgIENlcnREYXRhICA9IChFRklfU0lHTkFUVVJFX0RBVEENCj4g KikNCj4gPiA+ICgoVUlOVDggKikgQ2VydExpc3QgKw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICAgc2l6ZW9mIChFRklfU0lHTkFUVVJFX0xJU1QpICsNCj4gPiA+IENlcnRMaXN0LT5TaWduYXR1 cmVIZWFkZXJTaXplKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICBDZXJ0Q291bnQgPSAoQ2Vy dExpc3QtDQo+ID4gPiA+U2lnbmF0dXJlTGlzdFNpemUgLSBzaXplb2YNCj4gPiA+ID4gPiA+ID4g PiA+ICsgKEVGSV9TSUdOQVRVUkVfTElTVCkNCj4gPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgQ2VydExpc3QtPlNpZ25hdHVyZUhlYWRlclNpemUpDQo+IC8NCj4gPiA+ ID4gPiA+ID4gPiA+ICsgQ2VydExpc3QtPlNpZ25hdHVyZVNpemU7DQo+ID4gPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwNCj4g Q2VydENvdW50Ow0KPiA+ID4gSW5kZXgrKykgew0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAg U3RhdHVzID0gQXV0aGVudGljYXRlRm1wSW1hZ2UgKA0KPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ ID4gKEVGSV9GSVJNV0FSRV9JTUFHRV9BVVRIRU5USUNBVElPTiAqKUltYWdlLA0KPiA+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBJbWFnZVNpemUsDQo+ID4gPiA+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgIENlcnREYXRhLQ0KPiA+U2lnbmF0dXJlRGF0YSwNCj4gPiA+ ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgQ2VydExpc3QtDQo+ID5TaWduYXR1cmVT aXplDQo+ID4gPiAtIHNpemVvZiAoRUZJX0dVSUQpDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgICk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICBpZiAoIUVGSV9FUlJP UiAoU3RhdHVzKSkNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgZ290byBEb25lOw0KPiA+ ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgQ2VydERhdGEgPSAo RUZJX1NJR05BVFVSRV9EQVRBDQo+ICopDQo+ID4gPiAoKFVJTlQ4ICopIENlcnREYXRhICsNCj4g PiA+ID4gPiA+ID4gPiA+ICsgQ2VydExpc3QtDQo+ID4gPiA+ID4gPiA+ID4gPiA+U2lnbmF0dXJl U2l6ZSk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gKyAg ICB9DQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIExlbmd0aCAt PSBDZXJ0TGlzdC0NCj4gPlNpZ25hdHVyZUxpc3RTaXplOw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAg ICBDZXJ0TGlzdCA9IChFRklfU0lHTkFUVVJFX0xJU1QgKikNCj4gPiA+ICgoVUlOVDggKikgQ2Vy dExpc3QgKw0KPiA+ID4gPiA+ID4gPiA+ID4gKyBDZXJ0TGlzdC0+U2lnbmF0dXJlTGlzdFNpemUp OyAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gK0RvbmU6DQo+ID4g PiA+ID4gPiA+ID4gPiArICBGcmVlUG9vbCAoRGF0YSk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBy ZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ID4gPiA+ICtFRklfU1RBVFVTDQo+ID4gPiA+ID4gPiA+ID4gPiArQ2hlY2tU aGVJbWFnZVdpdGhTZWN1cmVCb290S2V5cyAoDQo+ID4gPiA+ID4gPiA+ID4gPiArICBJTiAgQ09O U1QgVk9JRCAgKkltYWdlLA0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgSU4gIFVJTlROICAgICAgIElt YWdlU2l6ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgKQ0KPiA+ID4gPiA+ID4gPiA+ID4gK3sNCj4g PiA+ID4gPiA+ID4gPiA+ICsgIEVGSV9TVEFUVVMgIFN0YXR1czsNCj4gPiA+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIC8vIFBLIGNoZWNrLg0KPiA+ID4gPiA+ID4gPiA+ID4g KyAgU3RhdHVzID0NCj4gPiA+IENoZWNrVGhlSW1hZ2VXaXRoU2VjdXJlQm9vdFZhcmlhYmxlKA0K PiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICBFRklfUExBVEZPUk1fS0VZX05BTUUsDQo+ ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICZnRWZpR2xvYmFsVmFyaWFibGVHdWlkLA0K PiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICBJbWFnZSwNCj4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgSW1hZ2VTaXplDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSB8fCBTdGF0 dXMgPT0NCj4gPiA+IEVGSV9OT1RfRk9VTkQpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgLy8g UmV0dXJuIFNVQ0NFU1MgaWYgdmVyaWZpZWQgYnkgUEsNCj4ga2V5DQo+ID4gPiBvciBQSyBrZXkg bm90IGNvbmZpZ3VyZWQuDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5G TywgIkZtcER4ZToNCj4gVmVyaWZpZWQNCj4gPiA+IGNhcHN1bGUgd2l0aCBQSw0KPiA+ID4gPiA+ IGtleS5cbiIpKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0K PiA+ID4gPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g PiA+ID4gKyAgLy8gREJYIGNoZWNrLg0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgU3RhdHVzID0NCj4g PiA+IENoZWNrVGhlSW1hZ2VXaXRoU2VjdXJlQm9vdFZhcmlhYmxlKA0KPiA+ID4gPiA+ID4gPiA+ ID4gKw0KPiBFRklfSU1BR0VfU0VDVVJJVFlfREFUQUJBU0UxLA0KPiA+ID4gPiA+ID4gPiA+ID4g Kw0KPiA+ID4gJmdFZmlJbWFnZVNlY3VyaXR5RGF0YWJhc2VHdWlkLA0KPiA+ID4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICBJbWFnZSwNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg SW1hZ2VTaXplDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICk7DQo+ID4gPiA+ID4g PiA+ID4gPiArICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiA+ID4gPiA+ID4g KyAgICBERUJVRyAoKERFQlVHX0lORk8sICJGbXBEeGU6IFJlamVjdA0KPiA+ID4gY2Fwc3VsZSB3 aXRoIERCWA0KPiA+ID4gPiA+IGtleS5cbiIpKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgcmV0 dXJuIEVGSV9TRUNVUklUWV9WSU9MQVRJT047ICB9DQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiA+ID4gPiArICAvLyBEQiBjaGVjay4NCj4gPiA+ID4gPiA+ID4gPiA+ICsgIERFQlVH ICgoREVCVUdfSU5GTywgIkZtcER4ZTogVmVyaWZ5DQo+ID4gPiBjYXBzdWxlIHdpdGggREINCj4g PiA+ID4gPiA+ID4gPiA+ICtrZXkuXG4iKSk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBTdGF0dXMg PQ0KPiA+ID4gQ2hlY2tUaGVJbWFnZVdpdGhTZWN1cmVCb290VmFyaWFibGUoDQo+ID4gPiA+ID4g PiA+ID4gPiArDQo+IEVGSV9JTUFHRV9TRUNVUklUWV9EQVRBQkFTRSwNCj4gPiA+ID4gPiA+ID4g PiA+ICsNCj4gPiA+ICZnRWZpSW1hZ2VTZWN1cml0eURhdGFiYXNlR3VpZCwNCj4gPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgSW1hZ2UsDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAg ICAgIEltYWdlU2l6ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICApOw0KPiA+ID4g PiA+ID4gPiA+ID4gKyAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ID4gPiA+ID4gPiA+ICt9DQo+ID4g PiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiAgLyoqDQo+ID4gPiA+ID4gPiA+ID4g PiAgICBDaGVja3MgaWYgdGhlIGZpcm13YXJlIGltYWdlIGlzIHZhbGlkDQo+IGZvcg0KPiA+ID4g dGhlIGRldmljZS4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtNzI4 LDYgKzgyNCw3IEBAIENoZWNrVGhlSW1hZ2UgKA0KPiA+ID4gPiA+ID4gPiA+ID4gICAgVUlOVDgN Cj4gPiA+ICpQdWJsaWNLZXlEYXRhWGRyRW5kOw0KPiA+ID4gPiA+ID4gPiA+ID4gICAgRUZJX0ZJ Uk1XQVJFX0lNQUdFX0RFUA0KPiA+ID4gKkRlcGVuZGVuY2llczsNCj4gPiA+ID4gPiA+ID4gPiA+ ICAgIFVJTlQzMg0KPiA+ID4gRGVwZW5kZW5jaWVzU2l6ZTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsg IFVJTlQ4DQo+ID4gPiBBbGxvd1NlY3VyZUJvb3RLZXlzOw0KPiA+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiA+ICAgIFN0YXR1cyAgICAgICAgICAgPSBFRklfU1VDQ0VTUzsNCj4gPiA+ ID4gPiA+ID4gPiA+ICAgIFJhd1NpemUgICAgICAgICAgPSAwOw0KPiA+ID4gPiA+ID4gPiA+ID4g QEAgLTc4Miw5ICs4NzksMTUgQEAgQ2hlY2tUaGVJbWFnZSAoDQo+ID4gPiA+ID4gPiA+ID4gPiAg ICBQdWJsaWNLZXlEYXRhWGRyICAgID0gUGNkR2V0UHRyDQo+ID4gPiA+ID4gKFBjZEZtcERldmlj ZVBrY3M3Q2VydEJ1ZmZlclhkcik7DQo+ID4gPiA+ID4gPiA+ID4gPiAgICBQdWJsaWNLZXlEYXRh WGRyRW5kID0NCj4gUHVibGljS2V5RGF0YVhkciArDQo+ID4gPiBQY2RHZXRTaXplDQo+ID4gPiA+ ID4gPiA+ID4gPiAoUGNkRm1wRGV2aWNlUGtjczdDZXJ0QnVmZmVyWGRyKTsNCj4gPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAtICBpZiAoUHVibGljS2V5RGF0YVhkciA9PSBOVUxM IHx8DQo+ID4gPiAoUHVibGljS2V5RGF0YVhkciA9PQ0KPiA+ID4gPiA+ID4gPiA+ID4gUHVibGlj S2V5RGF0YVhkckVuZCkpIHsNCj4gPiA+ID4gPiA+ID4gPiA+IC0gICAgREVCVUcgKChERUJVR19F UlJPUiwgIkZtcER4ZSglcyk6DQo+ID4gPiBJbnZhbGlkIGNlcnRpZmljYXRlLCBza2lwcGluZw0K PiA+ID4gPiA+IGl0LlxuIiwNCj4gPiA+ID4gPiA+ID4gPiA+IG1JbWFnZUlkTmFtZSkpOw0KPiA+ ID4gPiA+ID4gPiA+ID4gLSAgICBTdGF0dXMgPSBFRklfQUJPUlRFRDsNCj4gPiA+ID4gPiA+ID4g PiA+ICsgIGlmIChQdWJsaWNLZXlEYXRhWGRyID09IE5VTEwgfHwNCj4gPiA+IChQdWJsaWNLZXlE YXRhWGRyRW5kIC0NCj4gPiA+ID4gPiA+ID4gPiA+ICsgUHVibGljS2V5RGF0YVhkcg0KPiA+ID4g PiA+ID4gPiA+ID4gPCBzaXplb2YgKFVJTlQzMikpKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAg IEFsbG93U2VjdXJlQm9vdEtleXMgPSBQY2RHZXQ4DQo+ID4gPiA+ID4gPiA+IChQY2RGbXBEZXZp Y2VBbGxvd1NlY3VyZUJvb3RLZXlzKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgaWYgKEFsbG93 U2VjdXJlQm9vdEtleXMpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICBERUJVRyAoKERFQlVH X0lORk8sICJGbXBEeGU6IFVzZQ0KPiA+ID4gc2VjdXJlIGJvb3QgY2VydHMuXG4iKSk7DQo+ID4g PiA+ID4gPiA+ID4gPiArICAgICAgU3RhdHVzID0NCj4gPiA+IENoZWNrVGhlSW1hZ2VXaXRoU2Vj dXJlQm9vdEtleXMgKEltYWdlLA0KPiA+ID4gPiA+IEltYWdlU2l6ZSk7DQo+ID4gPiA+ID4gPiA+ ID4gPiArICAgIH0gZWxzZSB7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgREVCVUcgKChERUJV R19FUlJPUiwgIkZtcER4ZSglcyk6DQo+ID4gPiBJbnZhbGlkIGNlcnRpZmljYXRlLA0KPiA+ID4g PiA+ID4gPiA+ID4gKyBza2lwcGluZw0KPiA+ID4gPiA+ID4gPiA+ID4gaXQuXG4iLCBtSW1hZ2VJ ZE5hbWUpKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICBTdGF0dXMgPSBFRklfQUJPUlRFRDsN Cj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gICAgfSBlbHNlIHsN Cj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgLy8NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgLy8gVHJ5 IGVhY2gga2V5IGZyb20NCj4gPiA+IFBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZlclhkciBkaWZm DQo+ID4gPiA+ID4gPiA+ID4gPiAtLWdpdCBhL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmgN Cj4gPiA+ID4gPiA+ID4gPiA+IGIvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuaA0KPiA+ID4g PiA+ID4gPiBpbmRleA0KPiA+ID4gPiA+ID4gPiA+ID4gMzA3NTRkZS4uNzJhNmNlNiAxMDA2NDQN Cj4gPiA+ID4gPiA+ID4gPiA+IC0tLSBhL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmgNCj4g PiA+ID4gPiA+ID4gPiA+ICsrKyBiL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmgNCj4gPiA+ ID4gPiA+ID4gPiA+IEBAIC0zNCw2ICszNCw3IEBADQo+ID4gPiA+ID4gPiA+ID4gPiAgI2luY2x1 ZGUNCj4gPFByb3RvY29sL0Zpcm13YXJlTWFuYWdlbWVudC5oPg0KPiA+ID4gI2luY2x1ZGUNCj4g PiA+ID4gPiA+ID4gPiA+IDxQcm90b2NvbC9GaXJtd2FyZU1hbmFnZW1lbnRQcm9ncmVzcy5oPg0K PiA+ID4gPiA+ID4gPiA+ID4gICNpbmNsdWRlIDxQcm90b2NvbC9WYXJpYWJsZUxvY2suaD4NCj4g PiA+ID4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8R3VpZC9JbWFnZUF1dGhlbnRpY2F0aW9uLmg+DQo+ ID4gPiA+ID4gPiA+ID4gPiAgI2luY2x1ZGUgPEd1aWQvU3lzdGVtUmVzb3VyY2VUYWJsZS5oPg0K PiA+ID4gI2luY2x1ZGUNCj4gPiA+ID4gPiA+ID4gPiA+IDxHdWlkL0V2ZW50R3JvdXAuaD4NCj4g PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+IGEvRm1wRGV2 aWNlUGtnL0ZtcER4ZS9GbXBEeGUuaW5mDQo+ID4gPiA+ID4gPiA+ID4gPiBiL0ZtcERldmljZVBr Zy9GbXBEeGUvRm1wRHhlLmluZiBpbmRleA0KPiA+ID4gZWViOTA0YS4uNjBiMDJkNA0KPiA+ID4g PiA+IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvRm1wRGV2aWNlUGtnL0ZtcER4ZS9G bXBEeGUuaW5mDQo+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9GbXBEZXZpY2VQa2cvRm1wRHhlL0Zt cER4ZS5pbmYNCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC01OCw2ICs1OCw4IEBADQo+ID4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gIFtHdWlkc10NCj4gPiA+ID4gPiA+ID4gPiA+ICAg IGdFZmlFbmRPZkR4ZUV2ZW50R3JvdXBHdWlkDQo+ID4gPiA+ID4gPiA+ID4gPiArICBnRWZpQ2Vy dFg1MDlHdWlkDQo+ID4gPiA+ID4gPiA+ID4gPiArICBnRWZpSW1hZ2VTZWN1cml0eURhdGFiYXNl R3VpZA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICBbUHJvdG9jb2xzXQ0K PiA+ID4gPiA+ID4gPiA+ID4gICAgZ0Vka2lpVmFyaWFibGVMb2NrUHJvdG9jb2xHdWlkDQo+ID4g PiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTc0LDYgKzc2LDcgQEANCj4gPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPg0KPiBnRm1wRGV2aWNlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRm1w RGV2aWNlUGtjczdDZXJ0QnVmZmVyWA0KPiA+ID4gZHINCj4gPiA+ID4gPiA+ID4gPiA+ICMjIENP TlNVTUVTDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiBnRm1wRGV2aWNl UGtnVG9rZW5TcGFjZUd1aWQuUGNkRm1wRGV2aWNlVGVzdEtleVNoYTI1NkRpZw0KPiA+ID4gZXN0 DQo+ID4gPiA+ID4gPiA+ID4gPiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ DQo+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VJbWFnZVR5cGVJZEd1 aWQNCj4gPiA+ID4gPiA+ID4gPiA+ICMjIENPTlNVTUVTDQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4NCj4gPiA+DQo+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZp Y2VBbGxvd1NlY3VyZUJvb3RLDQo+ID4gPiBleXMNCj4gPiA+ID4gPiA+ID4gPiA+ICMjIENPTlNV TUVTDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFRlc3RLZXlVc2VkDQo+ID4gPiA+ID4gIyMNCj4gPiA+ID4gPiA+ID4gPiA+IFNPTUVU SU1FU19QUk9EVUNFUw0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICBbRGVw ZXhdDQo+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL0ZtcERldmljZVBrZy9G bXBEeGUvRm1wRHhlTGliLmluZg0KPiA+ID4gPiA+ID4gPiA+ID4gYi9GbXBEZXZpY2VQa2cvRm1w RHhlL0ZtcER4ZUxpYi5pbmYNCj4gPiA+ID4gPiA+ID4gPiA+IGluZGV4IDlhOTNiNWUuLjEzMDhj YWUgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9GbXBEZXZpY2VQa2cvRm1wRHhlL0Zt cER4ZUxpYi5pbmYNCj4gPiA+ID4gPiA+ID4gPiA+ICsrKyBiL0ZtcERldmljZVBrZy9GbXBEeGUv Rm1wRHhlTGliLmluZg0KPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTc0LDYgKzc0LDcgQEANCj4gPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPg0KPiBnRm1wRGV2aWNlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRm1w RGV2aWNlUGtjczdDZXJ0QnVmZmVyWA0KPiA+ID4gZHINCj4gPiA+ID4gPiA+ID4gPiA+ICMjIENP TlNVTUVTDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiBnRm1wRGV2aWNl UGtnVG9rZW5TcGFjZUd1aWQuUGNkRm1wRGV2aWNlVGVzdEtleVNoYTI1NkRpZw0KPiA+ID4gZXN0 DQo+ID4gPiA+ID4gPiA+ID4gPiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ DQo+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VJbWFnZVR5cGVJZEd1 aWQNCj4gPiA+ID4gPiA+ID4gPiA+ICMjIENPTlNVTUVTDQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4NCj4gPiA+DQo+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZp Y2VBbGxvd1NlY3VyZUJvb3RLDQo+ID4gPiBleXMNCj4gPiA+ID4gPiA+ID4gPiA+ICMjIENPTlNV TUVTDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFRlc3RLZXlVc2VkDQo+ID4gPiA+ID4gIyMNCj4gPiA+ID4gPiA+ID4gPiA+IFNPTUVU SU1FU19QUk9EVUNFUw0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICBbRGVw ZXhdDQo+ID4gPiA+ID4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+ID4gPiA+ID4gMS44LjMuMQ0KPiA+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiANCj4gDQo+IA0K DQo=