From mboxrd@z Thu Jan 1 00:00:00 1970 Reply-To: kernel-hardening@lists.openwall.com From: "Reshetova, Elena" Date: Tue, 4 Oct 2016 06:27:16 +0000 Message-ID: <2236FBA76BA1254E88B949DDB74E612B41BDAB99@IRSMSX102.ger.corp.intel.com> References: <1475476886-26232-1-git-send-email-elena.reshetova@intel.com> <1475476886-26232-14-git-send-email-elena.reshetova@intel.com> In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: [kernel-hardening] RE: [RFC PATCH 13/13] lkdtm: add tests for atomic over-/underflow To: Kees Cook Cc: "kernel-hardening@lists.openwall.com" , Hans Liljestrand , David Windsor List-ID: T24gU3VuLCBPY3QgMiwgMjAxNiBhdCAxMTo0MSBQTSwgRWxlbmEgUmVzaGV0b3ZhIDxlbGVuYS5y ZXNoZXRvdmFAaW50ZWwuY29tPiB3cm90ZToNCj4gRnJvbTogSGFucyBMaWxqZXN0cmFuZCA8aXNo a2FtaWVsQGdtYWlsLmNvbT4NCj4NCj4gVGhpcyBhZGRzIGFkZGl0aW9uYWwgdGVzdHMgZm9yIG1v ZGlmaWVkIGF0b21pYyBmdW5jdGlvbnMuDQoNCj5Bd2Vzb21lLg0KDQo+SSB0aGluayBpbiB0aGUg bmV4dCBsZGt0bSByZWZhY3RvcmluZywgSSdtIGdvaW5nIHRvIGhhdmUgdG8gY29tZSB1cCB3aXRo IGEgd2F5IHRvIGdlbmVyYXRlIHRlc3RzIHByb2dyYW1tYXRpY2FsbHkuIDopDQoNCj5JbiB0aGlz IGNhc2UsIEkgZG8gd29uZGVyIGlmIHNvbWUgb2YgdGhlc2UgY291bGQgYmUgbWFjcm8taXplZD8g UmVhbGx5IG9ubHkgdGhlIGZ1bmN0aW9uIG5hbWUgaXMgY2hhbmdpbmcuLi4NCg0KWWVhaCwgaXQg aXMga2luZCBvZiB0aGUgc2FtZSBzdHVmZiBhbGwgb3ZlciwgYnV0IGF0IGxlYXN0IGluIGxpbmUg d2l0aCBvdGhlciBleGlzdGluZyB0ZXN0cyA6KSANCldvdWxkIHlvdSBiZSBhYmxlIHRvIGxvb2sg bmV4dCB3ZWVrIGludG8gbWFraW5nIHRoZW0gYXMgbWFjcm9zPyANCg0KQmVzdCBSZWdhcmRzLA0K RWxlbmEuDQoNCj4NCj4gU2lnbmVkLW9mZi1ieTogSGFucyBMaWxqZXN0cmFuZCA8aXNoa2FtaWVs QGdtYWlsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogRWxlbmEgUmVzaGV0b3ZhIDxlbGVuYS5yZXNo ZXRvdmFAaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBXaW5kc29yIDxkd2luZHNv ckBnbWFpbC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9taXNjL2xrZHRtLmggICAgICB8ICAxNyAr KysrDQo+ICBkcml2ZXJzL21pc2MvbGtkdG1fYnVncy5jIHwgMjA1IA0KPiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICBkcml2ZXJzL21pc2MvbGtkdG1f Y29yZS5jIHwgIDE3ICsrKysNCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjM5IGluc2VydGlvbnMoKykN Cj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9sa2R0bS5oIGIvZHJpdmVycy9taXNjL2xr ZHRtLmggaW5kZXggDQo+IGNmYTEwMzkuLjIyNDcxM2EgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv bWlzYy9sa2R0bS5oDQo+ICsrKyBiL2RyaXZlcnMvbWlzYy9sa2R0bS5oDQo+IEBAIC0yMCw3ICsy MCwyNCBAQCB2b2lkIGxrZHRtX0hBUkRMT0NLVVAodm9pZCk7ICB2b2lkIA0KPiBsa2R0bV9TUElO TE9DS1VQKHZvaWQpOyAgdm9pZCBsa2R0bV9IVU5HX1RBU0sodm9pZCk7ICB2b2lkIA0KPiBsa2R0 bV9BVE9NSUNfVU5ERVJGTE9XKHZvaWQpOw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfREVDX1JFVFVS Tl9VTkRFUkZMT1codm9pZCk7DQo+ICt2b2lkIGxrZHRtX0FUT01JQ19TVUJfVU5ERVJGTE9XKHZv aWQpOyB2b2lkIA0KPiArbGtkdG1fQVRPTUlDX1NVQl9SRVRVUk5fVU5ERVJGTE9XKHZvaWQpOw0K PiAgdm9pZCBsa2R0bV9BVE9NSUNfT1ZFUkZMT1codm9pZCk7DQo+ICt2b2lkIGxrZHRtX0FUT01J Q19JTkNfUkVUVVJOX09WRVJGTE9XKHZvaWQpOw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfQUREX09W RVJGTE9XKHZvaWQpOyB2b2lkIA0KPiArbGtkdG1fQVRPTUlDX0FERF9SRVRVUk5fT1ZFUkZMT1co dm9pZCk7DQo+ICt2b2lkIGxrZHRtX0FUT01JQ19BRERfVU5MRVNTX09WRVJGTE9XKHZvaWQpOw0K PiArdm9pZCBsa2R0bV9BVE9NSUNfSU5DX0FORF9URVNUX09WRVJGTE9XKHZvaWQpOw0KPiArdm9p ZCBsa2R0bV9BVE9NSUNfTE9OR19VTkRFUkZMT1codm9pZCk7DQo+ICt2b2lkIGxrZHRtX0FUT01J Q19MT05HX0RFQ19SRVRVUk5fVU5ERVJGTE9XKHZvaWQpOw0KPiArdm9pZCBsa2R0bV9BVE9NSUNf TE9OR19TVUJfVU5ERVJGTE9XKHZvaWQpOw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfTE9OR19TVUJf UkVUVVJOX1VOREVSRkxPVyh2b2lkKTsNCj4gK3ZvaWQgbGtkdG1fQVRPTUlDX0xPTkdfT1ZFUkZM T1codm9pZCk7IHZvaWQgDQo+ICtsa2R0bV9BVE9NSUNfTE9OR19JTkNfUkVUVVJOX09WRVJGTE9X KHZvaWQpOw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfTE9OR19BRERfT1ZFUkZMT1codm9pZCk7DQo+ ICt2b2lkIGxrZHRtX0FUT01JQ19MT05HX0FERF9SRVRVUk5fT1ZFUkZMT1codm9pZCk7DQo+ICt2 b2lkIGxrZHRtX0FUT01JQ19MT05HX1NVQl9BTkRfVEVTVCh2b2lkKTsNCj4gIHZvaWQgbGtkdG1f Q09SUlVQVF9MSVNUX0FERCh2b2lkKTsNCj4gIHZvaWQgbGtkdG1fQ09SUlVQVF9MSVNUX0RFTCh2 b2lkKTsNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9sa2R0bV9idWdzLmMgYi9kcml2 ZXJzL21pc2MvbGtkdG1fYnVncy5jIA0KPiBpbmRleCBmMzM2MjA2Li5mNmEwOWM2IDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL21pc2MvbGtkdG1fYnVncy5jDQo+ICsrKyBiL2RyaXZlcnMvbWlzYy9s a2R0bV9idWdzLmMNCj4gQEAgLTE0MCw2ICsxNDAsNDIgQEAgdm9pZCBsa2R0bV9BVE9NSUNfVU5E RVJGTE9XKHZvaWQpDQo+ICAgICAgICAgYXRvbWljX2RlYygmdW5kZXIpOw0KPiAgfQ0KPg0KPiAr dm9pZCBsa2R0bV9BVE9NSUNfREVDX1JFVFVSTl9VTkRFUkZMT1codm9pZCkNCj4gK3sNCj4gKyAg ICAgICBhdG9taWNfdCB1bmRlciA9IEFUT01JQ19JTklUKElOVF9NSU4pOw0KPiArDQo+ICsgICAg ICAgcHJfaW5mbygiYXR0ZW1wdGluZyBnb29kIGF0b21pY19kZWNfcmV0dXJuXG4iKTsNCj4gKyAg ICAgICBhdG9taWNfaW5jKCZ1bmRlcik7DQo+ICsgICAgICAgYXRvbWljX2RlY19yZXR1cm4oJnVu ZGVyKTsNCj4gKw0KPiArICAgICAgIHByX2luZm8oImF0dGVtcHRpbmcgYmFkIGF0b21pY19kZWNf cmV0dXJuXG4iKTsNCj4gKyAgICAgICBhdG9taWNfZGVjX3JldHVybigmdW5kZXIpOw0KPiArfQ0K PiArDQo+ICt2b2lkIGxrZHRtX0FUT01JQ19TVUJfVU5ERVJGTE9XKHZvaWQpIHsNCj4gKyAgICAg ICBhdG9taWNfdCB1bmRlciA9IEFUT01JQ19JTklUKElOVF9NSU4pOw0KPiArDQo+ICsgICAgICAg cHJfaW5mbygiYXR0ZW1wdGluZyBnb29kIGF0b21pYyBzdWJ0cmFjdFxuIik7DQo+ICsgICAgICAg YXRvbWljX2FkZCgxMCwgJnVuZGVyKTsNCj4gKyAgICAgICBhdG9taWNfc3ViKDEwLCAmdW5kZXIp Ow0KPiArDQo+ICsgICAgICAgcHJfaW5mbygiYXR0ZW1wdGluZyBiYWQgYXRvbWljIHN1YnRyYWN0 IHVuZGVyZmxvd1xuIik7DQo+ICsgICAgICAgYXRvbWljX3N1YigxMCwgJnVuZGVyKTsNCj4gK30N Cj4gKw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfU1VCX1JFVFVSTl9VTkRFUkZMT1codm9pZCkNCj4g K3sNCj4gKyAgICAgICBhdG9taWNfdCB1bmRlciA9IEFUT01JQ19JTklUKElOVF9NSU4pOw0KPiAr DQo+ICsgICAgICAgcHJfaW5mbygiYXR0ZW1wdGluZyBnb29kIGF0b21pY19zdWJfcmV0dXJuXG4i KTsNCj4gKyAgICAgICBhdG9taWNfYWRkKDEwLCAmdW5kZXIpOw0KPiArICAgICAgIGF0b21pY19z dWJfcmV0dXJuKDEwLCAmdW5kZXIpOw0KPiArDQo+ICsgICAgICAgcHJfaW5mbygiYXR0ZW1wdGlu ZyBiYWQgYXRvbWljX3N1Yl9yZXR1cm4gdW5kZXJmbG93XG4iKTsNCj4gKyAgICAgICBhdG9taWNf c3ViX3JldHVybigxMCwgJnVuZGVyKTsNCj4gKw0KPiArfQ0KPiArDQo+ICB2b2lkIGxrZHRtX0FU T01JQ19PVkVSRkxPVyh2b2lkKQ0KPiAgew0KPiAgICAgICAgIGF0b21pY190IG92ZXIgPSBBVE9N SUNfSU5JVChJTlRfTUFYKTsgQEAgLTIxNCwzICsyNTAsMTcyIEBAIA0KPiB2b2lkIGxrZHRtX0NP UlJVUFRfTElTVF9ERUwodm9pZCkNCj4gICAgICAgICBlbHNlDQo+ICAgICAgICAgICAgICAgICBw cl9lcnIoImxpc3RfZGVsKCkgY29ycnVwdGlvbiBub3QgZGV0ZWN0ZWQhXG4iKTsgIH0NCj4gKw0K PiArdm9pZCBsa2R0bV9BVE9NSUNfSU5DX1JFVFVSTl9PVkVSRkxPVyh2b2lkKQ0KPiArew0KPiAr ICAgICAgIGF0b21pY190IG92ZXIgPSBBVE9NSUNfSU5JVChJTlRfTUFYKTsNCj4gKw0KPiArICAg ICAgIHByX2luZm8oImF0dGVtcHRpbmcgZ29vZCBhdG9taWNfaW5jX3JldHVyblxuIik7DQo+ICsg ICAgICAgYXRvbWljX2RlYygmb3Zlcik7DQo+ICsgICAgICAgYXRvbWljX2luY19yZXR1cm4oJm92 ZXIpOw0KPiArDQo+ICsgICAgICAgcHJfaW5mbygiYXR0ZW1wdGluZyBiYWQgYXRvbWljX2luY19y ZXR1cm4gb3ZlcmZsb3dcbiIpOw0KPiArICAgICAgIGF0b21pY19pbmNfcmV0dXJuKCZvdmVyKTsN Cj4gK30NCj4gKw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfQUREX09WRVJGTE9XKHZvaWQpIHsNCj4g KyAgICAgICBhdG9taWNfdCBvdmVyID0gQVRPTUlDX0lOSVQoSU5UX01BWCk7DQo+ICsNCj4gKyAg ICAgICBwcl9pbmZvKCJhdHRlbXB0aW5nIGdvb2QgYXRvbWljIGFkZFxuIik7DQo+ICsgICAgICAg YXRvbWljX3N1YigxMCwgJm92ZXIpOw0KPiArICAgICAgIGF0b21pY19hZGQoMTAsICZvdmVyKTsN Cj4gKw0KPiArICAgICAgIHByX2luZm8oImF0dGVtcHRpbmcgYmFkIGF0b21pYyBhZGQgb3ZlcmZs b3dcbiIpOw0KPiArICAgICAgIGF0b21pY19hZGQoMTAsICZvdmVyKTsNCj4gK30NCj4gKw0KPiAr dm9pZCBsa2R0bV9BVE9NSUNfQUREX1JFVFVSTl9PVkVSRkxPVyh2b2lkKQ0KPiArew0KPiArICAg ICAgIGF0b21pY190IG92ZXIgPSBBVE9NSUNfSU5JVChJTlRfTUFYKTsNCj4gKw0KPiArICAgICAg IHByX2luZm8oImF0dGVtcHRpbmcgZ29vZCBhdG9taWNfYWRkX3JldHVyblxuIik7DQo+ICsgICAg ICAgYXRvbWljX3N1YigxMCwgJm92ZXIpOw0KPiArICAgICAgIGF0b21pY19hZGRfcmV0dXJuKDEw LCAmb3Zlcik7DQo+ICsNCj4gKyAgICAgICBwcl9pbmZvKCJhdHRlbXB0aW5nIGJhZCBhdG9taWNf YWRkX3JldHVybiBvdmVyZmxvd1xuIik7DQo+ICsgICAgICAgYXRvbWljX2FkZF9yZXR1cm4oMTAs ICZvdmVyKTsNCj4gK30NCj4gKw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfQUREX1VOTEVTU19PVkVS RkxPVyh2b2lkKQ0KPiArew0KPiArICAgICAgIGF0b21pY190IG92ZXIgPSBBVE9NSUNfSU5JVChJ TlRfTUFYKTsNCj4gKw0KPiArICAgICAgIHByX2luZm8oImF0dGVtcHRpbmcgZ29vZCBhdG9taWNf YWRkX3VubGVzc1xuIik7DQo+ICsgICAgICAgYXRvbWljX3N1YigxMCwgJm92ZXIpOw0KPiArICAg ICAgIGF0b21pY19hZGRfdW5sZXNzKCZvdmVyLCAxMCwgMCk7DQo+ICsNCj4gKyAgICAgICBwcl9p bmZvKCJhdHRlbXB0aW5nIGJhZCBhdG9taWNfYWRkX3VubGVzcyBvdmVyZmxvd1xuIik7DQo+ICsg ICAgICAgYXRvbWljX2FkZF91bmxlc3MoJm92ZXIsIDEwLCAwKTsgfQ0KPiArDQo+ICt2b2lkIGxr ZHRtX0FUT01JQ19JTkNfQU5EX1RFU1RfT1ZFUkZMT1codm9pZCkNCj4gK3sNCj4gKyAgICAgICBh dG9taWNfdCBvdmVyID0gQVRPTUlDX0lOSVQoSU5UX01BWCk7DQo+ICsNCj4gKyAgICAgICBwcl9p bmZvKCJhdHRlbXB0aW5nIGdvb2QgYXRvbWljX2luY19hbmRfdGVzdFxuIik7DQo+ICsgICAgICAg YXRvbWljX2RlYygmb3Zlcik7DQo+ICsgICAgICAgYXRvbWljX2luY19hbmRfdGVzdCgmb3Zlcik7 DQo+ICsNCj4gKyAgICAgICBwcl9pbmZvKCJhdHRlbXB0aW5nIGJhZCBhdG9taWNfaW5jX2FuZF90 ZXN0IG92ZXJmbG93XG4iKTsNCj4gKyAgICAgICBhdG9taWNfaW5jX2FuZF90ZXN0KCZvdmVyKTsN Cj4gK30NCj4gKw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfTE9OR19VTkRFUkZMT1codm9pZCkgew0K PiArICAgICAgIGF0b21pY19sb25nX3QgdW5kZXIgPSBBVE9NSUNfTE9OR19JTklUKExPTkdfTUlO KTsNCj4gKw0KPiArICAgICAgIHByX2luZm8oImF0dGVtcHRpbmcgZ29vZCBhdG9taWNfbG9uZ19k ZWNcbiIpOw0KPiArICAgICAgIGF0b21pY19sb25nX2luYygmdW5kZXIpOw0KPiArICAgICAgIGF0 b21pY19sb25nX2RlYygmdW5kZXIpOw0KPiArDQo+ICsgICAgICAgcHJfaW5mbygiYXR0ZW1wdGlu ZyBiYWQgYXRvbWljX2xvbmdfZGVjIHVuZGVyZmxvd1xuIik7DQo+ICsgICAgICAgYXRvbWljX2xv bmdfZGVjKCZ1bmRlcik7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbGtkdG1fQVRPTUlDX0xPTkdfREVD X1JFVFVSTl9VTkRFUkZMT1codm9pZCkNCj4gK3sNCj4gKyAgICAgICBhdG9taWNfbG9uZ190IHVu ZGVyID0gQVRPTUlDX0xPTkdfSU5JVChMT05HX01JTik7DQo+ICsNCj4gKyAgICAgICBwcl9pbmZv KCJhdHRlbXB0aW5nIGdvb2QgYXRvbWljX2xvbmdfZGVjX3JldHVyblxuIik7DQo+ICsgICAgICAg YXRvbWljX2xvbmdfaW5jKCZ1bmRlcik7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfZGVjX3JldHVy bigmdW5kZXIpOw0KPiArDQo+ICsgICAgICAgcHJfaW5mbygiYXR0ZW1wdGluZyBiYWQgYXRvbWlj X2xvbmdfZGVjX3JldHVybiB1bmRlcmZsb3dcbiIpOw0KPiArICAgICAgIGF0b21pY19sb25nX2Rl Y19yZXR1cm4oJnVuZGVyKTsgfQ0KPiArDQo+ICt2b2lkIGxrZHRtX0FUT01JQ19MT05HX1NVQl9V TkRFUkZMT1codm9pZCkNCj4gK3sNCj4gKyAgICAgICBhdG9taWNfbG9uZ190IHVuZGVyID0gQVRP TUlDX0lOSVQoTE9OR19NSU4pOw0KPiArDQo+ICsgICAgICAgcHJfaW5mbygiYXR0ZW1wdGluZyBn b29kIGF0b21pY19sb25nX3N1YlxuIik7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfYWRkKDEwLCAm dW5kZXIpOw0KPiArICAgICAgIGF0b21pY19sb25nX3N1YigxMCwgJnVuZGVyKTsNCj4gKw0KPiAr ICAgICAgIHByX2luZm8oImF0dGVtcHRpbmcgYmFkIGF0b21pY19sb25nX3N1YiB1bmRlcmZsb3dc biIpOw0KPiArICAgICAgIGF0b21pY19sb25nX3N1YigxMCwgJnVuZGVyKTsNCj4gKw0KPiArfQ0K PiArDQo+ICt2b2lkIGxrZHRtX0FUT01JQ19MT05HX1NVQl9SRVRVUk5fVU5ERVJGTE9XKHZvaWQp DQo+ICt7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfdCB1bmRlciA9IEFUT01JQ19JTklUKExPTkdf TUlOKTsNCj4gKw0KPiArICAgICAgIHByX2luZm8oImF0dGVtcHRpbmcgZ29vZCBhdG9taWNfbG9u Z19zdWJfcmV0dXJuIFxuIik7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfYWRkKDEwLCAmdW5kZXIp Ow0KPiArICAgICAgIGF0b21pY19sb25nX3N1Yl9yZXR1cm4oMTAsICZ1bmRlcik7DQo+ICsNCj4g KyAgICAgICBwcl9pbmZvKCJhdHRlbXB0aW5nIGJhZCBhdG9taWNfbG9uZ19zdWJfcmV0dXJuIHVu ZGVyZmxvd1xuIik7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfc3ViX3JldHVybigxMCwgJnVuZGVy KTsNCj4gKw0KPiArfQ0KPiArDQo+ICt2b2lkIGxrZHRtX0FUT01JQ19MT05HX09WRVJGTE9XKHZv aWQpIHsNCj4gKyAgICAgICBhdG9taWNfbG9uZ190IG92ZXIgPSBBVE9NSUNfTE9OR19JTklUKExP TkdfTUFYKTsNCj4gKw0KPiArICAgICAgIHByX2luZm8oImF0dGVtcHRpbmcgZ29vZCBhdG9taWNf bG9uZ19pbmNcbiIpOw0KPiArICAgICAgIGF0b21pY19sb25nX2RlYygmb3Zlcik7DQo+ICsgICAg ICAgYXRvbWljX2xvbmdfaW5jKCZvdmVyKTsNCj4gKw0KPiArICAgICAgIHByX2luZm8oImF0dGVt cHRpbmcgYmFkIGF0b21pY19sb25nX2luYyBvdmVyZmxvd1xuIik7DQo+ICsgICAgICAgYXRvbWlj X2xvbmdfaW5jKCZvdmVyKTsNCj4gK30NCj4gKw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfTE9OR19J TkNfUkVUVVJOX09WRVJGTE9XKHZvaWQpDQo+ICt7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfdCBv dmVyID0gQVRPTUlDX0xPTkdfSU5JVChMT05HX01BWCk7DQo+ICsNCj4gKyAgICAgICBwcl9pbmZv KCJhdHRlbXB0aW5nIGdvb2QgYXRvbWljX29uZ19pbmNfcmV0dXJuXG4iKTsNCj4gKyAgICAgICBh dG9taWNfbG9uZ19kZWMoJm92ZXIpOw0KPiArICAgICAgIGF0b21pY19sb25nX2luY19yZXR1cm4o Jm92ZXIpOw0KPiArDQo+ICsgICAgICAgcHJfaW5mbygiYXR0ZW1wdGluZyBiYWQgYXRvbWljX2xv bmdfaW5jX3JldHVybiBvdmVyZmxvd1xuIik7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfaW5jX3Jl dHVybigmb3Zlcik7IH0NCj4gKw0KPiArdm9pZCBsa2R0bV9BVE9NSUNfTE9OR19BRERfT1ZFUkZM T1codm9pZCkNCj4gK3sNCj4gKyAgICAgICBhdG9taWNfbG9uZ190IG92ZXIgPSBBVE9NSUNfTE9O R19JTklUKExPTkdfTUFYKTsNCj4gKw0KPiArICAgICAgIHByX2luZm8oImF0dGVtcHRpbmcgZ29v ZCBhdG9taWNfbG9uZ19hZGRcbiIpOw0KPiArICAgICAgIGF0b21pY19sb25nX3N1YigxMCwgJm92 ZXIpOw0KPiArICAgICAgIGF0b21pY19sb25nX2FkZCgxMCwgJm92ZXIpOw0KPiArDQo+ICsgICAg ICAgcHJfaW5mbygiYXR0ZW1wdGluZyBiYWQgYXRvbWljX2xvbmdfYWRkIG92ZXJmbG93XG4iKTsN Cj4gKyAgICAgICBhdG9taWNfbG9uZ19hZGQoMTAsICZvdmVyKTsNCj4gK30NCj4gKw0KPiArdm9p ZCBsa2R0bV9BVE9NSUNfTE9OR19BRERfUkVUVVJOX09WRVJGTE9XKHZvaWQpDQo+ICt7DQo+ICsg ICAgICAgYXRvbWljX2xvbmdfdCBvdmVyID0gQVRPTUlDX0xPTkdfSU5JVChMT05HX01BWCk7DQo+ ICsNCj4gKyAgICAgICBwcl9pbmZvKCJhdHRlbXB0aW5nIGdvb2QgYXRvbWljX2xvbmdfYWRkX3Jl dHVyblxuIik7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfc3ViKDEwLCAmb3Zlcik7DQo+ICsgICAg ICAgYXRvbWljX2xvbmdfYWRkX3JldHVybigxMCwgJm92ZXIpOw0KPiArDQo+ICsgICAgICAgcHJf aW5mbygiYXR0ZW1wdGluZyBiYWQgYXRvbWljX2xvbmdfYWRkX3JldHVybiBvdmVyZmxvd1xuIik7 DQo+ICsgICAgICAgYXRvbWljX2xvbmdfYWRkX3JldHVybigxMCwgJm92ZXIpOyB9DQo+ICsNCj4g K3ZvaWQgbGtkdG1fQVRPTUlDX0xPTkdfU1VCX0FORF9URVNUKHZvaWQpDQo+ICt7DQo+ICsgICAg ICAgYXRvbWljX2xvbmdfdCBvdmVyID0gQVRPTUlDX0xPTkdfSU5JVChMT05HX01JTik7DQo+ICsN Cj4gKyAgICAgICBwcl9pbmZvKCJhdHRlbXB0aW5nIGdvb2QgYXRvbWljX2xvbmdfc3ViX2FuZF90 ZXN0XG4iKTsNCj4gKyAgICAgICBhdG9taWNfbG9uZ19hZGQoMTAsICZvdmVyKTsNCj4gKyAgICAg ICBhdG9taWNfbG9uZ19zdWJfYW5kX3Rlc3QoMTAsICZvdmVyKTsNCj4gKw0KPiArICAgICAgIHBy X2luZm8oImF0dGVtcHRpbmcgYmFkIGF0b21pY19sb25nX3N1Yl9hbmRfdGVzdCBvdmVyZmxvd1xu Iik7DQo+ICsgICAgICAgYXRvbWljX2xvbmdfc3ViX2FuZF90ZXN0KDEwLCAmb3Zlcik7IH0NCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9sa2R0bV9jb3JlLmMgYi9kcml2ZXJzL21pc2MvbGtk dG1fY29yZS5jIA0KPiBpbmRleCA3ZWViNzFhLi40YjA1ODAzIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL21pc2MvbGtkdG1fY29yZS5jDQo+ICsrKyBiL2RyaXZlcnMvbWlzYy9sa2R0bV9jb3JlLmMN Cj4gQEAgLTIyMSw3ICsyMjEsMjQgQEAgc3RydWN0IGNyYXNodHlwZSBjcmFzaHR5cGVzW10gPSB7 DQo+ICAgICAgICAgQ1JBU0hUWVBFKFdSSVRFX1JPX0FGVEVSX0lOSVQpLA0KPiAgICAgICAgIENS QVNIVFlQRShXUklURV9LRVJOKSwNCj4gICAgICAgICBDUkFTSFRZUEUoQVRPTUlDX1VOREVSRkxP VyksDQo+ICsgICAgICAgQ1JBU0hUWVBFKEFUT01JQ19ERUNfUkVUVVJOX1VOREVSRkxPVyksDQo+ ICsgICAgICAgQ1JBU0hUWVBFKEFUT01JQ19TVUJfVU5ERVJGTE9XKSwNCj4gKyAgICAgICBDUkFT SFRZUEUoQVRPTUlDX1NVQl9SRVRVUk5fVU5ERVJGTE9XKSwNCj4gICAgICAgICBDUkFTSFRZUEUo QVRPTUlDX09WRVJGTE9XKSwNCj4gKyAgICAgICBDUkFTSFRZUEUoQVRPTUlDX0lOQ19SRVRVUk5f T1ZFUkZMT1cpLA0KPiArICAgICAgIENSQVNIVFlQRShBVE9NSUNfQUREX09WRVJGTE9XKSwNCj4g KyAgICAgICBDUkFTSFRZUEUoQVRPTUlDX0FERF9SRVRVUk5fT1ZFUkZMT1cpLA0KPiArICAgICAg IENSQVNIVFlQRShBVE9NSUNfQUREX1VOTEVTU19PVkVSRkxPVyksDQo+ICsgICAgICAgQ1JBU0hU WVBFKEFUT01JQ19JTkNfQU5EX1RFU1RfT1ZFUkZMT1cpLA0KPiArICAgICAgIENSQVNIVFlQRShB VE9NSUNfTE9OR19VTkRFUkZMT1cpLA0KPiArICAgICAgIENSQVNIVFlQRShBVE9NSUNfTE9OR19E RUNfUkVUVVJOX1VOREVSRkxPVyksDQo+ICsgICAgICAgQ1JBU0hUWVBFKEFUT01JQ19MT05HX1NV Ql9VTkRFUkZMT1cpLA0KPiArICAgICAgIENSQVNIVFlQRShBVE9NSUNfTE9OR19TVUJfUkVUVVJO X1VOREVSRkxPVyksDQo+ICsgICAgICAgQ1JBU0hUWVBFKEFUT01JQ19MT05HX09WRVJGTE9XKSwN Cj4gKyAgICAgICBDUkFTSFRZUEUoQVRPTUlDX0xPTkdfSU5DX1JFVFVSTl9PVkVSRkxPVyksDQo+ ICsgICAgICAgQ1JBU0hUWVBFKEFUT01JQ19MT05HX0FERF9PVkVSRkxPVyksDQo+ICsgICAgICAg Q1JBU0hUWVBFKEFUT01JQ19MT05HX0FERF9SRVRVUk5fT1ZFUkZMT1cpLA0KPiArICAgICAgIENS QVNIVFlQRShBVE9NSUNfTE9OR19TVUJfQU5EX1RFU1QpLA0KPiAgICAgICAgIENSQVNIVFlQRShV U0VSQ09QWV9IRUFQX1NJWkVfVE8pLA0KPiAgICAgICAgIENSQVNIVFlQRShVU0VSQ09QWV9IRUFQ X1NJWkVfRlJPTSksDQo+ICAgICAgICAgQ1JBU0hUWVBFKFVTRVJDT1BZX0hFQVBfRkxBR19UTyks DQo+IC0tDQo+IDIuNy40DQo+DQoNCg0KDQotLQ0KS2VlcyBDb29rDQpOZXh1cyBTZWN1cml0eQ0K