From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 5F28A7F6C for ; Fri, 26 Jun 2015 12:17:21 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id CDD70AC007 for ; Fri, 26 Jun 2015 10:17:20 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id J7wuwSDTI1FgAY6W (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 26 Jun 2015 10:17:19 -0700 (PDT) Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id C704C369F27 for ; Fri, 26 Jun 2015 17:17:18 +0000 (UTC) Date: Fri, 26 Jun 2015 13:17:17 -0400 From: Brian Foster Subject: Re: [PATCH 10/17] mkfs: add respecification detection to generic parsing Message-ID: <20150626171716.GF40750@bfoster.bfoster> References: <1434711726-13092-1-git-send-email-jtulak@redhat.com> <1434711726-13092-11-git-send-email-jtulak@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1434711726-13092-11-git-send-email-jtulak@redhat.com> List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com To: Jan =?utf-8?B?xaR1bMOhaw==?= Cc: Dave Chinner , xfs@oss.sgi.com T24gRnJpLCBKdW4gMTksIDIwMTUgYXQgMDE6MDE6NTlQTSArMDIwMCwgSmFuIMWkdWzDoWsgd3Jv dGU6Cj4gRnJvbTogRGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgo+IAo+IEFkZCBm bGFncyB0byB0aGUgZ2VuZXJpYyBpbnB1dCBwYXJhbWV0ZXIgdGFibGVzIHNvIHRoYXQKPiByZXNw ZWNpZmljYXRpb24gY2FuIGJlIGRldGVjdGVkIGluIGEgZ2VuZXJpYyBtYW5uZXIuCj4gCj4gU2ln bmVkLW9mZi1ieTogRGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IEphbiDFpHVsw6FrIDxqdHVsYWtAcmVkaGF0LmNvbT4KPiAtLS0KPiAgbWtmcy94ZnNf bWtmcy5jIHwgNjggKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA1MCBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbWtmcy94ZnNfbWtmcy5jIGIvbWtmcy94ZnNfbWtm cy5jCj4gaW5kZXggMzMyYzQ5MS4uMGJkODk5OCAxMDA2NDQKPiAtLS0gYS9ta2ZzL3hmc19ta2Zz LmMKPiArKysgYi9ta2ZzL3hmc19ta2ZzLmMKPiBAQCAtNTcsMTUgKzU3LDE3IEBAIHN0YXRpYyBs b25nIGxvbmcgY3Z0bnVtKHVuc2lnbmVkIGludCBibG9ja3NpemUsCj4gIHN0cnVjdCBvcHRfcGFy YW1zIHsKPiAgCWNvbnN0IGNoYXIJbmFtZTsKPiAgCWNvbnN0IGNoYXIJKnN1Ym9wdHNbTUFYX1NV Qk9QVFNdOwo+ICsKPiAgCXN0cnVjdCBzdWJvcHRfcGFyYW0gewo+ICAJCWludAkJaW5kZXg7Cj4g KwkJYm9vbAkJc2VlbjsKPiAgCQlsb25nIGxvbmcJbWludmFsOwo+ICAJCWxvbmcgbG9uZwltYXh2 YWw7Cj4gIAkJbG9uZyBsb25nCWRlZmF1bHR2YWw7Cj4gIAl9CQlzdWJvcHRfcGFyYW1zW01BWF9T VUJPUFRTXTsKPiAgfTsKPiAgCj4gLWNvbnN0IHN0cnVjdCBvcHRfcGFyYW1zIGJvcHRzID0gewo+ ICtzdHJ1Y3Qgb3B0X3BhcmFtcyBib3B0cyA9IHsKPiAgCS5uYW1lID0gJ2InLAo+ICAJLnN1Ym9w dHMgPSB7Cj4gICNkZWZpbmUJQl9MT0cJCTAKPiBAQCAtODgsNyArOTAsNyBAQCBjb25zdCBzdHJ1 Y3Qgb3B0X3BhcmFtcyBib3B0cyA9IHsKPiAgCX0sCj4gIH07Cj4gIAo+IC1jb25zdCBzdHJ1Y3Qg b3B0X3BhcmFtcyBkb3B0cyA9IHsKPiArc3RydWN0IG9wdF9wYXJhbXMgZG9wdHMgPSB7Cj4gIAku bmFtZSA9ICdkJywKPiAgCS5zdWJvcHRzID0gewo+ICAjZGVmaW5lCURfQUdDT1VOVAkwCj4gQEAg LTE5Nyw3ICsxOTksNyBAQCBjb25zdCBzdHJ1Y3Qgb3B0X3BhcmFtcyBkb3B0cyA9IHsKPiAgfTsK PiAgCj4gIAo+IC1jb25zdCBzdHJ1Y3Qgb3B0X3BhcmFtcyBpb3B0cyA9IHsKPiArc3RydWN0IG9w dF9wYXJhbXMgaW9wdHMgPSB7Cj4gIAkubmFtZSA9ICdpJywKPiAgCS5zdWJvcHRzID0gewo+ICAj ZGVmaW5lCUlfQUxJR04JCTAKPiBAQCAtMjU3LDcgKzI1OSw3IEBAIGNvbnN0IHN0cnVjdCBvcHRf cGFyYW1zIGlvcHRzID0gewo+ICAJfSwKPiAgfTsKPiAgCj4gLWNvbnN0IHN0cnVjdCBvcHRfcGFy YW1zIGxvcHRzID0gewo+ICtzdHJ1Y3Qgb3B0X3BhcmFtcyBsb3B0cyA9IHsKPiAgCS5uYW1lID0g J2wnLAo+ICAJLnN1Ym9wdHMgPSB7Cj4gICNkZWZpbmUJTF9BR05VTQkJMAo+IEBAIC0zNDIsNyAr MzQ0LDcgQEAgY29uc3Qgc3RydWN0IG9wdF9wYXJhbXMgbG9wdHMgPSB7Cj4gIAl9LAo+ICB9Owo+ ICAKPiAtY29uc3Qgc3RydWN0IG9wdF9wYXJhbXMgbm9wdHMgPSB7Cj4gK3N0cnVjdCBvcHRfcGFy YW1zIG5vcHRzID0gewo+ICAJLm5hbWUgPSAnbicsCj4gIAkuc3Vib3B0cyA9IHsKPiAgI2RlZmlu ZQlOX0xPRwkJMAo+IEBAIC0zNzksNyArMzgxLDcgQEAgY29uc3Qgc3RydWN0IG9wdF9wYXJhbXMg bm9wdHMgPSB7Cj4gIAl9LAo+ICB9Owo+ICAKPiAtY29uc3Qgc3RydWN0IG9wdF9wYXJhbXMgcm9w dHMgPSB7Cj4gK3N0cnVjdCBvcHRfcGFyYW1zIHJvcHRzID0gewo+ICAJLm5hbWUgPSAncicsCj4g IAkuc3Vib3B0cyA9IHsKPiAgI2RlZmluZQlSX0VYVFNJWkUJMAo+IEBAIC00MTgsNyArNDIwLDcg QEAgY29uc3Qgc3RydWN0IG9wdF9wYXJhbXMgcm9wdHMgPSB7Cj4gIAl9LAo+ICB9Owo+ICAKPiAt Y29uc3Qgc3RydWN0IG9wdF9wYXJhbXMgc29wdHMgPSB7Cj4gK3N0cnVjdCBvcHRfcGFyYW1zIHNv cHRzID0gewoKSXQgd291bGQgYmUgbmljZSB0byBhdm9pZCBhbGwgdGhpcyBub2lzZSBieSBkcm9w cGluZyB0aGUgY29uc3QKc3BlY2lmaWVycyBmcm9tIHRoZSBlYXJsaWVyIHBhdGNoLiBPdGhlcndp c2UsIGxvb2tzIGZpbmU6CgpSZXZpZXdlZC1ieTogQnJpYW4gRm9zdGVyIDxiZm9zdGVyQHJlZGhh dC5jb20+Cgo+ICAJLm5hbWUgPSAncycsCj4gIAkuc3Vib3B0cyA9IHsKPiAgI2RlZmluZQlTX0xP RwkJMAo+IEBAIC00NTUsNyArNDU3LDcgQEAgY29uc3Qgc3RydWN0IG9wdF9wYXJhbXMgc29wdHMg PSB7Cj4gIAl9LAo+ICB9Owo+ICAKPiAtY29uc3Qgc3RydWN0IG9wdF9wYXJhbXMgbW9wdHMgPSB7 Cj4gK3N0cnVjdCBvcHRfcGFyYW1zIG1vcHRzID0gewo+ICAJLm5hbWUgPSAnbScsCj4gIAkuc3Vi b3B0cyA9IHsKPiAgI2RlZmluZQlNX0NSQwkJMAo+IEBAIC0xMTkyLDcgKzExOTQsNiBAQCBzdHJ1 Y3Qgc2JfZmVhdF9hcmdzIHsKPiAgCWludAlkaXJfdmVyc2lvbjsKPiAgCWludAlzcGlub2RlczsK PiAgCWludAlmaW5vYnQ7Cj4gLQlib29sCWZpbm9idGZsYWc7Cj4gIAlib29sCWlub2RlX2FsaWdu Owo+ICAJYm9vbAluY2k7Cj4gIAlib29sCWxhenlfc2JfY291bnRlcnM7Cj4gQEAgLTEzMjMsMTAg KzEzMjQsMTAgQEAgaWxsZWdhbF9vcHRpb24oCj4gIHN0YXRpYyBpbnQKPiAgZ2V0bnVtX2NoZWNr ZWQoCj4gIAljb25zdCBjaGFyCQkqc3RyLAo+IC0JY29uc3Qgc3RydWN0IG9wdF9wYXJhbXMJKm9w dHMsCj4gKwlzdHJ1Y3Qgb3B0X3BhcmFtcwkqb3B0cywKPiAgCWludAkJCWluZGV4KQo+ICB7Cj4g LQljb25zdCBzdHJ1Y3Qgc3Vib3B0X3BhcmFtICpzcCA9ICZvcHRzLT5zdWJvcHRfcGFyYW1zW2lu ZGV4XTsKPiArCXN0cnVjdCBzdWJvcHRfcGFyYW0gKnNwID0gJm9wdHMtPnN1Ym9wdF9wYXJhbXNb aW5kZXhdOwo+ICAJbG9uZyBsb25nCQljOwo+ICAKPiAgCWlmIChzcC0+aW5kZXggIT0gaW5kZXgp IHsKPiBAQCAtMTMzNiw2ICsxMzM3LDExIEBAIGdldG51bV9jaGVja2VkKAo+ICAJCXJlcXZhbChv cHRzLT5uYW1lLCAoY2hhciAqKilvcHRzLT5zdWJvcHRzLCBpbmRleCk7Cj4gIAl9Cj4gIAo+ICsJ LyogY2hlY2sgZm9yIHJlc3BlY2lmaWNhdGlvbiBvZiB0aGUgb3B0aW9uICovCj4gKwlpZiAoc3At PnNlZW4pCj4gKwkJcmVzcGVjKG9wdHMtPm5hbWUsIChjaGFyICoqKW9wdHMtPnN1Ym9wdHMsIGlu ZGV4KTsKPiArCXNwLT5zZWVuID0gdHJ1ZTsKPiArCj4gIAlpZiAoIXN0ciB8fCAqc3RyID09ICdc MCcpIHsKPiAgCQlpZiAoc3AtPmRlZmF1bHR2YWwgPT0gU1VCT1BUX05FRURTX1ZBTCkKPiAgCQkJ cmVxdmFsKG9wdHMtPm5hbWUsIChjaGFyICoqKW9wdHMtPnN1Ym9wdHMsIGluZGV4KTsKPiBAQCAt MTQ0Niw3ICsxNDUyLDYgQEAgbWFpbigKPiAgCXN0cnVjdCBmc190b3BvbG9neQlmdDsKPiAgCXN0 cnVjdCBzYl9mZWF0X2FyZ3MJc2JfZmVhdCA9IHsKPiAgCQkuZmlub2J0ID0gMSwKPiAtCQkuZmlu b2J0ZmxhZyA9IGZhbHNlLAo+ICAJCS5zcGlub2RlcyA9IDAsCj4gIAkJLmxvZ192ZXJzaW9uID0g MiwKPiAgCQkuYXR0cl92ZXJzaW9uID0gMiwKPiBAQCAtMTUwNiw4ICsxNTExLDYgQEAgbWFpbigK PiAgCQkJCXN3aXRjaCAoZ2V0c3Vib3B0KCZwLCAoY29uc3RwcClzdWJvcHRzLAo+ICAJCQkJCQkg ICZ2YWx1ZSkpIHsKPiAgCQkJCWNhc2UgQl9MT0c6Cj4gLQkJCQkJaWYgKGJsZmxhZykKPiAtCQkJ CQkJcmVzcGVjKCdiJywgc3Vib3B0cywgQl9MT0cpOwo+ICAJCQkJCWlmIChic2ZsYWcpCj4gIAkJ CQkJCWNvbmZsaWN0KCdiJywgc3Vib3B0cywgQl9TSVpFLAo+ICAJCQkJCQkJIEJfTE9HKTsKPiBA QCAtMTU0Niw5ICsxNTQ5LDYgQEAgbWFpbigKPiAgCQkJCXN3aXRjaCAoZ2V0c3Vib3B0KCZwLCAo Y29uc3RwcClzdWJvcHRzLAo+ICAJCQkJCQkgICZ2YWx1ZSkpIHsKPiAgCQkJCWNhc2UgRF9BR0NP VU5UOgo+IC0JCQkJCWlmIChkYWZsYWcpCj4gLQkJCQkJCXJlc3BlYygnZCcsIHN1Ym9wdHMsIERf QUdDT1VOVCk7Cj4gLQo+ICAJCQkJCWFnY291bnQgPSBnZXRudW1fY2hlY2tlZCh2YWx1ZSwgJmRv cHRzLAo+ICAJCQkJCQkJCSBEX0FHQ09VTlQpOwo+ICAJCQkJCWRhZmxhZyA9IDE7Cj4gQEAgLTE1 ODUsOCArMTU4NSw2IEBAIG1haW4oCj4gIAkJCQkJZHNpemUgPSB2YWx1ZTsKPiAgCQkJCQlicmVh azsKPiAgCQkJCWNhc2UgRF9TVU5JVDoKPiAtCQkJCQlpZiAoZHN1bml0KQo+IC0JCQkJCQlyZXNw ZWMoJ2QnLCBzdWJvcHRzLCBEX1NVTklUKTsKPiAgCQkJCQlpZiAobm9kc2ZsYWcpCj4gIAkJCQkJ CWNvbmZsaWN0KCdkJywgc3Vib3B0cywgRF9OT0FMSUdOLAo+ICAJCQkJCQkJIERfU1VOSVQpOwo+ IEBAIC0xNTk0LDggKzE1OTIsNiBAQCBtYWluKAo+ICAJCQkJCQkJCSBEX1NVTklUKTsKPiAgCQkJ CQlicmVhazsKPiAgCQkJCWNhc2UgRF9TV0lEVEg6Cj4gLQkJCQkJaWYgKGRzd2lkdGgpCj4gLQkJ CQkJCXJlc3BlYygnZCcsIHN1Ym9wdHMsIERfU1dJRFRIKTsKPiAgCQkJCQlpZiAobm9kc2ZsYWcp Cj4gIAkJCQkJCWNvbmZsaWN0KCdkJywgc3Vib3B0cywgRF9OT0FMSUdOLAo+ICAJCQkJCQkJIERf U1dJRFRIKTsKPiBAQCAtMTYxNiw4ICsxNjEyLDYgQEAgbWFpbigKPiAgCQkJCQkJaWxsZWdhbCh2 YWx1ZSwgImQgc3UiKTsKPiAgCQkJCQlicmVhazsKPiAgCQkJCWNhc2UgRF9TVzoKPiAtCQkJCQlp ZiAoZHN3KQo+IC0JCQkJCQlyZXNwZWMoJ2QnLCBzdWJvcHRzLCBEX1NXKTsKPiAgCQkJCQlpZiAo bm9kc2ZsYWcpCj4gIAkJCQkJCWNvbmZsaWN0KCdkJywgc3Vib3B0cywgRF9OT0FMSUdOLAo+ICAJ CQkJCQkJIERfU1cpOwo+IEBAIC0xNjQwLDggKzE2MzQsNiBAQCBtYWluKAo+ICAJCQkJCW5vZHNm bGFnID0gMTsKPiAgCQkJCQlicmVhazsKPiAgCQkJCWNhc2UgRF9TRUNUTE9HOgo+IC0JCQkJCWlm IChzbGZsYWcpCj4gLQkJCQkJCXJlc3BlYygnZCcsIHN1Ym9wdHMsIERfU0VDVExPRyk7Cj4gIAkJ CQkJaWYgKHNzZmxhZykKPiAgCQkJCQkJY29uZmxpY3QoJ2QnLCBzdWJvcHRzLCBEX1NFQ1RTSVpF LAo+ICAJCQkJCQkJIERfU0VDVExPRyk7Cj4gQEAgLTE3MDQsOCArMTY5Niw2IEBAIG1haW4oCj4g IAkJCQkJCQl2YWx1ZSwgJmlvcHRzLCBJX0FMSUdOKTsKPiAgCQkJCQlicmVhazsKPiAgCQkJCWNh c2UgSV9MT0c6Cj4gLQkJCQkJaWYgKGlsZmxhZykKPiAtCQkJCQkJcmVzcGVjKCdpJywgc3Vib3B0 cywgSV9MT0cpOwo+ICAJCQkJCWlmIChpcGZsYWcpCj4gIAkJCQkJCWNvbmZsaWN0KCdpJywgc3Vi b3B0cywgSV9QRVJCTE9DSywKPiAgCQkJCQkJCSBJX0xPRyk7Cj4gQEAgLTE3MTgsOCArMTcwOCw2 IEBAIG1haW4oCj4gIAkJCQkJaWxmbGFnID0gMTsKPiAgCQkJCQlicmVhazsKPiAgCQkJCWNhc2Ug SV9NQVhQQ1Q6Cj4gLQkJCQkJaWYgKGltZmxhZykKPiAtCQkJCQkJcmVzcGVjKCdpJywgc3Vib3B0 cywgSV9NQVhQQ1QpOwo+ICAJCQkJCWltYXhwY3QgPSBnZXRudW1fY2hlY2tlZCh2YWx1ZSwgJmlv cHRzLAo+ICAJCQkJCQkJCSBJX01BWFBDVCk7Cj4gIAkJCQkJaW1mbGFnID0gMTsKPiBAQCAtMTcy OCw4ICsxNzE2LDYgQEAgbWFpbigKPiAgCQkJCQlpZiAoaWxmbGFnKQo+ICAJCQkJCQljb25mbGlj dCgnaScsIHN1Ym9wdHMsIElfTE9HLAo+ICAJCQkJCQkJIElfUEVSQkxPQ0spOwo+IC0JCQkJCWlm IChpcGZsYWcpCj4gLQkJCQkJCXJlc3BlYygnaScsIHN1Ym9wdHMsIElfUEVSQkxPQ0spOwo+ICAJ CQkJCWlmIChpc2ZsYWcpCj4gIAkJCQkJCWNvbmZsaWN0KCdpJywgc3Vib3B0cywgSV9TSVpFLAo+ ICAJCQkJCQkJIElfUEVSQkxPQ0spOwo+IEBAIC0xNzQ2LDggKzE3MzIsNiBAQCBtYWluKAo+ICAJ CQkJCWlmIChpcGZsYWcpCj4gIAkJCQkJCWNvbmZsaWN0KCdpJywgc3Vib3B0cywgSV9QRVJCTE9D SywKPiAgCQkJCQkJCSBJX1NJWkUpOwo+IC0JCQkJCWlmIChpc2ZsYWcpCj4gLQkJCQkJCXJlc3Bl YygnaScsIHN1Ym9wdHMsIElfU0laRSk7Cj4gIAkJCQkJaXNpemUgPSBnZXRudW1fY2hlY2tlZCh2 YWx1ZSwgJmlvcHRzLAo+ICAJCQkJCQkJICAgICAgIElfU0laRSk7Cj4gIAkJCQkJaWYgKCFpc3Bv dzIoaXNpemUpKQo+IEBAIC0xNzg2LDggKzE3NzAsNiBAQCBtYWluKAo+ICAJCQkJc3dpdGNoIChn ZXRzdWJvcHQoJnAsIChjb25zdHBwKXN1Ym9wdHMsCj4gIAkJCQkJCSAgJnZhbHVlKSkgewo+ICAJ CQkJY2FzZSBMX0FHTlVNOgo+IC0JCQkJCWlmIChsYWZsYWcpCj4gLQkJCQkJCXJlc3BlYygnbCcs IHN1Ym9wdHMsIExfQUdOVU0pOwo+ICAJCQkJCWlmIChsZGZsYWcpCj4gIAkJCQkJCWNvbmZsaWN0 KCdsJywgc3Vib3B0cywgTF9BR05VTSwgTF9ERVYpOwo+ICAJCQkJCWxvZ2Fnbm8gPSBnZXRudW1f Y2hlY2tlZCh2YWx1ZSwgJmxvcHRzLAo+IEBAIC0xODA5LDggKzE3OTEsNiBAQCBtYWluKAo+ICAJ CQkJCWlmICh4aS5saXNmaWxlKQo+ICAJCQkJCQljb25mbGljdCgnbCcsIHN1Ym9wdHMsIExfRklM RSwKPiAgCQkJCQkJCSBMX0lOVEVSTkFMKTsKPiAtCQkJCQlpZiAobGlmbGFnKQo+IC0JCQkJCQly ZXNwZWMoJ2wnLCBzdWJvcHRzLCBMX0lOVEVSTkFMKTsKPiAgCj4gIAkJCQkJbG9naW50ZXJuYWwg PSBnZXRudW1fY2hlY2tlZCh2YWx1ZSwKPiAgCQkJCQkJCSZsb3B0cywgTF9JTlRFUk5BTCk7Cj4g QEAgLTE4MjgsOCArMTgwOCw2IEBAIG1haW4oCj4gIAkJCQkJbHN1ZmxhZyA9IDE7Cj4gIAkJCQkJ YnJlYWs7Cj4gIAkJCQljYXNlIExfU1VOSVQ6Cj4gLQkJCQkJaWYgKGxzdW5pdCkKPiAtCQkJCQkJ cmVzcGVjKCdsJywgc3Vib3B0cywgTF9TVU5JVCk7Cj4gIAkJCQkJbHN1bml0ID0gZ2V0bnVtX2No ZWNrZWQodmFsdWUsICZsb3B0cywKPiAgCQkJCQkJCQkgTF9TVU5JVCk7Cj4gIAkJCQkJbHN1bml0 ZmxhZyA9IDE7Cj4gQEAgLTE4NTAsOCArMTgyOCw2IEBAIG1haW4oCj4gIAkJCQkJeGkubG9nbmFt ZSA9IHZhbHVlOwo+ICAJCQkJCWJyZWFrOwo+ICAJCQkJY2FzZSBMX1ZFUlNJT046Cj4gLQkJCQkJ aWYgKGx2ZmxhZykKPiAtCQkJCQkJcmVzcGVjKCdsJywgc3Vib3B0cywgTF9WRVJTSU9OKTsKPiAg CQkJCQlzYl9mZWF0LmxvZ192ZXJzaW9uID0KPiAgCQkJCQkJZ2V0bnVtX2NoZWNrZWQodmFsdWUs ICZsb3B0cywKPiAgCQkJCQkJCSAgICAgICBMX1ZFUlNJT04pOwo+IEBAIC0xODY2LDggKzE4NDIs NiBAQCBtYWluKAo+ICAJCQkJCWxzZmxhZyA9IDE7Cj4gIAkJCQkJYnJlYWs7Cj4gIAkJCQljYXNl IExfU0VDVExPRzoKPiAtCQkJCQlpZiAobHNsZmxhZykKPiAtCQkJCQkJcmVzcGVjKCdsJywgc3Vi b3B0cywgTF9TRUNUTE9HKTsKPiAgCQkJCQlpZiAobHNzZmxhZykKPiAgCQkJCQkJY29uZmxpY3Qo J2wnLCBzdWJvcHRzLCBMX1NFQ1RTSVpFLAo+ICAJCQkJCQkJIExfU0VDVExPRyk7Cj4gQEAgLTE5 NTAsOCArMTkyNCw2IEBAIF8oImNhbm5vdCBzcGVjaWZ5IGJvdGggLW0gY3JjPTEgYW5kIC1uIGZ0 eXBlXG4iKSk7Cj4gIAkJCQlzd2l0Y2ggKGdldHN1Ym9wdCgmcCwgKGNvbnN0cHApc3Vib3B0cywK PiAgCQkJCQkJICAmdmFsdWUpKSB7Cj4gIAkJCQljYXNlIE5fTE9HOgo+IC0JCQkJCWlmIChubGZs YWcpCj4gLQkJCQkJCXJlc3BlYygnbicsIHN1Ym9wdHMsIE5fTE9HKTsKPiAgCQkJCQlpZiAobnNm bGFnKQo+ICAJCQkJCQljb25mbGljdCgnbicsIHN1Ym9wdHMsIE5fU0laRSwKPiAgCQkJCQkJCSBO X0xPRyk7Cj4gQEAgLTE5OTQsOCArMTk2Niw2IEBAIF8oImNhbm5vdCBzcGVjaWZ5IGJvdGggLW0g Y3JjPTEgYW5kIC1uIGZ0eXBlXG4iKSk7Cj4gIAkJCQkJbnZmbGFnID0gMTsKPiAgCQkJCQlicmVh azsKPiAgCQkJCWNhc2UgTl9GVFlQRToKPiAtCQkJCQlpZiAobmZ0eXBlKQo+IC0JCQkJCQlyZXNw ZWMoJ24nLCBzdWJvcHRzLCBOX0ZUWVBFKTsKPiAgCQkJCQlpZiAoc2JfZmVhdC5jcmNzX2VuYWJs ZWQpIHsKPiAgCQkJCQkJZnByaW50ZihzdGRlcnIsCj4gIF8oImNhbm5vdCBzcGVjaWZ5IGJvdGgg LW0gY3JjPTEgYW5kIC1uIGZ0eXBlXG4iKSk7Cj4gQEAgLTIwNzgsOCArMjA0OCw2IEBAIF8oImNh bm5vdCBzcGVjaWZ5IGJvdGggLW0gY3JjPTEgYW5kIC1uIGZ0eXBlXG4iKSk7Cj4gIAkJCQkJCSAg JnZhbHVlKSkgewo+ICAJCQkJY2FzZSBTX0xPRzoKPiAgCQkJCWNhc2UgU19TRUNUTE9HOgo+IC0J CQkJCWlmIChzbGZsYWcgfHwgbHNsZmxhZykKPiAtCQkJCQkJcmVzcGVjKCdzJywgc3Vib3B0cywg U19TRUNUTE9HKTsKPiAgCQkJCQlpZiAoc3NmbGFnIHx8IGxzc2ZsYWcpCj4gIAkJCQkJCWNvbmZs aWN0KCdzJywgc3Vib3B0cywKPiAgCQkJCQkJCSBTX1NFQ1RTSVpFLCBTX1NFQ1RMT0cpOwo+IEBA IC0yMjk2LDcgKzIyNjQsNyBAQCBfKCIzMiBiaXQgUHJvamVjdCBJRHMgYWx3YXlzIGVuYWJsZWQg b24gQ1JDIGVuYWJsZWQgZmlsZXN5dGVtc1xuIikpOwo+ICAJCSAqIHRyaWVkIHRvIHVzZSBjcmM9 MCxmaW5vYnQ9MSwgdGhlbiBpc3N1ZSBhIHdhcm5pbmcgYmVmb3JlCj4gIAkJICogdHVybmluZyB0 aGVtIG9mZi4KPiAgCQkgKi8KPiAtCQlpZiAoc2JfZmVhdC5maW5vYnQgJiYgc2JfZmVhdC5maW5v YnRmbGFnKSB7Cj4gKwkJaWYgKHNiX2ZlYXQuZmlub2J0ICYmIG1vcHRzLnN1Ym9wdF9wYXJhbXNb TV9GSU5PQlRdLnNlZW4pIHsKPiAgCQkJZnByaW50ZihzdGRlcnIsCj4gIF8oIndhcm5pbmc6IGZp bm9idCBub3Qgc3VwcG9ydGVkIHdpdGhvdXQgQ1JDIHN1cHBvcnQsIGRpc2FibGVkLlxuIikpOwo+ ICAJCQlzYl9mZWF0LmZpbm9idCA9IDA7Cj4gLS0gCj4gMi4xLjAKPiAKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IHhmcyBtYWlsaW5nIGxpc3QKPiB4 ZnNAb3NzLnNnaS5jb20KPiBodHRwOi8vb3NzLnNnaS5jb20vbWFpbG1hbi9saXN0aW5mby94ZnMK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnhmcyBtYWls aW5nIGxpc3QKeGZzQG9zcy5zZ2kuY29tCmh0dHA6Ly9vc3Muc2dpLmNvbS9tYWlsbWFuL2xpc3Rp bmZvL3hmcwo=