From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id F1C5629DFF for ; Thu, 25 Jun 2015 14:38:43 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id D1F6D8F8049 for ; Thu, 25 Jun 2015 12:38:43 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id E4nOpTCdo8ZuAZYX (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 25 Jun 2015 12:38:42 -0700 (PDT) Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id 3B1B1383ACD for ; Thu, 25 Jun 2015 19:38:42 +0000 (UTC) Date: Thu, 25 Jun 2015 15:38:40 -0400 From: Brian Foster Subject: Re: [PATCH 05/17] mkfs: factor boolean option parsing Message-ID: <20150625193840.GI36162@bfoster.bfoster> References: <1434711726-13092-1-git-send-email-jtulak@redhat.com> <1434711726-13092-6-git-send-email-jtulak@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1434711726-13092-6-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 T24gRnJpLCBKdW4gMTksIDIwMTUgYXQgMDE6MDE6NTRQTSArMDIwMCwgSmFuIMWkdWzDoWsgd3Jv dGU6Cj4gRnJvbTogRGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgo+IAo+IE1hbnkg b2YgdGhlIG9wdGlvbnMgcGFzc2VkIHRvIG1rZnMgaGF2ZSBib29sZWFuIG9wdGlvbnMgKDAgb3Ig MSkgYW5kCj4gYWxsIGhhbmQgcm9sbCB0aGUgc2FtZSBjb2RlIGFuZCB2YWxpZGl0eSBjaGVja3Mu IEZhY3RvciB0aGVzZSBvdXQKPiBpbnRvIGEgY29tbW9uIGZ1bmN0aW9uLgo+IAo+IE5vdGUgdGhh dCB0aGUgbGF6eS1jb3VudCBvcHRpb24gaXMgbm93IGNoYW5nZWQgdG8gbWF0Y2ggb3RoZXIKPiBi b29sZWFucyBpbiB0aGF0IGlmIHlvdSBkb24ndCBzcGVjaWZ5IGEgdmFsdWUsIGl0IHJldmVydHMg dG8gdGhlCj4gZGVmYXVsdCB2YWx1ZSAob24pIHJhdGhlciB0aGFuIHRocm93aW5nIGFuIGVycm9y LiBTaW1pbGFybHkgdGhlIC1tCj4gY3JjIGFuZCAtbiBmdHlwZSBvcHRpb25zIGRlZmF1bHQgdG8g b2ZmIHJhdGhlciB0aGFuIHRocm93aW5nIGFuCj4gZXJyb3IuCj4gCj4gU2lnbmVkLW9mZi1ieTog RGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEphbiDF pHVsw6FrIDxqdHVsYWtAcmVkaGF0LmNvbT4KPiAtLS0KPiAgbWtmcy94ZnNfbWtmcy5jIHwgMTAx ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCA1OSBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvbWtmcy94ZnNfbWtmcy5jIGIvbWtmcy94ZnNfbWtmcy5jCj4gaW5kZXgg MWE1ZTJmOC4uNmI5ZTk5MSAxMDA2NDQKPiAtLS0gYS9ta2ZzL3hmc19ta2ZzLmMKPiArKysgYi9t a2ZzL3hmc19ta2ZzLmMKPiBAQCAtNDIsNyArNDIsNyBAQCBzdHJ1Y3QgZnNfdG9wb2xvZ3kgewo+ ICAgKiBQcm90b3R5cGVzIGZvciBpbnRlcm5hbCBmdW5jdGlvbnMuCj4gICAqLwo+ICBzdGF0aWMg dm9pZCBjb25mbGljdChjaGFyIG9wdCwgY2hhciAqdGFiW10sIGludCBvbGRpZHgsIGludCBuZXdp ZHgpOwo+IC1zdGF0aWMgdm9pZCBpbGxlZ2FsKGNoYXIgKnZhbHVlLCBjaGFyICpvcHQpOwo+ICtz dGF0aWMgdm9pZCBpbGxlZ2FsKGNvbnN0IGNoYXIgKnZhbHVlLCBjb25zdCBjaGFyICpvcHQpOwo+ ICBzdGF0aWMgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKSB2b2lkIHVzYWdlICh2b2lkKTsKPiAg c3RhdGljIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSkgdm9pZCByZXF2YWwoY2hhciBvcHQsIGNo YXIgKnRhYltdLCBpbnQgaWR4KTsKPiAgc3RhdGljIHZvaWQgcmVzcGVjKGNoYXIgb3B0LCBjaGFy ICp0YWJbXSwgaW50IGlkeCk7Cj4gQEAgLTEwMjgsNiArMTAyOCwyMSBAQCBnZXRudW0oCj4gIAly ZXR1cm4gaTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wKPiArZ2V0Ym9vbCgKPiArCWNvbnN0IGNo YXIJKnN0ciwKPiArCWNvbnN0IGNoYXIJKmlsbGVnYWxfc3RyLAo+ICsJYm9vbAkJZGVmYXVsdF92 YWwpCj4gK3sKPiArCWxvbmcgbG9uZwljOwo+ICsKPiArCWlmICghc3RyIHx8ICpzdHIgPT0gJ1ww JykKPiArCQlyZXR1cm4gZGVmYXVsdF92YWw7Cj4gKwljID0gZ2V0bnVtKHN0ciwgMCwgMCwgZmFs c2UpOwo+ICsJaWYgKGMgPCAwIHx8IGMgPiAxKQo+ICsJCWlsbGVnYWwoc3RyLCBpbGxlZ2FsX3N0 cik7Cj4gKwlyZXR1cm4gYyA/IHRydWUgOiBmYWxzZTsKPiArfQo+ICAKPiAgaW50Cj4gIG1haW4o Cj4gQEAgLTEyNDcsMTEgKzEyNjIsOCBAQCBtYWluKAo+ICAJCQkJCWRhc2l6ZSA9IDE7Cj4gIAkJ CQkJYnJlYWs7Cj4gIAkJCQljYXNlIERfRklMRToKPiAtCQkJCQlpZiAoIXZhbHVlIHx8ICp2YWx1 ZSA9PSAnXDAnKQo+IC0JCQkJCQl2YWx1ZSA9ICIxIjsKPiAtCQkJCQl4aS5kaXNmaWxlID0gZ2V0 bnVtKHZhbHVlLCAwLCAwLCBmYWxzZSk7Cj4gLQkJCQkJaWYgKHhpLmRpc2ZpbGUgPCAwIHx8IHhp LmRpc2ZpbGUgPiAxKQo+IC0JCQkJCQlpbGxlZ2FsKHZhbHVlLCAiZCBmaWxlIik7Cj4gKwkJCQkJ eGkuZGlzZmlsZSA9IGdldGJvb2wodmFsdWUsICJkIGZpbGUiLAo+ICsJCQkJCQkJICAgICB0cnVl KTsKPiAgCQkJCQlpZiAoeGkuZGlzZmlsZSAmJiAhTmZsYWcpCj4gIAkJCQkJCXhpLmRjcmVhdCA9 IDE7Cj4gIAkJCQkJYnJlYWs7Cj4gQEAgLTEzOTQsMTIgKzE0MDYsOCBAQCBtYWluKAo+ICAKPiAg CQkJCXN3aXRjaCAoZ2V0c3Vib3B0KCZwLCAoY29uc3RwcClpb3B0cywgJnZhbHVlKSkgewo+ICAJ CQkJY2FzZSBJX0FMSUdOOgo+IC0JCQkJCWlmICghdmFsdWUgfHwgKnZhbHVlID09ICdcMCcpCj4g LQkJCQkJCWJyZWFrOwo+IC0JCQkJCWMgPSBnZXRudW0odmFsdWUsIDAsIDAsIGZhbHNlKTsKPiAt CQkJCQlpZiAoYyA8IDAgfHwgYyA+IDEpCj4gLQkJCQkJCWlsbGVnYWwodmFsdWUsICJpIGFsaWdu Iik7Cj4gLQkJCQkJc2JfZmVhdC5pbm9kZV9hbGlnbiA9IGMgPyB0cnVlIDogZmFsc2U7Cj4gKwkJ CQkJc2JfZmVhdC5pbm9kZV9hbGlnbiA9IGdldGJvb2woCj4gKwkJCQkJCQl2YWx1ZSwgImkgYWxp Z24iLCB0cnVlKTsKPiAgCQkJCQlicmVhazsKPiAgCQkJCWNhc2UgSV9MT0c6Cj4gIAkJCQkJaWYg KCF2YWx1ZSB8fCAqdmFsdWUgPT0gJ1wwJykKPiBAQCAtMTQ3MiwxMiArMTQ4MCw4IEBAIG1haW4o Cj4gIAkJCQkJc2JfZmVhdC5hdHRyX3ZlcnNpb24gPSBjOwo+ICAJCQkJCWJyZWFrOwo+ICAJCQkJ Y2FzZSBJX1BST0pJRDMyQklUOgo+IC0JCQkJCWlmICghdmFsdWUgfHwgKnZhbHVlID09ICdcMCcp Cj4gLQkJCQkJCXZhbHVlID0gIjAiOwo+IC0JCQkJCWMgPSBnZXRudW0odmFsdWUsIDAsIDAsIGZh bHNlKTsKPiAtCQkJCQlpZiAoYyA8IDAgfHwgYyA+IDEpCj4gLQkJCQkJCWlsbGVnYWwodmFsdWUs ICJpIHByb2ppZDMyYml0Iik7Cj4gLQkJCQkJc2JfZmVhdC5wcm9qaWQxNmJpdCA9IGMgPyBmYWxz ZSA6IHRydWU7Cj4gKwkJCQkJc2JfZmVhdC5wcm9qaWQxNmJpdCA9ICFnZXRib29sKHZhbHVlLAo+ ICsJCQkJCQkJImkgcHJvamlkMzJiaXQiLCBmYWxzZSk7Cj4gIAkJCQkJYnJlYWs7Cj4gIAkJCQlj YXNlIElfU1BJTk9ERVM6Cj4gIAkJCQkJaWYgKCF2YWx1ZSB8fCAqdmFsdWUgPT0gJ1wwJykKPiBA QCAtMTUxMCwyMCArMTUxNCwxNSBAQCBtYWluKAo+ICAJCQkJCWxhZmxhZyA9IDE7Cj4gIAkJCQkJ YnJlYWs7Cj4gIAkJCQljYXNlIExfRklMRToKPiAtCQkJCQlpZiAoIXZhbHVlIHx8ICp2YWx1ZSA9 PSAnXDAnKQo+IC0JCQkJCQl2YWx1ZSA9ICIxIjsKPiAgCQkJCQlpZiAobG9naW50ZXJuYWwpCj4g IAkJCQkJCWNvbmZsaWN0KCdsJywgbG9wdHMsIExfSU5URVJOQUwsCj4gIAkJCQkJCQkgTF9GSUxF KTsKPiAtCQkJCQl4aS5saXNmaWxlID0gZ2V0bnVtKHZhbHVlLCAwLCAwLCBmYWxzZSk7Cj4gLQkJ CQkJaWYgKHhpLmxpc2ZpbGUgPCAwIHx8IHhpLmxpc2ZpbGUgPiAxKQo+IC0JCQkJCQlpbGxlZ2Fs KHZhbHVlLCAibCBmaWxlIik7Cj4gKwkJCQkJeGkubGlzZmlsZSA9IGdldGJvb2wodmFsdWUsICJs IGZpbGUiLAo+ICsJCQkJCQkJICAgICB0cnVlKTsKPiAgCQkJCQlpZiAoeGkubGlzZmlsZSkKPiAg CQkJCQkJeGkubGNyZWF0ID0gMTsKPiAgCQkJCQlicmVhazsKPiAgCQkJCWNhc2UgTF9JTlRFUk5B TDoKPiAtCQkJCQlpZiAoIXZhbHVlIHx8ICp2YWx1ZSA9PSAnXDAnKQo+IC0JCQkJCQl2YWx1ZSA9 ICIxIjsKPiAgCQkJCQlpZiAobGRmbGFnKQo+ICAJCQkJCQljb25mbGljdCgnbCcsIGxvcHRzLCBM X0lOVEVSTkFMLCBMX0RFVik7Cj4gIAkJCQkJaWYgKHhpLmxpc2ZpbGUpCj4gQEAgLTE1MzEsOSAr MTUzMCw5IEBAIG1haW4oCj4gIAkJCQkJCQkgTF9JTlRFUk5BTCk7Cj4gIAkJCQkJaWYgKGxpZmxh ZykKPiAgCQkJCQkJcmVzcGVjKCdsJywgbG9wdHMsIExfSU5URVJOQUwpOwo+IC0JCQkJCWxvZ2lu dGVybmFsID0gZ2V0bnVtKHZhbHVlLCAwLCAwLCBmYWxzZSk7Cj4gLQkJCQkJaWYgKGxvZ2ludGVy bmFsIDwgMCB8fCBsb2dpbnRlcm5hbCA+IDEpCj4gLQkJCQkJCWlsbGVnYWwodmFsdWUsICJsIGlu dGVybmFsIik7Cj4gKwo+ICsJCQkJCWxvZ2ludGVybmFsID0gZ2V0Ym9vbCh2YWx1ZSwKPiArCQkJ CQkJCSJsIGludGVybmFsIiwgdHJ1ZSk7Cj4gIAkJCQkJbGlmbGFnID0gMTsKPiAgCQkJCQlicmVh azsKPiAgCQkJCWNhc2UgTF9TVToKPiBAQCAtMTYyMywxNCArMTYyMiw5IEBAIG1haW4oCj4gIAkJ CQkJbHNzZmxhZyA9IDE7Cj4gIAkJCQkJYnJlYWs7Cj4gIAkJCQljYXNlIExfTEFaWVNCQ05UUjoK PiAtCQkJCQlpZiAoIXZhbHVlIHx8ICp2YWx1ZSA9PSAnXDAnKQo+IC0JCQkJCQlyZXF2YWwoJ2wn LCBsb3B0cywKPiAtCQkJCQkJCQlMX0xBWllTQkNOVFIpOwo+IC0JCQkJCWMgPSBnZXRudW0odmFs dWUsIDAsIDAsIGZhbHNlKTsKPiAtCQkJCQlpZiAoYyA8IDAgfHwgYyA+IDEpCj4gLQkJCQkJCWls bGVnYWwodmFsdWUsICJsIGxhenktY291bnQiKTsKPiAtCQkJCQlzYl9mZWF0Lmxhenlfc2JfY291 bnRlcnMgPSBjID8gdHJ1ZQo+IC0JCQkJCQkJCSAgICAgOiBmYWxzZTsKPiArCQkJCQlzYl9mZWF0 Lmxhenlfc2JfY291bnRlcnMgPSBnZXRib29sKAo+ICsJCQkJCQkJdmFsdWUsICJsIGxhenktY291 bnQiLAo+ICsJCQkJCQkJdHJ1ZSk7Cj4gIAkJCQkJYnJlYWs7Cj4gIAkJCQlkZWZhdWx0Ogo+ICAJ CQkJCXVua25vd24oJ2wnLCB2YWx1ZSk7Cj4gQEAgLTE2NDksMTggKzE2NDMsMTQgQEAgbWFpbigK PiAgCj4gIAkJCQlzd2l0Y2ggKGdldHN1Ym9wdCgmcCwgKGNvbnN0cHApbW9wdHMsICZ2YWx1ZSkp IHsKPiAgCQkJCWNhc2UgTV9DUkM6Cj4gLQkJCQkJaWYgKCF2YWx1ZSB8fCAqdmFsdWUgPT0gJ1ww JykKPiAtCQkJCQkJcmVxdmFsKCdtJywgbW9wdHMsIE1fQ1JDKTsKPiAtCQkJCQljID0gZ2V0bnVt KHZhbHVlLCAwLCAwLCBmYWxzZSk7Cj4gLQkJCQkJaWYgKGMgPCAwIHx8IGMgPiAxKQo+IC0JCQkJ CQlpbGxlZ2FsKHZhbHVlLCAibSBjcmMiKTsKPiAtCQkJCQlpZiAoYyAmJiBuZnR5cGUpIHsKPiAr CQkJCQlzYl9mZWF0LmNyY3NfZW5hYmxlZCA9IGdldGJvb2woCj4gKwkJCQkJCQl2YWx1ZSwgIm0g Y3JjIiwgZmFsc2UpOwoKSG1tLi4uIHNvIEkga25vdyB3ZSBoYXZlIGNyYyBvbiBieSBkZWZhdWx0 IG5vdywgYnV0IGl0IHNlZW1zIGEgbGl0dGxlCndlaXJkIHRvIG1lIGZvciAnLW0gY3JjJyB0byB0 dXJuIGl0IG9mZi4KCj4gKwkJCQkJaWYgKHNiX2ZlYXQuY3Jjc19lbmFibGVkICYmIG5mdHlwZSkg ewo+ICAJCQkJCQlmcHJpbnRmKHN0ZGVyciwKPiAtXygiY2Fubm90IHNwZWNpZnkgYm90aCBjcmMg YW5kIGZ0eXBlXG4iKSk7Cj4gK18oImNhbm5vdCBzcGVjaWZ5IGJvdGggLW0gY3JjPTEgYW5kIC1u IGZ0eXBlXG4iKSk7Cj4gIAkJCQkJCXVzYWdlKCk7Cj4gIAkJCQkJfQo+IC0JCQkJCXNiX2ZlYXQu Y3Jjc19lbmFibGVkID0gYyA/IHRydWUgOiBmYWxzZTsKPiAtCQkJCQlpZiAoYykKPiArCQkJCQlp ZiAoc2JfZmVhdC5jcmNzX2VuYWJsZWQpCj4gIAkJCQkJCXNiX2ZlYXQuZGlyZnR5cGUgPSB0cnVl Owo+ICAJCQkJCWJyZWFrOwo+ICAJCQkJY2FzZSBNX0ZJTk9CVDoKCk5vIGdldGJvb2woKSB1cGRh dGUgZm9yIGZpbm9idD8KCj4gQEAgLTE3MzEsMTkgKzE3MjEsMTUgQEAgXygiY2Fubm90IHNwZWNp ZnkgYm90aCBjcmMgYW5kIGZ0eXBlXG4iKSk7Cj4gIAkJCQkJbnZmbGFnID0gMTsKPiAgCQkJCQli cmVhazsKPiAgCQkJCWNhc2UgTl9GVFlQRToKPiAtCQkJCQlpZiAoIXZhbHVlIHx8ICp2YWx1ZSA9 PSAnXDAnKQo+IC0JCQkJCQlyZXF2YWwoJ24nLCBub3B0cywgTl9GVFlQRSk7Cj4gIAkJCQkJaWYg KG5mdHlwZSkKPiAgCQkJCQkJcmVzcGVjKCduJywgbm9wdHMsIE5fRlRZUEUpOwo+IC0JCQkJCWMg PSBnZXRudW0odmFsdWUsIDAsIDAsIGZhbHNlKTsKPiAtCQkJCQlpZiAoYyA8IDAgfHwgYyA+IDEp Cj4gLQkJCQkJCWlsbGVnYWwodmFsdWUsICJuIGZ0eXBlIik7Cj4gIAkJCQkJaWYgKHNiX2ZlYXQu Y3Jjc19lbmFibGVkKSB7Cj4gIAkJCQkJCWZwcmludGYoc3RkZXJyLAo+IC1fKCJjYW5ub3Qgc3Bl Y2lmeSBib3RoIGNyYyBhbmQgZnR5cGVcbiIpKTsKPiArXygiY2Fubm90IHNwZWNpZnkgYm90aCAt bSBjcmM9MSBhbmQgLW4gZnR5cGVcbiIpKTsKPiAgCQkJCQkJdXNhZ2UoKTsKPiAgCQkJCQl9Cj4g LQkJCQkJc2JfZmVhdC5kaXJmdHlwZSA9IGMgPyB0cnVlIDogZmFsc2U7Cj4gKwkJCQkJc2JfZmVh dC5kaXJmdHlwZSA9IGdldGJvb2wodmFsdWUsCj4gKwkJCQkJCQkgICAgICJuIGZ0eXBlIiwgZmFs c2UpOwoKU2ltaWxhciB3ZWlyZG5lc3MgaGVyZSwgSU1PLiBVc2luZyAnLW0gY3JjIC1uIGZ0eXBl JyBnaXZlcyBhbiBmcyB3aXRob3V0CmVpdGhlci4gVGhlIHRvZ2dsaW5nIGJlaGF2aW9yIGlzIGNv bnNpc3RlbnQgSSBzdXBwb3NlLCBidXQgaXQgc2VlbXMKcmVhbGx5IG5vbmludHVpdGl2ZSB0byBt ZS4gSSB3b3VsZCBleHBlY3QgdGhlIGFjdCBvZiBzcGVjaWZ5aW5nCnNvbWV0aGluZyBhcyBhbiBp bXBsaWNpdCByZXF1ZXN0IHRvIGVuYWJsZSwgcmVnYXJkbGVzcyBvZiB0aGUKYXBwbGljYXRpb24g c3BlY2lmaWMgZGVmYXVsdHMgKHRoYXQgZG8gY2hhbmdlIG9uY2UgaW4gYSB3aGlsZSkuCgpCcmlh bgoKPiAgCQkJCQluZnR5cGUgPSAxOwo+ICAJCQkJCWJyZWFrOwo+ICAJCQkJZGVmYXVsdDoKPiBA QCAtMTc3OSwxMSArMTc2NSw4IEBAIF8oImNhbm5vdCBzcGVjaWZ5IGJvdGggY3JjIGFuZCBmdHlw ZVxuIikpOwo+ICAJCQkJCXJ0ZXh0c2l6ZSA9IHZhbHVlOwo+ICAJCQkJCWJyZWFrOwo+ICAJCQkJ Y2FzZSBSX0ZJTEU6Cj4gLQkJCQkJaWYgKCF2YWx1ZSB8fCAqdmFsdWUgPT0gJ1wwJykKPiAtCQkJ CQkJdmFsdWUgPSAiMSI7Cj4gLQkJCQkJeGkucmlzZmlsZSA9IGdldG51bSh2YWx1ZSwgMCwgMCwg ZmFsc2UpOwo+IC0JCQkJCWlmICh4aS5yaXNmaWxlIDwgMCB8fCB4aS5yaXNmaWxlID4gMSkKPiAt CQkJCQkJaWxsZWdhbCh2YWx1ZSwgInIgZmlsZSIpOwo+ICsJCQkJCXhpLnJpc2ZpbGUgPSBnZXRi b29sKHZhbHVlLAo+ICsJCQkJCQkJICAgICAiciBmaWxlIiwgdHJ1ZSk7Cj4gIAkJCQkJaWYgKHhp LnJpc2ZpbGUpCj4gIAkJCQkJCXhpLnJjcmVhdCA9IDE7Cj4gIAkJCQkJYnJlYWs7Cj4gQEAgLTMy MjgsOCArMzIxMSw4IEBAIGNvbmZsaWN0KAo+ICAKPiAgc3RhdGljIHZvaWQKPiAgaWxsZWdhbCgK PiAtCWNoYXIJCSp2YWx1ZSwKPiAtCWNoYXIJCSpvcHQpCj4gKwljb25zdCBjaGFyCSp2YWx1ZSwK PiArCWNvbnN0IGNoYXIJKm9wdCkKPiAgewo+ICAJZnByaW50ZihzdGRlcnIsIF8oIklsbGVnYWwg dmFsdWUgJXMgZm9yIC0lcyBvcHRpb25cbiIpLCB2YWx1ZSwgb3B0KTsKPiAgCXVzYWdlKCk7Cj4g LS0gCj4gMi4xLjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IHhmcyBtYWlsaW5nIGxpc3QKPiB4ZnNAb3NzLnNnaS5jb20KPiBodHRwOi8vb3Nz LnNnaS5jb20vbWFpbG1hbi9saXN0aW5mby94ZnMKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCnhmcyBtYWlsaW5nIGxpc3QKeGZzQG9zcy5zZ2kuY29tCmh0 dHA6Ly9vc3Muc2dpLmNvbS9tYWlsbWFuL2xpc3RpbmZvL3hmcwo=