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 93E8B46C75; Fri, 1 Aug 2025 18:40:00 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5FB6F40662; Fri, 1 Aug 2025 18:40:00 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id D45044065A for ; Fri, 1 Aug 2025 18:39:58 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4bts8B30sDz67nbq; Sat, 2 Aug 2025 00:38:18 +0800 (CST) Received: from frapeml100003.china.huawei.com (unknown [7.182.85.60]) by mail.maildlp.com (Postfix) with ESMTPS id A077A1402EF; Sat, 2 Aug 2025 00:39:57 +0800 (CST) Received: from frapeml500002.china.huawei.com (7.182.85.205) by frapeml100003.china.huawei.com (7.182.85.60) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 1 Aug 2025 18:39:57 +0200 Received: from frapeml500002.china.huawei.com ([7.182.85.205]) by frapeml500002.china.huawei.com ([7.182.85.205]) with mapi id 15.01.2507.039; Fri, 1 Aug 2025 18:39:57 +0200 From: Marat Khalili To: Su Sai , "dev@dpdk.org" CC: "jasvinder.singh@intel.com" , "thomas@monjalon.net" Subject: RE: [v2] net/cksum: compute raw cksum for several segments Thread-Topic: [v2] net/cksum: compute raw cksum for several segments Thread-Index: AQHcAvj+Luy1NV1E7kGUQ/mAZEP2X7RN+gyw Date: Fri, 1 Aug 2025 16:39:57 +0000 Message-ID: <53b0c9ee0e4b4f8e8d60f0f7f18b9d91@huawei.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.206.137.70] Content-Type: multipart/mixed; boundary="_002_53b0c9ee0e4b4f8e8d60f0f7f18b9d91huaweicom_" 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 --_002_53b0c9ee0e4b4f8e8d60f0f7f18b9d91huaweicom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTdSBTYWkgPHN1c2FpLnNzQGJ5 dGVkYW5jZS5jb20+DQo+IFNlbnQ6IEZyaWRheSAxIEF1Z3VzdCAyMDI1IDE2OjI5DQo+IFRvOiBk ZXZAZHBkay5vcmcNCj4gQ2M6IGphc3ZpbmRlci5zaW5naEBpbnRlbC5jb207IHRob21hc0Btb25q YWxvbi5uZXQ7IE1hcmF0IEtoYWxpbGkNCj4gPG1hcmF0LmtoYWxpbGlAaHVhd2VpLmNvbT47IFN1 IFNhaSA8c3VzYWkuc3NAYnl0ZWRhbmNlLmNvbT4NCj4gU3ViamVjdDogW3YyXSBuZXQvY2tzdW06 IGNvbXB1dGUgcmF3IGNrc3VtIGZvciBzZXZlcmFsIHNlZ21lbnRzDQo+IA0KPiBUaGUgcnRlX3Jh d19ja3N1bV9tYnVmIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29tcHV0ZQ0KPiB0aGUgcmF3IGNoZWNr c3VtIG9mIGEgcGFja2V0Lg0KPiBJZiB0aGUgcGFja2V0IHBheWxvYWQgc3RvcmVkIGluIG11bHRp IG1idWYsIHRoZSBmdW5jdGlvbg0KPiB3aWxsIGdvdG8gdGhlIGhhcmQgY2FzZS4gSW4gaGFyZCBj YXNlLA0KPiB0aGUgdmFyaWFibGUgJ3RtcCcgaXMgYSB0eXBlIG9mIHVpbnQzMl90LA0KPiBzbyBy dGVfYnN3YXAxNiB3aWxsIGRyb3AgaGlnaCAxNiBiaXQuDQo+IE1lYW53aGlsZSwgdGhlIHZhcmlh YmxlICdzdW0nIGlzIGEgdHlwZSBvZiB1aW50MzJfdCwNCj4gc28gJ3N1bSArPSB0bXAnIHdpbGwg ZHJvcCB0aGUgY2Fycnkgd2hlbiBvdmVyZmxvdy4NCj4gQm90aCBkcm9wIHdpbGwgbWFrZSBja3N1 bSBpbmNvcnJlY3QuDQo+IFRoaXMgY29tbWl0IGZpeGVzIHRoZSBhYm92ZSBidWcuDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBTdSBTYWkgPHN1c2FpLnNzQGJ5dGVkYW5jZS5jb20+DQo+IC0tLQ0KPiAg Lm1haWxtYXAgICAgICAgICAgICAgIHwgICAxICsNCj4gIGFwcC90ZXN0L3Rlc3RfY2tzdW0uYyB8 IDEwNA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxp Yi9uZXQvcnRlX2Nrc3VtLmggICB8ICAyNiArKysrKysrKystLQ0KPiAgMyBmaWxlcyBjaGFuZ2Vk LCAxMjggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS8u bWFpbG1hcCBiLy5tYWlsbWFwDQo+IGluZGV4IDM0YTk5ZjkzYTEuLjgzOGI1NDRhOTcgMTAwNjQ0 DQo+IC0tLSBhLy5tYWlsbWFwDQo+ICsrKyBiLy5tYWlsbWFwDQo+IEBAIC0xODkxLDMgKzE4OTEs NCBAQCBab2x0YW4gS2lzcyA8em9sdGFuLmtpc3NAc2NoYW1hbi5odT4NCj4gPHpvbHRhbi5raXNz QGxpbmFyby5vcmc+DQo+ICBab3JpayBNYWNodWxza3kgPHpvcmlrQGFtYXpvbi5jb20+DQo+ICBa eXRhIFN6cGFrIDx6eXRhQG1hcnZlbGwuY29tPiA8enJAc2VtaWhhbGYuY29tPg0KPiAgWnl0YSBT enBhayA8enl0YUBtYXJ2ZWxsLmNvbT4gPHp5dGEuc3pwYWtAc2VtaWhhbGYuY29tPg0KPiArU3Ug U2FpIDxzdXNhaS5zc0BieXRlZGFuY2UuY29tPg0KPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvdGVz dF9ja3N1bS5jIGIvYXBwL3Rlc3QvdGVzdF9ja3N1bS5jDQo+IGluZGV4IGYyYWI1YWY1YTcuLmQy NDM1YTk5NjIgMTAwNjQ0DQo+IC0tLSBhL2FwcC90ZXN0L3Rlc3RfY2tzdW0uYw0KPiArKysgYi9h cHAvdGVzdC90ZXN0X2Nrc3VtLmMNCj4gQEAgLTg1LDYgKzg1LDM5IEBAIHN0YXRpYyBjb25zdCBj aGFyIHRlc3RfY2tzdW1faXB2NF9vcHRzX3VkcFtdID0gew0KPiAgCTB4MDAsIDB4MzUsIDB4MDAs IDB4MDksIDB4ODksIDB4NmYsIDB4NzgsDQo+ICB9Ow0KPiANCj4gKy8qIGdlbmVyYXRlZCBpbiBz Y2FweSB3aXRoDQo+IEV0aGVyKCkvSVAoKS9UQ1Aob3B0aW9ucz1bTk9QLE5PUCxUaW1lc3RhbXBz XSkvb3MudXJhbmRvbSgxMTMpKSAqLw0KPiArc3RhdGljIGNvbnN0IGNoYXIgdGVzdF9ja3N1bV9p cHY0X3RjcF9tdWx0aV9zZWdzW10gPSB7DQo+ICsJMHgwMCwgMHgxNiwgMHgzZSwgMHgwYiwgMHg2 YiwgMHhkMiwgMHhlZSwgMHhmZiwNCj4gKwkweGZmLCAweGZmLCAweGZmLCAweGZmLCAweDA4LCAw eDAwLCAweDQ1LCAweDAwLA0KPiArCTB4MDAsIDB4YTUsIDB4NDYsIDB4MTAsIDB4NDAsIDB4MDAs IDB4NDAsIDB4MDYsDQo+ICsJMHg4MCwgMHhiNSwgMHhjMCwgMHhhOCwgMHhmOSwgMHgxZCwgMHhj MCwgMHhhOCwNCj4gKwkweGY5LCAweDFlLCAweGRjLCAweGEyLCAweDE0LCAweDUxLCAweGJiLCAw eDhmLA0KPiArCTB4YTAsIDB4MDAsIDB4ZTQsIDB4N2MsIDB4ZTQsIDB4YjgsIDB4ODAsIDB4MTAs DQo+ICsJMHgwMiwgMHgwMCwgMHg0YiwgMHhjMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMSwNCj4g KwkweDA4LCAweDBhLCAweDkwLCAweDYwLCAweGY0LCAweGZmLCAweDAzLCAweGM1LA0KPiArCTB4 YjQsIDB4MTksIDB4NzcsIDB4MzQsIDB4ZDQsIDB4ZGMsIDB4ODQsIDB4ODYsDQo+ICsJMHhmZiwg MHg0NCwgMHgwOSwgMHg2MywgMHgzNiwgMHgyZSwgMHgyNiwgMHg5YiwNCj4gKwkweDkwLCAweDcw LCAweGYyLCAweGVkLCAweGM4LCAweDViLCAweDg3LCAweGFhLA0KPiArCTB4YjQsIDB4NjcsIDB4 NmIsIDB4MzIsIDB4M2QsIDB4YzQsIDB4YmYsIDB4MTUsDQo+ICsJMHhhOSwgMHgxNiwgMHg2Yywg MHgyYSwgMHg5ZCwgMHhiMiwgMHhiNywgMHg2YiwNCj4gKwkweDU4LCAweDQ0LCAweDU4LCAweDEy LCAweDRiLCAweDhmLCAweGU1LCAweDEyLA0KPiArCTB4MTEsIDB4OTAsIDB4OTQsIDB4NjgsIDB4 MzcsIDB4YWQsIDB4MGEsIDB4OWIsDQo+ICsJMHhkNiwgMHg3OSwgMHhmMiwgMHhiNywgMHgzMSwg MHhjZiwgMHg0NCwgMHgyMiwNCj4gKwkweGM4LCAweDk5LCAweDNmLCAweGU1LCAweGU3LCAweGFj LCAweGM3LCAweDBiLA0KPiArCTB4ODYsIDB4ZGYsIDB4ZGEsIDB4ZWQsIDB4MGEsIDB4MGYsIDB4 ODYsIDB4ZDcsDQo+ICsJMHg0OCwgMHhlMiwgMHhmMSwgMHhjMiwgMHg0MywgMHhlZCwgMHg0Nywg MHgzYSwNCj4gKwkweGVhLCAweDI1LCAweDJkLCAweGQ2LCAweDYwLCAweDM4LCAweDMwLCAweDA3 LA0KPiArCTB4MjgsIDB4ZGQsIDB4MWYsIDB4MGMsIDB4ZGQsIDB4N2IsIDB4N2MsIDB4ZDksDQo+ ICsJMHgzNSwgMHg5ZCwgMHgxNCwgMHhhYSwgMHhjNiwgMHgzNSwgMHhkMSwgMHgwMywNCj4gKwkw eDM4LCAweGIxLCAweGY1LA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHVpbnQ4X3QgdGVz dF9ja3N1bV9pcHY0X3RjcF9tdWx0aV9zZWdzX2xlbltdID0gew0KPiArCTY2LCAgLyogdGhlIGZp cnN0IHNlZyBjb250YWlucyBhbGwgaGVhZGVycywgaW5jbHVkaW5nIEwyIHRvIEw0ICovDQo+ICsJ NjEsICAvKiB0aGUgc2Vjb25kIHNlZyBsZW5naHQgaXMgb2RkLCB0ZXN0IGJ5dGUgb3JkZXIgaW5k ZXBlbmRlbnQgKi8NCj4gKwk1MiwgIC8qIHRocmVlIHNlZ3MgYXJlIHN1ZmZpY2llbnQgdG8gdGVz dCB0aGUgbW9zdCBjb21wbGV4IHNjZW5hcmlvcyAqLw0KPiArfTsNCj4gKw0KPiAgLyogdGVzdCBs My9sNCBjaGVja3N1bSBhcGkgKi8NCj4gIHN0YXRpYyBpbnQNCj4gIHRlc3RfbDRfY2tzdW0oc3Ry dWN0IHJ0ZV9tZW1wb29sICpwa3RtYnVmX3Bvb2wsIGNvbnN0IGNoYXIgKnBrdGRhdGEsDQo+IHNp emVfdCBsZW4pDQo+IEBAIC0yMjMsNiArMjU2LDcxIEBAIHRlc3RfbDRfY2tzdW0oc3RydWN0IHJ0 ZV9tZW1wb29sICpwa3RtYnVmX3Bvb2wsDQo+IGNvbnN0IGNoYXIgKnBrdGRhdGEsIHNpemVfdCBs ZW4pDQo+ICAJcmV0dXJuIC0xOw0KPiAgfQ0KPiANCj4gKy8qIHRlc3QgbDQgY2hlY2tzdW0gYXBp IGZvciBhIHBhY2tldCB3aXRoIG11bHRpcGxlIG1idWZzICovDQo+ICtzdGF0aWMgaW50DQo+ICt0 ZXN0X2w0X2Nrc3VtX211bHRpX21idWZzKHN0cnVjdCBydGVfbWVtcG9vbCAqcGt0bWJ1Zl9wb29s LCBjb25zdA0KPiBjaGFyICpwa3RkYXRhLCBzaXplX3QgbGVuLA0KPiArCQkJICAgICBjb25zdCB1 aW50OF90ICpzZWdzLCBzaXplX3Qgc2Vnc19sZW4pDQo+ICt7DQo+ICsJc3RydWN0IHJ0ZV9tYnVm ICptW05CX01CVUZdID0gezB9Ow0KPiArCXN0cnVjdCBydGVfbWJ1ZiAqbV9oZHIgPSBOVUxMOw0K PiArCXN0cnVjdCBydGVfbmV0X2hkcl9sZW5zIGhkcl9sZW5zOw0KPiArCXNpemVfdCBpLCBvZmYg PSAwOw0KPiArCXVpbnQzMl90IHBhY2tldF90eXBlOw0KPiArCXZvaWQgKmwzX2hkcjsNCj4gKwl1 aW50MzJfdCBsMzsNCj4gKwljaGFyICpkYXRhOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IHNl Z3NfbGVuOyBpKyspIHsNCj4gKwkJbVtpXSA9IHJ0ZV9wa3RtYnVmX2FsbG9jKHBrdG1idWZfcG9v bCk7DQo+ICsJCWlmIChtW2ldID09IE5VTEwpDQo+ICsJCQlHT1RPX0ZBSUwoIkNhbm5vdCBhbGxv Y2F0ZSBtYnVmIik7DQo+ICsNCj4gKwkJZGF0YSA9IHJ0ZV9wa3RtYnVmX2FwcGVuZChtW2ldLCBz ZWdzW2ldKTsNCj4gKwkJaWYgKGRhdGEgPT0gTlVMTCkNCj4gKwkJCUdPVE9fRkFJTCgiQ2Fubm90 IGFwcGVuZCBkYXRhIik7DQo+ICsNCj4gKwkJcnRlX21lbWNweShkYXRhLCBwa3RkYXRhICsgb2Zm LCBzZWdzW2ldKTsNCj4gKwkJb2ZmICs9IHNlZ3NbaV07DQo+ICsNCj4gKwkJaWYgKG1faGRyKSB7 DQo+ICsJCQlpZiAocnRlX3BrdG1idWZfY2hhaW4obV9oZHIsIG1baV0pKQ0KPiArCQkJCUdPVE9f RkFJTCgiQ2Fubm90IGNoYWluIG1idWYiKTsNCj4gKwkJfSBlbHNlIHsNCj4gKwkJCW1faGRyID0g bVtpXTsNCj4gKwkJfQ0KPiArCX0NCj4gKw0KPiArCWlmIChvZmYgIT0gbGVuKQ0KPiArCQlHT1RP X0ZBSUwoIkludmFsaWQgc2VncyIpOw0KPiArDQo+ICsJcGFja2V0X3R5cGUgPSBydGVfbmV0X2dl dF9wdHlwZShtX2hkciwgJmhkcl9sZW5zLA0KPiBSVEVfUFRZUEVfQUxMX01BU0spOw0KPiArCWwz ID0gcGFja2V0X3R5cGUgJiBSVEVfUFRZUEVfTDNfTUFTSzsNCj4gKw0KPiArCWwzX2hkciA9IHJ0 ZV9wa3RtYnVmX210b2Rfb2Zmc2V0KG1faGRyLCB2b2lkICosIGhkcl9sZW5zLmwyX2xlbik7DQo+ ICsJb2ZmID0gaGRyX2xlbnMubDJfbGVuICsgaGRyX2xlbnMubDNfbGVuOw0KPiArDQo+ICsJaWYg KGwzID09IFJURV9QVFlQRV9MM19JUFY0IHx8IGwzID09IFJURV9QVFlQRV9MM19JUFY0X0VYVCkg ew0KPiArCQlpZiAocnRlX2lwdjRfdWRwdGNwX2Nrc3VtX21idWZfdmVyaWZ5KG1faGRyLCBsM19o ZHIsDQo+IG9mZikgIT0gMCkNCj4gKwkJCUdPVE9fRkFJTCgiSW52YWxpZCBMNCBjaGVja3N1bSB2 ZXJpZmljYXRpb24gZm9yDQo+IG11bHRpcGxlIG1idWZzIik7DQo+ICsJfSBlbHNlIGlmIChsMyA9 PSBSVEVfUFRZUEVfTDNfSVBWNiB8fCBsMyA9PSBSVEVfUFRZUEVfTDNfSVBWNl9FWFQpDQo+IHsN Cj4gKwkJaWYgKHJ0ZV9pcHY2X3VkcHRjcF9ja3N1bV9tYnVmX3ZlcmlmeShtX2hkciwgbDNfaGRy LA0KPiBvZmYpICE9IDApDQo+ICsJCQlHT1RPX0ZBSUwoIkludmFsaWQgTDQgY2hlY2tzdW0gdmVy aWZpY2F0aW9uIGZvcg0KPiBtdWx0aXBsZSBtYnVmcyIpOw0KPiArCX0NCj4gKw0KPiArCWZvciAo aSA9IDA7IGkgPCBzZWdzX2xlbjsgaSsrKQ0KPiArCQlydGVfcGt0bWJ1Zl9mcmVlKG1baV0pOw0K PiArDQo+ICsJcmV0dXJuIDA7DQo+ICsNCj4gK2ZhaWw6DQo+ICsJZm9yIChpID0gMDsgaSA8IHNl Z3NfbGVuOyBpKyspIHsNCj4gKwkJaWYgKG1baV0pDQo+ICsJCQlydGVfcGt0bWJ1Zl9mcmVlKG1b aV0pOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiAtMTsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGlu dA0KPiAgdGVzdF9ja3N1bSh2b2lkKQ0KPiAgew0KPiBAQCAtMjU2LDYgKzM1NCwxMiBAQCB0ZXN0 X2Nrc3VtKHZvaWQpDQo+ICAJCQkgIHNpemVvZih0ZXN0X2Nrc3VtX2lwdjRfb3B0c191ZHApKSA8 IDApDQo+ICAJCUdPVE9fRkFJTCgiY2hlY2tzdW0gZXJyb3Igb24gaXB2NF9vcHRzX3VkcCIpOw0K PiANCj4gKwlpZiAodGVzdF9sNF9ja3N1bV9tdWx0aV9tYnVmcyhwa3RtYnVmX3Bvb2wsDQo+IHRl c3RfY2tzdW1faXB2NF90Y3BfbXVsdGlfc2VncywNCj4gKwkJCSAgc2l6ZW9mKHRlc3RfY2tzdW1f aXB2NF90Y3BfbXVsdGlfc2VncyksDQo+ICsJCQkgIHRlc3RfY2tzdW1faXB2NF90Y3BfbXVsdGlf c2Vnc19sZW4sDQo+ICsJCQkgIHNpemVvZih0ZXN0X2Nrc3VtX2lwdjRfdGNwX211bHRpX3NlZ3Nf bGVuKSkgPCAwKQ0KPiArCQlHT1RPX0ZBSUwoImNoZWNrc3VtIGVycm9yIG9uIG11bHRpIG1idWZz IGNoZWNrIik7DQo+ICsNCj4gIAlydGVfbWVtcG9vbF9mcmVlKHBrdG1idWZfcG9vbCk7DQo+IA0K PiAgCXJldHVybiAwOw0KPiBkaWZmIC0tZ2l0IGEvbGliL25ldC9ydGVfY2tzdW0uaCBiL2xpYi9u ZXQvcnRlX2Nrc3VtLmgNCj4gaW5kZXggYThlODkyNzk1Mi4uYWE1ODRkNWY4ZCAxMDA2NDQNCj4g LS0tIGEvbGliL25ldC9ydGVfY2tzdW0uaA0KPiArKysgYi9saWIvbmV0L3J0ZV9ja3N1bS5oDQo+ IEBAIC04MCw2ICs4MCwyNSBAQCBfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlKHVpbnQzMl90IHN1bSkN Cj4gIAlyZXR1cm4gKHVpbnQxNl90KXN1bTsNCj4gIH0NCj4gDQo+ICsvKioNCj4gKyAqIEBpbnRl cm5hbCBSZWR1Y2UgYSBzdW0gdG8gdGhlIG5vbi1jb21wbGVtZW50ZWQgY2hlY2tzdW0uDQo+ICsg KiBIZWxwZXIgcm91dGluZSBmb3IgdGhlIHJ0ZV9yYXdfY2tzdW1fbWJ1ZigpLg0KPiArICoNCj4g KyAqIEBwYXJhbSBzdW0NCj4gKyAqICAgVmFsdWUgb2YgdGhlIHN1bS4NCj4gKyAqIEByZXR1cm4N Cj4gKyAqICAgVGhlIG5vbi1jb21wbGVtZW50ZWQgY2hlY2tzdW0uDQo+ICsgKi8NCj4gK3N0YXRp YyBpbmxpbmUgdWludDE2X3QNCj4gK19fcnRlX3Jhd19ja3N1bV9yZWR1Y2VfdTY0KHVpbnQ2NF90 IHN1bSkNCj4gK3sNCj4gKwl1aW50MzJfdCB0bXA7DQo+ICsNCj4gKwl0bXAgPSBfX3J0ZV9yYXdf Y2tzdW1fcmVkdWNlKCh1aW50MzJfdClzdW0pOw0KPiArCXRtcCArPSBfX3J0ZV9yYXdfY2tzdW1f cmVkdWNlKCh1aW50MzJfdCkoc3VtID4+IDMyKSk7DQo+ICsJcmV0dXJuIF9fcnRlX3Jhd19ja3N1 bV9yZWR1Y2UodG1wKTsNCj4gK30NCj4gKw0KPiAgLyoqDQo+ICAgKiBQcm9jZXNzIHRoZSBub24t Y29tcGxlbWVudGVkIGNoZWNrc3VtIG9mIGEgYnVmZmVyLg0KPiAgICoNCj4gQEAgLTExOSw4ICsx MzgsOSBAQCBydGVfcmF3X2Nrc3VtX21idWYoY29uc3Qgc3RydWN0IHJ0ZV9tYnVmICptLA0KPiB1 aW50MzJfdCBvZmYsIHVpbnQzMl90IGxlbiwNCj4gIHsNCj4gIAljb25zdCBzdHJ1Y3QgcnRlX21i dWYgKnNlZzsNCj4gIAljb25zdCBjaGFyICpidWY7DQo+IC0JdWludDMyX3Qgc3VtLCB0bXA7DQo+ ICsJdWludDMyX3QgdG1wOw0KPiAgCXVpbnQzMl90IHNlZ2xlbiwgZG9uZTsNCj4gKwl1aW50NjRf dCBzdW07DQo+IA0KPiAgCS8qIGVhc3kgY2FzZTogYWxsIGRhdGEgaW4gdGhlIGZpcnN0IHNlZ21l bnQgKi8NCj4gIAlpZiAob2ZmICsgbGVuIDw9IHJ0ZV9wa3RtYnVmX2RhdGFfbGVuKG0pKSB7DQo+ IEBAIC0xNTcsNyArMTc3LDcgQEAgcnRlX3Jhd19ja3N1bV9tYnVmKGNvbnN0IHN0cnVjdCBydGVf bWJ1ZiAqbSwNCj4gdWludDMyX3Qgb2ZmLCB1aW50MzJfdCBsZW4sDQo+ICAJZm9yICg7Oykgew0K PiAgCQl0bXAgPSBfX3J0ZV9yYXdfY2tzdW0oYnVmLCBzZWdsZW4sIDApOw0KPiAgCQlpZiAoZG9u ZSAmIDEpDQo+IC0JCQl0bXAgPSBydGVfYnN3YXAxNigodWludDE2X3QpdG1wKTsNCj4gKwkJCXRt cCA9IHJ0ZV9ic3dhcDMyKHRtcCk7DQo+ICAJCXN1bSArPSB0bXA7DQo+ICAJCWRvbmUgKz0gc2Vn bGVuOw0KPiAgCQlpZiAoZG9uZSA9PSBsZW4pDQo+IEBAIC0xNjksNyArMTg5LDcgQEAgcnRlX3Jh d19ja3N1bV9tYnVmKGNvbnN0IHN0cnVjdCBydGVfbWJ1ZiAqbSwNCj4gdWludDMyX3Qgb2ZmLCB1 aW50MzJfdCBsZW4sDQo+ICAJCQlzZWdsZW4gPSBsZW4gLSBkb25lOw0KPiAgCX0NCj4gDQo+IC0J KmNrc3VtID0gX19ydGVfcmF3X2Nrc3VtX3JlZHVjZShzdW0pOw0KPiArCSpja3N1bSA9IF9fcnRl X3Jhd19ja3N1bV9yZWR1Y2VfdTY0KHN1bSk7DQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0KPiAt LQ0KPiAyLjM5LjIgKEFwcGxlIEdpdC0xNDMpDQoNCkhpLCB0aGFua3MgYSBsb3QgZm9yIHByb3Zp ZGluZyBhIHRlc3QuIE5vdGUgdGhhdCBzb21ldGhpbmcgaXMgZ2FyYmxpbmcgeW91ciBwYXRjaGVz OiB3cmFwcGluZyBsb25nIGxpbmVzIGV0Yy4NCg0KRm9yIHRoZSBhdHRhY2hlZCB1bmdhcmJsZWQg dmVyc2lvbjoNClJldmlld2VkLWJ5OiBNYXJhdCBLaGFsaWxpIDxtYXJhdC5raGFsaWxpQGh1YXdl aS5jb20+DQo= --_002_53b0c9ee0e4b4f8e8d60f0f7f18b9d91huaweicom_ Content-Type: application/octet-stream; name="cksum.eml" Content-Description: cksum.eml Content-Disposition: attachment; filename="cksum.eml"; size=7380; creation-date="Fri, 01 Aug 2025 16:39:00 GMT"; modification-date="Fri, 01 Aug 2025 16:39:00 GMT" Content-Transfer-Encoding: base64 RnJvbToJU3UgU2FpIDxzdXNhaS5zc0BieXRlZGFuY2UuY29tPg0KU2VudDoJRnJpZGF5IDEgQXVn dXN0IDIwMjUgMTY6MjkNClRvOglkZXZAZHBkay5vcmcNCkNjOglqYXN2aW5kZXIuc2luZ2hAaW50 ZWwuY29tOyB0aG9tYXNAbW9uamFsb24ubmV0OyBNYXJhdCBLaGFsaWxpOyBTdSBTYWkNClN1Ympl Y3Q6CVt2Ml0gbmV0L2Nrc3VtOiBjb21wdXRlIHJhdyBja3N1bSBmb3Igc2V2ZXJhbCBzZWdtZW50 cw0KDQpUaGUgcnRlX3Jhd19ja3N1bV9tYnVmIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29tcHV0ZQ0K dGhlIHJhdyBjaGVja3N1bSBvZiBhIHBhY2tldC4NCklmIHRoZSBwYWNrZXQgcGF5bG9hZCBzdG9y ZWQgaW4gbXVsdGkgbWJ1ZiwgdGhlIGZ1bmN0aW9uDQp3aWxsIGdvdG8gdGhlIGhhcmQgY2FzZS4g SW4gaGFyZCBjYXNlLA0KdGhlIHZhcmlhYmxlICd0bXAnIGlzIGEgdHlwZSBvZiB1aW50MzJfdCwN CnNvIHJ0ZV9ic3dhcDE2IHdpbGwgZHJvcCBoaWdoIDE2IGJpdC4NCk1lYW53aGlsZSwgdGhlIHZh cmlhYmxlICdzdW0nIGlzIGEgdHlwZSBvZiB1aW50MzJfdCwNCnNvICdzdW0gKz0gdG1wJyB3aWxs IGRyb3AgdGhlIGNhcnJ5IHdoZW4gb3ZlcmZsb3cuDQpCb3RoIGRyb3Agd2lsbCBtYWtlIGNrc3Vt IGluY29ycmVjdC4NClRoaXMgY29tbWl0IGZpeGVzIHRoZSBhYm92ZSBidWcuDQoNClNpZ25lZC1v ZmYtYnk6IFN1IFNhaSA8c3VzYWkuc3NAYnl0ZWRhbmNlLmNvbT4NCi0tLQ0KIC5tYWlsbWFwICAg ICAgICAgICAgICB8ICAgMSArDQogYXBwL3Rlc3QvdGVzdF9ja3N1bS5jIHwgMTA0ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGxpYi9uZXQvcnRlX2Nrc3VtLmgg ICB8ICAyNiArKysrKysrKystLQ0KIDMgZmlsZXMgY2hhbmdlZCwgMTI4IGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS8ubWFpbG1hcCBiLy5tYWlsbWFwDQppbmRl eCAzNGE5OWY5M2ExLi44MzhiNTQ0YTk3IDEwMDY0NA0KLS0tIGEvLm1haWxtYXANCisrKyBiLy5t YWlsbWFwDQpAQCAtMTg5MSwzICsxODkxLDQgQEAgWm9sdGFuIEtpc3MgPHpvbHRhbi5raXNzQHNj aGFtYW4uaHU+IDx6b2x0YW4ua2lzc0BsaW5hcm8ub3JnPg0KIFpvcmlrIE1hY2h1bHNreSA8em9y aWtAYW1hem9uLmNvbT4NCiBaeXRhIFN6cGFrIDx6eXRhQG1hcnZlbGwuY29tPiA8enJAc2VtaWhh bGYuY29tPg0KIFp5dGEgU3pwYWsgPHp5dGFAbWFydmVsbC5jb20+IDx6eXRhLnN6cGFrQHNlbWlo YWxmLmNvbT4NCitTdSBTYWkgPHN1c2FpLnNzQGJ5dGVkYW5jZS5jb20+DQoNCmRpZmYgLS1naXQg YS9hcHAvdGVzdC90ZXN0X2Nrc3VtLmMgYi9hcHAvdGVzdC90ZXN0X2Nrc3VtLmMNCmluZGV4IGYy YWI1YWY1YTcuLmQyNDM1YTk5NjIgMTAwNjQ0DQotLS0gYS9hcHAvdGVzdC90ZXN0X2Nrc3VtLmMN CisrKyBiL2FwcC90ZXN0L3Rlc3RfY2tzdW0uYw0KQEAgLTg1LDYgKzg1LDM5IEBAIHN0YXRpYyBj b25zdCBjaGFyIHRlc3RfY2tzdW1faXB2NF9vcHRzX3VkcFtdID0gew0KIAkweDAwLCAweDM1LCAw eDAwLCAweDA5LCAweDg5LCAweDZmLCAweDc4LA0KIH07DQoNCisvKiBnZW5lcmF0ZWQgaW4gc2Nh cHkgd2l0aCBFdGhlcigpL0lQKCkvVENQKG9wdGlvbnM9W05PUCxOT1AsVGltZXN0YW1wc10pL29z LnVyYW5kb20oMTEzKSkgKi8NCitzdGF0aWMgY29uc3QgY2hhciB0ZXN0X2Nrc3VtX2lwdjRfdGNw X211bHRpX3NlZ3NbXSA9IHsNCisJMHgwMCwgMHgxNiwgMHgzZSwgMHgwYiwgMHg2YiwgMHhkMiwg MHhlZSwgMHhmZiwNCisJMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHgwOCwgMHgwMCwgMHg0NSwg MHgwMCwNCisJMHgwMCwgMHhhNSwgMHg0NiwgMHgxMCwgMHg0MCwgMHgwMCwgMHg0MCwgMHgwNiwN CisJMHg4MCwgMHhiNSwgMHhjMCwgMHhhOCwgMHhmOSwgMHgxZCwgMHhjMCwgMHhhOCwNCisJMHhm OSwgMHgxZSwgMHhkYywgMHhhMiwgMHgxNCwgMHg1MSwgMHhiYiwgMHg4ZiwNCisJMHhhMCwgMHgw MCwgMHhlNCwgMHg3YywgMHhlNCwgMHhiOCwgMHg4MCwgMHgxMCwNCisJMHgwMiwgMHgwMCwgMHg0 YiwgMHhjMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMSwNCisJMHgwOCwgMHgwYSwgMHg5MCwgMHg2 MCwgMHhmNCwgMHhmZiwgMHgwMywgMHhjNSwNCisJMHhiNCwgMHgxOSwgMHg3NywgMHgzNCwgMHhk NCwgMHhkYywgMHg4NCwgMHg4NiwNCisJMHhmZiwgMHg0NCwgMHgwOSwgMHg2MywgMHgzNiwgMHgy ZSwgMHgyNiwgMHg5YiwNCisJMHg5MCwgMHg3MCwgMHhmMiwgMHhlZCwgMHhjOCwgMHg1YiwgMHg4 NywgMHhhYSwNCisJMHhiNCwgMHg2NywgMHg2YiwgMHgzMiwgMHgzZCwgMHhjNCwgMHhiZiwgMHgx NSwNCisJMHhhOSwgMHgxNiwgMHg2YywgMHgyYSwgMHg5ZCwgMHhiMiwgMHhiNywgMHg2YiwNCisJ MHg1OCwgMHg0NCwgMHg1OCwgMHgxMiwgMHg0YiwgMHg4ZiwgMHhlNSwgMHgxMiwNCisJMHgxMSwg MHg5MCwgMHg5NCwgMHg2OCwgMHgzNywgMHhhZCwgMHgwYSwgMHg5YiwNCisJMHhkNiwgMHg3OSwg MHhmMiwgMHhiNywgMHgzMSwgMHhjZiwgMHg0NCwgMHgyMiwNCisJMHhjOCwgMHg5OSwgMHgzZiwg MHhlNSwgMHhlNywgMHhhYywgMHhjNywgMHgwYiwNCisJMHg4NiwgMHhkZiwgMHhkYSwgMHhlZCwg MHgwYSwgMHgwZiwgMHg4NiwgMHhkNywNCisJMHg0OCwgMHhlMiwgMHhmMSwgMHhjMiwgMHg0Mywg MHhlZCwgMHg0NywgMHgzYSwNCisJMHhlYSwgMHgyNSwgMHgyZCwgMHhkNiwgMHg2MCwgMHgzOCwg MHgzMCwgMHgwNywNCisJMHgyOCwgMHhkZCwgMHgxZiwgMHgwYywgMHhkZCwgMHg3YiwgMHg3Yywg MHhkOSwNCisJMHgzNSwgMHg5ZCwgMHgxNCwgMHhhYSwgMHhjNiwgMHgzNSwgMHhkMSwgMHgwMywN CisJMHgzOCwgMHhiMSwgMHhmNSwNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCB1aW50OF90IHRlc3Rf Y2tzdW1faXB2NF90Y3BfbXVsdGlfc2Vnc19sZW5bXSA9IHsNCisJNjYsICAvKiB0aGUgZmlyc3Qg c2VnIGNvbnRhaW5zIGFsbCBoZWFkZXJzLCBpbmNsdWRpbmcgTDIgdG8gTDQgKi8NCisJNjEsICAv KiB0aGUgc2Vjb25kIHNlZyBsZW5naHQgaXMgb2RkLCB0ZXN0IGJ5dGUgb3JkZXIgaW5kZXBlbmRl bnQgKi8NCisJNTIsICAvKiB0aHJlZSBzZWdzIGFyZSBzdWZmaWNpZW50IHRvIHRlc3QgdGhlIG1v c3QgY29tcGxleCBzY2VuYXJpb3MgKi8NCit9Ow0KKw0KIC8qIHRlc3QgbDMvbDQgY2hlY2tzdW0g YXBpICovDQogc3RhdGljIGludA0KIHRlc3RfbDRfY2tzdW0oc3RydWN0IHJ0ZV9tZW1wb29sICpw a3RtYnVmX3Bvb2wsIGNvbnN0IGNoYXIgKnBrdGRhdGEsIHNpemVfdCBsZW4pDQpAQCAtMjIzLDYg KzI1Niw3MSBAQCB0ZXN0X2w0X2Nrc3VtKHN0cnVjdCBydGVfbWVtcG9vbCAqcGt0bWJ1Zl9wb29s LCBjb25zdCBjaGFyICpwa3RkYXRhLCBzaXplX3QgbGVuKQ0KIAlyZXR1cm4gLTE7DQogfQ0KDQor LyogdGVzdCBsNCBjaGVja3N1bSBhcGkgZm9yIGEgcGFja2V0IHdpdGggbXVsdGlwbGUgbWJ1ZnMg Ki8NCitzdGF0aWMgaW50DQordGVzdF9sNF9ja3N1bV9tdWx0aV9tYnVmcyhzdHJ1Y3QgcnRlX21l bXBvb2wgKnBrdG1idWZfcG9vbCwgY29uc3QgY2hhciAqcGt0ZGF0YSwgc2l6ZV90IGxlbiwNCisJ CQkgICAgIGNvbnN0IHVpbnQ4X3QgKnNlZ3MsIHNpemVfdCBzZWdzX2xlbikNCit7DQorCXN0cnVj dCBydGVfbWJ1ZiAqbVtOQl9NQlVGXSA9IHswfTsNCisJc3RydWN0IHJ0ZV9tYnVmICptX2hkciA9 IE5VTEw7DQorCXN0cnVjdCBydGVfbmV0X2hkcl9sZW5zIGhkcl9sZW5zOw0KKwlzaXplX3QgaSwg b2ZmID0gMDsNCisJdWludDMyX3QgcGFja2V0X3R5cGU7DQorCXZvaWQgKmwzX2hkcjsNCisJdWlu dDMyX3QgbDM7DQorCWNoYXIgKmRhdGE7DQorDQorCWZvciAoaSA9IDA7IGkgPCBzZWdzX2xlbjsg aSsrKSB7DQorCQltW2ldID0gcnRlX3BrdG1idWZfYWxsb2MocGt0bWJ1Zl9wb29sKTsNCisJCWlm IChtW2ldID09IE5VTEwpDQorCQkJR09UT19GQUlMKCJDYW5ub3QgYWxsb2NhdGUgbWJ1ZiIpOw0K Kw0KKwkJZGF0YSA9IHJ0ZV9wa3RtYnVmX2FwcGVuZChtW2ldLCBzZWdzW2ldKTsNCisJCWlmIChk YXRhID09IE5VTEwpDQorCQkJR09UT19GQUlMKCJDYW5ub3QgYXBwZW5kIGRhdGEiKTsNCisNCisJ CXJ0ZV9tZW1jcHkoZGF0YSwgcGt0ZGF0YSArIG9mZiwgc2Vnc1tpXSk7DQorCQlvZmYgKz0gc2Vn c1tpXTsNCisNCisJCWlmIChtX2hkcikgew0KKwkJCWlmIChydGVfcGt0bWJ1Zl9jaGFpbihtX2hk ciwgbVtpXSkpDQorCQkJCUdPVE9fRkFJTCgiQ2Fubm90IGNoYWluIG1idWYiKTsNCisJCX0gZWxz ZSB7DQorCQkJbV9oZHIgPSBtW2ldOw0KKwkJfQ0KKwl9DQorDQorCWlmIChvZmYgIT0gbGVuKQ0K KwkJR09UT19GQUlMKCJJbnZhbGlkIHNlZ3MiKTsNCisNCisJcGFja2V0X3R5cGUgPSBydGVfbmV0 X2dldF9wdHlwZShtX2hkciwgJmhkcl9sZW5zLCBSVEVfUFRZUEVfQUxMX01BU0spOw0KKwlsMyA9 IHBhY2tldF90eXBlICYgUlRFX1BUWVBFX0wzX01BU0s7DQorDQorCWwzX2hkciA9IHJ0ZV9wa3Rt YnVmX210b2Rfb2Zmc2V0KG1faGRyLCB2b2lkICosIGhkcl9sZW5zLmwyX2xlbik7DQorCW9mZiA9 IGhkcl9sZW5zLmwyX2xlbiArIGhkcl9sZW5zLmwzX2xlbjsNCisNCisJaWYgKGwzID09IFJURV9Q VFlQRV9MM19JUFY0IHx8IGwzID09IFJURV9QVFlQRV9MM19JUFY0X0VYVCkgew0KKwkJaWYgKHJ0 ZV9pcHY0X3VkcHRjcF9ja3N1bV9tYnVmX3ZlcmlmeShtX2hkciwgbDNfaGRyLCBvZmYpICE9IDAp DQorCQkJR09UT19GQUlMKCJJbnZhbGlkIEw0IGNoZWNrc3VtIHZlcmlmaWNhdGlvbiBmb3IgbXVs dGlwbGUgbWJ1ZnMiKTsNCisJfSBlbHNlIGlmIChsMyA9PSBSVEVfUFRZUEVfTDNfSVBWNiB8fCBs MyA9PSBSVEVfUFRZUEVfTDNfSVBWNl9FWFQpIHsNCisJCWlmIChydGVfaXB2Nl91ZHB0Y3BfY2tz dW1fbWJ1Zl92ZXJpZnkobV9oZHIsIGwzX2hkciwgb2ZmKSAhPSAwKQ0KKwkJCUdPVE9fRkFJTCgi SW52YWxpZCBMNCBjaGVja3N1bSB2ZXJpZmljYXRpb24gZm9yIG11bHRpcGxlIG1idWZzIik7DQor CX0NCisNCisJZm9yIChpID0gMDsgaSA8IHNlZ3NfbGVuOyBpKyspDQorCQlydGVfcGt0bWJ1Zl9m cmVlKG1baV0pOw0KKw0KKwlyZXR1cm4gMDsNCisNCitmYWlsOg0KKwlmb3IgKGkgPSAwOyBpIDwg c2Vnc19sZW47IGkrKykgew0KKwkJaWYgKG1baV0pDQorCQkJcnRlX3BrdG1idWZfZnJlZShtW2ld KTsNCisJfQ0KKw0KKwlyZXR1cm4gLTE7DQorfQ0KKw0KIHN0YXRpYyBpbnQNCiB0ZXN0X2Nrc3Vt KHZvaWQpDQogew0KQEAgLTI1Niw2ICszNTQsMTIgQEAgdGVzdF9ja3N1bSh2b2lkKQ0KIAkJCSAg c2l6ZW9mKHRlc3RfY2tzdW1faXB2NF9vcHRzX3VkcCkpIDwgMCkNCiAJCUdPVE9fRkFJTCgiY2hl Y2tzdW0gZXJyb3Igb24gaXB2NF9vcHRzX3VkcCIpOw0KDQorCWlmICh0ZXN0X2w0X2Nrc3VtX211 bHRpX21idWZzKHBrdG1idWZfcG9vbCwgdGVzdF9ja3N1bV9pcHY0X3RjcF9tdWx0aV9zZWdzLA0K KwkJCSAgc2l6ZW9mKHRlc3RfY2tzdW1faXB2NF90Y3BfbXVsdGlfc2VncyksDQorCQkJICB0ZXN0 X2Nrc3VtX2lwdjRfdGNwX211bHRpX3NlZ3NfbGVuLA0KKwkJCSAgc2l6ZW9mKHRlc3RfY2tzdW1f aXB2NF90Y3BfbXVsdGlfc2Vnc19sZW4pKSA8IDApDQorCQlHT1RPX0ZBSUwoImNoZWNrc3VtIGVy cm9yIG9uIG11bHRpIG1idWZzIGNoZWNrIik7DQorDQogCXJ0ZV9tZW1wb29sX2ZyZWUocGt0bWJ1 Zl9wb29sKTsNCg0KIAlyZXR1cm4gMDsNCg0KZGlmZiAtLWdpdCBhL2xpYi9uZXQvcnRlX2Nrc3Vt LmggYi9saWIvbmV0L3J0ZV9ja3N1bS5oDQppbmRleCBhOGU4OTI3OTUyLi5hYTU4NGQ1ZjhkIDEw MDY0NA0KLS0tIGEvbGliL25ldC9ydGVfY2tzdW0uaA0KKysrIGIvbGliL25ldC9ydGVfY2tzdW0u aA0KQEAgLTgwLDYgKzgwLDI1IEBAIF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2UodWludDMyX3Qgc3Vt KQ0KIAlyZXR1cm4gKHVpbnQxNl90KXN1bTsNCiB9DQoNCisvKioNCisgKiBAaW50ZXJuYWwgUmVk dWNlIGEgc3VtIHRvIHRoZSBub24tY29tcGxlbWVudGVkIGNoZWNrc3VtLg0KKyAqIEhlbHBlciBy b3V0aW5lIGZvciB0aGUgcnRlX3Jhd19ja3N1bV9tYnVmKCkuDQorICoNCisgKiBAcGFyYW0gc3Vt DQorICogICBWYWx1ZSBvZiB0aGUgc3VtLg0KKyAqIEByZXR1cm4NCisgKiAgIFRoZSBub24tY29t cGxlbWVudGVkIGNoZWNrc3VtLg0KKyAqLw0KK3N0YXRpYyBpbmxpbmUgdWludDE2X3QNCitfX3J0 ZV9yYXdfY2tzdW1fcmVkdWNlX3U2NCh1aW50NjRfdCBzdW0pDQorew0KKwl1aW50MzJfdCB0bXA7 DQorDQorCXRtcCA9IF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2UoKHVpbnQzMl90KXN1bSk7DQorCXRt cCArPSBfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlKCh1aW50MzJfdCkoc3VtID4+IDMyKSk7DQorCXJl dHVybiBfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlKHRtcCk7DQorfQ0KKw0KIC8qKg0KICAqIFByb2Nl c3MgdGhlIG5vbi1jb21wbGVtZW50ZWQgY2hlY2tzdW0gb2YgYSBidWZmZXIuDQogICoNCkBAIC0x MTksOCArMTM4LDkgQEAgcnRlX3Jhd19ja3N1bV9tYnVmKGNvbnN0IHN0cnVjdCBydGVfbWJ1ZiAq bSwgdWludDMyX3Qgb2ZmLCB1aW50MzJfdCBsZW4sDQogew0KIAljb25zdCBzdHJ1Y3QgcnRlX21i dWYgKnNlZzsNCiAJY29uc3QgY2hhciAqYnVmOw0KLQl1aW50MzJfdCBzdW0sIHRtcDsNCisJdWlu dDMyX3QgdG1wOw0KIAl1aW50MzJfdCBzZWdsZW4sIGRvbmU7DQorCXVpbnQ2NF90IHN1bTsNCg0K IAkvKiBlYXN5IGNhc2U6IGFsbCBkYXRhIGluIHRoZSBmaXJzdCBzZWdtZW50ICovDQogCWlmIChv ZmYgKyBsZW4gPD0gcnRlX3BrdG1idWZfZGF0YV9sZW4obSkpIHsNCkBAIC0xNTcsNyArMTc3LDcg QEAgcnRlX3Jhd19ja3N1bV9tYnVmKGNvbnN0IHN0cnVjdCBydGVfbWJ1ZiAqbSwgdWludDMyX3Qg b2ZmLCB1aW50MzJfdCBsZW4sDQogCWZvciAoOzspIHsNCiAJCXRtcCA9IF9fcnRlX3Jhd19ja3N1 bShidWYsIHNlZ2xlbiwgMCk7DQogCQlpZiAoZG9uZSAmIDEpDQotCQkJdG1wID0gcnRlX2Jzd2Fw MTYoKHVpbnQxNl90KXRtcCk7DQorCQkJdG1wID0gcnRlX2Jzd2FwMzIodG1wKTsNCiAJCXN1bSAr PSB0bXA7DQogCQlkb25lICs9IHNlZ2xlbjsNCiAJCWlmIChkb25lID09IGxlbikNCkBAIC0xNjks NyArMTg5LDcgQEAgcnRlX3Jhd19ja3N1bV9tYnVmKGNvbnN0IHN0cnVjdCBydGVfbWJ1ZiAqbSwg dWludDMyX3Qgb2ZmLCB1aW50MzJfdCBsZW4sDQogCQkJc2VnbGVuID0gbGVuIC0gZG9uZTsNCiAJ fQ0KDQotCSpja3N1bSA9IF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2Uoc3VtKTsNCisJKmNrc3VtID0g X19ydGVfcmF3X2Nrc3VtX3JlZHVjZV91NjQoc3VtKTsNCiAJcmV0dXJuIDA7DQogfQ0KDQotLSAN CjIuMzkuMiAoQXBwbGUgR2l0LTE0MykNCg0K --_002_53b0c9ee0e4b4f8e8d60f0f7f18b9d91huaweicom_--