From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E438FC43387 for ; Mon, 17 Dec 2018 19:09:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8662321473 for ; Mon, 17 Dec 2018 19:09:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=hammerspace.com header.i=@hammerspace.com header.b="Tjxq3Cwh" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387674AbeLQTJs (ORCPT ); Mon, 17 Dec 2018 14:09:48 -0500 Received: from mail-eopbgr700104.outbound.protection.outlook.com ([40.107.70.104]:50592 "EHLO NAM04-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727747AbeLQTJr (ORCPT ); Mon, 17 Dec 2018 14:09:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AgmJUfDT+OUYN0b5EwsLirL1GW4qLX4Z9APTZv3xGIU=; b=Tjxq3CwhtxQI4WoYA7HS5mXLm2JikU4hxq3TzuVpN+eeRVFoMtbefYIs+aBBrgfx5BsOu/ot/G+d5LYHchutlF3zy9RFijnjK4GGyjK121tDHGSZUGJnp4VtmGvOp1X0u6mMfAYqQEUSYCh8osF2m2OtQ9RfOU8I0oGJiLo2amk= Received: from SN6PR13MB2494.namprd13.prod.outlook.com (52.135.95.148) by SN6PR13MB2544.namprd13.prod.outlook.com (52.135.96.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.15; Mon, 17 Dec 2018 19:09:39 +0000 Received: from SN6PR13MB2494.namprd13.prod.outlook.com ([fe80::25d2:c29b:5dfa:e85f]) by SN6PR13MB2494.namprd13.prod.outlook.com ([fe80::25d2:c29b:5dfa:e85f%4]) with mapi id 15.20.1446.015; Mon, 17 Dec 2018 19:09:39 +0000 From: Trond Myklebust To: "chuck.lever@oracle.com" CC: "linux-rdma@vger.kernel.org" , "linux-nfs@vger.kernel.org" Subject: Re: [PATCH v4 06/30] xprtrdma: Don't wake pending tasks until disconnect is done Thread-Topic: [PATCH v4 06/30] xprtrdma: Don't wake pending tasks until disconnect is done Thread-Index: AQHUlicnTIY1+P6R7kSNyXN8lbLAWaWDL5oAgAATPgCAAAT9gIAAAVWAgAACoIA= Date: Mon, 17 Dec 2018 19:09:38 +0000 Message-ID: References: <20181217162406.24133.27356.stgit@manet.1015granger.net> <20181217163953.24133.29214.stgit@manet.1015granger.net> <6A4F0F5B-2D29-4A51-BC21-AF23B64D6ED7@oracle.com> In-Reply-To: <6A4F0F5B-2D29-4A51-BC21-AF23B64D6ED7@oracle.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=trondmy@hammerspace.com; x-originating-ip: [68.40.189.247] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;SN6PR13MB2544;6:a657wuY78QRrPDgeAYoSsOG1NMU2zx74c8M741IwrZdseW8e0taO4bcWpRrTaB/eARHlIdHCRSWndIHHS4PmuZmDScDBRgN6iBRDH8iLOdVswTRFj5G4fSTbf+hZZk8RGkfVmLw5FfKeiODCHhZpuTyd4U56vHsxMzDW5feFLgm4OV9jkogNKwlhZPJ8phjaliGRhgPd+/fkrn+EDDg459hD51v/A5Vz0fqLO4bSMREqVOCkX9KL9xBGuT0l31uuLkxdYxnjKEIb42F48e8b4qRZrOvLRRx0UQVZ1pnmD5yrEEZ9cICo8ExdhJHck8HFo09S4J8ADuB5zooTnmU9M5YYqv/3cr5bMxS3s/eLir0t0bjOMWsiGoOVJlppd9lSm/1t273Y2O0sq06GSQr9WHzn9KATO+XLruHmZZ8c+U9f/FNvrUQmQDo4Nj2yZRzCkDeu29rmWfi8KTk05ZtfRQ==;5:Tktj5NtaUF8zlEGaTwUcBA2+qlLq8/kP6hH3sIqQVcf1KcabEUdo5IfXcA2v9NYAqdGKuGiBDCZq2R/P/c4ISd/F7iWYD2ktpw19UMcfyH5k57o51Ft5urNh7+L/oPu8L6BaEV4Lw5OxCcMzFoMLTYFiO1QaU+ysbiZMS0hwbDA=;7:riyjFUuEElx7duGiyyQI1rbo4Agc1z5qFAsrlvefmeT7RqHHlSWFCHiNuyZtksSOOTLEZ4E5pIblHBqfyzeYDn5Xm0gvfN9P+9J+Msl0xQo82B3EMXCelN+mtYjsjZV+QcOcJJMqJ8/ocm0vIxxxGA== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 3fa4eb0f-0192-4863-ecaf-08d664533135 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:SN6PR13MB2544; x-ms-traffictypediagnostic: SN6PR13MB2544: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(3230021)(999002)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231475)(944501520)(52105112)(148016)(149066)(150057)(6041310)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699051)(76991095);SRVR:SN6PR13MB2544;BCL:0;PCL:0;RULEID:;SRVR:SN6PR13MB2544; x-forefront-prvs: 08897B549D x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(136003)(396003)(39830400003)(376002)(346002)(366004)(51444003)(199004)(189003)(68736007)(66066001)(26005)(2501003)(14454004)(118296001)(53936002)(4326008)(105586002)(6246003)(5640700003)(2351001)(99286004)(106356001)(6512007)(316002)(2906002)(93886005)(5660300001)(4001150100001)(15974865002)(97736004)(102836004)(7736002)(305945005)(186003)(8936002)(229853002)(36756003)(81166006)(25786009)(81156014)(478600001)(256004)(14444005)(71190400001)(6436002)(71200400001)(54906003)(86362001)(446003)(11346002)(6486002)(8676002)(486006)(2616005)(476003)(76176011)(6116002)(3846002)(6506007)(53546011)(6916009);DIR:OUT;SFP:1102;SCL:1;SRVR:SN6PR13MB2544;H:SN6PR13MB2494.namprd13.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: hammerspace.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: QCtUrVgFRLVekx7FfJdtnX5mDokDGpAKAeFNaZSd6GOA6mV309GjwCWHNj+IJdq262NjdJWy1OUopK5yrph/eT8mTXawbkyiQ6o4ZyGNQEO/LGw1Ya2AA5Z69L+F3k/JqKjsn0p91ExNCkXfgndpOCzJ79/MpH6q8izld79PIg965xOaw4uivhG5MT5d/VEr1iBd45ZQa9dyMd1yHKQtaT+ktKOqSKjEizqzB0qdsav4Zi4B1xC6fZYRYFocodiygcJ0/PgLaIDBBqckMXTdXYGOkeHUNV3CZuhO50zHp6Zqs+gI5fAIzfChEXQLp5hs spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <674FDA6965259E4C8105BC27C5945A01@namprd13.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3fa4eb0f-0192-4863-ecaf-08d664533135 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2018 19:09:38.9073 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR13MB2544 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gTW9uLCAyMDE4LTEyLTE3IGF0IDE0OjAwIC0wNTAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4g PiBPbiBEZWMgMTcsIDIwMTgsIGF0IDE6NTUgUE0sIFRyb25kIE15a2xlYnVzdCA8DQo+ID4gdHJv bmRteUBoYW1tZXJzcGFjZS5jb20+IHdyb3RlOg0KPiA+IA0KPiA+IE9uIE1vbiwgMjAxOC0xMi0x NyBhdCAxMzozNyAtMDUwMCwgQ2h1Y2sgTGV2ZXIgd3JvdGU6DQo+ID4gPiA+IE9uIERlYyAxNywg MjAxOCwgYXQgMTI6MjggUE0sIFRyb25kIE15a2xlYnVzdCA8DQo+ID4gPiA+IHRyb25kbXlAaGFt bWVyc3BhY2UuY29tPiB3cm90ZToNCj4gPiA+ID4gDQo+ID4gPiA+IE9uIE1vbiwgMjAxOC0xMi0x NyBhdCAxMTozOSAtMDUwMCwgQ2h1Y2sgTGV2ZXIgd3JvdGU6DQo+ID4gPiA+ID4gVHJhbnNwb3J0 IGRpc2Nvbm5lY3QgcHJvY2Vzc2luZyBkb2VzIGEgIndha2UgcGVuZGluZyB0YXNrcyINCj4gPiA+ ID4gPiBhdA0KPiA+ID4gPiA+IHZhcmlvdXMgcG9pbnRzLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ IFN1cHBvc2UgYW4gUlBDIFJlcGx5IGlzIGJlaW5nIHByb2Nlc3NlZC4gVGhlIFJQQyB0YXNrIHRo YXQNCj4gPiA+ID4gPiBSZXBseQ0KPiA+ID4gPiA+IGdvZXMgd2l0aCBpcyB3YWl0aW5nIG9uIHRo ZSBwZW5kaW5nIHF1ZXVlLiBJZiBhIGRpc2Nvbm5lY3QNCj4gPiA+ID4gPiB3YWtlLQ0KPiA+ID4g PiA+IHVwDQo+ID4gPiA+ID4gaGFwcGVucyBiZWZvcmUgcmVwbHkgcHJvY2Vzc2luZyBpcyBkb25l LCB0aGF0IHJlcGx5LCBldmVuIGlmDQo+ID4gPiA+ID4gaXQNCj4gPiA+ID4gPiBpcw0KPiA+ID4g PiA+IGdvb2QsIGlzIHRocm93biBhd2F5LCBhbmQgdGhlIFJQQyBoYXMgdG8gYmUgc2VudCBhZ2Fp bi4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBUaGlzIHdpbmRvdyBhcHBhcmVudGx5IGRvZXMgbm90 IGV4aXN0IGZvciBzb2NrZXQgdHJhbnNwb3J0cw0KPiA+ID4gPiA+IGJlY2F1c2UNCj4gPiA+ID4g PiB0aGVyZSBpcyBhIGxvY2sgaGVsZCB3aGlsZSBhIHJlcGx5IGlzIGJlaW5nIHJlY2VpdmVkIHdo aWNoDQo+ID4gPiA+ID4gcHJldmVudHMNCj4gPiA+ID4gPiB0aGUgd2FrZS11cCBjYWxsIHVudGls IGFmdGVyIHJlcGx5IHByb2Nlc3NpbmcgaXMgZG9uZS4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBU byByZXNvbHZlIHRoaXMsIGFsbCBSUEMgcmVwbGllcyBiZWluZyBwcm9jZXNzZWQgb24gYW4gUlBD LQ0KPiA+ID4gPiA+IG92ZXItDQo+ID4gPiA+ID4gUkRNQQ0KPiA+ID4gPiA+IHRyYW5zcG9ydCBo YXZlIHRvIGNvbXBsZXRlIGJlZm9yZSBwZW5kaW5nIHRhc2tzIGFyZSBhd29rZW4NCj4gPiA+ID4g PiBkdWUgdG8NCj4gPiA+ID4gPiBhDQo+ID4gPiA+ID4gdHJhbnNwb3J0IGRpc2Nvbm5lY3QuDQo+ ID4gPiA+ID4gDQo+ID4gPiA+ID4gQ2FsbGVycyB0aGF0IGFscmVhZHkgaG9sZCB0aGUgdHJhbnNw b3J0IHdyaXRlIGxvY2sgbWF5IGludm9rZQ0KPiA+ID4gPiA+IC0+b3BzLT5jbG9zZSBkaXJlY3Rs eS4gT3RoZXJzIHVzZSBhIGdlbmVyaWMgaGVscGVyIHRoYXQNCj4gPiA+ID4gPiBzY2hlZHVsZXMN Cj4gPiA+ID4gPiBhIGNsb3NlIHdoZW4gdGhlIHdyaXRlIGxvY2sgY2FuIGJlIHRha2VuIHNhZmVs eS4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBDaHVjayBMZXZlciA8Y2h1 Y2subGV2ZXJAb3JhY2xlLmNvbT4NCj4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiBpbmNsdWRlL2xp bnV4L3N1bnJwYy94cHJ0LmggICAgICAgICAgICAgICAgfCAgICAxICsNCj4gPiA+ID4gPiBuZXQv c3VucnBjL3hwcnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5DQo+ID4gPiA+ID4g KysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+IG5ldC9zdW5ycGMveHBydHJkbWEvYmFja2No YW5uZWwuYyAgICAgICAgICB8ICAgMTMgKysrKysrKy0tDQo+ID4gPiA+ID4gLS0tLQ0KPiA+ID4g PiA+IG5ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWFfYmFja2NoYW5uZWwuYyB8ICAgIDggKysr KystLS0NCj4gPiA+ID4gPiBuZXQvc3VucnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jICAgICAgICAg ICAgfCAgIDE2ICsrKysrKysrKystDQo+ID4gPiA+ID4gLS0tLQ0KPiA+ID4gPiA+IC0NCj4gPiA+ ID4gPiBuZXQvc3VucnBjL3hwcnRyZG1hL3ZlcmJzLmMgICAgICAgICAgICAgICAgfCAgICA1ICsr LS0tDQo+ID4gPiA+ID4gNiBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAxOCBkZWxl dGlvbnMoLSkNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9zdW5ycGMveHBydC5oDQo+ID4gPiA+ID4gYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy94cHJ0LmgN Cj4gPiA+ID4gPiBpbmRleCBhNGFiNGY4Li5lZTk0ZWQwIDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBh L2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnQuaA0KPiA+ID4gPiA+ICsrKyBiL2luY2x1ZGUvbGlu dXgvc3VucnBjL3hwcnQuaA0KPiA+ID4gPiA+IEBAIC00MDEsNiArNDAxLDcgQEAgc3RhdGljIGlu bGluZSBfX2JlMzINCj4gPiA+ID4gPiAqeHBydF9za2lwX3RyYW5zcG9ydF9oZWFkZXIoc3RydWN0 IHJwY194cHJ0ICp4cHJ0LCBfX2JlMzIgKg0KPiA+ID4gPiA+IGJvb2wJCQl4cHJ0X3JlcXVlc3Rf Z2V0X2Nvbmcoc3RydWN0IHJwY194cHJ0DQo+ID4gPiA+ID4gKnhwcnQsDQo+ID4gPiA+ID4gc3Ry dWN0IHJwY19ycXN0ICpyZXEpOw0KPiA+ID4gPiA+IHZvaWQJCQl4cHJ0X2Rpc2Nvbm5lY3RfZG9u ZShzdHJ1Y3QgcnBjX3hwcnQNCj4gPiA+ID4gPiAqeHBydCk7DQo+ID4gPiA+ID4gdm9pZAkJCXhw cnRfZm9yY2VfZGlzY29ubmVjdChzdHJ1Y3QgcnBjX3hwcnQNCj4gPiA+ID4gPiAqeHBydCk7DQo+ ID4gPiA+ID4gK3ZvaWQJCQl4cHJ0X2Rpc2Nvbm5lY3Rfbm93YWtlKHN0cnVjdCBycGNfeHBydA0K PiA+ID4gPiA+ICp4cHJ0KTsNCj4gPiA+ID4gPiB2b2lkCQkJeHBydF9jb25kaXRpb25hbF9kaXNj b25uZWN0KHN0cnVjdA0KPiA+ID4gPiA+IHJwY194cHJ0DQo+ID4gPiA+ID4gKnhwcnQsIHVuc2ln bmVkIGludCBjb29raWUpOw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IGJvb2wJCQl4cHJ0X2xvY2tf Y29ubmVjdChzdHJ1Y3QgcnBjX3hwcnQgKiwNCj4gPiA+ID4gPiBzdHJ1Y3QNCj4gPiA+ID4gPiBy cGNfdGFzayAqLCB2b2lkICopOw0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hw cnQuYyBiL25ldC9zdW5ycGMveHBydC5jDQo+ID4gPiA+ID4gaW5kZXggY2U5MjcwMC4uYWZlNDEy ZSAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9uZXQvc3VucnBjL3hwcnQuYw0KPiA+ID4gPiA+ICsr KyBiL25ldC9zdW5ycGMveHBydC5jDQo+ID4gPiA+ID4gQEAgLTY4NSw2ICs2ODUsMjUgQEAgdm9p ZCB4cHJ0X2ZvcmNlX2Rpc2Nvbm5lY3Qoc3RydWN0DQo+ID4gPiA+ID4gcnBjX3hwcnQNCj4gPiA+ ID4gPiAqeHBydCkNCj4gPiA+ID4gPiB9DQo+ID4gPiA+ID4gRVhQT1JUX1NZTUJPTF9HUEwoeHBy dF9mb3JjZV9kaXNjb25uZWN0KTsNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiArLyoqDQo+ID4gPiA+ ID4gKyAqIHhwcnRfZGlzY29ubmVjdF9ub3dha2UgLSBmb3JjZSBhIGNhbGwgdG8geHBydC0+b3Bz LT5jbG9zZQ0KPiA+ID4gPiA+ICsgKiBAeHBydDogdHJhbnNwb3J0IHRvIGRpc2Nvbm5lY3QNCj4g PiA+ID4gPiArICoNCj4gPiA+ID4gPiArICogVGhlIGNhbGxlciBtdXN0IGVuc3VyZSB0aGF0IHhw cnRfd2FrZV9wZW5kaW5nX3Rhc2tzKCkgaXMNCj4gPiA+ID4gPiArICogY2FsbGVkIGxhdGVyLg0K PiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiArdm9pZCB4cHJ0X2Rpc2Nvbm5lY3Rfbm93YWtlKHN0 cnVjdCBycGNfeHBydCAqeHBydCkNCj4gPiA+ID4gPiArew0KPiA+ID4gPiA+ICsgICAgICAgLyog RG9uJ3QgcmFjZSB3aXRoIHRoZSB0ZXN0X2JpdCgpIGluDQo+ID4gPiA+ID4geHBydF9jbGVhcl9s b2NrZWQoKQ0KPiA+ID4gPiA+ICovDQo+ID4gPiA+ID4gKyAgICAgICBzcGluX2xvY2tfYmgoJnhw cnQtPnRyYW5zcG9ydF9sb2NrKTsNCj4gPiA+ID4gPiArICAgICAgIHNldF9iaXQoWFBSVF9DTE9T RV9XQUlULCAmeHBydC0+c3RhdGUpOw0KPiA+ID4gPiA+ICsgICAgICAgLyogVHJ5IHRvIHNjaGVk dWxlIGFuIGF1dG9jbG9zZSBSUEMgY2FsbCAqLw0KPiA+ID4gPiA+ICsgICAgICAgaWYgKHRlc3Rf YW5kX3NldF9iaXQoWFBSVF9MT0NLRUQsICZ4cHJ0LT5zdGF0ZSkgPT0gMCkNCj4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgcXVldWVfd29yayh4cHJ0aW9kX3dvcmtxdWV1ZSwgJnhwcnQtDQo+ID4g PiA+ID4gPiB0YXNrX2NsZWFudXApOw0KPiA+ID4gPiA+ICsgICAgICAgc3Bpbl91bmxvY2tfYmgo JnhwcnQtPnRyYW5zcG9ydF9sb2NrKTsNCj4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ICtFWFBPUlRf U1lNQk9MX0dQTCh4cHJ0X2Rpc2Nvbm5lY3Rfbm93YWtlKTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ IA0KPiA+ID4gPiBXZSBzaG91bGRuJ3QgbmVlZCBib3RoIHhwcnRfZGlzY29ubmVjdF9ub3dha2Uo KSBhbmQNCj4gPiA+ID4geHBydF9mb3JjZV9kaXNjb25uZWN0KCkgdG8gYmUgZXhwb3J0ZWQgZ2l2 ZW4gdGhhdCB5b3UgY2FuIGJ1aWxkDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiBsYXR0ZXIgZnJvbSB0 aGUgZm9ybWVyICsgeHBydF93YWtlX3BlbmRpbmdfdGFza3MoKSAod2hpY2ggaXMNCj4gPiA+ID4g YWxzbw0KPiA+ID4gPiBhbHJlYWR5IGV4cG9ydGVkKS4NCj4gPiA+IA0KPiA+ID4gVGhhbmtzIGZv ciB5b3VyIHJldmlldyENCj4gPiA+IA0KPiA+ID4gSSBjYW4gZ2V0IHJpZCBvZiB4cHJ0X2Rpc2Nv bm5lY3Rfbm93YWtlLiBUaGVyZSBhcmUgc29tZQ0KPiA+ID4gdmFyaWF0aW9ucywNCj4gPiA+IGRl cGVuZGluZyBvbiB3aHkgd2FrZV9wZW5kaW5nX3Rhc2tzIGlzIHByb3RlY3RlZCBieSB4cHJ0LQ0K PiA+ID4gPiB0cmFuc3BvcnRfbG9jay4NCj4gPiANCj4gPiBJJ20gaGF2aW5nIHNvbWUgc2Vjb25k IHRob3VnaHRzIGFib3V0IHRoZSBwYXRjaCB0aGF0IFNjb3R0IHNlbnQgb3V0DQo+ID4gbGFzdCB3 ZWVrIHRvIGZpeCB0aGUgaXNzdWUgdGhhdCBEYXZlIGFuZCBoZSB3ZXJlIHNlZWluZy4gSSB0aGlu aw0KPiA+IHRoYXQNCj4gPiB3aGF0IHdlIHJlYWxseSBuZWVkIHRvIGRvIHRvIGZpeCBoaXMgaXNz dWUgaXMgdG8gY2FsbA0KPiA+IHhwcnRfZGlzY29ubmVjdF9kb25lKCkgYWZ0ZXIgd2UndmUgcmVs ZWFzZWQgdGhlIFRDUCBzb2NrZXQuDQo+ID4gDQo+ID4gR2l2ZW4gdGhhdCByZWFsaXNhdGlvbiwg SSB0aGluayB0aGF0IHdlIGNhbiBmaXggdXANCj4gPiB4cHJ0X2ZvcmNlX2Rpc2Nvbm5lY3QoKSB0 byBvbmx5IHdha2UgdXAgdGhlIHRhc2sgdGhhdCBob2xkcyB0aGUNCj4gPiBYUFJUX0xPQ0tFRCBp bnN0ZWFkIG9mIGRvaW5nIGEgdGh1bmRlcmluZyBoZXJkIHdha2V1cCBsaWtlIHdlIGRvDQo+ID4g dG9kYXkuDQo+ID4gVGhhdCBzaG91bGQgKEkgdGhpbmspIG9idmlhdGUgdGhlIG5lZWQgZm9yIGEg c2VwYXJhdGUNCj4gPiB4cHJ0X2Rpc2Nvbm5lY3Rfbm93YWtlKCkuDQo+IA0KPiBGb3IgUlBDLW92 ZXItUkRNQSwgdGhlcmUgcmVhbGx5IGlzIGEgZGFuZ2Vyb3VzIHJhY2UgYmV0d2VlbiB0aGUNCj4g d2FraW5nDQo+IHRhc2socykgYW5kIHdvcmsgYmVpbmcgZG9uZSBieSB0aGUgZGVmZXJyZWQgUlBD IGNvbXBsZXRpb24gaGFuZGxlci4NCj4gSU1PDQo+IHRoZSBvbmx5IHNhZmUgdGhpbmcgUlBDLW92 ZXItUkRNQSBjYW4gZG8gaXMgbm90IHdha2UgYW55dGhpbmcgdW50aWwNCj4gdGhlDQo+IGRlZmVy cmVkIHF1ZXVlIGlzIHdlbGwgYW5kIHRydWx5IGRyYWluZWQuDQoNClRoZSBkZWZlcnJlZCBSUEMg Y29tcGxldGlvbiBoYW5kbGVyIChhbmQgaGVuY2UgdGhlIGNsb3NlKSBjYW5ub3QNCmV4ZWN1dGUg aWYgYW5vdGhlciB0YXNrIGlzIGhvbGRpbmcgWFBSVF9MT0NLRUQsIHNvIHdlIGRvIG5lZWQgdG8g d2FrZQ0KdXAgdGhhdCB0YXNrIChhbmQgb25seSB0aGF0IG9uZSkuDQoNCk5vdGUgdGhhdCBpbiB0 aGUgbmV3IGNvZGUsIHRoZSBvbmx5IHJlYXNvbiB3aHkgYSB0YXNrIHdvdWxkIGJlIGhvbGRpbmcN ClhQUlRfTE9DS0VEIHdoaWxlIHNsZWVwaW5nIGlzIGJlY2F1c2UNCg0KICAgMS4gSXQgaXMgd2Fp dGluZyBmb3IgYSBjb25uZWN0aW9uIGF0dGVtcHQgdG8gY29tcGxldGUgZm9sbG93aW5nIGEgY2Fs bA0KICAgICAgdG8geHBydF9jb25uZWN0KCkuDQogICAyLiBJdCBpcyB3YWl0aW5nIGZvciBhIHdy aXRlX3NwYWNlIGV2ZW50IGZvbGxvd2luZyBhbiBhdHRlbXB0IHRvDQogICAgICB0cmFuc21pdC4N Cg0KDQoNCj4gQXMgeW91IG9ic2VydmVkIHdoZW4gd2UgbGFzdCBzcG9rZSwgc29ja2V0IHRyYW5z cG9ydHMgYXJlIGFscmVhZHkNCj4gcHJvdGVjdGVkIGZyb20gdGhpcyByYWNlIGJ5IHRoZSBzb2Nr ZXQgbG9jay4uLi4gUlBDLW92ZXItUkRNQSBpcw0KPiBnb2luZw0KPiB0byBoYXZlIHRvIGJlIG1v cmUgY2FyZWZ1bC4NCj4gDQo+IA0KPiA+IEEgcGF0Y2ggaXMgZm9ydGhjb21pbmcgbGF0ZXIgdG9k YXkuIEknbGwgbWFrZSBzdXJlIHlvdSBhcmUgQ2NlZCBzbw0KPiA+IHlvdQ0KPiA+IGNhbiBjb21t ZW50Lg0KPiA+IA0KPiA+IC0tIA0KPiA+IFRyb25kIE15a2xlYnVzdA0KPiA+IExpbnV4IE5GUyBj bGllbnQgbWFpbnRhaW5lciwgSGFtbWVyc3BhY2UNCj4gPiB0cm9uZC5teWtsZWJ1c3RAaGFtbWVy c3BhY2UuY29tDQo+IA0KPiAtLQ0KPiBDaHVjayBMZXZlcg0KPiANCj4gDQo+IA0KLS0gDQpUcm9u ZCBNeWtsZWJ1c3QNCkNUTywgSGFtbWVyc3BhY2UgSW5jDQo0MzAwIEVsIENhbWlubyBSZWFsLCBT dWl0ZSAxMDUNCkxvcyBBbHRvcywgQ0EgOTQwMjINCnd3dy5oYW1tZXIuc3BhY2UNCg0KDQo=