From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40043.outbound.protection.outlook.com [40.107.4.43]) by dpdk.org (Postfix) with ESMTP id E48E68E5B for ; Tue, 17 Apr 2018 13:50:30 +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=SqFG40UeUllLE65JgPF9SS44pgVHF9Moy6FSfJ6dH8Q=; b=Z2I7kjws0r1J3lWPc3cntooC86W/F1emFvnxlYjnfy9SQ/VlA8XPug6wd4nbYfSpzEHqhHV63bI5jnr5DRyd0wNvi1RLfGRqS6vrkjiCzcqYFJP781GDYpAl4uP3E3n81fMEAQQgVSHe4NpB9dmB3+c5tIyvJa65jGq/dszNCvc= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB4286.eurprd05.prod.outlook.com (52.133.12.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.11; Tue, 17 Apr 2018 11:50:29 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::6da4:14c3:f5d8:3f4a]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::6da4:14c3:f5d8:3f4a%14]) with mapi id 15.20.0675.015; Tue, 17 Apr 2018 11:50:29 +0000 From: "Xueming(Steven) Li" To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= CC: Adrien Mazarguil , Shahaf Shuler , "dev@dpdk.org" , Olivier Matz Thread-Topic: [PATCH v3 04/14] net/mlx5: support Rx tunnel type identification Thread-Index: AQHT0xl1U3f1oL+VtkOBCFxPn+4eYqP+qTGAgAGN8oCAAsvTgIAACEDQgAAZIYCAAEKcgIAABc+AgAAbEeCAAAqugIAA1xSAgAApVoCAAEchQA== Date: Tue, 17 Apr 2018 11:50:29 +0000 Message-ID: References: <20180413130237.kb4dkx7o6lamrjoq@laranjeiro-vm.dev.6wind.com> <20180416072857.gyfcvfqoxu3gfepf@laranjeiro-vm.dev.6wind.com> <20180416092825.GW4957@6wind.com> <20180416134737.GZ4957@6wind.com> <20180416160243.GC4957@6wind.com> <20180417072027.fwg2cgpehfnq56tv@laranjeiro-vm.dev.6wind.com> In-Reply-To: <20180417072027.fwg2cgpehfnq56tv@laranjeiro-vm.dev.6wind.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.166.179] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB4286; 7:Z+GIZbDszZC8i6mC708nJskFqyJj9fzTTTVaxlAoRTl6mUtVN6giUS4aHEqBgibZbzQ5UAN7XIY5GCswVPwu8wjeV/g0sH9TFPQjv+/KgSrnQaoyPnSoc1qqpcFR3LTC/37T1wh+bnWC6GJQAH7biQuz03nY9v+U+yRf/nqEyyNofcklupwAkDWJ6f7J34eL/oU9whBhQIESim/zXLjSb2MP6PBr4u22EI+CyDKAxSNfYpm19uTXUwEMwt2fcaAF x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB4286; x-ms-traffictypediagnostic: VI1PR05MB4286: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(211171220733660); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231232)(944501327)(52105095)(6055026)(6041310)(20161123560045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011); SRVR:VI1PR05MB4286; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4286; x-forefront-prvs: 0645BEB7AA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(376002)(39380400002)(346002)(39860400002)(396003)(13464003)(199004)(189003)(76176011)(54906003)(305945005)(25786009)(8676002)(53936002)(8936002)(81166006)(6916009)(99286004)(81156014)(66066001)(74316002)(86362001)(478600001)(3846002)(93886005)(229853002)(2900100001)(486006)(316002)(26005)(6246003)(14454004)(4326008)(6116002)(9686003)(68736007)(11346002)(5660300001)(55016002)(5250100002)(6436002)(476003)(2906002)(3280700002)(106356001)(446003)(3660700001)(7696005)(105586002)(53546011)(33656002)(102836004)(97736004)(6506007)(186003)(7736002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4286; H:VI1PR05MB1678.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-microsoft-antispam-message-info: 4agO90AhBPmMs2Kn/WXKzYSr27TFAym+2Btae4WVi/txEr1eRqpqGyw6c4N6K+W+7VEUIyEyCt7PlxlLn4Jbi97pNWTOnHZjy0fw/S2sfcXN4DmwiLrZtdEB8XfR0Zmva4LyB8wulzFPF/t/HDQZ7yveh7t5td4XJ5q99lU8nLRNfpscUnDWH8P3GKOFC1Wo spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: c174be85-8991-48f8-c4a7-08d5a4596ac9 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: c174be85-8991-48f8-c4a7-08d5a4596ac9 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2018 11:50:29.2664 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4286 Subject: Re: [dpdk-dev] [PATCH v3 04/14] net/mlx5: support Rx tunnel type identification 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, 17 Apr 2018 11:50:31 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTsOpbGlvIExhcmFuamVp cm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAx NywgMjAxOCAzOjIwIFBNDQo+IFRvOiBYdWVtaW5nKFN0ZXZlbikgTGkgPHh1ZW1pbmdsQG1lbGxh bm94LmNvbT4NCj4gQ2M6IEFkcmllbiBNYXphcmd1aWwgPGFkcmllbi5tYXphcmd1aWxANndpbmQu Y29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBkZXZAZHBkay5vcmc7 DQo+IE9saXZpZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4NCj4gU3ViamVjdDogUmU6 IFtQQVRDSCB2MyAwNC8xNF0gbmV0L21seDU6IHN1cHBvcnQgUnggdHVubmVsIHR5cGUgaWRlbnRp ZmljYXRpb24NCj4gDQo+IE9uIFR1ZSwgQXByIDE3LCAyMDE4IGF0IDA0OjUzOjE1QU0gKzAwMDAs IFh1ZW1pbmcoU3RldmVuKSBMaSB3cm90ZToNCj4gPg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogQWRyaWVuIE1hemFyZ3VpbCA8YWRyaWVuLm1hemFy Z3VpbEA2d2luZC5jb20+DQo+ID4gPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAxNywgMjAxOCAxMjow MyBBTQ0KPiA+ID4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbWVsbGFub3guY29t Pg0KPiA+ID4gQ2M6IE7DqWxpbyBMYXJhbmplaXJvIDxuZWxpby5sYXJhbmplaXJvQDZ3aW5kLmNv bT47IFNoYWhhZiBTaHVsZXINCj4gPiA+IDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IGRldkBkcGRr Lm9yZzsgT2xpdmllciBNYXR6DQo+ID4gPiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4NCj4gPiA+ IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMDQvMTRdIG5ldC9tbHg1OiBzdXBwb3J0IFJ4IHR1bm5l bCB0eXBlDQo+ID4gPiBpZGVudGlmaWNhdGlvbg0KPiA+ID4NCj4gPiA+IE9uIE1vbiwgQXByIDE2 LCAyMDE4IGF0IDAzOjI3OjM3UE0gKzAwMDAsIFh1ZW1pbmcoU3RldmVuKSBMaSB3cm90ZToNCj4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ ID4gPiA+IEZyb206IEFkcmllbiBNYXphcmd1aWwgPGFkcmllbi5tYXphcmd1aWxANndpbmQuY29t Pg0KPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgQXByaWwgMTYsIDIwMTggOTo0OCBQTQ0KPiA+ID4g PiA+IFRvOiBYdWVtaW5nKFN0ZXZlbikgTGkgPHh1ZW1pbmdsQG1lbGxhbm94LmNvbT4NCj4gPiA+ ID4gPiBDYzogTsOpbGlvIExhcmFuamVpcm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPjsg U2hhaGFmIFNodWxlcg0KPiA+ID4gPiA+IDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IGRldkBkcGRr Lm9yZzsgT2xpdmllciBNYXR6DQo+ID4gPiA+ID4gPG9saXZpZXIubWF0ekA2d2luZC5jb20+DQo+ ID4gPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAwNC8xNF0gbmV0L21seDU6IHN1cHBvcnQg UnggdHVubmVsIHR5cGUNCj4gPiA+ID4gPiBpZGVudGlmaWNhdGlvbg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gT24gTW9uLCBBcHIgMTYsIDIwMTggYXQgMDE6MzI6NDlQTSArMDAwMCwgWHVlbWluZyhT dGV2ZW4pIExpIHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gRnJvbTogQWRyaWVuIE1hemFyZ3VpbCA8YWRy aWVuLm1hemFyZ3VpbEA2d2luZC5jb20+DQo+ID4gPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgQXBy aWwgMTYsIDIwMTggNToyOCBQTQ0KPiA+ID4gPiA+ID4gPiBUbzogWHVlbWluZyhTdGV2ZW4pIExp IDx4dWVtaW5nbEBtZWxsYW5veC5jb20+DQo+ID4gPiA+ID4gPiA+IENjOiBOw6lsaW8gTGFyYW5q ZWlybyA8bmVsaW8ubGFyYW5qZWlyb0A2d2luZC5jb20+OyBTaGFoYWYNCj4gPiA+ID4gPiA+ID4g U2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IGRldkBkcGRrLm9yZzsgT2xpdmllciBNYXR6 DQo+ID4gPiA+ID4gPiA+IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPg0KPiA+ID4gPiA+ID4gPiBT dWJqZWN0OiBSZTogW1BBVENIIHYzIDA0LzE0XSBuZXQvbWx4NTogc3VwcG9ydCBSeCB0dW5uZWwN Cj4gPiA+ID4gPiA+ID4gdHlwZSBpZGVudGlmaWNhdGlvbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiBPbiBNb24sIEFwciAxNiwgMjAxOCBhdCAwODowNToxM0FNICswMDAwLCBYdWVtaW5n KFN0ZXZlbikgTGkgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4g PiA+IEZyb206IE7DqWxpbyBMYXJhbmplaXJvIDxuZWxpby5sYXJhbmplaXJvQDZ3aW5kLmNvbT4N Cj4gPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgQXByaWwgMTYsIDIwMTggMzoyOSBQTQ0K PiA+ID4gPiA+ID4gPiA+ID4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbWVsbGFu b3guY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbWVs bGFub3guY29tPjsgZGV2QGRwZGsub3JnOw0KPiA+ID4gPiA+ID4gPiA+ID4gT2xpdmllciBNYXR6 IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPjsgQWRyaWVuIE1hemFyZ3VpbA0KPiA+ID4gPiA+ID4g PiA+ID4gPGFkcmllbi5tYXphcmd1aWxANndpbmQuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gU3Vi amVjdDogUmU6IFtQQVRDSCB2MyAwNC8xNF0gbmV0L21seDU6IHN1cHBvcnQgUngNCj4gPiA+ID4g PiA+ID4gPiA+IHR1bm5lbCB0eXBlIGlkZW50aWZpY2F0aW9uDQo+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gT24gU2F0LCBBcHIgMTQsIDIwMTggYXQgMTI6NTc6NThQTSArMDAw MCwgWHVlbWluZyhTdGV2ZW4pIExpIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArQWRyaWVu DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBOw6lsaW8gTGFyYW5q ZWlybyA8bmVsaW8ubGFyYW5qZWlyb0A2d2luZC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g U2VudDogRnJpZGF5LCBBcHJpbCAxMywgMjAxOCA5OjAzIFBNDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbWVsbGFub3guY29tPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+IENjOiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47 DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZGV2QGRwZGsub3JnOyBPbGl2aWVyIE1hdHogPG9saXZp ZXIubWF0ekA2d2luZC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtQ QVRDSCB2MyAwNC8xNF0gbmV0L21seDU6IHN1cHBvcnQgUngNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiB0dW5uZWwgdHlwZSBpZGVudGlmaWNhdGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gK09saXZpZXIsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBPbiBGcmksIEFwciAxMywgMjAxOCBhdCAwNzoyMDoxM1BNICswODAw LCBYdWVtaW5nIExpIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyBwYXRjaCBp bnRyb2R1Y2VkIHR1bm5lbCB0eXBlIGlkZW50aWZpY2F0aW9uIGJhc2VkIG9uIGZsb3cgcnVsZXMu DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJZiBmbG93cyBvZiBtdWx0aXBsZSB0dW5uZWwgdHlw ZXMgYnVpbHQgb24gc2FtZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcXVldWUsIFJURV9QVFlQ RV9UVU5ORUxfTUFTSyB3aWxsIGJlIHJldHVybmVkLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g dXNlciBhcHBsaWNhdGlvbiBjb3VsZCB1c2UgYml0cyBpbiBmbG93IG1hcmsgYXMgdHVubmVsIHR5 cGUgaWRlbnRpZmllci4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+IEZvciBhbiBhcHBsaWNhdGlvbiBpdCB3aWxsIG1lYW4gdGhlIHBhY2tldCBlbWJlZCBhbGwN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0dW5uZWwgdHlwZXMgZGVmaW5lZCBpbiBEUERLLCB0byBt YWtlIHN1Y2ggdGhpbmcgeW91DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbmVlZCBhIFJURV9QVFlQ RV9UVU5ORUxfVU5LTk9XTiB3aGljaCBkb2VzIG5vdCBleGlzdHMgY3VycmVudGx5Lg0KPiA+ID4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGVyZSB3YXMgYSBSVEVfUFRZUEVf VFVOTkVMX1VOS05PV04gZGVmaW5pdGlvbiwgYnV0DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlbW92 ZWQgZHVlIHRvDQo+ID4gPiA+ID4gPiA+ID4gPiBkaXNjdXNzaW9uLg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiBTbyBJIHRoaW5rIGl0IGdvb2QgdG8gYWRkIGl0IGluIHRoZSBwYXRjaHNldCBvZiByZXZp ZXdlZCBieSBBZHJpZW4uDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gQWdy ZWVkLA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBFdmVuIHdpdGggaXQsIHRoZSBhcHBsaWNhdGlvbiBzdGlsbCBuZWVkcyB0byBw YXJzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBwYWNrZXQgdG8gZGlzY292ZXIgd2hpY2gg dHVubmVsIHRoZSBwYWNrZXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBlbWJlZCwgaXMgdGhlcmUg YW55IGJlbmVmaXQgaGF2aW5nIHN1Y2ggYml0PyAgTm90IHNvIHN1cmUuDQo+ID4gPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFdpdGggYSB0dW5uZWwgZmxhZywgY2hlY2tzdW0g c3RhdHVzIHJlcHJlc2VudCBpbm5lciBjaGVja3N1bS4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiBOb3Qgc3VyZSB0aGlzIGlzIGdlbmVyaWMgZW5vdWdoLCBNTFg1IGJlaGF2 ZXMgYXMgdGhpcywNCj4gPiA+ID4gPiA+ID4gPiA+IGJ1dCBob3cgYmVoYXZlcyBvdGhlciBOSUNz PyAgSXQgc2hvdWxkIGhhdmUgc3BlY2lmaWMNCj4gPiA+ID4gPiA+ID4gPiA+IGJpdHMgZm9yIGlu bmVyIGNoZWNrc3VtIGlmIGFsbCBOSUMgZG9uJ3QgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvci4NCj4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEZyb20gbXkgdW5kZXJzdGFuZGluZywgaWYg b3V0ZXIgY2hlY2tzdW0gaW52YWxpZCwgdGhlDQo+ID4gPiA+ID4gPiA+ID4gcGFja2V0IGNhbid0 IGJlIHJlY2VpdmVkIGFzIGEgdHVubmVsZWQgcGFja2V0LCBidXQgYQ0KPiA+ID4gPiA+ID4gPiA+ IG5vcm1hbCBwYWNrZXQsIHRodXMgY2hlY2tzdW0gZmxhZ3MgYWx3YXlzIHJlc3VsdCBvZiBpbm5l ciBmb3IgYSB2YWxpZCB0dW5uZWxlZCBwYWNrZXQuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+IFllcywgc2luY2UgY2hlY2tzdW0gdmFsaWRhdGlvbiBpbmZvcm1hdGlvbiBjb3ZlcnMgYWxs IGxheWVycw0KPiA+ID4gPiA+ID4gPiBhdCBvbmNlIChvdXRlcm1vc3QgdG8gdGhlIGlubmVybW9z dCByZWNvZ25pemVkKSwgdGhlIHByZXNlbmNlIG9mIGFuICJ1bmtub3duIHR1bm5lbCINCj4gPiA+ ID4gPiA+ID4gYml0IGltcGxpY2l0bHkgbWVhbnMgb3V0ZXIgaGVhZGVycyBhcmUgT0suDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE5vdyByZWdhcmRpbmcgdGhlIGFkZGl0aW9uIG9mIFJU RV9QVFlQRV9UVU5ORUxfVU5LTk9XTiwgdGhlDQo+ID4gPiA+ID4gPiA+IG1haW4gaXNzdWUgSSBz ZWUgaXMgdGhhdCBpdCdzIGltcGxpY2l0LCBhcyBpbiBnZXR0aW5nIDANCj4gPiA+ID4gPiA+ID4g YWZ0ZXIgYW5kJ2luZyBwYWNrZXQgdHlwZXMgd2l0aCBSVEVfUFRZUEVfVFVOTkVMX01BU0sgbWVh bnMgZWl0aGVyIG5vdCBwcmVzZW50IG9yIHVua25vd24NCj4gdHlwZS4NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBIb3cgYWJvdXQgZGVmaW5lIFJURV9QVFlQRV9UVU5ORUxfVU5LTk9XTiBzYW1l IGFzaw0KPiA+ID4gPiA+ID4gUlRFX1BUWVBFX1RVTk5FTF9NQVNLPyBBbmQnZGluZyBwYWNrZXQg dHlwZXMgYWx3YXlzIHJldHVybiBhIG5vbi16ZXJvIHZhbHVlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gSSBtZWFuIHRoZSB2YWx1ZSBhbHJlYWR5IGV4aXN0cywgaXQncyBpbXBsaWNpdGx5IDAuIEFk ZGluZyBvbmUNCj4gPiA+ID4gPiB3aXRoIHRoZSBzYW1lIHZhbHVlIGFzIFJURV9QVFlQRV9UVU5O RUxfTUFTSyBjb3VsZCBiZSBzZWVuIGFzIGENCj4gPiA+ID4gPiB3YXN0ZSBvZiBhIHZhbHVlIG90 aGVyd2lzZSB1c2FibGUgZm9yIGFuIGFjdHVhbCB0dW5uZWwgdHlwZSAodGhlcmUgYXJlIG9ubHkg NCBiaXRzKS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBIb3cgYWJvdXQgbm90IHNldHRpbmcg YW55IHR1bm5lbCBiaXQgYW5kIGxldCBhcHBsaWNhdGlvbnMNCj4gPiA+ID4gPiA+ID4gcmVseSBv biB0aGUgcHJlc2VuY2Ugb2YgUlRFX1BUWVBFX0lOTkVSXyogdG8gZGV0ZXJtaW5lIHRoYXQNCj4g PiA+ID4gPiA+ID4gdGhlcmUgaXMgYSB0dW5uZWwgb2YgdW5rbm93biB0eXBlPyBUaGUgcmF0aW9u YWxlIGJlaW5nIHRoYXQNCj4gPiA+ID4gPiA+ID4gYSB0dW5uZWxlZCBwYWNrZXQgd2l0aG91dCBh biBpbm5lciBwYXlsb2FkIGlzDQo+ID4gPiA+ID4ga2luZCBvZiBwb2ludGxlc3MgYW55d2F5Lg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEFuIHVua25vd24gdHlwZSBkb2Vzbid0IGJyZWFrIGFu eXRoaW5nLCBuZWl0aGVyIGVudW0gYml0cywgc3RyYWlnaHRmb3J3YXJkIElNSE8uDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBLZWVwIGluIG1pbmQgdGhhdCBtYnVmIHBhY2tldCB0eXBlcyByZXBvcnQg d2hhdCBpcyBpZGVudGlmaWVkLg0KPiA+ID4gPiA+IEFsbCB0aGUgZGVmaW5pdGlvbnMgaW4gdGhp cyBmaWxlIG5hbWUgYSBzcGVjaWZpYyBwcm90b2NvbC4gRm9yDQo+ID4gPiA+ID4gaW5zdGFuY2Ug dGhlcmUgaXMgbm8gc3VjaCBkZWZpbml0aW9uIGFzICJMMyBwcmVzZW50IiBvciAiTDQNCj4gPiA+ ID4gPiBwcmVzZW50Ii4gIlR1bm5lbCBwcmVzZW50IiBkb2Vzbid0IG1ha2UgYSBsb3QNCj4gPiA+ IG9mIHNlbnNlIG9uIGl0cyBvd24gZWl0aGVyLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gRG9uJ3Qg eW91IGFncmVlIHRoYXQgcmVwb3J0aW5nIGF0IGxlYXN0IG9uZSBpbm5lciBwdHlwZSB3aGlsZQ0K PiA+ID4gPiA+IGxlYXZpbmcgdHVubmVsIHB0eXBlIHRvIDAgYXV0b21hdGljYWxseSBhZGRyZXNz ZXMgdGhpcyBpc3N1ZT8NCj4gPiA+ID4NCj4gPiA+ID4gQ3VycmVudGx5LCBubyBpbm5lciBMMiBw dHlwZSwgc28gZm9yIHBhY2tldCB3aXRoIG9ubHkgTDIsIGl0IHdpbGwgYmUgcmVjb2duaXplZCBh cyBub24tdHVubmVsDQo+IHBhY2tldC4NCj4gPiA+DQo+ID4gPiBBcHBsaWNhdGlvbnMgY2FuIGxp dmUgd2l0aCBpdC4gRG9uJ3QgYm90aGVyIHdpdGggYSBwdHlwZSBBUEkgY2hhbmdlDQo+ID4gPiBh dCB0aGlzIHBvaW50LCBpdCByYWlzZXMgbW9yZSBpc3N1ZXMgdGhhbiBpdCBzb2x2ZXMuDQo+ID4g Pg0KPiA+ID4gR2l2ZW4gdGhlIHNpemUgb2YgdGhlIHNlcmllcywgbGV0J3MgZGVhbCB3aXRoIHRo YXQgbGF0ZXIgdGhyb3VnaCBhDQo+ID4gPiBzZXBhcmF0ZSB0YXNrIGFuZCBhY2NvcmRpbmcgdG8g dXNlciBmZWVkYmFjay4NCj4gPg0KPiA+IE5lbGlvLCBzbyBJJ2xsIGxlYXZlIGl0IGFzIGl0IGlz LCBhcmUgeW91IG9rYXkgd2l0aCBpdD8NCj4gDQo+IEkgYWdyZWUgd2l0aCBBZHJpZW4sIGlmIHlv dSBhcmUgbm90IGFibGUgdG8gc2F5IHdoaWNoIGtpbmQgb2YgdHVubmVsIGl0IGlzLCBkb24ndCBz ZXQgaXQgaW4gdGhlIG1idWYuDQoNCkl0J3MgdXNlZnVsIHRvIGhhdmUgYSB0dW5uZWwgZmxhZyBv dGhlcndpc2UgaGF2ZSB0byBjaGFuZ2UgdGhlIGNvZGUgdG8gaXRlcmF0ZSB0dW5uZWxfdHlwZXMg d2hpY2gNCndvdWxkIHNsb3cgZG93biB0aGUgZmxvdyBjcmVhdGlvbi4NCgkJcnhxX2N0cmwtPnR1 bm5lbF90eXBlc1t0dW5uZWxdICs9IDE7DQoJCWlmIChyeHFfZGF0YS0+dHVubmVsICE9IGZsb3ct PnR1bm5lbCkNCgkJCXJ4cV9kYXRhLT50dW5uZWwgPSByeHFfZGF0YS0+dHVubmVsID8NCgkJCQkJ ICAgUlRFX1BUWVBFX1RVTk5FTF9NQVNLIDoNCgkJCQkJICAgZmxvdy0+dHVubmVsOw0KDQo+IA0K PiBSZWdhcmRzLA0KPiANCj4gLS0NCj4gTsOpbGlvIExhcmFuamVpcm8NCj4gNldJTkQNCg==