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.12; 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-oln040092068012.outbound.protection.outlook.com [40.92.68.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 647C022352280 for ; Tue, 27 Feb 2018 12:25:55 -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=KclAytGkBUibieUEvvHuLRZpbb/qE7KhLk19rD8uZRg=; b=f0oPMu/X9gDQWS4ZNGghe1dxJ8UAxxtXM7ozdyb7KNaF1UiSUkXPPGc1oqCcAqdaxbzgG6d8o8Xog9QHAReP2VPJwkEK5GKN5UWB6e11nGaOzuk/s2nU5GDOpc3eLI3NyRlTsJj90viBRgWpRuWK6ZiagJ/1h65YqGXIrB3YUOdyhDSV7rNijGj5LWYLrmNd8F29jhmSpaEV5iibWcPY18/5s8FRaohP89Rmf/uNv4dlP31DjjJiQo7+nZq+yO7fmNeYe9mK20GXbp6y9593ZFyoQpupt18Qlc8opVQHztd7IF2O+96vBsBt4GJEG4BB3AcW7oF9MKxdXysZHgmxHg== Received: from HE1EUR02FT057.eop-EUR02.prod.protection.outlook.com (10.152.10.55) by HE1EUR02HT045.eop-EUR02.prod.protection.outlook.com (10.152.11.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Tue, 27 Feb 2018 20:31:56 +0000 Received: from AM4PR06MB1491.eurprd06.prod.outlook.com (10.152.10.59) by HE1EUR02FT057.mail.protection.outlook.com (10.152.11.220) 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; Tue, 27 Feb 2018 20:31:56 +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.021; Tue, 27 Feb 2018 20:31:55 +0000 From: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= To: "edk2-devel@lists.01.org" CC: Laszlo Ersek , "michael.d.kinney@intel.com" , "liming.gao@intel.com" Thread-Topic: [edk2] [PATCH 1/2] MdePkg/Base.h: Ensure safe bitwise operations. Thread-Index: AQHTr+q3IxS4cmiO9UyN5haxybivfqO4qaYAgAAEg7A= Date: Tue, 27 Feb 2018 20:31:55 +0000 Message-ID: References: <62c9363b-7f27-cfff-492a-560660727b86@redhat.com> In-Reply-To: <62c9363b-7f27-cfff-492a-560660727b86@redhat.com> Accept-Language: de-DE, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:45129CE88C3839AAA5B2041ACC2F143EC8AE67F11A6DF17FDF391462AF9BCC3F; UpperCasedChecksum:2EC538111B398BAABC1DDF07B69D8DE5F6233D325B781D44D4CC7AF17B4985FF; SizeAsReceived:7272; Count:46 x-tmn: [4PeawPhvGJaBphzB+sBrQzT0avPMELTU] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1EUR02HT045; 6:u2d4p2eB6JNw6/y39H/gcWdDJyDXcXiG9PuFM09YO9A8AMExbgj3+8agFjjRtfEEGHzMJ6dgaayXSKqyJrTgVT3NKhZeK90DEXgBGO4wcYW+E1Bjzx/zEz9CtTYqVyCS8h/si231rgScnWBx7KKpoxMwKWUTWyteYMQ89t+9Dc1NkuB/y2RBj+5ff+ekVIiThGeaf4VBj/dCsMaiOuXzhUZXSsVJOu3kNZ0JZHS7CZUksCkXUkNlP2inMKa8DoKGLXPGc4TB+S1ELGmDVtrNH83x0duqDWZNQK3AJSSWOuCh2R9Ohi8EZufDoRFSUtKjWeit+4vlxFCOnQ9ArxZyteZlGXjLOuav/F4qUMngoFo=; 5:psfAR2RwrArx4NBS+DLdyzULHSTEykqzW7P5YsI58TrXJylF8Y5ejjWMWepNtdgV7+fVcqe/O8X4tgdT9XRffG3Z5+/PCsXNuh4FF/41X/KY8T7av3fP82okq/+iMMmIVzVthOhuT0+RZ4HfZCg4F3tvZ49uhkHfmgLzYtRN5bQ=; 24:XMtm058PvJXkmdKn/NPYiz6a2CWk77+tw3p3LN4hLqkxJ4Cv0Oy+8mFOcYn7ykhOz40DyVsZcnJAYYOoapAO4V23rUjQ+SjzLM6celYuHAc=; 7:p+KhoO3MV/AzyTrAM8dO++mvLQbIjzng7uEV5fEG7tB/0+7zeTg0pa+ENmV985h59YY65yuOhCt60U8rl3ingQXB4WWQNX4z59LYz0s/RoEsetZWD+VGvD+SJYoMm7+FX+Kn4SfLeHw9wjskly5zfG8JyykENMbjJgS1hQlNz0QZh+1ldOUoYrb6ZKBWHMYvpkxH9aQjS6tV7t9gJdLWeErWlCB6T8VPkxORmhCVMRVY+oNkVi1C7av26JLhM+Bn x-incomingheadercount: 46 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045); SRVR:HE1EUR02HT045; x-ms-traffictypediagnostic: HE1EUR02HT045: x-ms-office365-filtering-correlation-id: 74f47c01-2a06-4137-7e45-08d57e2124ba x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:HE1EUR02HT045; BCL:0; PCL:0; RULEID:; SRVR:HE1EUR02HT045; x-forefront-prvs: 05961EBAFC x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:HE1EUR02HT045; 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: 74f47c01-2a06-4137-7e45-08d57e2124ba X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2018 20:31:55.7546 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR02HT045 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: Tue, 27 Feb 2018 20:25:57 -0000 Content-Language: de-DE Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGV5IExhc3psbywNCg0KVGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91ciByZXZpZXcsIGFnYWlu LiBDb21tZW50cyBhcmUgaW5saW5lLg0KDQpSZWdhcmRzLA0KTWFydmluLg0KDQo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5j b20+DQo+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5IDI3LCAyMDE4IDg6NTQgUE0NCj4gVG86IE1h cnZpbiBIw6R1c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbT47IGVkazItDQo+IGRldmVs QGxpc3RzLjAxLm9yZw0KPiBDYzogbWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb207IGxpbWluZy5n YW9AaW50ZWwuY29tDQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDEvMl0gTWRlUGtnL0Jh c2UuaDogRW5zdXJlIHNhZmUgYml0d2lzZQ0KPiBvcGVyYXRpb25zLg0KPiANCj4gT24gMDIvMjcv MTggMTc6NDcsIE1hcnZpbiBIw6R1c2VyIHdyb3RlOg0KPiA+IEFzIHBlciB0aGUgQyBzdGFuZGFy ZCwgYml0LWxldmVsIG9wZXJhdGlvbnMgb24gc2lnbmVkIGludGVnZXJzIGFyZQ0KPiA+IGVpdGhl ciB1bmRlZmluZWQgb3IgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4gSGVuY2UsIG1hcmsgYWxsIEJJ VA0KPiA+IGRlZmluZXMgYW5kIHNoaWZ0cyBhcyB1bnNpZ25lZCB0byBzYWZlbHkgYWxsb3cgc3Vj aCBvcGVyYXRpb25zLg0KPiANCj4gU2lnaCwgdGhpcyBpcyB3aHkgdGhyZWFkaW5nIGlzIGltcG9y dGFudCBpbiBwYXRjaCBzZXRzLiA6LyBUaGlzIHBhdGNoIGNvbWVzIGZpcnN0LA0KPiBhbmQgaXQg c29ydCBvZiBpbnZhbGlkYXRlcyBteSByZXZpZXcgZm9yIHBhdGNoICMyIGluIHRoaXMgc2VyaWVz Lg0KPiANCj4gSSB0aGluayB0aGlzIGNoYW5nZSBpcyBhIGdvb2QgaWRlYSAqaW4gdGhlb3J5KiAo YXJndWFibHkgdGhlIG1hY3JvcyBzaG91bGQNCj4gaGF2ZSBiZWVuIGludHJvZHVjZWQgbGlrZSB0 aGlzIGluIHRoZSBmaXJzdCBwbGFjZSkuIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQsIHF1aXRlDQo+ IGEgYml0IG9mIGNvZGUgY291bGQgc2lsZW50bHkgc2VlIGl0cyBtZWFuaW5nIGNoYW5nZWQuDQoN CllvdSBhcmUgcmlnaHQgdGhhdCBsaWtlbHkgYXQgbGVhc3Qgc29tZSB2ZW5kb3IgaGFzIGNvZGUg dGhhdCByZWxpZXMgb24gdGhlIGRlZmluZXMgYmVpbmcgc2lnbmVkLiBIb3dldmVyLCB5b3Ugc2Vl bSB0byBhZ3JlZSB0aGF0IGJpdCBkZWZpbml0aW9ucyBhcmUgbmF0dXJhbGx5IGFzc3VtZWQgdG8g YmUgdW5zaWduZWQgYW5kIHRoZSBzYW1lIGFzIHRoaXMgY2hhbmdlIGNvdWxkIGJyZWFrIGNvZGUs IG5vdCBtYWtpbmcgdGhlIGNoYW5nZSBjb3VsZCBsZWFkIHRvIG5vbi1mdW5jdGlvbmluZyBjb2Rl IHRoYXQgbG9va3MgdmFsaWQgYXQgZmlyc3Qgc2lnaHQuDQpSZWdhcmRpbmcgeW91ciBjb21tZW50 IG9uIHRoZSAndHJ1bmNhdGluZyBwYXRjaGVzJywgc2F5aW5nIHRoZSBjb2RlIHJlbGllcyBvbiB0 aGUgZGVmaW5pdGlvbnMgYmVpbmcgc2lnbmVkOiBJIGhvbmVzdGx5IGRvdWJ0IHRoZSBjb2RlIHdh cyBpbnRlbnRpb25hbGx5IHdyaXR0ZW4gd2l0aCB0aGF0IGluIG1pbmQsIGJ1dCByYXRoZXIgaW50 dWl0aXZlbHkgYW5kIGl0IGhhcHBlbmVkIHRvIHdvcmsuIEkgbWlnaHQgYmUgd3Jvbmcgb2YgY291 cnNlLg0KDQo+IA0KPiBMZXQgbWUgZ2l2ZSB5b3UgYSBwYXRob2xvZ2ljIGV4YW1wbGUgKGl0ICpk b2VzKiBvY2N1ciBpbiB0aGUgd2lsZCwgYWx0aG91Z2gNCj4gbWF5YmUgbm90IGluIGVkazIpOg0K PiANCj4gew0KPiAgIFVJTlQ2NCBNeU1hc2s7DQo+IA0KPiAgIE15TWFzayA9IH5CSVQwOw0KPiB9 DQo+IA0KPiBCZWZvcmUgeW91ciBwYXRjaCwgTXlNYXNrIGlzIGFzc2lnbmVkIHRoZSB2YWx1ZSAw eEZGRkZfRkZGRl9GRkZGX0ZGRkUuDQo+IA0KPiBUaGlzIGlzIGJlY2F1c2U6DQo+IA0KPiAtIEJJ VDAgaGFzIHR5cGUgImludCIgYW5kIHZhbHVlIDENCj4gDQo+IC0gRHVlIHRvIG91ciAoaW1wbGVt ZW50YXRpb24tZGVmaW5lZCkgcmVwcmVzZW50YXRpb24gb2YgbmVnYXRpdmUgaW50ZWdlcnMsDQo+ IG5hbWVseSB0d28ncyBjb21wbGVtZW50LCB+QklUMCAoYWxzbyBoYXZpbmcgdHlwZSAiaW50Iikg c3RhbmRzIGZvciB2YWx1ZSAoLQ0KPiAyKS4NCg0KVGhlcmUgaXMgcHJldHR5IG11Y2ggd2hlcmUg bXkgaXNzdWUgaXMuIEkgZG9uJ3QgdGhpbmsgdHJpZ2dlcmluZyBpbXBsZW1lbnRhdGlvbi1kZWZp bmVkIGJlaGF2aW9yIGlzIGEgZ29vZCBpZGVhLCBub3QgdG8gc3BlYWsgYWJvdXQgcmVseWluZyBv biBpdC4gRURLIG5vIGxvbmdlciB0YXJnZXRzIHNvbGVseSB4ODYsIHRoZXJlIGlzIGV2ZW4gYSBu ZXcgYXJjaGl0ZWN0dXJlIChBcmNoLVYgb3Igc29tZXRoaW5nPykgb24gdGhlIHdheSwgc28gSSBj b25zaWRlciByZWx5aW5nIG9uIGNvbXBpbGVyIHNwZWNpZmljcyB2ZXJ5IGRhbmdlcm91cy4NCg0K PiANCj4gLSBXaGVuIHRoaXMgdmFsdWUgaXMgY29udmVydGVkIHRvIFVJTlQ2NCAoInVuc2lnbmVk IGxvbmcgbG9uZyIpLCB3ZSBnZXQNCj4gMTg0NDY3NDQwNzM3MDk1NTE2MTUgKyAxICsgKC0yKSA9 PSAxODQ0Njc0NDA3MzcwOTU1MTYxNC4gVGhhdCdzDQo+IDB4RkZGRl9GRkZGX0ZGRkZfRkZGRSwg d2hpY2ggaXMgdGhlIG1hc2sgdmFsdWUgdGhhdCB3ZSBpbnRlbmRlZC4NCj4gDQo+IChBbiBhbHRl cm5hdGl2ZSB3YXkgcGVvcGxlIHNvbWV0aW1lcyBwdXQgdGhpcyBpcyB0aGF0IH5CSVQwIGlzICJz aWduDQo+IGV4dGVuZGVkIi4gSSBzdHJvbmdseSBkaXNsaWtlIHRoaXMgdGVybSB3aGVuIHNwZWFr aW5nIGFib3V0IEMuIEl0IGlzDQo+IGFwcHJvcHJpYXRlIGZvciAoeDg2PykgYXNzZW1ibHkgbGFu Z3VhZ2UsIGJ1dCBub3QgZm9yIEMsIGluIG15IG9waW5pb24uKQ0KPiANCj4gDQo+IEluIHRoZSBh Ym92ZSBleGFtcGxlLCB0aGUgImNsZXZlciIgcHJvZ3JhbW1lciBjb25zY2lvdXNseSBleHBsb2l0 ZWQgdGhlDQo+IHR3bydzIGNvbXBsZW1lbnQgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBiaXQtbmVn LCBhbmQgdGhlIGNvbnZlcnNpb24gb2YgdGhlDQo+IG5lZ2F0aXZlIHZhbHVlIHRvICJ1bnNpZ25l ZCBsb25nIGxvbmciIChhcyBkaWN0YXRlZCBieSB0aGUgc3RhbmRhcmQpLg0KPiANCj4gDQo+IE5v dywgaWYgeW91IGNoYW5nZSBCSVQwIHRvIGhhdmUgdHlwZSAidW5zaWduZWQgaW50IiAoYWthIFVJ TlQzMiksIHRoZW4NCj4gfkJJVDAgd2lsbCBoYXZlIHZhbHVlIDQyOTQ5NjcyOTQgKDB4RkZGRl9G RkZFKSwgYW5kIHR5cGUgInVuc2lnbmVkIGludCIuDQo+IA0KPiBXaGVuIHRoaXMgfkJJVDAgaXMg Y29udmVydGVkIHRvIFVJTlQ2NCwgdGhlIHZhbHVlIHdpbGwgYmUgcHJlc2VydmVkLCBhbmQNCj4g TXlNYXNrIHdpbGwgZW5kIHVwIHdpdGggMHgwMDAwXzAwMDBfRkZGRl9GRkZFLiBMaWtlbHkgbm90 IHRoZSBtYXNrIHRoYXQNCj4gdGhlIGNsZXZlciBwcm9ncmFtbWVyIGludGVuZGVkLg0KPiANCj4g KEFuIGFsdGVybmF0aXZlIHdheSB0byBzdGF0ZSB0aGlzIGlzIHRoYXQgfkJJVDAgaXMgInplcm8g ZXh0ZW5kZWQiLg0KPiBBZ2FpbiwgSSB0aGluayB0aGlzIGlzIGluYXBwcm9wcmlhdGUgZm9yIEMg bGFuZ3VhZ2UgZGlzY3Vzc2lvbjsgaXQncyBmaW5lIGZvciAoeDg2PykNCj4gYXNzZW1ibHkuKQ0K PiANCj4gTXkgcG9pbnQgaXMgdGhhdCBzdWNoIGlubm9jZW50LWxvb2tpbmcgKGFuZCBvdGhlcndp c2UgcmVhbGx5IGdvb2QhKSBjaGFuZ2VzDQo+IGZvciAqY2VudHJhbCogbWFjcm9zIHJlcXVpcmUg YSBsYXJnZSBhdWRpdCBlZmZvcnQuDQoNCkluZGVlZCB0aGF0IGF1ZGl0IGVmZm9ydCBpcyByZXF1 aXJlZC4gSG93IHdvdWxkIHRoYXQgYmUgaGFuZGxlZCBmb3Igbm9uLWVkazIgY29kZSBhbnl3YXk/ IE1pZ2h0IHRoZXJlIGJlIGEgbm90ZSBpbiB0aGUgVURLIGNoYW5nZWxvZywgaWYgYWNjZXB0ZWQ/ DQoNCj4gDQo+IE1vcmUgY29tbWVudHMgYmVsb3c6DQo+IA0KPiA+IEZvciB0aGUgU0lHTkFUVVJF IG1hY3JvcywgYWRkIHNldmVyYWwgY2FzdHMgdG8gYWNjb3VudCBmb3IgaW50DQo+ID4gcHJvbW90 aW9ucywgd2hpY2ggbWlnaHQgYmUgc2lnbmVkLg0KPiA+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6 IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6 IE1hcnZpbiBIYWV1c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbT4NCj4gPiAtLS0NCj4g PiAgTWRlUGtnL0luY2x1ZGUvQmFzZS5oIHwgMTYwICsrKysrKysrKystLS0tLS0tLS0tDQo+ID4g IDEgZmlsZSBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA4MCBkZWxldGlvbnMoLSkNCj4gPg0K PiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9CYXNlLmggYi9NZGVQa2cvSW5jbHVkZS9C YXNlLmggaW5kZXgNCj4gPiBhOTQxODJmMDg4ODYuLmYxMDhlZDkyZWIwYiAxMDA2NDQNCj4gPiAt LS0gYS9NZGVQa2cvSW5jbHVkZS9CYXNlLmgNCj4gPiArKysgYi9NZGVQa2cvSW5jbHVkZS9CYXNl LmgNCj4gPiBAQCAtNDA0LDM4ICs0MDQsMzggQEAgc3RydWN0IF9MSVNUX0VOVFJZIHsgICNkZWZp bmUgTUlOX0lOVDMyDQo+ID4gKCgoSU5UMzIpIC0yMTQ3NDgzNjQ3KSAtIDEpICAjZGVmaW5lIE1J Tl9JTlQ2NCAgKCgoSU5UNjQpDQo+ID4gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTCkgLSAxKQ0KPiA+ DQo+ID4gLSNkZWZpbmUgIEJJVDAgICAgIDB4MDAwMDAwMDENCj4gPiAtI2RlZmluZSAgQklUMSAg ICAgMHgwMDAwMDAwMg0KPiA+IC0jZGVmaW5lICBCSVQyICAgICAweDAwMDAwMDA0DQo+ID4gLSNk ZWZpbmUgIEJJVDMgICAgIDB4MDAwMDAwMDgNCj4gPiAtI2RlZmluZSAgQklUNCAgICAgMHgwMDAw MDAxMA0KPiA+IC0jZGVmaW5lICBCSVQ1ICAgICAweDAwMDAwMDIwDQo+ID4gLSNkZWZpbmUgIEJJ VDYgICAgIDB4MDAwMDAwNDANCj4gPiAtI2RlZmluZSAgQklUNyAgICAgMHgwMDAwMDA4MA0KPiA+ IC0jZGVmaW5lICBCSVQ4ICAgICAweDAwMDAwMTAwDQo+ID4gLSNkZWZpbmUgIEJJVDkgICAgIDB4 MDAwMDAyMDANCj4gPiAtI2RlZmluZSAgQklUMTAgICAgMHgwMDAwMDQwMA0KPiA+IC0jZGVmaW5l ICBCSVQxMSAgICAweDAwMDAwODAwDQo+ID4gLSNkZWZpbmUgIEJJVDEyICAgIDB4MDAwMDEwMDAN Cj4gPiAtI2RlZmluZSAgQklUMTMgICAgMHgwMDAwMjAwMA0KPiA+IC0jZGVmaW5lICBCSVQxNCAg ICAweDAwMDA0MDAwDQo+ID4gLSNkZWZpbmUgIEJJVDE1ICAgIDB4MDAwMDgwMDANCj4gPiAtI2Rl ZmluZSAgQklUMTYgICAgMHgwMDAxMDAwMA0KPiA+IC0jZGVmaW5lICBCSVQxNyAgICAweDAwMDIw MDAwDQo+ID4gLSNkZWZpbmUgIEJJVDE4ICAgIDB4MDAwNDAwMDANCj4gPiAtI2RlZmluZSAgQklU MTkgICAgMHgwMDA4MDAwMA0KPiA+IC0jZGVmaW5lICBCSVQyMCAgICAweDAwMTAwMDAwDQo+ID4g LSNkZWZpbmUgIEJJVDIxICAgIDB4MDAyMDAwMDANCj4gPiAtI2RlZmluZSAgQklUMjIgICAgMHgw MDQwMDAwMA0KPiA+IC0jZGVmaW5lICBCSVQyMyAgICAweDAwODAwMDAwDQo+ID4gLSNkZWZpbmUg IEJJVDI0ICAgIDB4MDEwMDAwMDANCj4gPiAtI2RlZmluZSAgQklUMjUgICAgMHgwMjAwMDAwMA0K PiA+IC0jZGVmaW5lICBCSVQyNiAgICAweDA0MDAwMDAwDQo+ID4gLSNkZWZpbmUgIEJJVDI3ICAg IDB4MDgwMDAwMDANCj4gPiAtI2RlZmluZSAgQklUMjggICAgMHgxMDAwMDAwMA0KPiA+IC0jZGVm aW5lICBCSVQyOSAgICAweDIwMDAwMDAwDQo+ID4gLSNkZWZpbmUgIEJJVDMwICAgIDB4NDAwMDAw MDANCj4gPiAtI2RlZmluZSAgQklUMzEgICAgMHg4MDAwMDAwMA0KPiA+ICsjZGVmaW5lICBCSVQw ICAgICAweDAwMDAwMDAxVQ0KPiA+ICsjZGVmaW5lICBCSVQxICAgICAweDAwMDAwMDAyVQ0KPiA+ ICsjZGVmaW5lICBCSVQyICAgICAweDAwMDAwMDA0VQ0KPiA+ICsjZGVmaW5lICBCSVQzICAgICAw eDAwMDAwMDA4VQ0KPiA+ICsjZGVmaW5lICBCSVQ0ICAgICAweDAwMDAwMDEwVQ0KPiA+ICsjZGVm aW5lICBCSVQ1ICAgICAweDAwMDAwMDIwVQ0KPiA+ICsjZGVmaW5lICBCSVQ2ICAgICAweDAwMDAw MDQwVQ0KPiA+ICsjZGVmaW5lICBCSVQ3ICAgICAweDAwMDAwMDgwVQ0KPiA+ICsjZGVmaW5lICBC SVQ4ICAgICAweDAwMDAwMTAwVQ0KPiA+ICsjZGVmaW5lICBCSVQ5ICAgICAweDAwMDAwMjAwVQ0K PiA+ICsjZGVmaW5lICBCSVQxMCAgICAweDAwMDAwNDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQxMSAg ICAweDAwMDAwODAwVQ0KPiA+ICsjZGVmaW5lICBCSVQxMiAgICAweDAwMDAxMDAwVQ0KPiA+ICsj ZGVmaW5lICBCSVQxMyAgICAweDAwMDAyMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQxNCAgICAweDAw MDA0MDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQxNSAgICAweDAwMDA4MDAwVQ0KPiA+ICsjZGVmaW5l ICBCSVQxNiAgICAweDAwMDEwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQxNyAgICAweDAwMDIwMDAw VQ0KPiA+ICsjZGVmaW5lICBCSVQxOCAgICAweDAwMDQwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQx OSAgICAweDAwMDgwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQyMCAgICAweDAwMTAwMDAwVQ0KPiA+ ICsjZGVmaW5lICBCSVQyMSAgICAweDAwMjAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQyMiAgICAw eDAwNDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQyMyAgICAweDAwODAwMDAwVQ0KPiA+ICsjZGVm aW5lICBCSVQyNCAgICAweDAxMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQyNSAgICAweDAyMDAw MDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQyNiAgICAweDA0MDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBC SVQyNyAgICAweDA4MDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQyOCAgICAweDEwMDAwMDAwVQ0K PiA+ICsjZGVmaW5lICBCSVQyOSAgICAweDIwMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQzMCAg ICAweDQwMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCSVQzMSAgICAweDgwMDAwMDAwVQ0KPiA+ICAj ZGVmaW5lICBCSVQzMiAgICAweDAwMDAwMDAxMDAwMDAwMDBVTEwNCj4gPiAgI2RlZmluZSAgQklU MzMgICAgMHgwMDAwMDAwMjAwMDAwMDAwVUxMDQo+ID4gICNkZWZpbmUgIEJJVDM0ICAgIDB4MDAw MDAwMDQwMDAwMDAwMFVMTA0KPiA+IEBAIC00NjksMjggKzQ2OSwyOCBAQCBzdHJ1Y3QgX0xJU1Rf RU5UUlkgew0KPiA+ICAjZGVmaW5lICBCSVQ2MiAgICAweDQwMDAwMDAwMDAwMDAwMDBVTEwNCj4g PiAgI2RlZmluZSAgQklUNjMgICAgMHg4MDAwMDAwMDAwMDAwMDAwVUxMDQo+ID4NCj4gPiAtI2Rl ZmluZSAgU0laRV8xS0IgICAgMHgwMDAwMDQwMA0KPiA+IC0jZGVmaW5lICBTSVpFXzJLQiAgICAw eDAwMDAwODAwDQo+ID4gLSNkZWZpbmUgIFNJWkVfNEtCICAgIDB4MDAwMDEwMDANCj4gPiAtI2Rl ZmluZSAgU0laRV84S0IgICAgMHgwMDAwMjAwMA0KPiA+IC0jZGVmaW5lICBTSVpFXzE2S0IgICAw eDAwMDA0MDAwDQo+ID4gLSNkZWZpbmUgIFNJWkVfMzJLQiAgIDB4MDAwMDgwMDANCj4gPiAtI2Rl ZmluZSAgU0laRV82NEtCICAgMHgwMDAxMDAwMA0KPiA+IC0jZGVmaW5lICBTSVpFXzEyOEtCICAw eDAwMDIwMDAwDQo+ID4gLSNkZWZpbmUgIFNJWkVfMjU2S0IgIDB4MDAwNDAwMDANCj4gPiAtI2Rl ZmluZSAgU0laRV81MTJLQiAgMHgwMDA4MDAwMA0KPiA+IC0jZGVmaW5lICBTSVpFXzFNQiAgICAw eDAwMTAwMDAwDQo+ID4gLSNkZWZpbmUgIFNJWkVfMk1CICAgIDB4MDAyMDAwMDANCj4gPiAtI2Rl ZmluZSAgU0laRV80TUIgICAgMHgwMDQwMDAwMA0KPiA+IC0jZGVmaW5lICBTSVpFXzhNQiAgICAw eDAwODAwMDAwDQo+ID4gLSNkZWZpbmUgIFNJWkVfMTZNQiAgIDB4MDEwMDAwMDANCj4gPiAtI2Rl ZmluZSAgU0laRV8zMk1CICAgMHgwMjAwMDAwMA0KPiA+IC0jZGVmaW5lICBTSVpFXzY0TUIgICAw eDA0MDAwMDAwDQo+ID4gLSNkZWZpbmUgIFNJWkVfMTI4TUIgIDB4MDgwMDAwMDANCj4gPiAtI2Rl ZmluZSAgU0laRV8yNTZNQiAgMHgxMDAwMDAwMA0KPiA+IC0jZGVmaW5lICBTSVpFXzUxMk1CICAw eDIwMDAwMDAwDQo+ID4gLSNkZWZpbmUgIFNJWkVfMUdCICAgIDB4NDAwMDAwMDANCj4gPiAtI2Rl ZmluZSAgU0laRV8yR0IgICAgMHg4MDAwMDAwMA0KPiA+ICsjZGVmaW5lICBTSVpFXzFLQiAgICAw eDAwMDAwNDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzJLQiAgICAweDAwMDAwODAwVQ0KPiA+ICsj ZGVmaW5lICBTSVpFXzRLQiAgICAweDAwMDAxMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzhLQiAg ICAweDAwMDAyMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzE2S0IgICAweDAwMDA0MDAwVQ0KPiA+ ICsjZGVmaW5lICBTSVpFXzMyS0IgICAweDAwMDA4MDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzY0 S0IgICAweDAwMDEwMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzEyOEtCICAweDAwMDIwMDAwVQ0K PiA+ICsjZGVmaW5lICBTSVpFXzI1NktCICAweDAwMDQwMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpF XzUxMktCICAweDAwMDgwMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzFNQiAgICAweDAwMTAwMDAw VQ0KPiA+ICsjZGVmaW5lICBTSVpFXzJNQiAgICAweDAwMjAwMDAwVQ0KPiA+ICsjZGVmaW5lICBT SVpFXzRNQiAgICAweDAwNDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzhNQiAgICAweDAwODAw MDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzE2TUIgICAweDAxMDAwMDAwVQ0KPiA+ICsjZGVmaW5l ICBTSVpFXzMyTUIgICAweDAyMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzY0TUIgICAweDA0 MDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzEyOE1CICAweDA4MDAwMDAwVQ0KPiA+ICsjZGVm aW5lICBTSVpFXzI1Nk1CICAweDEwMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzUxMk1CICAw eDIwMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBTSVpFXzFHQiAgICAweDQwMDAwMDAwVQ0KPiA+ICsj ZGVmaW5lICBTSVpFXzJHQiAgICAweDgwMDAwMDAwVQ0KPiA+ICAjZGVmaW5lICBTSVpFXzRHQiAg ICAweDAwMDAwMDAxMDAwMDAwMDBVTEwNCj4gPiAgI2RlZmluZSAgU0laRV84R0IgICAgMHgwMDAw MDAwMjAwMDAwMDAwVUxMDQo+ID4gICNkZWZpbmUgIFNJWkVfMTZHQiAgIDB4MDAwMDAwMDQwMDAw MDAwMFVMTA0KPiA+IEBAIC01MjQsMjggKzUyNCwyOCBAQCBzdHJ1Y3QgX0xJU1RfRU5UUlkgew0K PiA+ICAjZGVmaW5lICBTSVpFXzRFQiAgICAweDQwMDAwMDAwMDAwMDAwMDBVTEwNCj4gPiAgI2Rl ZmluZSAgU0laRV84RUIgICAgMHg4MDAwMDAwMDAwMDAwMDAwVUxMDQo+ID4NCj4gPiAtI2RlZmlu ZSAgQkFTRV8xS0IgICAgMHgwMDAwMDQwMA0KPiA+IC0jZGVmaW5lICBCQVNFXzJLQiAgICAweDAw MDAwODAwDQo+ID4gLSNkZWZpbmUgIEJBU0VfNEtCICAgIDB4MDAwMDEwMDANCj4gPiAtI2RlZmlu ZSAgQkFTRV84S0IgICAgMHgwMDAwMjAwMA0KPiA+IC0jZGVmaW5lICBCQVNFXzE2S0IgICAweDAw MDA0MDAwDQo+ID4gLSNkZWZpbmUgIEJBU0VfMzJLQiAgIDB4MDAwMDgwMDANCj4gPiAtI2RlZmlu ZSAgQkFTRV82NEtCICAgMHgwMDAxMDAwMA0KPiA+IC0jZGVmaW5lICBCQVNFXzEyOEtCICAweDAw MDIwMDAwDQo+ID4gLSNkZWZpbmUgIEJBU0VfMjU2S0IgIDB4MDAwNDAwMDANCj4gPiAtI2RlZmlu ZSAgQkFTRV81MTJLQiAgMHgwMDA4MDAwMA0KPiA+IC0jZGVmaW5lICBCQVNFXzFNQiAgICAweDAw MTAwMDAwDQo+ID4gLSNkZWZpbmUgIEJBU0VfMk1CICAgIDB4MDAyMDAwMDANCj4gPiAtI2RlZmlu ZSAgQkFTRV80TUIgICAgMHgwMDQwMDAwMA0KPiA+IC0jZGVmaW5lICBCQVNFXzhNQiAgICAweDAw ODAwMDAwDQo+ID4gLSNkZWZpbmUgIEJBU0VfMTZNQiAgIDB4MDEwMDAwMDANCj4gPiAtI2RlZmlu ZSAgQkFTRV8zMk1CICAgMHgwMjAwMDAwMA0KPiA+IC0jZGVmaW5lICBCQVNFXzY0TUIgICAweDA0 MDAwMDAwDQo+ID4gLSNkZWZpbmUgIEJBU0VfMTI4TUIgIDB4MDgwMDAwMDANCj4gPiAtI2RlZmlu ZSAgQkFTRV8yNTZNQiAgMHgxMDAwMDAwMA0KPiA+IC0jZGVmaW5lICBCQVNFXzUxMk1CICAweDIw MDAwMDAwDQo+ID4gLSNkZWZpbmUgIEJBU0VfMUdCICAgIDB4NDAwMDAwMDANCj4gPiAtI2RlZmlu ZSAgQkFTRV8yR0IgICAgMHg4MDAwMDAwMA0KPiA+ICsjZGVmaW5lICBCQVNFXzFLQiAgICAweDAw MDAwNDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzJLQiAgICAweDAwMDAwODAwVQ0KPiA+ICsjZGVm aW5lICBCQVNFXzRLQiAgICAweDAwMDAxMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzhLQiAgICAw eDAwMDAyMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzE2S0IgICAweDAwMDA0MDAwVQ0KPiA+ICsj ZGVmaW5lICBCQVNFXzMyS0IgICAweDAwMDA4MDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzY0S0Ig ICAweDAwMDEwMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzEyOEtCICAweDAwMDIwMDAwVQ0KPiA+ ICsjZGVmaW5lICBCQVNFXzI1NktCICAweDAwMDQwMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzUx MktCICAweDAwMDgwMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzFNQiAgICAweDAwMTAwMDAwVQ0K PiA+ICsjZGVmaW5lICBCQVNFXzJNQiAgICAweDAwMjAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNF XzRNQiAgICAweDAwNDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzhNQiAgICAweDAwODAwMDAw VQ0KPiA+ICsjZGVmaW5lICBCQVNFXzE2TUIgICAweDAxMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBC QVNFXzMyTUIgICAweDAyMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzY0TUIgICAweDA0MDAw MDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzEyOE1CICAweDA4MDAwMDAwVQ0KPiA+ICsjZGVmaW5l ICBCQVNFXzI1Nk1CICAweDEwMDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzUxMk1CICAweDIw MDAwMDAwVQ0KPiA+ICsjZGVmaW5lICBCQVNFXzFHQiAgICAweDQwMDAwMDAwVQ0KPiA+ICsjZGVm aW5lICBCQVNFXzJHQiAgICAweDgwMDAwMDAwVQ0KPiA+ICAjZGVmaW5lICBCQVNFXzRHQiAgICAw eDAwMDAwMDAxMDAwMDAwMDBVTEwNCj4gPiAgI2RlZmluZSAgQkFTRV84R0IgICAgMHgwMDAwMDAw MjAwMDAwMDAwVUxMDQo+ID4gICNkZWZpbmUgIEJBU0VfMTZHQiAgIDB4MDAwMDAwMDQwMDAwMDAw MFVMTA0KPiA+IEBAIC05NzQsNyArOTc0LDcgQEAgdHlwZWRlZiBVSU5UTiBSRVRVUk5fU1RBVFVT Ow0KPiA+ICAgIEByZXR1cm4gVGhlIHZhbHVlIHNwZWNpZmllZCBieSBTdGF0dXNDb2RlIHdpdGgg dGhlIGhpZ2hlc3QgYml0IHNldC4NCj4gPg0KPiA+ICAqKi8NCj4gPiAtI2RlZmluZSBFTkNPREVf RVJST1IoU3RhdHVzQ29kZSkgICAgICgoUkVUVVJOX1NUQVRVUykoTUFYX0JJVCB8DQo+IChTdGF0 dXNDb2RlKSkpDQo+ID4gKyNkZWZpbmUgRU5DT0RFX0VSUk9SKFN0YXR1c0NvZGUpICAgICAoKFJF VFVSTl9TVEFUVVMpKE1BWF9CSVQgfA0KPiAoU3RhdHVzQ29kZSMjVUxMKSkpDQo+ID4NCj4gDQo+ IE1BWF9CSVQgYWx3YXlzIGhhcyB0eXBlIFVJTlROIChVSU5UNjQgYWthICJ1bnNpZ25lZCBsb25n IGxvbmciIG9uIDY0LWJpdA0KPiBwbGF0Zm9ybXMsIGFuZCBVSU5UMzIgYWthICJ1bnNpZ25lZCBp bnQiIG9uIDMyLWJpdCBwbGF0Zm9ybXMpLiBUaGlzIG1lYW5zDQo+IHRoYXQgRU5DT0RFX0VSUk9S IHJlc3VsdHMgaW4gYSBVSU5UTiwgcmlnaHQgbm93Lg0KDQpHb29kIHBvaW50LCBJIGRpZG4ndCBr ZWVwIHRoYXQgaW4gbWluZC4gSXQgcHJvYmFibHkgc2hvdWxkIGJlIHNvbGVseSAnVScuDQoNCj4g DQo+IEFmdGVyIHRoZSBjaGFuZ2UsIGl0IHdvdWxkIGFsd2F5cyByZXN1bHQgaW4gYSBVSU5UNjQu IEkgdGhpbmsgdGhhdCBjb3VsZCBiZSBhDQo+IHByb2JsZW0gZm9yIDMyLWJpdCBwbGF0Zm9ybXMs IGVzcGVjaWFsbHkgaWYgeW91IHB1c2ggb3Blbi1jb2RlZCBSRVRVUk5feHh4DQo+IHN0YXR1cyBj b2RlcyB0byB0aGUgc3RhY2ssIGZvciBleGFtcGxlIGZvciBwcmludGluZyB3aXRoICIlciIuIFB1 c2hpbmcgYQ0KPiBVSU5UNjQgYXJnIGluc3RlYWQgb2YgYSBVSU5UMzIgYXJnIHRocm91Z2ggdGhl IGVsbGlwc2lzDQo+ICguLi4pIG1pZ2h0IHRocm93IG9mZiB0aGUgcmVzdCBvZiB0aGUgYXJndW1l bnQgcHJvY2Vzc2luZy4NCg0KQWN0dWFsbHkgdGhlIGNhc3QgdG8gUkVUVVJOX1NUQVRVUyBpcyBj b3ZlcmluZyB0aGUgZW50aXJlIG9wZXJhdGlvbiwgc28gaW4gdGhlIGVuZCBpdCBzaG91bGQgYmUg VUlOVE4gYWdhaW4sIG5vPw0KDQo+IA0KPiBTbywgSSB3b3VsZG4ndCByZWNvbW1lbmQgdGhpcyBj aGFuZ2UuIFdoYXQgaXMgdGhlIGV4YWN0IG1vdGl2YXRpb24gZm9yIGl0Pw0KDQpJZiBJIGFtIG5v dCB0ZXJyaWJseSBtaXN0YWtlbiwgdGhlIG9wZXJhdGlvbiByZXN1bHRzIGluIGltcGxlbWVudGF0 aW9uLWRlZmluZWQgYmVoYXZpb3IgYXMtaXMsIHdoaWNoIHRoZSBwYXRjaCBhcyBhIHdob2xlIGlu dGVuZHMgdG8gYXZvaWQuDQoNCj4gDQo+ID4gIC8qKg0KPiA+ICAgIFByb2R1Y2VzIGEgUkVUVVJO X1NUQVRVUyBjb2RlIHdpdGggdGhlIGhpZ2hlc3QgYml0IGNsZWFyLg0KPiA+IEBAIC0xMjIxLDcg KzEyMjEsNyBAQCB0eXBlZGVmIFVJTlROIFJFVFVSTl9TVEFUVVM7DQo+ID4gICAgQHJldHVybiBB IDE2LWJpdCB2YWx1ZSBidWlsdCBmcm9tIHRoZSB0d28gQVNDSUkgY2hhcmFjdGVycyBzcGVjaWZp ZWQgYnkgQQ0KPiBhbmQgQi4NCj4gPg0KPiA+ICAqKi8NCj4gPiAtI2RlZmluZSBTSUdOQVRVUkVf MTYoQSwgQikgICAgICAgICgoQSkgfCAoQiA8PCA4KSkNCj4gPiArI2RlZmluZSBTSUdOQVRVUkVf MTYoQSwgQikgICAgICAgICgoVUlOVDE2KShBKSB8IChVSU5UMTYpKChVSU5UMTYpKEIpIDw8DQo+ IDhVKSkNCj4gDQo+IFRoaXMgbWlnaHQgbm90IGhhdmUgdGhlIGludGVuZGVkIGVmZmVjdC4gRHVl IHRvICJpbnQiIChJTlQzMikgYmVpbmcgY2FwYWJsZQ0KPiBvZiByZXByZXNlbnRpbmcgdGhlIGVu dGlyZSBkb21haW4gb2YgInVuc2lnbmVkIHNob3J0IiAoVUlOVDE2KSwgYm90aA0KPiBvcGVyYW5k cyBvZiB0aGUgYml0d2lzZSBPUiBvcGVyYXRvciB3b3VsZCBiZSBwcm9tb3RlZCB0byAiaW50Ii4g VGhlIHJlc3VsdA0KPiB3b3VsZCBoYXZlIHR5cGUgImludCIuDQoNClRvIG1lLCB3aGF0IHR5cGUg dGhlIHJlc3VsdCBoYXMgd2FzIGxlc3MgaW1wb3J0YW50IHRoYW4gbWFraW5nIHN1cmUgYm90aCBv cGVyYW5kcyBhcmUgdW5zaWduZWQgdG8gZW5zdXJlIGEgd2VsbC1kZWZpbmVkIG9wZXJhdGlvbiBy ZXN1bHQuDQoNCj4gDQo+IFRoZW4sIGV2ZW4gaWYgeW91IGNhc3QgdGhlIGVudGlyZSBleHByZXNz aW9uIHRvIFVJTlQxNiBpbiB0aGUgcmVwbGFjZW1lbnQNCj4gdGV4dCwgaXQgd291bGQgc3RpbGwg YmUgcHJvbW90ZWQgYmFjayB0byAiaW50IiBpbiBhbG1vc3QgZXZlcnkgY29udGV4dC4gKE9uZQ0K PiBleGNlcHRpb24gd291bGQgYmUgdGhlIG9wZXJhbmQgb2YgdGhlICJzaXplb2YiDQo+IG9wZXJh dG9yIC0tIHRoZSBleHByZXNzaW9uIG9wZXJhbmQgb2YgdGhlICJzaXplb2YiIG9wZXJhdG9yIGlz IG9ubHkgZXZhbHVhdGVkDQo+IGlmIGl0IGhhcyB2YXJpYWJsZSBsZW5ndGggYXJyYXkgKFZMQSkg dHlwZSkuDQo+IA0KPiBJIGRvbid0IHRoaW5rIHRoaXMgY2hhbmdlIGlzIGhlbHBmdWwuDQo+IA0K PiA+DQo+ID4gIC8qKg0KPiA+ICAgIFJldHVybnMgYSAzMi1iaXQgc2lnbmF0dXJlIGJ1aWx0IGZy b20gNCBBU0NJSSBjaGFyYWN0ZXJzLg0KPiA+IEBAIC0xMjM4LDcgKzEyMzgsNyBAQCB0eXBlZGVm IFVJTlROIFJFVFVSTl9TVEFUVVM7DQo+ID4gICAgICAgICAgICBDIGFuZCBELg0KPiA+DQo+ID4g ICoqLw0KPiA+IC0jZGVmaW5lIFNJR05BVFVSRV8zMihBLCBCLCBDLCBEKSAgKFNJR05BVFVSRV8x NiAoQSwgQikgfA0KPiA+IChTSUdOQVRVUkVfMTYgKEMsIEQpIDw8IDE2KSkNCj4gPiArI2RlZmlu ZSBTSUdOQVRVUkVfMzIoQSwgQiwgQywgRCkgICgoVUlOVDMyKVNJR05BVFVSRV8xNiAoQSwgQikg fA0KPiA+ICsoVUlOVDMyKSgoVUlOVDMyKVNJR05BVFVSRV8xNiAoQywgRCkgPDwgMTZVKSkNCj4g DQo+IFRoaXMgbG9va3MgYmV0dGVyOyB0aGUgb3JpZ2luYWwgc3ViLWV4cHJlc3Npb24NCj4gDQo+ ICAgU0lHTkFUVVJFXzE2IChDLCBEKSA8PCAxNg0KPiANCj4gaW52b2tlcyB1bmRlZmluZWQgYmVo YXZpb3IgKmlmKiAoU0lHTkFUVVJFXzE2IChDLCBEKSkgaGFzIGJpdCMxNSBzZXQuDQo+IA0KPiBJ biBwcmFjdGljZSB0aGF0IHNob3VsZCBuZXZlciBoYXBwZW4gdGhvdWdoOiB0aGUgZG9jdW1lbnRh dGlvbiBzYXlzIHRoYXQNCj4gdGhlIG1hY3JvIGFyZ3VtZW50cyBoYXZlIHRvIGJlICJBU0NJSSBj aGFyYWN0ZXJzIiwgYW5kIGJpdCM3IGlzIGNsZWFyIGluDQo+IHRob3NlLg0KDQpUaGFua3MgZm9y IHRoaXMgaGludCEgV2hpbGUgdGhpcyBpcyB0cnVlIG9mIGNvdXJzZSwgSSB1c3VhbGx5IHByZWZl ciB0byBzaG93ICdjbGVhciBpbnRlbnRpb25zJyBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gcG90ZW50 aWFsbHkgdW5rbm93biBwcmVtaXNlcy4NCg0KPiANCj4gQW55d2F5LCBpZiB3ZSB3YW50IHRvIGJl IHBlZGFudGljLCB0aGUgZml4IGNhbiBiZSBleHByZXNzZWQgbW9yZSBzaW1wbHksDQo+IGxpa2Ug dGhpczoNCj4gDQo+ICAgKFNJR05BVFVSRV8xNiAoQSwgQikgfCAoKFVJTlQzMilTSUdOQVRVUkVf MTYgKEMsIEQpIDw8IDE2KSkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXg0K PiANCj4gVGhlbiB0aGUgVUlOVDMyIHR5cGUgKCJ1bnNpZ25lZCBpbnQiKSB3aWxsICJjYXNjYWRl IiB0aHJvdWdoIHRoZSBlbnRpcmUNCj4gZXhwcmVzc2lvbiAtLSAoU0lHTkFUVVJFXzE2IChBLCBC KSkgd2lsbCBiZSBjb252ZXJ0ZWQgZnJvbSAiaW50IiB0bw0KPiAidW5zaWduZWQgaW50IiBmb3Ig dGhlIGJpdHdpc2UgT1IsIGFuZCB0aGUgcmVzdWx0IHdpbGwgYWxzbyBoYXZlIHR5cGUNCj4gVUlO VDMyOg0KPiANCj4gICAoSU5UMzJfVkFMICB8IChVSU5UMzIpSU5UMzJfVkFMIDw8IDE2KQ0KPiAg IChJTlQzMl9WQUwgIHwgVUlOVDMyX1ZBTCkNCj4gICAoVUlOVDMyX1ZBTCB8IFVJTlQzMl9WQUwp DQo+ICAgKFVJTlQzMl9WQUwpDQoNClRoaXMgaXMgb25seSB0cnVlIGlmIGludCA8PSBJTlQzMiwg aXNuJ3QgaXQ/DQoNCj4gDQo+ID4NCj4gPiAgLyoqDQo+ID4gICAgUmV0dXJucyBhIDY0LWJpdCBz aWduYXR1cmUgYnVpbHQgZnJvbSA4IEFTQ0lJIGNoYXJhY3RlcnMuDQo+ID4gQEAgLTEyNjAsNyAr MTI2MCw3IEBAIHR5cGVkZWYgVUlOVE4gUkVUVVJOX1NUQVRVUzsNCj4gPg0KPiA+ICAqKi8NCj4g PiAgI2RlZmluZSBTSUdOQVRVUkVfNjQoQSwgQiwgQywgRCwgRSwgRiwgRywgSCkgXA0KPiA+IC0g ICAgKFNJR05BVFVSRV8zMiAoQSwgQiwgQywgRCkgfCAoKFVJTlQ2NCkgKFNJR05BVFVSRV8zMiAo RSwgRiwgRywgSCkpIDw8DQo+IDMyKSkNCj4gPiArICAgICgoVUlOVDY0KVNJR05BVFVSRV8zMiAo QSwgQiwgQywgRCkgfCAoKFVJTlQ2NCkNCj4gPiArICgoVUlOVDY0KVNJR05BVFVSRV8zMiAoRSwg RiwgRywgSCkpIDw8IDMyVSkpDQo+ID4NCj4gPiAgI2lmIGRlZmluZWQoX01TQ19FWFRFTlNJT05T KSAmJiAhZGVmaW5lZCAoX19JTlRFTF9DT01QSUxFUikgJiYNCj4gIWRlZmluZWQgKE1ERV9DUFVf RUJDKQ0KPiA+ICAgIHZvaWQgKiBfUmV0dXJuQWRkcmVzcyh2b2lkKTsNCj4gPg0KPiANCj4gQXNz dW1pbmcgdGhhdCB0aGUgU0lHTkFUVVJFXzMyIGlzICplaXRoZXIqIGZpeGVkIChzbyB0aGF0IGl0 IHByb2R1Y2VzIGENCj4gVUlOVDMyIHZhbHVlKSAqb3IqIHVzZWQgaW4gYWNjb3JkYW5jZSB3aXRo IHRoZSBkb2N1bWVudGF0aW9uIChpZS4sIG9ubHkNCj4gQVNDSUkgY2hhcmFjdGVycyBhcyBhcmd1 bWVudHMpLCB0aGUgcmVwbGFjZW1lbnQgdGV4dCBmb3IgU0lHTkFUVVJFXzY0IGlzDQo+IGFscmVh ZHkgY29ycmVjdCwgYW5kIHRoaXMgaHVuayBpcyB1bm5lZWRlZC4NCg0KSSB0aGluayB0aGlzIGlz IGFsc28gb25seSB0cnVlIGlmIGludCA8PSBJTlQ2NC4NCg0KPiANCj4gSW4gdGhlIGZvcm1lciBj YXNlIChTSUdOQVRVUkVfMzIgZml4ZWQpLCB3ZSBoYXZlOg0KPiANCj4gICAoVUlOVDMyX1ZBTCB8 IChVSU5UNjQpVUlOVDMyX1ZBTCA8PCAzMikNCj4gICAoVUlOVDMyX1ZBTCB8IFVJTlQ2NF9WQUwp DQo+ICAgKFVJTlQ2NF9WQUwgfCBVSU5UNjRfVkFMKQ0KPiAgIChVSU5UNjRfVkFMKQ0KPiANCj4g SW4gdGhlIGxhdHRlciBjYXNlIC0tIFNJR05BVFVSRV8zMiBsZWZ0IHVuY2hhbmdlZCwgYnV0IGNh bGwgc2l0ZXMgb25seSB1c2UNCj4gQVNDSUkgY2hhciBhcmdzIC0tLCB3ZSBoYXZlOg0KPiANCj4g ICAoSU5UMzJfVkFMICB8IChVSU5UNjQpSU5UMzJfVkFMIDw8IDMyKQ0KPiAgIChJTlQzMl9WQUwg IHwgVUlOVDY0X1ZBTCkNCj4gICAoVUlOVDY0X1ZBTCB8IFVJTlQ2NF9WQUwpDQo+ICAgKFVJTlQ2 NF9WQUwpDQo+IA0KPiB3aGljaCBkb2VzIHdoYXQgd2Ugd2FudCwgYmVjYXVzZSBib3RoIElOVDMy IC0tPiBVSU5UNjQgY29udmVyc2lvbnMgc3RhcnQNCj4gb24gbm9uLW5lZ2F0aXZlIHZhbHVlcyAo aS5lLiwgYml0IzE1IGlzIGNsZWFyIGluIGJvdGggU0lHTkFUVVJFXzMyKCkNCj4gZXhwYW5zaW9u cykuDQo+IA0KPiBTbywgSSB0aGluayB3ZSBkb24ndCBuZWVkIHRvIHRvdWNoIFNJR05BVFVSRV82 NCgpLg0KPiANCj4gVGhhbmtzLA0KPiBMYXN6bG8NCg==