From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0078.outbound.protection.outlook.com [104.47.0.78]) by dpdk.org (Postfix) with ESMTP id ADE377D3E for ; Thu, 24 Aug 2017 08:15:22 +0200 (CEST) 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; bh=IKKGHE4JH98JMcDeYC9FiajEX6XbZEutecW2BRh48xc=; b=JFxo33zJJXwx3EBVsZ0uVnSRIQmcP8exEThbMBTcCVBD2rutjQw6mTDWhGUA5LVVwfaxolmoFhYr/MbXHMsEUUsjAPMEnqGmpMNIrcJZnlAofCXQRYaHWVXo8e9On7Ax5rMy7rBXiVixnwBWYDe2grJIWFYiiRggurbZSWeMNys= Received: from AM3PR05MB307.eurprd05.prod.outlook.com (10.242.247.152) by AM3PR05MB0950.eurprd05.prod.outlook.com (10.161.33.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9; Thu, 24 Aug 2017 06:15:19 +0000 Received: from AM3PR05MB307.eurprd05.prod.outlook.com ([fe80::d563:ce2f:1468:a939]) by AM3PR05MB307.eurprd05.prod.outlook.com ([fe80::d563:ce2f:1468:a939%17]) with mapi id 15.01.1385.010; Thu, 24 Aug 2017 06:15:19 +0000 From: Wisam Monther To: "Hu, Jiayu" CC: "users@dpdk.org" , Raslan Darawsheh , Shahaf Shuler Thread-Topic: Unable to merge packets using GRO feature Thread-Index: AdMaTiF+8CYSsq4aQZ+8LenCiQpxYQAD6neAADXVIAAABK9KMAAAd2TQAFQNtLAAAYcosA== Date: Thu, 24 Aug 2017 06:15:19 +0000 Message-ID: References: <20170821091347.GA94297@dpdk15.sh.intel.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=wisamm@mellanox.com; x-originating-ip: [46.20.215.243] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM3PR05MB0950; 6:6YaLTKQFcHFU7+PSvViULJ2qxQJJ4L9KrzunC9WQxOm7xc2UtMAdOdlChxpoDjT7mGYkHy1kI7z4EW+5lpZKKMjMdkLlzKuFotw2a4++dls7HrAMkyOQdnIMDanvRZM3Y1a4pa+doI7f1N6D/Q+x4gIjjrPq93yOcCJwDRKjncNIIzjLABrlleOe7U6cKSOYdPN+/rK7l4I/am90Dabft1V+tRR+z8+TuuAxzMWU5F86NZIPuLLgM/3Ry8SzGZQjDyVVldA5XIOHWdnk/bKHUjtnMtI+iZ/8OiMFAjCYl8vJK59O46hNGxkqp1qKjEQlGmdf4cwMHOK+MMpqxR3dNg==; 5:ZSEAEflAcwhTk7DKhxR5SgeKF1DcciFcCYPBodYrI0VBjAnwhyT/aQVZev0Vxu2eweUq95t/n3S24+ftVBS/hKgcAWivXjpbkmOHCHkHmEuqcIoXPCLzdyi6vIt/Cwy3jZemjbGHXQp+dlrDSd5fnw==; 24:kQ8b22reL77/nYgQk/ULpVI/i8nZcHeTfic2Xv9Pk00VG9Sz6dzZkEXkDWlru2XqXI6OJVsJfTCHM0KPg79OOjCoJjPYKuK5h/61dKvR0ek=; 7:5Oo7q6QNgkQ/4Qw/F7teObhb6BobrrMNrOKZiJKeqUWWLVAVelps70ehsszk6h9haIpztFcU5oxksIORjVl8aPZjPS+Rf7mg1FCEpmBEwnq/peTtGkkcH3K1/J00z5OPf4Kq1ppqEEqIBnRIPEbjFgcGTBY9jO2sfsTn26UOGuOOD6KNiR2n8qLl69a1oTnDHV+OdU33QuoA6jTEiqSzzqequctQc45Zyt0zL2pAdr8= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: ab01e8f6-f2b0-4dc1-ab0d-08d4eab77eeb x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603195)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM3PR05MB0950; x-ms-traffictypediagnostic: AM3PR05MB0950: x-exchange-antispam-report-test: UriScan:(278428928389397)(228905959029699); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM3PR05MB0950; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM3PR05MB0950; x-forefront-prvs: 04097B7F7F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(199003)(24454002)(377454003)(189002)(13464003)(50986999)(5660300001)(5250100002)(5890100001)(478600001)(345774005)(2950100002)(6916009)(66066001)(74316002)(33656002)(2906002)(3280700002)(101416001)(2900100001)(3660700001)(189998001)(54356999)(76176999)(68736007)(6246003)(53936002)(107886003)(110136004)(102836003)(4326008)(3846002)(53546010)(7736002)(97736004)(93886005)(25786009)(305945005)(106356001)(14454004)(105586002)(7696004)(8676002)(55016002)(54906002)(6506006)(8936002)(81156014)(6436002)(9686003)(229853002)(6116002)(86362001)(81166006)(99286003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR05MB0950; H:AM3PR05MB307.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2017 06:15:19.3965 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR05MB0950 X-Mailman-Approved-At: Thu, 24 Aug 2017 15:49:25 +0200 Subject: Re: [dpdk-users] Unable to merge packets using GRO feature X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Aug 2017 06:15:23 -0000 SGksIA0KDQpJJ20gdXNpbmcgTWVsbGFub3ggTklDcywgYW5kIGl0IGlzIHN1cHBvcnRpbmcgcGFy c2UgcGFja2V0IHR5cGVzLg0KDQpCZXN0IHJlZ2FyZHMsDQpXaXNhbSBKYWRkbyANCg0KLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEh1LCBKaWF5dSBbbWFpbHRvOmppYXl1Lmh1QGlu dGVsLmNvbV0gDQpTZW50OiBUaHVyc2RheSwgQXVndXN0IDI0LCAyMDE3IDg6NDcgQU0NClRvOiBX aXNhbSBNb250aGVyDQpDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhh ZiBTaHVsZXINClN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8g ZmVhdHVyZQ0KDQpIaSwNCg0KQ2FuIHlvdSB0ZWxsIG1lIHdoYXQncyB0aGUgTklDIHR5cGUgb2Yg dGhlIEdSTy1lbmFibGVkIHBvcnQ/DQoNClNpbmNlIEdSTyBsaWJyYXJ5IHVzZXMgbWJ1Zi0+cGFj a2V0X3R5cGUgdG8gcGFyc2UgcGFja2V0IGhlYWRlcnMsIGFwcGxpY2F0aW9ucyBuZWVkIHRvIGZp bGwgdGhpcyB2YWx1ZSBiZWZvcmUgY2FsbGluZyBHUk8gcmVhc3NlbWJseSBBUElzLiBPdGhlcndp c2UsIHRoZSBHUk8gY2FuJ3Qgd29yayBjb3JyZWN0bHkuDQoNCkluIGNzdW0gZm9yd2FyZGluZyBl bmdpbmUgb2YgdGVzdHBtZCwgcGFja2V0X3R5cGUgaXMgZmlsbGVkIGJ5IE5JQyBkcml2ZXJzLiBU aGUgY3N1bSBmb3J3YXJkaW5nIGVuZ2luZSB3b24ndCBzZXQgdGhpcyB2YWx1ZS4gU28gaWYgeW91 ciBOSUMgZG9lc27igJl0IHN1cHBvcnQgdG8gcGFyc2UgcGFja2V0IHR5cGVzLCB0aGUgdmFsdWUg b2YgcGFja2V0X3R5cGUgaXMgMCBhbmQgR1JPIGNhbid0IHdvcmsgY29ycmVjdGx5Lg0KDQpCUnMs DQpKaWF5dQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdpc2FtIE1v bnRoZXIgW21haWx0bzp3aXNhbW1AbWVsbGFub3guY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBBdWd1 c3QgMjIsIDIwMTcgOToyNSBQTQ0KPiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+ DQo+IENjOiB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5v eC5jb20+OyBTaGFoYWYgDQo+IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+IFN1Ympl Y3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiANCj4g WWVzIGl0IGlzLA0KPiBUaGUgZnJhZ21lbnRlZCBwYWNrZXRzIGNvbWVzIGZyb20gcG9ydDEgLyBO SUMgYiBmcm9tIG1hY2hpbmUgQSB0byBwb3J0IA0KPiAxIGluIE5JQyBBIGZvciBtYWNoaW5lIGIg U28gaXQncyByZWNlaXZlZCBvbiB0aGUgcG9ydCAnMScsIHdoaWNoIGlzIA0KPiBjb25maWd1cmVk IGdybyBhY3RpdmUgb24gdGhpcyBwb3J0Lg0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiBXaXNhbSBK YWRkbw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSHUsIEppYXl1 IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIs IDIwMTcgNDoyMSBQTQ0KPiBUbzogV2lzYW0gTW9udGhlcg0KPiBDYzogdXNlcnNAZHBkay5vcmc7 IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gU3ViamVjdDogUkU6IFVuYWJsZSB0 byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+IA0KPiBIaSwNCj4gDQo+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBXaXNhbSBNb250aGVyIFttYWlsdG86 d2lzYW1tQG1lbGxhbm94LmNvbV0NCj4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIsIDIwMTcg NzowNyBQTQ0KPiA+IFRvOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT4NCj4gPiBDYzog dXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsg U2hhaGFmIA0KPiA+IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4gU3ViamVjdDog UkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4NCj4gPiBI ZXkgSmlheXUsDQo+ID4NCj4gPiBUaGFuayB5b3UgZm9yIHlvdXIgcmVwbHkuDQo+ID4gSSB0cmll ZCB3aGF0IHlvdSBzYWlkIHdpdGggdGhlIGNzdW0gYXQgZndkIG1vZGUuDQo+ID4gRXZlbiBzbyB0 aGUgR1JPIGRpZG4ndCB3b3JrcyBmaW5lLg0KPiA+DQo+ID4gSSBldmVuIHRlc3RlZCB3aXRoIGEg bmV3IG1ldGhvZG9sb2d5Lg0KPiA+IFR3byBtYWNoaW5lcyB3aXRoIHR3byBkaWZmZXJlbnQgbmlj IGZvciBlYWNoLg0KPiA+IFRoZSBtZXRob2RvbG9neSB0aGF0IEkgdXNlZCB0byB0ZXN0IGl0IGlz IGRlc2NyaWJlZCBpbiB0aGUgYXR0YWNoZWQgZmlsZS4NCj4gPg0KPiA+IFdoYXQgSSBkaWQgZnJv bSBncm8gc2lkZToNCj4gPiAiIiINCj4gPiB0ZXN0cG1kPmdybyBvbiAxDQo+IA0KPiBEb2VzIHRo ZSBwb3J0IG51bWJlciBvZiBOSUMgQSBpbiBtYWNoaW5lIEIgaXMgJzEnPyBXaGVuIHlvdSBlbmFi bGUgR1JPIA0KPiBmb3IgcG9ydCAnMScsIFRlc3RwbWQgb25seSB0cmllcyB0byBtZXJnZSBwYWNr ZXRzIHJlY2VpdmVkIGZyb20gcG9ydCAnMScuDQo+IA0KPiBCUnMsDQo+IEppYXl1DQo+IA0KPiA+ IFRlc3RwbWQ+c2V0IGZ3ZCBjc3VtDQo+ID4gVGVzdHBtZD5zdGFydA0KPiA+ICIiIg0KPiA+IEFu ZCB0aGUgcGFja2V0IHdpdGggY29ycmVjdCBkc3QgbWFjLg0KPiA+DQo+ID4gQmVzdCByZWdhcmRz LA0KPiA+IFdpc2FtIEphZGRvDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG cm9tOiBKaWF5dSBIdSBbbWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbV0NCj4gPiBTZW50OiBNb25k YXksIEF1Z3VzdCAyMSwgMjAxNyAxMjoxNCBQTQ0KPiA+IFRvOiBXaXNhbSBNb250aGVyDQo+ID4g Q2M6IFRob21hcyBNb25qYWxvbjsgdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNo YWhhZiBTaHVsZXINCj4gPiBTdWJqZWN0OiBSZTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNp bmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+IEhpLA0KPiA+DQo+ID4gT24gTW9uLCBBdWcgMjEsIDIw MTcgYXQgMDc6MjU6MjNBTSArMDAwMCwgV2lzYW0gTW9udGhlciB3cm90ZToNCj4gPiA+IEhlbGxv IEd1eXMsDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBJIGhvcGUgdGhpcyBmaW5kcyB5b3Ug d2VsbCwgSeKAmW0gdHJ5aW5nIHRvIHRlc3QgdGhlIEdSTyBmZWF0dXJlLiANCj4gPiA+IEJ1dCBJ 4oCZbSBzdHVjayB3aXRoIHRoaXMgc2NlbmFyaW8uDQo+ID4gPg0KPiA+ID4gQXMgeW91IGtub3cs IEdSTyBpcyBvbmx5IHN1cHBvcnQgVENQX0lQVjQgcGFja2V0IHVudGlsIG5vdy4NCj4gPiA+DQo+ ID4gPiBTbyBJ4oCZbSB0cnlpbmcgdG8gdGVzdCB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiB0 aGUgZmVhdHVyZSwgYXMgZm9sbG93aW5nOg0KPiA+ID4NCj4gPiA+IFN0YXJ0IHRlc3RwbWQ6DQo+ ID4gPg0KPiA+ID4g4oCc4oCd4oCdDQo+ID4gPg0KPiA+ID4gLi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9idWlsZC9hcHAvdGVzdC1wbWQvdGVzdHBtZCAtbiA0ICAtdw0KPiA+ID4gMDA6MGEu MCAgLXcNCj4gPiA+IDAwOjA5LjAgLS0gIC0tYnVyc3Q9NjQgLS1tYmNhY2hlPTUxMiAtLXBvcnRt YXNrIDB4ZiAtaSAgLS10eGQ9NTEyDQo+ID4gPiAtLXJ4ZD01MTINCj4gPiA+IC0tbmItY29yZXM9 OSAgLS1yeHE9MiAtLXR4cT0yIC0tdHhxZmxhZ3M9MA0KPiA+ID4NCj4gPiA+IOKAnOKAneKAnQ0K PiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gVGhlbiBlbmFibGUgR1JPIGF0IHRoZSB0d28gcG9y dHM6DQo+ID4gPg0KPiA+ID4g4oCc4oCd4oCdDQo+ID4gPg0KPiA+ID4gVGVzdHBtZD5ncm8gb24g MA0KPiA+ID4NCj4gPiA+IFRlc3RwbWQ+Z3JvIG9uIDENCj4gPg0KPiA+IFdoZW4gdXNlIEdSTyBp biB0ZXN0cG1kLCB0aGVyZSBhcmUgZm9sbG93aW5nIHRoaW5ncyB0byBub3RpY2U6DQo+ID4NCj4g PiAxLiBJbiB0ZXN0cG1kLCBHUk8gaXMgc3VwcG9ydGVkIGJ5IGNzdW0gZm9yd2FyZGluZyBlbmdp bmUuIA0KPiA+IFRoZXJlZm9yZSwgcGxlYXNlIHVzZSAnc2V0IGZ3ZCBjc3VtJyB0byBzd2l0Y2gg Zm9yd2FyZGluZyBlbmdpbmUuDQo+ID4NCj4gPiAyLiBCeSBkZWZhdWx0LCBjc3VtIGZvcndhcmRp bmcgZW5naW5lIGNvbXB1bHNvcmlseSBjaGFuZ2VzIGV0aGVybmV0IA0KPiA+IGFkZHJlc3Nlcy4g U28gcGxlYXNlIG1ha2Ugc3VyZSB0aGF0IE1BQyBhZGRyZXNzZXMgYXJlIGNvcnJlY3QuDQo+ID4N Cj4gPiAzLiBXaGVuIGVuYWJsZSBHUk8gZm9yIHBvcnQwLCBjc3VtIGZvcndhcmRpbmcgZW5naW5l IHdpbGwgbWVyZ2UgDQo+ID4gcGFja2V0cyByZWNlaXZlZCBmcm9tIHBvcnQwLiBJZiB0aGVyZSBh cmUgbm8gcGFja2V0cyBmcm9tIHBvcnQxIHRvIA0KPiA+IHBvcnQwLCB5b3UgZG9uJ3QgbmVlZCB0 byBlbmFibGUgR1JPIGZvciBwb3J0MS4NCj4gPg0KPiA+IDQuIEdSTyBsaWJyYXJ5IGRvZXNuJ3Qg cmUtY2FsY3VsYXRlIGNoZWNrc3VtcyBmb3IgbWVyZ2VkIHBhY2tldHMuIElmIA0KPiA+IHlvdSB3 YW50IG1lcmdlZCBwYWNrZXRzIGhhdmUgY29ycmVjdCBjaGVja3N1bSwgcGxlYXNlIHNlbGVjdCBI VyBJUCANCj4gPiBhbmQgSFcgVENQIGNoZWNrc3VtIGNhbGN1bGF0aW9uIGZvciB0aGUgcG9ydCB3 aGljaCB0aGUgbWVyZ2VkIA0KPiA+IHBhY2tldHMgYXJlIHRyYW5zbWl0dGVkIHRvIGluIGNzdW0g Zm9yd2FyZGluZyBlbmdpbmUuDQo+ID4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtZXJnZWQgcGFja2V0 cyBhcmUgbXVsdGktc2VnbWVudCBtYnVmcywgYnV0IGNzdW0gDQo+ID4gZm9yd2FyZGluZyBlbmdp bmUgZG9lc24ndCBzdXBwb3J0IHRvIGNhbGN1bGF0ZSBjaGVja3N1bXMgZm9yIA0KPiA+IG11bHRp LXNlZ21lbnQgbWJ1ZnMgaW4gU1cuIFNvIHdlIG5lZWQgdG8gc2VsZWN0IEhXIGNoZWNrc3VtIG9m ZmxvYWRpbmcuDQo+ID4NCj4gPiBlLmcuIElmIGRhdGEgZmxvdyBpcyAicGFja2V0cyAtPiBwb3J0 MCAtPiBwb3J0MSIsIGNvbW1hbmRzIHVzZWQgaW4gdGVzdHBtZDoNCj4gPiAJZ3JvIG9uIHBvcnQw DQo+ID4gCXNldCBmd2QgY3N1bQ0KPiA+IAljc3VtIHNldCBpcCBodyBwb3J0MQ0KPiA+IAljc3Vt IHNldCB0Y3AgaHcgcG9ydDENCj4gPg0KPiA+DQo+ID4gQmVzaWRlcywgeW91IG5lZWQgdG8gbWFr ZSBzdXJlIHRoYXQgeW91ciBQTUQgZHJpdmVyIGRvZXNuJ3QgdXNlIA0KPiA+IHZlY3RvciBUWCBm dW5jdGlvbiwgc2luY2UgdmVjdG9yIGZ1bmN0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBjaGVja3N1bSBv ZmZsb2FkaW5nLg0KPiA+DQo+ID4gPg0KPiA+ID4g4oCc4oCd4oCdDQo+ID4gPg0KPiA+ID4NCj4g PiA+DQo+ID4gPiBBbmQgdHJ5aW5nIHRvIHNlbmQgVENQX0lQVjQgZnJhZ21lbnRlZCBwYWNrZXQg 4oCccGFja2V0IHdpdGggbGVuZ3RoDQo+ID4gPiAxNTAwIGZyYWdtZW50ZWQgdG8gdGhyZWUgcGFj a2V0cyBvZiA1MDDigJ0NCj4gPiA+DQo+ID4gPiDigJzigJ3igJ0NCj4gPiA+DQo+ID4gPiBwPUV0 aGVyKHNyYz1nZXRfaWZfaHdhZGRyKCdlbnMxMCcpLCBkc3Q9DQo+ID4gPiAnMjQ6OEE6MDc6ODg6 MjY6NkInKS9JUCgpL1RDUCgpDQo+ID4gPg0KPiA+ID4gcC5hZGRfcGF5bG9hZCgnRicqKDE1MDAg LSBsZW4ocCkpKQ0KPiA+ID4NCj4gPiA+IGZyYWdzPWZyYWdtZW50KHAsZnJhZ3NpemU9NTAwKQ0K PiA+ID4NCj4gPiA+IGZvciBmcmFnbWVudCBpbiBmcmFnczoNCj4gPiA+DQo+ID4gPiAgICAgIHNl bmRwKGZyYWdtZW50LCBpZmFjZT0nZW5zMTAnKQ0KPiA+ID4NCj4gPiA+IOKAnOKAneKAnQ0KPiA+ ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gQnV0IHRoZSB0ZXN0cG1kIGZvcndhcmQgdGhlIHBhY2tl dHMgYXMgaXQgaXMsIOKAnCBkb2VzbuKAmXQgZG8gYW55IG1lcmdl4oCdDQo+ID4gPg0KPiA+ID4N Cj4gPiA+DQo+ID4gPiBUY3BkdW1wIGF0IHRoZSBURyBzaWRlLA0KPiA+ID4NCj4gPiA+IFRoZSBz ZW5kaW5nIGZyYWdtZXRzIHVzaW5nIGVuczEwOg0KPiA+ID4NCj4gPiA+ICN0Y3BkdW1wIOKAk0kg ZW5zMTAg4oCTdnZ2ZW4NCj4gPiA+DQo+ID4gPiAxNTo0NToyOS4wODM1MTQgMjQ6OGE6MDc6ODg6 MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgZXRoZXJ0eXBlDQo+ID4gPiBJUHY0ICgweDA4MDAp LCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgMCwgZmxhZ3MgDQo+ ID4gPiBbK10sIHByb3RvIE9wdGlvbnMgKDApLCBsZW5ndGggNTI0KQ0KPiA+ID4NCj4gPiA+ICAg ICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6ICBpcC1wcm90by0wIDUwNA0KPiA+ID4NCj4gPiA+IDE1 OjQ1OjI5LjExNTI2NiAyNDo4YTowNzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCBldGhl cnR5cGUNCj4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3MgMHgwLCB0dGwgNjQs IGlkIDEsIG9mZnNldCA1MDQsIA0KPiA+ID4gZmxhZ3MgWytdLCBwcm90byBPcHRpb25zICgwKSwg bGVuZ3RoIDUyNCkNCj4gPiA+DQo+ID4gPiAgICAgMTI3LjAuMC4xID4gMTI3LjAuMC4xOiBpcC1w cm90by0wDQo+ID4gPg0KPiA+ID4gMTU6NDU6MjkuMTQ3MjU4IDI0OjhhOjA3Ojg4OjI2OjViID4g MjQ6OGE6MDc6ODg6MjY6NmIsIGV0aGVydHlwZQ0KPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3Ro IDQ5MjogKHRvcyAweDAsIHR0bCA2NCwgaWQgMSwgb2Zmc2V0IDEwMDgsIA0KPiA+ID4gZmxhZ3Mg W25vbmVdLCBwcm90byBPcHRpb25zICgwKSwgbGVuZ3RoIDQ3OCkNCj4gPiA+DQo+ID4gPiAgICAg MTI3LjAuMC4xID4gMTI3LjAuMC4xOiBpcC1wcm90by0wDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ ID4gPiAjdGNwZHVtcCAtaSBlbnM5IOKAk3Z2dmVuICAvLy8gaGVyZSB3aWxsIGJlIHJlY2VpdmVk IHRoZSBmb3J3YXJkZWQgDQo+ID4gPiBwYWNrZXRzIGZyb20NCj4gPiA+IHRlc3RwbWQ6DQo+ID4g Pg0KPiA+ID4gMTU6NDU6MjkuMDgzOTk2IDI0OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6 MjY6NmIsIGV0aGVydHlwZQ0KPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDUzODogKHRvcyAw eDAsIHR0bCA2NCwgaWQgMSwgb2Zmc2V0IDAsIGZsYWdzIA0KPiA+ID4gWytdLCBwcm90byBPcHRp b25zICgwKSwgbGVuZ3RoIDUyNCkNCj4gPiA+DQo+ID4gPiAgICAgMTI3LjAuMC4xID4gMTI3LjAu MC4xOiAgaXAtcHJvdG8tMCA1MDQNCj4gPiA+DQo+ID4gPiAxNTo0NToyOS4xMTU0MjUgMjQ6OGE6 MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgZXRoZXJ0eXBlDQo+ID4gPiBJUHY0ICgw eDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgNTA0LCAN Cj4gPiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPg0K PiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogaXAtcHJvdG8tMA0KPiA+ID4NCj4gPiA+ IDE1OjQ1OjI5LjE0NzQ5MiAyNDo4YTowNzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCBl dGhlcnR5cGUNCj4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA0OTI6ICh0b3MgMHgwLCB0dGwg NjQsIGlkIDEsIG9mZnNldCAxMDA4LCANCj4gPiA+IGZsYWdzIFtub25lXSwgcHJvdG8gT3B0aW9u cyAoMCksIGxlbmd0aCA0NzgpDQo+ID4gPg0KPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAu MTogaXAtcHJvdG8tMA0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBB bSBJIGRvaW5nIHNvbWV0aGluZyB3cm9uZz8hIE9yIGl0IGlzIGEgYnVnLg0KPiA+ID4NCj4gPiA+ IMOoIEFzIHlvdSBzZWUgdGhlIHRjcGR1bXAgc2hvd3MgdGhlIG9mZnNldCBvZiBlYWNoIGZyYWdt ZW50LCBhbmQgDQo+ID4gPiB0ZXN0cG1kIHByaW50cyBMNF9GUkFHLCBzbyB0aGUgYm90aCBhcmUg cmVjb2duaXppbmcgdGhhdCB0aGlzIGlzIGENCj4gPiBmcmFnbWVudGVkIHBhY2tldC4NCj4gPg0K PiA+IEdSTyBsaWJyYXJ5IG1lcmdlcyBUU09lZC9HU09lZCBwYWNrZXRzLCB3aG9zZSBJUCBJRHMg YW5kIFRDUA0KPiBzZXF1ZW5jZXMNCj4gPiBhcmUgYm90aCBjb25zZWN1dGl2ZS4gSWYgaW5wdXQg cGFja2V0cyBoYXZlIHNhbWUgSVAgSURzLCBubyBwYWNrZXRzIA0KPiA+IHdpbGwgYmUgbWVyZ2Vk Lg0KPiA+DQo+ID4gQlRXLCB5b3UgY2FuIHVzZSBpcGVyZiB0byB0ZXN0IEdSTyBmZWF0dXJlLg0K PiA+DQo+ID4gQmVzdCBSZWdhcmRzLA0KPiA+IEppYXl1DQo+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ ID4NCj4gPiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+DQo+ID4gPiBXaXNhbSBKYWRkbw0KPiA+ID4N Cj4gPiA+DQo+ID4gPg0K