Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88E67C433EF for ; Mon, 22 Nov 2021 03:44:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238686AbhKVDrW (ORCPT ); Sun, 21 Nov 2021 22:47:22 -0500 Received: from alexa-out.qualcomm.com ([129.46.98.28]:28108 "EHLO alexa-out.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229862AbhKVDrV (ORCPT ); Sun, 21 Nov 2021 22:47:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1637552656; x=1669088656; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tqr+dB/M0DQfs6hMLcmHTDCIbNgDhTnFAlimS74kXd0=; b=KvzhLvJFpTiVIGspeMORsA340schqhovDSPfZfrh+7EO3se24e1bRdTC UQ2pv8Mf4Ci6J8dfE8aZ8470/juXFB9m4Z3M8McX7fWbd6aas9V9PyjCQ ppAOMJYSzSm8REp7RFwmAoL4OSXX3uvdB1uzToQPt29QkLEm/yKXIkRdg s=; Received: from ironmsg08-lv.qualcomm.com ([10.47.202.152]) by alexa-out.qualcomm.com with ESMTP; 21 Nov 2021 19:44:15 -0800 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg08-lv.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2021 19:44:15 -0800 Received: from nalasex01b.na.qualcomm.com (10.47.209.197) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.922.19; Sun, 21 Nov 2021 19:44:14 -0800 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.922.19; Sun, 21 Nov 2021 19:44:14 -0800 Received: from nalasex01a.na.qualcomm.com ([fe80::ccf6:7e20:8c96:abe3]) by nalasex01a.na.qualcomm.com ([fe80::ccf6:7e20:8c96:abe3%4]) with mapi id 15.02.0922.019; Sun, 21 Nov 2021 19:44:14 -0800 From: "JianGen Jiao (QUIC)" To: Dmitry Vyukov , Andrey Konovalov CC: syzkaller , "kasan-dev@googlegroups.com" , LKML , "Alexander Lochmann" , "Likai Ding (QUIC)" , Kaipeng Zeng , Hangbin Liu Subject: RE: [PATCH] kcov: add KCOV_PC_RANGE to limit pc range Thread-Topic: [PATCH] kcov: add KCOV_PC_RANGE to limit pc range Thread-Index: AQHX23vBqfkgnFSKsE2m4CqXnKYayqwJ2FMAgADexICAAHs6AIAADBkAgAAaKICAAANPgIAAEWQAgAABLQCAA3/PEA== Date: Mon, 22 Nov 2021 03:44:14 +0000 Message-ID: <16605acf697e47299e3ba3bddf04441e@quicinc.com> References: <1637130234-57238-1-git-send-email-quic_jiangenj@quicinc.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.253.34.55] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org aHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDMwMDM4MDUvY2FuLWVicGYtbW9k aWZ5LXRoZS1yZXR1cm4tdmFsdWUtb3ItcGFyYW1ldGVycy1vZi1hLXN5c2NhbGwNCmVCUEYgc2Vl bXMgcmVhZC1vbmx5LCBJIHRoaW5rIGl0IHdvbid0IG92ZXJjb21lIHRoZSBhcmVhIG92ZXJmbG93 IGlmIGNhbm5vdCBtb2RpZnkgdGhlIGFyZWEgaW5zaWRlIGtlcm5lbD8NCg0KLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCkZyb206IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4g DQpTZW50OiBGcmlkYXksIE5vdmVtYmVyIDE5LCAyMDIxIDEwOjE0IFBNDQpUbzogQW5kcmV5IEtv bm92YWxvdiA8YW5kcmV5a252bEBnbWFpbC5jb20+DQpDYzogSmlhbkdlbiBKaWFvIChRVUlDKSA8 cXVpY19qaWFuZ2VuakBxdWljaW5jLmNvbT47IHN5emthbGxlciA8c3l6a2FsbGVyQGdvb2dsZWdy b3Vwcy5jb20+OyBrYXNhbi1kZXZAZ29vZ2xlZ3JvdXBzLmNvbTsgTEtNTCA8bGludXgta2VybmVs QHZnZXIua2VybmVsLm9yZz47IEFsZXhhbmRlciBMb2NobWFubiA8aW5mb0BhbGV4YW5kZXItbG9j aG1hbm4uZGU+OyBMaWthaSBEaW5nIChRVUlDKSA8cXVpY19saWthaWRAcXVpY2luYy5jb20+OyBL YWlwZW5nIFplbmcgPGthaXBlbmc5NEBnbWFpbC5jb20+OyBIYW5nYmluIExpdSA8bGl1aGFuZ2Jp bkBnbWFpbC5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENIXSBrY292OiBhZGQgS0NPVl9QQ19SQU5H RSB0byBsaW1pdCBwYyByYW5nZQ0KDQogT24gRnJpLCAxOSBOb3YgMjAyMSBhdCAxNTowOSwgQW5k cmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnbWFpbC5jb20+IHdyb3RlOg0KPiA+ID4gK0thaXBl bmcsIEhhbmdiaW4gd2hvIGNvbnRyaWJ1dGVkIHRoZSBjb3ZlcmFnZSBmaWx0ZXIgdG8gc3l6a2Fs bGVyLg0KPiA+ID4gVGhpcyBpcyBhIGRpc2N1c3Npb24gYWJvdXQgYWRkaW5nIGEgc2ltaWxhciBm aWx0ZXIgdG8gdGhlIGtlcm5lbC4gDQo+ID4gPiBZb3UgY2FuIHNlZSB3aG9sZSBkaXNjdXNzaW9u IGhlcmU6DQo+ID4gPiBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2cva2FzYW4tZGV2L2MvVFFt WVVkVUMwOFkNCj4gPg0KPiA+IEpvZXksIHdoYXQgZG8geW91IHRoaW5rIGluIGdlbmVyYWwgYWJv dXQgcGFzc2luZyBhIGZpbHRlciBiaXRtYXAgdG8gdGhlIGtlcm5lbD8NCj4gPg0KPiA+IFNpbmNl IHRoZSBiaXRtYXAgaXMgbGFyZ2UsIGl0IGNhbiBtYWtlIHNlbnNlIHRvIHJldXNlIGl0IGFjcm9z cyANCj4gPiBkaWZmZXJlbnQgS0NPViBpbnN0YW5jZXMuDQo+ID4gSSBhbSB0aGlua2luZyBhYm91 dCBzb21ldGhpbmcgYWxvbmcgdGhlIGZvbGxvd2luZyBsaW5lczoNCj4gPg0KPiA+IGtjb3ZfZmQg PSBvcGVuKCIvZGVidWdmcy9rY292Iik7DQo+ID4gZmlsdGVyX2ZkID0gaW9jdGwoa2Nvdl9mZCwg S0NPVl9DUkVBVEVfRklMVEVSLCAmey4uLiBzb21lIGFyZ3MgDQo+ID4gc3BlY2lmeWluZyBzdGFy dC9lbmQgLi4ufSk7IGZpbHRlciA9IG1tYXAoLi4uLCBmaWx0ZXJfZmQpOyAuLi4gd3JpdGUgDQo+ ID4gdG8gdGhlIGZpbHRlciAuLi4NCj4gPg0KPiA+IC4uLg0KPiA+IGtjb3ZfZmQyID0gb3Blbigi L2RlYnVnZnMva2NvdiIpOw0KPiA+IGlvY3RsKGtjb3ZfZmQyLCBLQ09WX0FUVEFDSF9GSUxURVIs IGZpbHRlcl9mZCk7IGlvY3RsKGtjb3ZfZmQyLCANCj4gPiBLQ09WX0VOQUJMRSk7DQo+ID4NCj4g Pg0KPiA+IFRoaXMgd291bGQgYWxsb3cgdXMgdG8gY3JlYXRlIDIgZmlsdGVyczoNCj4gPiAxLiBP bmUgdGhlIGludGVyZXN0aW5nIHN1YnN5c3RlbXMNCj4gPiAyLiBTZWNvbmQgb25seSBmb3IgeWV0 IHVuY292ZXJlZCBQQ3MgaW4gdGhlIGludGVyZXN0aW5nIHN1YnN5c3RlbXMgDQo+ID4gKHVwZGF0 ZWQgYXMgd2UgZGlzY292ZXIgbW9yZSBjb3ZlcmFnZSkNCj4gPg0KPiA+IER1cmluZyBmdXp6aW5n IHdlIGF0dGFjaCB0aGUgc2Vjb25kIGZpbHRlciB0byBLQ09WLg0KPiA+IEJ1dCB3aGVuIHdlIHdh bnQgdG8gb2J0YWluIGZ1bGwgcHJvZ3JhbSBjb3ZlcmFnZSwgd2UgYXR0YWNoIHRoZSBmaXJzdCBv bmUuDQo+ID4NCj4gPiBUaGUgZmlsdGVycyAoYml0bWFwcykgYXJlIHJldXNlZCBhY3Jvc3MgYWxs IHRocmVhZHMgaW4gYWxsIGV4ZWN1dG9yIA0KPiA+IHByb2Nlc3NlcyAoc28gdGhhdCB3ZSBoYXZl IG9ubHkgMiBmaWx0ZXJzIGdsb2JhbGx5IHBlciBWTSkuDQo+ID4NCj4gPiBLQ09WX0NSRUFURV9G SUxURVIgY291bGQgYWxzbyBhY2NlcHQgaG93IG1hbnkgYnl0ZXMgZWFjaCBiaXQgDQo+ID4gcmVw cmVzZW50cyAodGhhdCBzY2FsaW5nIGZhY3RvciwgYXMgaGFyZGNvZGluZyA0LCA4LCAxNiBtYXkg YmUgYmFkIA0KPiA+IGZvciBhIHN0YWJsZSBrZXJuZWwgaW50ZXJmYWNlKS4NCj4gPg0KPiA+IEJ1 dCBJIGFtIHN0aWxsIG5vdCBzdXJlIGhvdyB0byBzdXBwb3J0IGJvdGggdGhlIG1haW4ga2VybmVs IGFuZCANCj4gPiBtb2R1bGVzLiBXZSBjb3VsZCBhbGxvdyBzZXR0aW5nIHVwIG11bHRpcGxlIGZp bHRlcnMgZm9yIGRpZmZlcmVudCBQQyANCj4gPiByYW5nZXMuIE9yIG1heSBiZSBqdXN0IDIgKG9u ZSBmb3Iga2VybmVsIGFuZCBvbmUgZm9yIG1vZHVsZXMgcmFuZ2UpLg0KPiA+IE9yIG1heWJlIDEg Yml0bWFwIGNhbiBjb3ZlciBib3RoIGtlcm5lbCBhbmQgbW9kdWxlcz8NCj4gPg0KPiA+IFRob3Vn aHRzPw0KPg0KPiBUaHJvd2luZyBpbiBhIHRob3VnaHQgd2l0aG91dCBhIGNvbmNyZXRlIGRlc2ln biBzdWdnZXN0aW9uOiBob3cgYWJvdXQgDQo+IGVuIGVCUEYtYmFzZWQgZmlsdGVyPyBUaGUgZmxl eGliaWxpdHkgd291bGQgYWxsb3cgY292ZXJpbmcgYXMgbWFueSBQQyANCj4gcmFuZ2VzIGFzIG9u ZSB3YW50cy4gQW5kLCBwZXJoYXBzLCBkbyBvdGhlciB0aGluZ3MuDQoNClRoaXMgaXMgZGVmaW5p dGVseSBpbnRlcmVzdGluZyBhbmQgZmxleGlibGUuIGVCUEYgaGF2ZSBkaWZmZXJlbnQgdHlwZXMg b2YgbWFwcyBub3dhZGF5cyBhbmQgdGhlc2UgY2FuIGJlIGFjY2Vzc2VkIGZyb20gdXNlci1zcGFj ZSBhcyB3ZWxsLg0KQWx0ZXJuYXRpdmVseSBjb3VsZCB3ZSBhdHRhY2gganVzdCBhbiBlQlBGIG1h cCBhcyBhIGZpbHRlcj8NCkJ1dCB3ZSB3b3VsZCBuZWVkIHRvIG1lYXN1cmUgb3ZlcmhlYWQsIHRo aXMgd2lsbCBiZSBleGVjdXRlZCBmb3IgZXZlcnkgYmFzaWMgYmxvY2sgb2YgY29kZS4NCg0KDQoN Cj4gPiA+IE9uIEZyaSwgMTkgTm92IDIwMjEgYXQgMTI6MjEsIEppYW5HZW4gSmlhbyAoUVVJQykg DQo+ID4gPiA8cXVpY19qaWFuZ2VuakBxdWljaW5jLmNvbT4gd3JvdGU6DQo+ID4gPiA+DQo+ID4g PiA+IFllcywgb24geDg2XzY0LCBtb2R1bGUgYWRkcmVzcyBzcGFjZSBpcyBhZnRlciBrZXJuZWwu IEJ1dCBsaWtlIGJlbG93IG9uIGFybTY0LCBpdCdzIGRpZmZlcmVudC4NCj4gPiA+ID4NCj4gPiA+ ID4gIyBncmVwIHN0ZXh0IC9wcm9jL2thbGxzeW1zDQo+ID4gPiA+IGZmZmZmZmMwMTAwMTAwMDAg VCBfc3RleHQNCj4gPiA+ID4gIyBjYXQgL3Byb2MvbW9kdWxlcyB8c29ydCAtayA2IHwgdGFpbCAt Mg0KPiA+ID4gPiBTb21lX21vZHVsZV8xIDU1Mjk2MCAwIC0gTGl2ZSAweGZmZmZmZmMwMGNhMDUw MDAgKE8pDQo+ID4gPiA+IFNvbWVfbW9kdWxlXzEgMzYwNDQ4IDAgLSBMaXZlIDB4ZmZmZmZmYzAw Y2I4ZjAwMCAoTykgIyBjYXQgDQo+ID4gPiA+IC9wcm9jL21vZHVsZXMgfHNvcnQgLWsgNiB8IGhl YWQgLTINCj4gPiA+ID4gU29tZV9tb2R1bGVfMyAxNjM4NCAxIC0gTGl2ZSAweGZmZmZmZmMwMDk0 MzAwMDANCj4gPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ ID4gRnJvbTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPg0KPiA+ID4gPiBTZW50 OiBGcmlkYXksIE5vdmVtYmVyIDE5LCAyMDIxIDY6MzggUE0NCj4gPiA+ID4gVG86IEppYW5HZW4g SmlhbyAoUVVJQykgPHF1aWNfamlhbmdlbmpAcXVpY2luYy5jb20+DQo+ID4gPiA+IENjOiBhbmRy ZXlrbnZsQGdtYWlsLmNvbTsga2FzYW4tZGV2QGdvb2dsZWdyb3Vwcy5jb207IExLTUwgDQo+ID4g PiA+IDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgQWxleGFuZGVyIExvY2htYW5uIA0K PiA+ID4gPiA8aW5mb0BhbGV4YW5kZXItbG9jaG1hbm4uZGU+OyBMaWthaSBEaW5nIChRVUlDKSAN Cj4gPiA+ID4gPHF1aWNfbGlrYWlkQHF1aWNpbmMuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSZTog W1BBVENIXSBrY292OiBhZGQgS0NPVl9QQ19SQU5HRSB0byBsaW1pdCBwYyByYW5nZQ0KPiA+ID4g Pg0KPiA+ID4gPiBXQVJOSU5HOiBUaGlzIGVtYWlsIG9yaWdpbmF0ZWQgZnJvbSBvdXRzaWRlIG9m IFF1YWxjb21tLiBQbGVhc2UgYmUgd2FyeSBvZiBhbnkgbGlua3Mgb3IgYXR0YWNobWVudHMsIGFu ZCBkbyBub3QgZW5hYmxlIG1hY3Jvcy4NCj4gPiA+ID4NCj4gPiA+ID4gT24gRnJpLCAxOSBOb3Yg MjAyMSBhdCAwNDoxNywgSmlhbkdlbiBKaWFvIChRVUlDKSA8cXVpY19qaWFuZ2VuakBxdWljaW5j LmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIaSBEbWl0cnksDQo+ID4gPiA+ID4g SSdtIHVzaW5nIHRoZSBzdGFydCwgZW5kIHBjIGZyb20gY292ZXIgZmlsdGVyLCB3aGljaCBjdXJy ZW50bHkgaXMgdGhlIGZhc3Qgd2F5IGNvbXBhcmVkIHRvIHRoZSBiaWcgYml0bWFwIHBhc3Npbmcg ZnJvbSBzeXprYWxsZXIgc29sdXRpb24sIGFzIEkgb25seSBzZXQgdGhlIGNvdmVyIGZpbHRlciB0 byBkaXJzL2ZpbGVzIEkgY2FyZSBhYm91dC4NCj4gPiA+ID4NCj4gPiA+ID4gSSBzZWUuDQo+ID4g PiA+IEJ1dCBpZiB3ZSBhcmUgdW5sdWNreSBhbmQgb3VyIGZ1bmN0aW9ucyBvZiBpbnRlcmVzdCBh cmUgYXQgdGhlIHZlcnkgbG93IGFuZCBoaWdoIGFkZHJlc3Nlcywgc3RhcnQvZW5kIHdpbGwgY292 ZXIgYWxtb3N0IGFsbCBrZXJuZWwgY29kZS4uLg0KPiA+ID4gPg0KPiA+ID4gPiA+IEkgY2hlY2tl ZA0KPiA+ID4gPiA+IGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZy9rYXNhbi1kZXYvYy9vVnoz WlNXYUsxUS9tLzlBU3p0ZHpDDQo+ID4gPiA+ID4gQUFBSiwgVGhlIGJpdG1hcCBzZWVtcyBub3Qg dGhlIHNhbWUgYXMgc3l6a2FsbGVyIG9uZSwgd2hpY2ggDQo+ID4gPiA+ID4gb25lIHdpbGwgYmUg dXNlZCBmaW5hbGx5Pw0KPiA+ID4gPg0KPiA+ID4gPiBJIGRvbid0IGtub3cgeWV0LiBXZSBuZWVk IHRvIGRlY2lkZS4NCj4gPiA+ID4gSW4gc3l6a2FsbGVyIHdlIGFyZSBtb3JlIGZsZXhpYmxlIGFu ZCBjYW4gY2hhbmdlIGNvZGUgZmFzdGVyLCB3aGlsZSBrZXJuZWwgaW50ZXJmYWNlcyBhcmUgc3Rh YmxlIGFuZCBuZWVkIHRvIGJlIGtlcHQgZm9yZXZlci4gU28gSSB0aGluayB3ZSBuZWVkIHRvIGNv bmNlbnRyYXRlIG1vcmUgb24gdGhlIGdvb2Qga2VybmVsIGludGVyZmFjZSBhbmQgdGhlbiBzdXBw b3J0IGl0IGluIHN5emthbGxlci4NCj4gPiA+ID4NCj4gPiA+ID4gPiBgYGAgQWxleGFuZGVyJ3Mg b25lDQo+ID4gPiA+ID4gKyBwb3MgPSAoaXAgLSBjYW5vbmljYWxpemVfaXAoKHVuc2lnbmVkIGxv bmcpJl9zdGV4dCkpIC8gNDsgDQo+ID4gPiA+ID4gKyBpZHggPSBwb3MgJSBCSVRTX1BFUl9MT05H OyBwb3MgLz0gQklUU19QRVJfTE9ORzsgaWYgDQo+ID4gPiA+ID4gKyAobGlrZWx5KHBvcyA8DQo+ ID4gPiA+ID4gKyB0LT5rY292X3NpemUpKSBXUklURV9PTkNFKGFyZWFbcG9zXSwgUkVBRF9PTkNF KGFyZWFbcG9zXSkgfCANCj4gPiA+ID4gPiArIHQtPjFMIDw8DQo+ID4gPiA+ID4gKyBpZHgpOw0K PiA+ID4gPiA+IGBgYA0KPiA+ID4gPiA+IFBjIG9mZnNldCBpcyBkaXZpZGVkIGJ5IDQgYW5kIHN0 YXJ0IGlzIF9zdGV4dC4gQnV0IGZvciBzb21lIGFyY2gsIHBjIGlzIGxlc3MgdGhhbiBfc3RleHQu DQo+ID4gPiA+DQo+ID4gPiA+IFlvdSBtZWFuIHRoYXQgbW9kdWxlcyBjYW4gaGF2ZSBQQyA8IF9z dGV4dD8NCj4gPiA+ID4NCj4gPiA+ID4gPiBgYGAgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9z eXprYWxsZXIvYmxvYi9tYXN0ZXIvc3l6LW1hbmFnZXIvY292ZmlsdGVyLmdvI0wxMzktTDE1NA0K PiA+ID4gPiA+ICAgICAgICAgZGF0YSA6PSBtYWtlKFtdYnl0ZSwgOCsoKHNpemU+PjQpLzgrMSkp DQo+ID4gPiA+ID4gICAgICAgICBvcmRlciA6PSBiaW5hcnkuQnl0ZU9yZGVyKGJpbmFyeS5CaWdF bmRpYW4pDQo+ID4gPiA+ID4gICAgICAgICBpZiB0YXJnZXQuTGl0dGxlRW5kaWFuIHsNCj4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgb3JkZXIgPSBiaW5hcnkuTGl0dGxlRW5kaWFuDQo+ID4gPiA+ ID4gICAgICAgICB9DQo+ID4gPiA+ID4gICAgICAgICBvcmRlci5QdXRVaW50MzIoZGF0YSwgc3Rh cnQpDQo+ID4gPiA+ID4gICAgICAgICBvcmRlci5QdXRVaW50MzIoZGF0YVs0Ol0sIHNpemUpDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgICAgIGJpdG1hcCA6PSBkYXRhWzg6XQ0KPiA+ID4gPiA+ ICAgICAgICAgZm9yIHBjIDo9IHJhbmdlIHBjcyB7DQo+ID4gPiA+ID4gICAgICAgICAgICAgICAg IC8vIFRoZSBsb3dlc3QgNC1iaXQgaXMgZHJvcHBlZC4NCj4gPiA+ID4gPiAgICAgICAgICAgICAg ICAgcGMgPSB1aW50MzIoYmFja2VuZC5OZXh0SW5zdHJ1Y3Rpb25QQyh0YXJnZXQsIHVpbnQ2NChw YykpKQ0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICBwYyA9IChwYyAtIHN0YXJ0KSA+PiA0DQo+ ID4gPiA+ID4gICAgICAgICAgICAgICAgIGJpdG1hcFtwYy84XSB8PSAoMSA8PCAocGMgJSA4KSkN Cj4gPiA+ID4gPiAgICAgICAgIH0NCj4gPiA+ID4gPiAgICAgICAgIHJldHVybiBkYXRhDQo+ID4g PiA+ID4gYGBgDQo+ID4gPiA+ID4gUGMgb2Zmc2V0IGlzIGRpdmlkZWQgYnkgMTYgYW5kIHN0YXJ0 IGlzIGNvdmVyIGZpbHRlciBzdGFydCBwYy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgdGhpbmsg ZGl2aWRlZCBieSA4IGlzIG1vcmUgcmVhc29uYWJsZT8gQmVjYXVzZSB0aGVyZSBpcyBhdCBsZWFz dCBvbmUgaW5zdHJ1Y3Rpb24gYmVmb3JlIGVhY2ggX19zYW5pdGl6ZXJfY292X3RyYWNlX3BjIGNh bGwuDQo+ID4gPiA+ID4gMDAwMDAwMDAwMDAwMDE2MCBSX0FBUkNINjRfQ0FMTDI2ICBfX3Nhbml0 aXplcl9jb3ZfdHJhY2VfcGMNCj4gPiA+ID4gPiAwMDAwMDAwMDAwMDAwMTY4IFJfQUFSQ0g2NF9D QUxMMjYgIF9fc2FuaXRpemVyX2Nvdl90cmFjZV9wYw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSB0 aGluayB3ZSBzdGlsbCBuZWVkIG15IHBhdGNoIGJlY2F1c2Ugd2Ugc3RpbGwgbmVlZCBhIHdheSB0 byBrZWVwIHRoZSB0cmFjZV9wYyBjYWxsIGFuZCBwb3N0LWZpbHRlciBpbiBzeXprYWxsZXIgZG9l c24ndCBzb2x2ZSB0cmFjZV9wYyBkcm9wcGluZywgcmlnaHQ/DQo+ID4gPiA+DQo+ID4gPiA+IFll cywgdGhlIGluLWtlcm5lbCBmaWx0ZXIgc29sdmVzIHRoZSBwcm9ibGVtIG9mIHRyYWNlIGNhcGFj aXR5L292ZXJmbG93cy4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiBCdXQgZm9yIHN1cmUg SSBjYW4gdXNlIHRoZSBiaXRtYXAgZnJvbSBzeXprYWxsZXIuDQo+ID4gPiA+ID4NCj4gPiA+ID4g PiBUSFgNCj4gPiA+ID4gPiBKb2V5DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+ID4gPiBGcm9tOiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+DQo+ ID4gPiA+ID4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDE4LCAyMDIxIDEwOjAwIFBNDQo+ID4g PiA+ID4gVG86IEppYW5HZW4gSmlhbyAoUVVJQykgPHF1aWNfamlhbmdlbmpAcXVpY2luYy5jb20+ DQo+ID4gPiA+ID4gQ2M6IGFuZHJleWtudmxAZ21haWwuY29tOyBrYXNhbi1kZXZAZ29vZ2xlZ3Jv dXBzLmNvbTsgTEtNTCANCj4gPiA+ID4gPiA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz47 IEFsZXhhbmRlciBMb2NobWFubiANCj4gPiA+ID4gPiA8aW5mb0BhbGV4YW5kZXItbG9jaG1hbm4u ZGU+DQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSF0ga2NvdjogYWRkIEtDT1ZfUENfUkFO R0UgdG8gbGltaXQgcGMgcmFuZ2UNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFdBUk5JTkc6IFRoaXMg ZW1haWwgb3JpZ2luYXRlZCBmcm9tIG91dHNpZGUgb2YgUXVhbGNvbW0uIFBsZWFzZSBiZSB3YXJ5 IG9mIGFueSBsaW5rcyBvciBhdHRhY2htZW50cywgYW5kIGRvIG5vdCBlbmFibGUgbWFjcm9zLg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gLE9uIFdlZCwgMTcgTm92IDIwMjEgYXQgMDc6MjQsIEpvZXkg SmlhbyA8cXVpY19qaWFuZ2VuakBxdWljaW5jLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gU29tZXRpbWVzIHdlIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgcGNzIHdpdGhpbiBz b21lIHJhbmdlLCANCj4gPiA+ID4gPiA+IHdoaWxlIHRoZXJlIGFyZSBjYXNlcyB0aGVzZSBwY3Mg YXJlIGRyb3BwZWQgYnkga2VybmVsIGR1ZSB0byANCj4gPiA+ID4gPiA+IGBwb3MgPj0NCj4gPiA+ ID4gPiA+IHQtPmtjb3Zfc2l6ZWAsIGFuZCBieSBpbmNyZWFzaW5nIHRoZSBtYXAgYXJlYSBzaXpl IGRvZXNuJ3QgaGVscC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUbyBhdm9pZCBkaXNhYmxp bmcgS0NPViBmb3IgdGhlc2Ugbm90IGludGVyZXNldGVkIHBjcyBkdXJpbmcgDQo+ID4gPiA+ID4g PiBidWlsZCB0aW1lLCBhZGRpbmcgdGhpcyBuZXcgS0NPVl9QQ19SQU5HRSBjbWQuDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBIaSBKb2V5LA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSG93IGRvIHlvdSB1 c2UgdGhpcz8gSSBhbSBjb25jZXJuZWQgdGhhdCBhIHNpbmdsZSByYW5nZSBvZiBQQ3MgaXMgdG9v IHJlc3RyaWN0aXZlLiBJIGNhbiBvbmx5IHNlZSBob3cgdGhpcyBjYW4gd29yayBmb3Igc2luZ2xl IG1vZHVsZSAoY29udGludW91cyBpbiBtZW1vcnkpIG9yIGEgc2luZ2xlIGZ1bmN0aW9uLiBCdXQg Zm9yIGFueXRoaW5nIGVsc2UgKHNvbWV0aGluZyBpbiB0aGUgbWFpbiBrZXJuZWwsIG9yIHNldmVy YWwgbW9kdWxlcyksIGl0IHdvbid0IHdvcmsgYXMgUENzIGFyZSBub3QgY29udGludW91cy4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IE1heWJlIHdlIHNob3VsZCB1c2UgYSBjb21wcmVzc2VkIGJpdG1h cCBvZiBpbnRlcmVzdGluZyBQQ3M/IEl0IGFsbG93cyB0byBzdXBwb3J0IGFsbCBjYXNlcyBhbmQg d2UgYWxyZWFkeSBoYXZlIGl0IGluIHN5ei1leGVjdXRvciwgdGhlbiBzeXotZXhlY3V0b3IgY291 bGQgc2ltcGx5IHBhc3MgdGhlIGJpdG1hcCB0byB0aGUga2VybmVsIHJhdGhlciB0aGFuIHBvc3Qt ZmlsdGVyLg0KPiA+ID4gPiA+IEl0J3MgYWxzbyBvdmVybGFwcyB3aXRoIHRoZSBLQ09WX01PREVf VU5JUVVFIG1vZGUgdGhhdCArQWxleGFuZGVyIHByb3Bvc2VkIGhlcmU6DQo+ID4gPiA+ID4gaHR0 cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9nL2thc2FuLWRldi9jL29WejNaU1dhSzFRL20vOUFTenRk ekMNCj4gPiA+ID4gPiBBQUFKIEl0IHdvdWxkIGJlIHJlYXNvbmFibGUgaWYga2VybmVsIHVzZXMg dGhlIHNhbWUgYml0bWFwIA0KPiA+ID4gPiA+IGZvcm1hdCBmb3IgdGhlc2UNCj4gPiA+ID4gPiAy IGZlYXR1cmVzLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g QW4gZXhhbXBsZSB1c2FnZSBpcyB0byB1c2UgdG9nZXRoZXIgc3l6a2FsbGVyJ3MgY292IGZpbHRl ci4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBDaGFuZ2UtSWQ6IEk5NTRmNmVmZTFiY2E2MDRm NWNlMzFmOGYyYjZmNjg5ZTM0YTI5ODFkDQo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb2V5 IEppYW8gPHF1aWNfamlhbmdlbmpAcXVpY2luYy5jb20+DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ ID4gPiA+ICBEb2N1bWVudGF0aW9uL2Rldi10b29scy9rY292LnJzdCB8IDEwICsrKysrKysrKysN Cj4gPiA+ID4gPiA+ICBpbmNsdWRlL3VhcGkvbGludXgva2Nvdi5oICAgICAgICB8ICA3ICsrKysr KysNCj4gPiA+ID4gPiA+ICBrZXJuZWwva2Nvdi5jICAgICAgICAgICAgICAgICAgICB8IDE4ICsr KysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0 aW9ucygrKQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0 aW9uL2Rldi10b29scy9rY292LnJzdA0KPiA+ID4gPiA+ID4gYi9Eb2N1bWVudGF0aW9uL2Rldi10 b29scy9rY292LnJzdA0KPiA+ID4gPiA+ID4gaW5kZXggZDgzYzlhYi4uZmJjZDQyMiAxMDA2NDQN Cj4gPiA+ID4gPiA+IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2LXRvb2xzL2tjb3YucnN0DQo+ID4g PiA+ID4gPiArKysgYi9Eb2N1bWVudGF0aW9uL2Rldi10b29scy9rY292LnJzdA0KPiA+ID4gPiA+ ID4gQEAgLTUyLDkgKzUyLDE1IEBAIHByb2dyYW0gdXNpbmcga2NvdjoNCj4gPiA+ID4gPiA+ICAg ICAgI2luY2x1ZGUgPGZjbnRsLmg+DQo+ID4gPiA+ID4gPiAgICAgICNpbmNsdWRlIDxsaW51eC90 eXBlcy5oPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgICAgc3RydWN0IGtjb3ZfcGNfcmFu Z2Ugew0KPiA+ID4gPiA+ID4gKyAgICAgIHVpbnQzMiBzdGFydDsNCj4gPiA+ID4gPiA+ICsgICAg ICB1aW50MzIgZW5kOw0KPiA+ID4gPiA+ID4gKyAgICB9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gICAgICAjZGVmaW5lIEtDT1ZfSU5JVF9UUkFDRSAgICAgICAgICAgICAgICAgICAgX0lP UignYycsIDEsIHVuc2lnbmVkIGxvbmcpDQo+ID4gPiA+ID4gPiAgICAgICNkZWZpbmUgS0NPVl9F TkFCTEUgICAgICAgICAgICAgICAgICAgICAgICBfSU8oJ2MnLCAxMDApDQo+ID4gPiA+ID4gPiAg ICAgICNkZWZpbmUgS0NPVl9ESVNBQkxFICAgICAgICAgICAgICAgICAgICAgICBfSU8oJ2MnLCAx MDEpDQo+ID4gPiA+ID4gPiArICAgICNkZWZpbmUgS0NPVl9UUkFDRV9SQU5HRSAgICAgICAgICAg ICAgICAgICBfSU9XKCdjJywgMTAzLCBzdHJ1Y3Qga2Nvdl9wY19yYW5nZSkNCj4gPiA+ID4gPiA+ ICAgICAgI2RlZmluZSBDT1ZFUl9TSVpFICAgICAgICAgICAgICAgICAoNjQ8PDEwKQ0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgI2RlZmluZSBLQ09WX1RSQUNFX1BDICAwIEBAIC02NCw2 ICs3MCw4IEBAIHByb2dyYW0gDQo+ID4gPiA+ID4gPiB1c2luZyBrY292Og0KPiA+ID4gPiA+ID4g ICAgICB7DQo+ID4gPiA+ID4gPiAgICAgICAgIGludCBmZDsNCj4gPiA+ID4gPiA+ICAgICAgICAg dW5zaWduZWQgbG9uZyAqY292ZXIsIG4sIGk7DQo+ID4gPiA+ID4gPiArICAgICAgICAvKiBDaGFu Z2Ugc3RhcnQgYW5kL29yIGVuZCB0byB5b3VyIGludGVyZXN0ZWQgcGMgcmFuZ2UuICovDQo+ID4g PiA+ID4gPiArICAgICAgICBzdHJ1Y3Qga2Nvdl9wY19yYW5nZSBwY19yYW5nZSA9IHsuc3RhcnQg PSAwLCAuZW5kID0gDQo+ID4gPiA+ID4gPiArICh1aW50MzIpKH4oKHVpbnQzMikwKSl9Ow0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgICAgLyogQSBzaW5nbGUgZmQgZGVzY3JpcHRvciBh bGxvd3MgY292ZXJhZ2UgY29sbGVjdGlvbiBvbiBhIHNpbmdsZQ0KPiA+ID4gPiA+ID4gICAgICAg ICAgKiB0aHJlYWQuDQo+ID4gPiA+ID4gPiBAQCAtNzksNiArODcsOCBAQCBwcm9ncmFtIHVzaW5n IGtjb3Y6DQo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQsIDApOw0KPiA+ID4gPiA+ID4g ICAgICAgICBpZiAoKHZvaWQqKWNvdmVyID09IE1BUF9GQUlMRUQpDQo+ID4gPiA+ID4gPiAgICAg ICAgICAgICAgICAgcGVycm9yKCJtbWFwIiksIGV4aXQoMSk7DQo+ID4gPiA+ID4gPiArICAgICAg ICBpZiAoaW9jdGwoZmQsIEtDT1ZfUENfUkFOR0UsIHBjX3JhbmdlKSkNCj4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICBkcHJpbnRmKDIsICJpZ25vcmUgS0NPVl9QQ19SQU5HRSBlcnJvci5cbiIp Ow0KPiA+ID4gPiA+ID4gICAgICAgICAvKiBFbmFibGUgY292ZXJhZ2UgY29sbGVjdGlvbiBvbiB0 aGUgY3VycmVudCB0aHJlYWQuICovDQo+ID4gPiA+ID4gPiAgICAgICAgIGlmIChpb2N0bChmZCwg S0NPVl9FTkFCTEUsIEtDT1ZfVFJBQ0VfUEMpKQ0KPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAg IHBlcnJvcigiaW9jdGwiKSwgZXhpdCgxKTsgZGlmZiAtLWdpdCANCj4gPiA+ID4gPiA+IGEvaW5j bHVkZS91YXBpL2xpbnV4L2tjb3YuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rY292LmggDQo+ID4g PiA+ID4gPiBpbmRleCAxZDAzNTBlLi4zNTNmZjBhIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L2tjb3YuaA0KPiA+ID4gPiA+ID4gKysrIGIvaW5jbHVkZS91YXBp L2xpbnV4L2tjb3YuaA0KPiA+ID4gPiA+ID4gQEAgLTE2LDEyICsxNiwxOSBAQCBzdHJ1Y3Qga2Nv dl9yZW1vdGVfYXJnIHsNCj4gPiA+ID4gPiA+ICAgICAgICAgX19hbGlnbmVkX3U2NCAgIGhhbmRs ZXNbMF07DQo+ID4gPiA+ID4gPiAgfTsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArI2RlZmlu ZSBQQ19SQU5HRV9NQVNLICgoX191MzIpKH4oKHUzMikgMCkpKSBzdHJ1Y3Qga2Nvdl9wY19yYW5n ZSB7DQo+ID4gPiA+ID4gPiArICAgICAgIF9fdTMyICAgICAgICAgICBzdGFydDsgICAgICAgICAg Lyogc3RhcnQgcGMgJiAweEZGRkZGRkZGICovDQo+ID4gPiA+ID4gPiArICAgICAgIF9fdTMyICAg ICAgICAgICBlbmQ7ICAgICAgICAgICAgLyogZW5kIHBjICYgMHhGRkZGRkZGRiAqLw0KPiA+ID4g PiA+ID4gK307DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAgI2RlZmluZSBLQ09WX1JFTU9U RV9NQVhfSEFORExFUyAgICAgICAgICAgICAgICAweDEwMA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ICAjZGVmaW5lIEtDT1ZfSU5JVF9UUkFDRSAgICAgICAgICAgICAgICAgICAgICAgIF9JT1Io J2MnLCAxLCB1bnNpZ25lZCBsb25nKQ0KPiA+ID4gPiA+ID4gICNkZWZpbmUgS0NPVl9FTkFCTEUg ICAgICAgICAgICAgICAgICAgIF9JTygnYycsIDEwMCkNCj4gPiA+ID4gPiA+ICAjZGVmaW5lIEtD T1ZfRElTQUJMRSAgICAgICAgICAgICAgICAgICBfSU8oJ2MnLCAxMDEpDQo+ID4gPiA+ID4gPiAg I2RlZmluZSBLQ09WX1JFTU9URV9FTkFCTEUgICAgICAgICAgICAgX0lPVygnYycsIDEwMiwgc3Ry dWN0IGtjb3ZfcmVtb3RlX2FyZykNCj4gPiA+ID4gPiA+ICsjZGVmaW5lIEtDT1ZfUENfUkFOR0Ug ICAgICAgICAgICAgICAgICBfSU9XKCdjJywgMTAzLCBzdHJ1Y3Qga2Nvdl9wY19yYW5nZSkNCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgZW51bSB7DQo+ID4gPiA+ID4gPiAgICAgICAgIC8qDQo+ ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEva2VybmVsL2tjb3YuYyBiL2tlcm5lbC9rY292LmMgaW5k ZXggDQo+ID4gPiA+ID4gPiAzNmNhNjQwLi41OTU1MDQ1MA0KPiA+ID4gPiA+ID4gMTAwNjQ0DQo+ ID4gPiA+ID4gPiAtLS0gYS9rZXJuZWwva2Nvdi5jDQo+ID4gPiA+ID4gPiArKysgYi9rZXJuZWwv a2Nvdi5jDQo+ID4gPiA+ID4gPiBAQCAtMzYsNiArMzYsNyBAQA0KPiA+ID4gPiA+ID4gICAqICAt IGluaXRpYWwgc3RhdGUgYWZ0ZXIgb3BlbigpDQo+ID4gPiA+ID4gPiAgICogIC0gdGhlbiB0aGVy ZSBtdXN0IGJlIGEgc2luZ2xlIGlvY3RsKEtDT1ZfSU5JVF9UUkFDRSkgY2FsbA0KPiA+ID4gPiA+ ID4gICAqICAtIHRoZW4sIG1tYXAoKSBjYWxsIChzZXZlcmFsIGNhbGxzIGFyZSBhbGxvd2VkIGJ1 dCBub3QgDQo+ID4gPiA+ID4gPiB1c2VmdWwpDQo+ID4gPiA+ID4gPiArICogIC0gdGhlbiwgb3B0 aW9uYWwgdG8gc2V0IHRyYWNlIHBjIHJhbmdlDQo+ID4gPiA+ID4gPiAgICogIC0gdGhlbiwgaW9j dGwoS0NPVl9FTkFCTEUsIGFyZyksIHdoZXJlIGFyZyBpcw0KPiA+ID4gPiA+ID4gICAqICAgICBL Q09WX1RSQUNFX1BDIC0gdG8gdHJhY2Ugb25seSB0aGUgUENzDQo+ID4gPiA+ID4gPiAgICogICAg IG9yDQo+ID4gPiA+ID4gPiBAQCAtNjksNiArNzAsOCBAQCBzdHJ1Y3Qga2NvdiB7DQo+ID4gPiA+ ID4gPiAgICAgICAgICAqIGtjb3ZfcmVtb3RlX3N0b3AoKSwgc2VlIHRoZSBjb21tZW50IHRoZXJl Lg0KPiA+ID4gPiA+ID4gICAgICAgICAgKi8NCj4gPiA+ID4gPiA+ICAgICAgICAgaW50ICAgICAg ICAgICAgICAgICAgICAgc2VxdWVuY2U7DQo+ID4gPiA+ID4gPiArICAgICAgIC8qIHUzMiBUcmFj ZSBQQyByYW5nZSBmcm9tIHN0YXJ0IHRvIGVuZC4gKi8NCj4gPiA+ID4gPiA+ICsgICAgICAgc3Ry dWN0IGtjb3ZfcGNfcmFuZ2UgICAgcGNfcmFuZ2U7DQo+ID4gPiA+ID4gPiAgfTsNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAgc3RydWN0IGtjb3ZfcmVtb3RlX2FyZWEgew0KPiA+ID4gPiA+ID4g QEAgLTE5Miw2ICsxOTUsNyBAQCBzdGF0aWMgbm90cmFjZSB1bnNpZ25lZCBsb25nIA0KPiA+ID4g PiA+ID4gY2Fub25pY2FsaXplX2lwKHVuc2lnbmVkIGxvbmcgaXApICB2b2lkIG5vdHJhY2UNCj4g PiA+ID4gPiA+IF9fc2FuaXRpemVyX2Nvdl90cmFjZV9wYyh2b2lkKSAgew0KPiA+ID4gPiA+ID4g ICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQ7DQo+ID4gPiA+ID4gPiArICAgICAgIHN0cnVj dCBrY292X3BjX3JhbmdlIHBjX3JhbmdlOw0KPiA+ID4gPiA+ID4gICAgICAgICB1bnNpZ25lZCBs b25nICphcmVhOw0KPiA+ID4gPiA+ID4gICAgICAgICB1bnNpZ25lZCBsb25nIGlwID0gY2Fub25p Y2FsaXplX2lwKF9SRVRfSVBfKTsNCj4gPiA+ID4gPiA+ICAgICAgICAgdW5zaWduZWQgbG9uZyBw b3M7DQo+ID4gPiA+ID4gPiBAQCAtMTk5LDYgKzIwMywxMSBAQCB2b2lkIG5vdHJhY2UgX19zYW5p dGl6ZXJfY292X3RyYWNlX3BjKHZvaWQpDQo+ID4gPiA+ID4gPiAgICAgICAgIHQgPSBjdXJyZW50 Ow0KPiA+ID4gPiA+ID4gICAgICAgICBpZiAoIWNoZWNrX2tjb3ZfbW9kZShLQ09WX01PREVfVFJB Q0VfUEMsIHQpKQ0KPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiA+ID4g PiA+ICsgICAgICAgcGNfcmFuZ2UgPSB0LT5rY292LT5wY19yYW5nZTsNCj4gPiA+ID4gPiA+ICsg ICAgICAgaWYgKHBjX3JhbmdlLnN0YXJ0IDwgcGNfcmFuZ2UuZW5kICYmDQo+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgKChpcCAmIFBDX1JBTkdFX01BU0spIDwgcGNfcmFuZ2Uuc3RhcnQgfHwN Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAoaXAgJiBQQ19SQU5HRV9NQVNLKSA+IHBjX3Jh bmdlLmVuZCkpDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ICAgICAgICAgYXJlYSA9IHQtPmtjb3ZfYXJlYTsNCj4gPiA+ID4gPiA+ ICAgICAgICAgLyogVGhlIGZpcnN0IDY0LWJpdCB3b3JkIGlzIHRoZSBudW1iZXIgb2Ygc3Vic2Vx dWVudCANCj4gPiA+ID4gPiA+IFBDcy4gKi8gQEAgLTU2OCw2ICs1NzcsNyBAQCBzdGF0aWMgaW50 IGtjb3ZfaW9jdGxfbG9ja2VkKHN0cnVjdCBrY292ICprY292LCB1bnNpZ25lZCBpbnQgY21kLA0K PiA+ID4gPiA+ID4gICAgICAgICBpbnQgbW9kZSwgaTsNCj4gPiA+ID4gPiA+ICAgICAgICAgc3Ry dWN0IGtjb3ZfcmVtb3RlX2FyZyAqcmVtb3RlX2FyZzsNCj4gPiA+ID4gPiA+ICAgICAgICAgc3Ry dWN0IGtjb3ZfcmVtb3RlICpyZW1vdGU7DQo+ID4gPiA+ID4gPiArICAgICAgIHN0cnVjdCBrY292 X3BjX3JhbmdlICpwY19yYW5nZTsNCj4gPiA+ID4gPiA+ICAgICAgICAgdW5zaWduZWQgbG9uZyBm bGFnczsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgIHN3aXRjaCAoY21kKSB7DQo+ ID4gPiA+ID4gPiBAQCAtNTg5LDYgKzU5OSwxNCBAQCBzdGF0aWMgaW50IGtjb3ZfaW9jdGxfbG9j a2VkKHN0cnVjdCBrY292ICprY292LCB1bnNpZ25lZCBpbnQgY21kLA0KPiA+ID4gPiA+ID4gICAg ICAgICAgICAgICAgIGtjb3YtPnNpemUgPSBzaXplOw0KPiA+ID4gPiA+ID4gICAgICAgICAgICAg ICAgIGtjb3YtPm1vZGUgPSBLQ09WX01PREVfSU5JVDsNCj4gPiA+ID4gPiA+ICAgICAgICAgICAg ICAgICByZXR1cm4gMDsNCj4gPiA+ID4gPiA+ICsgICAgICAgY2FzZSBLQ09WX1BDX1JBTkdFOg0K PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC8qIExpbWl0IHRyYWNlIHBjIHJhbmdlLiAqLw0K PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHBjX3JhbmdlID0gKHN0cnVjdCBrY292X3BjX3Jh bmdlICopYXJnOw0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGlmIChjb3B5X2Zyb21fdXNl cigma2Nvdi0+cGNfcmFuZ2UsIHBjX3JhbmdlLCBzaXplb2Yoa2Nvdi0+cGNfcmFuZ2UpKSkNCj4g PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgIGlmIChrY292LT5wY19yYW5nZS5zdGFydCA+PSBrY292LT5w Y19yYW5nZS5lbmQpDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiA+ID4g PiA+ICAgICAgICAgY2FzZSBLQ09WX0VOQUJMRToNCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAg ICAvKg0KPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAqIEVuYWJsZSBjb3ZlcmFnZSBmb3Ig dGhlIGN1cnJlbnQgdGFzay4NCj4gPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gPiAyLjcuNA0K