From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0700EA052B; Wed, 29 Jul 2020 03:40:28 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7B2AB4C98; Wed, 29 Jul 2020 03:40:27 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 085FF4C93 for ; Wed, 29 Jul 2020 03:40:25 +0200 (CEST) IronPort-SDR: TTxR0mSxGuQ4B8RqMOMB/J3Yc+t71XjiDS4DSx8TNTFeIO7AjqbbpWGqnIQcOYUf/4rn+vMELX H7hE/QICpuLw== X-IronPort-AV: E=McAfee;i="6000,8403,9696"; a="215848918" X-IronPort-AV: E=Sophos;i="5.75,408,1589266800"; d="scan'208";a="215848918" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2020 18:40:24 -0700 IronPort-SDR: FEkGCjkrGdCuy5LmQXWiAMd1O6jrjzE1+H3dZSj0gqxMpF7RB3xx1+uQOlWHg9Wgf9of4ZFAdN MXEBFdOFxv5w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,408,1589266800"; d="scan'208";a="330246569" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga007.jf.intel.com with ESMTP; 28 Jul 2020 18:40:24 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 28 Jul 2020 18:40:23 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.174) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 28 Jul 2020 18:40:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QeCFjTGoU+lk9EFn9SZOutkdZHzWi7QPX/6NZGbQOXfphdLY+5Y1lDRioe+0pvWLrXLUGJ1/J7G+DdAa50TZlmi8Rp5CV0rhUqkAiqe9iXNoaJg3zO9UQlKh7dRRT28DLeqfSmrMzZ9xuY6Y27y82Yxi5gpJnmp2pAkTXD7Z49vjprezK2jZB7Ba76HJ7kTjCDDJB1aFUID/y4XQ8TPemQyE1y3qBssLT6oMdQ/noeIsacl7/1ZcIg4yDkdvDc73SGbgNjDn1vGpeDPjvchj/VhWtw2OdW1BA9FKalnYRHOhrEo2FcYVn70EzZ96+LmD4R5Jm/MvjZb81GWCLtqPag== 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=3x940IjD9FAOCToFyjNwK3plop24XFhkWcVEnp0Rmr4=; b=DfFkpLN88IC2h/PrmkEPJoTtV1m1p+tcnTjv3mRlvGMl2qhh9slvy+06fThwZ73HMtKD+/kHCn56H/zF0/xmlj5oBc5+x7q9RaU762W/6NocZ729tudFskNm2jRdeeOVcDNM4+gJU3awfjLwdlpulGkZWlNf0YOUlfnUCPE2i9rPYW+tsqgtkjf+kVgWyolroAW9T7A/7kAdfuk1AIqRNcSeiM+yart3Voh+KV6cAg+eWdwumGWONcpVw6Cp/1/b9iJjRQZW/qKrbHgaU0KtPf4srJOOHzxstObozvJt/jvSzBGtVLSALzfmERSv8BWiV6O6dpyZjixrpQrbIu+lYQ== 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=3x940IjD9FAOCToFyjNwK3plop24XFhkWcVEnp0Rmr4=; b=tm/CPg7DXHVh9p/RC0nUfzBKCntOdXZGyar46zufktUrGNT8cq6S1fFhCsz3Jron1TV1U+WyHplrP10nrdBR+lqZTrhpp2stNy29kuZ8S279lyLlElkqGfOiftuQm8XDPmNRg0bTnPavzcImlBlY9Gx84Hi/t9s5oA2KKc98fOM= Received: from DM5PR1101MB2169.namprd11.prod.outlook.com (2603:10b6:4:51::14) by DM6PR11MB3626.namprd11.prod.outlook.com (2603:10b6:5:146::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.20; Wed, 29 Jul 2020 01:40:22 +0000 Received: from DM5PR1101MB2169.namprd11.prod.outlook.com ([fe80::d96a:61:33a9:9036]) by DM5PR1101MB2169.namprd11.prod.outlook.com ([fe80::d96a:61:33a9:9036%12]) with mapi id 15.20.3216.033; Wed, 29 Jul 2020 01:40:22 +0000 From: "Fu, Patrick" To: Maxime Coquelin , "dev@dpdk.org" , "Xia, Chenbo" Thread-Topic: [PATCH v4] vhost: fix async copy fail on multi-page buffers Thread-Index: AQHWZI+lPkPkeAD5aEK64SRswX9uOakdBF+AgADCWvA= Date: Wed, 29 Jul 2020 01:40:22 +0000 Message-ID: References: <20200720025242.3066787-1-patrick.fu@intel.com> <20200728032851.3704083-1-patrick.fu@intel.com> <113e052d-8d6e-a0d4-2218-5a022e2497ee@redhat.com> In-Reply-To: <113e052d-8d6e-a0d4-2218-5a022e2497ee@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 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.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0d8503a4-94db-4fd0-d620-08d833605bc9 x-ms-traffictypediagnostic: DM6PR11MB3626: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:655; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Bm+6YbLjKoudqV7VIPE1dPCwnfIwUfYZ46UvJFZ6cm57CsMyOgWbw2x8gLo1m5+7ovTAAZxl/T/vKLY0DmUPfTZKh6wg1pNwNwj9vWFSNveOqLTVnATjZvevTlYQjFoHIL5EMvnpNfe6GYrXp9N57E6gOSaht1Y4zz5VHXmbzXCe8uOt5gJWj9v3dd0GbBVe4mtiSDEkNQE9YkqqkP0Gf8cD3rHVW6skHDkrKauuZRQObwUz4d63ykz7ZtVU5mR+VH/MLXgC1PA26ZzTfr1aAT+rPDsReXQMnSL0m3uVSIc/8RL6NG797sN24NHtfzIaTDqr6tfc82X4QQRPBCvRZw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR1101MB2169.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(346002)(39860400002)(136003)(366004)(376002)(53546011)(52536014)(6506007)(83380400001)(8676002)(5660300002)(7696005)(33656002)(86362001)(26005)(6636002)(478600001)(64756008)(55016002)(76116006)(2906002)(66946007)(66476007)(66556008)(9686003)(66446008)(186003)(71200400001)(110136005)(8936002)(316002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: A6Gn7ynrviemfIXL0FwgsYriaRaOJdEaLFdZ8tthMqs1jBUGaRkd8hCZIyb5Idpxrk15NG9RehSnohu/wU0XzNcTvz7v4RVGv9gtW10RrJUol7N+WcG4bdG4amR4AvviT3/3zH6TGMByq645uBiO3gAj9TC5R9bySbh3/sSZuDOG39c1iccq2C9AlLQcZOUacfUwcp9wIiAZ+EBzn5my9RrtEim+mEQmKtKIXbJ08fzvZx6VvPnoW1SirljkAlUAsX5qY35WqUpLERAbIrj79ETHaiBXbicFR4KN9CJhJdY7bjqdqJrz9dlMHx0CeTkkAnaHTPW7uN2pDhlCyrxb00LTy1zU7Mzvt8Y19ap3n4JQQSbYln8lchHRN51gwLDO0LmiTWyyQz2EsyCV9GPxF6ygA08ViwQUnS7xHpk2Vp7Iqvz3O4sWqYNUsIDZjGc/sAcmoAbdNUn5COp2JXkbIe0atO0QY/xXXL8doTkznnGWg4rIN68IDSk2oMURcFdY 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: DM5PR1101MB2169.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d8503a4-94db-4fd0-d620-08d833605bc9 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2020 01:40:22.1317 (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: iNUMugBpHQJpIsAlF94Et9wLDmSRT7JA2PmW8vkzbl/f5+gr5uD0Cl0EGT7BYrnBiivuS3ZvrMPoz922hnfwsQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3626 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v4] vhost: fix async copy fail on multi-page buffers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXks IEp1bHkgMjgsIDIwMjAgOTo1NSBQTQ0KPiBUbzogRnUsIFBhdHJpY2sgPHBhdHJpY2suZnVAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBYaWEsIENoZW5ibw0KPiA8Y2hlbmJvLnhpYUBpbnRlbC5j b20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjRdIHZob3N0OiBmaXggYXN5bmMgY29weSBmYWls IG9uIG11bHRpLXBhZ2UgYnVmZmVycw0KPiANCj4gDQo+IA0KPiBPbiA3LzI4LzIwIDU6MjggQU0s IHBhdHJpY2suZnVAaW50ZWwuY29tIHdyb3RlOg0KPiA+IEZyb206IFBhdHJpY2sgRnUgPHBhdHJp Y2suZnVAaW50ZWwuY29tPg0KPiA+DQo+ID4gQXN5bmMgY29weSBmYWlscyB3aGVuIHNpbmdsZSBy aW5nIGJ1ZmZlciB2ZWN0b3IgaXMgc3BsaXRlZCBvbiBtdWx0aXBsZQ0KPiA+IHBoeXNpY2FsIHBh Z2VzLiBUaGlzIGhhcHBlbnMgYmVjYXVzZSBjdXJyZW50IGhwYSBhZGRyZXNzIHRyYW5zbGF0aW9u DQo+ID4gZnVuY3Rpb24gZG9lc24ndCBoYW5kbGUgbXVsdGktcGFnZSBidWZmZXJzLiBBIG5ldyBn cGEgdG8gaHBhIGFkZHJlc3MNCj4gPiBjb252ZXJzaW9uIGZ1bmN0aW9uLCB3aGljaCByZXR1cm5z IHRoZSBocGEgb24gdGhlIGZpcnN0IGhpdHRpbmcgaG9zdA0KPiA+IHBhZ2VzLCBpcyBpbXBsZW1l bnRlZCBpbiB0aGlzIHBhdGNoLiBBc3luYyBkYXRhIHBhdGggcmVjdXJzaXZlbHkgY2FsbHMNCj4g PiB0aGlzIG5ldyBmdW5jdGlvbiB0byBjb25zdHJ1Y3QgYSBtdWx0aS1zZWdtZW50cyBhc3luYyBj b3B5IGRlc2NyaXB0b3INCj4gPiBmb3IgcmluZyBidWZmZXJzIGNyb3NzaW5nIHBoeXNpY2FsIHBh Z2UgYm91bmRhcmllcy4NCj4gPg0KPiA+IEZpeGVzOiBjZDY3NjBkYTEwNzYgKCJ2aG9zdDogaW50 cm9kdWNlIGFzeW5jIGVucXVldWUgZm9yIHNwbGl0IHJpbmciKQ0KPiA+DQo+ID4gU2lnbmVkLW9m Zi1ieTogUGF0cmljayBGdSA8cGF0cmljay5mdUBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gdjI6 DQo+ID4gIC0gY2hhbmdlIGNvbW1pdCBtZXNzYWdlIGFuZCB0aXRsZQ0KPiA+ICAtIHYxIHBhdGNo IHVzZWQgQ1BVIHRvIGNvcHkgbXVsdGktcGFnZSBidWZmZXJzOyB2MiBwYXRjaCBzcGxpdCB0aGUN Cj4gPiBjb3B5IGludG8gbXVsdGlwbGUgYXN5bmMgY29weSBzZWdtZW50cyB3aGVuZXZlciBwb3Nz aWJsZQ0KPiA+DQo+ID4gdjM6DQo+ID4gIC0gYWRkZWQgZml4bGluZQ0KPiA+DQo+ID4gdjQ6DQo+ ID4gIC0gZml4IG1pc3MgdHJhbnNsYXRpb24gb2YgdGhlIGdwYSB3aGljaCBpcyB0aGUgc2FtZSBs ZW5ndGggd2l0aCBob3N0DQo+ID4gICAgcGFnZSBzaXplDQo+ID4NCj4gPiAgbGliL2xpYnJ0ZV92 aG9zdC92aG9zdC5oICAgICAgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kw0KPiA+ICBsaWIvbGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYyB8IDQwICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0NCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAx NSBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3Zp cnRpb19uZXQuYw0KPiA+IGIvbGliL2xpYnJ0ZV92aG9zdC92aXJ0aW9fbmV0LmMgaW5kZXggOTVh MGJjMTlmLi4xMjRhMzNhMTAgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aXJ0 aW9fbmV0LmMNCj4gPiArKysgYi9saWIvbGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYw0KPiA+IEBA IC05ODAsNiArOTgwLDcgQEAgYXN5bmNfbWJ1Zl90b19kZXNjKHN0cnVjdCB2aXJ0aW9fbmV0ICpk ZXYsIHN0cnVjdA0KPiB2aG9zdF92aXJ0cXVldWUgKnZxLA0KPiA+ICAJc3RydWN0IGJhdGNoX2Nv cHlfZWxlbSAqYmF0Y2hfY29weSA9IHZxLT5iYXRjaF9jb3B5X2VsZW1zOw0KPiA+ICAJc3RydWN0 IHZpcnRpb19uZXRfaGRyX21yZ19yeGJ1ZiB0bXBfaGRyLCAqaGRyID0gTlVMTDsNCj4gPiAgCWlu dCBlcnJvciA9IDA7DQo+ID4gKwl1aW50NjRfdCBtYXBwZWRfbGVuOw0KPiA+DQo+ID4gIAl1aW50 MzJfdCB0bGVuID0gMDsNCj4gPiAgCWludCB0dmVjX2lkeCA9IDA7DQo+ID4gQEAgLTEwNzIsMjQg KzEwNzMsMzEgQEAgYXN5bmNfbWJ1Zl90b19kZXNjKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQo+ ID4gc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEsDQo+ID4NCj4gPiAgCQljcHlfbGVuID0gUlRF X01JTihidWZfYXZhaWwsIG1idWZfYXZhaWwpOw0KPiA+DQo+ID4gLQkJaWYgKHVubGlrZWx5KGNw eV9sZW4gPj0gY3B5X3RocmVzaG9sZCkpIHsNCj4gPiAtCQkJaHBhID0gKHZvaWQgKikodWludHB0 cl90KWdwYV90b19ocGEoZGV2LA0KPiA+IC0JCQkJCWJ1Zl9pb3ZhICsgYnVmX29mZnNldCwgY3B5 X2xlbik7DQo+ID4gKwkJd2hpbGUgKHVubGlrZWx5KGNweV9sZW4gJiYgY3B5X2xlbiA+PSBjcHlf dGhyZXNob2xkKSkgew0KPiA+ICsJCQlocGEgPSAodm9pZCAqKSh1aW50cHRyX3QpZ3BhX3RvX2Zp cnN0X2hwYShkZXYsDQo+ID4gKwkJCQkJYnVmX2lvdmEgKyBidWZfb2Zmc2V0LA0KPiA+ICsJCQkJ CWNweV9sZW4sICZtYXBwZWRfbGVuKTsNCj4gPg0KPiA+IC0JCQlpZiAodW5saWtlbHkoIWhwYSkp IHsNCj4gPiAtCQkJCWVycm9yID0gLTE7DQo+ID4gLQkJCQlnb3RvIG91dDsNCj4gPiAtCQkJfQ0K PiA+ICsJCQlpZiAodW5saWtlbHkoIWhwYSB8fCBtYXBwZWRfbGVuIDwgY3B5X3RocmVzaG9sZCkp DQo+ID4gKwkJCQlicmVhazsNCj4gPg0KPiA+ICAJCQlhc3luY19maWxsX3ZlYyhzcmNfaW92ZWMg KyB0dmVjX2lkeCwNCj4gPiAgCQkJCSh2b2lkICopKHVpbnRwdHJfdClydGVfcGt0bWJ1Zl9pb3Zh X29mZnNldChtLA0KPiA+IC0JCQkJCQltYnVmX29mZnNldCksIGNweV9sZW4pOw0KPiA+ICsJCQkJ bWJ1Zl9vZmZzZXQpLCAoc2l6ZV90KW1hcHBlZF9sZW4pOw0KPiA+DQo+ID4gLQkJCWFzeW5jX2Zp bGxfdmVjKGRzdF9pb3ZlYyArIHR2ZWNfaWR4LCBocGEsIGNweV9sZW4pOw0KPiA+ICsJCQlhc3lu Y19maWxsX3ZlYyhkc3RfaW92ZWMgKyB0dmVjX2lkeCwNCj4gPiArCQkJCQlocGEsIChzaXplX3Qp bWFwcGVkX2xlbik7DQo+ID4NCj4gPiAtCQkJdGxlbiArPSBjcHlfbGVuOw0KPiA+ICsJCQl0bGVu ICs9ICh1aW50MzJfdCltYXBwZWRfbGVuOw0KPiA+ICsJCQljcHlfbGVuIC09ICh1aW50MzJfdClt YXBwZWRfbGVuOw0KPiA+ICsJCQltYnVmX2F2YWlsICAtPSAodWludDMyX3QpbWFwcGVkX2xlbjsN Cj4gPiArCQkJbWJ1Zl9vZmZzZXQgKz0gKHVpbnQzMl90KW1hcHBlZF9sZW47DQo+ID4gKwkJCWJ1 Zl9hdmFpbCAgLT0gKHVpbnQzMl90KW1hcHBlZF9sZW47DQo+ID4gKwkJCWJ1Zl9vZmZzZXQgKz0g KHVpbnQzMl90KW1hcHBlZF9sZW47DQo+ID4gIAkJCXR2ZWNfaWR4Kys7DQo+ID4gLQkJfSBlbHNl IHsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ICsJCWlmIChsaWtlbHkoY3B5X2xlbikpIHsNCj4gPiAg CQkJaWYgKHVubGlrZWx5KHZxLT5iYXRjaF9jb3B5X25iX2VsZW1zID49IHZxLT5zaXplKSkgew0K PiA+ICAJCQkJcnRlX21lbWNweSgNCj4gPiAgCQkJCSh2b2lkICopKCh1aW50cHRyX3QpKGJ1Zl9h ZGRyICsgYnVmX29mZnNldCkpLA0KPiBAQCAtMTExMiwxMA0KPiA+ICsxMTIwLDEyIEBAIGFzeW5j X21idWZfdG9fZGVzYyhzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCBzdHJ1Y3QNCj4gdmhvc3Rfdmly dHF1ZXVlICp2cSwNCj4gPiAgCQkJfQ0KPiA+ICAJCX0NCj4gPg0KPiA+IC0JCW1idWZfYXZhaWwg IC09IGNweV9sZW47DQo+ID4gLQkJbWJ1Zl9vZmZzZXQgKz0gY3B5X2xlbjsNCj4gPiAtCQlidWZf YXZhaWwgIC09IGNweV9sZW47DQo+ID4gLQkJYnVmX29mZnNldCArPSBjcHlfbGVuOw0KPiA+ICsJ CWlmIChjcHlfbGVuKSB7DQo+ID4gKwkJCW1idWZfYXZhaWwgIC09IGNweV9sZW47DQo+ID4gKwkJ CW1idWZfb2Zmc2V0ICs9IGNweV9sZW47DQo+ID4gKwkJCWJ1Zl9hdmFpbCAgLT0gY3B5X2xlbjsN Cj4gPiArCQkJYnVmX29mZnNldCArPSBjcHlfbGVuOw0KPiA+ICsJCX0NCj4gDQo+IElzIHRoYXQg cmVhbGx5IG5lY2Vzc2FyeSB0byBjaGVjayBpZiBjb3B5IGxlbmd0aCBpcyBub3QgMD8NCj4gDQpU aGUgaW50ZW5zaW9uIGlzIHRvIG9wdGltaXplIGZvciB0aGUgY2FzZSB0aGF0IHJpbmcgYnVmZmVy cyBhcmUgTk9UIHNwbGl0ICh3aGljaCBzaG91bGQgYmUgdGhlIG1vc3QgY29tbW9uIGNhc2UpLiBJ biB0aGF0IGNhc2UsIGNweV9sZW4gd2lsbCBiZSB6ZXJvIGFuZCBieSB0aGlzICJpZiIgc3RhdGVt ZW50IHdlIGNhbiBzYXZlIGNvdXBsZSBvZiBjeWNsZXMuIFdpdGggdGhhdCBzYWlkLCB0aGUgYWN0 dWFsIGRpZmZlcmVuY2UgaXMgbWlub3IuIEknbSBvcGVuIHdpdGggZWl0aGVyIGFkZGluZyBhbiAi dW5saWtlbHkiIHRvIHRoZSAiaWYiLCBvciByZW1vdmluZyB0aGlzIHRoZSAiaWYiLiBXb3VsZCBs aWtlIHRvIGhlYXIgeW91ciBvcHRpb24gYW5kIHN1Ym1pdCBtb2RpZmllZCBwYXRjaC4NCg0KDQo+ IFRoYW5rcywNCj4gTWF4aW1lDQo+IA0KPiA+ICAJfQ0KPiA+DQo+ID4gIG91dDoNCj4gPg0KDQo=