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.93; helo=mga11.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 80BE422402E1E for ; Thu, 1 Mar 2018 17:55:51 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Mar 2018 18:02:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,409,1515484800"; d="scan'208";a="24479986" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga002.fm.intel.com with ESMTP; 01 Mar 2018 18:02:00 -0800 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 1 Mar 2018 18:01:59 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 1 Mar 2018 18:01:59 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.124]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.125]) with mapi id 14.03.0319.002; Fri, 2 Mar 2018 10:01:30 +0800 From: "Zeng, Star" To: "Marvin.Haeuser@outlook.com" , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" , "lersek@redhat.com" , "Dong, Eric" , "Kinney, Michael D" , "Gao, Liming" , "Zeng, Star" Thread-Topic: [edk2] [PATCH 2/2] MdeModulePkg/BaseSerialPortLib16550: Prevent truncating constant values. Thread-Index: AQHTr+r/h8quN+BTR0iuq0O4ldSceKO4DXuAgAAFwgCAAQjDwIACBUaAgAESHAA= Date: Fri, 2 Mar 2018 02:01:29 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103BA462B2@shsmsx102.ccr.corp.intel.com> References: <20180227164940.6956-1-Marvin.Haeuser@outlook.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BA4534C@shsmsx102.ccr.corp.intel.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: Fri, 02 Mar 2018 01:55:52 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWFydmluLA0KDQpTb3JyeS4NCg0KV2hhdCBpcyB0aGUgd2FybmluZyBtZXNzYWdlPw0KV2Ugc3Rp bGwgbmVlZCB0byB1c2UgIihVSU5UMTYpfihVSU5UMTYpKEJJVDAgfCBCSVQxKSI/DQpBbGwgdGhl IHRydW5jYXRpb25zIHdhbnQgdG8gZ2V0IHRoZSB2YWx1ZSAiMHhGRkZDIiwgcmlnaHQ/DQpTbyBj b3VsZCB3ZSB0cnkgdG8gZGlyZWN0bHkgdXNlICIweEZGRkMiPw0KDQpMaW1pbmcgYW5kIE1pa2Us DQpEbyB5b3UgaGF2ZSBhbnkgY29uY2VybiBhYm91dCBpdD8NCg0KDQpUaGFua3MsDQpTdGFyDQot LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTWFydmluIEjDpHVzZXIgW21haWx0bzpN YXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbV0gDQpTZW50OiBGcmlkYXksIE1hcmNoIDIsIDIwMTgg MTozNSBBTQ0KVG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQpDYzogWmVuZywgU3RhciA8c3Rh ci56ZW5nQGludGVsLmNvbT47IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgbGVyc2Vr QHJlZGhhdC5jb207IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5nLCBTdGFy IDxzdGFyLnplbmdAaW50ZWwuY29tPg0KU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMi8yXSBN ZGVNb2R1bGVQa2cvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MDogUHJldmVudCB0cnVuY2F0aW5nIGNv bnN0YW50IHZhbHVlcy4NCg0KVGhlIEJhc2UuaCBjaGFuZ2VzIG1ha2luZyBCSVQgZGVmaW5pdGlv bnMgdW5zaWduZWQgaGF2ZSBiZWVuIGRlbmllZC4NCklzIGEgVjIgbmVlZGVkIGZvciB0aGlzIHBh dGNoPyBJIHZlcmlmaWVkIGFnYWluIHRoYXQgY2FzdGluZyB0aGUgcmVzdWx0IG9mIHRoZSBpbnZl cnNpb24gdHJpZ2dlcnMgdGhlIHdhcm5pbmcsIGV4Y2VwdCB3aGVuIGNhc3RlZCBiZWZvcmUgZG9p bmcgc28sIGF0IGxlYXN0IGJ5IFZTMjAxNy4NCg0KVGhhbmtzLA0KTWFydmluLg0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRl bC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkgMjgsIDIwMTggMzo0NCBBTQ0KPiBU bzogTWFydmluLkhhZXVzZXJAb3V0bG9vay5jb207IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ IENjOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb20+OyANCj4gRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IFplbmcs IFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENI IDIvMl0gTWRlTW9kdWxlUGtnL0Jhc2VTZXJpYWxQb3J0TGliMTY1NTA6DQo+IFByZXZlbnQgdHJ1 bmNhdGluZyBjb25zdGFudCB2YWx1ZXMuDQo+IA0KPiBDb3VsZCBzaW1wbHkgdXNlIDB4RkZGQyBm b3IgdGhpcyBjYXNlPw0KPiANCj4gVGhhbmtzLA0KPiBTdGFyDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNA bGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgT2YgDQo+IE1hcnZpbiBIP3VzZXINCj4gU2VudDogV2Vk bmVzZGF5LCBGZWJydWFyeSAyOCwgMjAxOCAyOjU2IEFNDQo+IFRvOiBlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZw0KPiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBMYXN6bG8gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgDQo+IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5j b20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2Vk azJdIFtQQVRDSCAyLzJdIE1kZU1vZHVsZVBrZy9CYXNlU2VyaWFsUG9ydExpYjE2NTUwOg0KPiBQ cmV2ZW50IHRydW5jYXRpbmcgY29uc3RhbnQgdmFsdWVzLg0KPiANCj4gSGV5IExhc3psbywNCj4g DQo+IFRoYW5rcyBmb3IgeW91ci4uLiBkZXRhaWxlZCBleHBsYW5hdGlvbi4gOikgSSBhY3R1YWxs eSBzdWJtaXR0ZWQgDQo+IGFub3RoZXIgcGF0Y2ggdG8gcHJldmVudCB3aGF0IHlvdSBleHBsYWlu ZWQgLSAiW2VkazJdIFtQQVRDSCAxLzJdIE1kZVBrZy9CYXNlLmg6DQo+IEVuc3VyZSBzYWZlIGJp dHdpc2Ugb3BlcmF0aW9ucy4iLCB3aGljaCBtYXJrcyBhbGwgQklUIGRlZmluZXMgKGFuZCANCj4g bW9yZSkgYXMgdW5zaWduZWQuDQo+IE1vc3QgZGVmaW5pdGVseSBJIHNob3VsZCBoYXZlIG1lbnRp b25lZCBpdCBpbiB0aGUgY29tbWl0IG1lc3NhZ2Ugb3IgDQo+IGhlbGQgaXQgYmFjayB0aWxsIHRo YXQgcGF0Y2ggd2lsbCBiZSBhY2NlcHRlZCAob3IgZGVuaWVkPyksIHNlZW1zIGxpa2UgDQo+IEkg Zm9yZ290IGFib3V0IHRoYXQuDQo+IFdvdWxkIHlvdSBzdGlsbCBwcmVmZXIgeW91ciBzdWdnZXN0 aW9uIGV2ZW4gd2hlbiB0aGUgQmFzZS5oIHBhdGNoIGlzIA0KPiBtZXJnZWQ/IEFmdGVyIGFsbCwg aW50IG1pZ2h0IGhhcHBlbiB0byBiZSBldmVuIGxhcmdlciB0aGFuIElOVDMyLCBpZiANCj4gSSdt IG5vdCBtaXN0YWtlbi4NCj4gDQo+IEknbSBxdWl0ZSBzdXJlIFZTMjAxNXg4NiBpc3N1ZWQgdGhl IHdhcm5pbmcgZGVzcGl0ZSB0aGF0IGNvbW1pdCBiZWluZyANCj4gYXBwbGllZCBsb2NhbGx5LiBJ dCBzZWVtcyB0byBhbHdheXMgd2FybiB3aGVuIGEgY29uc3RhbnQgaXMgdHJ1bmNhdGVkLCANCj4g ZXhwbGljaXRlbHkgb3IgaW1wbGljaXRlbHksIHRvIGdpdmUgeW91IHRoZSBjaGFuZ2UgdG8gaW5j cmVhc2UgaXRzIHNpemU6DQo+IGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJh cnkvc3o1ejFieXQuYXNweA0KPiANCj4gVGhhbmtzIGFnYWluIGZvciB5b3VyIGNvbXByZWhlbnNp dmUgcmV2aWV3IQ0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiBNYXJ2aW4uDQo+IA0KPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVk aGF0LmNvbT4NCj4gPiBTZW50OiBUdWVzZGF5LCBGZWJydWFyeSAyNywgMjAxOCA3OjM1IFBNDQo+ ID4gVG86IE1hcnZpbiBIw6R1c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbT47IGVkazIt IA0KPiA+IGRldmVsQGxpc3RzLjAxLm9yZw0KPiA+IENjOiBydWl5dS5uaUBpbnRlbC5jb207IGVy aWMuZG9uZ0BpbnRlbC5jb207IHN0YXIuemVuZ0BpbnRlbC5jb20NCj4gPiBTdWJqZWN0OiBSZTog W2VkazJdIFtQQVRDSCAyLzJdIE1kZU1vZHVsZVBrZy9CYXNlU2VyaWFsUG9ydExpYjE2NTUwOg0K PiA+IFByZXZlbnQgdHJ1bmNhdGluZyBjb25zdGFudCB2YWx1ZXMuDQo+ID4NCj4gPiBIaSBNYXJ2 aW4sDQo+ID4NCj4gPiBPbiAwMi8yNy8xOCAxNzo0OSwgTWFydmluIEjDpHVzZXIgd3JvdGU6DQo+ ID4gPiBUaGUgdG9vbGNhaGluIFZTMjAxNXg4NiBpc3N1ZXMgd2FybmluZ3Mgd2hlbiB0cnVuY2F0 aW5nIGNvbnN0YW50IA0KPiA+ID4gdmFsdWVzLiBFeHBsaWNpdGVseSBjYXN0IHN1Y2ggdG8gYXZv aWQgaXQuDQo+ID4gPg0KPiA+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmli dXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+ID4gU2lnbmVkLW9mZi1ieTogTWFydmluIEhhZXVzZXIg PE1hcnZpbi5IYWV1c2VyQG91dGxvb2suY29tPg0KPiA+ID4gLS0tDQo+ID4gPg0KPiA+ID4gTWRl TW9kdWxlUGtnL0xpYnJhcnkvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MC9CYXNlU2VyaWFsUG9ydExp YjE2NTUwDQo+ID4gPiAuYw0KPiA+ID4gfCA0ICsrLS0NCj4gPiA+ICAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQN Cj4gPiA+DQo+ID4NCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9CYXNlU2VyaWFsUG9ydExpYjE2 NTUwL0Jhc2VTZXJpYWxQb3J0TGliMTY1NTAuYw0KPiA+ID4NCj4gPg0KPiBiL01kZU1vZHVsZVBr Zy9MaWJyYXJ5L0Jhc2VTZXJpYWxQb3J0TGliMTY1NTAvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MC5j DQo+ID4gPiBpbmRleCAwY2NhYzk2ZjQxOWMuLjEwZWNhNmMwYTdhYSAxMDA2NDQNCj4gPiA+IC0t LQ0KPiA+ID4NCj4gPg0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jhc2VTZXJpYWxQb3J0TGli MTY1NTAvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MC5jDQo+ID4gPiArKysNCj4gPiBiL01kZU1vZHVs ZVBrZy9MaWJyYXJ5L0Jhc2VTZXJpYWxQb3J0TGliMTY1NTAvQmFzZVNlcmlhbFBvcnRMaWIxNjUN Cj4gPiA+ICsrKyA1MC5jDQo+ID4gPiBAQCAtMzY2LDcgKzM2Niw3IEBAIEdldFNlcmlhbFJlZ2lz dGVyQmFzZSAoDQo+ID4gPiAgICAvLw0KPiA+ID4gICAgaWYgKERldmljZUluZm8tPlBvd2VyTWFu YWdlbWVudFN0YXR1c0FuZENvbnRyb2xSZWdpc3RlciAhPSAweDAwKSB7DQo+ID4gPiAgICAgIGlm ICgoUGNpUmVhZDE2IChQY2lMaWJBZGRyZXNzICsgRGV2aWNlSW5mby0NCj4gPiA+UG93ZXJNYW5h Z2VtZW50U3RhdHVzQW5kQ29udHJvbFJlZ2lzdGVyKSAmIChCSVQwIHwgQklUMSkpICE9IDB4MDAp IHsNCj4gPiA+IC0gICAgICBQY2lBbmQxNiAoUGNpTGliQWRkcmVzcyArIERldmljZUluZm8tDQo+ ID4gPlBvd2VyTWFuYWdlbWVudFN0YXR1c0FuZENvbnRyb2xSZWdpc3RlciwgKFVJTlQxNil+KEJJ VDAgfCBCSVQxKSk7DQo+ID4gPiArICAgICAgUGNpQW5kMTYgKFBjaUxpYkFkZHJlc3MgKw0KPiA+ ID4gKyBEZXZpY2VJbmZvLT5Qb3dlck1hbmFnZW1lbnRTdGF0dXNBbmRDb250cm9sUmVnaXN0ZXIs DQo+ID4gPiArIChVSU5UMTYpfihVSU5UMTYpKEJJVDAgfCBCSVQxKSk7DQo+ID4gPiAgICAgICAg Ly8NCj4gPiA+ICAgICAgICAvLyBJZiBQQ0kgVUFSVCB3YXMgbm90IGluIEQwLCB0aGVuIG1ha2Ug c3VyZSBGSUZPcyBhcmUgDQo+ID4gPiBlbmFibGVkLCBidXQgZG8NCj4gPiBub3QgcmVzZXQgRklG T3MNCj4gPiA+ICAgICAgICAvLw0KPiA+ID4gQEAgLTQwMiw3ICs0MDIsNyBAQCBHZXRTZXJpYWxS ZWdpc3RlckJhc2UgKA0KPiA+ID4gICAgICAvLw0KPiA+ID4gICAgICBpZiAoRGV2aWNlSW5mby0+ UG93ZXJNYW5hZ2VtZW50U3RhdHVzQW5kQ29udHJvbFJlZ2lzdGVyICE9IA0KPiA+ID4gMHgwMCkN Cj4gew0KPiA+ID4gICAgICAgIGlmICgoUGNpUmVhZDE2IChQY2lMaWJBZGRyZXNzICsgRGV2aWNl SW5mby0NCj4gPiA+UG93ZXJNYW5hZ2VtZW50U3RhdHVzQW5kQ29udHJvbFJlZ2lzdGVyKSAmIChC SVQwIHwgQklUMSkpICE9IDB4MDApIHsNCj4gPiA+IC0gICAgICAgIFBjaUFuZDE2IChQY2lMaWJB ZGRyZXNzICsgRGV2aWNlSW5mby0NCj4gPiA+UG93ZXJNYW5hZ2VtZW50U3RhdHVzQW5kQ29udHJv bFJlZ2lzdGVyLCAoVUlOVDE2KX4oQklUMCB8IEJJVDEpKTsNCj4gPiA+ICsgICAgICAgIFBjaUFu ZDE2IChQY2lMaWJBZGRyZXNzICsNCj4gPiA+ICsgRGV2aWNlSW5mby0+UG93ZXJNYW5hZ2VtZW50 U3RhdHVzQW5kQ29udHJvbFJlZ2lzdGVyLA0KPiA+ID4gKyAoVUlOVDE2KX4oVUlOVDE2KShCSVQw IHwgQklUMSkpOw0KPiA+ID4gICAgICAgIH0NCj4gPiA+ICAgICAgfQ0KPiA+ID4NCj4gPiA+DQo+ ID4NCj4gPiBJIGZpbmQgdGhlc2Ugd2FybmluZ3MgLS0gd2hpY2ggSSBjYW4gb25seSBtYWtlIHVw IGluIG15IG1pbmQsIHNpbmNlIA0KPiA+IHRoZSBjb21taXQgbWVzc2FnZSBkb2VzIG5vdCBjb250 YWluIHRoZW0gLS0gYml6YXJyZS4gTW9yZSBwcmVjaXNlbHksIA0KPiA+IEkgZmluZCB0aGUgZmFj dCBiaXphcnJlIHRoYXQgdGhlIHBhdGNoIHN1cHByZXNzZXMgdGhvc2Ugd2FybmluZ3MuIA0KPiA+ IEhlcmUncyBteQ0KPiA+IGFyZ3VtZW50Og0KPiA+DQo+ID4gVGhlIGV4cHJlc3Npb24gKEJJVDAg fCBCSVQxKSBoYXMgdHlwZSAiaW50Ii4gKE9yLCBpZiB5b3Ugd2lsbCwNCj4gPiAiSU5UMzIiLikg VGhpcyBpcyBiZWNhdXNlIG9mDQo+ID4NCj4gPiAjZGVmaW5lICBCSVQwICAgICAweDAwMDAwMDAx DQo+ID4gI2RlZmluZSAgQklUMSAgICAgMHgwMDAwMDAwMg0KPiA+DQo+ID4gd2hlcmUgdGhlICIw eCIgcHJlZml4LCBhcyBJIGxpa2UgdG8gcHV0IGl0IGNhc3VhbGx5LCBvbmx5ICJlbmFibGVzIg0K PiA+IHRoZSBjb21waWxlciB0byBjb25zaWRlciB1bnNpZ25lZCBpbnRlZ2VyIHR5cGVzIHdoZW4g cGlja2luZyB0aGUgDQo+ID4gdHlwZSBmb3IgdGhlIGludGVnZXIgY29uc3RhbnQ7IGFzIG9wcG9z ZWQgdG8gImZvcmNpbmciIGFuIHVuc2lnbmVkIA0KPiA+IHR5cGUgKHRoYXQgd291bGQgY29tZSBm cm9tIHRoZSAidSIgc3VmZml4KS4NCj4gPg0KPiA+IFRodXMsIGJlY2F1c2UgdGhlc2UgY29uc3Rh bnRzIGFyZSBpbiByYW5nZSBmb3IgImludCIsIHRoZXkgYXJlIG1hZGUgDQo+ID4gImludCJzLCBh bmQgdGhlIGV4cHJlc3Npb24gKEJJVDAgfCBCSVQxKSBhbHNvIGhhcyB0eXBlICJpbnQiLg0KPiA+ DQo+ID4gV2hlbiB5b3UgYXBwbHkgdGhlIGJpdC1uZWcgb3BlcmF0b3IsIHRoZSBzaWduIGJpdCBp cyBuZWdhdGVkLiBJIA0KPiA+IGNvbnNpZGVyIHRoYXQgKmV4Y2VlZGluZ2x5IHVnbHkqLCBidXQg aXQgaXMgbm90IHVuZGVmaW5lZCBiZWhhdmlvciwgDQo+ID4gYWNjb3JkaW5nIHRvIElTTyBDIChh cyBJIHVuZGVyc3RhbmQgaXQpLiBHaXZlbiBvdXIgcmVwcmVzZW50YXRpb24gb2YgDQo+ID4gImlu dCIgKHdoaWNoIGlzIGltcGxlbWVudGF0aW9uLSBkZWZpbmVkKSwgbmFtZWx5IHR3bydzIGNvbXBs ZW1lbnQgDQo+ID4gd2l0aCBubyBwYWRkaW5nIGJpdHMsIHRoZSBiaXQtbmVnIGRvZXMgbm90IHBy b2R1Y2UgYSB0cmFwIA0KPiA+IHJlcHJlc2VudGF0aW9uLCBpdA0KPiBzaW1wbHkgcHJvZHVjZXMg YSBuZWdhdGl2ZSB2YWx1ZS4NCj4gPiAoTmFtZWx5LCAoLTQpLikNCj4gPg0KPiA+IFRoZW4sIHRo ZSBvdXRlcm1vc3QgVUlOVDE2IGNhc3QsIGluIHRoZSBleHByZXNzaW9uIChVSU5UMTYpfihCSVQw IHwgDQo+ID4gQklUMSksIGNvbnZlcnRzIHRoZSBuZWdhdGl2ZSB2YWx1ZSB0byBVSU5UMTYuIFRo aXMgY29udmVyc2lvbiBpcyANCj4gPiB3ZWxsLWRlZmluZWQgaW4gdGhlIEMgc3RhbmRhcmQ7IGFu ZCwgKnNvbGVseSogYmVjYXVzZSBvZiB0aGUgdHdvJ3MgDQo+ID4gY29tcGxlbWVudCByZXByZXNl bnRhdGlvbiB0aGF0IHdlIHVzZSAoc2VlIGFib3ZlKSwgdGhlIGNvbXBsZXRlIA0KPiA+IGV4cHJl c3Npb24gaGFwcGVucyB0byBwcm9kdWNlIHRoZSBleGFjdCB2YWx1ZSB0aGF0IHdlIG5lZWQ7IG5h bWVseQ0KPiA+IDY1NTM1DQo+ID4gKyAxICsgKC00KSA9PSA2NTUzMiA9PSBiaW5hcnkgMTExMV8x MTExXzExMTFfMTEwMC4NCj4gPg0KPiA+ICgNCj4gPg0KPiA+IElmIHdlIHVzZWQgb25lJ3MgY29t cGxlbWVudCwgb3Igc2lnbi1hbmQtbWFnbml0dWRlLCB0aGVuIHRoZSBiaXQtbmVnIA0KPiA+IHdv dWxkIHByb2R1Y2UgYSBuZWdhdGl2ZSB2YWx1ZSB0aGF0IHdvdWxkICpub3QqIHlpZWxkIGEgY29y cmVjdCBlbmQgDQo+ID4gcmVzdWx0LCB3aGVuIGNvbnZlcnRlZCB0byBVSU5UMTY6DQo+ID4NCj4g PiAtIFdpdGggb25lJ3MgY29tcGxlbWVudCwgd2UnZCBnZXQgKC0zKSBmcm9tIHRoZSBiaXQtbmVn LCBhbmQgdGhlIGVuZCANCj4gPiByZXN1bHQgd291bGQgYmUgNjU1MzUgKyAxICsgKC0zKSA9PSA2 NTUzMyA9PSBiaW5hcnkgMTExMV8xMTExXzExMTFfMTEwMS4NCj4gPiBOb3QgdGhlIG1hc2sgd2Ug d2FudC4NCj4gPg0KPiA+IC0gV2l0aCBzaWduLWFuZC1tYWduaXR1ZGUsIHdlJ2QgZ2V0IHZhbHVl ICgtMjE0NzQ4MzY0NCkgZnJvbSB0aGUgDQo+ID4gYml0LW5lZyAoc2lnbiBiaXQgMSwgbWFnbml0 dWRlIDB4N0ZGRl9GRkZDKS4gQ29udmVydGluZyB0aGlzIHRvIFVJTlQxNiAoaS5lLg0KPiA+IGFk ZGluZyA2NTUzNiByZXBlYXRlZGx5LCAzMjc2OCB0aW1lcywgdW50aWwgdGhlIHZhbHVlIGlzIGlu IHJhbmdlIA0KPiA+IGZvcg0KPiA+IFVJTlQxNikgeWllbGRzIHRoZSB2YWx1ZSA0OyBiaW5hcnkg MDAwMF8wMDAwXzAwMDBfMDEwMC4gQWdhaW4gbm90IA0KPiA+IHRoZSBtYXNrIHdlIG5lZWQuDQo+ ID4NCj4gPiApDQo+ID4NCj4gPiBTbywgYWdhaW46IHBlcmhhcHMgdGhpcyAic2lsZW50IiBkZXBl bmRlbmN5IG9uIHR3bydzIGNvbXBsZW1lbnQgaW4gDQo+ID4gdGhlDQo+ID4gYml0LSBuZWcgaXMg d2h5IFZTMjAxNXg4NiBjb21wbGFpbnMgLS0gSSBkb24ndCBrbm93Lg0KPiA+DQo+ID4NCj4gPiBO b3csIHRoZSBiaXphcnJlIHRoaW5nIGlzLCB0aGUgcGF0Y2ggZG9lcyBub3QgY2hhbmdlICphbnl0 aGluZyogYXQgDQo+ID4gYWxsIGluIHRoaXMgdGhvdWdodCBwcm9jZXNzISBXaGVuIHlvdSBkbw0K PiA+DQo+ID4gICAoVUlOVDE2KShCSVQwIHwgQklUMSkNCj4gPg0KPiA+IHRoZSByZXN1bHRhbnQg VUlOVDE2IHZhbHVlIGlzIGltbWVkaWF0ZWx5IHByb21vdGVkIGJhY2sgdG8gImludCIgDQo+ID4g KGR1ZSB0byB0aGUgZGVmYXVsdCBpbnRlZ2VyIHByb21vdGlvbnMgLS0gYWxsIFVJTlQxNiB2YWx1 ZXMgY2FuIGJlIA0KPiA+IHJlcHJlc2VudGVkIGluICJpbnQiKSwgYmVmb3JlIHRoZSBiaXQtbmVn IG9wZXJhdG9yIGlzIGFwcGxpZWQuIEluIA0KPiA+IG90aGVyIHdvcmRzLCB0aGUgYml0LW5lZyBv cGVyYXRvciBpcyBhcHBsaWVkIHRvIHRoZSBleGFjdCBzYW1lIHZhbHVlIA0KPiA+IChpbmNsdWRp bmcgdHlwZQ0KPiA+ICJpbnQiKSBhcyBiZWZvcmUgdGhlIHBhdGNoLiBUaHVzIEkgZG9uJ3QgdW5k ZXJzdGFuZCBob3cgdGhlIHBhdGNoIA0KPiA+IGNhbiBoYXZlIGFueSBlZmZlY3Qgb24gdGhlIGNv bXBpbGVyLg0KPiA+DQo+ID4NCj4gPiBOb3csIGlmIHlvdSB3cm90ZQ0KPiA+DQo+ID4gICAoVUlO VDE2KX4oVUlOVDMyKShCSVQwIHwgQklUMSkNCj4gPiAgICAgICAgICAgIF5eXl5eXl5eDQo+ID4N Cj4gPiBJIHdvdWxkIHVuZGVyc3RhbmQgdGhhdCAoYW5kIGluZGVlZCB0aGlzIGlzIHRoZSBmb3Jt IHRoYXQgSSBmaW5kIG9wdGltYWwpLg0KPiA+IFVJTlQzMiBtYXBzIHRvICJ1bnNpZ25lZCBpbnQi LCBhbmQgInVuc2lnbmVkIGludCIgaXMgdW5hZmZlY3RlZCBieSANCj4gPiB0aGUgaW50ZWdlciBw cm9tb3Rpb25zLiBUaGVyZWZvcmUgdGhlIGJpdC1uZWcgd291bGQgYmUgcGVyZm9ybWVkIG9uIA0K PiA+IGFuICJ1bnNpZ25lZCBpbnQiIC0tIGZhbnRhc3RpYzogbm8gZGVwZW5kZW5jeSBvbiB0aGUg cmVwcmVzZW50YXRpb24gDQo+ID4gb2YgbmVnYXRpdmUgdmFsdWVzIC0tLCBhbmQgdGhlIHJlc3Vs dGFudCBub24tbmVnYXRpdmUgdmFsdWUgLS0gDQo+ID4gZGlyZWN0bHkgZGVmaW5lZCBieSB0aGUg Qw0KPiA+IHN0YW5kYXJkOiA0Mjk0OTY3MjkyLCAweEZGRkZfRkZGQyAtLSB3b3VsZCBiZSB0cnVu Y2F0ZWQgdG8gVUlOVDE2IA0KPiA+ICJtb3JlIGNsZWFubHkiLiAoU3BlYWtpbmcgaW4gImFzc3Vt ZWQNCj4gPiBWUzIwMTV4ODYgdGVybXMiIGFueXdheSkuDQo+ID4NCj4gPiBTby4uLiBJJ20gbm90 IHNheWluZyB5b3Ugc2hvdWxkIGNhcmUgYWJvdXQgbXkgcmV2aWV3OyBob3dldmVyLCBpZiANCj4g PiB5b3UgZG8sIHdvdWxkIHlvdSBwbGVhc2UgY29uc2lkZXIgcmVzdWJtaXR0aW5nIHRoZSBwYXRj aCB3aXRoIA0KPiA+IFVJTlQzMj8gOikNCj4gPg0KPiA+IFRoZXJlJ3MgYW4gYXJndW1lbnQgZm9y IHVzaW5nIFVJTlQzMiBoZXJlIChyZWdhcmRsZXNzIG9mIFZTMjAxNXg4Nik7IA0KPiA+IG5hbWVs eSB0aGF0IHdlIHNob3VsZCBhdm9pZCBiaXQtbmVnIG9uIHNpZ25lZCBpbnRlZ2VyIHR5cGVzIGFu eXdheSwgDQo+ID4gZm9yIG91ciBvd24gc2FuaXR5J3Mgc2FrZS4gSWYgdGhhdCBmaXhlcyBzb21l IGNvbXBpbGVyIHdhcm5pbmdzIHRvbywgDQo+ID4gYWxsIHRoZQ0KPiBiZXR0ZXIuDQo+ID4NCj4g PiBUaGFua3MhDQo+ID4gTGFzemxvDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+IGVkazItZGV2ZWxA bGlzdHMuMDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRr Mi1kZXZlbA0K