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 6C54DA04DB; Fri, 16 Oct 2020 11:15:24 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 237021EACA; Fri, 16 Oct 2020 11:15:23 +0200 (CEST) Received: from hqnvemgate26.nvidia.com (hqnvemgate26.nvidia.com [216.228.121.65]) by dpdk.org (Postfix) with ESMTP id C13C61EAA1 for ; Fri, 16 Oct 2020 11:15:21 +0200 (CEST) Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Fri, 16 Oct 2020 02:15:07 -0700 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 16 Oct 2020 09:15:13 +0000 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (104.47.37.59) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Fri, 16 Oct 2020 09:15:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BEZxSNTHKoflM+iVpji+m4m5iiHAKwWQ3f1y0y+Gg5xcsv3iSiXrugUcTUvD6hpKC2hXJatIo4YSO3WuhyFpejgLuIwYvD9PIXqWPx/H3NWREOmJuqjiZL0PIBNdivGt10VdVkltiReA3qUywy86ra28tLe//nFeeglKwDK+1S4jIlY0gxo/Grhl9W67zFEOzOSKi+jerOH5dC+qiqbnThYEmDKsxhTIHWgyB4/Wm7CqYVYrmqrXP5z3mYaJ4a85L084urNtRWnchcWyp0DLbW7Y3a/NzTAFSeAHqGT/FIPbxZIN+F1JP+6wT9UkI56yzN89hZtnHZ+OB4+5KhVjCw== 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=eCqIt+xICX6+FN0ZJ5hEP4y8vos76X86i6hPyx/YTU0=; b=nOqX/076+IxV91OKMM0ORAPcny9uKytsNFt0LAkRPhmbvlyDkzsmPFtxGvZWuIELEYzl4hZl84UynHzmkyjv5mb65qbI4PQUfDD4/8JPk+3aMyWy4FSuiUhyrpVuRu0wfF34LwzFeTipIRX57m86vbfk3YfsKfPdmG22Kquz+swtNFlfCTSvNxhQUEvasDbtqsA5y+FQLCIhXlwaDc/180EKYWripCL7/kQ1LXh7iokl88xL66IO39nvdaVegXh2Q0UgN+rYLrYyPSN8AMrv8A5n+yb4nqMGNoYAqSGZfK5+oJ/hBCHUEWjAMbh5ym+KxbWoP3pxDIMAlxry94dBwQ== 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 MN2PR12MB4800.namprd12.prod.outlook.com (2603:10b6:208:3c::17) by MN2PR12MB4288.namprd12.prod.outlook.com (2603:10b6:208:1d2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.24; Fri, 16 Oct 2020 09:15:12 +0000 Received: from MN2PR12MB4800.namprd12.prod.outlook.com ([fe80::68ae:49ce:4b53:2723]) by MN2PR12MB4800.namprd12.prod.outlook.com ([fe80::68ae:49ce:4b53:2723%7]) with mapi id 15.20.3477.025; Fri, 16 Oct 2020 09:15:12 +0000 From: Gregory Etelson To: Ferruh Yigit , Sriharsha Basavapatna , "dev@dpdk.org" CC: Eli Britstein , Oz Shlomo , Ori Kam Thread-Topic: [dpdk-dev] [PATCH v4 2/4] ethdev: tunnel offload model Thread-Index: AQHWmlWSoUzLfY4PlESQJ/KV+eA+mqmKVswAgAG8t2CAC1VggIACm6dQ Date: Fri, 16 Oct 2020 09:15:11 +0000 Message-ID: References: <20200625160348.26220-1-getelson@mellanox.com> <20201004135040.10307-1-getelson@nvidia.com> <20201004135040.10307-3-getelson@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [176.230.224.178] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: aa9f787a-1bbc-408c-7dbf-08d871b3fc88 x-ms-traffictypediagnostic: MN2PR12MB4288: 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: s8eAY28T7ZY8S+j6wX5puEH1+7WrWgeh+LDERSSTSRaz3q+h0yDIPE/T2ljcFhMPijPZmXooSn2zgYZGte5OmE39CSEauxLreSqTkeJbkGjodi/OSXvkaFNnEFGqxDNhpnkOKKTCixKKZHMFKbyS6Zt3Ya2Eea+RjuACPsFKYFdMWu3NB97Fx1E3yeQ9ABZpzpTKFeIEI2/jPI/odVD739+F/rOdBBU1jhLrkoKSyjiMg75/D0xqGIhnQt1DppgQH1TNQwvTkINSkFYT/+wNVuHH/cDNq8/ddD4RyHCDiPQNISQRZgJF9C6edlI15HVy/UjaLJFCnDRexHKzS3u/Mg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB4800.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(346002)(376002)(366004)(39860400002)(136003)(52536014)(316002)(76116006)(66446008)(8936002)(64756008)(83380400001)(5660300002)(66946007)(66556008)(110136005)(55016002)(71200400001)(66476007)(33656002)(107886003)(86362001)(7696005)(9686003)(4326008)(478600001)(186003)(8676002)(53546011)(54906003)(26005)(2906002)(6506007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: xYfhe/t0kpv9ONPMW4/yech3tl5GFFvAUHDgqPs4MyNu8Pjqs6M/s0BBJ1K6a2JPSTwtrx5yuAOQXvP2XbbJm3qdhFogiXd89+Bh1fVKvvRFX8V1vZ/gvfOI/iIZsxGUXNQP6R9FACFa84/9d40ayOUzUXe2g1b/YQHBBd5fZnoWdE3WS1jvHI8I7Knuz/hGNznL8BOuwJPY9uhYjmPAzBY5sbumSToxrMbZNcTjgG7Wwzx4vrvqTOBioBydd7W209yPSDHlJ4o5XLLVyvQ5tqjslnA8mSalHcnFnLYzS6KY3J4bDsQGDVfpEQCQqRrkOtUIcm8RCiGgH2MlkJzxBxIPihQ4IEQp7FSEONjUL976VBRzJ6Fy003MCuR6Ti3uIpLG5vOqanKlFJw1LrbUbRDXkn3SUcyhQcr0OqZnQ58XXyato6bCX0lPl0Sy3nL0vqV8R+nGfKoIQ7uxw5G8VuXCZS+K0Atd4P8f5pGEFuskIN7Nb0DyZTWY5uN8i0ms+g3u3OfhOpHbH6yl1Gg8WrBBGaOmosZ0GTjiaLL01/QeziMUWUvFQollEYt/4S9eZkfP0ZOic3kq2orCtVDyZ9ZbOSAnt5y6n5z/TebyXGZUtpXKfK5VMT7nsEO4L9bCXSxVLlFI0xJ1IfivKYG3tQ== 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: MN2PR12MB4800.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa9f787a-1bbc-408c-7dbf-08d871b3fc88 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2020 09:15:11.9715 (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: EvazcOxGFszaeFxy0/TKOPFgRk3kApj4IILnTnbIsyjnQYA6jZwyNNSnz7U8awxoNvXfN6Kjrm2ZLvhqgIQyAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4288 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1602839707; bh=eCqIt+xICX6+FN0ZJ5hEP4y8vos76X86i6hPyx/YTU0=; 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-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=XLeZ9iHPic+w+M5VIcW8d57jQKe6N0rVOukOw6FOuQmXHwirYe5dJXWAZbo50KtlR QOIb+0aEfiGtkHbYvUG4x6TgfJWWYFUaW3dN1ZaVsI/3rCQ65Z1xJ23L7SPYTtkXrb 1m/YHU5oRkAAdno/TU0yjVSgo3R9D6Wv61lV9gzeK8AFjodryDmvgK9uBqCOnYP0cC drsKMrzSAr7NGQ3FNo8XANcgDixrFVpLdk9uxJFUA2GuQTQmmMgqkOAGoJOmVCDqoQ BXz80QQ2+xiX9HC8F2cljQZvnWUOb05oAf+afobvCiClTEiMDd4KB6D5CbFWnfArOl osDRFUKqHFsLQ== Subject: Re: [dpdk-dev] [PATCH v4 2/4] ethdev: tunnel offload model 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" SGVsbG8gRmVydWgsDQoNCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY0IDIvNF0g ZXRoZGV2OiB0dW5uZWwgb2ZmbG9hZCBtb2RlbA0KPiANCj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBj YXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMNCj4gDQo+IA0KPiBPbiAxMC83LzIw MjAgMTozNiBQTSwgR3JlZ29yeSBFdGVsc29uIHdyb3RlOg0KPiA+IEhlbGxvIEhhcnNoYSwNCj4g Pg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+DQo+ID4gW3NuaXBdDQo+ID4+ DQo+ID4+IFR1bm5lbCB2cG9ydCBpcyBhbiBpbnRlcm5hbCBjb25zdHJ1Y3QgdXNlZCBieSBvbmUg c3BlY2lmaWMNCj4gPj4gYXBwbGljYXRpb246IE9WUy4gU28sIHNob3VsZG4ndCB0aGUgcnRlIEFQ SXMgYWxzbyBiZSBhcHBsaWNhdGlvbg0KPiA+PiBhZ25vc3RpYyBhcGFydCBmcm9tIGJlaW5nIHZl bmRvciBhZ25vc3RpYyA/IEZvciBPVlMsIHRoZSBtYXRjaCBmaWVsZHMNCj4gPj4gaW4gdGhlIGV4 aXN0aW5nIGRhdGFwYXRoIGZsb3cgcnVsZXMgY29udGFpbiBlbm91Z2ggaW5mb3JtYXRpb24gdG8N Cj4gPj4gaWRlbnRpZnkgdGhlIHR1bm5lbCB0eXBlLg0KPiA+DQo+ID4gVHVubmVsIG9mZmxvYWQg bW9kZWwgd2FzIGluc3BpcmVkIGJ5IE9WUyB2cG9ydCwgYnV0IGl0IGlzIG5vdCBwYXJ0IG9mDQo+ IHRoZSBleGlzdGluZyBBUEkuDQo+ID4gSXQgbG9va3MgbGlrZSB0aGUgQVBJIGRvY3VtZW50YXRp b24gc2hvdWxkIG5vdCB1c2UgdGhhdCB0ZXJtIHRvIGF2b2lkDQo+IGNvbmZ1c2lvbi4NCj4gPg0K PiA+IFtzbmlwXQ0KPiA+DQo+ID4gW3NuaXBdDQo+ID4+DQo+ID4+IFdvdWxkbid0IGl0IGJlIGJl dHRlciBpZiB0aGUgQVBJcyBkbyBub3QgcmVmZXIgdG8gdnBvcnRzIGFuZCBhdm9pZA0KPiA+PiBw ZXJjb2xhdGluZyBpdCBkb3duIHRvIHRoZSBQTUQgPyBNeSBwb2ludCBoZXJlIGlzIHRvIGF2b2lk IGJyaW5naW5nIGluDQo+ID4+IHRoZSBrbm93bGVkZ2Ugb2YgYW4gYXBwbGljYXRpb24gc3BlY2lm aWMgdmlydHVhbCBvYmplY3QgKHZwb3J0KSB0byB0aGUNCj4gPj4gUE1ELg0KPiA+Pg0KPiA+DQo+ ID4gQXMgSSBoYXZlIG1lbnRpb25lZCBhYm92ZSwgdGhlIEFQSSBkZXNjcmlwdGlvbiBzaG91bGQg bm90IG1lbnRpb24gdnBvcnQuDQo+ID4gSSdsbCBwb3N0IHVwZGF0ZWQgZG9jdW1lbnRzLg0KPiA+ DQo+ID4+IEhlcmUncyBzb21lIG90aGVyIGlzc3VlcyB0aGF0IEkgc2VlIHdpdGggdGhlIGhlbHBl ciBBUElzIGFuZA0KPiA+PiB2ZW5kb3Itc3BlY2lmaWMgdmFyaWFibGUgYWN0aW9ucy4NCj4gPj4g MSkgVGhlIGFwcGxpY2F0aW9uIG5lZWRzIHNvbWUga2luZCBvZiB2YWxpZGF0aW9uIChvciB1bmRl cnN0YW5kaW5nKSBvZg0KPiA+PiB0aGUgYWN0aW9ucyByZXR1cm5lZCBieSB0aGUgUE1ELiBUaGUg YXBwbGljYXRpb24gY2FuJ3QganVzdCBibGluZGx5DQo+ID4+IHVzZSB0aGUgYWN0aW9ucyBzcGVj aWZpZWQgYnkgdGhlIFBNRC4gVGhhdCBpcywgdGhlIGRlY2lzaW9uIHRvIHBpY2sNCj4gPj4gdGhl IHNldCBvZiBhY3Rpb25zIGNhbid0IGJlIGxlZnQgZW50aXJlbHkgdG8gdGhlIFBNRC4NCj4gPj4g MikgVGhlIGFwcGxpY2F0aW9uIG5lZWRzIHRvIGxlYXJuIGEgUE1ELXNwZWNpZmljIHdheSBvZiBh Y3Rpb24NCj4gPj4gcHJvY2Vzc2luZyBmb3IgZWFjaCB2ZW5kb3IuIEZvciBleGFtcGxlLCBob3cg c2hvdWxkIHRoZSBhcHBsaWNhdGlvbg0KPiA+PiBoYW5kbGUgZmxvdy1taXNzLCBnaXZlbiBhIGRp ZmZlcmVudCBzZXQgb2YgYWN0aW9ucyBiZXR3ZWVuIHR3byB2ZW5kb3JzDQo+ID4+IChpZiBvbmUg dmVuZG9yIGhhcyBhbHJlYWR5IHBvcHBlZCB0aGUgdHVubmVsIGhlYWRlciB3aGlsZSB0aGUgb3Ro ZXINCj4gPj4gb25lIGhhc24ndCkuDQo+ID4+IDMpIFRoZSBlbmQtdXNlcnMvY3VzdG9tZXJzIHdv bid0IGhhdmUgYSBjb21tb24gaW50ZXJmYWNlIChhcyBpbiwNCj4gPj4gY29uc2lzdGVudCBhY3Rp b25zKSB0byBwZXJmb3JtIHR1bm5lbCBkZWNhcCBhY3Rpb24uIFRoaXMgYmVjb21lcyBhDQo+ID4+ IG1hbmFnZWFiaWxpdHkvbWFpbnRlbmFuY2UgaXNzdWUgZm9yIHRoZSBhcHBsaWNhdGlvbiB3aGls ZSB3b3JraW5nIHdpdGgNCj4gPj4gZGlmZmVyZW50IHZlbmRvcnMuDQo+ID4+DQo+ID4+IElNTywg dGhlIEFQSSBzaG91bGRuJ3QgZXhwZWN0IHRoZSBQTUQgdG8gdW5kZXJzdGFuZCB0aGUgbm90aW9u IG9mDQo+ID4+IHZwb3J0LiBUaGUgZ29hbCBoZXJlIGlzIHRvIG9mZmxvYWQgYSBmbG93IHJ1bGUg dG8gZGVjYXAgdGhlIHR1bm5lbA0KPiA+PiBoZWFkZXIgYW5kIGZvcndhcmQgdGhlIHBhY2tldCB0 byBhIEhXIGVuZHBvaW50LiAgVGhlIHByb2JsZW0gaXMgdGhhdA0KPiA+PiB3ZSBkb24ndCBoYXZl IGEgd2F5IHRvIGV4cHJlc3MgdGhlICJ0bmxfcG9wIiBkYXRhcGF0aCBhY3Rpb24gdG8gdGhlIEhX DQo+ID4+IChkZWNhcCBmbG93ICMxLCBpbiB0aGUgY29udGV4dCBvZiBici1waHkgaW4gT1ZTLURQ REspIGFuZCBhbHNvIHdlIG1heQ0KPiA+PiBub3Qgd2FudCB0aGUgSFcgdG8gcmVhbGx5IHBvcCB0 aGUgdHVubmVsIGhlYWRlciBhdCB0aGF0IHN0YWdlLiBJZiB0aGlzDQo+ID4+IGNhbm5vdCBiZSBl eHByZXNzZWQgd2l0aCBleGlzdGluZyBydGUgYWN0aW9uIHR5cGVzLCBtYXliZSB3ZSBzaG91bGQN Cj4gPj4gaW50cm9kdWNlIGEgbmV3IGFjdGlvbiB0aGF0IGNsZWFybHkgZGVmaW5lcyB3aGF0IGlz IGV4cGVjdGVkIHRvIHRoZQ0KPiA+PiBQTUQuDQo+ID4NCj4gPiBUdW5uZWwgT2ZmbG9hZCBBUEkg cHJvdmlkZXMgYSBjb21tb24gaW50ZXJmYWNlIGZvciBhbGwgSFcgdmVuZG9yczoNCj4gPiBSdWxl ICMxOiBkZWZpbmUgYSB0dW5uZWxlZCB0cmFmZmljIGFuZCBzdGVlciAvIGdyb3VwIHRyYWZmaWMg cmVsYXRlZCB0bw0KPiA+IHRoYXQgdHVubmVsDQo+ID4gUnVsZSAjMjogd2l0aGluIHRoZSB0dW5u ZWwgc2VsZWN0aW9uLCBydW4gbWF0Y2hlcnMgb24gYWxsIHBhY2tldA0KPiBoZWFkZXJzLA0KPiA+ IG91dGVyIGFuZCBpbm5lciwgYW5kIHBlcmZvcm0gYWN0aW9ucyBvbiBpbm5lciBoZWFkZXJzIGlu IGNhc2Ugb2YgYQ0KPiBtYXRjaC4NCj4gPiBGb3IgdGhlIHJ1bGUgIzEgYXBwbGljYXRpb24gcHJv dmlkZXMgdHVubmVsIG1hdGNoZXJzIGFuZCB0cmFmZmljDQo+IHNlbGVjdGlvbiBhY3Rpb25zDQo+ ID4gYW5kIGZvciBydWxlICMyIGFwcGxpY2F0aW9uIHByb3ZpZGVzIGZ1bGwgaGVhZGVyIG1hdGNo ZXJzIGFuZCBhY3Rpb25zDQo+IGZvciBpbm5lciBwYXJ0cy4NCj4gPiBUaGUgcmVzdCBpcyBzdXBw bGllZCBieSBQTUQgYWNjb3JkaW5nIHRvIEhXIGFuZCBydWxlIHR5cGUuIEFwcGxpY2F0aW9uDQo+ IGRvZXMgbm90DQo+ID4gbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0IFBNRCBlbGVtZW50cyBpbXBs ZW1lbnRhdGlvbi4NCj4gPiBIZWxwZXIgcmV0dXJuIHZhbHVlIG5vdGlmaWVzIGFwcGxpY2F0aW9u IHdoZXRoZXIgaXQgcmVjZWl2ZWQgcmVxdWVzdGVkDQo+IFBNRCBlbGVtZW50cyBvciBub3QuDQo+ ID4gSWYgaGVscGVyIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGl0IG1lYW5zIHRoYXQgYXBwbGlj YXRpb24gcmVjZWl2ZWQNCj4gcmVxdWlyZWQgZWxlbWVudHMNCj4gPiBhbmQgY2FuIGNvbXBsZXRl IGZsb3cgcnVsZSBjb21waWxhdGlvbi4NCj4gPiBBcyB0aGUgcmVzdWx0LCBhIHBhY2tldCB3aWxs IGJlIGZ1bGx5IG9mZmxvYWRlZCBvciByZXR1cm5lZCB0bw0KPiBhcHBsaWNhdGlvbiB3aXRoIGVu b3VnaA0KPiA+IGluZm9ybWF0aW9uIHRvIGNvbnRpbnVlIHByb2Nlc3NpbmcgaW4gU1cuDQo+ID4N Cj4gPiBbc25pcF0NCj4gPg0KPiA+IFtzbmlwXQ0KPiA+DQo+ID4+PiBNaXNzIGhhbmRsaW5nDQo+ ID4+PiAtLS0tLS0tLS0tLS0tDQo+ID4+PiBQYWNrZXRzIGdvaW5nIHRocm91Z2ggbXVsdGlwbGUg cnRlX2Zsb3cgZ3JvdXBzIGFyZSBleHBvc2VkIHRvIGh3DQo+ID4+PiBtaXNzZXMgZHVlIHRvIHBh cnRpYWwgcGFja2V0IHByb2Nlc3NpbmcuIEluIHN1Y2ggY2FzZXMsIHRoZSBzb2Z0d2FyZQ0KPiA+ Pj4gc2hvdWxkIGNvbnRpbnVlIHRoZSBwYWNrZXQncyBwcm9jZXNzaW5nIGZyb20gdGhlIHBvaW50 IHdoZXJlIHRoZQ0KPiA+Pj4gaGFyZHdhcmUgbWlzc2VkLg0KPiA+Pg0KPiA+PiBXaGV0aGVyIHRo ZSBwYWNrZXQgZ29lcyB0aHJvdWdoIG11bHRpcGxlIGdyb3VwcyBvciBub3QgZm9yIHR1bm5lbA0K PiA+PiBkZWNhcCBwcm9jZXNzaW5nLCBzaG91bGQgYmUgbGVmdCB0byB0aGUgUE1EL0hXLiAgVGhl c2UgYXNzdW1wdGlvbnMNCj4gPj4gc2hvdWxkbid0IGJlIGJ1aWx0IGludG8gdGhlIEFQSXMuIFRo ZSBlbmNhcHN1bGF0ZWQgcGFja2V0IChpLGUgd2l0aA0KPiA+PiBvdXRlciBoZWFkZXJzKSBzaG91 bGQgYmUgcHJvdmlkZWQgdG8gdGhlIGFwcGxpY2F0aW9uLCByYXRoZXIgdGhhbg0KPiA+PiBtYWtp bmcgU1cgdW5kZXJzdGFuZCB0aGF0IHRoZXJlIHdhcyBhIG1pc3MgaW4gc3RhZ2UtMSwgb3Igc3Rh Z2UtbiBpbg0KPiA+PiBIVy4gVGhhdCBpcywgSFcgZWl0aGVyIHByb2Nlc3NlcyBpdCBlbnRpcmVs eSwgb3IgcHVudHMgdGhlIHdob2xlDQo+ID4+IHBhY2tldCB0byBTVyBpZiB0aGVyZSdzIGEgbWlz cy4gQW5kIHRoZSBwYWNrZXQgc2hvdWxkIHRha2UgdGhlIG5vcm1hbA0KPiA+PiBwcm9jZXNzaW5n IHBhdGggaW4gU1cgKG5vIGFjdGlvbiBvZmZsb2FkKS4NCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+ PiAtSGFyc2hhDQo+ID4NCj4gPiBUaGUgcGFja2V0IGlzIHByb3ZpZGVkIHRvIHRoZSBhcHBsaWNh dGlvbiB2aWEgdGhlIHN0YW5kYXJkDQo+IHJ0ZV9ldGhfcnhfYnVyc3QgQVBJLg0KPiA+IEFkZGl0 aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEhXIHBhY2tldCBwcm9jZXNzaW5nIHN0YXRlIGlz IHByb3ZpZGVkDQo+IHRvDQo+ID4gdGhlIGFwcGxpY2F0aW9uIGJ5IHRoZSBzdWdnZXN0ZWQgcnRl X2Zsb3dfZ2V0X3Jlc3RvcmVfaW5mbyBBUEkuIEl0IGlzIHVwDQo+IHRvIHRoZQ0KPiA+IGFwcGxp Y2F0aW9uIGlmIHRvIHVzZSBzdWNoIHByb3ZpZGVkIGluZm8sIG9yIGV2ZW4gaWYgdG8gY2FsbCB0 aGlzIEFQSSBhdA0KPiBhbGwuDQo+ID4NCj4gPiBbc25pcF0NCj4gPg0KPiA+IFJlZ2FyZHMsDQo+ ID4gR3JlZ29yeQ0KPiA+DQo+IA0KPiANCj4gSGkgR3JlZ29yeSwgU3JpaGFyc2hhLA0KPiANCj4g SXMgdGhlcmUgYW55IG91dHB1dCBvZiB0aGUgZGlzY3Vzc2lvbj8NCg0KVHVubmVsIEFQSSBkb2N1 bWVudGF0aW9uIHdhcyB1cGRhdGVkIGluIFY2Lg0KDQpSZWdhcmRzLA0KR3JlZ29yeQ0KDQo=