From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40055.outbound.protection.outlook.com [40.107.4.55]) by dpdk.org (Postfix) with ESMTP id AD4655B12 for ; Thu, 22 Mar 2018 14:55:07 +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=BC1s1/2dUJxShFtIPoRHwEUG5xocbpL9neH1hGLy+pQ=; b=IrfI8zTChhO125z978Idu8MqpQdbF71v/Pib1/ONEKkmskDiHMIzik7Wjd1ZmLqpiSomau2N/vWRvH1WgoR4HRnTVx6CjD+THNxyx1kv1ScqcDIjYKczyXdtE31qGcYM8JOQz08ih6JcIUl5PvBP3REn42463byj2TYoyGkYUTQ= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB3421.eurprd05.prod.outlook.com (10.170.239.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Thu, 22 Mar 2018 13:55:05 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::b8e2:e81f:98a:b6d0]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::b8e2:e81f:98a:b6d0%14]) with mapi id 15.20.0588.017; Thu, 22 Mar 2018 13:55:05 +0000 From: "Xueming(Steven) Li" To: Yongseok Koh CC: Wenzhuo Lu , Jingjing Wu , Thomas Monjalon , Olivier MATZ , Shahaf Shuler , Ferruh Yigit , "dev@dpdk.org" Thread-Topic: [PATCH v3 1/7] ethdev: introduce Tx generic tunnel L3/L4 offload Thread-Index: AQHTtJIS359/NGuWO0qUICOp14liqaPaAiEAgAJCJqA= Date: Thu, 22 Mar 2018 13:55:05 +0000 Message-ID: References: <20180109141110.146250-2-xuemingl@mellanox.com> <20180305145121.71866-2-xuemingl@mellanox.com> <20180321014046.GA49883@yongseok-MBP.local> In-Reply-To: <20180321014046.GA49883@yongseok-MBP.local> 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: [117.136.8.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB3421; 6:RHwsdMtzXtxOicTSQpJeQw53gtuNt23tHkmtEteoapCehwiyKJ7zkzJY7HYWpJ2xN4z1+f69IB9nbLwmcLDMJpzkELWFlXTH/Q61CMNNpOIIYZjrw8zuBMEwXvQ4TT+RMW3kdRNlp3GxdrCAY0ezQqszobU261+wWrL3P2kDSxJQskO5l4UtBdEr1fPS4NsN6cE1WQiQbRZN7uJl4xtAr6hZeCB4VbzEqZTEz9MHxTQENQYTtjEi4IHl0cz5fAi3GA+Rlk4OPQAo02+nSPlUmzUq/BPibREIHKWrOif3RLYAv7XHrwHS+Lqd4lToHa0/6QvH2cJ5Yx/5ITmXjML2lhTtFDMBGZjlPaHKJCgV+jqQ+TP4TO3j46Zg56JWMrQG; 5:NkrsFx9HlIkZakajX4bR9qey3/r5fsE/xtD1f7TDuSziI61VxvLPl4FIQAa+hylP52w3+W40Kf3k+EduTqGvuddxwBwcYONIYJLoDJ5ZLeS1TmaevT1j9qMVqGfipny7RuSN5m2lKd5iLgkVzgKlQUR3AW2NDGifcPTbVeQI1o4=; 24:vYDOmsuV5J+P6e9qbsEHFWgIOgPrtQChbXcRxiBgpAXLDa0fNVWleE6jNJRMbdBIURIGJ3BHUgPfbBfEN0h7IrvyxWLYqgV6JG1jHG+0xOc=; 7:gy9U9zvbLtF3pPMp44hHlDyCYPC4HGWfP5A0xvj2jO1r0Un/0kJoZk8njmsaP4jEPcQO2o5JzzQFg9mr0HnBQAnovWSxRVkMns9p69WmEyq8zB96uM5g2ffpXbrbHNu4ZyerQLY2J8xZMyY1TKWu7COsfPa8vY3Bif0A/Y8YXNJNv06D4yaM7xpW5rgaqF1kSGpodO0en/HftAYuLJqB0I7S8+4BEKCoMsguE/qYhHB6kMNuDZ8GWEN4fO8N251+ x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: f06d4203-5b4c-410e-e07c-08d58ffc8404 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB3421; x-ms-traffictypediagnostic: VI1PR05MB3421: 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:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231221)(944501327)(52105095)(10201501046)(3002001)(6055026)(6041310)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR05MB3421; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB3421; x-forefront-prvs: 0619D53754 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(366004)(39380400002)(346002)(396003)(39860400002)(13464003)(199004)(189003)(81166006)(102836004)(55016002)(5660300001)(8936002)(33656002)(106356001)(9686003)(25786009)(4326008)(6862004)(3280700002)(2906002)(7736002)(66066001)(54906003)(229853002)(74316002)(6436002)(2950100002)(305945005)(6636002)(478600001)(7696005)(76176011)(97736004)(59450400001)(5250100002)(6506007)(53546011)(446003)(68736007)(14454004)(2900100001)(6246003)(99286004)(81156014)(3846002)(6116002)(53936002)(86362001)(575784001)(8676002)(105586002)(26005)(316002)(3660700001)(41533002)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB3421; 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: d+dGCeQHNVU55cXPo325g2kYgVkB1prCuUFU87w9bLAAN3nAWtzfG+uCWFsREIzHF4bPRZJ3YaC/Qz9eGLAz8TwAw0AGBY1yjgiC+KfvmLVn2QtfektR/drBre9ezYRTSOByvIil4Sart/pa2jOrm9KP1g4CMQQ89hIDbkqa5dgSDKQln12ikarzzI8yVaNg/PCYuphLCAtki7vSbmw+zUheQz3DVE+mmJlL0/gO1iVC618hpDUTTxTmLUUzwrhoGl2ZbLEMo+obRdQH0NUoiVhrF0t4V/QqcXbfrrYuTKmYNz5PA8fTtHIGvUDy7JvO/0PFi6IDWB93cuA3IlDLiQ== 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: f06d4203-5b4c-410e-e07c-08d58ffc8404 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Mar 2018 13:55:05.0517 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB3421 Subject: Re: [dpdk-dev] [PATCH v3 1/7] ethdev: introduce Tx generic tunnel L3/L4 offload 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: Thu, 22 Mar 2018 13:55:07 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWW9uZ3Nlb2sgS29oDQo+ IFNlbnQ6IFdlZG5lc2RheSwgTWFyY2ggMjEsIDIwMTggOTo0MSBBTQ0KPiBUbzogWHVlbWluZyhT dGV2ZW4pIExpIDx4dWVtaW5nbEBtZWxsYW5veC5jb20+DQo+IENjOiBXZW56aHVvIEx1IDx3ZW56 aHVvLmx1QGludGVsLmNvbT47IEppbmdqaW5nIFd1IDxqaW5namluZy53dUBpbnRlbC5jb20+Ow0K PiBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBPbGl2aWVyIE1BVFoNCj4g PG9saXZpZXIubWF0ekA2d2luZC5jb20+OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94 LmNvbT47IEZlcnJ1aA0KPiBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IGRldkBkcGRr Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvN10gZXRoZGV2OiBpbnRyb2R1Y2UgVHgg Z2VuZXJpYyB0dW5uZWwgTDMvTDQNCj4gb2ZmbG9hZA0KPiANCj4gT24gTW9uLCBNYXIgMDUsIDIw MTggYXQgMTA6NTE6MTVQTSArMDgwMCwgWHVlbWluZyBMaSB3cm90ZToNCj4gPiBUaGlzIHBhdGNo IGludHJvZHVjZSBuZXcgVFggb2ZmbG9hZCBmbGFncyBmb3IgZGV2aWNlIHRoYXQgc3VwcG9ydHMN Cj4gPiB0dW5uZWwgYWdub3N0aWMgTDMvTDQgY2hlY2tzdW0gYW5kIFRTTyBvZmZsb2FkLg0KPiA+ DQo+ID4gVGhlIHN1cHBvcnQgZnJvbSB0aGUgZGV2aWNlIGlzIGZvciBpbm5lciBhbmQgb3V0ZXIg Y2hlY2tzdW1zIG9uDQo+ID4gSVBWNC9UQ1AvVURQIGFuZCBUU08gZm9yICphbnkgcGFja2V0IHdp dGggdGhlIGZvbGxvd2luZyBmb3JtYXQqOg0KPiA+DQo+ID4gPCBzb21lIGhlYWRlcnMgPiAvIFtv cHRpb25hbCBJUHY0L0lQdjZdIC8gW29wdGlvbmFsIFRDUC9VRFBdIC8gPHNvbWUNCj4gPiBoZWFk ZXJzPiAvIFtvcHRpb25hbCBpbm5lciBJUHY0L0lQdjZdIC8gW29wdGlvbmFsIFRDUC9VRFBdDQo+ ID4NCj4gPiBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIHBhY2tldHMgY2FuIHVzZSB0aGlzIGZl YXR1cmU6DQo+ID4NCj4gPiAxLiBldGggLyBpcHY0IC8gdWRwIC8gVlhMQU4gLyBpcCAvIHRjcCAy LiBldGggLyBpcHY0IC8gR1JFIC8gTVBMUyAvDQo+ID4gaXB2NCAvIHVkcA0KPiA+DQo+ID4gU2ln bmVkLW9mZi1ieTogWHVlbWluZyBMaSA8eHVlbWluZ2xAbWVsbGFub3guY29tPg0KPiA+IC0tLQ0K PiA+ICBsaWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaCB8IDI0ICsrKysrKysrKysrKysrKysr KysrKysrKw0KPiA+ICBsaWIvbGlicnRlX21idWYvcnRlX21idWYuYyAgICB8ICA1ICsrKysrDQo+ ID4gIGxpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zi5oICAgIHwgMTggKysrKysrKysrKysrKysrKy0t DQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkN Cj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaA0KPiA+ IGIvbGliL2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2LmggaW5kZXggMDM2MTUzMzA2Li42NmQxMmQz ZTAgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2LmgNCj4gPiAr KysgYi9saWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXYuaA0KPiA+IEBAIC05ODAsNiArOTgwLDMw IEBAIHN0cnVjdCBydGVfZXRoX2NvbmYgew0KPiA+ICAgKiAgIHRoZSBzYW1lIG1lbXBvb2wgYW5k IGhhcyByZWZjbnQgPSAxLg0KPiA+ICAgKi8NCj4gPiAgI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9T RUNVUklUWSAgICAgICAgIDB4MDAwMjAwMDANCj4gPiArLyoqPCBHZW5lcmljIHR1bm5lbCBMMy9M NCBjaGVja3N1bSBvZmZsb2FkLiBUbyBlbmFibGUgdGhpcyBvZmZsb2FkDQo+ID4gK2ZlYXR1cmUN Cj4gPiArICogZm9yIGEgcGFja2V0IHRvIGJlIHRyYW5zbWl0dGVkIG9uIGhhcmR3YXJlIHN1cHBv cnRpbmcgZ2VuZXJpYw0KPiA+ICt0dW5uZWwgTDMvTDQNCj4gPiArICogY2hlY2tzdW0gb2ZmbG9h ZDoNCj4gPiArICogIC0gZmlsbCBvdXRlcl9sMl9sZW4gYW5kIG91dGVyX2wzX2xlbiBpbiBtYnVm DQo+ID4gKyAqICAtIGZpbGwgbDJfbGVuIGFuZCBsM19sZW4gaW4gbWJ1Zg0KPiA+ICsgKiAgLSBz ZXQgdGhlIGZsYWdzIFBLVF9UWF9UVU5ORUxfeHh4ICh1c2UgUEtUX1RYX1RVTk5FTF9VTktOT1dO IGlmDQo+ID4gK3VuZGVmaW5lZCkNCj4gPiArICogIC0gc2V0IHRoZSBmbGFncyBQS1RfVFhfT1VU RVJfSVBfQ0tTVU0NCj4gPiArICogIC0gc2V0IHRoZSBmbGFncyBQS1RfVFhfSVBfQ0tTVU0NCj4g PiArICogIC0gc2V0IHRoZSBmbGFncyBQS1RfVFhfVENQX0NLU1VNLCBQS1RfVFhfU0NUUF9DS1NV TSBvcg0KPiA+ICtQS1RfVFhfVURQX0NLU1VNICAqLw0KPiA+ICsjZGVmaW5lIERFVl9UWF9PRkZM T0FEX0dFTkVSSUNfVE5MX0NLU1VNCTB4MDAwNDAwMDANCj4gDQo+IEl0IGxvb2tzIHJlZHVuZGFu dCB0byBtZS4gSXNuJ3QgaXQgc2FtZSBhcyBoYXZpbmcgREVWX1RYX09GRkxPQURfKl9DS1NVTT8N Cj4gQWNjb3JkaW5nIHRvIHRoZSBBUEkgZG9jdW1lbnQsIHdoZW4gUEtUX1RYXypfQ0tTVU0gaXMg c2V0LCBhbGwgdGhlDQo+IG5lY2Vzc2FyeSBsZW5ndGggZmllbGRzIHNob3VsZCBiZSBmaWxsZWQg aW4gKGUuZy4gbWJ1Zi0+b3V0ZXJfbD9fbGVuIGFuZA0KPiBtYnVmLT5sP19sZW4pLiBJdCBkb2Vz bid0IG5lZWQgdG8gc3BlY2lmeSBhbnkgdHVubmVsIHR5cGUgZm9yIGNoZWNrc3VtLg0KPiBGb3Ig ZXhhbXBsZSwgaW4gb3JkZXIgdG8gcmVxdWVzdCBjaGVja3N1bSBvZmZsb2FkIGZvciBhbiB1bmtu b3duIHR1bm5lbA0KPiB0eXBlIHdoaWNoIGlzIHNpbWlsYXIgdG8gVnhMQU4sIHdoYXQgc2hvdWxk IGFwcCBkbz8gRXZlbiB3aXRob3V0IGRlZmluaW5nDQo+IHRoaXMgbmV3IG9mZmxvYWQgZmxhZywg aXQgaXMgY3VycmVudGx5IHBvc3NpYmxlIGJ5IHNldHRpbmcNCj4gCShQS1RfVFhfT1VURVJfSVBf Q0tTVU0gfCBQS1RfVFhfT1VURVJfSVBWNCB8IFBLVF9UWF9JUF9DS1NVTSB8DQo+IAkgUEtUX1RY X0lQVjQgfCBQS1RfVFhfVURQX0NLU1VNKQ0KPiBhbG9uZyB3aXRoIHZhcmlvdXMgbGVuZ3RoIGZp ZWxkcy4NCg0KQWdyZWUgaXQgYWxtb3N0IHNhbWUgYXMgZXhpc3RpbmcgY2hlY2tzdW0gb2ZmbG9h ZGluZyByZXF1aXJlbWVudCwgYmVzaWRlczoNCjEuIGl0IGRvZXMgbm90IGRlbWFuZCBwc2V1ZG8g Y2hlY2tzdW0NCjIuIG5vIG5lZWQgdG8gY2xlYXIgSVAgY2hlY2tzdW0NCkkgZ3Vlc3MgdGhlIHJl cXVpcmVtZW50IG9uIEFQSSBkb2MgaXMgYSBzdXBlciBzZXQgYW5kIGRpZmZlcmVuY2VzIGNvdWxk IGJlIA0KZG9jdW1lbnRlZCBvbiBQTUQgZG9jLg0KDQpGb3IgbWx4NSBvcmlnaW5hbCBjaGtzdW0g b2ZmbG9hZGluZywgaHcgd2lsbCBwYXJzZSBldmVyeXRoaW5nIHcvbyBkZW1hbmRpbmcNCm1idWYg aGVhZGVycywgYSBsaXR0bGUgYmV0dGVyIHBlcmZvcm1hbmNlIHRoYW4gU1dQLiBUaGUgcXVlc3Rp b24gaXMgaG93IHRvIA0KY2hvb3NlIGJldHdlZW4gU1dQIGFuZCBIVyBjaGVja3N1bSBvZmZsb2Fk aW5nIC0gYXNzdW1pbmcgUEtUX1RYX1RVTk5FTF9VTktOT1dODQppcyB0aGUga2V5LiBUYWtlIEwz IFZYTEFOKG5vIGlubmVyIEwyIGhlYWRlcikgYXMgZXhhbXBsZSwgb25seSBTV1AgY291bGQgDQpv ZmZsb2FkIGl0IGNvcnJlY3RseSBhbmQgUEtUX1RYX1RVTk5FTF9VTktPV04gc2hvdWxkIGJlIHVz ZWQgaGVyZSwgbm90IA0KUEtUX1RYX1RVTk5FTF9WWExBTiwgbWFrZSBzZW5zZT8NCg0KQW5vdGhl ciBxdWVzdGlvbiwgaG93IGRvZXMgdXNlciBhcHAga25vdyB0aGUgTklDIGNhcGFiaWxpdHkgb2Yg Z2VuZXJpYyB0dW5uZWwgDQpjaGVja3N1bSBvZmZsb2FkPw0KDQo+IA0KPiA+ICsvKio8IEdlbmVy aWMgdHVubmVsIHNlZ21lbnRhdGlvbiBvZmZsb2FkLiBUbyBlbmFibGUgaXQsIHRoZSB1c2VyIG5l ZWRzDQo+IHRvOg0KPiA+ICsgKiAgLSBmaWxsIG91dGVyX2wyX2xlbiBhbmQgb3V0ZXJfbDNfbGVu IGluIG1idWYNCj4gPiArICogIC0gZmlsbCBsMl9sZW4gYW5kIGwzX2xlbiBpbiBtYnVmDQo+ID4g KyAqICAtIHNldCB0aGUgZmxhZ3MgUEtUX1RYX1RVTk5FTF94eHggKHVzZSBQS1RfVFhfVFVOTkVM X1VOS05PV04gaWYNCj4gPiArdW5kZWZpbmVkKQ0KPiA+ICsgKiAgLSBzZXQgdGhlIGZsYWdzIFBL VF9UWF9PVVRFUl9JUFY0IG9yIFBLVF9UWF9PVVRFUl9JUFY2DQo+ID4gKyAqICAtIGlmIGl0J3Mg VURQIHR1bm5lbCwgc2V0IHRoZSBmbGFncyBQS1RfVFhfT1VURVJfVURQDQo+ID4gKyAqICAtIHNl dCB0aGUgZmxhZ3MgUEtUX1RYX0lQVjQgb3IgUEtUX1RYX0lQVjYNCj4gPiArICogIC0gc2V0IHRo ZSBQS1RfVFhfVENQX1NFRyBmbGFnIGluIG1idWYtPm9sX2ZsYWdzICh0aGlzIGZsYWcgaW1wbGll cw0KPiA+ICsgKiAgICBQS1RfVFhfT1VURVJfSVBfQ0tTVU0sIFBLVF9UWF9JUF9DS1NVTSBhbmQg UEtUX1RYX1RDUF9DS1NVTSkNCj4gPiArICogSGFyZHdhcmUgdGhhdCBzdXBwb3J0cyBnZW5lcmlj IHR1bm5lbCBUU08gb2ZmbG9hZCBvbmx5IHVwZGF0ZQ0KPiA+ICtvdXRlci9pbm5lcg0KPiA+ICsg KiBMMy9MNCBmaWVsZHMsIHR1bm5lbCBmaWVsZHMgYXJlIG5vdCB0b3VjaGVkLg0KPiA+ICsgKi8N Cj4gPiArI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9HRU5FUklDX1ROTF9UU08JCTB4MDAwODAwMDAN Cj4gDQo+IFByYWN0aWNhbGx5LCBmb3IgdGhlIGV4aXN0aW5nIFRTTyBvZmZsb2FkcyBmb3IgdHVu bmVsZWQgcGFja2V0cywgdHVubmVsDQo+IHR5cGUNCj4gKFBLVF9UWF9UVU5ORUxfKikgaXMgbmVl ZGVkIGZvciBrbm93aW5nIGlmIHRyYW5zcG9ydCBpcyBVRFAtYmFzZWQgb3IgSVAtDQo+IGJhc2Vk IGJlY2F1c2UgdGhlIGxlbmd0aCBmaWVsZCBvZiBVRFAgaGVhZGVyIHNob3VsZCBiZSB1cGRhdGVk IGZvciBUU08uDQo+IEFGQUlLLCB0aGVyZSdzIG5vIFRDUC1iYXNlZCB0dW5uZWwuIEZvciBQS1Rf VFhfVFVOTkVMX1VOS05PV04sIHRoZSBvbmx5DQo+IHRoaW5nIF91bmtub3duXyBzZWVtcyB0byBi ZSB0aGUgdHlwZSBvZiB0cmFuc3BvcnQgYW5kIGJ5IGRlZmluaW5nDQo+IFBLVF9UWF9PVVRFUl9V RFAsIHlvdSBzZWVtIHRvIHJlY29nbml6ZSB0aGUgdHlwZSBvZiB0cmFuc3BvcnQgYmV0d2VlbiBV RFANCj4gYW5kIElQIChpdCdzIG5vdCBub24tVURQKS4gR2l2ZW4gdGhhdCwgdGhlIG5ldyBmbGFn cyBzdGlsbCBsb29rIHJlZHVuZGFudA0KPiBhbmQgYW1iaWd1b3VzLiBJZiBQS1RfVFhfVFVOTkVM X1ZYTEFOIGlzIHNldCwgdGhlcmUncyBubyBuZWVkIHRvIHNldA0KPiBQS1RfVFhfT1VURVJfVURQ IHJlZHVuZGFudGx5Lg0KPiANCj4gSW5zdGVhZCwgSSB0aGluayBkZWZpbmluZyBQS1RfVFhfVFVO TkVMX1VEUF9VTktOT1dOIGFuZA0KPiBQS1RfVFhfVFVOTkVMX0lQX1VOS05PV04gY291bGQgYmUg YSBnb29kIGFsdGVybmF0aXZlLiBJdCBpcyBvbmx5IG15IGh1bWJsZQ0KPiB0d28gY2VudHMgYW5k IEknZCBsaWtlIHRvIGhlYXIgZnJvbSBtb3JlIHBlb3BsZSByZWdhcmRpbmcgdGhpcy4NCj4gDQoN ClRoaXMgZmxhZyBsb29rcyBtb3JlIGxpa2UgYSBmZWF0dXJlIG5vdGlmaWNhdGlvbi4gQ3VycmVu dCB0dW5uZWwgb2ZmbG9hZGluZyANCmNhcGFiaWxpdHkgbGlrZSAiREVWX1RYX09GRkxPQURfVlhM QU5fVE5MX1RTTyIgdGllcyB0byBWWExBTiB0dW5uZWwgdHlwZSwNCkRFVl9UWF9PRkZMT0FEX0dF TkVSSUNfVE5MX1RTTyBzaG91bGQgYmUgYWJsZSB0byBsZXQgdXNlcnMga25vdyB0aGF0IE5JQydz DQpjYXBhYmlsaXR5IG9mIG9mZmxvYWRpbmcgZ2VuZXJpYyB0dW5uZWwgdHlwZSBsaWtlIE1QTFMt aW4tVURQIHRoYXQgbm90IGRlZmluZWQNCnlldC4gUEtUX1RYX09VVEVSX1VEUCBpcyBzb21ldGhp bmcgbXVzdCB0byBoYXZlIHRvIGZsYWcgYW4gZXhpc3RzIG9mIG91dGVyIFVEUA0KaW4gc3VjaCBj YXNlLg0KDQo+IA0KPiBUaGFua3MsDQo+IFlvbmdzZW9rDQo=