From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7892 invoked by alias); 14 Apr 2010 22:22:37 -0000 Received: (qmail 7882 invoked by uid 22791); 14 Apr 2010 22:22:36 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-bw0-f214.google.com (HELO mail-bw0-f214.google.com) (209.85.218.214) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 14 Apr 2010 22:22:32 +0000 Received: by bwz6 with SMTP id 6so666474bwz.13 for ; Wed, 14 Apr 2010 15:22:29 -0700 (PDT) Received: by 10.204.174.199 with SMTP id u7mr9134384bkz.38.1271283747259; Wed, 14 Apr 2010 15:22:27 -0700 (PDT) Received: from localhost (77-243-252-87-dynamic-pool.gprs.mts.by [87.252.243.77]) by mx.google.com with ESMTPS id 13sm757235bwz.15.2010.04.14.15.21.39 (version=SSLv3 cipher=RC4-MD5); Wed, 14 Apr 2010 15:22:26 -0700 (PDT) Date: Wed, 14 Apr 2010 22:22:00 -0000 From: Mihail Zenkov To: tromey@redhat.com Cc: Mihail Zenkov , Joel Brobecker , gdb-patches@sourceware.org Subject: Re: D language support Message-Id: <20100415012124.91ce1769.mihai.zenkov@gmail.com> In-Reply-To: References: <20091224015617.7092112b.mihai.zenkov@gmail.com> <20091230125539.GF2788@adacore.com> <20100109082524.263bcb17.mihai.zenkov@gmail.com> <20100109082830.dd984de8.mihai.zenkov@gmail.com> <20100109142327.GC2007@adacore.com> <20100113064026.14f75ff2.mihai.zenkov@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Thu__15_Apr_2010_01_21_24_+0300_fSyapsG=ZTG.zWms" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-04/txt/msg00460.txt.bz2 This is a multi-part message in MIME format. --Multipart=_Thu__15_Apr_2010_01_21_24_+0300_fSyapsG=ZTG.zWms Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 938 On Fri, 15 Jan 2010 14:04:39 -0700 Tom Tromey wrote: > >>>>> "Mihail" == Mihail Zenkov writes: > > Mihail> +@node D > Mihail> +@subsection D > Mihail> + > Mihail> +@cindex D > Mihail> +@value{GDBN} can be used to debug programs written in D and compiled with > Mihail> +GDC, LDC or DMD. Currently @value{GDBN} supports only one D specific > Mihail> +features - dynamic arrays. > > s/features/feature > > Mihail> diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp > > It would be nice to have any kind of smoke test for the D support. > > Tom Sorry for too very long delay. I fix patch as you and Joel suggested, i hope it ready for inclusion. Also i write second patch for testsuite, it work good with GDC, but fail with DMD and LDC - probably it have some problem/particularity in DWARF implementation. I try do more test and write to their authors. --Multipart=_Thu__15_Apr_2010_01_21_24_+0300_fSyapsG=ZTG.zWms Content-Type: application/octet-stream; name="gdb-100414-d.patch" Content-Disposition: attachment; filename="gdb-100414-d.patch" Content-Transfer-Encoding: base64 Content-length: 36661 Z2RiL0NoYW5nZUxvZzoKCUQgbGFuZ3VhZ2Ugc3VwcG9ydC4KCSogTWFrZWZp bGUuaW4gKFNGSUxFUyk6IEFkZCBkLWxhbmcuYyBkLXZhbHByaW50LmMuCgko Q09NTU9OX09CUyk6IEFkZCBkLWxhbmcubyBkLXZhbHByaW50Lm8uCgkoSEZJ TEVTX05PX1NSQ0RJUik6IEFkZCBkLWxhbmcuaC4KCSogYy1sYW5nLmMgKGNf ZW1pdF9jaGFyLCBleHBfZGVzY3JpcHRvcl9jKTogTWFrZSBwdWJsaWMuCgkq IGMtbGFuZy5oIChjX2VtaXRfY2hhciwgZXhwX2Rlc2NyaXB0b3JfYyk6IEFk ZCBkZWNsYXJhdGlvbi4KCSogZC1sYW5nLmM6IE5ldyBmaWxlLgoJKiBkLWxh bmcuaDogTmV3IGZpbGUuCgkqIGQtdmFscHJpbnQuYzogTmV3IGZpbGUuCgkq IGRlZnMuaCAoZW51bSBsYW5ndWFnZSk6IEFkZCBsYW5ndWFnZV9kLgoJKiBk b2MvZ2RiLnRleGluZm86IEFkZCBtZW50aW9uIGFib3V0IEQgbGFuZ3VhZ2Ug c3VwcG9ydC4KCSogZHdhcmYycmVhZC5jIChzZXRfY3VfbGFuZ3VhZ2UpOiBB ZGQgRFdfTEFOR19ELgoJKiBsYW5ndWFnZS5jIChiaW5vcF9yZXN1bHRfdHlw ZSwgaW50ZWdyYWxfdHlwZSwgY2hhcmFjdGVyX3R5cGUpIAoJKHN0cmluZ190 eXBlLCBib29sZWFuX3R5cGUsIHN0cnVjdHVyZWRfdHlwZSk6IEFkZCBsYW5n dWFnZV9kLgoJKiBzeW1maWxlLmMgKGluaXRfZmlsZW5hbWVfbGFuZ3VhZ2Vf dGFibGUpOiBBZGQgbGFuZ3VhZ2VfZC4KCSogc3ltdGFiLmM6IEluY2x1ZGUg ZC1sYW5nLmguCgkoc3ltYm9sX2luaXRfbGFuZ3VhZ2Vfc3BlY2lmaWMsIHN5 bWJvbF9maW5kX2RlbWFuZ2xlZF9uYW1lKQoJKHN5bWJvbF9uYXR1cmFsX25h bWUsIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2UpCgkoc3ltYm9sX2RlbWFu Z2xlZF9uYW1lLCBzeW1ib2xfbWF0Y2hlc19kb21haW4pOiBBZGQgbGFuZ3Vh Z2VfZC4KCSogdGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhwOiBGaXgg InNldCBsYW5ndWFnZSIgdGVzdC4KZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmls ZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgppbmRleCBiNTA3ZDNlLi5mMzRkY2Zh IDEwMDY0NAotLS0gYS9nZGIvTWFrZWZpbGUuaW4KKysrIGIvZ2RiL01ha2Vm aWxlLmluCkBAIC02NTQsNiArNjU0LDcgQEAgU0ZJTEVTID0gYWRhLWV4cC55 IGFkYS1sYW5nLmMgYWRhLXR5cGVwcmludC5jIGFkYS12YWxwcmludC5jIGFk YS10YXNrcy5jIFwKIAljaGFyc2V0LmMgY2xpLW91dC5jIGNvZmZyZWFkLmMg Y29mZi1wZS1yZWFkLmMgXAogCWNvbXBsYWludHMuYyBjb21wbGV0ZXIuYyBj b3JlZmlsZS5jIFwKIAljcC1hYmkuYyBjcC1zdXBwb3J0LmMgY3AtbmFtZXNw YWNlLmMgY3AtdmFscHJpbnQuYyBcCisJZC1sYW5nLmMgZC12YWxwcmludC5j IFwKIAljcC1uYW1lLXBhcnNlci55IFwKIAlkYnhyZWFkLmMgZGVtYW5nbGUu YyBkaWN0aW9uYXJ5LmMgZGlzYXNtLmMgZG91Ymxlc3QuYyBkdW1teS1mcmFt ZS5jIFwKIAlkd2FyZjJleHByLmMgZHdhcmYybG9jLmMgZHdhcmYycmVhZC5j IGR3YXJmMi1mcmFtZS5jIFwKQEAgLTcyMSw3ICs3MjIsNyBAQCBjbGktb3V0 LmggZ2RiX2V4cGF0LmggYnJlYWtwb2ludC5oIGluZmNhbGwuaCBvYnNkLXRk ZXAuaCBcCiBleGVjLmggbTMyci10ZGVwLmggb3NhYmkuaCBnZGJjb3JlLmgg c29saWItc29tLmggXAogaTM4NmJzZC1uYXQuaCB4bWwtc3VwcG9ydC5oIHht bC10ZGVzYy5oIGFscGhhYnNkLXRkZXAuaCBnZGJfb2JzdGFjay5oIFwKIGlh NjQtdGRlcC5oIGFkYS1sYW5nLmggdmFyb2JqLmggZnJ2LXRkZXAuaCBudG8t dGRlcC5oIHNlcmlhbC5oIFwKLWMtbGFuZy5oIGZyYW1lLmggZXZlbnQtbG9v cC5oIGJsb2NrLmggY2xpL2NsaS1zZXRzaG93LmgJXAorYy1sYW5nLmggZC1s YW5nLmggZnJhbWUuaCBldmVudC1sb29wLmggYmxvY2suaCBjbGkvY2xpLXNl dHNob3cuaAlcCiBjbGkvY2xpLWRlY29kZS5oIGNsaS9jbGktY21kcy5oIGNs aS9jbGktZHVtcC5oIFwKIGNsaS9jbGktc2NyaXB0LmggbWFjcm90YWIuaCBz eW10YWIuaCB2ZXJzaW9uLmggZ251bGliL3djaGFyLmluLmggXAogZ251bGli L3N0cmluZy5pbi5oIGdudWxpYi9zdHItdHdvLXdheS5oIGdudWxpYi9leHRy YS9saW5rLXdhcm5pbmcuaCBcCkBAIC04MjYsNyArODI3LDcgQEAgQ09NTU9O X09CUyA9ICQoREVQRklMRVMpICQoQ09ORklHX09CUykgJChZWU9CSikgXAog CWRieHJlYWQubyBjb2ZmcmVhZC5vIGNvZmYtcGUtcmVhZC5vIFwKIAlkd2Fy ZjJyZWFkLm8gbWlwc3JlYWQubyBzdGFic3JlYWQubyBjb3JlZmlsZS5vIFwK IAlkd2FyZjJleHByLm8gZHdhcmYybG9jLm8gZHdhcmYyLWZyYW1lLm8gXAot CWFkYS1sYW5nLm8gYy1sYW5nLm8gZi1sYW5nLm8gb2JqYy1sYW5nLm8gXAor CWFkYS1sYW5nLm8gYy1sYW5nLm8gZC1sYW5nLm8gZi1sYW5nLm8gb2JqYy1s YW5nLm8gXAogCWFkYS10YXNrcy5vIFwKIAl1aS1vdXQubyBjbGktb3V0Lm8g XAogCXZhcm9iai5vIHZlYy5vIHdyYXBwZXIubyBcCkBAIC04MzYsNyArODM3 LDggQEAgQ09NTU9OX09CUyA9ICQoREVQRklMRVMpICQoQ09ORklHX09CUykg JChZWU9CSikgXAogCXNlbnRpbmVsLWZyYW1lLm8gXAogCWNvbXBsYWludHMu byB0eXBlcHJpbnQubyBcCiAJYWRhLXR5cGVwcmludC5vIGMtdHlwZXByaW50 Lm8gZi10eXBlcHJpbnQubyBtMi10eXBlcHJpbnQubyBcCi0JYWRhLXZhbHBy aW50Lm8gYy12YWxwcmludC5vIGNwLXZhbHByaW50Lm8gZi12YWxwcmludC5v IG0yLXZhbHByaW50Lm8gXAorCWFkYS12YWxwcmludC5vIGMtdmFscHJpbnQu byBjcC12YWxwcmludC5vIGQtdmFscHJpbnQubyBmLXZhbHByaW50Lm8gXAor CW0yLXZhbHByaW50Lm8gXAogCXNlcmlhbC5vIG1kZWJ1Z3JlYWQubyB0b3Au byB1dGlscy5vIFwKIAl1aS1maWxlLm8gXAogCXVzZXItcmVncy5vIFwKZGlm ZiAtLWdpdCBhL2dkYi9jLWxhbmcuYyBiL2dkYi9jLWxhbmcuYwppbmRleCBm ZWZkNjc1Li5kMjg1OTRkIDEwMDY0NAotLS0gYS9nZGIvYy1sYW5nLmMKKysr IGIvZ2RiL2MtbGFuZy5jCkBAIC0yNTMsNyArMjUzLDcgQEAgcHJpbnRfd2No YXIgKGdkYl93aW50X3QgdywgY29uc3QgZ2RiX2J5dGUgKm9yaWcsIGludCBv cmlnX2xlbiwKICAgIHN0cmluZyB3aG9zZSBkZWxpbWl0ZXIgaXMgUVVPVEVS LiAgTm90ZSB0aGF0IHRoYXQgZm9ybWF0IGZvciBwcmludGluZwogICAgY2hh cmFjdGVycyBhbmQgc3RyaW5ncyBpcyBsYW5ndWFnZSBzcGVjaWZpYy4gKi8K IAotc3RhdGljIHZvaWQKK3ZvaWQKIGNfZW1pdF9jaGFyIChpbnQgYywgc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBx dW90ZXIpCiB7CiAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2Ri YXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7CkBAIC0x MTM1LDcgKzExMzUsNyBAQCBjX2xhbmd1YWdlX2FyY2hfaW5mbyAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCiAgIGxhaS0+Ym9vbF90eXBlX2RlZmF1bHQg PSBidWlsdGluLT5idWlsdGluX2ludDsKIH0KIAotc3RhdGljIGNvbnN0IHN0 cnVjdCBleHBfZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9jID0gCitjb25z dCBzdHJ1Y3QgZXhwX2Rlc2NyaXB0b3IgZXhwX2Rlc2NyaXB0b3JfYyA9IAog ewogICBwcmludF9zdWJleHBfc3RhbmRhcmQsCiAgIG9wZXJhdG9yX2xlbmd0 aF9zdGFuZGFyZCwKZGlmZiAtLWdpdCBhL2dkYi9jLWxhbmcuaCBiL2dkYi9j LWxhbmcuaAppbmRleCA0MjNjZWUwLi40MDRjMjEyIDEwMDY0NAotLS0gYS9n ZGIvYy1sYW5nLmgKKysrIGIvZ2RiL2MtbGFuZy5oCkBAIC04Nyw2ICs4Nywx MCBAQCBleHRlcm4gdm9pZCBjX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAq IHN0cmVhbSwgc3RydWN0IHR5cGUgKmVsdHR5cGUsCiBleHRlcm4gdm9pZCBj X2xhbmd1YWdlX2FyY2hfaW5mbyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs CiAJCQkJICBzdHJ1Y3QgbGFuZ3VhZ2VfYXJjaF9pbmZvICpsYWkpOwogCitl eHRlcm4gY29uc3Qgc3RydWN0IGV4cF9kZXNjcmlwdG9yIGV4cF9kZXNjcmlw dG9yX2M7CisKK2V4dGVybiB2b2lkIGNfZW1pdF9jaGFyIChpbnQgYywgc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBx dW90ZXIpOworCiAvKiBUaGVzZSBhcmUgaW4gYy10eXBlcHJpbnQuYzogKi8K IAogZXh0ZXJuIHZvaWQgY190eXBlX3ByaW50X2Jhc2UgKHN0cnVjdCB0eXBl ICosIHN0cnVjdCB1aV9maWxlICosIGludCwgaW50KTsKZGlmZiAtLWdpdCBh L2dkYi9kLWxhbmcuYyBiL2dkYi9kLWxhbmcuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4zMTdlNmY5Ci0tLSAvZGV2L251bGwKKysr IGIvZ2RiL2QtbGFuZy5jCkBAIC0wLDAgKzEsMjgzIEBACisvKiBEIGxhbmd1 YWdlIHN1cHBvcnQgcm91dGluZXMgZm9yIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KKworICAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAyMDA5 LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBU aGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisKKyAgIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisjaW5jbHVkZSAic3lt dGFiLmgiCisjaW5jbHVkZSAibGFuZ3VhZ2UuaCIKKyNpbmNsdWRlICJkLWxh bmcuaCIKKyNpbmNsdWRlICJjLWxhbmcuaCIKKyNpbmNsdWRlICJnZGJfc3Ry aW5nLmgiCisjaW5jbHVkZSAicGFyc2VyLWRlZnMuaCIKKyNpbmNsdWRlICJn ZGJfb2JzdGFjay5oIgorCisjaW5jbHVkZSA8Y3R5cGUuaD4KKworCitzdGF0 aWMgY29uc3QgY2hhciogbWFuZ2xlZF9zdHI7CisvKiBUZW1wb3Jhcnkgb2Jz dGFjayB1c2VkIGZvciBob2xkaW5nIHN0cmluZ3MuICAqLworc3RhdGljIHN0 cnVjdCBvYnN0YWNrIHRlbXBidWY7CisKKy8qIEV4dHJhY3QgaWRlbnRpZmll cnMgZnJvbSBNQU5HTEVEX1NUUiBhbmQgYXBwZW5kIGl0IHRvIFRFTVBCVUYu CisgICBSZXR1cm4gMSBvbiBzdWNjZXNzIG9yIDAgb24gZmFpbHVyZS4gICov CitzdGF0aWMgaW50CitleHRyYWN0X2lkZW50aWZpZXJzICh2b2lkKQorewor ICBsb25nIGkgPSAwOworCisgIHdoaWxlIChpc2RpZ2l0ICgqbWFuZ2xlZF9z dHIpKQorICAgIHsKKyAgICAgIGkgPSBzdHJ0b2wgKG1hbmdsZWRfc3RyLCBO VUxMLCAxMCk7CisgICAgICBtYW5nbGVkX3N0cisrOworICAgICAgaWYgKGkg PD0gMCAgJiYgc3RybGVuIChtYW5nbGVkX3N0cikgPCBpKQorICAgICAgICBy ZXR1cm4gMDsKKyAgICAgIG9ic3RhY2tfZ3JvdyAoJnRlbXBidWYsIG1hbmds ZWRfc3RyLCBpKTsKKyAgICAgIG1hbmdsZWRfc3RyICs9IGk7CisgICAgICBv YnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgIi4iKTsKKyAgICB9CisgIGlm ICgqbWFuZ2xlZF9zdHIgPT0gJ1wwJyB8fCBpID09IDApCisgICAgcmV0dXJu IDA7CisgIG9ic3RhY2tfYmxhbmsoJnRlbXBidWYsIC0xKTsKKyAgcmV0dXJu IDE7Cit9CisKKy8qIEV4dHJhY3QgYW5kIGRlbWFuZ2xlIHR5cGUgZnJvbSBN QU5HTEVEX1NUUiBhbmQgYXBwZW5kIGl0IHRvIFRFTVBCVUYuCisgICBSZXR1 cm4gMSBvbiBzdWNjZXNzIG9yIDAgb24gZmFpbHVyZS4gICovCitzdGF0aWMg aW50CitleHRyYWN0X3R5cGVfaW5mbyAodm9pZCkKK3sKKyAgaWYgKCptYW5n bGVkX3N0ciA9PSAnXDAnKQorICAgIHJldHVybiAwOworICBzd2l0Y2ggKCpt YW5nbGVkX3N0cisrKQorICAgIHsKKyAgICAgIGNhc2UgJ0EnOiAvKiBkeW5h bWljIGFycmF5ICovCisgICAgICBjYXNlICdHJzogLyogc3RhdGljIGFycmF5 ICovCisgICAgICBjYXNlICdIJzogLyogYXNzb2NpYXRpdmUgYXJyYXkgKi8K KwlpZiAoIWV4dHJhY3RfdHlwZV9pbmZvICgpKQorCSAgcmV0dXJuIDA7CisJ b2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJbXSIpOworCXJldHVybiAx OworICAgICAgY2FzZSAnUCc6IC8qIHBvaW50ZXIgKi8KKwlpZiAoIWV4dHJh Y3RfdHlwZV9pbmZvICgpKQorCSAgcmV0dXJuIDA7CisJb2JzdGFja19ncm93 X3N0ciAoJnRlbXBidWYsICIqIik7CisJcmV0dXJuIDE7CisgICAgICBjYXNl ICdSJzogLyogcmVmZXJlbmNlICovCisJaWYgKCFleHRyYWN0X3R5cGVfaW5m byAoKSkKKwkgIHJldHVybiAwOworCW9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1w YnVmLCAiJiIpOworCXJldHVybiAxOworICAgICAgY2FzZSAnWic6IC8qIHJl dHVybiB2YWx1ZSAqLworCXJldHVybiBleHRyYWN0X3R5cGVfaW5mbyAoKTsK KyAgICAgIGNhc2UgJ0onOiAvKiBvdXQgKi8KKwlvYnN0YWNrX2dyb3dfc3Ry ICgmdGVtcGJ1ZiwgIm91dCAiKTsKKwlyZXR1cm4gZXh0cmFjdF90eXBlX2lu Zm8gKCk7CisgICAgICBjYXNlICdLJzogLyogaW5vdXQgKi8KKwlvYnN0YWNr X2dyb3dfc3RyICgmdGVtcGJ1ZiwgImlub3V0ICIpOworCXJldHVybiBleHRy YWN0X3R5cGVfaW5mbyAoKTsKKyAgICAgIGNhc2UgJ0UnOiAvKiBlbnVtICov CisgICAgICBjYXNlICdUJzogLyogdHlwZWRlZiAqLworICAgICAgY2FzZSAn RCc6IC8qIGRlbGVnYXRlICovCisgICAgICBjYXNlICdDJzogLyogY2xhc3Mg Ki8KKyAgICAgIGNhc2UgJ1MnOiAvKiBzdHJ1Y3QgKi8KKwlyZXR1cm4gZXh0 cmFjdF9pZGVudGlmaWVycyAoKTsKKworICAgICAgLyogYmFzaWMgdHlwZXM6 ICovCisgICAgICBjYXNlICduJzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBi dWYsICJub25lIik7IHJldHVybiAxOworICAgICAgY2FzZSAndic6IG9ic3Rh Y2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAidm9pZCIpOyByZXR1cm4gMTsKKyAg ICAgIGNhc2UgJ2cnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImJ5 dGUiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdoJzogb2JzdGFja19ncm93 X3N0ciAoJnRlbXBidWYsICJ1Ynl0ZSIpOyByZXR1cm4gMTsKKyAgICAgIGNh c2UgJ3MnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgInNob3J0Iik7 IHJldHVybiAxOworICAgICAgY2FzZSAndCc6IG9ic3RhY2tfZ3Jvd19zdHIg KCZ0ZW1wYnVmLCAidXNob3J0Iik7IHJldHVybiAxOworICAgICAgY2FzZSAn aSc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiaW50Iik7IHJldHVy biAxOworICAgICAgY2FzZSAnayc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1w YnVmLCAidWludCIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2wnOiBvYnN0 YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImxvbmciKTsgcmV0dXJuIDE7Cisg ICAgICBjYXNlICdtJzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJ1 bG9uZyIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2YnOiBvYnN0YWNrX2dy b3dfc3RyICgmdGVtcGJ1ZiwgImZsb2F0Iik7IHJldHVybiAxOworICAgICAg Y2FzZSAnZCc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiZG91Ymxl Iik7IHJldHVybiAxOworICAgICAgY2FzZSAnZSc6IG9ic3RhY2tfZ3Jvd19z dHIgKCZ0ZW1wYnVmLCAicmVhbCIpOyByZXR1cm4gMTsKKworICAgICAgLyog aW1hZ2luYXJ5IGFuZCBjb21wbGV4OiAqLworICAgICAgY2FzZSAnbyc6IG9i c3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiaWZsb2F0Iik7IHJldHVybiAx OworICAgICAgY2FzZSAncCc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVm LCAiaWRvdWJsZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2onOiBvYnN0 YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImlyZWFsIik7IHJldHVybiAxOwor ICAgICAgY2FzZSAncSc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAi Y2Zsb2F0Iik7IHJldHVybiAxOworICAgICAgY2FzZSAncic6IG9ic3RhY2tf Z3Jvd19zdHIgKCZ0ZW1wYnVmLCAiY2RvdWJsZSIpOyByZXR1cm4gMTsKKyAg ICAgIGNhc2UgJ2MnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImNy ZWFsIik7IHJldHVybiAxOworCisgICAgICAvKiBvdGhlciB0eXBlczogKi8K KyAgICAgIGNhc2UgJ2InOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1Ziwg ImJpdCIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2EnOiBvYnN0YWNrX2dy b3dfc3RyICgmdGVtcGJ1ZiwgImNoYXIiKTsgcmV0dXJuIDE7CisgICAgICBj YXNlICd1Jzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJ3Y2hhciIp OyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ3cnOiBvYnN0YWNrX2dyb3dfc3Ry ICgmdGVtcGJ1ZiwgImRjaGFyIik7IHJldHVybiAxOworCisgICAgICBkZWZh dWx0OgorCW9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAidW5rbm93biIp OworCXJldHVybiAxOworICAgIH0KK30KKworLyogSW1wbGVtZW50cyB0aGUg bGFfZGVtYW5nbGUgbGFuZ3VhZ2VfZGVmbiByb3V0aW5lIGZvciBsYW5ndWFn ZSBELiAgKi8KK2NoYXIgKgorZF9kZW1hbmdsZSAoY29uc3QgY2hhciogc3lt Ym9sLCBpbnQgb3B0aW9ucykKK3sKKyAgY2hhciogb3V0X3N0cjsKKyAgdW5z aWduZWQgY2hhciBpc19mdW5jID0gMDsKKworICBtYW5nbGVkX3N0ciA9IHN5 bWJvbDsKKworICBpZiAobWFuZ2xlZF9zdHIgPT0gTlVMTCkKKyAgICByZXR1 cm4gTlVMTDsKKyAgZWxzZSBpZiAoc3RyY21wIChtYW5nbGVkX3N0ciwgIl9E bWFpbiIpID09IDApCisgICAgcmV0dXJuIHhzdHJkdXAgKCJEIG1haW4iKTsK KworICBvYnN0YWNrX2luaXQgKCZ0ZW1wYnVmKTsKKyAgCisgIGlmIChtYW5n bGVkX3N0clswXSA9PSAnXycgJiYgbWFuZ2xlZF9zdHJbMV0gPT0gJ0QnKQor ICAgIHsKKyAgICAgIG1hbmdsZWRfc3RyICs9IDI7CisgICAgICBpc19mdW5j ID0gMTsKKyAgICB9IGVsc2UgaWYgKHN0cm5jbXAgKG1hbmdsZWRfc3RyLCAi X19DbGFzc18iLCA4KSA9PSAwKQorICAgICAgbWFuZ2xlZF9zdHIgKz0gODsK KyAgICBlbHNlIGlmIChzdHJuY21wIChtYW5nbGVkX3N0ciwgIl9faW5pdF8i LCA3KSA9PSAwKQorICAgICAgbWFuZ2xlZF9zdHIgKz0gNzsKKyAgICBlbHNl IGlmIChzdHJuY21wIChtYW5nbGVkX3N0ciwgIl9fdnRibF8iLCA3KSA9PSAw KQorICAgICAgbWFuZ2xlZF9zdHIgKz0gNzsKKyAgICBlbHNlIGlmIChzdHJu Y21wIChtYW5nbGVkX3N0ciwgIl9fbW9kY3Rvcl8iLCAxMCkgPT0gMCkKKyAg ICAgIG1hbmdsZWRfc3RyICs9IDEwOworICAgIGVsc2UgaWYgKHN0cm5jbXAg KG1hbmdsZWRfc3RyLCAiX19tb2RkdG9yXyIsIDEwKSA9PSAwKQorICAgICAg bWFuZ2xlZF9zdHIgKz0gMTA7CisgICAgZWxzZSBpZiAoc3RybmNtcCAobWFu Z2xlZF9zdHIsICJfX01vZHVsZUluZm9fIiwgMTMpID09IDApCisgICAgICBt YW5nbGVkX3N0ciArPSAxMzsKKyAgICBlbHNlCisgICAgICB7CisJb2JzdGFj a19mcmVlICgmdGVtcGJ1ZiwgTlVMTCk7CisJcmV0dXJuIE5VTEw7CisgICAg ICB9CisgIAorICBpZiAoIWV4dHJhY3RfaWRlbnRpZmllcnMgKCkpCisgICAg eworICAgICAgb2JzdGFja19mcmVlICgmdGVtcGJ1ZiwgTlVMTCk7CisgICAg ICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgb2JzdGFja19ncm93X3N0ciAo JnRlbXBidWYsICIoIik7CisgIGlmIChpc19mdW5jID09IDEgJiYgKm1hbmds ZWRfc3RyID09ICdGJykKKyAgICB7CisgICAgICBtYW5nbGVkX3N0cisrOwor ICAgICAgd2hpbGUgKCptYW5nbGVkX3N0ciAhPSAnXDAnICYmICptYW5nbGVk X3N0ciAhPSAnWicpCisJeworCSAgaWYgKGlzX2Z1bmMgPT0gMSkKKwkgICAg aXNfZnVuYysrOworCSAgZWxzZQorCSAgICBvYnN0YWNrX2dyb3dfc3RyICgm dGVtcGJ1ZiwgIiwgIik7CisJICBpZiAoIWV4dHJhY3RfdHlwZV9pbmZvICgp KQorCSAgICB7CisJICAgICAgb2JzdGFja19mcmVlICgmdGVtcGJ1ZiwgTlVM TCk7CisJICAgICAgcmV0dXJuIE5VTEw7CisJICAgfQorCX0KKyAgICAgfQor ICBvYnN0YWNrX2dyb3dfc3RyMCAoJnRlbXBidWYsICIpIik7CisKKyAgLyog RG9lc24ndCBkaXNwbGF5IHRoZSByZXR1cm4gdHlwZSwgYnV0IHdvdWxkbid0 IGJlIHRvbyBoYXJkIHRvIGRvLiAgKi8KKworICBvdXRfc3RyID0geHN0cmR1 cCAob2JzdGFja19maW5pc2ggKCZ0ZW1wYnVmKSk7CisgIG9ic3RhY2tfZnJl ZSAoJnRlbXBidWYsIE5VTEwpOworICByZXR1cm4gb3V0X3N0cjsKK30KKwor LyogVGFibGUgbWFwcGluZyBvcGNvZGVzIGludG8gc3RyaW5ncyBmb3IgcHJp bnRpbmcgb3BlcmF0b3JzCisgICBhbmQgcHJlY2VkZW5jZXMgb2YgdGhlIG9w ZXJhdG9ycy4gICovCitzdGF0aWMgY29uc3Qgc3RydWN0IG9wX3ByaW50IGRf b3BfcHJpbnRfdGFiW10gPQoreworICB7IiwiLCBCSU5PUF9DT01NQSwgUFJF Q19DT01NQSwgMH0sCisgIHsiPSIsIEJJTk9QX0FTU0lHTiwgUFJFQ19BU1NJ R04sIDF9LAorICB7Inx8IiwgQklOT1BfTE9HSUNBTF9PUiwgUFJFQ19MT0dJ Q0FMX09SLCAwfSwKKyAgeyImJiIsIEJJTk9QX0xPR0lDQUxfQU5ELCBQUkVD X0xPR0lDQUxfQU5ELCAwfSwKKyAgeyJ8IiwgQklOT1BfQklUV0lTRV9JT1Is IFBSRUNfQklUV0lTRV9JT1IsIDB9LAorICB7Il4iLCBCSU5PUF9CSVRXSVNF X1hPUiwgUFJFQ19CSVRXSVNFX1hPUiwgMH0sCisgIHsiJiIsIEJJTk9QX0JJ VFdJU0VfQU5ELCBQUkVDX0JJVFdJU0VfQU5ELCAwfSwKKyAgeyI9PSIsIEJJ Tk9QX0VRVUFMLCBQUkVDX0VRVUFMLCAwfSwKKyAgeyIhPSIsIEJJTk9QX05P VEVRVUFMLCBQUkVDX0VRVUFMLCAwfSwKKyAgeyI8PSIsIEJJTk9QX0xFUSwg UFJFQ19PUkRFUiwgMH0sCisgIHsiPj0iLCBCSU5PUF9HRVEsIFBSRUNfT1JE RVIsIDB9LAorICB7Ij4iLCBCSU5PUF9HVFIsIFBSRUNfT1JERVIsIDB9LAor ICB7IjwiLCBCSU5PUF9MRVNTLCBQUkVDX09SREVSLCAwfSwKKyAgeyI+PiIs IEJJTk9QX1JTSCwgUFJFQ19TSElGVCwgMH0sCisgIHsiPDwiLCBCSU5PUF9M U0gsIFBSRUNfU0hJRlQsIDB9LAorICB7IisiLCBCSU5PUF9BREQsIFBSRUNf QURELCAwfSwKKyAgeyItIiwgQklOT1BfU1VCLCBQUkVDX0FERCwgMH0sCisg IHsiKiIsIEJJTk9QX01VTCwgUFJFQ19NVUwsIDB9LAorICB7Ii8iLCBCSU5P UF9ESVYsIFBSRUNfTVVMLCAwfSwKKyAgeyIlIiwgQklOT1BfUkVNLCBQUkVD X01VTCwgMH0sCisgIHsiQCIsIEJJTk9QX1JFUEVBVCwgUFJFQ19SRVBFQVQs IDB9LAorICB7Ii0iLCBVTk9QX05FRywgUFJFQ19QUkVGSVgsIDB9LAorICB7 IiEiLCBVTk9QX0xPR0lDQUxfTk9ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHsi fiIsIFVOT1BfQ09NUExFTUVOVCwgUFJFQ19QUkVGSVgsIDB9LAorICB7Iioi LCBVTk9QX0lORCwgUFJFQ19QUkVGSVgsIDB9LAorICB7IiYiLCBVTk9QX0FE RFIsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyJzaXplb2YgIiwgVU5PUF9TSVpF T0YsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyIrKyIsIFVOT1BfUFJFSU5DUkVN RU5ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHsiLS0iLCBVTk9QX1BSRURFQ1JF TUVOVCwgUFJFQ19QUkVGSVgsIDB9LAorICB7TlVMTCwgMCwgMCwgMH0KK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiBkX2xhbmd1 YWdlX2RlZm4gPQoreworICAiZCIsCisgIGxhbmd1YWdlX2QsCisgIHJhbmdl X2NoZWNrX29mZiwKKyAgdHlwZV9jaGVja19vZmYsCisgIGNhc2Vfc2Vuc2l0 aXZlX29uLAorICBhcnJheV9yb3dfbWFqb3IsCisgIG1hY3JvX2V4cGFuc2lv bl9jLAorICAmZXhwX2Rlc2NyaXB0b3JfYywKKyAgY19wYXJzZSwKKyAgY19l cnJvciwKKyAgbnVsbF9wb3N0X3BhcnNlciwKKyAgY19wcmludGNoYXIsCQkJ LyogUHJpbnQgYSBjaGFyYWN0ZXIgY29uc3RhbnQuICAqLworICBjX3ByaW50 c3RyLAkJCS8qIEZ1bmN0aW9uIHRvIHByaW50IHN0cmluZyBjb25zdGFudC4g ICovCisgIGNfZW1pdF9jaGFyLAkJCS8qIFByaW50IGEgc2luZ2xlIGNoYXIu ICAqLworICBjX3ByaW50X3R5cGUsCQkJLyogUHJpbnQgYSB0eXBlIHVzaW5n IGFwcHJvcHJpYXRlIHN5bnRheC4gICovCisgIGNfcHJpbnRfdHlwZWRlZiwJ CS8qIFByaW50IGEgdHlwZWRlZiB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXgu ICAqLworICBkX3ZhbF9wcmludCwJCQkvKiBQcmludCBhIHZhbHVlIHVzaW5n IGFwcHJvcHJpYXRlIHN5bnRheC4gICovCisgIGNfdmFsdWVfcHJpbnQsCQkv KiBQcmludCBhIHRvcC1sZXZlbCB2YWx1ZS4gICovCisgIE5VTEwsCQkJCS8q IExhbmd1YWdlIHNwZWNpZmljIHNraXBfdHJhbXBvbGluZS4gICovCisgICJ0 aGlzIiwKKyAgYmFzaWNfbG9va3VwX3N5bWJvbF9ub25sb2NhbCwgCisgIGJh c2ljX2xvb2t1cF90cmFuc3BhcmVudF90eXBlLAorICBkX2RlbWFuZ2xlLAkJ CS8qIExhbmd1YWdlIHNwZWNpZmljIHN5bWJvbCBkZW1hbmdsZXIuICAqLwor ICBOVUxMLAkJCQkvKiBMYW5ndWFnZSBzcGVjaWZpYyBjbGFzc19uYW1lX2Zy b21fcGh5c25hbWUuICAqLworICBkX29wX3ByaW50X3RhYiwJCS8qIEV4cHJl c3Npb24gb3BlcmF0b3JzIGZvciBwcmludGluZy4gICovCisgIDEsCQkJCS8q IEMtc3R5bGUgYXJyYXlzLiAgKi8KKyAgMCwJCQkJLyogU3RyaW5nIGxvd2Vy IGJvdW5kLiAgKi8KKyAgZGVmYXVsdF93b3JkX2JyZWFrX2NoYXJhY3RlcnMs CisgIGRlZmF1bHRfbWFrZV9zeW1ib2xfY29tcGxldGlvbl9saXN0LAorICBj X2xhbmd1YWdlX2FyY2hfaW5mbywKKyAgZGVmYXVsdF9wcmludF9hcnJheV9p bmRleCwKKyAgZGVmYXVsdF9wYXNzX2J5X3JlZmVyZW5jZSwKKyAgY19nZXRf c3RyaW5nLAorICBMQU5HX01BR0lDCit9OworCit2b2lkCitfaW5pdGlhbGl6 ZV9kX2xhbmd1YWdlICh2b2lkKQoreworICBhZGRfbGFuZ3VhZ2UgKCZkX2xh bmd1YWdlX2RlZm4pOworfQpkaWZmIC0tZ2l0IGEvZ2RiL2QtbGFuZy5oIGIv Z2RiL2QtbGFuZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjZhZjJjNjYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvZC1sYW5nLmgK QEAgLTAsMCArMSwzMSBAQAorLyogRCBsYW5ndWFnZSBzdXBwb3J0IGRlZmlu aXRpb25zIGZvciBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENvcHly aWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor CisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisj aWYgIWRlZmluZWQgKERfTEFOR19IKQorI2RlZmluZSBEX0xBTkdfSCAxCisK KyNpbmNsdWRlICJzeW10YWIuaCIKKworZXh0ZXJuIGNoYXIqIGRfZGVtYW5n bGUgKGNvbnN0IGNoYXIqIG1hbmdsZWQsIGludCBvcHRpb25zKTsKKworZXh0 ZXJuIGludCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAorCQkJaW50IGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCisJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgcmVjdXJzZSwKKwkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKTsKKyNlbmRpZiAvKiAhZGVmaW5lZCAoRF9MQU5H X0gpICovCmRpZmYgLS1naXQgYS9nZGIvZC12YWxwcmludC5jIGIvZ2RiL2Qt dmFscHJpbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li42N2IzMmI3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL2QtdmFscHJpbnQu YwpAQCAtMCwwICsxLDkxIEBACisvKiBTdXBwb3J0IGZvciBwcmludGluZyBE IHZhbHVlcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5 cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4K KworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAg IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgImRl ZnMuaCIKKyNpbmNsdWRlICJnZGJ0eXBlcy5oIgorI2luY2x1ZGUgImdkYmNv cmUuaCIKKyNpbmNsdWRlICJkLWxhbmcuaCIKKyNpbmNsdWRlICJjLWxhbmcu aCIKKworLyogQXNzdW1pbmcgdGhhdCBUWVBFIGlzIGEgVFlQRV9DT0RFX1NU UlVDVCwgdmVyaWZ5IHRoYXQgVFlQRSBpcworICAgYSBkeW5hbWljIGFycmF5 LCBhbmQgdGhlbiBwcmludCBpdHMgdmFsdWUgdG8gU1RSRUFNLiAgUmV0dXJu CisgICB0aGUgbnVtYmVyIG9mIHN0cmluZyBjaGFyYWN0ZXJzIHByaW50ZWQs IG9yIC0xIGlmIFRZUEUgaXMgbm90CisgICBhIGR5bmFtaWMgYXJyYXkuICAq Lworc3RhdGljIGludAorZHluYW1pY19hcnJheV90eXBlIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisJCSAgICBpbnQg ZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKwkJICAgIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorCQkgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCit7Cisg IGlmIChUWVBFX05GSUVMRFMgKHR5cGUpID09IDIKKyAgICAgICYmIFRZUEVf Q09ERSAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCAwKSkgPT0gVFlQRV9DT0RF X0lOVAorICAgICAgJiYgc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUs IDApLCAibGVuZ3RoIikgPT0gMAorICAgICAgJiYgc3RyY21wIChUWVBFX0ZJ RUxEX05BTUUgKHR5cGUsIDEpLCAicHRyIikgPT0gMCkKKyAgICB7CisgICAg ICBDT1JFX0FERFIgYWRkcjsKKyAgICAgIHN0cnVjdCB0eXBlICplbHR0eXBl OworICAgICAgc3RydWN0IHR5cGUgKnRydWVfdHlwZTsKKyAgICAgIHN0cnVj dCB0eXBlICpwdHJfdHlwZTsKKyAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90 eXBlOworICAgICAgY29uc3QgZ2RiX2J5dGUgKnB0cmFkZHI7CisgICAgICBz dHJ1Y3QgdmFsdWUgKnZhbDsKKyAgICAgIGludCBsZW5ndGg7CisKKyAgICAg IGxlbmd0aCA9IHVucGFja19maWVsZF9hc19sb25nICh0eXBlLCB2YWxhZGRy ICsgZW1iZWRkZWRfb2Zmc2V0LCAwKTsKKworICAgICAgcHRyX3R5cGUgPSBU WVBFX0ZJRUxEX1RZUEUgKHR5cGUsIDEpOworICAgICAgZWx0dHlwZSA9IGNo ZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHB0cl90eXBlKSk7Cisg ICAgICBhZGRyID0gdW5wYWNrX3BvaW50ZXIgKHB0cl90eXBlLAorCQkJICAg ICB2YWxhZGRyICsgVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIDEpIC8gOAor CQkJICAgICArIGVtYmVkZGVkX29mZnNldCk7CisgICAgICB0cnVlX3R5cGUg PSBjaGVja190eXBlZGVmIChlbHR0eXBlKTsKKworICAgICAgdHJ1ZV90eXBl ID0gbG9va3VwX2FycmF5X3JhbmdlX3R5cGUgKHRydWVfdHlwZSwgMCwgbGVu Z3RoIC0gMSk7CisgICAgICB2YWwgPSB2YWx1ZV9hdCAodHJ1ZV90eXBlLCBh ZGRyKTsKKyAgICAgIHB0cmFkZHIgPSB2YWx1ZV9jb250ZW50cyAodmFsKTsK KworICAgICAgcmV0dXJuIGRfdmFsX3ByaW50ICh0cnVlX3R5cGUsIHB0cmFk ZHIsIDAsIGFkZHIsIHN0cmVhbSwgcmVjdXJzZSArIDEsCisJCQkgIG9wdGlv bnMpOworICAgIH0KKyAgcmV0dXJuIC0xOworfQorCisvKiBJbXBsZW1lbnRz IHRoZSBsYV92YWxfcHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgRC4gICov CitpbnQKK2RfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCisgICAg ICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAorICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQoreworICBpbnQgcmV0 OworCisgIENIRUNLX1RZUEVERUYgKHR5cGUpOworICBzd2l0Y2ggKFRZUEVf Q09ERSAodHlwZSkpCisgICAgeworICAgICAgY2FzZSBUWVBFX0NPREVfU1RS VUNUOgorICAgICAgICByZXQgPSBkeW5hbWljX2FycmF5X3R5cGUgKHR5cGUs IHZhbGFkZHIsIGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywKKwkJCQkgIHN0 cmVhbSwgcmVjdXJzZSwgb3B0aW9ucyk7CisJaWYgKHJldCAhPSAtMSkKKwkg ICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisJcmV0ID0gY192YWxfcHJpbnQg KHR5cGUsIHZhbGFkZHIsIGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgc3Ry ZWFtLAorCQkJICAgcmVjdXJzZSwgb3B0aW9ucyk7CisgICAgfQorCisgIHJl dHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9nZGIvZGVmcy5oIGIvZ2RiL2Rl ZnMuaAppbmRleCBlOGExZGQ0Li5kNGE5YjE5IDEwMDY0NAotLS0gYS9nZGIv ZGVmcy5oCisrKyBiL2dkYi9kZWZzLmgKQEAgLTE4OCw2ICsxODgsNyBAQCBl bnVtIGxhbmd1YWdlCiAgICAgbGFuZ3VhZ2VfYXV0bywJCS8qIFBsYWNlaG9s ZGVyIGZvciBhdXRvbWF0aWMgc2V0dGluZyAqLwogICAgIGxhbmd1YWdlX2Ms CQkJLyogQyAqLwogICAgIGxhbmd1YWdlX2NwbHVzLAkJLyogQysrICovCisg ICAgbGFuZ3VhZ2VfZCwJCQkvKiBEICovCiAgICAgbGFuZ3VhZ2Vfb2JqYywJ CS8qIE9iamVjdGl2ZS1DICovCiAgICAgbGFuZ3VhZ2VfamF2YSwJCS8qIEph dmEgKi8KICAgICBsYW5ndWFnZV9mb3J0cmFuLAkJLyogRm9ydHJhbiAqLwpk aWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2Ri LnRleGluZm8KaW5kZXggODg3NTQ3Yi4uNjhiYTZmMyAxMDA2NDQKLS0tIGEv Z2RiL2RvYy9nZGIudGV4aW5mbworKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZv CkBAIC0yMTQsNiArMjE0LDEwIEBAIFlvdSBjYW4gdXNlIEB2YWx1ZXtHREJO fSB0byBkZWJ1ZyBwcm9ncmFtcyB3cml0dGVuIGluIEMgYW5kIENAdHsrK30u CiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIEByZWZ7U3VwcG9ydGVkIExh bmd1YWdlcywsU3VwcG9ydGVkIExhbmd1YWdlc30uCiBGb3IgbW9yZSBpbmZv cm1hdGlvbiwgc2VlIEByZWZ7QywsQyBhbmQgQysrfS4KIAorQGNpbmRleCBE CitTdXBwb3J0IGZvciBEIGlzIHBhcnRpYWwuICBGb3IgaW5mb3JtYXRpb24g b24gRCwgc2VlCitAcmVme0QsLER9LgorCiBAY2luZGV4IE1vZHVsYS0yCiBT dXBwb3J0IGZvciBNb2R1bGEtMiBpcyBwYXJ0aWFsLiAgRm9yIGluZm9ybWF0 aW9uIG9uIE1vZHVsYS0yLCBzZWUKIEByZWZ7TW9kdWxhLTIsLE1vZHVsYS0y fS4KQEAgLTEwNzMxLDYgKzEwNzM1LDkgQEAgQyBzb3VyY2UgZmlsZQogQGl0 ZW14IC5jKysKIENAdHsrK30gc291cmNlIGZpbGUKIAorQGl0ZW0gLmQKK0Qg c291cmNlIGZpbGUKKwogQGl0ZW0gLm0KIE9iamVjdGl2ZS1DIHNvdXJjZSBm aWxlCiAKQEAgLTExMDA4LDcgKzExMDE1LDcgQEAgYmVpbmcgc2V0IGF1dG9t YXRpY2FsbHkgYnkgQHZhbHVle0dEQk59LgogQG5vZGUgU3VwcG9ydGVkIExh bmd1YWdlcwogQHNlY3Rpb24gU3VwcG9ydGVkIExhbmd1YWdlcwogCi1AdmFs dWV7R0RCTn0gc3VwcG9ydHMgQywgQ0B0eysrfSwgT2JqZWN0aXZlLUMsIEZv cnRyYW4sIEphdmEsIFBhc2NhbCwKK0B2YWx1ZXtHREJOfSBzdXBwb3J0cyBD LCBDQHR7Kyt9LCBELCBPYmplY3RpdmUtQywgRm9ydHJhbiwgSmF2YSwgUGFz Y2FsLAogYXNzZW1ibHksIE1vZHVsYS0yLCBhbmQgQWRhLgogQGMgVGhpcyBp cyBmYWxzZSAuLi4KIFNvbWUgQHZhbHVle0dEQk59IGZlYXR1cmVzIG1heSBi ZSB1c2VkIGluIGV4cHJlc3Npb25zIHJlZ2FyZGxlc3Mgb2YgdGhlCkBAIC0x MTAyNyw2ICsxMTAzNCw3IEBAIGxhbmd1YWdlIHJlZmVyZW5jZSBvciB0dXRv cmlhbC4KIAogQG1lbnUKICogQzo6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgQyBhbmQgQ0B0eysrfQorKiBEOjogICAgICAgICAgICAgICAgICAgICAg ICAgICBECiAqIE9iamVjdGl2ZS1DOjogICAgICAgICAgICAgICAgIE9iamVj dGl2ZS1DCiAqIEZvcnRyYW46OiAgICAgICAgICAgICAgICAgICAgIEZvcnRy YW4KICogUGFzY2FsOjogICAgICAgICAgICAgICAgICAgICAgUGFzY2FsCkBA IC0xMTU2NCw2ICsxMTU3MiwxNCBAQCBJbiB0aGUgUG93ZXJQQyBhcmNoaXRl Y3R1cmUsIEB2YWx1ZXtHREJOfSBwcm92aWRlcyBhIHNldCBvZiBwc2V1ZG8t cmVnaXN0ZXJzCiB0byBpbnNwZWN0IEBjb2Rle19EZWNpbWFsMTI4fSB2YWx1 ZXMgc3RvcmVkIGluIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KIFNlZSBA cmVme1Bvd2VyUEMsLFBvd2VyUEN9IGZvciBtb3JlIGRldGFpbHMuCiAKK0Bu b2RlIEQKK0BzdWJzZWN0aW9uIEQKKworQGNpbmRleCBECitAdmFsdWV7R0RC Tn0gY2FuIGJlIHVzZWQgdG8gZGVidWcgcHJvZ3JhbXMgd3JpdHRlbiBpbiBE IGFuZCBjb21waWxlZCB3aXRoCitHREMsIExEQyBvciBETUQuIEN1cnJlbnRs eSBAdmFsdWV7R0RCTn0gc3VwcG9ydHMgb25seSBvbmUgRCBzcGVjaWZpYwor ZmVhdHVyZSAtIGR5bmFtaWMgYXJyYXlzLgorCiBAbm9kZSBPYmplY3RpdmUt QwogQHN1YnNlY3Rpb24gT2JqZWN0aXZlLUMKIApkaWZmIC0tZ2l0IGEvZ2Ri L2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKaW5kZXggNzI0MDE2 Zi4uZmJhM2Q1OCAxMDA2NDQKLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYworKysg Yi9nZGIvZHdhcmYycmVhZC5jCkBAIC03NjAwLDYgKzc2MDAsOSBAQCBzZXRf Y3VfbGFuZ3VhZ2UgKHVuc2lnbmVkIGludCBsYW5nLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgICBjYXNlIERXX0xBTkdfQ19wbHVzX3BsdXM6CiAgICAg ICBjdS0+bGFuZ3VhZ2UgPSBsYW5ndWFnZV9jcGx1czsKICAgICAgIGJyZWFr OworICAgIGNhc2UgRFdfTEFOR19EOgorICAgICAgY3UtPmxhbmd1YWdlID0g bGFuZ3VhZ2VfZDsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgRFdfTEFOR19G b3J0cmFuNzc6CiAgICAgY2FzZSBEV19MQU5HX0ZvcnRyYW45MDoKICAgICBj YXNlIERXX0xBTkdfRm9ydHJhbjk1OgpkaWZmIC0tZ2l0IGEvZ2RiL2xhbmd1 YWdlLmMgYi9nZGIvbGFuZ3VhZ2UuYwppbmRleCBkY2Q3MGIwLi5hYmE4YTll IDEwMDY0NAotLS0gYS9nZGIvbGFuZ3VhZ2UuYworKysgYi9nZGIvbGFuZ3Vh Z2UuYwpAQCAtNDg2LDYgKzQ4Niw3IEBAIGJpbm9wX3Jlc3VsdF90eXBlIChz dHJ1Y3QgdmFsdWUgKnYxLCBzdHJ1Y3QgdmFsdWUgKnYyKQogICAgIHsKICAg ICBjYXNlIGxhbmd1YWdlX2M6CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoK KyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpj OgogICAgICAgaWYgKFRZUEVfQ09ERSAodDEpID09IFRZUEVfQ09ERV9GTFQp CiAJcmV0dXJuIFRZUEVfQ09ERSAodDIpID09IFRZUEVfQ09ERV9GTFQgJiYg bDIgPiBsMSA/CkBAIC01OTcsNiArNTk4LDcgQEAgaW50ZWdyYWxfdHlwZSAo c3RydWN0IHR5cGUgKnR5cGUpCiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2Vf YzoKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3Vh Z2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICByZXR1cm4g KFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX0lOVCkgJiYKIAkoVFlQ RV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfRU5VTSkgPyAwIDogMTsKQEAg LTYzNyw2ICs2MzksNyBAQCBjaGFyYWN0ZXJfdHlwZSAoc3RydWN0IHR5cGUg KnR5cGUpCiAKICAgICBjYXNlIGxhbmd1YWdlX2M6CiAgICAgY2FzZSBsYW5n dWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2FzZSBs YW5ndWFnZV9vYmpjOgogICAgICAgcmV0dXJuIChUWVBFX0NPREUgKHR5cGUp ID09IFRZUEVfQ09ERV9JTlQpICYmCiAJVFlQRV9MRU5HVEggKHR5cGUpID09 IHNpemVvZiAoY2hhcikKQEAgLTY1OSw2ICs2NjIsNyBAQCBzdHJpbmdfdHlw ZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAKICAgICBjYXNlIGxhbmd1YWdlX2M6 CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdl X2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgLyogQyBkb2Vz IG5vdCBoYXZlIGRpc3RpbmN0IHN0cmluZyB0eXBlLiAqLwogICAgICAgcmV0 dXJuICgwKTsKQEAgLTY3OCw2ICs2ODIsNyBAQCBib29sZWFuX3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2M6 CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdl X2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgLyogTWlnaHQg YmUgbW9yZSBjbGVhbmx5IGhhbmRsZWQgYnkgaGF2aW5nIGEKICAgICAgICAg IFRZUEVfQ09ERV9JTlRfTk9UX0JPT0wgZm9yICh0aGUgZGVsZXRlZCkgQ0hJ TEwgYW5kIHN1Y2gKQEAgLTcxNyw2ICs3MjIsNyBAQCBzdHJ1Y3R1cmVkX3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlKQogICAgIHsKICAgICBjYXNlIGxhbmd1 YWdlX2M6CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxh bmd1YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgcmV0 dXJuIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9TVFJVQ1QpIHx8 CiAJKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1VOSU9OKSB8fApk aWZmIC0tZ2l0IGEvZ2RiL3N5bWZpbGUuYyBiL2dkYi9zeW1maWxlLmMKaW5k ZXggZWRhMjZjYy4uY2Y3YjQxYSAxMDA2NDQKLS0tIGEvZ2RiL3N5bWZpbGUu YworKysgYi9nZGIvc3ltZmlsZS5jCkBAIC0yNjE4LDYgKzI2MTgsNyBAQCBp bml0X2ZpbGVuYW1lX2xhbmd1YWdlX3RhYmxlICh2b2lkKQogICAgICAgZmls ZW5hbWVfbGFuZ3VhZ2VfdGFibGUgPQogCXhtYWxsb2MgKGZsX3RhYmxlX3Np emUgKiBzaXplb2YgKCpmaWxlbmFtZV9sYW5ndWFnZV90YWJsZSkpOwogICAg ICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdlICgiLmMiLCBsYW5ndWFnZV9jKTsK KyAgICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAoIi5kIiwgbGFuZ3VhZ2Vf ZCk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuQyIsIGxhbmd1 YWdlX2NwbHVzKTsKICAgICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAoIi5j YyIsIGxhbmd1YWdlX2NwbHVzKTsKICAgICAgIGFkZF9maWxlbmFtZV9sYW5n dWFnZSAoIi5jcCIsIGxhbmd1YWdlX2NwbHVzKTsKZGlmZiAtLWdpdCBhL2dk Yi9zeW10YWIuYyBiL2dkYi9zeW10YWIuYwppbmRleCAyOTE0MmRhLi5jMmNh Yjk2IDEwMDY0NAotLS0gYS9nZGIvc3ltdGFiLmMKKysrIGIvZ2RiL3N5bXRh Yi5jCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAic291cmNlLmgiCiAj aW5jbHVkZSAiZmlsZW5hbWVzLmgiCQkvKiBmb3IgRklMRU5BTUVfQ01QICov CiAjaW5jbHVkZSAib2JqYy1sYW5nLmgiCisjaW5jbHVkZSAiZC1sYW5nLmgi CiAjaW5jbHVkZSAiYWRhLWxhbmcuaCIKICNpbmNsdWRlICJwLWxhbmcuaCIK ICNpbmNsdWRlICJhZGRybWFwLmgiCkBAIC0zNDYsNiArMzQ3LDcgQEAgc3lt Ym9sX2luaXRfbGFuZ3VhZ2Vfc3BlY2lmaWMgKHN0cnVjdCBnZW5lcmFsX3N5 bWJvbF9pbmZvICpnc3ltYm9sLAogewogICBnc3ltYm9sLT5sYW5ndWFnZSA9 IGxhbmd1YWdlOwogICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3Vh Z2VfY3BsdXMKKyAgICAgIHx8IGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1 YWdlX2QKICAgICAgIHx8IGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1YWdl X2phdmEKICAgICAgIHx8IGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1YWdl X29iamMpCiAgICAgewpAQCAtNDQ5LDYgKzQ1MSwxNyBAQCBzeW1ib2xfZmlu ZF9kZW1hbmdsZWRfbmFtZSAoc3RydWN0IGdlbmVyYWxfc3ltYm9sX2luZm8g KmdzeW1ib2wsCiAJICByZXR1cm4gZGVtYW5nbGVkOwogCX0KICAgICB9Cisg IGlmIChnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9kCisgICAgICB8 fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9hdXRvKQorICAgIHsK KyAgICAgIGRlbWFuZ2xlZCA9CisJZF9kZW1hbmdsZShtYW5nbGVkLCAwKTsK KyAgICAgIGlmIChkZW1hbmdsZWQgIT0gTlVMTCkKKwl7CisJICBnc3ltYm9s LT5sYW5ndWFnZSA9IGxhbmd1YWdlX2Q7CisJICByZXR1cm4gZGVtYW5nbGVk OworCX0KKyAgICB9CiAgIHJldHVybiBOVUxMOwogfQogCkBAIC02MjYsNiAr NjM5LDcgQEAgc3ltYm9sX25hdHVyYWxfbmFtZSAoY29uc3Qgc3RydWN0IGdl bmVyYWxfc3ltYm9sX2luZm8gKmdzeW1ib2wpCiAgIHN3aXRjaCAoZ3N5bWJv bC0+bGFuZ3VhZ2UpCiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6 CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2VfamF2 YToKICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICBpZiAoZ3N5bWJv bC0+bGFuZ3VhZ2Vfc3BlY2lmaWMuY3BsdXNfc3BlY2lmaWMuZGVtYW5nbGVk X25hbWUgIT0gTlVMTCkKQEAgLTY1MSw2ICs2NjUsNyBAQCBzeW1ib2xfZGVt YW5nbGVkX25hbWUgKGNvbnN0IHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZv ICpnc3ltYm9sKQogICBzd2l0Y2ggKGdzeW1ib2wtPmxhbmd1YWdlKQogICAg IHsKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3Vh Z2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX2phdmE6CiAgICAgY2FzZSBsYW5n dWFnZV9vYmpjOgogICAgICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlX3NwZWNp ZmljLmNwbHVzX3NwZWNpZmljLmRlbWFuZ2xlZF9uYW1lICE9IE5VTEwpCkBA IC05NDAsNyArOTU1LDcgQEAgbG9va3VwX3N5bWJvbF9pbl9sYW5ndWFnZSAo Y29uc3QgY2hhciAqbmFtZSwgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywK IAogICBtb2RpZmllZF9uYW1lID0gbmFtZTsKIAotICAvKiBJZiB3ZSBhcmUg dXNpbmcgQysrIG9yIEphdmEsIGRlbWFuZ2xlIHRoZSBuYW1lIGJlZm9yZSBk b2luZyBhIGxvb2t1cCwgc28KKyAgLyogSWYgd2UgYXJlIHVzaW5nIEMrKywg RCwgb3IgSmF2YSwgZGVtYW5nbGUgdGhlIG5hbWUgYmVmb3JlIGRvaW5nIGEg bG9va3VwLCBzbwogICAgICB3ZSBjYW4gYWx3YXlzIGJpbmFyeSBzZWFyY2gu ICovCiAgIGlmIChsYW5nID09IGxhbmd1YWdlX2NwbHVzKQogICAgIHsKQEAg LTk3Miw2ICs5ODcsMTUgQEAgbG9va3VwX3N5bWJvbF9pbl9sYW5ndWFnZSAo Y29uc3QgY2hhciAqbmFtZSwgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywK IAkgIG1ha2VfY2xlYW51cCAoeGZyZWUsIGRlbWFuZ2xlZF9uYW1lKTsKIAl9 CiAgICAgfQorICBlbHNlIGlmIChsYW5nID09IGxhbmd1YWdlX2QpCisgICAg eworICAgICAgZGVtYW5nbGVkX25hbWUgPSBkX2RlbWFuZ2xlIChuYW1lLCAw KTsKKyAgICAgIGlmIChkZW1hbmdsZWRfbmFtZSkKKwl7CisJICBtb2RpZmll ZF9uYW1lID0gZGVtYW5nbGVkX25hbWU7CisJICBtYWtlX2NsZWFudXAgKHhm cmVlLCBkZW1hbmdsZWRfbmFtZSk7CisJfQorICAgIH0KIAogICBpZiAoY2Fz ZV9zZW5zaXRpdml0eSA9PSBjYXNlX3NlbnNpdGl2ZV9vZmYpCiAgICAgewpA QCAtMTQxMiw2ICsxNDM2LDcgQEAgc3ltYm9sX21hdGNoZXNfZG9tYWluIChl bnVtIGxhbmd1YWdlIHN5bWJvbF9sYW5ndWFnZSwKICAgICAgQSBKYXZhIGNs YXNzIGRlY2xhcmF0aW9uIGFsc28gZGVmaW5lcyBhIHR5cGVkZWYgZm9yIHRo ZSBjbGFzcy4KICAgICAgU2ltaWxhcmx5LCBhbnkgQWRhIHR5cGUgZGVjbGFy YXRpb24gaW1wbGljaXRseSBkZWZpbmVzIGEgdHlwZWRlZi4gICovCiAgIGlm IChzeW1ib2xfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMKKyAgICAgIHx8 IHN5bWJvbF9sYW5ndWFnZSA9PSBsYW5ndWFnZV9kCiAgICAgICB8fCBzeW1i b2xfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YQogICAgICAgfHwgc3ltYm9s X2xhbmd1YWdlID09IGxhbmd1YWdlX2FkYSkKICAgICB7CmRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cAppbmRleCA5N2Q1NDA3Li4y YTEzMDA3IDEwMDY0NAotLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Rl ZmF1bHQuZXhwCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZGVmYXVs dC5leHAKQEAgLTUzMSw3ICs1MzEsNyBAQCBnZGJfdGVzdCAic2V0IGhpc3Rv cnkgc2l6ZSIgIkFyZ3VtZW50IHJlcXVpcmVkIC5pbnRlZ2VyIHRvIHNldCBp dCB0by4qIiAic2V0IGhpcwogI3Rlc3Qgc2V0IGhpc3RvcnkKIGdkYl90ZXN0 ICJzZXQgaGlzdG9yeSIgIlwic2V0IGhpc3RvcnlcIiBtdXN0IGJlIGZvbGxv d2VkIGJ5IHRoZSBuYW1lIG9mIGEgaGlzdG9yeSBzdWJjb21tYW5kLihcW15c clxuXF0qXFtcclxuXF0pK0xpc3Qgb2Ygc2V0IGhpc3Rvcnkgc3ViY29tbWFu ZHM6KFxbXlxyXG5cXSpcW1xyXG5cXSkrc2V0IGhpc3RvcnkgZXhwYW5zaW9u IC0tIFNldCBoaXN0b3J5IGV4cGFuc2lvbiBvbiBjb21tYW5kIGlucHV0KFxb XlxyXG5cXSpcW1xyXG5cXSkrc2V0IGhpc3RvcnkgZmlsZW5hbWUgLS0gU2V0 IHRoZSBmaWxlbmFtZSBpbiB3aGljaCB0byByZWNvcmQgdGhlIGNvbW1hbmQg aGlzdG9yeShcW15cclxuXF0qXFtcclxuXF0pK3NldCBoaXN0b3J5IHNhdmUg LS0gU2V0IHNhdmluZyBvZiB0aGUgaGlzdG9yeSByZWNvcmQgb24gZXhpdChc W15cclxuXF0qXFtcclxuXF0pK3NldCBoaXN0b3J5IHNpemUgLS0gU2V0IHRo ZSBzaXplIG9mIHRoZSBjb21tYW5kIGhpc3RvcnkoXFteXHJcblxdKlxbXHJc blxdKStUeXBlIFwiaGVscCBzZXQgaGlzdG9yeVwiIGZvbGxvd2VkIGJ5IHNl dCBoaXN0b3J5IHN1YmNvbW1hbmQgbmFtZSBmb3IgZnVsbCBkb2N1bWVudGF0 aW9uLihcW15cclxuXF0qXFtcclxuXF0pK0NvbW1hbmQgbmFtZSBhYmJyZXZp YXRpb25zIGFyZSBhbGxvd2VkIGlmIHVuYW1iaWd1b3VzLiIgInNldCBoaXN0 b3J5IgogI3Rlc3Qgc2V0IGxhbmd1YWdlCi1nZGJfdGVzdCAic2V0IGxhbmd1 YWdlIiAiUmVxdWlyZXMgYW4gYXJndW1lbnQuIFZhbGlkIGFyZ3VtZW50cyBh cmUgYXV0bywgbG9jYWwsIHVua25vd24sIGFkYSwgYywgYy4uLCBhc20sIG1p bmltYWwsIGZvcnRyYW4sIG9iamVjdGl2ZS1jLCBqYXZhLCBtb2R1bGEtMiwg cGFzY2FsLCBzY2hlbWUuIiAic2V0IGxhbmd1YWdlIgorZ2RiX3Rlc3QgInNl dCBsYW5ndWFnZSIgIlJlcXVpcmVzIGFuIGFyZ3VtZW50LiBWYWxpZCBhcmd1 bWVudHMgYXJlIGF1dG8sIGxvY2FsLCB1bmtub3duLCBhZGEsIGMsIGMuLiwg YXNtLCBtaW5pbWFsLCBkLCBmb3J0cmFuLCBvYmplY3RpdmUtYywgamF2YSwg bW9kdWxhLTIsIHBhc2NhbCwgc2NoZW1lLiIgInNldCBsYW5ndWFnZSIKICN0 ZXN0IHNldCBsaXN0c2l6ZQogZ2RiX3Rlc3QgInNldCBsaXN0c2l6ZSIgIkFy Z3VtZW50IHJlcXVpcmVkIC5pbnRlZ2VyIHRvIHNldCBpdCB0by4qIiAic2V0 IGxpc3RzaXplIgogI3Rlc3Qgc2V0IHByaW50ICJwIiBhYmJyZXZpYXRpb24K --Multipart=_Thu__15_Apr_2010_01_21_24_+0300_fSyapsG=ZTG.zWms Content-Type: application/octet-stream; name="gdb-100414-d_testsuite.patch" Content-Disposition: attachment; filename="gdb-100414-d_testsuite.patch" Content-Transfer-Encoding: base64 Content-length: 16601 Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CglEIGxhbmd1YWdlIHN1cHBvcnQu CgkqIGNvbmZpZ3VyZS5hYyAoQUNfT1VUUFVUKTogQWRkIGdkYi5kL01ha2Vm aWxlLgoJKiBNYWtlZmlsZS5pbiAoQUxMX1NVQkRJUlMpOiBBZGQgZ2RiLmQu CgkqIGxpYi9kLmV4cDogTmV3IGZpbGUuCgkqIGdkYi5kL2RhcnJheS5kOiBO ZXcgZmlsZS4KCSogZ2RiLmQvZGFycmF5LmV4cDogTmV3IGZpbGUuCgkqIGdk Yi5kL21haW4uZDogTmV3IGZpbGUuCgkqIGdkYi5kL21haW4uZXhwOiBOZXcg ZmlsZS4KCSogZ2RiLmQvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgpkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbiBiL2dkYi90ZXN0c3Vp dGUvTWFrZWZpbGUuaW4KaW5kZXggOGQ4ZDcwNC4uZDY0ZjdjMCAxMDA2NDQK LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbgorKysgYi9nZGIvdGVz dHN1aXRlL01ha2VmaWxlLmluCkBAIC0zMyw4ICszMyw4IEBAIFNIRUxMID0g QFNIRUxMQAogRVhFRVhUID0gQEVYRUVYVEAKIFNVQkRJUlMgPSBAc3ViZGly c0AKIFJQQVRIX0VOVlZBUiA9IEBSUEFUSF9FTlZWQVJACi1BTExfU1VCRElS UyA9IGdkYi5hZGEgZ2RiLmFyY2ggZ2RiLmFzbSBnZGIuYmFzZSBnZGIuY3Ag Z2RiLmRpc2FzbSBcCi0JZ2RiLmR3YXJmMiBcCitBTExfU1VCRElSUyA9IGdk Yi5hZGEgZ2RiLmFyY2ggZ2RiLmFzbSBnZGIuYmFzZSBnZGIuY3AgZ2RiLmQg XAorCWdkYi5kaXNhc20gZ2RiLmR3YXJmMiBcCiAJZ2RiLmZvcnRyYW4gZ2Ri LnNlcnZlciBnZGIuamF2YSBnZGIubWkgZ2RiLm11bHRpIFwKIAlnZGIub2Jq YyBnZGIub3B0IGdkYi5wYXNjYWwgZ2RiLnB5dGhvbiBnZGIudGhyZWFkcyBn ZGIudHJhY2UgXAogCWdkYi54bWwgXApkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9jb25maWd1cmUuYWMgYi9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5h YwppbmRleCBjODY2OGU1Li4yMmU1MGU0IDEwMDY0NAotLS0gYS9nZGIvdGVz dHN1aXRlL2NvbmZpZ3VyZS5hYworKysgYi9nZGIvdGVzdHN1aXRlL2NvbmZp Z3VyZS5hYwpAQCAtMTM5LDkgKzEzOSw5IEBAIEFDX0NIRUNLX0hFQURFUlMo cHRocmVhZC5oKQogQUNfRVhFRVhUCiAKIEFDX09VVFBVVChbTWFrZWZpbGUg XAotICBnZGIuYWRhL01ha2VmaWxlIFwKLSAgZ2RiLmFyY2gvTWFrZWZpbGUg Z2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBcCi0gIGdkYi5j cC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFr ZWZpbGUgXAorICBnZGIuYWRhL01ha2VmaWxlIGdkYi5hcmNoL01ha2VmaWxl IGdkYi5hc20vTWFrZWZpbGUgXAorICBnZGIuYmFzZS9NYWtlZmlsZSBnZGIu Y3AvTWFrZWZpbGUgZ2RiLmQvTWFrZWZpbGUgXAorICBnZGIuZGlzYXNtL01h a2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgXAogICBnZGIuZm9ydHJhbi9N YWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxl IFwKICAgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdk Yi5tdWx0aS9NYWtlZmlsZSBcCiAgIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5v cHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBcCmRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5kL01ha2VmaWxlLmluIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZC9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4xNmVkNTJiCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZC9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDE0IEBA CitWUEFUSCA9IEBzcmNkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorCitFWEVD VVRBQkxFUyA9IGRhcnJheSBtYWluIAorCithbGwgaW5mbyBpbnN0YWxsLWlu Zm8gZHZpIGluc3RhbGwgdW5pbnN0YWxsIGluc3RhbGxjaGVjayBjaGVjazoK KwlAZWNobyAiTm90aGluZyB0byBiZSBkb25lIGZvciAkQC4uLiIKKworY2xl YW4gbW9zdGx5Y2xlYW46CisJLXJtIC1mICp+ICoubyAqLmNpCisJLXJtIC1m IGNvcmUgJHtFWEVDVVRBQkxFU30KKworZGlzdGNsZWFuIG1haW50YWluZXIt Y2xlYW4gcmVhbGNsZWFuOiBjbGVhbgorCS1ybSAtZiBNYWtlZmlsZSBjb25m aWcuc3RhdHVzIGNvbmZpZy5sb2cKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmQvZGFycmF5LmQgYi9nZGIvdGVzdHN1aXRlL2dkYi5kL2RhcnJh eS5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlY2Rl MjkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kL2Rh cnJheS5kCkBAIC0wLDAgKzEsMzggQEAKKy8qIFRoaXMgdGVzdGNhc2UgaXMg cGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENvcHlyaWdo dCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisgICAqLworCit2b2lkCittYXJrZXIoKSB7 fQorCitpbnQgCittYWluKCkgCit7CisgIGludFtdIGEgPSBbMCwgMSwgMl07 CisKKyAgY2hhcltdIHM7CisgIHMubGVuZ3RoID0gMTE7CisgIHNbXSA9ICJU ZXN0IFN0cmluZyI7CisKKyAgY2hhcltdW10gczEgPSBbIlRlc3QgMSIsICJU ZXN0IDIyIiwgIlRlc3QgMzMzIl07CisKKyAgbWFya2VyKCk7CisgIHJldHVy biAwOworfSAKKworCisKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmQvZGFycmF5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmQvZGFycmF5LmV4 cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTk0Njc1 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZC9kYXJy YXkuZXhwCkBAIC0wLDAgKzEsNDYgQEAKKyMgQ29weXJpZ2h0IDIwMTAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorCitpZiAkdHJhY2VsZXZlbCB0aGVuIHsKKyAgICBzdHJhY2UgJHRyYWNl bGV2ZWwKK30KKworbG9hZF9saWIgImQuZXhwIgorCitzZXQgdGVzdGZpbGUg ImRhcnJheSIKK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmQKK3NldCBiaW5m aWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKworaWYge1tn ZGJfY29tcGlsZV9kICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0i ICIke2JpbmZpbGV9Il0gIT0gIiIgfSB7CisgIHJldHVybiAtMQorfQorCitn ZGJfZXhpdAorZ2RiX3N0YXJ0CitnZGJfcmVpbml0aWFsaXplX2RpciAkc3Jj ZGlyLyRzdWJkaXIKK2dkYl9sb2FkICR7YmluZmlsZX0KKworZ2RiX3Rlc3Qg ImJyZWFrIG1hcmtlciIgXAorICAgICAgICAgIkJyZWFrcG9pbnQgMSBhdCAu KmRhcnJheS5kLioiIFwKKworZ2RiX3Rlc3QgInJ1biIgXAorICAgICAgICAg Ii4qbWFya2VyLioiIFwKKyAgICAgICAgICJnb2luZyB0byBtYXJrZXIiCisK K2dkYl90ZXN0ICJuZXh0IiAiLipyZXR1cm4gMDsiCisKK2dkYl90ZXN0ICJw cmludCBhIiAiLiowLCAxLCAyLioiCitnZGJfdGVzdCAicHJpbnQgcyIgIi4q PSBcIlRlc3QgU3RyaW5nXCIiCitnZGJfdGVzdCAicHJpbnQgczEiICIuKj0g e1wiVGVzdCAxXCIsIFwiVGVzdCAyMlwiLCBcIlRlc3QgMzMzXCJ9IgpkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZC9tYWluLmQgYi9nZGIvdGVz dHN1aXRlL2dkYi5kL21haW4uZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4zNDZmZDk2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZC9tYWluLmQKQEAgLTAsMCArMSw2MyBAQAorLyogVGhp cyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4K KworICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAgICovCisKK2lu dCB6OworCit2b2lkCitmb28oKQoreworICB6ID0gMjI7Cit9CisKK2NsYXNz IENUZXN0Cit7CisgIGludCB4OworICBzdGF0aWMgaW50IHk7CisgIHRoaXMo KQorICB7CisgICAgeCA9IDExOworICAgIHkgPSAzOworICB9Cit9CisKK3N0 cnVjdCBTVGVzdAoreworICBpbnQgeDsKKyAgc3RhdGljIGludCB5OworfQor CitpbnQgCittYWluKCkgCit7CisgIGludCBpID0gMTsKKyAgaW50WzNdIGEg PSBbMCwgMSwgMl07CisgIGNoYXJbMTFdIHMgPSAiVGVzdCBTdHJpbmciOwor CisgIGZvbygpOworCisgIENUZXN0IGN0ID0gbmV3IENUZXN0OworCisgIFNU ZXN0IHN0OworICBzdC54ID0gMjsKKyAgc3QueSA9IDQ7CisKKyAgaW50ICpw ID0gbnVsbDsgCisgICpwID0gNTsKKworICByZXR1cm4gMDsKK30gCmRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kL21haW4uZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZC9tYWluLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4xZjM4YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZC9tYWluLmV4cApAQCAtMCwwICsxLDYyIEBACisj IENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorIworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKworaWYgJHRyYWNlbGV2ZWwgdGhlbiB7 CisgICAgc3RyYWNlICR0cmFjZWxldmVsCit9CisKK2xvYWRfbGliICJkLmV4 cCIKKworc2V0IHRlc3RmaWxlICJtYWluIgorc2V0IHNyY2ZpbGUgJHt0ZXN0 ZmlsZX0uZAorc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfQorCitpZiB7W2dkYl9jb21waWxlX2QgIiR7c3JjZGlyfS8ke3N1 YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iXSAhPSAiIiB9IHsKKyAg cmV0dXJuIC0xCit9CisKK2dkYl9leGl0CitnZGJfc3RhcnQKK2dkYl9yZWlu aXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorZ2RiX2xvYWQgJHtiaW5m aWxlfQorCitnZGJfdGVzdCAiYnJlYWsgJ0QgbWFpbiciIFwKKyAgICAgICAg ICJCcmVha3BvaW50IDEgYXQgLiptYWluLmQuKiIgXAorCitnZGJfdGVzdCAi YnJlYWsgZm9vIiBcCisgICAgICAgICAiQnJlYWtwb2ludCAyIGF0IC4qbWFp bi5kLioiIFwKKworZ2RiX3Rlc3QgInJ1biIgXAorICAgICAgICAgIi4qaW50 IGkgPSAxOyIgXAorICAgICAgICAgImdvaW5nIHRvICdEIG1haW4nIgorCitn ZGJfdGVzdCAiY29udGludWUiIFwKKyAgICAgICAgICIuKnogPSAyMjsiIFwK KyAgICAgICAgICJnb2luZyB0byBmb28iCisKK2dkYl90ZXN0ICJiYWNrdHJh Y2UiIFwKKwkgIiMwICBmb28gLiptYWluLmQuKiMxLiptYWluLiptYWluLmQu KiIKKworZ2RiX3Rlc3QgImNvbnRpbnVlIiBcCisgICAgICAgICAiLipwID0g NTsiIFwKKyAgICAgICAgICJzZWdtZW50YXRpb24gZmF1bHQiCisKK2dkYl90 ZXN0ICJwcmludCBpIiAiLiogPSAxIgorZ2RiX3Rlc3QgInByaW50IGEiICIu KjAsIDEsIDIuKiIKK2dkYl90ZXN0ICJwcmludCAnbWFpbi56JyIgIi4qID0g MjIiCitnZGJfdGVzdCAicHJpbnQgY3QiICIuKnggPSAxMS4qIgorZ2RiX3Rl c3QgInByaW50ICdtYWluLkNUZXN0LnknIiAiLiogPSAzIgorZ2RiX3Rlc3Qg InByaW50IHN0IiAiLip4ID0gMi4qIgorZ2RiX3Rlc3QgInByaW50ICdtYWlu LlNUZXN0LnknIiAiLiogPSA0IgpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9saWIvZC5leHAgYi9nZGIvdGVzdHN1aXRlL2xpYi9kLmV4cApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDY3YTkzCi0tLSAvZGV2 L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZC5leHAKQEAgLTAsMCAr MSwxMjggQEAKKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisj IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisj CisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCitsb2FkX2xpYiBs aWJnbG9zcy5leHAKKworc2V0IGRfaW5pdF9kb25lIDAKKworIyBUaGlzIHBy b2NlZHVyZSBsb29rcyBmb3IgYSBzdWl0YWJsZSBEIGNvbXBpbGVyCisjIEZp cnN0LCBlbnZpcm9ubWVudCB2YXJpYWJsZSBHREMgaXMgY2hlY2tlZAorIyBp ZiBwcmVzZW50LCBHREMgY29tcGlsZXIgaXMgYXNzdW1lZCB0byBiZSB0aGUg dmFsdWUgb2YKKyMgdGhhdCBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKyMgU2Vj b25kLCBlbnZpcm9ubWVudCB2YXJpYWJsZSBETUQgaXMgY2hlY2tlZAorIyBp ZiBwcmVzZW50LCBETUQgaXMgYXNzdW1lZCB0byBiZSB0aGUgdmFsdWUgb2YK KyMgdGhhdCBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKyMgVGhpcmQsIGVudmly b25tZW50IHZhcmlhYmxlIExEQyBpcyBjaGVja2VkCisjIGlmIHByZXNlbnQs IExEQyBpcyBhc3N1bWVkIHRvIGJlIHRoZSB2YWx1ZSBvZgorIyB0aGF0IGVu dmlyb25tZW50IHZhcmlhYmxlLgorIyBGb3VydGgsIGdkYyBleGVjdXRhYmxl IGlzIHNlYXJjaGVkIHVzaW5nIGB3aGljaCBnZGNgCisjIEZpZnRoLCBkbWQg ZXhlY3V0YWJsZSBpcyBzZWFyY2hlZCB1c2luZyBgd2hpY2ggZG1kYAorIyBM YXN0bHksIGxkYyBleGVjdXRhYmxlIGlzIHNlYXJjaGVkIHVzaW5nIGB3aGlj aCBsZGNgCisjIFVzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlIGFsbG93cyB0 byBmb3JjZQorIyB3aGljaCBjb21waWxlciBpcyB1c2VkIGluIHRlc3RzdWl0 ZS4KKyAKK3Byb2MgZF9pbml0IHt9IHsKKyAgICBnbG9iYWwgZF9pbml0X2Rv bmUKKyAgICBnbG9iYWwgZF9jb21waWxlcl9pc19nZGMKKyAgICBnbG9iYWwg ZF9jb21waWxlcl9pc19kbWQKKyAgICBnbG9iYWwgZF9jb21waWxlcl9pc19s ZGMKKyAgICBnbG9iYWwgZ2RjX2NvbXBpbGVyCisgICAgZ2xvYmFsIGRtZF9j b21waWxlcgorICAgIGdsb2JhbCBsZGNfY29tcGlsZXIKKyAgICBnbG9iYWwg ZW52CisgCisgICAgaWYgeyAkZF9pbml0X2RvbmUgPT0gMSB9IHsKKwlyZXR1 cm4KKyAgICB9CisKKyAgICBzZXQgZF9jb21waWxlcl9pc19nZGMgMAorICAg IHNldCBkX2NvbXBpbGVyX2lzX2RtZCAwCisgICAgc2V0IGRfY29tcGlsZXJf aXNfbGRjIDAKKyAgICBzZXQgZ2RjX2NvbXBpbGVyIFt0cmFuc2Zvcm0gZ2Rj XQorICAgIHNldCBkbWRfY29tcGlsZXIgW3RyYW5zZm9ybSBkbWRdCisgICAg c2V0IGxkY19jb21waWxlciBbdHJhbnNmb3JtIGxkY10KKworICAgIGlmICFb aXNfcmVtb3RlIGhvc3RdIHsKKwlpZiB7IFtpbmZvIGV4aXN0cyBlbnYoR0RD KV0gfSB7CisJICAgIHNldCBkX2NvbXBpbGVyX2lzX2dkYyAxCisJICAgIHNl dCBnZGNfY29tcGlsZXIgJGVudihHREMpCisJICAgIHZlcmJvc2UgLWxvZyAi QXNzdW1pbmcgR0RDICgkZ2RjX2NvbXBpbGVyKSIKKwl9IGVsc2VpZiB7IFtp bmZvIGV4aXN0cyBlbnYoRE1EKV0gfSB7CisJICAgIHNldCBkX2NvbXBpbGVy X2lzX2RtZCAxCisJICAgIHNldCBkbWRfY29tcGlsZXIgJGVudihETUQpCisJ ICAgIHZlcmJvc2UgLWxvZyAiQXNzdW1pbmcgRE1EICgkZG1kX2NvbXBpbGVy KSIKKwl9IGVsc2VpZiB7IFtpbmZvIGV4aXN0cyBlbnYoTERDKV0gfSB7CisJ ICAgIHNldCBkX2NvbXBpbGVyX2lzX2xkYyAxCisJICAgIHNldCBsZGNfY29t cGlsZXIgJGVudihMREMpCisJICAgIHZlcmJvc2UgLWxvZyAiQXNzdW1pbmcg TERDICgkbGRjX2NvbXBpbGVyKSIKKwl9IGVsc2VpZiB7IFt3aGljaCAkZ2Rj X2NvbXBpbGVyXSAhPSAwIH0geworCSAgICBzZXQgZF9jb21waWxlcl9pc19n ZGMgMQorCSAgICB2ZXJib3NlIC1sb2cgIkdEQyBmb3VuZCIKKyAgICAgICAg fSBlbHNlaWYgeyBbd2hpY2ggJGRtZF9jb21waWxlcl0gIT0gMCB9IHsKKwkg ICAgc2V0IGRfY29tcGlsZXJfaXNfZG1kIDEKKwkgICAgdmVyYm9zZSAtbG9n ICJETUQgZm91bmQiCisgICAgICAgIH0gZWxzZWlmIHsgW3doaWNoICRsZGNf Y29tcGlsZXJdICE9IDAgfSB7CisJICAgIHNldCBkX2NvbXBpbGVyX2lzX2xk YyAxCisJICAgIHZlcmJvc2UgLWxvZyAiTERDIGZvdW5kIgorCX0KKyAgICB9 CisgICAgc2V0IGRfaW5pdF9kb25lIDEKK30gICAKKworcHJvYyBnZGNfY29t cGlsZSB7c291cmNlIGRlc3R9IHsKKyAgICBnbG9iYWwgZ2RjX2NvbXBpbGVy CisgICAgc2V0IHJlc3VsdCBbcmVtb3RlX2V4ZWMgaG9zdCAkZ2RjX2NvbXBp bGVyICItZzMgLU8wICRzb3VyY2UgLW8gJGRlc3QiXQorICAgIHJldHVybiAk cmVzdWx0Cit9CisKK3Byb2MgZG1kX2NvbXBpbGUge3NvdXJjZSBkZXN0fSB7 CisgICAgZ2xvYmFsIGRtZF9jb21waWxlcgorICAgIHNldCByZXN1bHQgW3Jl bW90ZV9leGVjIGhvc3QgJGRtZF9jb21waWxlciAiLWdjICRzb3VyY2UgLW9m JGRlc3QiXQorICAgIHJldHVybiAkcmVzdWx0Cit9CisKK3Byb2MgbGRjX2Nv bXBpbGUge3NvdXJjZSBkZXN0fSB7CisgICAgZ2xvYmFsIGxkY19jb21waWxl cgorICAgIHNldCByZXN1bHQgW3JlbW90ZV9leGVjIGhvc3QgJGxkY19jb21w aWxlciAiLU8wIC1nICRzb3VyY2UgLW9mJGRlc3QiXQorICAgIHJldHVybiAk cmVzdWx0Cit9CisKK3Byb2MgZ2RiX2NvbXBpbGVfZCB7c291cmNlIGRlc3R9 IHsKKyAgICBnbG9iYWwgZF9pbml0X2RvbmUKKyAgICBnbG9iYWwgZF9jb21w aWxlcl9pc19nZGMKKyAgICBnbG9iYWwgZF9jb21waWxlcl9pc19kbWQKKyAg ICBnbG9iYWwgZF9jb21waWxlcl9pc19sZGMKKworICAgIGlmIHsgJGRfaW5p dF9kb25lID09IDAgfSB7IAorCWRfaW5pdAorICAgIH0KKworICAgIGlmIHsg JGRfY29tcGlsZXJfaXNfZ2RjID09IDEgfSB7CisgICAgICAgIHNldCByZXN1 bHQgW2dkY19jb21waWxlICRzb3VyY2UgJGRlc3RdCisgICAgfSBlbHNlaWYg eyAkZF9jb21waWxlcl9pc19kbWQgPT0gMSB9IHsKKyAgICAgICAgc2V0IHJl c3VsdCBbZG1kX2NvbXBpbGUgJHNvdXJjZSAkZGVzdF0KKyAgICB9IGVsc2Vp ZiB7ICRkX2NvbXBpbGVyX2lzX2xkYyA9PSAxIH0geworICAgICAgICBzZXQg cmVzdWx0IFtsZGNfY29tcGlsZSAkc291cmNlICRkZXN0XQorICAgIH0gZWxz ZSB7CisJdW5zdXBwb3J0ZWQgIk5vIEQgY29tcGlsZXIgZm91bmQiCisJcmV0 dXJuICJObyBEIGNvbXBpbGVyLiBDb21waWxhdGlvbiBmYWlsZWQuIgorICAg IH0KKworICAgIGlmICFbZmlsZSBleGlzdHMgJGRlc3RdIHsKKyAgICAgICAg dW5zdXBwb3J0ZWQgIkQgY29tcGlsYXRpb24gZmFpbGVkOiAkcmVzdWx0Igor ICAgICAgICByZXR1cm4gIkQgY29tcGlsYXRpb24gZmFpbGVkLiIKKyAgICB9 Cit9CisK --Multipart=_Thu__15_Apr_2010_01_21_24_+0300_fSyapsG=ZTG.zWms--