All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1481844847.11785.3.camel@primarydata.com>

diff --git a/a/1.txt b/N1/1.txt
index a44d8e6..aeb114c 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,181 +1,200 @@
-SGkgTGludXMsDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgZTU1MTdjMmE1
-YTQ5ZWQ1ZTk5MDQ3MDA4NjI5ZjFjZDYwMjQ2ZWEwZToNCg0KICBMaW51eCA0LjktcmM3ICgyMDE2
-LTExLTI3IDEzOjA4OjA0IC0wODAwKQ0KDQphcmUgYXZhaWxhYmxlIGluIHRoZSBnaXQgcmVwb3Np
-dG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQubGludXgtbmZzLm9yZy9wcm9qZWN0cy90cm9uZG15L2xp
-bnV4LW5mcy5naXQgdGFncy9uZnMtZm9yLTQuMTAtMQ0KDQpmb3IgeW91IHRvIGZldGNoIGNoYW5n
-ZXMgdXAgdG8gMjU0OWYzMDdiNTk5N2JmNWRkOTEwNzE0MjhlODA5MGQ5ZmFhOGIxYjoNCg0KICBN
-ZXJnZSB0YWcgJ25mcy1yZG1hLTQuMTAtMScgb2YgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJv
-amVjdHMvYW5uYS9uZnMtcmRtYSAoMjAxNi0xMi0xMCAxMDozMTo0NCAtMDUwMCkNCg0KQ2hlZXJz
-DQogIFRyb25kDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
-LS0tLS0tLS0tLS0tLS0tLS0tLS0NCk5GUyBjbGllbnQgdXBkYXRlcyBmb3IgTGludXggNC4xMA0K
-DQpIaWdobGlnaHRzIGluY2x1ZGU6DQoNClN0YWJsZSBidWdmaXhlczoNCiAtIEZpeCBhIHBuZnMg
-ZGVhZGxvY2sgYmV0d2VlbiByZWFkIHJlc2VuZHMgYW5kIGxheW91dHJldHVybg0KIC0gRG9uJ3Qg
-aW52YWxpZGF0ZSB0aGUgbGF5b3V0IHN0YXRlaWQgd2hpbGUgYSBsYXlvdXQgcmV0dXJuIGlzIG91
-dHN0YW5kaW5nDQogLSBEb24ndCBzY2hlZHVsZSBhIGxheW91dHJldHVybiBpZiB0aGUgbGF5b3V0
-IHN0YXRlaWQgaXMgbWFya2VkIGFzIGludmFsaWQNCiAtIE9uIGEgcE5GUyBlcnJvciwgZG8gbm90
-IHNlbmQgTEFZT1VUR0VUIHVudGlsIHRoZSBMQVlPVVRSRVRVUk4gaXMgY29tcGxldGUNCiAtIFNV
-TlJQQzogZml4IHJlZmNvdW50aW5nIHByb2JsZW1zIHdpdGggYXV0aF9nc3MgbWVzc2FnZXMuDQoN
-CkZlYXR1cmVzOg0KIC0gQWRkIGNsaWVudCBzdXBwb3J0IGZvciB0aGUgTkZTdjQgdW1hc2sgYXR0
-cmlidXRlLg0KIC0gTkZTdjQ6IENvcnJlY3Qgc3VwcG9ydCBmb3IgZmxvY2soKSBzdGF0ZWlkcy4N
-CiAtIEFkZCBhIExBWU9VVFJFVFVSTiBvcGVyYXRpb24gdG8gQ0xPU0UgYW5kIERFTEVHUkVUVVJO
-IHdoZW4gcmV0dXJuLW9uLWNsb3NlDQogICBpcyBzcGVjaWZpZWQNCiAtIEFsbG93IHRoZSBwTkZT
-L2ZsZXhmaWxlcyBsYXlvdXRzdGF0IGluZm9ybWF0aW9uIHRvIHBpZ2d5YmFjayBvbiBMQVlPVVRS
-RVRVUk4NCiAtIE9wdGltaXNlIGF3YXkgcmVkdW5kYW50IEdFVEFUVFIgY2FsbHMgd2hlbiBkb2lu
-ZyBzdGF0ZSByZWNvdmVyeSBhbmQvb3INCiAgIHdoZW4gbm90IHJlcXVpcmVkIGJ5IGNhY2hlIHJl
-dmFsaWRhdGlvbiBydWxlcyBvciBjbG9zZS10by1vcGVuIGNhY2hlDQogICBjb25zaXN0ZW5jeS4N
-CiAtIEF0dHJpYnV0ZSBjYWNoZSBpbXByb3ZlbWVudHMNCiAtIFJQQy9SRE1BIHN1cHBvcnQgZm9y
-IFNHX0dBUCBkZXZpY2VzDQoNCkJ1Z2ZpeGVzOg0KIC0gTkZTOiBGaXggcGVyZm9ybWFuY2UgcmVn
-cmVzc2lvbnMgaW4gcmVhZGRpcg0KIC0gcE5GUy9mbGV4ZmlsZXM6IEZpeCBhIGRlYWRsb2NrIG9u
-IExBWU9VVEdFVA0KIC0gTkZTdjQ6IEFkZCBtaXNzaW5nIG5mc19wdXRfbG9ja19jb250ZXh0KCkN
-CiAtIE5GU3Y0LjE6IEZpeCByZWdyZXNzaW9uIGluIGNhbGxiYWNrIHJldHJ5IGhhbmRsaW5nDQog
-LSBGaXggZmFsc2UgcG9zaXRpdmUgTkZTdjQuMCB0cnVua2luZyBkZXRlY3Rpb24uDQogLSBwTkZT
-L2ZsZXhmaWxlczogT25seSBzZW5kIGxheW91dHN0YXRzIHVwZGF0ZXMgZm9yIG1pcnJvcnMgdGhh
-dCB3ZXJlIHVwZGF0ZWQNCiAtIFZhcmlvdXMgbGF5b3V0IHN0YXRlaWQgcmVsYXRlZCBidWdmaXhl
-cw0KIC0gUlBDL1JETUEgYnVnZml4ZXMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
-LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQW5kcmVhcyBHcnVlbmJhY2hlciAo
-MSk6DQogICAgICBuZnM6IGFkZCBzdXBwb3J0IGZvciB0aGUgdW1hc2sgYXR0cmlidXRlDQoNCkFu
-bmEgU2NodW1ha2VyICgyKToNCiAgICAgIE5GUzogUmVtb3ZlIHVudXNlZCBhdXRoZmxhdm91ciBw
-YXJhbWV0ZXIgZnJvbSBuZnNfZ2V0X2NsaWVudCgpDQogICAgICBORlM6IFJlbW92ZSB1bnVzZWQg
-YXJndW1lbnQgZnJvbSBuZnNfZGlyZWN0X3dyaXRlX2NvbXBsZXRlKCkNCg0KQ2h1Y2sgTGV2ZXIg
-KDEyKToNCiAgICAgIHhwcnRyZG1hOiBDYXAgc2l6ZSBvZiBjYWxsYmFjayBidWZmZXIgcmVzb3Vy
-Y2VzDQogICAgICB4cHJ0cmRtYTogTWFrZSBGUldSIHNlbmQgcXVldWUgZW50cnkgYWNjb3VudGlu
-ZyBtb3JlIGFjY3VyYXRlDQogICAgICB4cHJ0cmRtYTogU3VwcG9ydCBmb3IgU0dfR0FQIGRldmlj
-ZXMNCiAgICAgIFNVTlJQQzogUHJvcGVyIG1ldHJpYyBhY2NvdW50aW5nIHdoZW4gUlBDIGlzIG5v
-dCB0cmFuc21pdHRlZA0KICAgICAgeHBydHJkbWE6IEFkZHJlc3MgY292ZXJpdHkgY29tcGxhaW50
-IGFib3V0IHdhaXRfZm9yX2NvbXBsZXRpb24oKQ0KICAgICAgeHBydHJkbWE6IEF2b2lkIGNhbGxz
-IHRvIHJvX3VubWFwX3NhZmUoKQ0KICAgICAgeHBydHJkbWE6IFJlZmFjdG9yIEZSTVIgaW52YWxp
-ZGF0aW9uDQogICAgICB4cHJ0cmRtYTogVXBkYXRlIGRvY3VtZW50aW5nIGNvbW1lbnQNCiAgICAg
-IHhwcnRyZG1hOiBTcXVlbGNoICJtYXggc2VuZCwgbWF4IHJlY3YiIG1lc3NhZ2VzIGF0IGNvbm5l
-Y3QgdGltZQ0KICAgICAgeHBydHJkbWE6IFNob3J0ZW4gUVAgYWNjZXNzIGVycm9yIG1lc3NhZ2UN
-CiAgICAgIHhwcnRyZG1hOiBVcGRhdGUgZHByaW50ayBpbiBycGNyZG1hX2NvdW50X2NodW5rcw0K
-ICAgICAgeHBydHJkbWE6IFJlbG9jYXRlIGNvbm5lY3Rpb24gaGVscGVyIGZ1bmN0aW9ucw0KDQpG
-cmVkIElzYW1hbiAoMik6DQogICAgICBORlN2NC4xOiBGaXggcmVncmVzc2lvbiBpbiBjYWxsYmFj
-ayByZXRyeSBoYW5kbGluZw0KICAgICAgcE5GUy9mbGV4ZmlsZXM6IEZpeCBhIGRlYWRsb2NrIG9u
-IExBWU9VVEdFVA0KDQpKLiBCcnVjZSBGaWVsZHMgKDEpOg0KICAgICAgbmZzOiBmaXggZmFsc2Ug
-cG9zaXRpdmVzIGluIG5mczQwX3dhbGtfY2xpZW50X2xpc3QoKQ0KDQpOZWlsQnJvd24gKDkpOg0K
-ICAgICAgc3VucnBjOiBEb24ndCBlbmdhZ2UgZXhwb25lbnRpYWwgYmFja29mZiB3aGVuIGNvbm5l
-Y3Rpb24gYXR0ZW1wdCBpcyByZWplY3RlZC4NCiAgICAgIE5GUzogcmVtb3ZlIGxfcGlkIGZpZWxk
-IGZyb20gbmZzX2xvY2tvd25lcg0KICAgICAgTkZTdjQ6IGFkZCBmbG9ja19vd25lciB0byBvcGVu
-IGNvbnRleHQNCiAgICAgIE5GU3Y0OiBjaGFuZ2UgbmZzNF9kb19zZXRhdHRyIHRvIHRha2UgYW4g
-b3Blbl9jb250ZXh0IGluc3RlYWQgb2YgYSBuZnM0X3N0YXRlLg0KICAgICAgTkZTdjQ6IGNoYW5n
-ZSBuZnM0X3NlbGVjdF9yd19zdGF0ZWlkIHRvIHRha2UgYSBsb2NrX2NvbnRleHQgaW5wbGFjZSBv
-ZiBsb2NrX293bmVyDQogICAgICBORlN2NDogZW5oYW5jZSBuZnM0X2NvcHlfbG9ja19zdGF0ZWlk
-IHRvIHVzZSBhIGZsb2NrIHN0YXRlaWQgaWYgdGhlcmUgaXMgb25lDQogICAgICBORlM6IGRpc2Nh
-cmQgbmZzX2xvY2tvd25lciBzdHJ1Y3R1cmUuDQogICAgICBORlN2NDogQWRkIG1pc3NpbmcgbmZz
-X3B1dF9sb2NrX2NvbnRleHQoKQ0KICAgICAgU1VOUlBDOiBmaXggcmVmY291bnRpbmcgcHJvYmxl
-bXMgd2l0aCBhdXRoX2dzcyBtZXNzYWdlcy4NCg0KVHJvbmQgTXlrbGVidXN0ICg1NSk6DQogICAg
-ICBORlN2NDogRG9uJ3QgY2hlY2sgZmlsZSBhY2Nlc3Mgd2hlbiByZWNsYWltaW5nIHN0YXRlDQog
-ICAgICBORlN2NDogRG9uJ3QgYXNrIGZvciB0aGUgY2hhbmdlIGF0dHJpYnV0ZSB3aGVuIHJlY2xh
-aW1pbmcgc3RhdGUNCiAgICAgIE5GU3Y0OiBEb24ndCByZXF1ZXN0IGEgR0VUQVRUUiBvbiBvcGVu
-X2Rvd25ncmFkZS4NCiAgICAgIE5GU3Y0OiBEb24ndCByZXF1ZXN0IGNsb3NlLXRvLW9wZW4gYXR0
-cmlidXRlIHdoZW4gaG9sZGluZyBhIGRlbGVnYXRpb24NCiAgICAgIE5GU3Y0OiBPcHRpbWlzZSBh
-d2F5IGZvcmNlZCByZXZhbGlkYXRpb24gd2hlbiB3ZSBrbm93IHRoZSBhdHRyaWJ1dGVzIGFyZSBP
-Sw0KICAgICAgcE5GUzogRml4IGEgZGVhZGxvY2sgYmV0d2VlbiByZWFkIHJlc2VuZHMgYW5kIGxh
-eW91dHJldHVybg0KICAgICAgcE5GUzogRG9uJ3QgY2xlYXIgdGhlIGxheW91dCBzdGF0ZWlkIGlm
-IGEgbGF5b3V0IHJldHVybiBpcyBvdXRzdGFuZGluZw0KICAgICAgcE5GUzogQ2xlYXIgTkZTX0xB
-WU9VVF9SRVRVUk5fUkVRVUVTVEVEIHdoZW4gaW52YWxpZGF0aW5nIHRoZSBsYXlvdXQgc3RhdGVp
-ZA0KICAgICAgcE5GUzogRm9yY2UgYSByZXRyeSBvZiBMQVlPVVRHRVQgaWYgdGhlIHN0YXRlaWQg
-ZG9lc24ndCBtYXRjaCBvdXIgY2FjaGUNCiAgICAgIHBORlM6IE9uIGVycm9yLCBkbyBub3Qgc2Vu
-ZCBMQVlPVVRHRVQgdW50aWwgdGhlIExBWU9VVFJFVFVSTiBoYXMgY29tcGxldGVkDQogICAgICBw
-TkZTOiBGaXggcmFjZSBpbiBwbmZzX3dhaXRfb25fbGF5b3V0cmV0dXJuDQogICAgICBwTkZTOiBj
-b25zb2xpZGF0ZSB0aGUgZGlmZmVyZW50IHJhbmdlIGludGVyc2VjdGlvbiB0ZXN0cw0KICAgICAg
-cE5GUzogRGVsYXkgZ2V0dGluZyB0aGUgbGF5b3V0IGhlYWRlciBpbiBDQl9MQVlPVVRSRUNBTEwg
-aGFuZGxlcnMNCiAgICAgIHBORlM6IERvIG5vdCBmcmVlIGxheW91dCBzZWdtZW50cyB0aGF0IGFy
-ZSBtYXJrZWQgZm9yIHJldHVybg0KICAgICAgTkZTdjQ6IElnbm9yZSBMQVlPVVRSRVRVUk4gcmVz
-dWx0IGlmIHRoZSBsYXlvdXQgZG9lc24ndCBtYXRjaCBvciBpcyBpbnZhbGlkDQogICAgICBwTkZT
-OiBSZW1vdmUgc3B1cmlvdXMgd2FrZSB1cCBpbiBwbmZzX2xheW91dF9yZW1vdmVfbHNlZygpDQog
-ICAgICBwTkZTOiBTa2lwIGNoZWNraW5nIGZvciByZXR1cm4tb24tY2xvc2UgaWYgdGhlIGxheW91
-dCBpcyBpbnZhbGlkDQogICAgICBwTkZTOiBHZXQgcmlkIG9mIHVubmVjZXNzYXJ5IGxheW91dCBw
-YXJhbWV0ZXIgaW4gZW5jb2RlX2xheW91dHJldHVybiBjYWxsYmFjaw0KICAgICAgcE5GUzogRG9u
-J3QgbWFyayBsYXlvdXQgc2VnbWVudHMgaW52YWxpZCBvbiBsYXlvdXRyZXR1cm4gaW4gcG5mc19y
-b2MNCiAgICAgIE5GU3Y0OiBGaXggbWlzc2luZyBvcGVyYXRpb24gYWNjb3VudGluZyBpbiBORlM0
-X2RlY19kZWxlZ3JldHVybl9zeg0KICAgICAgTkZTdjQ6IEFkZCBlbmNvZGUvZGVjb2RlIG9mIHRo
-ZSBsYXlvdXRyZXR1cm4gb3AgaW4gQ0xPU0UNCiAgICAgIE5GU3Y0OiBBZGQgZW5jb2RlL2RlY29k
-ZSBvZiB0aGUgbGF5b3V0cmV0dXJuIG9wIGluIERFTEVHUkVUVVJODQogICAgICBwTkZTOiBDbGVh
-biB1cCAtIGFkZCBhIGhlbHBlciB0byBpbml0aWFsaXNlIHN0cnVjdCBsYXlvdXRyZXR1cm5fYXJn
-cw0KICAgICAgcE5GUzogRW5hYmxlIGxheW91dHJldHVybiBvcGVyYXRpb24gZm9yIHJldHVybi1v
-bi1jbG9zZQ0KICAgICAgcE5GUzogUHJldmVudCB1bm5lY2Vzc2FyeSBsYXlvdXRyZXR1cm5zIGFm
-dGVyIGRlbGVncmV0dXJuDQogICAgICBwTkZTOiBDbGVhciBhbGwgbGF5b3V0IHNlZ21lbnQgc3Rh
-dGUgaW4gcG5mc19tYXJrX2xheW91dF9zdGF0ZWlkX2ludmFsaWQNCiAgICAgIHBORlM6IEZpeCBi
-dWdzIGluIF9wbmZzX3JldHVybl9sYXlvdXQNCiAgICAgIHBORlM6IFN5bmMgdGhlIGxheW91dCBz
-dGF0ZSBiaXRzIGluIHBuZnNfY2FjaGVfbHNlZ19mb3JfbGF5b3V0cmV0dXJuDQogICAgICBwTkZT
-OiBEb24ndCBtYXJrIHRoZSBsYXlvdXQgYXMgZnJlZWQgaWYgdGhlIGxhc3QgbHNlZyBpcyBtYXJr
-ZWQgZm9yIHJldHVybg0KICAgICAgcE5GUzogV2FpdCBvbiBvdXRzdGFuZGluZyBsYXlvdXRyZXR1
-cm5zIHRvIGNvbXBsZXRlIGluIHBuZnNfcm9jKCkNCiAgICAgIHBORlM6IFNraXAgaW52YWxpZCBz
-dGF0ZWlkcyB3aGVuIGRvaW5nIGEgYnVsayBkZXN0cm95DQogICAgICBORlM6IEZpeCBhIHBlcmZv
-cm1hbmNlIHJlZ3Jlc3Npb24gaW4gcmVhZGRpcg0KICAgICAgTkZTOiBCZSBtb3JlIHRhcmdldGVk
-IGFib3V0IHJlYWRkaXJwbHVzIHVzZSB3aGVuIGRvaW5nIGxvb2t1cC9yZXZhbGlkYXRpb24NCiAg
-ICAgIE5GUzogQWxsb3cgZ2V0YXR0ciB0byBhbHNvIHJlcG9ydCByZWFkZGlycGx1cyBjYWNoZSBo
-aXRzDQogICAgICBwTkZTL2ZsZXhmaWxlczogRG9uJ3QgYXR0ZW1wdCB0byBzZW5kIGxheW91dHN0
-YXRzIGlmIHRoZXJlIGFyZSBubyBlbnRyaWVzDQogICAgICBwTkZTL2ZsZXhmaWxlczogT25seSBz
-ZW5kIGxheW91dHN0YXRzIHVwZGF0ZXMgZm9yIG1pcnJvcnMgdGhhdCB3ZXJlIHVwZGF0ZWQNCiAg
-ICAgIE5GU3Y0OiBBZGQgYSBnZW5lcmljIHN0cnVjdHVyZSBmb3IgbWFuYWdpbmcgbGF5b3V0LXBy
-aXZhdGUgaW5mb3JtYXRpb24NCiAgICAgIHBORlM6IEFsbG93IGxheW91dCBkcml2ZXJzIHRvIG1h
-bmFnZSBwcml2YXRlIGRhdGEgaW4gc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuDQogICAgICBwTkZT
-OiBBZGQgYSBsYXlvdXRyZXR1cm4gY2FsbGJhY2sgdG8gcGVyZm9ybWEgbGF5b3V0LXByaXZhdGUg
-c2V0dXANCiAgICAgIHBORlMvZmxleGZpbGVzOiBSZWZhY3RvciBlbmNvZGluZyBvZiB0aGUgbGF5
-b3V0cmV0dXJuIHBheWxvYWQNCiAgICAgIHBORlMvZmxleGZpbGVzOiBDbGVhbiB1cCBsYXlvdXRz
-dGF0cw0KICAgICAgTkZTOiBGaXggdXAgcmVhZCBvZiBtaXJyb3Igc3RhdHMNCiAgICAgIHBORlMv
-ZmxleGZpbGVzOiBNaW5vciByZWZhY3RvcmluZyBiZWZvcmUgYWRkaW5nIGlvc3RhdHMgdG8gbGF5
-b3V0cmV0dXJuDQogICAgICBwTkZTL2ZsZXhmaWxlczogU3VwcG9ydCBzZW5kaW5nIGxheW91dHN0
-YXRzIGluIGxheW91dHJldHVybg0KICAgICAgTkZTOiBGaXggaW5jb3JyZWN0IG1hcHBpbmcgcmV2
-YWxpZGF0aW9uIHdoZW4gaG9sZGluZyBhIGRlbGVnYXRpb24NCiAgICAgIE5GUzogRml4IGluY29y
-cmVjdCBzaXplIHJldmFsaWRhdGlvbiB3aGVuIGhvbGRpbmcgYSBkZWxlZ2F0aW9uDQogICAgICBO
-RlM6IE9ubHkgbG9vayBhdCB0aGUgY2hhbmdlIGF0dHJpYnV0ZSBjYWNoZSBzdGF0ZSBpbiBuZnNf
-Y2hlY2tfdmVyaWZpZXINCiAgICAgIE5GU3Y0LjE6IEhhbmRsZSBORlM0RVJSX0JBRFNFU1NJT04v
-TkZTNEVSUl9ERUFEU0VTU0lPTiByZXBsaWVzIHRvIE9QX1NFUVVFTkNFDQogICAgICBORlN2NC4x
-OiBEb24ndCBzY2hlZHVsZSBsZWFzZSByZWNvdmVyeSBpbiBuZnM0X3NjaGVkdWxlX3Nlc3Npb25f
-cmVjb3ZlcnkoKQ0KICAgICAgcE5GUzogUmVsZWFzZSBORlNfTEFZT1VUX1JFVFVSTiB3aGVuIGlu
-dmFsaWRhdGluZyB0aGUgbGF5b3V0IHN0YXRlaWQNCiAgICAgIHBORlMvZmxleGZpbGVzOiBGaXgg
-ZmZfbGF5b3V0X2FkZF9kc19lcnJvcl9sb2NrZWQoKQ0KICAgICAgcE5GUzogTGF5b3V0cmV0dXJu
-IG11c3QgZnJlZSB0aGUgbGF5b3V0IGFmdGVyIHRoZSBsYXlvdXQtcHJpdmF0ZSBkYXRhDQogICAg
-ICBwTkZTL2ZsZXhmaWxlczogUmVtb3ZlIGEgcmVkdW5kYW50IHBhcmFtZXRlciBpbiBmZl9sYXlv
-dXRfZW5jb2RlX2lvZXJyKCkNCiAgICAgIHBORlMvZmxleGZpbGVzOiBFbnN1cmUgd2UgaGF2ZSBl
-bm91Z2ggYnVmZmVyIGZvciBsYXlvdXRyZXR1cm4NCiAgICAgIE1lcmdlIHRhZyAnbmZzLXJkbWEt
-NC4xMC0xJyBvZiBnaXQ6Ly9naXQubGludXgtbmZzLm9yZy9wcm9qZWN0cy9hbm5hL25mcy1yZG1h
-DQoNCldlaSBZb25nanVuICgxKToNCiAgICAgIE5GUzogZml4IHR5cG8gaW4gcGFyYW1ldGVyIGRl
-c2NyaXB0aW9uDQoNCiBmcy9uZnMvY2FsbGJhY2tfcHJvYy5jICAgICAgICAgICAgICAgICAgICB8
-ICA5OSArKysrKy0tLQ0KIGZzL25mcy9jbGllbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAg
-IHwgICA2ICstDQogZnMvbmZzL2RlbGVnYXRpb24uYyAgICAgICAgICAgICAgICAgICAgICAgfCAg
-IDQgLQ0KIGZzL25mcy9kaXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDczICsr
-Ky0tLQ0KIGZzL25mcy9kaXJlY3QuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICst
-DQogZnMvbmZzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0NCiBm
-cy9uZnMvZmlsZWxheW91dC9maWxlbGF5b3V0ZGV2LmMgICAgICAgICB8ICAgMyArLQ0KIGZzL25m
-cy9mbGV4ZmlsZWxheW91dC9mbGV4ZmlsZWxheW91dC5jICAgIHwgMzEzICsrKysrKysrKysrKysr
-Ky0tLS0tLS0tDQogZnMvbmZzL2ZsZXhmaWxlbGF5b3V0L2ZsZXhmaWxlbGF5b3V0LmggICAgfCAg
-MjMgKy0NCiBmcy9uZnMvZmxleGZpbGVsYXlvdXQvZmxleGZpbGVsYXlvdXRkZXYuYyB8IDE1MSAr
-KysrKysrLS0tLQ0KIGZzL25mcy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
-IDUxICsrLS0NCiBmcy9uZnMvaW50ZXJuYWwuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
-OSArLQ0KIGZzL25mcy9uZnMzY2xpZW50LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICst
-DQogZnMvbmZzL25mczQycHJvYy5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKy0NCiBm
-cy9uZnMvbmZzNDJ4ZHIuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQ0KIGZzL25m
-cy9uZnM0X2ZzLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstDQogZnMvbmZzL25m
-czRjbGllbnQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMzIgKystDQogZnMvbmZzL25mczRm
-aWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9uZnMvbmZzNHByb2Mu
-YyAgICAgICAgICAgICAgICAgICAgICAgICB8IDIzMyArKysrKysrKysrKy0tLS0tLQ0KIGZzL25m
-cy9uZnM0c2Vzc2lvbi5jICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstDQogZnMvbmZzL25m
-czRzdGF0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjcgKy0NCiBmcy9uZnMvbmZzNHhk
-ci5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKy0tDQogZnMvbmZzL29iamxh
-eW91dC9vYmpsYXlvdXQuYyAgICAgICAgICAgICAgfCAgIDQgKy0NCiBmcy9uZnMvb2JqbGF5b3V0
-L29iamxheW91dC5oICAgICAgICAgICAgICB8ICAgMSAtDQogZnMvbmZzL3BhZ2VsaXN0LmMgICAg
-ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0NCiBmcy9uZnMvcG5mcy5jICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICB8IDQwNyArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0NCiBm
-cy9uZnMvcG5mcy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3NyArKysrLS0NCiBm
-cy9uZnMvcG5mc19uZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOCArLQ0KIGZzL25m
-cy9zdXBlci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstDQogZnMvbmZzL3dy
-aXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0NCiBpbmNsdWRlL2xpbnV4
-L25mczQuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQogaW5jbHVkZS9saW51eC9uZnNf
-ZnMuaCAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0NCiBpbmNsdWRlL2xpbnV4L25mc194ZHIu
-aCAgICAgICAgICAgICAgICAgICB8ICAyNyArLQ0KIG5ldC9zdW5ycGMvYXV0aF9nc3MvYXV0aF9n
-c3MuYyAgICAgICAgICAgIHwgICA3ICstDQogbmV0L3N1bnJwYy9jbG50LmMgICAgICAgICAgICAg
-ICAgICAgICAgICAgfCAgIDIgKw0KIG5ldC9zdW5ycGMvc3RhdHMuYyAgICAgICAgICAgICAgICAg
-ICAgICAgIHwgIDEwICstDQogbmV0L3N1bnJwYy94cHJ0LmMgICAgICAgICAgICAgICAgICAgICAg
-ICAgfCAgIDMgKy0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL2JhY2tjaGFubmVsLmMgICAgICAgICB8
-ICAgNCArLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvZnJ3cl9vcHMuYyAgICAgICAgICAgIHwgIDk0
-ICsrKystLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3JwY19yZG1hLmMgICAgICAgICAgICB8ICAz
-NiArLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jICAgICAgICAgICB8ICAzNCAr
-Ky0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3ZlcmJzLmMgICAgICAgICAgICAgICB8ICAzNyArLS0N
-CiBuZXQvc3VucnBjL3hwcnRyZG1hL3hwcnRfcmRtYS5oICAgICAgICAgICB8ICAzMSArKy0NCiA0
-MyBmaWxlcyBjaGFuZ2VkLCAxMjU4IGluc2VydGlvbnMoKyksIDcyNiBkZWxldGlvbnMoLSkNCg0K
-LS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgUHJpbWFy
-eURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg==
+Hi Linus,
+
+The following changes since commit e5517c2a5a49ed5e99047008629f1cd60246ea0e:
+
+  Linux 4.9-rc7 (2016-11-27 13:08:04 -0800)
+
+are available in the git repository at:
+
+  git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.10-1
+
+for you to fetch changes up to 2549f307b5997bf5dd91071428e8090d9faa8b1b:
+
+  Merge tag 'nfs-rdma-4.10-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma (2016-12-10 10:31:44 -0500)
+
+Cheers
+  Trond
+
+----------------------------------------------------------------
+NFS client updates for Linux 4.10
+
+Highlights include:
+
+Stable bugfixes:
+ - Fix a pnfs deadlock between read resends and layoutreturn
+ - Don't invalidate the layout stateid while a layout return is outstanding
+ - Don't schedule a layoutreturn if the layout stateid is marked as invalid
+ - On a pNFS error, do not send LAYOUTGET until the LAYOUTRETURN is complete
+ - SUNRPC: fix refcounting problems with auth_gss messages.
+
+Features:
+ - Add client support for the NFSv4 umask attribute.
+ - NFSv4: Correct support for flock() stateids.
+ - Add a LAYOUTRETURN operation to CLOSE and DELEGRETURN when return-on-close
+   is specified
+ - Allow the pNFS/flexfiles layoutstat information to piggyback on LAYOUTRETURN
+ - Optimise away redundant GETATTR calls when doing state recovery and/or
+   when not required by cache revalidation rules or close-to-open cache
+   consistency.
+ - Attribute cache improvements
+ - RPC/RDMA support for SG_GAP devices
+
+Bugfixes:
+ - NFS: Fix performance regressions in readdir
+ - pNFS/flexfiles: Fix a deadlock on LAYOUTGET
+ - NFSv4: Add missing nfs_put_lock_context()
+ - NFSv4.1: Fix regression in callback retry handling
+ - Fix false positive NFSv4.0 trunking detection.
+ - pNFS/flexfiles: Only send layoutstats updates for mirrors that were updated
+ - Various layout stateid related bugfixes
+ - RPC/RDMA bugfixes
+
+----------------------------------------------------------------
+Andreas Gruenbacher (1):
+      nfs: add support for the umask attribute
+
+Anna Schumaker (2):
+      NFS: Remove unused authflavour parameter from nfs_get_client()
+      NFS: Remove unused argument from nfs_direct_write_complete()
+
+Chuck Lever (12):
+      xprtrdma: Cap size of callback buffer resources
+      xprtrdma: Make FRWR send queue entry accounting more accurate
+      xprtrdma: Support for SG_GAP devices
+      SUNRPC: Proper metric accounting when RPC is not transmitted
+      xprtrdma: Address coverity complaint about wait_for_completion()
+      xprtrdma: Avoid calls to ro_unmap_safe()
+      xprtrdma: Refactor FRMR invalidation
+      xprtrdma: Update documenting comment
+      xprtrdma: Squelch "max send, max recv" messages at connect time
+      xprtrdma: Shorten QP access error message
+      xprtrdma: Update dprintk in rpcrdma_count_chunks
+      xprtrdma: Relocate connection helper functions
+
+Fred Isaman (2):
+      NFSv4.1: Fix regression in callback retry handling
+      pNFS/flexfiles: Fix a deadlock on LAYOUTGET
+
+J. Bruce Fields (1):
+      nfs: fix false positives in nfs40_walk_client_list()
+
+NeilBrown (9):
+      sunrpc: Don't engage exponential backoff when connection attempt is rejected.
+      NFS: remove l_pid field from nfs_lockowner
+      NFSv4: add flock_owner to open context
+      NFSv4: change nfs4_do_setattr to take an open_context instead of a nfs4_state.
+      NFSv4: change nfs4_select_rw_stateid to take a lock_context inplace of lock_owner
+      NFSv4: enhance nfs4_copy_lock_stateid to use a flock stateid if there is one
+      NFS: discard nfs_lockowner structure.
+      NFSv4: Add missing nfs_put_lock_context()
+      SUNRPC: fix refcounting problems with auth_gss messages.
+
+Trond Myklebust (55):
+      NFSv4: Don't check file access when reclaiming state
+      NFSv4: Don't ask for the change attribute when reclaiming state
+      NFSv4: Don't request a GETATTR on open_downgrade.
+      NFSv4: Don't request close-to-open attribute when holding a delegation
+      NFSv4: Optimise away forced revalidation when we know the attributes are OK
+      pNFS: Fix a deadlock between read resends and layoutreturn
+      pNFS: Don't clear the layout stateid if a layout return is outstanding
+      pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateid
+      pNFS: Force a retry of LAYOUTGET if the stateid doesn't match our cache
+      pNFS: On error, do not send LAYOUTGET until the LAYOUTRETURN has completed
+      pNFS: Fix race in pnfs_wait_on_layoutreturn
+      pNFS: consolidate the different range intersection tests
+      pNFS: Delay getting the layout header in CB_LAYOUTRECALL handlers
+      pNFS: Do not free layout segments that are marked for return
+      NFSv4: Ignore LAYOUTRETURN result if the layout doesn't match or is invalid
+      pNFS: Remove spurious wake up in pnfs_layout_remove_lseg()
+      pNFS: Skip checking for return-on-close if the layout is invalid
+      pNFS: Get rid of unnecessary layout parameter in encode_layoutreturn callback
+      pNFS: Don't mark layout segments invalid on layoutreturn in pnfs_roc
+      NFSv4: Fix missing operation accounting in NFS4_dec_delegreturn_sz
+      NFSv4: Add encode/decode of the layoutreturn op in CLOSE
+      NFSv4: Add encode/decode of the layoutreturn op in DELEGRETURN
+      pNFS: Clean up - add a helper to initialise struct layoutreturn_args
+      pNFS: Enable layoutreturn operation for return-on-close
+      pNFS: Prevent unnecessary layoutreturns after delegreturn
+      pNFS: Clear all layout segment state in pnfs_mark_layout_stateid_invalid
+      pNFS: Fix bugs in _pnfs_return_layout
+      pNFS: Sync the layout state bits in pnfs_cache_lseg_for_layoutreturn
+      pNFS: Don't mark the layout as freed if the last lseg is marked for return
+      pNFS: Wait on outstanding layoutreturns to complete in pnfs_roc()
+      pNFS: Skip invalid stateids when doing a bulk destroy
+      NFS: Fix a performance regression in readdir
+      NFS: Be more targeted about readdirplus use when doing lookup/revalidation
+      NFS: Allow getattr to also report readdirplus cache hits
+      pNFS/flexfiles: Don't attempt to send layoutstats if there are no entries
+      pNFS/flexfiles: Only send layoutstats updates for mirrors that were updated
+      NFSv4: Add a generic structure for managing layout-private information
+      pNFS: Allow layout drivers to manage private data in struct nfs4_layoutreturn
+      pNFS: Add a layoutreturn callback to performa layout-private setup
+      pNFS/flexfiles: Refactor encoding of the layoutreturn payload
+      pNFS/flexfiles: Clean up layoutstats
+      NFS: Fix up read of mirror stats
+      pNFS/flexfiles: Minor refactoring before adding iostats to layoutreturn
+      pNFS/flexfiles: Support sending layoutstats in layoutreturn
+      NFS: Fix incorrect mapping revalidation when holding a delegation
+      NFS: Fix incorrect size revalidation when holding a delegation
+      NFS: Only look at the change attribute cache state in nfs_check_verifier
+      NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE
+      NFSv4.1: Don't schedule lease recovery in nfs4_schedule_session_recovery()
+      pNFS: Release NFS_LAYOUT_RETURN when invalidating the layout stateid
+      pNFS/flexfiles: Fix ff_layout_add_ds_error_locked()
+      pNFS: Layoutreturn must free the layout after the layout-private data
+      pNFS/flexfiles: Remove a redundant parameter in ff_layout_encode_ioerr()
+      pNFS/flexfiles: Ensure we have enough buffer for layoutreturn
+      Merge tag 'nfs-rdma-4.10-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma
+
+Wei Yongjun (1):
+      NFS: fix typo in parameter description
+
+ fs/nfs/callback_proc.c                    |  99 +++++---
+ fs/nfs/client.c                           |   6 +-
+ fs/nfs/delegation.c                       |   4 -
+ fs/nfs/dir.c                              |  73 +++---
+ fs/nfs/direct.c                           |  12 +-
+ fs/nfs/file.c                             |   5 +-
+ fs/nfs/filelayout/filelayoutdev.c         |   3 +-
+ fs/nfs/flexfilelayout/flexfilelayout.c    | 313 +++++++++++++++--------
+ fs/nfs/flexfilelayout/flexfilelayout.h    |  23 +-
+ fs/nfs/flexfilelayout/flexfilelayoutdev.c | 151 +++++++----
+ fs/nfs/inode.c                            |  51 ++--
+ fs/nfs/internal.h                         |   9 +-
+ fs/nfs/nfs3client.c                       |   5 +-
+ fs/nfs/nfs42proc.c                        |   9 +-
+ fs/nfs/nfs42xdr.c                         |   5 +-
+ fs/nfs/nfs4_fs.h                          |   2 +-
+ fs/nfs/nfs4client.c                       |  32 ++-
+ fs/nfs/nfs4file.c                         |   2 +-
+ fs/nfs/nfs4proc.c                         | 233 +++++++++++------
+ fs/nfs/nfs4session.c                      |   2 +-
+ fs/nfs/nfs4state.c                        |  27 +-
+ fs/nfs/nfs4xdr.c                          |  96 +++++--
+ fs/nfs/objlayout/objlayout.c              |   4 +-
+ fs/nfs/objlayout/objlayout.h              |   1 -
+ fs/nfs/pagelist.c                         |   3 +-
+ fs/nfs/pnfs.c                             | 407 ++++++++++++++++++------------
+ fs/nfs/pnfs.h                             |  77 ++++--
+ fs/nfs/pnfs_nfs.c                         |  28 +-
+ fs/nfs/super.c                            |   2 +-
+ fs/nfs/write.c                            |   3 +-
+ include/linux/nfs4.h                      |   1 +
+ include/linux/nfs_fs.h                    |  11 +-
+ include/linux/nfs_xdr.h                   |  27 +-
+ net/sunrpc/auth_gss/auth_gss.c            |   7 +-
+ net/sunrpc/clnt.c                         |   2 +
+ net/sunrpc/stats.c                        |  10 +-
+ net/sunrpc/xprt.c                         |   3 +-
+ net/sunrpc/xprtrdma/backchannel.c         |   4 +-
+ net/sunrpc/xprtrdma/frwr_ops.c            |  94 ++++---
+ net/sunrpc/xprtrdma/rpc_rdma.c            |  36 +--
+ net/sunrpc/xprtrdma/transport.c           |  34 ++-
+ net/sunrpc/xprtrdma/verbs.c               |  37 +--
+ net/sunrpc/xprtrdma/xprt_rdma.h           |  31 ++-
+ 43 files changed, 1258 insertions(+), 726 deletions(-)
+
+-- 
+Trond Myklebust
+Linux NFS client maintainer, PrimaryData
+trond.myklebust@primarydata.com
diff --git a/a/content_digest b/N1/content_digest
index 402c076..eb1ad5c 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -6,186 +6,205 @@
  " linux-nfs@vger.kernel.org <linux-nfs@vger.kernel.org>\0"
  "\00:1\0"
  "b\0"
- "SGkgTGludXMsDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgZTU1MTdjMmE1\n"
- "YTQ5ZWQ1ZTk5MDQ3MDA4NjI5ZjFjZDYwMjQ2ZWEwZToNCg0KICBMaW51eCA0LjktcmM3ICgyMDE2\n"
- "LTExLTI3IDEzOjA4OjA0IC0wODAwKQ0KDQphcmUgYXZhaWxhYmxlIGluIHRoZSBnaXQgcmVwb3Np\n"
- "dG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQubGludXgtbmZzLm9yZy9wcm9qZWN0cy90cm9uZG15L2xp\n"
- "bnV4LW5mcy5naXQgdGFncy9uZnMtZm9yLTQuMTAtMQ0KDQpmb3IgeW91IHRvIGZldGNoIGNoYW5n\n"
- "ZXMgdXAgdG8gMjU0OWYzMDdiNTk5N2JmNWRkOTEwNzE0MjhlODA5MGQ5ZmFhOGIxYjoNCg0KICBN\n"
- "ZXJnZSB0YWcgJ25mcy1yZG1hLTQuMTAtMScgb2YgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJv\n"
- "amVjdHMvYW5uYS9uZnMtcmRtYSAoMjAxNi0xMi0xMCAxMDozMTo0NCAtMDUwMCkNCg0KQ2hlZXJz\n"
- "DQogIFRyb25kDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\n"
- "LS0tLS0tLS0tLS0tLS0tLS0tLS0NCk5GUyBjbGllbnQgdXBkYXRlcyBmb3IgTGludXggNC4xMA0K\n"
- "DQpIaWdobGlnaHRzIGluY2x1ZGU6DQoNClN0YWJsZSBidWdmaXhlczoNCiAtIEZpeCBhIHBuZnMg\n"
- "ZGVhZGxvY2sgYmV0d2VlbiByZWFkIHJlc2VuZHMgYW5kIGxheW91dHJldHVybg0KIC0gRG9uJ3Qg\n"
- "aW52YWxpZGF0ZSB0aGUgbGF5b3V0IHN0YXRlaWQgd2hpbGUgYSBsYXlvdXQgcmV0dXJuIGlzIG91\n"
- "dHN0YW5kaW5nDQogLSBEb24ndCBzY2hlZHVsZSBhIGxheW91dHJldHVybiBpZiB0aGUgbGF5b3V0\n"
- "IHN0YXRlaWQgaXMgbWFya2VkIGFzIGludmFsaWQNCiAtIE9uIGEgcE5GUyBlcnJvciwgZG8gbm90\n"
- "IHNlbmQgTEFZT1VUR0VUIHVudGlsIHRoZSBMQVlPVVRSRVRVUk4gaXMgY29tcGxldGUNCiAtIFNV\n"
- "TlJQQzogZml4IHJlZmNvdW50aW5nIHByb2JsZW1zIHdpdGggYXV0aF9nc3MgbWVzc2FnZXMuDQoN\n"
- "CkZlYXR1cmVzOg0KIC0gQWRkIGNsaWVudCBzdXBwb3J0IGZvciB0aGUgTkZTdjQgdW1hc2sgYXR0\n"
- "cmlidXRlLg0KIC0gTkZTdjQ6IENvcnJlY3Qgc3VwcG9ydCBmb3IgZmxvY2soKSBzdGF0ZWlkcy4N\n"
- "CiAtIEFkZCBhIExBWU9VVFJFVFVSTiBvcGVyYXRpb24gdG8gQ0xPU0UgYW5kIERFTEVHUkVUVVJO\n"
- "IHdoZW4gcmV0dXJuLW9uLWNsb3NlDQogICBpcyBzcGVjaWZpZWQNCiAtIEFsbG93IHRoZSBwTkZT\n"
- "L2ZsZXhmaWxlcyBsYXlvdXRzdGF0IGluZm9ybWF0aW9uIHRvIHBpZ2d5YmFjayBvbiBMQVlPVVRS\n"
- "RVRVUk4NCiAtIE9wdGltaXNlIGF3YXkgcmVkdW5kYW50IEdFVEFUVFIgY2FsbHMgd2hlbiBkb2lu\n"
- "ZyBzdGF0ZSByZWNvdmVyeSBhbmQvb3INCiAgIHdoZW4gbm90IHJlcXVpcmVkIGJ5IGNhY2hlIHJl\n"
- "dmFsaWRhdGlvbiBydWxlcyBvciBjbG9zZS10by1vcGVuIGNhY2hlDQogICBjb25zaXN0ZW5jeS4N\n"
- "CiAtIEF0dHJpYnV0ZSBjYWNoZSBpbXByb3ZlbWVudHMNCiAtIFJQQy9SRE1BIHN1cHBvcnQgZm9y\n"
- "IFNHX0dBUCBkZXZpY2VzDQoNCkJ1Z2ZpeGVzOg0KIC0gTkZTOiBGaXggcGVyZm9ybWFuY2UgcmVn\n"
- "cmVzc2lvbnMgaW4gcmVhZGRpcg0KIC0gcE5GUy9mbGV4ZmlsZXM6IEZpeCBhIGRlYWRsb2NrIG9u\n"
- "IExBWU9VVEdFVA0KIC0gTkZTdjQ6IEFkZCBtaXNzaW5nIG5mc19wdXRfbG9ja19jb250ZXh0KCkN\n"
- "CiAtIE5GU3Y0LjE6IEZpeCByZWdyZXNzaW9uIGluIGNhbGxiYWNrIHJldHJ5IGhhbmRsaW5nDQog\n"
- "LSBGaXggZmFsc2UgcG9zaXRpdmUgTkZTdjQuMCB0cnVua2luZyBkZXRlY3Rpb24uDQogLSBwTkZT\n"
- "L2ZsZXhmaWxlczogT25seSBzZW5kIGxheW91dHN0YXRzIHVwZGF0ZXMgZm9yIG1pcnJvcnMgdGhh\n"
- "dCB3ZXJlIHVwZGF0ZWQNCiAtIFZhcmlvdXMgbGF5b3V0IHN0YXRlaWQgcmVsYXRlZCBidWdmaXhl\n"
- "cw0KIC0gUlBDL1JETUEgYnVnZml4ZXMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\n"
- "LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQW5kcmVhcyBHcnVlbmJhY2hlciAo\n"
- "MSk6DQogICAgICBuZnM6IGFkZCBzdXBwb3J0IGZvciB0aGUgdW1hc2sgYXR0cmlidXRlDQoNCkFu\n"
- "bmEgU2NodW1ha2VyICgyKToNCiAgICAgIE5GUzogUmVtb3ZlIHVudXNlZCBhdXRoZmxhdm91ciBw\n"
- "YXJhbWV0ZXIgZnJvbSBuZnNfZ2V0X2NsaWVudCgpDQogICAgICBORlM6IFJlbW92ZSB1bnVzZWQg\n"
- "YXJndW1lbnQgZnJvbSBuZnNfZGlyZWN0X3dyaXRlX2NvbXBsZXRlKCkNCg0KQ2h1Y2sgTGV2ZXIg\n"
- "KDEyKToNCiAgICAgIHhwcnRyZG1hOiBDYXAgc2l6ZSBvZiBjYWxsYmFjayBidWZmZXIgcmVzb3Vy\n"
- "Y2VzDQogICAgICB4cHJ0cmRtYTogTWFrZSBGUldSIHNlbmQgcXVldWUgZW50cnkgYWNjb3VudGlu\n"
- "ZyBtb3JlIGFjY3VyYXRlDQogICAgICB4cHJ0cmRtYTogU3VwcG9ydCBmb3IgU0dfR0FQIGRldmlj\n"
- "ZXMNCiAgICAgIFNVTlJQQzogUHJvcGVyIG1ldHJpYyBhY2NvdW50aW5nIHdoZW4gUlBDIGlzIG5v\n"
- "dCB0cmFuc21pdHRlZA0KICAgICAgeHBydHJkbWE6IEFkZHJlc3MgY292ZXJpdHkgY29tcGxhaW50\n"
- "IGFib3V0IHdhaXRfZm9yX2NvbXBsZXRpb24oKQ0KICAgICAgeHBydHJkbWE6IEF2b2lkIGNhbGxz\n"
- "IHRvIHJvX3VubWFwX3NhZmUoKQ0KICAgICAgeHBydHJkbWE6IFJlZmFjdG9yIEZSTVIgaW52YWxp\n"
- "ZGF0aW9uDQogICAgICB4cHJ0cmRtYTogVXBkYXRlIGRvY3VtZW50aW5nIGNvbW1lbnQNCiAgICAg\n"
- "IHhwcnRyZG1hOiBTcXVlbGNoICJtYXggc2VuZCwgbWF4IHJlY3YiIG1lc3NhZ2VzIGF0IGNvbm5l\n"
- "Y3QgdGltZQ0KICAgICAgeHBydHJkbWE6IFNob3J0ZW4gUVAgYWNjZXNzIGVycm9yIG1lc3NhZ2UN\n"
- "CiAgICAgIHhwcnRyZG1hOiBVcGRhdGUgZHByaW50ayBpbiBycGNyZG1hX2NvdW50X2NodW5rcw0K\n"
- "ICAgICAgeHBydHJkbWE6IFJlbG9jYXRlIGNvbm5lY3Rpb24gaGVscGVyIGZ1bmN0aW9ucw0KDQpG\n"
- "cmVkIElzYW1hbiAoMik6DQogICAgICBORlN2NC4xOiBGaXggcmVncmVzc2lvbiBpbiBjYWxsYmFj\n"
- "ayByZXRyeSBoYW5kbGluZw0KICAgICAgcE5GUy9mbGV4ZmlsZXM6IEZpeCBhIGRlYWRsb2NrIG9u\n"
- "IExBWU9VVEdFVA0KDQpKLiBCcnVjZSBGaWVsZHMgKDEpOg0KICAgICAgbmZzOiBmaXggZmFsc2Ug\n"
- "cG9zaXRpdmVzIGluIG5mczQwX3dhbGtfY2xpZW50X2xpc3QoKQ0KDQpOZWlsQnJvd24gKDkpOg0K\n"
- "ICAgICAgc3VucnBjOiBEb24ndCBlbmdhZ2UgZXhwb25lbnRpYWwgYmFja29mZiB3aGVuIGNvbm5l\n"
- "Y3Rpb24gYXR0ZW1wdCBpcyByZWplY3RlZC4NCiAgICAgIE5GUzogcmVtb3ZlIGxfcGlkIGZpZWxk\n"
- "IGZyb20gbmZzX2xvY2tvd25lcg0KICAgICAgTkZTdjQ6IGFkZCBmbG9ja19vd25lciB0byBvcGVu\n"
- "IGNvbnRleHQNCiAgICAgIE5GU3Y0OiBjaGFuZ2UgbmZzNF9kb19zZXRhdHRyIHRvIHRha2UgYW4g\n"
- "b3Blbl9jb250ZXh0IGluc3RlYWQgb2YgYSBuZnM0X3N0YXRlLg0KICAgICAgTkZTdjQ6IGNoYW5n\n"
- "ZSBuZnM0X3NlbGVjdF9yd19zdGF0ZWlkIHRvIHRha2UgYSBsb2NrX2NvbnRleHQgaW5wbGFjZSBv\n"
- "ZiBsb2NrX293bmVyDQogICAgICBORlN2NDogZW5oYW5jZSBuZnM0X2NvcHlfbG9ja19zdGF0ZWlk\n"
- "IHRvIHVzZSBhIGZsb2NrIHN0YXRlaWQgaWYgdGhlcmUgaXMgb25lDQogICAgICBORlM6IGRpc2Nh\n"
- "cmQgbmZzX2xvY2tvd25lciBzdHJ1Y3R1cmUuDQogICAgICBORlN2NDogQWRkIG1pc3NpbmcgbmZz\n"
- "X3B1dF9sb2NrX2NvbnRleHQoKQ0KICAgICAgU1VOUlBDOiBmaXggcmVmY291bnRpbmcgcHJvYmxl\n"
- "bXMgd2l0aCBhdXRoX2dzcyBtZXNzYWdlcy4NCg0KVHJvbmQgTXlrbGVidXN0ICg1NSk6DQogICAg\n"
- "ICBORlN2NDogRG9uJ3QgY2hlY2sgZmlsZSBhY2Nlc3Mgd2hlbiByZWNsYWltaW5nIHN0YXRlDQog\n"
- "ICAgICBORlN2NDogRG9uJ3QgYXNrIGZvciB0aGUgY2hhbmdlIGF0dHJpYnV0ZSB3aGVuIHJlY2xh\n"
- "aW1pbmcgc3RhdGUNCiAgICAgIE5GU3Y0OiBEb24ndCByZXF1ZXN0IGEgR0VUQVRUUiBvbiBvcGVu\n"
- "X2Rvd25ncmFkZS4NCiAgICAgIE5GU3Y0OiBEb24ndCByZXF1ZXN0IGNsb3NlLXRvLW9wZW4gYXR0\n"
- "cmlidXRlIHdoZW4gaG9sZGluZyBhIGRlbGVnYXRpb24NCiAgICAgIE5GU3Y0OiBPcHRpbWlzZSBh\n"
- "d2F5IGZvcmNlZCByZXZhbGlkYXRpb24gd2hlbiB3ZSBrbm93IHRoZSBhdHRyaWJ1dGVzIGFyZSBP\n"
- "Sw0KICAgICAgcE5GUzogRml4IGEgZGVhZGxvY2sgYmV0d2VlbiByZWFkIHJlc2VuZHMgYW5kIGxh\n"
- "eW91dHJldHVybg0KICAgICAgcE5GUzogRG9uJ3QgY2xlYXIgdGhlIGxheW91dCBzdGF0ZWlkIGlm\n"
- "IGEgbGF5b3V0IHJldHVybiBpcyBvdXRzdGFuZGluZw0KICAgICAgcE5GUzogQ2xlYXIgTkZTX0xB\n"
- "WU9VVF9SRVRVUk5fUkVRVUVTVEVEIHdoZW4gaW52YWxpZGF0aW5nIHRoZSBsYXlvdXQgc3RhdGVp\n"
- "ZA0KICAgICAgcE5GUzogRm9yY2UgYSByZXRyeSBvZiBMQVlPVVRHRVQgaWYgdGhlIHN0YXRlaWQg\n"
- "ZG9lc24ndCBtYXRjaCBvdXIgY2FjaGUNCiAgICAgIHBORlM6IE9uIGVycm9yLCBkbyBub3Qgc2Vu\n"
- "ZCBMQVlPVVRHRVQgdW50aWwgdGhlIExBWU9VVFJFVFVSTiBoYXMgY29tcGxldGVkDQogICAgICBw\n"
- "TkZTOiBGaXggcmFjZSBpbiBwbmZzX3dhaXRfb25fbGF5b3V0cmV0dXJuDQogICAgICBwTkZTOiBj\n"
- "b25zb2xpZGF0ZSB0aGUgZGlmZmVyZW50IHJhbmdlIGludGVyc2VjdGlvbiB0ZXN0cw0KICAgICAg\n"
- "cE5GUzogRGVsYXkgZ2V0dGluZyB0aGUgbGF5b3V0IGhlYWRlciBpbiBDQl9MQVlPVVRSRUNBTEwg\n"
- "aGFuZGxlcnMNCiAgICAgIHBORlM6IERvIG5vdCBmcmVlIGxheW91dCBzZWdtZW50cyB0aGF0IGFy\n"
- "ZSBtYXJrZWQgZm9yIHJldHVybg0KICAgICAgTkZTdjQ6IElnbm9yZSBMQVlPVVRSRVRVUk4gcmVz\n"
- "dWx0IGlmIHRoZSBsYXlvdXQgZG9lc24ndCBtYXRjaCBvciBpcyBpbnZhbGlkDQogICAgICBwTkZT\n"
- "OiBSZW1vdmUgc3B1cmlvdXMgd2FrZSB1cCBpbiBwbmZzX2xheW91dF9yZW1vdmVfbHNlZygpDQog\n"
- "ICAgICBwTkZTOiBTa2lwIGNoZWNraW5nIGZvciByZXR1cm4tb24tY2xvc2UgaWYgdGhlIGxheW91\n"
- "dCBpcyBpbnZhbGlkDQogICAgICBwTkZTOiBHZXQgcmlkIG9mIHVubmVjZXNzYXJ5IGxheW91dCBw\n"
- "YXJhbWV0ZXIgaW4gZW5jb2RlX2xheW91dHJldHVybiBjYWxsYmFjaw0KICAgICAgcE5GUzogRG9u\n"
- "J3QgbWFyayBsYXlvdXQgc2VnbWVudHMgaW52YWxpZCBvbiBsYXlvdXRyZXR1cm4gaW4gcG5mc19y\n"
- "b2MNCiAgICAgIE5GU3Y0OiBGaXggbWlzc2luZyBvcGVyYXRpb24gYWNjb3VudGluZyBpbiBORlM0\n"
- "X2RlY19kZWxlZ3JldHVybl9zeg0KICAgICAgTkZTdjQ6IEFkZCBlbmNvZGUvZGVjb2RlIG9mIHRo\n"
- "ZSBsYXlvdXRyZXR1cm4gb3AgaW4gQ0xPU0UNCiAgICAgIE5GU3Y0OiBBZGQgZW5jb2RlL2RlY29k\n"
- "ZSBvZiB0aGUgbGF5b3V0cmV0dXJuIG9wIGluIERFTEVHUkVUVVJODQogICAgICBwTkZTOiBDbGVh\n"
- "biB1cCAtIGFkZCBhIGhlbHBlciB0byBpbml0aWFsaXNlIHN0cnVjdCBsYXlvdXRyZXR1cm5fYXJn\n"
- "cw0KICAgICAgcE5GUzogRW5hYmxlIGxheW91dHJldHVybiBvcGVyYXRpb24gZm9yIHJldHVybi1v\n"
- "bi1jbG9zZQ0KICAgICAgcE5GUzogUHJldmVudCB1bm5lY2Vzc2FyeSBsYXlvdXRyZXR1cm5zIGFm\n"
- "dGVyIGRlbGVncmV0dXJuDQogICAgICBwTkZTOiBDbGVhciBhbGwgbGF5b3V0IHNlZ21lbnQgc3Rh\n"
- "dGUgaW4gcG5mc19tYXJrX2xheW91dF9zdGF0ZWlkX2ludmFsaWQNCiAgICAgIHBORlM6IEZpeCBi\n"
- "dWdzIGluIF9wbmZzX3JldHVybl9sYXlvdXQNCiAgICAgIHBORlM6IFN5bmMgdGhlIGxheW91dCBz\n"
- "dGF0ZSBiaXRzIGluIHBuZnNfY2FjaGVfbHNlZ19mb3JfbGF5b3V0cmV0dXJuDQogICAgICBwTkZT\n"
- "OiBEb24ndCBtYXJrIHRoZSBsYXlvdXQgYXMgZnJlZWQgaWYgdGhlIGxhc3QgbHNlZyBpcyBtYXJr\n"
- "ZWQgZm9yIHJldHVybg0KICAgICAgcE5GUzogV2FpdCBvbiBvdXRzdGFuZGluZyBsYXlvdXRyZXR1\n"
- "cm5zIHRvIGNvbXBsZXRlIGluIHBuZnNfcm9jKCkNCiAgICAgIHBORlM6IFNraXAgaW52YWxpZCBz\n"
- "dGF0ZWlkcyB3aGVuIGRvaW5nIGEgYnVsayBkZXN0cm95DQogICAgICBORlM6IEZpeCBhIHBlcmZv\n"
- "cm1hbmNlIHJlZ3Jlc3Npb24gaW4gcmVhZGRpcg0KICAgICAgTkZTOiBCZSBtb3JlIHRhcmdldGVk\n"
- "IGFib3V0IHJlYWRkaXJwbHVzIHVzZSB3aGVuIGRvaW5nIGxvb2t1cC9yZXZhbGlkYXRpb24NCiAg\n"
- "ICAgIE5GUzogQWxsb3cgZ2V0YXR0ciB0byBhbHNvIHJlcG9ydCByZWFkZGlycGx1cyBjYWNoZSBo\n"
- "aXRzDQogICAgICBwTkZTL2ZsZXhmaWxlczogRG9uJ3QgYXR0ZW1wdCB0byBzZW5kIGxheW91dHN0\n"
- "YXRzIGlmIHRoZXJlIGFyZSBubyBlbnRyaWVzDQogICAgICBwTkZTL2ZsZXhmaWxlczogT25seSBz\n"
- "ZW5kIGxheW91dHN0YXRzIHVwZGF0ZXMgZm9yIG1pcnJvcnMgdGhhdCB3ZXJlIHVwZGF0ZWQNCiAg\n"
- "ICAgIE5GU3Y0OiBBZGQgYSBnZW5lcmljIHN0cnVjdHVyZSBmb3IgbWFuYWdpbmcgbGF5b3V0LXBy\n"
- "aXZhdGUgaW5mb3JtYXRpb24NCiAgICAgIHBORlM6IEFsbG93IGxheW91dCBkcml2ZXJzIHRvIG1h\n"
- "bmFnZSBwcml2YXRlIGRhdGEgaW4gc3RydWN0IG5mczRfbGF5b3V0cmV0dXJuDQogICAgICBwTkZT\n"
- "OiBBZGQgYSBsYXlvdXRyZXR1cm4gY2FsbGJhY2sgdG8gcGVyZm9ybWEgbGF5b3V0LXByaXZhdGUg\n"
- "c2V0dXANCiAgICAgIHBORlMvZmxleGZpbGVzOiBSZWZhY3RvciBlbmNvZGluZyBvZiB0aGUgbGF5\n"
- "b3V0cmV0dXJuIHBheWxvYWQNCiAgICAgIHBORlMvZmxleGZpbGVzOiBDbGVhbiB1cCBsYXlvdXRz\n"
- "dGF0cw0KICAgICAgTkZTOiBGaXggdXAgcmVhZCBvZiBtaXJyb3Igc3RhdHMNCiAgICAgIHBORlMv\n"
- "ZmxleGZpbGVzOiBNaW5vciByZWZhY3RvcmluZyBiZWZvcmUgYWRkaW5nIGlvc3RhdHMgdG8gbGF5\n"
- "b3V0cmV0dXJuDQogICAgICBwTkZTL2ZsZXhmaWxlczogU3VwcG9ydCBzZW5kaW5nIGxheW91dHN0\n"
- "YXRzIGluIGxheW91dHJldHVybg0KICAgICAgTkZTOiBGaXggaW5jb3JyZWN0IG1hcHBpbmcgcmV2\n"
- "YWxpZGF0aW9uIHdoZW4gaG9sZGluZyBhIGRlbGVnYXRpb24NCiAgICAgIE5GUzogRml4IGluY29y\n"
- "cmVjdCBzaXplIHJldmFsaWRhdGlvbiB3aGVuIGhvbGRpbmcgYSBkZWxlZ2F0aW9uDQogICAgICBO\n"
- "RlM6IE9ubHkgbG9vayBhdCB0aGUgY2hhbmdlIGF0dHJpYnV0ZSBjYWNoZSBzdGF0ZSBpbiBuZnNf\n"
- "Y2hlY2tfdmVyaWZpZXINCiAgICAgIE5GU3Y0LjE6IEhhbmRsZSBORlM0RVJSX0JBRFNFU1NJT04v\n"
- "TkZTNEVSUl9ERUFEU0VTU0lPTiByZXBsaWVzIHRvIE9QX1NFUVVFTkNFDQogICAgICBORlN2NC4x\n"
- "OiBEb24ndCBzY2hlZHVsZSBsZWFzZSByZWNvdmVyeSBpbiBuZnM0X3NjaGVkdWxlX3Nlc3Npb25f\n"
- "cmVjb3ZlcnkoKQ0KICAgICAgcE5GUzogUmVsZWFzZSBORlNfTEFZT1VUX1JFVFVSTiB3aGVuIGlu\n"
- "dmFsaWRhdGluZyB0aGUgbGF5b3V0IHN0YXRlaWQNCiAgICAgIHBORlMvZmxleGZpbGVzOiBGaXgg\n"
- "ZmZfbGF5b3V0X2FkZF9kc19lcnJvcl9sb2NrZWQoKQ0KICAgICAgcE5GUzogTGF5b3V0cmV0dXJu\n"
- "IG11c3QgZnJlZSB0aGUgbGF5b3V0IGFmdGVyIHRoZSBsYXlvdXQtcHJpdmF0ZSBkYXRhDQogICAg\n"
- "ICBwTkZTL2ZsZXhmaWxlczogUmVtb3ZlIGEgcmVkdW5kYW50IHBhcmFtZXRlciBpbiBmZl9sYXlv\n"
- "dXRfZW5jb2RlX2lvZXJyKCkNCiAgICAgIHBORlMvZmxleGZpbGVzOiBFbnN1cmUgd2UgaGF2ZSBl\n"
- "bm91Z2ggYnVmZmVyIGZvciBsYXlvdXRyZXR1cm4NCiAgICAgIE1lcmdlIHRhZyAnbmZzLXJkbWEt\n"
- "NC4xMC0xJyBvZiBnaXQ6Ly9naXQubGludXgtbmZzLm9yZy9wcm9qZWN0cy9hbm5hL25mcy1yZG1h\n"
- "DQoNCldlaSBZb25nanVuICgxKToNCiAgICAgIE5GUzogZml4IHR5cG8gaW4gcGFyYW1ldGVyIGRl\n"
- "c2NyaXB0aW9uDQoNCiBmcy9uZnMvY2FsbGJhY2tfcHJvYy5jICAgICAgICAgICAgICAgICAgICB8\n"
- "ICA5OSArKysrKy0tLQ0KIGZzL25mcy9jbGllbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAg\n"
- "IHwgICA2ICstDQogZnMvbmZzL2RlbGVnYXRpb24uYyAgICAgICAgICAgICAgICAgICAgICAgfCAg\n"
- "IDQgLQ0KIGZzL25mcy9kaXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDczICsr\n"
- "Ky0tLQ0KIGZzL25mcy9kaXJlY3QuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICst\n"
- "DQogZnMvbmZzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0NCiBm\n"
- "cy9uZnMvZmlsZWxheW91dC9maWxlbGF5b3V0ZGV2LmMgICAgICAgICB8ICAgMyArLQ0KIGZzL25m\n"
- "cy9mbGV4ZmlsZWxheW91dC9mbGV4ZmlsZWxheW91dC5jICAgIHwgMzEzICsrKysrKysrKysrKysr\n"
- "Ky0tLS0tLS0tDQogZnMvbmZzL2ZsZXhmaWxlbGF5b3V0L2ZsZXhmaWxlbGF5b3V0LmggICAgfCAg\n"
- "MjMgKy0NCiBmcy9uZnMvZmxleGZpbGVsYXlvdXQvZmxleGZpbGVsYXlvdXRkZXYuYyB8IDE1MSAr\n"
- "KysrKysrLS0tLQ0KIGZzL25mcy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg\n"
- "IDUxICsrLS0NCiBmcy9uZnMvaW50ZXJuYWwuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg\n"
- "OSArLQ0KIGZzL25mcy9uZnMzY2xpZW50LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICst\n"
- "DQogZnMvbmZzL25mczQycHJvYy5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKy0NCiBm\n"
- "cy9uZnMvbmZzNDJ4ZHIuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQ0KIGZzL25m\n"
- "cy9uZnM0X2ZzLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstDQogZnMvbmZzL25m\n"
- "czRjbGllbnQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMzIgKystDQogZnMvbmZzL25mczRm\n"
- "aWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9uZnMvbmZzNHByb2Mu\n"
- "YyAgICAgICAgICAgICAgICAgICAgICAgICB8IDIzMyArKysrKysrKysrKy0tLS0tLQ0KIGZzL25m\n"
- "cy9uZnM0c2Vzc2lvbi5jICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstDQogZnMvbmZzL25m\n"
- "czRzdGF0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjcgKy0NCiBmcy9uZnMvbmZzNHhk\n"
- "ci5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKy0tDQogZnMvbmZzL29iamxh\n"
- "eW91dC9vYmpsYXlvdXQuYyAgICAgICAgICAgICAgfCAgIDQgKy0NCiBmcy9uZnMvb2JqbGF5b3V0\n"
- "L29iamxheW91dC5oICAgICAgICAgICAgICB8ICAgMSAtDQogZnMvbmZzL3BhZ2VsaXN0LmMgICAg\n"
- "ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0NCiBmcy9uZnMvcG5mcy5jICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgICAgICB8IDQwNyArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0NCiBm\n"
- "cy9uZnMvcG5mcy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3NyArKysrLS0NCiBm\n"
- "cy9uZnMvcG5mc19uZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOCArLQ0KIGZzL25m\n"
- "cy9zdXBlci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstDQogZnMvbmZzL3dy\n"
- "aXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0NCiBpbmNsdWRlL2xpbnV4\n"
- "L25mczQuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQogaW5jbHVkZS9saW51eC9uZnNf\n"
- "ZnMuaCAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0NCiBpbmNsdWRlL2xpbnV4L25mc194ZHIu\n"
- "aCAgICAgICAgICAgICAgICAgICB8ICAyNyArLQ0KIG5ldC9zdW5ycGMvYXV0aF9nc3MvYXV0aF9n\n"
- "c3MuYyAgICAgICAgICAgIHwgICA3ICstDQogbmV0L3N1bnJwYy9jbG50LmMgICAgICAgICAgICAg\n"
- "ICAgICAgICAgICAgfCAgIDIgKw0KIG5ldC9zdW5ycGMvc3RhdHMuYyAgICAgICAgICAgICAgICAg\n"
- "ICAgICAgIHwgIDEwICstDQogbmV0L3N1bnJwYy94cHJ0LmMgICAgICAgICAgICAgICAgICAgICAg\n"
- "ICAgfCAgIDMgKy0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL2JhY2tjaGFubmVsLmMgICAgICAgICB8\n"
- "ICAgNCArLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvZnJ3cl9vcHMuYyAgICAgICAgICAgIHwgIDk0\n"
- "ICsrKystLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3JwY19yZG1hLmMgICAgICAgICAgICB8ICAz\n"
- "NiArLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jICAgICAgICAgICB8ICAzNCAr\n"
- "Ky0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3ZlcmJzLmMgICAgICAgICAgICAgICB8ICAzNyArLS0N\n"
- "CiBuZXQvc3VucnBjL3hwcnRyZG1hL3hwcnRfcmRtYS5oICAgICAgICAgICB8ICAzMSArKy0NCiA0\n"
- "MyBmaWxlcyBjaGFuZ2VkLCAxMjU4IGluc2VydGlvbnMoKyksIDcyNiBkZWxldGlvbnMoLSkNCg0K\n"
- "LS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgUHJpbWFy\n"
- eURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg==
+ "Hi Linus,\n"
+ "\n"
+ "The following changes since commit e5517c2a5a49ed5e99047008629f1cd60246ea0e:\n"
+ "\n"
+ "  Linux 4.9-rc7 (2016-11-27 13:08:04 -0800)\n"
+ "\n"
+ "are available in the git repository at:\n"
+ "\n"
+ "  git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.10-1\n"
+ "\n"
+ "for you to fetch changes up to 2549f307b5997bf5dd91071428e8090d9faa8b1b:\n"
+ "\n"
+ "  Merge tag 'nfs-rdma-4.10-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma (2016-12-10 10:31:44 -0500)\n"
+ "\n"
+ "Cheers\n"
+ "  Trond\n"
+ "\n"
+ "----------------------------------------------------------------\n"
+ "NFS client updates for Linux 4.10\n"
+ "\n"
+ "Highlights include:\n"
+ "\n"
+ "Stable bugfixes:\n"
+ " - Fix a pnfs deadlock between read resends and layoutreturn\n"
+ " - Don't invalidate the layout stateid while a layout return is outstanding\n"
+ " - Don't schedule a layoutreturn if the layout stateid is marked as invalid\n"
+ " - On a pNFS error, do not send LAYOUTGET until the LAYOUTRETURN is complete\n"
+ " - SUNRPC: fix refcounting problems with auth_gss messages.\n"
+ "\n"
+ "Features:\n"
+ " - Add client support for the NFSv4 umask attribute.\n"
+ " - NFSv4: Correct support for flock() stateids.\n"
+ " - Add a LAYOUTRETURN operation to CLOSE and DELEGRETURN when return-on-close\n"
+ "   is specified\n"
+ " - Allow the pNFS/flexfiles layoutstat information to piggyback on LAYOUTRETURN\n"
+ " - Optimise away redundant GETATTR calls when doing state recovery and/or\n"
+ "   when not required by cache revalidation rules or close-to-open cache\n"
+ "   consistency.\n"
+ " - Attribute cache improvements\n"
+ " - RPC/RDMA support for SG_GAP devices\n"
+ "\n"
+ "Bugfixes:\n"
+ " - NFS: Fix performance regressions in readdir\n"
+ " - pNFS/flexfiles: Fix a deadlock on LAYOUTGET\n"
+ " - NFSv4: Add missing nfs_put_lock_context()\n"
+ " - NFSv4.1: Fix regression in callback retry handling\n"
+ " - Fix false positive NFSv4.0 trunking detection.\n"
+ " - pNFS/flexfiles: Only send layoutstats updates for mirrors that were updated\n"
+ " - Various layout stateid related bugfixes\n"
+ " - RPC/RDMA bugfixes\n"
+ "\n"
+ "----------------------------------------------------------------\n"
+ "Andreas Gruenbacher (1):\n"
+ "      nfs: add support for the umask attribute\n"
+ "\n"
+ "Anna Schumaker (2):\n"
+ "      NFS: Remove unused authflavour parameter from nfs_get_client()\n"
+ "      NFS: Remove unused argument from nfs_direct_write_complete()\n"
+ "\n"
+ "Chuck Lever (12):\n"
+ "      xprtrdma: Cap size of callback buffer resources\n"
+ "      xprtrdma: Make FRWR send queue entry accounting more accurate\n"
+ "      xprtrdma: Support for SG_GAP devices\n"
+ "      SUNRPC: Proper metric accounting when RPC is not transmitted\n"
+ "      xprtrdma: Address coverity complaint about wait_for_completion()\n"
+ "      xprtrdma: Avoid calls to ro_unmap_safe()\n"
+ "      xprtrdma: Refactor FRMR invalidation\n"
+ "      xprtrdma: Update documenting comment\n"
+ "      xprtrdma: Squelch \"max send, max recv\" messages at connect time\n"
+ "      xprtrdma: Shorten QP access error message\n"
+ "      xprtrdma: Update dprintk in rpcrdma_count_chunks\n"
+ "      xprtrdma: Relocate connection helper functions\n"
+ "\n"
+ "Fred Isaman (2):\n"
+ "      NFSv4.1: Fix regression in callback retry handling\n"
+ "      pNFS/flexfiles: Fix a deadlock on LAYOUTGET\n"
+ "\n"
+ "J. Bruce Fields (1):\n"
+ "      nfs: fix false positives in nfs40_walk_client_list()\n"
+ "\n"
+ "NeilBrown (9):\n"
+ "      sunrpc: Don't engage exponential backoff when connection attempt is rejected.\n"
+ "      NFS: remove l_pid field from nfs_lockowner\n"
+ "      NFSv4: add flock_owner to open context\n"
+ "      NFSv4: change nfs4_do_setattr to take an open_context instead of a nfs4_state.\n"
+ "      NFSv4: change nfs4_select_rw_stateid to take a lock_context inplace of lock_owner\n"
+ "      NFSv4: enhance nfs4_copy_lock_stateid to use a flock stateid if there is one\n"
+ "      NFS: discard nfs_lockowner structure.\n"
+ "      NFSv4: Add missing nfs_put_lock_context()\n"
+ "      SUNRPC: fix refcounting problems with auth_gss messages.\n"
+ "\n"
+ "Trond Myklebust (55):\n"
+ "      NFSv4: Don't check file access when reclaiming state\n"
+ "      NFSv4: Don't ask for the change attribute when reclaiming state\n"
+ "      NFSv4: Don't request a GETATTR on open_downgrade.\n"
+ "      NFSv4: Don't request close-to-open attribute when holding a delegation\n"
+ "      NFSv4: Optimise away forced revalidation when we know the attributes are OK\n"
+ "      pNFS: Fix a deadlock between read resends and layoutreturn\n"
+ "      pNFS: Don't clear the layout stateid if a layout return is outstanding\n"
+ "      pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateid\n"
+ "      pNFS: Force a retry of LAYOUTGET if the stateid doesn't match our cache\n"
+ "      pNFS: On error, do not send LAYOUTGET until the LAYOUTRETURN has completed\n"
+ "      pNFS: Fix race in pnfs_wait_on_layoutreturn\n"
+ "      pNFS: consolidate the different range intersection tests\n"
+ "      pNFS: Delay getting the layout header in CB_LAYOUTRECALL handlers\n"
+ "      pNFS: Do not free layout segments that are marked for return\n"
+ "      NFSv4: Ignore LAYOUTRETURN result if the layout doesn't match or is invalid\n"
+ "      pNFS: Remove spurious wake up in pnfs_layout_remove_lseg()\n"
+ "      pNFS: Skip checking for return-on-close if the layout is invalid\n"
+ "      pNFS: Get rid of unnecessary layout parameter in encode_layoutreturn callback\n"
+ "      pNFS: Don't mark layout segments invalid on layoutreturn in pnfs_roc\n"
+ "      NFSv4: Fix missing operation accounting in NFS4_dec_delegreturn_sz\n"
+ "      NFSv4: Add encode/decode of the layoutreturn op in CLOSE\n"
+ "      NFSv4: Add encode/decode of the layoutreturn op in DELEGRETURN\n"
+ "      pNFS: Clean up - add a helper to initialise struct layoutreturn_args\n"
+ "      pNFS: Enable layoutreturn operation for return-on-close\n"
+ "      pNFS: Prevent unnecessary layoutreturns after delegreturn\n"
+ "      pNFS: Clear all layout segment state in pnfs_mark_layout_stateid_invalid\n"
+ "      pNFS: Fix bugs in _pnfs_return_layout\n"
+ "      pNFS: Sync the layout state bits in pnfs_cache_lseg_for_layoutreturn\n"
+ "      pNFS: Don't mark the layout as freed if the last lseg is marked for return\n"
+ "      pNFS: Wait on outstanding layoutreturns to complete in pnfs_roc()\n"
+ "      pNFS: Skip invalid stateids when doing a bulk destroy\n"
+ "      NFS: Fix a performance regression in readdir\n"
+ "      NFS: Be more targeted about readdirplus use when doing lookup/revalidation\n"
+ "      NFS: Allow getattr to also report readdirplus cache hits\n"
+ "      pNFS/flexfiles: Don't attempt to send layoutstats if there are no entries\n"
+ "      pNFS/flexfiles: Only send layoutstats updates for mirrors that were updated\n"
+ "      NFSv4: Add a generic structure for managing layout-private information\n"
+ "      pNFS: Allow layout drivers to manage private data in struct nfs4_layoutreturn\n"
+ "      pNFS: Add a layoutreturn callback to performa layout-private setup\n"
+ "      pNFS/flexfiles: Refactor encoding of the layoutreturn payload\n"
+ "      pNFS/flexfiles: Clean up layoutstats\n"
+ "      NFS: Fix up read of mirror stats\n"
+ "      pNFS/flexfiles: Minor refactoring before adding iostats to layoutreturn\n"
+ "      pNFS/flexfiles: Support sending layoutstats in layoutreturn\n"
+ "      NFS: Fix incorrect mapping revalidation when holding a delegation\n"
+ "      NFS: Fix incorrect size revalidation when holding a delegation\n"
+ "      NFS: Only look at the change attribute cache state in nfs_check_verifier\n"
+ "      NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE\n"
+ "      NFSv4.1: Don't schedule lease recovery in nfs4_schedule_session_recovery()\n"
+ "      pNFS: Release NFS_LAYOUT_RETURN when invalidating the layout stateid\n"
+ "      pNFS/flexfiles: Fix ff_layout_add_ds_error_locked()\n"
+ "      pNFS: Layoutreturn must free the layout after the layout-private data\n"
+ "      pNFS/flexfiles: Remove a redundant parameter in ff_layout_encode_ioerr()\n"
+ "      pNFS/flexfiles: Ensure we have enough buffer for layoutreturn\n"
+ "      Merge tag 'nfs-rdma-4.10-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma\n"
+ "\n"
+ "Wei Yongjun (1):\n"
+ "      NFS: fix typo in parameter description\n"
+ "\n"
+ " fs/nfs/callback_proc.c                    |  99 +++++---\n"
+ " fs/nfs/client.c                           |   6 +-\n"
+ " fs/nfs/delegation.c                       |   4 -\n"
+ " fs/nfs/dir.c                              |  73 +++---\n"
+ " fs/nfs/direct.c                           |  12 +-\n"
+ " fs/nfs/file.c                             |   5 +-\n"
+ " fs/nfs/filelayout/filelayoutdev.c         |   3 +-\n"
+ " fs/nfs/flexfilelayout/flexfilelayout.c    | 313 +++++++++++++++--------\n"
+ " fs/nfs/flexfilelayout/flexfilelayout.h    |  23 +-\n"
+ " fs/nfs/flexfilelayout/flexfilelayoutdev.c | 151 +++++++----\n"
+ " fs/nfs/inode.c                            |  51 ++--\n"
+ " fs/nfs/internal.h                         |   9 +-\n"
+ " fs/nfs/nfs3client.c                       |   5 +-\n"
+ " fs/nfs/nfs42proc.c                        |   9 +-\n"
+ " fs/nfs/nfs42xdr.c                         |   5 +-\n"
+ " fs/nfs/nfs4_fs.h                          |   2 +-\n"
+ " fs/nfs/nfs4client.c                       |  32 ++-\n"
+ " fs/nfs/nfs4file.c                         |   2 +-\n"
+ " fs/nfs/nfs4proc.c                         | 233 +++++++++++------\n"
+ " fs/nfs/nfs4session.c                      |   2 +-\n"
+ " fs/nfs/nfs4state.c                        |  27 +-\n"
+ " fs/nfs/nfs4xdr.c                          |  96 +++++--\n"
+ " fs/nfs/objlayout/objlayout.c              |   4 +-\n"
+ " fs/nfs/objlayout/objlayout.h              |   1 -\n"
+ " fs/nfs/pagelist.c                         |   3 +-\n"
+ " fs/nfs/pnfs.c                             | 407 ++++++++++++++++++------------\n"
+ " fs/nfs/pnfs.h                             |  77 ++++--\n"
+ " fs/nfs/pnfs_nfs.c                         |  28 +-\n"
+ " fs/nfs/super.c                            |   2 +-\n"
+ " fs/nfs/write.c                            |   3 +-\n"
+ " include/linux/nfs4.h                      |   1 +\n"
+ " include/linux/nfs_fs.h                    |  11 +-\n"
+ " include/linux/nfs_xdr.h                   |  27 +-\n"
+ " net/sunrpc/auth_gss/auth_gss.c            |   7 +-\n"
+ " net/sunrpc/clnt.c                         |   2 +\n"
+ " net/sunrpc/stats.c                        |  10 +-\n"
+ " net/sunrpc/xprt.c                         |   3 +-\n"
+ " net/sunrpc/xprtrdma/backchannel.c         |   4 +-\n"
+ " net/sunrpc/xprtrdma/frwr_ops.c            |  94 ++++---\n"
+ " net/sunrpc/xprtrdma/rpc_rdma.c            |  36 +--\n"
+ " net/sunrpc/xprtrdma/transport.c           |  34 ++-\n"
+ " net/sunrpc/xprtrdma/verbs.c               |  37 +--\n"
+ " net/sunrpc/xprtrdma/xprt_rdma.h           |  31 ++-\n"
+ " 43 files changed, 1258 insertions(+), 726 deletions(-)\n"
+ "\n"
+ "-- \n"
+ "Trond Myklebust\n"
+ "Linux NFS client maintainer, PrimaryData\n"
+ trond.myklebust@primarydata.com
 
-fe957cc41eb71d684947b83730004f8b68ae63b152cfd6b8afddbeee2f3a1504
+2d1e4605a8018554a0a7fb770de2f0350709b7d95928ba3a3add7a2716be7c7c

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.