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 2E3AFA04F3; Thu, 9 Jan 2020 08:35:34 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 88BDE1DBB4; Thu, 9 Jan 2020 08:35:34 +0100 (CET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60078.outbound.protection.outlook.com [40.107.6.78]) by dpdk.org (Postfix) with ESMTP id 94CCB1DBA4 for ; Thu, 9 Jan 2020 08:35:32 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D4lbHADAB3FziPZtJAS+L61GwgHBvgDTH6gCBaC4ybTmDz8n+DT5KsYQlEgNhL0avN6bAgFfF1rk53P4ZyzkiZ+hrfAPnDzS4lJ8QQqZX0vP4gHoAxFMx/lYqMVcxO+ZqtBtmKFacL4m3mrfW4y90zbdZdtTDfAytDwLgHi93AHvINoZ3DWRVOf10XDAflQSW3br3xVRfP4YUqU/0yShvB0gAOrW158m/RXv5tYWL49rQ1mOh9toXFYcEG8tCfQPCnGCHohqZKJqmdteyOyuQQk8K1Oilpi1s8JsHCa7t3LkMbZzdJYVHXghSt7/w/Pw3DxrHVRXJCRIWUj/5pVCow== 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=k5kaqYECyIljTdBr5fiYO5PRchpfjFBeeYx30h836Jw=; b=PzvmMqaoo36CnPtEpExS6gBb5ZxgAul+/BG/Fp6xowsvPtNtai84q6rMtejy69sEZ2UBU6Bq7tngl7D9KYM/ojRDTky+GI+XhStKa2ESWJQZa3lw4x3K6hjqKJZgCJG1jx9guM9OHHafN5GoqWIlk/9wAw9to2InbTu3uuj6K7oz+S62g0A1VLXzzIGojYZJ9W+TG6kp3qrvlZMID4StmBK4QbdA6a3GNK2qhxk363f43Rqyh5Wb0Hd2yKitPo3kw6y2kDYb37bNQ8kUkZcD1Pwrsconow6pM1V6YRmT5SQLWys8EOucB6nqxL8opS18Gl3hfvL/yzUwisDOfMarrA== 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=k5kaqYECyIljTdBr5fiYO5PRchpfjFBeeYx30h836Jw=; b=Hk7HnyoYM9qXVRiLOtcpFFypaQBS9ILr6Vpfhbj3f0Ix9D2HHZ4dZvk1eFCjs0gv5rVe1dTtllPsnn9PDXNCSoNKako3xVI5SE4Qg4EPwvl3x75NBEX12ooqezvIAtribduXbj/OdRZmc5DdYsSg82F4Pfww0ds9tsx4OZKW85s= Received: from AM4PR05MB3425.eurprd05.prod.outlook.com (10.171.190.15) by AM4PR05MB3186.eurprd05.prod.outlook.com (10.171.191.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.9; Thu, 9 Jan 2020 07:35:31 +0000 Received: from AM4PR05MB3425.eurprd05.prod.outlook.com ([fe80::5114:421:f4a9:5ca8]) by AM4PR05MB3425.eurprd05.prod.outlook.com ([fe80::5114:421:f4a9:5ca8%6]) with mapi id 15.20.2602.016; Thu, 9 Jan 2020 07:35:31 +0000 From: Ori Kam To: "Medvedkin, Vladimir" , "Ananyev, Konstantin" , Anoob Joseph , Akhil Goyal , Adrien Mazarguil , "Doherty, Declan" , "Yigit, Ferruh" , Jerin Jacob Kollanukkaran , Thomas Monjalon CC: Ankur Dwivedi , Hemant Agrawal , Matan Azrad , "Nicolau, Radu" , Shahaf Shuler , Narayana Prasad Raju Athreya , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [EXT] Re: [PATCH] ethdev: allow multiple security sessions to use one rte flow Thread-Index: AQHVtCwr4uuFDX00UEiog89yHDPTaqe+L+AAgAAzSgCAADe1gIAAqniAgACnDgCAAPdZgIAG32GAgBk0vQCAARxrwA== Date: Thu, 9 Jan 2020 07:35:30 +0000 Message-ID: References: <1575801683-27269-1-git-send-email-anoobj@marvell.com> <1fc05516-3686-4267-a760-edbe0b92bc87@intel.com> <0a7d957d-e1f6-835b-15d8-4bccc491b4f9@intel.com> <8d5062b2-d7a7-9788-5788-01720dbad2f5@intel.com> <23ee9ff1-93ac-3381-d10d-867681c25932@intel.com> In-Reply-To: <23ee9ff1-93ac-3381-d10d-867681c25932@intel.com> 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: [185.175.35.255] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: ee76f235-fafe-40cb-1a38-08d794d68160 x-ms-traffictypediagnostic: AM4PR05MB3186:|AM4PR05MB3186: 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:7691; x-forefront-prvs: 02778BF158 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(136003)(376002)(346002)(396003)(39860400002)(199004)(51914003)(189003)(13464003)(2906002)(66476007)(66556008)(33656002)(66946007)(54906003)(9686003)(4326008)(55016002)(15650500001)(64756008)(66446008)(110136005)(26005)(86362001)(478600001)(186003)(7696005)(71200400001)(6506007)(81156014)(52536014)(8936002)(8676002)(81166006)(7416002)(30864003)(5660300002)(316002)(53546011)(76116006)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3186; H:AM4PR05MB3425.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: fwPmJklZbAmVtEXdkXVDtLcvW+BPM7cam+2KbpoMV8NMmDj/frlGP930C3I/b28DGUv6aLDIGbcWH24uDd22dIHX/vqj4xRJ0Z4yYcZtmKZ9wkv04BAUQVkpWTryRYqftlBtyDxt1usb3b79TkWB+qZWhd/2QuqE+z3ZJv3dRfFj/+mt7UH6XAsEEH6LZ8qnsMT8AYgXU3hHTgp9ARfWn4X03XT3JEwY4Tda/7eRG62swHKZyp+XPZOtAb34BlQUh34dK8e1RzgQGJDA/2XOFVmWevPL/nY9ACqlNptKk9CX6htcSrBHCmP5xmgwC/iEkyKFbuirv7+CTur7YpTrrtn9KEdWkmCmlH+B5lY9sAu5wqbueZWlaxMeNnvgxI6jUDt4nv2+65jRP8yolQgBB9LEjoS5dYc4QBp/0pDAVDg+E/WmYqQXBTPDp8ab+zOvW0flvJJrEk5XyyD+p7ssjeB3IDV4DJz1ghAP2YUIMK72PLCYvkzP/sOeBlwg+niqxmxX/q9BcYOJYWDLcaZjF1Y5slSeb6BPKZwoXGT15pPhsjYPI1g5s83MziOZPHJN 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: ee76f235-fafe-40cb-1a38-08d794d68160 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2020 07:35:30.9296 (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: F7k+ykTZihH6hQeJ0xkby/ELFfRh4MsoTHzE3JKZEp17qzW9yY+teJL84wgBdZ2/+mj2zhc6QUO7DSh2HYd+yg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3186 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH] ethdev: allow multiple security sessions to use one rte flow 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" SGkgDQpzb3JyeSBmb3IganVtcGluZyBpbiBsYXRlLg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gRnJvbTogZGV2IDxkZXYtYm91bmNlc0BkcGRrLm9yZz4gT24gQmVoYWxmIE9m IE1lZHZlZGtpbiwgVmxhZGltaXINCj4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDgsIDIwMjAg NDozMCBQTQ0KPiBUbzogQW5hbnlldiwgS29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGlu dGVsLmNvbT47IEFub29iIEpvc2VwaA0KPiA8YW5vb2JqQG1hcnZlbGwuY29tPjsgQWtoaWwgR295 YWwgPGFraGlsLmdveWFsQG54cC5jb20+OyBBZHJpZW4NCj4gTWF6YXJndWlsIDxhZHJpZW4ubWF6 YXJndWlsQDZ3aW5kLmNvbT47IERvaGVydHksIERlY2xhbg0KPiA8ZGVjbGFuLmRvaGVydHlAaW50 ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IEplcmluDQo+ IEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT47IFRob21hcyBNb25qYWxv bg0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gQ2M6IEFua3VyIER3aXZlZGkgPGFkd2l2ZWRp QG1hcnZlbGwuY29tPjsgSGVtYW50IEFncmF3YWwNCj4gPGhlbWFudC5hZ3Jhd2FsQG54cC5jb20+ OyBNYXRhbiBBenJhZCA8bWF0YW5AbWVsbGFub3guY29tPjsNCj4gTmljb2xhdSwgUmFkdSA8cmFk dS5uaWNvbGF1QGludGVsLmNvbT47IFNoYWhhZiBTaHVsZXINCj4gPHNoYWhhZnNAbWVsbGFub3gu Y29tPjsgTmFyYXlhbmEgUHJhc2FkIFJhanUgQXRocmV5YQ0KPiA8cGF0aHJleWFAbWFydmVsbC5j b20+OyBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW0VYVF0gUmU6IFtQ QVRDSF0gZXRoZGV2OiBhbGxvdyBtdWx0aXBsZSBzZWN1cml0eQ0KPiBzZXNzaW9ucyB0byB1c2Ug b25lIHJ0ZSBmbG93DQo+IA0KPiBIaSBBbm9vYiwNCj4gDQo+IE9uIDIzLzEyLzIwMTkgMTM6MzQs IEFuYW55ZXYsIEtvbnN0YW50aW4gd3JvdGU6DQo+ID4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gVGhlIHJ0 ZV9zZWN1cml0eSBBUEkgd2hpY2ggZW5hYmxlcyBpbmxpbmUgcHJvdG9jb2wvY3J5cHRvDQo+ID4+ Pj4+Pj4+Pj4+Pj4+IGZlYXR1cmUgbWFuZGF0ZXMgdGhhdCBmb3IgZXZlcnkgc2VjdXJpdHkgc2Vz c2lvbiBhbg0KPiBydGVfZmxvdw0KPiA+Pj4+Pj4+Pj4+Pj4+PiBpcw0KPiA+Pj4+PiBjcmVhdGVk Lg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBUaGlzIHdvdWxkIGludGVybmFsbHkgdHJhbnNsYXRlIHRvIGEg cnVsZSBpbiB0aGUgaGFyZHdhcmUNCj4gPj4+Pj4+Pj4+Pj4+Pj4gd2hpY2ggd291bGQgZG8gcGFj a2V0IGNsYXNzaWZpY2F0aW9uLg0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBJ biBydGVfc2VjdXJ0eSwgb25lIFNBIHdvdWxkIGJlIG9uZSBzZWN1cml0eSBzZXNzaW9uLiBBbmQN Cj4gaWYNCj4gPj4+Pj4+Pj4+Pj4+Pj4gYW4gcnRlX2Zsb3cgbmVlZCB0byBiZSBjcmVhdGVkIGZv ciBldmVyeSBzZXNzaW9uLCB0aGUNCj4gbnVtYmVyDQo+ID4+Pj4+Pj4+Pj4+Pj4+IG9mIFNBcyBz dXBwb3J0ZWQgYnkgYW4gaW5saW5lIGltcGxlbWVudGF0aW9uIHdvdWxkIGJlDQo+ID4+Pj4+Pj4+ Pj4+Pj4+IGxpbWl0ZWQgYnkgdGhlIG51bWJlciBvZiBydGVfZmxvd3MgdGhlIFBNRCB3b3VsZCBi ZQ0KPiBhYmxlIHRvDQo+ID4+PiBzdXBwb3J0Lg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBJZiB0aGUgZmll bGRzIFNQSSAmIElQIGFkZHJlc3NlcyBhcmUgYWxsb3dlZCB0byBiZSBhIHJhbmdlLA0KPiA+Pj4+ Pj4+Pj4+Pj4+PiB0aGVuIHRoaXMgbGltaXRhdGlvbiBjYW4gYmUgb3ZlcmNvbWUuIE11bHRpcGxl IGZsb3dzIHdpbGwNCj4gYmUNCj4gPj4+Pj4+Pj4+Pj4+Pj4gYWJsZSB0byB1c2Ugb25lIHJ1bGUg Zm9yIFNFQ1VSSVRZIHByb2Nlc3NpbmcuIEluIHRoaXMgY2FzZSwNCj4gPj4+Pj4+Pj4+Pj4+Pj4g dGhlIHNlY3VyaXR5IHNlc3Npb24gcHJvdmlkZWQgYXMgY29uZiB3b3VsZCBiZSBOVUxMLg0KDQpX aHkgaXMgdGhhdD8NCklmIHRoZSBydGUgZmxvdyBjYW4gaGF2ZSBhIHJhbmdlIHRoZW4gdGhpcyBt ZWFucyB0aGF0IHdlIG5lZWQgb25lIHNlY3VyaXR5X3Nlc3Npb24gZm9yIHRoZSBlbnRpcmUgcmFu Z2UsDQpBbSBJIG1pc3Npbmcgc29tZXRoaW5nPyBBcyBpdCBpcyBzdGF0ZWQgaW4gdGhlIHJ0ZV9m b3cuaCAgc2VjdXJpdHlfc2Vzc2lvbiBjYW4gYmUgdXNlZCBmb3IgbXVsdGlwbGUgZmxvd3MuDQoN Cj4gPj4+Pj4+Pj4+Pj4+PiBXb25kZXIgd2hhdCB3aWxsIGJlIHRoZSB1c2FnZSBtb2RlbCBmb3Ig aXQ/DQo+ID4+Pj4+Pj4+Pj4+Pj4gQUZBSUssICBSRkMgNDMwMSBjbGVhcmx5IHN0YXRlcyB0aGF0 IGVpdGhlciBTUEkgdmFsdWUgYWxvbmUNCj4gPj4+Pj4+Pj4+Pj4+PiBvciBpbiBjb25qdW5jdGlv biB3aXRoIGRzdCAoYW5kIHNyYykgSVAgc2hvdWxkIGNsZWFybHkNCj4gPj4+Pj4+Pj4+Pj4+PiBp ZGVudGlmeSBTQSBmb3IgaW5ib3VuZCBTQUQNCj4gPj4+Pj4+Pj4+Pj4gbG9va3VwLg0KPiA+Pj4+ Pj4+Pj4+Pj4+IEFtIEkgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cyBoZXJlPw0KPiA+Pj4+Pj4+ Pj4+Pj4gW0Fub29iXSBFeGlzdGluZyBTRUNVUklUWSBhY3Rpb24gdHlwZSByZXF1aXJlcyBhcHBs aWNhdGlvbiB0bw0KPiA+Pj4+Pj4+Pj4+Pj4gY3JlYXRlIGFuICdydGVfZmxvdycgcGVyIFNBLCB3 aGljaCBpcyBub3QgcmVhbGx5IHJlcXVpcmVkIGlmDQo+ID4+Pj4+Pj4+Pj4+PiBoL3cgY2FuIHVz ZSBTUEkgdG8gdW5pcXVlbHkNCj4gPj4+Pj4+Pj4+Pj4gaWRlbnRpZnkgdGhlIHNlY3VyaXR5IHNl c3Npb24vU0EuDQo+ID4+Pj4+Pj4+Pj4+PiBFeGlzdGluZyBydGVfZmxvdyB1c2FnZTogSVAgKGRz dCxzcmMpICsgRVNQICsgU1BJIC0+IHNlY3VyaXR5DQo+ID4+Pj4+Pj4+Pj4+PiBwcm9jZXNzaW5n IGVuYWJsZWQgb24gb25lIHNlY3VyaXR5IHNlc3Npb24gKGllIG9uIFNBKQ0KPiA+Pj4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+Pj4+IFRoZSBhYm92ZSBydWxlIHdvdWxkIHVuaXF1ZWx5IGlkZW50aWZ5 IHBhY2tldHMgZm9yIGFuIFNBLg0KPiBCdXQNCj4gPj4+Pj4+Pj4+Pj4+IHdpdGggdGhlIGFib3Zl IHVzYWdlLCB3ZSB3b3VsZCBxdWlja2x5IGV4aGF1c3QgZW50cmllcw0KPiA+Pj4+Pj4+Pj4+Pj4g YXZhaWxhYmxlIGluIGgvdyBsb29rdXAgdGFibGVzICh3aGljaCBhcmUgbGltaXRlZCBvbiBvdXIN Cj4gPj4+Pj4+Pj4+Pj4+IGhhcmR3YXJlKS4gQnV0IGlmIGgvdyBjYW4gdXNlIFNQSSBmaWVsZCB0 byBpbmRleA0KPiA+Pj4+Pj4+Pj4+PiBpbnRvIGEgdGFibGUgKGZvciBleGFtcGxlKSwgdGhlbiB0 aGUgYWJvdmUgcmVxdWlyZW1lbnQgb2YNCj4gb25lDQo+ID4+Pj4+Pj4+Pj4+IHJ0ZV9mbG93IHBl ciBTQSBpcyBub3QgcmVxdWlyZWQuDQo+ID4+Pj4+Pj4+Pj4+PiBQcm9wb3NlZCBydGVfZmxvdyB1 c2FnZTogSVAgKGFueSkgKyBFU1AgKyBTUEkgKGFueSkgLT4NCj4gPj4+Pj4+Pj4+Pj4+IHNlY3Vy aXR5IHByb2Nlc3NpbmcgZW5hYmxlZCBvbiBhbGwgRVNQIHBhY2tldHMNCj4gPj4+Pj4+Pj4+IFNv IHRoaXMgbWVhbnMgdGhhdCBTQSB3aWxsIGJlIGluZGV4ZWQgb25seSBieSBzcGk/IFdoYXQgYWJv dXQNCj4gPj4+Pj4+Pj4+IFNBJ3Mgd2hpY2ggYXJlIGluZGV4ZWQgYnkgU1BJK0RJUCtTSVA/DQo+ ID4+Pj4+Pj4+Pj4+PiBOb3cgaC93IGNvdWxkIHVzZSBTUEkgdG8gaW5kZXggaW50byBhIHByZS1w b3B1bGF0ZWQgdGFibGUNCj4gdG8NCj4gPj4+Pj4+Pj4+Pj4+IGdldCBzZWN1cml0eSBzZXNzaW9u LiBQbGVhc2UgZG8gbm90ZSB0aGF0LCBTUEkgaXMgbm90IGlnbm9yZWQNCj4gPj4+Pj4+Pj4+Pj4+ IGR1cmluZyB0aGUgYWN0dWFsDQo+ID4+Pj4+Pj4+Pj4+IGxvb2t1cC4gSnVzdCB0aGF0IGl0IGlz IG5vdCB1c2VkIHdoaWxlIGNyZWF0aW5nICdydGVfZmxvdycuDQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+Pj4+IEFuZCB0aGlzIHRhYmxlIHdpbGwgYmUgcHJlcG9wdWxhdGVkIGJ5IHVzZXIgYW5k IHBvaW50ZXIgdG8gaXQNCj4gPj4+Pj4+Pj4+Pj4gd2lsbCBiZSBzb21laG93IHBhc3NlZCB2aWEg cnRlX2Zsb3cgQVBJPw0KPiA+Pj4+Pj4+Pj4+PiBJZiB5ZXMsIHRoZW4gd2hhdCB3b3VsZCBiZSB0 aGUgbWVjaGFuaXNtPw0KPiA+Pj4+Pj4+Pj4+IFtBbm9vYl0gSSdtIG5vdCBzdXJlIHdoYXQgZXhh Y3RseSB5b3UgbWVhbnQgYnkgdXNlci4gQnV0IG1heQ0KPiBiZQ0KPiA+Pj4+Pj4+Pj4+IEknbGwg ZXhwbGFpbg0KPiA+Pj4+Pj4+Pj4gaG93IGl0J3MgZG9uZSBpbiBPQ1RFT05UWDIgUE1ELg0KPiA+ Pj4+Pj4+Pj4+IFRoZSBhcHBsaWNhdGlvbiB3b3VsZCBjcmVhdGUgc2VjdXJpdHlfc2Vzc2lvbiBm b3IgZXZlcnkgU0EuIFNQSQ0KPiA+Pj4+Pj4+Pj4+IGV0YyB3b3VsZCBiZQ0KPiA+Pj4+Pj4+Pj4g YXZhaWxhYmxlIHRvIFBNRCAoaW4gY29uZikgd2hlbiB0aGUgc2Vzc2lvbiBpcyBjcmVhdGVkLiBO b3cgdGhlDQo+ID4+Pj4+Pj4+PiBQTUQgd291bGQgcG9wdWxhdGUgU0EgcmVsYXRlZCBwYXJhbXMg aW4gYSBzcGVjaWZpYyBsb2NhdGlvbiB0aGF0DQo+ID4+Pj4+Pj4+PiBoL3cgd291bGQgYWNjZXNz LiBUaGlzIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZHVyaW5nIGRldmljZQ0KPiA+Pj4+Pj4+Pj4gY29u ZmlndXJlIGFuZCBoL3cgd291bGQgaGF2ZSB0aGUgcG9pbnRlciBhZnRlciB0aGUgaW5pdGlhbGl6 YXRpb24NCj4gaXMNCj4gPj4+IGRvbmUuDQo+ID4+Pj4+Pj4+PiBJZiBtZW1vcnkgaXMgYWxsb2Nh dGVkIGR1cmluZyBkZXZpY2UgY29uZmlndXJlIHdoYXQgaXMgdXBwZXINCj4gPj4+Pj4+Pj4+IGxp bWl0IGZvciBudW1iZXIgb2Ygc2Vzc2lvbnM/IFdoYXQgaWYgYXBwIG5lZWRzIG1vcmU/DQo+ID4+ Pj4+Pj4+Pj4gUE1EIHVzZXMgU1BJIGFzIGluZGV4IHRvIHdyaXRlIGludG8gc3BlY2lmaWMgbG9j YXRpb25zKGR1cmluZw0KPiA+Pj4+Pj4+Pj4+IHNlc3Npb24gY3JlYXRlKQ0KPiA+Pj4+Pj4+Pj4g YW5kIGgvdyB3b3VsZCB1c2UgaXQgd2hlbiBpdCBzZWVzIGFuIEVTUCBwYWNrZXQgZWxpZ2libGUg Zm9yDQo+ID4+Pj4+Pj4+PiBTRUNVUklUWSAoaW4gcmVjZWl2ZSBwYXRoLCBwZXIgcGFja2V0KS4g QXMgbG9uZyBhcyBzZXNzaW9uDQo+ID4+Pj4+Pj4+PiBjcmVhdGlvbiBjb3VsZCBwb3B1bGF0ZSBh dCBtZW1vcnkgbG9jYXRpb25zIHRoYXQgaC93IHdvdWxkDQo+IGxvb2sNCj4gPj4+Pj4+Pj4+IGF0 LCB0aGlzIHNjaGVtZSB3b3VsZA0KPiA+Pj4+Pj4+IHdvcmsuDQo+ID4+Pj4+Pj4+IFtBbm9vYl0g WWVzLiBCdXQgd2UgbmVlZCB0byBhbGxvdyBhcHBsaWNhdGlvbiB0byBjb250cm9sIHRoZSBoL3cN Cj4gPj4+Pj4+Pj4gaXBzZWMNCj4gPj4+Pj4+PiBwcm9jZXNzaW5nIGFzIHdlbGwuIExldCdzIHNh eSwgYXBwbGljYXRpb24gd2FudHMgdG8gaGFuZGxlIGENCj4gPj4+Pj4+PiBzcGVjaWZpYyBTUEkg cmFuZ2UgaW4gbG9va2FzaWRlIG1vZGUgKG1heSBiZSBiZWNhdXNlIG9mDQo+IHVuc3VwcG9ydGVk DQo+ID4+Pj4+Pj4gY2FwYWJpbGl0aWVzPyksIGluIHRoYXQgY2FzZSBoYXZpbmcgcnRlX2Zsb3cg d2lsbCBoZWxwIGluIGZpbmUNCj4gPj4+Pj4+PiB0dW5pbmcgaG93IHRoZQ0KPiA+Pj4+PiBoL3cg cGFja2V0IHN0ZWVyaW5nIGhhcHBlbnMuDQo+ID4+Pj4+Pj4gQWxzbywgcnRlX2Zsb3cgZW5hYmxl cyBIL3cgcGFyc2luZyBvbiBpbmNvbWluZyBwYWNrZXRzLiBUaGlzIGluZm8NCj4gPj4+Pj4+PiBp cyB1c2VmdWwgZXZlbiBhZnRlciBJUHNlYyBwcm9jZXNzaW5nIGlzIGNvbXBsZXRlLiBPciBpZg0K PiA+Pj4+Pj4+IGFwcGxpY2F0aW9uIHdhbnRzIHRvIGdpdmUgaGlnaGVyIHByaW9yaXR5IHRvIGEg cmFuZ2Ugb2YgU1BJcywNCj4gPj4+Pj4+PiBydGVfZmxvdyB3b3VsZCBhbGxvdyBkb2luZw0KPiA+ Pj4+PiBzby4NCj4gPj4+Pj4+Pj4+IFdoYXQgYWxnb3JpdGhtIG9mIGluZGV4aW5nIGJ5IFNQSSBp cyB0aGVyZT8gQ291bGQgSSB1c2UgYW55DQo+ID4+Pj4+Pj4+PiBhcmJpdHJhcnkgU1BJPyBJZiBz b21lIGtpbmQgb2YgaGFzaGluZyBpcyB1c2VkLCB3aGF0IGFib3V0DQo+IGNvbGxpc2lvbnM/DQo+ ID4+Pj4+Pj4+IFtBbm9vYl0gVGhhdCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuIEluIG91 ciBQTUQsIHdlIG1hcA0KPiBpdA0KPiA+Pj4+Pj4+PiBvbmUNCj4gPj4+Pj4gdG8gb25lLg0KPiA+ Pj4+Pj4+IEFzIGluLCBTUEkgaXMgdXNlZCBhcyBpbmRleCBpbiB0aGUgdGFibGUuDQo+ID4+Pj4+ Pj4gU28sIGFzIGZhciBhcyB5b3UgYXJlIG1hcHBpbmcgb25lIHRvIG9uZSBhbmQgdXNpbmcgU1BJ IGFzIGFuIGluZGV4LA0KPiA+Pj4+Pj4+IGEgbG90IG9mIG1lbW9yeSBpcyB3YXN0ZWQgaW4gdGhl IHRhYmxlIGZvciB1bnVzZWQgU1BJJ3MuICBBbHNvLCB5b3UNCj4gPj4+Pj4+PiBhcmUgbm90IGFi bGUgdG8gaGF2ZSBhIHRhYmxlIHdpdGggMl4zMiBzZXNzaW9ucy4gSXQgaXMgbGlrZWx5IHRoYXQN Cj4gPj4+Pj4+PiBzb21lIG51bWJlciBvZiBTUEkncyBsZWFzdCBzaWduaWZpY2FudCBiaXRzIGFy ZSB1c2VkIGFzIGFuIGluZGV4Lg0KPiA+Pj4+Pj4+IEFuZCBpdCByYWlzZXMgYSBxdWVzdGlvbiAt IHdoYXQgaWYgYXBwbGljYXRpb24gbmVlZHMgdHdvIHNlc3Npb25zDQo+ID4+Pj4+Pj4gd2l0aCBk aWZmZXJlbnQNCj4gPj4+Pj4gU1BJJ3Mgd2hpY2ggaGF2ZSB0aGUgc2FtZSBsc2Incz8NCj4gPj4+ Pj4+IFtBbm9vYl0gcnRlX3NlY3VyaXR5X3Nlc3Npb25fY3JlYXRlKCkgd291bGQgZmFpbC4gV2h5 IGRvIHlvdSBzYXkNCj4gd2UNCj4gPj4+Pj4gY2Fubm90IHN1cHBvcnQgMl4zMiBzZXNzaW9ucz8g SWYgaXQncyBtZW1vcnkgbGltaXRhdGlvbiwgdGhlIHNhbWUNCj4gPj4+Pj4gbWVtb3J5IGxpbWl0 YXRpb24gd291bGQgYXBwbHkgZXZlbiBpZiB5b3UgaGF2ZSBkeW5hbWljIGFsbG9jYXRpb24gb2YN Cj4gPj4+Pj4gbWVtb3J5IGZvciBzZXNzaW9ucy4gU28gYXQgc29tZSBwb2ludCBzZXNzaW9uIGNy ZWF0aW9uIHdvdWxkIHN0YXJ0DQo+ID4+Pj4+IGZhaWxpbmcuIEluIG91ciBQTUQsIHdlIGFsbG93 IHVzZXIgdG8gc3BlY2lmeSB0aGUgcmFuZ2UgaXQgcmVxdWlyZXMgdXNpbmcNCj4gPj4+IGRldmFy Z3MuDQo+ID4+Pj4+PiBBbHNvLCBjb2xsaXNpb24gb2YgTFNCcyBjYW4gYmUgYXZvaWRlZCBieSBp bnRyb2R1Y2luZyBhICJNQVJLIiBydWxlDQo+ID4+Pj4+PiBpbg0KPiA+Pj4+PiBhZGRpdGlvbiB0 byAiU0VDVVJJVFkiIGZvciB0aGUgcnRlX2Zsb3cgY3JlYXRlZCBmb3IgaW5saW5lIGlwc2VjLg0K PiA+Pj4+PiBDdXJyZW50bHkgdGhhdCBtb2RlbCBpcyBub3Qgc3VwcG9ydGVkIChpbiB0aGUgbGli cmFyeSksIGJ1dCB0aGF0IGlzDQo+ID4+Pj4+IG9uZSBzb2x1dGlvbiB0byB0aGUgY29sbGlzaW9u cyB0aGF0IGNhbiBiZSBwdXJzdWVkIGxhdGVyLg0KPiA+Pj4+Pj4+IE1vcmVvdmVyLCB3aGF0IGFi b3V0DQo+ID4+Pj4+Pj4gdHdvIHNlc3Npb25zIHdpdGggc2FtZSBTUEkgYnV0IGRpZmZlcmVudCBk c3QgYW5kIHNyYyBpcCBhZGRyZXNzZXM/DQo+ID4+Pj4+PiBbQW5vb2JdIEN1cnJlbnRseSBvdXIg UE1EIG9ubHkgc3VwcG9ydCBVQ0FTVCBJUFNFQy4gU28gYW5vdGhlcg0KPiA+Pj4+Pj4gc2Vzc2lv bg0KPiA+Pj4+PiB3aXRoIHNhbWUgU1BJIHdvdWxkIHJlc3VsdCBpbiBzZXNzaW9uIGNyZWF0aW9u IGZhaWx1cmUuDQo+ID4+Pj4+DQo+ID4+Pj4+IEFoYSwgSSBzZWUsIHRoYW5rcyBmb3IgdGhlIGV4 cGxhbmF0aW9uLiBTbyBteSBzdWdnZXN0aW9uIGhlcmUgd291bGQNCj4gYmU6DQo+ID4+Pj4+DQo+ ID4+Pj4+IC0gQXBwbGljYXRpb24gZGVmaW5lcyB0aGF0IHNvbWUgc3Vic2V0IG9mIFNBJ3Mgd291 bGQgYmUgaW5saW5lDQo+ID4+Pj4+IHByb3RvY29sIHByb2Nlc3NlZC4gQW5kIHRoaXMgU0EncyB3 aWxsIGJlIGluZGV4ZWQgYnkgU1BJIG9ubHkuDQo+ID4+Pj4+DQo+ID4+Pj4+IC0gQXBwIGRlZmlu ZXMgc3BlY2lhbCByYW5nZSBmb3IgU1BJIHZhbHVlcyBvZiB0aGlzIFNBJ3MgKHNpemUgb2YgdGhp cw0KPiA+Pj4+PiByYW5nZSBpcyBkZWZpbmVkIHVzaW5nIGRldmFyZ3MpIGFuZCBmaXJzdCBTUEkg dmFsdWUgKGZyb20NCj4gY29uZmlndXJhdGlvbj8pLg0KPiA+Pj4+Pg0KPiA+Pj4+PiAtIEFwcCBp bnN0YWxscyBydGVfZmxvdyBvbmx5IGZvciB0aGlzIHJhbmdlIChmcm9tIGZpcnN0IFNQSSB0byBm aXJzdA0KPiA+Pj4+PiBTUEkNCj4gPj4+Pj4gKyByYW5nZSBzaXplKSwgbm90IGZvciBhbGwgU1BJ IHZhbHVlcy4NCj4gPj4+PiBbQW5vb2JdIFRoaXMgaXMgZXhhY3RseSB3aGF0IHRoaXMgcGF0Y2gg cHJvcG9zZXMuIEFsbG93aW5nIHRoZSBTUEkgYW5kDQo+IHRoZQ0KPiA+Pj4gSVAgYWRkcmVzc2Vz IHRvIGJlIHJhbmdlIGFuZCBoYXZlIHNlY3VyaXR5X3Nlc3Npb24gcHJvdmlkZWQgYXMgTlVMTC4N Cj4gV2hhdA0KPiA+Pj4geW91IGhhdmUgZGVzY3JpYmVkIHdvdWxkIGJlIGFjaGlldmFibGUgb25s eSBpZiB3ZSBjYW4gYWxsb3cgdGhpcw0KPiA+Pj4gbW9kaWZpY2F0aW9uIGluIHRoZSBsaWIuDQo+ ID4+Pj4gU28gY2FuIEkgYXNzdW1lIHlvdSBhcmUgaW4gYWdyZWVtZW50IHdpdGggdGhpcyBwYXRj aD8NCj4gPj4+IE5vdCBleGFjdGx5LiBJIG1lYW50IGl0IGlzIGJldHRlciB0byBtYWtlIG1vcmUg c3BlY2lmaWVkIGZsb3cgbGlrZToNCj4gPj4+DQo+ID4+PiAuLi4NCj4gPj4+DQo+ID4+PiBzdHJ1 Y3QgcnRlX2Zsb3dfaXRlbV9lc3AgZXNwX3NwZWMgPSB7DQo+ID4+Pg0KPiA+Pj4gICAgICAgICAg IC5oZHIgPSB7DQo+ID4+PiAgICAgICAgICAgICAgICAgICAuc3BpID0gcnRlX2NwdV90b19iZV8z MihmaXJzdF9zcGkpLA0KPiA+Pj4gICAgICAgICAgIH0sDQo+ID4+Pg0KPiA+Pj4gfTsNCj4gPj4+ DQo+ID4+PiBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9lc3AgZXNwX21hc2sgPSB7DQo+ID4+Pg0KPiA+ Pj4gICAgICAgICAgIC5oZHIgPSB7DQo+ID4+PiAgICAgICAgICAgICAgICAgICAuc3BpID0gcnRl X2NwdV90b19iZV8zMihuYl9pcHNlY19pbl9zYSAtIDEpLA0KPiA+Pj4gICAgICAgICAgIH0sDQo+ ID4+Pg0KPiA+Pj4gfTsNCj4gPj4+DQo+ID4+PiBwYXR0ZXJuWzBdLnR5cGUgPSBSVEVfRkxPV19J VEVNX1RZUEVfRVNQOw0KPiA+Pj4NCj4gPj4+IHBhdHRlcm5bMF0uc3BlYyA9ICYgZXNwX3NwZWM7 DQo+ID4+Pg0KPiA+Pj4gcGF0dGVyblswXS5tYXNrID0gJmVzcF9tYXNrOw0KPiA+Pj4NCj4gPj4+ IC4uLg0KPiA+Pj4NCj4gPj4+IFNvIHRoaXMgbWVhbnMgaW5saW5lIHByb3RvIGRldmljZSB3b3Vs ZCBwcm9jZXNzIG9ubHkgc3BlY2lhbCBzdWJzZXQgb2YNCj4gU1BJJ3MuDQo+ID4+PiBBbGwgb3Ro ZXIgd2lsbCBiZSBwcm9jZXNzZWQgYXMgdXN1YWwuIFN1cmUsIHlvdSBjYW4gYXNzaWduIGFsbA0K PiA+Pj4gMl4zMiBTUEkgcmFuZ2UgYW5kIGl0IHdvcmsgYXMgeW91IGludGVuZGVkIGVhcmxpZXIu IEkgdGhpbmsgd2UgbmVlZCB0bw0KPiBoYXZlDQo+ID4+PiBmaW5lciBncmFpbmVkIGNvbnRyb2wg aGVyZS4NCj4gPj4+DQo+ID4+IFtBbm9vYl0gQWxsb3dpbmcgYSByYW5nZSBmb3IgU1BJIGlzIHdo YXQgeW91IGhhdmUgYWxzbyBkZXNjcmliZWQuIFdoYXQNCj4geW91IGRlc2NyaWJlZCBpcyBvbmUg d2F5IHRvIGRlZmluZSBhIHJhbmdlLiBUaGF0IHdpbGwgY29tZSBhcw0KPiA+PiBwYXJ0IG9mIHRo ZSBpbXBsZW1lbnRhdGlvbiwgaWUsIGEgY2hhbmdlIGluIHRoZSBleGFtcGxlIGFwcGxpY2F0aW9u LiBUaGlzDQo+IHBhdGNoIGludGVuZHMgdG8gYWxsb3cgdXNpbmcgYSByYW5nZSBmb3IgU1BJIHRo YW4gYSBmaXhlZA0KPiA+PiB2YWx1ZS4gSSBiZWxpZXZlIHlvdSBhcmUgYWxzbyBpbiBhZ3JlZW1l bnQgdGhlcmUuDQo+ID4gSSBhbHNvIGRvbid0IGhhdmUgb2JqZWN0aW9ucyBmb3IgdGhhdCBwYXRj aC4NCj4gPiBUaGUgb25seSBvYnNlcmF2aW9uIGZyb20gcmVhZGluZyB5b3VyIHJlcGxpZXMgdG8g dGhhdCBhdCBpcHNlYy1zZWNndw0KPiBwYXRjaGVzOg0KPiA+IEV4dHJhIEFQSSB0byByZXRyaWV2 ZSBzaXplIG9mIHRoYXQgSFcgdGFibGUgc2VlbXMgdG8gYmUgbmVlZGVkLg0KPiA+IFRob3VnaCBJ IHN1cHBvc2UgaXQgY291bGQgYmUgYSBzdWJqZWN0IG9mIHNlcGFyYXRlIHBhdGNoL2Rpc2N1c3Np b24uDQo+ID4NCj4gPiBBY2tlZC1ieTogS29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFu YW55ZXZAaW50ZWwuY29tPg0KPiANCj4gSSBhbHNvIGRvbid0IGhhdmUgb2JqZWN0aW9ucy4NCj4g DQo+IEFja2VkLWJ5OiBWbGFkaW1pciBNZWR2ZWRraW4gPHZsYWRpbWlyLm1lZHZlZGtpbkBpbnRl bC5jb20+DQo+IA0KPiA+DQo+ID4+Pj4+IC0gT3RoZXIgU1BJIHZhbHVlcyB3b3VsZCBiZSBwcm9j ZXNzZWQgbm9uIGlubGluZS4NCj4gPj4+Pj4NCj4gPj4+Pj4gSW4gdGhpcyBjYXNlIHdlIHdvdWxk IGJlIGFibGUgdG8gaGF2ZSBTQSBhZGRyZXNzZWQgYnkgbG9uZ2VyIHR1cGxlDQo+IChpLmUuDQo+ ID4+Pj4+IFNQSStESVArU0lQKSBvdXRzaWRlIG9mIGJlZm9yZSBtZW50aW9uZWQgcmFuZ2UsIGFz IHdlbGwgYXMgU0Egd2l0aA0KPiA+Pj4+PiB1bnN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgYnkgaW5s aW5lIHByb3RvY29sIGRldmljZS4NCj4gPj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IFRoZSB1c2FnZSBv ZiBvbmUgJ3J0ZV9mbG93JyBmb3IgbXVsdGlwbGUgU0FzIGlzIG5vdA0KPiBtYW5kYXRvcnkuDQo+ ID4+Pj4+Pj4+Pj4+PiBJdCBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXBwbGljYXRpb24gcmVxdWly ZXMgbGFyZ2UgbnVtYmVyIG9mDQo+ID4+PiBTQXMuDQo+ID4+Pj4+Pj4+Pj4+PiBUaGUgcHJvcG9z ZWQNCj4gPj4+Pj4+Pj4+Pj4gY2hhbmdlIGlzIHRvIGFsbG93IG1vcmUgZWZmaWNpZW50IHVzYWdl IG9mIGgvdyByZXNvdXJjZXMNCj4gd2hlcmUNCj4gPj4+Pj4+Pj4+Pj4gaXQncyBwZXJtaXR0ZWQg YnkgdGhlIFBNRC4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gQXBwbGljYXRpb24gc2hvdWxkIGRvIGFuIHJ0 ZV9mbG93X3ZhbGlkYXRlKCkgdG8gbWFrZSBzdXJlDQo+ID4+Pj4+Pj4+Pj4+Pj4+IHRoZSBmbG93 IGlzIHN1cHBvcnRlZCBvbiB0aGUgUE1ELg0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+ Pj4+PiBTaWduZWQtb2ZmLWJ5OiBBbm9vYiBKb3NlcGggPGFub29iakBtYXJ2ZWxsLmNvbT4NCj4g Pj4+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgIGxpYi9saWJydGVfZXRo ZGV2L3J0ZV9mbG93LmggfCA2ICsrKysrKw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspDQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4+Pj4+Pj4+ Pj4+Pj4+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaCBpbmRleCA0NTJkMzU5Li4yMWZh N2VkDQo+ID4+PiAxMDA2NDQNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhk ZXYvcnRlX2Zsb3cuaA0KPiA+Pj4+Pj4+Pj4+Pj4+PiArKysgYi9saWIvbGlicnRlX2V0aGRldi9y dGVfZmxvdy5oDQo+ID4+Pj4+Pj4+Pj4+Pj4+IEBAIC0yMjM5LDYgKzIyMzksMTIgQEAgc3RydWN0 IHJ0ZV9mbG93X2FjdGlvbl9tZXRlciB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAqIGRpcmVj dGlvbi4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICoNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAg ICogTXVsdGlwbGUgZmxvd3MgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBzYW1lDQo+ID4+ Pj4+Pj4+Pj4+Pj4+IHNlY3VyaXR5DQo+ID4+Pj4+IHNlc3Npb24uDQo+ID4+Pj4+Pj4+Pj4+Pj4+ ICsgKg0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICogVGhlIE5VTEwgdmFsdWUgaXMgYWxsb3dlZCBmb3Ig c2VjdXJpdHkgc2Vzc2lvbi4gSWYNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyBzZWN1cml0eSBzZXNzaW9u IGlzIE5VTEwsDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKiB0aGVuIFNQSSBmaWVsZCBpbiBFU1AgZmxv dyBpdGVtIGFuZCBJUCBhZGRyZXNzZXMgaW4gZmxvdw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArIGl0ZW1z ICdJUHY0JyBhbmQNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAqICdJUHY2JyB3aWxsIGJlIGFsbG93ZWQg dG8gYmUgYSByYW5nZS4gVGhlIHJ1bGUgdGh1cw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArIGNyZWF0ZWQg Y2FuIGVuYWJsZQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICogU0VDVVJJVFkgcHJvY2Vzc2luZyBvbiBt dWx0aXBsZSBmbG93cy4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAqDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAg ICAgICAqLw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Nl Y3VyaXR5IHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgdm9pZCAqc2VjdXJpdHlfc2Vzc2lvbjsg LyoqPCBQb2ludGVyIHRvIHNlY3VyaXR5DQo+ID4+Pj4+Pj4+Pj4+Pj4+IHNlc3Npb24NCj4gPj4+ Pj4+PiBzdHJ1Y3R1cmUuDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICovDQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0t DQo+ID4+Pj4+Pj4+Pj4+Pj4+IDIuNy40DQo+ID4+Pj4+Pj4+PiAtLQ0KPiA+Pj4+Pj4+Pj4gUmVn YXJkcywNCj4gPj4+Pj4+Pj4+IFZsYWRpbWlyDQo+ID4+Pj4+Pj4gLS0NCj4gPj4+Pj4+PiBSZWdh cmRzLA0KPiA+Pj4+Pj4+IFZsYWRpbWlyDQo+ID4+Pj4+IC0tDQo+ID4+Pj4+IFJlZ2FyZHMsDQo+ ID4+Pj4+IFZsYWRpbWlyDQo+ID4+PiAtLQ0KPiA+Pj4gUmVnYXJkcywNCj4gPj4+IFZsYWRpbWly DQo+IA0KPiAtLQ0KPiBSZWdhcmRzLA0KPiBWbGFkaW1pcg0KDQo=