From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8EDA5A04B7; Tue, 13 Oct 2020 22:07:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AFB1C1BFBB; Tue, 13 Oct 2020 22:07:01 +0200 (CEST) Received: from nat-hk.nvidia.com (nat-hk.nvidia.com [203.18.50.4]) by dpdk.org (Postfix) with ESMTP id A20FE1BAFB for ; Tue, 13 Oct 2020 22:06:57 +0200 (CEST) Received: from HKMAIL102.nvidia.com (Not Verified[10.18.92.77]) by nat-hk.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Wed, 14 Oct 2020 04:06:55 +0800 Received: from HKMAIL101.nvidia.com (10.18.16.10) by HKMAIL102.nvidia.com (10.18.16.11) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 13 Oct 2020 20:06:40 +0000 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.104) by HKMAIL101.nvidia.com (10.18.16.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 13 Oct 2020 20:06:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kn8fFYjRZaal0G3hxQ6p+1/UxxbmgT9hA9ISXFVB7wcq5gyhyMtKQ4VNHwKIyk/VbsJgesN7bswDf+9hUemzItu86HrTpkQTnP5MenISxVUYBv+GS3wOn/tjA2dxj0L9Sbs7AlSjVBq4Z+JGC209jd2lGTPpIEn74xkndsBsWUx/Fm7GKNwBy9OMo1OOaxcKxh5QffkBfda30Fmlc9KyhXlFIXvVsPiQsE4wCx6IwmV+LoGL6CWndIsZ0QWo7hhGTIbON2Sf8aVvWWUlpK8Da+P0d2AIRM6A3qPE26NkfwTp3+YCmlZkW0ggGnhcOftFk9ODcya1qi+wiJeRdxuIdQ== 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=2ftp+vh2ZBg25Hhmu3uqgH79pnETbVdu9/OLiPUfIfY=; b=YFZPQNFPgCGe7YnsvEKcDXXqmR0U9woBmgwfdFosGqwLmGM2Dua9YP0KCnO8Uorb0VpMio0vDWBbWa1h2Efhe5bjEKGer+VZCN+lqKMGd8lt4bNDg6iBGPdjp+kSwfKm0LGuqMwetv6FwXTMobJNzzAvuae3loJBp4/8maBOYE63Z7mGnZsS/XH21gYhyH8+obz+nADcaSfmdFV7MZ3bPN9c2IfOs+WTneybXIw8FogNXGDDxIp/e9TQy3jQzLsPjZp/JphU4pcZ3l1lVZi3gPkkWyNwt1QFaTWdnj90nbT9FP6k2Sjogzm8PXRbcVwzFbmPY4YImy/x5/k88fcZhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none Received: from MWHPR1201MB2525.namprd12.prod.outlook.com (2603:10b6:300:e0::19) by MWHPR12MB1294.namprd12.prod.outlook.com (2603:10b6:300:10::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.28; Tue, 13 Oct 2020 20:06:37 +0000 Received: from MWHPR1201MB2525.namprd12.prod.outlook.com ([fe80::3ccb:ec09:9346:54b1]) by MWHPR1201MB2525.namprd12.prod.outlook.com ([fe80::3ccb:ec09:9346:54b1%7]) with mapi id 15.20.3455.031; Tue, 13 Oct 2020 20:06:36 +0000 From: Andrey Vesnovaty To: Andrew Rybchenko , "dev@dpdk.org" CC: "jer@marvell.com" , "jerinjacobk@gmail.com" , NBU-Contact-Thomas Monjalon , "ferruh.yigit@intel.com" , "stephen@networkplumber.org" , "bruce.richardson@intel.com" , Ori Kam , Slava Ovsiienko , "andrey.vesnovaty@gmail.com" , "mdr@ashroe.eu" , "nhorman@tuxdriver.com" , "ajit.khaparde@broadcom.com" , "samik.gupta@broadcom.com" Thread-Topic: [dpdk-dev] [PATCH v7 1/2] ethdev: add flow shared action API Thread-Index: AQHWnWm2rCwoe3NncEu6tcF3cwumgamUCoyAgAGZ+FA= Date: Tue, 13 Oct 2020 20:06:36 +0000 Message-ID: References: <20200702120511.16315-1-andreyv@mellanox.com> <20201008115143.13208-1-andreyv@nvidia.com> <20201008115143.13208-2-andreyv@nvidia.com> <3d2a7271-3e5b-9527-481b-5086e9a7affd@oktetlabs.ru> In-Reply-To: <3d2a7271-3e5b-9527-481b-5086e9a7affd@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [87.71.166.205] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 87cb02b9-23c1-4a56-b058-08d86fb37d92 x-ms-traffictypediagnostic: MWHPR12MB1294: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tGtZhjKyIlEcl9FR6j7eRPNcjdRZZPJ8apu/yewyHGdLfN4PPYuCEFHHePXDRHxcw9QIyA34JyhKKimsIgHH8lZWv8zwGg8sptTteKQgxIdZnHHFjL0yxB2d0Vgn84RwXhSKGsVGryBFZczNCTJNYgTuvLWuR7yNSdf+OIMNewpcIZzgvqZVH7fADwsW0td9bAfTiog7fJvlUmrDf4e5xHeOAyfe23t0v04HoEH9VHKMt6c0NDIEk0hLUNPXSHcCttjTlYC/dOBxUd1CpNzpkWgg4LuT3uRZh+MLqXs/Bx8QLkEeM1p6KI731W7AhLb4vvzODqdD8124pJzuBsiTdw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1201MB2525.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(396003)(346002)(39860400002)(376002)(5660300002)(9686003)(7416002)(186003)(30864003)(26005)(66946007)(54906003)(71200400001)(66476007)(110136005)(8676002)(64756008)(66556008)(66446008)(83380400001)(76116006)(4326008)(8936002)(55016002)(2906002)(316002)(86362001)(52536014)(6506007)(53546011)(7696005)(33656002)(478600001)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: qzUg9w5isOyxdYFBsl/fLkpucA2iHzEod+8/t87Qrv3oRhQL5xyK4NnCj+oFYwrLbU1Zqq/d1fYAOuLwIFBosTYrPHobKO8j4ob1fWLgWLzjAYiI24H5O/PSzvi+QVKqvI+WwOZ77SEyq7gPy4g816RWeqExB/rscHp1kie//R/tdCu6MyWdeOhjw1+zsgu612Ee8Nopj/4N0L0fy4Cc2h/3ShX0Jo022GP58r+fmzc5dhkY8pX9moy4Z9eDCjYNnNxHlO5QIONhEAqzzD/zTs1BUoBw9mgsqgfX5cPodB52fb8lWYXFmjVsCkYOHuOpIHAwrUxamvgkC/OTTjnMtHuPPxeyMI1D4i35oCrbrZS0JtLug/iY5WlXu/BdtAWwHke00YgUHXSWLK0KrqecImEw7xKu5KLnlGkxFA9xLZdbCPXJ5BG4/ManDNlgU7QG/m+5CATkbRvo+q0SBR3Sl3VJ6SSAahYPzZHjxcWQQMPnLXetYp/x9SW6red3n5UHR5rkFAlgs79fZkKV9uz9SeqCqVa8XCsdwDKIxHVJQbVmkrVDbGyQ26s5JyKW3DqnU9FWRE0YnWLWzzWrOyqwdjh6Oq7lhPSec8tXri5B47VkjdxxHjfVM54XzkTC6dwNfgWFJnxnL61UpLTdva74YQ== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR1201MB2525.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87cb02b9-23c1-4a56-b058-08d86fb37d92 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Oct 2020 20:06:36.7060 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bv0Fl857o+4iU9UJzK+JMtsTjUrJZBOTlFud3hHlFKEDtwixyLMlbne1IMer9SS1ORRcR0pjhFpEGt7NLVpXXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1294 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1602619615; bh=2ftp+vh2ZBg25Hhmu3uqgH79pnETbVdu9/OLiPUfIfY=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ld-processed: x-ms-exchange-transport-forked:x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers:x-ms-exchange-senderadcheck: x-microsoft-antispam:x-microsoft-antispam-message-info: x-forefront-antispam-report:x-ms-exchange-antispam-messagedata: Content-Type:Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=IBtJnOaa0RUK5434LHxmxg7oQWkn9djWzVxbPX6of2rs4Jnygdz3UCF0ZvJMvKh4Y 35qtpKsHwpoKPnetxqoPwSJ403C90h4N+IkXIY3FDyS2ztczcWMCS6FdrPQXvTnWYz 996C1/gUts5Rt8Lw/Vx3rYxdFSpVOO4/7yOmyU4WhRM35e+NUNIuXV7fgqicy5eRe1 fKIKskUozh3k8OZ7JVIzKzBWTQFIAfmkWvBt4FIRFxlgK3YEnvgStfhlv9TBnDM9H/ yh2fWbNNeapHzlt30DvgTf65kUh2zmicOeGqCPNhaoMtX9yOFszHHaapUlKmpucsMS At9nfy5J2tQDg== Subject: Re: [dpdk-dev] [PATCH v7 1/2] ethdev: add flow shared action API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgQW5kcmV3Lg0KDQpUaGFua3MgZm9yIHRoZSBpbnB1dC4NCkFsbCBzcGVsbGluZyAmIHJlcGhy YXNlcyB3aWxsIGJlIGFwcGxpZWQgIFBTQiBmb3IgdGhlIHJlc3QuDQpXaWxsIHB1Ymxpc2ggdjgg dmVyeSBzb29uLg0KDQpUaGFua3MsDQpBbmRyZXkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBBbmRyZXcgUnliY2hlbmtvIDxBbmRyZXcuUnliY2hlbmtvQG9rdGV0bGFi cy5ydT4NCj4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDEyLCAyMDIwIDU6MTkgUE0NCj4gVG86IEFu ZHJleSBWZXNub3ZhdHkgPGFuZHJleXZAbnZpZGlhLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzog amVyQG1hcnZlbGwuY29tOyBqZXJpbmphY29ia0BnbWFpbC5jb207IE5CVS1Db250YWN0LVRob21h cyBNb25qYWxvbg0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IGZlcnJ1aC55aWdpdEBpbnRlbC5j b207DQo+IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOyBicnVjZS5yaWNoYXJkc29uQGludGVs LmNvbTsgT3JpIEthbQ0KPiA8b3Jpa2FAbnZpZGlhLmNvbT47IFNsYXZhIE92c2lpZW5rbyA8dmlh Y2hlc2xhdm9AbnZpZGlhLmNvbT47DQo+IGFuZHJleS52ZXNub3ZhdHlAZ21haWwuY29tOyBtZHJA YXNocm9lLmV1OyBuaG9ybWFuQHR1eGRyaXZlci5jb207DQo+IGFqaXQua2hhcGFyZGVAYnJvYWRj b20uY29tOyBzYW1pay5ndXB0YUBicm9hZGNvbS5jb20NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRl dl0gW1BBVENIIHY3IDEvMl0gZXRoZGV2OiBhZGQgZmxvdyBzaGFyZWQgYWN0aW9uIEFQSQ0KPiAN Cj4gImFkZCBmbG93IHNoYXJlZCBhY3Rpb24gQVBJIg0KPiANCj4gSXMgZmxvdyBzaGFyZWQ/IE1h eSBiZSAiYWRkIHNoYXJlZCBhY3Rpb25zIHRvIGZsb3cgQVBJIi4NCg0KQWNjZXB0ZWQsIHdpbGwg dXBkYXRlIGNvbW1pdCBtZXNzYWdlLg0KPiANCj4gT24gMTAvOC8yMCAyOjUxIFBNLCBBbmRyZXkg VmVzbm92YXR5IHdyb3RlOg0KPiA+IFRoaXMgY29tbWl0IGludHJvZHVjZXMgZXh0ZW5zaW9uIG9m IERQREsgZmxvdyBhY3Rpb24gQVBJIGVuYWJsaW5nDQo+IA0KPiAiVGhpcyBjb21taXQiIGFuZCAi RFBESyIgYXJlIG5vdCBuZWNlc3NhcnkgaW4gZGVzY3JpcHRpb24uDQo+IEl0IGlzIGEgY29tbWl0 IGRlc2NyaXB0aW9uIGFuZCB0aGUgcGF0Y2ggaXMgdG8gRFBESyB0cmVlLg0KPiBDb25zaWRlciBq dXN0Og0KPiAiSW50cm9kdWNlIGV4dGVuc2lvbiBvZiBmbG93IGFjdGlvbiBBUEkgZW5hYmxpbmcu Li4iDQoNCkFjY2VwdGVkLCB3aWxsIHVwZGF0ZSBjb21taXQgbWVzc2FnZS4NCj4gDQo+ID4gc2hh cmluZyBvZiBzaW5nbGUgcnRlX2Zsb3dfYWN0aW9uIGluIG11bHRpcGxlIGZsb3dzLiBUaGUgQVBJ IGludGVuZGVkIGZvcg0KPiA+IFBNRHMsIHdoZXJlIG11bHRpcGxlIEhXIG9mZmxvYWRlZCBmbG93 cyBjYW4gcmV1c2UgdGhlIHNhbWUgSFcNCj4gPiBlc3NlbmNlL29iamVjdCByZXByZXNlbnRpbmcg ZmxvdyBhY3Rpb24gYW5kIG1vZGlmaWNhdGlvbiBvZiBzdWNoIGFuDQo+ID4gZXNzZW5jZS9vYmpl Y3QgYWZmZWN0cyBhbGwgdGhlIHJ1bGVzIHVzaW5nIGl0Lg0KPiA+DQo+ID4gTW90aXZhdGlvbiBh bmQgZXhhbXBsZQ0KPiA+ID09PQ0KPiA+IEFkZGluZyBvciByZW1vdmluZyBvbmUgb3IgbW9yZSBx dWV1ZXMgdG8gUlNTIHVzZWQgYnkgbXVsdGlwbGUgZmxvdyBydWxlcw0KPiA+IGltcG9zZXMgcGVy IHJ1bGUgdG9sbCBmb3IgY3VycmVudCBEUERLIGZsb3cgQVBJOyB0aGUgc2NlbmFyaW8gcmVxdWly ZXMNCj4gPiBmb3IgZWFjaCBmbG93IHNoYXJpbmcgY2xvbmVkIFJTUyBhY3Rpb246DQo+ID4gLSBj YWxsIGBydGVfZmxvd19kZXN0cm95KClgDQo+ID4gLSBjYWxsIGBydGVfZmxvd19jcmVhdGUoKWAg d2l0aCBtb2RpZmllZCBSU1MgYWN0aW9uDQo+ID4NCj4gPiBBUEkgZm9yIHNoYXJpbmcgYWN0aW9u IGFuZCBpdHMgaW4tcGxhY2UgdXBkYXRlIGJlbmVmaXRzOg0KPiA+IC0gcmVkdWNlIHRoZSBvdmVy aGVhZCBvZiBtdWx0aXBsZSBSU1MgZmxvdyBydWxlcyByZWNvbmZpZ3VyYXRpb24NCj4gPiAtIG9w dGltaXplIHJlc291cmNlIHV0aWxpemF0aW9uIGJ5IHNoYXJpbmcgYWN0aW9uIGFjcm9zcyBtdWx0 aXBsZQ0KPiA+ICAgZmxvd3MNCj4gPg0KPiA+IENoYW5nZSBkZXNjcmlwdGlvbg0KPiA+ID09PQ0K PiA+DQo+ID4gU2hhcmVkIGFjdGlvbg0KPiA+ID09PQ0KPiA+IEluIG9yZGVyIHRvIHJlcHJlc2Vu dCBmbG93IGFjdGlvbiBzaGFyZWQgYnkgbXVsdGlwbGUgZmxvd3MgbmV3IGFjdGlvbg0KPiA+IHR5 cGUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0hBUkVEIGlzIGludHJvZHVjZWQgKHNlZSBgZW51bQ0K PiA+IHJ0ZV9mbG93X2FjdGlvbl90eXBlYCkuDQo+ID4gQWN0dWFsbHkgdGhlIGludHJvZHVjZWQg QVBJIGRlY291cGxlcyBhY3Rpb24gZnJvbSBhbnkgc3BlY2lmaWMgZmxvdyBhbmQNCj4gPiBlbmFi bGVzIHNoYXJpbmcgb2Ygc2luZ2xlIGFjdGlvbiBieSBpdHMgaGFuZGxlIGFjcm9zcyBtdWx0aXBs ZSBmbG93cy4NCj4gPg0KPiA+IFNoYXJlZCBhY3Rpb24gY3JlYXRlL3VzZS9kZXN0cm95DQo+ID4g PT09DQo+ID4gU2hhcmVkIGFjdGlvbiBtYXkgYmUgcmV1c2VkIGJ5IHNvbWUgb3Igbm9uZSBmbG93 IHJ1bGVzIGF0IGFueSBnaXZlbg0KPiA+IG1vbWVudCwgaS5lLiBzaGFyZWQgYWN0aW9uIHJlc2lk ZXMgb3V0c2lkZSBvZiB0aGUgY29udGV4dCBvZiBhbnkgZmxvdy4NCj4gPiBTaGFyZWQgYWN0aW9u IHJlcHJlc2VudCBIVyByZXNvdXJjZXMvb2JqZWN0cyB1c2VkIGZvciBhY3Rpb24gb2ZmbG9hZGlu Zw0KPiA+IGltcGxlbWVudGF0aW9uLg0KPiA+IEFQSSBmb3Igc2hhcmVkIGFjdGlvbiBjcmVhdGUg KHNlZSBgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9jcmVhdGUoKWApOg0KPiA+IC0gc2hvdWxkIGFs bG9jYXRlIEhXIHJlc291cmNlcyBhbmQgbWFrZSByZWxhdGVkIGluaXRpYWxpemF0aW9ucyByZXF1 aXJlZA0KPiA+ICAgZm9yIHNoYXJlZCBhY3Rpb24gaW1wbGVtZW50YXRpb24uDQo+ID4gLSBtYWtl IG5lY2Vzc2FyeSBwcmVwYXJhdGlvbnMgdG8gbWFpbnRhaW4gc2hhcmVkIGFjY2VzcyB0bw0KPiA+ ICAgdGhlIGFjdGlvbiByZXNvdXJjZXMsIGNvbmZpZ3VyYXRpb24gYW5kIHN0YXRlLg0KPiA+IEFQ SSBmb3Igc2hhcmVkIGFjdGlvbiBkZXN0cm95IChzZWUgYHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25f ZGVzdHJveSgpYCkNCj4gPiBzaG91bGQgcmVsZWFzZSBIVyByZXNvdXJjZXMgYW5kIG1ha2UgcmVs YXRlZCBjbGVhbnVwcyByZXF1aXJlZCBmb3Igc2hhcmVkDQo+ID4gYWN0aW9uIGltcGxlbWVudGF0 aW9uLg0KPiA+DQo+ID4gSW4gb3JkZXIgdG8gc2hhcmUgc29tZSBmbG93IGFjdGlvbiByZXVzZSB0 aGUgaGFuZGxlIG9mIHR5cGUNCj4gPiBgc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25gIHJl dHVybmVkIGJ5DQo+ID4gcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9jcmVhdGUoKSBhcyBhIGBjb25m YCBmaWVsZCBvZg0KPiA+IGBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uYCAoc2VlICJleGFtcGxlIiBz ZWN0aW9uKS4NCj4gPg0KPiA+IElmIHNvbWUgc2hhcmVkIGFjdGlvbiBub3QgdXNlZCBieSBhbnkg ZmxvdyBydWxlIGFsbCByZXNvdXJjZXMgYWxsb2NhdGVkDQo+ID4gYnkgdGhlIHNoYXJlZCBhY3Rp b24gY2FuIGJlIHJlbGVhc2VkIGJ5IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fZGVzdHJveSgpDQo+ ID4gKHNlZSAiZXhhbXBsZSIgc2VjdGlvbikuIFRoZSBzaGFyZWQgYWN0aW9uIGhhbmRsZSBwYXNz ZWQgYXMgYXJndW1lbnQgdG8NCj4gPiBkZXN0cm95IEFQSSBzaG91bGQgbm90IGJlIHVzZWQgYW55 IGZ1cnRoZXIgaS5lLiByZXN1bHQgb2YgdGhlIHVzYWdlIGlzDQo+ID4gdW5kZWZpbmVkLg0KPiA+ DQo+ID4gU2hhcmVkIGFjdGlvbiByZS1jb25maWd1cmF0aW9uDQo+ID4gPT09DQo+ID4gU2hhcmVk IGFjdGlvbiBiZWhhdmlvciBkZWZpbmVkIGJ5IGl0cyBjb25maWd1cmF0aW9uIGNhbiBiZSB1cGRh dGVkIHZpYQ0KPiA+IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fdXBkYXRlKCkgKHNlZSAiZXhhbXBs ZSIgc2VjdGlvbikuIFRoZSBzaGFyZWQNCj4gPiBhY3Rpb24gdXBkYXRlIG9wZXJhdGlvbiBtb2Rp ZmllcyBIVyByZWxhdGVkIHJlc291cmNlcy9vYmplY3RzIGFsbG9jYXRlZA0KPiA+IG9uIHRoZSBh Y3Rpb24gY3JlYXRpb24uIFRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBwZXJmb3JtZWQgYnkgdGhl IHVwZGF0ZQ0KPiA+IG9wZXJhdGlvbiBzaG91bGQgbm90IGRlcGVuZCBvbiB0aGUgbnVtYmVyIG9m IGZsb3dzIHNoYXJpbmcgdGhlIHJlbGF0ZWQNCj4gPiBhY3Rpb24uIE9uIHJldHVybiBvZiBzaGFy ZWQgYWN0aW9uIHVwZGF0ZSBBUEkgYWN0aW9uIGJlaGF2aW9yIHNob3VsZCBiZQ0KPiA+IGFjY29y ZGluZyB0byB1cGRhdGVkIGNvbmZpZ3VyYXRpb24gZm9yIGFsbCBmbG93cyBzaGFyaW5nIHRoZSBh Y3Rpb24uDQo+ID4NCj4gPiBTaGFyZWQgYWN0aW9uIHF1ZXJ5DQo+ID4gPT09DQo+ID4gUHJvdmlk ZSBzZXBhcmF0ZSBBUEkgdG8gcXVlcnkgc2hhcmVkIGFjdGlvbiBzdGF0ZSAoc2VlDQo+ID4gcnRl X2Zsb3dfc2hhcmVkX2FjdGlvbl91cGRhdGUoKSkuIFRha2luZyBhIGNvdW50ZXIgYXMgYW4gZXhh bXBsZTogcXVlcnkNCj4gPiByZXR1cm5zIHZhbHVlIGFnZ3JlZ2F0aW5nIGFsbCBjb3VudGVyIGlu Y3JlbWVudHMgYWNyb3NzIGFsbCBmbG93IHJ1bGVzDQo+ID4gc2hhcmluZyB0aGUgY291bnRlci4g VGhpcyBBUEkgZG9lc24ndCBxdWVyeSBzaGFyZWQgYWN0aW9uIGNvbmZpZ3VyYXRpb24NCj4gPiBz aW5jZSBpdCBpcyBjb250cm9sbGVkIGJ5IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fY3JlYXRlKCkg YW5kDQo+ID4gcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl91cGRhdGUoKSBBUElzIGFuZCBubyBzdXBw b3NlZCB0byBjaGFuZ2UgYnkgb3RoZXINCj4gPiBtZWFucy4NCj4gPg0KPiA+IFBNRCBzdXBwb3J0 DQo+ID4gPT09DQo+ID4gVGhlIHN1cHBvcnQgb2YgaW50cm9kdWNlZCBBUEkgaXMgcHVyZSBQTUQg c3BlY2lmaWMgZGVzaWduIGFuZA0KPiA+IHJlc3BvbnNpYmlsaXR5IGZvciBlYWNoIGFjdGlvbiB0 eXBlIChzZWUgc3RydWN0IHJ0ZV9mbG93X29wcykuDQo+ID4NCj4gPiB0ZXN0cG1kDQo+ID4gPT09 DQo+ID4gSW4gb3JkZXIgdG8gdXRpbGl6ZSBpbnRyb2R1Y2VkIEFQSSB0ZXN0cG1kIGNsaSBtYXkg aW1wbGVtZW50IGZvbGxvd2luZw0KPiA+IGV4dGVuc2lvbg0KPiA+IGNyZWF0ZS91cGRhdGUvZGVz dHJveS9xdWVyeSBzaGFyZWQgYWN0aW9uIGFjY29yZGluZ2x5DQo+ID4NCj4gPiBmbG93IHNoYXJl ZF9hY3Rpb24gKHBvcnQpIGNyZWF0ZSB7YWN0aW9uX2lkIChpZCl9IChhY3Rpb24pIC8gZW5kDQo+ ID4gZmxvdyBzaGFyZWRfYWN0aW9uIChwb3J0KSB1cGRhdGUgKGlkKSAoYWN0aW9uKSAvIGVuZA0K PiA+IGZsb3cgc2hhcmVkX2FjdGlvbiAocG9ydCkgZGVzdHJveSBhY3Rpb25faWQgKGlkKSB7YWN0 aW9uX2lkIChpZCkgWy4uLl19DQo+ID4gZmxvdyBzaGFyZWRfYWN0aW9uIChwb3J0KSBxdWVyeSAo aWQpDQo+ID4NCj4gPiB0ZXN0cG1kIGV4YW1wbGUNCj4gPiA9PT0NCj4gPg0KPiA+IGNvbmZpZ3Vy ZSByc3MgdG8gcXVldWVzIDEgJiAyDQo+ID4NCj4gPj4gZmxvdyBzaGFyZWRfYWN0aW9uIDAgY3Jl YXRlIGFjdGlvbl9pZCAxMDAgcnNzIHF1ZXVlcyAxIDIgZW5kIC8gZW5kDQo+ID4NCj4gPiBjcmVh dGUgZmxvdyBydWxlIHV0aWxpemluZyBzaGFyZWQgYWN0aW9uDQo+ID4NCj4gPj4gZmxvdyBjcmVh dGUgMCBpbmdyZXNzIFwNCj4gPiAgICAgcGF0dGVybiBldGggZHN0IGlzIDBjOjQyOmExOjE1OmZk OmFjIC8gaXB2NiAvIHRjcCAvIGVuZCBcDQo+ID4gICBhY3Rpb25zIHNoYXJlZCAxMDAgLyBlbmQN Cj4gPg0KPiA+IGFkZCAyIG1vcmUgcXVldWVzDQo+ID4NCj4gPj4gZmxvdyBzaGFyZWRfYWN0aW9u IDAgbW9kaWZ5IDEwMCByc3MgcXVldWVzIDEgMiAzIDQgZW5kIC8gZW5kDQo+IA0KPiB0ZXN0cG1k IGlzIG91dC1vZi1zY29wZSBvZiB0aGUgcGF0Y2ggYW5kIGl0IGlzIGJldHRlciB0bw0KPiByZW1v dmUgdGhlIGRlc2NyaXB0aW9uIHRvIGF2b2lkIHVuc3luYyBpZiB0ZXN0cG1kDQo+IGNvbW1hbmRz IGFyZSBjaGFuZ2VkLg0KDQpUaGVyZSBpcyBzdGlsbCBhZGRlZCB2YWx1ZSBpcyB0ZXN0cG1kIGV4 YW1wbGUgZGVtb25zdHJhdGluZyB1c2FnZSBvZg0Kc2hhcmVkIGFjdGlvbiB3aXRoIHJ0ZSBmbG93 cy4gSSB3aWxsIHVwZGF0ZSB0aGUgZXhhbXBsZSB0byByZWZsZWN0IHRoZSBjdXJyZW50DQp0ZXN0 cG1kIHN5bnRheCBmb3Igc2hhcmVkIGFjdGlvbi4NCg0KPiANCj4gPg0KPiA+IGV4YW1wbGUNCj4g PiA9PT0NCj4gPg0KPiA+IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gYWN0aW9uc1syXTsNCj4gPiBz dHJ1Y3QgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9jb25mIGNvbmY7DQo+ID4gc3RydWN0IHJ0ZV9m bG93X2FjdGlvbiBhY3Rpb247DQo+ID4gLyogc2tpcHBlZDogaW5pdGlhbGl6ZSBjb25mIGFuZCBh Y3Rpb24gKi8NCj4gPiBzdHJ1Y3QgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbiAqaGFuZGxlID0NCj4g PiAJcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9jcmVhdGUocG9ydF9pZCwgJmNvbmYsICZhY3Rpb24s ICZlcnJvcik7DQo+ID4gYWN0aW9uc1swXS50eXBlID0gUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0hB UkVEOw0KPiA+IGFjdGlvbnNbMF0uY29uZiA9IGhhbmRsZTsNCj4gPiBhY3Rpb25zWzFdLnR5cGUg PSBSVEVfRkxPV19BQ1RJT05fVFlQRV9FTkQ7DQo+ID4gLyogc2tpcHBlZDogaW5pdCBhdHRyMCAm IHBhdHRlcm4wIGFyZ3MgKi8NCj4gPiBzdHJ1Y3QgcnRlX2Zsb3cgKmZsb3cwID0gcnRlX2Zsb3df Y3JlYXRlKHBvcnRfaWQsICZhdHRyMCwgcGF0dGVybjAsDQo+ID4gCQkJCQlhY3Rpb25zLCBlcnJv cik7DQo+ID4gLyogY3JlYXRlIG1vcmUgcnVsZXMgcmV1c2luZyBzaGFyZWQgYWN0aW9uICovDQo+ ID4gc3RydWN0IHJ0ZV9mbG93ICpmbG93MSA9IHJ0ZV9mbG93X2NyZWF0ZShwb3J0X2lkLCAmYXR0 cjEsIHBhdHRlcm4xLA0KPiA+IAkJCQkJYWN0aW9ucywgZXJyb3IpOw0KPiA+IC8qIHNraXBwZWQ6 IGZvciBmbG93cyAyIHRpbGwgTiAqLw0KPiA+IHN0cnVjdCBydGVfZmxvdyAqZmxvd04gPSBydGVf Zmxvd19jcmVhdGUocG9ydF9pZCwgJmF0dHJOLCBwYXR0ZXJuTiwNCj4gPiAJCQkJCWFjdGlvbnMs IGVycm9yKTsNCj4gPiAvKiB1cGRhdGUgc2hhcmVkIGFjdGlvbiAqLw0KPiA+IHN0cnVjdCBydGVf Zmxvd19hY3Rpb24gdXBkYXRlZF9hY3Rpb247DQo+ID4gLyoNCj4gPiAgKiBza2lwcGVkOiBpbml0 aWFsaXplIHVwZGF0ZWRfYWN0aW9uIGFjY29yZGluZyB0byBkZXNpcmVkIGFjdGlvbg0KPiA+ICAq IGNvbmZpZ3VyYXRpb24gY2hhbmdlDQo+ID4gICovDQo+ID4gcnRlX2Zsb3dfc2hhcmVkX2FjdGlv bl91cGRhdGUocG9ydF9pZCwgaGFuZGxlLCAmdXBkYXRlZF9hY3Rpb24sIGVycm9yKTsNCj4gPiAv Kg0KPiA+ICAqIGZyb20gbm93IG9uIGFsbCBmbG93cyAxIHRpbGwgTiB3aWxsIGFjdCBhY2NvcmRp bmcgdG8gY29uZmlndXJhdGlvbiBvZg0KPiA+ICAqIHVwZGF0ZWRfYWN0aW9uDQo+ID4gICovDQo+ ID4gLyogc2tpcHBlZDogZGVzdHJveSBhbGwgZmxvd3MgMSB0aWxsIE4gKi8NCj4gPiBydGVfZmxv d19zaGFyZWRfYWN0aW9uX2Rlc3Ryb3kocG9ydF9pZCwgaGFuZGxlLCBlcnJvcik7DQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXkgVmVzbm92YXR5IDxhbmRyZXl2QG52aWRpYS5jb20+DQo+ ID4gQWNrZWQtYnk6IE9yaSBLYW0gPG9yaWthQG52aWRpYS5jb20+DQo+IA0KPiBMR1RNDQo+IA0K PiA+IC0tLQ0KPiA+ICBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0ICAgICAgIHwg IDE5ICsrKw0KPiA+ICBkb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIwXzExLnJzdCAgIHwg ICA5ICsrDQo+ID4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXZfdmVyc2lvbi5tYXAgfCAg IDQgKw0KPiA+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5jICAgICAgICAgICAgIHwgIDg0 ICsrKysrKysrKysrDQo+ID4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmggICAgICAgICAg ICAgfCAxNjkgKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPiAgbGliL2xpYnJ0ZV9ldGhkZXYv cnRlX2Zsb3dfZHJpdmVyLmggICAgICB8ICAyMyArKysNCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAz MDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2Rv Yy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QNCj4gYi9kb2MvZ3VpZGVzL3Byb2dfZ3Vp ZGUvcnRlX2Zsb3cucnN0DQo+ID4gaW5kZXggMTE5YjEyODczOS4uOGNmZjhhMDQ0MCAxMDA2NDQN Cj4gPiAtLS0gYS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0DQo+ID4gKysrIGIv ZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+IEBAIC0yNjY2LDYgKzI2NjYs MjUgQEAgdGltZW91dCBwYXNzZWQgd2l0aG91dCBhbnkgbWF0Y2hpbmcgb24gdGhlIGZsb3cuDQo+ ID4gICAgIHwgYGBjb250ZXh0YGAgIHwgdXNlciBpbnB1dCBmbG93IGNvbnRleHQgICAgICAgICB8 DQo+ID4gICAgICstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rDQo+ID4NCj4gPiArQWN0aW9uOiBgYFNIQVJFRGBgDQo+ID4gK15eXl5eXl5eXl5eXl5eXl5e Xg0KPiA+ICsNCj4gPiArRmxvdyBVdGlsaXplIHNoYXJlZCBhY3Rpb24gYnkgaGFuZGxlIGFzIHJl dHVybmVkIGZyb20NCj4gDQo+IFV0aWxpemUgLT4gdXRpbGl6ZQ0KDQpXaWxsIGZpeC4NCj4gDQo+ ID4gK2BgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9jcmVhdGUoKWBgLg0KPiA+ICsNCj4gPiArVGhl IGJlaGF2aW91ciBvZiB0aGUgc2hhcmVkIGFjdGlvbiBkZWZpbmVkIGJ5IGBgYWN0aW9uYGAgYXJn dW1lbnQgb2YgdHlwZQ0KPiA+ICtgYHN0cnVjdCBydGVfZmxvd19hY3Rpb25gYCBwYXNzZWQgdG8g YGBydGVfZmxvd19zaGFyZWRfYWN0aW9uX2NyZWF0ZSgpYGAuDQo+ID4gKw0KPiA+ICsuLiBfdGFi bGVfcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbjoNCj4gPiArDQo+ID4gKy4uIHRhYmxlOjogU0hBUkVE DQo+ID4gKw0KPiA+ICsgICArLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgICB8IEZpZWxkICAgICAg ICAgfA0KPiA+ICsgICArPT09PT09PT09PT09PT09Kw0KPiA+ICsgICB8IG5vIHByb3BlcnRpZXMg fA0KPiA+ICsgICArLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsNCj4gPiAgTmVnYXRpdmUgdHlwZXMN Cj4gPiAgfn5+fn5+fn5+fn5+fn4NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3Jl bF9ub3Rlcy9yZWxlYXNlXzIwXzExLnJzdA0KPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVh c2VfMjBfMTEucnN0DQo+ID4gaW5kZXggMGIyYTM3MDBjMy4uODdjOTA5MDliZSAxMDA2NDQNCj4g PiAtLS0gYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIwXzExLnJzdA0KPiA+ICsrKyBi L2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjBfMTEucnN0DQo+ID4gQEAgLTEwOSw2ICsx MDksMTUgQEAgTmV3IEZlYXR1cmVzDQo+ID4gICAgKiBFeHRlcm4gb2JqZWN0cyBhbmQgZnVuY3Rp b25zIGNhbiBiZSBwbHVnZ2VkIGludG8gdGhlIHBpcGVsaW5lLg0KPiA+ICAgICogVHJhbnNhY3Rp b24tb3JpZW50ZWQgdGFibGUgdXBkYXRlcy4NCj4gPg0KPiA+ICsqICoqQWRkIHNoYXJlZCBhY3Rp b24gc3VwcG9ydCBmb3IgcnRlIGZsb3cuKioNCj4gDQo+IEkgdGhpbmsgaXQgcmVxdWlyZWQgImV0 aGRldjogIiBwcmVmaXguDQo+IEFkZCAtPiBBZGRlZCwgcnRlIC0+IFJURSwgcGx1cyBBUEksIGku ZS46DQo+ICAqKmV0aGRldjogQWRkZWQgc2hhcmVkIGFjdGlvbiBzdXBwb3J0IHRvIFJURSBmbG93 IEFQSS4iDQo+IA0KDQoiZXRoZGV2OiIgcHJlZml4IHVzZWQgaW4gJ0FQSSBDaGFuZ2VzICcuIEkn bGwgY2hhbmdlIGl0IHRvOg0KKiAqKkFkZGVkIGV0aGRldiBBUEkgdG8gc3VwcG9ydCBzaGFyZWQg YWN0aW9uIGZvciBSVEUgZmxvdy4qKg0KDQo+ID4gKw0KPiA+ICsgIEFkZGVkIHNoYXJlZCBhY3Rp b24gc3VwcG9ydCB0byB1dGlsaXplIHNpbmdsZSBydGUgZmxvdyBhY3Rpb24gaW4gbXVsdGlwbGUN Cj4gDQo+IHJ0ZSAtPiBSVEUsIGJ1dCBJJ2QgY29uc2lkZXIgdG8gZHJvcCBSVEUgaW4gYm90aCBk ZXNjcmlwdGlvbiwNCj4gaGVyZSBhbmQgYmVsb3cuDQo+IA0KPiA+ICsgIHJ0ZSBmbG93IHJ1bGVz LiBBbiB1cGRhdGUgb2Ygc2hhcmVkIGFjdGlvbiBjb25maWd1cmF0aW9uIGFsdGVycyB0aGUgYmVo YXZpb3INCj4gPiArICBvZiBhbGwgcnRlIGZsb3cgcnVsZXMgdXNpbmcgaXQuDQo+ID4gKw0KPiA+ ICsgICogQWRkZWQgbmV3IGFjdGlvbjogYGBSVEVfRkxPV19BQ1RJT05fVFlQRV9TSEFSRURgYCB0 byB1c2Ugc2hhcmVkDQo+IGFjdGlvbg0KPiA+ICsgICAgYXMgcnRlIGZsb3cgYWN0aW9uLg0KPiA+ ICsgICogQWRkZWQgbmV3IHJ0ZSBmbG93IEFQSXMgdG8gY3JlYXRlL3VwZGF0ZS9kZXN0cm95L3F1 ZXJ5IHNoYXJlZCBhY3Rpb24uDQo+IA0KPiBNaXNzaW5nIG9uZSBtb3JlIGVtcHR5IGxpbmUgaGVy ZS4NCg0KV2lsbCBmaXguDQo+IA0KPiA+DQo+ID4gIFJlbW92ZWQgSXRlbXMNCj4gPiAgLS0tLS0t LS0tLS0tLQ0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2X3Zl cnNpb24ubWFwDQo+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl92ZXJzaW9uLm1hcA0K PiA+IGluZGV4IGM5NWVmNTE1N2EuLmE4YTQ4MjFkYmIgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xp YnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl92ZXJzaW9uLm1hcA0KPiA+ICsrKyBiL2xpYi9saWJydGVf ZXRoZGV2L3J0ZV9ldGhkZXZfdmVyc2lvbi5tYXANCj4gPiBAQCAtMjI5LDYgKzIyOSwxMCBAQCBF WFBFUklNRU5UQUwgew0KPiA+ICAJIyBhZGRlZCBpbiAyMC4xMQ0KPiA+ICAJcnRlX2V0aF9saW5r X3NwZWVkX3RvX3N0cjsNCj4gPiAgCXJ0ZV9ldGhfbGlua190b19zdHI7DQo+ID4gKwlydGVfZmxv d19zaGFyZWRfYWN0aW9uX2NyZWF0ZTsNCj4gPiArCXJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fZGVz dHJveTsNCj4gPiArCXJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fdXBkYXRlOw0KPiA+ICsJcnRlX2Zs b3dfc2hhcmVkX2FjdGlvbl9xdWVyeTsNCj4gDQo+IFNob3VsZG4ndCBpdCBiZSBhbHBoYWJldGlj YWxseSBzb3J0ZWQ/DQoNClF1ZXJ5IGJlZm9yZSB1cGRhdGU/DQoNCj4gDQo+ID4gIH07DQo+ID4N Cj4gPiAgSU5URVJOQUwgew0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVf Zmxvdy5jIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuYw0KPiA+IGluZGV4IGY4ZmRkNjhm ZTkuLjlhZmE4OTA1ZGYgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zs b3cuYw0KPiA+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmMNCj4gPiBAQCAtMTc0 LDYgKzE3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfZGVzY19kYXRhDQo+IHJ0 ZV9mbG93X2Rlc2NfYWN0aW9uW10gPSB7DQo+ID4gIAlNS19GTE9XX0FDVElPTihTRVRfSVBWNF9E U0NQLCBzaXplb2Yoc3RydWN0DQo+IHJ0ZV9mbG93X2FjdGlvbl9zZXRfZHNjcCkpLA0KPiA+ICAJ TUtfRkxPV19BQ1RJT04oU0VUX0lQVjZfRFNDUCwgc2l6ZW9mKHN0cnVjdA0KPiBydGVfZmxvd19h Y3Rpb25fc2V0X2RzY3ApKSwNCj4gPiAgCU1LX0ZMT1dfQUNUSU9OKEFHRSwgc2l6ZW9mKHN0cnVj dCBydGVfZmxvd19hY3Rpb25fYWdlKSksDQo+ID4gKwlNS19GTE9XX0FDVElPTihTSEFSRUQsIDAp LA0KPiANCj4gSXQgbG9va3MgY29ycmVjdCwgaXQgZGVzZXJ2ZXMgYSBjb21tZW50IHdoaWNoIGV4 cGxhaW5zDQo+IHdoeSBzaXplIGlzIDAgaGVyZS4NCg0KQ29tbWVudCB3aWxsIGJlIGFkZGVkLg0K PiANCj4gPiAgfTsNCj4gPg0KPiA+ICBpbnQNCj4gPiBAQCAtMTI1MSwzICsxMjUyLDg2IEBAIHJ0 ZV9mbG93X2dldF9hZ2VkX2Zsb3dzKHVpbnQxNl90IHBvcnRfaWQsIHZvaWQNCj4gKipjb250ZXh0 cywNCj4gPiAgCQkJCSAgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gPiAgCQkJ CSAgTlVMTCwgcnRlX3N0cmVycm9yKEVOT1RTVVApKTsNCj4gPiAgfQ0KPiA+ICsNCj4gPiArc3Ry dWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24gKg0KPiA+ICtydGVfZmxvd19zaGFyZWRfYWN0aW9u X2NyZWF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgcnRl X2Zsb3dfc2hhcmVkX2FjdGlvbl9jb25mICpjb25mLA0KPiA+ICsJCQkgICAgICBjb25zdCBzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb24sDQo+ID4gKwkJCSAgICAgIHN0cnVjdCBydGVfZmxv d19lcnJvciAqZXJyb3IpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0g JnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gDQo+IFNvcnJ5LCBidXQgaXQgdW5zYWZlIHRv IGluaXRpYWxpemUgaXQgYmVmb3JlIHBvcnRfaWQgY2hlY2suDQo+IEl0IGlzIHRvbyBlcnJvci1w cm9uZSBmb3IgdGhlIGZ1dHVyZSBtYWludGVuYW5jZSBvZiB0aGUNCj4gY29kZS4gU2luY2UsIHBv cnRfaWQgaXMgY2hlY2tlZCBpbmRpcmVjdGlvbiBoZXJlIHZpYQ0KPiBydGVfZmxvd19vcHNfZ2V0 KCksIHBsZWFzZSwgaW5pdGlhbGl6ZSB0aGUgdmFyaWFibGUgb3INCj4gZXZlbiBtb3ZlIGl0IGNv bXBsZXRlbHkgdG8gYmUganVzdCBiZWZvcmUgdXNhZ2UuDQo+IA0KPiBJIHJlYWxpemUgdGhhdCBu ZWFyYnkgY29kZSBkb2VzIHRoZSBzYW1lLCBidXQgSU1ITyBpdCBpcw0KPiBuZXZlciBsYXRlciB0 byB0dXJuIGludG8gdGhlIHJpZ2h0IGRpcmVjdGlvbi4NCg0KV2lsbCBmaXguDQo+IA0KPiA+ICsJ c3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24gKnNoYXJlZF9hY3Rpb247DQo+ID4gKwljb25z dCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVy cm9yKTsNCj4gPiArDQo+ID4gKwlpZiAodW5saWtlbHkoIW9wcykpDQo+ID4gKwkJcmV0dXJuIE5V TEw7DQo+ID4gKwlpZiAobGlrZWx5KCEhb3BzLT5zaGFyZWRfYWN0aW9uX2NyZWF0ZSkpIHsNCj4g PiArCQlzaGFyZWRfYWN0aW9uID0gb3BzLT5zaGFyZWRfYWN0aW9uX2NyZWF0ZShkZXYsIGNvbmYs IGFjdGlvbiwNCj4gPiArCQkJCQkJCSAgZXJyb3IpOw0KPiA+ICsJCWlmIChzaGFyZWRfYWN0aW9u ID09IE5VTEwpDQo+ID4gKwkJCWZsb3dfZXJyKHBvcnRfaWQsIC1ydGVfZXJybm8sIGVycm9yKTsN Cj4gPiArCQlyZXR1cm4gc2hhcmVkX2FjdGlvbjsNCj4gPiArCX0NCj4gPiArCXJ0ZV9mbG93X2Vy cm9yX3NldChlcnJvciwgRU5PU1lTLA0KPiBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVE LA0KPiA+ICsJCQkgICBOVUxMLCBydGVfc3RyZXJyb3IoRU5PU1lTKSk7DQo+ID4gKwlyZXR1cm4g TlVMTDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50DQo+ID4gK3J0ZV9mbG93X3NoYXJlZF9hY3Rp b25fZGVzdHJveSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCQkgICAgICBzdHJ1Y3QgcnRlX2Zs b3dfc2hhcmVkX2FjdGlvbiAqYWN0aW9uLA0KPiA+ICsJCQkgICAgICBzdHJ1Y3QgcnRlX2Zsb3df ZXJyb3IgKmVycm9yKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZy dGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+IA0KPiBzYW1lIGhlcmUNCg0KV2lsbCBmaXguDQo+ IA0KPiA+ICsJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wcyAqb3BzID0gcnRlX2Zsb3dfb3BzX2dl dChwb3J0X2lkLCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJaWYgKHVubGlrZWx5KCFvcHMpKQ0KPiA+ ICsJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ICsJaWYgKGxpa2VseSghIW9wcy0+c2hhcmVkX2Fj dGlvbl9kZXN0cm95KSkNCj4gPiArCQlyZXR1cm4gZmxvd19lcnIocG9ydF9pZCwNCj4gPiArCQkJ CW9wcy0+c2hhcmVkX2FjdGlvbl9kZXN0cm95KGRldiwgYWN0aW9uLA0KPiBlcnJvciksDQo+ID4g KwkJCQllcnJvcik7DQo+ID4gKwlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9T WVMsDQo+ID4gKwkJCQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+ID4gKwkJ CQkgIE5VTEwsIHJ0ZV9zdHJlcnJvcihFTk9TWVMpKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50 DQo+ID4gK3J0ZV9mbG93X3NoYXJlZF9hY3Rpb25fdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ ID4gKwkJCSAgICAgIHN0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uICphY3Rpb24sDQo+ID4g KwkJCSAgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKnVwZGF0ZSwNCj4gPiArCQkJ ICAgICAgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcikNCj4gPiArew0KPiA+ICsJc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiANCj4gc2Ft ZSBoZXJlDQoNCldpbGwgZml4Lg0KPiANCj4gPiArCWNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMg Km9wcyA9IHJ0ZV9mbG93X29wc19nZXQocG9ydF9pZCwgZXJyb3IpOw0KPiA+ICsNCj4gPiArCWlm ICh1bmxpa2VseSghb3BzKSkNCj4gPiArCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiArCWlmIChs aWtlbHkoISFvcHMtPnNoYXJlZF9hY3Rpb25fdXBkYXRlKSkNCj4gPiArCQlyZXR1cm4gZmxvd19l cnIocG9ydF9pZCwgb3BzLT5zaGFyZWRfYWN0aW9uX3VwZGF0ZShkZXYsDQo+IGFjdGlvbiwNCj4g PiArCQkJCXVwZGF0ZSwgZXJyb3IpLA0KPiA+ICsJCQllcnJvcik7DQo+IA0KPiBTb3JyeSwgYnV0 IGFib3ZlIGlzIHZlcnkgaGFyZCB0byBmb2xsb3cgd2hhdCBpcyB3aGVyZS4gTWF5IGJlDQo+IGhl bHBlciB2YXJpYWJsZSBzZm9yIG9wIHJlc3VsdCBzaG91bGQgYmUgdXNlZCB0byBtYWtlIGl0DQo+ IHJlYWRhYmxlLg0KDQpBZ3JlZSwgcmVmYWN0b3JpbmcgbmVlZGVkLg0KPiANCj4gPiArCXJldHVy biBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1NZUywNCj4gPiArCQkJCSAgUlRFX0ZMT1df RVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gPiArCQkJCSAgTlVMTCwgcnRlX3N0cmVycm9yKEVO T1NZUykpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQNCj4gPiArcnRlX2Zsb3dfc2hhcmVkX2Fj dGlvbl9xdWVyeSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCQkgICAgIGNvbnN0IHN0cnVjdCBy dGVfZmxvd19zaGFyZWRfYWN0aW9uICphY3Rpb24sDQo+ID4gKwkJCSAgICAgdm9pZCAqZGF0YSwN Cj4gPiArCQkJICAgICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKQ0KPiA+ICt7DQo+ID4g KwlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ IA0KPiBzYW1lIGhlcmUNCg0KV2lsbCBmaXguDQo+IA0KPiA+ICsJY29uc3Qgc3RydWN0IHJ0ZV9m bG93X29wcyAqb3BzID0gcnRlX2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ID4gKw0K PiA+ICsJaWYgKHVubGlrZWx5KCFvcHMpKQ0KPiA+ICsJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ ICsJaWYgKGxpa2VseSghIW9wcy0+c2hhcmVkX2FjdGlvbl9xdWVyeSkpDQo+ID4gKwkJcmV0dXJu IGZsb3dfZXJyKHBvcnRfaWQsIG9wcy0+c2hhcmVkX2FjdGlvbl9xdWVyeShkZXYsIGFjdGlvbiwN Cj4gPiArCQkJCWRhdGEsIGVycm9yKSwNCj4gPiArCQkJZXJyb3IpOw0KPiANCj4gU29ycnksIGJ1 dCBhYm92ZSBpcyB2ZXJ5IGhhcmQgdG8gZm9sbG93IHdoYXQgaXMgd2hlcmUuIE1heSBiZQ0KPiBo ZWxwZXIgdmFyaWFibGUgc2ZvciBvcCByZXN1bHQgc2hvdWxkIGJlIHVzZWQgdG8gbWFrZSBpdA0K PiByZWFkYWJsZS4NCg0KQWdyZWUsIHJlZmFjdG9yaW5nIG5lZWRlZC4NCj4gDQo+ID4gKwlyZXR1 cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9TWVMsDQo+ID4gKwkJCQkgIFJURV9GTE9X X0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+ID4gKwkJCQkgIE5VTEwsIHJ0ZV9zdHJlcnJvcihF Tk9TWVMpKTsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVf Zmxvdy5oIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+IGluZGV4IGRhOGJmYTU0 ODkuLjkwNTBhZGVjMjMgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zs b3cuaA0KPiA+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiBAQCAtMTcx NCw3ICsxNzE0LDggQEAgZW51bSBydGVfZmxvd19hY3Rpb25fdHlwZSB7DQo+ID4gIAkvKioNCj4g PiAgCSAqIEVuYWJsZXMgY291bnRlcnMgZm9yIHRoaXMgZmxvdyBydWxlLg0KPiA+ICAJICoNCj4g PiAtCSAqIFRoZXNlIGNvdW50ZXJzIGNhbiBiZSByZXRyaWV2ZWQgYW5kIHJlc2V0IHRocm91Z2gg cnRlX2Zsb3dfcXVlcnkoKSwNCj4gPiArCSAqIFRoZXNlIGNvdW50ZXJzIGNhbiBiZSByZXRyaWV2 ZWQgYW5kIHJlc2V0IHRocm91Z2ggcnRlX2Zsb3dfcXVlcnkoKQ0KPiBvcg0KPiA+ICsJICogcnRl X2Zsb3dfc2hhcmVkX2FjdGlvbl9xdWVyeSgpIGlmIHRoZSBhY3Rpb24gcHJvdmlkZWQgdmlhIGhh bmRsZSwNCj4gPiAgCSAqIHNlZSBzdHJ1Y3QgcnRlX2Zsb3dfcXVlcnlfY291bnQuDQo+ID4gIAkg Kg0KPiA+ICAJICogU2VlIHN0cnVjdCBydGVfZmxvd19hY3Rpb25fY291bnQuDQo+ID4gQEAgLTIx MzIsNiArMjEzMywxNCBAQCBlbnVtIHJ0ZV9mbG93X2FjdGlvbl90eXBlIHsNCj4gPiAgCSAqIHNl ZSBlbnVtIFJURV9FVEhfRVZFTlRfRkxPV19BR0VEDQo+ID4gIAkgKi8NCj4gPiAgCVJURV9GTE9X X0FDVElPTl9UWVBFX0FHRSwNCj4gPiArDQo+ID4gKwkvKioNCj4gPiArCSAqIERlc2NyaWJlIGFj dGlvbiBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIGZsb3cgcnVsZXMuDQo+ID4gKwkgKg0KPiA+ICsJ ICogQWxsb3cgbXVsdGlwbGUgcnVsZXMgcmVmZXJlbmNlIHRoZSBzYW1lIGFjdGlvbiBieSBoYW5k bGUgKHNlZQ0KPiA+ICsJICogc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24pLg0KPiA+ICsJ ICovDQo+ID4gKwlSVEVfRkxPV19BQ1RJT05fVFlQRV9TSEFSRUQsDQo+ID4gIH07DQo+ID4NCj4g PiAgLyoqDQo+ID4gQEAgLTI2OTMsNiArMjcwMiwyMCBAQCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u X3NldF9kc2NwIHsNCj4gPiAgCXVpbnQ4X3QgZHNjcDsNCj4gPiAgfTsNCj4gPg0KPiA+ICsNCj4g PiArLyoqDQo+ID4gKyAqIFJURV9GTE9XX0FDVElPTl9UWVBFX1NIQVJFRA0KPiA+ICsgKg0KPiA+ ICsgKiBPcGFxdWUgdHlwZSByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgY3JlYXRpbmcgYSBz aGFyZWQgYWN0aW9uLg0KPiA+ICsgKg0KPiA+ICsgKiBUaGlzIGhhbmRsZSBjYW4gYmUgdXNlZCB0 byBtYW5hZ2UgYW5kIHF1ZXJ5IHRoZSByZWxhdGVkIGFjdGlvbjoNCj4gPiArICogLSBzaGFyZSBp dCBhY3Jvc3MgbXVsdGlwbGUgZmxvdyBydWxlcw0KPiA+ICsgKiAtIHVwZGF0ZSBhY3Rpb24gY29u ZmlndXJhdGlvbg0KPiA+ICsgKiAtIHF1ZXJ5IGFjdGlvbiBkYXRhDQo+ID4gKyAqIC0gZGVzdHJv eSBhY3Rpb24NCj4gPiArICovDQo+ID4gK3N0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uOw0K PiA+ICsNCj4gPiAgLyogTWJ1ZiBkeW5hbWljIGZpZWxkIG9mZnNldCBmb3IgbWV0YWRhdGEuICov DQo+ID4gIGV4dGVybiBpbnQzMl90IHJ0ZV9mbG93X2R5bmZfbWV0YWRhdGFfb2ZmczsNCj4gPg0K PiA+IEBAIC0zMzU3LDYgKzMzODAsMTUwIEBAIGludA0KPiA+ICBydGVfZmxvd19nZXRfYWdlZF9m bG93cyh1aW50MTZfdCBwb3J0X2lkLCB2b2lkICoqY29udGV4dHMsDQo+ID4gIAkJCXVpbnQzMl90 IG5iX2NvbnRleHRzLCBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPg0KPiA+ICsv KioNCj4gPiArICogU3BlY2lmeSBzaGFyZWQgYWN0aW9uIGNvbmZpZ3VyYXRpb24NCj4gPiArICov DQo+ID4gK3N0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uX2NvbmYgew0KPiA+ICsJLyoqDQo+ ID4gKwkgKiBGbG93IGRpcmVjdGlvbiBmb3Igc2hhcmVkIGFjdGlvbiBjb25maWd1cmF0aW9uLg0K PiA+ICsJICoNCj4gPiArCSAqIFNocmVkIGFjdGlvbiBzaG91bGQgYmUgdmFsaWQgYXQgbGVhc3Qg Zm9yIG9uZSBmbG93IGRpcmVjdGlvbiwNCj4gPiArCSAqIG90aGVyd2lzZSBpdCBpcyBpbnZhbGlk IGZvciBib3RoIGluZ3Jlc3MgYW5kIGVncmVzcyBydWxlcy4NCj4gPiArCSAqLw0KPiA+ICsJdWlu dDMyX3QgaW5ncmVzczoxOw0KPiA+ICsJLyoqPCBBY3Rpb24gdmFsaWQgZm9yIHJ1bGVzIGFwcGxp ZWQgdG8gaW5ncmVzcyB0cmFmZmljLiAqLw0KPiA+ICsJdWludDMyX3QgZWdyZXNzOjE7DQo+ID4g KwkvKio8IEFjdGlvbiB2YWxpZCBmb3IgcnVsZXMgYXBwbGllZCB0byBlZ3Jlc3MgdHJhZmZpYy4g Ki8NCj4gPiArfTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBA YiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2Uu DQo+ID4gKyAqDQo+ID4gKyAqIENyZWF0ZSBzaGFyZWQgYWN0aW9uIGZvciByZXVzZSBpbiBtdWx0 aXBsZSBmbG93IHJ1bGVzLg0KPiA+ICsgKiBUaGUgY3JlYXRlZCBzaGFyZWQgYWN0aW9uIGhhcyBz aW5nbGUgc3RhdGUgYW5kIGNvbmZpZ3VyYXRpb24NCj4gPiArICogYWNyb3NzIGFsbCBmbG93IHJ1 bGVzIHVzaW5nIGl0Lg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gPiAr ICogICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiA+ICsg KiBAcGFyYW1baW5dIGNvbmYNCj4gPiArICogICBTaGFyZWQgYWN0aW9uIGNvbmZpZ3VyYXRpb24u DQo+ID4gKyAqIEBwYXJhbVtpbl0gYWN0aW9uDQo+ID4gKyAqICAgQWN0aW9uIGNvbmZpZ3VyYXRp b24gZm9yIHNoYXJlZCBhY3Rpb24gY3JlYXRpb24uDQo+ID4gKyAqIEBwYXJhbVtvdXRdIGVycm9y DQo+ID4gKyAqICAgUGVyZm9ybSB2ZXJib3NlIGVycm9yIHJlcG9ydGluZyBpZiBub3QgTlVMTC4g UE1EcyBpbml0aWFsaXplIHRoaXMNCj4gPiArICogICBzdHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJv ciBvbmx5Lg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgQSB2YWxpZCBoYW5kbGUgaW4gY2Fz ZSBvZiBzdWNjZXNzLCBOVUxMIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldA0KPiA+ICsg KiAgIHRvIG9uZSBvZiB0aGUgZXJyb3IgY29kZXMgZGVmaW5lZDoNCj4gPiArICogICAtIChFTk9T WVMpIGlmIHVuZGVybHlpbmcgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBmdW5jdGlvbmFs aXR5Lg0KPiA+ICsgKiAgIC0gKEVJTykgaWYgdW5kZXJseWluZyBkZXZpY2UgaXMgcmVtb3ZlZC4N Cj4gPiArICogICAtIChFSU5WQUwpIGlmICphY3Rpb24qIGludmFsaWQuDQo+ID4gKyAqICAgLSAo RU5PVFNVUCkgaWYgKmFjdGlvbiogdmFsaWQgYnV0IHVuc3VwcG9ydGVkLg0KPiANCj4gRU5PREVW ID8NCg0KQ2FuIHlvdSBlbGFib3JhdGU/DQo+IA0KPiA+ICsgKi8NCj4gPiArX19ydGVfZXhwZXJp bWVudGFsDQo+ID4gK3N0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uICoNCj4gPiArcnRlX2Zs b3dfc2hhcmVkX2FjdGlvbl9jcmVhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQkJICAgICAg Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fY29uZiAqY29uZiwNCj4gPiArCQkJ ICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9uLA0KPiA+ICsJCQkgICAg ICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsg KiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ug d2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4gKyAqDQo+ID4gKyAqIERlc3Ryb3kgdGhlIHNoYXJl ZCBhY3Rpb24gYnkgaGFuZGxlLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQN Cj4gPiArICogICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0K PiA+ICsgKiBAcGFyYW1baW5dIGFjdGlvbg0KPiA+ICsgKiAgIEhhbmRsZSBmb3IgdGhlIHNoYXJl ZCBhY3Rpb24gdG8gYmUgZGVzdHJveWVkLg0KPiA+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiA+ ICsgKiAgIFBlcmZvcm0gdmVyYm9zZSBlcnJvciByZXBvcnRpbmcgaWYgbm90IE5VTEwuIFBNRHMg aW5pdGlhbGl6ZSB0aGlzDQo+ID4gKyAqICAgc3RydWN0dXJlIGluIGNhc2Ugb2YgZXJyb3Igb25s eS4NCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIC0gKDApIGlmIHN1Y2Nlc3MuDQo+ID4gKyAq ICAgLSAoLUVOT1NZUykgaWYgdW5kZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlz IGZ1bmN0aW9uYWxpdHkuDQo+ID4gKyAqICAgLSAoLUVJTykgaWYgdW5kZXJseWluZyBkZXZpY2Ug aXMgcmVtb3ZlZC4NCj4gPiArICogICAtICgtRU5PRU5UKSBpZiBhY3Rpb24gcG9pbnRlZCBieSAq YWN0aW9uKiBoYW5kbGUgd2FzIG5vdCBmb3VuZC4NCj4gPiArICogICAtICgtRVRPT01BTllSRUZT KSBpZiBhY3Rpb24gcG9pbnRlZCBieSAqYWN0aW9uKiBoYW5kbGUgc3RpbGwgdXNlZCBieSBvbmUN Cj4gb3INCj4gPiArICogICAgIG1vcmUgcnVsZXMNCj4gPiArICogICBydGVfZXJybm8gaXMgYWxz byBzZXQuDQo+IA0KPiAtRU5PREVWPw0KDQpTYW1lIGhlcmUuDQo+IA0KPiA+ICsgKi8NCj4gPiAr X19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK2ludA0KPiA+ICtydGVfZmxvd19zaGFyZWRfYWN0aW9u X2Rlc3Ryb3kodWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQkJICAgICAgIHN0cnVjdCBydGVfZmxv d19zaGFyZWRfYWN0aW9uICphY3Rpb24sDQo+ID4gKwkJCSAgICAgICBzdHJ1Y3QgcnRlX2Zsb3df ZXJyb3IgKmVycm9yKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsg KiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3Rp Y2UuDQo+ID4gKyAqDQo+ID4gKyAqIFVwZGF0ZSBpbi1wbGFjZSB0aGUgc2hhcmVkIGFjdGlvbiBj b25maWd1cmF0aW9uIHBvaW50ZWQgYnkgKmFjdGlvbioNCj4gaGFuZGxlDQo+ID4gKyAqIHdpdGgg dGhlIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQgYXMgKnVwZGF0ZSogYXJndW1lbnQuDQo+ID4gKyAq IFRoZSB1cGRhdGUgb2YgdGhlIHNoYXJlZCBhY3Rpb24gY29uZmlndXJhdGlvbiBlZmZlY3RzIGFs bCBmbG93IHJ1bGVzIHJldXNpbmcNCj4gPiArICogdGhlIGFjdGlvbiB2aWEgaGFuZGxlLg0KPiA+ ICsgKg0KPiA+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gPiArICogICAgVGhlIHBvcnQgaWRl bnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiA+ICsgKiBAcGFyYW1baW5dIGFjdGlv bg0KPiA+ICsgKiAgIEhhbmRsZSBmb3IgdGhlIHNoYXJlZCBhY3Rpb24gdG8gYmUgdXBkYXRlZC4N Cj4gPiArICogQHBhcmFtW2luXSB1cGRhdGUNCj4gPiArICogICBBY3Rpb24gc3BlY2lmaWNhdGlv biB1c2VkIHRvIG1vZGlmeSB0aGUgYWN0aW9uIHBvaW50ZWQgYnkgaGFuZGxlLg0KPiA+ICsgKiAg ICp1cGRhdGUqIHNob3VsZCBiZSBvZiBzYW1lIHR5cGUgd2l0aCB0aGUgYWN0aW9uIHBvaW50ZWQg YnkgdGhlICphY3Rpb24qDQo+ID4gKyAqICAgaGFuZGxlIGFyZ3VtZW50LCBvdGhlcndpc2UgY29u c2lkZXJlZCBhcyBpbnZhbGlkLg0KPiA+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiA+ICsgKiAg IFBlcmZvcm0gdmVyYm9zZSBlcnJvciByZXBvcnRpbmcgaWYgbm90IE5VTEwuIFBNRHMgaW5pdGlh bGl6ZSB0aGlzDQo+ID4gKyAqICAgc3RydWN0dXJlIGluIGNhc2Ugb2YgZXJyb3Igb25seS4NCj4g PiArICogQHJldHVybg0KPiA+ICsgKiAgIC0gKDApIGlmIHN1Y2Nlc3MuDQo+ID4gKyAqICAgLSAo LUVOT1NZUykgaWYgdW5kZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZ1bmN0 aW9uYWxpdHkuDQo+ID4gKyAqICAgLSAoLUVJTykgaWYgdW5kZXJseWluZyBkZXZpY2UgaXMgcmVt b3ZlZC4NCj4gPiArICogICAtICgtRUlOVkFMKSBpZiAqdXBkYXRlKiBpbnZhbGlkLg0KPiA+ICsg KiAgIC0gKC1FTk9UU1VQKSBpZiAqdXBkYXRlKiB2YWxpZCBidXQgdW5zdXBwb3J0ZWQuDQo+ID4g KyAqICAgLSAoLUVOT0VOVCkgaWYgYWN0aW9uIHBvaW50ZWQgYnkgKmN0eCogd2FzIG5vdCBmb3Vu ZC4NCj4gDQo+IC1FTk9ERVYgPw0KDQpBbmQgb25jZSBtb3JlLg0KPiANCj4gPiArICogICBydGVf ZXJybm8gaXMgYWxzbyBzZXQuDQo+ID4gKyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4g PiAraW50DQo+ID4gK3J0ZV9mbG93X3NoYXJlZF9hY3Rpb25fdXBkYXRlKHVpbnQxNl90IHBvcnRf aWQsDQo+ID4gKwkJCSAgICAgIHN0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uICphY3Rpb24s DQo+ID4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKnVwZGF0ZSwNCj4g PiArCQkJICAgICAgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ID4gKw0KPiA+ICsv KioNCj4gPiArICogQHdhcm5pbmcNCj4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBt YXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBRdWVyeSB0 aGUgc2hhcmVkIGFjdGlvbiBieSBoYW5kbGUuDQo+ID4gKyAqDQo+ID4gKyAqIFJldHJpZXZlIGFj dGlvbi1zcGVjaWZpYyBkYXRhIHN1Y2ggYXMgY291bnRlcnMuDQo+ID4gKyAqIERhdGEgaXMgZ2F0 aGVyZWQgYnkgc3BlY2lhbCBhY3Rpb24gd2hpY2ggbWF5IGJlIHByZXNlbnQvcmVmZXJlbmNlZCBp bg0KPiA+ICsgKiBtb3JlIHRoYW4gb25lIGZsb3cgcnVsZSBkZWZpbml0aW9uLg0KPiA+ICsgKg0K PiA+ICsgKiBcc2VlIFJURV9GTE9XX0FDVElPTl9UWVBFX0NPVU5UDQo+ID4gKyAqDQo+ID4gKyAq IEBwYXJhbSBwb3J0X2lkDQo+ID4gKyAqICAgUG9ydCBpZGVudGlmaWVyIG9mIEV0aGVybmV0IGRl dmljZS4NCj4gPiArICogQHBhcmFtW2luXSBhY3Rpb24NCj4gPiArICogICBIYW5kbGUgZm9yIHRo ZSBzaGFyZWQgYWN0aW9uIHRvIHF1ZXJ5Lg0KPiA+ICsgKiBAcGFyYW1baW4sIG91dF0gZGF0YQ0K PiA+ICsgKiAgIFBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIGFzc29jaWF0ZWQgcXVlcnkgZGF0 YSB0eXBlLg0KPiA+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiA+ICsgKiAgIFBlcmZvcm0gdmVy Ym9zZSBlcnJvciByZXBvcnRpbmcgaWYgbm90IE5VTEwuIFBNRHMgaW5pdGlhbGl6ZSB0aGlzDQo+ ID4gKyAqICAgc3RydWN0dXJlIGluIGNhc2Ugb2YgZXJyb3Igb25seS4NCj4gPiArICoNCj4gPiAr ICogQHJldHVybg0KPiA+ICsgKiAgIDAgb24gc3VjY2VzcywgYSBuZWdhdGl2ZSBlcnJubyB2YWx1 ZSBvdGhlcndpc2UgYW5kIHJ0ZV9lcnJubyBpcyBzZXQuDQo+ID4gKyAqLw0KPiA+ICtfX3J0ZV9l eHBlcmltZW50YWwNCj4gPiAraW50DQo+ID4gK3J0ZV9mbG93X3NoYXJlZF9hY3Rpb25fcXVlcnko dWludDE2X3QgcG9ydF9pZCwNCj4gPiArCQkJICAgICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfc2hh cmVkX2FjdGlvbiAqYWN0aW9uLA0KPiA+ICsJCQkgICAgIHZvaWQgKmRhdGEsDQo+ID4gKwkJCSAg ICAgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ID4gKw0KPiA+ICAjaWZkZWYgX19j cGx1c3BsdXMNCj4gPiAgfQ0KPiA+ICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0 ZV9ldGhkZXYvcnRlX2Zsb3dfZHJpdmVyLmgNCj4gYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxv d19kcml2ZXIuaA0KPiA+IGluZGV4IDNlZTg3MWQzZWIuLmFkYWFjZTQ3ZWEgMTAwNjQ0DQo+ID4g LS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3dfZHJpdmVyLmgNCj4gPiArKysgYi9saWIv bGlicnRlX2V0aGRldi9ydGVfZmxvd19kcml2ZXIuaA0KPiA+IEBAIC0xMDgsNiArMTA4LDI5IEBA IHN0cnVjdCBydGVfZmxvd19vcHMgew0KPiA+ICAJCSB2b2lkICoqY29udGV4dCwNCj4gPiAgCQkg dWludDMyX3QgbmJfY29udGV4dHMsDQo+ID4gIAkJIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJy KTsNCj4gPiArCS8qKiBTZWUgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9jcmVhdGUoKSAqLw0KPiA+ ICsJc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24gKigqc2hhcmVkX2FjdGlvbl9jcmVhdGUp DQo+ID4gKwkJKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICsJCSBjb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9jb25mICpjb25mLA0KPiA+ICsJCSBjb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uICphY3Rpb24sDQo+ID4gKwkJIHN0cnVjdCBydGVfZmxvd19lcnJvciAq ZXJyb3IpOw0KPiA+ICsJLyoqIFNlZSBydGVfZmxvd19zaGFyZWRfYWN0aW9uX2Rlc3Ryb3koKSAq Lw0KPiA+ICsJaW50ICgqc2hhcmVkX2FjdGlvbl9kZXN0cm95KQ0KPiA+ICsJCShzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwNCj4gPiArCQkgc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24gKnNo YXJlZF9hY3Rpb24sDQo+ID4gKwkJIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiA+ ICsJLyoqIFNlZSBydGVfZmxvd19zaGFyZWRfYWN0aW9uX3VwZGF0ZSgpICovDQo+ID4gKwlpbnQg KCpzaGFyZWRfYWN0aW9uX3VwZGF0ZSkNCj4gPiArCQkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs DQo+ID4gKwkJIHN0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uICpzaGFyZWRfYWN0aW9uLA0K PiA+ICsJCSBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICp1cGRhdGUsDQo+ID4gKwkJIHN0 cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiA+ICsJLyoqIFNlZSBydGVfZmxvd19zaGFy ZWRfYWN0aW9uX3F1ZXJ5KCkgKi8NCj4gPiArCWludCAoKnNoYXJlZF9hY3Rpb25fcXVlcnkpDQo+ ID4gKwkJKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICsJCSBjb25zdCBzdHJ1Y3QgcnRl X2Zsb3dfc2hhcmVkX2FjdGlvbiAqc2hhcmVkX2FjdGlvbiwNCj4gPiArCQkgdm9pZCAqZGF0YSwN Cj4gPiArCQkgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ID4gIH07DQo+ID4NCj4g PiAgLyoqDQo+ID4NCg0K