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 C831842CB9; Wed, 14 Jun 2023 12:58:36 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9E91E40E0F; Wed, 14 Jun 2023 12:58: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 8570740DDB; Wed, 14 Jun 2023 12:58:35 +0200 (CEST) Received: from frapeml100006.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Qh2Qt1QN3z6J7XW; Wed, 14 Jun 2023 18:56:06 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100006.china.huawei.com (7.182.85.201) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 14 Jun 2023 12:58:33 +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.023; Wed, 14 Jun 2023 12:58:33 +0200 From: Konstantin Ananyev To: zhoumin , Thomas Monjalon , Ruifeng Wang , "Zhang, Qi Z" CC: dev , mb , konstantin.v.ananyev , "Yang, Qiming" , "Wu, Wenjun1" , drc , roretzla , stable , maobibo , nd , David Marchand , honnappa.nagarahalli , Tyler Retzlaff Subject: RE: [PATCH v3] net/ixgbe: add proper memory barriers for some Rx functions Thread-Topic: [PATCH v3] net/ixgbe: add proper memory barriers for some Rx functions Thread-Index: AQHZgAUH+kM8uminEE2fEdOvyZZC0K9PxASAgAq/IICALIviAIAAGeyAgAAM2ICAANlkgIACTxuj Date: Wed, 14 Jun 2023 10:58:33 +0000 Message-ID: 7E8138E8-8925-42E7-A98B-B1C89DFD7CAB References: <20230424090532.367194-1-zhoumin@loongson.cn> <3202143.AJdgDx1Vlc@thomas> <38333053.10thIPus4b@thomas>, <63d8f649-b718-a2f8-52b5-270747157413@loongson.cn> In-Reply-To: <63d8f649-b718-a2f8-52b5-270747157413@loongson.cn> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_7E8138E8892542E7A98BB1C89DFD7CAB_" MIME-Version: 1.0 X-CFilter-Loop: Reflected 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_7E8138E8892542E7A98BB1C89DFD7CAB_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQoNCktvbnN0YW50aW4g QW5hbnlldg0KTW9iaWxlOiArMzUzLTg3MzQ1OTk4OA0KRW1haWw6IGtvbnN0YW50aW4uYW5hbnll dkBodWF3ZWkuY29tDQoNCkZyb206emhvdW1pbiA8emhvdW1pbkBsb29uZ3Nvbi5jbj4NClRvOlRo b21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47UnVpZmVuZyBXYW5nIDxSdWlmZW5n LldhbmdAYXJtLmNvbT47WmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPg0KQ2M6ZGV2 IDxkZXZAZHBkay5vcmc+O21iIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+O2tvbnN0YW50aW4u di5hbmFueWV2IDxrb25zdGFudGluLnYuYW5hbnlldkB5YW5kZXgucnU+O1lhbmcsIFFpbWluZyA8 cWltaW5nLnlhbmdAaW50ZWwuY29tPjtXdSwgV2VuanVuMSA8d2VuanVuMS53dUBpbnRlbC5jb20+ O2RyYyA8ZHJjQGxpbnV4LnZuZXQuaWJtLmNvbT47cm9yZXR6bGEgPHJvcmV0emxhQGxpbnV4Lm1p Y3Jvc29mdC5jb20+O3N0YWJsZSA8c3RhYmxlQGRwZGsub3JnPjttYW9iaWJvIDxtYW9iaWJvQGxv b25nc29uLmNuPjtuZCA8bmRAYXJtLmNvbT47RGF2aWQgTWFyY2hhbmQgPGRhdmlkLm1hcmNoYW5k QHJlZGhhdC5jb20+O2hvbm5hcHBhLm5hZ2FyYWhhbGxpIDxob25uYXBwYS5uYWdhcmFoYWxsaUBh cm0uY29tPjtUeWxlciBSZXR6bGFmZiA8cm9yZXR6bGFAbWljcm9zb2Z0LmNvbT47S29uc3RhbnRp biBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNvbT4NCkRhdGU6MjAyMy0wNi0x MyAwNDo0MzoxMg0KU3ViamVjdDpSZTogW1BBVENIIHYzXSBuZXQvaXhnYmU6IGFkZCBwcm9wZXIg bWVtb3J5IGJhcnJpZXJzIGZvciBzb21lIFJ4IGZ1bmN0aW9ucw0KDQpIaSBUaG9tYXMsDQoNCk9u IE1vbiwgSnVuZSAxMiwgMjAyMyBhdCA4OjQ0UE0sIFRob21hcyBNb25qYWxvbiB3cm90ZToNCj4g MTIvMDYvMjAyMyAxMzo1OCwgemhvdW1pbjoNCj4+IE9uIE1vbiwgSnVuZSAxMiwgMjAyMyBhdCA2 OjI2UE0sIFRob21hcyBNb25qYWxvbiB3cm90ZToNCj4+PiAxNS8wNS8yMDIzIDA0OjEwLCBaaGFu ZywgUWkgWjoNCj4+Pj4gRnJvbTogUnVpZmVuZyBXYW5nIDxSdWlmZW5nLldhbmdAYXJtLmNvbTxt YWlsdG86UnVpZmVuZy5XYW5nQGFybS5jb20+Pg0KPj4+Pj4gRnJvbTogTWluIFpob3UgPHpob3Vt aW5AbG9vbmdzb24uY248bWFpbHRvOnpob3VtaW5AbG9vbmdzb24uY24+Pg0KPj4+Pj4+IC0tLQ0K Pj4+Pj4+IHYzOg0KPj4+Pj4+IC0gVXNlIHJ0ZV9zbXBfcm1iKCkgYXMgdGhlIHByb3BlciBtZW1v cnkgYmFycmllciBpbnN0ZWFkIG9mIHJ0ZV9ybWIoKQ0KPj4+Pj4+IC0tLQ0KPj4+Pj4+IHYyOg0K Pj4+Pj4+IC0gTWFrZSB0aGUgY2FsbGluZyBvZiBydGVfcm1iKCkgZm9yIGFsbCBwbGF0Zm9ybXMN Cj4+Pj4+PiAtLS0NCj4+PiBbLi4uXQ0KPj4+Pj4gUmV2aWV3ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8 cnVpZmVuZy53YW5nQGFybS5jb208bWFpbHRvOnJ1aWZlbmcud2FuZ0Bhcm0uY29tPj4NCj4+Pj4g QXBwbGllZCB0byBkcGRrLW5leHQtbmV0LWludGVsLg0KPj4+Pg0KPj4+PiBUaGFua3MNCj4+Pj4g UWkNCj4+Pj4NCj4+PiBXaHkgaWdub3JpbmcgY2hlY2twYXRjaD8NCj4+PiBJdCBpcyBzYXlpbmc6 DQo+Pj4gIg0KPj4+IFdhcm5pbmcgaW4gZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOg0K Pj4+IFVzaW5nIHJ0ZV9zbXBfW3Ivd11tYg0KPj4+ICINCj4+DQo+PiBJJ20gc29ycnkuIFNob3Vs ZCB3ZSBuZXZlciB1c2UgcnRlX3NtcF9bci93XW1iIGluIHRoZSBkcml2ZXIncyBjb2RlPw0KPiBO byB3ZSBzaG91bGQgYXZvaWQuDQo+IEl0IGhhcyBiZWVuIGRlY2lkZWQgdG8gc2xvd2x5IHJlcGxh Y2Ugc3VjaCBiYXJyaWVycy4NCj4gQnkgdGhlIHdheSwgSSB0aGluayBpdCBpcyBub3QgZW5vdWdo IGRvY3VtZW50ZWQuDQo+IFlvdSBjYW4gZmluZCBhbiBleHBsYW5hdGlvbiBpbiBkb2MvZ3VpZGVz L3JlbF9ub3Rlcy9kZXByZWNhdGlvbi5yc3QNClRoYW5rIHlvdXIgZm9yIHByb3ZpZGluZyB0aGUg cmVmZXJlbmNlIGRvY3VtZW50cy4gSSBoYXZlIHJlYWQgdGhpcyBmaWxlLg0KVGhlIGV4cGxhbmF0 aW9uIGlzIGNsZWFyIGFuZCBJIGdldCBpdC4NCj4gSSB0aGluayB3ZSBzaG91bGQgYWxzbyBhZGQg c29tZSBub3RlcyB0bw0KPiBsaWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfYXRvbWljLmgNClll cywgSSBkbyB0aGluayBzby4gVGhlIG5vdGVzIGFkZGVkIGF0IHRoZSBkZWZpbml0aW9ucyBvZg0K cnRlX3NtcF9bci93XW1iIGFyZSBiZXR0ZXIuDQo+IFR5bGVyLCBIb25uYXBwYSwgUnVpZmVuZywg S29uc3RhbnRpbiwgd2hhdCBkbyB5b3UgdGhpbms/DQo+DQpZZXMsIGV4dHJhIG5vdGVzIHNvdW5k cyBsaWtlIGEgcmVhc29uYWJsZSB0aGluZyB0byBtZS4NCg0KDQoNCg== --_000_7E8138E8892542E7A98BB1C89DFD7CAB_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPC9tYXRhPjxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyI+Cioge2JveC1zaXppbmc6Ym9yZGVyLWJveDt9CmJvZHkge2ZvbnQt ZmFtaWx5OiBDYWxpYnJpO30KPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KPGRpdj4NCjxkaXYg aWQ9ImZvY3VzIj4NCjxkaXY+PGJyPg0KPGJyPg0KPGJyPg0KPGJyPg0KPGJyPg0KPC9kaXY+DQo8 L2Rpdj4NCjwvZGl2Pg0KPGRpdj48L2Rpdj4NCjxkaXYgaWQ9InNpZ25hdHVyZSI+DQo8aHIgc3R5 bGU9ImJvcmRlci10b3A6ZG90dGVkIDFweCI+DQo8YnI+DQpLb25zdGFudGluIEFuYW55ZXY8YnI+ DQpNb2JpbGU6ICYjNDM7MzUzLTg3MzQ1OTk4ODxicj4NCkVtYWlsOiBrb25zdGFudGluLmFuYW55 ZXZAaHVhd2VpLmNvbTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdiBuYW1lPSJBbnlPZmZpY2UtQmFj a2dyb3VuZC1JbWFnZSIgc3R5bGU9ImJvcmRlci10b3A6MXB4IHNvbGlkICNCNUM0REY7cGFkZGlu Zzo4cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncw S0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFCQkNBWUFBQUFRVGM3bEFBQUFDWEJJV1hNQUFBc1RBQUFM RXdFQW1wd1lBQUFBQkdkQlRVRUFBTEdPZlB0Umt3QUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9B QUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMiYjNDM7U1g4VkdBQUFBTjBsRVFWUjQybUo0OHU3UGZ5 WUdCb1ovY09Jdktnc2I4UWVWaFovNGpZWDdHd3NYcHhoJiM0MztnZ2hUY0xvRko0SG1TMndFVWxn QkJnQWpQa05SUWxHUGZBQUFBQUJKUlU1RXJrSmdnZz09KTsgYmFja2dyb3VuZC1yZXBlYXQ6IHJl cGVhdC14OyI+DQo8ZGl2IHN0eWxlPSJ3b3JkLWJyZWFrOmJyZWFrLWFsbDsiPjxiPkZyb206PC9i Pnpob3VtaW4gJmx0O3pob3VtaW5AbG9vbmdzb24uY24mZ3Q7PC9kaXY+DQo8ZGl2IHN0eWxlPSJ3 b3JkLWJyZWFrOmJyZWFrLWFsbDsiPjxiPlRvOjwvYj5UaG9tYXMgTW9uamFsb24gJmx0O3Rob21h c0Btb25qYWxvbi5uZXQmZ3Q7O1J1aWZlbmcgV2FuZyAmbHQ7UnVpZmVuZy5XYW5nQGFybS5jb20m Z3Q7O1poYW5nLCBRaSBaICZsdDtxaS56LnpoYW5nQGludGVsLmNvbSZndDs8L2Rpdj4NCjxkaXYg c3R5bGU9IndvcmQtYnJlYWs6YnJlYWstYWxsOyI+PGI+Q2M6PC9iPmRldiAmbHQ7ZGV2QGRwZGsu b3JnJmd0OzttYiAmbHQ7bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tJmd0Oztrb25zdGFudGluLnYu YW5hbnlldiAmbHQ7a29uc3RhbnRpbi52LmFuYW55ZXZAeWFuZGV4LnJ1Jmd0OztZYW5nLCBRaW1p bmcgJmx0O3FpbWluZy55YW5nQGludGVsLmNvbSZndDs7V3UsIFdlbmp1bjEgJmx0O3dlbmp1bjEu d3VAaW50ZWwuY29tJmd0OztkcmMgJmx0O2RyY0BsaW51eC52bmV0LmlibS5jb20mZ3Q7O3JvcmV0 emxhDQogJmx0O3JvcmV0emxhQGxpbnV4Lm1pY3Jvc29mdC5jb20mZ3Q7O3N0YWJsZSAmbHQ7c3Rh YmxlQGRwZGsub3JnJmd0OzttYW9iaWJvICZsdDttYW9iaWJvQGxvb25nc29uLmNuJmd0OztuZCAm bHQ7bmRAYXJtLmNvbSZndDs7RGF2aWQgTWFyY2hhbmQgJmx0O2RhdmlkLm1hcmNoYW5kQHJlZGhh dC5jb20mZ3Q7O2hvbm5hcHBhLm5hZ2FyYWhhbGxpICZsdDtob25uYXBwYS5uYWdhcmFoYWxsaUBh cm0uY29tJmd0OztUeWxlciBSZXR6bGFmZiAmbHQ7cm9yZXR6bGFAbWljcm9zb2Z0LmNvbSZndDs7 S29uc3RhbnRpbiBBbmFueWV2DQogJmx0O2tvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29tJmd0 OzwvZGl2Pg0KPGRpdiBzdHlsZT0id29yZC1icmVhazpicmVhay1hbGw7Ij48Yj5EYXRlOjwvYj4y MDIzLTA2LTEzIDA0OjQzOjEyPC9kaXY+DQo8ZGl2IHN0eWxlPSJ3b3JkLWJyZWFrOmJyZWFrLWFs bDsiPjxiPlN1YmplY3Q6PC9iPlJlOiBbUEFUQ0ggdjNdIG5ldC9peGdiZTogYWRkIHByb3BlciBt ZW1vcnkgYmFycmllcnMgZm9yIHNvbWUgUnggZnVuY3Rpb25zPC9kaXY+DQo8ZGl2Pjxicj4NCjwv ZGl2Pg0KPC9kaXY+DQo8ZGl2IG5hbWU9Im1haWxfaGlzdF9jb250ZW50Ij48Zm9udD48c3BhbiBz dHlsZT0iZm9udC1zaXplOiAxMHB0OyBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyI+DQo8ZGl2 IGNsYXNzPSJQbGFpblRleHQiPkhpIFRob21hcyw8YnI+DQo8YnI+DQpPbiBNb24sIEp1bmUgMTIs IDIwMjMgYXQgODo0NFBNLCBUaG9tYXMgTW9uamFsb24gd3JvdGU6PGJyPg0KJmd0OyAxMi8wNi8y MDIzIDEzOjU4LCB6aG91bWluOjxicj4NCiZndDsmZ3Q7IE9uIE1vbiwgSnVuZSAxMiwgMjAyMyBh dCA2OjI2UE0sIFRob21hcyBNb25qYWxvbiB3cm90ZTo8YnI+DQomZ3Q7Jmd0OyZndDsgMTUvMDUv MjAyMyAwNDoxMCwgWmhhbmcsIFFpIFo6PGJyPg0KJmd0OyZndDsmZ3Q7Jmd0OyBGcm9tOiBSdWlm ZW5nIFdhbmcgJmx0OzxhIGhyZWY9Im1haWx0bzpSdWlmZW5nLldhbmdAYXJtLmNvbSI+UnVpZmVu Zy5XYW5nQGFybS5jb208L2E+Jmd0Ozxicj4NCiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEZyb206IE1p biBaaG91ICZsdDs8YSBocmVmPSJtYWlsdG86emhvdW1pbkBsb29uZ3Nvbi5jbiI+emhvdW1pbkBs b29uZ3Nvbi5jbjwvYT4mZ3Q7PGJyPg0KJmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IC0tLTxicj4N CiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyB2Mzo8YnI+DQomZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgLSBVc2UgcnRlX3NtcF9ybWIoKSBhcyB0aGUgcHJvcGVyIG1lbW9yeSBiYXJyaWVyIGluc3Rl YWQgb2YgcnRlX3JtYigpPGJyPg0KJmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IC0tLTxicj4NCiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyB2Mjo8YnI+DQomZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsg LSBNYWtlIHRoZSBjYWxsaW5nIG9mIHJ0ZV9ybWIoKSBmb3IgYWxsIHBsYXRmb3Jtczxicj4NCiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAtLS08YnI+DQomZ3Q7Jmd0OyZndDsgWy4uLl08YnI+DQom Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBSZXZpZXdlZC1ieTogUnVpZmVuZyBXYW5nICZsdDs8YSBocmVm PSJtYWlsdG86cnVpZmVuZy53YW5nQGFybS5jb20iPnJ1aWZlbmcud2FuZ0Bhcm0uY29tPC9hPiZn dDs8YnI+DQomZ3Q7Jmd0OyZndDsmZ3Q7IEFwcGxpZWQgdG8gZHBkay1uZXh0LW5ldC1pbnRlbC48 YnI+DQomZ3Q7Jmd0OyZndDsmZ3Q7PGJyPg0KJmd0OyZndDsmZ3Q7Jmd0OyBUaGFua3M8YnI+DQom Z3Q7Jmd0OyZndDsmZ3Q7IFFpPGJyPg0KJmd0OyZndDsmZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7Jmd0 OyBXaHkgaWdub3JpbmcgY2hlY2twYXRjaD88YnI+DQomZ3Q7Jmd0OyZndDsgSXQgaXMgc2F5aW5n Ojxicj4NCiZndDsmZ3Q7Jmd0OyAmcXVvdDs8YnI+DQomZ3Q7Jmd0OyZndDsgV2FybmluZyBpbiBk cml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6PGJyPg0KJmd0OyZndDsmZ3Q7IFVzaW5nIHJ0 ZV9zbXBfW3Ivd11tYjxicj4NCiZndDsmZ3Q7Jmd0OyAmcXVvdDs8YnI+DQomZ3Q7Jmd0Ozxicj4N CiZndDsmZ3Q7IEknbSBzb3JyeS4gU2hvdWxkIHdlIG5ldmVyIHVzZSBydGVfc21wX1tyL3ddbWIg aW4gdGhlIGRyaXZlcidzIGNvZGU/PGJyPg0KJmd0OyBObyB3ZSBzaG91bGQgYXZvaWQuPGJyPg0K Jmd0OyBJdCBoYXMgYmVlbiBkZWNpZGVkIHRvIHNsb3dseSByZXBsYWNlIHN1Y2ggYmFycmllcnMu PGJyPg0KJmd0OyBCeSB0aGUgd2F5LCBJIHRoaW5rIGl0IGlzIG5vdCBlbm91Z2ggZG9jdW1lbnRl ZC48YnI+DQomZ3Q7IFlvdSBjYW4gZmluZCBhbiBleHBsYW5hdGlvbiBpbiBkb2MvZ3VpZGVzL3Jl bF9ub3Rlcy9kZXByZWNhdGlvbi5yc3Q8YnI+DQpUaGFuayB5b3VyIGZvciBwcm92aWRpbmcgdGhl IHJlZmVyZW5jZSBkb2N1bWVudHMuIEkgaGF2ZSByZWFkIHRoaXMgZmlsZS4gPGJyPg0KVGhlIGV4 cGxhbmF0aW9uIGlzIGNsZWFyIGFuZCBJIGdldCBpdC48YnI+DQomZ3Q7IEkgdGhpbmsgd2Ugc2hv dWxkIGFsc28gYWRkIHNvbWUgbm90ZXMgdG88YnI+DQomZ3Q7IGxpYi9lYWwvaW5jbHVkZS9nZW5l cmljL3J0ZV9hdG9taWMuaDxicj4NClllcywgSSBkbyB0aGluayBzby4gVGhlIG5vdGVzIGFkZGVk IGF0IHRoZSBkZWZpbml0aW9ucyBvZiA8YnI+DQpydGVfc21wX1tyL3ddbWIgYXJlIGJldHRlci48 YnI+DQomZ3Q7IFR5bGVyLCBIb25uYXBwYSwgUnVpZmVuZywgS29uc3RhbnRpbiwgd2hhdCBkbyB5 b3UgdGhpbms/PGJyPg0KJmd0OzwvZGl2Pg0KPGRpdiBjbGFzcz0iUGxhaW5UZXh0Ij5ZZXMsIGV4 dHJhIG5vdGVzIHNvdW5kcyBsaWtlIGEgcmVhc29uYWJsZSB0aGluZyB0byBtZS48YnI+DQo8YnI+ DQo8YnI+DQo8L2Rpdj4NCjwvc3Bhbj48L2ZvbnQ+PGJyPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0 bWw+DQo= --_000_7E8138E8892542E7A98BB1C89DFD7CAB_--