From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: jian.j.wang@intel.com) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by groups.io with SMTP; Tue, 21 May 2019 06:03:01 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 May 2019 06:03:00 -0700 X-ExtLoop1: 1 Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by FMSMGA003.fm.intel.com with ESMTP; 21 May 2019 06:03:00 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 21 May 2019 06:03:00 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 21 May 2019 06:02:59 -0700 Received: from shsmsx107.ccr.corp.intel.com ([169.254.9.7]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.136]) with mapi id 14.03.0415.000; Tue, 21 May 2019 21:02:58 +0800 From: "Wang, Jian J" To: "devel@edk2.groups.io" , "lersek@redhat.com" , "ard.biesheuvel@linaro.org" CC: "Lu, XiaoyuX" , "Ye, Ting" , "Leif Lindholm" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v4 0/7] CryptoPkg: Upgrade OpenSSL to 1.1.1b Thread-Topic: [edk2-devel] [PATCH v4 0/7] CryptoPkg: Upgrade OpenSSL to 1.1.1b Thread-Index: AQHVC7zVpOxy6Zdx1EC7bPrPXOKPO6Zti+mAgAE3ZtCAAAFKAIAAA2yAgAAehYCABEop8IACCNxw//+QiICAAIa7YP//sZiAgACI94A= Date: Tue, 21 May 2019 13:02:57 +0000 Message-ID: References: <1557993298-22205-1-git-send-email-xiaoyux.lu@intel.com> <049e489c-b58f-0fc5-1c66-8ad920d93979@redhat.com> <0a6b50d4-3837-a5e6-7f3a-36386c65d42b@redhat.com> <75b13a2a-f570-97e9-a7df-5e24b2a2b22c@redhat.com> <15A0408CA29C0595.820@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjc3ZDhjM2YtMTJlZS00NjFhLWEwOWMtZTRmOWU2ZGVlZjNiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiNzc5Rmk4NzhqQ0JZeTNIK3d2aUNSZ0tWa29QdXlZOTl0QVhyZVM0ejdTQk9JS3hXMFRUejkrbjMreEZtWDM1MyJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: jian.j.wang@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLA0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24gQmVoYWxmIE9m DQo+IExhc3psbyBFcnNlaw0KPiBTZW50OiBUdWVzZGF5LCBNYXkgMjEsIDIwMTkgODoyNCBQTQ0K PiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsNCj4gYXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZw0KPiBDYzogTHUsIFhpYW95dVgg PHhpYW95dXgubHVAaW50ZWwuY29tPjsgWWUsIFRpbmcgPHRpbmcueWVAaW50ZWwuY29tPjsgTGVp Zg0KPiBMaW5kaG9sbSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPjsgR2FvLCBMaW1pbmcgPGxp bWluZy5nYW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2 NCAwLzddIENyeXB0b1BrZzogVXBncmFkZSBPcGVuU1NMIHRvIDEuMS4xYg0KPiANCj4gSGksDQo+ IA0KPiBPbiAwNS8yMS8xOSAxMTowOSwgV2FuZywgSmlhbiBKIHdyb3RlOg0KPiA+IEFyZCwNCj4g Pg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbyBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYgT2YNCj4g QXJkDQo+ID4+IEJpZXNoZXV2ZWwNCj4gPj4gU2VudDogVHVlc2RheSwgTWF5IDIxLCAyMDE5IDU6 MDIgUE0NCj4gPj4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ PiBDYzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5j b20+OyBMdSwgWGlhb3l1WA0KPiA+PiA8eGlhb3l1eC5sdUBpbnRlbC5jb20+OyBZZSwgVGluZyA8 dGluZy55ZUBpbnRlbC5jb20+OyBMZWlmIExpbmRob2xtDQo+ID4+IDxsZWlmLmxpbmRob2xtQGxp bmFyby5vcmc+OyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4+IFN1Ympl Y3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0IDAvN10gQ3J5cHRvUGtnOiBVcGdyYWRlIE9w ZW5TU0wgdG8NCj4gMS4xLjFiDQo+ID4+DQo+ID4+IE9uIFR1ZSwgMjEgTWF5IDIwMTkgYXQgMDk6 NDMsIFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPj4+DQo+ ID4+PiBIaSBBcmQsDQo+ID4+Pg0KPiA+Pj4gQW55IGNvbW1lbnRzPw0KPiA+Pj4NCj4gPj4+IFJl Z2FyZHMsDQo+ID4+PiBKaWFuDQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsy Lmdyb3Vwcy5pb10gT24gQmVoYWxmIE9mDQo+ID4+IFdhbmcsDQo+ID4+Pj4gSmlhbiBKDQo+ID4+ Pj4gU2VudDogTW9uZGF5LCBNYXkgMjAsIDIwMTkgOTo0MSBBTQ0KPiA+Pj4+IFRvOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzsgYXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZzsgTGFzemxvIEVyc2VrDQo+ ID4+Pj4gPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+IENjOiBMdSwgWGlhb3l1WCA8eGlhb3l1 eC5sdUBpbnRlbC5jb20+OyBZZSwgVGluZyA8dGluZy55ZUBpbnRlbC5jb20+Ow0KPiBMZWlmDQo+ ID4+Pj4gTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz47IEdhbywgTGltaW5nIDxs aW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQ QVRDSCB2NCAwLzddIENyeXB0b1BrZzogVXBncmFkZSBPcGVuU1NMIHRvDQo+ID4+IDEuMS4xYg0K PiA+Pj4+DQo+ID4+Pj4gQXJkLA0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gW21haWx0 bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24gQmVoYWxmDQo+IE9mDQo+ID4+IEFyZA0KPiA+Pj4+ PiBCaWVzaGV1dmVsDQo+ID4+Pj4+IFNlbnQ6IEZyaWRheSwgTWF5IDE3LCAyMDE5IDExOjA2IFBN DQo+ID4+Pj4+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+PiBD YzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vw cy5pbzsgTHUsDQo+ID4+IFhpYW95dVgNCj4gPj4+Pj4gPHhpYW95dXgubHVAaW50ZWwuY29tPjsg WWUsIFRpbmcgPHRpbmcueWVAaW50ZWwuY29tPjsgTGVpZiBMaW5kaG9sbQ0KPiA+Pj4+PiA8bGVp Zi5saW5kaG9sbUBsaW5hcm8ub3JnPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29t Pg0KPiA+Pj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NCAwLzddIENyeXB0 b1BrZzogVXBncmFkZSBPcGVuU1NMIHRvDQo+ID4+Pj4gMS4xLjFiDQo+ID4+Pj4+DQo+ID4+Pj4+ IE9uIEZyaSwgMTcgTWF5IDIwMTkgYXQgMTU6MTcsIExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhh dC5jb20+IHdyb3RlOg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IE9uIDA1LzE3LzE5IDE1OjA0LCBMYXN6 bG8gRXJzZWsgd3JvdGU6DQo+ID4+Pj4+Pj4gT24gMDUvMTcvMTkgMDc6MTEsIFdhbmcsIEppYW4g SiB3cm90ZToNCj4gPj4+Pj4+Pj4gSGkgTGFzemxvLA0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBU aGVyZSdzIGFscmVhZHkgYSBmbG9hdCBsaWJyYXJ5IHVzZWQgaW4gT3BlbnNzbExpYi5pbmYuDQo+ ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFtMaWJyYXJ5Q2xhc3Nlcy5BUk1dDQo+ID4+Pj4+Pj4+ICAg QXJtU29mdEZsb2F0TGliDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFRoZSBwcm9ibGVtIGlzIHRo YXQgdGhlIGJlbG93IGluc3RhbmNlIGRvZXNuJ3QgaW1wbGVtZW50DQo+ID4+IF9fYWVhYmlfdWky ZA0KPiA+Pj4+Pj4+PiBhbmQgX19hZWFiaV9kMnVpeiAoSSBlbmNvdW50ZXJlZCB0aGlzIG9uZSBh cyB3ZWxsKQ0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiAgIEFybVBrZ1xMaWJyYXJ5XEFybVNvZnRG bG9hdExpYlxBcm1Tb2Z0RmxvYXRMaWIuaW5mDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEkgdGhp bmsgd2UgY2FuIHVwZGF0ZSB0aGlzIGxpYnJhcnkgc3VwcG9ydCB0aG9zZSB0d28gQVBJcy4gU28g d2hhdA0KPiA+PiBhYm91dA0KPiA+Pj4+Pj4+PiB3ZSBzdGlsbCBwdXNoIHRoZSBwYXRjaCBhbmQg ZmlsZSBhIEJaIHRvIGZpeCB0aGlzIGlzc3VlPw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSSdtIE9L IHdpdGggdGhhdCwgYnV0IGl0IHdpbGwgYnJlYWsgQVJNIGFuZCBBQVJDSDY0IHBsYXRmb3JtcyB0 aGF0DQo+ID4+Pj4+Pj4gY29uc3VtZSBPcGVuc3NsTGliIChkaXJlY3RseSBvciB0aHJvdWdoIEJh c2VDcnlwdExpYiksIHNvIHRoaXMgcXVlc3Rpb24NCj4gPj4+Pj4+PiBpcyB1cCB0byBMZWlmIGFu ZCBBcmQgdG8gZGVjaWRlLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IENvcnJlY3Rpb246IGJyZWFrIEFS TSBwbGF0Zm9ybXMgb25seSwgbm90IEFBUkNINjQuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+ PiBXZSBvYnZpb3VzbHkgbmVlZCB0byBmaXggdGhpcyBiZWZvcmUgd2UgY2FuIHVwZ3JhZGUgdG8g YSBuZXcgT3BlblNTTA0KPiA+PiB2ZXJzaW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBEbyB3ZSByZWFs bHkgaGF2ZSBhIG5lZWQgZm9yIHRoZSByYW5kb20gZnVuY3Rpb25zPyBUaGVzZSBzZWVtIHRoZSBv bmx5DQo+ID4+Pj4+IG9uZXMgdGhhdCB1c2UgZmxvYXRpbmcgcG9pbnQsIHdoaWNoIHRoZSBVRUZJ IHNwZWMgZG9lcyBub3QgcGVybWl0LCBzbw0KPiA+Pj4+PiBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYg d2UgY291bGQgZml4IHRoaXMgYnkgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgb24NCj4gPj4+Pj4g RlAgaW4gdGhlIGZpcnN0IHBsYWNlIChhbmQgZ2V0IHJpZCBvZiBBcm1Tb2Z0RmxvYXRMaWIgZW50 aXJlbHkpDQo+ID4+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBCYXNlQ3J5cHRMaWIgcHJvdmlkZXMgUmFu ZFNlZWQvUmFuZEJ5dGVzIGludGVyZmFjZSB3aGljaCB3cmFwIG9wZW5zc2wNCj4gPj4gcmFuZA0K PiA+Pj4+IGZ1bmN0aW9uYWxpdGllcy4gVGhlc2UgaW50ZXJmYWNlcyBhcmUgdXNlZCBieSBmb2xs b3dpbmcgY29tcG9uZW50cyBpbiBlZGsyDQo+ID4+Pj4NCj4gPj4+PiAgIC0gQ3J5cHRvUGtnXExp YnJhcnlcVGxzTGliXFRsc0luaXQuYw0KPiA+Pj4+ICAgLSBTZWN1cml0eVBrZ1xIZGRQYXNzd29y ZFxIZGRQYXNzd29yZER4ZS5jDQo+ID4+Pj4NCj4gPj4+PiBPcGVuc3NsIGNvbXBvbmVudHMsIGxp a2UgYXNuMSwgYm4sIGV2cCwgb2NzcCwgcGVtLCBwa2NzNywgcGtjczEyLCByc2EsIHNzbA0KPiAo aW4NCj4gPj4+PiBhZGRpdGlvbg0KPiA+Pj4+IHRvIGNtcywgZHNhLCBzcnAsIHdoaWNoIGFyZSBk aXNhYmxlZCBpbiBlZGsyKSB3aWxsIGNhbGwgcmFuZF8qIGludGVyZmFjZSBhcw0KPiB3ZWxsLg0K PiA+Pj4+DQo+ID4+DQo+ID4+IElmIHdlIGhhdmUgYm90aCBpbnRlcm5hbCAodG8gT3BlbnNzbCkg YW5kIGV4dGVybmFsIHVzZXJzIG9mIHRoZSBSTkcNCj4gPj4gYXBpLCB0aGVuIEkgZ3Vlc3MgdGhl cmUgaXMgbm8gd2F5IHRvIHdvcmsgYXJvdW5kIHRoaXMuIEl0IGlzDQo+ID4+IHVuZm9ydHVuYXRl LCBzaW5jZSB0aGUgUk5HIGNvZGUgaW4gT3BlblNTTCBkb2Vzbid0IGFjdHVhbGx5IHVzZSBkb3Vi bGUNCj4gPj4gdHlwZXMgZXhjZXB0IGZvciBrZWVwaW5nIGFuIGVudHJvcHkgY291bnQsIHdoaWNo IGNvdWxkIGp1c3QgYXMgZWFzaWx5DQo+ID4+IGJlIGtlcHQgaW4gYW4gaW50ZWdlciB2YXJpYWJs ZS4NCj4gDQo+ICgxKSBJIHRoaW5rIEkgYWdyZWUuLi4gSG93ZXZlciwgaXQgc2VlbXMgdGhhdCB0 aGUgZmlyc3QgZnVuY3Rpb24gKG9yIG9uZQ0KPiBvZiB0aGUgZmlyc3QgZnVuY3Rpb25zKSBpbiBP cGVuU1NMIHRvIHRha2UgYW4gImVudHJvcHkiIHBhcmFtZXRlciwgb2YNCj4gdHlwZSAiZG91Ymxl Iiwgd2FzIFJBTkRfYWRkKCkuIEFuZCB0aGUgUkFORF9hZGQoKSBtYW51YWwgc3RhdGVzLA0KPiAN Cj4gICAgICAgIFJBTkRfYWRkKCkgbWl4ZXMgdGhlIG51bSBieXRlcyBhdCBidWYgaW50byB0aGUg UFJORyBzdGF0ZS4NCj4gICAgICAgIFRodXMsIGlmIHRoZSBkYXRhIGF0IGJ1ZiBhcmUgdW5wcmVk aWN0YWJsZSB0byBhbiBhZHZlcnNhcnksDQo+ICAgICAgICB0aGlzIGluY3JlYXNlcyB0aGUgdW5j ZXJ0YWludHkgYWJvdXQgdGhlIHN0YXRlIGFuZCBtYWtlcyB0aGUNCj4gICAgICAgIFBSTkcgb3V0 cHV0IGxlc3MgcHJlZGljdGFibGUuIFN1aXRhYmxlIGlucHV0IGNvbWVzIGZyb20gdXNlcg0KPiAg ICAgICAgaW50ZXJhY3Rpb24gKHJhbmRvbSBrZXkgcHJlc3NlcywgbW91c2UgbW92ZW1lbnRzKSBh bmQgY2VydGFpbg0KPiAgICAgICAgaGFyZHdhcmUgZXZlbnRzLiBUaGUgZW50cm9weSBhcmd1bWVu dCBpcyAodGhlIGxvd2VyIGJvdW5kIG9mKQ0KPiAgICAgICAgYW4gZXN0aW1hdGUgb2YgaG93IG11 Y2ggcmFuZG9tbmVzcyBpcyBjb250YWluZWQgaW4gYnVmLA0KPiAgICAgICAgbWVhc3VyZWQgaW4g Ynl0ZXMuIERldGFpbHMgYWJvdXQgc291cmNlcyBvZiByYW5kb21uZXNzIGFuZCBob3cNCj4gICAg ICAgIHRvIGVzdGltYXRlIHRoZWlyIGVudHJvcHkgY2FuIGJlIGZvdW5kIGluIHRoZSBsaXRlcmF0 dXJlLCBlLmcuDQo+ICAgICAgICBSRkMgMTc1MC4NCj4gDQo+IEkndmUgbm93IGxvb2tlZCB1cCBS RkMgMTc1MCwgYW5kIGl0IGNvbnRhaW5zIGNvcGlvdXMgYW1vdW50cyBvZiBtYXRoIG9uDQo+IGly cmF0aW9uYWwgbnVtYmVycy4gSGVuY2UgdGhlIHVzZSBvZiBmbG9hdGluZyBwb2ludCBpbiBPcGVu U1NMLCBJJ2QgZ3Vlc3MuDQo+IA0KPiAgIGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMxNzUw LnR4dA0KPiANCj4gLi4uIEFmdGVyIGRpZ2dpbmcgYSBiaXQgaW4gdGhlIE9wZW5TU0wgZ2l0IGhp c3RvcnksIEkndmUgZm91bmQgdGhlDQo+IGZvbGxvd2luZyBjb21taXQgKGZyb20gMTkgeWVhcnMg YWdvKToNCj4gDQo+IGNvbW1pdCA4NTNmNzU3ZWNlYTc0YTI3MWE3YzVjZGVlM2YzYjVmZTBkM2Fl ODYzDQo+IEF1dGhvcjogQm9kbyBNw7ZsbGVyIDxib2RvQG9wZW5zc2wub3JnPg0KPiBEYXRlOiAg IFNhdCBGZWIgMTkgMTU6MjI6NTMgMjAwMCArMDAwMA0KPiANCj4gICAgIEFsbG93IGZvciBoaWdo ZXIgZ3JhbnVsYXJpdHkgb2YgZW50cm9weSBlc3RpbWF0ZXMgYnkgdXNpbmcgJ2RvdWJsZScNCj4g ICAgIGluc3RlYWQgb2YgJ3Vuc2lnbmVkJyBjb3VudGVycy4NCj4gICAgIFNlZWQgUFJORyBpbiBN YWNPUy9HZXRIVFRQUy5zcmMvR2V0SFRUUFMuY3BwLg0KPiANCj4gICAgIFBhcnRpYWxseSBzdWJt aXR0ZWQgYnkgWW9yYW0gTWVyb3ogPHlvcmFtQG1haWwuaWRyaXZlLmNvbT4uDQo+IA0KPiBJdCB3 YXMgdGhlIGNvbW1pdCB3aXRoDQo+IA0KPiAtdm9pZCBSQU5EX2FkZChjb25zdCB2b2lkICpidWYs aW50IG51bSxpbnQgZW50cm9weSk7DQo+ICt2b2lkIFJBTkRfYWRkKGNvbnN0IHZvaWQgKmJ1Zixp bnQgbnVtLGRvdWJsZSBlbnRyb3B5KTsNCj4gDQo+IEZXSVcsIHRoZSAiUFJORyIgcmVmZXJlbmNl IGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1pdCBtZXNzYWdlIHNlZW1zDQo+IG1lYW5pbmdsZXNzLiBD aGVjayBmb3IgeW91cnNlbGY6DQo+IA0KPiAkIGdpdCBzaG93IDg1M2Y3NTdlY2VhNzpNYWNPUy9H ZXRIVFRQUy5zcmMvR2V0SFRUUFMuY3BwDQo+IA0KPiBUaGUgZmFjdCB0aGF0ICJlbnRyb3B5IiBp cyBub3cgb2YgdHlwZSAiZG91YmxlIiBkb2VzIG5vdCBzZWVtIHRvIGJlIHB1dA0KPiB0byB1c2Us IGFueXdoZXJlIGluIHRoYXQgZmlsZS4NCj4gDQo+IEknbGwgc2VuZCBhIHF1ZXJ5IHRvIHRoZSBv cGVuc3NsLXVzZXJzIG1haWxpbmcgbGlzdCwganVzdCBzbyB3ZQ0KPiB1bmRlcnN0YW5kIGJldHRl ci4NCj4gDQo+IA0KDQpUaGF0J3MgYSBnb29kIGRpZ2dpbmcuIFRoYW5rcyBmb3IgZG9pbmcgdGhp cy4NCg0KPiA+PiBTbyB3ZSB3aWxsIG5lZWQgdG8gZml4IEFybVNvZnRGbG9hdExpYiBiZWZvcmUg d2UgY2FuIG1lcmdlIHRoaXMNCj4gPj4gT3BlblNTTCB1cGRhdGUuDQo+IA0KPiAoMikgTkIsIEkg dGhpbmsgd2UgY2FuIG5vIGxvbmdlciBtZXJnZSB0aGlzIGZlYXR1cmUgZm9yDQo+IGVkazItc3Rh YmxlMjAxOTA1LiBUaGUgc29mdCBmZWF0dXJlIGZyZWV6ZSBjcml0ZXJpb24gaXMgdGhhdCBhbGwg cGF0Y2hlcw0KPiBiZSByZXZpZXdlZCAoYXBwcm92ZWQpIG9uLWxpc3QgYmVmb3JlIHRoZSBTRkYg ZGF0ZSAvIGFubm91bmNlbWVudCwgYW5kDQo+IHRoYXQgd2FzIG5vdCBmdWxmaWxsZWQgaW4gdGhp cyBjYXNlLg0KPiANCg0KWW91J3JlIHJpZ2h0LiBCdXQgd2Ugc3RpbGwgbmVlZCB0byBjb21wbGV0 ZSB0aGUgdXBncmFkZSBBU0FQIGFmdGVyIHN0YWJsZSB0YWcuDQpUaGVyZSdyZSBzZXZlcmFsIG90 aGVyIGZlYXR1cmVzIHBlbmRpbmcgb24gaXQuDQoNCj4gDQo+ID4+IEknbSBoYXBweSB0byBoZWxw IGRvaW5nIHRoYXQsIGNvdWxkIHlvdSBwbGVhc2UNCj4gPj4gc3VtbWFyaXplIHdoYXQgd2UgYXJl IG1pc3NpbmcgdG9kYXk/DQo+ID4+DQo+ID4NCj4gPiBHcmVhdC4gSSB0aGluayB0aGVyZSdyZSB0 d28gaW50cmluc2ljIGZ1bmN0aW9ucyBtaXNzaW5nIGhlcmUNCj4gPg0KPiA+ICAgX19hZWFiaV91 aTJkDQo+ID4gICBfX2FlYWJpX2QydWl6DQo+ID4NCj4gPiBMYXN6bG8sIHBsZWFzZSBkb3VibGUg Y2hlY2sgaWYgdGhlc2UgdHdvIGFyZSBlbm91Z2guDQo+IA0KPiAoMykgSSBjYW4gb25seSByZXBv cnQgdGhlIGZhaWx1cmUgdGhhdCB0cmlwcyB1cCB0aGUgYnVpbGQgZm9yIG1lLiBJIGRpZA0KPiB0 aGF0IGhlcmU6DQo+IA0KPiBodHRwOi8vbWlkLm1haWwtYXJjaGl2ZS5jb20vMDQ5ZTQ4OWMtYjU4 Zi0wZmM1LTFjNjYtDQo+IDhhZDkyMGQ5Mzk3OUByZWRoYXQuY29tDQo+IGh0dHBzOi8vZWRrMi5n cm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzQwODIzDQo+IA0KPiANCj4gVGh1cywgZm9yIG1lLCB0 aGUgbWlzc2luZyBzeW1ib2wgd2FzICJfX2FlYWJpX3VpMmQiLg0KPiANCj4gSXQncyBwb3NzaWJs ZSB0aGF0IHRoZSAzMi1iaXQgQVJNIGJ1aWxkIHdpbGwgZmFpbCBhdCBhIGRpZmZlcmVudCAobGF0 ZXIpDQo+IHN0YWdlIGFzIHdlbGwsIGJ1dCBJIGNhbid0IHRlbGwgdW50aWwgSSBnZXQgcGFzdCB0 aGlzIG9uZS4gKEFuZCBJIGRvbid0DQo+IHRoaW5rIEkgY2FuIGltcGxlbWVudCBhICJzaGltIiBm dW5jdGlvbiBmb3IgdGhlIG1pc3Npbmcgc3ltYm9sLCBqdXN0IHRvDQo+IGxldCB0aGUgYnVpbGQg cHJvZ3Jlc3MuKQ0KPiANCg0KSSBnb3QgX19hZWFiaV9kMnVpeiByZXBvcnRlZCBtaXNzaW5nLCBp biBhZGRpdGlvbiB0byBfX2FlYWJpX3VpMmQsIGlmDQpJIGJ1aWxkIHdpdGggY3Jvc3MtY29tcGls ZXIgYXJtLWxpbnV4LWdudWVhYmktZ2NjLTUuIFVzaW5nIGR1bW15DQppbXBsZW1lbnRhdGlvbnMg b2YgYm90aCB0aGVtIGNhbiBtYWtlIGJ1aWxkIHBhc3MuIEFueSBjaGFuY2VzIHRoZQ0KcmVhbCBp bXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBmdW5jdGlvbnMgY2F1c2Ugb3RoZXIgbWlzc2luZyBzeW1i b2w/DQoNClJlZ2FyZHMsDQpKaWFuDQoNCj4gVGhhbmtzLA0KPiBMYXN6bG8NCj4gDQo+ID4gVGhh bmtzIGZvciBkb2luZyB0aGlzLg0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBKaWFuDQo+ID4NCj4g Pj4NCj4gPg0KPiANCj4gDQo+IA0KDQo=