From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: RFC on proposal fix [Re: Crash caused by insert-file-contents, both trunk (bzr 111532) and 24.2.92 affected] Date: Thu, 17 Jan 2013 21:12:22 +0400 Message-ID: <50F830F6.1070805@yandex.ru> References: <50F52EC0.2030309@yandex.ru> <8338y2qsyi.fsf@gnu.org> <50F593E8.2030105@yandex.ru> <83vcay8g2n.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010806010503020303090508" X-Trace: ger.gmane.org 1358442763 5340 80.91.229.3 (17 Jan 2013 17:12:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 17 Jan 2013 17:12:43 +0000 (UTC) Cc: Eli Zaretskii To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jan 17 18:13:01 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Tvt1L-0007gU-PD for ged-emacs-devel@m.gmane.org; Thu, 17 Jan 2013 18:12:55 +0100 Original-Received: from localhost ([::1]:37609 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tvt15-0001Zc-3k for ged-emacs-devel@m.gmane.org; Thu, 17 Jan 2013 12:12:39 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:58124) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tvt11-0001WS-Sn for emacs-devel@gnu.org; Thu, 17 Jan 2013 12:12:37 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tvt0z-0002p2-Ff for emacs-devel@gnu.org; Thu, 17 Jan 2013 12:12:35 -0500 Original-Received: from forward6.mail.yandex.net ([77.88.60.125]:45741) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tvt0w-0002oN-Jo; Thu, 17 Jan 2013 12:12:31 -0500 Original-Received: from smtp8.mail.yandex.net (smtp8.mail.yandex.net [77.88.61.54]) by forward6.mail.yandex.net (Yandex) with ESMTP id 945CA11216D4; Thu, 17 Jan 2013 21:12:22 +0400 (MSK) Original-Received: from smtp8.mail.yandex.net (localhost [127.0.0.1]) by smtp8.mail.yandex.net (Yandex) with ESMTP id 6B2C11B600EE; Thu, 17 Jan 2013 21:12:22 +0400 (MSK) Original-Received: from unknown (unknown [37.139.80.10]) by smtp8.mail.yandex.net (nwsmtp/Yandex) with ESMTP id CMkKOxCM-CMkWlqvw; Thu, 17 Jan 2013 21:12:22 +0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1358442742; bh=2EROrZPYBq0uX7+exnoTw9LlWICAVpwG3AxoknAS02Y=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type; b=O78Iznx5euez20WXeRo6LvDqGuQLSoZQpq23MdR7KmejxRDVhiGOFkiCo6o5QQSD7 8B7Qzp/FvrF0hOCsY4axCMuivIVB4LEtuDOqGSiqZunanqUlR/SLtM2YlHxM0cpgIp cQOAV9K7RT4/IGpqUKumYVnuybp+jUmY56QrFb5I= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 In-Reply-To: <83vcay8g2n.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 77.88.60.125 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:156446 Archived-At: This is a multi-part message in MIME format. --------------010806010503020303090508 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This is what I'm testing now. I'm trying to a) read _everything_ with internal_condition_case_1 to avoid C-g mess, b) have consistent buffer text state after each successful read, and c) always decode all read data to avoid redisplay crash. Dmitry --------------010806010503020303090508 Content-Type: text/plain; charset=UTF-8; name="insert_file_contents.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="insert_file_contents.patch" PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9maWxlaW8uYycKLS0tIHNyYy9maWxlaW8uYwkyMDEz LTAxLTE3IDA2OjI5OjQwICswMDAwCisrKyBzcmMvZmlsZWlvLmMJMjAxMy0wMS0xNyAxNjo1 NDozMiArMDAwMApAQCAtMzQwOCwxMyArMzQwOCwxMyBAQAogICByZXR1cm4gUW5pbDsKIH0K IAotLyogUmVhZCBmcm9tIGEgbm9uLXJlZ3VsYXIgZmlsZS4gIFNUQVRFIGlzIGEgTGlzcF9T YXZlX1ZhbHVlCisvKiBDaGVjayBxdWl0IGFuZCByZWFkIGZyb20gZmlsZS4gIFNUQVRFIGlz IGEgTGlzcF9TYXZlX1ZhbHVlCiAgICBvYmplY3Qgd2hlcmUgc2xvdCAwIGlzIHRoZSBmaWxl IGRlc2NyaXB0b3IsIHNsb3QgMSBzcGVjaWZpZXMKICAgIGFuIG9mZnNldCB0byBwdXQgdGhl IHJlYWQgYnl0ZXMsIGFuZCBzbG90IDIgaXMgdGhlIG1heGltdW0KICAgIGFtb3VudCBvZiBi eXRlcyB0byByZWFkLiAgVmFsdWUgaXMgdGhlIG51bWJlciBvZiBieXRlcyByZWFkLiAgKi8K IAogc3RhdGljIExpc3BfT2JqZWN0Ci1yZWFkX25vbl9yZWd1bGFyIChMaXNwX09iamVjdCBz dGF0ZSkKK3JlYWRfY29udGVudHMgKExpc3BfT2JqZWN0IHN0YXRlKQogewogICBpbnQgbmJ5 dGVzOwogCkBAIC0zNDI1LDE1ICszNDI1LDE1IEBACiAJCQkrIFhTQVZFX0lOVEVHRVIgKHN0 YXRlLCAxKSksCiAJCSAgICAgICBYU0FWRV9JTlRFR0VSIChzdGF0ZSwgMikpOwogICBpbW1l ZGlhdGVfcXVpdCA9IDA7CisgIC8qIEZhc3QgcmVjeWNsZSB0aGlzIG9iamVjdCBmb3IgdGhl IGxpa2VseSBuZXh0IGNhbGwuICAqLworICBmcmVlX21pc2MgKHN0YXRlKTsKICAgcmV0dXJu IG1ha2VfbnVtYmVyIChuYnl0ZXMpOwogfQogCi0KLS8qIENvbmRpdGlvbi1jYXNlIGhhbmRs ZXIgdXNlZCB3aGVuIHJlYWRpbmcgZnJvbSBub24tcmVndWxhciBmaWxlcwotICAgaW4gaW5z ZXJ0LWZpbGUtY29udGVudHMuICAqLworLyogQ29uZGl0aW9uLWNhc2UgaGFuZGxlciB1c2Vk IHdoZW4gcmVhZGluZyBmaWxlcyBpbiBpbnNlcnQtZmlsZS1jb250ZW50cy4gICovCiAKIHN0 YXRpYyBMaXNwX09iamVjdAotcmVhZF9ub25fcmVndWxhcl9xdWl0IChMaXNwX09iamVjdCBp Z25vcmUpCityZWFkX2NvbnRlbnRzX3F1aXQgKExpc3BfT2JqZWN0IGlnbm9yZSkKIHsKICAg cmV0dXJuIFFuaWw7CiB9CkBAIC0zNTA2LDcgKzM1MDYsNyBAQAogICBMaXNwX09iamVjdCBw OwogICBwdHJkaWZmX3QgdG90YWwgPSAwOwogICBib29sIG5vdF9yZWd1bGFyID0gMDsKLSAg aW50IHNhdmVfZXJybm8gPSAwOworICBpbnQgc2F2ZV9lcnJubyA9IDAsIHJlYWRfZXJybm8g PSAwOwogICBjaGFyIHJlYWRfYnVmW1JFQURfQlVGX1NJWkVdOwogICBzdHJ1Y3QgY29kaW5n X3N5c3RlbSBjb2Rpbmc7CiAgIGNoYXIgYnVmZmVyWzEgPDwgMTRdOwpAQCAtNDIxMyw4OCAr NDIxMyw3MSBAQAogCQkJICAgRmNvbnMgKG9yaWdfZmlsZW5hbWUsIFFuaWwpKTsKICAgICB9 CiAKLSAgLyogSW4gdGhlIGZvbGxvd2luZyBsb29wLCBIT1dfTVVDSCBjb250YWlucyB0aGUg dG90YWwgYnl0ZXMgcmVhZCBzbwotICAgICBmYXIgZm9yIGEgcmVndWxhciBmaWxlLCBhbmQg bm90IGNoYW5nZWQgZm9yIGEgc3BlY2lhbCBmaWxlLiAgQnV0LAotICAgICBiZWZvcmUgZXhp dGluZyB0aGUgbG9vcCwgaXQgaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUgaWYgSS9PCi0g ICAgIGVycm9yIG9jY3Vycy4gICovCisgIC8qIEluIHRoZSBmb2xsb3dpbmcgbG9vcCwgSE9X X01VQ0ggY29udGFpbnMgdGhlIHRvdGFsIGJ5dGVzIHJlYWQKKyAgICAgc28gZmFyIGZvciBh IHJlZ3VsYXIgZmlsZSwgYW5kIG5vdCBjaGFuZ2VkIGZvciBhIHNwZWNpYWwgZmlsZS4gICov CiAgIGhvd19tdWNoID0gMDsKIAogICAvKiBUb3RhbCBieXRlcyBpbnNlcnRlZC4gICovCiAg IGluc2VydGVkID0gMDsKIAotICAvKiBIZXJlLCB3ZSBkb24ndCBkbyBjb2RlIGNvbnZlcnNp b24gaW4gdGhlIGxvb3AuICBJdCBpcyBkb25lIGJ5Ci0gICAgIGRlY29kZV9jb2RpbmdfZ2Fw IGFmdGVyIGFsbCBkYXRhIGFyZSByZWFkIGludG8gdGhlIGJ1ZmZlci4gICovCi0gIHsKLSAg ICBwdHJkaWZmX3QgZ2FwX3NpemUgPSBHQVBfU0laRTsKLQotICAgIHdoaWxlIChob3dfbXVj aCA8IHRvdGFsKQotICAgICAgewotCS8qIHRyeSBpcyByZXNlcnZlZCBpbiBzb21lIGNvbXBp bGVycyAoTWljcm9zb2Z0IEMpICovCi0JcHRyZGlmZl90IHRyeXRyeSA9IG1pbiAodG90YWwg LSBob3dfbXVjaCwgUkVBRF9CVUZfU0laRSk7Ci0JcHRyZGlmZl90IHRoaXM7Ci0KLQlpZiAo bm90X3JlZ3VsYXIpCi0JICB7Ci0JICAgIExpc3BfT2JqZWN0IG5ieXRlczsKLQotCSAgICAv KiBNYXliZSBtYWtlIG1vcmUgcm9vbS4gICovCi0JICAgIGlmIChnYXBfc2l6ZSA8IHRyeXRy eSkKLQkgICAgICB7Ci0JCW1ha2VfZ2FwICh0b3RhbCAtIGdhcF9zaXplKTsKLQkJZ2FwX3Np emUgPSBHQVBfU0laRTsKLQkgICAgICB9Ci0KLQkgICAgLyogUmVhZCBmcm9tIHRoZSBmaWxl LCBjYXB0dXJpbmcgYHF1aXQnLiAgV2hlbiBhbgotCSAgICAgICBlcnJvciBvY2N1cnMsIGVu ZCB0aGUgbG9vcCwgYW5kIGFycmFuZ2UgZm9yIGEgcXVpdAotCSAgICAgICB0byBiZSBzaWdu YWxlZCBhZnRlciBkZWNvZGluZyB0aGUgdGV4dCB3ZSByZWFkLiAgKi8KLQkgICAgbmJ5dGVz ID0gaW50ZXJuYWxfY29uZGl0aW9uX2Nhc2VfMQotCSAgICAgIChyZWFkX25vbl9yZWd1bGFy LAotCSAgICAgICBtYWtlX3NhdmVfdmFsdWUgKCJpaWkiLCAocHRyZGlmZl90KSBmZCwgaW5z ZXJ0ZWQsIHRyeXRyeSksCi0JICAgICAgIFFlcnJvciwgcmVhZF9ub25fcmVndWxhcl9xdWl0 KTsKLQotCSAgICBpZiAoTklMUCAobmJ5dGVzKSkKLQkgICAgICB7Ci0JCXJlYWRfcXVpdCA9 IDE7Ci0JCWJyZWFrOwotCSAgICAgIH0KLQotCSAgICB0aGlzID0gWElOVCAobmJ5dGVzKTsK LQkgIH0KLQllbHNlCi0JICB7Ci0JICAgIC8qIEFsbG93IHF1aXR0aW5nIG91dCBvZiB0aGUg YWN0dWFsIEkvTy4gIFdlIGRvbid0IG1ha2UgdGV4dAotCSAgICAgICBwYXJ0IG9mIHRoZSBi dWZmZXIgdW50aWwgYWxsIHRoZSByZWFkaW5nIGlzIGRvbmUsIHNvIGEgQy1nCi0JICAgICAg IGhlcmUgZG9lc24ndCBkbyBhbnkgaGFybS4gICovCi0JICAgIGltbWVkaWF0ZV9xdWl0ID0g MTsKLQkgICAgUVVJVDsKLQkgICAgdGhpcyA9IGVtYWNzX3JlYWQgKGZkLAotCQkJICAgICAg ICgoY2hhciAqKSBCRUdfQUREUiArIFBUX0JZVEUgLSBCRUdfQllURQotCQkJCSsgaW5zZXJ0 ZWQpLAotCQkJICAgICAgIHRyeXRyeSk7Ci0JICAgIGltbWVkaWF0ZV9xdWl0ID0gMDsKLQkg IH0KLQotCWlmICh0aGlzIDw9IDApCi0JICB7Ci0JICAgIGhvd19tdWNoID0gdGhpczsKLQkg ICAgYnJlYWs7Ci0JICB9Ci0KLQlnYXBfc2l6ZSAtPSB0aGlzOwotCi0JLyogRm9yIGEgcmVn dWxhciBmaWxlLCB3aGVyZSBUT1RBTCBpcyB0aGUgcmVhbCBzaXplLAotCSAgIGNvdW50IEhP V19NVUNIIHRvIGNvbXBhcmUgd2l0aCBpdC4KLQkgICBGb3IgYSBzcGVjaWFsIGZpbGUsIHdo ZXJlIFRPVEFMIGlzIGp1c3QgYSBidWZmZXIgc2l6ZSwKLQkgICBzbyBkb24ndCBib3RoZXIg Y291bnRpbmcgaW4gSE9XX01VQ0guCi0JICAgKElOU0VSVEVEIGlzIHdoZXJlIHdlIGNvdW50 IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbnNlcnRlZC4pICAqLwotCWlmICghIG5vdF9y ZWd1bGFyKQotCSAgaG93X211Y2ggKz0gdGhpczsKLQlpbnNlcnRlZCArPSB0aGlzOwotICAg ICAgfQotICB9Ci0KLSAgLyogTm93IHdlIGhhdmUgcmVhZCBhbGwgdGhlIGZpbGUgZGF0YSBp bnRvIHRoZSBnYXAuCi0gICAgIElmIGl0IHdhcyBlbXB0eSwgdW5kbyBtYXJraW5nIHRoZSBi dWZmZXIgbW9kaWZpZWQuICAqLworICAvKiBIZXJlIHdlIGRvbid0IGRvIGNvZGUgY29udmVy c2lvbiBpbiB0aGUgbG9vcC4gIEl0IGlzIGRvbmUgYnkKKyAgICAgZGVjb2RlX2NvZGluZ19n YXAgYWZ0ZXIgYWxsIGRhdGEgYXJlIHJlYWQgaW50byB0aGUgYnVmZmVyLCBvcgorICAgICBy ZWFkIGlzIGludGVycnVwdGVkIGR1ZSB0byBxdWl0IG9yIEkvTyBlcnJvci4gICovCisgIHdo aWxlIChob3dfbXVjaCA8IHRvdGFsKQorICAgIHsKKyAgICAgIHB0cmRpZmZfdCBucmVhZCwg bWF4cmVhZCA9IG1pbiAodG90YWwgLSBob3dfbXVjaCwgUkVBRF9CVUZfU0laRSk7CisgICAg ICBMaXNwX09iamVjdCByZXN1bHQ7CisKKyAgICAgIC8qIEZvciBhIHNwZWNpYWwgZmlsZSwg Z2FwIGlzIGVubGFyZ2VkIGFzIHdlIHJlYWQsCisJIHNvIEdBUF9TSVpFIHNob3VsZCBiZSBj aGVja2VkIGV2ZXJ5IHRpbWUuICAqLworICAgICAgaWYgKG5vdF9yZWd1bGFyICYmIChHQVBf U0laRSA8IG1heHJlYWQpKQorCW1ha2VfZ2FwIChtYXhyZWFkIC0gR0FQX1NJWkUpOworCisg ICAgICAvKiBSZWFkIGZyb20gdGhlIGZpbGUsIGNhcHR1cmluZyBgcXVpdCcuICAqLworICAg ICAgcmVzdWx0ID0gaW50ZXJuYWxfY29uZGl0aW9uX2Nhc2VfMQorCShyZWFkX2NvbnRlbnRz LAorCSBtYWtlX3NhdmVfdmFsdWUgKCJpaWkiLCAocHRyZGlmZl90KSBmZCwgaW5zZXJ0ZWQs IG1heHJlYWQpLAorCSBRZXJyb3IsIHJlYWRfY29udGVudHNfcXVpdCk7CisgICAgICBpZiAo TklMUCAocmVzdWx0KSkKKwl7CisJICAvKiBRdWl0IHdhcyBzaWduYWxlZC4gIEVuZCB0aGUg bG9vcCBhbmQgYXJyYW5nZQorCSAgICAgcmVhbCBxdWl0IGFmdGVyIGRlY29kaW5nIHRoZSB0 ZXh0IHdlIHJlYWQuICAqLworCSAgcmVhZF9xdWl0ID0gMTsKKwkgIGJyZWFrOworCX0KKyAg ICAgIG5yZWFkID0gWElOVCAocmVzdWx0KTsKKyAgICAgIGlmIChucmVhZCA8PSAwKQorCXsK KwkgIC8qIEVuZCBvZiBmaWxlIG9yIEkvTyBlcnJvci4gIEVuZCB0aGUgbG9vcCBhbmQKKwkg ICAgIHNhdmUgZXJyb3IgY29kZSBpbiBjYXNlIG9mIEkvTyBlcnJvci4gICovCisJICBpZiAo bnJlYWQgPCAwKQorCSAgICByZWFkX2Vycm5vID0gZXJybm87CisJICBicmVhazsKKwl9CisK KyAgICAgIC8qIEFkanVzdCBnYXAgYW5kIGVuZCBwb3NpdGlvbnMuICAqLworICAgICAgR0FQ X1NJWkUgLT0gbnJlYWQ7CisgICAgICBHUFQgKz0gbnJlYWQ7CisgICAgICBaViArPSBucmVh ZDsKKyAgICAgIFogKz0gbnJlYWQ7CisgICAgICBHUFRfQllURSArPSBucmVhZDsKKyAgICAg IFpWX0JZVEUgKz0gbnJlYWQ7CisgICAgICBaX0JZVEUgKz0gbnJlYWQ7CisgICAgICBpZiAo R0FQX1NJWkUgPiAwKQorCSooR1BUX0FERFIpID0gMDsKKworICAgICAgLyogRm9yIGEgcmVn dWxhciBmaWxlLCB3aGVyZSBUT1RBTCBpcyB0aGUgcmVhbCBzaXplLCBjb3VudCBIT1dfTVVD SCB0bworCSBjb21wYXJlIHdpdGggaXQuICBGb3IgYSBzcGVjaWFsIGZpbGUsIHdoZXJlIFRP VEFMIGlzIGp1c3QgYSBidWZmZXIKKwkgc2l6ZSwgZG9uJ3QgYm90aGVyIGNvdW50aW5nIGlu IEhPV19NVUNILCBidXQgYWx3YXlzIGFjY3VtdWxhdGUgdGhlCisJIG51bWJlciBvZiBieXRl cyByZWFkIGluIElOU0VSVEVELiAgKi8KKyAgICAgIGlmICghIG5vdF9yZWd1bGFyKQorCWhv d19tdWNoICs9IG5yZWFkOworICAgICAgaW5zZXJ0ZWQgKz0gbnJlYWQ7CisgICAgfQorCisg IC8qIE5vdyB3ZSBoYXZlIGVpdGhlciByZWFkIGFsbCB0aGUgZmlsZSBkYXRhIGludG8gdGhl IGdhcCwKKyAgICAgb3Igc3RvcCByZWFkaW5nIG9uIEkvTyBlcnJvciBvciBxdWl0LiAgSWYg bm90aGluZyB3YXMKKyAgICAgcmVhZCwgdW5kbyBtYXJraW5nIHRoZSBidWZmZXIgbW9kaWZp ZWQuICAqLwogCiAgIGlmIChpbnNlcnRlZCA9PSAwKQogICAgIHsKQEAgLTQzMDcsMjggKzQy OTAsMTEgQEAKICAgZWxzZQogICAgIFZkZWFjdGl2YXRlX21hcmsgPSBRdDsKIAotICAvKiBN YWtlIHRoZSB0ZXh0IHJlYWQgcGFydCBvZiB0aGUgYnVmZmVyLiAgKi8KLSAgR0FQX1NJWkUg LT0gaW5zZXJ0ZWQ7Ci0gIEdQVCAgICAgICs9IGluc2VydGVkOwotICBHUFRfQllURSArPSBp bnNlcnRlZDsKLSAgWlYgICAgICAgKz0gaW5zZXJ0ZWQ7Ci0gIFpWX0JZVEUgICs9IGluc2Vy dGVkOwotICBaICAgICAgICArPSBpbnNlcnRlZDsKLSAgWl9CWVRFICAgKz0gaW5zZXJ0ZWQ7 Ci0KLSAgaWYgKEdBUF9TSVpFID4gMCkKLSAgICAvKiBQdXQgYW4gYW5jaG9yIHRvIGVuc3Vy ZSBtdWx0aS1ieXRlIGZvcm0gZW5kcyBhdCBnYXAuICAqLwotICAgICpHUFRfQUREUiA9IDA7 Ci0KICAgZW1hY3NfY2xvc2UgKGZkKTsKIAogICAvKiBEaXNjYXJkIHRoZSB1bndpbmQgcHJv dGVjdCBmb3IgY2xvc2luZyB0aGUgZmlsZS4gICovCiAgIHNwZWNwZGxfcHRyLS07CiAKLSAg aWYgKGhvd19tdWNoIDwgMCkKLSAgICBlcnJvciAoIklPIGVycm9yIHJlYWRpbmcgJXM6ICVz IiwKLQkgICBTREFUQSAob3JpZ19maWxlbmFtZSksIGVtYWNzX3N0cmVycm9yIChlcnJubykp OwotCiAgbm90Zm91bmQ6CiAKICAgaWYgKE5JTFAgKGNvZGluZ19zeXN0ZW0pKQpAQCAtNDYx NywxNCArNDU4MywxOCBAQAogICAgICAgcmVwb3J0X2ZpbGVfZXJyb3IgKCJPcGVuaW5nIGlu cHV0IGZpbGUiLCBGY29ucyAob3JpZ19maWxlbmFtZSwgUW5pbCkpOwogICAgIH0KIAorICAv KiBUaGVyZSB3YXMgYW4gZXJyb3IgcmVhZGluZyBmaWxlLiAgKi8KKyAgaWYgKHJlYWRfZXJy bm8pCisgICAgZXJyb3IgKCJJTyBlcnJvciByZWFkaW5nICVzOiAlcyIsCisJICAgU0RBVEEg KG9yaWdfZmlsZW5hbWUpLCBlbWFjc19zdHJlcnJvciAocmVhZF9lcnJubykpOworCisgIC8q IFF1aXQgd2FzIHNpZ25hbGVkLiAgKi8KICAgaWYgKHJlYWRfcXVpdCkKICAgICBGc2lnbmFs IChRcXVpdCwgUW5pbCk7CiAKLSAgLyogPz8/IFJldHZhbCBuZWVkcyB0byBiZSBkZWFsdCB3 aXRoIGluIGFsbCBjYXNlcyBjb25zaXN0ZW50bHkuICAqLworICAvKiBPdGhlcndpc2UgbWFr ZSB0aGUgY29uc2lzdGVudCByZXR1cm4gdmFsdWUuICAqLwogICBpZiAoTklMUCAodmFsKSkK LSAgICB2YWwgPSBGY29ucyAob3JpZ19maWxlbmFtZSwKLQkJIEZjb25zIChtYWtlX251bWJl ciAoaW5zZXJ0ZWQpLAotCQkJUW5pbCkpOworICAgIHZhbCA9IGxpc3QyIChvcmlnX2ZpbGVu YW1lLCBtYWtlX251bWJlciAoaW5zZXJ0ZWQpKTsKIAogICBSRVRVUk5fVU5HQ1BSTyAodW5i aW5kX3RvIChjb3VudCwgdmFsKSk7CiB9Cgo= --------------010806010503020303090508--