From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9E89444151; Thu, 13 Jun 2024 12:20:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8BD8A40E68; Thu, 13 Jun 2024 12:20:27 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 7E556402B4 for ; Thu, 13 Jun 2024 12:20:24 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4W0JMB4cbfz6K6pQ; Thu, 13 Jun 2024 18:20:22 +0800 (CST) Received: from frapeml100005.china.huawei.com (unknown [7.182.85.132]) by mail.maildlp.com (Postfix) with ESMTPS id BADFC1400CF; Thu, 13 Jun 2024 18:20:23 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100005.china.huawei.com (7.182.85.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 13 Jun 2024 12:20:23 +0200 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039; Thu, 13 Jun 2024 12:20:23 +0200 From: Konstantin Ananyev To: Ferruh Yigit , Konstantin Ananyev , "dev@dpdk.org" CC: "hujiayu.hu@foxmail.com" , "roretzla@linux.microsoft.com" , "bruce.richardson@intel.com" , "anatoly.burakov@intel.com" , "vladimir.medvedkin@intel.com" , "kumaraparamesh92@gmail.com" Subject: RE: [RFC 2/4] gro: remove use of VLAs Thread-Topic: [RFC 2/4] gro: remove use of VLAs Thread-Index: AQHarS5UqYyFPNmZqkSmS2XSARXhsrHDSIUAgAJSWqA= Date: Thu, 13 Jun 2024 10:20:23 +0000 Message-ID: References: <20240523162604.2600-1-konstantin.v.ananyev@yandex.ru> <20240523162604.2600-3-konstantin.v.ananyev@yandex.ru> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.206.138.42] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gDQo+IE9uIDUvMjMvMjAyNCA1OjI2IFBNLCBLb25zdGFudGluIEFuYW55ZXYgd3JvdGU6 DQo+ID4gRnJvbTogS29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaHVhd2Vp LmNvbT4NCj4gPg0KPiA+IC4uL2xpYi9ncm8vcnRlX2dyby5jOjE4MjozNDogd2FybmluZzogdmFy aWFibGUgbGVuZ3RoIGFycmF5IHVzZWQgWy1XdmxhXQ0KPiA+IC4uL2xpYi9ncm8vcnRlX2dyby5j OjM2MzozNDogd2FybmluZzogdmFyaWFibGUgbGVuZ3RoIGFycmF5IHVzZWQgWy1XdmxhXQ0KPiA+ DQo+ID4gSW4gYm90aCBjYXNlcyB0aGUgcGF0dGVybiBpcyB0aGUgc2FtZTogd2UgdXNlIHVucHJv Y2Vzc19wa3RzW25iX3BrdHNdIHRvDQo+ID4gY29sbGVjdCB1bi11c2VkIGJ5IEdSTyBwYWNrZXRz LCBhbmQgdGhlbiBjb3B5IHRoZW0gdG8gdGhlIHN0YXJ0IG9mDQo+ID4gaW5wdXQvb3V0cHV0IHBr dHNbXSBhcnJheS4NCj4gPiBJbiBib3RoIGNhc2VzLCB3ZSBjYW4gc2FmZWx5IGNvcHkgcGt0c1tp XSBpbnRvIGFscmVhZHkNCj4gPiBwcm9jZXNzZWQgZW50cnkgYXQgdGhlIHNhbWUgYXJyYXksIGku ZS4gaW50byBwa3RzW3VucHJvY2Vzc19udW1dLg0KPiA+IFN1Y2ggY2hhbmdlIGVsaW1pbmF0ZXMg bmVlZCBvZiB0ZW1wb3JhcnkgVkxBOiB1bnByb2Nlc3NfcGt0c1tuYl9wa3RzXS4NCj4gPg0KPiA+ IFNpZ25lZC1vZmYtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGh1 YXdlaS5jb20+DQo+ID4gLS0tDQo+ID4gIGxpYi9ncm8vcnRlX2dyby5jIHwgNDAgKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTQg aW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvbGli L2dyby9ydGVfZ3JvLmMgYi9saWIvZ3JvL3J0ZV9ncm8uYw0KPiA+IGluZGV4IGRiODYxMTc2MDku LjZkNWFhZGYzMmEgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2dyby9ydGVfZ3JvLmMNCj4gPiArKysg Yi9saWIvZ3JvL3J0ZV9ncm8uYw0KPiA+IEBAIC0xNzksNyArMTc5LDYgQEAgcnRlX2dyb19yZWFz c2VtYmxlX2J1cnN0KHN0cnVjdCBydGVfbWJ1ZiAqKnBrdHMsDQo+ID4gIAlzdHJ1Y3QgZ3JvX3Z4 bGFuX3VkcDRfaXRlbSB2eGxhbl91ZHBfaXRlbXNbUlRFX0dST19NQVhfQlVSU1RfSVRFTV9OVU1d DQo+ID4gIAkJCT0ge3t7MH19IH07DQo+ID4NCj4gPiAtCXN0cnVjdCBydGVfbWJ1ZiAqdW5wcm9j ZXNzX3BrdHNbbmJfcGt0c107DQo+ID4gIAl1aW50MzJfdCBpdGVtX251bTsNCj4gPiAgCWludDMy X3QgcmV0Ow0KPiA+ICAJdWludDE2X3QgaSwgdW5wcm9jZXNzX251bSA9IDAsIG5iX2FmdGVyX2dy byA9IG5iX3BrdHM7DQo+ID4gQEAgLTI3NSw3ICsyNzQsNyBAQCBydGVfZ3JvX3JlYXNzZW1ibGVf YnVyc3Qoc3RydWN0IHJ0ZV9tYnVmICoqcGt0cywNCj4gPiAgCQkJCS8qIE1lcmdlIHN1Y2Nlc3Nm dWxseSAqLw0KPiA+ICAJCQkJbmJfYWZ0ZXJfZ3JvLS07DQo+ID4gIAkJCWVsc2UgaWYgKHJldCA8 IDApDQo+ID4gLQkJCQl1bnByb2Nlc3NfcGt0c1t1bnByb2Nlc3NfbnVtKytdID0gcGt0c1tpXTsN Cj4gPiArCQkJCXBrdHNbdW5wcm9jZXNzX251bSsrXSA9IHBrdHNbaV07DQo+ID4gIAkJfSBlbHNl IGlmIChJU19JUFY0X1ZYTEFOX1VEUDRfUEtUKHBrdHNbaV0tPnBhY2tldF90eXBlKSAmJg0KPiA+ ICAJCQkJZG9fdnhsYW5fdWRwX2dybykgew0KPiA+ICAJCQlyZXQgPSBncm9fdnhsYW5fdWRwNF9y ZWFzc2VtYmxlKHBrdHNbaV0sDQo+ID4gQEAgLTI4NCw3ICsyODMsNyBAQCBydGVfZ3JvX3JlYXNz ZW1ibGVfYnVyc3Qoc3RydWN0IHJ0ZV9tYnVmICoqcGt0cywNCj4gPiAgCQkJCS8qIE1lcmdlIHN1 Y2Nlc3NmdWxseSAqLw0KPiA+ICAJCQkJbmJfYWZ0ZXJfZ3JvLS07DQo+ID4gIAkJCWVsc2UgaWYg KHJldCA8IDApDQo+ID4gLQkJCQl1bnByb2Nlc3NfcGt0c1t1bnByb2Nlc3NfbnVtKytdID0gcGt0 c1tpXTsNCj4gPiArCQkJCXBrdHNbdW5wcm9jZXNzX251bSsrXSA9IHBrdHNbaV07DQo+ID4gIAkJ fSBlbHNlIGlmIChJU19JUFY0X1RDUF9QS1QocGt0c1tpXS0+cGFja2V0X3R5cGUpICYmDQo+ID4g IAkJCQlkb190Y3A0X2dybykgew0KPiA+ICAJCQlyZXQgPSBncm9fdGNwNF9yZWFzc2VtYmxlKHBr dHNbaV0sICZ0Y3BfdGJsLCAwKTsNCj4gPiBAQCAtMjkyLDcgKzI5MSw3IEBAIHJ0ZV9ncm9fcmVh c3NlbWJsZV9idXJzdChzdHJ1Y3QgcnRlX21idWYgKipwa3RzLA0KPiA+ICAJCQkJLyogbWVyZ2Ug c3VjY2Vzc2Z1bGx5ICovDQo+ID4gIAkJCQluYl9hZnRlcl9ncm8tLTsNCj4gPiAgCQkJZWxzZSBp ZiAocmV0IDwgMCkNCj4gPiAtCQkJCXVucHJvY2Vzc19wa3RzW3VucHJvY2Vzc19udW0rK10gPSBw a3RzW2ldOw0KPiA+ICsJCQkJcGt0c1t1bnByb2Nlc3NfbnVtKytdID0gcGt0c1tpXTsNCj4gPiAg CQl9IGVsc2UgaWYgKElTX0lQVjRfVURQX1BLVChwa3RzW2ldLT5wYWNrZXRfdHlwZSkgJiYNCj4g PiAgCQkJCWRvX3VkcDRfZ3JvKSB7DQo+ID4gIAkJCXJldCA9IGdyb191ZHA0X3JlYXNzZW1ibGUo cGt0c1tpXSwgJnVkcF90YmwsIDApOw0KPiA+IEBAIC0zMDAsNyArMjk5LDcgQEAgcnRlX2dyb19y ZWFzc2VtYmxlX2J1cnN0KHN0cnVjdCBydGVfbWJ1ZiAqKnBrdHMsDQo+ID4gIAkJCQkvKiBtZXJn ZSBzdWNjZXNzZnVsbHkgKi8NCj4gPiAgCQkJCW5iX2FmdGVyX2dyby0tOw0KPiA+ICAJCQllbHNl IGlmIChyZXQgPCAwKQ0KPiA+IC0JCQkJdW5wcm9jZXNzX3BrdHNbdW5wcm9jZXNzX251bSsrXSA9 IHBrdHNbaV07DQo+ID4gKwkJCQlwa3RzW3VucHJvY2Vzc19udW0rK10gPSBwa3RzW2ldOw0KPiA+ ICAJCX0gZWxzZSBpZiAoSVNfSVBWNl9UQ1BfUEtUKHBrdHNbaV0tPnBhY2tldF90eXBlKSAmJg0K PiA+ICAJCQkJZG9fdGNwNl9ncm8pIHsNCj4gPiAgCQkJcmV0ID0gZ3JvX3RjcDZfcmVhc3NlbWJs ZShwa3RzW2ldLCAmdGNwNl90YmwsIDApOw0KPiA+IEBAIC0zMDgsMjEgKzMwNywxNSBAQCBydGVf Z3JvX3JlYXNzZW1ibGVfYnVyc3Qoc3RydWN0IHJ0ZV9tYnVmICoqcGt0cywNCj4gPiAgCQkJCS8q IG1lcmdlIHN1Y2Nlc3NmdWxseSAqLw0KPiA+ICAJCQkJbmJfYWZ0ZXJfZ3JvLS07DQo+ID4gIAkJ CWVsc2UgaWYgKHJldCA8IDApDQo+ID4gLQkJCQl1bnByb2Nlc3NfcGt0c1t1bnByb2Nlc3NfbnVt KytdID0gcGt0c1tpXTsNCj4gPiArCQkJCXBrdHNbdW5wcm9jZXNzX251bSsrXSA9IHBrdHNbaV07 DQo+ID4gIAkJfSBlbHNlDQo+ID4gLQkJCXVucHJvY2Vzc19wa3RzW3VucHJvY2Vzc19udW0rK10g PSBwa3RzW2ldOw0KPiA+ICsJCQlwa3RzW3VucHJvY2Vzc19udW0rK10gPSBwa3RzW2ldOw0KPiA+ ICAJfQ0KPiA+DQo+ID4gIAlpZiAoKG5iX2FmdGVyX2dybyA8IG5iX3BrdHMpDQo+ID4gIAkJIHx8 ICh1bnByb2Nlc3NfbnVtIDwgbmJfcGt0cykpIHsNCj4gPiAtCQlpID0gMDsNCj4gPiAtCQkvKiBD b3B5IHVucHJvY2Vzc2VkIHBhY2tldHMgKi8NCj4gPiAtCQlpZiAodW5wcm9jZXNzX251bSA+IDAp IHsNCj4gPiAtCQkJbWVtY3B5KCZwa3RzW2ldLCB1bnByb2Nlc3NfcGt0cywNCj4gPiAtCQkJCQlz aXplb2Yoc3RydWN0IHJ0ZV9tYnVmICopICoNCj4gPiAtCQkJCQl1bnByb2Nlc3NfbnVtKTsNCj4g PiAtCQkJaSA9IHVucHJvY2Vzc19udW07DQo+ID4gLQkJfQ0KPiA+ICsNCj4gPiArCQlpID0gdW5w cm9jZXNzX251bTsNCj4gPg0KPiA+ICAJCS8qIEZsdXNoIGFsbCBwYWNrZXRzIGZyb20gdGhlIHRh YmxlcyAqLw0KPiA+ICAJCWlmIChkb192eGxhbl90Y3BfZ3JvKSB7DQo+ID4NCj4gDQo+IGFjayB0 byByZS11c2UgJ3BrdHNbXScgYnVmZmVyIGZvciB1bnByb2Nlc3NlZCBwYWNrZXRzLCB0aGF0IHNo b3VsZCB3b3JrLg0KPiANCj4gQnV0IGFzIGEgbW9yZSBnZW5lcmFsIEdSTyBxdWVzdGlvbiwgYWJv dmUgJ3J0ZV9ncm9fcmVhc3NlbWJsZV9idXJzdCgpJw0KPiBmdW5jdGlvbnMgc2VlbXMgcmV0dXJu cyAnbmJfYWZ0ZXJfZ3JvJyBhbmQgYXMgZmFyIGFzIEkgY2FuIHNlZSB0aGF0DQo+IGFtb3VudCBv ZiBtYnVmcyBzaXRzIGluIHRoZSAncGt0c1tdJy4NCj4gV2hlbiBwYWNrZXRzIGZsdXNoZWQgZnJv bSB0YWJsZXMsIGZsdXNoZWQgcGFja2V0cyBhcmUgcmVwbGFjZWQgdG8NCj4gJ3BrdHNbXScgYnV0 IHN0aWxsICduYl9hZnRlcl9ncm8nIHJldHVybmVkLCB0aGVyZSBpcyBubyB3YXkgZm9yDQo+IGFw cGxpY2F0aW9uIHRvIGtub3cgdGhhdCBtb3JlIHRoYW4gJ25iX2FmdGVyX2dybycgbWJ1ZnMgYXZh aWxhYmxlIGluIHRoZQ0KPiAncGt0c1tdJy4gU2hvdWxkbid0IHJldHVybiB2YWx1ZSBpbmNyZWFz ZWQgcGVyIGZsdXNoZWQgcGFja2V0Pw0KPiANCj4gQWhoLCBJIGNhbiBzZWUgaXQgd2FzIHRoZSBj YXNlIGJlZm9yZSwgYnV0IGl0IGlzIHVwZGF0ZWQgKHBlcmhhcHMNCj4gYnJva2VuKSBpbiBjb21t aXQ6DQo+IDc0MDgwZDdkY2YzMSAoImdybzogc3VwcG9ydCBJUHY2IGZvciBUQ1AiKQ0KDQpBY3R1 YWxseSBteSBmaXJzdCB0aG91Z2h0IHdhcyAtIHdlIHNob3VsZCByZXR1cm4gJ0knIGhlcmUuDQpi dXQgdGhlbiBsb29raW5nIGF0IHRoZSBjb2RlIG1vcmUgY2FyZWZ1bGx5LCBJIHJlYWxpemVkIHRo YXQgaXQgaXMgY29ycmVjdDoNCm5iX2FmdGVyX2dybyAtIHdvdWxkIGNvbnRhaW4gdmFsaWQgbnVt YmVyIG9mIHBhY2tldHMNCihhdCBsZWFzdCBJIHdhc24ndCBhYmxlIHRvIGZpbmQgYSBjYXNlIHdo ZW4gaXQgd291bGRuJ3QpLiANClRob3VnaCB5ZWgsIGl0IHdhc24ndCB2ZXJ5IG9idmlvdXMgZm9y IG1lIGF0IGZpcnN0IHBsYWNlLCBzbyBtaWdodCBiZQ0KZXh0cmEgY29tbWVudCB3b3VsZG4ndCBo dXJ0IGhlcmUuDQoNCj4gDQo+IA0KPiBJIHdvbmRlciB3aGVuIEdSTyBsYXN0IHRlc3RlZCENCj4g QEppYXl1LCBkaWQgeW91IGhhdmUgYSBjaGFuY2UgdG8gdGVzdCBHUk8gcmVjZW50bHk/DQo+IA0K PiANCj4gPiBAQCAtMzYwLDcgKzM1Myw2IEBAIHJ0ZV9ncm9fcmVhc3NlbWJsZShzdHJ1Y3QgcnRl X21idWYgKipwa3RzLA0KPiA+ICAJCXVpbnQxNl90IG5iX3BrdHMsDQo+ID4gIAkJdm9pZCAqY3R4 KQ0KPiA+ICB7DQo+ID4gLQlzdHJ1Y3QgcnRlX21idWYgKnVucHJvY2Vzc19wa3RzW25iX3BrdHNd Ow0KPiA+ICAJc3RydWN0IGdyb19jdHggKmdyb19jdHggPSBjdHg7DQo+ID4gIAl2b2lkICp0Y3Bf dGJsLCAqdWRwX3RibCwgKnZ4bGFuX3RjcF90YmwsICp2eGxhbl91ZHBfdGJsLCAqdGNwNl90Ymw7 DQo+ID4gIAl1aW50NjRfdCBjdXJyZW50X3RpbWU7DQo+ID4gQEAgLTM5NiwzMyArMzg4LDI5IEBA IHJ0ZV9ncm9fcmVhc3NlbWJsZShzdHJ1Y3QgcnRlX21idWYgKipwa3RzLA0KPiA+ICAJCQkJZG9f dnhsYW5fdGNwX2dybykgew0KPiA+ICAJCQlpZiAoZ3JvX3Z4bGFuX3RjcDRfcmVhc3NlbWJsZShw a3RzW2ldLCB2eGxhbl90Y3BfdGJsLA0KPiA+ICAJCQkJCQljdXJyZW50X3RpbWUpIDwgMCkNCj4g PiAtCQkJCXVucHJvY2Vzc19wa3RzW3VucHJvY2Vzc19udW0rK10gPSBwa3RzW2ldOw0KPiA+ICsJ CQkJcGt0c1t1bnByb2Nlc3NfbnVtKytdID0gcGt0c1tpXTsNCj4gPiAgCQl9IGVsc2UgaWYgKElT X0lQVjRfVlhMQU5fVURQNF9QS1QocGt0c1tpXS0+cGFja2V0X3R5cGUpICYmDQo+ID4gIAkJCQlk b192eGxhbl91ZHBfZ3JvKSB7DQo+ID4gIAkJCWlmIChncm9fdnhsYW5fdWRwNF9yZWFzc2VtYmxl KHBrdHNbaV0sIHZ4bGFuX3VkcF90YmwsDQo+ID4gIAkJCQkJCWN1cnJlbnRfdGltZSkgPCAwKQ0K PiA+IC0JCQkJdW5wcm9jZXNzX3BrdHNbdW5wcm9jZXNzX251bSsrXSA9IHBrdHNbaV07DQo+ID4g KwkJCQlwa3RzW3VucHJvY2Vzc19udW0rK10gPSBwa3RzW2ldOw0KPiA+ICAJCX0gZWxzZSBpZiAo SVNfSVBWNF9UQ1BfUEtUKHBrdHNbaV0tPnBhY2tldF90eXBlKSAmJg0KPiA+ICAJCQkJZG9fdGNw NF9ncm8pIHsNCj4gPiAgCQkJaWYgKGdyb190Y3A0X3JlYXNzZW1ibGUocGt0c1tpXSwgdGNwX3Ri bCwNCj4gPiAgCQkJCQkJY3VycmVudF90aW1lKSA8IDApDQo+ID4gLQkJCQl1bnByb2Nlc3NfcGt0 c1t1bnByb2Nlc3NfbnVtKytdID0gcGt0c1tpXTsNCj4gPiArCQkJCXBrdHNbdW5wcm9jZXNzX251 bSsrXSA9IHBrdHNbaV07DQo+ID4gIAkJfSBlbHNlIGlmIChJU19JUFY0X1VEUF9QS1QocGt0c1tp XS0+cGFja2V0X3R5cGUpICYmDQo+ID4gIAkJCQlkb191ZHA0X2dybykgew0KPiA+ICAJCQlpZiAo Z3JvX3VkcDRfcmVhc3NlbWJsZShwa3RzW2ldLCB1ZHBfdGJsLA0KPiA+ICAJCQkJCQljdXJyZW50 X3RpbWUpIDwgMCkNCj4gPiAtCQkJCXVucHJvY2Vzc19wa3RzW3VucHJvY2Vzc19udW0rK10gPSBw a3RzW2ldOw0KPiA+ICsJCQkJcGt0c1t1bnByb2Nlc3NfbnVtKytdID0gcGt0c1tpXTsNCj4gPiAg CQl9IGVsc2UgaWYgKElTX0lQVjZfVENQX1BLVChwa3RzW2ldLT5wYWNrZXRfdHlwZSkgJiYNCj4g PiAgCQkJCWRvX3RjcDZfZ3JvKSB7DQo+ID4gIAkJCWlmIChncm9fdGNwNl9yZWFzc2VtYmxlKHBr dHNbaV0sIHRjcDZfdGJsLA0KPiA+ICAJCQkJCQljdXJyZW50X3RpbWUpIDwgMCkNCj4gPiAtCQkJ CXVucHJvY2Vzc19wa3RzW3VucHJvY2Vzc19udW0rK10gPSBwa3RzW2ldOw0KPiA+ICsJCQkJcGt0 c1t1bnByb2Nlc3NfbnVtKytdID0gcGt0c1tpXTsNCj4gPiAgCQl9IGVsc2UNCj4gPiAtCQkJdW5w cm9jZXNzX3BrdHNbdW5wcm9jZXNzX251bSsrXSA9IHBrdHNbaV07DQo+ID4gLQl9DQo+ID4gLQlp ZiAodW5wcm9jZXNzX251bSA+IDApIHsNCj4gPiAtCQltZW1jcHkocGt0cywgdW5wcm9jZXNzX3Br dHMsIHNpemVvZihzdHJ1Y3QgcnRlX21idWYgKikgKg0KPiA+IC0JCQkJdW5wcm9jZXNzX251bSk7 DQo+ID4gKwkJCXBrdHNbdW5wcm9jZXNzX251bSsrXSA9IHBrdHNbaV07DQo+ID4NCj4gDQo+IGFj aw0KDQo=