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.136; helo=mga12.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 4B6CF22161156 for ; Tue, 27 Feb 2018 18:38:05 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Feb 2018 18:44:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,403,1515484800"; d="scan'208";a="38008186" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga002.jf.intel.com with ESMTP; 27 Feb 2018 18:44:11 -0800 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 27 Feb 2018 18:44:11 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx115.amr.corp.intel.com (10.18.116.19) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 27 Feb 2018 18:44:10 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.124]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.116]) with mapi id 14.03.0319.002; Wed, 28 Feb 2018 10:44:08 +0800 From: "Zeng, Star" To: "Marvin.Haeuser@outlook.com" , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" , Laszlo Ersek , "Dong, Eric" , "Zeng, Star" Thread-Topic: [edk2] [PATCH 2/2] MdeModulePkg/BaseSerialPortLib16550: Prevent truncating constant values. Thread-Index: AQHTr+r/h8quN+BTR0iuq0O4ldSceKO4DXuAgAAFwgCAAQjDwA== Date: Wed, 28 Feb 2018 02:44:07 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103BA4534C@shsmsx102.ccr.corp.intel.com> References: <20180227164940.6956-1-Marvin.Haeuser@outlook.com> In-Reply-To: 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 2/2] MdeModulePkg/BaseSerialPortLib16550: Prevent truncating constant values. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Feb 2018 02:38:05 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Q291bGQgc2ltcGx5IHVzZSAweEZGRkMgZm9yIHRoaXMgY2FzZT8NCg0KVGhhbmtzLA0KU3Rhcg0K LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsy LWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgT2YgTWFydmluIEg/dXNlcg0K U2VudDogV2VkbmVzZGF5LCBGZWJydWFyeSAyOCwgMjAxOCAyOjU2IEFNDQpUbzogZWRrMi1kZXZl bEBsaXN0cy4wMS5vcmcNCkNjOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IExhc3ps byBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwu Y29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRr Ml0gW1BBVENIIDIvMl0gTWRlTW9kdWxlUGtnL0Jhc2VTZXJpYWxQb3J0TGliMTY1NTA6IFByZXZl bnQgdHJ1bmNhdGluZyBjb25zdGFudCB2YWx1ZXMuDQoNCkhleSBMYXN6bG8sDQoNClRoYW5rcyBm b3IgeW91ci4uLiBkZXRhaWxlZCBleHBsYW5hdGlvbi4gOikgSSBhY3R1YWxseSBzdWJtaXR0ZWQg YW5vdGhlciBwYXRjaCB0byBwcmV2ZW50IHdoYXQgeW91IGV4cGxhaW5lZCAtICJbZWRrMl0gW1BB VENIIDEvMl0gTWRlUGtnL0Jhc2UuaDogRW5zdXJlIHNhZmUgYml0d2lzZSBvcGVyYXRpb25zLiIs IHdoaWNoIG1hcmtzIGFsbCBCSVQgZGVmaW5lcyAoYW5kIG1vcmUpIGFzIHVuc2lnbmVkLg0KTW9z dCBkZWZpbml0ZWx5IEkgc2hvdWxkIGhhdmUgbWVudGlvbmVkIGl0IGluIHRoZSBjb21taXQgbWVz c2FnZSBvciBoZWxkIGl0IGJhY2sgdGlsbCB0aGF0IHBhdGNoIHdpbGwgYmUgYWNjZXB0ZWQgKG9y IGRlbmllZD8pLCBzZWVtcyBsaWtlIEkgZm9yZ290IGFib3V0IHRoYXQuDQpXb3VsZCB5b3Ugc3Rp bGwgcHJlZmVyIHlvdXIgc3VnZ2VzdGlvbiBldmVuIHdoZW4gdGhlIEJhc2UuaCBwYXRjaCBpcyBt ZXJnZWQ/IEFmdGVyIGFsbCwgaW50IG1pZ2h0IGhhcHBlbiB0byBiZSBldmVuIGxhcmdlciB0aGFu IElOVDMyLCBpZiBJJ20gbm90IG1pc3Rha2VuLg0KDQpJJ20gcXVpdGUgc3VyZSBWUzIwMTV4ODYg aXNzdWVkIHRoZSB3YXJuaW5nIGRlc3BpdGUgdGhhdCBjb21taXQgYmVpbmcgYXBwbGllZCBsb2Nh bGx5LiBJdCBzZWVtcyB0byBhbHdheXMgd2FybiB3aGVuIGEgY29uc3RhbnQgaXMgdHJ1bmNhdGVk LCBleHBsaWNpdGVseSBvciBpbXBsaWNpdGVseSwgdG8gZ2l2ZSB5b3UgdGhlIGNoYW5nZSB0byBp bmNyZWFzZSBpdHMgc2l6ZToNCmh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJh cnkvc3o1ejFieXQuYXNweA0KDQpUaGFua3MgYWdhaW4gZm9yIHlvdXIgY29tcHJlaGVuc2l2ZSBy ZXZpZXchDQoNCkJlc3QgcmVnYXJkcywNCk1hcnZpbi4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiBTZW50 OiBUdWVzZGF5LCBGZWJydWFyeSAyNywgMjAxOCA3OjM1IFBNDQo+IFRvOiBNYXJ2aW4gSMOkdXNl ciA8TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+OyBlZGsyLSANCj4gZGV2ZWxAbGlzdHMuMDEu b3JnDQo+IENjOiBydWl5dS5uaUBpbnRlbC5jb207IGVyaWMuZG9uZ0BpbnRlbC5jb207IHN0YXIu emVuZ0BpbnRlbC5jb20NCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMi8yXSBNZGVNb2R1 bGVQa2cvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MDoNCj4gUHJldmVudCB0cnVuY2F0aW5nIGNvbnN0 YW50IHZhbHVlcy4NCj4gDQo+IEhpIE1hcnZpbiwNCj4gDQo+IE9uIDAyLzI3LzE4IDE3OjQ5LCBN YXJ2aW4gSMOkdXNlciB3cm90ZToNCj4gPiBUaGUgdG9vbGNhaGluIFZTMjAxNXg4NiBpc3N1ZXMg d2FybmluZ3Mgd2hlbiB0cnVuY2F0aW5nIGNvbnN0YW50IA0KPiA+IHZhbHVlcy4gRXhwbGljaXRl bHkgY2FzdCBzdWNoIHRvIGF2b2lkIGl0Lg0KPiA+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRp YW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6IE1h cnZpbiBIYWV1c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbT4NCj4gPiAtLS0NCj4gPiAg DQo+ID4gTWRlTW9kdWxlUGtnL0xpYnJhcnkvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MC9CYXNlU2Vy aWFsUG9ydExpYjE2NTUwLmMNCj4gPiB8IDQgKystLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+DQo+ IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MC9CYXNlU2VyaWFs UG9ydExpYjE2NTUwLmMNCj4gPg0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jhc2VTZXJpYWxQ b3J0TGliMTY1NTAvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MC5jDQo+ID4gaW5kZXggMGNjYWM5NmY0 MTljLi4xMGVjYTZjMGE3YWEgMTAwNjQ0DQo+ID4gLS0tDQo+ID4NCj4gYS9NZGVNb2R1bGVQa2cv TGlicmFyeS9CYXNlU2VyaWFsUG9ydExpYjE2NTUwL0Jhc2VTZXJpYWxQb3J0TGliMTY1NTAuYw0K PiA+ICsrKw0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jhc2VTZXJpYWxQb3J0TGliMTY1NTAv QmFzZVNlcmlhbFBvcnRMaWIxNjUNCj4gPiArKysgNTAuYw0KPiA+IEBAIC0zNjYsNyArMzY2LDcg QEAgR2V0U2VyaWFsUmVnaXN0ZXJCYXNlICgNCj4gPiAgICAvLw0KPiA+ICAgIGlmIChEZXZpY2VJ bmZvLT5Qb3dlck1hbmFnZW1lbnRTdGF0dXNBbmRDb250cm9sUmVnaXN0ZXIgIT0gMHgwMCkgew0K PiA+ICAgICAgaWYgKChQY2lSZWFkMTYgKFBjaUxpYkFkZHJlc3MgKyBEZXZpY2VJbmZvLQ0KPiA+ UG93ZXJNYW5hZ2VtZW50U3RhdHVzQW5kQ29udHJvbFJlZ2lzdGVyKSAmIChCSVQwIHwgQklUMSkp ICE9IDB4MDApIHsNCj4gPiAtICAgICAgUGNpQW5kMTYgKFBjaUxpYkFkZHJlc3MgKyBEZXZpY2VJ bmZvLQ0KPiA+UG93ZXJNYW5hZ2VtZW50U3RhdHVzQW5kQ29udHJvbFJlZ2lzdGVyLCAoVUlOVDE2 KX4oQklUMCB8IEJJVDEpKTsNCj4gPiArICAgICAgUGNpQW5kMTYgKFBjaUxpYkFkZHJlc3MgKw0K PiA+ICsgRGV2aWNlSW5mby0+UG93ZXJNYW5hZ2VtZW50U3RhdHVzQW5kQ29udHJvbFJlZ2lzdGVy LA0KPiA+ICsgKFVJTlQxNil+KFVJTlQxNikoQklUMCB8IEJJVDEpKTsNCj4gPiAgICAgICAgLy8N Cj4gPiAgICAgICAgLy8gSWYgUENJIFVBUlQgd2FzIG5vdCBpbiBEMCwgdGhlbiBtYWtlIHN1cmUg RklGT3MgYXJlIA0KPiA+IGVuYWJsZWQsIGJ1dCBkbw0KPiBub3QgcmVzZXQgRklGT3MNCj4gPiAg ICAgICAgLy8NCj4gPiBAQCAtNDAyLDcgKzQwMiw3IEBAIEdldFNlcmlhbFJlZ2lzdGVyQmFzZSAo DQo+ID4gICAgICAvLw0KPiA+ICAgICAgaWYgKERldmljZUluZm8tPlBvd2VyTWFuYWdlbWVudFN0 YXR1c0FuZENvbnRyb2xSZWdpc3RlciAhPSAweDAwKSB7DQo+ID4gICAgICAgIGlmICgoUGNpUmVh ZDE2IChQY2lMaWJBZGRyZXNzICsgRGV2aWNlSW5mby0NCj4gPlBvd2VyTWFuYWdlbWVudFN0YXR1 c0FuZENvbnRyb2xSZWdpc3RlcikgJiAoQklUMCB8IEJJVDEpKSAhPSAweDAwKSB7DQo+ID4gLSAg ICAgICAgUGNpQW5kMTYgKFBjaUxpYkFkZHJlc3MgKyBEZXZpY2VJbmZvLQ0KPiA+UG93ZXJNYW5h Z2VtZW50U3RhdHVzQW5kQ29udHJvbFJlZ2lzdGVyLCAoVUlOVDE2KX4oQklUMCB8IEJJVDEpKTsN Cj4gPiArICAgICAgICBQY2lBbmQxNiAoUGNpTGliQWRkcmVzcyArDQo+ID4gKyBEZXZpY2VJbmZv LT5Qb3dlck1hbmFnZW1lbnRTdGF0dXNBbmRDb250cm9sUmVnaXN0ZXIsDQo+ID4gKyAoVUlOVDE2 KX4oVUlOVDE2KShCSVQwIHwgQklUMSkpOw0KPiA+ICAgICAgICB9DQo+ID4gICAgICB9DQo+ID4N Cj4gPg0KPiANCj4gSSBmaW5kIHRoZXNlIHdhcm5pbmdzIC0tIHdoaWNoIEkgY2FuIG9ubHkgbWFr ZSB1cCBpbiBteSBtaW5kLCBzaW5jZSANCj4gdGhlIGNvbW1pdCBtZXNzYWdlIGRvZXMgbm90IGNv bnRhaW4gdGhlbSAtLSBiaXphcnJlLiBNb3JlIHByZWNpc2VseSwgSSANCj4gZmluZCB0aGUgZmFj dCBiaXphcnJlIHRoYXQgdGhlIHBhdGNoIHN1cHByZXNzZXMgdGhvc2Ugd2FybmluZ3MuIEhlcmUn cyANCj4gbXkNCj4gYXJndW1lbnQ6DQo+IA0KPiBUaGUgZXhwcmVzc2lvbiAoQklUMCB8IEJJVDEp IGhhcyB0eXBlICJpbnQiLiAoT3IsIGlmIHlvdSB3aWxsLCANCj4gIklOVDMyIi4pIFRoaXMgaXMg YmVjYXVzZSBvZg0KPiANCj4gI2RlZmluZSAgQklUMCAgICAgMHgwMDAwMDAwMQ0KPiAjZGVmaW5l ICBCSVQxICAgICAweDAwMDAwMDAyDQo+IA0KPiB3aGVyZSB0aGUgIjB4IiBwcmVmaXgsIGFzIEkg bGlrZSB0byBwdXQgaXQgY2FzdWFsbHksIG9ubHkgImVuYWJsZXMiIA0KPiB0aGUgY29tcGlsZXIg dG8gY29uc2lkZXIgdW5zaWduZWQgaW50ZWdlciB0eXBlcyB3aGVuIHBpY2tpbmcgdGhlIHR5cGUg DQo+IGZvciB0aGUgaW50ZWdlciBjb25zdGFudDsgYXMgb3Bwb3NlZCB0byAiZm9yY2luZyIgYW4g dW5zaWduZWQgdHlwZSANCj4gKHRoYXQgd291bGQgY29tZSBmcm9tIHRoZSAidSIgc3VmZml4KS4N Cj4gDQo+IFRodXMsIGJlY2F1c2UgdGhlc2UgY29uc3RhbnRzIGFyZSBpbiByYW5nZSBmb3IgImlu dCIsIHRoZXkgYXJlIG1hZGUgDQo+ICJpbnQicywgYW5kIHRoZSBleHByZXNzaW9uIChCSVQwIHwg QklUMSkgYWxzbyBoYXMgdHlwZSAiaW50Ii4NCj4gDQo+IFdoZW4geW91IGFwcGx5IHRoZSBiaXQt bmVnIG9wZXJhdG9yLCB0aGUgc2lnbiBiaXQgaXMgbmVnYXRlZC4gSSANCj4gY29uc2lkZXIgdGhh dCAqZXhjZWVkaW5nbHkgdWdseSosIGJ1dCBpdCBpcyBub3QgdW5kZWZpbmVkIGJlaGF2aW9yLCAN Cj4gYWNjb3JkaW5nIHRvIElTTyBDIChhcyBJIHVuZGVyc3RhbmQgaXQpLiBHaXZlbiBvdXIgcmVw cmVzZW50YXRpb24gb2YgDQo+ICJpbnQiICh3aGljaCBpcyBpbXBsZW1lbnRhdGlvbi0gZGVmaW5l ZCksIG5hbWVseSB0d28ncyBjb21wbGVtZW50IHdpdGggDQo+IG5vIHBhZGRpbmcgYml0cywgdGhl IGJpdC1uZWcgZG9lcyBub3QgcHJvZHVjZSBhIHRyYXAgcmVwcmVzZW50YXRpb24sIGl0IHNpbXBs eSBwcm9kdWNlcyBhIG5lZ2F0aXZlIHZhbHVlLg0KPiAoTmFtZWx5LCAoLTQpLikNCj4gDQo+IFRo ZW4sIHRoZSBvdXRlcm1vc3QgVUlOVDE2IGNhc3QsIGluIHRoZSBleHByZXNzaW9uIChVSU5UMTYp fihCSVQwIHwgDQo+IEJJVDEpLCBjb252ZXJ0cyB0aGUgbmVnYXRpdmUgdmFsdWUgdG8gVUlOVDE2 LiBUaGlzIGNvbnZlcnNpb24gaXMgDQo+IHdlbGwtZGVmaW5lZCBpbiB0aGUgQyBzdGFuZGFyZDsg YW5kLCAqc29sZWx5KiBiZWNhdXNlIG9mIHRoZSB0d28ncyANCj4gY29tcGxlbWVudCByZXByZXNl bnRhdGlvbiB0aGF0IHdlIHVzZSAoc2VlIGFib3ZlKSwgdGhlIGNvbXBsZXRlIA0KPiBleHByZXNz aW9uIGhhcHBlbnMgdG8gcHJvZHVjZSB0aGUgZXhhY3QgdmFsdWUgdGhhdCB3ZSBuZWVkOyBuYW1l bHkgDQo+IDY1NTM1DQo+ICsgMSArICgtNCkgPT0gNjU1MzIgPT0gYmluYXJ5IDExMTFfMTExMV8x MTExXzExMDAuDQo+IA0KPiAoDQo+IA0KPiBJZiB3ZSB1c2VkIG9uZSdzIGNvbXBsZW1lbnQsIG9y IHNpZ24tYW5kLW1hZ25pdHVkZSwgdGhlbiB0aGUgYml0LW5lZyANCj4gd291bGQgcHJvZHVjZSBh IG5lZ2F0aXZlIHZhbHVlIHRoYXQgd291bGQgKm5vdCogeWllbGQgYSBjb3JyZWN0IGVuZCANCj4g cmVzdWx0LCB3aGVuIGNvbnZlcnRlZCB0byBVSU5UMTY6DQo+IA0KPiAtIFdpdGggb25lJ3MgY29t cGxlbWVudCwgd2UnZCBnZXQgKC0zKSBmcm9tIHRoZSBiaXQtbmVnLCBhbmQgdGhlIGVuZCANCj4g cmVzdWx0IHdvdWxkIGJlIDY1NTM1ICsgMSArICgtMykgPT0gNjU1MzMgPT0gYmluYXJ5IDExMTFf MTExMV8xMTExXzExMDEuDQo+IE5vdCB0aGUgbWFzayB3ZSB3YW50Lg0KPiANCj4gLSBXaXRoIHNp Z24tYW5kLW1hZ25pdHVkZSwgd2UnZCBnZXQgdmFsdWUgKC0yMTQ3NDgzNjQ0KSBmcm9tIHRoZSAN Cj4gYml0LW5lZyAoc2lnbiBiaXQgMSwgbWFnbml0dWRlIDB4N0ZGRl9GRkZDKS4gQ29udmVydGlu ZyB0aGlzIHRvIFVJTlQxNiAoaS5lLg0KPiBhZGRpbmcgNjU1MzYgcmVwZWF0ZWRseSwgMzI3Njgg dGltZXMsIHVudGlsIHRoZSB2YWx1ZSBpcyBpbiByYW5nZSBmb3INCj4gVUlOVDE2KSB5aWVsZHMg dGhlIHZhbHVlIDQ7IGJpbmFyeSAwMDAwXzAwMDBfMDAwMF8wMTAwLiBBZ2FpbiBub3QgdGhlIA0K PiBtYXNrIHdlIG5lZWQuDQo+IA0KPiApDQo+IA0KPiBTbywgYWdhaW46IHBlcmhhcHMgdGhpcyAi c2lsZW50IiBkZXBlbmRlbmN5IG9uIHR3bydzIGNvbXBsZW1lbnQgaW4gdGhlIA0KPiBiaXQtIG5l ZyBpcyB3aHkgVlMyMDE1eDg2IGNvbXBsYWlucyAtLSBJIGRvbid0IGtub3cuDQo+IA0KPiANCj4g Tm93LCB0aGUgYml6YXJyZSB0aGluZyBpcywgdGhlIHBhdGNoIGRvZXMgbm90IGNoYW5nZSAqYW55 dGhpbmcqIGF0IGFsbCANCj4gaW4gdGhpcyB0aG91Z2h0IHByb2Nlc3MhIFdoZW4geW91IGRvDQo+ IA0KPiAgIChVSU5UMTYpKEJJVDAgfCBCSVQxKQ0KPiANCj4gdGhlIHJlc3VsdGFudCBVSU5UMTYg dmFsdWUgaXMgaW1tZWRpYXRlbHkgcHJvbW90ZWQgYmFjayB0byAiaW50IiAoZHVlIA0KPiB0byB0 aGUgZGVmYXVsdCBpbnRlZ2VyIHByb21vdGlvbnMgLS0gYWxsIFVJTlQxNiB2YWx1ZXMgY2FuIGJl IA0KPiByZXByZXNlbnRlZCBpbiAiaW50IiksIGJlZm9yZSB0aGUgYml0LW5lZyBvcGVyYXRvciBp cyBhcHBsaWVkLiBJbiANCj4gb3RoZXIgd29yZHMsIHRoZSBiaXQtbmVnIG9wZXJhdG9yIGlzIGFw cGxpZWQgdG8gdGhlIGV4YWN0IHNhbWUgdmFsdWUgDQo+IChpbmNsdWRpbmcgdHlwZQ0KPiAiaW50 IikgYXMgYmVmb3JlIHRoZSBwYXRjaC4gVGh1cyBJIGRvbid0IHVuZGVyc3RhbmQgaG93IHRoZSBw YXRjaCBjYW4gDQo+IGhhdmUgYW55IGVmZmVjdCBvbiB0aGUgY29tcGlsZXIuDQo+IA0KPiANCj4g Tm93LCBpZiB5b3Ugd3JvdGUNCj4gDQo+ICAgKFVJTlQxNil+KFVJTlQzMikoQklUMCB8IEJJVDEp DQo+ICAgICAgICAgICAgXl5eXl5eXl4NCj4gDQo+IEkgd291bGQgdW5kZXJzdGFuZCB0aGF0IChh bmQgaW5kZWVkIHRoaXMgaXMgdGhlIGZvcm0gdGhhdCBJIGZpbmQgb3B0aW1hbCkuDQo+IFVJTlQz MiBtYXBzIHRvICJ1bnNpZ25lZCBpbnQiLCBhbmQgInVuc2lnbmVkIGludCIgaXMgdW5hZmZlY3Rl ZCBieSB0aGUgDQo+IGludGVnZXIgcHJvbW90aW9ucy4gVGhlcmVmb3JlIHRoZSBiaXQtbmVnIHdv dWxkIGJlIHBlcmZvcm1lZCBvbiBhbiANCj4gInVuc2lnbmVkIGludCIgLS0gZmFudGFzdGljOiBu byBkZXBlbmRlbmN5IG9uIHRoZSByZXByZXNlbnRhdGlvbiBvZiANCj4gbmVnYXRpdmUgdmFsdWVz IC0tLCBhbmQgdGhlIHJlc3VsdGFudCBub24tbmVnYXRpdmUgdmFsdWUgLS0gZGlyZWN0bHkgDQo+ IGRlZmluZWQgYnkgdGhlIEMNCj4gc3RhbmRhcmQ6IDQyOTQ5NjcyOTIsIDB4RkZGRl9GRkZDIC0t IHdvdWxkIGJlIHRydW5jYXRlZCB0byBVSU5UMTYgDQo+ICJtb3JlIGNsZWFubHkiLiAoU3BlYWtp bmcgaW4gImFzc3VtZWQNCj4gVlMyMDE1eDg2IHRlcm1zIiBhbnl3YXkpLg0KPiANCj4gU28uLi4g SSdtIG5vdCBzYXlpbmcgeW91IHNob3VsZCBjYXJlIGFib3V0IG15IHJldmlldzsgaG93ZXZlciwg aWYgeW91IA0KPiBkbywgd291bGQgeW91IHBsZWFzZSBjb25zaWRlciByZXN1Ym1pdHRpbmcgdGhl IHBhdGNoIHdpdGggVUlOVDMyPyA6KQ0KPiANCj4gVGhlcmUncyBhbiBhcmd1bWVudCBmb3IgdXNp bmcgVUlOVDMyIGhlcmUgKHJlZ2FyZGxlc3Mgb2YgVlMyMDE1eDg2KTsgDQo+IG5hbWVseSB0aGF0 IHdlIHNob3VsZCBhdm9pZCBiaXQtbmVnIG9uIHNpZ25lZCBpbnRlZ2VyIHR5cGVzIGFueXdheSwg DQo+IGZvciBvdXIgb3duIHNhbml0eSdzIHNha2UuIElmIHRoYXQgZml4ZXMgc29tZSBjb21waWxl ciB3YXJuaW5ncyB0b28sIGFsbCB0aGUgYmV0dGVyLg0KPiANCj4gVGhhbmtzIQ0KPiBMYXN6bG8N Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQplZGsyLWRl dmVsIG1haWxpbmcgbGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCmh0dHBzOi8vbGlzdHMu MDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K