Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2511197imm; Mon, 16 Jul 2018 09:11:34 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdGBjlNhLC9Tn42FPhyTgCpk8thsfLldw4fwlbCQJFFEFYQAklNt5Ffz9/ZGRuxQ/KcnB2g X-Received: by 2002:a17:902:758c:: with SMTP id j12-v6mr17191764pll.195.1531757494312; Mon, 16 Jul 2018 09:11:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531757494; cv=none; d=google.com; s=arc-20160816; b=Gw3OK/iUpMqUWe9N4NMK/5IHXuEVw1IoLcZfCvcFnb5zxR/s7B/8462L4/Tu34Kmuy DOqyqoVzC5pBIvqmYjUPJu4hpdZyjC5abEDGQgF1wVQdczXllr08O5M/N7tUhj0/qhSX h6q0ykAl9gCspCuGs+8bifS/UVQQFps5+e8n5qkGpPdTo/OYMzoxb6M6t5EUSuqENw5e rbTWHo4zj/OfFuDM9qHPF6cDrkJ34em82T6xYTnXJhsF3i6gmXjI/usume+HCuklbH5y hEwC2piHrEehJzROFP2UYMHNPsbGLXp18VWf4ChbkzBkEegCjAnA3fmCfOuVdOtLocla rpmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=i7sFIwNoriPBA4tQxmYR9zvPBpJHk6mWEIcdF9sG+mk=; b=Z3rpG+b34/RjLI/1IEbuVpQVIAplDQD8o/6xLcmWoFZIYFnGVHiSoawl9iztRHgQAk 01fuEZkCkWeFWYioLtdVC32JBonXdo/FZljiyLIoEqIethaclS8GksZSjFRpj1B0Kj3N JGZGybSPX754zfv8Y5G2OI4ACo7JEJ/7xqPFJALZu0aVH+u7qhxpfZLvpo/FXuJmYYSj S890b+vAtwB5fAlQ5kh/1IiaB77uR+RbXDt+851yzqJxxqJ8ayBy53dc8dCohBCdqGrm JMAeaDB1TEtqO5252FqslcHTcJfWr/NC5OlD+IWuS85nrDteX+eZDdTVBj3Zj99T9sDQ I12g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@toradex.com header.s=selector1 header.b=HwYXSjLR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=toradex.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f21-v6si29112420pgl.235.2018.07.16.09.11.19; Mon, 16 Jul 2018 09:11:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@toradex.com header.s=selector1 header.b=HwYXSjLR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=toradex.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729552AbeGPQiI (ORCPT + 99 others); Mon, 16 Jul 2018 12:38:08 -0400 Received: from mail-eopbgr60095.outbound.protection.outlook.com ([40.107.6.95]:25952 "EHLO EUR04-DB3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727342AbeGPQiI (ORCPT ); Mon, 16 Jul 2018 12:38:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toradex.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=i7sFIwNoriPBA4tQxmYR9zvPBpJHk6mWEIcdF9sG+mk=; b=HwYXSjLRjNNSk9sz+SdNcsnvGxWdyEKqhmUf/KOQVnYWrqHpCPHKaEC+NWlu2fSZ8vEjRRt/EjiuInDi2tVWpqLJFXG3G7CyIoJW2JuDRFDoR4l2vy5w3K1mSs/M72/XUtEGNVhgaYF7O3dAStDiS5E5RHzKHOc5NkSJi8BypEA= Received: from VI1PR0501MB2590.eurprd05.prod.outlook.com (10.168.137.14) by VI1PR0501MB1934.eurprd05.prod.outlook.com (10.166.44.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.952.17; Mon, 16 Jul 2018 16:09:54 +0000 Received: from VI1PR0501MB2590.eurprd05.prod.outlook.com ([fe80::dc61:4a61:b84:357e]) by VI1PR0501MB2590.eurprd05.prod.outlook.com ([fe80::dc61:4a61:b84:357e%6]) with mapi id 15.20.0952.021; Mon, 16 Jul 2018 16:09:54 +0000 From: Marcel Ziswiler To: "kirill.shutemov@linux.intel.com" CC: "linux-tegra@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "aarcange@redhat.com" , "dvyukov@google.com" , "akpm@linux-foundation.org" , "oleg@redhat.com" Subject: Re: REGRESSION: [PATCHv2 2/2] mm: Drop unneeded ->vm_ops checks Thread-Topic: REGRESSION: [PATCHv2 2/2] mm: Drop unneeded ->vm_ops checks Thread-Index: AQHUHQkskmdquMaiLk2VU0qVHONcGKSR5lCAgAAeeAA= Date: Mon, 16 Jul 2018 16:09:54 +0000 Message-ID: <1531757392.6547.28.camel@toradex.com> References: <20180712145626.41665-1-kirill.shutemov@linux.intel.com> <20180712145626.41665-3-kirill.shutemov@linux.intel.com> <1531747832.6547.7.camel@toradex.com> <20180716142049.ioa2irsd2d7sphn4@black.fi.intel.com> In-Reply-To: <20180716142049.ioa2irsd2d7sphn4@black.fi.intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [46.140.72.82] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;VI1PR0501MB1934;7:GmHPIrpBlDXstmBf2X5DfoDD72OSoYxFwiowKBbkLj6yAcCmNg+egv+DdaMkBN4Wdk4Vi6lvbH9IAMWbTI6+EvAXC/OgrppNT8bsheCJ2z4TOVUv4mjtvpFJ/F563/Z8PoGHo/ibhLQVm38wstIgBR305v2cfqNfXF/DwZBT/lL2/91JRkMqD1Vl0T5YKvysyHIQkjp2IWdhEOn2X3GLJbLHJPI0YBI80XRm7La0sL9UQjvjWLwKzz1drdhz5IMq x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 556be584-2dd2-4762-e1e9-08d5eb369182 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020);SRVR:VI1PR0501MB1934; x-ms-traffictypediagnostic: VI1PR0501MB1934: authentication-results: spf=none (sender IP is ) smtp.mailfrom=marcel.ziswiler@toradex.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231311)(944501410)(52105095)(10201501046)(3002001)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011)(7699016);SRVR:VI1PR0501MB1934;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0501MB1934; x-forefront-prvs: 073515755F x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(396003)(376002)(39840400004)(346002)(189003)(199004)(26005)(53936002)(6506007)(53946003)(229853002)(102836004)(7736002)(66066001)(4326008)(6116002)(36756003)(2900100001)(6486002)(6512007)(3846002)(305945005)(5640700003)(103116003)(6246003)(93886005)(6436002)(6916009)(186003)(76176011)(99286004)(8676002)(486006)(2501003)(476003)(54906003)(575784001)(106356001)(14444005)(25786009)(256004)(2351001)(5250100002)(5660300001)(97736004)(316002)(45080400002)(44832011)(11346002)(105586002)(478600001)(2906002)(14454004)(446003)(2616005)(8936002)(68736007)(86362001)(81156014)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0501MB1934;H:VI1PR0501MB2590.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: toradex.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: Y+HqxJJ8vFmEA9pGp3/LsQCVFgnXS9dIqgKXion6yAHmg81/S36mDB/L/nO1hCtgKAaNO6k7YuFV8sFnpOEsKEY9s6ZPxWdOWIADFt+TTKhOsgTIIw9dDEE1CtWOz5l4qzuq3pNT0mvJdR5ffLKuhhDoucS2Yx4S55xCY1hDyppHBdLzt1Fm/R6C9nK5Ezs67CJf1cdhx1t9FFRuxOV60SVdFuQsmvujhsIX5qlAHM/ahyNa3uqy2d91ltzv0SU1uEaArczbGNec0S9bipAZNpFiMOAOlwKS57udhbC6UIlFuhrSNHWACQKb1/7Bztlcaljuf8Glvw+o7nR8apAot7ALYW1Ob9GYJcfJua0tQOc= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-Network-Message-Id: 556be584-2dd2-4762-e1e9-08d5eb369182 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jul 2018 16:09:54.3734 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB1934 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDE4LTA3LTE2IGF0IDE3OjIwICswMzAwLCBLaXJpbGwgQS4gU2h1dGVtb3Ygd3Jv dGU6DQo+IE9uIE1vbiwgSnVsIDE2LCAyMDE4IGF0IDAxOjMwOjM0UE0gKzAwMDAsIE1hcmNlbCBa aXN3aWxlciB3cm90ZToNCj4gPiBPbiBUaHUsIDIwMTgtMDctMTIgYXQgMTc6NTYgKzAzMDAsIEtp cmlsbCBBLiBTaHV0ZW1vdiB3cm90ZToNCj4gPiA+IFdlIG5vdyBoYXZlIGFsbCBWTUFzIHdpdGgg LT52bV9vcHMgc2V0IGFuZCBkb24ndCBuZWVkIHRvIGNoZWNrIGl0DQo+ID4gPiBmb3INCj4gPiA+ IE5VTEwgZXZlcnl3aGVyZS4NCj4gPiA+IA0KPiA+ID4gU2lnbmVkLW9mZi1ieTogS2lyaWxsIEEu IFNodXRlbW92IDxraXJpbGwuc2h1dGVtb3ZAbGludXguaW50ZWwuY28NCj4gPiA+IG0+DQo+ID4g PiAtLS0NCj4gPiA+ICBmcy9iaW5mbXRfZWxmLmMgICAgICB8ICAyICstDQo+ID4gPiAgZnMva2Vy bmZzL2ZpbGUuYyAgICAgfCAyMCArLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gIGZzL3Byb2Mv dGFza19tbXUuYyAgIHwgIDIgKy0NCj4gPiA+ICBrZXJuZWwvZXZlbnRzL2NvcmUuYyB8ICAyICst DQo+ID4gPiAga2VybmVsL2ZvcmsuYyAgICAgICAgfCAgMiArLQ0KPiA+ID4gIG1tL2d1cC5jICAg ICAgICAgICAgIHwgIDIgKy0NCj4gPiA+ICBtbS9odWdldGxiLmMgICAgICAgICB8ICAyICstDQo+ ID4gPiAgbW0vbWVtb3J5LmMgICAgICAgICAgfCAxMiArKysrKystLS0tLS0NCj4gPiA+ICBtbS9t ZW1wb2xpY3kuYyAgICAgICB8IDEwICsrKysrLS0tLS0NCj4gPiA+ICBtbS9tbWFwLmMgICAgICAg ICAgICB8IDE0ICsrKysrKystLS0tLS0tDQo+ID4gPiAgbW0vbXJlbWFwLmMgICAgICAgICAgfCAg MiArLQ0KPiA+ID4gIG1tL25vbW11LmMgICAgICAgICAgIHwgIDQgKystLQ0KPiA+ID4gIDEyIGZp bGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQ0KPiA+ID4gDQo+ ID4gPiBkaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZi5jIGIvZnMvYmluZm10X2VsZi5jDQo+ID4g PiBpbmRleCAwYWM0NTZiNTJiZGQuLjRmMTcxY2YyMWJjMiAxMDA2NDQNCj4gPiA+IC0tLSBhL2Zz L2JpbmZtdF9lbGYuYw0KPiA+ID4gKysrIGIvZnMvYmluZm10X2VsZi5jDQo+ID4gPiBAQCAtMTMw Miw3ICsxMzAyLDcgQEAgc3RhdGljIGJvb2wgYWx3YXlzX2R1bXBfdm1hKHN0cnVjdA0KPiA+ID4g dm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCj4gPiA+ICAJICogQXNzdW1lIHRoYXQgYWxsIHZtYXMgd2l0 aCBhIC5uYW1lIG9wIHNob3VsZCBhbHdheXMgYmUNCj4gPiA+IGR1bXBlZC4NCj4gPiA+ICAJICog SWYgdGhpcyBjaGFuZ2VzLCBhIG5ldyB2bV9vcHMgZmllbGQgY2FuIGVhc2lseSBiZQ0KPiA+ID4g YWRkZWQuDQo+ID4gPiAgCSAqLw0KPiA+ID4gLQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9v cHMtPm5hbWUgJiYgdm1hLT52bV9vcHMtDQo+ID4gPiA+IG5hbWUodm1hKSkNCj4gPiA+IA0KPiA+ ID4gKwlpZiAodm1hLT52bV9vcHMtPm5hbWUgJiYgdm1hLT52bV9vcHMtPm5hbWUodm1hKSkNCj4g PiA+ICAJCXJldHVybiB0cnVlOw0KPiA+ID4gIA0KPiA+ID4gIAkvKg0KPiA+ID4gZGlmZiAtLWdp dCBhL2ZzL2tlcm5mcy9maWxlLmMgYi9mcy9rZXJuZnMvZmlsZS5jDQo+ID4gPiBpbmRleCAyMDE1 ZDhjNDVlNGEuLjk0NWMzZDMwNmQ4ZiAxMDA2NDQNCj4gPiA+IC0tLSBhL2ZzL2tlcm5mcy9maWxl LmMNCj4gPiA+ICsrKyBiL2ZzL2tlcm5mcy9maWxlLmMNCj4gPiA+IEBAIC0zMzYsOSArMzM2LDYg QEAgc3RhdGljIHZvaWQga2VybmZzX3ZtYV9vcGVuKHN0cnVjdA0KPiA+ID4gdm1fYXJlYV9zdHJ1 Y3QNCj4gPiA+ICp2bWEpDQo+ID4gPiAgCXN0cnVjdCBmaWxlICpmaWxlID0gdm1hLT52bV9maWxl Ow0KPiA+ID4gIAlzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YgPSBrZXJuZnNfb2YoZmlsZSk7 DQo+ID4gPiAgDQo+ID4gPiAtCWlmICghb2YtPnZtX29wcykNCj4gPiA+IC0JCXJldHVybjsNCj4g PiA+IC0NCj4gPiA+ICAJaWYgKCFrZXJuZnNfZ2V0X2FjdGl2ZShvZi0+a24pKQ0KPiA+ID4gIAkJ cmV0dXJuOw0KPiA+ID4gIA0KPiA+ID4gQEAgLTM1NCw5ICszNTEsNiBAQCBzdGF0aWMgdm1fZmF1 bHRfdCBrZXJuZnNfdm1hX2ZhdWx0KHN0cnVjdA0KPiA+ID4gdm1fZmF1bHQgKnZtZikNCj4gPiA+ ICAJc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mID0ga2VybmZzX29mKGZpbGUpOw0KPiA+ID4g IAl2bV9mYXVsdF90IHJldDsNCj4gPiA+ICANCj4gPiA+IC0JaWYgKCFvZi0+dm1fb3BzKQ0KPiA+ ID4gLQkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsNCj4gPiA+IC0NCj4gPiA+ICAJaWYgKCFrZXJu ZnNfZ2V0X2FjdGl2ZShvZi0+a24pKQ0KPiA+ID4gIAkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsN Cj4gPiA+ICANCj4gPiA+IEBAIC0zNzQsOSArMzY4LDYgQEAgc3RhdGljIHZtX2ZhdWx0X3QNCj4g PiA+IGtlcm5mc192bWFfcGFnZV9ta3dyaXRlKHN0cnVjdA0KPiA+ID4gdm1fZmF1bHQgKnZtZikN Cj4gPiA+ICAJc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mID0ga2VybmZzX29mKGZpbGUpOw0K PiA+ID4gIAl2bV9mYXVsdF90IHJldDsNCj4gPiA+ICANCj4gPiA+IC0JaWYgKCFvZi0+dm1fb3Bz KQ0KPiA+ID4gLQkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsNCj4gPiA+IC0NCj4gPiA+ICAJaWYg KCFrZXJuZnNfZ2V0X2FjdGl2ZShvZi0+a24pKQ0KPiA+ID4gIAkJcmV0dXJuIFZNX0ZBVUxUX1NJ R0JVUzsNCj4gPiA+ICANCj4gPiA+IEBAIC0zOTcsOSArMzg4LDYgQEAgc3RhdGljIGludCBrZXJu ZnNfdm1hX2FjY2VzcyhzdHJ1Y3QNCj4gPiA+IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVk IGxvbmcgYWRkciwNCj4gPiA+ICAJc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mID0ga2VybmZz X29mKGZpbGUpOw0KPiA+ID4gIAlpbnQgcmV0Ow0KPiA+ID4gIA0KPiA+ID4gLQlpZiAoIW9mLT52 bV9vcHMpDQo+ID4gPiAtCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiA+IC0NCj4gPiA+ICAJaWYgKCFr ZXJuZnNfZ2V0X2FjdGl2ZShvZi0+a24pKQ0KPiA+ID4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4g PiAgDQo+ID4gPiBAQCAtNDE5LDkgKzQwNyw2IEBAIHN0YXRpYyBpbnQga2VybmZzX3ZtYV9zZXRf cG9saWN5KHN0cnVjdA0KPiA+ID4gdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCj4gPiA+ICAJc3RydWN0 IGtlcm5mc19vcGVuX2ZpbGUgKm9mID0ga2VybmZzX29mKGZpbGUpOw0KPiA+ID4gIAlpbnQgcmV0 Ow0KPiA+ID4gIA0KPiA+ID4gLQlpZiAoIW9mLT52bV9vcHMpDQo+ID4gPiAtCQlyZXR1cm4gMDsN Cj4gPiA+IC0NCj4gPiA+ICAJaWYgKCFrZXJuZnNfZ2V0X2FjdGl2ZShvZi0+a24pKQ0KPiA+ID4g IAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiAgDQo+ID4gPiBAQCAtNDQwLDkgKzQyNSw2IEBAIHN0 YXRpYyBzdHJ1Y3QgbWVtcG9saWN5DQo+ID4gPiAqa2VybmZzX3ZtYV9nZXRfcG9saWN5KHN0cnVj dCB2bV9hcmVhX3N0cnVjdCAqdm1hLA0KPiA+ID4gIAlzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAq b2YgPSBrZXJuZnNfb2YoZmlsZSk7DQo+ID4gPiAgCXN0cnVjdCBtZW1wb2xpY3kgKnBvbDsNCj4g PiA+ICANCj4gPiA+IC0JaWYgKCFvZi0+dm1fb3BzKQ0KPiA+ID4gLQkJcmV0dXJuIHZtYS0+dm1f cG9saWN5Ow0KPiA+ID4gLQ0KPiA+ID4gIAlpZiAoIWtlcm5mc19nZXRfYWN0aXZlKG9mLT5rbikp DQo+ID4gPiAgCQlyZXR1cm4gdm1hLT52bV9wb2xpY3k7DQo+ID4gPiAgDQo+ID4gPiBAQCAtNTEx LDcgKzQ5Myw3IEBAIHN0YXRpYyBpbnQga2VybmZzX2ZvcF9tbWFwKHN0cnVjdCBmaWxlICpmaWxl LA0KPiA+ID4gc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpDQo+ID4gPiAgCSAqIFNvIGVycm9y IGlmIHNvbWVvbmUgaXMgdHJ5aW5nIHRvIHVzZSBjbG9zZS4NCj4gPiA+ICAJICovDQo+ID4gPiAg CXJjID0gLUVJTlZBTDsNCj4gPiA+IC0JaWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5j bG9zZSkNCj4gPiA+ICsJaWYgKHZtYS0+dm1fb3BzLT5jbG9zZSkNCj4gPiA+ICAJCWdvdG8gb3V0 X3B1dDsNCj4gPiA+ICANCj4gPiA+ICAJcmMgPSAwOw0KPiA+ID4gZGlmZiAtLWdpdCBhL2ZzL3By b2MvdGFza19tbXUuYyBiL2ZzL3Byb2MvdGFza19tbXUuYw0KPiA+ID4gaW5kZXggZTk2NzkwMTYy NzFmLi5lOTU5NjIzMTIzZTQgMTAwNjQ0DQo+ID4gPiAtLS0gYS9mcy9wcm9jL3Rhc2tfbW11LmMN Cj4gPiA+ICsrKyBiL2ZzL3Byb2MvdGFza19tbXUuYw0KPiA+ID4gQEAgLTMyNiw3ICszMjYsNyBA QCBzaG93X21hcF92bWEoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QNCj4gPiA+IHZtX2FyZWFf c3RydWN0ICp2bWEsIGludCBpc19waWQpDQo+ID4gPiAgCQlnb3RvIGRvbmU7DQo+ID4gPiAgCX0N Cj4gPiA+ICANCj4gPiA+IC0JaWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5uYW1lKSB7 DQo+ID4gPiArCWlmICh2bWEtPnZtX29wcy0+bmFtZSkgew0KPiA+ID4gIAkJbmFtZSA9IHZtYS0+ dm1fb3BzLT5uYW1lKHZtYSk7DQo+ID4gPiAgCQlpZiAobmFtZSkNCj4gPiA+ICAJCQlnb3RvIGRv bmU7DQo+ID4gPiBkaWZmIC0tZ2l0IGEva2VybmVsL2V2ZW50cy9jb3JlLmMgYi9rZXJuZWwvZXZl bnRzL2NvcmUuYw0KPiA+ID4gaW5kZXggOGYwNDM0YTk5NTFhLi4yZTM1NDAxYTVjNjggMTAwNjQ0 DQo+ID4gPiAtLS0gYS9rZXJuZWwvZXZlbnRzL2NvcmUuYw0KPiA+ID4gKysrIGIva2VybmVsL2V2 ZW50cy9jb3JlLmMNCj4gPiA+IEBAIC03MjY5LDcgKzcyNjksNyBAQCBzdGF0aWMgdm9pZCBwZXJm X2V2ZW50X21tYXBfZXZlbnQoc3RydWN0DQo+ID4gPiBwZXJmX21tYXBfZXZlbnQgKm1tYXBfZXZl bnQpDQo+ID4gPiAgDQo+ID4gPiAgCQlnb3RvIGdvdF9uYW1lOw0KPiA+ID4gIAl9IGVsc2Ugew0K PiA+ID4gLQkJaWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5uYW1lKSB7DQo+ID4gPiAr CQlpZiAodm1hLT52bV9vcHMtPm5hbWUpIHsNCj4gPiA+ICAJCQluYW1lID0gKGNoYXIgKikgdm1h LT52bV9vcHMtPm5hbWUodm1hKTsNCj4gPiA+ICAJCQlpZiAobmFtZSkNCj4gPiA+ICAJCQkJZ290 byBjcHlfbmFtZTsNCj4gPiA+IGRpZmYgLS1naXQgYS9rZXJuZWwvZm9yay5jIGIva2VybmVsL2Zv cmsuYw0KPiA+ID4gaW5kZXggOTQ0MGQ2MWI5MjVjLi5lNWU3YTIyMGExMjQgMTAwNjQ0DQo+ID4g PiAtLS0gYS9rZXJuZWwvZm9yay5jDQo+ID4gPiArKysgYi9rZXJuZWwvZm9yay5jDQo+ID4gPiBA QCAtNTE5LDcgKzUxOSw3IEBAIHN0YXRpYyBfX2xhdGVudF9lbnRyb3B5IGludCBkdXBfbW1hcChz dHJ1Y3QNCj4gPiA+IG1tX3N0cnVjdCAqbW0sDQo+ID4gPiAgCQlpZiAoISh0bXAtPnZtX2ZsYWdz ICYgVk1fV0lQRU9ORk9SSykpDQo+ID4gPiAgCQkJcmV0dmFsID0gY29weV9wYWdlX3JhbmdlKG1t LCBvbGRtbSwNCj4gPiA+IG1wbnQpOw0KPiA+ID4gIA0KPiA+ID4gLQkJaWYgKHRtcC0+dm1fb3Bz ICYmIHRtcC0+dm1fb3BzLT5vcGVuKQ0KPiA+ID4gKwkJaWYgKHRtcC0+dm1fb3BzLT5vcGVuKQ0K PiA+ID4gIAkJCXRtcC0+dm1fb3BzLT5vcGVuKHRtcCk7DQo+ID4gPiAgDQo+ID4gPiAgCQlpZiAo cmV0dmFsKQ0KPiA+ID4gZGlmZiAtLWdpdCBhL21tL2d1cC5jIGIvbW0vZ3VwLmMNCj4gPiA+IGlu ZGV4IGI3MGQ3YmE3Y2MxMy4uYjczMjc2OGVkM2FjIDEwMDY0NA0KPiA+ID4gLS0tIGEvbW0vZ3Vw LmMNCj4gPiA+ICsrKyBiL21tL2d1cC5jDQo+ID4gPiBAQCAtMzEsNyArMzEsNyBAQCBzdGF0aWMg c3RydWN0IHBhZ2UgKm5vX3BhZ2VfdGFibGUoc3RydWN0DQo+ID4gPiB2bV9hcmVhX3N0cnVjdCAq dm1hLA0KPiA+ID4gIAkgKiBCdXQgd2UgY2FuIG9ubHkgbWFrZSB0aGlzIG9wdGltaXphdGlvbiB3 aGVyZSBhIGhvbGUNCj4gPiA+IHdvdWxkDQo+ID4gPiBzdXJlbHkNCj4gPiA+ICAJICogYmUgemVy by1maWxsZWQgaWYgaGFuZGxlX21tX2ZhdWx0KCkgYWN0dWFsbHkgZGlkDQo+ID4gPiBoYW5kbGUN Cj4gPiA+IGl0Lg0KPiA+ID4gIAkgKi8NCj4gPiA+IC0JaWYgKChmbGFncyAmIEZPTExfRFVNUCkg JiYgKCF2bWEtPnZtX29wcyB8fCAhdm1hLQ0KPiA+ID4gPnZtX29wcy0NCj4gPiA+ID4gZmF1bHQp KQ0KPiA+ID4gDQo+ID4gPiArCWlmICgoZmxhZ3MgJiBGT0xMX0RVTVApICYmICF2bWEtPnZtX29w cy0+ZmF1bHQpDQo+ID4gPiAgCQlyZXR1cm4gRVJSX1BUUigtRUZBVUxUKTsNCj4gPiA+ICAJcmV0 dXJuIE5VTEw7DQo+ID4gPiAgfQ0KPiA+ID4gZGlmZiAtLWdpdCBhL21tL2h1Z2V0bGIuYyBiL21t L2h1Z2V0bGIuYw0KPiA+ID4gaW5kZXggMDM5ZGRiYzU3NGU5Li4yMDY1YWNjNWE2YWEgMTAwNjQ0 DQo+ID4gPiAtLS0gYS9tbS9odWdldGxiLmMNCj4gPiA+ICsrKyBiL21tL2h1Z2V0bGIuYw0KPiA+ ID4gQEAgLTYzNyw3ICs2MzcsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChsaW5lYXJfaHVnZXBhZ2Vf aW5kZXgpOw0KPiA+ID4gICAqLw0KPiA+ID4gIHVuc2lnbmVkIGxvbmcgdm1hX2tlcm5lbF9wYWdl c2l6ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCj4gPiA+ICB7DQo+ID4gPiAtCWlmICh2 bWEtPnZtX29wcyAmJiB2bWEtPnZtX29wcy0+cGFnZXNpemUpDQo+ID4gPiArCWlmICh2bWEtPnZt X29wcy0+cGFnZXNpemUpDQo+ID4gPiAgCQlyZXR1cm4gdm1hLT52bV9vcHMtPnBhZ2VzaXplKHZt YSk7DQo+ID4gPiAgCXJldHVybiBQQUdFX1NJWkU7DQo+ID4gPiAgfQ0KPiA+ID4gZGlmZiAtLWdp dCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMNCj4gPiA+IGluZGV4IDcyMDZhNjM0MjcwYi4u MDJmYmVmMmJkMDI0IDEwMDY0NA0KPiA+ID4gLS0tIGEvbW0vbWVtb3J5LmMNCj4gPiA+ICsrKyBi L21tL21lbW9yeS5jDQo+ID4gPiBAQCAtNzY4LDcgKzc2OCw3IEBAIHN0YXRpYyB2b2lkIHByaW50 X2JhZF9wdGUoc3RydWN0DQo+ID4gPiB2bV9hcmVhX3N0cnVjdA0KPiA+ID4gKnZtYSwgdW5zaWdu ZWQgbG9uZyBhZGRyLA0KPiA+ID4gIAkJICh2b2lkICopYWRkciwgdm1hLT52bV9mbGFncywgdm1h LT5hbm9uX3ZtYSwNCj4gPiA+IG1hcHBpbmcsIGluZGV4KTsNCj4gPiA+ICAJcHJfYWxlcnQoImZp bGU6JXBEIGZhdWx0OiVwZiBtbWFwOiVwZiByZWFkcGFnZTolcGZcbiIsDQo+ID4gPiAgCQkgdm1h LT52bV9maWxlLA0KPiA+ID4gLQkJIHZtYS0+dm1fb3BzID8gdm1hLT52bV9vcHMtPmZhdWx0IDog TlVMTCwNCj4gPiA+ICsJCSB2bWEtPnZtX29wcy0+ZmF1bHQsDQo+ID4gPiAgCQkgdm1hLT52bV9m aWxlID8gdm1hLT52bV9maWxlLT5mX29wLT5tbWFwIDogTlVMTCwNCj4gPiA+ICAJCSBtYXBwaW5n ID8gbWFwcGluZy0+YV9vcHMtPnJlYWRwYWdlIDogTlVMTCk7DQo+ID4gPiAgCWR1bXBfc3RhY2so KTsNCj4gPiA+IEBAIC04MjUsNyArODI1LDcgQEAgc3RydWN0IHBhZ2UgKl92bV9ub3JtYWxfcGFn ZShzdHJ1Y3QNCj4gPiA+IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwN Cj4gPiA+ICAJaWYgKElTX0VOQUJMRUQoQ09ORklHX0FSQ0hfSEFTX1BURV9TUEVDSUFMKSkgew0K PiA+ID4gIAkJaWYgKGxpa2VseSghcHRlX3NwZWNpYWwocHRlKSkpDQo+ID4gPiAgCQkJZ290byBj aGVja19wZm47DQo+ID4gPiAtCQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9vcHMtDQo+ID4g PiA+ZmluZF9zcGVjaWFsX3BhZ2UpDQo+ID4gPiArCQlpZiAodm1hLT52bV9vcHMtPmZpbmRfc3Bl Y2lhbF9wYWdlKQ0KPiA+ID4gIAkJCXJldHVybiB2bWEtPnZtX29wcy0NCj4gPiA+ID5maW5kX3Nw ZWNpYWxfcGFnZSh2bWEsDQo+ID4gPiBhZGRyKTsNCj4gPiA+ICAJCWlmICh2bWEtPnZtX2ZsYWdz ICYgKFZNX1BGTk1BUCB8IFZNX01JWEVETUFQKSkNCj4gPiA+ICAJCQlyZXR1cm4gTlVMTDsNCj4g PiA+IEBAIC0yNDA0LDcgKzI0MDQsNyBAQCBzdGF0aWMgdm9pZCBmYXVsdF9kaXJ0eV9zaGFyZWRf cGFnZShzdHJ1Y3QNCj4gPiA+IHZtX2FyZWFfc3RydWN0ICp2bWEsDQo+ID4gPiAgew0KPiA+ID4g IAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZzsNCj4gPiA+ICAJYm9vbCBkaXJ0aWVkOw0K PiA+ID4gLQlib29sIHBhZ2VfbWt3cml0ZSA9IHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLQ0K PiA+ID4gPiBwYWdlX21rd3JpdGU7DQo+ID4gPiANCj4gPiA+ICsJYm9vbCBwYWdlX21rd3JpdGUg PSB2bWEtPnZtX29wcy0+cGFnZV9ta3dyaXRlOw0KPiA+ID4gIA0KPiA+ID4gIAlkaXJ0aWVkID0g c2V0X3BhZ2VfZGlydHkocGFnZSk7DQo+ID4gPiAgCVZNX0JVR19PTl9QQUdFKFBhZ2VBbm9uKHBh Z2UpLCBwYWdlKTsNCj4gPiA+IEBAIC0yNjQ4LDcgKzI2NDgsNyBAQCBzdGF0aWMgaW50IHdwX3Bm bl9zaGFyZWQoc3RydWN0IHZtX2ZhdWx0DQo+ID4gPiAqdm1mKQ0KPiA+ID4gIHsNCj4gPiA+ICAJ c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEgPSB2bWYtPnZtYTsNCj4gPiA+ICANCj4gPiA+IC0J aWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5wZm5fbWt3cml0ZSkgew0KPiA+ID4gKwlp ZiAodm1hLT52bV9vcHMtPnBmbl9ta3dyaXRlKSB7DQo+ID4gPiAgCQlpbnQgcmV0Ow0KPiA+ID4g IA0KPiA+ID4gIAkJcHRlX3VubWFwX3VubG9jayh2bWYtPnB0ZSwgdm1mLT5wdGwpOw0KPiA+ID4g QEAgLTI2NjksNyArMjY2OSw3IEBAIHN0YXRpYyBpbnQgd3BfcGFnZV9zaGFyZWQoc3RydWN0IHZt X2ZhdWx0DQo+ID4gPiAqdm1mKQ0KPiA+ID4gIA0KPiA+ID4gIAlnZXRfcGFnZSh2bWYtPnBhZ2Up Ow0KPiA+ID4gIA0KPiA+ID4gLQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9vcHMtPnBhZ2Vf bWt3cml0ZSkgew0KPiA+ID4gKwlpZiAodm1hLT52bV9vcHMtPnBhZ2VfbWt3cml0ZSkgew0KPiA+ ID4gIAkJaW50IHRtcDsNCj4gPiA+ICANCj4gPiA+ICAJCXB0ZV91bm1hcF91bmxvY2sodm1mLT5w dGUsIHZtZi0+cHRsKTsNCj4gPiA+IEBAIC00NDM5LDcgKzQ0MzksNyBAQCBpbnQgX19hY2Nlc3Nf cmVtb3RlX3ZtKHN0cnVjdCB0YXNrX3N0cnVjdA0KPiA+ID4gKnRzaywNCj4gPiA+IHN0cnVjdCBt bV9zdHJ1Y3QgKm1tLA0KPiA+ID4gIAkJCXZtYSA9IGZpbmRfdm1hKG1tLCBhZGRyKTsNCj4gPiA+ ICAJCQlpZiAoIXZtYSB8fCB2bWEtPnZtX3N0YXJ0ID4gYWRkcikNCj4gPiA+ICAJCQkJYnJlYWs7 DQo+ID4gPiAtCQkJaWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5hY2Nlc3MpDQo+ID4g PiArCQkJaWYgKHZtYS0+dm1fb3BzLT5hY2Nlc3MpDQo+ID4gPiAgCQkJCXJldCA9IHZtYS0+dm1f b3BzLT5hY2Nlc3Modm1hLA0KPiA+ID4gYWRkciwNCj4gPiA+IGJ1ZiwNCj4gPiA+ICAJCQkJCQkJ ICBsZW4sDQo+ID4gPiB3cml0ZSk7DQo+ID4gPiAgCQkJaWYgKHJldCA8PSAwKQ0KPiA+ID4gZGlm ZiAtLWdpdCBhL21tL21lbXBvbGljeS5jIGIvbW0vbWVtcG9saWN5LmMNCj4gPiA+IGluZGV4IDlh YzQ5ZWYxN2I0ZS4uZjBmY2Y3MGJjZWM3IDEwMDY0NA0KPiA+ID4gLS0tIGEvbW0vbWVtcG9saWN5 LmMNCj4gPiA+ICsrKyBiL21tL21lbXBvbGljeS5jDQo+ID4gPiBAQCAtNjUxLDEzICs2NTEsMTMg QEAgc3RhdGljIGludCB2bWFfcmVwbGFjZV9wb2xpY3koc3RydWN0DQo+ID4gPiB2bV9hcmVhX3N0 cnVjdCAqdm1hLA0KPiA+ID4gIAlwcl9kZWJ1Zygidm1hICVseC0lbHgvJWx4IHZtX29wcyAlcCB2 bV9maWxlICVwDQo+ID4gPiBzZXRfcG9saWN5DQo+ID4gPiAlcFxuIiwNCj4gPiA+ICAJCSB2bWEt PnZtX3N0YXJ0LCB2bWEtPnZtX2VuZCwgdm1hLT52bV9wZ29mZiwNCj4gPiA+ICAJCSB2bWEtPnZt X29wcywgdm1hLT52bV9maWxlLA0KPiA+ID4gLQkJIHZtYS0+dm1fb3BzID8gdm1hLT52bV9vcHMt PnNldF9wb2xpY3kgOiBOVUxMKTsNCj4gPiA+ICsJCSB2bWEtPnZtX29wcy0+c2V0X3BvbGljeSk7 DQo+ID4gPiAgDQo+ID4gPiAgCW5ldyA9IG1wb2xfZHVwKHBvbCk7DQo+ID4gPiAgCWlmIChJU19F UlIobmV3KSkNCj4gPiA+ICAJCXJldHVybiBQVFJfRVJSKG5ldyk7DQo+ID4gPiAgDQo+ID4gPiAt CWlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZtX29wcy0+c2V0X3BvbGljeSkgew0KPiA+ID4gKwlp ZiAodm1hLT52bV9vcHMtPnNldF9wb2xpY3kpIHsNCj4gPiA+ICAJCWVyciA9IHZtYS0+dm1fb3Bz LT5zZXRfcG9saWN5KHZtYSwgbmV3KTsNCj4gPiA+ICAJCWlmIChlcnIpDQo+ID4gPiAgCQkJZ290 byBlcnJfb3V0Ow0KPiA+ID4gQEAgLTg0NSw3ICs4NDUsNyBAQCBzdGF0aWMgbG9uZyBkb19nZXRf bWVtcG9saWN5KGludCAqcG9saWN5LA0KPiA+ID4gbm9kZW1hc2tfdCAqbm1hc2ssDQo+ID4gPiAg CQkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsNCj4gPiA+ICAJCQlyZXR1cm4gLUVGQVVMVDsNCj4g PiA+ICAJCX0NCj4gPiA+IC0JCWlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZtX29wcy0+Z2V0X3Bv bGljeSkNCj4gPiA+ICsJCWlmICh2bWEtPnZtX29wcy0+Z2V0X3BvbGljeSkNCj4gPiA+ICAJCQlw b2wgPSB2bWEtPnZtX29wcy0+Z2V0X3BvbGljeSh2bWEsDQo+ID4gPiBhZGRyKTsNCj4gPiA+ICAJ CWVsc2UNCj4gPiA+ICAJCQlwb2wgPSB2bWEtPnZtX3BvbGljeTsNCj4gPiA+IEBAIC0xNjE3LDcg KzE2MTcsNyBAQCBzdHJ1Y3QgbWVtcG9saWN5ICpfX2dldF92bWFfcG9saWN5KHN0cnVjdA0KPiA+ ID4gdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCj4gPiA+ICAJc3RydWN0IG1lbXBvbGljeSAqcG9sID0g TlVMTDsNCj4gPiA+ICANCj4gPiA+ICAJaWYgKHZtYSkgew0KPiA+ID4gLQkJaWYgKHZtYS0+dm1f b3BzICYmIHZtYS0+dm1fb3BzLT5nZXRfcG9saWN5KSB7DQo+ID4gPiArCQlpZiAodm1hLT52bV9v cHMtPmdldF9wb2xpY3kpIHsNCj4gPiA+ICAJCQlwb2wgPSB2bWEtPnZtX29wcy0+Z2V0X3BvbGlj eSh2bWEsDQo+ID4gPiBhZGRyKTsNCj4gPiA+ICAJCX0gZWxzZSBpZiAodm1hLT52bV9wb2xpY3kp IHsNCj4gPiA+ICAJCQlwb2wgPSB2bWEtPnZtX3BvbGljeTsNCj4gPiA+IEBAIC0xNjYzLDcgKzE2 NjMsNyBAQCBib29sIHZtYV9wb2xpY3lfbW9mKHN0cnVjdCB2bV9hcmVhX3N0cnVjdA0KPiA+ID4g KnZtYSkNCj4gPiA+ICB7DQo+ID4gPiAgCXN0cnVjdCBtZW1wb2xpY3kgKnBvbDsNCj4gPiA+ICAN Cj4gPiA+IC0JaWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5nZXRfcG9saWN5KSB7DQo+ ID4gPiArCWlmICh2bWEtPnZtX29wcy0+Z2V0X3BvbGljeSkgew0KPiA+ID4gIAkJYm9vbCByZXQg PSBmYWxzZTsNCj4gPiA+ICANCj4gPiA+ICAJCXBvbCA9IHZtYS0+dm1fb3BzLT5nZXRfcG9saWN5 KHZtYSwgdm1hLQ0KPiA+ID4gPnZtX3N0YXJ0KTsNCj4gPiA+IGRpZmYgLS1naXQgYS9tbS9tbWFw LmMgYi9tbS9tbWFwLmMNCj4gPiA+IGluZGV4IDUyN2MxN2YzMTYzNS4uNWFkYWY5ZjliOTQxIDEw MDY0NA0KPiA+ID4gLS0tIGEvbW0vbW1hcC5jDQo+ID4gPiArKysgYi9tbS9tbWFwLmMNCj4gPiA+ IEBAIC0xNzcsNyArMTc3LDcgQEAgc3RhdGljIHN0cnVjdCB2bV9hcmVhX3N0cnVjdA0KPiA+ID4g KnJlbW92ZV92bWEoc3RydWN0DQo+ID4gPiB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiA+ID4gIAlz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKm5leHQgPSB2bWEtPnZtX25leHQ7DQo+ID4gPiAgDQo+ID4g PiAgCW1pZ2h0X3NsZWVwKCk7DQo+ID4gPiAtCWlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZtX29w cy0+Y2xvc2UpDQo+ID4gPiArCWlmICh2bWEtPnZtX29wcy0+Y2xvc2UpDQo+ID4gPiAgCQl2bWEt PnZtX29wcy0+Y2xvc2Uodm1hKTsNCj4gPiA+ICAJaWYgKHZtYS0+dm1fZmlsZSkNCj4gPiA+ICAJ CWZwdXQodm1hLT52bV9maWxlKTsNCj4gPiA+IEBAIC05OTgsNyArOTk4LDcgQEAgc3RhdGljIGlu bGluZSBpbnQgaXNfbWVyZ2VhYmxlX3ZtYShzdHJ1Y3QNCj4gPiA+IHZtX2FyZWFfc3RydWN0ICp2 bWEsDQo+ID4gPiAgCQlyZXR1cm4gMDsNCj4gPiA+ICAJaWYgKHZtYS0+dm1fZmlsZSAhPSBmaWxl KQ0KPiA+ID4gIAkJcmV0dXJuIDA7DQo+ID4gPiAtCWlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZt X29wcy0+Y2xvc2UpDQo+ID4gPiArCWlmICh2bWEtPnZtX29wcy0+Y2xvc2UpDQo+ID4gPiAgCQly ZXR1cm4gMDsNCj4gPiA+ICAJaWYgKCFpc19tZXJnZWFibGVfdm1fdXNlcmZhdWx0ZmRfY3R4KHZt YSwNCj4gPiA+IHZtX3VzZXJmYXVsdGZkX2N0eCkpDQo+ID4gPiAgCQlyZXR1cm4gMDsNCj4gPiA+ IEBAIC0xNjM4LDcgKzE2MzgsNyBAQCBpbnQgdm1hX3dhbnRzX3dyaXRlbm90aWZ5KHN0cnVjdA0K PiA+ID4gdm1fYXJlYV9zdHJ1Y3QNCj4gPiA+ICp2bWEsIHBncHJvdF90IHZtX3BhZ2VfcHJvdCkN Cj4gPiA+ICAJCXJldHVybiAwOw0KPiA+ID4gIA0KPiA+ID4gIAkvKiBUaGUgYmFja2VyIHdpc2hl cyB0byBrbm93IHdoZW4gcGFnZXMgYXJlIGZpcnN0DQo+ID4gPiB3cml0dGVuDQo+ID4gPiB0bz8g Ki8NCj4gPiA+IC0JaWYgKHZtX29wcyAmJiAodm1fb3BzLT5wYWdlX21rd3JpdGUgfHwgdm1fb3Bz LQ0KPiA+ID4gPnBmbl9ta3dyaXRlKSkNCj4gPiA+ICsJaWYgKHZtX29wcy0+cGFnZV9ta3dyaXRl IHx8IHZtX29wcy0+cGZuX21rd3JpdGUpDQo+ID4gPiAgCQlyZXR1cm4gMTsNCj4gPiA+ICANCj4g PiA+ICAJLyogVGhlIG9wZW4gcm91dGluZSBkaWQgc29tZXRoaW5nIHRvIHRoZSBwcm90ZWN0aW9u cw0KPiA+ID4gdGhhdA0KPiA+ID4gcGdwcm90X21vZGlmeQ0KPiA+ID4gQEAgLTI2MjQsNyArMjYy NCw3IEBAIGludCBfX3NwbGl0X3ZtYShzdHJ1Y3QgbW1fc3RydWN0ICptbSwNCj4gPiA+IHN0cnVj dA0KPiA+ID4gdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCj4gPiA+ICAJc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICpuZXc7DQo+ID4gPiAgCWludCBlcnI7DQo+ID4gPiAgDQo+ID4gPiAtCWlmICh2bWEtPnZt X29wcyAmJiB2bWEtPnZtX29wcy0+c3BsaXQpIHsNCj4gPiA+ICsJaWYgKHZtYS0+dm1fb3BzLT5z cGxpdCkgew0KPiA+ID4gIAkJZXJyID0gdm1hLT52bV9vcHMtPnNwbGl0KHZtYSwgYWRkcik7DQo+ ID4gPiAgCQlpZiAoZXJyKQ0KPiA+ID4gIAkJCXJldHVybiBlcnI7DQo+ID4gPiBAQCAtMjY1Nyw3 ICsyNjU3LDcgQEAgaW50IF9fc3BsaXRfdm1hKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLA0KPiA+ID4g c3RydWN0DQo+ID4gPiB2bV9hcmVhX3N0cnVjdCAqdm1hLA0KPiA+ID4gIAlpZiAobmV3LT52bV9m aWxlKQ0KPiA+ID4gIAkJZ2V0X2ZpbGUobmV3LT52bV9maWxlKTsNCj4gPiA+ICANCj4gPiA+IC0J aWYgKG5ldy0+dm1fb3BzICYmIG5ldy0+dm1fb3BzLT5vcGVuKQ0KPiA+ID4gKwlpZiAobmV3LT52 bV9vcHMtPm9wZW4pDQo+ID4gPiAgCQluZXctPnZtX29wcy0+b3BlbihuZXcpOw0KPiA+ID4gIA0K PiA+ID4gIAlpZiAobmV3X2JlbG93KQ0KPiA+ID4gQEAgLTI2NzEsNyArMjY3MSw3IEBAIGludCBf X3NwbGl0X3ZtYShzdHJ1Y3QgbW1fc3RydWN0ICptbSwNCj4gPiA+IHN0cnVjdA0KPiA+ID4gdm1f YXJlYV9zdHJ1Y3QgKnZtYSwNCj4gPiA+ICAJCXJldHVybiAwOw0KPiA+ID4gIA0KPiA+ID4gIAkv KiBDbGVhbiBldmVyeXRoaW5nIHVwIGlmIHZtYV9hZGp1c3QgZmFpbGVkLiAqLw0KPiA+ID4gLQlp ZiAobmV3LT52bV9vcHMgJiYgbmV3LT52bV9vcHMtPmNsb3NlKQ0KPiA+ID4gKwlpZiAobmV3LT52 bV9vcHMtPmNsb3NlKQ0KPiA+ID4gIAkJbmV3LT52bV9vcHMtPmNsb3NlKG5ldyk7DQo+ID4gPiAg CWlmIChuZXctPnZtX2ZpbGUpDQo+ID4gPiAgCQlmcHV0KG5ldy0+dm1fZmlsZSk7DQo+ID4gPiBA QCAtMzIzMiw3ICszMjMyLDcgQEAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICpjb3B5X3ZtYShzdHJ1 Y3QNCj4gPiA+IHZtX2FyZWFfc3RydWN0ICoqdm1hcCwNCj4gPiA+ICAJCQlnb3RvIG91dF9mcmVl X21lbXBvbDsNCj4gPiA+ICAJCWlmIChuZXdfdm1hLT52bV9maWxlKQ0KPiA+ID4gIAkJCWdldF9m aWxlKG5ld192bWEtPnZtX2ZpbGUpOw0KPiA+ID4gLQkJaWYgKG5ld192bWEtPnZtX29wcyAmJiBu ZXdfdm1hLT52bV9vcHMtPm9wZW4pDQo+ID4gPiArCQlpZiAobmV3X3ZtYS0+dm1fb3BzLT5vcGVu KQ0KPiA+ID4gIAkJCW5ld192bWEtPnZtX29wcy0+b3BlbihuZXdfdm1hKTsNCj4gPiA+ICAJCXZt YV9saW5rKG1tLCBuZXdfdm1hLCBwcmV2LCByYl9saW5rLCByYl9wYXJlbnQpOw0KPiA+ID4gIAkJ Km5lZWRfcm1hcF9sb2NrcyA9IGZhbHNlOw0KPiA+ID4gZGlmZiAtLWdpdCBhL21tL21yZW1hcC5j IGIvbW0vbXJlbWFwLmMNCj4gPiA+IGluZGV4IDVjMmUxODUwNWY3NS4uN2FiMjIyYzI4M2RlIDEw MDY0NA0KPiA+ID4gLS0tIGEvbW0vbXJlbWFwLmMNCj4gPiA+ICsrKyBiL21tL21yZW1hcC5jDQo+ ID4gPiBAQCAtMzAyLDcgKzMwMiw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIG1vdmVfdm1hKHN0 cnVjdA0KPiA+ID4gdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCj4gPiA+ICAJCQkJICAgICBuZWVkX3Jt YXBfbG9ja3MpOw0KPiA+ID4gIAlpZiAobW92ZWRfbGVuIDwgb2xkX2xlbikgew0KPiA+ID4gIAkJ ZXJyID0gLUVOT01FTTsNCj4gPiA+IC0JfSBlbHNlIGlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZt X29wcy0+bXJlbWFwKSB7DQo+ID4gPiArCX0gZWxzZSBpZiAodm1hLT52bV9vcHMtPm1yZW1hcCkg ew0KPiA+ID4gIAkJZXJyID0gdm1hLT52bV9vcHMtPm1yZW1hcChuZXdfdm1hKTsNCj4gPiA+ICAJ fQ0KPiA+ID4gIA0KPiA+ID4gZGlmZiAtLWdpdCBhL21tL25vbW11LmMgYi9tbS9ub21tdS5jDQo+ ID4gPiBpbmRleCBmMDBmMjA5ODMzYWIuLjczZjY2ZTgxY2ZiMCAxMDA2NDQNCj4gPiA+IC0tLSBh L21tL25vbW11LmMNCj4gPiA+ICsrKyBiL21tL25vbW11LmMNCj4gPiA+IEBAIC03NjQsNyArNzY0 LDcgQEAgc3RhdGljIHZvaWQgZGVsZXRlX3ZtYV9mcm9tX21tKHN0cnVjdA0KPiA+ID4gdm1fYXJl YV9zdHJ1Y3QgKnZtYSkNCj4gPiA+ICAgKi8NCj4gPiA+ICBzdGF0aWMgdm9pZCBkZWxldGVfdm1h KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QNCj4gPiA+IHZtX2FyZWFfc3RydWN0DQo+ID4g PiAqdm1hKQ0KPiA+ID4gIHsNCj4gPiA+IC0JaWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3Bz LT5jbG9zZSkNCj4gPiA+ICsJaWYgKHZtYS0+dm1fb3BzLT5jbG9zZSkNCj4gPiA+ICAJCXZtYS0+ dm1fb3BzLT5jbG9zZSh2bWEpOw0KPiA+ID4gIAlpZiAodm1hLT52bV9maWxlKQ0KPiA+ID4gIAkJ ZnB1dCh2bWEtPnZtX2ZpbGUpOw0KPiA+ID4gQEAgLTE0OTYsNyArMTQ5Niw3IEBAIGludCBzcGxp dF92bWEoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdA0KPiA+ID4gdm1fYXJlYV9zdHJ1Y3Qg KnZtYSwNCj4gPiA+ICAJCXJlZ2lvbi0+dm1fcGdvZmYgPSBuZXctPnZtX3Bnb2ZmICs9IG5wYWdl czsNCj4gPiA+ICAJfQ0KPiA+ID4gIA0KPiA+ID4gLQlpZiAobmV3LT52bV9vcHMgJiYgbmV3LT52 bV9vcHMtPm9wZW4pDQo+ID4gPiArCWlmIChuZXctPnZtX29wcy0+b3BlbikNCj4gPiA+ICAJCW5l dy0+dm1fb3BzLT5vcGVuKG5ldyk7DQo+ID4gPiAgDQo+ID4gPiAgCWRlbGV0ZV92bWFfZnJvbV9t bSh2bWEpOw0KPiA+IA0KPiA+IFRvZGF5J3MgLW5leHQgb24gQXBhbGlzIFQzMCBbMV0gZ2l2ZXMg dGhlIGZvbGxvd2luZyBlcnJvciB1cG9uDQo+ID4gYm9vdDoNCj4gPiANCj4gPiBbICAgMTYuMTQ3 NDk2XSBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQN Cj4gPiB2aXJ0dWFsIGFkZHJlc3MgMDAwMDAwMmMNCj4gPiBbICAgMTYuMTU2MTUyXSBwZ2QgPSA4 NDMwNDVhZg0KPiA+IFsgICAxNi4xNTg5ODZdIFswMDAwMDAyY10gKnBnZD1mYWNkOTgzMQ0KPiA+ IFsgICAxNi4xNjI1NzhdIEludGVybmFsIGVycm9yOiBPb3BzOiAxNyBbIzFdIFBSRUVNUFQgU01Q IEFSTQ0KPiA+IFsgICAxNi4xNjc5NzBdIE1vZHVsZXMgbGlua2VkIGluOg0KPiA+IFsgICAxNi4x NzEwMzRdIENQVTogMiBQSUQ6IDQ0MiBDb21tOiBwb2xraXRkIE5vdCB0YWludGVkIDQuMTguMC0N Cj4gPiByYzUtDQo+ID4gbmV4dC0yMDE4MDcxNi1kaXJ0eSAjNzUNCj4gPiBbICAgMTYuMTc5MTEx XSBIYXJkd2FyZSBuYW1lOiBOVklESUEgVGVncmEgU29DIChGbGF0dGVuZWQgRGV2aWNlDQo+ID4g VHJlZSkNCj4gPiBbICAgMTYuMTg1MzgyXSBQQyBpcyBhdCBzaG93X21hcF92bWEuY29uc3Rwcm9w LjMrMHhhYy8weDE1OA0KPiA+IFsgICAxNi4xOTA2ODZdIExSIGlzIGF0IHNob3dfbWFwX3ZtYS5j b25zdHByb3AuMysweGE4LzB4MTU4DQo+ID4gWyAgIDE2LjE5NTk4OV0gcGMgOiBbPGMwMmM0OTAw Pl0gICAgbHIgOiBbPGMwMmM0OGZjPl0gICAgcHNyOg0KPiA+IDgwMGUwMDEzDQo+ID4gWyAgIDE2 LjIwMjI0M10gc3AgOiBlYzAyZGU2MCAgaXAgOiAwMDAwMDNjZSAgZnAgOiBjMGYwOWEzYw0KPiA+ IFsgICAxNi4yMDc0NTddIHIxMDogZWMwMmRmNzggIHI5IDogMDAwMDAwMDAgIHI4IDogMDAwMDAw MDANCj4gPiBbICAgMTYuMjEyNjcyXSByNyA6IDAwMDAwMDAwICByNiA6IGVkYThlYzQ4ICByNSA6 IDAwMDAwMDAwICByNCA6DQo+ID4gYzBmMDlhM2MNCj4gPiBbICAgMTYuMjE5MTg4XSByMyA6IDAw MDAwMDAwICByMiA6IGVkMWRmMDAwICByMSA6IDAwMDAwMDIwICByMCA6DQo+ID4gZWRhOGVjNDgN Cj4gPiBbICAgMTYuMjI1NzA1XSBGbGFnczogTnpjdiAgSVJRcyBvbiAgRklRcyBvbiAgTW9kZSBT VkNfMzIgIElTQQ0KPiA+IEFSTSAgU2VnbWVudCBub25lDQo+ID4gWyAgIDE2LjIzMjgyOV0gQ29u dHJvbDogMTBjNTM4N2QgIFRhYmxlOiBhYzAxODA0YSAgREFDOiAwMDAwMDA1MQ0KPiA+IFsgICAx Ni4yMzg1NzNdIFByb2Nlc3MgcG9sa2l0ZCAocGlkOiA0NDIsIHN0YWNrIGxpbWl0ID0gMHhjMGU4 M2NlNSkNCj4gPiBbICAgMTYuMjQ0NTcyXSBTdGFjazogKDB4ZWMwMmRlNjAgdG8gMHhlYzAyZTAw MCkNCj4gPiBbICAgMTYuMjQ4OTI4XSBkZTYwOiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCBlZGE4ZWM0OA0KPiA+IGVkYThlYzQ4IGMwZjA5YTNjIDAwMDAwM2E2DQo+ID4gWyAg IDE2LjI1NzA5N10gZGU4MDogZWNmNDYzMDAgMDAwMDAwOTYgMDAwMDAwMDAgYzAyYzRlZmMgZWRh OGVjNDgNCj4gPiAwMDAwMDAwMCAwMDAwMDNhNiBjMDI4OTkwOA0KPiA+IFsgICAxNi4yNjUyODdd IGRlYTA6IDAwMDAwMDBjIGVkYThlYzc4IGVjZjQ2MzAwIDAwMDAwM2Y0IDAwMDgxMTE0DQo+ID4g ZWRhOGVjNjAgMDAwMDAwMDAgYzBmMDRjNDgNCj4gPiBbICAgMTYuMjczNDgyXSBkZWMwOiBjMDI4 OTU2YyAwMDAwMDQwMCBlYzAyZGY3OCAwMDAwMDAwMCAwMDA4MTEwOA0KPiA+IDAwMDAwNDAwIDAw MDAwMDAwIGMwMjYzYjIwDQo+ID4gWyAgIDE2LjI4MTY3MV0gZGVlMDogNWI0YzlhN2MgMGVlNmIy ODAgMDAwMDM5ZWEgMDAwMDAwMDAgYzBmMDRjNDgNCj4gPiA4YmIzZWM1NiBjMGYwNGM0OCBiZThj N2EwMA0KPiA+IFsgICAxNi4yODk4NTNdIGRmMDA6IGVjZjQ2MzA4IDAwMDAwMDAwIDAwMDAwN2Zm IGMwZjA0YzQ4IDAwMDAwMDAxDQo+ID4gMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDANCj4gPiBb ICAgMTYuMjk4MDM3XSBkZjIwOiAwMDAwMDAwMCA4YmIzZWM1NiAwMDAwMzllYSA4YmIzZWM1NiBl Y2Y0NjMwMA0KPiA+IDAwMDgxMTA4IDAwMDAwNDAwIGVjMDJkZjc4DQo+ID4gWyAgIDE2LjMwNjIx MF0gZGY0MDogMDAwMDAwMDAgMDAwODExMDggMDAwMDA0MDAgYzAyNjNjZGMgYzBmMDRjNDgNCj4g PiBiNjg2YWM3OCAwMDAwMDVlOCBjMGYwNGM0OA0KPiA+IFsgICAxNi4zMTQzODFdIGRmNjA6IGVj ZjQ2MzAzIDAwMDAyNDAwIDAwMDAwMDAwIGVjZjQ2MzAwIDAwMDgxMTA4DQo+ID4gYzAyNjQxYzAg MDAwMDI0MDAgMDAwMDAwMDANCj4gPiBbICAgMTYuMzIyNTQ5XSBkZjgwOiAwMDAwMDAwMCA4YmIz ZWM1NiAwMDAyMjY5OCBiNjg2YWM3OCAwMDAwMDVlOA0KPiA+IDAwMDAwMDAzIGMwMTAxMjA0IGVj MDJjMDAwDQo+ID4gWyAgIDE2LjMzMDcxOF0gZGZhMDogMDAwMDAwMDMgYzAxMDEwMDAgMDAwMjI2 OTggYjY4NmFjNzggMDAwMDAwMDkNCj4gPiAwMDA4MTEwOCAwMDAwMDQwMCAwMDAwMDBjMg0KPiA+ IFsgICAxNi4zMzg4ODZdIGRmYzA6IDAwMDIyNjk4IGI2ODZhYzc4IDAwMDAwNWU4IDAwMDAwMDAz IDAwMDAwMDRiDQo+ID4gYmU4YzdhZjQgMDAwMDAwMDAgMDAwMDAwMDANCj4gPiBbICAgMTYuMzQ3 MDUzXSBkZmUwOiAwMDA0ZDFiMiBiZThjN2E4NCBiNjg2Yjk0YyBiNjg2YWM5OCAwMDBlMDAxMA0K PiA+IDAwMDAwMDA5IDAwMDAwMDAwIDAwMDAwMDAwDQo+ID4gWyAgIDE2LjM1NTIzN10gWzxjMDJj NDkwMD5dIChzaG93X21hcF92bWEuY29uc3Rwcm9wLjMpIGZyb20NCj4gPiBbPGMwMmM0ZWZjPl0g KHNob3dfcGlkX21hcCsweDEwLzB4MzQpICANCj4gPiBbICAgMTYuMzYzODQ2XSBbPGMwMmM0ZWZj Pl0gKHNob3dfcGlkX21hcCkgZnJvbSBbPGMwMjg5OTA4Pl0NCj4gPiAoc2VxX3JlYWQrMHgzOWMv MHg0ZjQpDQo+ID4gWyAgIDE2LjM3MTI2NF0gWzxjMDI4OTkwOD5dIChzZXFfcmVhZCkgZnJvbSBb PGMwMjYzYjIwPl0NCj4gPiAoX192ZnNfcmVhZCsweDJjLzB4MTVjKQ0KPiA+IFsgICAxNi4zNzg0 MDFdIFs8YzAyNjNiMjA+XSAoX192ZnNfcmVhZCkgZnJvbSBbPGMwMjYzY2RjPl0NCj4gPiAodmZz X3JlYWQrMHg4Yy8weDExMCkNCj4gPiBbICAgMTYuMzg1NTQ2XSBbPGMwMjYzY2RjPl0gKHZmc19y ZWFkKSBmcm9tIFs8YzAyNjQxYzA+XQ0KPiA+IChrc3lzX3JlYWQrMHg0Yy8weGFjKQ0KPiA+IFsg ICAxNi4zOTI1MTldIFs8YzAyNjQxYzA+XSAoa3N5c19yZWFkKSBmcm9tIFs8YzAxMDEwMDA+XQ0K PiA+IChyZXRfZmFzdF9zeXNjYWxsKzB4MC8weDU0KQ0KPiA+IFsgICAxNi40MDAwODNdIEV4Y2Vw dGlvbiBzdGFjaygweGVjMDJkZmE4IHRvIDB4ZWMwMmRmZjApDQo+ID4gWyAgIDE2LjQwNTEzNV0g ZGZhMDogICAgICAgICAgICAgICAgICAgMDAwMjI2OTggYjY4NmFjNzggMDAwMDAwMDkNCj4gPiAw MDA4MTEwOCAwMDAwMDQwMCAwMDAwMDBjMg0KPiA+IFsgICAxNi40MTMzMTFdIGRmYzA6IDAwMDIy Njk4IGI2ODZhYzc4IDAwMDAwNWU4IDAwMDAwMDAzIDAwMDAwMDRiDQo+ID4gYmU4YzdhZjQgMDAw MDAwMDAgMDAwMDAwMDANCj4gPiBbICAgMTYuNDIxNDg1XSBkZmUwOiAwMDA0ZDFiMiBiZThjN2E4 NCBiNjg2Yjk0YyBiNjg2YWM5OA0KPiA+IFsgICAxNi40MjY1NDJdIENvZGU6IGUxY2Q4MGYwIGU1 OTQ3MDIwIGViZmZmYjRmIGU1OTQzMDQ4IChlNTkzMzAyYykNCj4gPiBbICAgMTYuNDMyNzM0XSAt LS1bIGVuZCB0cmFjZSA1ZGJmOTFjNjRkYTZiZDkxIF0tLS0NCj4gPiANCj4gPiBSZXZlcnRpbmcg dGhpcyBtYWtlcyBpdCBiZWhhdmUgYXMgZXhwZWN0ZWQgYWdhaW4uIEFueWJvZHkga25vd3MNCj4g PiB3aGF0IGlzDQo+ID4gZ29pbmcgb24/DQo+IA0KPiBDb3VsZCB5b3UgY2hlY2sgaWYgdGhpcyBm aXh1cCBoZWxwcz8NCj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvcHJvY2Vzcy5j IGIvYXJjaC9hcm0va2VybmVsL3Byb2Nlc3MuYw0KPiBpbmRleCAyMjVkMWM1OGQyZGUuLjU1MzI2 Mjk5OTU2NCAxMDA2NDQNCj4gLS0tIGEvYXJjaC9hcm0va2VybmVsL3Byb2Nlc3MuYw0KPiArKysg Yi9hcmNoL2FybS9rZXJuZWwvcHJvY2Vzcy5jDQo+IEBAIC0zMzQsNiArMzM0LDcgQEAgc3RhdGlj IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCBnYXRlX3ZtYSA9IHsNCj4gIAkudm1fc3RhcnQJPSAweGZm ZmYwMDAwLA0KPiAgCS52bV9lbmQJCT0gMHhmZmZmMDAwMCArIFBBR0VfU0laRSwNCj4gIAkudm1f ZmxhZ3MJPSBWTV9SRUFEIHwgVk1fRVhFQyB8IFZNX01BWVJFQUQgfA0KPiBWTV9NQVlFWEVDLA0K PiArCS52bV9vcHMJCT0gJmR1bW15X3ZtX29wcywNCj4gIH07DQo+ICANCj4gIHN0YXRpYyBpbnQg X19pbml0IGdhdGVfdm1hX2luaXQodm9pZCkNCg0KWWVwLCB0aGF0IGN1dHMgaXQuIFRoYW5rcyEN Cg0KSSBhc3N1bWUgeW91IHdpbGwgc2VuZCBhIHByb3BlciBwYXRjaCBhbmQvb3IgZG8gdGhlIG5l ZWRmdWw/