From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id 2FC1F3858C2C for ; Thu, 14 Dec 2023 18:07:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2FC1F3858C2C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2FC1F3858C2C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=45.83.234.184 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702577285; cv=none; b=Os77+HllL5xfIlMTNikeoiueLsqWNS1YzDP6bJheQznJbPbJBNV2Rkc7h87tTt0DlqCktKfouX2H2Cdwr1eid1/+jjgClm8LiS0WSrUr/Cbtko874dq6KsC9C1RucMNBXshreDh5YT5A3KoxOKzhWXpai8AVKTv4AWvIfYmDOqM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702577285; c=relaxed/simple; bh=CMgAlnLViYpB+ZGNML4McV8sEzPSfE5OUC86TGhh8Lc=; h=Message-ID:Subject:From:To:Date:MIME-Version; b=IO73m7KYXUG+OqBkr4a4sU7kS8A6oa6wxq+wuKFYHYtxmaC36/aTDevidyCHVJWn/X09J/vFN3xdmoWtwbHyKone8tZtnZO3uEdzG8Zdsnm1QbEjc+Pf0WEBO8fLfMQ10ewZ7rCLC6YZ/1RebEtgWwNZWaMMMUSxG25Aj9JQe/k= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from r6.localdomain (82-217-174-174.cable.dynamic.v4.ziggo.nl [82.217.174.174]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 0FB43302BB02; Thu, 14 Dec 2023 19:07:52 +0100 (CET) Received: by r6.localdomain (Postfix, from userid 1000) id 3FB4B34063D; Thu, 14 Dec 2023 19:07:51 +0100 (CET) Message-ID: Subject: Re: [PATCH] Add helper function for basename From: Mark Wielaard To: Khem Raj , elfutils-devel@sourceware.org Date: Thu, 14 Dec 2023 19:07:51 +0100 In-Reply-To: <20231210202033.151578-1-raj.khem@gmail.com> References: <20231210202033.151578-1-raj.khem@gmail.com> Autocrypt: addr=mark@klomp.org; prefer-encrypt=mutual; keydata=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 QifSU1tvZxQ== Content-Type: multipart/mixed; boundary="=-fLpNo0S/pL/oK0Oni9fn" User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) MIME-Version: 1.0 X-Spam-Status: No, score=-9.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,JMQ_SPF_NEUTRAL,KAM_DMARC_STATUS,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --=-fLpNo0S/pL/oK0Oni9fn Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Khem, On Sun, 2023-12-10 at 12:20 -0800, Khem Raj wrote: > musl does not provide GNU version of basename and lately have removed > the definiton from string.h [1] which exposes this problem. It can be > made to work by providing a local implementation of basename which > implements the GNU basename behavior, this makes it work across C > libraries which have POSIX implementation only. >=20 > Upstream-Status: Pending > [1] https://git.musl-libc.org/cgit/musl/commit/?id=3D725e17ed6dff4d0cd224= 87bb64470881e86a92e7 > Signed-off-by: Khem Raj Our discussion showed we really need this if we want to support musl (or any other alternative libc without the string.h basename variant). I would have liked a configure check, but old musl makes that kind of impossible. So I agree we should use our own implementation. I did structure it slightly differently though. Instead of adding it to libeu I added it to system.h as static inline function. And I poisoned the basename symbol. That found two other places where basename was used (and now replaced by xbasename). Sadly it means we have to rename a variable in debuginfod.cxx from basename to filename, but I think that is acceptable. I don't like the const cast away in ar.c, but that seems necessary because we are using search.h and that interface just takes non-cast char pointers (even though they really are const). What do you think of the attached variant of your patch? Thanks, Mark --=-fLpNo0S/pL/oK0Oni9fn Content-Type: text/x-patch; name="0001-Add-helper-function-for-basename.patch"; charset="UTF-8" Content-Description: Content-Disposition: inline; filename="0001-Add-helper-function-for-basename.patch" Content-Transfer-Encoding: base64 RnJvbSAzZGZiYzBmNDM4MWM4MzUwMDQ1NDRmN2M1ZWU1OTY4NDViYjE3MDQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgpEYXRlOiBT dW4sIDEwIERlYyAyMDIzIDEyOjIwOjMzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIGhlbHBl ciBmdW5jdGlvbiBmb3IgYmFzZW5hbWUKCm11c2wgZG9lcyBub3QgcHJvdmlkZSBHTlUgdmVyc2lv biBvZiBiYXNlbmFtZSBhbmQgbGF0ZWx5IGhhdmUgcmVtb3ZlZAp0aGUgZGVmaW5pdG9uIGZyb20g c3RyaW5nLmggWzFdIHdoaWNoIGV4cG9zZXMgdGhpcyBwcm9ibGVtLiBJdCBjYW4gYmUKbWFkZSB0 byB3b3JrIGJ5IHByb3ZpZGluZyBhIGxvY2FsIGltcGxlbWVudGF0aW9uIG9mIGJhc2VuYW1lIHdo aWNoCmltcGxlbWVudHMgdGhlIEdOVSBiYXNlbmFtZSBiZWhhdmlvciwgdGhpcyBtYWtlcyBpdCB3 b3JrIGFjcm9zcyBDCmxpYnJhcmllcyB3aGljaCBoYXZlIFBPU0lYIGltcGxlbWVudGF0aW9uIG9u bHkuCgpbMV0gaHR0cHM6Ly9naXQubXVzbC1saWJjLm9yZy9jZ2l0L211c2wvY29tbWl0Lz9pZD03 MjVlMTdlZDZkZmY0ZDBjZDIyNDg3YmI2NDQ3MDg4MWU4NmE5MmU3CgogICAgKiBsaWIvc3lzdGVt LmggKHhiYXNlbmFtZSk6IE5ldyBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucy4KICAgIFBvaXNvbiBi YXNlbmFtZS4KICAgICogbGliZHcvZHdhcmZfZ2V0c3JjX2ZpbGUuYyAoZHdhcmZfZ2V0c3JjX2Zp bGUpOiBVc2UgeGJhc2VuYW1lLgogICAgKiBsaWJkd2ZsL2NvcmUtZmlsZS5jIChkd2ZsX2NvcmVf ZmlsZV9yZXBvcnQpOiBMaWtld2lzZS4KICAgICogbGliZHdmbC9kd2ZsX21vZHVsZV9nZXRzcmNf ZmlsZS5jIChkd2ZsX21vZHVsZV9nZXRzcmNfZmlsZSk6CiAgICBMaWtld2lzZS4KICAgICogbGli ZHdmbC9kd2ZsX3NlZ21lbnRfcmVwb3J0X21vZHVsZS5jIChkd2ZsX3NlZ21lbnRfcmVwb3J0X21v ZHVsZSk6CiAgICBMaWtld2lzZS4KICAgICogbGliZHdmbC9maW5kLWRlYnVnaW5mby5jIChmaW5k X2RlYnVnaW5mb19pbl9wYXRoKTogTGlrZXdpc2UuCiAgICAqIGxpYmR3ZmwvbGlua19tYXAuYyAo cmVwb3J0X3JfZGVidWcpOiBMaWtld2lzZS4KICAgICogbGliZHdmbC9saW51eC1rZXJuZWwtbW9k dWxlcy5jICh0cnlfa2VybmVsX25hbWUpOiBMaWtld2lzZS4KICAgICogc3JjL2FkZHIybGluZS5j IChwcmludF9kd2FyZl9mdW5jdGlvbik6IExpa2V3aXNlLgogICAgKHByaW50X3NyYyk6IExpa2V3 aXNlLgogICAgKiBzcmMvYXIuYyAoZG9fb3Blcl9pbnNlcnQpOiBMaWtld2lzZS4KICAgIEFuZCBj YXN0IGF3YXkgY29uc3QgaW4gZW50cnkua2V5IGFzc2lnbm1lbnQuCiAgICAqIHNyYy9ubS5jIChz aG93X3N5bWJvbHMpOiBVc2UgeGJhc2VuYW1lLgogICAgKiBzcmMvc3RhY2suYyAobW9kdWxlX2Nh bGxiYWNrKTogTGlrZXdpc2UuCiAgICAqIHNyYy9zdHJpcC5jIChoYW5kbGVfZWxmKTogTGlrZXdp c2UuCiAgICAqIHRlc3RzL3Nob3ctZGllLWluZm8uYzogSW5jbHVkZSBzeXN0ZW0uaC4KICAgIChk d2FyZl90YWdfc3RyaW5nKTogVXNlIHhiYXNlbmFtZS4KICAgICogdGVzdHMvdmFybG9jcy5jOiBM aWtld2lzZS4KICAgICogZGVidWdpbmZvZC9kZWJ1Z2luZm9kLmN4eDogTW92ZSBpbmNsdWRlIHN5 c3RlbS5oIHRvIHRoZSBlbmQuCiAgICAocmVnaXN0ZXJfZmlsZV9uYW1lKTogUmVuYW1lIGJhc2Vu YW1lIHRvIGZpbGVuYW1lLgoKU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyayBXaWVsYWFyZCA8bWFya0BrbG9tcC5vcmc+Ci0tLQog ZGVidWdpbmZvZC9kZWJ1Z2luZm9kLmN4eCAgICAgICAgICAgIHwgMjIgKysrKysrKysrKystLS0t LS0tLS0tLQogbGliL3N5c3RlbS5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysr KysrKysrKysKIGxpYmR3L2R3YXJmX2dldHNyY19maWxlLmMgICAgICAgICAgICB8ICAyICstCiBs aWJkd2ZsL2NvcmUtZmlsZS5jICAgICAgICAgICAgICAgICAgfCAgMiArLQogbGliZHdmbC9kd2Zs X21vZHVsZV9nZXRzcmNfZmlsZS5jICAgIHwgIDIgKy0KIGxpYmR3ZmwvZHdmbF9zZWdtZW50X3Jl cG9ydF9tb2R1bGUuYyB8ICA0ICsrLS0KIGxpYmR3ZmwvZmluZC1kZWJ1Z2luZm8uYyAgICAgICAg ICAgICB8ICA2ICsrKy0tLQogbGliZHdmbC9saW5rX21hcC5jICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGxpYmR3ZmwvbGludXgta2VybmVsLW1vZHVsZXMuYyAgICAgICB8ICAyICstCiBzcmMv YWRkcjJsaW5lLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBzcmMvYXIuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBzcmMvbm0uYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArKy0tCiBzcmMvc3RhY2suYyAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogc3JjL3N0cmlwLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIHRlc3RzL3Nob3ctZGllLWluZm8uYyAgICAgICAgICAgICAgICB8ICAzICsrLQogdGVzdHMv dmFybG9jcy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDE2IGZpbGVzIGNoYW5nZWQs IDQ2IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RlYnVnaW5m b2QvZGVidWdpbmZvZC5jeHggYi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QuY3h4CmluZGV4IGMxMWFl ZGExLi41MjRiZTk0OCAxMDA2NDQKLS0tIGEvZGVidWdpbmZvZC9kZWJ1Z2luZm9kLmN4eAorKysg Yi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QuY3h4CkBAIC01MCwxMSArNTAsNiBAQCBleHRlcm4gIkMi IHsKIH0KICNlbmRpZgogCi1leHRlcm4gIkMiIHsKLSNpbmNsdWRlICJwcmludHZlcnNpb24uaCIK LSNpbmNsdWRlICJzeXN0ZW0uaCIKLX0KLQogI2luY2x1ZGUgImRlYnVnaW5mb2QuaCIKICNpbmNs dWRlIDxkd2FyZi5oPgogCkBAIC0xMzUsNiArMTMwLDExIEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7 CiAjZGVmaW5lIHRpZCgpIHB0aHJlYWRfc2VsZigpCiAjZW5kaWYKIAorZXh0ZXJuICJDIiB7Cisj aW5jbHVkZSAicHJpbnR2ZXJzaW9uLmgiCisjaW5jbHVkZSAic3lzdGVtLmgiCit9CisKIAogaW5s aW5lIGJvb2wKIHN0cmluZ19lbmRzd2l0aChjb25zdCBzdHJpbmcmIGhheXN0YWNrLCBjb25zdCBz dHJpbmcmIG5lZWRsZSkKQEAgLTMxOTQsMTYgKzMxOTQsMTYgQEAgcmVnaXN0ZXJfZmlsZV9uYW1l KHNxbGl0ZV9wcyYgcHNfdXBzZXJ0X2ZpbGVwYXJ0cywKICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJpbmcmIG5hbWUpCiB7CiAgIHN0ZDo6c2l6ZV90IHNsYXNoID0gbmFtZS5yZmluZCgnLycp OwotICBzdHJpbmcgZGlybmFtZSwgYmFzZW5hbWU7CisgIHN0cmluZyBkaXJuYW1lLCBmaWxlbmFt ZTsKICAgaWYgKHNsYXNoID09IHN0ZDo6c3RyaW5nOjpucG9zKQogICAgIHsKICAgICAgIGRpcm5h bWUgPSAiIjsKLSAgICAgIGJhc2VuYW1lID0gbmFtZTsKKyAgICAgIGZpbGVuYW1lID0gbmFtZTsK ICAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgICBkaXJuYW1lID0gbmFtZS5zdWJzdHIoMCwgc2xh c2gpOwotICAgICAgYmFzZW5hbWUgPSBuYW1lLnN1YnN0cihzbGFzaCsxKTsKKyAgICAgIGZpbGVu YW1lID0gbmFtZS5zdWJzdHIoc2xhc2grMSk7CiAgICAgfQogCiAgIC8vIGludGVybiB0aGUgdHdv IHN1YnN0cmluZ3MKQEAgLTMyMTMsMjEgKzMyMTMsMjEgQEAgcmVnaXN0ZXJfZmlsZV9uYW1lKHNx bGl0ZV9wcyYgcHNfdXBzZXJ0X2ZpbGVwYXJ0cywKICAgICAuc3RlcF9va19kb25lKCk7CiAgIHBz X3Vwc2VydF9maWxlcGFydHMKICAgICAucmVzZXQoKQotICAgIC5iaW5kKDEsIGJhc2VuYW1lKQor ICAgIC5iaW5kKDEsIGZpbGVuYW1lKQogICAgIC5zdGVwX29rX2RvbmUoKTsKIAogICAvLyBpbnRl cm4gdGhlIHR1cGxlCiAgIHBzX3Vwc2VydF9maWxlCiAgICAgLnJlc2V0KCkKICAgICAuYmluZCgx LCBkaXJuYW1lKQotICAgIC5iaW5kKDIsIGJhc2VuYW1lKQorICAgIC5iaW5kKDIsIGZpbGVuYW1l KQogICAgIC5zdGVwX29rX2RvbmUoKTsKIAogICAvLyBsb29rIHVwIHRoZSB0dXBsZSdzIGlkCiAg IHBzX2xvb2t1cF9maWxlCiAgICAgLnJlc2V0KCkKICAgICAuYmluZCgxLCBkaXJuYW1lKQotICAg IC5iaW5kKDIsIGJhc2VuYW1lKTsKKyAgICAuYmluZCgyLCBmaWxlbmFtZSk7CiAgIGludCByYyA9 IHBzX2xvb2t1cF9maWxlLnN0ZXAoKTsKICAgaWYgKHJjICE9IFNRTElURV9ST1cpIHRocm93IHNx bGl0ZV9leGNlcHRpb24ocmMsICJzdGVwIik7CiAgIApkaWZmIC0tZ2l0IGEvbGliL3N5c3RlbS5o IGIvbGliL3N5c3RlbS5oCmluZGV4IDFjOTE0ZWZjLi4wZGIxMmQ5OSAxMDA2NDQKLS0tIGEvbGli L3N5c3RlbS5oCisrKyBiL2xpYi9zeXN0ZW0uaApAQCAtMSw2ICsxLDcgQEAKIC8qIERlY2xhcmF0 aW9ucyBmb3IgY29tbW9uIGNvbnZlbmllbmNlIGZ1bmN0aW9ucy4KICAgIENvcHlyaWdodCAoQykg MjAwNi0yMDExIFJlZCBIYXQsIEluYy4KICAgIENvcHlyaWdodCAoQykgMjAyMiBNYXJrIEouIFdp ZWxhYXJkIDxtYXJrQGtsb21wLm9yZz4KKyAgIENvcHlyaWdodCAoQykgMjAyMyBLaGVtIFJhai4K ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgogCiAgICBUaGlzIGZpbGUgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMjEx LDQgKzIxMiwxNyBAQCBleHRlcm4gY2hhciAqX19jeGFfZGVtYW5nbGUgKGNvbnN0IGNoYXIgKm1h bmdsZWRfbmFtZSwgY2hhciAqb3V0cHV0X2J1ZmZlciwKICAgZXh0ZXJuIGludCBuZXZlcl9kZWZp bmVkX2p1c3RfdXNlZF9mb3JfY2hlY2tpbmdbKGV4cHIpID8gMSA6IC0xXQlcCiAgICAgX19hdHRy aWJ1dGVfXyAoKHVudXNlZCkpCiAKKy8qIFdlIHJlYWxseSB3YW50IGEgYmFzZW5hbWUgaW1wbGVt ZW50YXRpb24gdGhhdCBkb2Vzbid0IG1vZGlmeSB0aGUKKyAgIGlucHV0IGFyZ3VtZW50LiAgTm9y bWFsbHkgeW91IGdldCB0aGF0IGZyb20gc3RyaW5nLmggd2l0aCBfR05VX1NPVVJDRQorICAgZGVm aW5lLiAgQnV0IHNvbWUgbGliYyBpbXBsZW1lbnRhdGlvbnMgZG9uJ3QgZGVmaW5lIGl0IGFuZCBv dGhlcgorICAgZGVmaW5lIGl0LCBidXQgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHN0 aWxsIG1vZGlmaWVzIHRoZQorICAgYXJndW1lbnQuICBTbyBkZWZpbmUgb3VyIG93biBhbmQgcG9p c29uIGEgYmFyZSBiYXNlbmFtZSBzeW1ib2wuICAqLworc3RhdGljIGlubGluZSBjb25zdCBjaGFy ICoKK3hiYXNlbmFtZShjb25zdCBjaGFyICpzKQoreworICBjb25zdCBjaGFyICpwID0gc3RycmNo cihzLCAnLycpOworICByZXR1cm4gcCA/IHArMSA6IHM7Cit9CisjcHJhZ21hIEdDQyBwb2lzb24g YmFzZW5hbWUKKwogI2VuZGlmIC8qIHN5c3RlbS5oICovCmRpZmYgLS1naXQgYS9saWJkdy9kd2Fy Zl9nZXRzcmNfZmlsZS5jIGIvbGliZHcvZHdhcmZfZ2V0c3JjX2ZpbGUuYwppbmRleCA1Mjg5Yzdk YS4uMDNkYTQzMWMgMTAwNjQ0Ci0tLSBhL2xpYmR3L2R3YXJmX2dldHNyY19maWxlLmMKKysrIGIv bGliZHcvZHdhcmZfZ2V0c3JjX2ZpbGUuYwpAQCAtOTgsNyArOTgsNyBAQCBkd2FyZl9nZXRzcmNf ZmlsZSAoRHdhcmYgKmRiZywgY29uc3QgY2hhciAqZm5hbWUsIGludCBsaW5lbm8sIGludCBjb2x1 bW4sCiAJICAgICAgLyogTWF0Y2ggdGhlIG5hbWUgd2l0aCB0aGUgbmFtZSB0aGUgdXNlciBwcm92 aWRlZC4gICovCiAJICAgICAgY29uc3QgY2hhciAqZm5hbWUyID0gbGluZS0+ZmlsZXMtPmluZm9b bGFzdGZpbGVdLm5hbWU7CiAJICAgICAgaWYgKGlzX2Jhc2VuYW1lKQotCQlsYXN0bWF0Y2ggPSBz dHJjbXAgKGJhc2VuYW1lIChmbmFtZTIpLCBmbmFtZSkgPT0gMDsKKwkJbGFzdG1hdGNoID0gc3Ry Y21wICh4YmFzZW5hbWUgKGZuYW1lMiksIGZuYW1lKSA9PSAwOwogCSAgICAgIGVsc2UKIAkJbGFz dG1hdGNoID0gc3RyY21wIChmbmFtZTIsIGZuYW1lKSA9PSAwOwogCSAgICB9CmRpZmYgLS1naXQg YS9saWJkd2ZsL2NvcmUtZmlsZS5jIGIvbGliZHdmbC9jb3JlLWZpbGUuYwppbmRleCA4N2M5NDBj Yi4uODk1MjdkMjMgMTAwNjQ0Ci0tLSBhL2xpYmR3ZmwvY29yZS1maWxlLmMKKysrIGIvbGliZHdm bC9jb3JlLWZpbGUuYwpAQCAtNTk1LDcgKzU5NSw3IEBAIGR3ZmxfY29yZV9maWxlX3JlcG9ydCAo RHdmbCAqZHdmbCwgRWxmICplbGYsIGNvbnN0IGNoYXIgKmV4ZWN1dGFibGUpCiAgICAgICBpZiAo ISBfX2xpYmR3ZmxfZHluYW1pY192YWRkcl9nZXQgKG1vZHVsZS0+ZWxmLCAmZmlsZV9keW5hbWlj X3ZhZGRyKSkKIAljb250aW51ZTsKICAgICAgIER3ZmxfTW9kdWxlICptb2Q7Ci0gICAgICBtb2Qg PSBfX2xpYmR3ZmxfcmVwb3J0X2VsZiAoZHdmbCwgYmFzZW5hbWUgKG1vZHVsZS0+bmFtZSksIG1v ZHVsZS0+bmFtZSwKKyAgICAgIG1vZCA9IF9fbGliZHdmbF9yZXBvcnRfZWxmIChkd2ZsLCB4YmFz ZW5hbWUgKG1vZHVsZS0+bmFtZSksIG1vZHVsZS0+bmFtZSwKIAkJCQkgIG1vZHVsZS0+ZmQsIG1v ZHVsZS0+ZWxmLAogCQkJCSAgbW9kdWxlLT5sX2xkIC0gZmlsZV9keW5hbWljX3ZhZGRyLAogCQkJ CSAgdHJ1ZSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9saWJkd2ZsL2R3ZmxfbW9kdWxlX2dldHNyY19m aWxlLmMgYi9saWJkd2ZsL2R3ZmxfbW9kdWxlX2dldHNyY19maWxlLmMKaW5kZXggNTEzYWY2Yjgu LmZjMTQ0MjI1IDEwMDY0NAotLS0gYS9saWJkd2ZsL2R3ZmxfbW9kdWxlX2dldHNyY19maWxlLmMK KysrIGIvbGliZHdmbC9kd2ZsX21vZHVsZV9nZXRzcmNfZmlsZS5jCkBAIC0xMDMsNyArMTAzLDcg QEAgZHdmbF9tb2R1bGVfZ2V0c3JjX2ZpbGUgKER3ZmxfTW9kdWxlICptb2QsCiAJCXsKIAkJICAv KiBNYXRjaCB0aGUgbmFtZSB3aXRoIHRoZSBuYW1lIHRoZSB1c2VyIHByb3ZpZGVkLiAgKi8KIAkJ ICBsYXN0ZmlsZSA9IGZpbGU7Ci0JCSAgbGFzdG1hdGNoID0gIXN0cmNtcCAoaXNfYmFzZW5hbWUg PyBiYXNlbmFtZSAoZmlsZSkgOiBmaWxlLAorCQkgIGxhc3RtYXRjaCA9ICFzdHJjbXAgKGlzX2Jh c2VuYW1lID8geGJhc2VuYW1lIChmaWxlKSA6IGZpbGUsCiAJCQkJICAgICAgIGZuYW1lKTsKIAkJ fQogCSAgICB9CmRpZmYgLS1naXQgYS9saWJkd2ZsL2R3Zmxfc2VnbWVudF9yZXBvcnRfbW9kdWxl LmMgYi9saWJkd2ZsL2R3Zmxfc2VnbWVudF9yZXBvcnRfbW9kdWxlLmMKaW5kZXggMDllZTM3YjMu LmRjMzRlMGFlIDEwMDY0NAotLS0gYS9saWJkd2ZsL2R3Zmxfc2VnbWVudF9yZXBvcnRfbW9kdWxl LmMKKysrIGIvbGliZHdmbC9kd2ZsX3NlZ21lbnRfcmVwb3J0X21vZHVsZS5jCkBAIC03MTgsNyAr NzE4LDcgQEAgZHdmbF9zZWdtZW50X3JlcG9ydF9tb2R1bGUgKER3ZmwgKmR3ZmwsIGludCBuZHgs IGNvbnN0IGNoYXIgKm5hbWUsCiAJICAgICAgYmlhcyArPSBmaXh1cDsKIAkgICAgICBpZiAobW9k dWxlLT5uYW1lWzBdICE9ICdcMCcpCiAJCXsKLQkJICBuYW1lID0gYmFzZW5hbWUgKG1vZHVsZS0+ bmFtZSk7CisJCSAgbmFtZSA9IHhiYXNlbmFtZSAobW9kdWxlLT5uYW1lKTsKIAkJICBuYW1lX2lz X2ZpbmFsID0gdHJ1ZTsKIAkJfQogCSAgICAgIGJyZWFrOwpAQCAtNzQzLDcgKzc0Myw3IEBAIGR3 Zmxfc2VnbWVudF9yZXBvcnRfbW9kdWxlIChEd2ZsICpkd2ZsLCBpbnQgbmR4LCBjb25zdCBjaGFy ICpuYW1lLAogCQkgICBwcmV2ZW50cyBwcmVtYXR1cmUgY2xvc3VyZSBvZiB0aGUgY29ycmVjdCBF TEYgaW4gY2FzZXMKIAkJICAgd2hlcmUgc2VnbWVudHMgb2YgYSBtb2R1bGUgYXJlIG5vbi1jb250 aWd1b3VzIGluIG1lbW9yeS4gICovCiAJCWlmIChuYW1lICE9IE5VTEwgJiYgbW9kdWxlLT5uYW1l WzBdICE9ICdcMCcKLQkJICAgICYmIHN0cmNtcCAoYmFzZW5hbWUgKG1vZHVsZS0+bmFtZSksIGJh c2VuYW1lIChuYW1lKSkgPT0gMCkKKwkJICAgICYmIHN0cmNtcCAoeGJhc2VuYW1lIChtb2R1bGUt Pm5hbWUpLCB4YmFzZW5hbWUgKG5hbWUpKSA9PSAwKQogCQkgIHsKIAkJICAgIGVsZl9lbmQgKG1v ZHVsZS0+ZWxmKTsKIAkJICAgIGNsb3NlIChtb2R1bGUtPmZkKTsKZGlmZiAtLWdpdCBhL2xpYmR3 ZmwvZmluZC1kZWJ1Z2luZm8uYyBiL2xpYmR3ZmwvZmluZC1kZWJ1Z2luZm8uYwppbmRleCA3Zjdh YjYzMi4uYjM1OGM3NzQgMTAwNjQ0Ci0tLSBhL2xpYmR3ZmwvZmluZC1kZWJ1Z2luZm8uYworKysg Yi9saWJkd2ZsL2ZpbmQtZGVidWdpbmZvLmMKQEAgLTE2NCw3ICsxNjQsNyBAQCBmaW5kX2RlYnVn aW5mb19pbl9wYXRoIChEd2ZsX01vZHVsZSAqbW9kLCBjb25zdCBjaGFyICpmaWxlX25hbWUsCiB7 CiAgIGJvb2wgY2FuY2hlY2sgPSBkZWJ1Z2xpbmtfY3JjICE9IChHRWxmX1dvcmQpIDA7CiAKLSAg Y29uc3QgY2hhciAqZmlsZV9iYXNlbmFtZSA9IGZpbGVfbmFtZSA9PSBOVUxMID8gTlVMTCA6IGJh c2VuYW1lIChmaWxlX25hbWUpOworICBjb25zdCBjaGFyICpmaWxlX2Jhc2VuYW1lID0gZmlsZV9u YW1lID09IE5VTEwgPyBOVUxMIDogeGJhc2VuYW1lIChmaWxlX25hbWUpOwogICBjaGFyICpsb2Nh bG5hbWUgPSBOVUxMOwogCiAgIC8qIFdlIGludmVudCBhIGRlYnVnbGluayAuZGVidWcgbmFtZSBp ZiBOVUxMLCBidXQgdGhlbiB3YW50IHRvIHRyeSB0aGUKQEAgLTI3OCw3ICsyNzgsNyBAQCBmaW5k X2RlYnVnaW5mb19pbl9wYXRoIChEd2ZsX01vZHVsZSAqbW9kLCBjb25zdCBjaGFyICpmaWxlX25h bWUsCiAJICBlbHNlCiAJICAgIHsKIAkgICAgICBzdWJkaXIgPSBOVUxMOwotCSAgICAgIGZpbGUg PSBiYXNlbmFtZSAoZGVidWdsaW5rX2ZpbGUpOworCSAgICAgIGZpbGUgPSB4YmFzZW5hbWUgKGRl YnVnbGlua19maWxlKTsKIAkgICAgfQogCSAgdHJ5X2ZpbGVfYmFzZW5hbWUgPSBkZWJ1Z2xpbmtf bnVsbDsKIAkgIGJyZWFrOwpAQCAtMzA2LDcgKzMwNiw3IEBAIGZpbmRfZGVidWdpbmZvX2luX3Bh dGggKER3ZmxfTW9kdWxlICptb2QsIGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwKIAkgICAgaWYgKG1v ZC0+ZHcgIT0gTlVMTCAmJiAocFswXSA9PSAnXDAnIHx8IHBbMF0gPT0gJy8nKSkKIAkgICAgICB7 CiAJCWZkID0gdHJ5X29wZW4gKCZtYWluX3N0YXQsIGRpciwgIi5kd3oiLAotCQkJICAgICAgIGJh c2VuYW1lIChmaWxlKSwgJmZuYW1lKTsKKwkJCSAgICAgICB4YmFzZW5hbWUgKGZpbGUpLCAmZm5h bWUpOwogCQlpZiAoZmQgPCAwKQogCQkgIHsKIAkJICAgIGlmIChlcnJubyAhPSBFTk9FTlQgJiYg ZXJybm8gIT0gRU5PVERJUikKZGlmZiAtLWdpdCBhL2xpYmR3ZmwvbGlua19tYXAuYyBiL2xpYmR3 ZmwvbGlua19tYXAuYwppbmRleCA3NmYyMzM1NC4uYTZjNjZjNzggMTAwNjQ0Ci0tLSBhL2xpYmR3 ZmwvbGlua19tYXAuYworKysgYi9saWJkd2ZsL2xpbmtfbWFwLmMKQEAgLTQ3NSw3ICs0NzUsNyBA QCByZXBvcnRfcl9kZWJ1ZyAodWludF9mYXN0OF90IGVsZmNsYXNzLCB1aW50X2Zhc3Q4X3QgZWxm ZGF0YSwKIAkJICAgICAgaWYgKHJfZGVidWdfaW5mb19tb2R1bGUgPT0gTlVMTCkKIAkJCXsKIAkJ CSAgLy8gWFhYIGhvb2sgZm9yIHN5c3Jvb3QKLQkJCSAgbW9kID0gX19saWJkd2ZsX3JlcG9ydF9l bGYgKGR3ZmwsIGJhc2VuYW1lIChuYW1lKSwKKwkJCSAgbW9kID0gX19saWJkd2ZsX3JlcG9ydF9l bGYgKGR3ZmwsIHhiYXNlbmFtZSAobmFtZSksCiAJCQkJCQkgICAgICBuYW1lLCBmZCwgZWxmLCBi YXNlLAogCQkJCQkJICAgICAgdHJ1ZSwgdHJ1ZSk7CiAJCQkgIGlmIChtb2QgIT0gTlVMTCkKZGlm ZiAtLWdpdCBhL2xpYmR3ZmwvbGludXgta2VybmVsLW1vZHVsZXMuYyBiL2xpYmR3ZmwvbGludXgt a2VybmVsLW1vZHVsZXMuYwppbmRleCA1OGMwYzQxNy4uZTlmYWJhMjYgMTAwNjQ0Ci0tLSBhL2xp YmR3ZmwvbGludXgta2VybmVsLW1vZHVsZXMuYworKysgYi9saWJkd2ZsL2xpbnV4LWtlcm5lbC1t b2R1bGVzLmMKQEAgLTExNiw3ICsxMTYsNyBAQCB0cnlfa2VybmVsX25hbWUgKER3ZmwgKmR3Zmws IGNoYXIgKipmbmFtZSwgYm9vbCB0cnlfZGVidWcpCiAJLyogVHJ5IHRoZSBmaWxlJ3MgdW5hZG9y bmVkIGJhc2VuYW1lIGFzIERFQlVHTElOS19GSUxFLAogCSAgIHRvIGxvb2sgb25seSBmb3IgInZt bGludXgiIGZpbGVzLiAgKi8KIAlmZCA9IElOVFVTRShkd2ZsX3N0YW5kYXJkX2ZpbmRfZGVidWdp bmZvKSAoJmZha2Vtb2QsIE5VTEwsIE5VTEwsIDAsCi0JCQkJCQkgICAqZm5hbWUsIGJhc2VuYW1l ICgqZm5hbWUpLAorCQkJCQkJICAgKmZuYW1lLCB4YmFzZW5hbWUgKCpmbmFtZSksCiAJCQkJCQkg ICAwLCAmZmFrZW1vZC5kZWJ1Zy5uYW1lKTsKIAogICAgICAgaWYgKGZha2Vtb2QuZGVidWcubmFt ZSAhPSBOVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL2FkZHIybGluZS5jIGIvc3JjL2FkZHIybGluZS5j CmluZGV4IGQ5MDJkNzkxLi5kODdlNWI0NSAxMDA2NDQKLS0tIGEvc3JjL2FkZHIybGluZS5jCisr KyBiL3NyYy9hZGRyMmxpbmUuYwpAQCAtMzg1LDcgKzM4NSw3IEBAIHByaW50X2R3YXJmX2Z1bmN0 aW9uIChEd2ZsX01vZHVsZSAqbW9kLCBEd2FyZl9BZGRyIGFkZHIpCiAJCSAgaWYgKGZpbGUgPT0g TlVMTCkKIAkJICAgIGZpbGUgPSAiPz8/IjsKIAkJICBlbHNlIGlmIChvbmx5X2Jhc2VuYW1lcykK LQkJICAgIGZpbGUgPSBiYXNlbmFtZSAoZmlsZSk7CisJCSAgICBmaWxlID0geGJhc2VuYW1lIChm aWxlKTsKIAkJICBlbHNlIGlmICh1c2VfY29tcF9kaXIgJiYgZmlsZVswXSAhPSAnLycpCiAJCSAg ICB7CiAJCSAgICAgIGNvbnN0IGNoYXIgKmNvbnN0ICpkaXJzOwpAQCAtNTY4LDcgKzU2OCw3IEBA IHByaW50X3NyYyAoY29uc3QgY2hhciAqc3JjLCBpbnQgbGluZW5vLCBpbnQgbGluZWNvbCwgRHdh cmZfRGllICpjdSkKICAgY29uc3QgY2hhciAqY29tcF9kaXJfc2VwID0gIiI7CiAKICAgaWYgKG9u bHlfYmFzZW5hbWVzKQotICAgIHNyYyA9IGJhc2VuYW1lIChzcmMpOworICAgIHNyYyA9IHhiYXNl bmFtZSAoc3JjKTsKICAgZWxzZSBpZiAodXNlX2NvbXBfZGlyICYmIHNyY1swXSAhPSAnLycpCiAg ICAgewogICAgICAgRHdhcmZfQXR0cmlidXRlIGF0dHI7CmRpZmYgLS1naXQgYS9zcmMvYXIuYyBi L3NyYy9hci5jCmluZGV4IDNiY2IxOGZlLi5lNmQ2ZDU4ZiAxMDA2NDQKLS0tIGEvc3JjL2FyLmMK KysrIGIvc3JjL2FyLmMKQEAgLTExMzMsNyArMTEzMyw3IEBAIGRvX29wZXJfaW5zZXJ0IChpbnQg b3BlciwgY29uc3QgY2hhciAqYXJmbmFtZSwgY2hhciAqKmFyZ3YsIGludCBhcmdjLAogICAgICAg Zm9yIChpbnQgY250ID0gMDsgY250IDwgYXJnYzsgKytjbnQpCiAJewogCSAgRU5UUlkgZW50cnk7 Ci0JICBlbnRyeS5rZXkgPSBmdWxsX3BhdGggPyBhcmd2W2NudF0gOiBiYXNlbmFtZSAoYXJndltj bnRdKTsKKwkgIGVudHJ5LmtleSA9IGZ1bGxfcGF0aCA/IGFyZ3ZbY250XSA6IChjaGFyKil4YmFz ZW5hbWUgKGFyZ3ZbY250XSk7CiAJICBlbnRyeS5kYXRhID0gJmFyZ3ZbY250XTsKIAkgIGlmICho c2VhcmNoIChlbnRyeSwgRU5URVIpID09IE5VTEwpCiAJICAgIGVycm9yX2V4aXQgKGVycm5vLCBf KCJjYW5ub3QgaW5zZXJ0IGludG8gaGFzaCB0YWJsZSIpKTsKQEAgLTEyNDIsNyArMTI0Miw3IEBA IGRvX29wZXJfaW5zZXJ0IChpbnQgb3BlciwgY29uc3QgY2hhciAqYXJmbmFtZSwgY2hhciAqKmFy Z3YsIGludCBhcmdjLAogICAgICAgLyogT3BlbiBhbGwgdGhlIG5ldyBmaWxlcywgZ2V0IHRoZWly IHNpemVzIGFuZCBhZGQgYWxsIHN5bWJvbHMuICAqLwogICAgICAgZm9yIChpbnQgY250ID0gMDsg Y250IDwgYXJnYzsgKytjbnQpCiAJewotCSAgY29uc3QgY2hhciAqYm5hbWUgPSBiYXNlbmFtZSAo YXJndltjbnRdKTsKKwkgIGNvbnN0IGNoYXIgKmJuYW1lID0geGJhc2VuYW1lIChhcmd2W2NudF0p OwogCSAgc2l6ZV90IGJuYW1lbGVuID0gc3RybGVuIChibmFtZSk7CiAJICBpZiAoZm91bmRbY250 XSA9PSBOVUxMKQogCSAgICB7CmRpZmYgLS1naXQgYS9zcmMvbm0uYyBiL3NyYy9ubS5jCmluZGV4 IGZiZGVlOGUxLi4zNjc1ZjU5YiAxMDA2NDQKLS0tIGEvc3JjL25tLmMKKysrIGIvc3JjL25tLmMK QEAgLTE0MTcsNyArMTQxNyw3IEBAIHNob3dfc3ltYm9scyAoaW50IGZkLCBFYmwgKmVibCwgR0Vs Zl9FaGRyICplaGRyLAogCQkJICBpbnQgbGluZW5vOwogCQkJICAodm9pZCkgZHdhcmZfbGluZW5v IChsaW5lLCAmbGluZW5vKTsKIAkJCSAgY29uc3QgY2hhciAqZmlsZSA9IGR3YXJmX2xpbmVzcmMg KGxpbmUsIE5VTEwsIE5VTEwpOwotCQkJICBmaWxlID0gKGZpbGUgIT0gTlVMTCkgPyBiYXNlbmFt ZSAoZmlsZSkgOiAiPz8/IjsKKwkJCSAgZmlsZSA9IChmaWxlICE9IE5VTEwpID8geGJhc2VuYW1l IChmaWxlKSA6ICI/Pz8iOwogCQkJICBpbnQgbjsKIAkJCSAgbiA9IG9ic3RhY2tfcHJpbnRmICgm d2hlcmVvYiwgIiVzOiVkJWMiLCBmaWxlLAogCQkJCQkgICAgICBsaW5lbm8sICdcMCcpOwpAQCAt MTQ0OCw3ICsxNDQ4LDcgQEAgc2hvd19zeW1ib2xzIChpbnQgZmQsIEVibCAqZWJsLCBHRWxmX0Vo ZHIgKmVoZHIsCiAJCXsKIAkJICAvKiBXZSBmb3VuZCB0aGUgbGluZS4gICovCiAJCSAgaW50IG4g PSBvYnN0YWNrX3ByaW50ZiAoJndoZXJlb2IsICIlczolIiBQUkl1NjQgIiVjIiwKLQkJCQkJICBi YXNlbmFtZSAoKCpmb3VuZCktPmZpbGUpLAorCQkJCQkgIHhiYXNlbmFtZSAoKCpmb3VuZCktPmZp bGUpLAogCQkJCQkgICgqZm91bmQpLT5saW5lbm8sCiAJCQkJCSAgJ1wwJyk7CiAJCSAgc3ltX21l bVtuZW50cmllc191c2VkXS53aGVyZSA9IG9ic3RhY2tfZmluaXNoICgmd2hlcmVvYik7CmRpZmYg LS1naXQgYS9zcmMvc3RhY2suYyBiL3NyYy9zdGFjay5jCmluZGV4IDUzNGFhOTNjLi5mNGM1YmE4 YyAxMDA2NDQKLS0tIGEvc3JjL3N0YWNrLmMKKysrIGIvc3JjL3N0YWNrLmMKQEAgLTE1Miw3ICsx NTIsNyBAQCBtb2R1bGVfY2FsbGJhY2sgKER3ZmxfTW9kdWxlICptb2QsIHZvaWQgKip1c2VyZGF0 YSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwKIAogICBpbnQgd2lkdGggPSBnZXRfYWRkcl93aWR0 aCAobW9kKTsKICAgcHJpbnRmICgiMHglMCoiIFBSSXg2NCAiLTB4JTAqIiBQUkl4NjQgIiAlc1xu IiwKLQkgIHdpZHRoLCBzdGFydCwgd2lkdGgsIGVuZCwgYmFzZW5hbWUgKG5hbWUpKTsKKwkgIHdp ZHRoLCBzdGFydCwgd2lkdGgsIGVuZCwgeGJhc2VuYW1lIChuYW1lKSk7CiAKICAgY29uc3QgdW5z aWduZWQgY2hhciAqaWQ7CiAgIEdFbGZfQWRkciBpZF92YWRkcjsKZGlmZiAtLWdpdCBhL3NyYy9z dHJpcC5jIGIvc3JjL3N0cmlwLmMKaW5kZXggN2Y0Nzg4YjMuLjY0MzY0NDNkIDEwMDY0NAotLS0g YS9zcmMvc3RyaXAuYworKysgYi9zcmMvc3RyaXAuYwpAQCAtMTgwMCw3ICsxODAwLDcgQEAgaGFu ZGxlX2VsZiAoaW50IGZkLCBFbGYgKmVsZiwgY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFy ICpmbmFtZSwKIAkJICAgICAgZWxmX2Vycm1zZyAoLTEpKTsKIAl9CiAKLSAgICAgIGNoYXIgKmRl YnVnX2Jhc2VuYW1lID0gYmFzZW5hbWUgKGRlYnVnX2ZuYW1lX2VtYmVkID86IGRlYnVnX2ZuYW1l KTsKKyAgICAgIGNvbnN0IGNoYXIgKmRlYnVnX2Jhc2VuYW1lID0geGJhc2VuYW1lIChkZWJ1Z19m bmFtZV9lbWJlZCA/OiBkZWJ1Z19mbmFtZSk7CiAgICAgICBvZmZfdCBjcmNfb2Zmc2V0ID0gc3Ry bGVuIChkZWJ1Z19iYXNlbmFtZSkgKyAxOwogICAgICAgLyogQWxpZ24gdG8gNCBieXRlIGJvdW5k YXJ5ICovCiAgICAgICBjcmNfb2Zmc2V0ID0gKChjcmNfb2Zmc2V0IC0gMSkgJiB+MykgKyA0Owpk aWZmIC0tZ2l0IGEvdGVzdHMvc2hvdy1kaWUtaW5mby5jIGIvdGVzdHMvc2hvdy1kaWUtaW5mby5j CmluZGV4IDFhMzE5MWNkLi5iZGE0NTlhNSAxMDA2NDQKLS0tIGEvdGVzdHMvc2hvdy1kaWUtaW5m by5jCisrKyBiL3Rlc3RzL3Nob3ctZGllLWluZm8uYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1 ZGUgPHVuaXN0ZC5oPgogCiAjaW5jbHVkZSAiLi4vbGliZHcva25vd24tZHdhcmYuaCIKKyNpbmNs dWRlICIuLi9saWIvc3lzdGVtLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyICoKIGR3YXJmX3RhZ19z dHJpbmcgKHVuc2lnbmVkIGludCB0YWcpCkBAIC0zMTgsNyArMzE5LDcgQEAgbWFpbiAoaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgIGludCBmZCA9IG9wZW4gKGFyZ3ZbY250XSwgT19SRE9O TFkpOwogICAgICAgRHdhcmYgKmRiZzsKIAotICAgICAgcHJpbnRmICgiZmlsZTogJXNcbiIsIGJh c2VuYW1lIChhcmd2W2NudF0pKTsKKyAgICAgIHByaW50ZiAoImZpbGU6ICVzXG4iLCB4YmFzZW5h bWUgKGFyZ3ZbY250XSkpOwogCiAgICAgICBkYmcgPSBkd2FyZl9iZWdpbiAoZmQsIERXQVJGX0Nf UkVBRCk7CiAgICAgICBpZiAoZGJnID09IE5VTEwpCmRpZmYgLS1naXQgYS90ZXN0cy92YXJsb2Nz LmMgYi90ZXN0cy92YXJsb2NzLmMKaW5kZXggOGU1NjNmZDMuLjEwMDRmOTY5IDEwMDY0NAotLS0g YS90ZXN0cy92YXJsb2NzLmMKKysrIGIvdGVzdHMvdmFybG9jcy5jCkBAIC0xMTIwLDcgKzExMjAs NyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQogCiAJICBjb25zdCBjaGFyICpuYW1l ID0gKG1vZG5hbWVbMF0gIT0gJ1wwJwogCQkJICAgICAgPyBtb2RuYW1lCi0JCQkgICAgICA6ICBi YXNlbmFtZSAobWFpbmZpbGUpKTsKKwkJCSAgICAgIDogIHhiYXNlbmFtZSAobWFpbmZpbGUpKTsK IAkgIHByaW50ZiAoIm1vZHVsZSAnJXMnXG4iLCBuYW1lKTsKIAkgIHByaW50X2RpZSAoJmN1ZGll LCAiQ1UiLCAwKTsKIAotLSAKMi40MS4wCgo= --=-fLpNo0S/pL/oK0Oni9fn--