From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0082.outbound.protection.outlook.com [104.47.1.82]) by dpdk.org (Postfix) with ESMTP id 95B4E1B686 for ; Tue, 30 Jan 2018 17:10:18 +0100 (CET) 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=+OJpitaYkCkNkx0eR/eISjAExg/e4hnuAQylQ6Dx3DQ=; b=A+Xy86Xd5jDr9zG0zx9qnFUnmmMWVxSzHv7XSHT7IK9iyX0FyIWc0ceaqlp1/MWbPMkrNv55nWmSJqdSch4INVKVeziemkksrD37fzsLCD/qwtp8oHNI4pZOxq633F07Tt5MJR2byxsC/maZppk1ZGiYwPADiOAIlgFsUmKqQOM= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB1437.eurprd05.prod.outlook.com (10.162.124.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Tue, 30 Jan 2018 16:10:15 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::405b:2710:4559:10f7]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::405b:2710:4559:10f7%14]) with mapi id 15.20.0444.016; Tue, 30 Jan 2018 16:10:15 +0000 From: "Xueming(Steven) Li" To: "Ananyev, Konstantin" , Olivier MATZ CC: "dev@dpdk.org" , "Wu, Jingjing" , Shahaf Shuler , Yongseok Koh , Thomas Monjalon , "Yigit, Ferruh" Thread-Topic: [dpdk-dev] [PATCH v2 1/5] ethdev: introduce Tx generic tunnel offloads Thread-Index: AQHTmSEeJGeKFbhnNE6HEM0E+jeIsKOLt5xggACyhwCAAB6+gIAABFGAgAAAqnCAAAdvAIAAAGmQ Date: Tue, 30 Jan 2018 16:10:15 +0000 Message-ID: References: <20180109141110.146250-2-xuemingl@mellanox.com> <20180129150859.71573-1-xuemingl@mellanox.com> <2601191342CEEE43887BDE71AB977258905654E2@IRSMSX103.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725890565B06@IRSMSX103.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725890565BE5@IRSMSX103.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725890565C90@IRSMSX103.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB97725890565C90@IRSMSX103.ger.corp.intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=xuemingl@mellanox.com; x-originating-ip: [114.83.161.171] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB1437; 6:oTpNSbaaPyYsU6T85gtIZqKU++3L9F/tmT0fpVkubwXoRdsyYyKYFQ2OG7hA3T0eMvD018RQUbHbwZ4ZO7RP4bXgA8eYVYfnTvu3hUEQlanHLMBWvvbMS1WzoUfvy1J+EEKhRA4dgJJELEg8roaytNsOZ2udlkORSjqjCqtVll9pdLPd0p4ogF3Xh3wYAvosVjeQKSKulHnGg7KJ3TER9S26uWd15LucFOjHchm+h0NJgmFcoOqG/hS5t5GOCGelFnq9x++q2c4URyRX1gZ7lopo27Py9jZ86l2xPCdm6bCO9Wkm6GlKXg+QUzdNheP54sXQ9y1VS08/9c6+4L39pv+iqWA3bPKR/BhsrAeMZmgPx5LdgkacgCxQJqtFvK1K; 5:vZo5ypovtT6oTCbgQNhxdp/imDOkK9Sd+pNnONBV6OXHDB6ivZ0UVlO1iEeiT8i9PdyeuuBGMpE+FI1LL/E09W/X5KzkVJ7WE/u3+SkNPDd4SXaHqmiOWHUxB2xLAbBo7BaoOpo/Afb1PH8pWjOFgMvkFdvDjwjZ+epECeG1A4s=; 24:HkpXZG8l/7AjIn/pSIe5R9aDeZ3pBv5hOilYkdOdm4aUdOhk+YAMbh5E3u4SQWIT5A0vZHm9fHJS4mS1piMFrSr5VHbadxdD554y4awpt+I=; 7:Btt7mOj1hIaDQnIhT82SEbSZXzAYQjH4XJL+lU4wkT8QHYHnS5mB/sNbNib8B7x+hVlBKgRpj771P2BCDDsQSJ2fmPQ/aCkCHZyUUrtfqP6jRec9jEJgfb6wRoWssm30K2lJxczyWz8voSzqVQ56r6+tnJwnIHkz8+PLSDGWM3oY2VQiUr+7baWKKG2IPBzwKmAD4RpE9Hz3G1K8gDR6QamV+3yakITI+QVLECMEDlyw07elEBxc1Uas6hzqNft6 x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: d01be871-6268-4f5e-b7a9-08d567fbf330 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:VI1PR05MB1437; x-ms-traffictypediagnostic: VI1PR05MB1437: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(3231101)(944501161)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:VI1PR05MB1437; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB1437; x-forefront-prvs: 0568F32D91 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(39380400002)(376002)(366004)(346002)(57704003)(13464003)(199004)(189003)(7696005)(68736007)(2900100001)(2906002)(6436002)(575784001)(186003)(76176011)(86362001)(5660300001)(9686003)(26005)(55016002)(53936002)(97736004)(229853002)(110136005)(81166006)(33656002)(105586002)(305945005)(74316002)(93886005)(81156014)(8936002)(14454004)(25786009)(4326008)(478600001)(6246003)(2950100002)(59450400001)(3660700001)(3280700002)(6506007)(5250100002)(54906003)(7736002)(106356001)(6116002)(316002)(53546011)(99286004)(3846002)(102836004)(66066001)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1437; H:VI1PR05MB1678.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) x-microsoft-antispam-message-info: Br0nBzaURWdzOu9QzylIRXXXmTAwFRtnAhFwnmr2uVtXg01KkUhF32T7yBKS8sbK7BOnI8DsAtW5JgpmtW7iAA== 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-Network-Message-Id: d01be871-6268-4f5e-b7a9-08d567fbf330 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2018 16:10:15.5895 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1437 Subject: Re: [dpdk-dev] [PATCH v2 1/5] ethdev: introduce Tx generic tunnel offloads 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: , X-List-Received-Date: Tue, 30 Jan 2018 16:10:18 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5hbnlldiwgS29uc3Rh bnRpbiBbbWFpbHRvOmtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb21dDQo+IFNlbnQ6IFdlZG5l c2RheSwgSmFudWFyeSAzMSwgMjAxOCAxMjowMyBBTQ0KPiBUbzogWHVlbWluZyhTdGV2ZW4pIExp IDx4dWVtaW5nbEBtZWxsYW5veC5jb20+OyBPbGl2aWVyIE1BVFoNCj4gPG9saXZpZXIubWF0ekA2 d2luZC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VA aW50ZWwuY29tPjsgU2hhaGFmIFNodWxlcg0KPiA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBZb25n c2VvayBLb2ggPHlza29oQG1lbGxhbm94LmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA8dGhvbWFz QG1vbmphbG9uLm5ldD47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZdIFtQQVRDSCB2MiAxLzVdIGV0aGRldjogaW50cm9kdWNl IFR4IGdlbmVyaWMgdHVubmVsDQo+IG9mZmxvYWRzDQo+IA0KPiANCj4gDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiBUaGlzIHBhdGNoIGludHJvZHVjZSBuZXcgVFggb2ZmbG9hZHMgZmxhZyBm b3IgZGV2aWNlcyB0aGF0DQo+ID4gPiA+ID4gPiA+ID4gc3VwcG9ydCB0dW5uZWwgYWdub3N0aWMg Y2hlY2tzdW0gYW5kIFRTTyBvZmZsb2Fkcy4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+IFRoZSBzdXBwb3J0IGZyb20gdGhlIGRldmljZSBpcyBmb3IgaW5uZXIgYW5kIG91dGVyDQo+ ID4gPiA+ID4gPiA+ID4gY2hlY2tzdW1zIG9uIElQVjQvVENQL1VEUCBhbmQgVFNPIGZvciAqYW55 IHBhY2tldCB3aXRoIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IGZvbGxvd2luZw0KPiA+ID4gZm9ybWF0 KjoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IDwgc29tZSBoZWFkZXJzID4gLyBb b3B0aW9uYWwgSVB2NC9JUHY2XSAvIFtvcHRpb25hbA0KPiA+ID4gPiA+ID4gPiA+IFRDUC9VRFBd IC8gPHNvbWUNCj4gPiA+ID4gPiA+ID4gPiBoZWFkZXJzPiAvIFtvcHRpb25hbCBpbm5lciBJUHY0 L0lQdjZdIC8gW29wdGlvbmFsIFRDUC9VRFBdDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIHBhY2tldHMgY2FuIHVzZSB0aGlzIGZlYXR1 cmU6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAxLiBldGggLyBpcHY0IC8gdWRw IC8gVlhMQU4gLyBpcCAvIHRjcCAyLiBldGggLyBpcHY0IC8gR1JFDQo+ID4gPiA+ID4gPiA+ID4g LyBNUExTIC8NCj4gPiA+ID4gPiA+ID4gPiBpcHY0IC8gdWRwDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IFNvIGluIHRlcm1zIG9mIHVzYWdlIC0gd2hhdCBpcyB0aGUgZGlmZmVyZW5jZSB3 aXRoIGN1cnJlbnQNCj4gPiA+ID4gPiA+ID4gVFNPDQo+ID4gPiB0eXBlcz8NCj4gPiA+ID4gPiA+ ID4gS29uc3RhbnRpbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRy YWRpdGlvbmFsbHksIEhXIG9ubHkgcmVjb2duaXplICJrbm93biIgdHVubmVsIHR5cGUsIGRvIFRT Tw0KPiA+ID4gPiA+ID4gY2FsY3VsYXRpb24gYmFzZWQgb24gTDMvTDQgaGVhZGVycyBrbm93biB0 byB0dW5uZWwgdHlwZS4gRm9yDQo+ID4gPiA+ID4gPiBleGFtcGxlLCBpdCBtdXN0IGJlDQo+ID4g PiA+ID4gPiBMMiBoZWFkZXIgYWZ0ZXIgVlhMQU4sIHRoZW4gTDMuIFdoaWxlIHRoaXMgR2VuZXJp YyBvZmZsb2FkaW5nDQo+ID4gPiA+ID4gPiBwcm92aWRlcyBpbm5lci9vdXRlciBMMy9MNCBoZWFk ZXIgaW5mbyhsZW4gYW5kIG9mZnNldCkgdG8gSFcsDQo+ID4gPiA+ID4gPiBhbmQgdGh1cyB0dW5u ZWwgaW5mbyBiZWNvbWUgbGVzcyBpbXBvcnRhbnQuIFBsZWFzZSBub3RlIHRoZQ0KPiA+ID4gPiA+ ID4gTVBMUyBvdmVyIEdSRSB0dW5uZWwgaW4gbGFzdCBleGFtcGxlIGFib3ZlLg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gT2ssIGJ1dCBJIHdvbmRlciB3aGVuIHRoZSB1c2VyIHdvdWxkIGxpa2UgdG8g ZG8gVFNPIG9uIHR1bm5lbA0KPiA+ID4gPiA+IHBhY2tldCwgZm9yIHRoaXMgb2ZmbG9hZCAtIHdv dWxkIGhlIG5lZWQgdG8gZG8gc29tZXRoaW5nDQo+ID4gPiA+ID4gZGlmZmVyZW50bHkgZnJvbSB3 aGF0IGhlIGhhcyB0byBkbyBub3c6DQo+ID4gPiA+ID4gcmFpc2UgUEtUX1RYX1RDUF9TRUcgYW5k IHJlbGF0ZWQgZmxhZ3MsIHJhaXNlIGFwcHJvcHJpYXRlDQo+ID4gPiA+ID4gUEtUX1RYX1RVTk5F TF8qIGZsYWcsIGZpbGwgbDJfbGVuLCBsM19sZW4sDQo+ID4gPiBsNF9sZW4sdHNvX3NlZ3N6LG91 dGVyX2wyX2xlbixvdXRlcl9sM19sZW4/DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gWWVz LCB0aGVzZSBmaWVsZHMgYXJlIHN1ZmZpY2llbnQgZXhjZXB0IFBLVF9UWF9UVU5ORUxfKiwgbWFq b3INCj4gPiA+ID4gdGFyZ2V0IG9mIHRoaXMgbmV3IGZlYXR1cmUgaXMgdG8gc3VwcG9ydCAidW5r bm93biIgdHVubmVsDQo+ID4gPiA+IG9mZmxvYWRpbmcsIGl0DQo+ID4gPiBzdXBwb3J0cyAia25v d24iDQo+ID4gPiA+IHR1bm5lbCB0eXBlIGFzIHdlbGwuDQo+ID4gPg0KPiA+ID4gT2ssIGJ1dCB1 c2VyIHdvdWxkIHN0aWxsIG5lZWQgdG8gc2V0IHNvbWUgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IHRo aXMNCj4gPiA+IGlzIGEgdHVubmVsIHBhY2tldCwgYW5kIGhlIHdhbnRzIFRTTyBvdmVyIGl0LCBy aWdodD8NCj4gPiA+IEZvciBwcmUtZGVmaW5lZCB0dW5uZWwgdHlwZXMgaXQgY2FuIGJlIG9uZSBv ZiBQS1RfVFhfVFVOTkVMXyogKHdoaWNoDQo+ID4gPiBhY3R1YWxseSBtZWFucyB0aGF0IHVzZXIg c3RpbGwgaGF2ZSB0byBrbm93IHR1bm5lbCB0eXBlIGFueXdheT8pIEJ1dA0KPiA+ID4gZm9yIHNv bWUgbm90IGRlZmluZWQgdHVubmVsIHR5cGUgLSB3aGF0IGl0IHdvdWxkIGJlPw0KPiA+ID4gS29u c3RhbnRpbg0KPiA+ID4NCj4gPg0KPiA+IEFzIHRoaXMgZmVhdHVyZSB0YXJnZXQgdG8gVFggcGF0 aCwgT3V0ZXIgbGVuZ3RoIGFzIHR1bm5lbCBpbmRpY2F0aW9uLA0KPiA+IGxlYXZlIGl0IGVtcHR5 IGlmIHR1bm5lbCBub3QgZGVmaW5lZC4NCj4gDQo+IFNvcnJ5LCBJIGRpZG4ndCBnZXQgaXQuDQo+ IFdlIG5lZWQgdG8gbGV0IFBNRCBrbm93IHRoYXQgaXQgaXMgYSB0dW5uZWwgcGFja2V0LCByaWdo dD8NCj4gU28gd2UgZG8gbmVlZCB0byByYWlzZSBQS1RfVFhfVFVOTkVMXyogZmxhZy4NCj4gDQoN CkluIG15IGN1cnJlbnQgY29kZSwgbWJ1Zi5vdXRlcl9sMl9sZW4gaXMgdXNlZCB0byB0ZXN0IHR1 bm5lbCBwYWNrZXQuIA0KQWdyZWUgYSBuZXcgdHVubmVsIGZsYWcgd291bGQgYmUgYmV0dGVyLiAN Cg0KPiA+DQo+ID4gQnV0IEkgdGhpbmsgaXQgZ29vZCB0byBkZWZpbmUgc29tZXRoaW5nIGxpa2U6 DQo+ID4gIAlQS1RfVFhfVFVOTkVMX0dFTkVSSUMgPSBQS1RfVFhfVFVOTkVMX01BU0sNCj4gDQo+ IFllcywgdGhhdCdzIGFuIG9wdGlvbiwgSSB3b3VsZCBwcm9iYWJseSBuYW1lIGl0IFBLVF9UWF9U VU5ORUxfVU5LTk9XTi4NCj4gDQo+ID4gQW5kIGEgbmV3IGZsYWcgUEtUX1RYX09VVEVSX1VEUCwg aG93IGRvIHlvdSB0aGluaz8NCj4gDQo+IE5vdCBzdXJlIHdoeSBkbyB3ZSBuZWVkIGl0Pw0KPiBI VyBzdGlsbCBuZWVkcyB0byBrbm93IG91dGVyX2w0X3R5cGUgdG8gYmUgYWJsZSB0byB3b3JrIGNv cnJlY3RseT8NCg0KRm9yIHR1bm5lbCB0eXBlIGxpa2UgdnhsYW4sIGlmIG91dGVyIFVEUCBwcmVz ZW50LCBodyBoYXMgdG8gdXBkYXRlIFVEUA0KbGVuZ3RoIGZpZWxkIGZvciBlYWNoIFRTTyBwYWNr ZXQgc2VnbWVudC4NCg0KPiBLb25zdGFudGluDQo+IA0KPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFBL VF9UWF9UVU5ORUxfVlhMQU4gaGFzIHRvIGJlIHVzZWQgYXMgYSBoaW50IGlmIG91dGVyIFVEUCBl eHBlY3RlZC4NCj4gPiA+ID4NCj4gPiA+ID4gPiBLb25zdGFudGluDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBY dWVtaW5nIExpIDx4dWVtaW5nbEBtZWxsYW5veC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ ID4gPiA+ID4gPiA+ID4gIGxpYi9saWJydGVfZXRoZXIvcnRlX2V0aGRldi5oIHwgMTAgKysrKysr KysrKw0KPiA+ID4gPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKQ0K PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVf ZXRoZXIvcnRlX2V0aGRldi5oDQo+ID4gPiA+ID4gPiA+ID4gYi9saWIvbGlicnRlX2V0aGVyL3J0 ZV9ldGhkZXYuaCBpbmRleCAxYTViNGNkYzUuLmQ4ZDA4Y2NiMg0KPiA+ID4gPiA+ID4gPiA+IDEw MDY0NA0KPiA+ID4gPiA+ID4gPiA+IC0tLSBhL2xpYi9saWJydGVfZXRoZXIvcnRlX2V0aGRldi5o DQo+ID4gPiA+ID4gPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2LmgNCj4g PiA+ID4gPiA+ID4gPiBAQCAtOTc5LDYgKzk3OSwxNiBAQCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHsN Cj4gPiA+ID4gPiA+ID4gPiAgICogICB0aGUgc2FtZSBtZW1wb29sIGFuZCBoYXMgcmVmY250ID0g MS4NCj4gPiA+ID4gPiA+ID4gPiAgICovDQo+ID4gPiA+ID4gPiA+ID4gICNkZWZpbmUgREVWX1RY X09GRkxPQURfU0VDVVJJVFkgICAgICAgICAweDAwMDIwMDAwDQo+ID4gPiA+ID4gPiA+ID4gKy8q KjwgRGV2aWNlIHN1cHBvcnRzIGdlbmVyaWMgdHVubmVsIGNoZWNrc3VtIGFuZCBUU08NCj4gb2Zm bG9hZGluZy4NCj4gPiA+ID4gPiA+ID4gPiArICogQ2hlY2tzdW0gYW5kIFRTTyBhcmUgZG9uZSBi YXNlZCBvbiBmb2xsb3dpbmcgbWJ1ZiBmaWVsZHM6DQo+ID4gPiA+ID4gPiA+ID4gKyAqICAgLSBM ZW5ndGggb2YgZWFjaCBoZWFkZXINCj4gPiA+ID4gPiA+ID4gPiArICogICAtIFR5cGUgb2Ygb3V0 ZXIvaW5uZXIgTDMgdHlwZSwgSVB2NCBvciBJUHY2DQo+ID4gPiA+ID4gPiA+ID4gKyAqICAgLSBU eXBlIG9mIG91dGVyL2lubmVyIEw0IHR5cGUsIFRDUCBvciBVRFAuDQo+ID4gPiA+ID4gPiA+ID4g KyAqCS0gUEtUX1RYX1RVTk5FTF9WWExBTiBpbXBsaWVzIG91dGVyIFVEUCB0eXBlLg0KPiA+ID4g PiA+ID4gPiA+ICsgKgktIFBLVF9UWF9UQ1BfU0VHIGltcGxpZXMgaW5uZXIgVENQIHR5cGUuDQo+ ID4gPiA+ID4gPiA+ID4gKyAqIFR1bm5lbCB0eXBlIGlzIG9wdGlvbmFsIGV4Y2VwdCBQS1RfVFhf VFVOTkVMX1ZYTEFOIHRvDQo+ID4gPiA+ID4gPiA+ID4gK2hpbnQgb3V0ZXINCj4gPiA+ID4gPiBV RFAuDQo+ID4gPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIERFVl9U WF9PRkZMT0FEX0dFTkVSSUNfVE5MX0NLU1VNX1RTTwkweDAwMDQwMDAwDQo+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiAgLyoNCj4gPiA+ID4gPiA+ID4gPiAgICogSWYgbmV3IFR4IG9m ZmxvYWQgY2FwYWJpbGl0aWVzIGFyZSBkZWZpbmVkLCB0aGV5IGFsc28NCj4gPiA+ID4gPiA+ID4g PiBtdXN0IGJlDQo+ID4gPiA+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+ID4gPiAyLjEzLjMNCg0K