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: christian.rodriguez@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Mon, 13 May 2019 13:23:37 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 May 2019 13:23:36 -0700 X-ExtLoop1: 1 Received: from orsmsx107.amr.corp.intel.com ([10.22.240.5]) by fmsmga001.fm.intel.com with ESMTP; 13 May 2019 13:23:35 -0700 Received: from orsmsx111.amr.corp.intel.com (10.22.240.12) by ORSMSX107.amr.corp.intel.com (10.22.240.5) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 13 May 2019 13:23:35 -0700 Received: from orsmsx112.amr.corp.intel.com ([169.254.3.79]) by ORSMSX111.amr.corp.intel.com ([169.254.12.165]) with mapi id 14.03.0415.000; Mon, 13 May 2019 13:23:35 -0700 From: "Christian Rodriguez" To: Laszlo Ersek , "devel@edk2.groups.io" , "felixp@ami.com" CC: "Feng, Bob C" , "Gao, Liming" , "Zhu, Yonghong" Subject: Re: [edk2-devel] [PATCH] BaseTools: Include headers not mentioned in inf are not hashed Thread-Topic: [edk2-devel] [PATCH] BaseTools: Include headers not mentioned in inf are not hashed Thread-Index: AQHVBsJiRL7Y+aN3pkyXMseGtKl8F6Zk09wA///kGCCAAH34gP//i5RAgASnUoCAAACgIIAAkMAA//+LX/A= Date: Mon, 13 May 2019 20:23:34 +0000 Message-ID: <3A7DCC9A944C6149BF832E1C9B718ABC01F1BA1B@ORSMSX112.amr.corp.intel.com> References: <20190509212719.6156-1-christian.rodriguez@intel.com> <9333E191E0D52B4999CE63A99BA663A00302C89341@atlms1.us.megatrends.com> <3A7DCC9A944C6149BF832E1C9B718ABC01EDA3B3@ORSMSX112.amr.corp.intel.com> <9333E191E0D52B4999CE63A99BA663A00302C89592@atlms1.us.megatrends.com> <3A7DCC9A944C6149BF832E1C9B718ABC01EDA3F1@ORSMSX112.amr.corp.intel.com> <3A7DCC9A944C6149BF832E1C9B718ABC01F1B988@ORSMSX112.amr.corp.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: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMWUwNTczMjctNGYyMS00MDliLWE2N2QtOGVlZDM4MDg1MjBmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiMjdwb2RHaVBlMzdxVEM0eEg1ckNsKzM4ek02K0c0TGJcL0RtZW9Ld2hzWmpCRTllZCtsVE9kdDNtcFwvb1NzN3dKIn0= dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Return-Path: christian.rodriguez@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T2ggc29ycnkgYWJvdXQgdGhhdCwgSSBtaXNzcG9rZS4gSSBtZWFudCB0byBzYXkgRWRrMiBJTkYg c3BlYy4NCg0KVGhhbmtzLA0KQ2hyaXN0aWFuDQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPkZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPlNlbnQ6 IE1vbmRheSwgTWF5IDEzLCAyMDE5IDE6MjAgUE0NCj5UbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87 IFJvZHJpZ3VleiwgQ2hyaXN0aWFuDQo+PGNocmlzdGlhbi5yb2RyaWd1ZXpAaW50ZWwuY29tPjsg ZmVsaXhwQGFtaS5jb20NCj5DYzogRmVuZywgQm9iIEMgPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsg R2FvLCBMaW1pbmcNCj48bGltaW5nLmdhb0BpbnRlbC5jb20+OyBaaHUsIFlvbmdob25nIDx5b25n aG9uZy56aHVAaW50ZWwuY29tPg0KPlN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBC YXNlVG9vbHM6IEluY2x1ZGUgaGVhZGVycyBub3QgbWVudGlvbmVkDQo+aW4gaW5mIGFyZSBub3Qg aGFzaGVkDQo+DQo+T24gMDUvMTMvMTkgMjA6NTMsIENocmlzdGlhbiBSb2RyaWd1ZXogd3JvdGU6 DQo+PiBJIHRoaW5rIGEgd2FybmluZyB3b3VsZCBiZSByZWFzb25hYmxlLg0KPj4NCj4+IEkgb25s eSBtZW50aW9uIHRoZSBzcGVjIGJlY2F1c2UgaXQgcmVxdWlyZXMgYWxsIGhlYWRlcnMgdG8gYmUg aW4gdGhlDQo+PiBzb3VyY2VzIHNlY3Rpb24gb2YgdGhlIGluZiwNCj4NCj5UaGF0IGNvdWxkIGJl IHJlcXVpcmVkIGJ5IHRoZSBlZGsyIElORiBzcGVjLCB5ZXMuIEl0J3MgdG90YWxseSBpcnJlbGV2 YW50IGZvciB0aGUNCj5VRUZJIHNwZWMgaG93ZXZlci4gKE9yaWdpbmFsbHkgeW91IHdyb3RlLCAi Wy4uLl0gVGhpcyB3b3VsZCBmb3JjZSB1c2VycyBvZiB0aGUNCj5oYXNoIGZlYXR1cmUgdG8gYmUg VUVGSSBzcGVjIGNvbXBsYWludCBbLi4uXSIuKQ0KPg0KPkxhc3psbw0KPg0KPj4gYnV0IGl0J3Mg bm90IGVuZm9yY2VkIHN0cmljdGx5IGJ5IEJhc2VUb29scy4gVGhvdWdoIHRoZSBoYXNoaW5nIGZl YXR1cmUgcmVsaWVzDQo+b24gdGhpcyByZXF1aXJlbWVudC4gSXQgbm90IGEgYmlnIGRlYWwsIEkg anVzdCB3YW50ZWQgdG8gbWFrZSBzdXJlIGZhbHNlIHBvc2l0aXZlDQo+YnVpbGQgc3VjY2Vzc2Vz IHdlcmUgYWRkcmVzc2VkLg0KPj4NCj4+IFRoYW5rcywNCj4+IENocmlzdGlhbg0KPj4NCj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRv OmxlcnNla0ByZWRoYXQuY29tXQ0KPj4+IFNlbnQ6IE1vbmRheSwgTWF5IDEzLCAyMDE5IDQ6Mzkg QU0NCj4+PiBUbzogUm9kcmlndWV6LCBDaHJpc3RpYW4gPGNocmlzdGlhbi5yb2RyaWd1ZXpAaW50 ZWwuY29tPjsNCj4+PiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgZmVsaXhwQGFtaS5jb20NCj4+PiBD YzogRmVuZywgQm9iIEMgPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4+PiA8 bGltaW5nLmdhb0BpbnRlbC5jb20+OyBaaHUsIFlvbmdob25nIDx5b25naG9uZy56aHVAaW50ZWwu Y29tPg0KPj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IElu Y2x1ZGUgaGVhZGVycyBub3QNCj4+PiBtZW50aW9uZWQgaW4gaW5mIGFyZSBub3QgaGFzaGVkDQo+ Pj4NCj4+PiBPbiAwNS8xMC8xOSAyMTo0NSwgUm9kcmlndWV6LCBDaHJpc3RpYW4gd3JvdGU6DQo+ Pj4+IEhhc2hpbmcgaXMgbm90IGNoYW5naW5nIGZpbGUgZm9ybWF0IHJlcXVpcmVtZW50cyBhcyBC YXNldG9vbHMgaGFzIG5vDQo+Pj4gcmVxdWlyZW1lbnQgb24gdGhpcyBldmVuIHRob3VnaCB0aGUg c3BlYyBkb2VzIGhhdmUgZmlsZSByZXF1aXJlbWVudHMuDQo+Pj4gVGhhdCdzIHdoeSB0aGUgaW5p dGlhbCBwYXRjaCB3YXMgYSB3b3JrYXJvdW5kIG9mIHNvcnRzIGJlY2F1c2UgaXQgaXMNCj4+PiBh bGxvd2VkIGJ5IEJhc2V0b29scyB0byBoYXZlIGxvY2FsIGhlYWRlcnMgbm90IGluIHRoZSBzb3Vy Y2VzIHNlY3Rpb24gb2YNCj50aGUgbWV0YSBmaWxlLg0KPj4+Pg0KPj4+PiBBbHdheXMgYnJlYWtp bmcgdGhlIGJ1aWxkIGlzIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIHRoaXMgQlogYW5kIG15DQo+ Pj4+IHByb2plY3QNCj4+PiBwcmlvcml0aWVzLiBJIGFncmVlIGl0IHNob3VsZCBiZSBkb25lLCBi dXQgaXQncyBvdXQgb2YgbXkgc2NvcGUuDQo+Pj4+DQo+Pj4+IEkgYW0gc3BlY2lmaWNhbGx5IHRh cmdldGluZyB0aGUgaGFzaGluZyBmZWF0dXJlLCB3aGljaCByZWxpZXMgb24NCj4+Pj4gVUVGSSBT cGVjDQo+Pj4gcmVxdWlyZW1lbnRzLg0KPj4+DQo+Pj4gSSB0aGluayBicmVha2luZyB0aGUgYnVp bGQgaW1tZWRpYXRlbHkgKGFuZCB1bmNvbmRpdGlvbmFsbHkpIGNvdWxkDQo+Pj4gY2F0Y2ggcGxh dGZvcm1zIGJ5IHN1cnByaXNlLiBDYW4gd2UgbWFrZSB0aGlzIGEgd2FybmluZyB2cy4gYW4gZXJy b3I/DQo+Pj4gQW5kLCBJJ20gdG90YWxseSBPSyBpZiBpdCdzIGF2YWlsYWJsZSBvbmx5IHdpdGgg LS1oYXNoLCBmb3Igbm93Lg0KPj4+DQo+Pj4gQlRXIC0tIEknbSBub3Qgc3VyZSB3aHkgdGhlIFVF Rkkgc3BlYyBpcyByZWxldmFudCBoZXJlLg0KPj4+DQo+Pj4gVGhhbmtzDQo+Pj4gTGFzemxvDQo+ Pj4NCj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+PiBGcm9tOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbyBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYNCj4+ Pj4+IE9mIEZlbGl4IFBvbHl1ZG92DQo+Pj4+PiBTZW50OiBGcmlkYXksIE1heSAxMCwgMjAxOSAx MjozMiBQTQ0KPj4+Pj4gVG86IFJvZHJpZ3VleiwgQ2hyaXN0aWFuIDxjaHJpc3RpYW4ucm9kcmln dWV6QGludGVsLmNvbT47DQo+Pj4+PiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgJ2xlcnNla0ByZWRo YXQuY29tJyA8bGVyc2VrQHJlZGhhdC5jb20+DQo+Pj4+PiBDYzogRmVuZywgQm9iIEMgPGJvYi5j LmZlbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4+Pj4+IDxsaW1pbmcuZ2FvQGludGVsLmNv bT47IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQo+Pj4+PiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gQmFzZVRvb2xzOiBJbmNsdWRlIGhlYWRlcnMgbm90 DQo+Pj4+PiBtZW50aW9uZWQgaW4gaW5mIGFyZSBub3QgaGFzaGVkDQo+Pj4+Pg0KPj4+Pj4gTXkg c3VnZ2VzdGlvbiB3b3VsZCBiZSB0byBhbHdheXMgYnJlYWsgYSBidWlsZCAobm8gbWF0dGVyIHdo YXQgdGhlDQo+Pj4+PiBoYXNoaW5nIHNldHRpbmdzIGFyZSkuDQo+Pj4+PiBIYXNoaW5nIGlzIGp1 c3QgYW4gb3B0aW1pemF0aW9uIHRlY2huaXF1ZSwgdXNhZ2Ugb2Ygd2hpY2ggc2hvdWxkDQo+Pj4+ PiBub3QgYmUgY2hhbmdpbmcgc291cmNlIGZpbGUgZm9ybWF0dGluZyByZXF1aXJlbWVudHMuDQo+ Pj4+Pg0KPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+Pj4gRnJvbTogUm9k cmlndWV6LCBDaHJpc3RpYW4gW21haWx0bzpjaHJpc3RpYW4ucm9kcmlndWV6QGludGVsLmNvbV0N Cj4+Pj4+PiBTZW50OiBGcmlkYXksIE1heSAxMCwgMjAxOSAzOjE0IFBNDQo+Pj4+Pj4gVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBGZWxpeCBQb2x5dWRvdjsgJ2xlcnNla0ByZWRoYXQuY29tJw0K Pj4+Pj4+IENjOiBGZW5nLCBCb2IgQzsgR2FvLCBMaW1pbmc7IFpodSwgWW9uZ2hvbmcNCj4+Pj4+ PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gQmFzZVRvb2xzOiBJbmNsdWRlIGhl YWRlcnMgbm90DQo+Pj4+Pj4gbWVudGlvbmVkIGluIGluZiBhcmUgbm90IGhhc2hlZA0KPj4+Pj4+ DQo+Pj4+Pj4gQWZ0ZXIgdGFsa2luZyB0byBteSBjb2xsZWFndWVzIGFib3V0IHRoaXMsIHRoZSBk aXJlY3Rpb24gc2VlbXMgdG8NCj4+Pj4+PiBiZSB0byBmdW5kYW1lbnRhbGx5IGNoYW5nZSB0aGlz IEJaLiBJbnN0ZWFkIG9mIGJ1aWxkaW5nIHRoaXMgc29ydA0KPj4+Pj4+IG9mIHdvcmthcm91bmQg ZmVhdHVyZSwgd2Ugc2hvdWxkIHVzZSB0aGUgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbQ0KPj4+ Pj4+IHRoaXMNCj4+Pj4+IGZlYXR1cmUgdG8gY2F1c2UgdGhlIGJ1aWxkIHRvIGJyZWFrIHdoZW4g dGhlIGhhc2ggZmVhdHVyZSBpcyBlbmFibGVkLg0KPj4+Pj4gVGhpcyB3b3VsZCBmb3JjZSB1c2Vy cyBvZiB0aGUgaGFzaCBmZWF0dXJlIHRvIGJlIFVFRkkgc3BlYyBjb21wbGFpbnQuDQo+Pj4+Pj4N Cj4+Pj4+PiBXaGF0IGRvIHlvdSBndXlzIHRoaW5rOyBMYXN6bG8gYW5kIEZlbGl4Pw0KPj4+Pj4+ DQo+Pj4+Pj4gSSdsbCB1cGRhdGUgdGhlIEJaIHdoZW4gSSBnZXQgeW91ciBpbnB1dC4NCj4+Pj4+ Pg0KPj4+Pj4+IFRoYW5rcywNCj4+Pj4+PiBDaHJpc3RpYW4gUm9kcmlndWV6DQo+Pj4+Pj4NCj4+ Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+Pj4gRnJvbTogZGV2ZWxAZWRr Mi5ncm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24NCj4+Pj4+Pj4gQmVo YWxmIE9mIEZlbGl4IFBvbHl1ZG92DQo+Pj4+Pj4+IFNlbnQ6IEZyaWRheSwgTWF5IDEwLCAyMDE5 IDY6NDEgQU0NCj4+Pj4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyAnbGVyc2VrQHJlZGhh dC5jb20nDQo+Pj4+Pj4+IDxsZXJzZWtAcmVkaGF0LmNvbT47IFJvZHJpZ3VleiwgQ2hyaXN0aWFu DQo+Pj4+Pj4+IDxjaHJpc3RpYW4ucm9kcmlndWV6QGludGVsLmNvbT4NCj4+Pj4+Pj4gQ2M6IEZl bmcsIEJvYiBDIDxib2IuYy5mZW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+Pj4+Pj4+IDxs aW1pbmcuZ2FvQGludGVsLmNvbT47IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5j b20+DQo+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6 IEluY2x1ZGUgaGVhZGVycyBub3QNCj4+Pj4+Pj4gbWVudGlvbmVkIGluIGluZiBhcmUgbm90IGhh c2hlZA0KPj4+Pj4+Pg0KPj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+ Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMu aW9dIE9uDQo+Pj4+Pj4+PiBCZWhhbGYgT2YgTGFzemxvIEVyc2VrDQo+Pj4+Pj4+PiBTZW50OiBU aHVyc2RheSwgTWF5IDA5LCAyMDE5IDc6NTMgUE0NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBIZWxsbyBD aHJpc3RpYW4sDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gT24gMDUvMDkvMTkgMjM6MjcsIENocmlzdGlh biBSb2RyaWd1ZXogd3JvdGU6DQo+Pj4+Pj4+Pj4gQlo6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9j b3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4Nw0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gR2V0IGEg bGlzdCBvZiBsb2NhbCBoZWFkZXIgZmlsZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gdGhlDQo+ Pj4+Pj4+Pj4gTWV0YUZpbGUgZm9yIHRoaXMgbW9kdWxlLiBBZGQgdGhvc2UgbG9jYWwgaGVhZGVy IGZpbGVzIGludG8gdGhlDQo+Pj4+Pj4+Pj4gaGFzaGluZyBhbGdvcml0aG0gZm9yIGEgbW9kdWxl LiBJZiBhIGxvY2FsIGhlYWRlciBmaWxlIGlzIG5vdA0KPj4+Pj4+Pj4+IHByZXNlbnQgaW4gdGhl IE1ldGFGaWxlLCB0aGUgbW9kdWxlIHdpbGwgc3RpbGwgYnVpbGQgY29ycmVjdGx5DQo+Pj4+Pj4+ Pj4gdGhvdWdoIHRoZSBoYXNoaW5nIHN5c3RlbSBkaWRuJ3Qga25vdyBhYm91dCBpdCBiZWZvcmUu DQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gUm9kcmlndWV6 DQo+Pj4+Pj4+Pj4gPGNocmlzdGlhbi5yb2RyaWd1ZXpAaW50ZWwuY29tPg0KPj4+Pj4+Pj4+IENj OiBCb2IgRmVuZyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+DQo+Pj4+Pj4+Pj4gQ2M6IExpbWluZyBH YW8gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPj4+Pj4+Pj4+IENjOiBZb25naG9uZyBaaHUgPHlv bmdob25nLnpodUBpbnRlbC5jb20+DQo+Pj4+Pj4+Pj4gLS0tDQo+Pj4+Pj4+Pj4gIEJhc2VUb29s cy9Tb3VyY2UvUHl0aG9uL0F1dG9HZW4vQXV0b0dlbi5weSB8IDI0DQo+Pj4+Pj4+Pj4gKysrKysr KysrKysrKysrKysrKysrKysrDQo+Pj4+Pj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRp b25zKCspDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gSSBzYXcgdGhlIEJaIHNvb24gYWZ0ZXIgaXQgd2Fz IHJlcG9ydGVkLiBJIGFsbW9zdCBjb21tZW50ZWQsIGJ1dA0KPj4+Pj4+Pj4gdWx0aW1hdGVseSBJ IGNvdWxkbid0IGRlY2lkZSB3aGF0IHRoZSByZWFsIHVzZSBjYXNlIHdhcy4NCj4+Pj4+Pj4+DQo+ Pj4+Pj4+PiBXaXRoIHRoaXMgcGFydGljdWxhciB1c2UgY2FzZSAoaS5lLiBJTkYgZmlsZSBpcyBt aXNzaW5nIHNvbWUNCj4+Pj4+Pj4+IG1vZHVsZS1zcGVjaWZpYyBoZWFkZXIgZmlsZXMgdGhhdCBp dCBjb3VsZCBlYXNpbHkgbGlzdCksIEkgdGhpbmsNCj4+Pj4+Pj4+IEkgZGlzYWdyZWUsIG1pbGRs eSAobm90IHRvbyBzdHJvbmdseSkuIEUuZy4sIHdlIGZpeGVkIHN1Y2gNCj4+Pj4+Pj4+IG9taXNz aW9ucyBpbiBhIGJ1bmNoIG9mIElORiBmaWxlcywgbGFzdCBNYXJjaCwgaW4gdGhlIHNlcmllcw0K Pj4+Pj4+Pg0KPj4+Pj4+PiBJIGFncmVlIHdpdGggTGF6bG8uDQo+Pj4+Pj4+IEFjY29yZGluZyB0 byBzZWN0aW9uIDMuOSBvZiB0aGUgSU5GIHNwZWNpZmljYXRpb24gKGh0dHBzOi8vZWRrMi0NCj4+ Pj4+Pj4gZG9jcy5naXRib29rcy5pby9lZGstaWktaW5mLQ0KPj4+Pj4+PiBzcGVjaWZpY2F0aW9u LzNfZWRrX2lpX2luZl9maWxlX2Zvcm1hdC8zOV9bc291cmNlc11fc2VjdGlvbnMuaHRtbA0KPj4+ Pj4+PiApLCBhbGwgc291cmNlIGZpbGVzIChpbmNsdWRpbmcgbW9kdWxlIGhlYWRlciBmaWxlcykg bXVzdCBiZQ0KPj4+Pj4+PiBsaXN0ZWQgaW4gdGhlIFtTb3VyY2VzXSBzZWN0aW9uLg0KPj4+Pj4+ PiBIZXJlIGlzIHRoZSBxdW90ZToNCj4+Pj4+Pj4gIkFsbCBISUkgVW5pY29kZSBmb3JtYXQgZmls ZXMgbXVzdCBiZSBsaXN0ZWQgaW4gdGhpcyBzZWN0aW9uIGFzDQo+Pj4+Pj4+IHdlbGwgYXMgYW55 IG90aGVyICJzb3VyY2UiIHR5cGUgZmlsZSwgc3VjaCBhcyBsb2NhbCBtb2R1bGUgaGVhZGVyDQo+ Pj4+Pj4+IGZpbGVzLCBWZnIgZmlsZXMsDQo+Pj4+PiBldGMuICINCj4+Pj4+Pj4NCj4+Pj4+Pj4g U28sIGlmIGZpbGUgWCBpcyB1c2VkIGJ5IG1vZHVsZSBZLCBidXQgaXMgbm90IGxpc3RlZCBpbiBZ LmluZiwNCj4+Pj4+Pj4gaXQncyBhIHZpb2xhdGlvbiBvZiB0aGUgSU5GIHNwZWMuLCB3aGljaCBt YWtlcyBpdCBhIGJ1ZyB0aGF0IGhhcyB0byBiZQ0KPmZpeGVkLg0KPj4+Pj4+Pg0KPj4+Pj4+Pg0K Pj4+Pj4+PiBQbGVhc2UgY29uc2lkZXIgdGhlIGVudmlyb25tZW50IGJlZm9yZSBwcmludGluZyB0 aGlzIGVtYWlsLg0KPj4+Pj4+Pg0KPj4+Pj4+PiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGlu IHRoaXMgbWVzc2FnZSBtYXkgYmUgY29uZmlkZW50aWFsIGFuZA0KPj4+Pj4+PiBwcm9wcmlldGFy eSB0byBBbWVyaWNhbiBNZWdhdHJlbmRzLCBJbmMuICBUaGlzIGNvbW11bmljYXRpb24gaXMNCj4+ Pj4+Pj4gaW50ZW5kZWQgdG8gYmUgcmVhZCBvbmx5IGJ5IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0 eSB0byB3aG9tIGl0DQo+Pj4+Pj4+IGlzIGFkZHJlc3NlZCBvciBieSB0aGVpciBkZXNpZ25lZS4g SWYgdGhlIHJlYWRlciBvZiB0aGlzIG1lc3NhZ2UNCj4+Pj4+Pj4gaXMgbm90IHRoZSBpbnRlbmRl ZCByZWNpcGllbnQsIHlvdSBhcmUgb24gbm90aWNlIHRoYXQgYW55DQo+Pj4+Pj4+IGRpc3RyaWJ1 dGlvbiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFueSBmb3JtLCBpcyBzdHJpY3RseQ0KPj4+Pj4+PiBw cm9oaWJpdGVkLiAgUGxlYXNlIHByb21wdGx5IG5vdGlmeSB0aGUgc2VuZGVyIGJ5IHJlcGx5IGUt bWFpbCBvcg0KPj4+Pj4+PiBieSB0ZWxlcGhvbmUgYXQgNzcwLTI0Ni04NjAwLCBhbmQNCj4+Pj4+ IHRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxsIGNvcGllcyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0K Pj4+Pj4+PiABICAgbCAgIEsYICAgcSB5IGUgICxqICAgICAgYSAgKyAgVSAgP0UgZSAgIHcg040g ICBpICAgdk0gICAgICo/ICBeICB/ICAsaiAgIE42IMuteThiIDopICBtDQo+Pw0KPj4+Pj4+PiDo upsiICAgIH15IE01ICB7IN63IGroupMgICAgeiAgICAneiAgIGgrICBsICAnICAgciAgehttICAg eSA2ICAuIMioIA8geiAgICDsubchICstICAgICDns4p7XiAgJg0KPj4+Pj4NCj4+Pj4+IFBsZWFz ZSBjb25zaWRlciB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIHByaW50aW5nIHRoaXMgZW1haWwuDQo+ Pj4+Pg0KPj4+Pj4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBpbiB0aGlzIG1lc3NhZ2UgbWF5 IGJlIGNvbmZpZGVudGlhbCBhbmQNCj4+Pj4+IHByb3ByaWV0YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0 cmVuZHMsIEluYy4gIFRoaXMgY29tbXVuaWNhdGlvbiBpcw0KPj4+Pj4gaW50ZW5kZWQgdG8gYmUg cmVhZCBvbmx5IGJ5IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIGl0IGlzDQo+Pj4+ PiBhZGRyZXNzZWQgb3IgYnkgdGhlaXIgZGVzaWduZWUuIElmIHRoZSByZWFkZXIgb2YgdGhpcyBt ZXNzYWdlIGlzDQo+Pj4+PiBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBu b3RpY2UgdGhhdCBhbnkgZGlzdHJpYnV0aW9uDQo+Pj4+PiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFu eSBmb3JtLCBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLiAgUGxlYXNlDQo+Pj4+PiBwcm9tcHRseSBu b3RpZnkgdGhlIHNlbmRlciBieSByZXBseSBlLW1haWwgb3IgYnkgdGVsZXBob25lIGF0DQo+Pj4+ PiA3NzAtMjQ2LTg2MDAsIGFuZA0KPj4+IHRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxsIGNvcGll cyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0KPj4+Pj4gASAgIGwgICBLGCAgIHEgeSBlICAsaiAgICAg IGEgICsgIFUgID9FIGUgICB3INOOeyAgaSAgIHZNICAgICAqPyAgXiAgfyAgLGogICBOOSDLrXk4 YiA6KSAgbSAgPw0KPj4+Pj4g6LqbIiAgICB9eSBNNSAgeyDetyBq6LqTICAgIHogICAgJ3ogICBo KyAgbCAgJyAgIHIgIHobbSAgIHkgNiAgLiDIqCAPIHogICAg7Lm3ISArLSAgICAg57OKe14gICYN Cj4+DQo+Pg0KPj4gDQo+Pg0KDQo=