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 ADD95A00C3; Thu, 14 May 2020 02:55:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D916F1D64C; Thu, 14 May 2020 02:55:22 +0200 (CEST) Received: from huawei.com (szxga03-in.huawei.com [45.249.212.189]) by dpdk.org (Postfix) with ESMTP id 02B181D64C; Thu, 14 May 2020 02:55:19 +0200 (CEST) Received: from DGGEML401-HUB.china.huawei.com (unknown [172.30.72.53]) by Forcepoint Email with ESMTP id 1FE1F93FD447AD26D000; Thu, 14 May 2020 08:55:18 +0800 (CST) Received: from DGGEML421-HUB.china.huawei.com (10.1.199.38) by DGGEML401-HUB.china.huawei.com (10.3.17.32) with Microsoft SMTP Server (TLS) id 14.3.487.0; Thu, 14 May 2020 08:55:17 +0800 Received: from DGGEML529-MBX.china.huawei.com ([169.254.6.116]) by dggeml421-hub.china.huawei.com ([10.1.199.38]) with mapi id 14.03.0487.000; Thu, 14 May 2020 08:55:13 +0800 From: "Lilijun (Jerry)" To: Honnappa Nagarahalli , "'dev@dpdk.org'" CC: wangyunjian , xudingke , "'stable@dpdk.org'" , nd , "yipeng1.wang@intel.com" , nd , nd Thread-Topic: [dpdk-dev] [PATCH] lib/librte_hash: add rte_hash_del_key_fixed without compact Thread-Index: AdYcO135HJmvjYM1Q2CGkNRR8o1T1wBYjpkQAAj59vABXEemcAADnGyAAYa4j2AACxJLwA== Date: Thu, 14 May 2020 00:55:12 +0000 Message-ID: <40280F65B1B0B44E8089ED31C01616EBA49C804F@dggeml529-mbx.china.huawei.com> References: <40280F65B1B0B44E8089ED31C01616EBA49921F2@dggeml529-mbx.china.huawei.com> <40280F65B1B0B44E8089ED31C01616EBA4997CD9@dggeml529-mbx.china.huawei.com> <40280F65B1B0B44E8089ED31C01616EBA49A19CE@dggeml529-mbx.china.huawei.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.173.251.98] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Subject: [dpdk-dev] =?utf-8?b?562U5aSNOiAgW1BBVENIXSBsaWIvbGlicnRlX2hhc2g6?= =?utf-8?q?_add_rte=5Fhash=5Fdel=5Fkey=5Ffixed_without_compact?= 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" DQoNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEhvbm5hcHBhIE5hZ2Fy YWhhbGxpIFttYWlsdG86SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbV0NCj4g5Y+R6YCB5pe2 6Ze0OiAyMDIw5bm0NeaciDE05pelIDM6MjcNCj4g5pS25Lu25Lq6OiBMaWxpanVuIChKZXJyeSkg PGplcnJ5LmxpbGlqdW5AaHVhd2VpLmNvbT47ICdkZXZAZHBkay5vcmcnDQo+IDxkZXZAZHBkay5v cmc+DQo+IOaKhOmAgTogd2FuZ3l1bmppYW4gPHdhbmd5dW5qaWFuQGh1YXdlaS5jb20+OyB4dWRp bmdrZQ0KPiA8eHVkaW5na2VAaHVhd2VpLmNvbT47ICdzdGFibGVAZHBkay5vcmcnIDxzdGFibGVA ZHBkay5vcmc+OyBuZA0KPiA8bmRAYXJtLmNvbT47IHlpcGVuZzEud2FuZ0BpbnRlbC5jb207IG5k IDxuZEBhcm0uY29tPjsgSG9ubmFwcGENCj4gTmFnYXJhaGFsbGkgPEhvbm5hcHBhLk5hZ2FyYWhh bGxpQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4g5Li76aKYOiBSRTogW2RwZGstZGV2XSBb UEFUQ0hdIGxpYi9saWJydGVfaGFzaDogYWRkIHJ0ZV9oYXNoX2RlbF9rZXlfZml4ZWQNCj4gd2l0 aG91dCBjb21wYWN0DQo+IA0KPiA+ID4gPHNuaXA+DQo+ID4gPg0KPiA+ID4gQWRkaW5nIFlpcGVu ZywgbWFpbnRhaW5lciBmb3IgaGFzaCBsaWJyYXJ5DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBU aGFua3MgZm9yIHlvdXIgcmVwbHkuDQo+ID4gPiA+DQo+ID4gPiA+IFVzaW5nIHJ0ZV9oYXNoIGl0 ZXJhdGUgYW5kIGRlbGV0ZSBrZXlzIGlzIHRvIGZyZWUgdGhlIHJlbGF0ZWQNCj4gPiA+ID4gZGF0 YSdzDQo+ID4gbWVtb3J5Lg0KPiA+ID4gPiBUaGVyZSBhcmUgdHdvIHJlYXNvbnMgd2h5IHJ0ZV9o YXNoX3Jlc2V0KCkgaXMgbm90IHByb3Blcmx5Og0KPiA+ID4gPiAxKSAgdGhlIHJlc2V0IGZ1bmN0 aW9uIGp1c3QgY2xlYXIgYWxsIGtleXMsIHRoZSBrZXkncyByZWxhdGVkIGRhdGEgYXJlDQo+IGxl YWtlZC4NCj4gPiA+IFRoYXQgaXMgYSBnb29kIHBvaW50LiBJIHRoaW5rIHRoaXMgc2hvdWxkIGJl IGRvY3VtZW50ZWQgaW4gdGhlIEFQSS4NCj4gPiA+DQo+ID4gPiA+IDIpICBJbiBzb21lIGNhc2Vz LCBJIGRvbid0IG5lZWQgZGVsZXRlIGFsbCBrZXlzLiBKdXN0IHNvbWUNCj4gPiA+ID4gc2VsZWN0 ZWQga2V5cyBhbmQgZGF0YSBhcmUgZGVsZXRlZCBhbmQgcmVsZWFzZWQuDQo+ID4gPiBJIHVuZGVy c3RhbmQgdGhlIHByb2JsZW0geW91IGhhdmUgcG9pbnRlZCBvdXQgYW5kIHVuZGVyc3RhbmQgaG93 IHRvDQo+ID4gPiByZXByb2R1Y2UgaXQuIEJ1dCwgdGhlIHVzZSBjYXNlIGlzIG5vdCBjbGVhciB0 byBtZS4gQ2FuIHlvdSBwbGVhc2UNCj4gPiA+IGV4cGxhaW4gdGhlIHVzZSBjYXNlPw0KPiA+IFtM aWxpanVuIChKZXJyeSldDQo+ID4NCj4gPiBBcyB5b3Uga25vdywgdGhlIGRwZGsgcnRlX2hhc2gg dXNlIGEgZml4ZWQgc2l6ZSB0YWJsZSB0byBzdG9yZSBhbGwNCj4ga2V5cy9kYXRhcy4NCj4gPiBU aGUgbWVtb3J5IHVzZWQgYnkgaGFzaCB0YWJsZSBpcyByZWxhdGVkIHdpdGggdGhpcyBmaXhlZCBz aXplLg0KPiA+IEluIG15IGNhc2UsIG5vcm1hbGx5IHRoZSBjb3VudCBvZiBrZXlzIGlzIGFib3V0 IDEwMCwwMDAgYnV0IHNvbWV0aW1lcw0KPiA+IHRoZSBjb3VudCBtYXkgYnVyc3QgdXAgdG8gMzAs MDAwLDAwMC4NCj4gPiBJbiBvcmRlciB0byBzYXZlIG1lbW9yeSB1c2FnZSwgSSBjcmVhdGUgYSBz bWFsbCBoYXNoIHRhYmxlIHdpdGgNCj4gPiAxMDAsMDAwIHNpemUgYW5kIHJlcGxhY2UgdG8gYSBi aWdnZXIgb25lIHdpdGggMzAsMDAwLDAwMCBzaXplIHdoZW4NCj4gPiB0aGVyZSBhcmUgbW9yZSBr ZXlzIHRvIGJlIHN0b3JlZC4gQWxzbyB3aGVuIHRoZSBrZXkncyBjb3VudCByZWR1Y2VkIHRvDQo+ ID4gbGVzcyB0aGFuIDEwMCwwMDAsIEkgcmVwbGFjZSB0aGUgaGFzaCB0YWJsZSB3aXRoIGEgc21h bGwgb25lIHRvIHNhdmUgdGhlDQo+IG1lbW9yeS4NCj4gVGhhbmsgeW91IGZvciBleHBsYWluaW5n IHRoaXMuIFdoYXQgaGFwcGVucyB0byB0aGUgcmVhZGVyIHdoZW4geW91IGFyZQ0KPiBkZWxldGlu ZyBmcm9tIG9sZCB0YWJsZSBhbmQgaW5zZXJ0aW5nIGluIHRoZSBuZXcgb25lPyBXaGljaCB0YWJs ZSBkb2VzIHRoZQ0KPiByZWFkZXIgbG9va3VwIGZyb20/DQpbTGlsaWp1biAoSmVycnkpXSANCkxv b2t1cCBmdW5jdGlvbnMgd29ya3Mgd2VsbCBhdCBhbnkgdGltZS4gVGhlIHByb2JsZW0gaXMgaW4g cnRlX2hhc2hfaXRlcmF0ZSgpIGZ1bmN0aW9ucy4gU29tZSBleGFtcGxlIGNvZGVzIGxpa2UgdGhp czoNCipuZXh0ID0gMDsNCi8vSWYgcmggaGFzIDEwMDAwIGVudHJpZXMgYXQgZmlyc3QuDQp3aGls ZSAoKGlkeCA9IHJ0ZV9oYXNoX2l0ZXJhdGUocmgsIGtleSwgZGF0YSwgbmV4dCkpID49IDApIHsN CiAgICAgICAgICAgICAgcnRlX2hhc2hfZGVsX2tleShyaCwga2V5KTsgIC8vQlVUIEhFUkUgbWF5 YmUgb25seSBkZWxldGUgOTk5MCBrZXlzICEhIQ0KICAgICAgICAgICAgICBmcmVlKCpkYXRhKTsN Cn0NCi8vVGhlcmUgYXJlIHN0aWxsIDEwIGtleS9kYXRhcyBub3QgZnJlZWQgYW5kIHdpbGwgYmUg bGVha2VkLg0KcnRlX2hhc2hfZnJlZShyaCk7DQo+IA0KPiA+DQo+ID4gPg0KPiA+ID4gPg0KPiA+ ID4gPiBKZXJyeS4NCj4gPiA+ID4NCj4gPiA+ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiA+ ID4gPiDlj5Hku7bkuro6IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIFttYWlsdG86SG9ubmFwcGEuTmFn YXJhaGFsbGlAYXJtLmNvbV0NCj4gPiA+ID4g5Y+R6YCB5pe26Ze0OiAyMDIw5bm0NOaciDI55pel IDQ6NDYNCj4gPiA+ID4g5pS25Lu25Lq6OiBMaWxpanVuIChKZXJyeSkgPGplcnJ5LmxpbGlqdW5A aHVhd2VpLmNvbT47ICdkZXZAZHBkay5vcmcnDQo+ID4gPiA+IDxkZXZAZHBkay5vcmc+DQo+ID4g PiA+IOaKhOmAgTogd2FuZ3l1bmppYW4gPHdhbmd5dW5qaWFuQGh1YXdlaS5jb20+OyB4dWRpbmdr ZQ0KPiA+ID4gPiA8eHVkaW5na2VAaHVhd2VpLmNvbT47ICdzdGFibGVAZHBkay5vcmcnIDxzdGFi bGVAZHBkay5vcmc+OyBuZA0KPiA+ID4gPiA8bmRAYXJtLmNvbT47IEhvbm5hcHBhIE5hZ2FyYWhh bGxpDQo+ID4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+Ow0KPiA+ID4gbmQNCj4gPiA+ ID4gPG5kQGFybS5jb20+DQo+ID4gPiA+IOS4u+mimDogUkU6IFtkcGRrLWRldl0gW1BBVENIXSBs aWIvbGlicnRlX2hhc2g6IGFkZA0KPiA+ID4gPiBydGVfaGFzaF9kZWxfa2V5X2ZpeGVkIHdpdGhv dXQgY29tcGFjdA0KPiA+ID4gPg0KPiA+ID4gPiA8c25pcD4NCj4gPiA+ID4NCj4gPiA+ID4gSGkg SmVycnksDQo+ID4gPiA+IAlGZXcgcXVlc3Rpb25zIGlubGluZS4NCj4gPiA+ID4NCj4gPiA+ID4g PiBTdWJqZWN0OiBbZHBkay1kZXZdIFtQQVRDSF0gbGliL2xpYnJ0ZV9oYXNoOiBhZGQNCj4gPiA+ ID4gPiBydGVfaGFzaF9kZWxfa2V5X2ZpeGVkIHdpdGhvdXQgY29tcGFjdA0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gVGhlIGtleXMgaWR4IGFyZSBzdG9yZWQgaW4gcnRlX2hhc2ggbWFpbiBidWNrZXQg a2V5IHNsb3RzIGFuZA0KPiA+ID4gPiA+IGV4dGVuZCBidWNrZXQga2V5IHN0b3RzLg0KPiA+ID4g PiA+IFdlIGl0ZXJhdGUgZXZlcnkgbm8gZW1wdHkgS2V5cyBpbiBoLT5idWNrZXRzIGFuZCBoLT5i dWNrZXRzX2V4dA0KPiA+ID4gPiA+IGZyb20gc3RhcnQgdG8gbGFzdC4NCj4gPiA+ID4gPiBXaGVu IGRlbGV0aW5nIGtleXMgdGhlIGZ1bmN0aW9uIF9fcnRlX2hhc2hfY29tcGFjdF9sbCgpIG1heSBt b3ZlDQo+ID4gPiA+ID4gbGFzdF9ia3QncyBrZXkgdG8gcHJldmlvdXMgYnVja2V0IGluIG9yZGVy IHRvIGNvbXBhY3QgZXh0ZW5kIGJ1Y2tldA0KPiBsaXN0Lg0KPiA+ID4gPiA+IElmIHRoZSBwcmV2 aW91cyBidWNrZXQgaGFzIGJlZW4gaXRlcmF0ZWQsIHRoZSBtb3ZlZCBrZXkgbWF5IGJlDQo+ID4g PiA+ID4gbWlzc2VkIGZvciB1c2Vycy4NCj4gPiA+ID4gPiBUaGVuIHRob3NlIG1pc3NlZCBrZXlz IGFyZSBsZWFrZWQgYW5kIHJ0ZV9oYXNoIHRhYmxlIGNhbid0IGJlDQo+IGNsZWFudXAuDQo+ID4g PiA+ID4gU28gd2UgYWRkIGEgbmV3IEFQSSBydGVfaGFzaF9kZWxfa2V5X2ZpeGVkKCkgdXNlZCBp biBpdGVyYXRlDQo+ID4gPiA+ID4gbG9vcCB0byBhdm9pZCB0aGlzIGJ1Z3MuDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiAgbGliL2xpYnJ0ZV9oYXNoL3J0ZV9jdWNrb29faGFz aC5jICAgIHwgMTkgKysrKysrKysrKysrKystLS0tLQ0KPiA+ID4gPiA+ICBsaWIvbGlicnRlX2hh c2gvcnRlX2hhc2guaCAgICAgICAgICAgfCAgNSArKysrKw0KPiA+ID4gPiA+ICBsaWIvbGlicnRl X2hhc2gvcnRlX2hhc2hfdmVyc2lvbi5tYXAgfCAgMSArDQo+ID4gPiA+ID4gIDMgZmlsZXMgY2hh bmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPg0KPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2hhc2gvcnRlX2N1Y2tvb19oYXNoLmMNCj4gPiA+ ID4gPiBiL2xpYi9saWJydGVfaGFzaC9ydGVfY3Vja29vX2hhc2guYw0KPiA+ID4gPiA+IGluZGV4 IGI1MjYzMGIuLjJkYTNjMWQgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9oYXNo L3J0ZV9jdWNrb29faGFzaC5jDQo+ID4gPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9j dWNrb29faGFzaC5jDQo+ID4gPiA+ID4gQEAgLTE1MjMsNyArMTUyMyw3IEBAIHNlYXJjaF9hbmRf cmVtb3ZlKGNvbnN0IHN0cnVjdCBydGVfaGFzaA0KPiA+ID4gPiA+ICpoLCBjb25zdCB2b2lkICpr ZXksDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgc3RhdGljIGlubGluZSBpbnQzMl90DQo+ID4gPiA+ ID4gIF9fcnRlX2hhc2hfZGVsX2tleV93aXRoX2hhc2goY29uc3Qgc3RydWN0IHJ0ZV9oYXNoICpo LCBjb25zdA0KPiA+ID4gPiA+IHZvaWQNCj4gPiA+ICprZXksDQo+ID4gPiA+ID4gLQkJCQkJCWhh c2hfc2lnX3Qgc2lnKQ0KPiA+ID4gPiA+ICsJCQkJCQloYXNoX3NpZ190IHNpZywNCj4gdWludDhf dA0KPiA+ID4gPiA+IGNvbXBhY3QpDQo+ID4gPiA+ID4gIHsNCj4gPiA+ID4gPiAgCXVpbnQzMl90 IHByaW1fYnVja2V0X2lkeCwgc2VjX2J1Y2tldF9pZHg7DQo+ID4gPiA+ID4gIAlzdHJ1Y3QgcnRl X2hhc2hfYnVja2V0ICpwcmltX2JrdCwgKnNlY19ia3QsICpwcmV2X2JrdCwNCj4gPiA+ID4gPiAq bGFzdF9ia3Q7DQo+ID4gPiA+IEBADQo+ID4gPiA+ID4gLTE1NDEsNyArMTU0MSw4IEBAIF9fcnRl X2hhc2hfZGVsX2tleV93aXRoX2hhc2goY29uc3Qgc3RydWN0DQo+ID4gPiA+ID4gcnRlX2hhc2gg KmgsIGNvbnN0IHZvaWQgKmtleSwNCj4gPiA+ID4gPiAgCS8qIGxvb2sgZm9yIGtleSBpbiBwcmlt YXJ5IGJ1Y2tldCAqLw0KPiA+ID4gPiA+ICAJcmV0ID0gc2VhcmNoX2FuZF9yZW1vdmUoaCwga2V5 LCBwcmltX2JrdCwgc2hvcnRfc2lnLCAmcG9zKTsNCj4gPiA+ID4gPiAgCWlmIChyZXQgIT0gLTEp IHsNCj4gPiA+ID4gPiAtCQlfX3J0ZV9oYXNoX2NvbXBhY3RfbGwoaCwgcHJpbV9ia3QsIHBvcyk7 DQo+ID4gPiA+ID4gKwkJaWYgKGNvbXBhY3QpDQo+ID4gPiA+ID4gKwkJCV9fcnRlX2hhc2hfY29t cGFjdF9sbChoLCBwcmltX2JrdCwgcG9zKTsNCj4gPiA+ID4gPiAgCQlsYXN0X2JrdCA9IHByaW1f Ymt0LT5uZXh0Ow0KPiA+ID4gPiA+ICAJCXByZXZfYmt0ID0gcHJpbV9ia3Q7DQo+ID4gPiA+ID4g IAkJZ290byByZXR1cm5fYmt0Ow0KPiA+ID4gPiA+IEBAIC0xNTUzLDcgKzE1NTQsOCBAQCBfX3J0 ZV9oYXNoX2RlbF9rZXlfd2l0aF9oYXNoKGNvbnN0DQo+IHN0cnVjdA0KPiA+ID4gPiA+IHJ0ZV9o YXNoICpoLCBjb25zdCB2b2lkICprZXksDQo+ID4gPiA+ID4gIAlGT1JfRUFDSF9CVUNLRVQoY3Vy X2JrdCwgc2VjX2JrdCkgew0KPiA+ID4gPiA+ICAJCXJldCA9IHNlYXJjaF9hbmRfcmVtb3ZlKGgs IGtleSwgY3VyX2JrdCwgc2hvcnRfc2lnLA0KPiAmcG9zKTsNCj4gPiA+ID4gPiAgCQlpZiAocmV0 ICE9IC0xKSB7DQo+ID4gPiA+ID4gLQkJCV9fcnRlX2hhc2hfY29tcGFjdF9sbChoLCBjdXJfYmt0 LCBwb3MpOw0KPiA+ID4gPiA+ICsJCQlpZiAoY29tcGFjdCkNCj4gPiA+ID4gPiArCQkJCV9fcnRl X2hhc2hfY29tcGFjdF9sbChoLCBjdXJfYmt0LA0KPiBwb3MpOw0KPiA+ID4gPiA+ICAJCQlsYXN0 X2JrdCA9IHNlY19ia3QtPm5leHQ7DQo+ID4gPiA+ID4gIAkJCXByZXZfYmt0ID0gc2VjX2JrdDsN Cj4gPiA+ID4gPiAgCQkJZ290byByZXR1cm5fYmt0Ow0KPiA+ID4gPiA+IEBAIC0xNjA3LDE0ICsx NjA5LDIxIEBAIHJ0ZV9oYXNoX2RlbF9rZXlfd2l0aF9oYXNoKGNvbnN0DQo+IHN0cnVjdA0KPiA+ ID4gPiA+IHJ0ZV9oYXNoICpoLA0KPiA+ID4gPiA+ICAJCQljb25zdCB2b2lkICprZXksIGhhc2hf c2lnX3Qgc2lnKSAgew0KPiA+ID4gPiA+ICAJUkVUVVJOX0lGX1RSVUUoKChoID09IE5VTEwpIHx8 IChrZXkgPT0gTlVMTCkpLCAtRUlOVkFMKTsNCj4gPiA+ID4gPiAtCXJldHVybiBfX3J0ZV9oYXNo X2RlbF9rZXlfd2l0aF9oYXNoKGgsIGtleSwgc2lnKTsNCj4gPiA+ID4gPiArCXJldHVybiBfX3J0 ZV9oYXNoX2RlbF9rZXlfd2l0aF9oYXNoKGgsIGtleSwgc2lnLCAxKTsNCj4gPiA+ID4gPiAgfQ0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gIGludDMyX3QNCj4gPiA+ID4gPiAgcnRlX2hhc2hfZGVsX2tl eShjb25zdCBzdHJ1Y3QgcnRlX2hhc2ggKmgsIGNvbnN0IHZvaWQgKmtleSkgIHsNCj4gPiA+ID4g PiAgCVJFVFVSTl9JRl9UUlVFKCgoaCA9PSBOVUxMKSB8fCAoa2V5ID09IE5VTEwpKSwgLUVJTlZB TCk7DQo+ID4gPiA+ID4gLQlyZXR1cm4gX19ydGVfaGFzaF9kZWxfa2V5X3dpdGhfaGFzaChoLCBr ZXksDQo+IHJ0ZV9oYXNoX2hhc2goaCwNCj4gPiA+IGtleSkpOw0KPiA+ID4gPiA+ICsJcmV0dXJu IF9fcnRlX2hhc2hfZGVsX2tleV93aXRoX2hhc2goaCwga2V5LA0KPiBydGVfaGFzaF9oYXNoKGgs DQo+ID4gPiBrZXkpLA0KPiA+ID4gPiA+IDEpOw0KPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ICtpbnQzMl90DQo+ID4gPiA+ID4gK3J0ZV9oYXNoX2RlbF9rZXlfZml4ZWQoY29u c3Qgc3RydWN0IHJ0ZV9oYXNoICpoLCBjb25zdCB2b2lkICprZXkpDQo+IHsNCj4gPiA+ID4gPiAr CVJFVFVSTl9JRl9UUlVFKCgoaCA9PSBOVUxMKSB8fCAoa2V5ID09IE5VTEwpKSwgLUVJTlZBTCk7 DQo+ID4gPiA+ID4gKwlyZXR1cm4gX19ydGVfaGFzaF9kZWxfa2V5X3dpdGhfaGFzaChoLCBrZXks DQo+IHJ0ZV9oYXNoX2hhc2goaCwNCj4gPiA+IGtleSksDQo+ID4gPiA+ID4gMCk7DQo+ID4gPiA+ ID4gIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICBpbnQNCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV9oYXNoL3J0ZV9oYXNoLmgNCj4gPiA+ID4gPiBiL2xpYi9saWJydGVfaGFzaC9y dGVfaGFzaC5oIGluZGV4IGVjZWIzNjUuLjliNzFkOGEgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEv bGliL2xpYnJ0ZV9oYXNoL3J0ZV9oYXNoLmgNCj4gPiA+ID4gPiArKysgYi9saWIvbGlicnRlX2hh c2gvcnRlX2hhc2guaA0KPiA+ID4gPiA+IEBAIC0yOTcsNiArMjk3LDExIEBAIHJ0ZV9oYXNoX2Fk ZF9rZXlfd2l0aF9oYXNoKGNvbnN0IHN0cnVjdA0KPiA+ID4gPiBydGVfaGFzaA0KPiA+ID4gPiA+ ICpoLCBjb25zdCB2b2lkICprZXksIGhhc2hfc2lnX3QgIGludDMyX3QgIHJ0ZV9oYXNoX2RlbF9r ZXkoY29uc3QNCj4gPiA+ID4gPiBzdHJ1Y3QgcnRlX2hhc2ggKmgsIGNvbnN0IHZvaWQgKmtleSk7 DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKy8qIGZvciB3aXRob3V0IGNvbXBh Y3QgKi8NCj4gPiA+ID4gPiAraW50MzJfdA0KPiA+ID4gPiA+ICtydGVfaGFzaF9kZWxfa2V5X2Zp eGVkKGNvbnN0IHN0cnVjdCBydGVfaGFzaCAqaCwgY29uc3Qgdm9pZA0KPiA+ID4gPiA+ICsqa2V5 KTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gIC8qKg0KPiA+ID4gPiA+ICAgKiBSZW1vdmUgYSBr ZXkgZnJvbSBhbiBleGlzdGluZyBoYXNoIHRhYmxlLg0KPiA+ID4gPiA+ICAgKiBUaGlzIG9wZXJh dGlvbiBpcyBub3QgbXVsdGktdGhyZWFkIHNhZmUgZGlmZiAtLWdpdA0KPiA+ID4gPiA+IGEvbGli L2xpYnJ0ZV9oYXNoL3J0ZV9oYXNoX3ZlcnNpb24ubWFwDQo+ID4gPiA+ID4gYi9saWIvbGlicnRl X2hhc2gvcnRlX2hhc2hfdmVyc2lvbi5tYXANCj4gPiA+ID4gPiBpbmRleCAzMGNjMDg2Li4xOTQx ZDE3IDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBhL2xpYi9saWJydGVfaGFzaC9ydGVfaGFzaF92ZXJz aW9uLm1hcA0KPiA+ID4gPiA+ICsrKyBiL2xpYi9saWJydGVfaGFzaC9ydGVfaGFzaF92ZXJzaW9u Lm1hcA0KPiA+ID4gPiA+IEBAIC0xMSw2ICsxMSw3IEBAIERQREtfMjAuMCB7DQo+ID4gPiA+ID4g IAlydGVfaGFzaF9jb3VudDsNCj4gPiA+ID4gPiAgCXJ0ZV9oYXNoX2NyZWF0ZTsNCj4gPiA+ID4g PiAgCXJ0ZV9oYXNoX2RlbF9rZXk7DQo+ID4gPiA+ID4gKwlydGVfaGFzaF9kZWxfa2V5X2ZpeGVk Ow0KPiA+ID4gPiA+ICAJcnRlX2hhc2hfZGVsX2tleV93aXRoX2hhc2g7DQo+ID4gPiA+ID4gIAly dGVfaGFzaF9maW5kX2V4aXN0aW5nOw0KPiA+ID4gPiA+ICAJcnRlX2hhc2hfZnJlZTsNCj4gPiA+ ID4gPiAtLQ0KPiA+ID4gPiA+IDIuMTkuMQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS3pgq7k u7bljp/ku7YtLS0tLQ0KPiA+ID4gPiA+IOWPkeS7tuS6ujogTGlsaWp1biAoSmVycnkpDQo+ID4g PiA+ID4g5Y+R6YCB5pe26Ze0OiAyMDIw5bm0NOaciDE45pelIDE4OjAwDQo+ID4gPiA+ID4g5pS2 5Lu25Lq6OiAnZGV2QGRwZGsub3JnJyA8ZGV2QGRwZGsub3JnPjsgJ3N0YWJsZUBkcGRrLm9yZycN Cj4gPiA+ID4gPiA8c3RhYmxlQGRwZGsub3JnPg0KPiA+ID4gPiA+IOS4u+mimDogcnRlX2hhc2gg YnVnOiBjYW4ndCBpdGVyYXRlIGFsbCBlbnRyaWVzIHdoZW4gZGVsZXRpbmcga2V5cw0KPiA+ID4g PiA+IGluIHJ0ZV9oYXNoIGl0ZXJhdGUgbG9vcC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEhpIGFs bCwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICBJbiBteSB0ZXN0LCBlbnRyaWVzIGNhbid0IGJl IGNsZWFudXAgaW4gcnRlX2hhc2ggdGFibGUgd2hlbg0KPiA+ID4gPiA+IGRlbGV0aW5nIGtleXMg aW4gcnRlX2hhc2ggaXRlcmF0ZSBsb29wLiBUaGUgdGVzdCBzdGVwczoNCj4gPiA+ID4gPiAgICAg MS4gIGNyZWF0ZSBhIGhhc2ggdGFibGUgdGFibGUxIHdpdGggbGltaXQgMzAwMDAsIGV4dCBidWNr ZXQNCj4gPiA+ID4gPiBlbmFibGVkLCAgYW5kIGluc2VydCAzMDAwMCBlbnRyaWVzIGludG8gdGhp cyBoYXNoIHRhYmxlLg0KPiA+ID4gPiA+ICAgICAyLiAgY3JlYXRlIGEgbGFyZ2VyIGhhc2ggdGFi bGUgdGFibGUyIHdpdGggbGltaXQgNjAwMDAsICwNCj4gPiA+ID4gPiBleHQgYnVja2V0DQo+ID4g PiA+IGVuYWJsZWQuDQo+ID4gPiA+ID4gICAgIDMuICBpdGVyYXRlIGFsbCBlbnRyaWVzIG9mIHRh YmxlMSBhbmQgaW5zZXJ0IHRoZW0gdG8gdGhlIHRhYmxlMi4NCj4gPiA+ID4gPiBJbnNlcnQgbmV3 DQo+ID4gPiA+ID4gMTAwMDAgZW50cmllcyB0byB0aGlzIHRhYmxlMi4NCj4gPiA+ID4gPiAgICAg NC4gIFRoZW4gZmx1c2ggYWxsIGVudHJpZXMgZnJvbSB0YWJsZTIgYnkgZGVsZXRpbmcga2V5cyBp bg0KPiA+ID4gPiA+IHJ0ZV9oYXNoIGl0ZXJhdGUgbG9vcC4gQnV0IHRoZXJlIGFyZSBzdGlsbCBz b21lIGtleXMgbGVha2VkIGluIHRhYmxlMi4NCj4gPiA+ID4gSXMgdGhlcmUgYW55IHJlYXNvbiBm b3IgZmx1c2hpbmcgdGFibGUyIGluIHRoaXMgbWFubmVyPw0KPiA+ID4gPiBJcyBpdCBwb3NzaWJs ZSB0byB1c2UgJ3J0ZV9oYXNoX3Jlc2V0JyBpbnN0ZWFkPw0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gICAgIEZyb20gbXkgYW5hbHlzaXMsIHRoZSBrZXlzIGlkeCBhcmUgc3RvcmVkIGlu IHJ0ZV9oYXNoIG1haW4NCj4gPiA+ID4gPiBidWNrZXQga2V5IHNsb3RzIGFuZCBleHRlbmQgYnVj a2V0IGtleSBzdG90cy4NCj4gPiA+ID4gPiAgICAgV2UgaXRlcmF0ZSBldmVyeSBubyBlbXB0eSBL ZXlzIGluIGgtPmJ1Y2tldHMgYW5kDQo+ID4gPiA+ID4gaC0+YnVja2V0c19leHQgZnJvbSBzdGFy dCB0byBsYXN0Lg0KPiA+ID4gPiA+ICAgICBXaGVuIGRlbGV0aW5nIGtleXMgdGhlIGZ1bmN0aW9u IF9fcnRlX2hhc2hfY29tcGFjdF9sbCgpIG1heQ0KPiA+ID4gPiA+IG1vdmUgbGFzdF9ia3QncyBr ZXkgdG8gcHJldmlvdXMgYnVja2V0IGluIG9yZGVyIHRvIGNvbXBhY3QNCj4gPiA+ID4gPiBleHRl bmQNCj4gPiBidWNrZXQgbGlzdC4NCj4gPiA+ID4gPiAgICAgSWYgdGhlIHByZXZpb3VzIGJ1Y2tl dCBoYXMgYmVlbiBpdGVyYXRlZCwgdGhlIG1vdmVkIGtleSBtYXkNCj4gPiA+ID4gPiBiZSBtaXNz ZWQgZm9yIHVzZXJzLg0KPiA+ID4gPiA+ICAgICBUaGVuIHRob3NlIG1pc3NlZCBrZXlzIGFyZSBs ZWFrZWQgYW5kIHJ0ZV9oYXNoIHRhYmxlIGNhbid0DQo+ID4gPiA+ID4gYmUNCj4gPiBjbGVhbnVw Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgIE5vdyBJIHJldHJ5IHRoZSBpdGVyYXRlIGFuZCBk ZWxldGUga2V5cywgdGhhdCBjYW4gYXZvaWQgdGhpcyBidWcuDQo+ID4gPiA+ID4NCj4gPiA+ID4g PiAgICAgSXMgdGhlcmUgYW55IGlkZWFzIG9yIHNvbHV0aW9ucyBvbiB0aGlzIGJ1Zz8gICBUaGFu a3MuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBKZXJyeS4NCg==