From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx141.netapp.com ([216.240.21.12]:62321 "EHLO mx141.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753892AbcEZOo1 (ORCPT ); Thu, 26 May 2016 10:44:27 -0400 From: "Adamson, Andy" To: Chuck Lever CC: "William A. (Andy) Adamson" , "J. Bruce Fields" , "Adamson, Andy" , "Linux NFS Mailing List" Subject: Re: Configuring fs_locations on Linux upstream server pseudo fs for session trunking Date: Thu, 26 May 2016 14:44:25 +0000 Message-ID: <630441D0-7CB5-43BC-A40A-79C5B27A786D@netapp.com> References: <04273F60-806B-4E12-B097-388C346F2DED@oracle.com> <40E6E131-029E-4337-A235-B1DB5CA687AA@netapp.com> <20160525184837.GA15210@fieldses.org> <9614D777-9C75-4FBB-BD06-4EC366273B49@oracle.com> In-Reply-To: Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: DQo+IE9uIE1heSAyNiwgMjAxNiwgYXQgMTA6MjUgQU0sIENodWNrIExldmVyIDxjaHVjay5sZXZl ckBvcmFjbGUuY29tPiB3cm90ZToNCj4gDQo+IA0KPj4gT24gTWF5IDI2LCAyMDE2LCBhdCA5OjU0 IEFNLCBBbmR5IEFkYW1zb24gPGFuZHJvc2FkYW1zb25AZ21haWwuY29tPiB3cm90ZToNCj4+IA0K Pj4gT24gV2VkLCBNYXkgMjUsIDIwMTYgYXQgMjo1NSBQTSwgQ2h1Y2sgTGV2ZXIgPGNodWNrLmxl dmVyQG9yYWNsZS5jb20+IHdyb3RlOg0KPj4+IA0KPj4+PiBPbiBNYXkgMjUsIDIwMTYsIGF0IDI6 NDggUE0sIGJmaWVsZHNAZmllbGRzZXMub3JnIHdyb3RlOg0KPj4+PiANCj4+Pj4gT24gV2VkLCBN YXkgMjUsIDIwMTYgYXQgMDU6Mjk6MzVQTSArMDAwMCwgQWRhbXNvbiwgQW5keSB3cm90ZToNCj4+ Pj4+IEFubmEgU2NodW1ha2VyIHdobyByZXZpZXdlZCBteSBjbGllbnQgc2lkZSBzZXNzaW9uIHRy dW5raW5nIHBhdGNoc2V0LCB3YW50cyBhIGZ1bGwgZmVhdHVyZWQgdmVyc2lvbiBvZiBib3RoIHRo ZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIgc2Vzc2lvbiB0cnVua2luZyBwaWVjZXMgYmVmb3JlIGFj Y2VwdGluZyB0aGUgc2Vzc2lvbiB0cnVua2luZyBmZWF0dXJlIHVwc3RyZWFtLiBUbyB0aGF0IGVu ZCwgSSB3YW50IHRvIGltcGxlbWVudCB0aGUgc2VydmVyIG1vdW50ZCBWNFJPT1QgcHJvY2Vzc2lu ZyBvZiBhbiBmc19sb2NhdGlvbnMgY29uZmlndXJhdGlvbiB0byBzYXRpc2Z5IGFuIGZzX2xvY2F0 aW9ucyByZXF1ZXN0IG9uIHRoZSBwc2V1ZG8gZnMuDQo+Pj4+PiANCj4+Pj4+IFRoZSBmb3J3YXJk ZWQgbWVzc2FnZSBpcyBmcm9tIGFuIGVtYWlsIHN0cmVhbSBiZXR3ZWVuIEJydWNlLCBDaHVjayBh bmQgSSBjb25jZXJuaW5nIHRoZSBzZXJ2ZXIgcHNldWZvIGZzIGZzX2xvY2F0aW9ucyBjb25maWd1 cmF0aW9uIHRoYXQgSeKAmW0gbm93IHNoYXJpbmcgd2l0aCB0aGUgbGlzdC4NCj4+Pj4+IA0KPj4+ Pj4gU29tZSBiYWNrZ3JvdW5kOg0KPj4+Pj4gDQo+Pj4+PiBUaGUgcmVjZW50ICJORlNWNC4xLDIg c2Vzc2lvbiB0cnVua2luZ+KAnSBWZXJzaW9uLTUgcGF0Y2ggc2V0IHNlbnQgdG8gdGhlIGxpc3Qg bm90ZXMgKGluIHBhdGNoIDAwLzEwKToNCj4+Pj4+IA0KPj4+Pj4gVGhlIHBzZXVkby1mcyBHRVRB VFRSKGZzX2xvY2F0aW9ucykgcHJvYmUgc2Vzc2lvbiB0cnVua2luZw0KPj4+Pj4gd2FzIHRlc3Rl ZCBhZ2FpbnN0IGEgTGludXggc2VydmVyIHdpdGggYSBwc2V1ZG8tZnMNCj4+Pj4+IGV4cG9ydCBz dGFuemEgKGUuZy4gYSBzdGFuemEgd2l0aCB0aGUgZnNpZD0wIG9yIGZzaWQ9cm9vdA0KPj4+Pj4g ZXhwb3J0IG9wdGlvbikgYW5kIGEgcmVwbGljYXM9IGV4cG9ydCBvcHRpb24NCj4+Pj4+IChyZXBs aWNhcz08cGF0aDE+QDxzZXJ2ZXIxPjo8cGF0aDI+QDxzZXJ2ZXIyPi4uKQ0KPj4+Pj4gTm90ZSB0 aGF0IHRoaXMgY29uZmlndXJhdGlvbiBpcyBmb3IgdGVzdGluZyBvbmx5LiBBIGZ1dHVyZQ0KPj4+ Pj4gcGF0Y2hzZXQgd2lsbCBhZGQgdGhlIHJlcGxpY2FzPSBjb25maWd1cmF0aW9uIHRvIHRoZQ0K Pj4+Pj4gTkZTRVhQX1Y0Uk9PVCBuZnNkIGFuZCBtb3VudGQgcHJvY2Vzc2luZy4NCj4+Pj4+IA0K Pj4+Pj4gDQo+Pj4+PiBUaGVyZSBhcmUgc2V2ZXJhbCBpZGVhcyBvbiBob3cgdG8gYWNjb21wbGlz aCBtb3VudGQvVjRST09UIGZzX2xvY2F0aW9ucyBjb25maWd1cmF0aW9uIGluIHRoZSBmb3J3YXJk ZWQgbWVzc2FnZS4gU2VlIGlubGluZS4NCj4+Pj4+IA0KPj4+Pj4gDQo+Pj4+Pj4gQmVnaW4gZm9y d2FyZGVkIG1lc3NhZ2U6DQo+Pj4+Pj4gDQo+Pj4+Pj4gRnJvbTogQ2h1Y2sgTGV2ZXIgPGNodWNr LmxldmVyQG9yYWNsZS5jb20+DQo+Pj4+Pj4gU3ViamVjdDogUmU6IENvbmZpZ3VyaW5nIGZzX2xv Y2F0aW9ucyBvbiBMaW51eCB1cHN0cmVhbSBzZXJ2ZXINCj4+Pj4+PiBEYXRlOiBNYXkgNiwgMjAx NiBhdCA0OjMxOjAwIFBNIEVEVA0KPj4+Pj4+IFRvOiAiSi4gQnJ1Y2UgRmllbGRzIiA8YmZpZWxk c0BmaWVsZHNlcy5vcmc+DQo+Pj4+Pj4gQ2M6ICJBZGFtc29uLCBBbmR5IiA8V2lsbGlhbS5BZGFt c29uQG5ldGFwcC5jb20+DQo+Pj4+Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4+IE9uIE1heSA2LCAyMDE2 LCBhdCA0OjE2IFBNLCBKLiBCcnVjZSBGaWVsZHMgPGJmaWVsZHNAZmllbGRzZXMub3JnPiB3cm90 ZToNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IE9uIEZyaSwgTWF5IDA2LCAyMDE2IGF0IDAyOjIwOjEyUE0g LTA0MDAsIENodWNrIExldmVyIHdyb3RlOg0KPj4+Pj4+Pj4gU2VlbXMgbGlrZSB3aGVuIGEgc2Vy dmVyIGRvZXMgbm90IHJldHVybiBhIGxpc3QsIHRoYXQgaXMNCj4+Pj4+Pj4+IGluZm9ybWF0aW9u IHRoZSBjbGllbnQgY2FuIHVzZTogYmFzaWNhbGx5LCB0aGVyZSBpcyBubw0KPj4+Pj4+Pj4gYWJp bGl0eSB0byBkbyBhbnkgc2Vzc2lvbiB0cnVua2luZy4gSXQgaGFzIHRvIGJlIHNldCB1cA0KPj4+ Pj4+Pj4gZXhwbGljaXRseTsgaXMgdGhhdCBhIGJhZCB0aGluZywgb3BlcmF0aW9uYWxseT8NCj4+ Pj4+Pj4gDQo+Pj4+Pj4+IEkgbGlrZSB0aGUgaWRlYSBvZiBpdCBiZWluZyBvcHQgaW4gb24gdGhl IHNlcnZlci4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IFN1cHBvc2UgdGhlIHNlcnZlciB0cmFuc3BhcmVu dGx5IHN0YXJ0cyBhZHZlcnRpc2luZyBhbGwgYXZhaWxhYmxlDQo+Pj4+Pj4+IGFkZHJlc3NlcyBm b3Igc2Vzc2lvbiB0cnVua2luZy4gIEl0J3Mgbm90IGhhcmQgdG8gaW1hZ2luZSBjYXNlcyB3aGVy ZQ0KPj4+Pj4+PiB0aGF0IHdvdWxkIGdvIHdyb25nLiAgRS5nLiwgbWF5YmUgdGhlIHNlcnZlciBo YXMgdGhlIG9kZCB3aXJlbGVzcyBvcg0KPj4+Pj4+PiAxMDBNYiBvciBvdGhlciBpbnRlcmZhY2Ug dGhhdCBoYXBwZW5zIHRvIHdvcmsgYnV0IHRoYXQncyBzbG93LiAgVGhlbg0KPj4+Pj4+PiBzb21l Ym9keSB1cGdyYWRlcyB0aGVpciBzZXJ2ZXIgYW5kIHBlcmZvcm1hbmNlIGdvZXMgZG93biBhbmQg aXQgbWF5IHRha2UNCj4+Pj4+Pj4gdGhlbSBhIHdoaWxlIHRvIGZpZ3VyZSBvdXQgd2h5LiAgV2hl cmVhcyBpZiB0aGV5J2QgaGFkIHRvIG9wdCBpbiB0aGV5J2QNCj4+Pj4+Pj4gcHJvYmFibHkgaGF2 ZSBhdm9pZGVkIGFkdmVydGlzaW5nIGFuIGluYXBwcm9wcmlhdGUgaW50ZXJmYWNlLiAgT3IgYXQN Cj4+Pj4+Pj4gbGVhc3QgdGhleSdkIGhhdmUgYSBiZXR0ZXIgY2hhbmNlIG9mIGZpZ3VyaW5nIG91 dCB0aGF0IHR1cm5pbmcgb24NCj4+Pj4+Pj4gdHJ1bmtpbmcgd2FzIHdoYXQgY2F1c2VkIHRoZSBw cm9ibGVtLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gSSdkIHJhdGhlciBub3QgZm9yY2UgcGVvcGxlIHRv IGV4cG9ydCAiLyIgZXhwbGljaXRseSwgdGhvdWdoLiAgSXQncyBmaW5lDQo+Pj4+Pj4+IGZvciB0 ZXN0aW5nLCBidXQ6DQo+Pj4+Pj4+IA0KPj4+Pj4+PiAgLSBJIGRvbid0IHRoaW5rIHdlIGdpdmUg YSB3YXkgdG8gZG8gYW4gZXhwbGljaXQgVjRST09UIGV4cG9ydCwNCj4+Pj4+Pj4gICAgc28gdGhl eSdkIGJlIGV4cG9zaW5nIHRoZWlyIGVudGlyZSByb290IHBhcnRpdGlvbi4gIFdlIGNvdWxkDQo+ Pj4+Pj4+ICAgIGZpeCB0aGF0LCBidXQNCj4+Pj4+Pj4gIC0gdGhlIHBzZXVkb2ZzIGp1c3Qgc2Vl bXMgdG8gbWUgbGlrZSBzb21ldGhpbmcgcGVvcGxlIHNob3VsZG4ndA0KPj4+Pj4+PiAgICBub3Jt YWxseSBoYXZlIHRvIHRoaW5rIGFib3V0LiAgSXQncyBhIHByb3RvY29sIGltcGxlbWVudGF0aW9u DQo+Pj4+Pj4+ICAgIGRldGFpbCwgSSdkIHJhdGhlciBoaWRlIGl0LiAgSXQnZCBiZSB0byBlYXN5 IHRvIGNvbmZpZ3VyZSBpdCBhDQo+Pj4+Pj4+ICAgIGxpdHRsZSB3cm9uZywgSSB0aGluay4NCj4+ Pj4+Pj4gDQo+Pj4+Pj4+IFdlIGNhbiBzdGlsbCBkbyB0aGlzIGJ5IGFkZGluZyBhIHJlcGxpY2Fz PSBvcHRpb24gdG8gdGhlIC8gZXhwb3J0LCBidXQNCj4+Pj4+Pj4gd2UgY2FuIGxldCBycGMubW91 bnRkIGRvIHRoYXQgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIG1ha2luZyB0aGUgYWRtaW4gYWRkDQo+ Pj4+Pj4+IGl0IHRvIC9ldGMvZXhwb3J0cy4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEJ1dCB0aGVuIHlv dSBzdGlsbCBuZWVkIGEgd2F5IGZvciB0aGUgYWRtaW4gdG8gdGVsbCBycGMubW91bnRkIHRvIGNv b2sNCj4+Pj4+Pj4gdXAgdGhlIHJlcGxpY2FzPSBvcHRpb24uLi4uLiAgSSdtIG5vdCBzdXJlIHdo YXQgdGhhdCBzaG91bGQgbG9vayBsaWtlLg0KPj4+Pj4gDQo+Pj4+PiBJZGVhIDE6IGV4dHJhIHN5 bnRheCBpbiAvZXRjL2V4cG9ydHMNCj4+Pj4gDQo+Pj4+IEl0J3Mgbm90IHJlYWxseSBleHBvcnQt c3BlY2lmaWMgaW5mb3JtYXRpb24uICBJIHdvbmRlciBpZiBpdCdkIGJlIGJldHRlcg0KPj4+PiB0 byBwYXNzIGl0IG9uIHRoZSBycGMubmZzZCBjb21tYW5kbGluZT8NCj4+Pj4gDQo+Pj4+ICAgICBy cGMubmZzZCAtLW11bHRpcGF0aC1zZXQ9IjE5Mi4xNjguMC4xLDE5Mi4xNjguMC4yIg0KPj4+PiAN Cj4+Pj4gKGFuZCB0aGVuIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gL2V0Yy9zeXNjb25maWcv bmZzIG9yIHdoYXRldmVyKT8NCj4+IA0KPj4gSXMgdGhpcyAodGhlIHJwYy5uZnNkIGNvbW1hbmQg bGluZSBhbmQgL2V0Yy9zeXNjb25maWcvbmZzIGVudHJ5KSB0aGUNCj4+IHByZWZlcnJlZCB3YXk/ DQo+IA0KPiBJIGRvbid0IHByZWZlciBpdC4NCj4gDQo+IFNlZSBiZWxvdzogSSB0aGluayB3ZSB3 YW50IHNvbWV0aGluZyB0aGF0IGlzIG1vcmUNCj4gY29udmVuaWVudCB0byB1cGRhdGUgYXV0b21h dGljYWxseS4NCg0KRmluZSwgYnV0IEnigJltIGhhdmluZyBkaWZmaWN1bHR5IGluIHVuZGVyc3Rh bmRpbmcgdGhlIGRlc2lnbiB5b3UgYXJlIHN1Z2dlc3RpbmcgdG8gZnVsZmlsbCB0aGUgdXBkYXRl IGF1dG9tYXRpY2FsbHkgcmVxdWlyZW1lbnQuDQpTZWUgaW5saW5lIGJlbG93Lg0KDQo+IA0KPiAN Cj4+IElzIC9ldGMvc3lzY29uZmlnL25mcyByZWFkIHVwb24gcmVib290Pw0KPiANCj4gSXQncyBy ZWFkIGJ5IGFsbCB0aGUgc3RhcnQtdXAgc2NyaXB0cyByZWxhdGVkIHRvIE5GUy4NCj4gDQo+IA0K Pj4gLS0+QW5keQ0KPj4gDQo+PiANCj4+IA0KPj4+PiANCj4+Pj4+Pj4gTWF5YmUgc29tZSBleHRy YSBzeW50YXggaW4gL2V0Yy9leHBvcnRzLCBidXQgd2hhdCBkbyB0aGV5IG5lZWQgdG8gZ2l2ZQ0K Pj4+Pj4+PiB1cy0tanVzdCBvbmUgbGlzdCBvZiBJUCBhZGRyZXNzZXM/ICBDaHVjaywgYW55IGlk ZWFzPw0KPj4+Pj4gDQo+Pj4+PiBJZGVhIDI6IHhhdHRyIGF0dGFjaGVkIHRvIOKAnC8iDQo+Pj4+ PiANCj4+Pj4+PiANCj4+Pj4+PiBIb3cgYWJvdXQgdXNpbmcgdGhlIHNhbWUgYXBwcm9hY2ggdXNl ZCBmb3IganVuY3Rpb25zOg0KPj4+Pj4+IHB1dCB0aGUgbGlzdCBpbiBhbiB4YXR0ciBhdHRhY2hl ZCB0byAvID8gbW91bnRkIGNhbg0KPj4+Pj4+IGV4dHJhY3QgdGhhdCB3aGVuIHRoZSBrZXJuZWwg YXNrcyBmb3IgaGVscCBzYXRpc2Z5aW5nDQo+Pj4+Pj4gYSBHRVRBVFRSKGZzX2xvY2F0aW9ucykg b24gVjRST09ULg0KPj4+PiANCj4+Pj4gSSBkb24ndCB0aGluayB0aGF0IHdvcmtzLiAgIi8iIGlz bid0IGEgZ29vZCBwbGFjZSB0byBwdXQgY29uZmlndXJhdGlvbi4NCj4+Pj4gSXQgY291bGQgYmUg cmVhZC1vbmx5LCBhbW9uZyBvdGhlciB0aGluZ3MuDQo+Pj4+IA0KPj4+Pj4gSWRlYSAzOiBuZXcg L2V0Yy8gY29uZmlnIGZpbGUNCj4+Pj4+PiANCj4+Pj4+PiBPciBpdCBjb3VsZCBiZSBwdXQgaW4g YSBzZXBhcmF0ZSBjb25maWcgZmlsZSBpbiAvZXRjLg0KPj4+Pj4+IFlvdSBtaWdodCB3YW50IHRv IHNwZWNpZnkgbW9yZSB0aGFuIGp1c3QgdGhlIGkvZiBsaXN0DQo+Pj4+Pj4gaGVyZTsgZm9yIGlu c3RhbmNlLCB0aGUgc2VjdXJpdHkgcG9saWN5IGZvciB0aGUNCj4+Pj4+PiBwc2V1ZG9mcywgb3Ig YSBjb25zdGFudCBmc2lkIFVVSUQsIGFtb25nIG90aGVyIHRoaW5ncy4NCj4+Pj4+IA0KPj4+Pj4g DQo+Pj4+PiBBUEkgdG8gdXBkYXRlIHRoZSBpL2YgbGlzdC4gIFRoaXMgaXMgbm90IGFib3V0IHdo ZXJlIHRvIGhvbGQgZnNfbG9jYXRpb25zIGNvbmZpZyBpbmZvLCBidXQgcmF0aGVyIGhvdyB0byBp bnNlcnQgdGhlIChjaGFuZ2VkKSBpbmZvIGludG8gdGhlIHJ1bm5pbmcgc3lzdGVtLg0KPj4+Pj4g DQo+Pj4+Pj4gDQo+Pj4+Pj4gQWxzbywgSSBzdWdnZXN0ZWQgdG8gQW5keSBlYXJsaWVyOg0KPj4+ Pj4+IA0KPj4+Pj4+PiBJIGZpbmQgbXlzZWxmIGxlYW5pbmcgdG93YXJkcyBtZWNoYW5pc21zIHRo YXQgYXJlIGVhc3kNCj4+Pj4+Pj4gYm90aCBmb3IgYWRtaW5zIGFuZCBmb3IgcHJvZ3JhbXMgKGll LCBhbiBBUEkpLiBQZXJoYXBzDQo+Pj4+Pj4+IG9uZSBkYXkgeW91IG1pZ2h0IHdhbnQgdG8gYWRk IGEgY29tbWFuZCB0aGF0IHVwZGF0ZXMgdGhlDQo+Pj4+Pj4+IGkvZiBsaXN0IGZyb20gdGhlIHNj cmlwdHMgaW4gL2V0Yy9zeXNjb25maWcvbmV0d29yay1zY3JpcHRzLA0KPj4+Pj4+PiBmb3IgaW5z dGFuY2UuDQo+Pj4+Pj4+IA0KPj4+Pj4+PiBBcyBwYXJ0IG9mIGFuIGlmdXA6DQo+Pj4+Pj4+IA0K Pj4+Pj4+PiBuZnNwZnMgYWRkIDxhZGRyPg0KPj4+Pj4+PiANCj4+Pj4+Pj4gYW5kIGlmZG93bjoN Cj4+Pj4+Pj4gDQo+Pj4+Pj4+IG5mc3BmcyByZW1vdmUgPGFkZHI+DQo+Pj4+Pj4+IA0KPj4+Pj4+ PiBJIHdyb3RlIHNvbWUgUHl0aG9uIGNvZGUgdG8gbWFuaXB1bGF0ZSBlbnRyaWVzIGluDQo+Pj4+ Pj4+IC9ldGMvZXhwb3J0cywgbm93IGZvdW5kIGluIGZlZGZzLXV0aWxzLiBJdCdzIGlja3kuDQo+ Pj4+Pj4gDQo+Pj4+Pj4gSSB0aGluayB3ZSBzaG91bGQgbW92ZSBhd2F5IGZyb20gImVkaXQgdGhp cyBmaWxlDQo+Pj4+Pj4gYW5kIHNhdmUgaXQsIHRoZW4gcmVzdGFydCBycGMueHl6cGRxIi4gQnVp bGQgc29tZQ0KPj4+Pj4+IGNvbW1hbmQgbGluZSBpbnRlcmZhY2VzIGZvciB0aGlzLg0KPj4+PiAN Cj4+Pj4gSSdtIE9LIHdpdGggdGhhdC4NCj4+Pj4gDQo+Pj4+IChOb3RlIGRvIGhhdmUgdGhhdCBm b3IgaW5mb3JtYXRpb24gaW4gL2V0Yy9leHBvcnRzLS13ZSBoYXZlIGV4cG9ydGZzLg0KPj4+PiBJ cyB0aGVyZSBhIHJlYXNvbiB0aGF0IGRpZG4ndCB3b3JrIGZvciBmZWRmcy11dGlscz8pDQo+Pj4g DQo+Pj4gVG8gbWFrZSBjaGFuZ2VzIHRoYXQgY2FuIHN1cnZpdmUgYSBzZXJ2ZXIgcmVib290LA0K Pj4+IHlvdSBoYXZlIHRvIHVwZGF0ZSAvZXRjL2V4cG9ydHMuDQoNCg0KDQpZb3VyIHN1Z2dlc3Rp b24gdGhlbiBpcyB0byBidWlsZCBhIG5ldyBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIHRvOg0KDQot IHRlbGwgbW91bnRkIG9mIGEgVjRST09UIG11bHRpcGF0aCBsaXN0Pw0KLSBoYXZlIHNhaWQgbGlz dCBzdXJ2aXZlIHJlYm9vdHMsIGUuZy4gc3RvcmVkIGluIGEgZmlsZT8NCg0KUGxlYXNlIHBvdmlk ZSBtb3JlIGRldGFpbCBvbiB5b3VyIHRob3VnaHRzLg0KDQpUaGFua3MNCg0K4oCUPiBBbmR5DQoN Cj4+PiANCj4+PiANCj4+PiANCj4+Pj4gLS1iLg0KPj4+PiANCj4+Pj4+PiANCj4+Pj4+PiBBbmQg YXMgeW91IGhhdmUgc3VnZ2VzdGVkIG1hbnkgdGltZXM6IHNlcGFyYXRlDQo+Pj4+Pj4gcG9saWN5 IGZyb20gbWVjaGFuaXNtLiAvZXRjL2V4cG9ydHMgaXMgdGhlDQo+Pj4+Pj4gbWVjaGFuaXNtLg0K Pj4+Pj4+IA0KPj4+Pj4+IC0tDQo+Pj4+Pj4gQ2h1Y2sgTGV2ZXINCj4+Pj4+IA0KPj4+Pj4gQnJ1 Y2UgLSBkbyB5b3UgaGF2ZSBhIHByZWZlcmVuY2UgYmV0d2VlbiAjMSBhbmQgIzIgb3IgIzMgKG9y IGFub3RoZXIgaWRlYT8pDQo+Pj4+PiANCj4+Pj4+IFRoYW5rcw0KPj4+Pj4gDQo+Pj4+PiDigJQ+ QW5keQ0KPj4+PiAtLQ0KPj4+PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0 aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtbmZzIiBpbg0KPj4+PiB0aGUgYm9keSBvZiBhIG1l c3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZw0KPj4+PiBNb3JlIG1ham9yZG9tbyBp bmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwNCj4+PiAN Cj4+PiAtLQ0KPj4+IENodWNrIExldmVyDQo+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4gLS0NCj4+PiBU byB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUg bGludXgtbmZzIiBpbg0KPj4+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdl ci5rZXJuZWwub3JnDQo+Pj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2Vy bmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sDQo+PiAtLQ0KPj4gVG8gdW5zdWJzY3JpYmUgZnJv bSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LW5mcyIgaW4NCj4+ IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQo+PiBN b3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1p bmZvLmh0bWwNCj4gDQo+IC0tDQo+IENodWNrIExldmVyDQo+IA0KPiANCj4gDQoNCg==