From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 19A38A00E6
	for <public@inbox.dpdk.org>; Fri, 14 Jun 2019 20:41:30 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 002861D5C8;
	Fri, 14 Jun 2019 20:41:28 +0200 (CEST)
Received: from us-smtp-delivery-181.mimecast.com
 (us-smtp-delivery-181.mimecast.com [216.205.24.181])
 by dpdk.org (Postfix) with ESMTP id 96B831D5C3
 for <dev@dpdk.org>; Fri, 14 Jun 2019 20:41:27 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rbbn.com;
 s=mimecast20180816; t=1560537686;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=bQWrOqs7gxcnDAW18uJ5GwlzMK7ohHa2Dc9iMUJD/8w=;
 b=RaafWERZU80PylWijHvk1WTER/wJ5+eFqit/kr6N3RmVQ+w8Y2Nf94mFduz+QV5rp5d7xD
 +S/IBR4/5/h9AdGAU3nI4cw4/6qS25pTxb2B0Lo0xCOXgIa2/xibtzx20s+TFkfTZ9b2H8
 BzLMZEfZcG/6AuB1N9yA9PUvpGnJG1Y=
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02lp2056.outbound.protection.outlook.com [104.47.36.56]) (Using
 TLS) by relay.mimecast.com with ESMTP id
 us-mta-177-waoipy-4Mym2atSGH52xYg-1; Fri, 14 Jun 2019 14:41:25 -0400
Received: from BN7PR03MB3892.namprd03.prod.outlook.com (20.176.177.22) by
 BN7PR03MB3777.namprd03.prod.outlook.com (20.176.26.214) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1987.11; Fri, 14 Jun 2019 18:41:21 +0000
Received: from BN7PR03MB3892.namprd03.prod.outlook.com
 ([fe80::29e6:3f50:b4a6:9a08]) by BN7PR03MB3892.namprd03.prod.outlook.com
 ([fe80::29e6:3f50:b4a6:9a08%3]) with mapi id 15.20.1987.012; Fri, 14 Jun 2019
 18:41:21 +0000
From: "Dey, Souvik" <sodey@rbbn.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>, Yangchao Zhou
 <zhouyates@gmail.com>, "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [dpdk-dev] [PATCH] kni: fix possible kernel crash with va2pa
Thread-Index: AQHUzzee/hbS2GbBNE6F1G6CwlV8H6X+5mSAgJ08WkA=
Date: Fri, 14 Jun 2019 18:41:21 +0000
Message-ID: <BN7PR03MB38928BFDFCF240C09491CBBFCDEE0@BN7PR03MB3892.namprd03.prod.outlook.com>
References: <20190228073010.49716-1-zhouyates@gmail.com>
 <9c7dcfd6-d55c-f5f6-b82c-461bc773dee4@intel.com>
In-Reply-To: <9c7dcfd6-d55c-f5f6-b82c-461bc773dee4@intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [208.45.178.4]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c21b5cd1-6790-4ab0-8aed-08d6f0f7e54c
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);
 SRVR:BN7PR03MB3777; 
x-ms-traffictypediagnostic: BN7PR03MB3777:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <BN7PR03MB3777962F86EF199235C433CCCDEE0@BN7PR03MB3777.namprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-forefront-prvs: 0068C7E410
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(346002)(396003)(376002)(39860400002)(136003)(199004)(189003)(25786009)(99286004)(68736007)(102836004)(2501003)(2906002)(476003)(11346002)(8676002)(6246003)(81166006)(3846002)(6116002)(790700001)(446003)(8936002)(6436002)(7696005)(81156014)(76176011)(6506007)(53546011)(26005)(73956011)(76116006)(64756008)(66476007)(66556008)(33656002)(236005)(66446008)(9686003)(229853002)(7736002)(53936002)(186003)(66066001)(74316002)(6306002)(55016002)(54896002)(14444005)(52536014)(256004)(316002)(478600001)(14454004)(71190400001)(71200400001)(486006)(86362001)(110136005)(66946007)(5660300002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BN7PR03MB3777;
 H:BN7PR03MB3892.namprd03.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: edAgq15+vblc+rfM/Ztq5saibhdV4Ssm+arcXbQW7IPPySJtXBza8jHjqZHQ3p9RSOkL8eNBiIHJegTimOWcQMdNpJZBNBLWNJwK+rXva22UJr/M/UtXHCDJ8+W95bGHwqvuUwX4snxML3JoRz87NvUYo58hnEtRCoBkoA1tPGnoUQ35W1utK2yNXfcc4OZajGMPMb2zhDkRcJLu45QCDy0U19DdoTwY1GbA98uOUPApCjnJ9w/vibEPLQYFSSKXPnHCD9spyytaOHaedk3rbCVr9kInEEMirVTpP1nwH2zYBWsiIET7X132bXproRNgK19FBOpR32lcXK4ziHXWVYkWsh7j3UcIwO/EL+AVR/jROtc6rsGquIKON9XnenPb1XaRt7HQQIEM8IP4mv3HCMmJeK8cGYke1SRjafF+Liw=
MIME-Version: 1.0
X-OriginatorOrg: rbbn.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c21b5cd1-6790-4ab0-8aed-08d6f0f7e54c
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2019 18:41:21.3351 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 29a671dc-ed7e-4a54-b1e5-8da1eb495dc3
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: sodey@rbbn.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR03MB3777
X-MC-Unique: waoipy-4Mym2atSGH52xYg-1
X-Mimecast-Spam-Score: 0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Subject: Re: [dpdk-dev] [PATCH] kni: fix possible kernel crash with va2pa
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

V2FzIHRoZXJlIGFueSB1cGRhdGUgdG8gdGhpcyBwYXRjaCAsIEkgYW0gYWxzbyBzZWVpbmcga2Vy
bmVsIGNyYXNoIGluIGtuaV9uZXRfcnhfbm9ybWFsIGR1ZWluZyBza2JfcHV0IHdoaWNoIGlzIGhh
cHBlbmluZyBmb3IgY2hhaW5lZCBtYnVmcy4NCg0KLS0NClJlZ2FyZHMsDQpTb3V2aWsNCg0KDQpG
cm9tOiBkZXYgPGRldi1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhhbGYgT2YgRmVycnVoIFlpZ2l0
DQpTZW50OiBXZWRuZXNkYXksIE1hcmNoIDYsIDIwMTkgMTI6MzEgUE0NClRvOiBZYW5nY2hhbyBa
aG91IDx6aG91eWF0ZXNAZ21haWwuY29tPjsgZGV2QGRwZGsub3JnDQpTdWJqZWN0OiBSZTogW2Rw
ZGstZGV2XSBbUEFUQ0hdIGtuaTogZml4IHBvc3NpYmxlIGtlcm5lbCBjcmFzaCB3aXRoIHZhMnBh
DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpOT1RJQ0U6IFRoaXMgZW1haWwg
d2FzIHJlY2VpdmVkIGZyb20gYW4gRVhURVJOQUwgc2VuZGVyDQpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXw0KDQpPbiAyLzI4LzIwMTkgNzozMCBBTSwgWWFuZ2NoYW8gWmhvdSB3cm90
ZToNCj4gdmEycGEgZGVwZW5kcyBvbiB0aGUgcGh5c2ljYWwgYWRkcmVzcyBhbmQgdmlydHVhbCBh
ZGRyZXNzIG9mZnNldCBvZg0KPiBjdXJyZW50IG1idWYuIEl0IG1heSBnZXQgdGhlIHdyb25nIHBo
eXNpY2FsIGFkZHJlc3Mgb2YgbmV4dCBtYnVmIHdoaWNoDQo+IGFsbG9jYXRlZCBpbiBhbm90aGVy
IGh1Z2VwYWdlIHNlZ21lbnQuDQoNCkhpIFlhbmdjaGFvLA0KDQpUaGUgcHJvYmxlbSB5b3UgZGVz
Y3JpYmVkIHNlZW1zIHZhbGlkLCB3aGVuIGN1cnJlbnQgbWJ1ZiBhbmQgdGhlIG1idWYgcG9pbnRl
ZCBidQ0KbmV4dCBwb2ludGVyIGZyb20gZGlmZmVyZW50IChodWdlKXBhZ2VzLCBhZGRyZXNzIGNh
bGN1bGF0aW9uIHdpbGwgYmUgd3JvbmcuDQoNCkNhbiB5b3UgYWJsZSB0byByZXByb2R1Y2UgdGhl
IGlzc3VlLCBvciByZWNvZ25pemVkIHRoZSBwcm9ibGVtIHRoZW9yZXRpY2FsbHk/DQoNCj4NCj4g
U2lnbmVkLW9mZi1ieTogWWFuZ2NoYW8gWmhvdSA8emhvdXlhdGVzQGdtYWlsLmNvbTxtYWlsdG86
emhvdXlhdGVzQGdtYWlsLmNvbT4+DQo+IC0tLQ0KPiBrZXJuZWwvbGludXgva25pL2tuaV9uZXQu
YyB8IDE2ICsrLS0tLS0tLS0tLS0tLS0NCj4gLi4uL2VhbC9pbmNsdWRlL2V4ZWMtZW52L3J0ZV9r
bmlfY29tbW9uLmggfCA0ICsrKysNCj4gbGliL2xpYnJ0ZV9rbmkvcnRlX2tuaS5jIHwgMTUgKysr
KysrKysrKysrKystDQo+IDMgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTUgZGVs
ZXRpb25zKC0pDQo+DQo+IGRpZmYgLS1naXQgYS9rZXJuZWwvbGludXgva25pL2tuaV9uZXQuYyBi
L2tlcm5lbC9saW51eC9rbmkva25pX25ldC5jDQo+IGluZGV4IDczNzFiNmQ1OC4uY2FlZjg3NTRm
IDEwMDY0NA0KPiAtLS0gYS9rZXJuZWwvbGludXgva25pL2tuaV9uZXQuYw0KPiArKysgYi9rZXJu
ZWwvbGludXgva25pL2tuaV9uZXQuYw0KPiBAQCAtNjEsMTggKzYxLDYgQEAga3ZhMmRhdGFfa3Zh
KHN0cnVjdCBydGVfa25pX21idWYgKm0pDQo+IHJldHVybiBwaHlzX3RvX3ZpcnQobS0+YnVmX3Bo
eXNhZGRyICsgbS0+ZGF0YV9vZmYpOw0KPiB9DQo+DQo+IC0vKiB2aXJ0dWFsIGFkZHJlc3MgdG8g
cGh5c2ljYWwgYWRkcmVzcyAqLw0KPiAtc3RhdGljIHZvaWQgKg0KPiAtdmEycGEodm9pZCAqdmEs
IHN0cnVjdCBydGVfa25pX21idWYgKm0pDQo+IC17DQo+IC0gdm9pZCAqcGE7DQo+IC0NCj4gLSBw
YSA9ICh2b2lkICopKCh1bnNpZ25lZCBsb25nKXZhIC0NCj4gLSAoKHVuc2lnbmVkIGxvbmcpbS0+
YnVmX2FkZHIgLQ0KPiAtICh1bnNpZ25lZCBsb25nKW0tPmJ1Zl9waHlzYWRkcikpOw0KPiAtIHJl
dHVybiBwYTsNCj4gLX0NCj4gLQ0KPiAvKg0KPiAqIEl0IGNhbiBiZSBjYWxsZWQgdG8gcHJvY2Vz
cyB0aGUgcmVxdWVzdC4NCj4gKi8NCj4gQEAgLTM2Myw3ICszNTEsNyBAQCBrbmlfbmV0X3J4X25v
cm1hbChzdHJ1Y3Qga25pX2RldiAqa25pKQ0KPiBpZiAoIWt2YS0+bmV4dCkNCj4gYnJlYWs7DQo+
DQo+IC0ga3ZhID0gcGEya3ZhKHZhMnBhKGt2YS0+bmV4dCwga3ZhKSk7DQo+ICsga3ZhID0gcGEy
a3ZhKGt2YS0+bmV4dF9wYSk7DQo+IGRhdGFfa3ZhID0ga3ZhMmRhdGFfa3ZhKGt2YSk7DQo+IH0N
Cj4gfQ0KPiBAQCAtNTQ1LDcgKzUzMyw3IEBAIGtuaV9uZXRfcnhfbG9fZmlmb19za2Ioc3RydWN0
IGtuaV9kZXYgKmtuaSkNCj4gaWYgKCFrdmEtPm5leHQpDQo+IGJyZWFrOw0KPg0KPiAtIGt2YSA9
IHBhMmt2YSh2YTJwYShrdmEtPm5leHQsIGt2YSkpOw0KPiArIGt2YSA9IHBhMmt2YShrdmEtPm5l
eHRfcGEpOw0KPiBkYXRhX2t2YSA9IGt2YTJkYXRhX2t2YShrdmEpOw0KPiB9DQo+IH0NCj4gZGlm
ZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2xpbnV4YXBwL2VhbC9pbmNsdWRlL2V4ZWMtZW52L3J0
ZV9rbmlfY29tbW9uLmggYi9saWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvaW5jbHVkZS9leGVj
LWVudi9ydGVfa25pX2NvbW1vbi5oDQo+IGluZGV4IDVhZmEwODcxMy4uNjA4ZjVjMTNmIDEwMDY0
NA0KPiAtLS0gYS9saWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvaW5jbHVkZS9leGVjLWVudi9y
dGVfa25pX2NvbW1vbi5oDQo+ICsrKyBiL2xpYi9saWJydGVfZWFsL2xpbnV4YXBwL2VhbC9pbmNs
dWRlL2V4ZWMtZW52L3J0ZV9rbmlfY29tbW9uLmgNCj4gQEAgLTg3LDYgKzg3LDEwIEBAIHN0cnVj
dCBydGVfa25pX21idWYgew0KPiBjaGFyIHBhZDNbOF0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVk
X18oUlRFX0NBQ0hFX0xJTkVfTUlOX1NJWkUpKSk7DQo+IHZvaWQgKnBvb2w7DQo+IHZvaWQgKm5l
eHQ7DQo+ICsgdW5pb24gew0KPiArIHVpbnQ2NF90IHR4X29mZmxvYWQ7DQo+ICsgdm9pZCAqbmV4
dF9wYTsgLyoqPCBQaHlzaWNhbCBhZGRyZXNzIG9mIG5leHQgbWJ1Zi4gKi8NCj4gKyB9Ow0KDQpU
aGlzIHdpbGwgY2F1c2Ugb3ZlcndyaXRlIHRoZSAndHhfb2ZmbG9hZCcgdmlhICduZXh0X3BhJywg
d2UgZG9uJ3QgdXNlDQp0eF9vZmZsb2FkIGluIEtOSSBidXQgbm90IHN1cmUgYWJvdXQgcmVtb3Zp
bmcgcG90ZW50aWFsIHVzZSBmb3IgZnV0dXJlLg0KDQpXaGF0IGRvIHlvdSB0aGluayBhYm91dCBj
b252ZXJ0aW5nICdtLT5uZXh0JyB0byBwaHlzaWNhbCBhZGRyZXNzIGJlZm9yZSBwdXR0aW5nDQp0
aGVtIGludG8gJ3J4X3EnLCBhbmQgaW4ga2VybmVsIHNpZGUgYWZ0ZXIgZGF0YSBjb3BpZWQgdG8g
c2tiIGNvbnZlcnQgJ20tPm5leHQnDQpiYWNrIHRvIHZpcnR1YWwgYWRkcmVzcyBiZWZvcmUgcHV0
dGluZyBpdCBpbnRvICdmcmVlX3EnID8NCkkgdGhpbmsgYm90aCBhZGRyZXNzIGNvbnZlcnNpb24g
Y2FuIGJlIHBvc3NpYmxlIHRvIGRvLCBhIGxpdHRsZSB0cmlja3kgYmVjYXVzZQ0KYWRkcmVzcyBj
b252ZXJzaW9uIHNob3VsZCBiZSBjYWxjdWxhdGVkIGluIG5leHQgbWJ1ZiBhbmQgcHJldmlvdXMg
bWJ1Zi0+bmV4dCBpbg0KdGhlIGNoYWluIHNob3VsZCBiZSB1cGRhdGVkLg0KDQo+IH07DQo+DQo+
IC8qDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2tuaS9ydGVfa25pLmMgYi9saWIvbGlicnRl
X2tuaS9ydGVfa25pLmMNCj4gaW5kZXggNzNhZWNjY2NmLi4xYWFlYmNmYTEgMTAwNjQ0DQo+IC0t
LSBhL2xpYi9saWJydGVfa25pL3J0ZV9rbmkuYw0KPiArKysgYi9saWIvbGlicnRlX2tuaS9ydGVf
a25pLmMNCj4gQEAgLTM1Myw2ICszNTMsMTcgQEAgdmEycGEoc3RydWN0IHJ0ZV9tYnVmICptKQ0K
PiAodW5zaWduZWQgbG9uZyltLT5idWZfaW92YSkpOw0KPiB9DQo+DQo+ICtzdGF0aWMgdm9pZCAq
DQo+ICt2YTJwYV9hbGwoc3RydWN0IHJ0ZV9tYnVmICptKQ0KPiArew0KPiArIHN0cnVjdCBydGVf
a25pX21idWYgKm1idWYgPSAoc3RydWN0IHJ0ZV9rbmlfbWJ1ZiAqKW07DQo+ICsgd2hpbGUgKG1i
dWYtPm5leHQpIHsNCj4gKyBtYnVmLT5uZXh0X3BhID0gdmEycGEobWJ1Zi0+bmV4dCk7DQo+ICsg
bWJ1ZiA9IG1idWYtPm5leHQ7DQo+ICsgfQ0KPiArIHJldHVybiB2YTJwYShtKTsNCj4gK30NCj4g
Kw0KPiBzdGF0aWMgdm9pZA0KPiBvYmpfZnJlZShzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wIF9fcnRl
X3VudXNlZCwgdm9pZCAqb3BhcXVlLCB2b2lkICpvYmosDQo+IHVuc2lnbmVkIG9ial9pZHggX19y
dGVfdW51c2VkKQ0KPiBAQCAtNTUwLDcgKzU2MSw3IEBAIHJ0ZV9rbmlfdHhfYnVyc3Qoc3RydWN0
IHJ0ZV9rbmkgKmtuaSwgc3RydWN0IHJ0ZV9tYnVmICoqbWJ1ZnMsIHVuc2lnbmVkIG51bSkNCj4g
dW5zaWduZWQgaW50IGk7DQo+DQo+IGZvciAoaSA9IDA7IGkgPCBudW07IGkrKykNCj4gLSBwaHlf
bWJ1ZnNbaV0gPSB2YTJwYShtYnVmc1tpXSk7DQo+ICsgcGh5X21idWZzW2ldID0gdmEycGFfYWxs
KG1idWZzW2ldKTsNCj4NCj4gcmV0ID0ga25pX2ZpZm9fcHV0KGtuaS0+cnhfcSwgcGh5X21idWZz
LCBudW0pOw0KPg0KPiBAQCAtNjA3LDYgKzYxOCw4IEBAIGtuaV9hbGxvY2F0ZV9tYnVmcyhzdHJ1
Y3QgcnRlX2tuaSAqa25pKQ0KPiBvZmZzZXRvZihzdHJ1Y3QgcnRlX2tuaV9tYnVmLCBwa3RfbGVu
KSk7DQo+IFJURV9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IHJ0ZV9tYnVmLCBvbF9mbGFn
cykgIT0NCj4gb2Zmc2V0b2Yoc3RydWN0IHJ0ZV9rbmlfbWJ1Ziwgb2xfZmxhZ3MpKTsNCj4gKyBS
VEVfQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBydGVfbWJ1ZiwgdHhfb2ZmbG9hZCkgIT0N
Cj4gKyBvZmZzZXRvZihzdHJ1Y3QgcnRlX2tuaV9tYnVmLCB0eF9vZmZsb2FkKSk7DQo+DQo+IC8q
IENoZWNrIGlmIHBrdG1idWYgcG9vbCBoYXMgYmVlbiBjb25maWd1cmVkICovDQo+IGlmIChrbmkt
PnBrdG1idWZfcG9vbCA9PSBOVUxMKSB7DQo+DQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCk5vdGljZTogVGhpcyBlLW1h
aWwgdG9nZXRoZXIgd2l0aCBhbnkgYXR0YWNobWVudHMgbWF5IGNvbnRhaW4gaW5mb3JtYXRpb24g
b2YgUmliYm9uIENvbW11bmljYXRpb25zIEluYy4gdGhhdA0KaXMgY29uZmlkZW50aWFsIGFuZC9v
ciBwcm9wcmlldGFyeSBmb3IgdGhlIHNvbGUgdXNlIG9mIHRoZSBpbnRlbmRlZCByZWNpcGllbnQu
ICBBbnkgcmV2aWV3LCBkaXNjbG9zdXJlLCByZWxpYW5jZSBvcg0KZGlzdHJpYnV0aW9uIGJ5IG90
aGVycyBvciBmb3J3YXJkaW5nIHdpdGhvdXQgZXhwcmVzcyBwZXJtaXNzaW9uIGlzIHN0cmljdGx5
IHByb2hpYml0ZWQuICBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQNCnJlY2lwaWVudCwgcGxl
YXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5IGFuZCB0aGVuIGRlbGV0ZSBhbGwgY29w
aWVzLCBpbmNsdWRpbmcgYW55IGF0dGFjaG1lbnRzLg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg==