From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: marc.w.chen@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Wed, 05 Jun 2019 21:18:26 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jun 2019 21:18:24 -0700 X-ExtLoop1: 1 Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by fmsmga005.fm.intel.com with ESMTP; 05 Jun 2019 21:18:22 -0700 Received: from pgsmsx108.gar.corp.intel.com ([169.254.8.143]) by KMSMSX152.gar.corp.intel.com ([169.254.11.108]) with mapi id 14.03.0415.000; Thu, 6 Jun 2019 12:18:22 +0800 From: "Marc W Chen" To: "devel@edk2.groups.io" , "lersek@redhat.com" CC: "Justen, Jordan L" , Ard Biesheuvel , Anthony Perard , Julien Grall , =?utf-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= , Stefan Berger Subject: Re: [edk2-devel] [PATCH] OvmfPkg/QemuVideoDxe: Shouldn't assume system in VGA alias mode. Thread-Topic: [edk2-devel] [PATCH] OvmfPkg/QemuVideoDxe: Shouldn't assume system in VGA alias mode. Thread-Index: AQHVG4/VlNkF5gHYc0u2/aDnQzfHaKaMbzOAgAF2NzA= Date: Thu, 6 Jun 2019 04:18:21 +0000 Message-ID: References: <20190605111410.73564-1-marc.w.chen@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDJiN2YwZGUtYjNkOC00ZmVhLWE0ODktNmRjNWZmZGI5ZWI4IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidVRhR2tvczVIMVcwRzgyWXV4XC9pZVNcL01hais1Q0p0RDluMEpkSk9ZVmZrd2xuWTRpeWc2N3B6aUZIbFdBSXZKIn0= x-originating-ip: [172.30.20.205] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5p byBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYgT2YNCj4gTGFzemxvIEVy c2VrDQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSA1LCAyMDE5IDg6MDAgUE0NCj4gVG86IENoZW4s IE1hcmMgVyA8bWFyYy53LmNoZW5AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g Q2M6IEp1c3RlbiwgSm9yZGFuIEwgPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBBcmQgQmll c2hldXZlbA0KPiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IEFudGhvbnkgUGVyYXJkIDxh bnRob255LnBlcmFyZEBjaXRyaXguY29tPjsNCj4gSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxA YXJtLmNvbT47IE1hcmMtQW5kcsOpIEx1cmVhdQ0KPiA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQu Y29tPjsgU3RlZmFuIEJlcmdlciA8c3RlZmFuYkBsaW51eC5pYm0uY29tPg0KPiBTdWJqZWN0OiBS ZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gT3ZtZlBrZy9RZW11VmlkZW9EeGU6IFNob3VsZG4ndA0K PiBhc3N1bWUgc3lzdGVtIGluIFZHQSBhbGlhcyBtb2RlLg0KPiANCj4gT24gMDYvMDUvMTkgMTM6 MTQsIE1hcmMgVyBDaGVuIHdyb3RlOg0KPiA+IFF1ZXJ5IHRoZSBzdXBwb3J0ZWQgYXR0cmlidXRl cyBmaXJzdGx5LCB0aGVuIEFORCAoJiYpIGJvdGgNCj4gPiBWR0FfSU8gYW5kIFZHQV9JT18xNi4N Cj4gDQo+IEkgZG9uJ3QgdGhpbmsgeW91IG1lYW4gImxvZ2ljYWwgQU5EIiBhYm92ZS4NCj4gDQo+ IEFuZCBpZiB5b3UgbWVhbiAiYml0d2lzZSBBTkQiLCB0aGVuICImJiIgaXMgaW5jb3JyZWN0Lg0K DQpUaGFua3MgZm9yIHRoZSBmZWVkYmFjaywgeWVzLCBJIG1lYW4gImJpdHdpc2UgQU5EIiwgSSds bCBjb3JyZWN0IGl0IGluIG15IGNvbW1pdCBtZXNzYWdlLg0KPiANCj4gPiBTaW5jZSB0aGUgc3Vw cG9ydGVkIGF0dHJpYnV0ZXMgc2hvdWxkDQo+ID4gb25seSBoYXZlIFZHQV9JTyBvciBWR0FfSU9f MTYgc2V0LCB0aGUgcmVzdWx0IG9mIEFORCAoJiYpIGlzDQo+ID4gZWl0aGVyIFZHQV9JTyBvciBJ T18xNi4gVGhlbiB0aGUgcmVzdWx0IGNhbiBiZSBwYXNzZWQgdG8NCj4gPiBQY2lJby0+QXR0cmli dXRlcygpIHRvIHNldCB0aGUgYXR0cmlidXRlcy4NCj4gDQo+IEkgZG9uJ3QgdW5kZXJzdGFuZCB3 aGF0IHRoZSBwcm9ibGVtIGlzLg0KPiANCj4gSW4gZmFjdCwgZG8gd2UgaGF2ZSB0d28gcHJvYmxl bXM/IFN1Y2ggYXMsDQo+IA0KPiAoMSkgV2UgZG9uJ3QgY29uc2lkZXIgVkdBX0lPXzE2LCBvbmx5 IFZHQV9JTy4gQXJlIHlvdSBzYXlpbmcgdGhhdCB3ZQ0KPiBzaG91bGQgY29uc2lkZXIgYm90aCwg YW5kIChhdCB0aGUgc2FtZSB0aW1lKSBtYWtlIHN1cmUgdGhhdCBhdCBtb3N0IG9uZQ0KPiBpcyBz ZXQ/DQoNClllcywgd2Ugc2hvdWxkIGNvbnNpZGVyIGJvdGggc2luY2UgdGhlIG1SZXNlcnZlVmdh QWxpYXNlcyBpbiBQY2lCdXNEeGUgZHJpdmVyIGlzIGRlZmF1bHQgRkFMU0UoaW1wbGllcyB0aGF0 IGRldmljZSBkcml2ZXIgY2FuIG9ubHkgc2V0IFZHQV9JT18xNiB0byBQQ0lfUk9PVF9CUklER0Up LCBhbmQgUGxhdGZvcm0gY29kZSBtYXkgbm90IHJldHVybiBFRklfUkVTRVJWRV9WR0FfSU9fQUxJ QVMgaW4gR2V0UGxhdGZvcm1Qb2xpY3kgb2YgUGNpUGxhdGZvcm1Qcm90b2NvbCB0byBtYWtlIG1S ZXNlcnZlVmdhQWxpYXNlcyBiZWNvbWUgVFJVRShpbXBsaWVzIHRoYXQgZGV2aWNlIGRyaXZlciBj YW4gb25seSBzZXQgVkdBX0lPIHRvIFBDSV9ST09UX0JSSURHRSksIGN1cnJlbnRseSBPdm1mUGtn IGRvZXNuJ3QgaGF2ZSBpc3N1ZSBkdWUgdG8gaXQgaGFzIGhhcmQgY29kZSB2YWx1ZSBpbiBQQ0lf Uk9PVF9CUklER0UncyBhdHRyaWJ1dGUgZmllbGQsIHNvIGFuIElPIHJlYWQgYnkgUGNpSW9Qcm90 b2NvbCB3aWxsIGJlIHN1Y2Nlc3MgZHVlIHRvIFJvb3RCcmlkZ2VJb0NoZWNrUGFyYW1ldGVyIG9m IFBjaVJvb3RCcmlkZ2VJby5jIHdpbGwgYWx3YXlzIGdldCBwYXNzIHJlc3VsdCBmb3IgbGVnYWN5 IElPIGFjY2Vzcy4NCkJ1dCBpbiBvdXIgZGVzaWduKEVkazJQbGF0Zm9ybTpQbGF0Zm9ybVxJbnRl bFxNaW5QbGF0Zm9ybVBrZyksIHdlIG9ubHkgc2V0IFN1cHBvcnRzIGZpZWxkIG9mIFBDSV9ST09U X0JSSURHRSwgYW5kIGtlZXAgQXR0cmlidXRlcyBmaWVsZCBvZiBQQ0lfUk9PVF9CUklER0UgYXMg MCwgYW5kIGxldCBkZXZpY2UgZHJpdmVyIHRvIHVwZGF0ZSB0aGUgYXR0cmlidXRlIG9mIFBDSV9S T09UX0JSSURHRSBmb3IgSU8gYWNjZXNzaW5nLCBpbiB0aGF0IGNhc2UsIGlmIEJJT1MgZG9lc24n dCByZXR1cm4gRUZJX1JFU0VSVkVfVkdBX0lPX0FMSUFTIGluIEdldFBsYXRmb3JtUG9saWN5IG9m IFBjaVBsYXRmb3JtUHJvdG9jb2wsIHRoZW4gb25seSBWR0FfSU9fMTYgY2FuIGJlIGVuYWJsZWQg YnkgZGV2aWNlIGRyaXZlciwgc28gdGhpcyBRZW11VmlkZW9Ecml2ZXIgZmFpbGVkIHRvIGRvIElP IGFjY2VzcyBpbiBvdXIgY2FzZS4NCkkgYmVsaWV2ZSBpZiB5b3UgY2hhbmdlIHRoZSBBdHRyaWJ1 dGVzIGZpbGVkIG9mIFBDSV9ST09UX0JSSURHRSBvZiBPdm1mUGtnIHRvIDAsIHRoZW4geW91IHNo b3VsZCBiZSBhYmxlIHRvIHNlZSB0aGUgaXNzdWUuDQo+IA0KPiAoMikgV2UgZG9uJ3QgY2hlY2sg d2hldGhlciBWR0FfSU8qIGlzIHN1cHBvcnRlZCwgd2UganVzdCBnbyBhaGVhZCBhbmQNCj4gZW5h YmxlIHRoZW0uIEFyZSB5b3Ugc2F5aW5nIHRoYXQgd2Ugc2hvdWxkIGNoZWNrIGJlZm9yZSB3ZSBl bmFibGU/DQo+IA0KDQpZZXMsIHBsZWFzZSByZWZlciB0byBteSBhYm92ZSBleHBsYW5hdGlvbi4N Cj4gRnVydGhlcm1vcmUsDQo+IA0KPiAoMykgZGlkIHlvdSBlbmNvdW50ZXIgYW4gcHJhY3RpY2Fs IHByb2JsZW0gd2l0aCB0aGUgY3VycmVudCBjb2RlPyBJZiBzbywNCj4gY2FuIHlvdSBkZXNjcmli ZSBpdCBpbiB0aGUgY29tbWl0IG1lc3NhZ2UgcGxlYXNlPyBUaGUgc3ViamVjdCBsaW5lIGhlbHBz DQo+IGEgbGl0dGxlIChpdCBpbXBsaWVzIHRoYXQgdXNpbmcgVkdBX0lPIG92ZXIgVkdBX0lPXzE2 IGFzc3VtZXMgIlZHQSBhbGlhcw0KPiBtb2RlIiksIGJ1dCBpdCBzaG91bGQgYmUgZGVzY3JpYmVk IGluIG1vcmUgZGV0YWlsIHBsZWFzZS4NCg0KWWVzLCBwbGVhc2UgcmVmZXIgdG8gbXkgYWJvdmUg ZXhwbGFuYXRpb24sIEknbGwgdXBkYXRlIG15IGNvbW1pdCBtZXNzYWdlIHRvIGRlc2NyaWJlIGl0 IG1vcmUgZGV0YWlsLg0KPiANCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE1hcmMgQ2hlbiA8bWFy Yy53LmNoZW5AaW50ZWwuY29tPg0KPiA+IENjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4ubC5qdXN0 ZW5AaW50ZWwuY29tPg0KPiA+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0K PiA+IENjOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gPiBD YzogQW50aG9ueSBQZXJhcmQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+DQo+ID4gQ2M6IEp1 bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+DQo+ID4gQ2M6IE1hcmMtQW5kcsOpIEx1 cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQuY29tPg0KPiA+IENjOiBTdGVmYW4gQmVyZ2Vy IDxzdGVmYW5iQGxpbnV4LmlibS5jb20+DQo+ID4gUmVmOiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODANCj4gPiAtLS0NCj4gPiAgT3ZtZlBrZy9RZW11 VmlkZW9EeGUvRHJpdmVyLmMgfCAyMiArKysrKysrKysrKysrKysrKysrKystDQo+ID4gIDEgZmls ZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4NCj4gPiBkaWZm IC0tZ2l0IGEvT3ZtZlBrZy9RZW11VmlkZW9EeGUvRHJpdmVyLmMNCj4gYi9Pdm1mUGtnL1FlbXVW aWRlb0R4ZS9Ecml2ZXIuYw0KPiA+IGluZGV4IGU4YTYxM2VmMzMuLmJhOTIxMGYyNGIgMTAwNjQ0 DQo+ID4gLS0tIGEvT3ZtZlBrZy9RZW11VmlkZW9EeGUvRHJpdmVyLmMNCj4gPiArKysgYi9Pdm1m UGtnL1FlbXVWaWRlb0R4ZS9Ecml2ZXIuYw0KPiA+IEBAIC0yMDEsNiArMjAxLDcgQEAgUWVtdVZp ZGVvQ29udHJvbGxlckRyaXZlclN0YXJ0ICgNCj4gPiAgICBQQ0lfVFlQRTAwICAgICAgICAgICAg ICAgICAgICAgICAgUGNpOw0KPiA+ICAgIFFFTVVfVklERU9fQ0FSRCAgICAgICAgICAgICAgICAg ICAqQ2FyZDsNCj4gPiAgICBFRklfUENJX0lPX1BST1RPQ09MICAgICAgICAgICAgICAgKkNoaWxk UGNpSW87DQo+ID4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1cHBvcnRz Ow0KPiA+DQo+ID4gICAgT2xkVHBsID0gZ0JTLT5SYWlzZVRQTCAoVFBMX0NBTExCQUNLKTsNCj4g Pg0KPiA+IEBAIC0yNzcsMTMgKzI3OCwzMiBAQCBRZW11VmlkZW9Db250cm9sbGVyRHJpdmVyU3Rh cnQgKA0KPiA+ICAgICAgZ290byBDbG9zZVBjaUlvOw0KPiA+ICAgIH0NCj4gPg0KPiA+ICsgIC8v DQo+ID4gKyAgLy8gR2V0IHN1cHBvcnRlZCBQQ0kgYXR0cmlidXRlcw0KPiA+ICsgIC8vDQo+ID4g KyAgU3RhdHVzID0gUHJpdmF0ZS0+UGNpSW8tPkF0dHJpYnV0ZXMgKA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgIFByaXZhdGUtPlBjaUlvLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIEVmaVBj aUlvQXR0cmlidXRlT3BlcmF0aW9uU3VwcG9ydGVkLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg IDAsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgJlN1cHBvcnRzDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgKTsNCj4gDQo+ICg0KSBUaGUgYXJndW1lbnRzIGFuZCB0aGUgY2xvc2luZyBwYXJl bnRoZXNpcyBhcmUgaW5jb3JyZWN0bHkgYWxpZ25lZCwNCj4gcmVsYXRpdmUgdG8gdGhlIGZ1bmN0 aW9uIGRlc2lnbmF0b3IuDQoNCkknbGwgdXBkYXRlIGluIG5leHQgcGF0Y2guDQo+IA0KPiANCj4g PiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gKyAgICBnb3RvIENsb3NlUGNpSW87 DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBTdXBwb3J0cyAmPSAoVUlOVDY0KShFRklfUENJX0lP X0FUVFJJQlVURV9WR0FfSU8gfA0KPiBFRklfUENJX0lPX0FUVFJJQlVURV9WR0FfSU9fMTYpOw0K PiA+ICsgIGlmICgoU3VwcG9ydHMgPT0gMCkgfHwgKFN1cHBvcnRzID09IChFRklfUENJX0lPX0FU VFJJQlVURV9WR0FfSU8gfA0KPiBFRklfUENJX0lPX0FUVFJJQlVURV9WR0FfSU9fMTYpKSkgew0K PiA+ICsgICAgU3RhdHVzID0gRUZJX1VOU1VQUE9SVEVEOw0KPiA+ICsgICAgZ290byBDbG9zZVBj aUlvOw0KPiA+ICsgIH0NCj4gPiArDQo+IA0KPiBJIGhhdmUgdHdvIGNvbW1lbnRzIG9uIHRoaXM6 DQo+IA0KPiAoNSkgSWYgd2UgbmVlZCBhIHZhcmlhYmxlIGZvciB0cmFja2luZyBqdXN0IHRoZXNl IHR3byBiaXRzLCB0aGVuIGl0DQo+IHNob3VsZCBiZSBuYW1lZCBzb21ldGhpbmcgbW9yZSB0by10 aGUtcG9pbnQgdGhhbiBqdXN0ICJTdXBwb3J0cyIuIEZvcg0KPiBleGFtcGxlLCAiU3VwcG9ydGVk VmdhSW8iIG9yIHNpbWlsYXIuDQoNCkknbGwgdXBkYXRlIGluIG5leHQgcGF0Y2guDQo+IA0KPiAo NikgSSdtIG5vdCBjb252aW5jZWQgdGhpcyBsb2dpYyBpcyBjb3JyZWN0LCBhY2NvcmRpbmcgdG8g dGhlIFVFRkkgc3BlYy4NCj4gVGhlIHNwZWMgc2VlbXMgdG8gc3VnZ2VzdCB0aGF0IChWR0FfSU8g fCBWR0FfSU9fMTYpIHNob3VsZCBub3QgYmUNCj4gKmVuYWJsZWQqIGF0IHRoZSBzYW1lIHRpbWUu IEhvd2V2ZXIsIGl0IGRvZXNuJ3Qgc2VlbSB0byByZXF1aXJlIHRoYXQgYQ0KPiBQY2lJbyBwcm90 b2NvbCBpbnN0YW5jZSByZXBvcnQgYXQgbW9zdCBvbmUgb2YgdGhlc2UgYXR0cmlidXRlcyBhcw0K PiAqc3VwcG9ydGVkKi4NCg0KQXMgbXkgYWJvdmUgZXhwbGFuYXRpb24sIHdoZW4gQXR0cmlidXRl cyBmaWVsZCBvZiBQQ0lfUk9PVF9CUklER0UgaXMgMCwgaWYgQklPUyBkb2Vzbid0IHJldHVybiBF RklfUkVTRVJWRV9WR0FfSU9fQUxJQVMgaW4gR2V0UGxhdGZvcm1Qb2xpY3kgb2YgUGNpUGxhdGZv cm1Qcm90b2NvbCwgdGhlbiBvbmx5IFZHQV9JT18xNiBjYW4gYmUgZW5hYmxlZCBieSBkZXZpY2Ug ZHJpdmVyLCBpZiBCSU9TIHJldHVybiBFRklfUkVTRVJWRV9WR0FfSU9fQUxJQVMgaW4gR2V0UGxh dGZvcm1Qb2xpY3kgb2YgUGNpUGxhdGZvcm1Qcm90b2NvbCwgdGhlbiBvbmx5IFZHQV9JTyBjYW4g YmUgZW5hYmxlZCBieSBkZXZpY2UgZHJpdmVyLCB5b3UgY2FuIGNoZWNrIHRoZSBQY2lTZXREZXZp Y2VBdHRyaWJ1dGUgb2YgUGNpRW51bWVyYXRvclN1cHBvcnQuYyBvZiBQY2lCdXNEeGUgZHJpdmVy IGZvciBkZXRhaWwuDQo+IA0KPiBUaGUgc3BlYyBzYXlzLCBuZWFyIFZHQV9JT18xNiwgIlRoaXMg Yml0IG1heSBub3QgYmUgY29tYmluZWQgd2l0aA0KPiBFRklfUENJX0lPX0FUVFJJQlVURV9WR0Ff SU8gWy4uLl0iLiBJJ20gdW5zdXJlIHdoZXRoZXIgdGhpcyBhcHBsaWVzIHRvDQo+IGJvdGggRWZp UGNpSW9BdHRyaWJ1dGVPcGVyYXRpb25TdXBwb3J0ZWQgYW5kDQo+IEVmaVBjaUlvQXR0cmlidXRl T3BlcmF0aW9uRW5hYmxlLg0KPiANCj4gSSB0aGluayB3ZSBoYXZlIHR3byBvcHRpb25zIGhlcmU6 DQo+IC0gaWYgdGhlIHNwZWMgZ3VhcmFudGVlcyB0aGlzIGV4Y2x1c2lvbiwgdGhlbiB3ZSBjYW4g ZWl0aGVyIGRyb3AgdGhlDQo+ICJib3RoIHNldCIgY2hlY2ssIG9yIGV2ZW4gQVNTRVJUIHRoYXQg aXQgbmV2ZXIgaGFwcGVucw0KPiAtIGlmIHRoZSBzcGVjIGRvZXMgbm90IGd1YXJhbnRlZSB0aGUg ZXhjbHVzaW9uLCB0aGVuIHdlIHNob3VsZCBwaWNrDQo+IFZHQV9JT18xNiBmaXJzdCwgYW5kIFZH QV9JTyBzZWNvbmQgKGluIHRoaXMgcHJpb3JpdHkgb3JkZXIpLg0KPiANCj4gSSB0aGluayB0aGUg bGFzdCBvcHRpb24gaXMgdGhlIG1vc3Qgcm9idXN0IG9uZS4NCg0KVGhhbmtzIGZvciB5b3VyIHJl cGx5LCBJIHRoaW5rIHlvdXIgZmlyc3Qgb3B0aW9uIGlzIGdvb2QgZW5vdWdoIHNpbmNlIFBjaUJ1 c0R4ZSBkcml2ZXIgaGFzIGd1YXJhbnRlZWQgdGhpcyBleGNsdXNpb24uDQo+IA0KPiBUaGFua3Ms DQo+IExhc3psbw0KPiANCj4gPiAgICAvLw0KPiA+ICAgIC8vIFNldCBuZXcgUENJIGF0dHJpYnV0 ZXMNCj4gPiAgICAvLw0KPiA+ICAgIFN0YXR1cyA9IFByaXZhdGUtPlBjaUlvLT5BdHRyaWJ1dGVz ICgNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXZhdGUtPlBjaUlvLA0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWZpUGNpSW9BdHRyaWJ1dGVPcGVyYXRpb25F bmFibGUsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfUENJX0RFVklDRV9F TkFCTEUgfA0KPiBFRklfUENJX0lPX0FUVFJJQlVURV9WR0FfTUVNT1JZIHwgRUZJX1BDSV9JT19B VFRSSUJVVEVfVkdBX0lPLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1BD SV9ERVZJQ0VfRU5BQkxFIHwNCj4gRUZJX1BDSV9JT19BVFRSSUJVVEVfVkdBX01FTU9SWSB8IFN1 cHBvcnRzLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTA0KPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMp KSB7DQo+ID4NCj4gDQo+IA0KPiANCg0K