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 inbox.dpdk.org (Postfix) with ESMTP id B07DEA04BC;
	Fri,  9 Oct 2020 13:16:25 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 644841D412;
	Fri,  9 Oct 2020 13:16:24 +0200 (CEST)
Received: from mga17.intel.com (mga17.intel.com [192.55.52.151])
 by dpdk.org (Postfix) with ESMTP id BC9061D407
 for <dev@dpdk.org>; Fri,  9 Oct 2020 13:16:21 +0200 (CEST)
IronPort-SDR: tisNhPc17DC8NyUL05CKEDtQYaiLsqC5/oKZVbH/1zR/xBMX5qetvz92FwZgLPsDFLUHLApG0F
 pocssr+c+EXA==
X-IronPort-AV: E=McAfee;i="6000,8403,9768"; a="145336506"
X-IronPort-AV: E=Sophos;i="5.77,354,1596524400"; d="scan'208";a="145336506"
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga003.fm.intel.com ([10.253.24.29])
 by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 09 Oct 2020 04:16:20 -0700
IronPort-SDR: wgYrbdmFaqvHO1hHIb+e9NG5XuQrRMNowO8Jpe703Eta1r4U435k8hTdOX9Pr54VxPH5K9jDwK
 +If2zsVE7lSQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.77,354,1596524400"; d="scan'208";a="354823870"
Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84])
 by FMSMGA003.fm.intel.com with ESMTP; 09 Oct 2020 04:16:20 -0700
Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by
 fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.1713.5; Fri, 9 Oct 2020 04:16:17 -0700
Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by
 fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.1713.5; Fri, 9 Oct 2020 04:16:16 -0700
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5
 via Frontend Transport; Fri, 9 Oct 2020 04:16:16 -0700
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.175)
 by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.1713.5; Fri, 9 Oct 2020 04:16:15 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WpjUkuea3/0C/gf62vQtH9OqZTw2waXORRBbqHsluNE5FsOm9MvtOF+o22+tJUE92ELA32fivR01BdH2rl6YicpMxI23hJz/b1GyzKNr91HmZGqn6PbBRg1F7znvngJyInii99tn/D1440LcIqwutF/dq1tRRJ/ebxQYons1JUL6OhNLPabyeBb5+L6v6rZ6CEAlWLo6NStmMqN0sKNOipKJDFnpuSgNHf9eQe0nAbDu9DvLkBvx+NZK1ARiFq94S4B1G6DPcdDRwfudg7CUhzGWs3xcVfuoeTW75GgIa1DPGrVY9XDCUAW8SP6JKRhiFtVJsQ/1uNMb2cVIlqNfcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dqb7FHVVpoX5C/tC/gcMJK0X5FVzQqKrbsdAl9LjJ+0=;
 b=Xa9A+4nwRwT9LcJHn4ixvSmzmkME4H7+NKyyZVGMuhqFWXFXEMyKe8NGmucDysm5C48aPgtiPv4F96op/QcJUnPHDwLlsJ413QYY6pfabss0DJFATu/X6Y8pRhoRexYrppZN2S2aiJs1dq5hfmA0BPGvMWzNrgzx0282kVrtktvnaygv4sbeVzi+jxyeC6M1OusyqlOjxu/Y9mlJ1u4NiC2Y8s0dJnlkJC4wv5NdN1p/rXSO7o+Rct/6PNbwZ9hlWE2EfPJKoePr51KPWiyTUG/Ns5HuYBHxG+2HvOl0miIuZKUeadoUPT29PeMbtokb/sDE4UO0QwgeAF9V/yorKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; 
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dqb7FHVVpoX5C/tC/gcMJK0X5FVzQqKrbsdAl9LjJ+0=;
 b=arukUS3JIsYUU2QYE7oj1nBa8swCtUueXGeal+yhpBK5oGReX16H4tfsUA9aTB7DRGjB2DnVhPOjS1abB2Z9QqMapV8/dXq9N46QRD+c9sIpl6yo1Z/BUNk+IvkRkmTc9yfyp+5T7kCD0CB0HqYaFBXncrTvFoMBaZQ47RLFuHU=
Received: from MWHPR11MB0032.namprd11.prod.outlook.com (2603:10b6:301:63::28)
 by MWHPR11MB1551.namprd11.prod.outlook.com (2603:10b6:301:d::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.27; Fri, 9 Oct
 2020 11:16:13 +0000
Received: from MWHPR11MB0032.namprd11.prod.outlook.com
 ([fe80::88c9:ad8c:fcf2:9177]) by MWHPR11MB0032.namprd11.prod.outlook.com
 ([fe80::88c9:ad8c:fcf2:9177%6]) with mapi id 15.20.3412.028; Fri, 9 Oct 2020
 11:16:13 +0000
From: "Fu, Patrick" <patrick.fu@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "Xia, Chenbo" <chenbo.xia@intel.com>
CC: "Wang, Zhihong" <zhihong.wang@intel.com>, "Jiang, Cheng1"
 <cheng1.jiang@intel.com>
Thread-Topic: [PATCH v3 1/4] vhost: simplify async copy completion
Thread-Index: AQHWlkRH3jLRcCL1nUGEV/SKdbpXLamJD2eAgAYZTAA=
Date: Fri, 9 Oct 2020 11:16:13 +0000
Message-ID: <MWHPR11MB0032AE9D33357FE717EA3C2484080@MWHPR11MB0032.namprd11.prod.outlook.com>
References: <20200911015316.1903181-1-patrick.fu@intel.com>
 <20200929092955.2848419-1-patrick.fu@intel.com>
 <20200929092955.2848419-2-patrick.fu@intel.com>
 <ce4a7e31-f4f8-cd0b-f077-66596b728c5c@redhat.com>
In-Reply-To: <ce4a7e31-f4f8-cd0b-f077-66596b728c5c@redhat.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-version: 11.5.1.3
dlp-product: dlpe-windows
dlp-reaction: no-action
authentication-results: redhat.com; dkim=none (message not signed)
 header.d=none;redhat.com; dmarc=none action=none header.from=intel.com;
x-originating-ip: [192.198.147.200]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: fa427e79-2467-45a7-ec17-08d86c44bbda
x-ms-traffictypediagnostic: MWHPR11MB1551:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <MWHPR11MB155112968BA5DD9E35C6CBFB84080@MWHPR11MB1551.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: AejERClOnFZHfa0Pki8netSxWFNLMQMpJDmU4Lc2IKUlKBJQpHHwDdJzuwjo5XIS0RbW98s+YKEzNjEbJlKkHgEuHZBGj2p3NXqea9sFex4fTvGr0Qq478Kv3RsDXxDJoGowV+9vTrp+jXfWIFVwnByUJLvS6vuxHWU8Q0Mtv8wCvwt4EqmbGCQrWIgBpxwwGo4oVKSzxQQ5U4QUCyRJX6mxuPwzn4oaCVOIdrrqmVYtn0Dx9MDqGCrZ15Pgv6XnAY5fwwIGzOUDHdaEM+GEbKSVen10kg0kGrJU9Eo92SaJaNifvZ8zLq/7r4zfAVqpc/sa8R9lT3HTsAbk3PA0qA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:MWHPR11MB0032.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(4636009)(366004)(396003)(376002)(346002)(136003)(39860400002)(66556008)(64756008)(66946007)(66446008)(107886003)(478600001)(33656002)(76116006)(2906002)(186003)(316002)(66476007)(86362001)(6636002)(52536014)(26005)(54906003)(4326008)(110136005)(9686003)(5660300002)(30864003)(7696005)(53546011)(6506007)(55016002)(8676002)(71200400001)(8936002)(83380400001);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: x5sbVgJAWZMe5z27uUfERdtTvOQqzqCIe3SljNPJyeowQsWs0lE3sjpbZ9pwkYriZB9b5hJkej9hSelNDSftZ68NyP+bq2fzpkkIV5kDJKzkYzj4A+q65EloVoYLxFrIxdrwcwuTbNfJTEfdHf7BF/8Ga2y6FKiX6a1s7eQYF0sQ5XUfuXZ8bf/RSWzUyUMNNdKtYWmGVol7pWk6vxTZb3AlwfvY22brF6OhYRw4fVve559/7vVn9AB7qhWwd/0dbF+WCFsCXYztL1pXgVXcKiaUasFWApbQ4IhtfY2JFJ2A6P13wcPl+cN7OGGfdc96trpAw442IfgZj4hidz/Z0mQEUnvtJOhNAy7dypf0YT5pxmEoF3On1J44xZCPpyyDRXBrKSxXJvh5d51DqPCh88wJjm+or0xeOAWDpgfFX1qgHDRmDJnwR5DR/ysT88OrAkbwGpLUOmnQhX4+PbjaCrJJqIEmHYYFYBA7kRtLoWGtN0dsha1f/k4fPu852re4Y+JLugkpZBqQrWIQ7e6EKrcQZl5Xir6YKFXPjV6WbZYp8RsldT3pdf6HSVpwQGga5kfZi5XDkntVLi8Zs+oiZb4PILpeidi5rETurldor6xz4zzN7QWWLyCUnpRfYKH3bhEVgWFuomEinaP9Pc089Q==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB0032.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fa427e79-2467-45a7-ec17-08d86c44bbda
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2020 11:16:13.6448 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: bft66jqyQ5vQl18XXwhAjEK7iFd6rCFDIhAWkTff0lfziu/o3/TIcDmx1hFuM8vTA5WX80ZQCr9BxbUOi9/8WQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1551
X-OriginatorOrg: intel.com
Subject: Re: [dpdk-dev] [PATCH v3 1/4] vhost: simplify async copy completion
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>

PiA+IE9uIDkvMjkvMjAgMTE6MjkgQU0sIFBhdHJpY2sgRnUgd3JvdGU6DQo+ID4gQ3VycmVudCBh
c3luYyBvcHMgYWxsb3dzIGNoZWNrX2NvbXBsZXRlZF9jb3BpZXMoKSBjYWxsYmFjayB0byByZXR1
cm4NCj4gPiBhcmJpdHJhcnkgbnVtYmVyIG9mIGFzeW5jIGlvdiBzZWdtZW50cyBmaW5pc2hlZCBm
cm9tIGJhY2tlbmQgYXN5bmMNCj4gPiBkZXZpY2VzLiBUaGlzIGRlc2lnbiBjcmVhdGVzIGNvbXBs
ZXhpdHkgZm9yIHZob3N0IHRvIGhhbmRsZSBicmVha2luZw0KPiA+IHRyYW5zZmVyIG9mIGEgc2lu
Z2xlIHBhY2tldCAoaS5lLiB0cmFuc2ZlciBjb21wbGV0ZXMgaW4gdGhlIG1pZGRsZQ0KPiA+IG9m
IGEgYXN5bmMgZGVzY3JpcHRvcikgYW5kIHByZXZlbnRzIGFwcGxpY2F0aW9uIGNhbGxiYWNrcyBm
cm9tDQo+ID4gbGV2ZXJhZ2luZyBoYXJkd2FyZSBjYXBhYmlsaXR5IHRvIG9mZmxvYWQgdGhlIHdv
cmsuIFRodXMsIHRoaXMgcGF0Y2gNCj4gPiBlbmZvcmNlcyB0aGUgY2hlY2tfY29tcGxldGVkX2Nv
cGllcygpIGNhbGxiYWNrIHRvIHJldHVybiB0aGUgbnVtYmVyDQo+ID4gb2YgYXN5bmMgbWVtb3J5
IGRlc2NyaXB0b3JzLCB3aGljaCBpcyBhbGlnbmVkIHdpdGggYXN5bmMgdHJhbnNmZXINCj4gPiBk
YXRhIG9wcyBjYWxsYmFja3MuIHZIb3N0IGFzeW5jIGRhdGEgcGF0aCBhcmUgcmV2aXNlZCB0byB3
b3JrIHdpdGgNCj4gPiBuZXcgb3BzIGRlZmluZSwgd2hpY2ggcHJvdmlkZXMgYSBjbGVhbiBhbmQg
c2ltcGxpZmllZCBwcm9jZXNzaW5nLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogUGF0cmljayBG
dSA8cGF0cmljay5mdUBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGxpYi9saWJydGVfdmhvc3Qv
cnRlX3Zob3N0X2FzeW5jLmggfCAgMTUgKystDQo+ID4gIGxpYi9saWJydGVfdmhvc3Qvdmhvc3Qu
YyAgICAgICAgICAgfCAgMjAgKystLQ0KPiA+ICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0LmggICAg
ICAgICAgIHwgICA4ICstDQo+ID4gIGxpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jICAgICAg
fCAgIDYgKy0NCj4gPiAgbGliL2xpYnJ0ZV92aG9zdC92aXJ0aW9fbmV0LmMgICAgICB8IDE1MSAr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDkwIGlu
c2VydGlvbnMoKyksIDExMCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIv
bGlicnRlX3Zob3N0L3J0ZV92aG9zdF9hc3luYy5oDQo+IGIvbGliL2xpYnJ0ZV92aG9zdC9ydGVf
dmhvc3RfYXN5bmMuaA0KPiA+IGluZGV4IGNiNjI4NDUzOS4uYzczYmQ3Yzk5IDEwMDY0NA0KPiA+
IC0tLSBhL2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0X2FzeW5jLmgNCj4gPiArKysgYi9saWIv
bGlicnRlX3Zob3N0L3J0ZV92aG9zdF9hc3luYy5oDQo+ID4gQEAgLTc2LDEzICs3NiwyNiBAQCBz
dHJ1Y3QgcnRlX3Zob3N0X2FzeW5jX2NoYW5uZWxfb3BzIHsNCj4gPiAgCSAqIEBwYXJhbSBtYXhf
cGFja2V0cw0KPiA+ICAJICogIG1heCBudW1iZXIgb2YgcGFja2V0cyBjb3VsZCBiZSBjb21wbGV0
ZWQNCj4gPiAgCSAqIEByZXR1cm4NCj4gPiAtCSAqICBudW1iZXIgb2YgaW92IHNlZ21lbnRzIGNv
bXBsZXRlZA0KPiA+ICsJICogIG51bWJlciBvZiBhc3luYyBkZXNjcyBjb21wbGV0ZWQNCj4gPiAg
CSAqLw0KPiA+ICAJdWludDMyX3QgKCpjaGVja19jb21wbGV0ZWRfY29waWVzKShpbnQgdmlkLCB1
aW50MTZfdCBxdWV1ZV9pZCwNCj4gPiAgCQlzdHJ1Y3QgcnRlX3Zob3N0X2FzeW5jX3N0YXR1cyAq
b3BhcXVlX2RhdGEsDQo+ID4gIAkJdWludDE2X3QgbWF4X3BhY2tldHMpOw0KPiA+ICB9Ow0KPiA+
DQo+ID4gKy8qKg0KPiA+ICsgKiBpbmZsaWdodCBhc3luYyBwYWNrZXQgaW5mb3JtYXRpb24NCj4g
PiArICovDQo+ID4gK3N0cnVjdCBhc3luY19pbmZsaWdodF9pbmZvIHsNCj4gPiArCXVuaW9uIHsN
Cj4gPiArCQl1aW50MzJfdCBpbmZvOw0KPiA+ICsJCXN0cnVjdCB7DQo+ID4gKwkJCXVpbnQxNl90
IGRlc2NzOyAvKiBudW0gb2YgZGVzY3MgaW5mbGlnaHQgKi8NCj4gPiArCQkJdWludDE2X3Qgc2Vn
czsgLyogaW92IHNlZ3MgaW5mbGlnaHQgKi8NCj4gPiArCQl9Ow0KPiA+ICsJfTsNCj4gDQo+IEkg
dGhpbmsgeW91IGNhbiByZW1vdmluZyB0aGUgdW5pb24uDQo+IA0KVGhlcmUgYXJlIHNvbWUgY2Fz
ZXMgaW4gdGhlIGNvZGUgdGhhdCB3ZSB3YW50IHRvIHNldCBkZXNjcz1OIGFuZCBzZXQgc2Vncz0w
LiBJbiBzdWNoIGNhc2VzLCByZWZlcmVuY2UgaW5mbz1OIGRpcmVjdGx5IHdpbGwgYmUgZmFzdGVy
IHRoYW4gc2V0dGluZyBkZXNjcyAmIHNlZ3Mgc2VwYXJhdGVseS4gIFNvIEkgd291bGQgcHJlZmVy
IHRvIGtlZXAgdGhlIHVuaW9uLg0KDQo+ID4gK307DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICog
IGRtYSBjaGFubmVsIGZlYXR1cmUgYml0IGRlZmluaXRpb24NCj4gPiAgICovDQo+ID4gZGlmZiAt
LWdpdCBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuYyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3Qu
Yw0KPiA+IGluZGV4IDhmMjBhMDgxOC4uZWNhNTA3ODM2IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9s
aWJydGVfdmhvc3Qvdmhvc3QuYw0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuYw0K
PiA+IEBAIC0zMzMsOCArMzMzLDggQEAgZnJlZV92cShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCBz
dHJ1Y3QNCj4gdmhvc3RfdmlydHF1ZXVlICp2cSkNCj4gPiAgCQlydGVfZnJlZSh2cS0+c2hhZG93
X3VzZWRfc3BsaXQpOw0KPiA+ICAJCWlmICh2cS0+YXN5bmNfcGt0c19wZW5kaW5nKQ0KPiA+ICAJ
CQlydGVfZnJlZSh2cS0+YXN5bmNfcGt0c19wZW5kaW5nKTsNCj4gPiAtCQlpZiAodnEtPmFzeW5j
X3BlbmRpbmdfaW5mbykNCj4gPiAtCQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BlbmRpbmdfaW5mbyk7
DQo+ID4gKwkJaWYgKHZxLT5hc3luY19wa3RzX2luZm8pDQo+ID4gKwkJCXJ0ZV9mcmVlKHZxLT5h
c3luY19wa3RzX2luZm8pOw0KPiA+ICAJfQ0KPiA+ICAJcnRlX2ZyZWUodnEtPmJhdGNoX2NvcHlf
ZWxlbXMpOw0KPiA+ICAJcnRlX21lbXBvb2xfZnJlZSh2cS0+aW90bGJfcG9vbCk7DQo+ID4gQEAg
LTE1NzMsMTUgKzE1NzMsMTUgQEAgaW50IHJ0ZV92aG9zdF9hc3luY19jaGFubmVsX3JlZ2lzdGVy
KGludCB2aWQsDQo+IHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ICAJdnEtPmFzeW5jX3BrdHNfcGVu
ZGluZyA9IHJ0ZV9tYWxsb2MoTlVMTCwNCj4gPiAgCQkJdnEtPnNpemUgKiBzaXplb2YodWludHB0
cl90KSwNCj4gPiAgCQkJUlRFX0NBQ0hFX0xJTkVfU0laRSk7DQo+ID4gLQl2cS0+YXN5bmNfcGVu
ZGluZ19pbmZvID0gcnRlX21hbGxvYyhOVUxMLA0KPiA+IC0JCQl2cS0+c2l6ZSAqIHNpemVvZih1
aW50NjRfdCksDQo+ID4gKwl2cS0+YXN5bmNfcGt0c19pbmZvID0gcnRlX21hbGxvYyhOVUxMLA0K
PiA+ICsJCQl2cS0+c2l6ZSAqIHNpemVvZihzdHJ1Y3QgYXN5bmNfaW5mbGlnaHRfaW5mbyksDQo+
ID4gIAkJCVJURV9DQUNIRV9MSU5FX1NJWkUpOw0KPiA+IC0JaWYgKCF2cS0+YXN5bmNfcGt0c19w
ZW5kaW5nIHx8ICF2cS0+YXN5bmNfcGVuZGluZ19pbmZvKSB7DQo+ID4gKwlpZiAoIXZxLT5hc3lu
Y19wa3RzX3BlbmRpbmcgfHwgIXZxLT5hc3luY19wa3RzX2luZm8pIHsNCj4gPiAgCQlpZiAodnEt
PmFzeW5jX3BrdHNfcGVuZGluZykNCj4gPiAgCQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BrdHNfcGVu
ZGluZyk7DQo+ID4NCj4gPiAtCQlpZiAodnEtPmFzeW5jX3BlbmRpbmdfaW5mbykNCj4gPiAtCQkJ
cnRlX2ZyZWUodnEtPmFzeW5jX3BlbmRpbmdfaW5mbyk7DQo+ID4gKwkJaWYgKHZxLT5hc3luY19w
a3RzX2luZm8pDQo+ID4gKwkJCXJ0ZV9mcmVlKHZxLT5hc3luY19wa3RzX2luZm8pOw0KPiA+DQo+
ID4gIAkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsDQo+ID4gIAkJCQkiYXN5bmMgcmVnaXN0ZXIgZmFp
bGVkOiBjYW5ub3QgYWxsb2NhdGUNCj4gbWVtb3J5IGZvciB2cSBkYXRhICINCj4gPiBAQCAtMTYz
NSw5ICsxNjM1LDkgQEAgaW50IHJ0ZV92aG9zdF9hc3luY19jaGFubmVsX3VucmVnaXN0ZXIoaW50
IHZpZCwNCj4gdWludDE2X3QgcXVldWVfaWQpDQo+ID4gIAkJdnEtPmFzeW5jX3BrdHNfcGVuZGlu
ZyA9IE5VTEw7DQo+ID4gIAl9DQo+ID4NCj4gPiAtCWlmICh2cS0+YXN5bmNfcGVuZGluZ19pbmZv
KSB7DQo+ID4gLQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BlbmRpbmdfaW5mbyk7DQo+ID4gLQkJdnEt
PmFzeW5jX3BlbmRpbmdfaW5mbyA9IE5VTEw7DQo+ID4gKwlpZiAodnEtPmFzeW5jX3BrdHNfaW5m
bykgew0KPiA+ICsJCXJ0ZV9mcmVlKHZxLT5hc3luY19wa3RzX2luZm8pOw0KPiA+ICsJCXZxLT5h
c3luY19wa3RzX2luZm8gPSBOVUxMOw0KPiA+ICAJfQ0KPiA+DQo+ID4gIAl2cS0+YXN5bmNfb3Bz
LnRyYW5zZmVyX2RhdGEgPSBOVUxMOw0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0
L3Zob3N0LmggYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gPiBpbmRleCA3M2ExZWQ4ODku
LjE1NWE4MzJjMSAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4g
PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gPiBAQCAtNDYsOCArNDYsNiBAQA0K
PiA+DQo+ID4gICNkZWZpbmUgTUFYX1BLVF9CVVJTVCAzMg0KPiA+DQo+ID4gLSNkZWZpbmUgQVNZ
TkNfTUFYX1BPTExfU0VHIDI1NQ0KPiA+IC0NCj4gPiAgI2RlZmluZSBWSE9TVF9NQVhfQVNZTkNf
SVQgKE1BWF9QS1RfQlVSU1QgKiAyKQ0KPiA+ICAjZGVmaW5lIFZIT1NUX01BWF9BU1lOQ19WRUMg
KEJVRl9WRUNUT1JfTUFYICogMikNCj4gPg0KPiA+IEBAIC0yMjUsMTIgKzIyMywxMCBAQCBzdHJ1
Y3Qgdmhvc3RfdmlydHF1ZXVlIHsNCj4gPg0KPiA+ICAJLyogYXN5bmMgZGF0YSB0cmFuc2ZlciBz
dGF0dXMgKi8NCj4gPiAgCXVpbnRwdHJfdAkqKmFzeW5jX3BrdHNfcGVuZGluZzsNCj4gPiAtCSNk
ZWZpbmUJCUFTWU5DX1BFTkRJTkdfSU5GT19OX01TSyAweEZGRkYNCj4gPiAtCSNkZWZpbmUJCUFT
WU5DX1BFTkRJTkdfSU5GT19OX1NGVCAxNg0KPiA+IC0JdWludDY0X3QJKmFzeW5jX3BlbmRpbmdf
aW5mbzsNCj4gPiArCXN0cnVjdCBhc3luY19pbmZsaWdodF9pbmZvICphc3luY19wa3RzX2luZm87
DQo+ID4gIAl1aW50MTZfdAlhc3luY19wa3RzX2lkeDsNCj4gPiAgCXVpbnQxNl90CWFzeW5jX3Br
dHNfaW5mbGlnaHRfbjsNCj4gPiAtCXVpbnQxNl90CWFzeW5jX2xhc3Rfc2VnX247DQo+ID4gKwl1
aW50MTZfdAlhc3luY19sYXN0X3BrdHNfbjsNCj4gPg0KPiA+ICAJLyogdnEgYXN5bmMgZmVhdHVy
ZXMgKi8NCj4gPiAgCWJvb2wJCWFzeW5jX2lub3JkZXI7DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9s
aWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMN
Cj4gPiBpbmRleCA1MDEyMThlMTkuLjY3ZDJhMmQ0MyAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGli
cnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3Rf
dXNlci5jDQo+ID4gQEAgLTIwMDYsMTAgKzIwMDYsMTAgQEAgdmhvc3RfdXNlcl9nZXRfdnJpbmdf
YmFzZShzdHJ1Y3QgdmlydGlvX25ldA0KPiAqKnBkZXYsDQo+ID4gIAkJdnEtPnNoYWRvd191c2Vk
X3NwbGl0ID0gTlVMTDsNCj4gPiAgCQlpZiAodnEtPmFzeW5jX3BrdHNfcGVuZGluZykNCj4gPiAg
CQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BrdHNfcGVuZGluZyk7DQo+ID4gLQkJaWYgKHZxLT5hc3lu
Y19wZW5kaW5nX2luZm8pDQo+ID4gLQkJCXJ0ZV9mcmVlKHZxLT5hc3luY19wZW5kaW5nX2luZm8p
Ow0KPiA+ICsJCWlmICh2cS0+YXN5bmNfcGt0c19pbmZvKQ0KPiA+ICsJCQlydGVfZnJlZSh2cS0+
YXN5bmNfcGt0c19pbmZvKTsNCj4gPiAgCQl2cS0+YXN5bmNfcGt0c19wZW5kaW5nID0gTlVMTDsN
Cj4gPiAtCQl2cS0+YXN5bmNfcGVuZGluZ19pbmZvID0gTlVMTDsNCj4gPiArCQl2cS0+YXN5bmNf
cGt0c19pbmZvID0gTlVMTDsNCj4gPiAgCX0NCj4gPg0KPiA+ICAJcnRlX2ZyZWUodnEtPmJhdGNo
X2NvcHlfZWxlbXMpOw0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3ZpcnRpb19u
ZXQuYyBiL2xpYi9saWJydGVfdmhvc3QvdmlydGlvX25ldC5jDQo+ID4gaW5kZXggYmQ5MzAzYzhh
Li42OGVhZDlhNzEgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aXJ0aW9fbmV0
LmMNCj4gPiArKysgYi9saWIvbGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYw0KPiA+IEBAIC0xNDcz
LDM3ICsxNDczLDYgQEAgdmlydGlvX2Rldl9yeF9hc3luY19nZXRfaW5mb19pZHgodWludDE2X3QN
Cj4gcGt0c19pZHgsDQo+ID4gIAkJKHZxX3NpemUgLSBuX2luZmxpZ2h0ICsgcGt0c19pZHgpICYg
KHZxX3NpemUgLSAxKTsNCj4gPiAgfQ0KPiA+DQo+ID4gLXN0YXRpYyBfX3J0ZV9hbHdheXNfaW5s
aW5lIHZvaWQNCj4gPiAtdmlydGlvX2Rldl9yeF9hc3luY19zdWJtaXRfc3BsaXRfZXJyKHN0cnVj
dCB2aXJ0aW9fbmV0ICpkZXYsDQo+ID4gLQlzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgdWlu
dDE2X3QgcXVldWVfaWQsDQo+ID4gLQl1aW50MTZfdCBsYXN0X2lkeCwgdWludDE2X3Qgc2hhZG93
X2lkeCkNCj4gPiAtew0KPiA+IC0JdWludDE2X3Qgc3RhcnRfaWR4LCBwa3RzX2lkeCwgdnFfc2l6
ZTsNCj4gPiAtCXVpbnQ2NF90ICphc3luY19wZW5kaW5nX2luZm87DQo+ID4gLQ0KPiA+IC0JcGt0
c19pZHggPSB2cS0+YXN5bmNfcGt0c19pZHg7DQo+ID4gLQlhc3luY19wZW5kaW5nX2luZm8gPSB2
cS0+YXN5bmNfcGVuZGluZ19pbmZvOw0KPiA+IC0JdnFfc2l6ZSA9IHZxLT5zaXplOw0KPiA+IC0J
c3RhcnRfaWR4ID0gdmlydGlvX2Rldl9yeF9hc3luY19nZXRfaW5mb19pZHgocGt0c19pZHgsDQo+
ID4gLQkJdnFfc2l6ZSwgdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbik7DQo+ID4gLQ0KPiA+IC0J
d2hpbGUgKGxpa2VseSgoc3RhcnRfaWR4ICYgKHZxX3NpemUgLSAxKSkgIT0gcGt0c19pZHgpKSB7
DQo+ID4gLQkJdWludDY0X3Qgbl9zZWcgPQ0KPiA+IC0JCQlhc3luY19wZW5kaW5nX2luZm9bKHN0
YXJ0X2lkeCkgJiAodnFfc2l6ZSAtIDEpXSA+Pg0KPiA+IC0JCQlBU1lOQ19QRU5ESU5HX0lORk9f
Tl9TRlQ7DQo+ID4gLQ0KPiA+IC0JCXdoaWxlIChuX3NlZykNCj4gPiAtCQkJbl9zZWcgLT0gdnEt
DQo+ID5hc3luY19vcHMuY2hlY2tfY29tcGxldGVkX2NvcGllcyhkZXYtPnZpZCwNCj4gPiAtCQkJ
CXF1ZXVlX2lkLCAwLCAxKTsNCj4gPiAtCX0NCj4gPiAtDQo+ID4gLQl2cS0+YXN5bmNfcGt0c19p
bmZsaWdodF9uID0gMDsNCj4gPiAtCXZxLT5iYXRjaF9jb3B5X25iX2VsZW1zID0gMDsNCj4gPiAt
DQo+ID4gLQl2cS0+c2hhZG93X3VzZWRfaWR4ID0gc2hhZG93X2lkeDsNCj4gPiAtCXZxLT5sYXN0
X2F2YWlsX2lkeCA9IGxhc3RfaWR4Ow0KPiA+IC19DQo+ID4gLQ0KPiA+ICBzdGF0aWMgX19ydGVf
bm9pbmxpbmUgdWludDMyX3QNCj4gPiAgdmlydGlvX2Rldl9yeF9hc3luY19zdWJtaXRfc3BsaXQo
c3RydWN0IHZpcnRpb19uZXQgKmRldiwNCj4gPiAgCXN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZx
LCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPiBAQCAtMTUxMiw3ICsxNDgxLDcgQEAgdmlydGlvX2Rl
dl9yeF9hc3luY19zdWJtaXRfc3BsaXQoc3RydWN0DQo+IHZpcnRpb19uZXQgKmRldiwNCj4gPiAg
CXVpbnQzMl90IHBrdF9pZHggPSAwLCBwa3RfYnVyc3RfaWR4ID0gMDsNCj4gPiAgCXVpbnQxNl90
IG51bV9idWZmZXJzOw0KPiA+ICAJc3RydWN0IGJ1Zl92ZWN0b3IgYnVmX3ZlY1tCVUZfVkVDVE9S
X01BWF07DQo+ID4gLQl1aW50MTZfdCBhdmFpbF9oZWFkLCBsYXN0X2lkeCwgc2hhZG93X2lkeDsN
Cj4gPiArCXVpbnQxNl90IGF2YWlsX2hlYWQ7DQo+ID4NCj4gPiAgCXN0cnVjdCBydGVfdmhvc3Rf
aW92X2l0ZXIgKml0X3Bvb2wgPSB2cS0+aXRfcG9vbDsNCj4gPiAgCXN0cnVjdCBpb3ZlYyAqdmVj
X3Bvb2wgPSB2cS0+dmVjX3Bvb2w7DQo+ID4gQEAgLTE1MjIsMTEgKzE0OTEsMTEgQEAgdmlydGlv
X2Rldl9yeF9hc3luY19zdWJtaXRfc3BsaXQoc3RydWN0DQo+IHZpcnRpb19uZXQgKmRldiwNCj4g
PiAgCXN0cnVjdCBydGVfdmhvc3RfaW92X2l0ZXIgKnNyY19pdCA9IGl0X3Bvb2w7DQo+ID4gIAlz
dHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyICpkc3RfaXQgPSBpdF9wb29sICsgMTsNCj4gPiAgCXVp
bnQxNl90IG5fZnJlZV9zbG90LCBzbG90X2lkeDsNCj4gPiArCXVpbnQxNl90IHBrdF9lcnIgPSAw
Ow0KPiA+ICsJc3RydWN0IGFzeW5jX2luZmxpZ2h0X2luZm8gKnBrdHNfaW5mbyA9IHZxLT5hc3lu
Y19wa3RzX2luZm87DQo+ID4gIAlpbnQgbl9wa3RzID0gMDsNCj4gPg0KPiA+ICAJYXZhaWxfaGVh
ZCA9IF9fYXRvbWljX2xvYWRfbigmdnEtPmF2YWlsLT5pZHgsDQo+IF9fQVRPTUlDX0FDUVVJUkUp
Ow0KPiA+IC0JbGFzdF9pZHggPSB2cS0+bGFzdF9hdmFpbF9pZHg7DQo+ID4gLQlzaGFkb3dfaWR4
ID0gdnEtPnNoYWRvd191c2VkX2lkeDsNCj4gPg0KPiA+ICAJLyoNCj4gPiAgCSAqIFRoZSBvcmRl
cmluZyBiZXR3ZWVuIGF2YWlsIGluZGV4IGFuZA0KPiA+IEBAIC0xNTY1LDE0ICsxNTM0LDE0IEBA
IHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0KHN0cnVjdA0KPiB2aXJ0aW9fbmV0ICpk
ZXYsDQo+ID4gIAkJaWYgKHNyY19pdC0+Y291bnQpIHsNCj4gPiAgCQkJYXN5bmNfZmlsbF9kZXNj
KCZ0ZGVzW3BrdF9idXJzdF9pZHhdLCBzcmNfaXQsIGRzdF9pdCk7DQo+ID4gIAkJCXBrdF9idXJz
dF9pZHgrKzsNCj4gPiAtCQkJdnEtPmFzeW5jX3BlbmRpbmdfaW5mb1tzbG90X2lkeF0gPQ0KPiA+
IC0JCQkJbnVtX2J1ZmZlcnMgfCAoc3JjX2l0LT5ucl9zZWdzIDw8IDE2KTsNCj4gPiArCQkJcGt0
c19pbmZvW3Nsb3RfaWR4XS5kZXNjcyA9IG51bV9idWZmZXJzOw0KPiA+ICsJCQlwa3RzX2luZm9b
c2xvdF9pZHhdLnNlZ3MgPSBzcmNfaXQtPm5yX3NlZ3M7DQo+ID4gIAkJCXNyY19pb3ZlYyArPSBz
cmNfaXQtPm5yX3NlZ3M7DQo+ID4gIAkJCWRzdF9pb3ZlYyArPSBkc3RfaXQtPm5yX3NlZ3M7DQo+
ID4gIAkJCXNyY19pdCArPSAyOw0KPiA+ICAJCQlkc3RfaXQgKz0gMjsNCj4gPiAgCQl9IGVsc2Ug
ew0KPiA+IC0JCQl2cS0+YXN5bmNfcGVuZGluZ19pbmZvW3Nsb3RfaWR4XSA9IG51bV9idWZmZXJz
Ow0KPiA+ICsJCQlwa3RzX2luZm9bc2xvdF9pZHhdLmluZm8gPSBudW1fYnVmZmVyczsNCj4gPiAg
CQkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbisrOw0KPiA+ICAJCX0NCj4gPg0KPiA+IEBAIC0x
NTg2LDM1ICsxNTU1LDQ2IEBAIHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0KHN0cnVj
dA0KPiB2aXJ0aW9fbmV0ICpkZXYsDQo+ID4gIAkJCWRzdF9pb3ZlYyA9IHZlY19wb29sICsgKFZI
T1NUX01BWF9BU1lOQ19WRUMgPj4NCj4gMSk7DQo+ID4gIAkJCXNyY19pdCA9IGl0X3Bvb2w7DQo+
ID4gIAkJCWRzdF9pdCA9IGl0X3Bvb2wgKyAxOw0KPiA+ICsJCQl2cS0+YXN5bmNfcGt0c19pbmZs
aWdodF9uICs9IG5fcGt0czsNCj4gPg0KPiA+ICAJCQlpZiAodW5saWtlbHkobl9wa3RzIDwgKGlu
dClwa3RfYnVyc3RfaWR4KSkgew0KPiA+IC0JCQkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbiAr
PQ0KPiA+IC0JCQkJCW5fcGt0cyA+IDAgPyBuX3BrdHMgOiAwOw0KPiA+IC0JCQkJdmlydGlvX2Rl
dl9yeF9hc3luY19zdWJtaXRfc3BsaXRfZXJyKGRldiwNCj4gPiAtCQkJCQl2cSwgcXVldWVfaWQs
IGxhc3RfaWR4LCBzaGFkb3dfaWR4KTsNCj4gPiAtCQkJCXJldHVybiAwOw0KPiA+ICsJCQkJLyoN
Cj4gPiArCQkJCSAqIGxvZyBlcnJvciBwYWNrZXRzIG51bWJlciBoZXJlIGFuZCBkbw0KPiBhY3R1
YWwNCj4gPiArCQkJCSAqIGVycm9yIHByb2Nlc3Npbmcgd2hlbiBhcHBsaWNhdGlvbnMgcG9sbA0K
PiA+ICsJCQkJICogY29tcGxldGlvbg0KPiA+ICsJCQkJICovDQo+ID4gKwkJCQlwa3RfZXJyID0g
cGt0X2J1cnN0X2lkeCAtIG5fcGt0czsNCj4gPiArCQkJCXBrdF9idXJzdF9pZHggPSAwOw0KPiA+
ICsJCQkJYnJlYWs7DQo+ID4gIAkJCX0NCj4gPg0KPiA+ICAJCQlwa3RfYnVyc3RfaWR4ID0gMDsN
Cj4gPiAtCQkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbiArPSBuX3BrdHM7DQo+ID4gIAkJfQ0K
PiA+ICAJfQ0KPiA+DQo+ID4gIAlpZiAocGt0X2J1cnN0X2lkeCkgew0KPiA+ICAJCW5fcGt0cyA9
IHZxLT5hc3luY19vcHMudHJhbnNmZXJfZGF0YShkZXYtPnZpZCwNCj4gPiAgCQkJCXF1ZXVlX2lk
LCB0ZGVzLCAwLCBwa3RfYnVyc3RfaWR4KTsNCj4gPiAtCQlpZiAodW5saWtlbHkobl9wa3RzIDwg
KGludClwa3RfYnVyc3RfaWR4KSkgew0KPiA+IC0JCQl2cS0+YXN5bmNfcGt0c19pbmZsaWdodF9u
ICs9IG5fcGt0cyA+IDAgPyBuX3BrdHMgOiAwOw0KPiA+IC0JCQl2aXJ0aW9fZGV2X3J4X2FzeW5j
X3N1Ym1pdF9zcGxpdF9lcnIoZGV2LCB2cSwNCj4gcXVldWVfaWQsDQo+ID4gLQkJCQlsYXN0X2lk
eCwgc2hhZG93X2lkeCk7DQo+ID4gLQkJCXJldHVybiAwOw0KPiA+IC0JCX0NCj4gPiAtDQo+ID4g
IAkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbiArPSBuX3BrdHM7DQo+ID4gKw0KPiA+ICsJCWlm
ICh1bmxpa2VseShuX3BrdHMgPCAoaW50KXBrdF9idXJzdF9pZHgpKQ0KPiA+ICsJCQlwa3RfZXJy
ID0gcGt0X2J1cnN0X2lkeCAtIG5fcGt0czsNCj4gPiAgCX0NCj4gPg0KPiA+ICAJZG9fZGF0YV9j
b3B5X2VucXVldWUoZGV2LCB2cSk7DQo+ID4NCj4gPiArCWlmICh1bmxpa2VseShwa3RfZXJyKSkg
ew0KPiA+ICsJCWRvIHsNCj4gPiArCQkJaWYgKHBrdHNfaW5mb1tzbG90X2lkeF0uc2VncykNCj4g
PiArCQkJCXBrdF9lcnItLTsNCj4gPiArCQkJdnEtPmxhc3RfYXZhaWxfaWR4IC09IHBrdHNfaW5m
b1tzbG90X2lkeF0uZGVzY3M7DQo+ID4gKwkJCXZxLT5zaGFkb3dfdXNlZF9pZHggLT0gcGt0c19p
bmZvW3Nsb3RfaWR4XS5kZXNjczsNCj4gPiArCQkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbi0t
Ow0KPiA+ICsJCQlzbG90X2lkeC0tOw0KPiA+ICsJCQlwa3RfaWR4LS07DQo+ID4gKwkJfSB3aGls
ZSAocGt0X2Vycik7DQo+IA0KPiBUaGF0IGRvZXMgbm90IHNvdW5kIHJlYWxseSByb2J1c3QuDQo+
IE1heWJlIHlvdSBjb3VsZCBleGl0IGFsc28gb24gc2xvdF9pZHggPCAwIHRvIGF2b2lkIG91dCBv
ZiByYW5nZQ0KPiBhY2Nlc3Nlcz8NCj4gDQo+IH0gd2hpbGUgKHBrdF9lcnIgJiYgc2xvdF9pZHgg
Pj0gMCkNCj4NCnNsb3RfaWR4IGlzIHVuc2lnbmVkIHR5cGUgYW5kIGl0J3MgZGVzaWduIHRvIGJl
IHdvcmtpbmcgbGlrZSBhIHJpbmcgaW5kZXguIEJ1dCBJIGRvIG5lZWQgdG8gc2VuZCBhIG5ldyBw
YXRjaCB0byBoYW5kbGUgdGhlIGNhc2UgdGhhdCAic2xvdF9pZHg9PTAiLg0KRm9yIHRoZSByb2J1
c3QsIEkgY2FuIGFkZCBhIGNoZWNrOiAicGt0X2lkeCA+IDAiLg0KDQpUaGFua3MsDQoNClBhdHJp
Y2sNCg0K