Return-Path: linux-nfs-owner@vger.kernel.org Received: from mx12.netapp.com ([216.240.18.77]:23392 "EHLO mx12.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759999Ab3HNP5H (ORCPT ); Wed, 14 Aug 2013 11:57:07 -0400 From: "Myklebust, Trond" To: "J. Bruce Fields" CC: "linux-nfs@vger.kernel.org" Subject: Re: [PATCH 01/10] NFSv4: Add tracepoints for debugging state management problems Date: Wed, 14 Aug 2013 15:57:06 +0000 Message-ID: <1376495823.29258.15.camel@leira.trondhjem.org> References: <1376418952-12481-1-git-send-email-Trond.Myklebust@netapp.com> <20130814153139.GJ17781@fieldses.org> In-Reply-To: <20130814153139.GJ17781@fieldses.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: T24gV2VkLCAyMDEzLTA4LTE0IGF0IDExOjMxIC0wNDAwLCBKLiBCcnVjZSBGaWVsZHMgd3JvdGU6 DQo+IE9uIFR1ZSwgQXVnIDEzLCAyMDEzIGF0IDAyOjM1OjQzUE0gLTA0MDAsIFRyb25kIE15a2xl YnVzdCB3cm90ZToNCj4gPiBTZXQgdXAgYmFzaWMgdHJhY2Vwb2ludHMgZm9yIGRlYnVnZ2luZyBj bGllbnQgaWQgY3JlYXRpb24vZGVzdHJ1Y3Rpb24NCj4gPiBhbmQgc2Vzc2lvbiBjcmVhdGlvbi9k ZXN0cnVjdGlvbi4NCj4gDQo+IExvb2tzIGdvb2QgdG8gbWUuIER1bWIgcXVlc3Rpb25zLCBqdXN0 IG91dCBvZiBjdXJpb3NpdHk6DQo+IA0KPiAJLSBTb21lIG9mIHRoZXNlIGFyZSBmb2xsb3dlZCBi eSBkcHJpbnRrJ3Mgd2l0aCBzaW1pbGFyDQo+IAkgIGluZm9ybWF0aW9uLiAgSXMgaXQgd29ydGgg a2VlcGluZyB0aG9zZSwgb3IgY291bGQgdGhleSBiZQ0KPiAJICBwaGFzZWQgb3V0IGF0IHNvbWUg cG9pbnQ/DQoNCkknZCBsaWtlIHRvIHBoYXNlIG91dCB0aGUgZHByaW50a3Mgb3ZlciB0aW1lLg0K DQo+IAktIFNvbWUgb2YgdGhlbSBhcmUgcGFpcmVkIHdpdGggYW4gcnBjX2NhbGxfc3luYy4gIFdo YXQgZG8gdGhlc2UNCj4gCSAgZ2V0IHlvdSB0aGF0IHdvdWxkbid0IGdldCBvdXQgb2Ygd2lyZXNo YXJrIHdpdGggYSBzdWl0YWJsZQ0KPiAJICBmaWx0ZXI/DQoNClRoZSB0cmFjZXBvaW50cyBnaXZl IHlvdSB0aGUgYWJpbGl0eSB0byBkbyBtb3JlIHNvcGhpc3RpY2F0ZWQgZHluYW1pYw0KdHJhY2lu ZyB1c2luZyBzeXN0ZW10YXAgb3IgbHR0bmcuDQoNClRoZSByaW5nYnVmZmVyIHVzZWQgYnkgZnRy YWNlIG1lYW5zIHRoYXQgdGhlIG92ZXJoZWFkIGlzIHJlbGF0aXZlbHkNCnNtYWxsOiB5b3UncmUg bm90IHNwYW1taW5nIHRoZSBzeXNsb2cgYWxsIHRoZSB0aW1lLiBGdXJ0aGVybW9yZSwgZnRyYWNl DQpkb2VzIHN1cHBvcnQgc29tZSBzaW1wbGUgZmlsdGVycy4gSSdtIHRoZXJlZm9yZSB0aGlua2lu ZyB0aGF0IHNvbWUNCnN5c2FkbWlucyBtaWdodCB3YW50IHRvIGNvbnNpZGVyIGVuYWJsaW5nIHNv bWUgb2YgdGhlc2UgdHJhY2Vwb2ludHMNCnBlcm1hbmVudGx5IG9uIHRoZWlyIHN5c3RlbXMgaW4g b3JkZXIgdG8gYmUgYWJsZSB0byBwb3N0LW1vcnRlbSBzdGF0ZQ0KcmVjb3ZlcnkgaXNzdWVzIGZv bGxvd2luZyBuZXR3b3JraW5nIG91dGFnZXMgYW5kL29yIHNlcnZlciByZWJvb3RzLg0KDQpDaGVl cnMNCiAgVHJvbmQNCg0KPiAtLWIuDQo+IA0KPiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IFRyb25k IE15a2xlYnVzdCA8VHJvbmQuTXlrbGVidXN0QG5ldGFwcC5jb20+DQo+ID4gLS0tDQo+ID4gIGZz L25mcy9NYWtlZmlsZSAgICB8ICAgMyArLQ0KPiA+ICBmcy9uZnMvbmZzNHByb2MuYyAgfCAgIDkg KysrDQo+ID4gIGZzL25mcy9uZnM0dHJhY2UuYyB8ICAxMCArKysNCj4gPiAgZnMvbmZzL25mczR0 cmFjZS5oIHwgMjA1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMjI2IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGZzL25mcy9uZnM0dHJhY2UuYw0KPiA+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZnMvbmZzL25mczR0cmFjZS5oDQo+ID4gDQo+ID4gZGlmZiAt LWdpdCBhL2ZzL25mcy9NYWtlZmlsZSBiL2ZzL25mcy9NYWtlZmlsZQ0KPiA+IGluZGV4IGUwYmIw NDguLjcxYmE0YzIgMTAwNjQ0DQo+ID4gLS0tIGEvZnMvbmZzL01ha2VmaWxlDQo+ID4gKysrIGIv ZnMvbmZzL01ha2VmaWxlDQo+ID4gQEAgLTIxLDcgKzIxLDggQEAgbmZzdjMtJChDT05GSUdfTkZT X1YzX0FDTCkgKz0gbmZzM2FjbC5vDQo+ID4gIG9iai0kKENPTkZJR19ORlNfVjQpICs9IG5mc3Y0 Lm8NCj4gPiAgbmZzdjQteSA6PSBuZnM0cHJvYy5vIG5mczR4ZHIubyBuZnM0c3RhdGUubyBuZnM0 cmVuZXdkLm8gbmZzNHN1cGVyLm8gbmZzNGZpbGUubyBcDQo+ID4gIAkgIGRlbGVnYXRpb24ubyBp ZG1hcC5vIGNhbGxiYWNrLm8gY2FsbGJhY2tfeGRyLm8gY2FsbGJhY2tfcHJvYy5vIFwNCj4gPiAt CSAgbmZzNG5hbWVzcGFjZS5vIG5mczRnZXRyb290Lm8gbmZzNGNsaWVudC5vIGRuc19yZXNvbHZl Lm8NCj4gPiArCSAgbmZzNG5hbWVzcGFjZS5vIG5mczRnZXRyb290Lm8gbmZzNGNsaWVudC5vIGRu c19yZXNvbHZlLm8gXA0KPiA+ICsJICBuZnM0dHJhY2UuYw0KPiA+ICBuZnN2NC0kKENPTkZJR19O RlNfVVNFX0xFR0FDWV9ETlMpICs9IGNhY2hlX2xpYi5vDQo+ID4gIG5mc3Y0LSQoQ09ORklHX1NZ U0NUTCkJKz0gbmZzNHN5c2N0bC5vDQo+ID4gIG5mc3Y0LSQoQ09ORklHX05GU19WNF8xKQkrPSBu ZnM0c2Vzc2lvbi5vIHBuZnMubyBwbmZzX2Rldi5vDQo+ID4gZGlmZiAtLWdpdCBhL2ZzL25mcy9u ZnM0cHJvYy5jIGIvZnMvbmZzL25mczRwcm9jLmMNCj4gPiBpbmRleCBhMTg3ZjRkLi4zYTU1ZjI0 IDEwMDY0NA0KPiA+IC0tLSBhL2ZzL25mcy9uZnM0cHJvYy5jDQo+ID4gKysrIGIvZnMvbmZzL25m czRwcm9jLmMNCj4gPiBAQCAtNjYsNiArNjYsOCBAQA0KPiA+ICAjaW5jbHVkZSAibmZzNHNlc3Np b24uaCINCj4gPiAgI2luY2x1ZGUgImZzY2FjaGUuaCINCj4gPiAgDQo+ID4gKyNpbmNsdWRlICJu ZnM0dHJhY2UuaCINCj4gPiArDQo+ID4gICNkZWZpbmUgTkZTREJHX0ZBQ0lMSVRZCQlORlNEQkdf UFJPQw0KPiA+ICANCj4gPiAgI2RlZmluZSBORlM0X1BPTExfUkVUUllfTUlOCShIWi8xMCkNCj4g PiBAQCAtNDczMCw2ICs0NzMyLDcgQEAgaW50IG5mczRfcHJvY19zZXRjbGllbnRpZChzdHJ1Y3Qg bmZzX2NsaWVudCAqY2xwLCB1MzIgcHJvZ3JhbSwNCj4gPiAgCQljbHAtPmNsX3JwY2NsaWVudC0+ Y2xfYXV0aC0+YXVfb3BzLT5hdV9uYW1lLA0KPiA+ICAJCXNldGNsaWVudGlkLnNjX25hbWVfbGVu LCBzZXRjbGllbnRpZC5zY19uYW1lKTsNCj4gPiAgCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoY2xw LT5jbF9ycGNjbGllbnQsICZtc2csIFJQQ19UQVNLX1RJTUVPVVQpOw0KPiA+ICsJdHJhY2VfbmZz NF9zZXRjbGllbnRpZChjbHAsIHN0YXR1cyk7DQo+ID4gIAlkcHJpbnRrKCJORlMgcmVwbHkgc2V0 Y2xpZW50aWQ6ICVkXG4iLCBzdGF0dXMpOw0KPiA+ICAJcmV0dXJuIHN0YXR1czsNCj4gPiAgfQ0K PiA+IEBAIC00NzU3LDYgKzQ3NjAsNyBAQCBpbnQgbmZzNF9wcm9jX3NldGNsaWVudGlkX2NvbmZp cm0oc3RydWN0IG5mc19jbGllbnQgKmNscCwNCj4gPiAgCQljbHAtPmNsX3JwY2NsaWVudC0+Y2xf YXV0aC0+YXVfb3BzLT5hdV9uYW1lLA0KPiA+ICAJCWNscC0+Y2xfY2xpZW50aWQpOw0KPiA+ICAJ c3RhdHVzID0gcnBjX2NhbGxfc3luYyhjbHAtPmNsX3JwY2NsaWVudCwgJm1zZywgUlBDX1RBU0tf VElNRU9VVCk7DQo+ID4gKwl0cmFjZV9uZnM0X3NldGNsaWVudGlkX2NvbmZpcm0oY2xwLCBzdGF0 dXMpOw0KPiA+ICAJZHByaW50aygiTkZTIHJlcGx5IHNldGNsaWVudGlkX2NvbmZpcm06ICVkXG4i LCBzdGF0dXMpOw0KPiA+ICAJcmV0dXJuIHN0YXR1czsNCj4gPiAgfQ0KPiA+IEBAIC01ODg3LDYg KzU4OTEsNyBAQCBpbnQgbmZzNF9wcm9jX2JpbmRfY29ubl90b19zZXNzaW9uKHN0cnVjdCBuZnNf Y2xpZW50ICpjbHAsIHN0cnVjdCBycGNfY3JlZCAqY3JlZA0KPiA+ICAJfQ0KPiA+ICANCj4gPiAg CXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoY2xwLT5jbF9ycGNjbGllbnQsICZtc2csIFJQQ19UQVNL X1RJTUVPVVQpOw0KPiA+ICsJdHJhY2VfbmZzNF9iaW5kX2Nvbm5fdG9fc2Vzc2lvbihjbHAsIHN0 YXR1cyk7DQo+ID4gIAlpZiAoc3RhdHVzID09IDApIHsNCj4gPiAgCQlpZiAobWVtY21wKHJlcy5z ZXNzaW9uLT5zZXNzX2lkLmRhdGEsDQo+ID4gIAkJICAgIGNscC0+Y2xfc2Vzc2lvbi0+c2Vzc19p ZC5kYXRhLCBORlM0X01BWF9TRVNTSU9OSURfTEVOKSkgew0KPiA+IEBAIC01OTcyLDYgKzU5Nzcs NyBAQCBpbnQgbmZzNF9wcm9jX2V4Y2hhbmdlX2lkKHN0cnVjdCBuZnNfY2xpZW50ICpjbHAsIHN0 cnVjdCBycGNfY3JlZCAqY3JlZCkNCj4gPiAgCX0NCj4gPiAgDQo+ID4gIAlzdGF0dXMgPSBycGNf Y2FsbF9zeW5jKGNscC0+Y2xfcnBjY2xpZW50LCAmbXNnLCBSUENfVEFTS19USU1FT1VUKTsNCj4g PiArCXRyYWNlX25mczRfZXhjaGFuZ2VfaWQoY2xwLCBzdGF0dXMpOw0KPiA+ICAJaWYgKHN0YXR1 cyA9PSAwKQ0KPiA+ICAJCXN0YXR1cyA9IG5mczRfY2hlY2tfY2xfZXhjaGFuZ2VfZmxhZ3MocmVz LmZsYWdzKTsNCj4gPiAgDQo+ID4gQEAgLTYwMzIsNiArNjAzOCw3IEBAIHN0YXRpYyBpbnQgX25m czRfcHJvY19kZXN0cm95X2NsaWVudGlkKHN0cnVjdCBuZnNfY2xpZW50ICpjbHAsDQo+ID4gIAlp bnQgc3RhdHVzOw0KPiA+ICANCj4gPiAgCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoY2xwLT5jbF9y cGNjbGllbnQsICZtc2csIFJQQ19UQVNLX1RJTUVPVVQpOw0KPiA+ICsJdHJhY2VfbmZzNF9kZXN0 cm95X2NsaWVudGlkKGNscCwgc3RhdHVzKTsNCj4gPiAgCWlmIChzdGF0dXMpDQo+ID4gIAkJZHBy aW50aygiTkZTOiBHb3QgZXJyb3IgJWQgZnJvbSB0aGUgc2VydmVyICVzIG9uICINCj4gPiAgCQkJ IkRFU1RST1lfQ0xJRU5USUQuIiwgc3RhdHVzLCBjbHAtPmNsX2hvc3RuYW1lKTsNCj4gPiBAQCAt NjI5NSw2ICs2MzAyLDcgQEAgc3RhdGljIGludCBfbmZzNF9wcm9jX2NyZWF0ZV9zZXNzaW9uKHN0 cnVjdCBuZnNfY2xpZW50ICpjbHAsDQo+ID4gIAlhcmdzLmZsYWdzID0gKFNFU1NJT040X1BFUlNJ U1QgfCBTRVNTSU9ONF9CQUNLX0NIQU4pOw0KPiA+ICANCj4gPiAgCXN0YXR1cyA9IHJwY19jYWxs X3N5bmMoc2Vzc2lvbi0+Y2xwLT5jbF9ycGNjbGllbnQsICZtc2csIFJQQ19UQVNLX1RJTUVPVVQp Ow0KPiA+ICsJdHJhY2VfbmZzNF9jcmVhdGVfc2Vzc2lvbihjbHAsIHN0YXR1cyk7DQo+ID4gIA0K PiA+ICAJaWYgKCFzdGF0dXMpIHsNCj4gPiAgCQkvKiBWZXJpZnkgdGhlIHNlc3Npb24ncyBuZWdv dGlhdGVkIGNoYW5uZWxfYXR0cnMgdmFsdWVzICovDQo+ID4gQEAgLTYzNTgsNiArNjM2Niw3IEBA IGludCBuZnM0X3Byb2NfZGVzdHJveV9zZXNzaW9uKHN0cnVjdCBuZnM0X3Nlc3Npb24gKnNlc3Np b24sDQo+ID4gIAkJcmV0dXJuIHN0YXR1czsNCj4gPiAgDQo+ID4gIAlzdGF0dXMgPSBycGNfY2Fs bF9zeW5jKHNlc3Npb24tPmNscC0+Y2xfcnBjY2xpZW50LCAmbXNnLCBSUENfVEFTS19USU1FT1VU KTsNCj4gPiArCXRyYWNlX25mczRfZGVzdHJveV9zZXNzaW9uKHNlc3Npb24tPmNscCwgc3RhdHVz KTsNCj4gPiAgDQo+ID4gIAlpZiAoc3RhdHVzKQ0KPiA+ICAJCWRwcmludGsoIk5GUzogR290IGVy cm9yICVkIGZyb20gdGhlIHNlcnZlciBvbiBERVNUUk9ZX1NFU1NJT04uICINCj4gPiBkaWZmIC0t Z2l0IGEvZnMvbmZzL25mczR0cmFjZS5jIGIvZnMvbmZzL25mczR0cmFjZS5jDQo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi4zZjAyMTgzDQo+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ICsrKyBiL2ZzL25mcy9uZnM0dHJhY2UuYw0KPiA+IEBAIC0wLDAgKzEsMTAgQEAN Cj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDEzIFRyb25kIE15a2xlYnVzdCA8VHJv bmQuTXlrbGVidXN0QG5ldGFwcC5jb20+DQo+ID4gKyAqLw0KPiA+ICsjaW5jbHVkZSA8bGludXgv bmZzX2ZzLmg+DQo+ID4gKyNpbmNsdWRlICJuZnM0X2ZzLmgiDQo+ID4gKyNpbmNsdWRlICJpbnRl cm5hbC5oIg0KPiA+ICsNCj4gPiArI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTDQo+ID4gKyNp bmNsdWRlICJuZnM0dHJhY2UuaCINCj4gPiArDQo+ID4gZGlmZiAtLWdpdCBhL2ZzL25mcy9uZnM0 dHJhY2UuaCBiL2ZzL25mcy9uZnM0dHJhY2UuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ ID4gaW5kZXggMDAwMDAwMC4uNDUxOTU0Zg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9m cy9uZnMvbmZzNHRyYWNlLmgNCj4gPiBAQCAtMCwwICsxLDIwNSBAQA0KPiA+ICsjdW5kZWYgVFJB Q0VfU1lTVEVNDQo+ID4gKyNkZWZpbmUgVFJBQ0VfU1lTVEVNIG5mczQNCj4gPiArDQo+ID4gKyNp ZiAhZGVmaW5lZChfVFJBQ0VfTkZTNF9IKSB8fCBkZWZpbmVkKFRSQUNFX0hFQURFUl9NVUxUSV9S RUFEKQ0KPiA+ICsjZGVmaW5lIF9UUkFDRV9ORlM0X0gNCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxs aW51eC90cmFjZXBvaW50Lmg+DQo+ID4gKw0KPiA+ICsjZGVmaW5lIHNob3dfbmZzdjRfZXJyb3Jz KGVycm9yKSBfX3ByaW50X3N5bWJvbGljKGVycm9yLAkJXA0KPiA+ICsJCXsgTkZTNF9PSywJCQki T0siIH0sCQkJXA0KPiA+ICsJCS8qIE1hcHBlZCBieSBuZnM0X3N0YXRfdG9fZXJybm8oKSAqLwkJ CVwNCj4gPiArCQl7IC1FUEVSTSwJCQkiRVBFUk0iIH0sCQlcDQo+ID4gKwkJeyAtRU5PRU5ULAkJ CSJFTk9FTlQiIH0sCQlcDQo+ID4gKwkJeyAtRUlPLAkJCQkiRUlPIiB9LAkJXA0KPiA+ICsJCXsg LUVOWElPLAkJCSJFTlhJTyIgfSwJCVwNCj4gPiArCQl7IC1FQUNDRVMsCQkJIkVBQ0NFUyIgfSwJ CVwNCj4gPiArCQl7IC1FRVhJU1QsCQkJIkVFWElTVCIgfSwJCVwNCj4gPiArCQl7IC1FWERFViwJ CQkiRVhERVYiIH0sCQlcDQo+ID4gKwkJeyAtRU5PVERJUiwJCQkiRU5PVERJUiIgfSwJCVwNCj4g PiArCQl7IC1FSVNESVIsCQkJIkVJU0RJUiIgfSwJCVwNCj4gPiArCQl7IC1FRkJJRywJCQkiRUZC SUciIH0sCQlcDQo+ID4gKwkJeyAtRU5PU1BDLAkJCSJFTk9TUEMiIH0sCQlcDQo+ID4gKwkJeyAt RVJPRlMsCQkJIkVST0ZTIiB9LAkJXA0KPiA+ICsJCXsgLUVNTElOSywJCQkiRU1MSU5LIiB9LAkJ XA0KPiA+ICsJCXsgLUVOQU1FVE9PTE9ORywJCSJFTkFNRVRPT0xPTkciIH0sCVwNCj4gPiArCQl7 IC1FTk9URU1QVFksCQkJIkVOT1RFTVBUWSIgfSwJCVwNCj4gPiArCQl7IC1FRFFVT1QsCQkJIkVE UVVPVCIgfSwJCVwNCj4gPiArCQl7IC1FU1RBTEUsCQkJIkVTVEFMRSIgfSwJCVwNCj4gPiArCQl7 IC1FQkFESEFORExFLAkJCSJFQkFESEFORExFIiB9LAkJXA0KPiA+ICsJCXsgLUVCQURDT09LSUUs CQkJIkVCQURDT09LSUUiIH0sCQlcDQo+ID4gKwkJeyAtRU5PVFNVUFAsCQkJIkVOT1RTVVBQIiB9 LAkJXA0KPiA+ICsJCXsgLUVUT09TTUFMTCwJCQkiRVRPT1NNQUxMIiB9LAkJXA0KPiA+ICsJCXsg LUVSRU1PVEVJTywJCQkiRVJFTU9URUlPIiB9LAkJXA0KPiA+ICsJCXsgLUVCQURUWVBFLAkJCSJF QkFEVFlQRSIgfSwJCVwNCj4gPiArCQl7IC1FQUdBSU4sCQkJIkVBR0FJTiIgfSwJCVwNCj4gPiAr CQl7IC1FTE9PUCwJCQkiRUxPT1AiIH0sCQlcDQo+ID4gKwkJeyAtRU9QTk9UU1VQUCwJCQkiRU9Q Tk9UU1VQUCIgfSwJCVwNCj4gPiArCQl7IC1FREVBRExLLAkJCSJFREVBRExLIiB9LAkJXA0KPiA+ ICsJCS8qIFJQQyBlcnJvcnMgKi8JCQkJCVwNCj4gPiArCQl7IC1FTk9NRU0sCQkJIkVOT01FTSIg fSwJCVwNCj4gPiArCQl7IC1FS0VZRVhQSVJFRCwJCQkiRUtFWUVYUElSRUQiIH0sCVwNCj4gPiAr CQl7IC1FVElNRURPVVQsCQkJIkVUSU1FRE9VVCIgfSwJCVwNCj4gPiArCQl7IC1FUkVTVEFSVFNZ UywJCQkiRVJFU1RBUlRTWVMiIH0sCVwNCj4gPiArCQl7IC1FQ09OTlJFRlVTRUQsCQkiRUNPTk5S RUZVU0VEIiB9LAlcDQo+ID4gKwkJeyAtRUNPTk5SRVNFVCwJCQkiRUNPTk5SRVNFVCIgfSwJCVwN Cj4gPiArCQl7IC1FTkVUVU5SRUFDSCwJCQkiRU5FVFVOUkVBQ0giIH0sCVwNCj4gPiArCQl7IC1F SE9TVFVOUkVBQ0gsCQkiRUhPU1RVTlJFQUNIIiB9LAlcDQo+ID4gKwkJeyAtRUhPU1RET1dOLAkJ CSJFSE9TVERPV04iIH0sCQlcDQo+ID4gKwkJeyAtRVBJUEUsCQkJIkVQSVBFIiB9LAkJXA0KPiA+ ICsJCXsgLUVQRk5PU1VQUE9SVCwJCSJFUEZOT1NVUFBPUlQiIH0sCVwNCj4gPiArCQl7IC1FUFJP VE9OT1NVUFBPUlQsCQkiRVBST1RPTk9TVVBQT1JUIiB9LAlcDQo+ID4gKwkJLyogTkZTdjQgbmF0 aXZlIGVycm9ycyAqLwkJCQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9BQ0NFU1MsCQkiQUNDRVNTIiB9 LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfQVRUUk5PVFNVUFAsCQkiQVRUUk5PVFNVUFAiIH0sCVwN Cj4gPiArCQl7IC1ORlM0RVJSX0FETUlOX1JFVk9LRUQsCSJBRE1JTl9SRVZPS0VEIiB9LAlcDQo+ ID4gKwkJeyAtTkZTNEVSUl9CQUNLX0NIQU5fQlVTWSwJIkJBQ0tfQ0hBTl9CVVNZIiB9LAlcDQo+ ID4gKwkJeyAtTkZTNEVSUl9CQURDSEFSLAkJIkJBRENIQVIiIH0sCQlcDQo+ID4gKwkJeyAtTkZT NEVSUl9CQURIQU5ETEUsCQkiQkFESEFORExFIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfQkFE SU9NT0RFLAkJIkJBRElPTU9ERSIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX0JBRExBWU9VVCwJ CSJCQURMQVlPVVQiIH0sCQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9CQUROQU1FLAkJIkJBRE5BTUUi IH0sCQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9CQURPV05FUiwJCSJCQURPV05FUiIgfSwJCVwNCj4g PiArCQl7IC1ORlM0RVJSX0JBRFNFU1NJT04sCQkiQkFEU0VTU0lPTiIgfSwJCVwNCj4gPiArCQl7 IC1ORlM0RVJSX0JBRFNMT1QsCQkiQkFEU0xPVCIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX0JB RFRZUEUsCQkiQkFEVFlQRSIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX0JBRFhEUiwJCSJCQURY RFIiIH0sCQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9CQURfQ09PS0lFLAkJIkJBRF9DT09LSUUiIH0s CQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9CQURfSElHSF9TTE9ULAkiQkFEX0hJR0hfU0xPVCIgfSwJ XA0KPiA+ICsJCXsgLU5GUzRFUlJfQkFEX1JBTkdFLAkJIkJBRF9SQU5HRSIgfSwJCVwNCj4gPiAr CQl7IC1ORlM0RVJSX0JBRF9TRVFJRCwJCSJCQURfU0VRSUQiIH0sCQlcDQo+ID4gKwkJeyAtTkZT NEVSUl9CQURfU0VTU0lPTl9ESUdFU1QsCSJCQURfU0VTU0lPTl9ESUdFU1QiIH0sCVwNCj4gPiAr CQl7IC1ORlM0RVJSX0JBRF9TVEFURUlELAkJIkJBRF9TVEFURUlEIiB9LAlcDQo+ID4gKwkJeyAt TkZTNEVSUl9DQl9QQVRIX0RPV04sCSJDQl9QQVRIX0RPV04iIH0sCVwNCj4gPiArCQl7IC1ORlM0 RVJSX0NMSURfSU5VU0UsCQkiQ0xJRF9JTlVTRSIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX0NM SUVOVElEX0JVU1ksCSJDTElFTlRJRF9CVVNZIiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9DT01Q TEVURV9BTFJFQURZLAkiQ09NUExFVEVfQUxSRUFEWSIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJf Q09OTl9OT1RfQk9VTkRfVE9fU0VTU0lPTiwJCQlcDQo+ID4gKwkJCQkJCSJDT05OX05PVF9CT1VO RF9UT19TRVNTSU9OIiB9LCBcDQo+ID4gKwkJeyAtTkZTNEVSUl9ERUFETE9DSywJCSJERUFETE9D SyIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX0RFQURTRVNTSU9OLAkJIkRFQURfU0VTU0lPTiIg fSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfREVMQVksCQkiREVMQVkiIH0sCQlcDQo+ID4gKwkJeyAt TkZTNEVSUl9ERUxFR19BTFJFQURZX1dBTlRFRCwJCQlcDQo+ID4gKwkJCQkJCSJERUxFR19BTFJF QURZX1dBTlRFRCIgfSwgXA0KPiA+ICsJCXsgLU5GUzRFUlJfREVMRUdfUkVWT0tFRCwJIkRFTEVH X1JFVk9LRUQiIH0sCVwNCj4gPiArCQl7IC1ORlM0RVJSX0RFTklFRCwJCSJERU5JRUQiIH0sCQlc DQo+ID4gKwkJeyAtTkZTNEVSUl9ESVJERUxFR19VTkFWQUlMLAkiRElSREVMRUdfVU5BVkFJTCIg fSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfRFFVT1QsCQkiRFFVT1QiIH0sCQlcDQo+ID4gKwkJeyAt TkZTNEVSUl9FTkNSX0FMR19VTlNVUFAsCSJFTkNSX0FMR19VTlNVUFAiIH0sCVwNCj4gPiArCQl7 IC1ORlM0RVJSX0VYSVNULAkJIkVYSVNUIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfRVhQSVJF RCwJCSJFWFBJUkVEIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfRkJJRywJCSJGQklHIiB9LAkJ XA0KPiA+ICsJCXsgLU5GUzRFUlJfRkhFWFBJUkVELAkJIkZIRVhQSVJFRCIgfSwJCVwNCj4gPiAr CQl7IC1ORlM0RVJSX0ZJTEVfT1BFTiwJCSJGSUxFX09QRU4iIH0sCQlcDQo+ID4gKwkJeyAtTkZT NEVSUl9HUkFDRSwJCSJHUkFDRSIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX0hBU0hfQUxHX1VO U1VQUCwJIkhBU0hfQUxHX1VOU1VQUCIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfSU5WQUwsCQki SU5WQUwiIH0sCQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9JTywJCQkiSU8iIH0sCQkJXA0KPiA+ICsJ CXsgLU5GUzRFUlJfSVNESVIsCQkiSVNESVIiIH0sCQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9MQVlP VVRUUllMQVRFUiwJIkxBWU9VVFRSWUxBVEVSIiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9MQVlP VVRVTkFWQUlMQUJMRSwJIkxBWU9VVFVOQVZBSUxBQkxFIiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVS Ul9MRUFTRV9NT1ZFRCwJCSJMRUFTRV9NT1ZFRCIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfTE9D S0VELAkJIkxPQ0tFRCIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX0xPQ0tTX0hFTEQsCQkiTE9D S1NfSEVMRCIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX0xPQ0tfUkFOR0UsCQkiTE9DS19SQU5H RSIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX01JTk9SX1ZFUlNfTUlTTUFUQ0gsCSJNSU5PUl9W RVJTX01JU01BVENIIiB9LCBcDQo+ID4gKwkJeyAtTkZTNEVSUl9NTElOSywJCSJNTElOSyIgfSwJ CVwNCj4gPiArCQl7IC1ORlM0RVJSX01PVkVELAkJIk1PVkVEIiB9LAkJXA0KPiA+ICsJCXsgLU5G UzRFUlJfTkFNRVRPT0xPTkcsCQkiTkFNRVRPT0xPTkciIH0sCVwNCj4gPiArCQl7IC1ORlM0RVJS X05PRU5ULAkJIk5PRU5UIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfTk9GSUxFSEFORExFLAki Tk9GSUxFSEFORExFIiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9OT01BVENISU5HX0xBWU9VVCwJ Ik5PTUFUQ0hJTkdfTEFZT1VUIiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9OT1NQQywJCSJOT1NQ QyIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX05PVERJUiwJCSJOT1RESVIiIH0sCQlcDQo+ID4g KwkJeyAtTkZTNEVSUl9OT1RFTVBUWSwJCSJOT1RFTVBUWSIgfSwJCVwNCj4gPiArCQl7IC1ORlM0 RVJSX05PVFNVUFAsCQkiTk9UU1VQUCIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX05PVF9PTkxZ X09QLAkJIk5PVF9PTkxZX09QIiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9OT1RfU0FNRSwJCSJO T1RfU0FNRSIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX05PX0dSQUNFLAkJIk5PX0dSQUNFIiB9 LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfTlhJTywJCSJOWElPIiB9LAkJXA0KPiA+ICsJCXsgLU5G UzRFUlJfT0xEX1NUQVRFSUQsCQkiT0xEX1NUQVRFSUQiIH0sCVwNCj4gPiArCQl7IC1ORlM0RVJS X09QRU5NT0RFLAkJIk9QRU5NT0RFIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfT1BfSUxMRUdB TCwJCSJPUF9JTExFR0FMIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfT1BfTk9UX0lOX1NFU1NJ T04sCSJPUF9OT1RfSU5fU0VTU0lPTiIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfUEVSTSwJCSJQ RVJNIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfUE5GU19JT19IT0xFLAkiUE5GU19JT19IT0xF IiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9QTkZTX05PX0xBWU9VVCwJIlBORlNfTk9fTEFZT1VU IiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9SRUNBTExDT05GTElDVCwJIlJFQ0FMTENPTkZMSUNU IiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9SRUNMQUlNX0JBRCwJCSJSRUNMQUlNX0JBRCIgfSwJ XA0KPiA+ICsJCXsgLU5GUzRFUlJfUkVDTEFJTV9DT05GTElDVCwJIlJFQ0xBSU1fQ09ORkxJQ1Qi IH0sCVwNCj4gPiArCQl7IC1ORlM0RVJSX1JFSkVDVF9ERUxFRywJIlJFSkVDVF9ERUxFRyIgfSwJ XA0KPiA+ICsJCXsgLU5GUzRFUlJfUkVQX1RPT19CSUcsCQkiUkVQX1RPT19CSUciIH0sCVwNCj4g PiArCQl7IC1ORlM0RVJSX1JFUF9UT09fQklHX1RPX0NBQ0hFLAkJCVwNCj4gPiArCQkJCQkJIlJF UF9UT09fQklHX1RPX0NBQ0hFIiB9LCBcDQo+ID4gKwkJeyAtTkZTNEVSUl9SRVFfVE9PX0JJRywJ CSJSRVFfVE9PX0JJRyIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfUkVTVE9SRUZILAkJIlJFU1RP UkVGSCIgfSwJCVwNCj4gPiArCQl7IC1ORlM0RVJSX1JFVFJZX1VOQ0FDSEVEX1JFUCwJIlJFVFJZ X1VOQ0FDSEVEX1JFUCIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfUkVUVVJOQ09ORkxJQ1QsCSJS RVRVUk5DT05GTElDVCIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfUk9GUywJCSJST0ZTIiB9LAkJ XA0KPiA+ICsJCXsgLU5GUzRFUlJfU0FNRSwJCSJTQU1FIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRF UlJfU0hBUkVfREVOSUVELAkiU0hBUkVfREVOSUVEIiB9LAlcDQo+ID4gKwkJeyAtTkZTNEVSUl9T RVFVRU5DRV9QT1MsCSJTRVFVRU5DRV9QT1MiIH0sCVwNCj4gPiArCQl7IC1ORlM0RVJSX1NFUV9G QUxTRV9SRVRSWSwJIlNFUV9GQUxTRV9SRVRSWSIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfU0VR X01JU09SREVSRUQsCSJTRVFfTUlTT1JERVJFRCIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfU0VS VkVSRkFVTFQsCQkiU0VSVkVSRkFVTFQiIH0sCVwNCj4gPiArCQl7IC1ORlM0RVJSX1NUQUxFLAkJ IlNUQUxFIiB9LAkJXA0KPiA+ICsJCXsgLU5GUzRFUlJfU1RBTEVfQ0xJRU5USUQsCSJTVEFMRV9D TElFTlRJRCIgfSwJXA0KPiA+ICsJCXsgLU5GUzRFUlJfU1RBTEVfU1RBVEVJRCwJIlNUQUxFX1NU QVRFSUQiIH0sCVwNCj4gPiArCQl7IC1ORlM0RVJSX1NZTUxJTkssCQkiU1lNTElOSyIgfSwJCVwN Cj4gPiArCQl7IC1ORlM0RVJSX1RPT1NNQUxMLAkJIlRPT1NNQUxMIiB9LAkJXA0KPiA+ICsJCXsg LU5GUzRFUlJfVE9PX01BTllfT1BTLAkiVE9PX01BTllfT1BTIiB9LAlcDQo+ID4gKwkJeyAtTkZT NEVSUl9VTktOT1dOX0xBWU9VVFRZUEUsCSJVTktOT1dOX0xBWU9VVFRZUEUiIH0sCVwNCj4gPiAr CQl7IC1ORlM0RVJSX1VOU0FGRV9DT01QT1VORCwJIlVOU0FGRV9DT01QT1VORCIgfSwJXA0KPiA+ ICsJCXsgLU5GUzRFUlJfV1JPTkdTRUMsCQkiV1JPTkdTRUMiIH0sCQlcDQo+ID4gKwkJeyAtTkZT NEVSUl9XUk9OR19DUkVELAkJIldST05HX0NSRUQiIH0sCQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9X Uk9OR19UWVBFLAkJIldST05HX1RZUEUiIH0sCQlcDQo+ID4gKwkJeyAtTkZTNEVSUl9YREVWLAkJ IlhERVYiIH0pDQo+ID4gKw0KPiA+ICtERUNMQVJFX0VWRU5UX0NMQVNTKG5mczRfY2xpZW50aWRf ZXZlbnQsDQo+ID4gKwkJVFBfUFJPVE8oY29uc3Qgc3RydWN0IG5mc19jbGllbnQgKmNscCwNCj4g PiArCQkJaW50IGVycm9yKSwNCj4gPiArDQo+ID4gKwkJVFBfQVJHUyhjbHAsIGVycm9yKSwNCj4g PiArDQo+ID4gKwkJVFBfU1RSVUNUX19lbnRyeSgNCj4gPiArCQkJX19zdHJpbmcoZHN0YWRkciwN Cj4gPiArCQkJCXJwY19wZWVyYWRkcjJzdHIoY2xwLT5jbF9ycGNjbGllbnQsDQo+ID4gKwkJCQkJ UlBDX0RJU1BMQVlfQUREUikpDQo+ID4gKwkJCV9fZmllbGQoaW50LCBlcnJvcikNCj4gPiArCQkp LA0KPiA+ICsNCj4gPiArCQlUUF9mYXN0X2Fzc2lnbigNCj4gPiArCQkJX19lbnRyeS0+ZXJyb3Ig PSBlcnJvcjsNCj4gPiArCQkJX19hc3NpZ25fc3RyKGRzdGFkZHIsDQo+ID4gKwkJCQlycGNfcGVl cmFkZHIyc3RyKGNscC0+Y2xfcnBjY2xpZW50LA0KPiA+ICsJCQkJCQlSUENfRElTUExBWV9BRERS KSk7DQo+ID4gKwkJKSwNCj4gPiArDQo+ID4gKwkJVFBfcHJpbnRrKCJlcnJvcj0lZCAoJXMpLCBk c3RhZGRyPSVzIiwNCj4gPiArCQkJX19lbnRyeS0+ZXJyb3IsDQo+ID4gKwkJCXNob3dfbmZzdjRf ZXJyb3JzKF9fZW50cnktPmVycm9yKSwNCj4gPiArCQkJX19nZXRfc3RyKGRzdGFkZHIpDQo+ID4g KwkJKQ0KPiA+ICspOw0KPiA+ICsjZGVmaW5lIERFRklORV9ORlM0X0NMSUVOVElEX0VWRU5UKG5h bWUpCQlcDQo+ID4gK0RFRklORV9FVkVOVChuZnM0X2NsaWVudGlkX2V2ZW50LCBuYW1lLAkJCVwN Cj4gPiArCQlUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwLAlcDQo+ID4gKwkJ CWludCBlcnJvciksCQkJXA0KPiA+ICsJCVRQX0FSR1MoY2xwLCBlcnJvcikpDQo+ID4gK0RFRklO RV9ORlM0X0NMSUVOVElEX0VWRU5UKG5mczRfc2V0Y2xpZW50aWQpOw0KPiA+ICtERUZJTkVfTkZT NF9DTElFTlRJRF9FVkVOVChuZnM0X3NldGNsaWVudGlkX2NvbmZpcm0pOw0KPiA+ICsjaWZkZWYg Q09ORklHX05GU19WNF8xDQo+ID4gK0RFRklORV9ORlM0X0NMSUVOVElEX0VWRU5UKG5mczRfZXhj aGFuZ2VfaWQpOw0KPiA+ICtERUZJTkVfTkZTNF9DTElFTlRJRF9FVkVOVChuZnM0X2NyZWF0ZV9z ZXNzaW9uKTsNCj4gPiArREVGSU5FX05GUzRfQ0xJRU5USURfRVZFTlQobmZzNF9kZXN0cm95X3Nl c3Npb24pOw0KPiA+ICtERUZJTkVfTkZTNF9DTElFTlRJRF9FVkVOVChuZnM0X2Rlc3Ryb3lfY2xp ZW50aWQpOw0KPiA+ICtERUZJTkVfTkZTNF9DTElFTlRJRF9FVkVOVChuZnM0X2JpbmRfY29ubl90 b19zZXNzaW9uKTsNCj4gPiArI2VuZGlmIC8qIENPTkZJR19ORlNfVjRfMSAqLw0KPiA+ICsNCj4g PiArI2VuZGlmIC8qIF9UUkFDRV9ORlM0X0ggKi8NCj4gPiArDQo+ID4gKyN1bmRlZiBUUkFDRV9J TkNMVURFX1BBVEgNCj4gPiArI2RlZmluZSBUUkFDRV9JTkNMVURFX1BBVEggLg0KPiA+ICsjZGVm aW5lIFRSQUNFX0lOQ0xVREVfRklMRSBuZnM0dHJhY2UNCj4gPiArLyogVGhpcyBwYXJ0IG11c3Qg YmUgb3V0c2lkZSBwcm90ZWN0aW9uICovDQo+ID4gKyNpbmNsdWRlIDx0cmFjZS9kZWZpbmVfdHJh Y2UuaD4NCj4gPiAtLSANCj4gPiAxLjguMy4xDQo+ID4gDQo+ID4gLS0NCj4gPiBUbyB1bnN1YnNj cmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtbmZz IiBpbg0KPiA+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwu b3JnDQo+ID4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9t YWpvcmRvbW8taW5mby5odG1sDQo+IC0tDQo+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0 OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1uZnMiIGluDQo+IHRoZSBib2R5IG9m IGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQo+IE1vcmUgbWFqb3Jkb21v IGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KDQot LSANClRyb25kIE15a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVyDQoNCk5ldEFw cA0KVHJvbmQuTXlrbGVidXN0QG5ldGFwcC5jb20NCnd3dy5uZXRhcHAuY29tDQo=