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 4C91346C5F; Thu, 31 Jul 2025 12:51:37 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D13B5402C3; Thu, 31 Jul 2025 12:51:36 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 7FC3A402AB for ; Thu, 31 Jul 2025 12:51:35 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.231]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4bt5SH5z1Xz6J6G5; Thu, 31 Jul 2025 18:49:35 +0800 (CST) Received: from frapeml500001.china.huawei.com (unknown [7.182.85.94]) by mail.maildlp.com (Postfix) with ESMTPS id 7E9751402F4; Thu, 31 Jul 2025 18:51:34 +0800 (CST) Received: from frapeml500002.china.huawei.com (7.182.85.205) by frapeml500001.china.huawei.com (7.182.85.94) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 31 Jul 2025 12:51:34 +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; Thu, 31 Jul 2025 12:51:34 +0200 From: Marat Khalili To: =?utf-8?B?6IuP6LWb?= , "jasvinder.singh@intel.com" CC: "dev@dpdk.org" Subject: RE: [PATCH] net/cksum: compute raw cksum for several segments Thread-Topic: [PATCH] net/cksum: compute raw cksum for several segments Thread-Index: AQHcAgFFyrVyZFfIZUe005YUgyycLbRMCseA Date: Thu, 31 Jul 2025 10:51:34 +0000 Message-ID: <2b98417ad1da4df2ac4e577b9c3938ae@huawei.com> References: 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.16] Content-Type: multipart/alternative; boundary="_000_2b98417ad1da4df2ac4e577b9c3938aehuaweicom_" 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 --_000_2b98417ad1da4df2ac4e577b9c3938aehuaweicom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkhIFRoYW5rcyBmb3Igc3VibWl0dGluZyB0aGlzLiBTb21lIGlubGluZSBjb21tZW50cyBmb2xs b3cuDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiDoi4/otZsgPHN1 c2FpLnNzQGJ5dGVkYW5jZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5IDMxIEp1bHkgMjAyNSAxMDo1 NQ0KPiBUbzogamFzdmluZGVyLnNpbmdoQGludGVsLmNvbQ0KPiBDYzogZGV2QGRwZGsub3JnDQo+ IFN1YmplY3Q6IFtQQVRDSF0gbmV0L2Nrc3VtOiBjb21wdXRlIHJhdyBja3N1bSBmb3Igc2V2ZXJh bCBzZWdtZW50cw0KPg0KPiBUaGUgcnRlX3Jhd19ja3N1bV9tYnVmIGZ1bmN0aW9uIGlzIHVzZWQg dG8gY29tcHV0ZQ0KPiB0aGUgcmF3IGNoZWNrc3VtIG9mIGEgcGFja2V0Lg0KPiBJZiB0aGUgcGFj a2V0IHBheWxvYWQgc3RvcmVkIGluIG11bHRpIG1idWYsIHRoZSBmdW5jdGlvbg0KPiB3aWxsIGdv dG8gdGhlIGhhcmQgY2FzZS4gSW4gaGFyZCBjYXNlLA0KPiB0aGUgdmFyaWFibGUgJ3RtcCcgaXMg YSB0eXBlIG9mIHVpbnQzMl90LA0KPiBzbyBydGVfYnN3YXAxNiB3aWxsIGRyb3AgaGlnaCAxNiBi aXQuDQo+IE1lYW53aGlsZSwgdGhlIHZhcmlhYmxlICdzdW0nIGlzIGEgdHlwZSBvZiB1aW50MzJf dCwNCj4gc28gJ3N1bSArPSB0bXAnIHdpbGwgZHJvcCB0aGUgY2Fycnkgd2hlbiBvdmVyZmxvdy4N Cj4gQm90aCBkcm9wIHdpbGwgbWFrZSBja3N1bSBpbmNvcnJlY3QuDQo+IFRoaXMgY29tbWl0IGZp eGVzIHRoZSBhYm92ZSBidWcuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IFN1IFNhaSA8c3VzYWkuc3NA Ynl0ZWRhbmNlLmNvbT4NCg0KPiBkaWZmIC0tZ2l0IGEvbGliL25ldC9ydGVfY2tzdW0uaCBiL2xp Yi9uZXQvcnRlX2Nrc3VtLmgNCj4gaW5kZXggYThlODkyNzk1Mi4uYWE1ODRkNWY4ZCAxMDA2NDQN Cj4gLS0tIGEvbGliL25ldC9ydGVfY2tzdW0uaA0KPiArKysgYi9saWIvbmV0L3J0ZV9ja3N1bS5o DQo+IEBAIC04MCw2ICs4MCwyNSBAQCBfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlKHVpbnQzMl90IHN1 bSkNCj4gICAgICAgICAgcmV0dXJuICh1aW50MTZfdClzdW07DQo+ICB9DQo+DQo+ICsvKioNCj4g KyAqIEBpbnRlcm5hbCBSZWR1Y2UgYSBzdW0gdG8gdGhlIG5vbi1jb21wbGVtZW50ZWQgY2hlY2tz dW0uDQo+ICsgKiBIZWxwZXIgcm91dGluZSBmb3IgdGhlIHJ0ZV9yYXdfY2tzdW1fbWJ1ZigpLg0K PiArICoNCj4gKyAqIEBwYXJhbSBzdW0NCj4gKyAqICAgVmFsdWUgb2YgdGhlIHN1bS4NCj4gKyAq IEByZXR1cm4NCj4gKyAqICAgVGhlIG5vbi1jb21wbGVtZW50ZWQgY2hlY2tzdW0uDQo+ICsgKi8N Cj4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gK19fcnRlX3Jhd19ja3N1bV9yZWR1Y2VfdTY0 KHVpbnQ2NF90IHN1bSkNCj4gK3sNCj4gKyAgICAgICAgdWludDMyX3QgdG1wOw0KPiArDQo+ICsg ICAgICAgIHRtcCA9IF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2UoKHVpbnQzMl90KXN1bSk7DQo+ICsg ICAgICAgIHRtcCArPSBfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlKCh1aW50MzJfdCkoc3VtID4+IDMy KSk7DQoNCldoYXQgaWYgdGhpcyBhZGRpdGlvbiBvdmVyZmxvd3M/DQoNClRvIG15IHRhc3RlIEkg d291bGQgbm90IHRyeSB0byBjYWxsIGBfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlIGAgYW5kIGluc3Rl YWQgcmVkdWNlIHVpbnQ2NF90IGRpcmVjdGx5IHRvIHVpbnQxNl90LCBidXQgaXTigJlzIHVwIHRv IHlvdS4NCg0KPiArICAgICAgICByZXR1cm4gX19ydGVfcmF3X2Nrc3VtX3JlZHVjZSh0bXApOw0K PiArfQ0KPiArDQo+ICAvKioNCj4gICAqIFByb2Nlc3MgdGhlIG5vbi1jb21wbGVtZW50ZWQgY2hl Y2tzdW0gb2YgYSBidWZmZXIuDQo+ICAgKg0KPiBAQCAtMTE5LDggKzEzOCw5IEBAIHJ0ZV9yYXdf Y2tzdW1fbWJ1Zihjb25zdCBzdHJ1Y3QgcnRlX21idWYgKm0sIHVpbnQzMl90IG9mZiwgdWludDMy X3QgbGVuLA0KPiAgew0KPiAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX21idWYgKnNlZzsNCj4g ICAgICAgICAgY29uc3QgY2hhciAqYnVmOw0KPiAtICAgICAgICB1aW50MzJfdCBzdW0sIHRtcDsN Cj4gKyAgICAgICAgdWludDMyX3QgdG1wOw0KPiAgICAgICAgICB1aW50MzJfdCBzZWdsZW4sIGRv bmU7DQo+ICsgICAgICAgIHVpbnQ2NF90IHN1bTsNCj4NCj4gICAgICAgICAgLyogZWFzeSBjYXNl OiBhbGwgZGF0YSBpbiB0aGUgZmlyc3Qgc2VnbWVudCAqLw0KPiAgICAgICAgICBpZiAob2ZmICsg bGVuIDw9IHJ0ZV9wa3RtYnVmX2RhdGFfbGVuKG0pKSB7DQo+IEBAIC0xNTcsNyArMTc3LDcgQEAg cnRlX3Jhd19ja3N1bV9tYnVmKGNvbnN0IHN0cnVjdCBydGVfbWJ1ZiAqbSwgdWludDMyX3Qgb2Zm LCB1aW50MzJfdCBsZW4sDQo+ICAgICAgICAgIGZvciAoOzspIHsNCj4gICAgICAgICAgICAgICAg ICB0bXAgPSBfX3J0ZV9yYXdfY2tzdW0oYnVmLCBzZWdsZW4sIDApOw0KPiAgICAgICAgICAgICAg ICAgIGlmIChkb25lICYgMSkNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHJ0ZV9i c3dhcDE2KCh1aW50MTZfdCl0bXApOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0g cnRlX2Jzd2FwMzIodG1wKTsNCg0KVGhpcyBwYXJ0IHByb2JhYmx5IGRlc2VydmVzIGEgY29tbWVu dCwgc2luY2Ugd2Ugb25seSBuZWVkIHRvIHN3YXAgb2RkIGFuZCBldmVuIGJ5dGVzLCBidXQgd2Ug aW5zdGVhZCByZXZlcnNlIGFsbCBvZiB0aGVtIGFidXNpbmcgdGhlIGZhY3QgdGhhdCBvcmRlciBv ZiAyLWJ5dGUgcGFpcnMgZG9lcyBub3QgbWF0dGVyIGZvciB0aGUgYWxnb3JpdGhtLg0KDQo+ICAg ICAgICAgICAgICAgICAgc3VtICs9IHRtcDsNCj4gICAgICAgICAgICAgICAgICBkb25lICs9IHNl Z2xlbjsNCj4gICAgICAgICAgICAgICAgICBpZiAoZG9uZSA9PSBsZW4pDQo+IEBAIC0xNjksNyAr MTg5LDcgQEAgcnRlX3Jhd19ja3N1bV9tYnVmKGNvbnN0IHN0cnVjdCBydGVfbWJ1ZiAqbSwgdWlu dDMyX3Qgb2ZmLCB1aW50MzJfdCBsZW4sDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWds ZW4gPSBsZW4gLSBkb25lOw0KPiAgICAgICAgICB9DQo+DQo+IC0gICAgICAgICpja3N1bSA9IF9f cnRlX3Jhd19ja3N1bV9yZWR1Y2Uoc3VtKTsNCj4gKyAgICAgICAgKmNrc3VtID0gX19ydGVfcmF3 X2Nrc3VtX3JlZHVjZV91NjQoc3VtKTsNCj4gICAgICAgICAgcmV0dXJuIDA7DQo+ICB9DQoNCkNo YW5nZXMgdG8gdGhpcyBmdW5jdGlvbiBsb29rIGNvcnJlY3QgdG8gbXkgZXllLCBidXQgZ2l2ZW4g aG93IG1hbnkgcGl0ZmFsbHMgd2UgaGF2ZSBhbHJlYWR5IGZvdW5kIEkgdGhpbmsgd2UgbmVlZCB0 ZXN0cy4NCg== --_000_2b98417ad1da4df2ac4e577b9c3938aehuaweicom_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkRlbmdYaWFuOw0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAx IDE7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUg NSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IlxARGVuZ1hpYW4i Ow0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMg Ki8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBj bTsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm O30NCnAuTXNvUGxhaW5UZXh0LCBsaS5Nc29QbGFpblRleHQsIGRpdi5Nc29QbGFpblRleHQNCgl7 bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJQbGFpbiBUZXh0IENoYXIi Ow0KCW1hcmdpbjowY207DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJy aSIsc2Fucy1zZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUtdHlwZTpwZXJz b25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3 aW5kb3d0ZXh0O30NCnNwYW4uUGxhaW5UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiUGxhaW4g VGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IlBs YWluIFRleHQiOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCi5Nc29DaHBE ZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7 fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3 Mi4wcHQgNzIuMHB0IDcyLjBwdCA3Mi4wcHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldv cmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hh cGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlm XS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQi Pg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94 bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIg dmxpbms9InB1cnBsZSIgc3R5bGU9IndvcmQtd3JhcDpicmVhay13b3JkIj4NCjxkaXYgY2xhc3M9 IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSEgVGhhbmtzIGZvciBzdWJt aXR0aW5nIHRoaXMuIFNvbWUgaW5saW5lIGNvbW1lbnRzIGZvbGxvdy48bzpwPjwvbzpwPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b1BsYWluVGV4dCI+Jmd0OyAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLTxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyBGcm9tOiA8c3BhbiBsYW5nPSJaSC1DTiIgc3R5 bGU9ImZvbnQtZmFtaWx5OkRlbmdYaWFuIj7oi4/otZs8L3NwYW4+ICZsdDtzdXNhaS5zc0BieXRl ZGFuY2UuY29tJmd0Ow0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7 IFNlbnQ6IFRodXJzZGF5IDMxIEp1bHkgMjAyNSAxMDo1NTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+Jmd0OyBUbzogamFzdmluZGVyLnNpbmdoQGludGVsLmNvbTxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyBDYzogZGV2QGRwZGsub3JnPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7IFN1YmplY3Q6IFtQQVRDSF0gbmV0 L2Nrc3VtOiBjb21wdXRlIHJhdyBja3N1bSBmb3Igc2V2ZXJhbCBzZWdtZW50czxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPiZndDsgVGhlIHJ0ZV9yYXdfY2tzdW1fbWJ1ZiBmdW5jdGlvbiBpcyB1c2Vk IHRvIGNvbXB1dGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsgdGhl IHJhdyBjaGVja3N1bSBvZiBhIHBhY2tldC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPiZndDsgSWYgdGhlIHBhY2tldCBwYXlsb2FkIHN0b3JlZCBpbiBtdWx0aSBtYnVmLCB0 aGUgZnVuY3Rpb248bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsgd2ls bCBnb3RvIHRoZSBoYXJkIGNhc2UuIEluIGhhcmQgY2FzZSw8bzpwPjwvbzpwPjwvcD4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPiZndDsgdGhlIHZhcmlhYmxlICd0bXAnIGlzIGEgdHlwZSBvZiB1aW50 MzJfdCw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsgc28gcnRlX2Jz d2FwMTYgd2lsbCBkcm9wIGhpZ2ggMTYgYml0LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCI+Jmd0OyBNZWFud2hpbGUsIHRoZSB2YXJpYWJsZSAnc3VtJyBpcyBhIHR5cGUgb2Yg dWludDMyX3QsPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7IHNvICdz dW0gJiM0Mzs9IHRtcCcgd2lsbCBkcm9wIHRoZSBjYXJyeSB3aGVuIG92ZXJmbG93LjxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyBCb3RoIGRyb3Agd2lsbCBtYWtlIGNr c3VtIGluY29ycmVjdC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsg VGhpcyBjb21taXQgZml4ZXMgdGhlIGFib3ZlIGJ1Zy48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPiZndDsgPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m Z3Q7IFNpZ25lZC1vZmYtYnk6IFN1IFNhaSAmbHQ7c3VzYWkuc3NAYnl0ZWRhbmNlLmNvbSZndDs8 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyBkaWZmIC0tZ2l0IGEvbGliL25ldC9ydGVfY2tz dW0uaCBiL2xpYi9uZXQvcnRlX2Nrc3VtLmg8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPiZndDsgaW5kZXggYThlODkyNzk1Mi4uYWE1ODRkNWY4ZCAxMDA2NDQ8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsgLS0tIGEvbGliL25ldC9ydGVfY2tzdW0u aDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAmIzQzOyYjNDM7JiM0 MzsgYi9saWIvbmV0L3J0ZV9ja3N1bS5oPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj4mZ3Q7IEBAIC04MCw2ICYjNDM7ODAsMjUgQEAgX19ydGVfcmF3X2Nrc3VtX3JlZHVjZSh1 aW50MzJfdCBzdW0pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVy biAodWludDE2X3Qpc3VtOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0 OyZuYnNwOyB9PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7 Jm5ic3A7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAmIzQzOy8q KjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAmIzQzOyAqIEBpbnRl cm5hbCBSZWR1Y2UgYSBzdW0gdG8gdGhlIG5vbi1jb21wbGVtZW50ZWQgY2hlY2tzdW0uPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7ICYjNDM7ICogSGVscGVyIHJvdXRp bmUgZm9yIHRoZSBydGVfcmF3X2Nrc3VtX21idWYoKS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPiZndDsgJiM0MzsgKjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+Jmd0OyAmIzQzOyAqIEBwYXJhbSBzdW08bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPiZndDsgJiM0MzsgKiZuYnNwOyZuYnNwOyBWYWx1ZSBvZiB0aGUgc3VtLjxvOnA+ PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAmIzQzOyAqIEByZXR1cm48bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsgJiM0MzsgKiZuYnNwOyZuYnNw OyBUaGUgbm9uLWNvbXBsZW1lbnRlZCBjaGVja3N1bS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPiZndDsgJiM0MzsgKi88bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPiZndDsgJiM0MztzdGF0aWMgaW5saW5lIHVpbnQxNl90PG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7ICYjNDM7X19ydGVfcmF3X2Nrc3VtX3JlZHVjZV91NjQo dWludDY0X3Qgc3VtKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAm IzQzO3s8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsgJiM0MzsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDMyX3QgdG1wOzxvOnA+ PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAmIzQzOzxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyB0bXAgPSBfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlKCh1aW50MzJf dClzdW0pOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAmIzQzOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0bXAgJiM0Mzs9IF9fcnRl X3Jhd19ja3N1bV9yZWR1Y2UoKHVpbnQzMl90KShzdW0gJmd0OyZndDsgMzIpKTs8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+V2hhdCBpZiB0aGlzIGFkZGl0aW9uIG92ZXJmbG93cz88bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+VG8gbXkgdGFzdGUgSSB3b3VsZCBub3QgdHJ5IHRvIGNhbGwgYF9fcnRl X3Jhd19ja3N1bV9yZWR1Y2UgYCBhbmQgaW5zdGVhZCByZWR1Y2UgdWludDY0X3QgZGlyZWN0bHkg dG8gdWludDE2X3QsIGJ1dCBpdOKAmXMgdXAgdG8geW91LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij4mZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJl dHVybiBfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlKHRtcCk7PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj4mZ3Q7ICYjNDM7fTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+Jmd0OyAmIzQzOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0 OyZuYnNwOyAvKio8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsmbmJz cDsmbmJzcDsgKiBQcm9jZXNzIHRoZSBub24tY29tcGxlbWVudGVkIGNoZWNrc3VtIG9mIGEgYnVm ZmVyLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyZuYnNwOyZuYnNw OyAqPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7IEBAIC0xMTksOCAm IzQzOzEzOCw5IEBAIHJ0ZV9yYXdfY2tzdW1fbWJ1Zihjb25zdCBzdHJ1Y3QgcnRlX21idWYgKm0s IHVpbnQzMl90IG9mZiwgdWludDMyX3QgbGVuLDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCI+Jmd0OyZuYnNwOyB7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IGNvbnN0IHN0cnVjdCBydGVfbWJ1ZiAqc2VnOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBjb25zdCBjaGFyICpidWY7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj4mZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgdWludDMyX3Qgc3VtLCB0bXA7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij4mZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVp bnQzMl90IHRtcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDMy X3Qgc2VnbGVuLCBkb25lOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0 OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1aW50NjRf dCBzdW07PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7Jm5i c3A7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAvKiBlYXN5IGNhc2U6 IGFsbCBkYXRhIGluIHRoZSBmaXJzdCBzZWdtZW50ICovPG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGlmIChvZmYgJiM0MzsgbGVuICZsdDs9IHJ0ZV9wa3RtYnVmX2RhdGFf bGVuKG0pKSB7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7IEBAIC0x NTcsNyAmIzQzOzE3Nyw3IEBAIHJ0ZV9yYXdfY2tzdW1fbWJ1Zihjb25zdCBzdHJ1Y3QgcnRlX21i dWYgKm0sIHVpbnQzMl90IG9mZiwgdWludDMyX3QgbGVuLDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBmb3IgKDs7KSB7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IHRtcCA9IF9fcnRlX3Jhd19ja3N1bShidWYsIHNlZ2xlbiwgMCk7PG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IGlmIChkb25lICZhbXA7IDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj4mZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdG1wID0gcnRlX2Jzd2Fw MTYoKHVpbnQxNl90KXRtcCk7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m Z3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRtcCA9IHJ0ZV9ic3dhcDMyKHRtcCk7 PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoaXMgcGFydCBwcm9iYWJseSBkZXNlcnZlcyBhIGNv bW1lbnQsIHNpbmNlIHdlIG9ubHkgbmVlZCB0byBzd2FwIG9kZCBhbmQgZXZlbiBieXRlcywgYnV0 IHdlIGluc3RlYWQgcmV2ZXJzZSBhbGwgb2YgdGhlbSBhYnVzaW5nIHRoZSBmYWN0IHRoYXQgb3Jk ZXIgb2YgMi1ieXRlIHBhaXJzIGRvZXMgbm90IG1hdHRlciBmb3IgdGhlIGFsZ29yaXRobS48bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBzdW0gJiM0Mzs9IHRtcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgZG9uZSAmIzQzOz0gc2VnbGVuOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAo ZG9uZSA9PSBsZW4pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7IEBA IC0xNjksNyAmIzQzOzE4OSw3IEBAIHJ0ZV9yYXdfY2tzdW1fbWJ1Zihjb25zdCBzdHJ1Y3QgcnRl X21idWYgKm0sIHVpbnQzMl90IG9mZiwgdWludDMyX3QgbGVuLDxvOnA+PC9vOnA+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyBzZWdsZW4gPSBsZW4gLSBkb25lOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyB9PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7Jm5i c3A7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyAtJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICpja3N1bSA9IF9fcnRlX3Jhd19ja3N1 bV9yZWR1Y2Uoc3VtKTs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsg JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKmNrc3VtID0g X19ydGVfcmF3X2Nrc3VtX3JlZHVjZV91NjQoc3VtKTs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgcmV0dXJuIDA7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj4mZ3Q7Jm5ic3A7IH08bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Q2hhbmdlcyB0byB0aGlz IGZ1bmN0aW9uIGxvb2sgY29ycmVjdCB0byBteSBleWUsIGJ1dCBnaXZlbiBob3cgbWFueSBwaXRm YWxscyB3ZSBoYXZlIGFscmVhZHkgZm91bmQgSSB0aGluayB3ZSBuZWVkIHRlc3RzLjxvOnA+PC9v OnA+PC9wPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo= --_000_2b98417ad1da4df2ac4e577b9c3938aehuaweicom_--