From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 16860A04A5; Sat, 23 May 2020 22:21:27 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C9ECC1D647; Sat, 23 May 2020 22:21:25 +0200 (CEST) Received: from CNSHJSMIN05.NOKIA-SBELL.COM (cnshjsmin05.nokia-sbell.com [116.246.26.45]) by dpdk.org (Postfix) with ESMTP id 274941D156 for ; Wed, 20 May 2020 09:42:11 +0200 (CEST) X-AuditID: ac18929d-87fff7000001e41d-f3-5ec4df501bc4 Received: from CNSHPPEXCH1604.nsn-intra.net (Unknown_Domain [135.251.51.104]) (using TLS with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by CNSHJSMIN05.NOKIA-SBELL.COM (Symantec Messaging Gateway) with SMTP id 0D.E3.58397.05FD4CE5; Wed, 20 May 2020 15:42:08 +0800 (HKT) Received: from CNSHPPEXCH1601.nsn-intra.net (135.251.51.101) by CNSHPPEXCH1604.nsn-intra.net (135.251.51.104) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1847.3; Wed, 20 May 2020 15:42:09 +0800 Received: from CNSHPPEXCH1601.nsn-intra.net ([135.251.51.101]) by CNSHPPEXCH1601.nsn-intra.net ([135.251.51.101]) with mapi id 15.01.1847.007; Wed, 20 May 2020 15:42:09 +0800 From: "Yan, Xiaoping (NSB - CN/Hangzhou)" To: "Zhang, Qi Z" , "Guo, Jia" , "Xing, Beilei" CC: "dev@dpdk.org" , Olivier Matz Thread-Topic: [dpdk-dev] incorrect vlan_tci in rte mbuf Thread-Index: AdYqp2VSjUoJKifNSDyWYgDBzswvoQB+tw6AABL2G2AAHn/cAAASeW0AAAnwpTAAJ8yUcA== Date: Wed, 20 May 2020 07:42:08 +0000 Message-ID: References: <301f18faf1184d7fb3b3958f1dbb1675@nokia-sbell.com> <20200518072405.GG1739@platinum> <30f00b616c0049b9b3f5f26b70b4088f@nokia-sbell.com> <34885cc0-edd9-9889-9799-a7c6d6485edd@intel.com> <1d619997740e4d849e1a35c7f87f3058@nokia-sbell.com> <039ED4275CED7440929022BC67E70611548229FF@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <039ED4275CED7440929022BC67E70611548229FF@SHSMSX103.ccr.corp.intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [135.251.51.115] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprEIsWRmVeSWpSXmKPExsXS/ts4Qzfg/pE4g71fDC26P7QwWbz7tJ3J 4vmfV8wWW5s2MllM39DP5sDqcbH/DqPHrwVLWT0W73nJFMAcxWWTkpqTWZZapG+XwJXR9ugF a8ET34q/36+yNDA+8e5i5OCQEDCR2D4ruouRi0NI4BCTxKYTU1ggnL+MEluf7oZyNjFKTLn8 lamLkZODTcBD4sWJrcwgtohAkcS+0x9ZQSYxA8V72zxBTGEBM4kfv/QgKswlzqx/xw5hh0m0 TfrPBmKzCKhKnJ/6nxXE5hWwk+jbNIkNYtUJJomvCxeCJTgFQiS6O/6ArWUUkJWY9ug+mM0s IC5x68l8MFtCQEBiyZ7zzBC2qMTLx/9YIR5TkujbwARxmabE+l36EJ2KElO6H7JDrBWUODnz CcsERrFZSIbOQuiYhaRjFpKOBYwsqxilnf2CPbyCfT39DEz1/Py9PR11g51cfXz0nP19NzEC o22NxKS5OxibZn7QO8TIxMF4iFGCg1lJhHfCi0NxQrwpiZVVqUX58UWlOanFhxilOViUxHnT 3h+MExJITyxJzU5NLUgtgskycXBKNTBJW4S7HFweb6UTUtl2MEbZj+v6Gw2erSYp89vDvnfO r1xaYdGeNjfOxUpzvVz2lJ5pLr8d+n4vfzHnrYvTTI5E95XOWddXW8RZOb/i3KTw74P4Qq6c C/EmE1ddWlk579ju3q69VyL2T13JxLIg9US/yblTl7/wuvXcbOmovbZ2VX2Kc4TG1cz6H0Hu 0bP7ZR/nbZmzYrZXaF7zveJLl8+HnRE4qrlZ+aoO2/TSzW/vHlzn4s2bYrv4lffmDjnfLebJ 1b8C9I7Vv5Py3XzGyOvLMxt18Tj12/sO/G5araIyp3YHe3T8hvN8j7a92SXu+muxlVDYa+1y kRfysn2ic7PKpVQjfJfFVDOvKKs13aDEUpyRaKjFXFScCABjsUcBJQMAAA== X-Mailman-Approved-At: Sat, 23 May 2020 22:21:23 +0200 Subject: Re: [dpdk-dev] incorrect vlan_tci in rte mbuf 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksDQoNCkkgdHJpZWQgdGhlIGNoYW5nZSwgYW5kIGl0IHNvbHZlZCB0aGUgcHJvYmxlbS4NClNo b3VsZCBJIHN1Ym1pdCB0aGUgY2hhbmdlIHRvIGdpdGh1Yj8gT3IgeW91IHdpbGwgZG8gdGhhdD8N ClRoYW5rIHlvdS4NCg0KQmVzdCByZWdhcmRzDQpZYW4gWGlhb3BpbmcNCg0KLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCkZyb206IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT4g DQpTZW50OiAyMDIw5bm0NeaciDE55pelIDIwOjQyDQpUbzogWWFuLCBYaWFvcGluZyAoTlNCIC0g Q04vSGFuZ3pob3UpIDx4aWFvcGluZy55YW5Abm9raWEtc2JlbGwuY29tPjsgR3VvLCBKaWEgPGpp YS5ndW9AaW50ZWwuY29tPjsgWGluZywgQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+DQpD YzogZGV2QGRwZGsub3JnOyBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb20+DQpT dWJqZWN0OiBSRTogW2RwZGstZGV2XSBpbmNvcnJlY3Qgdmxhbl90Y2kgaW4gcnRlIG1idWYNCg0K SGkgWGlhb3Bpbmc6DQoNCglBY2NvcmRpbmcgdG8gaTQwZSBkYXRhc2hlZXQsIGZvciBwYWNrZXQg d2l0aCBtdWx0aXBsZSBidWZmZXIsIHRoZSBMMlRBRyBzaG91bGQgb25seSBiZSB2YWxpZCBvbiBs YXN0IFJ4IGRlc2NyaXB0b3IuDQoJU28gaXQgaXMgaWRlbnRpY2FsIHdpdGggd2hhdCB5b3Ugb2Jz ZXJ2ZWQgYW5kIGl0IGxvb2tzIGxpa2UgYSBidWcgaW4gdGhlIHZlY3RvciBwYXRoLg0KCUNvdWxk IHlvdSB0cnkgaWYgYmVsb3cgY2hhbmdlIGNhbiBmaXggdGhlIGlzc3VlPw0KDQotLS0gYS9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNfY29tbW9uLmgNCisrKyBiL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9yeHR4X3ZlY19jb21tb24uaA0KQEAgLTM0LDYgKzM0LDcgQEAgcmVhc3NlbWJsZV9w YWNrZXRzKHN0cnVjdCBpNDBlX3J4X3F1ZXVlICpyeHEsIHN0cnVjdCBydGVfbWJ1ZiAqKnJ4X2J1 ZnMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGl0J3MgdGhlIGxhc3QgcGFj a2V0IG9mIHRoZSBzZXQgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQt Pmhhc2ggPSBlbmQtPmhhc2g7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0 LT5vbF9mbGFncyA9IGVuZC0+b2xfZmxhZ3M7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXJ0LT52bGFuX3RjaSA9IGVuZC0+dmxhbl90Y2k7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIHdlIG5lZWQgdG8gc3RyaXAgY3JjIGZvciB0aGUgd2hvbGUgcGFja2V0 ICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LT5wa3RfbGVuIC09IHJ4 cS0+Y3JjX2xlbjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuZC0+ZGF0 YV9sZW4gPiByeHEtPmNyY19sZW4NCg0KVGhhbmtzDQpRaQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IGRldiA8ZGV2LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBP ZiBZYW4sIFhpYW9waW5nIChOU0IgLQ0KPiBDTi9IYW5nemhvdSkNCj4gU2VudDogVHVlc2RheSwg TWF5IDE5LCAyMDIwIDQ6MzIgUE0NCj4gVG86IEd1bywgSmlhIDxqaWEuZ3VvQGludGVsLmNvbT47 IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0KPiBDYzogZGV2QGRwZGsub3Jn OyBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb20+DQo+IFN1YmplY3Q6IFJlOiBb ZHBkay1kZXZdIGluY29ycmVjdCB2bGFuX3RjaSBpbiBydGUgbWJ1Zg0KPiANCj4gSGksDQo+IA0K PiBJIHRyaWVkIHRvIHVzZSBnZGIgdG8gcHJpbnQgdGhlIHJ4IGRlc2NyaXB0b3IsIGFuZCBpdCB0 dXJuZWQgb3V0IHRoYXQgDQo+IG9ubHkgdGhlIHJ4ZCBmb3IgdGhlIGxhc3Qgc2VnbWVudCBoYXMg Y29ycmVjdCBsMnRhZzEgdmFsdWUuDQo+IFRlc3Qgc3RlcDogcGluZyB4eC54eC54eC54eCAtcyAy NTAwLCAgIGZyb20gYSB2bGFuIGludGVyZmFjZSB3aXRoIHZsYW4gaWQgMTkwMSwNCj4gTVRVIDkw MDAuICh0aGlzIHdpbGwgc2VuZHMgMSBwYWNrZXQsIGFuZCBuZWVkcyB0d28gbWJ1ZiBzZWdtZW50 cyB0byANCj4gcmVjZWl2ZSwgbGVuZ3RoIG9mIDFzdCBtYnVmIHNlZ21lbnQgaXMgMjE3NihtYnVm IHNpemUgb2YgbXkgZHBkayANCj4gYXBwbGljYXRpb24pLCBsZW5ndGggb2YgMm5kIG1idWYgc2Vn bWVudCBpcyAzNjYpDQo+IA0KPiBSeCBkZXNjcmlwdG9yIHByaW50ZWQgd2l0aCBnZGI6DQo+IEJy ZWFrcG9pbnQgMiBhdCAweDdmZmZmNWVmYTRiYjogZmlsZQ0KPiAvdXNyL3NyYy9kZWJ1Zy9kcGRr LTE4LjExLjEtMi5ub2s2LndmMzEueDg2XzY0L3BhY2thZ2UvZHBkay9kcGRrLTE4LjENCj4gMS9k cml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNfYXZ4Mi5jLCBsaW5lIDQ5Ni4NCj4gKGdkYikg cHJpbnQgKihyeHEtPnJ4X3JpbmcgKyByeHEtPnJ4X3RhaWwrMSkNCj4gJDQgPSB7cmVhZCA9IHtw a3RfYWRkciA9IDE0ODU4NjE1NTg3MzE5OTA2MzA0LCBoZHJfYWRkciA9IA0KPiA1OTgxNjQzOTAy OTM1MTcsIHJzdmQxID0gMCwNCj4gICAgIHJzdmQyID0gMH0sIHdiID0ge3F3b3JkMCA9IHtsb19k d29yZCA9IHttaXJyX2Zjb2UgPSANCj4ge21pcnJvcmluZ19zdGF0dXMgPSAwLA0KPiAgICAgICAg ICAgZmNvZV9jdHhfaWQgPSAwfSwgbDJ0YWcxID0gNzN9LCBoaV9kd29yZCA9IHtyc3MgPSAzNDU5 NTQxMDMxLA0KPiAgICAgICAgIGZjb2VfcGFyYW0gPSAzNDU5NTQxMDMxLCBmZF9pZCA9IDM0NTk1 NDEwMzF9fSwgcXdvcmQxID0gew0KPiAgICAgICBzdGF0dXNfZXJyb3JfbGVuID0gNTk4MTY0Mzkw MjkzNTE3fSwgcXdvcmQyID0ge2V4dF9zdGF0dXMgPSAwLCANCj4gcnN2ZCA9IDAsDQo+ICAgICAg IGwydGFnMl8xID0gMCwgbDJ0YWcyXzIgPSAwfSwgcXdvcmQzID0ge2xvX2R3b3JkID0ge2ZsZXhf Ynl0ZXNfbG8gPSAwLA0KPiAgICAgICAgIHBlX3N0YXR1cyA9IDB9LCBoaV9kd29yZCA9IHtmbGV4 X2J5dGVzX2hpID0gMCwgZmRfaWQgPSAwfX19fQ0KPiAoZ2RiKSBwcmludCAqKHJ4cS0+cnhfcmlu ZyArIHJ4cS0+cnhfdGFpbCsyKQ0KPiAkNSA9IHtyZWFkID0ge3BrdF9hZGRyID0gMTQ4NTg2MTU1 ODc0Mzk3MDYxMTIsIGhkcl9hZGRyID0gDQo+IDEwMDYzNTM3ODcyNDg3OSwgcnN2ZDEgPSAwLA0K PiAgICAgcnN2ZDIgPSAwfSwgd2IgPSB7cXdvcmQwID0ge2xvX2R3b3JkID0ge21pcnJfZmNvZSA9 IA0KPiB7bWlycm9yaW5nX3N0YXR1cyA9IDAsDQo+ICAgICAgICAgICBmY29lX2N0eF9pZCA9IDB9 LCBsMnRhZzEgPSAxOTAxfSwgaGlfZHdvcmQgPSB7cnNzID0gMzQ1OTU0MTAzMSwNCj4gICAgICAg ICBmY29lX3BhcmFtID0gMzQ1OTU0MTAzMSwgZmRfaWQgPSAzNDU5NTQxMDMxfX0sIHF3b3JkMSA9 IHsNCj4gICAgICAgc3RhdHVzX2Vycm9yX2xlbiA9IDEwMDYzNTM3ODcyNDg3OX0sIHF3b3JkMiA9 IHtleHRfc3RhdHVzID0gMCwgDQo+IHJzdmQgPSAwLA0KPiAgICAgICBsMnRhZzJfMSA9IDAsIGwy dGFnMl8yID0gMH0sIHF3b3JkMyA9IHtsb19kd29yZCA9IHtmbGV4X2J5dGVzX2xvID0gMCwNCj4g ICAgICAgICBwZV9zdGF0dXMgPSAwfSwgaGlfZHdvcmQgPSB7ZmxleF9ieXRlc19oaSA9IDAsIGZk X2lkID0gMH19fX0NCj4gDQo+IFdpdGggZm9ybXVsYToJCWxlbmd0aCA9IChxd29yZDEgJg0KPiBJ NDBFX1JYRF9RVzFfTEVOR1RIX1BCVUZfTUFTSykgPj4NCj4gSTQwRV9SWERfUVcxX0xFTkdUSF9Q QlVGX1NISUZUOyAgKHF3b3JkMSBpcyBzdGF0dXNfZXJyb3JfbGVuIGluIGdkYg0KPiBwcmludG91 dCkNCj4gSSBjYW4gZ2V0IGxlbmd0aCBvZiBmaXJzdCBzZWdtZW50KHJ4cS0+cnhfcmluZyArIHJ4 cS0+cnhfdGFpbCsxKSBpcyANCj4gMjE3NiwgYW5kIGxlbmd0aCBvZiBzZWNvbmQgc2VnbWVudChy eHEtPnJ4X3JpbmcgKyByeHEtPnJ4X3RhaWwrMikgaXMgDQo+IDM2Niwgd2hpY2ggcHJvdmVzIHRo ZXkgYXJlIHRoZSBtYnVmIHNlZ21lbnRzIHRvIHJlY2VpdmUuDQo+IEhvd2V2ZXIgd2UgY2FuIHNl ZSB0aGUgbDJ0YWcxIG9mIGZpcnN0IHNlZ21lbnQgaXMgNzMoaW52YWxpZCksIGwydGFnMSANCj4g b2Ygc2Vjb25kIHNlZ21lbnQgaXMgMTkwMSh2YWxpZCkuDQo+IA0KPiBJdCBtZWFucyBlaXRoZXIg SFcgc2hvdWxkIGJlIG1vZGlmaWVkIHRvIGZpbGwgbDJ0YWcxIGNvcnJlY3RseSBmb3IgDQo+IGVh Y2ggZXZlcnkgc2VnbWVudCwgb3IgX3JlY3ZfcmF3X3BrdHNfdmVjX2F2eDIgc2hvdWxkIGJlIG1v ZGlmaWVkIHRvIA0KPiByZWFkIGwydGFnMSBvZiBsYXN0IHNlZ21lbnQ/DQo+IFBTOiBpdCBzZWVt cyBpNDBlX3JlY3Zfc2NhdHRlcmVkX3BrdHMgdXNlIHRoZSBsMnRhZzEgb2YgbGFzdCByeGQgKHRv IA0KPiBzZXQgdmxhbiB0Y2kgb2YgZmlyc3Qgc2VnbWVudCksIGRvbid0IGtub3cgaXQgaXMgYnkg YWNjaWRlbnQoY29udmVuaWVuY2UpIG9yIGJ5IHB1cnBvc2UuDQo+IA0KPiBEbyB5b3UgYWdyZWUg b24gbXkgYW5hbHlzaXM/DQo+IElmIG15IGFuYWx5c2lzIGlzIGNvcnJlY3QsIGlzIGl0IHBvc3Np YmxlIGZvciB5b3UgdG8gaGVscCBtYWtlIGEgc3cgDQo+IHBhdGNoLCBiZWNhdXNlIEknbSBub3Qg ZmFtaWxpYXIgd2l0aCB0aGlzIHZlYyBhdnggY29kZS4NCj4gDQo+IEJlc3QgcmVnYXJkcw0KPiBZ YW4gWGlhb3BpbmcNCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEpl ZmYgR3VvIDxqaWEuZ3VvQGludGVsLmNvbT4NCj4gU2VudDogMjAyMOW5tDXmnIgxOeaXpSAxNTow MA0KPiBUbzogWWFuLCBYaWFvcGluZyAoTlNCIC0gQ04vSGFuZ3pob3UpIDx4aWFvcGluZy55YW5A bm9raWEtc2JlbGwuY29tPjsgDQo+IGJlaWxlaS54aW5nQGludGVsLmNvbQ0KPiBDYzogZGV2QGRw ZGsub3JnOyBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb20+DQo+IFN1YmplY3Q6 IFJlOiBbZHBkay1kZXZdIGluY29ycmVjdCB2bGFuX3RjaSBpbiBydGUgbWJ1Zg0KPiANCj4gaGks IHhpYW9waW5nDQo+IA0KPiBPbiA1LzE4LzIwMjAgNDozMSBQTSwgWWFuLCBYaWFvcGluZyAoTlNC IC0gQ04vSGFuZ3pob3UpIHdyb3RlOg0KPiA+IEhpIEJlaWxlaSAmIEppYSwNCj4gPg0KPiA+IEkg Z290IHlvdXIgbmFtZSBmcm9tIHRoZSBNQUlOVEFJTkVSUyAgZm9yIEludGVsIGk0MGUuDQo+ID4g Q291bGQgeW91IGhlbHAgdG8gaGF2ZSBhIGxvb2sgYXQgdGhlIGlzc3VlLCBkZXNjcmliZWQgaW4g bXkgcHJldmlvdXMgbWFpbD8NCj4gPg0KPiA+IFRoYW5rIHlvdS4NCj4gPg0KPiA+IEJlc3QgcmVn YXJkcw0KPiA+IFlhbiBYaWFvcGluZw0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiBGcm9tOiBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb20+DQo+ID4g U2VudDogMjAyMOW5tDXmnIgxOOaXpSAxNToyNA0KPiA+IFRvOiBZYW4sIFhpYW9waW5nIChOU0Ig LSBDTi9IYW5nemhvdSkgPHhpYW9waW5nLnlhbkBub2tpYS1zYmVsbC5jb20+DQo+ID4gQ2M6IGRl dkBkcGRrLm9yZw0KPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIGluY29ycmVjdCB2bGFuX3Rj aSBpbiBydGUgbWJ1Zg0KPiA+DQo+ID4gSGksDQo+ID4NCj4gPiBPbiBGcmksIE1heSAxNSwgMjAy MCBhdCAxMToxMjoyN0FNICswMDAwLCBZYW4sIFhpYW9waW5nIChOU0IgLQ0KPiBDTi9IYW5nemhv dSkgd3JvdGU6DQo+ID4+IEhpLA0KPiA+Pg0KPiA+PiBJJ20gdXNpbmcgaTQwZSB2ZiwgZHBkayAx OC4xMSwgeDg2XzY0IENQVSAocnggZnVuY3Rpb24gaW4gdXNlIGlzDQo+ID4+IGk0MGVfcmVjdl9z Y2F0dGVyZWRfcGt0c192ZWNfYXZ4MikNCj4gPj4gV2hlbiBlbmFibGUgaHcgdmxhbiBzdHJpcDoN Cj4gPj4NCj4gPj4gICAgKiAgIElmIHBhY2tldCBmaXQgaW4gb25lIG1idWYgc2VnbWVudCwgdGhl IHZsYW5fdGNpIGZpZWxkIGlzIGNvcnJlY3QNCj4gPj4gICAgKiAgIElmIHBhY2tldHMgYXJlIHN0 b3JlZCBpbiBzZXZlcmFsIG1idWYgc2VnbWVudCwgdGhlIHZsYW5fdGNpIG9mIGxhc3QNCj4gc2Vn bWVudCBpcyBjb3JyZWN0LCB2bGFuX3RjaSBvZiBvdGhlciBzZWdtZW50cyBhcmUgaW52YWxpZA0K PiA+Pg0KPiA+PiBJdCBzZWVtcyBpNDBlX3JlY3Zfc2NhdHRlcmVkX3BrdHMgaGFzIGNvcnJlY3Rs eSBzZXQgdGhlIHZsYW5fdGNpLCANCj4gPj4gYnkgY2FsbGluZyBpNDBlX3J4ZF90b192bGFuX3Rj aShmaXJzdF9zZWcsICZyeGQpOw0KPiA+Pg0KPiA+PiBJcyB0aGlzIGEgYnVnIGluIGk0MGVfcmVj dl9zY2F0dGVyZWRfcGt0c192ZWNfYXZ4Mj8NCj4gPj4gKEkgZGlkbid0IGZpbmQgc2V0dGluZyB2 bGFuX3RjaSBmb3IgZmlyc3Qgc2VnbWVudCwgYnV0IGl0J3MgYSBiaXQgDQo+ID4+IGRpZmZpY3Vs dCBmb3IgbWUgdG8gdW5kZXJzdGFuZCBjb2RlcyBpbiANCj4gPj4gaTQwZV9yZWN2X3NjYXR0ZXJl ZF9wa3RzX3ZlY19hdngyLCBzbyBJJ20gbm90IHF1aXRlIHN1cmUpIEkgY2hlY2tlZCANCj4gPj4g dGhlIGxhdGVzdCBkcGRrIHZlcnNpb24gMjAuMDIgDQo+ID4+IGh0dHA6Ly9seHIuZHBkay5vcmcv ZHBkay9sYXRlc3Qvc291cmNlL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4X3YNCj4gPj4gZWMN Cj4gPj4gXw0KPiA+PiBhdngyLmMjTDc5MQ0KPiA+PiBCdXQgc2VlbXMgbm8gY2hhbmdlIGZvciB0 aGlzLg0KPiA+Pg0KPiA+PiBBbnkgY29tbWVudCBwbGVhc2U/DQo+ID4+IFsuLi5dDQo+ID4gSSBk b24ndCBrbm93IGFib3V0IHRoZSBpNDBlIGRyaXZlciwgYnV0IEkgY2FuIGNvbmZpcm0gdGhhdCB0 aGUgdmxhbiANCj4gPiB0Y2kgZmxhZw0KPiBzaG91bGQgYmUgaW4gdGhlIGZpcnN0IHNlZ21lbnQs IGFuZCBub3QgaW4gdGhlIG5leHQgb25lcy4NCj4gPg0KPiA+IEkgc3VnZ2VzdCB0byBDQyBpNDBl IGRyaXZlciBtYWludGFpbmVycy4NCj4gPg0KPiA+IFJlZ2FyZHMsDQo+ID4gT2xpdmllcg0KPiAN Cj4gDQo+IE9uIG9uZSBoYW5kLCBhcyBPbGl2aWVyIHNhaWQgdGhhdCB2bGFuIHRjaSBmbGFnIHNo b3VsZCBiZSBpbiB0aGUgZmlyc3QgDQo+IHNlZ21lbnQsIGFuZCBvbiB0aGUgb3RoZXIgaGFuZHMs IHZsYW5fdGNpIGRvIHByb2Nlc3MgaW4gIl9yZWN2X3Jhd19wa3RzX3ZlY19hdngyIg0KPiB3aGVu IHVzZSAyNTYgaW5zdGluY3QNCj4gDQo+IHRvIHByb2Nlc3MgdGhlIGRlc2NyaXB0b3Igd2l0aCBt YnVmLMKgIHlvdSBjb3VsZCBjaGVjayBob3cgdG8gcHJvY2VzcyANCj4gdGhlIHZsYW5fZmxhZ3Nf c2h1ZiBhbmQgYmxlbmQgaXQgaW50byB0aGUgbWJ1Zi4NCg0K