From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.68.71; helo=eur02-he1-obe.outbound.protection.outlook.com; envelope-from=marvin.haeuser@outlook.com; receiver=edk2-devel@lists.01.org Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-oln040092068071.outbound.protection.outlook.com [40.92.68.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1005522402E1A for ; Thu, 1 Mar 2018 09:22:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=y3Z5xwo2LBETSc6H2Sz5kDdiBnLa4NdgUqCHqccv0So=; b=ubsEArgJFwKgvCvBD6OFBwEYxnfnR+GCuuatNLLDhZRmS4lZFGnvGz76KFgM+4bEhpF86Mp/cOu2j1/GPEwZta2GqH1OtJh+9qo4BKU+r+zwanvXrIkkcV5zp3l4qbY468sA+qt/X97cQRVclFi8mOCYWDIFjB45fc3cYYhN63LdIleotPrSMpx6krHh3pt5rm11m+pFFPgIAA70abrmuGzkz/Fhyo+Z7qJAnvnNEKrksw6wgdJF2+LV2chhpfuMvm3FSLlBAt/Ajs9Cz2dMxnzecrsa+RCU0nokcLlWA4Yp7nJ207rDNgNcITs5kesMdsr9kCRIz7I4bm/G1PvLKg== Received: from HE1EUR02FT007.eop-EUR02.prod.protection.outlook.com (10.152.10.56) by HE1EUR02HT023.eop-EUR02.prod.protection.outlook.com (10.152.11.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Thu, 1 Mar 2018 17:28:21 +0000 Received: from AM4PR06MB1491.eurprd06.prod.outlook.com (10.152.10.57) by HE1EUR02FT007.mail.protection.outlook.com (10.152.10.244) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15 via Frontend Transport; Thu, 1 Mar 2018 17:28:21 +0000 Received: from AM4PR06MB1491.eurprd06.prod.outlook.com ([fe80::7d81:9d96:1051:d20d]) by AM4PR06MB1491.eurprd06.prod.outlook.com ([fe80::7d81:9d96:1051:d20d%14]) with mapi id 15.20.0527.022; Thu, 1 Mar 2018 17:28:21 +0000 From: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= To: "edk2-devel@lists.01.org" , "Kinney, Michael D" CC: "liming.gao@intel.com" , "lersek@redhat.com" Thread-Topic: [edk2] [PATCH 1/2] MdePkg/Base.h: Ensure safe bitwise operations. Thread-Index: AQHTr+q3IxS4cmiO9UyN5haxybivfqO4qaYAgAAEg7CAAPiiAIAABh8ggAArWgCAAAM54IAASveAgAACYDCAAHREgIAAnJxwgABpMoCAAAIVsA== Date: Thu, 1 Mar 2018 17:28:21 +0000 Message-ID: References: <62c9363b-7f27-cfff-492a-560660727b86@redhat.com> <366ffc0c-b55f-a3c1-973e-b80d3dd07d26@redhat.com> <2b22bfbd-24ce-e26c-9f1c-e5ba2816b48f@redhat.com> In-Reply-To: Accept-Language: de-DE, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:C5320CAE54192CCA855D42BDD6E28CF8FE0FA64CAE74F6E6C971732D8FCA20A9; UpperCasedChecksum:AE984AFDD45E9CA3B9694DEB8FC0E478D92A19879F243BA446F7EED54AE22352; SizeAsReceived:8109; Count:46 x-tmn: [4iLyXPWN+7VeqcY7/jO5sH4miKfhAeiV] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1EUR02HT023; 6:ALuEcNjsfj6NQx27UMvrtcxAptTtVVdc/MA+IfWIN6ZJWW3los+1X1JHZoQns7dyulsPYZwjv3Wa90xBMv3ncdkjX4brE046CmglcYopb1qLx7NZHZZ0rhzJfTuyXUA4yv6UXdhKaLc+SKXRrdXi/BHmNMnI+KvlfwmYHpoG8HEotJFlqANUNEIUtpj9PNvAV6jnGgE8H9MtiCVVEjeHBoPXxOexaLGwRmp7u8sH0egLU4dDk7Ci6vBf2Us5Kf4OJBUE4+kHbl8WY0JhwTXKnaGMjlOSBYtOePJuJ0jIC0zJIdvVNfowMlqdhdAsH+XS5wvTiNLV7Iz473cxc9HJoQOVsc9OK0Md5sGBqmEAezM=; 5:x+soKoriAusiqvmeqoO/V1rQuu29aMcp2jVo6nz4lqHup45gAXuCrjAoRYEx/fSp2LTa8XfU26jU7pFLfGz99+J1coishxZ2DB5j61dEIVURCcCmZX69OYDCRNUFQ4/apvou0a/2Kty+HcaJFaz4PYdU4z+y8LOViJPGQnIioLo=; 24:NC1pX1WBdVWrwYfjlWWRS5LRm421rY5k/a7H38ZkbvFTM9x+csyWpDBKKhkvWwd77OVdZqJA731TdpFNxpoEhfQBKAPMB3f/4Z0MnBgEwC8=; 7:5JjYn3D7rXorpIcdW8LtQa3ueeqVZalnNspMbvYNLCmMopfO5Iv4VT8xSIdYT2S6Jk2jVuLvakKnc9msRZ71CUKJZemZ07SQpPUj+iWYhOA1fBOgpqBwtM4zmtxxi3bQzakpmgpoQCnut7y9+7LsdNkwwkgp13A4I7j3VSlNEfI8i5oTQVop3yUvDG5bR2+71rn+948RVF7gdlpQxiREUakXlCW+gs6ZocLyu51t3xNj+Gy/Xupp4VhEy+7wKEZP x-incomingheadercount: 46 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:HE1EUR02HT023; x-ms-traffictypediagnostic: HE1EUR02HT023: x-ms-office365-filtering-correlation-id: 25f34bdf-84cd-4c83-f30e-08d57f99d474 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:HE1EUR02HT023; BCL:0; PCL:0; RULEID:; SRVR:HE1EUR02HT023; x-forefront-prvs: 05986C03E0 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:HE1EUR02HT023; H:AM4PR06MB1491.eurprd06.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25f34bdf-84cd-4c83-f30e-08d57f99d474 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2018 17:28:21.3326 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR02HT023 Subject: Re: [PATCH 1/2] MdePkg/Base.h: Ensure safe bitwise operations. 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: Thu, 01 Mar 2018 17:22:18 -0000 Content-Language: de-DE Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGV5IE1pa2UsDQoNClRoYW5rcyBmb3IgeW91ciByZXBseS4NClVuZGVyIHRoZXNlIGNpcmN1bXN0 YW5jZXMgSSB3aWxsIG5vdCBzdWJtaXQgYSBWMi4gSSBob3BlIHlvdSBmaW5kIGEgZGVjZW50IHNl dCBvZiB0ZXN0cyB0byBiZSBwZXJmb3JtZWQuDQoNClJlZ2FyZHMsDQpNYXJ2aW4uDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgTWFyY2ggMSwgMjAxOCA2 OjE5IFBNDQo+IFRvOiBNYXJ2aW4gSMOkdXNlciA8TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+ OyBlZGsyLQ0KPiBkZXZlbEBsaXN0cy4wMS5vcmc7IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IGxlcnNla0ByZWRoYXQuY29tOyBHYW8sIExpbWlu ZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDEv Ml0gTWRlUGtnL0Jhc2UuaDogRW5zdXJlIHNhZmUgYml0d2lzZQ0KPiBvcGVyYXRpb25zLg0KPiAN Cj4gTWFydmluLA0KPiANCj4gVGhhbmtzLiAgSSBhZ3JlZSB0aGF0IHRoZXJlIG1heSBiZSBzb21l IGNvbXBpbGVyIGJlaGF2aW9yIGFzc3VtcHRpb25zLg0KPiANCj4gSSB3b3VsZCBwcmVmZXIgd2Ug YWRkIHRvIEJhc2UuaCB0ZXN0cyBmb3IgdGhlIGV4cGVjdGVkIGJlaGF2aW9yDQo+IGFzc3VtcHRp b25zIGFuZCBicmVhayB0aGUgYnVpbGQgaWYgdGhlIGNvbXBpbGVyIGRvZXMgbm90IGFkaGVyZSB0 byB0aG9zZQ0KPiBhc3N1bXB0aW9ucy4gIFdlIGhhdmUgYWxyZWFkeSBhZGRlZCB0aGVzZSB0byB2 ZXJpZnkgdGhlIHNpemUgb2YgYmFzZSB0eXBlcw0KPiBhbmQgdGhlIHNpemUgb2YgZW51bXMuDQo+ IA0KPiAvKioNCj4gICBWZXJpZmllcyB0aGUgc3RvcmFnZSBzaXplIG9mIGEgZ2l2ZW4gZGF0YSB0 eXBlLg0KPiANCj4gICBUaGlzIG1hY3JvIGdlbmVyYXRlcyBhIGRpdmlkZSBieSB6ZXJvIGVycm9y IG9yIGEgemVybyBzaXplIGFycmF5IGRlY2xhcmF0aW9uIGluDQo+ICAgdGhlIHByZXByb2Nlc3Nv ciBpZiB0aGUgc2l6ZSBpcyBpbmNvcnJlY3QuICBUaGVzZSBhcmUgZGVjbGFyZWQgYXMgImV4dGVy biIgc28NCj4gICB0aGUgc3BhY2UgZm9yIHRoZXNlIGFycmF5cyB3aWxsIG5vdCBiZSBpbiB0aGUg bW9kdWxlcy4NCj4gDQo+ICAgQHBhcmFtICBUWVBFICBUaGUgZGF0ZSB0eXBlIHRvIGRldGVybWlu ZSB0aGUgc2l6ZSBvZi4NCj4gICBAcGFyYW0gIFNpemUgIFRoZSBleHBlY3RlZCBzaXplIGZvciB0 aGUgVFlQRS4NCj4gDQo+ICoqLw0KPiAjZGVmaW5lIFZFUklGWV9TSVpFX09GKFRZUEUsIFNpemUp IGV4dGVybiBVSU5UOA0KPiBfVmVyaWZ5U2l6ZW9mIyNUWVBFWyhzaXplb2YoVFlQRSkgPT0gKFNp emUpKSAvIChzaXplb2YoVFlQRSkgPT0gKFNpemUpKV0NCj4gDQo+IC8vDQo+IC8vIFZlcmlmeSB0 aGF0IFByb2Nlc3NvckJpbmQuaCBwcm9kdWNlZCBVRUZJIERhdGEgVHlwZXMgdGhhdCBhcmUgY29t cGxpYW50DQo+IHdpdGggLy8gU2VjdGlvbiAyLjMuMSBvZiB0aGUgVUVGSSAyLjMgU3BlY2lmaWNh dGlvbi4NCj4gLy8NCj4gVkVSSUZZX1NJWkVfT0YgKEJPT0xFQU4sIDEpOw0KPiBWRVJJRllfU0la RV9PRiAoSU5UOCwgMSk7DQo+IFZFUklGWV9TSVpFX09GIChVSU5UOCwgMSk7DQo+IFZFUklGWV9T SVpFX09GIChJTlQxNiwgMik7DQo+IFZFUklGWV9TSVpFX09GIChVSU5UMTYsIDIpOw0KPiBWRVJJ RllfU0laRV9PRiAoSU5UMzIsIDQpOw0KPiBWRVJJRllfU0laRV9PRiAoVUlOVDMyLCA0KTsNCj4g VkVSSUZZX1NJWkVfT0YgKElOVDY0LCA4KTsNCj4gVkVSSUZZX1NJWkVfT0YgKFVJTlQ2NCwgOCk7 DQo+IFZFUklGWV9TSVpFX09GIChDSEFSOCwgMSk7DQo+IFZFUklGWV9TSVpFX09GIChDSEFSMTYs IDIpOw0KPiANCj4gLy8NCj4gLy8gVGhlIGZvbGxvd2luZyB0aHJlZSBlbnVtIHR5cGVzIGFyZSB1 c2VkIHRvIHZlcmlmeSB0aGF0IHRoZSBjb21waWxlciAvLw0KPiBjb25maWd1cmF0aW9uIGZvciBl bnVtIHR5cGVzIGlzIGNvbXBsaWFudCB3aXRoIFNlY3Rpb24gMi4zLjEgb2YgdGhlIC8vIFVFRkkg Mi4zDQo+IFNwZWNpZmljYXRpb24uIFRoZXNlIGVudW0gdHlwZXMgYW5kIGVudW0gdmFsdWVzIGFy ZSBub3QgLy8gaW50ZW5kZWQgdG8gYmUNCj4gdXNlZC4gQSBwcmVmaXggb2YgJ19fJyBpcyB1c2Vk IGF2b2lkIGNvbmZsaWN0cyB3aXRoIC8vIG90aGVyIHR5cGVzLg0KPiAvLw0KPiB0eXBlZGVmIGVu dW0gew0KPiAgIF9fVmVyaWZ5VWludDhFbnVtVmFsdWUgPSAweGZmDQo+IH0gX19WRVJJRllfVUlO VDhfRU5VTV9TSVpFOw0KPiANCj4gdHlwZWRlZiBlbnVtIHsNCj4gICBfX1ZlcmlmeVVpbnQxNkVu dW1WYWx1ZSA9IDB4ZmZmZg0KPiB9IF9fVkVSSUZZX1VJTlQxNl9FTlVNX1NJWkU7DQo+IA0KPiB0 eXBlZGVmIGVudW0gew0KPiAgIF9fVmVyaWZ5VWludDMyRW51bVZhbHVlID0gMHhmZmZmZmZmZg0K PiB9IF9fVkVSSUZZX1VJTlQzMl9FTlVNX1NJWkU7DQo+IA0KPiBWRVJJRllfU0laRV9PRiAoX19W RVJJRllfVUlOVDhfRU5VTV9TSVpFLCA0KTsgVkVSSUZZX1NJWkVfT0YNCj4gKF9fVkVSSUZZX1VJ TlQxNl9FTlVNX1NJWkUsIDQpOyBWRVJJRllfU0laRV9PRg0KPiAoX19WRVJJRllfVUlOVDMyX0VO VU1fU0laRSwgNCk7DQo+IA0KPiANCj4gTWlrZQ0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC0NCj4g PiBib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIE1hcnZpbiBIw6R1c2VyDQo+ID4g U2VudDogVGh1cnNkYXksIE1hcmNoIDEsIDIwMTggMzoxMSBBTQ0KPiA+IFRvOiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZzsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+DQo+ID4gQ2M6IGxlcnNla0ByZWRoYXQuY29tOyBHYW8sIExpbWluZw0KPiA+IDxs aW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAxLzJd IE1kZVBrZy9CYXNlLmg6IEVuc3VyZSBzYWZlIGJpdHdpc2UNCj4gPiBvcGVyYXRpb25zLg0KPiA+ DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBTZW50OiBU aHVyc2RheSwgTWFyY2ggMSwgMjAxOCAyOjQyIEFNDQo+ID4gPiBUbzogTWFydmluIEjDpHVzZXIg PE1hcnZpbi5IYWV1c2VyQG91dGxvb2suY29tPjsgZWRrMi0NCj4gPiA+IGRldmVsQGxpc3RzLjAx Lm9yZzsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ DQo+ID4gPiBDYzogbGVyc2VrQHJlZGhhdC5jb207IEdhbywgTGltaW5nDQo+ID4gPGxpbWluZy5n YW9AaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMS8yXSBNZGVQ a2cvQmFzZS5oOiBFbnN1cmUNCj4gPiBzYWZlIGJpdHdpc2UNCj4gPiA+IG9wZXJhdGlvbnMuDQo+ ID4gPg0KPiA+ID4gSGkgTWFydmluLA0KPiA+ID4NCj4gPiA+IFllcy4gIEkgaGF2ZSBiZWVuIHJl YWRpbmcgdGhlIHRocmVhZC4NCj4gPiA+DQo+ID4gPiBMb3RzIG9mIHJlYWxseSBnb29kIGFuYWx5 c2lzLg0KPiA+ID4NCj4gPiA+IEhvd2V2ZXIsIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gbWUg dG8gYWRkICd1JyB0bw0KPiA+IHRoZSBzbWFsbGVyIEJJVHh4LA0KPiA+ID4gQkFTRXh4LCBhbmQg U0laRXh4IG1hY3JvcyBpZiB3ZSBoYXZlIGNvbnN0YW50cyBpbg0KPiA+IG90aGVyIHBsYWNlcyB0 aGF0IGRvIG5vdA0KPiA+ID4gYWRkIHRoZSAndScuIEkgdGhpbmsgdGhpcyBwYXRjaCBtYXkgaW5j cmVhc2UgdGhlDQo+ID4gaW5jb25zaXN0ZW5jeSBvZiB0aGUgd2hvbGUNCj4gPiA+IHRyZWUuDQo+ ID4NCj4gPiBCYXNpY2FsbHkgYXBwbHlpbmcgdGhpcyB0byB0aGUgQklUIGRlZmluaXRpb25zIGZp cnN0IHdhcyB0byBzZWUNCj4gPiB3aGV0aGVyIHRoZSBjb25jZXB0IGlzIHBlcmNlcHRlZCBhcyBh IHdob2xlLg0KPiA+IE9mIGNvdXJzZSB0aGlzIHNob3VsZCBiZSBhcHBsaWVkIHRvIGFsbCBkZWZp bml0aW9ucyB0aGF0IGFyZSBhdCBzb21lDQo+ID4gcG9pbnQgdXNlZCBhcyBhIG1hc2ssIHdoaWNo IEkgY29udGludWVkIHRvIGRvIGxvY2FsbHkuDQo+ID4NCj4gPiA+DQo+ID4gPiBJZiB3ZSBkb27i gJl0IG1ha2UgdGhpcyBjaGFuZ2UsIHdoYXQgdHlwZXMgb2YgaXNzdWVzIGRvDQo+ID4gd2UgbmVl ZCB0byBmaXggYW5kDQo+ID4gPiB3aGF0IHdvdWxkIHRoZSBmaXggZW50YWlsPw0KPiA+DQo+ID4g VG8gYmUgaG9uZXN0LCBhY3R1YWwgaXNzdWVzIGFyZSB2ZXJ5IHVubGlrZWx5IHRvIGhhcHBlbiBh cyBhbGwNCj4gPiBhcmNoaXRlY3R1cmVzIHN1cHBvcnRlZCBieSB0aGUgc3BlY2lmaWNhdGlvbiB1 c2UgdHdvLWNvbXBsZW1lbnRzIGZvcg0KPiA+IG5lZ2F0aXZlIHZhbHVlcy4NCj4gPiBGdXJ0aGVy bW9yZSwgYWxsIGN1cnJlbnRseSBzdXBwb3J0ZWQgY29tcGlsZXJzIGltcGxlbWVudCBiaXR3aXNl DQo+ID4gb3BlcmF0aW9ucyBmb3Igc2lnbmVkIGludGVnZXJzIHNlZW1pbmdseSB0aGUgc2FtZSB3 YXkgYXMgZm9yIHVuc2lnbmVkDQo+ID4gdHlwZXMuDQo+ID4gSG93ZXZlciwgaWYgZWl0aGVyIHdp bGwgY2hhbmdlIGluIHRoZSBmdXR1cmUsIGNvZGUgd2lsbCBzaWxlbnRseSBicmVhaw0KPiA+IGFz IGluIG1hbnkgbWFzayBvcGVyYXRpb25zIHdpbGwgcmV0dXJuIHZhbHVlcyBub3QgaW50ZW5kZWQg YnkgdGhlDQo+ID4gY29kZS4NCj4gPg0KPiA+IElmIHlvdSBhcmUgbm90IGludGVyZXN0ZWQgaW4g dGhlIHNvbHV0aW9uIGNvbmNlcHRzIHByZXZpb3VzbHkNCj4gPiBkaXNjdXNzZWQsIEkgcHJvcG9z ZSBhcyBsZWFzdCBhIFVuaXQgVGVzdCB0byB2ZXJpZnkgdGhlIG9wZXJhdGlvbnMNCj4gPiB1c2Vk IGluIHByYXhpcyB3b3JrIG91dCBmaW5lLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IE1hcnZpbi4N Cj4gPg0KPiA+ID4NCj4gPiA+IE1pa2UNCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IE1hcnZpbiBIw6R1c2VyDQo+ID4gW21haWx0bzpNYXJ2 aW4uSGFldXNlckBvdXRsb29rLmNvbV0NCj4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFy eSAyOCwgMjAxOCAxMDo1MiBBTQ0KPiA+ID4gPiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7 IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4N Cj4gPiA+ID4gQ2M6IGxlcnNla0ByZWRoYXQuY29tOyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0Bp bnRlbC5jb20+DQo+ID4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDEvMl0gTWRlUGtn L0Jhc2UuaDoNCj4gPiBFbnN1cmUgc2FmZSBiaXR3aXNlDQo+ID4gPiA+IG9wZXJhdGlvbnMuDQo+ ID4gPiA+DQo+ID4gPiA+IEhleSBNaWtlLA0KPiA+ID4gPg0KPiA+ID4gPiBZb3UgYXJlIHJpZ2h0 LCB0aGUgcGF0Y2ggd2FzIHByZW1hdHVyZSBiZWNhdXNlIEkNCj4gPiBkaWQgbm90IGNvbnNpZGVy IGFueQ0KPiA+ID4gPiAnaW5jb3JyZWN0JyBvciAnY2xldmVyJyB1c2FnZXMgb2YgdGhlc2UNCj4g PiBkZWZpbml0aW9ucy4NCj4gPiA+ID4gVGhlIHByb2JsZW0gaXMgbm90IHByaW1hcmlseSB1bmRl ZmluZWQgYmVoYXZpb3IsDQo+ID4gYnV0DQo+ID4gPiA+IGltcGxlbWVudGF0aW9uLWRlZmluZWQg YmVoYXZpb3IuDQo+ID4gPiA+IEFueSBiaXR3aXNlIG9wZXJhdGlvbiB0byBhIHNpZ25lZCBpbnRl Z2VyIHJlc3VsdHMNCj4gPiBpbg0KPiA+ID4gPiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIGJlaGF2 aW9yLCB3aGljaCBjb21waWxlcnMNCj4gPiB1c3VhbGx5IGRvIG5vdCB3YXJuDQo+ID4gPiA+IGFi b3V0LCB3aGlsZSB3ZWxsLWRlZmluZWQgYmVoYXZpb3IgaXMgZGVzaXJhYmxlLg0KPiA+ID4gPg0K PiA+ID4gPiBIYXZlIHlvdSByZWFkIExhc3psbydzIGNvbW1lbnRzPyBUaGV5IGFyZSBxdWl0ZQ0K PiA+IGdvb2QgYXQgc2hvd2luZyB1cA0KPiA+ID4gPiB3aGF0IGxvZ2ljcyBtaWdodCBiZSBhbmQg YXJlIHJlbGllZCBvbiwgd2hpY2gNCj4gPiBob3dldmVyIGFyZSBub3QNCj4gPiA+ID4gZ3VhcmFu dGVlZCB0byBiZSB0aGUgY2FzZSBmb3INCj4gPiA+ID4gbm9uLXg4NiBhcmNoaXRlY3R1cmVzLA0K PiA+ID4gPiBvciBldmVuIGZvciB4ODYgaW4gY2FzZSBhIGRldmVsb3BtZW50IHRlYW0gZGVjaWRl cw0KPiA+IHRvIGNoYW5nZSB0aGlzDQo+ID4gPiA+IGJlaGF2aW9yIHNvbWUgZGF5IG9yIGEgbmV3 IHRvb2xjaGFpbiBub3QgaGF2aW5nDQo+ID4gYWRvcHRlZCB0aGVtIGluIHRoZQ0KPiA+ID4gPiBm aXJzdCBwbGFjZSBzaG91bGQgYmUgYWRkZWQuDQo+ID4gPiA+DQo+ID4gPiA+IEZ1cnRoZXJtb3Jl LCBJIGRvbid0IHRoaW5rIGluY29uc2lzdGVuY3kgYmV0d2Vlbg0KPiA+IHRoZSBkZWZpbml0aW9u cw0KPiA+ID4gPiBnZW5lcmFsbHkgaXMgZGVzaXJhYmxlLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFu a3MsDQo+ID4gPiA+IE1hcnZpbi4NCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVh cnkgMjgsIDIwMTggNzozNyBQTQ0KPiA+ID4gPiA+IFRvOiBNYXJ2aW4gSMOkdXNlciA8TWFydmlu LkhhZXVzZXJAb3V0bG9vay5jb20+Ow0KPiA+IGVkazItDQo+ID4gPiA+ID4gZGV2ZWxAbGlzdHMu MDEub3JnOyBMYXN6bG8gRXJzZWsNCj4gPiA8bGVyc2VrQHJlZGhhdC5jb20+Ow0KPiA+ID4gPiBL aW5uZXksIE1pY2hhZWwgRA0KPiA+ID4gPiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4N Cj4gPiA+ID4gPiBDYzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiA+ID4g PiA+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDEvMl0gTWRlUGtnL0Jhc2UuaDoNCj4gPiBF bnN1cmUNCj4gPiA+ID4gc2FmZSBiaXR3aXNlDQo+ID4gPiA+ID4gb3BlcmF0aW9ucy4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IEhpIE1hcnZpbiwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgZG8gbm90 IHRoaW5rIGFkZCAndScgdG8gdGhlIEJJVHh4IGRlZmluZXMgZG9lcw0KPiA+IG5vdA0KPiA+ID4g PiBzZWVtIHRvIGJlIGEgY29tcGxldGUNCj4gPiA+ID4gPiBzb2x1dGlvbi4gIENvZGUgY2FuIHVz ZSBpbnRlZ2VyIGNvbnN0YW50cyBpbiBsb3RzDQo+ID4gb2YNCj4gPiA+ID4gcGxhY2VzIGluY2x1 ZGluZyBvdGhlcg0KPiA+ID4gPiA+ICNkZWZpbmVzIG9yIGlubGluZSBpbiBleHByZXNzaW9ucy4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IElmIHdlIGZvbGxvdyB5b3VyIHN1Z2dlc3Rpb24gd291bGRu 4oCZdCB3ZSBuZWVkIHRvDQo+ID4gYWRkDQo+ID4gPiA+ICd1JyB0byBldmVyeSBjb25zdGFudA0K PiA+ID4gPiA+IHRoYXQgZG9lcyBub3Qgc3RhcnQgd2l0aCBhICctJw0KPiA+ID4gPiA+IGFuZCBt aWdodCBwb3RlbnRpYWxseSBiZSB1c2VkIHdpdGggYSBiaXQNCj4gPiBvcGVyYXRpb24/DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBDb21waWxlcnMgYXJlIGRvaW5nIGEgZ29vZCBqb2Igb2YgZmluZGlu Zw0KPiA+IHVuZGVmaW5lZA0KPiA+ID4gPiBiZWhhdmlvci4gIElzbuKAmXQgdGhhdA0KPiA+ID4g PiA+IHN1ZmZpY2llbnQgdG8gZml4IHRoZSBpc3N1ZXMgaWRlbnRpZmllZD8NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IE1pa2UNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+ID4gPiA+IEZyb206IE1hcnZpbiBIw6R1c2VyDQo+ID4gPiA+IFttYWls dG86TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb21dDQo+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNk YXksIEZlYnJ1YXJ5IDI4LCAyMDE4IDY6MjEgQU0NCj4gPiA+ID4gPiA+IFRvOiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZzsgTGFzemxvIEVyc2VrDQo+ID4gPiA+IDxsZXJzZWtAcmVkaGF0LmNvbT4N Cj4gPiA+ID4gPiA+IENjOiBLaW5uZXksIE1pY2hhZWwgRA0KPiA+IDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47DQo+ID4gPiA+IEdhbywgTGltaW5nDQo+ID4gPiA+ID4gPiA8bGltaW5nLmdh b0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSCAxLzJd IE1kZVBrZy9CYXNlLmg6DQo+ID4gPiA+IEVuc3VyZSBzYWZlIGJpdHdpc2UNCj4gPiA+ID4gPiA+ IG9wZXJhdGlvbnMuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSGV5IExhc3psbywNCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBJIGN1dCB5b3VyIHJhbnQgYmVjYXVzZSBpdCBpcyBub3Qgc3Ry aWN0bHkNCj4gPiByZWxhdGVkDQo+ID4gPiA+IHRvIHRoaXMgcGF0Y2guDQo+ID4gPiA+ID4gPiBI b3dldmVyLCB0aGFuayB5b3UgZm9yIGNvbXBvc2luZyBpdA0KPiA+IG5ldmVydGhlbGVzcw0KPiA+ ID4gPiBiZWNhdXNlIGl0IHdhcyBhbg0KPiA+ID4gPiA+ID4gaW50ZXJlc3RpbmcgcmVhZCENCj4g PiA+ID4gPiA+IENvbW1lbnRzIGFyZSBpbmxpbmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g TWljaGFlbCwgTGltaW5nLA0KPiA+ID4gPiA+ID4gRG8geW91IGhhdmUgYW55IGNvbW1lbnRzIHJl Z2FyZGluZyB0aGUNCj4gPiBkaXNjdXNzaW9uPw0KPiA+ID4gPiA+ID4gVGhhbmtzIGluIGFkdmFu Y2UuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQmVzdCByZWdhcmRzLA0KPiA+ID4gPiA+ID4g TWFydmluLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+ID4gPiA+ID4gRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNv bT4NCj4gPiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFyeSAyOCwgMjAxOCAyOjU3 IFBNDQo+ID4gPiA+ID4gPiA+IFRvOiBNYXJ2aW4gSMOkdXNlcg0KPiA+IDxNYXJ2aW4uSGFldXNl ckBvdXRsb29rLmNvbT47DQo+ID4gPiA+IGVkazItDQo+ID4gPiA+ID4gPiA+IGRldmVsQGxpc3Rz LjAxLm9yZw0KPiA+ID4gPiA+ID4gPiBDYzogbWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb207DQo+ ID4gPiA+IGxpbWluZy5nYW9AaW50ZWwuY29tDQo+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBb ZWRrMl0gW1BBVENIIDEvMl0NCj4gPiBNZGVQa2cvQmFzZS5oOg0KPiA+ID4gPiBFbnN1cmUNCj4g PiA+ID4gPiA+IHNhZmUgYml0d2lzZQ0KPiA+ID4gPiA+ID4gPiBvcGVyYXRpb25zLg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBPbiAwMi8yOC8xOCAxMjo0MywgTWFydmluIEjDpHVzZXIg d3JvdGU6DQo+ID4gPiA+ID4gPiBbLi4uXQ0KPiA+ID4gPiA+ID4gPiA+IGFzIGVkazIgZG9lcyBu b3Qgc3VwcG9ydCB2ZW5kb3IgZXh0ZW5zaW9ucw0KPiA+IHN1Y2gNCj4gPiA+ID4gYXMNCj4gPiA+ ID4gPiA+IF9faW50MTI4IGFueXdheS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gTm90 ICp5ZXQqLCBJIGd1ZXNzIDopIFVFRkkgMi43IGRvZXMgbGlzdA0KPiA+IFVJTlQxMjgNCj4gPiA+ ID4gLw0KPiA+ID4gPiA+ID4gSU5UMTI4LCBpbiB0YWJsZSA1LCAiQ29tbW9uDQo+ID4gPiA+ID4g PiA+IFVFRkkgRGF0YSBUeXBlcyIuIEkgYmVsaWV2ZSB0aG9zZSB0eXBlZGVmcw0KPiA+IG1heQ0K PiA+ID4gPiBoYXZlDQo+ID4gPiA+ID4gPiBiZWVuIGFkZGVkIGZvciBSSVNDLVYuDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gT2ggeWlrZXMsIEkgaGF2ZSBub3Qgbm90aWNlZCB0aGF0IGJlZm9y ZS4NCj4gPiBCZXNpZGVzDQo+ID4gPiA+IHRoYXQgSSB3b25kZXIgaG93DQo+ID4gPiA+ID4gPiB0 aGF0IHdpbGwgYmUgaW1wbGVtZW50ZWQgYnkgZWRrMiBmb3Igbm9uLSBSSVNDLQ0KPiA+IFYNCj4g PiA+ID4gcGxhdGZvcm1zLCBtYXliZSB0aGF0DQo+ID4gPiA+ID4gPiBzaG91bGQgYmUgY29uc2lk ZXJlZD8NCj4gPiA+ID4gPiA+IEFzIHJpZGljdWxvdXMgYXMgaXQgc291bmRzLCBtYXliZSBzb21l IGtpbmQgb2YNCj4gPiA+ID4gVUlOVF9NQVggdHlwZSAobm93DQo+ID4gPiA+ID4gPiBVSU5UNjQs IGxhdGVyIFVJTlQxMjgpIHNob3VsZCBiZSBpbnRyb2R1Y2VkIGFuZA0KPiA+IGFueQ0KPiA+ID4g PiBCSVQgb3IgYml0bWFzaw0KPiA+ID4gPiA+ID4gZGVmaW5pdGlvbiBiZWluZyBleHBsaWNpdGx5 IGNhc3RlZCB0byB0aGF0Pw0KPiA+ID4gPiA+ID4gQXJlIEJJVCBkZWZpbml0aW9ucyBvciBtYXNr cyBvY2Nhc2lvbmFsbHkgdXNlZA0KPiA+IGluDQo+ID4gPiA+IHByZXByb2Nlc3Nvcg0KPiA+ID4g PiA+ID4gb3BlcmF0aW9ucz8gVGhhdCBtaWdodCBicmVhayBhZnRlciBhbGwuDQo+ID4gPiA+ID4g PiBBbnl3YXksIGlmIHRoYXQgaWRlYSB3b3VsZCBiZSBhcHByb3ZlZCwgdGhlcmUNCj4gPiA+ID4g cmVhbGx5IHdvdWxkIGhhdmUgdG8gYmUNCj4gPiA+ID4gPiA+IGEgbm90ZSByZWdhcmRpbmcgdGhp cyBkZXNpZ24gaW4gc29tZSBvZiB0aGUNCj4gPiBFREsyDQo+ID4gPiA+IHNwZWNpZmljYXRpb25z LA0KPiA+ID4gPiA+ID4gcHJvYmFibHkgQyBDb2RlIFN0eWxlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+IFsuLi5dDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLTEpIFRoZSAndHJ1 bmNhdGluZyBjb25zdGFudCB2YWx1ZScgd2FybmluZw0KPiA+ID4gPiB3b3VsZA0KPiA+ID4gPiA+ ID4gcHJvYmFibHkgbmVlZCB0byBiZQ0KPiA+ID4gPiA+ID4gPiA+IGRpc2FibGVkIGdsb2JhbGx5 LCBob3dldmVyIEkgZG9uJ3QNCj4gPiB1bmRlcnN0YW5kDQo+ID4gPiA+IGhvdw0KPiA+ID4gPiA+ ID4gYW4gZXhwbGljaXQgY2FzdCBpcw0KPiA+ID4gPiA+ID4gPiA+IGEgcHJvYmxlbSBhbnl3YXku DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBEaWQgSSBvdmVybG9vayBhbnl0aGlu ZyBjb250cmEgcmVnYXJkaW5nDQo+ID4gdGhhdD8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gSG1tbS4uLiBEbyB5b3UgdGhpbmsgaXQgY291bGQgaGF2ZSBhDQo+ID4gcGVyZm9ybWFuY2UN Cj4gPiA+ID4gPiA+IGltcGFjdCBvbiAzMi1iaXQNCj4gPiA+ID4gPiA+ID4gcGxhdGZvcm1zPyAo SSBkb24ndCB0aGluayBzbywgYXQgbGVhc3Qgbm90IGluDQo+ID4gPiA+ID4gPiBvcHRpbWl6ZWQg LyBSRUxFQVNFDQo+ID4gPiA+ID4gPiA+IGJ1aWxkcy4pDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gSSBkb24ndCB0aGluayBhbnkgcHJvcGVyIG9wdGltaXplciB3b3VsZCBub3QNCj4gPiA+ID4g b3B0aW1pemUgdGhpcy4gQWZ0ZXIgYWxsLA0KPiA+ID4gPiA+ID4gaXQgY2FuIG5vdCBvbmx5IGV2 YWx1YXRlIHRoZSB2YWx1ZSBkaXJlY3RseSBhbmQNCj4gPiA+ID4gbm90aWNlIHRoYXQgdGhlIHZh bHVlDQo+ID4gPiA+ID4gPiBkb2VzIG5vdCByZWFjaCBpbnRvIHRoZSAnbG9uZyBsb25nIHJhbmdl JywgYnV0DQo+ID4gYWxzbw0KPiA+ID4gPiBjb25zaWRlciB0aGUgdHlwZQ0KPiA+ID4gPiA+ID4g b2YgdGhlIG90aGVyIG9wZXJhbmQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gWy4uLl0NCj4g Pg0KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ ID4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0K PiA+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K