From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0043.outbound.protection.outlook.com [104.47.1.43]) by dpdk.org (Postfix) with ESMTP id 648211BD95 for ; Thu, 12 Apr 2018 16:27:47 +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=BmKQ3+oqExm4vVWGpOmTDvgX4AQZ0lJ11C7LtR/UnRQ=; b=lFE/wn0eB2xHEUZcLsxsKHtoiE0R6isJEG1DFKMSGbTDxl/8itIIUGsfQsgVvIbdUnhUm3SXDPZ3GzGEsvccLGtdAj049Yg90P+0kieQMuPq/4YBBqXBoG+0ARfvY2+k7lzz1sWfiIlMe7rPTyIqjoUSX+5yfNU4y4CCz5vFX+Q= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB1904.eurprd05.prod.outlook.com (10.166.44.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Thu, 12 Apr 2018 14:27:45 +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.0653.018; Thu, 12 Apr 2018 14:27:45 +0000 From: "Xueming(Steven) Li" To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= CC: Shahaf Shuler , "dev@dpdk.org" Thread-Topic: [PATCH v2 04/15] net/mlx5: support Rx tunnel type identification Thread-Index: AQHT0NCyvMpimHYno0ayzuHHFIBwyaP6HF2AgAEWWqCAAbMrAIAAQwxA Date: Thu, 12 Apr 2018 14:27:45 +0000 Message-ID: References: <20180410133415.189905-1-xuemingl@mellanox.com> <20180410133415.189905-5-xuemingl@mellanox.com> <20180410151711.zlxxkzycknrtlwhr@laranjeiro-vm.dev.6wind.com> <20180412095058.3vcynmscyvc6wl7e@laranjeiro-vm.dev.6wind.com> In-Reply-To: <20180412095058.3vcynmscyvc6wl7e@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; VI1PR05MB1904; 7:cw+jSO0lNpB4XZx2gdAaQRBV9PKguFJJl6Fz2PB3msYaMSxBxO4JCxPlzEZsVMPzq60W78GW1E3MKCXwsvuPJaP2CRNxoYUd3WIiQXjoNYCkIBlKseUTsXdSGBooxSIOCtJn4S2EZm8TsnIohv5aeUkH1xAXbkh8DrBr58vRKrGoYptQojr+2VnP9iAu3YC/9T1ZpC+jNX9SBa5xmyy7XWtP+2ejwmvOUoG/lTgoK65wkr+8h46Ee86kLgNcMQNc 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:VI1PR05MB1904; x-ms-traffictypediagnostic: VI1PR05MB1904: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231221)(944501327)(52105095)(10201501046)(93006095)(93001095)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:VI1PR05MB1904; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB1904; x-forefront-prvs: 06400060E1 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(39380400002)(366004)(376002)(346002)(199004)(13464003)(189003)(68736007)(76176011)(305945005)(6116002)(2906002)(7696005)(229853002)(33656002)(7736002)(25786009)(93886005)(186003)(3846002)(59450400001)(3280700002)(4326008)(6916009)(26005)(14454004)(102836004)(6506007)(3660700001)(105586002)(53546011)(53936002)(478600001)(5660300001)(6246003)(11346002)(316002)(446003)(86362001)(6436002)(55016002)(9686003)(106356001)(8936002)(476003)(66066001)(81166006)(486006)(5250100002)(54906003)(81156014)(74316002)(8676002)(97736004)(2900100001)(99286004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1904; 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: BGJXNC+SzfqVk20d5JvI+vaAl/UxukJdOcY0zfoxfcU0/ooyVy2+0UVFdVOfsNf9xq//m/5a0qgjddD4mCYVYy4+MV/IsnW6SQuMWW2IUD6NEEUR/7o5csrKMM+6hPGKljTnxiCE5MnweLH/fnNbj/Aa2bRAIiREoRSLAWeimOqB92b8uT0IJf/9qB1TUg+l 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: 51bce0ed-e642-472f-2b24-08d5a0818efc X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51bce0ed-e642-472f-2b24-08d5a0818efc X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2018 14:27:45.1971 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1904 Subject: Re: [dpdk-dev] [PATCH v2 04/15] 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: Thu, 12 Apr 2018 14:27:47 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTsOpbGlvIExhcmFuamVp cm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwg MTIsIDIwMTggNTo1MSBQTQ0KPiBUbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBtZWxs YW5veC5jb20+DQo+IENjOiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IGRl dkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDA0LzE1XSBuZXQvbWx4NTogc3Vw cG9ydCBSeCB0dW5uZWwgdHlwZQ0KPiBpZGVudGlmaWNhdGlvbg0KPiANCj4gT24gV2VkLCBBcHIg MTEsIDIwMTggYXQgMDg6MTE6NTBBTSArMDAwMCwgWHVlbWluZyhTdGV2ZW4pIExpIHdyb3RlOg0K PiA+IEhpIE5lbGlvLA0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ ID4gRnJvbTogTsOpbGlvIExhcmFuamVpcm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0K PiA+ID4gU2VudDogVHVlc2RheSwgQXByaWwgMTAsIDIwMTggMTE6MTcgUE0NCj4gPiA+IFRvOiBY dWVtaW5nKFN0ZXZlbikgTGkgPHh1ZW1pbmdsQG1lbGxhbm94LmNvbT4NCj4gPiA+IENjOiBTaGFo YWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4gU3Vi amVjdDogUmU6IFtQQVRDSCB2MiAwNC8xNV0gbmV0L21seDU6IHN1cHBvcnQgUnggdHVubmVsIHR5 cGUNCj4gPiA+IGlkZW50aWZpY2F0aW9uDQo+ID4gPg0KPiA+ID4gT24gVHVlLCBBcHIgMTAsIDIw MTggYXQgMDk6MzQ6MDRQTSArMDgwMCwgWHVlbWluZyBMaSB3cm90ZToNCj4gPiA+ID4gVGhpcyBw YXRjaCBpbnRyb2R1Y2VkIHR1bm5lbCB0eXBlIGlkZW50aWZpY2F0aW9uIGJhc2VkIG9uIGZsb3cg cnVsZXMuDQo+ID4gPiA+IElmIGZsb3dzIG9mIG11bHRpcGxlIHR1bm5lbCB0eXBlcyBidWlsdCBv biBzYW1lIHF1ZXVlLA0KPiA+ID4gPiBSVEVfUFRZUEVfVFVOTkVMX01BU0sgd2lsbCBiZSByZXR1 cm5lZCwgYml0cyBpbiBmbG93IG1hcmsgY291bGQgYmUNCj4gPiA+ID4gdXNlZCBhcyB0dW5uZWwg dHlwZSBpZGVudGlmaWVyLg0KPiA+ID4NCj4gPiA+IEkgZG9uJ3Qgc2VlIGFueXdoZXJlIGluIHRo aXMgcGF0Y2ggd2hlcmUgdGhlIGJpdHMgYXJlIHJlc2VydmVkIHRvDQo+ID4gPiBpZGVudGlmeSBh IGZsb3csIG5vciB2YWx1ZXMgd2hpY2ggY2FuIGhlbHAgdG8gaWRlbnRpZnkgaXQuDQo+ID4gPg0K PiA+ID4gSXMgdGhpcyBtaXNzaW5nPw0KPiA+ID4NCj4gPiA+IEFueXdheSB3ZSBoYXZlIGFscmVh ZHkgdmVyeSBmZXcgYml0cyBpbiB0aGUgbWFyayBtYWtpbmcgaXQgZGlmZmljdWx0DQo+ID4gPiB0 byBiZSB1c2VkIGJ5IHRoZSB1c2VyLCByZXNlcnZpbmcgYWdhaW4gc29tZSB0byBtYXkgbGVhZCB0 byByZW1vdmUNCj4gPiA+IHRoZSBtYXJrIHN1cHBvcnQgZnJvbSB0aGUgZmxvd3MuDQo+ID4NCj4g PiBOb3QgYWxsIHVzZXJzIHdpbGwgdXNlIG11bHRpcGxlIHR1bm5lbCB0eXBlcywgdGhpcyBpcyBu b3QgaW5jbHVkZWQgaW4NCj4gPiB0aGlzIHBhdGNoIHNldCBhbmQgbGVmdCB0byB1c2VyIGRlY2lz aW9uLiBJJ2xsIHVwZGF0ZSBjb21tZW50cyB0byBtYWtlDQo+IHRoaXMgY2xlYXIuDQo+IA0KPiBU aGFua3MsDQo+IA0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBYdWVtaW5nIExpIDx4dWVtaW5nbEBt ZWxsYW5veC5jb20+DQo+IDxzbmlwLz4NCj4gPiA+ID4gIC8qKg0KPiA+ID4gPiArICogUlhRIHVw ZGF0ZSBhZnRlciBmbG93IHJ1bGUgY3JlYXRpb24uDQo+ID4gPiA+ICsgKg0KPiA+ID4gPiArICog QHBhcmFtIGRldg0KPiA+ID4gPiArICogICBQb2ludGVyIHRvIEV0aGVybmV0IGRldmljZS4NCj4g PiA+ID4gKyAqIEBwYXJhbSBmbG93DQo+ID4gPiA+ICsgKiAgIFBvaW50ZXIgdG8gdGhlIGZsb3cg cnVsZS4NCj4gPiA+ID4gKyAqLw0KPiA+ID4gPiArc3RhdGljIHZvaWQNCj4gPiA+ID4gK21seDVf Zmxvd19jcmVhdGVfdXBkYXRlX3J4cXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdA0K PiA+ID4gPiArcnRlX2Zsb3cNCj4gPiA+ID4gKypmbG93KSB7DQo+ID4gPiA+ICsJc3RydWN0IHBy aXYgKnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ID4gPiArCXVuc2lnbmVkIGlu dCBpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJaWYgKCFkZXYtPmRhdGEtPmRldl9zdGFydGVkKQ0K PiA+ID4gPiArCQlyZXR1cm47DQo+ID4gPiA+ICsJZm9yIChpID0gMDsgaSAhPSBmbG93LT5yc3Nf Y29uZi5xdWV1ZV9udW07ICsraSkgew0KPiA+ID4gPiArCQlzdHJ1Y3QgbWx4NV9yeHFfZGF0YSAq cnhxX2RhdGEgPSAoKnByaXYtPnJ4cXMpDQo+ID4gPiA+ICsJCQkJCQkgWygqZmxvdy0+cXVldWVz KVtpXV07DQo+ID4gPiA+ICsJCXN0cnVjdCBtbHg1X3J4cV9jdHJsICpyeHFfY3RybCA9DQo+ID4g PiA+ICsJCQljb250YWluZXJfb2YocnhxX2RhdGEsIHN0cnVjdCBtbHg1X3J4cV9jdHJsLCByeHEp Ow0KPiA+ID4gPiArCQl1aW50OF90IHR1bm5lbCA9IFBUWVBFX0lEWChmbG93LT50dW5uZWwpOw0K PiA+ID4gPiArDQo+ID4gPiA+ICsJCXJ4cV9kYXRhLT5tYXJrIHw9IGZsb3ctPm1hcms7DQo+ID4g PiA+ICsJCWlmICghdHVubmVsKQ0KPiA+ID4gPiArCQkJY29udGludWU7DQo+ID4gPiA+ICsJCXJ4 cV9jdHJsLT50dW5uZWxfdHlwZXNbdHVubmVsXSArPSAxOw0KPiA+ID4NCj4gPiA+IEkgZG9uJ3Qg dW5kZXJzdGFuZCB3aHkgeW91IG5lZWQgc3VjaCBhcnJheSwgdGhlIE5JQyBpcyB1bmFibGUgdG8N Cj4gPiA+IHJldHVybiB0aGUgdHVubmVsIHR5cGUgaGFzIGl0IHJldHVybnMgb25seSBvbmUgYml0 IHNheWluZyB0dW5uZWwuDQo+ID4gPiBXaHkgZG9uJ3QgaXQgc3RvcmUgaW4gdGhlIHByaXYgc3Ry dWN0dXJlIHRoZSBjdXJyZW50IGNvbmZpZ3VyZWQgdHVubmVsPw0KPiA+DQo+ID4gVGhpcyBhcnJh eSBpcyB1c2VkIHRvIGNvdW50IHR1bm5lbCB0eXBlcyBib3VuZCB0byBxdWV1ZSwgaWYgb25seSBv bmUNCj4gPiB0dW5uZWwgdHlwZSwgcHR5cGUgd2lsbCByZXBvcnQgdGhhdCB0dW5uZWwgdHlwZSwg VFVOTkVMIE1BU0sobWF4DQo+ID4gdmFsdWUpIHdpbGwgYmUgcmV0dXJuZWQgaWYgbXVsdGlwbGUg dHlwZXMgYm91bmQgdG8gYSBxdWV1ZS4NCj4gPg0KPiA+IEZsb3cgcnNzIGFjdGlvbiBzcGVjaWZp ZXMgcXVldWVzIHRoYXQgYmluZGluZyB0byB0dW5uZWwsIHRodXMgd2UgY2FuJ3QNCj4gPiBhc3N1 bWUgYWxsIHF1ZXVlcyBoYXZlIHNhbWUgdHVubmVsIHR5cGVzLCBzbyB0aGlzIGlzIGEgcGVyIHF1 ZXVlDQo+IHN0cnVjdHVyZS4NCj4gDQo+IFRoZXJlIGlzIHNvbWV0aGluZyBJIGFtIG1pc3Npbmcg aGVyZSwgaG93IGluIHRoZSBkYXRhcGxhbmUgdGhlIFBNRCBjYW4NCj4gdW5kZXJzdGFuZCBmcm9t IDEgYml0IHdoaWNoIGtpbmQgb2YgdHVubmVsIHRoZSBwYWNrZXQgaXMgbWF0Y2hpbmc/DQoNClRo ZSBjb2RlIHVuZGVyIHRoaXMgbGluZSBpcyBhbnN3ZXIsIGxldCBtZSBwb3N0IGhlcmU6IA0KCQlp ZiAocnhxX2RhdGEtPnR1bm5lbCAhPSBmbG93LT50dW5uZWwpDQoJCQlyeHFfZGF0YS0+dHVubmVs ID0gcnhxX2RhdGEtPnR1bm5lbCA/DQoJCQkJCSAgIFJURV9QVFlQRV9UVU5ORUxfTUFTSyA6DQoJ CQkJCSAgIGZsb3ctPnR1bm5lbDsNCklmIG5vIHR1bm5lbCB0eXBlIGFzc29jaWF0ZWQgdG8gcnhx LCB1c2UgdHVubmVsIHR5cGUgZnJvbSBmbG93Lg0KSWYgYSBuZXcgdHVubmVsIHR5cGUgZnJvbSBm bG93LCB1c2UgUlRFX1BUWVBFX1RVTk5FTF9NQVNLLg0KDQo+IA0KPiA8c25pcC8+DQo+ID4gPiA+ IEBAIC0yMzM0LDkgKzI0MTQsOSBAQCBtbHg1X2Zsb3dfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwNCj4gPiA+ID4gc3RydWN0IG1seDVfZmxvd3MgKmxpc3QpICB7DQo+ID4gPiA+ICAJc3Ry dWN0IHByaXYgKnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ID4gPiAgCXN0cnVj dCBydGVfZmxvdyAqZmxvdzsNCj4gPiA+ID4gKwl1bnNpZ25lZCBpbnQgaTsNCj4gPiA+ID4NCj4g PiA+ID4gIAlUQUlMUV9GT1JFQUNIX1JFVkVSU0UoZmxvdywgbGlzdCwgbWx4NV9mbG93cywgbmV4 dCkgew0KPiA+ID4gPiAtCQl1bnNpZ25lZCBpbnQgaTsNCj4gPiA+ID4gIAkJc3RydWN0IG1seDVf aW5kX3RhYmxlX2lidiAqaW5kX3RibCA9IE5VTEw7DQo+ID4gPiA+DQo+ID4gPiA+ICAJCWlmIChm bG93LT5kcm9wKSB7DQo+ID4gPiA+IEBAIC0yMzgyLDYgKzI0NjIsMTYgQEAgbWx4NV9mbG93X3N0 b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiA+IHN0cnVjdA0KPiA+ID4gbWx4NV9m bG93cyAqbGlzdCkNCj4gPiA+ID4gIAkJRFJWX0xPRyhERUJVRywgInBvcnQgJXUgZmxvdyAlcCBy ZW1vdmVkIiwgZGV2LT5kYXRhLQ0KPiA+cG9ydF9pZCwNCj4gPiA+ID4gIAkJCSh2b2lkICopZmxv dyk7DQo+ID4gPiA+ICAJfQ0KPiA+ID4gPiArCS8qIENsZWFudXAgUnggcXVldWUgdHVubmVsIGlu Zm8uICovDQo+ID4gPiA+ICsJZm9yIChpID0gMDsgaSAhPSBwcml2LT5yeHFzX247ICsraSkgew0K PiA+ID4gPiArCQlzdHJ1Y3QgbWx4NV9yeHFfZGF0YSAqcSA9ICgqcHJpdi0+cnhxcylbaV07DQo+ ID4gPiA+ICsJCXN0cnVjdCBtbHg1X3J4cV9jdHJsICpyeHFfY3RybCA9DQo+ID4gPiA+ICsJCQlj b250YWluZXJfb2YocSwgc3RydWN0IG1seDVfcnhxX2N0cmwsIHJ4cSk7DQo+ID4gPiA+ICsNCj4g PiA+ID4gKwkJbWVtc2V0KCh2b2lkICopcnhxX2N0cmwtPnR1bm5lbF90eXBlcywgMCwNCj4gPiA+ ID4gKwkJICAgICAgIHNpemVvZihyeHFfY3RybC0+dHVubmVsX3R5cGVzKSk7DQo+ID4gPiA+ICsJ CXEtPnR1bm5lbCA9IDA7DQo+ID4gPiA+ICsJfQ0KPiA+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+IFRo aXMgaHVuayBkb2VzIG5vdCBoYW5kbGUgdGhlIGZhY3QgdGhlIFJ4IHF1ZXVlIGFycmF5IG1heSBo YXZlIHNvbWUNCj4gPiA+IGhvbGVzIGkuZS4gdGhlIGFwcGxpY2F0aW9uIGlzIGFsbG93ZWQgdG8g YXNrIGZvciAxMCBxdWV1ZXMgYW5kIG9ubHkNCj4gPiA+IGluaXRpYWxpc2Ugc29tZS4gIEluIHN1 Y2ggc2l0dWF0aW9uIHRoaXMgY29kZSB3aWxsIHNlZ2ZhdWx0Lg0KPiA+DQo+ID4gSW4gb3RoZXIg d29yZHMsICJxIiBjb3VsZCBiZSBOVUxMLCBjb3JyZWN0PyBJJ2xsIGFkZCBjaGVjayBmb3IgdGhp cy4NCj4gDQo+IENvcnJlY3QuDQo+IA0KPiA+IEJUVywgdGhlcmUgc2hvdWxkIGJlIGFuIGFjdGlv biBpdGVtIHRvIGFkZCBzdWNoIGNoZWNrIGluIHJzcy9xdWV1ZSBmbG93DQo+IGNyZWF0aW9uLg0K PiANCj4gQXMgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBhcHBsaWNhdGlvbi91c2Vy IHRvIG1ha2UgcnVsZSBhY2NvcmRpbmcNCj4gdG8gd2hhdCBpdCBoYXMgY29uZmlndXJlZCwgaXQg aGFzIG5vdCBiZWVuIGFkZGVkLiAgSXQgY2FuIHN0aWxsIGJlIGFkZGVkLA0KPiBidXQgaXQgY2Fu bm90IGJlIGNvbnNpZGVyZWQgYXMgYSBmaXguDQo+IA0KPiA+ID4gSXQgc2hvdWxkIG9ubHkgbWVt c2V0IHRoZSBSeCBxdWV1ZXMgbWFraW5nIHBhcnQgb2YgdGhlIGZsb3cgbm90IHRoZQ0KPiBvdGhl cnMuDQo+ID4NCj4gPiBDbGVhbiB0aGlzKGRlY3JlYXNlIHR1bm5lbF90eXBlcyBjb3VudGVyIG9m IGVhY2ggcXVldWUpIGZyb20gZWFjaCBmbG93DQo+ID4gd291bGQgYmUgdGltZSBjb25zdW1pbmcu DQo+IA0KPiBDb25zaWRlcmluZyBmbG93cyBhcmUgYWxyZWFkeSByZWx5aW5nIG9uIHN5c2NhbGwg dG8gY29tbXVuaWNhdGUgd2l0aCB0aGUNCj4ga2VybmVsLCB0aGUgZXh0cmEgY3ljbGVzIGNvbnN1 bXB0aW9uIHRvIG9ubHkgY2xlYXIgdGhlIHF1ZXVlcyBtYWtpbmcgcGFydA0KPiBvZiB0aGlzIGZs b3cgaXMgbmVnbGVjdGFibGUuDQo+IA0KPiBCeSB0aGUgd2F5IGluIHRoZSBzYW1lIGZ1bmN0aW9u IHRoZSBtYXJrIGlzIGNsZWFyZWQgb25seSBmb3IgdGhlIHF1ZXVlcw0KPiBtYWtpbmcgcGFydCBv ZiB0aGUgZmxvdywgdGhlIHNhbWUgbG9vcCBjYW4gYmUgdXNlZCB0byBjbGVhciB0aG9zZSB0dW5u ZWwNCj4gaW5mb3JtYXRpb25zIGF0IHRoZSBzYW1lIHRpbWUuDQo+IA0KPiA+IElmIGFuIGVycm9y IGhhcHBlbmVkLCBjb3VudGVyIHdpbGwgbm90IGJlIGNsZWFyZWQgYW5kIHN1Y2ggc3RhdGUgd2ls bA0KPiA+IGltcGFjdCB0dW5uZWwgdHlwZSBhZnRlciBwb3J0IHN0YXJ0IGFnYWluLg0KPiANCj4g VW5sZXNzIGFuIGltcGxlbWVudGF0aW9uIGVycm9yIHdoaWNoIG90aGVyIGtpbmQgb2YgdGhlbSBk byB5b3UgZmVhciB0bw0KPiBoYXBwZW4/DQoNCk1hcmsgb2YgcnhxIHNpbXBseSByZXNldCB0byAw LCB0aGlzIGZpZWxkIGlzIGNvdW50ZXIsIHRoZSBmaW5hbCB0YXJnZXQgaXMgdG8gDQpjbGVhciBm aWVsZCB2YWx1ZSwgc28gbXkgY29kZSBzaG91bGQgYmUgc3RyYWlnaHQgZm9yd2FyZCBhbmQgZXJy b3IgZnJlZSDwn5iKDQoNCkZyb20gYSBxdWljayBsb29rLCB0aGlzIGZ1bmN0aW9uIGNvdWxkIGJl IG11Y2ggc2ltcGxlIHRoYXQgd2hhdCBpdCBpcyB0b2RheToNCjEuIGNsZWFuIHZlcmIgZmxvdyBh bmQgaHJleCB3aGVyZSBwb3NzaWJsZSwgZGVzcGl0ZSBvZiBmbG93IHR5cGUuDQoyLiBjbGVhbiBy eHEgc3RhdGU6IG1hcmsgYW5kIHR1bm5lbF90eXBlcy4NCg0KPiANCj4gVGhhbmtzLA0KPiANCj4g LS0NCj4gTsOpbGlvIExhcmFuamVpcm8NCj4gNldJTkQNCg==