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 B4D65A0524; Sun, 23 Feb 2020 09:42:02 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4F49A1BE85; Sun, 23 Feb 2020 09:42:02 +0100 (CET) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150070.outbound.protection.outlook.com [40.107.15.70]) by dpdk.org (Postfix) with ESMTP id 0D6FD2C39 for ; Sun, 23 Feb 2020 09:42:01 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B6tuKIgUrXnM0SNvIerxWUIhVLPYjNGzqftvPKUnuj/zCAcf/ap8fU8DHJmm/H7sTRmPrA/294YFB9uYTOL9EvFOyd8V7ryKGFtW+pBZ2sbHgB/uMdPQq6geGKTkt+vWM4tfCcDTNhxky0S2coS0D3aCqdo/cU5dKQSlKMvKoi/ttXRt22+AGE8GX1ip7iMeQxik9m5RyKzmrtOr8e1pAkUuQVyn3UYuTzkoIvYg6/46yBbt5Eu84tOYpvRa5NFtG/CZSDy4ELJlxH2wWGS65Yofv2i0OxziQCqXYRHBowNsdoCDudkeg7JVOy/LVJ4PoyFuel+mtD+pga2UCaRhwQ== 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=7s3F73FNU/agJ50LUa6n25ImR2OPaJzkTATIyuVBbQU=; b=CDZwUiHCBlUaATBbMKf95TdgSywGyCLAOoYK52UBL2x17wdhwcpUgyQ5sf7cE7E1RviVzsoMcR/5ookvW6MAD7aN2d+UIQXlzsq/KH6vpi4Kn6nXFvi3egzqToMFxXkAEX0r3PJiT5Qy86doHjXX9uWwSyDA1CmT2tWJhGtzXvTT9qDxZYQhKLxaxMgljC4vGXvsntZtyX9W1/Fkon5tRsumiPtfZb8oTjeyJLP1GljM0jDSBFw7jNSLCg8vPg29SemovXpj1KxljG/Cy5sPFYlgXHUdr75qufwtAN9GUFWUEpU3cXQYXhk2+H5ZCSiYp7TDFuBoq7lkZNpvlha/yg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7s3F73FNU/agJ50LUa6n25ImR2OPaJzkTATIyuVBbQU=; b=YKgpUPu5PFYUT54tjMnQasaLSS5hYltrR/WkSU4G8bg+xioECW9KFULlSZRoICu8DT9hNpY/jGFmizdqnGlgwe5ZPZhQgXhxCdQ9H76m3EIpBW/qcV6G481e4Xg6pjleSqE2DaCwKHqy14KiwizVRszwrZPUaXYkruYP3cNBU/g= Received: from AM6PR05MB5176.eurprd05.prod.outlook.com (20.177.196.158) by AM6PR05MB5350.eurprd05.prod.outlook.com (20.177.190.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.21; Sun, 23 Feb 2020 08:41:59 +0000 Received: from AM6PR05MB5176.eurprd05.prod.outlook.com ([fe80::1888:dbf5:a84e:c53b]) by AM6PR05MB5176.eurprd05.prod.outlook.com ([fe80::1888:dbf5:a84e:c53b%6]) with mapi id 15.20.2750.021; Sun, 23 Feb 2020 08:41:59 +0000 From: Ori Kam To: Jerin Jacob CC: Jerin Jacob , "xiang.w.wang@intel.com" , dpdk-dev , Pavan Nikhilesh , Shahaf Shuler , Hemant Agrawal , Opher Reviv , Alex Rosenbaum , "dovrat@marvell.com" , Prasun Kapoor , Nipun Gupta , "Richardson, Bruce" , "yang.a.hong@intel.com" , "harry.chang@intel.com" , "gu.jian1@zte.com.cn" , "shanjiangh@chinatelecom.cn" , "zhangy.yun@chinatelecom.cn" , "lixingfu@huachentel.com" , "wushuai@inspur.com" , "yuyingxia@yxlink.com" , "fanchenggang@sunyainfo.com" , "davidfgao@tencent.com" , "liuzhong1@chinaunicom.cn" , "zhaoyong11@huawei.com" , "oc@yunify.com" , "jim@netgate.com" , "hongjun.ni@intel.com" , "j.bromhead@titan-ic.com" , "deri@ntop.org" , "fc@napatech.com" , "arthur.su@lionic.com" , Thomas Monjalon Thread-Topic: [dpdk-dev] [PATCH v3] regexdev: introduce regexdev subsystem Thread-Index: AQHV1blwgq+qOSqUJECwZj1bGQPyTagnlXOAgADvWOA= Date: Sun, 23 Feb 2020 08:41:59 +0000 Message-ID: References: <20190627155036.56940-1-jerinj@marvell.com> <1580202029-37096-1-git-send-email-orika@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=orika@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 65dba9a7-4975-47d3-d945-08d7b83c3f61 x-ms-traffictypediagnostic: AM6PR05MB5350:|AM6PR05MB5350: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-forefront-prvs: 0322B4EDE1 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(346002)(376002)(39850400004)(396003)(366004)(199004)(189003)(86362001)(30864003)(66946007)(76116006)(66446008)(66556008)(64756008)(66476007)(2906002)(478600001)(71200400001)(5660300002)(6916009)(52536014)(8676002)(33656002)(81166006)(81156014)(316002)(54906003)(7406005)(55016002)(7696005)(8936002)(7416002)(186003)(6506007)(53546011)(26005)(4326008)(9686003)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB5350; H:AM6PR05MB5176.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3Ydu1F0iVoyXViI+waFFVu7yYgv44jZkkQqK4o9Jq9eRGCy23kqPEMskhACeQh2hs7aMY9qsVmUTnYe5mjA2k66jR/fGqYQgG17A5JcSydgTzo/1CCPMOzOwcmf+WbTEAY7AyY2SywKAUzBpz8mDxpGLM/x2/oU1RMjoUWDI56Vu3LPwza2dR9GTmkilGG1tyNR+C307Ym0mGO/9RDAhoRWUyJ84bBeSaQT+w7CpptG5WuGbQlMC7sV+e0OLLtBHenTqkatnKr57NDEQMdE+FA2Rk8nFYbJEbkSv30C4T6YMsD/rHgW1dYVng1/kNjxU46fDxcrL+Vep57DYwk+WUjn0sPva6reINyv1ednFaKaA5FRoxdinf5jtXcBxsGuBDhvFop5bCps1CHOmZovLo/4evTsjcgKVjwrLpyRKVuiYslJoePWCP/uUFBPEXNH6 x-ms-exchange-antispam-messagedata: AZHCMd1aMft9j9ku+/aFjJBKhhnzx7EkxtaOdhnpVZ3BzahR6KPuYSVPXlfEluHiwrAjf8oK+X3Zme8QHg8UVDjBn7K6Fnje9A1wnvhrBVkpuLTvgf65bKnyEKr74oKpC5Je02BQCjcIfHamLNiqzw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 65dba9a7-4975-47d3-d945-08d7b83c3f61 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Feb 2020 08:41:59.5551 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: AwSUl0ju5tTO7UnIq7f6A/X6jdRzAbMFUKz7CvjZWc4Q6aEaMJqJ9FPBSfulSCrPfSTXxdAAAJ41Esqfh0GXCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB5350 Subject: Re: [dpdk-dev] [PATCH v3] regexdev: introduce regexdev subsystem 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" SGkgSmVyaW4sDQoNClRoYW5rcywgZm9yIHRoZSByZXZpZXcuDQpQU0INCg0KT3JpIEthbQ0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEplcmluIEphY29iIDxqZXJpbmph Y29ia0BnbWFpbC5jb20+DQo+IFNlbnQ6IFNhdHVyZGF5LCBGZWJydWFyeSAyMiwgMjAyMCA2OjUy IFBNDQo+IFRvOiBPcmkgS2FtIDxvcmlrYUBtZWxsYW5veC5jb20+DQo+IENjOiBKZXJpbiBKYWNv YiA8amVyaW5qQG1hcnZlbGwuY29tPjsgeGlhbmcudy53YW5nQGludGVsLmNvbTsgZHBkay1kZXYN Cj4gPGRldkBkcGRrLm9yZz47IFBhdmFuIE5pa2hpbGVzaCA8cGJoYWdhdmF0dWxhQG1hcnZlbGwu Y29tPjsgU2hhaGFmDQo+IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBIZW1hbnQgQWdy YXdhbA0KPiA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT47IE9waGVyIFJldml2IDxvcGhlckBtZWxs YW5veC5jb20+OyBBbGV4DQo+IFJvc2VuYmF1bSA8YWxleHJAbWVsbGFub3guY29tPjsgZG92cmF0 QG1hcnZlbGwuY29tOyBQcmFzdW4gS2Fwb29yDQo+IDxwa2Fwb29yQG1hcnZlbGwuY29tPjsgTmlw dW4gR3VwdGEgPG5pcHVuLmd1cHRhQG54cC5jb20+OyBSaWNoYXJkc29uLA0KPiBCcnVjZSA8YnJ1 Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyB5YW5nLmEuaG9uZ0BpbnRlbC5jb207DQo+IGhhcnJ5 LmNoYW5nQGludGVsLmNvbTsgZ3UuamlhbjFAenRlLmNvbS5jbjsgc2hhbmppYW5naEBjaGluYXRl bGVjb20uY247DQo+IHpoYW5neS55dW5AY2hpbmF0ZWxlY29tLmNuOyBsaXhpbmdmdUBodWFjaGVu dGVsLmNvbTsgd3VzaHVhaUBpbnNwdXIuY29tOw0KPiB5dXlpbmd4aWFAeXhsaW5rLmNvbTsgZmFu Y2hlbmdnYW5nQHN1bnlhaW5mby5jb207DQo+IGRhdmlkZmdhb0B0ZW5jZW50LmNvbTsgbGl1emhv bmcxQGNoaW5hdW5pY29tLmNuOw0KPiB6aGFveW9uZzExQGh1YXdlaS5jb207IG9jQHl1bmlmeS5j b207IGppbUBuZXRnYXRlLmNvbTsNCj4gaG9uZ2p1bi5uaUBpbnRlbC5jb207IGouYnJvbWhlYWRA dGl0YW4taWMuY29tOyBkZXJpQG50b3Aub3JnOw0KPiBmY0BuYXBhdGVjaC5jb207IGFydGh1ci5z dUBsaW9uaWMuY29tOyBUaG9tYXMgTW9uamFsb24NCj4gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+ IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2M10gcmVnZXhkZXY6IGludHJvZHVjZSBy ZWdleGRldiBzdWJzeXN0ZW0NCj4gDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfcmVnZXhk ZXYvcnRlX3JlZ2V4ZGV2LmgNCj4gYi9saWIvbGlicnRlX3JlZ2V4ZGV2L3J0ZV9yZWdleGRldi5o DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi5jNDIxMjhiDQo+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2xpYi9saWJydGVfcmVnZXhkZXYvcnRlX3JlZ2V4 ZGV2LmgNCj4gPiBAQCAtMCwwICsxLDE0MTEgQEANCj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiA+ICsgKiBDb3B5cmlnaHQoQykgMjAxOSBNYXJ2ZWxsIElu dGVybmF0aW9uYWwgTHRkLg0KPiA+ICsgKiBDb3B5cmlnaHQoQykgMjAyMCBNZWxsYW5veCBJbnRl cm5hdGlvbmFsIEx0ZC4NCj4gDQo+IFRoZXJlIGFyZSBhIGZldyBjb21tZW50cyBmcm9tIFhpYW5n IGFzIHdlbGwuIFNvIGxldCdzIGFkZCBJbnRlbCBhbHNvDQo+IHRvIHRoZSBsaXN0Lg0KPiANCg0K U3VyZSBubyBwcm9ibGVtLg0KDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBfUlRFX1JF R0VYREVWX0hfDQo+ID4gKyNkZWZpbmUgX1JURV9SRUdFWERFVl9IXw0KPiANCj4gPiArDQo+ID4g Ky8qKg0KPiA+ICsgKiBSZWdFeCBkZXZpY2UgaW5mb3JtYXRpb24NCj4gPiArICovDQo+ID4gK3N0 cnVjdCBydGVfcmVnZXhfZGV2X2luZm8gew0KPiA+ICsgICAgICAgY29uc3QgY2hhciAqZHJpdmVy X25hbWU7IC8qKjwgUmVnRXggZHJpdmVyIG5hbWUuICovDQo+ID4gKyAgICAgICBzdHJ1Y3QgcnRl X2RldmljZSAqZGV2OyAvKio8IERldmljZSBpbmZvcm1hdGlvbi4gKi8NCj4gPiArICAgICAgIHVp bnQxNl90IG1heF9tYXRjaGVzOw0KPiA+ICsgICAgICAgLyoqPCBNYXhpbXVtIG1hdGNoZXMgcGVy IHNjYW4gc3VwcG9ydGVkIGJ5IHRoaXMgZGV2aWNlLiAqLw0KPiA+ICsgICAgICAgdWludDE2X3Qg bWF4X3F1ZXVlX3BhaXJzOw0KPiA+ICsgICAgICAgLyoqPCBNYXhpbXVtIHF1ZXVlIHBhaXJzIHN1 cHBvcnRlZCBieSB0aGlzIGRldmljZS4gKi8NCj4gPiArICAgICAgIHVpbnQxNl90IG1heF9wYXls b2FkX3NpemU7DQo+ID4gKyAgICAgICAvKio8IE1heGltdW0gcGF5bG9hZCBzaXplIGZvciBhIHBh dHRlcm4gbWF0Y2ggcmVxdWVzdCBvciBzY2FuLg0KPiA+ICsgICAgICAgICogQHNlZSBSVEVfUkVH RVhfREVWX0NGR19DUk9TU19CVUZGRVJfU0NBTl9GDQo+ID4gKyAgICAgICAgKi8NCj4gPiArICAg ICAgIHVpbnQzMl90IG1heF9ydWxlc19wZXJfZ3JvdXA7DQo+ID4gKyAgICAgICAvKio8IE1heGlt dW0gcnVsZXMgc3VwcG9ydGVkIHBlciBncm91cCBieSB0aGlzIGRldmljZS4NCj4gPiArICAgICAg ICAqIFRoaXMgbnVtYmVyIGNhbid0IGJlIGxhcmdlciB0aGVuIDIwIGJpdHMuDQo+IA0KPiBzL3Ro ZW4vdGhhbg0KPiANCj4gSSB0aGluaywgd2UgZG9uJ3QgbmVlZCB0byBzYXkgdGhpcyAiIFRoaXMg bnVtYmVyIGNhbid0IGJlIGxhcmdlciB0aGFuIDIwIGJpdHMuIg0KPiBJdCBtYXkgaGVscCBTVyBk cml2ZXJzLg0KPiANCg0KQWdyZWUgSSB3aWxsIHJlbW92ZSB0aGUgMjAgYml0cyBwYXJ0Lg0KDQo+ IA0KPiANCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgdWludDE2X3QgbWF4X2dyb3VwczsN Cj4gPiArICAgICAgIC8qKjwgTWF4aW11bSBncm91cCBzdXBwb3J0ZWQgYnkgdGhpcyBkZXZpY2Uu DQo+ID4gKyAgICAgICAgKiBUaGlzIG51bWJlciBjYW4ndCBiZSBsYXJnZXIgdGhlbiAxMiBiaXRz Lg0KPiBzL3RoZW4vdGhhbg0KPiBJIHRoaW5rLCB3ZSBkb24ndCBuZWVkIHRvIHNheSB0aGlzICIg VGhpcyBudW1iZXIgY2FuJ3QgYmUgbGFyZ2VyIHRoYW4gMTIgYml0cy4iDQo+IEl0IG1heSBoZWxw IFNXIGRyaXZlcnMuDQo+DQoNCkFncmVlIHdpbGwgcmVtb3ZlIHRoZSAxMiBiaXRzIHBhcnQuDQog DQo+ID4gKyAgICAgICAgKi8NCj4gPiArICAgICAgIHVpbnQzMl90IHJlZ2V4X2Rldl9jYXBhOw0K PiA+ICsgICAgICAgLyoqPCBSZWdFeCBkZXZpY2UgY2FwYWJpbGl0aWVzLiBAc2VlIFJURV9SRUdF WF9ERVZfQ0FQQV8qICovDQo+ID4gKyAgICAgICB1aW50NjRfdCBydWxlX2ZsYWdzOw0KPiA+ICsg ICAgICAgLyoqPCBTdXBwb3J0ZWQgY29tcGlsZXIgcnVsZSBmbGFncy4NCj4gPiArICAgICAgICAq IEBzZWUgUlRFX1JFR0VYX1BDUkVfUlVMRV8qLCBzdHJ1Y3QgcnRlX3JlZ2V4X3J1bGU6OnJ1bGVf ZmxhZ3MNCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgdWludDhfdCBtYXhfc2NhdHRlcl9n YXRoZXI7DQo+ID4gKyAgICAgICAvKio8IFRoZSBtYXggc3VwcG9ydGVkIG51bWJlciBvZiBidWZm ZXJzIHRoYXQgY2FuDQo+ID4gKyAgICAgICAgKiBiZSB1c2VkIGluIGEgc2luZ2xlIG9wcy4gVGhl IHRvdGFsIHNpemUgb2YgYWxsIGVsZW1lbnRzDQo+ID4gKyAgICAgICAgKiBtdXN0IGJlIGxlc3Mg dGhlbiBtYXhfcGF5bG9hZF9zaXplLg0KPiA+ICsgICAgICAgICovDQo+ID4gK307DQo+IDxzbmlw Pg0KPiANCj4gPiAraW50DQo+ID4gK3J0ZV9yZWdleF9ydWxlX2RiX2NvbXBpbGUodWludDhfdCBk ZXZfaWQpOw0KPiA+ICsNCj4gDQo+IEkgdGhpbmsgeW91ciAicnRlX3JlZ2V4X3J1bGVfZGJfY29t cGlsZV9hY3RpdmF0ZSgpIC0gY29tcGlsZSBhbmQNCj4gYWN0aXZhdGUgdGhlIG5ldyBydWxlIHNl dCINCj4gQVBJIG5hbWUgbG9va3MgZ29vZC4gSSBhbSBmb3IgcnRlX3JlZ2V4X3J1bGVfZGJfY29t cGlsZV9hY3RpdmF0ZSgpLg0KPiANCg0KSSBsaWtlIHlvdXIgbmFtZSwgd2lsbCBjaGFuZ2UgdG8g Y29tcGlsZV9hY3RpdmF0ZS4NCg0KPiANCj4gPiArLyogRmFzdCBwYXRoIEFQSXMgKi8NCj4gPiAr DQo+ID4gKy8qKg0KPiA+ICsgKiBUaGUgZ2VuZXJpYyAqcnRlX3JlZ2V4X21hdGNoKiBzdHJ1Y3R1 cmUgdG8gaG9sZCB0aGUgUmVnRXggbWF0Y2gNCj4gYXR0cmlidXRlcy4NCj4gPiArICogQHNlZSBz dHJ1Y3QgcnRlX3JlZ2V4X29wczo6bWF0Y2hlcw0KPiA+ICsgKi8NCj4gPiArc3RydWN0IHJ0ZV9y ZWdleF9tYXRjaCB7DQo+ID4gKyAgICAgICBSVEVfU1REX0MxMQ0KPiA+ICsgICAgICAgdW5pb24g ew0KPiA+ICsgICAgICAgICAgICAgICB1aW50NjRfdCB1NjQ7DQo+ID4gKyAgICAgICAgICAgICAg IHN0cnVjdCB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcnVsZV9pZDoy MDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAvKio8IFJ1bGUgaWRlbnRpZmllciB0byB3 aGljaCB0aGUgcGF0dGVybiBtYXRjaGVkLg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAq IEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9ydWxlOjpydWxlX2lkDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICovDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZ3JvdXBf aWQ6MTI7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLyoqPCBHcm91cCBpZGVudGlmaWVy IG9mIHRoZSBydWxlIHdoaWNoIHRoZSBwYXR0ZXJuDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICogbWF0Y2hlZC4gQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X3J1bGU6Omdyb3VwX2lkDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg dWludDE2X3Qgb2Zmc2V0Ow0KPiANCj4gU2luY2Ugd2UgaGF2ZSBlbmRfb2Zmc2V0IG5vdywgSU1P LCBpdCBpcyBiZXR0ZXIgdG8gY2hhbmdlIHRoaXMgb2Zmc2V0DQo+IHRvICJzdGFydF9vZmZzZXQi Lg0KPiANCg0KQWdyZWUsIHdpbGwgY2hhbmdlLg0KDQo+IA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIC8qKjwgU3RhcnRpbmcgQnl0ZSBQb3NpdGlvbiBmb3IgbWF0Y2hlZCBydWxlLiAqLw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIFJURV9TVERfQzExDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgdW5pb24gew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDE2X3QgbGVuOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqPCBM ZW5ndGggb2YgbWF0Y2ggaW4gYnl0ZXMgKi8NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQxNl90IGVuZF9vZmZzZXQ7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKio8IFRoZSBlbmQgb2Zmc2V0IG9mIHRoZSBtYXRjaC4gSW4gY2FzZQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTUFUQ0hfQVNfU1RBUlQgY29uZmlndXJh dGlvbiBpcyBkaXNhYmxlZC4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq IEBzZWUgUlRFX1JFR0VYX0RFVl9DRkdfTUFUQ0hfQVNfU1RBUlQNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLw0KPiANCj4gV2UgaGF2ZSBub3QgY29uY2x1ZGVkIG9uIHRo aXMgc2NoZW1lLiBIYXZlIG9uZSBmaWVsZCB3aGljaCBoYXMNCj4gZGlmZmVyZW50IG1lYW5pbmcg d2lsbCBiZSBkaWZmaWN1bHQNCj4gZm9yIGFwcGxpY2F0aW9uLiBpLmUgZmFzdCBwYXRoIHdlIG5l ZWQgdG8gaGF2ZSBhIGNoZWNrIGZvciB0aGlzLg0KPiANCg0KVGhpcyBpcyB0aGUgdGltZSB0byBj b25jbHVkZSDwn5iKIC4gYXQgbGVhc3QgZm9yIHRoZSBmaXJzdCB2ZXJzaW9uLg0KV2h5IGRvIHdl IGhhdmUgb25lIGZpZWxkIHdpdGggZGlmZmVyZW50IG1lYW5pbmc/IA0KVGhlIHJlc3VsdCBjYW4g YmUgZXRoZXIgbGVuIG9yIGVuZF9vZmZzZXQuDQoNCj4gSSB0aGluaywgQmFzZWQgb24gdGhlIG1h am9yaXR5IG9mIEhXL1NXIGltcGxlbWVudGF0aW9uLCB3ZSBuZWVkIHRvDQo+IGVpdGhlciBnbyB3 aXRoIGxlbiBvcg0KPiBlbmRfb2Zmc2V0LiBXaGF0IE1lbGxhbm94IEhXIHJldHVybnM/IGxlbiBv ciBlbmRfb2Zmc2V0Pw0KPg0KDQpGcm9tIE1lbGxhbm94IHBlcnNwZWN0aXZlIHdlIHByZWZlciB0 aGUgbGVuIGFwcHJvYWNoLiBXZSBhbHNvIHRoaW5rIA0KaXQgaXMgbXVjaCBtb3JlIHVzZXIgb3Jp ZW50ZWQuDQogDQo+IG9yIFdlIGNhbiBrZWVwIGl0IGFzIGxlbiBvciBlbmRfb2Zmc2V0IGJhc2Vk IG9uIHdoaWNoIGRyaXZlcnMgdXBzdHJlYW0gZmlyc3QsDQo+IG90aGVyIGRyaXZlcnMgd2hlbiBp dCBjb21lcywgd2UgY2FuIHNlZSBob3cgdG8gYWJzdHJhY3QgaXQ/DQo+IA0KDQpJIGNhbiBleGNl cHQgdGhhdCBhc3N1bWluZyB3ZSBjaG9vc2UgdGhlIHN0YXJ0IGFuZCBsZW4gYXBwcm9hY2gg8J+Y ig0KDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfTsNCj4gPiArICAgICAgICAgICAgICAg fTsNCj4gPiArICAgICAgIH07DQo+ID4gK307DQo+IA0KPiA+ICsvKioNCj4gPiArICogVGhlIGdl bmVyaWMgKnJ0ZV9yZWdleF9vcHMqIHN0cnVjdHVyZSB0byBob2xkIHRoZSBSZWdFeCBhdHRyaWJ1 dGVzDQo+ID4gKyAqIGZvciBlbnF1ZXVlIGFuZCBkZXF1ZXVlIG9wZXJhdGlvbi4NCj4gPiArICov DQo+ID4gK3N0cnVjdCBydGVfcmVnZXhfb3BzIHsNCj4gPiArICAgICAgIC8qIFcwICovDQo+ID4g KyAgICAgICB1aW50MTZfdCByZXFfZmxhZ3M7DQo+ID4gKyAgICAgICAvKio8IFJlcXVlc3QgZmxh Z3MgZm9yIHRoZSBSZWdFeCBvcHMuDQo+ID4gKyAgICAgICAgKiBAc2VlIFJURV9SRUdFWF9PUFNf UkVRXyoNCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgdWludDE2X3QgcnNwX2ZsYWdzOw0K PiA+ICsgICAgICAgLyoqPCBSZXNwb25zZSBmbGFncyBmb3IgdGhlIFJlZ0V4IG9wcy4NCj4gPiAr ICAgICAgICAqIEBzZWUgUlRFX1JFR0VYX09QU19SU1BfKg0KPiA+ICsgICAgICAgICovDQo+ID4g KyAgICAgICB1aW50MTZfdCBuYl9hY3R1YWxfbWF0Y2hlczsNCj4gPiArICAgICAgIC8qKjwgVGhl IHRvdGFsIG51bWJlciBvZiBhY3R1YWwgbWF0Y2hlcyBkZXRlY3RlZCBieSB0aGUgUmVnZXgNCj4g ZGV2aWNlLiovDQo+ID4gKyAgICAgICB1aW50MTZfdCBuYl9tYXRjaGVzOw0KPiA+ICsgICAgICAg LyoqPCBUaGUgdG90YWwgbnVtYmVyIG9mIG1hdGNoZXMgcmV0dXJuZWQgYnkgdGhlIFJlZ0V4IGRl dmljZSBmb3IgdGhpcw0KPiA+ICsgICAgICAgICogc2Nhbi4gVGhlIHNpemUgb2YgKnJ0ZV9yZWdl eF9vcHM6Om1hdGNoZXMqIHplcm8gbGVuZ3RoIGFycmF5IHdpbGwgYmUNCj4gPiArICAgICAgICAq IHRoaXMgdmFsdWUuDQo+ID4gKyAgICAgICAgKg0KPiA+ICsgICAgICAgICogQHNlZSBzdHJ1Y3Qg cnRlX3JlZ2V4X29wczo6bWF0Y2hlcywgc3RydWN0IHJ0ZV9yZWdleF9tYXRjaA0KPiA+ICsgICAg ICAgICovDQo+ID4gKw0KPiA+ICsgICAgICAgLyogVzEgKi8NCj4gPiArICAgICAgIHVpbnQxNl90 IG51bV9vZl9idWZzOw0KPiA+ICsgICAgICAgLyoqPCBUaGUgbnVtYmVyIG9mIGJ1ZnMgdGhhdCBh cmUgcGFydCBvZiB0aGlzIG9wcy4gVGhlIHRvdGFsIHNpemUgb2YNCj4gPiArICAgICAgICAqIHRo ZSBsZW5ndGggb2YgYWxsIHRoZSBidWZmZXIgbXVzdCBiZSBzbWFsbGVyIHRoZW4gdGhlIG1heCBi dWZmZXINCj4gPiArICAgICAgICAqIGxlbi4NCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAg dWludDE2X3QgcmVzdjE7DQo+ID4gKyAgICAgICB1aW50MzJfdCByZXN2MjsNCj4gDQo+IE9uZSBv ZiB0aGUgcG9pbnQgY2FtZSB1cCBpbiBvdXIgaW1wbGVtZW50YXRpb24gaXMgdGhhdC4NCj4gSFcg Y2FuIHJldHVybiBhbiBlcnJvciBkdWUgdG8gdmFyaW91cyByZWFzb25zLg0KPiANCj4gT25lIG9w dGlvbiBjb3VsZCBiZSB0byBtYWtlIG5iX21hdGNoZXMgYXMgemVybz8gYW5kIHVwZGF0ZSBzb21l IGZsYWc/DQo+IA0KPiBXaGF0IGFyZSB5b3VyIHRob3VnaHRzPyB1cGRhdGluZyB0aGUgZmxhZyBt YXkgYmUgb3ZlcmtpbGwuDQo+DQoNCkkgdGhpbmsgd2UgY2FuIHJldHVybiBqdXN0IHplcm8gbWF0 Y2hlcyBmb3Igbm93Lg0KIA0KPiANCj4gPiArDQo+ID4gKyAgICAgICAvKiBXMiAqLw0KPiA+ICsg ICAgICAgc3RydWN0IHJ0ZV9yZWdleF9pb3YgKigqYnVmcylbXTsNCj4gPiArICAgICAgIC8qKjwg SG9sZHMgYSBwb2ludGVyIHRvIHRoZSBidWZmZXJzIGxpc3QuKi8NCj4gDQo+IFRoaXMgbWVtb3J5 IGdldHMgc3VibWl0dGVkIHRvIEhXIHNvIGl0IGNhbiBub3QgYmUgZnJvbSB0aGUgaGVhcC4NCj4g Q3J5cHRvZGV2IGhhZCBhIHNpbWlsYXIgZGlsZW1tYSB0byB1c2UgdGhlIGNvbnRhaW5lciBmb3Jt YXQgZm9yDQo+IG11bHRpLXNlZ21lbnQgY2FzZSwgRmluYWxseSB0aGV5IGNob29zZSB0byB3aXRo IG1idWYuDQo+IA0KPiBUaGUgZm9sbG93aW5nIGVsZW1lbnRzIGFyZSBpbiBtYnVmLiBDb25zaWRl cmluZyB0byBhdm9pZCBkdXBsaWNhdGlvbiBhbmQNCj4gYXZvaWQgb3ZlcmhlYWQgbW9zdCBjb21t b24gdXNlY2FzZSBEUEkoQXNzdW1lIGlmIGl0IGlzIHJ0ZV9yZWdleF9pb3YsDQo+IG9uZSBuZWVk IHRvIGNvcHkgYWxsIHRoZSBlbGVtZW50cyBmcm9tIG1idWYgb24gZmFzdHBhdGgpLg0KPiBJIHBy b3Bvc2UgdG8gaGF2ZSBtYnVmIGhlcmUgaW5zdGVhZCBvZiBydGVfcmVnZXhfaW92Lg0KPiANCg0K VGhlIGFwcGxpY2F0aW9uIG9ubHkgbmVlZHMgdG8gc2V0IHRoZSBkYXRhIHBvaW50ZXJzLiAobm8g Y29weSBpcyByZXF1aXJlZC4gKQ0KSSBhZ3JlZSB0aGF0IHRoZXJlIGFyZSBhZHZhbnRhZ2VzIHRv IHRoZSBtYnVmIGFwcHJvYWNoLg0KVGhlIG1haW4gbGltaXRhdGlvbiBmb3IgdGhlIG1idWZzIGFw cHJvYWNoIGlzIHRoYXQgdGhlIHVzZXIgd2lsbCBuZWVkIHRvIHBsYXkgd2l0aCB0aGUgb2Zmc2V0 DQpwb2ludGVycyBhbmQgcG9pbnRlcnMgdG8gdGhlIG5leHQgbWJ1ZiwgaW4gb3JkZXIgdG8gc3Vw cG9ydCBjcm9zcyBidWZmZXIuDQpGb3IgZXhhbXBsZSB3ZSBoYXZlIGEgcGFja2V0IGFuZCB3ZSB3 YW50IHRvIGFkZCB0byB0aGUgc2NhbiBhbHNvIHRoZSBsYXN0IHBhcnQgb2YgdGhlIHByZXZpb3Vz IHBhY2tldCwNCnRoaXMgbWVhbnMgdGhhdCB0aGUgYXBwbGljYXRpb24gbXVzdCBtb2RpZnkgdGhl IGRhdGEgb2Zmc2V0IGluIHRoZSBwcmV2aW91cyBwYWNrZXQgbWJ1ZiBpbmNsdWRpbmcgDQpjaGFu Z2luZyB0aGUgbmV4dCBwb2ludGVyIHRvIHBvaW50IHRvIHRoZSBoZWFkIG9mIHRoZSBuZXcgcGFj a2V0LCBhbmQgdGhlbiByZXR1cm4gdGhlIHZhbHVlcyB0byB0aGUgb3JpZ2luYWwgcG9zaXRpb24u DQoNCldoYXQgZG8geW91IHRoaW5rPw0KV2UgY2FuIHN0YXJ0IHdpdGggbWJ1ZnMgYW5kIHNlZSBo b3cgaXQgd29ya3MsIG9yIHN0YXJ0IHdpdGggdGhlIGJ1ZmZlciBhbmQgc2VlIGhvdyBpdCB3b3Jr cy4NCg0KDQoNCiANCj4gc3RydWN0IHJ0ZV9yZWdleF9pb3Ygew0KPiBSVEVfU1REX0MxMQ0KPiB1 bmlvbiB7DQo+IHVpbnQ2NF90IHU2NDsNCj4gLyoqPCAgQWxsb3cgOC1ieXRlIHJlc2VydmVkIG9u IDMyLWJpdCBzeXN0ZW0gKi8NCj4gdm9pZCAqYnVmX2FkZHI7DQo+IC8qKjwgVmlydHVhbCBhZGRy ZXNzIG9mIHRoZSBwYXR0ZXJuIHRvIGJlIG1hdGNoZWQuICovDQo+IH07DQo+IHJ0ZV9pb3ZhX3Qg YnVmX2lvdmE7DQo+IC8qKjwgSU9WQSBhZGRyZXNzIG9mIHRoZSBwYXR0ZXJuIHRvIGJlIG1hdGNo ZWQuICovDQo+IHVpbnQxNl90IGJ1Zl9zaXplOyAvKio8IFRoZSBidWYgc2l6ZS4gKi8NCj4gfTsN Cj4gDQo+IA0KPiA+ICsNCj4gPiArICAgICAgIC8qIFc1ICovDQo+ID4gKyAgICAgICBSVEVfU1RE X0MxMQ0KPiA+ICsgICAgICAgdW5pb24gew0KPiA+ICsgICAgICAgICAgICAgICB1aW50NjRfdCBj cm9zc19idWZfaWQ7DQo+ID4gKyAgICAgICAgICAgICAgIC8qKjwgSUQgdXNlZCBieSB0aGUgUmVn RXggZGV2aWNlIGluIG9yZGVyIHRvIGhhbmRsZSBjcm9zcw0KPiA+ICsgICAgICAgICAgICAgICAg KiBidWZmZXIgZGV0ZWN0aW9uLg0KPiA+ICsgICAgICAgICAgICAgICAgKiBUaGlzIElEIGlzIGdp dmVuIGJ5IHRoZSBSZWdFeCBkZXZpY2Ugb24gZGVxdWV1ZSwgYW5kDQo+ID4gKyAgICAgICAgICAg ICAgICAqIHRoZSBhcHBsaWNhdGlvbiBtdXN0IHNlbmQgaXQgb24gdGhlIGZvbGxvd2luZyBlbnF1 ZS4NCj4gPiArICAgICAgICAgICAgICAgICovDQo+ID4gKyAgICAgICAgICAgICAgIHZvaWQgKmNy b3NzX2J1Zl9wdHI7DQo+ID4gKyAgICAgICAgICAgICAgIC8qKjwgUG9pbnRlciByZXByZXNlbnRh dGlvbiBvZiAqY3Jvc3NfYnVmX2lkKiAqLw0KPiANCj4gQ291bGQgeW91IGhhdmUgc29tZSBleGFt cGxlIG9mIGhvdyB0byB1c2UgY3Jvc3NfYnVmX2lkPw0KPiBNYXJ2ZWxsIEhXIGRvZXMgbm90IHN1 cHBvcnQgY3Jvc3NfYnVmX2lkLCBzbyB3ZSBuZWVkIHRvIGFkZCB0aGlzDQo+IGZlYXR1cmUgYXMg Y2FwYWJpbGl0eS4NCj4NCg0KVGhlIGlkZWEgaXMgdGhhdCB0aGlzIGJ1ZmZlciB3aWxsIGJlIHVz ZWQgdG8ga2VlcCBzb21lIGludGVybmFsIGRhdGEgZm9yIHRoZSBlbmdpbmUuDQpGb3IgZXhhbXBs ZSB0aGUgY3VycmVudCBzdGF0ZSBhbmQgd2hhdCB3YXMgZm91bmQgdW50aWwgbm93LCBhbmQgdGhl biByZXVzZSB0aGlzDQpmb3IgdGhlIG5leHQgYnVmZmVyLg0KV2UgY2FuIHJlbW92ZSBpdCBmb3Ig bm93IGlmIHdlIGFncmVlIHRoYXQgd2UgY2FuIGFkZCBpdCBsYXRlci4NCiANCg0KDQpPbmUgbW9y ZSB0aGluZywgcmVnYXJkaW5nIHRoZSBvcHMgc3RydWN0dXJlLCBJIHRoaW5rIGl0IGlzIGJldHRl ciB0byBzcGxpdCBpdCB0byAyIGRpZmZlcmVudCANCnN0cnVjdHVyZXMgb25lIGVucXVlIGFuZCBv bmUgZm9yIGRlcXVldWUsIHNpbmNlIHRoZXJlIGFyZSBubyByZWFsIHNoYXJlZCBkYXRhIGFuZCB3 ZSB3aWxsDQpiZSBhYmxlIHRvIHNhdmUgbWVtb3J5LCB3aGF0IGRvIHlvdSB0aGluaz8NCg0KPiAN Cj4gDQo+IFJlZ2FyZGluZyB0aGUgcnVsZSBhdHRyaWJ1dGVzLCBXZSB0aGluaywgZm9sbG93aW5n IG5lZWRzIHRvIGJlIGFkZGVkIHRvIGNvbnRyb2wNCj4gdGhlIHJ1bGUgY29tcGlsYXRpb24gYmVo YXZpb3IuIElmIGl0IG5vdCBjb252ZXJnaW5nIGluIGZpcnN0IGxvb2ssIEkNCj4gdGhpbmssIHdl IGNhbiBtYWtlDQo+IGJlbG93IGFzIHNlcGFyYXRlIHBhdGNoIG9uY2Ugd2UgaGF2ZSBiYXNpYyB0 aGluZ3MuDQo+IA0KDQpSZWdhcmRpbmcgdGhlIG5ldyBjb2RlLCB3ZSBuZWVkIGFsc28gdG8gYWRk IGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjYXBhYmlsaXRpZXMgZm9yIHRoZSBjb21waWxlciBvcg0K YWRkIGEgbmV3IGZpZWxkIGluIHRoZSBkZXZfaW5mbyB3aGljaCB3aWxsIHJlcG9ydCB0aGUgY29t cGxpZXIgc3VwcG9ydGVkIGZlYXR1cmVzLg0KSSBwcmVmZXIgYSBkZWRpY2F0ZWQgZnVuY3Rpb24u DQoNCj4gDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3JlZ2V4ZGV2L3J0ZV9yZWdleGRldi5o DQo+IGIvbGliL2xpYnJ0ZV9yZWdleGRldi9ydGVfcmVnZXhkZXYuaA0KPiBpbmRleCA3NjVkYTRh YWEuLjFmYTZhNzEzNSAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9yZWdleGRldi9ydGVfcmVn ZXhkZXYuaA0KPiArKysgYi9saWIvbGlicnRlX3JlZ2V4ZGV2L3J0ZV9yZWdleGRldi5oDQo+IEBA IC03NjcsNiArNzY3LDEwIEBAIGVudW0gcnRlX3JlZ2V4X3J1bGVfb3Agew0KPiAgc3RydWN0IHJ0 ZV9yZWdleF9ydWxlIHsNCj4gICBlbnVtIHJ0ZV9yZWdleF9ydWxlX29wIG9wOw0KPiAgIC8qKjwg T1AgdHlwZSBvZiB0aGUgcnVsZSBlaXRoZXIgYSBPUF9BREQgb3IgT1BfREVMRVRFICovDQo+ICsg dWludDMyX3QgbmJfcHJlZml4Ow0KPiArIC8qKjwgTnVtYmVyIG9mIHByZWZpeCBlbnRyaWVzICov DQo+ICsgY2hhciAqKnByZWZpeGVzOw0KPiArIC8qKjwgUnVsZSBwcmVmaXggbGlzdCAqLw0KPiAg IHVpbnQxNl90IGdyb3VwX2lkOw0KPiAgIC8qKjwgR3JvdXAgaWRlbnRpZmllciB0byB3aGljaCB0 aGUgcnVsZSBiZWxvbmdzIHRvLiAqLw0KPiAgIHVpbnQzMl90IHJ1bGVfaWQ7DQo+IEBAIC03ODQs NiArNzg4LDE2OSBAQCBzdHJ1Y3QgcnRlX3JlZ2V4X3J1bGUgew0KPiAgICovDQo+ICB9Ow0KPiAN Cj4gKy8qKiBFbnVtZXJhdGVzIFJlZ0V4IHJ1bGUgcHJlZml4IGNvbnRyb2wgdHlwZSAqLw0KPiAr ZW51bSBydGVfcmVnZXhfcHJlZml4X2NvbnRyb2xfZW50cnlfdHlwZQ0KPiArew0KPiArIFJURV9S RUdFWF9QUkVGSVhfQ09OVFJPTF9FTlRSWV9CTEFDS0xJU1QgPSAwLA0KPiArIC8qKjwgVGhlIFJl Z0V4IHJ1bGUgY29tcGlsZXIgd2lsbCBub3QgdXNlIGFueSBwcmVmaXhlcyB0aGF0IGFyZQ0KPiAr ICogc3BlY2lmaWVkLiBJZiB0aGVyZSBhcmUgbm8gb3B0aW9ucyBidXQgdG8gdXNlIGEgYmxhY2ts aXN0ZWQgcHJlZml4LA0KPiArICogdGhlIHJ1bGUgd2lsbCBub3QgYmUgY29tcGlsZWQuDQo+ICsg Ki8NCj4gKyBSVEVfUkVHRVhfUFJFRklYX0NPTlRST0xfRU5UUllfR1JBWUxJU1QgPSAxLA0KPiAr IC8qKjwgVGhlIFJlZ0V4IHJ1bGUgY29tcGlsZXIgd2lsbCB0cnkgbm90IHRvIHVzZSBhbnkgcHJl Zml4ZXMgdGhhdA0KPiArICogYXJlIHNwZWNpZmllZC4NCj4gKyAqIEl0IHdpbGwgc2V0dGxlIGZv ciB0aGVzZSBpZiB0aGVyZSBhcmUgbm8gb3RoZXIgb3B0aW9ucy4NCj4gKyAqLw0KPiArIFJURV9S RUdFWF9QUkVGSVhfQ09OVFJPTF9FTlRSWV9XSElURUxJU1QgPSAyDQo+ICsgLyoqPCBUaGUgUmVn RXggcnVsZSBjb21waWxlciB3aWxsIHRyeSB0byB1c2UgYW55IHByZWZpeGVzIHRoYXQgYXJlDQo+ ICsgKiBzcGVjaWZpZWQuIElmIGl0IGNhbid0IGl0IHdpbGwgdXNlIG90aGVyIHByZWZpeGVzLg0K PiArICovDQo+ICsNCj4gK307DQo+ICsNCj4gKy8qKiBTdHJ1Y3R1cmUgdG8gaG9sZCBhIFJlZ0V4 IHJ1bGUgcHJlZml4IGNvbnRyb2wgZW50cnkgKi8NCj4gK3N0cnVjdCBydGVfcmVnZXhfcHJlZml4 X2NvbnRyb2xfZW50cnkNCj4gK3sNCj4gKyAgICAgICAgZW51bSBydGVfcmVnZXhfcHJlZml4X2Nv bnRyb2xfZW50cnlfdHlwZSB0eXBlOw0KPiArICAgICAgICAvKio8IEluZGljYXRlcyB0aGUgdHlw ZSBvZiB0aGUgcHJlZml4IHNlbGVjdGlvbiBjb250cm9sIGxpc3QgZW50cnkgKi8NCj4gKyAgICAg ICAgY2hhciAqdmFsdWU7DQo+ICsgICAgICAgIC8qKjwgVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0 aCB0aGUgcHJlZml4IHNlbGVjdGlvbiBjb250cm9sIGxpc3QgZW50cnkuDQo+ICsgICAgICAgICAq IFRoaXMgY291bGQgYmUgYSBzdHJpbmcgc3VjaCBhcyBBQkNELg0KPiArICAgICAgICAgKiBDaGFy YWN0ZXJzIGNhbiBhbHNvIGJlIHJlcHJlc2VudGVkIGluIGhleCBmb3JtYXQNCj4gKyAgICAgICAg ICogc3VjaCBhcyBceDAwXHgwMVx4MDJceDAzLg0KPiArICAgICAgICAgKi8NCj4gK307DQo+ICsN Cj4gKy8qKiBTdHJ1Y3R1cmUgdG8gaG9sZCBhIFJlZ0V4IHJ1bGUgcnVsZSBwcmVmaXggY29udHJv bCBlbnRyeSBsaXN0ICovDQo+ICtzdHJ1Y3QgcnRlX3JlZ2V4X3ByZWZpeF9jb250cm9sDQo+ICt7 DQo+ICsgICAgICAgIHVpbnQzMl90IG51bTsNCj4gKyAgICAgICAgLyoqPCBUaGUgbnVtYmVyIG9m IHByZWZpeCBzZWxlY3Rpb24gY29udHJvbCBsaXN0IGVudHJpZXMgKi8NCj4gKyAgICAgICAgc3Ry dWN0IHJ0ZV9yZWdleF9wcmVmaXhfY29udHJvbF9lbnRyeSAqcHJlZml4ZXM7DQo+ICsgICAgICAg IC8qKjwgVGhlIGxpc3Qgb2YgcHJlZml4IHNlbGVjdGlvbiBjb250cm9sIGxpc3QgZW50cmllcyAq Lw0KPiArfTsNCj4gKw0KPiArLyoqIEVudW1lcmF0ZXMgUmVnRXggcnVsZSBjb21waWxhdGlvbiBj YXBhYmlsaXRpZXMgKi8NCj4gKw0KPiArI2RlZmluZSBSVEVfUkVHRVhfQ09NUElMRV9DQVBfQVVU T19SVUxFX0lEX0YgKDFVTEwgPDwgMCkNCj4gKy8qKjwgUmVnRXggZGV2aWNlIGNvbXBpbGF0aW9u IHN1cHBvcnRzIGF1dG8gcnVsZSBpZA0KPiArICogQXNzaWduIGFuIGF1dG9tYXRpYyBpbmNyZW1l bnRpbmcgSUQgdG8gZWFjaCBydWxlLg0KPiArICovDQo+ICsNCj4gKyNkZWZpbmUgUlRFX1JFR0VY X0NPTVBJTEVfQ0FQX0NIRUNLU1VNX0YgKDFVTEwgPDwgMSkNCj4gKy8qKjwgUmVnRXggZGV2aWNl IGNvbXBpbGF0aW9uIHN1cHBvcnRzIGNoZWNrc3VtIGNhbGN1bGF0aW9uLg0KPiArICogV2hlbiBw ZXJmb3JtaW5nIGFuIGluY3JlbWVudGFsIGNvbXBpbGUgdXNlIHRoZSBlbmQgY2hlY2tzdW0gb2Yg dGhlDQo+IGJhc2UgcnVsZQ0KPiArICogZGIgYXMgdGhlIHN0YXJ0IGNoZWNrc3VtIGZvciB0aGUg bmV3IHJ1bGUgZGIuDQo+ICsgKiBNdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhbiBp bmNyZW1lbnRhbCBjb21waWxlLg0KPiArICovDQo+ICsNCj4gKy8qIEB3YXJuaW5nIG1pZ2h0IG5v dCBiZSBuZWVkZWQgKi8NCj4gKyNkZWZpbmUgUlRFX1JFR0VYX0NPTVBJTEVfQ0FQX0VNX0YgKDFV TEwgPDwgMikNCj4gKy8qKjwgUmVnRXggZGV2aWNlIGNvbXBpbGF0aW9uIHN1cHBvcnRzIGV4dGVy bmFsIG1lbW9yeQ0KPiArICogU3RvcmUgcnVsZSBkYiBpbiBleHRlcm5hbCBtZW1vcnkgb25seS4N Cj4gKyAqLw0KPiArDQo+ICsvKiBAd2FybmluZyBtaWdodCBub3QgYmUgbmVlZGVkICovDQo+ICsj ZGVmaW5lIFJURV9SRUdFWF9DT01QSUxFX0NBUF9ESVNBQkxFX0RJU0FCTEVfQUlDX0YgKDFVTEwg PDwgMykNCj4gKy8qKjwgUmVnRXggZGV2aWNlIGNvbXBpbGF0aW9uIHN1cHBvcnRzIGRpc2FibGUg b2YgYXRvbWljIGluY3JlbWVudGFsDQo+IGNvbXBpbGUNCj4gKyAqIERpc2FibGUgdGhlIGF0b21p YyBpbmNyZW1lbnRhbCBjb21waWxlIHN5c3RlbS4NCj4gKyAqIFRoZSBpbmNyZW1lbnRhbCBjb21w aWxhdGlvbiB3aWxsIGJlIHBlcmZvcm1lZCBidXQgdGhlIG91dHB1dA0KPiArICogd2lsbCBub3Qg YmUgYXRvbWl6ZWQuDQo+ICsgKi8NCj4gKw0KPiArI2RlZmluZSBSVEVfUkVHRVhfQ09NUElMRV9D QVBfRk9SQ0VfRiAoMVVMTCA8PCA0KQ0KPiArLyoqPCBSZWdFeCBkZXZpY2UgY29tcGlsYXRpb24g c3VwcG9ydHMgZm9yY2UgY29tcGlsaWF0aW9uDQo+ICsgKiBGb3JjZSB0aGUgY29tcGlsYXRpb24g dG8gY29tcGxldGUgZXZlbiBpZiBlcnJvcnMgYXJlIGZvdW5kLg0KPiArICovDQo+ICsNCj4gKyNk ZWZpbmUgUlRFX1JFR0VYX0NPTVBJTEVfQ0FQX0lOQ1JFTUVOVEFMX0YgKDFVTEwgPDwgNSkNCj4g Ky8qKjwgUmVnRXggZGV2aWNlIGNvbXBpbGF0aW9uIHN1cHBvcnRzIGluY3JlbWVudGFsIGNvbXBp bGF0aW9uDQo+ICsgKiBQZXJmb3JtIGFuIGluY3JlbWVudGFsIGNvbXBpbGUgdXNpbmcgcHJlIGJ1 aWxkIHJ1bGUgZGIgYXMgdGhlIGJhc2UuDQo+ICsgKi8NCj4gKw0KPiArI2RlZmluZSBSVEVfUkVH RVhfQ09NUElMRV9DQVBfTk9fSU5DX0NPTVBJTEVfUEFERElOR19GICgxVUxMIDw8DQo+IDYpDQo+ ICsvKio8IFJlZ0V4IGRldmljZSBjb21waWxhdGlvbiBzdXBwb3J0cyBwYWRkaW5nIHJlbW92YWwN Cj4gKyAqIFJlbW92ZSB0aGUgcGFkZGluZyB0aGF0IGlzIG5vcm1hbGx5IGludHJvZHVjZWQgdG8g YXNzaXN0IHdpdGgNCj4gKyAqIGluY3JlbWVudGFsIGNvbXBpbGUuIFRoaXMgd2lsbCBhbGxvdyBm b3IgYSBtb3JlIGNvbXBhY3QgcnVsZSBkYiBmb290cHJpbnQNCj4gKyAqIGJ1dCBpcyBub3QgcmVj b21tZW5kZWQgaWYgeW91IGludGVuZCB0byBwZXJmb3JtIGFuIGluY3JlbWVudGFsDQo+ICsgKiBj b21waWxlIHdpdGggdGhlIHJlc3VsdGluZyBydWxlIGRiLg0KPiArICovDQo+ICsNCj4gKyNkZWZp bmUgUlRFX1JFR0VYX0NPTVBJTEVfQ0FQX1BDUkVfUFJFXzhfMzZfRiAoMVVMTCA8PCA3KQ0KPiAr LyoqPCBSZWdFeCBkZXZpY2UgY29tcGlsYXRpb24gc3VwcG9ydHMgY2hhbmdlIG9mIHNwYWNlIGNs YXNzDQo+ICsgKiBTZXQgdGhlIHNwYWNlIGNsYXNzIHRvIG5vdCBpbmNsdWRlIHZlcnRpY2FsIHRh YiAoVlQpIGFzIHdhcyB1c2VkIGluDQo+ICsgKiBQQ1JFIGJlZm9yZSB2OC4zNi4NCj4gKyAqLw0K PiArDQo+ICsjZGVmaW5lIFJURV9SRUdFWF9DT01QSUxFX0NBUF9TVFJJQ1RfUVVBTlRJRklFUlNf RiAoMVVMTCA8PCA4KQ0KPiArLyoqPCBSZWdFeCBkZXZpY2UgY29tcGlsYXRpb24gc3VwcG9ydHMg c3RyaWN0IHF1YW50aWZpZXJzDQo+ICsgKiBUbyBoZWxwIHdpdGggcGVyZm9ybWFuY2UsIGJ5IGRl ZmF1bHQgdGhlIFJFR0VYIENvbXBpbGVyIHRyZWF0cyBub24tZml4ZWQNCj4gKyAqIGJvdW5kZWQg cXVhbnRpZmllcnMgYXMgdW5ib3VuZGVkIGUuZy4gLnswLDIwNDh9IHdpbGwgYmUgdGhlIHNhbWUg YXMgLiouIFRoaXMNCj4gKyAqIGhhcyB0aGUgY2F2ZWF0IG9mIGZhbHNlIHBvc2l0aXZlcyBiZWlu ZyBwb3NzaWJsZS4NCj4gKyAqIFRoaXMgY2FwYWJpbGl0eSB3aWxsIGVuc3VyZSB0aGF0IHRoZSBv cmlnaW5hbCBjb25zdHJ1Y3QgaXMgdXNlZCBpbiBhbGwNCj4gKyAqIGNhc2VzIG1lYW5pbmcgcGVy Zm9ybWFuY2Ugd2lsbCBiZSB3b3JzZSBidXQgbm8gZmFsc2UgcG9zaXRpdmVzIHdpbGwgb2NjdXIu DQo+ICsgKi8NCj4gKw0KPiArI2RlZmluZSBSVEVfUkVHRVhfQ09NUElMRV9DQVBfUVVJQ0tfUkVN T1ZFX1JVTEVTX0YgKDFVTEwgPDwgOSkNCj4gKy8qKjwgUmVnRXggZGV2aWNlIGNvbXBpbGF0aW9u IHN1cHBvcnRzIHF1aWNrIHJlbW92YWwgb2YgcnVsZXMNCj4gKyAqIFF1aWNrIGluY3JlbWVudGFs IGNvbXBpbGUgdG8gcmVtb3ZlIHJ1bGVzLg0KPiArICogU3BlY2lmeSBydWxlX2lkc190b19yZW1v dmUgZnJvbSBydWxlIERCLg0KPiArICogTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGgg dGhlIGluY3JlbWVudGFsIG9wdGlvbi4NCj4gKyAqLw0KPiArDQo+ICsjZGVmaW5lIFJURV9SRUdF WF9DT01QSUxFX0NBUF9RVUlDS19BRERfUlVMRVNfRiAoMVVMTCA8PCAxMCkNCj4gKy8qKjwgUmVn RXggZGV2aWNlIGNvbXBpbGF0aW9uIHN1cHBvcnRzIHF1aWNrIGFkZGl0aW9uIG9mIHJ1bGVzDQo+ ICsgKiBRdWljayBpbmNyZW1lbnRhbCBjb21waWxlIHRvIGFkZCBydWxlcy4NCj4gKyAqIFNwZWNp ZnkgcnVsZV9pZHNfdG9fYWRkIHRvIHJ1bGUgREIuDQo+ICsgKiBNdXN0IGJlIHVzZWQgaW4gY29u anVuY3Rpb24gd2l0aCB0aGUgaW5jcmVtZW50YWwgb3B0aW9uLg0KPiArICovDQo+ICsNCj4gKy8q IEB3YXJuaW5nIG1pZ2h0IG5vdCBiZSBuZWVkZWQgKi8NCj4gKyNkZWZpbmUgUlRFX1JFR0VYX0NP TVBJTEVfQ0FQX1VURl84X0YgKDFVTEwgPDwgMTEpDQo+ICsvKio8IFJlZ0V4IGRldmljZSBjb21w aWxhdGlvbiBzdXBwb3J0cyBVVEYtOCBtb2RlDQo+ICsgKiBTd2l0Y2ggb24gVVRGLTggbW9kZS4N Cj4gKyAqLw0KPiArDQo+ICsjZGVmaW5lIFJURV9SRUdFWF9DT01QSUxFX0NBUF9ESVNBQkxFX0JJ RElSRUNUSU9OQUxfRiAoMVVMTCA8PCAxMikNCj4gKy8qKjwgUmVnRXggZGV2aWNlIGNvbXBpbGF0 aW9uIHN1cHBvcnRzIGRpc2FibGluZyBvZiBiaWRpcmVjdGlvbmFsDQo+ICsgKiBUaGlzIGRpc2Fi bGVzIHRoZSBiaWRpcmVjdGlvbmFsIHJ1bGUgY29tcGlsYXRpb24uDQo+ICsgKi8NCj4gKw0KPiAr I2RlZmluZSBSVEVfUkVHRVhfQ09NUElMRV9DQVBfVVRGXzE2X1NUUklOR19GICgxVUxMIDw8IDEz KQ0KPiArLyoqPCBSZWdFeCBkZXZpY2UgY29tcGlsYXRpb24gc3VwcG9ydHMgVVRGLTE2IHN0cmlu Z3MgZWZmaWNpZW5jeQ0KPiArICogRGVhbCB3aXRoIFVURi0xNiBzdHJpbmdzIG1vcmUgZWZmaWNp ZW50bHkuDQo+ICsgKiBUaGUgQ29tcGlsZXIgd2lsbCBhc3N1bWUgUmVnRXggY29uc3RydWN0cyBs aWtlIHRoZSBmb2xsb3dpbmcgYXJlIGludGVuZGVkDQo+ICsgKiB0byBtYXRjaCBVVEYtMTYgc3Ry aW5nczpBXHgwMD9CXHgwMD9DXHgwMD8NCj4gKyAqIHdpdGggdGhpcyBzd2l0Y2ggZW5hYmxlZCB0 aGUgQ29tcGlsZXIgd2lsbCBpbnRlcnByZXQgdGhlDQo+ICsgKiBhYm92ZSBSZWdFeCBhczpBQkNE fEFceDAwQlx4MDBDXHgwMA0KPiArICovDQo+ICsNCj4gKyNkZWZpbmUgUlRFX1JFR0VYX0NPTVBJ TEVfQ0FQX1NXSVRDSF9PRkZfTE9DQUxFX1NVUFBPUlRfRiAoMVVMTA0KPiA8PCAxNCkNCj4gKy8q KjwgUmVnRXggZGV2aWNlIGNvbXBpbGF0aW9uIHN1cHBvcnRzIGRpc2FibGluZyBsb2NhbGUNCj4g KyAqIERpc2FibGUgbG9jYWxlIHN1cHBvcnQuDQo+ICsgKi8NCj4gKw0KPiArI2RlZmluZSBSVEVf UkVHRVhfQ09NUElMRV9DQVBfU1BMSVRfQUxURVJOQVRJT05TX0YgKDFVTEwgPDwgMTUpDQo+ICsv Kio8IFJlZ0V4IGRldmljZSBjb21waWxhdGlvbiBzdXBwb3J0cyBhdXRvbWF0aWMgYWx0ZXJuYXRp b24gc3BsaXR0aW5nDQo+ICsgKiBFbmFibGUgdGhlIGF1dG9tYXRpYyBhbHRlcm5hdGlvbiBzcGxp dHRpbmcuDQo+ICsgKi8NCj4gKw0KPiArLyoqIFN0cnVjdHVyZSB0byBob2xkIGEgUmVnRXggY29u dHJvbCBsaXN0IGRhdGEgc2FtcGxlICovDQo+ICtzdHJ1Y3QgcnRlX3JlZ2V4X2RhdGFfc2FtcGxl DQo+ICt7DQo+ICsgICAgICAgIGZsb2F0IHRocmVzaG9sZDsNCj4gKyAgICAgICAgLyoqPCBBICUg dGhyZXNob2xkIHVzZWQgdG8gYmxhY2tsaXN0IHN0cmluZ3MgaW4gdGhlIHNhbXBsZSBkYXRhLg0K PiArICAgICAgICAgKiBUaGlzICUgdmFsdWUgcmVwcmVzZW50cyB0aGUgJSBvZiBieXRlcyBpbiB0 aGUgc2FtcGxlIGRhdGEgdGhhdA0KPiArICAgICAgICAgKiByZXByZXNlbnQgdGhlIHN0YXJ0IG9m IGEgMSAtIDQtYnl0ZSBzdHJpbmcuDQo+ICsgICAgICAgICAqIElmIHRoZSBzdHJpbmcgb2NjdXJz IGF0ID4gdGhlICUgdGhyZXNob2xkIG51bWJlciBvZiBieXRlcyBpdCB3aWxsDQo+ICsgICAgICAg ICAqIHRoZW4gYmUgYmxhY2tsaXN0ZWQuDQo+ICsgICAgICAgICAqLw0KPiArICAgICAgICBzaXpl X3QgbGVuZ3RoOw0KPiArICAgICAgICAvKio8IFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGRh dGEgc2FtcGxlIHRvIGJlIGFuYWx5emVkICovDQo+ICsgICAgICAgIGNoYXIgKmRhdGE7DQo+ICsg ICAgICAgIC8qKjwgVGhlIGRhdGEgc2FtcGxlIHRvIGJlIGFuYWx5emVkICovDQo+ICt9Ow0KPiAr DQo+ICAvKioNCj4gICAqIFVwZGF0ZSB0aGUgcnVsZSBkYXRhYmFzZSBvZiBhIFJlZ0V4IGRldmlj ZS4NCj4gICAqDQo+IEBAIC03OTMsNiArOTYwLDEyIEBAIHN0cnVjdCBydGVfcmVnZXhfcnVsZSB7 DQo+ICAgKiAgIHdoaWNoIGNvbnRhaW4gdGhlIHJlZ2V4IHJ1bGVzIGF0dHJpYnV0ZXMgdG8gYmUg dXBkYXRlZCBpbiBydWxlIGRhdGFiYXNlLg0KPiAgICogQHBhcmFtIG5iX3J1bGVzDQo+ICAgKiAg IFRoZSBudW1iZXIgb2YgUENSRSBydWxlcyB0byB1cGRhdGUgdGhlIHJ1bGUgZGF0YWJhc2UuDQo+ ICsgKiBAcGFyYW0gcHJlZml4ZXMNCj4gKyAqICAgVGhlIHByZWZpeCBzZWxlY3Rpb24gY29udHJv bCBsaXN0Lg0KPiArICogQHBhcmFtIGNvbXBpbGVyX29wdGlvbnMNCj4gKyAqICAgVGhlIGNvbXBp bGVyIG9wdGlvbnMgZmxhZ3MgQHNlZSBSVEVfUkVHRVhfQ09NUElMRV9DQVAqLg0KPiArICogQHBh cmFtIGRhdGFfc2FtcGxlDQo+ICsgKiAgIFRoZSBkYXRhIHNhbXBsZSBmb3IgYXV0byBjb250cm9s IGxpc3QgZ2VuZXJhdGlvbi4NCj4gICAqDQo+ICAgKiBAcmV0dXJuDQo+ICAgKiAgIFRoZSBudW1i ZXIgb2YgcmVnZXggcnVsZXMgYWN0dWFsbHkgdXBkYXRlZCBvbiB0aGUgcmVnZXggZGV2aWNlJ3Mg cnVsZQ0KPiBAQCAtODExLDcgKzk4NCwxMCBAQCBzdHJ1Y3QgcnRlX3JlZ2V4X3J1bGUgew0KPiAg ICovDQo+ICB1aW50MTZfdA0KPiAgcnRlX3JlZ2V4X3J1bGVfZGJfdXBkYXRlKHVpbnQ4X3QgZGV2 X2lkLCBjb25zdCBzdHJ1Y3QgcnRlX3JlZ2V4X3J1bGUgKnJ1bGVzLA0KPiAtIHVpbnQxNl90IG5i X3J1bGVzKTsNCj4gKyB1aW50MTZfdCBuYl9ydWxlcywNCj4gKyBzdHJ1Y3QgcnRlX3JlZ2V4X3By ZWZpeF9jb250cm9sICpwcmVmaXhfY29udHJvbCwNCj4gKyB1aW50MzJfdCBjb21waWxlcl9vcHRp b25zDQo+ICsgc3RydWN0IHJ0ZV9yZWdleF9kYXRhX3NhbXBsZSAqZGF0YV9zYW1wbGUpOw0KPiAN Cj4gIC8qKg0KPiAgICogSW1wb3J0IGEgcHJlYnVpbHQgcnVsZSBkYXRhYmFzZSBmcm9tIGEgYnVm ZmVyIHRvIGEgUmVnRXggZGV2aWNlLg0K