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 A6A5A41CB0; Thu, 16 Feb 2023 10:49:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 83A3D40EE3; Thu, 16 Feb 2023 10:49:32 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 8B88F40E0F for ; Thu, 16 Feb 2023 10:49:31 +0100 (CET) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01D941EB.F64EDADB" Subject: RE: [PATCH v3] hash: add XOR32 hash function Date: Thu, 16 Feb 2023 10:49:28 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87741@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v3] hash: add XOR32 hash function Thread-Index: AdlBhiRpRXmJNYfMSj62lGLoLmcN4AAZS1Fg References: <20230215105442.3878441-1-qobilidop@gmail.com> <20230215110630.3885175-1-qobilidop@gmail.com> <98CBD80474FA8B44BF855DF32C47DC35D87740@smartserver.smartshare.dk> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Bili Dong" Cc: , , , , , 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 This is a multi-part message in MIME format. ------_=_NextPart_001_01D941EB.F64EDADB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQmlsaSwNCg0KIA0KDQpPSy4gSeKAmW0gbm90IGZhbWlsaWFyIHdpdGggdGhpcyBsaWJyYXJ5 LCBidXQgdGhlIG90aGVyIGZ1bmN0aW9uIGFzc3VtZXMgOCBieXRlIGFsaWduZWQgZGF0YSwgc28g dGhpcyBzaG91bGQgYmUgT0sgdG9vLg0KDQogDQoNCkFuZCB3aXRoIHRoZSByZXF1aXJlZCBmdW5j dGlvbiBzaWduYXR1cmUsIEkgbm93IHVuZGVyc3RhbmQgd2h5IHlvdSB1c2UgZW5kaWFuIGNvbnZl cnNpb25zIHRoaXMgd2F5Lg0KDQogDQoNCkFja2VkLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21h cnRzaGFyZXN5c3RlbXMuY29tPg0KDQogDQoNCiANCg0KTWVkIHZlbmxpZyBoaWxzZW4gLyBLaW5k IHJlZ2FyZHMsDQoNCi1Nb3J0ZW4gQnLDuHJ1cA0KDQogDQoNCkZyb206IEJpbGkgRG9uZyBbbWFp bHRvOnFvYmlsaWRvcEBnbWFpbC5jb21dIA0KU2VudDogV2VkbmVzZGF5LCAxNSBGZWJydWFyeSAy MDIzIDIyLjQwDQpUbzogTW9ydGVuIEJyw7hydXANCkNjOiB5aXBlbmcxLndhbmdAaW50ZWwuY29t OyBzYW1laC5nb2JyaWVsQGludGVsLmNvbTsgYnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb207IHZs YWRpbWlyLm1lZHZlZGtpbkBpbnRlbC5jb207IGNyaXN0aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29t OyBkZXZAZHBkay5vcmcNClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjNdIGhhc2g6IGFkZCBYT1IzMiBo YXNoIGZ1bmN0aW9uDQoNCiANCg0KSGkgTW9ydGVuLA0KDQogDQoNClRoYW5rcyBmb3IgeW91ciBj b21tZW50cyENCg0KIA0KDQpGb3IgZW5kaWFubmVzcyBjb252ZXJzaW9uLCBJIGRvdWJsZS1jaGVj a2VkIG15IHVzYWdlcy4gSSBkaWQgdXNlIGJvdGggcnRlX2NwdV90b19iZV8zMigpIGFuZCBydGVf YmVfdG9fY3B1XzMyKCkuIEkgbWlnaHQgaGF2ZSBtaXNzZWQgc29tZXRoaW5nIGJ1dCBJIHRoaW5r IEkgdXNlZCB0aGVtICg0IG9jY3VycmVuY2VzKSBpbiBhIHNlbWFudGljYWxseSBtZWFuaW5nZnVs IHdheS4gQ291bGQgeW91IHBvaW50IG1lIHRvIHRoZSBsaW5lcyB0aGF0IGFyZSBjb25mdXNpbmc/ DQoNCiANCg0KVGhlIGhhc2ggZnVuY3Rpb24gc2lnbmF0dXJlIGhhcyB0byBjb25mb3JtIHRvIGh0 dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2RwZGsvdjIyLjExLjEvc291cmNlL2xpYi90YWJsZS9y dGVfc3d4X2hhc2hfZnVuYy5oI0wzMSwgc28gSSBkb24ndCBoYXZlIHRoZSBmcmVlZG9tIHRvIGNo YW5nZSB0aGUgcGFyYW1ldGVyIHR5cGUgdG8gcnRlX2JlMzJfdCwgYWx0aG91Z2ggcGVyc29uYWxs eSBJIGFncmVlIHdpdGggeW91IGFuZCB3b3VsZCBwcmVmZXIgdG8gbWFrZSBldmVyeXRoaW5nIGNv bnNpc3RlbnRseSBiaWctZW5kaWFuIGhlcmUuDQoNCiANCg0KSSdtIG5vdCBzdXJlIGFib3V0IHRo ZSBieXRlIGFsaWdubWVudCBhc3N1bXB0aW9ucyB1c2VkIGluIGhhc2ggZnVuY3Rpb25zLiBNeSBp bXBsZW1lbnRhdGlvbiBiYXNpY2FsbHkgZm9sbG93cyB0aGUgZXhpc3RpbmcgQ1JDMzIgaGFzaDog aHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vZHBkay92MjIuMTEuMS9zb3VyY2UvbGliL2hhc2gv cnRlX2hhc2hfY3JjLmgjTDE2OCwgYW5kIEkgZG9uJ3Qgc2VlIGJ5dGUgYWxpZ25tZW50IGhhbmRs ZWQgdGhlcmUuIE1heWJlIHNvbWVvbmUgbW9yZSBmYW1pbGlhciB3aXRoIGxpYi9oYXNoLyBjb3Vs ZCBwcm92aWRlIHNvbWUgY29udGV4dCBvbiB0aGlzPw0KDQogDQoNClRoYW5rcywNCg0KQmlsaQ0K DQogDQoNCk9uIFdlZCwgRmViIDE1LCAyMDIzIGF0IDM6MzkgQU0gTW9ydGVuIEJyw7hydXAgPG1i QHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4gd3JvdGU6DQoNCgk+IEZyb206IEJpbGkgRG9uZyBbbWFp bHRvOnFvYmlsaWRvcEBnbWFpbC5jb21dDQoJPiBTZW50OiBXZWRuZXNkYXksIDE1IEZlYnJ1YXJ5 IDIwMjMgMTIuMDcNCgk+IA0KCT4gQW4gWE9SMzIgaGFzaCBpcyBuZWVkZWQgaW4gdGhlIFNvZnR3 YXJlIFN3aXRjaCAoU1dYKSBQaXBlbGluZSBmb3IgaXRzDQoJPiB1c2UgY2FzZSBpbiBQNC4gV2Ug aW1wbGVtZW50IGl0IGluIHRoaXMgcGF0Y2ggc28gaXQgY291bGQgYmUgZWFzaWx5DQoJPiByZWdp c3RlcmVkIGluIHRoZSBwaXBlbGluZSBsYXRlci4NCgk+IA0KCT4gU2lnbmVkLW9mZi1ieTogQmls aSBEb25nIDxxb2JpbGlkb3BAZ21haWwuY29tPg0KCT4gLS0tDQoJDQoJWy4uLl0NCgkNCgk+ICsj ZGVmaW5lIExFRlQ4Yl9NQVNLIHJ0ZV9jcHVfdG9fYmVfMzIoMHhmZjAwMDAwMCkNCgk+ICsjZGVm aW5lIExFRlQxNmJfTUFTSyBydGVfY3B1X3RvX2JlXzMyKDB4ZmZmZjAwMDApDQoJPiArDQoJPiAr LyoqDQoJPiArICogQ2FsY3VsYXRlIFhPUjMyIGhhc2ggb24gdXNlci1zdXBwbGllZCBieXRlIGFy cmF5Lg0KCT4gKyAqDQoJPiArICogQHBhcmFtIGRhdGENCgk+ICsgKiAgIERhdGEgdG8gcGVyZm9y bSBoYXNoIG9uLg0KCT4gKyAqIEBwYXJhbSBkYXRhX2xlbg0KCT4gKyAqICAgSG93IG1hbnkgYnl0 ZXMgdG8gdXNlIHRvIGNhbGN1bGF0ZSBoYXNoIHZhbHVlLg0KCT4gKyAqIEBwYXJhbSBpbml0X3Zh bA0KCT4gKyAqICAgVmFsdWUgdG8gaW5pdGlhbGlzZSBoYXNoIGdlbmVyYXRvci4NCgk+ICsgKiBA cmV0dXJuDQoJPiArICogICAzMmJpdCBjYWxjdWxhdGVkIGhhc2ggdmFsdWUuDQoJPiArICovDQoJ PiArc3RhdGljIGlubGluZSB1aW50MzJfdA0KCT4gK3J0ZV9oYXNoX3hvcihjb25zdCB2b2lkICpk YXRhLCB1aW50MzJfdCBkYXRhX2xlbiwgdWludDMyX3QgaW5pdF92YWwpDQoJPiArew0KCT4gKyAg ICAgdWludDMyX3QgaTsNCgk+ICsgICAgIHVpbnRwdHJfdCBwZCA9ICh1aW50cHRyX3QpIGRhdGE7 DQoJPiArICAgICBpbml0X3ZhbCA9IHJ0ZV9jcHVfdG9fYmVfMzIoaW5pdF92YWwpOw0KCT4gKw0K CT4gKyAgICAgZm9yIChpID0gMDsgaSA8IGRhdGFfbGVuIC8gNDsgaSsrKSB7DQoJPiArICAgICAg ICAgICAgIGluaXRfdmFsIF49ICooY29uc3QgdWludDMyX3QgKilwZDsNCgk+ICsgICAgICAgICAg ICAgcGQgKz0gNDsNCgk+ICsgICAgIH0NCgk+ICsNCgk+ICsgICAgIGlmIChkYXRhX2xlbiAmIDB4 Mikgew0KCT4gKyAgICAgICAgICAgICBpbml0X3ZhbCBePSAqKGNvbnN0IHVpbnQzMl90ICopcGQg JiBMRUZUMTZiX01BU0s7DQoJPiArICAgICAgICAgICAgIHBkICs9IDI7DQoJPiArICAgICB9DQoJ PiArDQoJPiArICAgICBpZiAoZGF0YV9sZW4gJiAweDEpDQoJPiArICAgICAgICAgICAgIGluaXRf dmFsIF49ICooY29uc3QgdWludDMyX3QgKilwZCAmIExFRlQ4Yl9NQVNLOw0KCT4gKw0KCT4gKyAg ICAgaW5pdF92YWwgPSBydGVfYmVfdG9fY3B1XzMyKGluaXRfdmFsKTsNCgk+ICsgICAgIHJldHVy biBpbml0X3ZhbDsNCgk+ICt9DQoJDQoJSSB0aGluayB0aGF0IHRoaXMgZnVuY3Rpb24gaGFzIHN3 YXBwZWQgYmlnIGVuZGlhbiBhbmQgQ1BVIGVuZGlhbiBldmVyeXdoZXJlLiBUaGUgcmVzdWx0IGlz IHRoZSBzYW1lLCBidXQgdGhlIGNvZGUgd291bGQgYmUgbXVjaCBsZXNzIGNvbmZ1c2luZyBpZiB1 c2luZyBydGVfY3B1XzMyX3RvX2JlKCkgd2hlbiBjb252ZXJ0aW5nIGZyb20gQ1BVIGVuZGlhbiB0 byBiaWcgZW5kaWFuLCBhbmQgcnRlX2JlX3RvX2NwdV8zMigpIHdoZW4gY29udmVydGluZyB0aGUg b3RoZXIgd2F5Lg0KCQ0KCUkgYWxzbyBzdXBwb3NlIHRoYXQgdGhlIHJldHVybiB0eXBlIGFuZCB0 aGUgaW5pdF92YWwgcGFyYW1ldGVyIHdlcmUgbWVhbnQgdG8gYmUgcnRlX2JlMzJfdC4NCgkNCglB bHNvLCBwbGVhc2UgZG9jdW1lbnQgdGhhdCB0aGUgYnl0ZSBhcnJheSBtdXN0IGJlIDMyIGJpdCBh bGlnbmVkLiBBbHRlcm5hdGl2ZWx5LCBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgdW5hbGlnbmVkIGRh dGEuIFlvdSBjYW4gZmluZCBpbnNwaXJhdGlvbiBmb3IgaGFuZGxpbmcgb2YgdW5hbGlnbmVkIGRh dGEgaW4gdGhlIF9fcnRlX3Jhd19ja3N1bSgpIGZ1bmN0aW9uOg0KCWh0dHBzOi8vZWxpeGlyLmJv b3RsaW4uY29tL2RwZGsvdjIyLjExLjEvc291cmNlL2xpYi9uZXQvcnRlX2lwLmgjTDE2Mg0KCQ0K CQ0KDQo= ------_=_NextPart_001_01D941EB.F64EDADB Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij48bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50 PSJNaWNyb3NvZnQgV29yZCAxMiAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS0NCi8qIEZv bnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0 aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQt ZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQt ZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAy IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ Zm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYi O30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K CWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNw YW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9y OnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnNwYW4uRW1haWxTdHlsZTE3 DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp Iiwic2Fucy1zZXJpZiI7DQoJY29sb3I6IzFGNDk3RDt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28t c3R5bGUtdHlwZTpleHBvcnQtb25seTt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIu MHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4wcHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYu V29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBn dGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIx MDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpz aGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIg Lz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT48L2hlYWQ+PGJvZHkgbGFuZz1F Ti1VUyBsaW5rPWJsdWUgdmxpbms9cHVycGxlPjxkaXYgY2xhc3M9V29yZFNlY3Rpb24xPjxwIGNs YXNzPU1zb05vcm1hbD48YSBuYW1lPSJfTWFpbEVuZENvbXBvc2UiPjxzcGFuIHN0eWxlPSdmb250 LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7Y29sb3I6IzFG NDk3RCc+SGkgQmlsaSw8bzpwPjwvbzpwPjwvc3Bhbj48L2E+PC9wPjxwIGNsYXNzPU1zb05vcm1h bD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseToiQ2FsaWJyaSIsInNh bnMtc2VyaWYiO2NvbG9yOiMxRjQ5N0QnPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48cCBj bGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6 IkNhbGlicmkiLCJzYW5zLXNlcmlmIjtjb2xvcjojMUY0OTdEJz5PSy4gSeKAmW0gbm90IGZhbWls aWFyIHdpdGggdGhpcyBsaWJyYXJ5LCBidXQgdGhlIG90aGVyIGZ1bmN0aW9uIGFzc3VtZXMgOCBi eXRlIGFsaWduZWQgZGF0YSwgc28gdGhpcyBzaG91bGQgYmUgT0sgdG9vLjxvOnA+PC9vOnA+PC9z cGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMS4wcHQ7 Zm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjtjb2xvcjojMUY0OTdEJz48bzpwPiZu YnNwOzwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdmb250 LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7Y29sb3I6IzFG NDk3RCc+QW5kIHdpdGggdGhlIHJlcXVpcmVkIGZ1bmN0aW9uIHNpZ25hdHVyZSwgSSBub3cgdW5k ZXJzdGFuZCB3aHkgeW91IHVzZSBlbmRpYW4gY29udmVyc2lvbnMgdGhpcyB3YXkuPG86cD48L286 cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEx LjBwdDtmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO2NvbG9yOiMxRjQ5N0QnPjxv OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9 J2ZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjtjb2xv cjojMUY0OTdEJz5BY2tlZC1ieTogTW9ydGVuIEJyw7hydXAgJmx0O21iQHNtYXJ0c2hhcmVzeXN0 ZW1zLmNvbSZndDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFu IHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJp ZiI7Y29sb3I6IzFGNDk3RCc+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1z b05vcm1hbD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseToiQ2FsaWJy aSIsInNhbnMtc2VyaWYiO2NvbG9yOiMxRjQ5N0QnPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv cD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gbGFuZz1EQSBzdHlsZT0nZm9udC1zaXplOjExLjBw dDtmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO2NvbG9yOiMxRjQ5N0QnPk1lZCB2 ZW5saWcgaGlsc2VuIC8gS2luZCByZWdhcmRzLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFz cz1Nc29Ob3JtYWw+PHNwYW4gbGFuZz1EQSBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtmb250LWZh bWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO2NvbG9yOiMxRjQ5N0QnPi1Nb3J0ZW4gQnLDuHJ1 cDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gbGFuZz1EQSBz dHlsZT0nZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYi O2NvbG9yOiMxRjQ5N0QnPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48ZGl2IHN0eWxlPSdi b3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBjbSAw Y20gNC4wcHQnPjxkaXY+PGRpdiBzdHlsZT0nYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAj QjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20nPjxwIGNsYXNzPU1zb05vcm1h bD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseToiVGFob21hIiwi c2Fucy1zZXJpZiInPkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBw dDtmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiInPiBCaWxpIERvbmcgW21haWx0bzpx b2JpbGlkb3BAZ21haWwuY29tXSA8YnI+PGI+U2VudDo8L2I+IFdlZG5lc2RheSwgMTUgRmVicnVh cnkgMjAyMyAyMi40MDxicj48Yj5Ubzo8L2I+IE1vcnRlbiBCcsO4cnVwPGJyPjxiPkNjOjwvYj4g eWlwZW5nMS53YW5nQGludGVsLmNvbTsgc2FtZWguZ29icmllbEBpbnRlbC5jb207IGJydWNlLnJp Y2hhcmRzb25AaW50ZWwuY29tOyB2bGFkaW1pci5tZWR2ZWRraW5AaW50ZWwuY29tOyBjcmlzdGlh bi5kdW1pdHJlc2N1QGludGVsLmNvbTsgZGV2QGRwZGsub3JnPGJyPjxiPlN1YmplY3Q6PC9iPiBS ZTogW1BBVENIIHYzXSBoYXNoOiBhZGQgWE9SMzIgaGFzaCBmdW5jdGlvbjxvOnA+PC9vOnA+PC9z cGFuPjwvcD48L2Rpdj48L2Rpdj48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48 L3A+PGRpdj48cCBjbGFzcz1Nc29Ob3JtYWw+SGkmbmJzcDtNb3J0ZW4sPG86cD48L286cD48L3A+ PGRpdj48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PC9kaXY+PGRpdj48 cCBjbGFzcz1Nc29Ob3JtYWw+VGhhbmtzIGZvciB5b3VyIGNvbW1lbnRzITxvOnA+PC9vOnA+PC9w PjwvZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjwvZGl2 PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPkZvciBlbmRpYW5uZXNzIGNvbnZlcnNpb24sIEkgZG91 YmxlLWNoZWNrZWQgbXkgdXNhZ2VzLiBJIGRpZCB1c2UgYm90aCBydGVfY3B1X3RvX2JlXzMyKCkg YW5kIHJ0ZV9iZV90b19jcHVfMzIoKS4gSSBtaWdodCBoYXZlIG1pc3NlZCBzb21ldGhpbmcgYnV0 IEkgdGhpbmsgSSB1c2VkIHRoZW0gKDQgb2NjdXJyZW5jZXMpIGluIGEgc2VtYW50aWNhbGx5IG1l YW5pbmdmdWwgd2F5LiBDb3VsZCB5b3UgcG9pbnQgbWUgdG8gdGhlIGxpbmVzIHRoYXQgYXJlIGNv bmZ1c2luZz88bzpwPjwvbzpwPjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbD48bzpw PiZuYnNwOzwvbzpwPjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgaGFzaCBm dW5jdGlvbiBzaWduYXR1cmUgaGFzIHRvIGNvbmZvcm0gdG8mbmJzcDs8YSBocmVmPSJodHRwczov L2VsaXhpci5ib290bGluLmNvbS9kcGRrL3YyMi4xMS4xL3NvdXJjZS9saWIvdGFibGUvcnRlX3N3 eF9oYXNoX2Z1bmMuaCNMMzEiPmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2RwZGsvdjIyLjEx LjEvc291cmNlL2xpYi90YWJsZS9ydGVfc3d4X2hhc2hfZnVuYy5oI0wzMTwvYT4sIHNvIEkgZG9u J3QgaGF2ZSB0aGUgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHBhcmFtZXRlciB0eXBlIHRvIHJ0ZV9i ZTMyX3QsIGFsdGhvdWdoIHBlcnNvbmFsbHkgSSBhZ3JlZSB3aXRoIHlvdSBhbmQgd291bGQgcHJl ZmVyIHRvIG1ha2UgZXZlcnl0aGluZyBjb25zaXN0ZW50bHkgYmlnLWVuZGlhbiBoZXJlLjxvOnA+ PC9vOnA+PC9wPjwvZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+ PC9wPjwvZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPkknbSBub3Qgc3VyZSBhYm91dCB0aGUg Ynl0ZSBhbGlnbm1lbnQgYXNzdW1wdGlvbnMgdXNlZCBpbiBoYXNoIGZ1bmN0aW9ucy4gTXkgaW1w bGVtZW50YXRpb24gYmFzaWNhbGx5IGZvbGxvd3MgdGhlIGV4aXN0aW5nIENSQzMyIGhhc2g6Jm5i c3A7PGEgaHJlZj0iaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vZHBkay92MjIuMTEuMS9zb3Vy Y2UvbGliL2hhc2gvcnRlX2hhc2hfY3JjLmgjTDE2OCI+aHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5j b20vZHBkay92MjIuMTEuMS9zb3VyY2UvbGliL2hhc2gvcnRlX2hhc2hfY3JjLmgjTDE2ODwvYT4s IGFuZCBJIGRvbid0IHNlZSBieXRlIGFsaWdubWVudCBoYW5kbGVkIHRoZXJlLiBNYXliZSBzb21l b25lIG1vcmUgZmFtaWxpYXIgd2l0aCBsaWIvaGFzaC8gY291bGQgcHJvdmlkZSBzb21lIGNvbnRl eHQgb24gdGhpcz88bzpwPjwvbzpwPjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbD48 bzpwPiZuYnNwOzwvbzpwPjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbD5UaGFua3Ms PG86cD48L286cD48L3A+PC9kaXY+PGRpdj48cCBjbGFzcz1Nc29Ob3JtYWw+QmlsaTxvOnA+PC9v OnA+PC9wPjwvZGl2PjwvZGl2PjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwv cD48ZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPk9uIFdlZCwgRmViIDE1LCAyMDIzIGF0IDM6 MzkgQU0gTW9ydGVuIEJyw7hydXAgJmx0OzxhIGhyZWY9Im1haWx0bzptYkBzbWFydHNoYXJlc3lz dGVtcy5jb20iPm1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9v OnA+PC9wPjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSdib3JkZXI6bm9uZTtib3JkZXItbGVmdDpz b2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6 NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSc+PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4t Ym90dG9tOjEyLjBwdCc+Jmd0OyBGcm9tOiBCaWxpIERvbmcgW21haWx0bzo8YSBocmVmPSJtYWls dG86cW9iaWxpZG9wQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnFvYmlsaWRvcEBnbWFpbC5j b208L2E+XTxicj4mZ3Q7IFNlbnQ6IFdlZG5lc2RheSwgMTUgRmVicnVhcnkgMjAyMyAxMi4wNzxi cj4mZ3Q7IDxicj4mZ3Q7IEFuIFhPUjMyIGhhc2ggaXMgbmVlZGVkIGluIHRoZSBTb2Z0d2FyZSBT d2l0Y2ggKFNXWCkgUGlwZWxpbmUgZm9yIGl0czxicj4mZ3Q7IHVzZSBjYXNlIGluIFA0LiBXZSBp bXBsZW1lbnQgaXQgaW4gdGhpcyBwYXRjaCBzbyBpdCBjb3VsZCBiZSBlYXNpbHk8YnI+Jmd0OyBy ZWdpc3RlcmVkIGluIHRoZSBwaXBlbGluZSBsYXRlci48YnI+Jmd0OyA8YnI+Jmd0OyBTaWduZWQt b2ZmLWJ5OiBCaWxpIERvbmcgJmx0OzxhIGhyZWY9Im1haWx0bzpxb2JpbGlkb3BAZ21haWwuY29t IiB0YXJnZXQ9Il9ibGFuayI+cW9iaWxpZG9wQGdtYWlsLmNvbTwvYT4mZ3Q7PGJyPiZndDsgLS0t PGJyPjxicj5bLi4uXTxicj48YnI+Jmd0OyArI2RlZmluZSBMRUZUOGJfTUFTSyBydGVfY3B1X3Rv X2JlXzMyKDB4ZmYwMDAwMDApPGJyPiZndDsgKyNkZWZpbmUgTEVGVDE2Yl9NQVNLIHJ0ZV9jcHVf dG9fYmVfMzIoMHhmZmZmMDAwMCk8YnI+Jmd0OyArPGJyPiZndDsgKy8qKjxicj4mZ3Q7ICsgKiBD YWxjdWxhdGUgWE9SMzIgaGFzaCBvbiB1c2VyLXN1cHBsaWVkIGJ5dGUgYXJyYXkuPGJyPiZndDsg KyAqPGJyPiZndDsgKyAqIEBwYXJhbSBkYXRhPGJyPiZndDsgKyAqJm5ic3A7ICZuYnNwO0RhdGEg dG8gcGVyZm9ybSBoYXNoIG9uLjxicj4mZ3Q7ICsgKiBAcGFyYW0gZGF0YV9sZW48YnI+Jmd0OyAr ICombmJzcDsgJm5ic3A7SG93IG1hbnkgYnl0ZXMgdG8gdXNlIHRvIGNhbGN1bGF0ZSBoYXNoIHZh bHVlLjxicj4mZ3Q7ICsgKiBAcGFyYW0gaW5pdF92YWw8YnI+Jmd0OyArICombmJzcDsgJm5ic3A7 VmFsdWUgdG8gaW5pdGlhbGlzZSBoYXNoIGdlbmVyYXRvci48YnI+Jmd0OyArICogQHJldHVybjxi cj4mZ3Q7ICsgKiZuYnNwOyAmbmJzcDszMmJpdCBjYWxjdWxhdGVkIGhhc2ggdmFsdWUuPGJyPiZn dDsgKyAqLzxicj4mZ3Q7ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90PGJyPiZndDsgK3J0ZV9oYXNo X3hvcihjb25zdCB2b2lkICpkYXRhLCB1aW50MzJfdCBkYXRhX2xlbiwgdWludDMyX3QgaW5pdF92 YWwpPGJyPiZndDsgK3s8YnI+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDt1aW50MzJfdCBpOzxi cj4mZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnRwdHJfdCBwZCA9ICh1aW50cHRyX3QpIGRh dGE7PGJyPiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7aW5pdF92YWwgPSBydGVfY3B1X3RvX2Jl XzMyKGluaXRfdmFsKTs8YnI+Jmd0OyArPGJyPiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7Zm9y IChpID0gMDsgaSAmbHQ7IGRhdGFfbGVuIC8gNDsgaSsrKSB7PGJyPiZndDsgKyZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2luaXRfdmFsIF49ICooY29uc3Qg dWludDMyX3QgKilwZDs8YnI+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7cGQgKz0gNDs8YnI+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJy PiZndDsgKzxicj4mZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChkYXRhX2xlbiAmYW1wOyAw eDIpIHs8YnI+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7aW5pdF92YWwgXj0gKihjb25zdCB1aW50MzJfdCAqKXBkICZhbXA7IExFRlQxNmJfTUFT Szs8YnI+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7cGQgKz0gMjs8YnI+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZndDsgKzxicj4m Z3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChkYXRhX2xlbiAmYW1wOyAweDEpPGJyPiZndDsg KyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2luaXRfdmFs IF49ICooY29uc3QgdWludDMyX3QgKilwZCAmYW1wOyBMRUZUOGJfTUFTSzs8YnI+Jmd0OyArPGJy PiZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7aW5pdF92YWwgPSBydGVfYmVfdG9fY3B1XzMyKGlu aXRfdmFsKTs8YnI+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gaW5pdF92YWw7PGJy PiZndDsgK308YnI+PGJyPkkgdGhpbmsgdGhhdCB0aGlzIGZ1bmN0aW9uIGhhcyBzd2FwcGVkIGJp ZyBlbmRpYW4gYW5kIENQVSBlbmRpYW4gZXZlcnl3aGVyZS4gVGhlIHJlc3VsdCBpcyB0aGUgc2Ft ZSwgYnV0IHRoZSBjb2RlIHdvdWxkIGJlIG11Y2ggbGVzcyBjb25mdXNpbmcgaWYgdXNpbmcgcnRl X2NwdV8zMl90b19iZSgpIHdoZW4gY29udmVydGluZyBmcm9tIENQVSBlbmRpYW4gdG8gYmlnIGVu ZGlhbiwgYW5kIHJ0ZV9iZV90b19jcHVfMzIoKSB3aGVuIGNvbnZlcnRpbmcgdGhlIG90aGVyIHdh eS48YnI+PGJyPkkgYWxzbyBzdXBwb3NlIHRoYXQgdGhlIHJldHVybiB0eXBlIGFuZCB0aGUgaW5p dF92YWwgcGFyYW1ldGVyIHdlcmUgbWVhbnQgdG8gYmUgcnRlX2JlMzJfdC48YnI+PGJyPkFsc28s IHBsZWFzZSBkb2N1bWVudCB0aGF0IHRoZSBieXRlIGFycmF5IG11c3QgYmUgMzIgYml0IGFsaWdu ZWQuIEFsdGVybmF0aXZlbHksIGltcGxlbWVudCBzdXBwb3J0IGZvciB1bmFsaWduZWQgZGF0YS4g WW91IGNhbiBmaW5kIGluc3BpcmF0aW9uIGZvciBoYW5kbGluZyBvZiB1bmFsaWduZWQgZGF0YSBp biB0aGUgX19ydGVfcmF3X2Nrc3VtKCkgZnVuY3Rpb246PGJyPjxhIGhyZWY9Imh0dHBzOi8vZWxp eGlyLmJvb3RsaW4uY29tL2RwZGsvdjIyLjExLjEvc291cmNlL2xpYi9uZXQvcnRlX2lwLmgjTDE2 MiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2RwZGsvdjIyLjEx LjEvc291cmNlL2xpYi9uZXQvcnRlX2lwLmgjTDE2MjwvYT48YnI+PGJyPjxvOnA+PC9vOnA+PC9w PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPg== ------_=_NextPart_001_01D941EB.F64EDADB--