From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9DFAEC47404 for ; Wed, 9 Oct 2019 03:31:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4AFD820B7C for ; Wed, 9 Oct 2019 03:31:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=fb.com header.i=@fb.com header.b="QqtdIsry"; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com header.b="ghW0vCte" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729658AbfJIDbY (ORCPT ); Tue, 8 Oct 2019 23:31:24 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:17098 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726490AbfJIDbY (ORCPT ); Tue, 8 Oct 2019 23:31:24 -0400 Received: from pps.filterd (m0148460.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x993T6XZ012430; Tue, 8 Oct 2019 20:30:59 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=XwuIVXYI+/qwPJGDBtkPbIsmTSxgxoJSO7ZbH5verLc=; b=QqtdIsryGmhNJ7XXZhP1kcttpOQ7BLHFuB2TKe/UTNgQfBGYySeKC4J7klbdm0TJbRmC R0wmRaWtS9EJ/K8zWQ+YDNK/rdH8Cdzay8Av0ms5Nmu5INB22WR/CzAyIRLCLk1nFatI tE2q/A0NfdO9GVahALIB13k6IUe73JEblcQ= Received: from maileast.thefacebook.com ([163.114.130.16]) by mx0a-00082601.pphosted.com with ESMTP id 2vgvbyuwnw-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 08 Oct 2019 20:30:59 -0700 Received: from ash-exopmbx201.TheFacebook.com (2620:10d:c0a8:83::8) by ash-exhub204.TheFacebook.com (2620:10d:c0a8:83::4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 8 Oct 2019 20:30:57 -0700 Received: from ash-exhub202.TheFacebook.com (2620:10d:c0a8:83::6) by ash-exopmbx201.TheFacebook.com (2620:10d:c0a8:83::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 8 Oct 2019 20:30:56 -0700 Received: from NAM01-BY2-obe.outbound.protection.outlook.com (100.104.31.183) by o365-in.thefacebook.com (100.104.36.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 8 Oct 2019 20:30:56 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BGNMJsfEBlJ70QaQl+OWA28np7uZi27KiRR2CSgD1mwRxunM+2hxQjL9xJx3zUIHr2w6EMg9+BSR8LZBeXC95ruYJTzBAsrmTmFzUlURHM63xW2BSnZkHJ1QqLiKyu71xf1gf3hGoduFqHXVu6N7UB8QBNqy8+ctHHL0GeL/63N81sXepQyJDmIsrL/ExOzXucm/ZjSBCzgear2G5nnqevjIvQmF5JrND+BOlroSR9chk5EYAvrCtGxW+0d1eHUjkkVhHNpKIH9Lc5NE1hkn1JJmnb9JdrnH97wqmSLCK1nCNujXqKoWn9TyCauXwpnjrV2wP+95EvZC2mPQtGZoBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XwuIVXYI+/qwPJGDBtkPbIsmTSxgxoJSO7ZbH5verLc=; b=a55PwvjI0UCpm1UDfUzXERTDB18kCnmB+kZVtNZSzfRTjUosVqGYvQoXHNeOpyTwM4/G5Ch3GsDH6g4OAxEcVK9MfcNdI4KSJUXjNNPGfwHtA/p+FHBGevzj1Onryj66ItQlwFTaf3CLA0yJOZMVpn6QfzVKyPn16qPINoqgafz7gkjZGT3PE37cV49n1vhGUfmcFMKLuvGfVt4bIDLFM4i0FtHPhY6xK7/tkYQgug4BndI6SL+uc9fi6Nh5YSdPSzHsX0iwkzr77o0aRnfAsNXSJypE6fFJQ0wuZbG56QSwcUnFdIUWfLCToV1xzQF82DS45hZWJwy8n68Xa+bsng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector2-fb-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XwuIVXYI+/qwPJGDBtkPbIsmTSxgxoJSO7ZbH5verLc=; b=ghW0vCte2JyjFVHnLkSu/RYkwUz9IAyJ+lSwRdysFjxxcJ+XDfR/mT0X7BG6MaQ++nCcw2X8xY7iv23mIsaAPbGgwA6oXoD7hmFdMMeh5c/jQeA/2DjEvntycb0/B1EnZ1TIQEyOWKhlrz1PPvC9SaFoAwSdBDOcGrWEQAJQBko= Received: from BYAPR15MB2501.namprd15.prod.outlook.com (52.135.196.11) by BYASPR01MB0057.namprd15.prod.outlook.com (20.179.90.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.16; Wed, 9 Oct 2019 03:30:55 +0000 Received: from BYAPR15MB2501.namprd15.prod.outlook.com ([fe80::c13d:be57:b216:bfa0]) by BYAPR15MB2501.namprd15.prod.outlook.com ([fe80::c13d:be57:b216:bfa0%5]) with mapi id 15.20.2327.026; Wed, 9 Oct 2019 03:30:55 +0000 From: Alexei Starovoitov To: Andrii Nakryiko , Alexei Starovoitov CC: "David S. Miller" , Daniel Borkmann , "x86@kernel.org" , Networking , bpf , Kernel Team Subject: Re: [PATCH bpf-next 05/10] bpf: implement accurate raw_tp context access via BTF Thread-Topic: [PATCH bpf-next 05/10] bpf: implement accurate raw_tp context access via BTF Thread-Index: AQHVezo5sKYubhk6UEK1EwMR6IEna6dP6i6AgAHDRAA= Date: Wed, 9 Oct 2019 03:30:55 +0000 Message-ID: References: <20191005050314.1114330-1-ast@kernel.org> <20191005050314.1114330-6-ast@kernel.org> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: MWHPR0201CA0022.namprd02.prod.outlook.com (2603:10b6:301:74::35) To BYAPR15MB2501.namprd15.prod.outlook.com (2603:10b6:a02:88::11) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [2620:10d:c090:180::851e] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 263e81c9-6ae6-4d86-42f3-08d74c6917a3 x-ms-traffictypediagnostic: BYASPR01MB0057: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 018577E36E x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(346002)(136003)(366004)(376002)(39860400002)(396003)(189003)(199004)(446003)(46003)(6246003)(36756003)(7736002)(4326008)(229853002)(81166006)(8936002)(81156014)(486006)(8676002)(11346002)(31696002)(86362001)(2616005)(476003)(25786009)(6436002)(6486002)(305945005)(6512007)(478600001)(64756008)(66556008)(66476007)(66446008)(5660300002)(110136005)(14454004)(66946007)(186003)(2906002)(5024004)(14444005)(256004)(30864003)(316002)(52116002)(76176011)(6116002)(102836004)(386003)(53546011)(99286004)(6506007)(71200400001)(71190400001)(31686004)(54906003);DIR:OUT;SFP:1102;SCL:1;SRVR:BYASPR01MB0057;H:BYAPR15MB2501.namprd15.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NHx0BDnohDVJGd2sQx0Wo1yxhQX8z90FHj7fBiwOpEKUU2ydFuDakKAIMrYUTaekW0wsFo0jHDysbLyxWyr63L+TS+4DNG19gXs04AWCJc1qG6rzIij13kP+YCX2FprSNBJMWrVWO08n3Jy77JxB7+uxTmDzTKDbXJIHSAzhfn2SBSVRRrBTBVw/bLw2WDldYthG6Rqp3N6O5I8hbzN6T6WeDOGyT4A7Qw/4MZd5UbrWSSOotyFmvNurjSZ6SmYb+HRg7Ec2jNvaJiZ4CsnWbjFP0HvAlFJY1l3p012ysZtfPj+hPctLX6XEk+LFTVrXcYqEchJsIJ1EEaBKy1sXfTxMW8JzStAgqUTDY1Nx9V4B2+ECtpCYuebUE6Ir1iS+VnCRXniiIbWOe7sgepgdFZmHziBMN9sBl19faqzA180= Content-Type: text/plain; charset="utf-8" Content-ID: <1DAA721D4696F54F97B1C139D40B6B43@namprd15.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 263e81c9-6ae6-4d86-42f3-08d74c6917a3 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2019 03:30:55.0235 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: otTjpTrHWZ55+GVshzqzvZxzE6RTioV8AAPiXPJwNr9NmkoZokuqDex1cQ3jCtpP X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYASPR01MB0057 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-09_01:2019-10-08,2019-10-09 signatures=0 X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 impostorscore=0 spamscore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 suspectscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1908290000 definitions=main-1910090030 X-FB-Internal: deliver Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org T24gMTAvNy8xOSA1OjM1IFBNLCBBbmRyaWkgTmFrcnlpa28gd3JvdGU6DQo+IE9uIEZyaSwgT2N0 IDQsIDIwMTkgYXQgMTA6MDQgUE0gQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4g d3JvdGU6DQo+Pg0KPj4gbGliYnBmIGFuYWx5emVzIGJwZiBDIHByb2dyYW0sIHNlYXJjaGVzIGlu LWtlcm5lbCBCVEYgZm9yIGdpdmVuIHR5cGUgbmFtZQ0KPj4gYW5kIHN0b3JlcyBpdCBpbnRvIGV4 cGVjdGVkX2F0dGFjaF90eXBlLg0KPj4gVGhlIGtlcm5lbCB2ZXJpZmllciBleHBlY3RzIHRoaXMg YnRmX2lkIHRvIHBvaW50IHRvIHNvbWV0aGluZyBsaWtlOg0KPj4gdHlwZWRlZiB2b2lkICgqYnRm X3RyYWNlX2tmcmVlX3NrYikodm9pZCAqLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB2b2lkICpsb2Mp Ow0KPj4gd2hpY2ggcmVwcmVzZW50cyBzaWduYXR1cmUgb2YgcmF3X3RyYWNlcG9pbnQgImtmcmVl X3NrYiIuDQo+Pg0KPj4gVGhlbiBidGZfY3R4X2FjY2VzcygpIG1hdGNoZXMgY3R4KzAgYWNjZXNz IGluIGJwZiBwcm9ncmFtIHdpdGggJ3NrYicNCj4+IGFuZCAnY3R4KzgnIGFjY2VzcyB3aXRoICds b2MnIGFyZ3VtZW50cyBvZiAia2ZyZWVfc2tiIiB0cmFjZXBvaW50Lg0KPj4gSW4gZmlyc3QgY2Fz ZSBpdCBwYXNzZXMgYnRmX2lkIG9mICdzdHJ1Y3Qgc2tfYnVmZiAqJyBiYWNrIHRvIHRoZSB2ZXJp ZmllciBjb3JlDQo+PiBhbmQgJ3ZvaWQgKicgaW4gc2Vjb25kIGNhc2UuDQo+Pg0KPj4gVGhlbiB0 aGUgdmVyaWZpZXIgdHJhY2tzIFBUUl9UT19CVEZfSUQgYXMgYW55IG90aGVyIHBvaW50ZXIgdHlw ZS4NCj4+IExpa2UgUFRSX1RPX1NPQ0tFVCBwb2ludHMgdG8gJ3N0cnVjdCBicGZfc29jaycsDQo+ PiBQVFJfVE9fVENQX1NPQ0sgcG9pbnRzIHRvICdzdHJ1Y3QgYnBmX3RjcF9zb2NrJywgYW5kIHNv IG9uLg0KPj4gUFRSX1RPX0JURl9JRCBwb2ludHMgdG8gaW4ta2VybmVsIHN0cnVjdHMuDQo+PiBJ ZiAxMjM0IGlzIGJ0Zl9pZCBvZiAnc3RydWN0IHNrX2J1ZmYnIGluIHZtbGludXgncyBCVEYNCj4+ IHRoZW4gUFRSX1RPX0JURl9JRCMxMjM0IHBvaW50cyB0byBvbmUgb2YgaW4ga2VybmVsIHNrYnMu DQo+Pg0KPj4gV2hlbiBQVFJfVE9fQlRGX0lEIzEyMzQgaXMgZGVyZWZlcmVuY2VkIChsaWtlIHIy ID0gKih1NjQgKilyMSArIDMyKQ0KPj4gdGhlIGJ0Zl9zdHJ1Y3RfYWNjZXNzKCkgY2hlY2tzIHdo aWNoIGZpZWxkIG9mICdzdHJ1Y3Qgc2tfYnVmZicgaXMNCj4+IGF0IG9mZnNldCAzMi4gQ2hlY2tz IHRoYXQgc2l6ZSBvZiBhY2Nlc3MgbWF0Y2hlcyB0eXBlIGRlZmluaXRpb24NCj4+IG9mIHRoZSBm aWVsZCBhbmQgY29udGludWVzIHRvIHRyYWNrIHRoZSBkZXJlZmVyZW5jZWQgdHlwZS4NCj4+IElm IHRoYXQgZmllbGQgd2FzIGEgcG9pbnRlciB0byAnc3RydWN0IG5ldF9kZXZpY2UnIHRoZSByMidz IHR5cGUNCj4+IHdpbGwgYmUgUFRSX1RPX0JURl9JRCM0NTYuIFdoZXJlIDQ1NiBpcyBidGZfaWQg b2YgJ3N0cnVjdCBuZXRfZGV2aWNlJw0KPj4gaW4gdm1saW51eCdzIEJURi4NCj4+DQo+PiBTdWNo IHZlcmlmaWVyIGFubGF5c2lzIHByZXZlbnRzICJjaGVhdGluZyIgaW4gQlBGIEMgcHJvZ3JhbS4N Cj4gDQo+IHR5cG86IGFuYWx5c2lzDQoNCkkgZGlkIHJhbiBzcGVsbGNoZWNrLCBidXQgY291bGRu J3QgaW50ZXJwcmV0IGl0cyBpbnB1dCA6KQ0KDQo+IA0KPj4gVGhlIHByb2dyYW0gY2Fubm90IGNh c3QgYXJiaXRyYXJ5IHBvaW50ZXIgdG8gJ3N0cnVjdCBza19idWZmIConDQo+PiBhbmQgYWNjZXNz IGl0LiBDIGNvbXBpbGVyIHdvdWxkIGFsbG93IHR5cGUgY2FzdCwgb2YgY291cnNlLA0KPj4gYnV0 IHRoZSB2ZXJpZmllciB3aWxsIG5vdGljZSB0eXBlIG1pc21hdGNoIGJhc2VkIG9uIEJQRiBhc3Nl bWJseQ0KPj4gYW5kIGluLWtlcm5lbCBCVEYuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogQWxleGVp IFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4NCj4+IC0tLQ0KPj4gICBpbmNsdWRlL2xpbnV4 L2JwZi5oICAgICAgICAgIHwgIDE1ICsrLQ0KPj4gICBpbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmll ci5oIHwgICAyICsNCj4+ICAga2VybmVsL2JwZi9idGYuYyAgICAgICAgICAgICB8IDE3OSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gICBrZXJuZWwvYnBmL3ZlcmlmaWVy LmMgICAgICAgIHwgIDY5ICsrKysrKysrKysrKystDQo+PiAgIGtlcm5lbC90cmFjZS9icGZfdHJh Y2UuYyAgICAgfCAgIDIgKy0NCj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCAyNjIgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYu aCBiL2luY2x1ZGUvbGludXgvYnBmLmgNCj4+IGluZGV4IDViOWQyMjMzODYwNi4uMmRjM2E3YzMx M2U5IDEwMDY0NA0KPj4gLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaA0KPj4gKysrIGIvaW5jbHVk ZS9saW51eC9icGYuaA0KPj4gQEAgLTI4MSw2ICsyODEsNyBAQCBlbnVtIGJwZl9yZWdfdHlwZSB7 DQo+PiAgICAgICAgICBQVFJfVE9fVENQX1NPQ0tfT1JfTlVMTCwgLyogcmVnIHBvaW50cyB0byBz dHJ1Y3QgdGNwX3NvY2sgb3IgTlVMTCAqLw0KPj4gICAgICAgICAgUFRSX1RPX1RQX0JVRkZFUiwg ICAgICAgIC8qIHJlZyBwb2ludHMgdG8gYSB3cml0YWJsZSByYXcgdHAncyBidWZmZXIgKi8NCj4+ ICAgICAgICAgIFBUUl9UT19YRFBfU09DSywgICAgICAgICAvKiByZWcgcG9pbnRzIHRvIHN0cnVj dCB4ZHBfc29jayAqLw0KPj4gKyAgICAgICBQVFJfVE9fQlRGX0lELA0KPiANCj4gY29tbWVudHMg Zm9yIGNvbnNpc3RlbmN5PyA7KQ0KDQpmaXhlZA0KDQo+PiAgIH07DQo+Pg0KPj4gICAvKiBUaGUg aW5mb3JtYXRpb24gcGFzc2VkIGZyb20gcHJvZy1zcGVjaWZpYyAqX2lzX3ZhbGlkX2FjY2Vzcw0K Pj4gQEAgLTI4OCw3ICsyODksMTEgQEAgZW51bSBicGZfcmVnX3R5cGUgew0KPj4gICAgKi8NCj4+ ICAgc3RydWN0IGJwZl9pbnNuX2FjY2Vzc19hdXggew0KPj4gICAgICAgICAgZW51bSBicGZfcmVn X3R5cGUgcmVnX3R5cGU7DQo+PiAtICAgICAgIGludCBjdHhfZmllbGRfc2l6ZTsNCj4+ICsgICAg ICAgdW5pb24gew0KPj4gKyAgICAgICAgICAgICAgIGludCBjdHhfZmllbGRfc2l6ZTsNCj4+ICsg ICAgICAgICAgICAgICB1MzIgYnRmX2lkOw0KPj4gKyAgICAgICB9Ow0KPj4gKyAgICAgICBzdHJ1 Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52OyAvKiBmb3IgdmVyYm9zZSBsb2dzICovDQo+PiAgIH07 DQo+Pg0KPj4gICBzdGF0aWMgaW5saW5lIHZvaWQNCj4+IEBAIC03NDcsNiArNzUyLDE0IEBAIGlu dCBicGZfcHJvZ190ZXN0X3J1bl9za2Ioc3RydWN0IGJwZl9wcm9nICpwcm9nLCBjb25zdCB1bmlv biBicGZfYXR0ciAqa2F0dHIsDQo+PiAgIGludCBicGZfcHJvZ190ZXN0X3J1bl9mbG93X2Rpc3Nl Y3RvcihzdHJ1Y3QgYnBmX3Byb2cgKnByb2csDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHVuaW9uIGJwZl9hdHRyICprYXR0ciwNCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gYnBmX2F0dHIgX191c2VyICp1YXR0cik7 DQo+PiArYm9vbCBidGZfY3R4X2FjY2VzcyhpbnQgb2ZmLCBpbnQgc2l6ZSwgZW51bSBicGZfYWNj ZXNzX3R5cGUgdHlwZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJwZl9w cm9nICpwcm9nLA0KPj4gKyAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYnBmX2luc25fYWNjZXNz X2F1eCAqaW5mbyk7DQo+PiAraW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZp ZXJfZW52ICplbnYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJ0Zl90 eXBlICp0LCBpbnQgb2ZmLCBpbnQgc2l6ZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICBlbnVt IGJwZl9hY2Nlc3NfdHlwZSBhdHlwZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICB1MzIgKm5l eHRfYnRmX2lkKTsNCj4+ICsNCj4+ICAgI2Vsc2UgLyogIUNPTkZJR19CUEZfU1lTQ0FMTCAqLw0K Pj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQp DQo+PiAgIHsNCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oIGIv aW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaA0KPj4gaW5kZXggNDMyYmE4OTc3YTBhLi5lMjE3 ODJmNDljNDUgMTAwNjQ0DQo+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oDQo+ PiArKysgYi9pbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oDQo+PiBAQCAtNTIsNiArNTIsOCBA QCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSB7DQo+PiAgICAgICAgICAgICAgICAgICAqLw0KPj4gICAg ICAgICAgICAgICAgICBzdHJ1Y3QgYnBmX21hcCAqbWFwX3B0cjsNCj4+DQo+PiArICAgICAgICAg ICAgICAgdTMyIGJ0Zl9pZDsgLyogZm9yIFBUUl9UT19CVEZfSUQgKi8NCj4+ICsNCj4+ICAgICAg ICAgICAgICAgICAgLyogTWF4IHNpemUgZnJvbSBhbnkgb2YgdGhlIGFib3ZlLiAqLw0KPj4gICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHJhdzsNCj4+ICAgICAgICAgIH07DQo+PiBkaWZm IC0tZ2l0IGEva2VybmVsL2JwZi9idGYuYyBiL2tlcm5lbC9icGYvYnRmLmMNCj4+IGluZGV4IDg0 OGY5ZDRiOWQ3ZS4uNjFmZjhhNTRjYTIyIDEwMDY0NA0KPj4gLS0tIGEva2VybmVsL2JwZi9idGYu Yw0KPj4gKysrIGIva2VybmVsL2JwZi9idGYuYw0KPj4gQEAgLTM0MzMsNiArMzQzMywxODUgQEAg c3RydWN0IGJ0ZiAqYnRmX3BhcnNlX3ZtbGludXgodm9pZCkNCj4+ICAgICAgICAgIHJldHVybiBF UlJfUFRSKGVycik7DQo+PiAgIH0NCj4+DQo+PiArZXh0ZXJuIHN0cnVjdCBidGYgKmJ0Zl92bWxp bnV4Ow0KPj4gKw0KPj4gK2Jvb2wgYnRmX2N0eF9hY2Nlc3MoaW50IG9mZiwgaW50IHNpemUsIGVu dW0gYnBmX2FjY2Vzc190eXBlIHR5cGUsDQo+PiArICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBicGZfcHJvZyAqcHJvZywNCj4+ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IGJwZl9p bnNuX2FjY2Vzc19hdXggKmluZm8pDQo+PiArew0KPj4gKyAgICAgICB1MzIgYnRmX2lkID0gcHJv Zy0+ZXhwZWN0ZWRfYXR0YWNoX3R5cGU7DQo+PiArICAgICAgIGNvbnN0IHN0cnVjdCBidGZfcGFy YW0gKmFyZ3M7DQo+PiArICAgICAgIGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdDsNCj4+ICsgICAg ICAgY29uc3QgY2hhciBwcmVmaXhbXSA9ICJidGZfdHJhY2VfIjsNCj4+ICsgICAgICAgY29uc3Qg Y2hhciAqdG5hbWU7DQo+PiArICAgICAgIHUzMiBucl9hcmdzOw0KPj4gKw0KPj4gKyAgICAgICBp ZiAoIWJ0Zl9pZCkNCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+ICsNCj4+ICsg ICAgICAgaWYgKElTX0VSUihidGZfdm1saW51eCkpIHsNCj4+ICsgICAgICAgICAgICAgICBicGZf dmVyaWZpZXJfbG9nX3dyaXRlKGluZm8tPmVudiwgImJ0Zl92bWxpbnV4IGlzIG1hbGZvcm1lZFxu Iik7DQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPj4gKyAgICAgICB9DQo+PiAr DQo+PiArICAgICAgIHQgPSBidGZfdHlwZV9ieV9pZChidGZfdm1saW51eCwgYnRmX2lkKTsNCj4+ ICsgICAgICAgaWYgKCF0IHx8IEJURl9JTkZPX0tJTkQodC0+aW5mbykgIT0gQlRGX0tJTkRfVFlQ RURFRikgew0KPj4gKyAgICAgICAgICAgICAgIGJwZl92ZXJpZmllcl9sb2dfd3JpdGUoaW5mby0+ ZW52LCAiYnRmX2lkIGlzIGludmFsaWRcbiIpOw0KPj4gKyAgICAgICAgICAgICAgIHJldHVybiBm YWxzZTsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICB0bmFtZSA9IF9fYnRmX25hbWVf Ynlfb2Zmc2V0KGJ0Zl92bWxpbnV4LCB0LT5uYW1lX29mZik7DQo+PiArICAgICAgIGlmIChzdHJu Y21wKHByZWZpeCwgdG5hbWUsIHNpemVvZihwcmVmaXgpIC0gMSkpIHsNCj4+ICsgICAgICAgICAg ICAgICBicGZfdmVyaWZpZXJfbG9nX3dyaXRlKGluZm8tPmVudiwNCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJidGZfaWQgcG9pbnRzIHRvIHdyb25nIHR5cGUgbmFt ZSAlc1xuIiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRuYW1l KTsNCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+PiArICAgICAgIH0NCj4+ICsg ICAgICAgdG5hbWUgKz0gc2l6ZW9mKHByZWZpeCkgLSAxOw0KPj4gKw0KPj4gKyAgICAgICB0ID0g YnRmX3R5cGVfYnlfaWQoYnRmX3ZtbGludXgsIHQtPnR5cGUpOw0KPj4gKyAgICAgICBpZiAoIWJ0 Zl90eXBlX2lzX3B0cih0KSkNCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+PiAr ICAgICAgIHQgPSBidGZfdHlwZV9ieV9pZChidGZfdm1saW51eCwgdC0+dHlwZSk7DQo+PiArICAg ICAgIGlmICghYnRmX3R5cGVfaXNfZnVuY19wcm90byh0KSkNCj4+ICsgICAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7DQo+IA0KPiBBbGwgbmVnYXRpdmUgY2FzZXMgYnV0IHRoZXNlIHR3byBoYXZl IGhlbHBmdWwgbG9nIG1lc3NhZ2VzLCBwbGVhc2UgYWRkDQo+IHR3byBtb3JlIGZvciB0aGVzZS4N Cg0Kbm8uIG5vdCBoZXJlLiBUaGlzIGlzIGEgcGFydCBvZiB0eXBlZGVmIGNvbnN0cnVjdGlvbiBm cm9tIHBhdGNoIDEuDQpJdCBjYW5ub3QgYmUgYW55dGhpbmcgZWxzZS4gSWYgYnRmX2lkIHBvaW50 cyB0byB0eXBlZGVmIGFuZA0KdHlwZWRlZiBoYXMgYnRmX3RyYWNlXyBwcmVmaXggaXQgaGFzIHRv IGJlIGNvcnJlY3QuDQpBYm92ZSB0d28gY2hlY2tzIGFyZSBjaGVja2luZyBzYW5pdHkgb2Yga2Vy bmVsIGJ1aWxkLg0KDQo+IA0KPj4gKw0KPj4gKyAgICAgICBhcmdzID0gKGNvbnN0IHN0cnVjdCBi dGZfcGFyYW0gKikodCArIDEpOw0KPiANCj4gSU1PLCBkb2luZyBhcmdzKysgKGFuZCBsZWF2aW5n IGNvbW1lbnQgd2h5KSBoZXJlIGluc3RlYWQgb2YgYWRqdXN0aW5nDQo+IGBvZmYvOCArIDFgIGJl bG93IGlzIGNsZWFuZXIuDQoNCkkgdHJpZWQgeW91ciBzdWdnZXN0aW9uIGFuZCBpdCBkb2Vzbid0 IGxvb2sgYW55IGJldHRlciwgYnV0IHdoeSBub3QuDQpTaW5jZSBJJ3ZlIGNvZGVkIGl0IGFueXdh eS4NCg0KPj4gKyAgICAgICAvKiBza2lwIGZpcnN0ICd2b2lkICpfX2RhdGEnIGFyZ3VtZW50IGlu IGJ0Zl90cmFjZV8qICovDQo+PiArICAgICAgIG5yX2FyZ3MgPSBidGZfdHlwZV92bGVuKHQpIC0g MTsNCj4+ICsgICAgICAgaWYgKG9mZiA+PSBucl9hcmdzICogOCkgew0KPiANCj4gTG9va3MgbGlr ZSB5b3UgZm9yZ290IHRvIGNoZWNrIHRoYXQgYG9mZiAlIDggPT0gMGA/DQoNCmdyZWF0IGNhdGNo LiB5ZXMuIGZpeGVkDQoNCj4+ICsgICAgICAgICAgICAgICBicGZfdmVyaWZpZXJfbG9nX3dyaXRl KGluZm8tPmVudiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy YXdfdHAgJyVzJyBkb2Vzbid0IGhhdmUgJWQtdGggYXJndW1lbnRcbiIsDQo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bmFtZSwgb2ZmIC8gOCk7DQo+PiArICAgICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPj4gKyAgICAgICB9DQo+PiArDQo+PiArICAgICAgIC8q IHJhdyB0cCBhcmcgaXMgb2ZmIC8gOCwgYnV0IHR5cGVkZWYgaGFzIGV4dHJhICd2b2lkIConLCBo ZW5jZSArMSAqLw0KPj4gKyAgICAgICB0ID0gYnRmX3R5cGVfYnlfaWQoYnRmX3ZtbGludXgsIGFy Z3Nbb2ZmIC8gOCArIDFdLnR5cGUpOw0KPj4gKyAgICAgICBpZiAoYnRmX3R5cGVfaXNfaW50KHQp KQ0KPiANCj4gdGhpcyBpcyB0b28gbGltaXRpbmcsIHlvdSBuZWVkIHRvIHN0cmlwIGNvbnN0L3Zv bGF0aWxlL3Jlc3RyaWN0IGFuZA0KPiByZXNvbHZlIHR5cGVkZWYncyAoZS5nLiwgc2l6ZV90LCBf X3U2NCAtLSB0aGF0J3MgYWxsIHR5cGVkZWZzKS4NCg0KcmlnaHQuIGRvbmUuDQoNCj4gYWxzbyBw cm9iYWJseSB3YW50IHRvIGFsbG93IGVudW1zLg0KDQpldmVudHVhbGx5IHllcy4gSSBwcmVmZXIg dG8gd2FsayBmaXJzdC4NCg0KPiBidHcsIGF0b21pY190IGlzIGEgc3RydWN0LCBzbyBtaWdodCB3 YW50IHRvIGFsbG93IHVwIHRvIDggYnl0ZQ0KPiBzdHJ1Y3QvdW5pb25zIChwYXNzZWQgYnkgdmFs dWUpIHJlYWRzPyBtaWdodCBuZXZlciBoYXBwZW4gZm9yDQo+IHRyYWNlcG9pbnQsIG5vdCBzdXJl DQoNCm1heSBiZSBpbiB0aGUgZnV0dXJlLiB3YWxrIGZpcnN0Lg0KDQo+IA0KPj4gKyAgICAgICAg ICAgICAgIC8qIGFjY2Vzc2luZyBhIHNjYWxhciAqLw0KPj4gKyAgICAgICAgICAgICAgIHJldHVy biB0cnVlOw0KPj4gKyAgICAgICBpZiAoIWJ0Zl90eXBlX2lzX3B0cih0KSkgew0KPiANCj4gc2lt aWxhciB0byBhYm92ZSwgbW9kaWZpZXJzIGFuZCB0eXBlZGVmIHJlc29sdXRpb24gaGFzIHRvIGhh cHBlbiBmaXJzdA0KDQpkb25lLg0KDQo+PiArICAgICAgICAgICAgICAgYnBmX3ZlcmlmaWVyX2xv Z193cml0ZShpbmZvLT5lbnYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAicmF3X3RwICclcycgYXJnJWQgJyVzJyBoYXMgdHlwZSAlcy4gT25seSBwb2ludGVyIGFj Y2VzcyBpcyBhbGxvd2VkXG4iLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdG5hbWUsIG9mZiAvIDgsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBfX2J0Zl9uYW1lX2J5X29mZnNldChidGZfdm1saW51eCwgdC0+bmFtZV9vZmYpLA0K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRmX2tpbmRfc3RyW0JU Rl9JTkZPX0tJTkQodC0+aW5mbyldKTsNCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 DQo+PiArICAgICAgIH0NCj4+ICsgICAgICAgaWYgKHQtPnR5cGUgPT0gMCkNCj4+ICsgICAgICAg ICAgICAgICAvKiBUaGlzIGlzIGEgcG9pbnRlciB0byB2b2lkLg0KPj4gKyAgICAgICAgICAgICAg ICAqIEl0IGlzIHRoZSBzYW1lIGFzIHNjYWxhciBmcm9tIHRoZSB2ZXJpZmllciBzYWZldHkgcG92 Lg0KPj4gKyAgICAgICAgICAgICAgICAqIE5vIGZ1cnRoZXIgcG9pbnRlciB3YWxraW5nIGlzIGFs bG93ZWQuDQo+PiArICAgICAgICAgICAgICAgICovDQo+PiArICAgICAgICAgICAgICAgcmV0dXJu IHRydWU7DQo+PiArDQo+PiArICAgICAgIC8qIHRoaXMgaXMgYSBwb2ludGVyIHRvIGFub3RoZXIg dHlwZSAqLw0KPj4gKyAgICAgICBpbmZvLT5yZWdfdHlwZSA9IFBUUl9UT19CVEZfSUQ7DQo+PiAr ICAgICAgIGluZm8tPmJ0Zl9pZCA9IHQtPnR5cGU7DQo+PiArDQo+PiArICAgICAgIHQgPSBidGZf dHlwZV9ieV9pZChidGZfdm1saW51eCwgdC0+dHlwZSk7DQo+PiArICAgICAgIGJwZl92ZXJpZmll cl9sb2dfd3JpdGUoaW5mby0+ZW52LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJyYXdfdHAgJyVzJyBhcmclZCBoYXMgYnRmX2lkICVkIHR5cGUgJXMgJyVzJ1xuIiwNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bmFtZSwgb2ZmIC8gOCwgaW5mby0+YnRmX2lk LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ0Zl9raW5kX3N0cltCVEZfSU5G T19LSU5EKHQtPmluZm8pXSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2J0 Zl9uYW1lX2J5X29mZnNldChidGZfdm1saW51eCwgdC0+bmFtZV9vZmYpKTsNCj4+ICsgICAgICAg cmV0dXJuIHRydWU7DQo+PiArfQ0KPj4gKw0KPj4gK2ludCBidGZfc3RydWN0X2FjY2VzcyhzdHJ1 Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBidGZfdHlwZSAqdCwgaW50IG9mZiwgaW50IHNpemUsDQo+PiArICAgICAgICAgICAg ICAgICAgICAgZW51bSBicGZfYWNjZXNzX3R5cGUgYXR5cGUsDQo+PiArICAgICAgICAgICAgICAg ICAgICAgdTMyICpuZXh0X2J0Zl9pZCkNCj4+ICt7DQo+PiArICAgICAgIGNvbnN0IHN0cnVjdCBi dGZfbWVtYmVyICptZW1iZXI7DQo+PiArICAgICAgIGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqbXR5 cGU7DQo+PiArICAgICAgIGNvbnN0IGNoYXIgKnRuYW1lLCAqbW5hbWU7DQo+PiArICAgICAgIGlu dCBpLCBtb2ZmID0gMCwgbXNpemU7DQo+PiArDQo+PiArYWdhaW46DQo+PiArICAgICAgIHRuYW1l ID0gYnRmX25hbWVfYnlfb2Zmc2V0KGJ0Zl92bWxpbnV4LCB0LT5uYW1lX29mZik7DQo+PiArICAg ICAgIGlmICghYnRmX3R5cGVfaXNfc3RydWN0KHQpKSB7DQo+IA0KPiBzZWUgYWJvdmUgYWJvdXQg dHlwZWRlZi9tb2RpZmllcnMgcmVzb2x1dGlvbg0KDQpoZXJlIGFjdHVhbGx5IHNraXBwaW5nIGlz IG5vdCBuZWNlc3NhcnkuDQoNCj4gDQo+PiArICAgICAgICAgICAgICAgYnBmX3ZlcmlmaWVyX2xv Z193cml0ZShlbnYsICJUeXBlICclcycgaXMgbm90IGEgc3RydWN0IiwgdG5hbWUpOw0KPj4gKyAg ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gKyAgICAgICB9DQo+PiArICAgICAgIGlm IChidGZfdHlwZV92bGVuKHQpIDwgMSkgew0KPj4gKyAgICAgICAgICAgICAgIGJwZl92ZXJpZmll cl9sb2dfd3JpdGUoZW52LCAic3RydWN0ICVzIGRvZXNuJ3QgaGF2ZSBmaWVsZHMiLCB0bmFtZSk7 DQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAgICAgIH0NCj4gDQo+ IGtpbmQgb2YgcmVkdW5kYW50IGNoZWNrLi4uDQoNCkkgd2FudGVkIHRvIGdpdmUgaGVscGZ1bCBt ZXNzYWdlLCBidXQgc2luY2UgeW91IGFza2VkLg0KVGhlcmUgYXJlIDM5NCBzdHJ1Y3QgRk9PIHt9 OyBpbiB0aGUga2VybmVsLg0KQW5kIHByb2JhYmx5IG5vbmUgb2YgdGhlbSBhcmUgZ29pbmcgdG8g YXBwZWFyIGluIGJwZiB0cmFjaW5nLA0Kc28gSSBkZWxldGVkIHRoYXQgY2hlY2suDQoNCj4gDQo+ PiArDQo+PiArICAgICAgIGZvcl9lYWNoX21lbWJlcihpLCB0LCBtZW1iZXIpIHsNCj4+ICsNCj4+ ICsgICAgICAgICAgICAgICAvKiBvZmZzZXQgb2YgdGhlIGZpZWxkICovDQo+PiArICAgICAgICAg ICAgICAgbW9mZiA9IGJ0Zl9tZW1iZXJfYml0X29mZnNldCh0LCBtZW1iZXIpOw0KPiANCj4gd2hh dCBkbyB5b3Ugd2FudCB0byBkbyB3aXRoIGJpdGZpZWxkcz8NCg0KdGhleSdyZSBzY2FsYXJzLg0K DQo+PiArDQo+PiArICAgICAgICAgICAgICAgaWYgKG9mZiA8IG1vZmYgLyA4KQ0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+PiArDQo+PiArICAgICAgICAgICAgICAgLyog dHlwZSBvZiB0aGUgZmllbGQgKi8NCj4+ICsgICAgICAgICAgICAgICBtdHlwZSA9IGJ0Zl90eXBl X2J5X2lkKGJ0Zl92bWxpbnV4LCBtZW1iZXItPnR5cGUpOw0KPj4gKyAgICAgICAgICAgICAgIG1u YW1lID0gX19idGZfbmFtZV9ieV9vZmZzZXQoYnRmX3ZtbGludXgsIG1lbWJlci0+bmFtZV9vZmYp Ow0KPiANCj4gbml0OiB5b3UgbWl4IGJ0Zl9uYW1lX2J5X29mZnNldCBhbmQgX19idGZfbmFtZV9i eV9vZmZzZXQsIGFueSByZWFzb24NCj4gdG8gbm90IHN0aWNrIHRvIGp1c3Qgb25lIG9mIHRoZW0g KF9fYnRmX25hbWVfYnlfb2Zmc2V0IGlzIHNhZmVyLCBzbw0KPiB0aGF0IG9uZSwgcHJvYmFibHkp Pw0KDQpJIHRyaWVkIHRvIHVzZSBidGZfbmFtZV9ieV9vZmZzZXQoKSBpbiB2ZXJpZmllci5jIGFu ZA0KX19idGZfbmFtZV9ieV9vZmZzZXQoKSBpbiBidGYuYyBjb25zaXN0ZW50bHkuDQpMb29rcyBs aWtlIEkgbWlzc2VkIG9uZSBzcG90Lg0KRml4ZWQuDQoNCj4gDQo+PiArDQo+PiArICAgICAgICAg ICAgICAgLyogc2tpcCB0eXBlZGVmLCB2b2xvdGlsZSBtb2RpZmllcnMgKi8NCj4gDQo+IHR5cG86 IHZvbGF0aWxlDQo+IA0KPiBuaXQ6IGFsc28sIHZvbGF0aWxlIGlzIG5vdCBzcGVjaWFsLCBzbyBl aXRoZXIgbWVudGlvbg0KPiBjb25zdC92b2xhdGlsZS9yZXN0cmljdCBvciBqdXN0ICJtb2RpZmll cnMiPw0KDQpmaXhlZA0KDQo+PiArICAgICAgICAgICAgICAgd2hpbGUgKGJ0Zl90eXBlX2lzX21v ZGlmaWVyKG10eXBlKSkNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIG10eXBlID0gYnRmX3R5 cGVfYnlfaWQoYnRmX3ZtbGludXgsIG10eXBlLT50eXBlKTsNCj4+ICsNCj4+ICsgICAgICAgICAg ICAgICBpZiAoYnRmX3R5cGVfaXNfYXJyYXkobXR5cGUpKQ0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgLyogYXJyYXkgZGVyZWYgaXMgbm90IHN1cHBvcnRlZCB5ZXQgKi8NCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gKw0KPj4gKyAgICAgICAgICAgICAgIGlmICgh YnRmX3R5cGVfaGFzX3NpemUobXR5cGUpICYmICFidGZfdHlwZV9pc19wdHIobXR5cGUpKSB7DQo+ PiArICAgICAgICAgICAgICAgICAgICAgICBicGZfdmVyaWZpZXJfbG9nX3dyaXRlKGVudiwNCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpZWxkICVz IGRvZXNuJ3QgaGF2ZSBzaXplXG4iLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtbmFtZSk7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLUVGQVVMVDsNCj4+ICsgICAgICAgICAgICAgICB9DQo+PiArICAgICAgICAgICAgICAgaWYg KGJ0Zl90eXBlX2lzX3B0cihtdHlwZSkpDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBtc2l6 ZSA9IDg7DQo+PiArICAgICAgICAgICAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgbXNpemUgPSBtdHlwZS0+c2l6ZTsNCj4+ICsgICAgICAgICAgICAgICBpZiAob2ZmID49IG1v ZmYgLyA4ICsgbXNpemUpDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAvKiByYXJlIGNhc2Us IG11c3QgYmUgYSBmaWVsZCBvZiB0aGUgdW5pb24gd2l0aCBzbWFsbGVyIHNpemUsDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgKiBsZXQncyB0cnkgYW5vdGhlciBmaWVsZA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICovDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsNCj4+ICsgICAgICAgICAgICAgICAvKiB0aGUgJ29mZicgd2UncmUgbG9va2luZyBmb3IgaXMg ZWl0aGVyIGVxdWFsIHRvIHN0YXJ0DQo+PiArICAgICAgICAgICAgICAgICogb2YgdGhpcyBmaWVs ZCBvciBpbnNpZGUgb2YgdGhpcyBzdHJ1Y3QNCj4+ICsgICAgICAgICAgICAgICAgKi8NCj4+ICsg ICAgICAgICAgICAgICBpZiAoYnRmX3R5cGVfaXNfc3RydWN0KG10eXBlKSkgew0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgLyogb3VyIGZpZWxkIG11c3QgYmUgaW5zaWRlIHRoYXQgdW5pb24g b3Igc3RydWN0ICovDQo+PiArICAgICAgICAgICAgICAgICAgICAgICB0ID0gbXR5cGU7DQo+PiAr DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAvKiBhZGp1c3Qgb2Zmc2V0IHdlJ3JlIGxvb2tp bmcgZm9yICovDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBvZmYgLT0gbW9mZiAvIDg7DQo+ PiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGFnYWluOw0KPj4gKyAgICAgICAgICAgICAg IH0NCj4+ICsgICAgICAgICAgICAgICBpZiAobXNpemUgIT0gc2l6ZSkgew0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgLyogZmllbGQgYWNjZXNzIHNpemUgZG9lc24ndCBtYXRjaCAqLw0KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgYnBmX3ZlcmlmaWVyX2xvZ193cml0ZShlbnYsDQo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYW5ub3QgYWNj ZXNzICVkIGJ5dGVzIGluIHN0cnVjdCAlcyBmaWVsZCAlcyB0aGF0IGhhcyBzaXplICVkXG4iLA0K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplLCB0 bmFtZSwgbW5hbWUsIG1zaXplKTsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt RUFDQ0VTOw0KPj4gKyAgICAgICAgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgICAgICAgICBp ZiAoYnRmX3R5cGVfaXNfcHRyKG10eXBlKSkgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IGJ0Zl90eXBlICpzdHlwZTsNCj4+ICsNCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgIHN0eXBlID0gYnRmX3R5cGVfYnlfaWQoYnRmX3ZtbGludXgsIG10eXBlLT50eXBlKTsN Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChidGZfdHlwZV9pc19zdHJ1Y3Qoc3R5cGUp KSB7DQo+IA0KPiBhZ2FpbiwgcmVzb2x2aW5nIG1vZGlmaWVycy90eXBlZGVmcz8gdGhvdWdoIGlu IHRoaXMgY2FzZSBpdCBtaWdodCBiZQ0KPiB0b28gZWFnZXI/Li4uDQoNCmRvbmUNCg0KPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmV4dF9idGZfaWQgPSBtdHlwZS0+dHlwZTsN Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9UT19CVEZfSUQ7 DQo+PiArICAgICAgICAgICAgICAgICAgICAgICB9DQo+PiArICAgICAgICAgICAgICAgfQ0KPj4g KyAgICAgICAgICAgICAgIC8qIGFsbCBvdGhlciBmaWVsZHMgYXJlIHRyZWF0ZWQgYXMgc2NhbGFy cyAqLw0KPj4gKyAgICAgICAgICAgICAgIHJldHVybiBTQ0FMQVJfVkFMVUU7DQo+PiArICAgICAg IH0NCj4+ICsgICAgICAgYnBmX3ZlcmlmaWVyX2xvZ193cml0ZShlbnYsDQo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInN0cnVjdCAlcyBkb2Vzbid0IGhhdmUgZmllbGQgYXQgb2Zm c2V0ICVkXG4iLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRuYW1lLCBvZmYp Ow0KPj4gKyAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICt9DQo+PiArDQo+PiAgIHZvaWQgYnRm X3R5cGVfc2VxX3Nob3coY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLCB1MzIgdHlwZV9pZCwgdm9pZCAq b2JqLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlcV9maWxlICptKQ0KPj4g ICB7DQo+PiBkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92 ZXJpZmllci5jDQo+PiBpbmRleCA5MWM0ZGI0ZDFjNmEuLjNjMTU1ODczZmZlYSAxMDA2NDQNCj4+ IC0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYw0KPj4gKysrIGIva2VybmVsL2JwZi92ZXJpZmll ci5jDQo+PiBAQCAtNDA2LDYgKzQwNiw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcmVn X3R5cGVfc3RyW10gPSB7DQo+PiAgICAgICAgICBbUFRSX1RPX1RDUF9TT0NLX09SX05VTExdID0g InRjcF9zb2NrX29yX251bGwiLA0KPj4gICAgICAgICAgW1BUUl9UT19UUF9CVUZGRVJdICAgICAg PSAidHBfYnVmZmVyIiwNCj4+ICAgICAgICAgIFtQVFJfVE9fWERQX1NPQ0tdICAgICAgID0gInhk cF9zb2NrIiwNCj4+ICsgICAgICAgW1BUUl9UT19CVEZfSURdICAgICAgICAgPSAicHRyXyIsDQo+ PiAgIH07DQo+Pg0KPj4gICBzdGF0aWMgY2hhciBzbG90X3R5cGVfY2hhcltdID0gew0KPj4gQEAg LTQ2MCw2ICs0NjEsMTAgQEAgc3RhdGljIHZvaWQgcHJpbnRfdmVyaWZpZXJfc3RhdGUoc3RydWN0 IGJwZl92ZXJpZmllcl9lbnYgKmVudiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBy ZWctPm9mZiBzaG91bGQgYmUgMCBmb3IgU0NBTEFSX1ZBTFVFICovDQo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgdmVyYm9zZShlbnYsICIlbGxkIiwgcmVnLT52YXJfb2ZmLnZhbHVlICsgcmVn LT5vZmYpOw0KPj4gICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgaWYgKHQgPT0gUFRSX1RPX0JURl9JRCkNCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmVyYm9zZShlbnYsICIlcyIsDQo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnRmX25hbWVfYnlfb2Zmc2V0KGJ0Zl92bWxpbnV4LA0KPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi dGZfdHlwZV9ieV9pZChidGZfdm1saW51eCwgcmVnLT5idGZfaWQpLT5uYW1lX29mZikpOw0KPj4g ICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2UoZW52LCAiKGlkPSVkIiwgcmVnLT5pZCk7 DQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlZ190eXBlX21heV9iZV9yZWZjb3Vu dGVkX29yX251bGwodCkpDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJi b3NlKGVudiwgIixyZWZfb2JqX2lkPSVkIiwgcmVnLT5yZWZfb2JqX2lkKTsNCj4+IEBAIC0yMzM3 LDEwICsyMzQyLDEyIEBAIHN0YXRpYyBpbnQgY2hlY2tfcGFja2V0X2FjY2VzcyhzdHJ1Y3QgYnBm X3ZlcmlmaWVyX2VudiAqZW52LCB1MzIgcmVnbm8sIGludCBvZmYsDQo+Pg0KPj4gICAvKiBjaGVj ayBhY2Nlc3MgdG8gJ3N0cnVjdCBicGZfY29udGV4dCcgZmllbGRzLiAgU3VwcG9ydHMgZml4ZWQg b2Zmc2V0cyBvbmx5ICovDQo+PiAgIHN0YXRpYyBpbnQgY2hlY2tfY3R4X2FjY2VzcyhzdHJ1Y3Qg YnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIGludCBvZmYsIGludCBzaXplLA0K Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gYnBmX2FjY2Vzc190eXBlIHQsIGVu dW0gYnBmX3JlZ190eXBlICpyZWdfdHlwZSkNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbnVtIGJwZl9hY2Nlc3NfdHlwZSB0LCBlbnVtIGJwZl9yZWdfdHlwZSAqcmVnX3R5cGUsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyICpidGZfaWQpDQo+PiAgIHsNCj4+ICAg ICAgICAgIHN0cnVjdCBicGZfaW5zbl9hY2Nlc3NfYXV4IGluZm8gPSB7DQo+PiAgICAgICAgICAg ICAgICAgIC5yZWdfdHlwZSA9ICpyZWdfdHlwZSwNCj4+ICsgICAgICAgICAgICAgICAuZW52ID0g ZW52LA0KPj4gICAgICAgICAgfTsNCj4+DQo+PiAgICAgICAgICBpZiAoZW52LT5vcHMtPmlzX3Zh bGlkX2FjY2VzcyAmJg0KPj4gQEAgLTIzNTQsNyArMjM2MSwxMCBAQCBzdGF0aWMgaW50IGNoZWNr X2N0eF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGluc25faWR4LCBp bnQgb2ZmLA0KPj4gICAgICAgICAgICAgICAgICAgKi8NCj4+ICAgICAgICAgICAgICAgICAgKnJl Z190eXBlID0gaW5mby5yZWdfdHlwZTsNCj4+DQo+PiAtICAgICAgICAgICAgICAgZW52LT5pbnNu X2F1eF9kYXRhW2luc25faWR4XS5jdHhfZmllbGRfc2l6ZSA9IGluZm8uY3R4X2ZpZWxkX3NpemU7 DQo+PiArICAgICAgICAgICAgICAgaWYgKCpyZWdfdHlwZSA9PSBQVFJfVE9fQlRGX0lEKQ0KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgKmJ0Zl9pZCA9IGluZm8uYnRmX2lkOw0KPj4gKyAgICAg ICAgICAgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGVudi0+aW5zbl9hdXhf ZGF0YVtpbnNuX2lkeF0uY3R4X2ZpZWxkX3NpemUgPSBpbmZvLmN0eF9maWVsZF9zaXplOw0KPiAN Cj4gY3R4X2ZpZWxkX3NpemUgaXMgcGFzc2VkIHRocm91Z2ggYnBmX2luc25fYWNjZXNzX2F1eCwg YnV0IGJ0Zl9pZCBpcw0KPiByZXR1cm5lZCBsaWtlIHRoaXMuIElzIHRoZXJlIGEgcmVhc29uIHRv IGRvIGl0IGluIHR3byBkaWZmZXJlbnQgd2F5cz8NCg0KaW5zbl9hdXhfZGF0YSBpcyBwZXJtYW5l bnQuIE1lYW5pbmcgdGhhdCBhbnkgZXhlY3V0aW5nIHBhdGggaW50bw0KdGhpcyBpbnN0cnVjdGlv biBnb3QgdG8gaGF2ZSB0aGUgc2FtZSBzaXplIGFuZCBvZmZzZXQgb2YgY3R4IGFjY2Vzcy4NCkkg dGhpbmsgYnRmIGJhc2VkIGN0eCBhY2Nlc3MgZG9lc24ndCBoYXZlIHRvIGJlLg0KVGhlcmUgaXMg YSBjaGVjayBsYXRlciB0byBtYWtlIHN1cmUgcjE9Y3R4IGRlcmVmZXJlbmNlaW5nIGJ0ZiBpcw0K cGVybWFuZW50LCBidXQgcjE9YnRmIGRlcmVmZXJlbmNpbmcgYnRmIGlzIGNsZWFybHkgbm90ZS4N CkknbSBzdGlsbCBub3Qgc3VyZSB3aGV0aGVyIGZvcm1lciB3aWxsIGJlIHBlcm1hbmVudCBmb3Jl dmVyLg0KU28gd2VudCB3aXRoIHF1aWNrIGhhY2sgYWJvdmUgdG8gcmVkdWNlIGFtb3VudCBvZiBw b3RlbnRpYWwNCnJlZmFjdG9yaW5nIGxhdGVyLiBJJ2xsIHRoaW5rIGFib3V0IGl0IG1vcmUuDQoN Cj4+ICAgICAgICAgICAgICAgICAgLyogcmVtZW1iZXIgdGhlIG9mZnNldCBvZiBsYXN0IGJ5dGUg YWNjZXNzZWQgaW4gY3R4ICovDQo+PiAgICAgICAgICAgICAgICAgIGlmIChlbnYtPnByb2ctPmF1 eC0+bWF4X2N0eF9vZmZzZXQgPCBvZmYgKyBzaXplKQ0KPj4gICAgICAgICAgICAgICAgICAgICAg ICAgIGVudi0+cHJvZy0+YXV4LT5tYXhfY3R4X29mZnNldCA9IG9mZiArIHNpemU7DQo+PiBAQCAt Mjc0NSw2ICsyNzU1LDUzIEBAIHN0YXRpYyB2b2lkIGNvZXJjZV9yZWdfdG9fc2l6ZShzdHJ1Y3Qg YnBmX3JlZ19zdGF0ZSAqcmVnLCBpbnQgc2l6ZSkNCj4+ICAgICAgICAgIHJlZy0+c21heF92YWx1 ZSA9IHJlZy0+dW1heF92YWx1ZTsNCj4+ICAgfQ0KPj4NCj4+ICtzdGF0aWMgaW50IGNoZWNrX3B0 cl90b19idGZfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsDQo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWdzLA0K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVnbm8sIGludCBvZmYs IGludCBzaXplLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGJw Zl9hY2Nlc3NfdHlwZSBhdHlwZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHZhbHVlX3JlZ25vKQ0KPj4gK3sNCj4+ICsgICAgICAgc3RydWN0IGJwZl9yZWdfc3Rh dGUgKnJlZyA9IHJlZ3MgKyByZWdubzsNCj4+ICsgICAgICAgY29uc3Qgc3RydWN0IGJ0Zl90eXBl ICp0ID0gYnRmX3R5cGVfYnlfaWQoYnRmX3ZtbGludXgsIHJlZy0+YnRmX2lkKTsNCj4+ICsgICAg ICAgY29uc3QgY2hhciAqdG5hbWUgPSBidGZfbmFtZV9ieV9vZmZzZXQoYnRmX3ZtbGludXgsIHQt Pm5hbWVfb2ZmKTsNCj4+ICsgICAgICAgdTMyIGJ0Zl9pZDsNCj4+ICsgICAgICAgaW50IHJldDsN Cj4+ICsNCj4+ICsgICAgICAgaWYgKGF0eXBlICE9IEJQRl9SRUFEKSB7DQo+PiArICAgICAgICAg ICAgICAgdmVyYm9zZShlbnYsICJvbmx5IHJlYWQgaXMgc3VwcG9ydGVkXG4iKTsNCj4+ICsgICAg ICAgICAgICAgICByZXR1cm4gLUVBQ0NFUzsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAg ICBpZiAob2ZmIDwgMCkgew0KPj4gKyAgICAgICAgICAgICAgIHZlcmJvc2UoZW52LA0KPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIlIlZCBpcyBwdHJfJXMgbmVnYXRpdmUgYWNjZXNzICVkIGlz IG5vdCBhbGxvd2VkXG4iLA0KPiANCj4gdG90YWxseSBuaXQ6IGJ1dCBmb3IgY29uc2lzdGVuY3kg c2FrZSAoZm9sbG93aW5nIHZhcmlhYmxlIG9mZnNldCBlcnJvcg0KPiBiZWxvdyk6IFIlZCBpcyBw dHJfJXMgbmVnYXRpdmUgYWNjZXNzOiBvZmY9JWRcbiI/DQoNCmZpeGVkDQoNCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIHJlZ25vLCB0bmFtZSwgb2ZmKTsNCj4+ICsgICAgICAgICAgICAgICBy ZXR1cm4gLUVBQ0NFUzsNCj4+ICsgICAgICAgfQ0KPj4gKyAgICAgICBpZiAoIXRudW1faXNfY29u c3QocmVnLT52YXJfb2ZmKSB8fCByZWctPnZhcl9vZmYudmFsdWUpIHsNCj4gDQo+IHdoeSBzbyBz dHJpY3QgYWJvdXQgcmVnLT52YXJfb2ZmLnZhbHVlPw0KDQpJdCdzIHZhcmlhYmxlIHBhcnQgb2Yg cmVnaXN0ZXIgYWNjZXNzLg0KVGhlcmUgaXMgbm8gZml4ZWQgb2Zmc2V0IHRvIHBhc3MgaW50byBi dGZfc3RydWN0X2FjY2VzcygpLg0KSW4gb3RoZXIgd29yZHMgJ2FycmF5cyBvZiBwb2ludGVycyB0 byBidGZfaWQnIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4NCldhbGsgZmlyc3QgOikNCg0K