From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a01:111:f400:fe05::804; 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-he1eur02olkn0804.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe05::804]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id ABF7422451182 for ; Thu, 1 Mar 2018 03:04:41 -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=ejVxJe9iUu5uAUMrKKxZ26MoygKoj/nM5GMLMkl/gX0=; b=AtoTUsSdOjUgdz90SBPo1vAE1F5k2h/+e5oZXk+1nji+K4ue7rJpUIZ0CQYWEBsf54Plr8fIA+y6rpvd4MzlG7KaCjOryEzjN0U9T+SKRYWu32ufYZaQCuI76T3klwMP/oRIjzzbZwS+F8z/u6Fu9ZND8/QBtm8noCWg32J3uLQJdFmhS43JTBXxvVWsPYhzmBw+nq5e9eTzFA5eHm8NJN8gOvNERZpLluVmP+yZjfY+9dLtf4b+/qC1MMv8Ro9YOeIFyJjhqgSzHQqNV+ic/68CL57ux3rgOR7J6ICJdrCmFiohM7QMhx9SCENwkiSW4OcF1QSw/EOuCVhq/i1h+w== Received: from AM5EUR02FT060.eop-EUR02.prod.protection.outlook.com (10.152.8.51) by AM5EUR02HT104.eop-EUR02.prod.protection.outlook.com (10.152.9.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.485.12; Thu, 1 Mar 2018 11:10:47 +0000 Received: from AM4PR06MB1491.eurprd06.prod.outlook.com (10.152.8.51) by AM5EUR02FT060.mail.protection.outlook.com (10.152.9.179) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.485.12 via Frontend Transport; Thu, 1 Mar 2018 11:10:47 +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 11:10:47 +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+q3IxS4cmiO9UyN5haxybivfqO4qaYAgAAEg7CAAPiiAIAABh8ggAArWgCAAAM54IAASveAgAACYDCAAHREgIAAnJxw Date: Thu, 1 Mar 2018 11:10:47 +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:383C2A54760BA162B02F598B6F75445DEA4B0202F223091C8F9A90D901D5EE32; UpperCasedChecksum:8430CB0EB2CD08B9D7A275B49FE85F881EA05D50A583E63264659A7761782265; SizeAsReceived:7952; Count:46 x-tmn: [xvpZk9DgaSHoHtf9g+5uKzYEXANIRXwG] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM5EUR02HT104; 6:GnWzIGrd+LfXiegqpBX/rgDOi0xV6hh2w/gUU2csCMSGAyk3xRer+KxMPAcmHVzxMfKdOPYOzixPfotzWeMbGXlgluyDWcPLHogBxnYjEPJ1KwiOc730/NZ3QajIIy7X0SH3uZpSmQJvCt8L/ZE+nMWMGJ8zXVnmAgG5i6YgCRG6Wfot5G5Wh/TA90QmvFZswzfHoAzo0fczt7Qv/rucNN/IPykyXNAfd25pAF3APwiBEEYb5QBknWmxr54WjsocvEm5XShdBrEncvgcCj1+0s6fSUG/IFS02b/6sMD8fy8EVA4EPC+r21rdb9h9uL3abYE0O5VYQrTDfJxxLOqZHv0DTtqatQxUBp5ytmDCyWQ=; 5:4mLZUHws/FSCBSf+Fry4QC4saCFxR6ue9Ya8fz4iNJX36FUpNPTQDPAcvqkSbzM0+aZruWGxap1T1JjDK7AyOqNYpHH0pwxxgkbgWRxlNcHi8PE0moQhjHZOyYO+4VJQH7oxy8e0SLJ+/L4QG3tBFMzlhsyyZMSvOzg3V+PsrD0=; 24:fXWFQvD9IZRVozJ4m9vGU7oXaqBW5kFCJgJvpucjCRrUpyZ7N0pJ396ilMKhEK24mIk0Db7FKcACjfh9Nreze2bkTkGfbBuCmP09f6eT4Xk=; 7:m9dki0ajGhDLh56Xy8LGvU2MbhLRHSIN11Z6Un9X3mqUVLgV8FZLwkC/yVTu2QA8Frl7SSOhdk3O4k/BrS4zTGLHg/ae0u9UabsqlosdxeXI+Y48XZSb6fkiEQoAmpEck9FpuVKUsP5EFAay/K9eK0gMrK9+KjUmtMYQj02OKm22Uh1ZD40uvBWH7SHmCeQ7tIirehoUwAL6AHpWuW4a/jYAY7gfm9mZ5DCuIAwqxpO6JbTr9c7XHl+oOPPQYx1F 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:AM5EUR02HT104; x-ms-traffictypediagnostic: AM5EUR02HT104: x-ms-office365-filtering-correlation-id: 75b432f5-2f47-4608-571a-08d57f6515c2 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:AM5EUR02HT104; BCL:0; PCL:0; RULEID:; SRVR:AM5EUR02HT104; x-forefront-prvs: 05986C03E0 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:AM5EUR02HT104; 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: 75b432f5-2f47-4608-571a-08d57f6515c2 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2018 11:10:47.4869 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5EUR02HT104 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 11:04:43 -0000 Content-Language: de-DE Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIE1hcmNoIDEs IDIwMTggMjo0MiBBTQ0KPiBUbzogTWFydmluIEjDpHVzZXIgPE1hcnZpbi5IYWV1c2VyQG91dGxv b2suY29tPjsgZWRrMi0NCj4gZGV2ZWxAbGlzdHMuMDEub3JnOyBLaW5uZXksIE1pY2hhZWwgRCA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IENjOiBsZXJzZWtAcmVkaGF0LmNvbTsgR2Fv LCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazJdIFtQ QVRDSCAxLzJdIE1kZVBrZy9CYXNlLmg6IEVuc3VyZSBzYWZlIGJpdHdpc2UNCj4gb3BlcmF0aW9u cy4NCj4gDQo+IEhpIE1hcnZpbiwNCj4gDQo+IFllcy4gIEkgaGF2ZSBiZWVuIHJlYWRpbmcgdGhl IHRocmVhZC4NCj4gDQo+IExvdHMgb2YgcmVhbGx5IGdvb2QgYW5hbHlzaXMuDQo+IA0KPiBIb3dl dmVyLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIG1lIHRvIGFkZCAndScgdG8gdGhlIHNtYWxs ZXIgQklUeHgsDQo+IEJBU0V4eCwgYW5kIFNJWkV4eCBtYWNyb3MgaWYgd2UgaGF2ZSBjb25zdGFu dHMgaW4gb3RoZXIgcGxhY2VzIHRoYXQgZG8gbm90DQo+IGFkZCB0aGUgJ3UnLiBJIHRoaW5rIHRo aXMgcGF0Y2ggbWF5IGluY3JlYXNlIHRoZSBpbmNvbnNpc3RlbmN5IG9mIHRoZSB3aG9sZQ0KPiB0 cmVlLg0KDQpCYXNpY2FsbHkgYXBwbHlpbmcgdGhpcyB0byB0aGUgQklUIGRlZmluaXRpb25zIGZp cnN0IHdhcyB0byBzZWUgd2hldGhlciB0aGUgY29uY2VwdCBpcyBwZXJjZXB0ZWQgYXMgYSB3aG9s ZS4NCk9mIGNvdXJzZSB0aGlzIHNob3VsZCBiZSBhcHBsaWVkIHRvIGFsbCBkZWZpbml0aW9ucyB0 aGF0IGFyZSBhdCBzb21lIHBvaW50IHVzZWQgYXMgYSBtYXNrLCB3aGljaCBJIGNvbnRpbnVlZCB0 byBkbyBsb2NhbGx5Lg0KDQo+IA0KPiBJZiB3ZSBkb27igJl0IG1ha2UgdGhpcyBjaGFuZ2UsIHdo YXQgdHlwZXMgb2YgaXNzdWVzIGRvIHdlIG5lZWQgdG8gZml4IGFuZA0KPiB3aGF0IHdvdWxkIHRo ZSBmaXggZW50YWlsPw0KDQpUbyBiZSBob25lc3QsIGFjdHVhbCBpc3N1ZXMgYXJlIHZlcnkgdW5s aWtlbHkgdG8gaGFwcGVuIGFzIGFsbCBhcmNoaXRlY3R1cmVzIHN1cHBvcnRlZCBieSB0aGUgc3Bl Y2lmaWNhdGlvbiB1c2UgdHdvLWNvbXBsZW1lbnRzIGZvciBuZWdhdGl2ZSB2YWx1ZXMuDQpGdXJ0 aGVybW9yZSwgYWxsIGN1cnJlbnRseSBzdXBwb3J0ZWQgY29tcGlsZXJzIGltcGxlbWVudCBiaXR3 aXNlIG9wZXJhdGlvbnMgZm9yIHNpZ25lZCBpbnRlZ2VycyBzZWVtaW5nbHkgdGhlIHNhbWUgd2F5 IGFzIGZvciB1bnNpZ25lZCB0eXBlcy4NCkhvd2V2ZXIsIGlmIGVpdGhlciB3aWxsIGNoYW5nZSBp biB0aGUgZnV0dXJlLCBjb2RlIHdpbGwgc2lsZW50bHkgYnJlYWsgYXMgaW4gbWFueSBtYXNrIG9w ZXJhdGlvbnMgd2lsbCByZXR1cm4gdmFsdWVzIG5vdCBpbnRlbmRlZCBieSB0aGUgY29kZS4NCg0K SWYgeW91IGFyZSBub3QgaW50ZXJlc3RlZCBpbiB0aGUgc29sdXRpb24gY29uY2VwdHMgcHJldmlv dXNseSBkaXNjdXNzZWQsIEkgcHJvcG9zZSBhcyBsZWFzdCBhIFVuaXQgVGVzdCB0byB2ZXJpZnkg dGhlIG9wZXJhdGlvbnMgdXNlZCBpbiBwcmF4aXMgd29yayBvdXQgZmluZS4NCg0KVGhhbmtzLA0K TWFydmluLg0KDQo+IA0KPiBNaWtlDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4gRnJvbTogTWFydmluIEjDpHVzZXIgW21haWx0bzpNYXJ2aW4uSGFldXNlckBvdXRsb29r LmNvbV0NCj4gPiBTZW50OiBXZWRuZXNkYXksIEZlYnJ1YXJ5IDI4LCAyMDE4IDEwOjUyIEFNDQo+ ID4gVG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+IDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogbGVyc2VrQHJlZGhhdC5jb207IEdh bywgTGltaW5nDQo+ID4gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBb ZWRrMl0gW1BBVENIIDEvMl0gTWRlUGtnL0Jhc2UuaDogRW5zdXJlIHNhZmUgYml0d2lzZQ0KPiA+ IG9wZXJhdGlvbnMuDQo+ID4NCj4gPiBIZXkgTWlrZSwNCj4gPg0KPiA+IFlvdSBhcmUgcmlnaHQs IHRoZSBwYXRjaCB3YXMgcHJlbWF0dXJlIGJlY2F1c2UgSSBkaWQgbm90IGNvbnNpZGVyIGFueQ0K PiA+ICdpbmNvcnJlY3QnIG9yICdjbGV2ZXInIHVzYWdlcyBvZiB0aGVzZSBkZWZpbml0aW9ucy4N Cj4gPiBUaGUgcHJvYmxlbSBpcyBub3QgcHJpbWFyaWx5IHVuZGVmaW5lZCBiZWhhdmlvciwgYnV0 DQo+ID4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBiZWhhdmlvci4NCj4gPiBBbnkgYml0d2lzZSBv cGVyYXRpb24gdG8gYSBzaWduZWQgaW50ZWdlciByZXN1bHRzIGluDQo+ID4gaW1wbGVtZW50YXRp b24tZGVmaW5lZCBiZWhhdmlvciwgd2hpY2ggY29tcGlsZXJzIHVzdWFsbHkgZG8gbm90IHdhcm4N Cj4gPiBhYm91dCwgd2hpbGUgd2VsbC1kZWZpbmVkIGJlaGF2aW9yIGlzIGRlc2lyYWJsZS4NCj4g Pg0KPiA+IEhhdmUgeW91IHJlYWQgTGFzemxvJ3MgY29tbWVudHM/IFRoZXkgYXJlIHF1aXRlIGdv b2QgYXQgc2hvd2luZyB1cA0KPiA+IHdoYXQgbG9naWNzIG1pZ2h0IGJlIGFuZCBhcmUgcmVsaWVk IG9uLCB3aGljaCBob3dldmVyIGFyZSBub3QNCj4gPiBndWFyYW50ZWVkIHRvIGJlIHRoZSBjYXNl IGZvcg0KPiA+IG5vbi14ODYgYXJjaGl0ZWN0dXJlcywNCj4gPiBvciBldmVuIGZvciB4ODYgaW4g Y2FzZSBhIGRldmVsb3BtZW50IHRlYW0gZGVjaWRlcyB0byBjaGFuZ2UgdGhpcw0KPiA+IGJlaGF2 aW9yIHNvbWUgZGF5IG9yIGEgbmV3IHRvb2xjaGFpbiBub3QgaGF2aW5nIGFkb3B0ZWQgdGhlbSBp biB0aGUNCj4gPiBmaXJzdCBwbGFjZSBzaG91bGQgYmUgYWRkZWQuDQo+ID4NCj4gPiBGdXJ0aGVy bW9yZSwgSSBkb24ndCB0aGluayBpbmNvbnNpc3RlbmN5IGJldHdlZW4gdGhlIGRlZmluaXRpb25z DQo+ID4gZ2VuZXJhbGx5IGlzIGRlc2lyYWJsZS4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBNYXJ2 aW4uDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBL aW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBTZW50 OiBXZWRuZXNkYXksIEZlYnJ1YXJ5IDI4LCAyMDE4IDc6MzcgUE0NCj4gPiA+IFRvOiBNYXJ2aW4g SMOkdXNlciA8TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+OyBlZGsyLQ0KPiA+ID4gZGV2ZWxA bGlzdHMuMDEub3JnOyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsNCj4gPiBLaW5u ZXksIE1pY2hhZWwgRA0KPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4g Q2M6IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJF OiBbZWRrMl0gW1BBVENIIDEvMl0gTWRlUGtnL0Jhc2UuaDogRW5zdXJlDQo+ID4gc2FmZSBiaXR3 aXNlDQo+ID4gPiBvcGVyYXRpb25zLg0KPiA+ID4NCj4gPiA+IEhpIE1hcnZpbiwNCj4gPiA+DQo+ ID4gPiBJIGRvIG5vdCB0aGluayBhZGQgJ3UnIHRvIHRoZSBCSVR4eCBkZWZpbmVzIGRvZXMgbm90 DQo+ID4gc2VlbSB0byBiZSBhIGNvbXBsZXRlDQo+ID4gPiBzb2x1dGlvbi4gIENvZGUgY2FuIHVz ZSBpbnRlZ2VyIGNvbnN0YW50cyBpbiBsb3RzIG9mDQo+ID4gcGxhY2VzIGluY2x1ZGluZyBvdGhl cg0KPiA+ID4gI2RlZmluZXMgb3IgaW5saW5lIGluIGV4cHJlc3Npb25zLg0KPiA+ID4NCj4gPiA+ IElmIHdlIGZvbGxvdyB5b3VyIHN1Z2dlc3Rpb24gd291bGRu4oCZdCB3ZSBuZWVkIHRvIGFkZA0K PiA+ICd1JyB0byBldmVyeSBjb25zdGFudA0KPiA+ID4gdGhhdCBkb2VzIG5vdCBzdGFydCB3aXRo IGEgJy0nDQo+ID4gPiBhbmQgbWlnaHQgcG90ZW50aWFsbHkgYmUgdXNlZCB3aXRoIGEgYml0IG9w ZXJhdGlvbj8NCj4gPiA+DQo+ID4gPiBDb21waWxlcnMgYXJlIGRvaW5nIGEgZ29vZCBqb2Igb2Yg ZmluZGluZyB1bmRlZmluZWQNCj4gPiBiZWhhdmlvci4gIElzbuKAmXQgdGhhdA0KPiA+ID4gc3Vm ZmljaWVudCB0byBmaXggdGhlIGlzc3VlcyBpZGVudGlmaWVkPw0KPiA+ID4NCj4gPiA+IE1pa2UN Cj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206 IE1hcnZpbiBIw6R1c2VyDQo+ID4gW21haWx0bzpNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbV0N Cj4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFyeSAyOCwgMjAxOCA2OjIxIEFNDQo+ID4g PiA+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgTGFzemxvIEVyc2VrDQo+ID4gPGxlcnNl a0ByZWRoYXQuY29tPg0KPiA+ID4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsNCj4gPiBHYW8sIExpbWluZw0KPiA+ID4gPiA8bGltaW5nLmdhb0Bp bnRlbC5jb20+DQo+ID4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDEvMl0gTWRlUGtn L0Jhc2UuaDoNCj4gPiBFbnN1cmUgc2FmZSBiaXR3aXNlDQo+ID4gPiA+IG9wZXJhdGlvbnMuDQo+ ID4gPiA+DQo+ID4gPiA+IEhleSBMYXN6bG8sDQo+ID4gPiA+DQo+ID4gPiA+IEkgY3V0IHlvdXIg cmFudCBiZWNhdXNlIGl0IGlzIG5vdCBzdHJpY3RseSByZWxhdGVkDQo+ID4gdG8gdGhpcyBwYXRj aC4NCj4gPiA+ID4gSG93ZXZlciwgdGhhbmsgeW91IGZvciBjb21wb3NpbmcgaXQgbmV2ZXJ0aGVs ZXNzDQo+ID4gYmVjYXVzZSBpdCB3YXMgYW4NCj4gPiA+ID4gaW50ZXJlc3RpbmcgcmVhZCENCj4g PiA+ID4gQ29tbWVudHMgYXJlIGlubGluZS4NCj4gPiA+ID4NCj4gPiA+ID4gTWljaGFlbCwgTGlt aW5nLA0KPiA+ID4gPiBEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgcmVnYXJkaW5nIHRoZSBkaXNj dXNzaW9uPw0KPiA+ID4gPiBUaGFua3MgaW4gYWR2YW5jZS4NCj4gPiA+ID4NCj4gPiA+ID4gQmVz dCByZWdhcmRzLA0KPiA+ID4gPiBNYXJ2aW4uDQo+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0By ZWRoYXQuY29tPg0KPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkgMjgsIDIwMTgg Mjo1NyBQTQ0KPiA+ID4gPiA+IFRvOiBNYXJ2aW4gSMOkdXNlciA8TWFydmluLkhhZXVzZXJAb3V0 bG9vay5jb20+Ow0KPiA+IGVkazItDQo+ID4gPiA+ID4gZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4g PiA+ID4gQ2M6IG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tOw0KPiA+IGxpbWluZy5nYW9AaW50 ZWwuY29tDQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMS8yXSBNZGVQa2cv QmFzZS5oOg0KPiA+IEVuc3VyZQ0KPiA+ID4gPiBzYWZlIGJpdHdpc2UNCj4gPiA+ID4gPiBvcGVy YXRpb25zLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gMDIvMjgvMTggMTI6NDMsIE1hcnZpbiBI w6R1c2VyIHdyb3RlOg0KPiA+ID4gPiBbLi4uXQ0KPiA+ID4gPiA+ID4gYXMgZWRrMiBkb2VzIG5v dCBzdXBwb3J0IHZlbmRvciBleHRlbnNpb25zIHN1Y2gNCj4gPiBhcw0KPiA+ID4gPiBfX2ludDEy OCBhbnl3YXkuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBOb3QgKnlldCosIEkgZ3Vlc3MgOikgVUVG SSAyLjcgZG9lcyBsaXN0IFVJTlQxMjgNCj4gPiAvDQo+ID4gPiA+IElOVDEyOCwgaW4gdGFibGUg NSwgIkNvbW1vbg0KPiA+ID4gPiA+IFVFRkkgRGF0YSBUeXBlcyIuIEkgYmVsaWV2ZSB0aG9zZSB0 eXBlZGVmcyBtYXkNCj4gPiBoYXZlDQo+ID4gPiA+IGJlZW4gYWRkZWQgZm9yIFJJU0MtVi4NCj4g PiA+ID4NCj4gPiA+ID4gT2ggeWlrZXMsIEkgaGF2ZSBub3Qgbm90aWNlZCB0aGF0IGJlZm9yZS4g QmVzaWRlcw0KPiA+IHRoYXQgSSB3b25kZXIgaG93DQo+ID4gPiA+IHRoYXQgd2lsbCBiZSBpbXBs ZW1lbnRlZCBieSBlZGsyIGZvciBub24tIFJJU0MtVg0KPiA+IHBsYXRmb3JtcywgbWF5YmUgdGhh dA0KPiA+ID4gPiBzaG91bGQgYmUgY29uc2lkZXJlZD8NCj4gPiA+ID4gQXMgcmlkaWN1bG91cyBh cyBpdCBzb3VuZHMsIG1heWJlIHNvbWUga2luZCBvZg0KPiA+IFVJTlRfTUFYIHR5cGUgKG5vdw0K PiA+ID4gPiBVSU5UNjQsIGxhdGVyIFVJTlQxMjgpIHNob3VsZCBiZSBpbnRyb2R1Y2VkIGFuZCBh bnkNCj4gPiBCSVQgb3IgYml0bWFzaw0KPiA+ID4gPiBkZWZpbml0aW9uIGJlaW5nIGV4cGxpY2l0 bHkgY2FzdGVkIHRvIHRoYXQ/DQo+ID4gPiA+IEFyZSBCSVQgZGVmaW5pdGlvbnMgb3IgbWFza3Mg b2NjYXNpb25hbGx5IHVzZWQgaW4NCj4gPiBwcmVwcm9jZXNzb3INCj4gPiA+ID4gb3BlcmF0aW9u cz8gVGhhdCBtaWdodCBicmVhayBhZnRlciBhbGwuDQo+ID4gPiA+IEFueXdheSwgaWYgdGhhdCBp ZGVhIHdvdWxkIGJlIGFwcHJvdmVkLCB0aGVyZQ0KPiA+IHJlYWxseSB3b3VsZCBoYXZlIHRvIGJl DQo+ID4gPiA+IGEgbm90ZSByZWdhcmRpbmcgdGhpcyBkZXNpZ24gaW4gc29tZSBvZiB0aGUgRURL Mg0KPiA+IHNwZWNpZmljYXRpb25zLA0KPiA+ID4gPiBwcm9iYWJseSBDIENvZGUgU3R5bGUuDQo+ ID4gPiA+DQo+ID4gPiA+IFsuLi5dDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0xKSBUaGUgJ3Ry dW5jYXRpbmcgY29uc3RhbnQgdmFsdWUnIHdhcm5pbmcNCj4gPiB3b3VsZA0KPiA+ID4gPiBwcm9i YWJseSBuZWVkIHRvIGJlDQo+ID4gPiA+ID4gPiBkaXNhYmxlZCBnbG9iYWxseSwgaG93ZXZlciBJ IGRvbid0IHVuZGVyc3RhbmQNCj4gPiBob3cNCj4gPiA+ID4gYW4gZXhwbGljaXQgY2FzdCBpcw0K PiA+ID4gPiA+ID4gYSBwcm9ibGVtIGFueXdheS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBE aWQgSSBvdmVybG9vayBhbnl0aGluZyBjb250cmEgcmVnYXJkaW5nIHRoYXQ/DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBIbW1tLi4uIERvIHlvdSB0aGluayBpdCBjb3VsZCBoYXZlIGEgcGVyZm9ybWFu Y2UNCj4gPiA+ID4gaW1wYWN0IG9uIDMyLWJpdA0KPiA+ID4gPiA+IHBsYXRmb3Jtcz8gKEkgZG9u J3QgdGhpbmsgc28sIGF0IGxlYXN0IG5vdCBpbg0KPiA+ID4gPiBvcHRpbWl6ZWQgLyBSRUxFQVNF DQo+ID4gPiA+ID4gYnVpbGRzLikNCj4gPiA+ID4NCj4gPiA+ID4gSSBkb24ndCB0aGluayBhbnkg cHJvcGVyIG9wdGltaXplciB3b3VsZCBub3QNCj4gPiBvcHRpbWl6ZSB0aGlzLiBBZnRlciBhbGws DQo+ID4gPiA+IGl0IGNhbiBub3Qgb25seSBldmFsdWF0ZSB0aGUgdmFsdWUgZGlyZWN0bHkgYW5k DQo+ID4gbm90aWNlIHRoYXQgdGhlIHZhbHVlDQo+ID4gPiA+IGRvZXMgbm90IHJlYWNoIGludG8g dGhlICdsb25nIGxvbmcgcmFuZ2UnLCBidXQgYWxzbw0KPiA+IGNvbnNpZGVyIHRoZSB0eXBlDQo+ ID4gPiA+IG9mIHRoZSBvdGhlciBvcGVyYW5kLg0KPiA+ID4gPg0KPiA+ID4gPiBbLi4uXQ0KDQo=