From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.151; helo=mga17.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6A3D4211DDA3C for ; Sun, 24 Mar 2019 19:19:59 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Mar 2019 19:19:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,256,1549958400"; d="scan'208";a="310099066" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga005.jf.intel.com with ESMTP; 24 Mar 2019 19:19:58 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 24 Mar 2019 19:19:57 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.74]) by shsmsx102.ccr.corp.intel.com ([169.254.2.163]) with mapi id 14.03.0415.000; Mon, 25 Mar 2019 10:19:06 +0800 From: "Wu, Hao A" To: Laszlo Ersek , Ard Biesheuvel CC: "edk2-devel@lists.01.org" , "Justen, Jordan L" , "Ni, Ray" Thread-Topic: [PATCH v1 0/2] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg Thread-Index: AQHU2v72KKi1QVwWtUSZpr1S5QC+TqYMAyMAgAS5yyCAAzlegIABsszw//+29ACAAJV8AIAA71hggAABX4CAAARiAIAAFO6AgASsRdA= Date: Mon, 25 Mar 2019 02:19:06 +0000 Message-ID: References: <20190315071603.16936-1-hao.a.wu@intel.com> <2cef7754-a5ab-274e-44ab-14ba092f7d40@redhat.com> <8aecf13a-97d9-357d-b343-094f95f36f86@redhat.com> <746e3c63-6db6-ac1b-7b46-32e1aba99768@redhat.com> <5484c84a-cbaf-918d-d9fa-4888d85e6855@redhat.com> In-Reply-To: <5484c84a-cbaf-918d-d9fa-4888d85e6855@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v1 0/2] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Mar 2019 02:19:59 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogRnJpZGF5LCBNYXJjaCAyMiwgMjAxOSA2OjU2 IFBNDQo+IFRvOiBBcmQgQmllc2hldXZlbA0KPiBDYzogV3UsIEhhbyBBOyBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZzsgSnVzdGVuLCBKb3JkYW4gTDsgTmksIFJheQ0KPiBTdWJqZWN0OiBSZTogW1BB VENIIHYxIDAvMl0gT3ZtZjogU3RvcCB1c2luZyBJU0EgZHJpdmVycyB3aXRoaW4NCj4gSW50ZWxG cmFtZXdvcmtNb2R1bGVQa2cNCj4gDQo+IE9uIDAzLzIyLzE5IDEwOjQxLCBBcmQgQmllc2hldXZl bCB3cm90ZToNCj4gPiBPbiBGcmksIDIyIE1hciAyMDE5IGF0IDEwOjI1LCBMYXN6bG8gRXJzZWsg PGxlcnNla0ByZWRoYXQuY29tPiB3cm90ZToNCj4gPj4NCj4gPj4gT24gMDMvMjIvMTkgMDI6MzMs IFd1LCBIYW8gQSB3cm90ZToNCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ Pj4+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiA+Pj4+ IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjIsIDIwMTkgMzowNCBBTQ0KPiA+Pj4+IFRvOiBBcmQgQmll c2hldXZlbDsgV3UsIEhhbyBBDQo+ID4+Pj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBK dXN0ZW4sIEpvcmRhbiBMOyBOaSwgUmF5DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MSAw LzJdIE92bWY6IFN0b3AgdXNpbmcgSVNBIGRyaXZlcnMgd2l0aGluDQo+ID4+Pj4gSW50ZWxGcmFt ZXdvcmtNb2R1bGVQa2cNCj4gPj4+Pg0KPiA+Pj4+IE9uIDAzLzIxLzE5IDExOjA4LCBBcmQgQmll c2hldXZlbCB3cm90ZToNCj4gPj4+Pj4gT24gVGh1LCAyMSBNYXIgMjAxOSBhdCAwNzo0NCwgV3Us IEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+PiBKdXN0IGEgY291cGxlIG9mIG5vdGVzIGZyb20gbXkgc2lkZSAtIEknbSBz dXJlIExhc3psbyB3aWxsIGhhdmUgYQ0KPiBtdWNoDQo+ID4+Pj4+Pj4+PiBsb25nZXIgbGlzdCA6 LSkNCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiAtIERyb3BwaW5nIHRoZSBmbG9wcHkgZHJpdmVy IGlzIGZpbmUgd2l0aCBtZS4NCj4gPj4+Pj4+Pj4+IC0gV2hhdCBpcyBPVk1GIHNwZWNpZmljIGFi b3V0IHRoaXMgZHJpdmVyPyBJcyBpdCBvbmx5IHRoZSBoYXJkY29kZWQNCj4gPj4+Pj4+Pj4+IGxp c3Qgb2YgQ09NMS9DT00yL1BTMiBrZXlib2FyZD8gSWYgc28sIHNob3VsZCB3ZSBzcGxpdCB0aGlz IGludG8gYQ0KPiA+Pj4+Pj4+Pj4gZHJpdmVyIGFuZCBhIGxpYnJhcnkgY2xhc3MsIHdoZXJlIHRo ZSBkcml2ZXIgbGl2ZXMgaW4gTWRlTW9kdWxlUGtnLA0KPiA+Pj4+Pj4+Pj4gYW5kIHRoZSBsaWJy YXJ5IGlzIGltcGxlbWVudGVkIGluIHRoZSBjb250ZXh0IG9mIE9WTUY/DQo+ID4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+IEhlbGxvIEFyZCwNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gSSB0aGluayB0aGUg c3BlY2lhbCB0aGluZyBmb3IgdGhpcyBvbmUgaXMgdGhhdDoNCj4gPj4+Pj4+Pj4gRm9yIFFFTVUs IGl0IGRvZXMgbm90IGhhdmUgYSBTdXBlciBJL08gKFNJTykgY2hpcC4gV2hpbGUsIGFzIGZhciBh cyBJDQo+ID4+Pj4+Pj4+IGtub3csIHRoZSBTSU8gY2hpcCBleGlzdHMgb24gb3RoZXIgcGxhdGZv cm1zLiBUaGUgZHJpdmVyIHByb3Bvc2VkDQo+IGhlcmUNCj4gPj4+Pj4+Pj4gc2ltdWxhdGVzIHRo ZSBiZWhhdmlvciBvZiBhbiBTSU8gY2hpcC4gSU1PLCBpZiB3ZSBmaW5kIG1vcmUgcGxhdGZvcm1z DQo+ID4+Pj4gdGhhdA0KPiA+Pj4+Pj4+PiBkbyBub3QgaGF2ZSBhIFNJTyBjaGlwLCB3ZSBjYW4g Y29udmVydCB0aGUgZHJpdmVyIGludG8gYSBnZW5lcmFsIG9uZS4NCj4gPj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4gQWxzbywgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc2VydmljZXMgaW4gdGhl IFN1cGVyIEkvTyBwcm90b2NvbCwNCj4gPj4+Pj4+Pj4gdGhlIHByb3Bvc2VkIGRyaXZlciBqdXN0 IGRvZXMgdGhlIG1pbmltYWwgZWZmb3J0IGluIG9yZGVyIHRvIHN1cHBvcnQNCj4gdGhlDQo+ID4+ Pj4+Pj4+IHNlcmlhbC9QUzIga2V5Ym9hcmQuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBIZXJlJ3Mg d2h5IEknZCBsaWtlIHRoZSBtYWpvcml0eSBvZiB0aGlzIGRyaXZlciB0byBsaXZlIHVuZGVyDQo+ ID4+Pj4+Pj4gTWRlTW9kdWxlUGtnIChmb3IgZXhhbXBsZSB0aHJvdWdoIGEgbGliIGNsYXNzIHNl cGFyYXRpb24gbGlrZSBBcmQNCj4gPj4+PiBzdWdnZXN0cyk6DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ PiBCZWNhdXNlIHRoZW4gaXRzIG1haW50ZW5hbmNlIHdvdWxkIG5vdCBiZSB0aGUgcmVzcG9uc2li aWxpdHkgb2YNCj4gT3ZtZlBrZw0KPiA+Pj4+Pj4+IG1haW50YWluZXJzLg0KPiA+Pj4+Pj4+DQo+ ID4+Pj4+Pj4gQ29uc2lkZXIsIHRoaXMgZHJpdmVyIGlzIGFic29sdXRlbHkgaHVnZSAoMS41LTIg a0xPQyksIGZvciBkb2luZyAidGhlDQo+ID4+Pj4+Pj4gbWluaW1hbCBlZmZvcnQgaW4gb3JkZXIg dG8gc3VwcG9ydCB0aGUgc2VyaWFsL1BTMiBrZXlib2FyZCIuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ PiBUaGUgcmlzayBvZiByZWdyZXNzaW9ucyBpcyBleHRyZW1lICh0aGUgUFMvMiBrZXlib2FyZCBp cyB0aGUgZGVmYXVsdA0KPiA+Pj4+Pj4+IG9uZSwgYW5kIGlmIGl0IGJyZWFrcyAqc3VidGx5Kiwg YWxtb3N0IGFsbCB1c2VycyB3aWxsIGJlIGluY29udmVuaWVuY2VkLA0KPiA+Pj4+Pj4+IGJ1dCBu b3QgbmVjZXNzYXJpbHkgc29vbiBlbm91Z2ggZm9yIHVzIHRvIGdldCByZXBvcnRzIGFib3V0IGl0 ICplYXJseSoNCj4gPj4+Pj4+PiBpbiB0aGUgY3VycmVudCBkZXZlbG9wbWVudCBjeWNsZSkuDQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBJIHJlYWxpemUgdGhhdCBJbnRlbEZyYW1ld29ya01vZHVsZVBr Zy9CdXMvSXNhLyogZHJpdmVycyBhcmUgZnJvd25lZA0KPiA+Pj4+Pj4+IHVwb24gbm93YWRheXMs IHRoZXkgbWF5IGJlIHVnbHkgLyBwbGF0Zm9ybSBzcGVjaWZpYyAvIGV0YyBldGMgZXRjLCBidXQN Cj4gPj4+Pj4+PiB0aGV5IGhhdmUgYWxzbyBwcm92ZWQgdGhlbXNlbHZlcyB0byAqd29yayosIGFu ZCAoYXMgZmFyIGFzIEkNCj4gcmVtZW1iZXIpDQo+ID4+Pj4+Pj4gdGhleSBoYXZlIHJlcXVpcmVk IHByYWN0aWNhbGx5IHplcm8gZml4ZXMgaW4gb3JkZXIgdG8gZnVuY3Rpb24gd2VsbCBvbg0KPiBR RU1VLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSXQgaXMgdmVyeSB1bndlbGNvbWUgYnkgbWUgdG8g dGFrZSBvbiB0aGUgbWFpbnRlbmFuY2UgYnVyZGVuIGZvciBhDQo+ID4+Pj4+Pj4gZHJpdmVyIHRo YXQgaXMgYWxsIG9mOg0KPiA+Pj4+Pj4+IC0gbm90IHdpZGVseSB0ZXN0ZWQsDQo+ID4+Pj4+Pj4g LSByZXBsYWNpbmcgYSBwcm92ZW4gc2V0IG9mIGRyaXZlcnMgdGhhdCBpcyBjcml0aWNhbCB0byB1 c2VycywNCj4gPj4+Pj4+PiAtIGxhcmdlLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSSB1bmRlcnN0 YW5kIHRoYXQgSW50ZWwgd2FudHMgdG8gc3RvcCBtYWludGFpbmluZw0KPiA+Pj4+Pj4+IEludGVs RnJhbWV3b3JrTW9kdWxlUGtnL0J1cy9Jc2EvKiwgYnV0IHRoZSBhYm92ZSBwcmljZSBpcyB0b28g aGlnaA0KPiBmb3INCj4gPj4+PiBtZS4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IENvbXBhcmUgdGhl IGNhc2UgaWYgd2Ugc2ltcGx5IG1vdmVkIHRoZQ0KPiA+Pj4+Pj4+IEludGVsRnJhbWV3b3JrTW9k dWxlUGtnL0J1cy9Jc2EvKiBkcml2ZXJzIHVuZGVyIE92bWZQa2c6DQo+ID4+Pj4+Pj4gLSBzdGls bCBsYXJnZSwNCj4gPj4+Pj4+PiAtIGJ1dCB3aWRlbHkgdGVzdGVkICh3aXRoIG1pbmltYWwgY2h1 cm4gaW4gdGhlIHBhc3QpLA0KPiA+Pj4+Pj4+IC0gYW5kIG5vIHJpc2sgb2YgcmVncmVzc2lvbnMu DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBTbyBpbiB0aGlzIGZvcm0sIEknbSBnZW5lcmFsbHkgb3Bw b3NlZCB0byB0aGUgc3dpdGNoLiBUaGUgdHdvIHNldHMgb2YNCj4gPj4+Pj4+PiBkcml2ZXJzIG5l ZWQgdG8gY29leGlzdCBmb3IgYSB3aGlsZSwgYW5kIHdlIG11c3QgZXhwb3NlIHRoZSBuZXcNCj4g ZHJpdmVycw0KPiA+Pj4+Pj4+IHRvIHVzZXJzIHdoaWxlIHByb3ZpZGluZyB0aGVtIHdpdGggc29t ZSBzb3J0IG9mIGVhc3kgZmFsbGJhY2suIChJJ2QNCj4gPj4+Pj4+PiBwcmVmZXIgdGhhdCBmYWxs YmFjayB0byBiZSBkeW5hbWljYWxseSBjb25maWd1cmFibGUsIGJ1dCwgYWdhaW4sIGlmIHlvdXIN Cj4gPj4+Pj4+PiBrZXlib2FyZCBicmVha3MsIGhvdyBkbyB5b3UgaW50ZXJhY3Qgd2l0aCBlLmcu IHRoZSBVRUZJIHNoZWxsPyBTbyBJDQo+ID4+Pj4+Pj4gZ3Vlc3MgYSBzdGF0aWMgYnVpbGQgZmxh ZyB3b3VsZCBkbyBhcyB3ZWxsLikgSSB0aGluayB0aGUgb2xkIGRyaXZlcnMNCj4gPj4+Pj4+DQo+ ID4+Pj4+PiBIZWxsbyBMYXN6bG8sDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSSBhZ3JlZSB3aXRoIHlv dXIgcG9pbnQuIFNvIHlvdXIgc3VnZ2VzdGlvbiBpcyB0bzoNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAx LiBEdXBsaWNhdGUgdGhlIGJlbG93IGRyaXZlcnMgaW50byBPdm1mUGtnOg0KPiA+Pj4+Pj4gICBQ Y0F0Q2hpcHNldFBrZy9Jc2FBY3BpRHhlL0lzYUFjcGkuaW5mDQo+ID4+Pj4+PiAgIEludGVsRnJh bWV3b3JrTW9kdWxlUGtnL0J1cy9Jc2EvSXNhQnVzRHhlL0lzYUJ1c0R4ZS5pbmYNCj4gPj4+Pj4+ ICAgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cvQnVzL0lzYS9Jc2FTZXJpYWxEeGUvSXNhU2VyaWFs RHhlLmluZg0KPiA+Pj4+Pj4NCj4gSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cvQnVzL0lzYS9QczJL ZXlib2FyZER4ZS9QczJrZXlib2FyZER4ZS5pbmYNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAyLiBNZWFu d2hpbGUsIGFkZCB0aGUgcHJvcG9zZWQgU2lvQnVzRHhlIGRyaXZlciBpbiB0aGUgT3ZtZlBrZyBh cw0KPiB3ZWxsDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gMy4gQWRkIGEgc3RhdGljIGJ1aWxkIGZsYWcg d2l0aGluIE92bWZQa2cgdG8gbGV0IHVzZXJzIGNob29zZSBiZXR3ZWVuOg0KPiA+Pj4+Pj4gICAg YSkgTmV3IE9WTUYgU2lvQnVzRHhlIGRyaXZlciArIElTQSBkZXZpY2UgZHJpdmVycyB1bmRlcg0K PiA+Pj4+Pj4gICAgICAgTWRlTW9kdWxlUGtnL0J1cy9Jc2E7DQo+ID4+Pj4+PiAgICBiKSBMZWdh Y3kgSVNBIHN0YWNrIGNvcGllZCBmcm9tIFBjQXRDaGlwc2V0UGtnICYNCj4gPj4+PiBJbnRlbEZy YW1ld29ya01vZHVsZVBrZw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IElzIG15IHVuZGVyc3RhbmRpbmcg Y29ycmVjdD8NCj4gPj4+Pg0KPiA+Pj4+IFllcyAoYnV0IHNlZSBiZWxvdywgYXQgdGhlIGVuZCku DQo+ID4+Pj4NCj4gPj4+Pj4+PiBzaG91bGQgYmUgcmVtb3ZlZCBvbmx5IGluIHRoZSBlZGsyIHN0 YWJsZSB0YWcgdGhhdCBjb21lcyAqYWZ0ZXIqIHRoZQ0KPiA+Pj4+Pj4+IG5leHQgb25lLCBvbmNl IHdlJ3ZlIGdpdmVuIHRoZSBkcml2ZXJzIGVub3VnaCB0aW1lIHRvICJwcm92ZQ0KPiB0aGVtc2Vs dmVzIi4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBEbyB5b3UgbWVhbiB3ZSBzaG91bGQga2VlcCB0aGUg Y29weSBvZiB0aGUgbGVnYWN5IElTQSBzdGFjayBmcm9tDQo+ID4+Pj4+PiBQY0F0Q2hpcHNldFBr ZyAmIEludGVsRnJhbWV3b3JrTW9kdWxlUGtnIHVudGlsIHRoZSBhbm5vdW5jZW1lbnQgb2YNCj4g Pj4+Pj4+IGVkazItc3RhYmxlMjAxOTA1IHRhZz8NCj4gPj4+Pg0KPiA+Pj4+IFllcywgZXhhY3Rs eS4gUGVvcGxlIHRoYXQgYWRvcHQgImVkazItc3RhYmxlMjAxOTA1IiBzaG91bGQgYmUgYWJsZSB0 bw0KPiA+Pj4+IHN3aXRjaCBiYWNrIHRvIHRoZSBvbGQgZHJpdmVyIHN0YWNrLg0KPiA+Pj4+DQo+ ID4+Pj4gTkI6IEkgY2VydGFpbmx5IGFncmVlIHRoYXQgdGhlIG5ldyBjb2RlIHNob3VsZCBiZSBt YWRlIHRoZSAqZGVmYXVsdCouDQo+ID4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IEkg dGhpbmsgd2Ugc2hvdWxkIGp1c3Qga2VlcCB0aGUgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cgY29t cG9uZW50cyBpbg0KPiA+Pj4+PiBwbGFjZSB1bnRpbCB3ZSBhcmUgcmVhZHkgdG8gc3RvcCB1c2lu ZyB0aGVtIGluIE9WTUYuIENsb25pbmcgdGhlbSBpbnRvDQo+ID4+Pj4+IE92bWZQa2cgbm93IGp1 c3Qgc28gd2UgY2FuIHJlbW92ZSBJbnRlbEZyYW1ld29ya01vZHVsZVBrZyBpbiBpdHMNCj4gPj4+ Pj4gZW50aXJldHkgaGFzIGxpdHRsZSBhZGRlZCB2YWx1ZSBJTU8uDQo+ID4+Pj4NCj4gPj4+PiBJ IGZ1bGx5IGFncmVlIHdpdGggdGhpcyBtb2RpZmljYXRpb24gKGl0IG1pbmltaXplcyB0aGUgY2h1 cm4pLCBidXQgSSdtDQo+ID4+Pj4gdW5zdXJlIGhvdyBxdWlja2x5IEludGVsIHdvdWxkIGxpa2Ug dG8gcmlkIHRoZW1zZWx2ZXMgb2YNCj4gPj4+PiBJbnRlbEZyYW1ld29ya01vZHVsZVBrZy4gSWYg dGhlaXIgZGVhZGxpbmUgaXMgZWRrMi1zdGFibGUyMDE5MDUsIHRoZW4NCj4gPj4+PiB0aGF0IGNv bmZsaWN0cyB3aXRoIG15IHJlcXVlc3QgYWJvdmUsIGFuZCB3ZSBtaWdodCBoYXZlIG5vIGNob2lj ZSBpbg0KPiA+Pj4+IG1vdmluZyB0aGUgY29kZSB0byBPdm1mUGtnLCBmb3IgdGhlIHNha2Ugb2Yg b25lIG1vcmUgc3RhYmxlIHRhZy4NCj4gPj4+DQo+ID4+PiBIZWxsbyBMYXN6bG8gYW5kIEFyZCwN Cj4gPj4+DQo+ID4+PiBIb3cgYWJvdXQgdGhlIGJlbG93IGFwcHJvYWNoOg0KPiA+Pj4NCj4gPj4+ IDEuICBLZWVwIHRoZSBjdXJyZW50IElTQSBzdGFjayBpbiBPdm1mOg0KPiA+Pj4gICBQY0F0Q2hp cHNldFBrZy9Jc2FBY3BpRHhlL0lzYUFjcGkuaW5mDQo+ID4+PiAgIEludGVsRnJhbWV3b3JrTW9k dWxlUGtnL0J1cy9Jc2EvSXNhQnVzRHhlL0lzYUJ1c0R4ZS5pbmYNCj4gPj4+ICAgSW50ZWxGcmFt ZXdvcmtNb2R1bGVQa2cvQnVzL0lzYS9Jc2FTZXJpYWxEeGUvSXNhU2VyaWFsRHhlLmluZg0KPiA+ Pj4gICBJbnRlbEZyYW1ld29ya01vZHVsZVBrZy9CdXMvSXNhL1BzMktleWJvYXJkRHhlL1BzMmtl eWJvYXJkRHhlLmluZg0KPiA+Pj4NCj4gPj4+IDIuICBBZGQgdGhlIHByb3Bvc2VkIFNpb0J1c0R4 ZSBkcml2ZXIgaW4gdGhlIE92bWZQa2cuDQo+ID4+Pg0KPiA+Pj4gMy4gIEFkZCBhIHN0YXRpYyBi dWlsZCBmbGFnIHdpdGhpbiBPdm1mUGtnIHRvIGxldCB1c2VycyBjaG9vc2UgYmV0d2VlbjoNCj4g Pj4+ICAgIGEpIE5ldyBPVk1GIFNpb0J1c0R4ZSBkcml2ZXIgKyBJU0EgZGV2aWNlIGRyaXZlcnMg dW5kZXINCj4gPj4+ICAgICAgIE1kZU1vZHVsZVBrZy9CdXMvSXNhOw0KPiA+Pj4gICAgYikgT3Jp Z2luIElTQSBzdGFjayAodGhlIFBjQXRDaGlwc2V0UGtnICYgSW50ZWxGcmFtZXdvcmtNb2R1bGVQ a2cgb25lKTsNCj4gPj4+ICAgIGMpIERlZmF1bHQgYmVoYXZpb3Igd2lsbCBiZSB1c2luZyB0aGUg c3RhY2sgbWVudGlvbmVkIGluIGEpLg0KPiA+Pj4NCj4gPj4+IDRhLiBJZiB0aGUgcmVtb3ZhbCBv ZiBQY0F0Q2hpcHNldFBrZy9Jc2FBY3BpRHhlICYNCj4gSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cN Cj4gPj4+ICAgICBjb21lcyBiZWZvcmUgdGhlIGVkazItc3RhYmxlMjAxOTA1IHRhZywgY29weSB0 aGUgZHJpdmVycyBpbiAxLiBpbnRvDQo+ID4+PiAgICAgT3ZtZlBrZy4NCj4gPj4+DQo+ID4+PiA0 Yi4gSWYgdGhlIHJlbW92YWwgb2YgUGNBdENoaXBzZXRQa2cvSXNhQWNwaUR4ZSAmDQo+IEludGVs RnJhbWV3b3JrTW9kdWxlUGtnDQo+ID4+PiAgICAgY29tZXMgYWZ0ZXIgdGhlIGVkazItc3RhYmxl MjAxOTA1IHRhZywgZHJvcCB0aGUNCj4gPj4+ICAgICBQY0F0Q2hpcHNldFBrZy9JbnRlbEZyYW1l d29ya01vZHVsZVBrZyBJU0Egc3RhY2sgaW4gT1ZNRiB0b2dldGhlcg0KPiB3aXRoDQo+ID4+PiAg ICAgdGhlIHJlbW92YWwgb2YgUGNBdENoaXBzZXRQa2cvSXNhQWNwaUR4ZSAmIEludGVsRnJhbWV3 b3JrTW9kdWxlUGtnLg0KPiA+Pj4NCj4gPj4+IFdoYXQgZG8geW91IHRoaW5rIG9mIHRoZSBhYm92 ZSBzdHJhdGVneT8gVGhhbmtzLg0KPiA+Pg0KPiA+PiBJdCBzb3VuZHMgZXhhY3RseSByaWdodCB0 byBtZS4NCj4gPj4NCj4gPj4gVGhlIGltcG9ydGFudCB0aGluZyBpcyB0aGF0ICJlZGsyLXN0YWJs ZTIwMTkwNSIgYmUgcmVsZWFzZWQgd2l0aCB0aGUgbmV3DQo+ID4+IHN0dWZmIChTaW9CdXNEeGUg KyBNZGVNb2R1bGVQa2cvQnVzL0lzYSkgYXMgdGhlIGRlZmF1bHQgZHJpdmVyIHN0YWNrIGluDQo+ ID4+IE9WTUYsIGJ1dCB3aXRoIGFuIGVhc3kgYnVpbGQgb3B0aW9uIGZvciB1c2VycyB0byByZXZl cnQgdG8gdGhlIG9sZCBzdGFjay4NCj4gPj4NCj4gPj4gKEFuZCBpZiB0aGV5IGZlZWwgZm9yY2Vk IHRvIGV4ZXJjaXNlIHRoYXQgb3B0aW9uLCB0aGV5IHNob3VsZCByZXBvcnQgaXQNCj4gPj4gdG8g dXMsIHNvIHdlIGNhbiBtYWtlIGFuIGluZm9ybWVkIGRlY2lzaW9uIGFib3V0IGRyb3BwaW5nIHRo ZSBvbGQgc3RhY2sNCj4gPj4gZm9yIGdvb2QgaW4gdGhlIHN0YWJsZSByZWxlYXNlIHRoYXQgZm9s bG93cyAiZWRrMi1zdGFibGUyMDE5MDUiLikNCj4gPj4NCj4gPj4gQm90aCAoNGEpIGFuZCAoNGIp IGVuc3VyZSB0aGlzLCBzbyB0aGUgcGxhbiBsb29rcyBnb29kIHRvIG1lLg0KPiA+Pg0KPiA+DQo+ ID4gSSB0aGluayA0YSBpcyBwb2ludGxlc3M6IGl0IHBlcm1pdHMgSW50ZWxGcmFtZXdvcmtNb2R1 bGVQa2cvIHRvIGJlDQo+ID4gcmVtb3ZlZCwgYnV0IHRoZSBleGFjdCBzYW1lIGNvZGUgbGl2ZXMg b24gdW5kZXIgT3ZtZlBrZy8uIFNvIGlmIHRoZQ0KPiA+IGludGVudCBpcyB0byByZW1vdmUgSW50 ZWxGcmFtZXdvcmtNb2R1bGVQa2cgZW50aXJlbHksIHRoaXMgb25seQ0KPiA+IGFjaGlldmVzIGl0 IGluIGEgdmVyeSBidXJlYXVjcmF0aWMgc2Vuc2UsIHdpdGggZXh0cmEgY2h1cm4gaW4gdGhlDQo+ ID4gT3ZtZlBrZyBmb3Igbm8gb3RoZXIgcmVhc29uIHRoYW4gdG8gbWFrZSB0aGUgZGF0ZXMgb24g eW91ciBidWd6aWxsYQ0KPiA+IGVudHJpZXMgbG9vayBnb29kLg0KPiANCj4gSSB0aGluayB0aGF0 J3MgYW4gYWNjdXJhdGUgY2hhcmFjdGVyaXphdGlvbiA6KQ0KPiANCj4gPiBTbyBJIHN0cm9uZ2x5 IGZhdm91ciBrZWVwaW5nIEludGVsRnJhbWV3b3JrTW9kdWxlUGtnIGFyb3VuZCAob3IgYXQNCj4g PiBsZWFzdCB0aGUgcGllY2VzIE9WTUYgZGVwZW5kcyBvbikgdW50aWwgd2UgYXJlIHJlYWR5IHRv IHN0b3AgdXNpbmcgaXQNCj4gPiBhbHRvZ2V0aGVyLiBBbnl0aGluZyBiZXlvbmQgdGhhdCBvbmx5 IHNhdGlzZmllcyBhcnRpZmljaWFsIHByb2Nlc3MNCj4gPiBuZWVkcyByYXRoZXIgdGhhbiB0ZWNo bmljYWwgbmVlZHMuDQo+IA0KPiBBZ3JlZWQgb24gYm90aCBjb3VudHM7ICg0YikgaXMgbXVjaCBi ZXR0ZXIuDQoNCkFncmVlLg0KSSB3aWxsIHBvc3QgYSBWMiBzZXJpZXMgZm9sbG93aW5nIHRoZSBk aXJlY3Rpb24gZGVzY3JpYmVkIGJ5Og0KMSwgMiwgMywgNGEuDQoNCkJlc3QgUmVnYXJkcywNCkhh byBXdQ0KDQo+IA0KPiBUaGFua3MsDQo+IExhc3psbw0K