From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web11.639.1579417424113979828 for ; Sat, 18 Jan 2020 23:03:44 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: zhichao.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jan 2020 23:03:43 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,337,1574150400"; d="scan'208";a="269942497" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga001.fm.intel.com with ESMTP; 18 Jan 2020 23:03:43 -0800 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sat, 18 Jan 2020 23:03:43 -0800 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX603.ccr.corp.intel.com (10.109.6.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 19 Jan 2020 15:03:41 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Sun, 19 Jan 2020 15:03:41 +0800 From: "Gao, Zhichao" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Yao, Jiewen" , "Wang, Jian J" , "Zhang, Chao B" , "Justen, Jordan L" , Ard Biesheuvel , =?utf-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= , Stefan Berger Subject: Re: [edk2-devel] [PATCH 06/13] OvmfPkg/Tcg2PhysicalPresenceLib: Use pcd for user response wait time Thread-Topic: [edk2-devel] [PATCH 06/13] OvmfPkg/Tcg2PhysicalPresenceLib: Use pcd for user response wait time Thread-Index: AQHVwkEGNXeMdD+h5UCt3nCGRejLx6frblLQgAYxcPA= Date: Sun, 19 Jan 2020 07:03:41 +0000 Message-ID: References: <20200103030428.28176-1-zhichao.gao@intel.com> <20200103030428.28176-7-zhichao.gao@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Return-Path: zhichao.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQpTb3JyeSBmb3IgbWlzdW5kZXJzdGFuZGluZyB0aGUgbG9naWMgaW4gcmVh ZCBrZXkgZnVuY3Rpb24uIFRoYXQgbWFrZXMgdGhlIGluY29ycmVjdCBhbmFseXNpcy4NClRoZSBy ZWFkIGtleSBmdW5jdGlvbiBpcyB3YWl0aW5nIGZvciAic3BlY2lmaWMiIGtleSBwcmVzcyBub3Qg YSBrZXkgcHJlc3MuIFdlIHNob3VsZCBkcm9wIGFsbCB0aGUgb3RoZXIgcHJlc3Npbmcta2V5Lg0K VGhhdCBtZWFucyB3ZSBzaG91bGQgY3JlYXRlIGEgaG90a2V5IHNlcnZpY2UgbGlrZSBCRFMgb25l LiBJdCBpcyBub3Qgc2ltcGxlLiBJIHRoaW5rIHRoYXQgaXMgd2h5IHRoZSBvcmlnaW5hbCB1c2Ug dGhlIGJ1c3kgbG9vcC4NCkkgZG9uJ3QgdGhpbmsgaXQgbWFrZXMgc2Vuc2UgdG8gcG9ydCB0aGUg ZnVuY3Rpb24gZnJvbSBCRFMgZm9yIHN1Y2ggYSBzaW1wbGUgZnVuY3Rpb24uIElmIHRoZXJlIGlz IGEgcmVxdWlyZW1lbnQgZm9yIHRoZSBob3Qga2V5IHNlcnZpY2UgdG8gYmUgcHVibGljIGFuZCBj b21tb24sIGl0IG1ha2VzIHNlbnNlLg0KU28gSSBwcmVmZXIgdG8ga2VlcCB0aGUgb3JpZ2luYWwg YnVzeSBsb29wIGluc3RlYWQgb2YgcG9ydGluZyBob3Qga2V5IHNlcnZpY2UuDQoNClRoYW5rcywN ClpoaWNoYW8NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHYW8sIFpo aWNoYW8NCj4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDE1LCAyMDIwIDQ6MDMgUE0NCj4gVG86 ICdMYXN6bG8gRXJzZWsnIDxsZXJzZWtAcmVkaGF0LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEoN Cj4gPGppYW4uai53YW5nQGludGVsLmNvbT47IFpoYW5nLCBDaGFvIEIgPGNoYW8uYi56aGFuZ0Bp bnRlbC5jb20+OyBKdXN0ZW4sDQo+IEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29t PjsgQXJkIEJpZXNoZXV2ZWwNCj4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBNYXJjLUFu ZHLDqSBMdXJlYXUNCj4gPG1hcmNhbmRyZS5sdXJlYXVAcmVkaGF0LmNvbT47IFN0ZWZhbiBCZXJn ZXIgPHN0ZWZhbmJAbGludXguaWJtLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBb UEFUQ0ggMDYvMTNdIE92bWZQa2cvVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWI6DQo+IFVzZSBwY2Qg Zm9yIHVzZXIgcmVzcG9uc2Ugd2FpdCB0aW1lDQo+IA0KPiBIaSBMYXN6bG8sDQo+IA0KPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86 bGVyc2VrQHJlZGhhdC5jb21dDQo+ID4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDMsIDIwMjAgMTA6 MjEgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgWmhpY2hhbyA8emhpY2hh by5nYW9AaW50ZWwuY29tPg0KPiA+IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5j b20+OyBXYW5nLCBKaWFuIEoNCj4gPiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgWmhhbmcsIENo YW8gQiA8Y2hhby5iLnpoYW5nQGludGVsLmNvbT47DQo+ID4gSnVzdGVuLCBKb3JkYW4gTCA8am9y ZGFuLmwuanVzdGVuQGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4gPGFyZC5iaWVzaGV1 dmVsQGxpbmFyby5vcmc+OyBNYXJjLUFuZHLDqSBMdXJlYXUNCj4gPiA8bWFyY2FuZHJlLmx1cmVh dUByZWRoYXQuY29tPjsgU3RlZmFuIEJlcmdlcg0KPiA8c3RlZmFuYkBsaW51eC5pYm0uY29tPg0K PiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIDA2LzEzXQ0KPiBPdm1mUGtnL1Rj ZzJQaHlzaWNhbFByZXNlbmNlTGliOg0KPiA+IFVzZSBwY2QgZm9yIHVzZXIgcmVzcG9uc2Ugd2Fp dCB0aW1lDQo+ID4NCj4gPiBIZWxsbyBaaGljaGFvLA0KPiA+DQo+ID4gT24gMDEvMDMvMjAgMDQ6 MDQsIEdhbywgWmhpY2hhbyB3cm90ZToNCj4gPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFu b2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDQzDQo+ID4gPg0KPiA+ID4gVXNlIHRoZSBwY2Qg UGNkUGh5c2ljYWxQcmVzZW5jZVVzZXJDb25maXJtVGltZW91dCB0byBjb250cm9sIHRoZQ0KPiA+ ID4gd2FpdCB0aW1lIG9mIHVzZXIgcmVzcG9uc2UuDQo+ID4gPg0KPiA+ID4gQ2M6IEppZXdlbiBZ YW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+ID4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+DQo+ID4gPiBDYzogQ2hhbyBaaGFuZyA8Y2hhby5iLnpoYW5nQGludGVs LmNvbT4NCj4gPiA+IENjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29t Pg0KPiA+ID4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gPiBDYzog QXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ID4gPiBDYzogTWFy Yy1BbmRyw6kgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QHJlZGhhdC5jb20+DQo+ID4gPiBDYzog U3RlZmFuIEJlcmdlciA8c3RlZmFuYkBsaW51eC5pYm0uY29tPg0KPiA+ID4gU2lnbmVkLW9mZi1i eTogWmhpY2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4g IC4uLi9EeGVUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYi5jICAgICAgICAgICAgICB8IDYzICsrKysr KysrKysrKysrLS0tLS0NCj4gPiA+ICAuLi4vRHhlVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuaW5m ICAgICAgICAgICAgfCAgNiArLQ0KPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9u cygrKSwgMTcgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4NCj4g Pg0KPiBhL092bWZQa2cvTGlicmFyeS9UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYlFlbXUvRHhlVGNn MlBoeXNpY2FsUHJlc2VuYw0KPiA+IGVMDQo+ID4gPiBpYi5jDQo+ID4gPg0KPiA+DQo+IGIvT3Zt ZlBrZy9MaWJyYXJ5L1RjZzJQaHlzaWNhbFByZXNlbmNlTGliUWVtdS9EeGVUY2cyUGh5c2ljYWxQ cmVzZW5jDQo+ID4gZUwNCj4gPiA+IGliLmMNCj4gPiA+IGluZGV4IDAwZDc2YmEyYzIuLjEzZjc4 Y2JmYWMgMTAwNjQ0DQo+ID4gPiAtLS0NCj4gPiA+DQo+ID4NCj4gYS9Pdm1mUGtnL0xpYnJhcnkv VGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJRZW11L0R4ZVRjZzJQaHlzaWNhbFByZXNlbmMNCj4gPiBl TA0KPiA+ID4gaWIuYw0KPiA+ID4gKysrDQo+ID4gYi9Pdm1mUGtnL0xpYnJhcnkvVGNnMlBoeXNp Y2FsUHJlc2VuY2VMaWJRZW11L0R4ZVRjZzJQaHlzaWNhbFByZXNlDQo+ID4gPiArKysgbmNlTGli LmMNCj4gPiA+IEBAIC05LDcgKzksNyBAQA0KPiA+ID4NCj4gPiA+ICBDb3B5cmlnaHQgKEMpIDIw MTgsIFJlZCBIYXQsIEluYy4NCj4gPiA+ICBDb3B5cmlnaHQgKGMpIDIwMTgsIElCTSBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPiAtQ29weXJpZ2h0IChjKSAyMDEz IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+IHJlc2VydmVkLjxC Uj4NCj4gPiA+ICtDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cw0KPiA+ID4gK3Jlc2VydmVkLjxCUj4NCj4gPiA+ICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4NCj4gPiA+ICAqKi8NCj4gPiA+IEBA IC0zMiw2ICszMiw4IEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ID4gPiAjaW5jbHVkZSA8TGlicmFyeS9VZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIuaD4N Cj4gPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9VZWZpTGliLmg+DQo+ID4gPiAgI2luY2x1ZGUgPExp YnJhcnkvVWVmaVJ1bnRpbWVTZXJ2aWNlc1RhYmxlTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExp YnJhcnkvVGltZXJMaWIuaD4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4g PiA+DQo+ID4gPiAgI2luY2x1ZGUgPExpYnJhcnkvVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuaD4N Cj4gPiA+DQo+ID4gPiBAQCAtMzY1LDI4ICszNjcsNTcgQEAgVGNnMlJlYWRVc2VyS2V5ICggIHsN Cj4gPiA+ICAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4g PiAgICBFRklfSU5QVVRfS0VZICAgICAgICAgICAgICAgICAgICAgS2V5Ow0KPiA+ID4gLSAgVUlO VDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElucHV0S2V5Ow0KPiA+ID4gKyAgVUlOVDE2 ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmZpcm1LZXk7DQo+ID4gPiArICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJ2YWw7DQo+ID4gPiArICBJTlQ2NCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGltZW91dDsNCj4gPiA+DQo+ID4gPiAtICBJbnB1dEtl eSA9IDA7DQo+ID4gPiArICAvLw0KPiA+ID4gKyAgLy8gZGVsYXkgMTAwIG1pbGxpLXNlY29uZA0K PiA+ID4gKyAgLy8NCj4gPiA+ICsgIEludGVydmFsICAgID0gMTAwOw0KPiA+ID4gKyAgQ29uZmly bUtleSAgPSAoQ2F1dGlvbktleSkgPyBTQ0FOX0YxMiA6IFNDQU5fRjEwOw0KPiA+ID4gKyAgVGlt ZW91dCAgICAgPSAoSU5UNjQpUGNkR2V0MzINCj4gPiAoUGNkUGh5c2ljYWxQcmVzZW5jZVVzZXJD b25maXJtVGltZW91dCk7DQo+ID4gPiArICBpZiAoVGltZW91dCA+IDApIHsNCj4gPiA+ICsgICAg VGltZW91dCAgID0gKElOVDY0KU11bHRVNjR4MzIgKChVSU5UNjQpVGltZW91dCwgMTAwMCk7DQo+ ID4gPiArICB9IGVsc2Ugew0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICAvLyBXYWl0IGZvcmV2 ZXINCj4gPiA+ICsgICAgLy8NCj4gPiA+ICsgICAgVGltZW91dCAgID0gTUFYX0lOVDY0Ow0KPiA+ ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIC8vIFdhaXQgZm9yIHVzZXIg cmVzcG9uc2Ugd2l0aGluIHRoZSB0aW1lLW91dCAgLy8NCj4gPiA+ICAgIGRvIHsNCj4gPiA+ICsg ICAgTWljcm9TZWNvbmREZWxheSAoSW50ZXJ2YWwgKiAxMDAwKTsNCj4gPiA+ICsNCj4gPiA+ICAg ICAgU3RhdHVzID0gZ0JTLT5DaGVja0V2ZW50IChnU1QtPkNvbkluLT5XYWl0Rm9yS2V5KTsNCj4g PiA+ICAgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ICAgICAgICBTdGF0dXMg PSBnU1QtPkNvbkluLT5SZWFkS2V5U3Ryb2tlIChnU1QtPkNvbkluLCAmS2V5KTsNCj4gPiA+IC0g ICAgICBpZiAoS2V5LlNjYW5Db2RlID09IFNDQU5fRVNDKSB7DQo+ID4gPiAtICAgICAgICBJbnB1 dEtleSA9IEtleS5TY2FuQ29kZTsNCj4gPiA+IC0gICAgICB9DQo+ID4gPiAtICAgICAgaWYgKChL ZXkuU2NhbkNvZGUgPT0gU0NBTl9GMTApICYmICFDYXV0aW9uS2V5KSB7DQo+ID4gPiAtICAgICAg ICBJbnB1dEtleSA9IEtleS5TY2FuQ29kZTsNCj4gPiA+IC0gICAgICB9DQo+ID4gPiAtICAgICAg aWYgKChLZXkuU2NhbkNvZGUgPT0gU0NBTl9GMTIpICYmIENhdXRpb25LZXkpIHsNCj4gPiA+IC0g ICAgICAgIElucHV0S2V5ID0gS2V5LlNjYW5Db2RlOw0KPiA+ID4gKyAgICAgIGlmICghRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQo+ID4gPiArICAgICAgICBpZiAoS2V5LlNjYW5Db2RlID09IENvbmZp cm1LZXkpIHsNCj4gPiA+ICsgICAgICAgICAgLy8NCj4gPiA+ICsgICAgICAgICAgLy8gVXNlciBD b25maXJtYXRpb24NCj4gPiA+ICsgICAgICAgICAgLy8NCj4gPiA+ICsgICAgICAgICAgcmV0dXJu IFRSVUU7DQo+ID4gPiArICAgICAgICB9DQo+ID4gPiArDQo+ID4gPiArICAgICAgICBpZiAoS2V5 LlNjYW5Db2RlID09IFNDQU5fRVNDKSB7DQo+ID4gPiArICAgICAgICAgIC8vDQo+ID4gPiArICAg ICAgICAgIC8vIFVzZXIgUmVqZWN0aW9uDQo+ID4gPiArICAgICAgICAgIC8vDQo+ID4gPiArICAg ICAgICAgIHJldHVybiBGQUxTRTsNCj4gPiA+ICsgICAgICAgIH0NCj4gPiA+ICsgICAgICB9IGVs c2UgaWYgKFN0YXR1cyA9PSBFRklfREVWSUNFX0VSUk9SKSB7DQo+ID4gPiArICAgICAgICAvLw0K PiA+ID4gKyAgICAgICAgLy8gSWYgZXJyb3IsIGFzc3VtZSBVc2VyIFJlamVjdGlvbg0KPiA+ID4g KyAgICAgICAgLy8NCj4gPiA+ICsgICAgICAgIHJldHVybiBGQUxTRTsNCj4gPiA+ICAgICAgICB9 DQo+ID4gPiAgICAgIH0NCj4gPiA+IC0gIH0gd2hpbGUgKElucHV0S2V5ID09IDApOw0KPiA+ID4g LQ0KPiA+ID4gLSAgaWYgKElucHV0S2V5ICE9IFNDQU5fRVNDKSB7DQo+ID4gPiAtICAgIHJldHVy biBUUlVFOw0KPiA+ID4gLSAgfQ0KPiA+ID4gKyAgICBUaW1lb3V0IC09IEludGVydmFsOw0KPiA+ ID4gKyAgfSB3aGlsZSAoVGltZW91dCA+IDApOw0KPiA+ID4NCj4gPiA+ICAgIHJldHVybiBGQUxT RTsNCj4gPiA+ICB9DQo+ID4NCj4gPiAoMSkgSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB0aGUgb3Jp Z2luYWwgKHByZS1wYXRjaCkgY29kZSB1c2VzDQo+ID4gQ2hlY2tFdmVudCgpIGluIGEgYnVzeSBs b29wLiBXYWl0Rm9yRXZlbnQoKSBsb29rcyBsaWtlIGEgYmV0dGVyIChtb3JlDQo+ID4gcmVzb3Vy Y2UtY29uc2VydmF0aXZlKSBvcHRpb24uDQo+ID4NCj4gPiBEb2VzIHRoZSBvcmlnaW5hbCBjb2Rl IHVzZSBDaGVja0V2ZW50KCkgYmVjYXVzZSBXYWl0Rm9yRXZlbnQoKSBpcw0KPiA+IHJlc3RyaWN0 ZWQgdG8gVFBMX0FQUExJQ0FUSU9OPw0KPiA+DQo+ID4gSSBkb24ndCB0aGluayB0aGF0IGJlaW5n IHJlc3RyaWN0ZWQgdG8gVFBMX0FQUExJQ0FUSU9OIHNob3VsZCBiZSBhDQo+IHByb2JsZW0uDQo+ ID4gQXMgZmFyIGFzIEkgY2FuIHRlbGwsIHRoZSBvbmx5IGNhbGwgcGF0aCB0byBUY2cyUmVhZFVz ZXJLZXkoKSBpczoNCj4gPg0KPiA+ICAgVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJQcm9jZXNzUmVx dWVzdCgpDQo+ID4gICAgIFRjZzJFeGVjdXRlUGVuZGluZ1RwbVJlcXVlc3QoKQ0KPiA+ICAgICAg IFRjZzJVc2VyQ29uZmlybSgpDQo+ID4gICAgICAgICBUY2cyUmVhZFVzZXJLZXkoKQ0KPiA+DQo+ ID4gSW4gdHVybiwgVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJQcm9jZXNzUmVxdWVzdCgpIGlzIHN1 cHBvc2VkIHRvIGJlDQo+ID4gY2FsbGVkIGZyb20gUGxhdGZvcm1Cb290TWFuYWdlckxpYiwgd2hp Y2ggaW4gdHVybiBpcyBjYWxsZWQgZnJvbSBCZHNEeGUuDQo+ID4gVGhlcmVmb3JlIEkgdGhpbmsg d2UgY2FuIHNhZmVseSBhc3N1bWUgVFBMX0FQUExJQ0FUSU9OLg0KPiA+DQo+ID4gSSB0aGluayB3 ZSBzaG91bGQgYWRkIGEgc2VwYXJhdGUgcGF0Y2ggZmlyc3QsIGZvciByZXdyaXRpbmcgdGhlDQo+ ID4gcHJlc2VudCBsb2dpYyBvZg0KPiA+IFRjZzJSZWFkVXNlcktleSgpIHdpdGggV2FpdEZvckV2 ZW50KCkgLS0gcmVtb3ZlIHRoZSBidXN5IGxvb3AuDQo+ID4NCj4gPg0KPiA+ICgyKSBPbmNlIHdl IHVzZSBXYWl0Rm9yRXZlbnQoKSwgaXQgaXMgZWFzaWVyIGFuZCBtb3JlIGVsZWdhbnQgdG8gdXNl IGENCj4gPiB0aW1lciBldmVudCwgaW4gYWRkaXRpb24gdG8gImdTVC0+Q29uSW4tPldhaXRGb3JL ZXkiLCB0byBsaW1pdCB0aGUNCj4gPiB3YWl0aW5nIGZvciBhIGtleXByZXNzLg0KPiA+DQo+ID4g Rm9yIGV4YW1wbGUsIHRoZSBCZHNXYWl0Rm9yU2luZ2xlRXZlbnQoKSBmdW5jdGlvbiBpbg0KPiA+ ICJNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jIiBpcyB1c2VkIGZvciBp bXBsZW1lbnRpbmcNCj4gYQ0KPiA+IHRpbWVkIHdhaXQgZm9yIGEgaG90a2V5LCBpZiBJIHVuZGVy c3RhbmQgY29ycmVjdGx5Lg0KPiA+DQo+ID4NCj4gPiAoMykgSSB0aGluayB0aGF0IHRoZSBUY2cy UmVhZFVzZXJLZXkoKSBmdW5jdGlvbiBzaG91bGQgdGFrZSB0aGUNCj4gPiB0aW1lb3V0IHBhcmFt ZXRlciwgYW5kIHRoZSBQQ0Qgc2hvdWxkIGJlIGNvbnN1bWVkIGluIHRoZQ0KPiA+IFRjZzJVc2Vy Q29uZmlybSgpIGZ1bmN0aW9uIGluc3RlYWQuIFRjZzJVc2VyQ29uZmlybSgpIHNob3VsZCBwYXNz IHRoZQ0KPiA+IHZhbHVlIG9mIHRoZSBQQ0QgdG8gVGNnMlJlYWRVc2VyS2V5KCkuDQo+ID4NCj4g PiBUaGUgUENEIGlzIGNhbGxlZCAiUGNkUGh5c2ljYWxQcmVzZW5jZVVzZXJDb25maXJtVGltZW91 dCIsIHRoZXJlZm9yZQ0KPiA+IGl0IHNlZW1zIG1vcmUgY2xvc2VseSB0aWVkIHRvIHRoZSBUY2cy VXNlckNvbmZpcm0oKSBmdW5jdGlvbiwgaW4gcHVycG9zZS4NCj4gPiBUaGUgVGNnMlJlYWRVc2Vy S2V5KCkgZnVuY3Rpb24gc2VlbXMgdG8gYmUgYSBnZW5lcmFsIHV0aWxpdHkgZnVuY3Rpb24sDQo+ ID4gc28gaXQgc2hvdWxkIHRha2UgYSBwYXJhbWV0ZXIsIHJhdGhlciB0aGFuIGZldGNoIGEgcGFy dGljdWxhciBQQ0QuDQo+ID4NCj4gPg0KPiA+ICg0KSBUaGUgY29tbWVudCBibG9jayBvbiB0aGUg VGNnMlJlYWRVc2VyS2V5KCkgZnVuY3Rpb24gc2hvdWxkIGJlDQo+ID4gdXBkYXRlZC4NCj4gDQo+ IFRoYW5rcyBmb3IgdGhlIHN1Z2dlc3Rpb24uIEl0IG1heSBtYWtlIHNlbnNlIHRvIGFkanVzdCB0 aGUgcmVhZCBrZXkgbG9naWMuDQo+IExldCBtZSB3b3JrIG91dCB0aGUgcGF0Y2ggYW5kIGRvIHNv bWUgdGVzdCBvZiBpdC4gVGhlIGZ1bmN0aW9uIGlzIGludGVybmFsLCBpdCBpcw0KPiBmaW5lIHRv IGNoYW5nZSBpdCBhbmQgd29uJ3QgYWZmZWN0IGFueSBvdGhlciBpbnRlcmZhY2UuDQo+IA0KPiA+ DQo+ID4NCj4gPiAoNSkgUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IHlvdSBmb3JtYXQgdGhlIHBhdGNo ZXMgbmV4dCB0aW1lIHdpdGggdGhlDQo+ID4gIi0tc3RhdD0xMDAwIC0tc3RhdC1ncmFwaC13aWR0 aD0yMCIgb3B0aW9ucy4gVGhlIHBhdGhuYW1lcyBvZiB0aGUNCj4gPiBmaWxlcyB0aGF0IGFyZSBt b2RpZmllZCBieSB0aGlzIHBhdGNoIHNldCBhcmUgdmVyeSBsb25nLCBhbmQgdGhleSBhcmUNCj4g PiB0cnVuY2F0ZWQgaW4gdGhlIGRpZmZzdGF0cy4gVGhhdCB3YXksIHRoZSBkaWZmc3RhdCBpcyBu b3QgaGVscGZ1bC4NCj4gPg0KPiA+IFRoZSAiQmFzZVRvb2xzL1NjcmlwdHMvU2V0dXBHaXQucHki IHNjcmlwdCBjYW4gYXV0b21hdGUgYXQgbGVhc3QgdGhlDQo+ID4gIi0tc3RhdC0gZ3JhcGgtd2lk dGg9MjAiIG9wdGlvbiBmb3IgeW91Lg0KPiA+DQo+IA0KPiBGaW5lLiBXaWxsIGRvIHRoYXQuDQo+ IA0KPiA+DQo+ID4gKDYpIFdoZW4gcG9zdGluZyBzZXZlcmFsIHBhdGNoZXMsIG9yIGxhcmdlIHBh dGNoZXMsIGl0IGlzIGhlbHBmdWwgZm9yDQo+ID4gcmV2aWV3ZXJzIGlmIHlvdSBhbHNvIHB1c2gg eW91ciB0b3BpYyBicmFuY2ggdG8geW91ciBsb2NhbCByZXBvLCBhbmQNCj4gPiBleHBvc2UgdGhl IGNvcnJlc3BvbmRpbmcgVVJMIC8gYnJhbmNoIG5hbWUgaW4gdGhlIGNvdmVyIGxldHRlci4gU29t ZQ0KPiA+IHBhdGNoZXMgYXJlIGVhc2llciB0byByZXZpZXcgbG9jYWxseSAoYWZ0ZXIgYSBnaXQt ZmV0Y2ggZnJvbSB5b3VyIHJlcG8pLg0KPiANCj4gVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbi4g V291bGQgZm9sbG93IHRoYXQgaWYgSSB3b3JrIG9uIGEgYmlnIHBhdGNoLg0KPiANCj4gPg0KPiA+ DQo+ID4gKDcpIEkgZG9uJ3Qga25vdyB3aGF0IGhhcHBlbmVkLCBidXQgSSBjYW4gc2VlIG9ubHkg cGF0Y2gjMCBhbmQgcGF0Y2gjNg0KPiA+IGZyb20gdGhpcyBzZXJpZXMgaW4gbXkgbGlzdCBmb2xk ZXIuIFRoZXJlIGFyZSBtdWx0aXBsZSBsaWIgaW5zdGFuY2VzDQo+ID4gYmVpbmcgbW9kaWZpZWQs IGFuZCBJIGNvdWxkbid0IGNvbXBhcmUgdGhlIGNoYW5nZXMgYmV0d2VlbiB0aG9zZS4NCj4gDQo+ IEkgd291bGQgc2VwYXJhdGUgdGhlIHBhdGNoIGludG8gc2ltcGxlIG9uZXMuIFRoZSB1c2VyIGNv bmZpcm0gY2hhbmdlIGlzDQo+IGluZGVwZW5kZW50IGFuZCBpdCB3b3VsZCBiZSBhIHNpbXBsZSBw YXRjaCBsYXRlci4NCj4gDQo+IFRoYW5rcywNCj4gWmhpY2hhbw0KPiANCj4gPg0KPiA+IFRoYW5r cw0KPiA+IExhc3psbw0KDQo=