From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: daanturo Newsgroups: gmane.emacs.bugs Subject: bug#59692: 29.0.60; Reduce installation size by disabling byte-compilation for some lisp files that won't benefit Date: Thu, 1 Dec 2022 01:58:45 +0700 Message-ID: References: <4bd6a1b7-982e-4593-95dd-2414058e2126@gmail.com> <83o7spldl2.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------tIq56WB5J9wgTKWvXPQ8kODG" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5910"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Cc: 59692@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Nov 30 20:37:12 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p0StM-0001K1-Ka for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 30 Nov 2022 20:37:12 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p0StA-0004en-Al; Wed, 30 Nov 2022 14:37:00 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p0St5-0004cG-QA for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2022 14:36:57 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p0Ssr-0000cB-VR for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2022 14:36:55 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p0SJO-0002DX-0s for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2022 14:00:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: daanturo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Nov 2022 19:00:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59692 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: wontfix Original-Received: via spool by 59692-submit@debbugs.gnu.org id=B59692.16698347418477 (code B ref 59692); Wed, 30 Nov 2022 19:00:01 +0000 Original-Received: (at 59692) by debbugs.gnu.org; 30 Nov 2022 18:59:01 +0000 Original-Received: from localhost ([127.0.0.1]:34511 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p0SIO-0002CY-PU for submit@debbugs.gnu.org; Wed, 30 Nov 2022 13:59:01 -0500 Original-Received: from mail-pf1-f172.google.com ([209.85.210.172]:39650) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p0SIJ-0002CS-Tf for 59692@debbugs.gnu.org; Wed, 30 Nov 2022 13:58:59 -0500 Original-Received: by mail-pf1-f172.google.com with SMTP id 140so17690128pfz.6 for <59692@debbugs.gnu.org>; Wed, 30 Nov 2022 10:58:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=AMrKB7ePD22HRnhrKSZNrhOtt/EAzy/FSepbOaeKwbM=; b=i1DGjq7aaU3iZyTmIIpzRKkyJqYXHsM1dRQQocNPpmINXLVha+zmCdcbKnt9jJ7/Fp ISfDBdI3rlrie+VHwbugngg9UAC9VNaYTBFRcEouplCtffoePpwwYGViGf1zeyGluyWq SiAnW0p4sZOiw6oZ95aPNnj8+yhU9wkqx1fvoL++seAXlcZK/ESCyL4Y9cGJXrt0kue+ zy5+75AItyt1nGsi73vRJm48eoeT22P5kiffactrOwhWVMaEUYTzsc9bTguobakhi30O V3+7m+wGlGI4LpRgv7MJRyrHVJerObsBILwG/52zdT9s0frOyaOFYL6MzY83TmRTxul7 6L1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AMrKB7ePD22HRnhrKSZNrhOtt/EAzy/FSepbOaeKwbM=; b=p4uwB4o24Z9XVoEIL9mw4pEYBKQexcvMR/CzOzRGoxbTrBCiewwEz53jhNMFm57LkY OZW8RiksT6YEx6DdjnaApkZ4IdmOKpGvW7qwiyZqdoNdNfDHLxNBxx9egpmnB8XhDKeV Q+LiGyVsCYNMepqytWN1yVL2vBS1h3QPbCG9nR1PthBy8UWmVaEkqJawWkOpRdxOYGpo +mTG9Z1bOYjX9HBE0djS7hgkXOjO60cq6NNxnZp/qAH58nI0fgRZWJ3lUC/BGJBOhSH2 4eh5HmAKQX7Jvyh1GcAQwFBkgJPj1TIZ5XojsngpS9omXFdZyA6OM/uYyRll9hcYiEIo ffbg== X-Gm-Message-State: ANoB5pkuag2WsR73XfgYPVhik2U0Og0i4FKr84F8a5HvOSa069UemIr0 2kFnCUX0sgf1rmhcVAh/tm87Aqqagwc= X-Google-Smtp-Source: AA0mqf6BWAlCVHs8ak6nphadtwcX+0WHHJs0ROeeHwAh7FZZKbwoqZ7cVyrsmvPj78mL4y20oWMCyg== X-Received: by 2002:a62:198d:0:b0:572:5a7f:9f4a with SMTP id 135-20020a62198d000000b005725a7f9f4amr43282544pfz.33.1669834729647; Wed, 30 Nov 2022 10:58:49 -0800 (PST) Original-Received: from ?IPV6:2001:ee0:50ce:c0f0:f9e1:f94e:db8d:e9ca? ([2001:ee0:50ce:c0f0:f9e1:f94e:db8d:e9ca]) by smtp.gmail.com with ESMTPSA id ij19-20020a170902ab5300b0018685257c0dsm1845842plb.58.2022.11.30.10.58.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Nov 2022 10:58:48 -0800 (PST) Content-Language: en-US In-Reply-To: <83o7spldl2.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:249557 Archived-At: This is a multi-part message in MIME format. --------------tIq56WB5J9wgTKWvXPQ8kODG Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit > measurements of code speed with and without byte-compilation I tried to evaluate performance different: ### Load time Helper macro: ```emacs-lisp (defmacro my-with-deferred-gc (&rest body)   `(dlet ((gc-cons-threshold most-positive-fixnum) (gc-cons-percentage 0.75))      ,@body)) ``` (Each of those measures was executed in a new Emacs instance, as the second `load` is (for me) cheaper than the first `load`). #### lisp/leim/ja-dic (my-with-deferred-gc (benchmark-progn (load "/usr/share/emacs/29.0.60/lisp/leim/ja-dic/ja-dic"))) > .el: Loading /usr/share/emacs/29.0.60/lisp/leim/ja-dic/ja-dic.el (source)...done Elapsed time: 0.707891s > .elc: Loading /usr/share/emacs/29.0.60/lisp/leim/ja-dic/ja-dic...done Elapsed time: 0.104832s > .eln: Loading /usr/share/emacs/29.0.60/lisp/leim/ja-dic/ja-dic (native compiled elisp)...done Elapsed time: 0.104676s #### Other auto-generated lisp files in lisp/leim/quail, all of them are Chinese at the moment, the largests being ZIRANMA.el, ARRAY30.el: (my-with-deferred-gc (benchmark-progn (load "/usr/share/emacs/29.0.60/lisp/leim/quail/ZIRANMA"))) > .el: Loading /usr/share/emacs/29.0.60/lisp/leim/quail/ZIRANMA.el (source)...done Elapsed time: 0.037230s > .elc: Loading /usr/share/emacs/29.0.60/lisp/leim/quail/ZIRANMA...done Elapsed time: 0.058042s > .eln: Loading /usr/share/emacs/29.0.60/lisp/leim/quail/ZIRANMA (native compiled elisp)... Elapsed time: 0.062904s (my-with-deferred-gc (benchmark-progn (load "/usr/share/emacs/29.0.60/lisp/leim/quail/ARRAY30"))) > .el Loading /usr/share/emacs/29.0.60/lisp/leim/quail/ARRAY30.el (source)...done Elapsed time: 0.031518s > .elc Loading /usr/share/emacs/29.0.60/lisp/leim/quail/ARRAY30...done Elapsed time: 0.037412s > .eln Loading /usr/share/emacs/29.0.60/lisp/leim/quail/ARRAY30 (native compiled elisp)...done Elapsed time: 0.041110s (my-with-deferred-gc (benchmark-progn (load "/usr/share/emacs/29.0.60/lisp/leim/quail/QJ"))) > .el Loading /usr/share/emacs/29.0.60/lisp/leim/quail/QJ.el (source)...done Elapsed time: 0.001649s > .elc Loading /usr/share/emacs/29.0.60/lisp/leim/quail/QJ...done Elapsed time: 0.004481s > .eln Loading /usr/share/emacs/29.0.60/lisp/leim/quail/QJ (native compiled elisp)...done Elapsed time: 0.005001s For "ja-dic.el", byte-compilation clearly helped speedup loading. But native-compilation doesn't offer any more significantly. As I inspect "ja-dic.elc", byte-compilation did by expanding macros to `(defconst var literal-list)` forms, I think that native compilation won't offer more about run time performance. For auto-generated files under lisp/leim/quail (ZIRANMA, ARRAY30, QJ tested above), sometimes compilation even slows down the loading process compared to just interpretation. About the run time performance, since I don't know Chinese, I will approximately benchmark lisp/leim/quail/vnvni.el (Vietnamese) instead as this file is quite similar to ZIRANMA.el: both has only 2 forms -- (quail-define-package ...) and (quail-define-rules ...). ydotool is used (https://github.com/ReimuNotMoe/ydotool) to perform auto-typing as in bench-quail.el attached. The function to be benchmarked is #'quail-input-method. emacs -q -l bench-quail.el --eval "(progn (my-to-new-buffer) (my-benchmark-quail nil))" emacs -q -l bench-quail.el --eval "(progn (my-to-new-buffer) (my-benchmark-quail 'compiled))" Benchmarking results: (note that :num means the total key pressed by ydotool). Loading /usr/share/emacs/29.0.60/lisp/leim/quail/vnvni.el (source)...done Elapsed time: 0.016844s (0.008795s in 1 GCs) (:compiled nil (:num 145 :total-time 2.118776153 :average 0.014612249331034484)) Loading /usr/share/emacs/29.0.60/lisp/leim/quail/vnvni (native compiled elisp)...done Elapsed time: 0.034253s (0.009630s in 1 GCs) (:compiled compiled (:num 145 :total-time 2.117245182999999 :average 0.014601690917241374)) So I conclude that those quail lisp package files' compilation statuses, whether compiled or not, doesn't affect run-time performance at all. ### lisp/international/titdic-cnv.el's pinyin-convert It produce a single form: (defconst var literal-list) so the corresponding produced ".elc" file is just the same with new lines joined. Also the times taken to load lisp/language/pinyin.elc and /lisp/language/pinyin.el aren't different anyway. ### About the patch In the patch below, I disabled native-compile for "ja-dic" while keeping byte-compile (by modifying `generate-lisp-file-trailer` keyword args), and disable compilation altogether for files produced by titdic-convert, miscdic-convert, pinyin-convert. There's no new .dir-locals files introduced like the previous patch. > Disk space is cheap these days. But it's always better to be light if we don't suffer any penalties. A little number of megabytes saved will always be appreciated by people with metered connection and/or limited bandwidth, or people who have multiple versions of Emacs installed. Disk space is indeed becoming cheaper, but with varying pace among countries. I am currently using a laptop which only has 238GiB & un-expandable, that explains my joy when pacman shows net upgrade size being negative during system updates. Thanks to the patch, I saved 20.20 MiB by a couple of flag flips without making any new files. Please consider again if you think it makes more sense than my previous justifications, thank you. -- Daanturo. --------------tIq56WB5J9wgTKWvXPQ8kODG Content-Type: text/x-emacs-lisp; charset=UTF-8; name="bench-quail.el" Content-Disposition: attachment; filename="bench-quail.el" Content-Transfer-Encoding: base64 OzsgLSotIGxleGljYWwtYmluZGluZzogdDsgLSotCgo7OzsgQmVuY2htYXJrIGhlbHBlciBm dW5jdGlvbnMKCihkZWZ2YXIgbXktYmVuY2htYXJrLWFjY3VtdWxhdGUtdGltZS0tbnVtLXRp bWUgJygwIDApKQo7OzsjIyNhdXRvbG9hZAooZGVmdW4gbXktYmVuY2htYXJrLWFjY3VtdWxh dGUtdGltZS1hIChmdW5jICZyZXN0IGFyZ3MpCiAgKGxldCogKCh0aW1lMCAoY3VycmVudC10 aW1lKSkpCiAgICAodW53aW5kLXByb3RlY3QKICAgICAgICAoYXBwbHkgZnVuYyBhcmdzKQog ICAgICAocGNhc2UtbGV0KiAoKGRlbHRhIChmbG9hdC10aW1lICh0aW1lLXNpbmNlIHRpbWUw KSkpCiAgICAgICAgICAgICAgICAgICAoYCgsbnVtICx0b3RhbC10aW1lKSBteS1iZW5jaG1h cmstYWNjdW11bGF0ZS10aW1lLS1udW0tdGltZSkpCiAgICAgICAgKHNldHEgbXktYmVuY2ht YXJrLWFjY3VtdWxhdGUtdGltZS0tbnVtLXRpbWUKICAgICAgICAgICAgICAobGlzdCAoKyAo b3IgbnVtIDApIDEpCiAgICAgICAgICAgICAgICAgICAgKCsgKG9yIHRvdGFsLXRpbWUgMCkg ZGVsdGEpKSkpKSkpCihkZWZ1biBteS1iZW5jaG1hcmstYWNjdW11bGF0ZS10aW1lLXJlcG9y dCAoJm9wdGlvbmFsIHJlc2V0KQogIChwcm9nMQogICAgICAocGNhc2UtbGV0KiAoKGAoLG51 bSAsdG90YWwtdGltZSkgbXktYmVuY2htYXJrLWFjY3VtdWxhdGUtdGltZS0tbnVtLXRpbWUp KQogICAgICAgIChsaXN0IDpudW0gbnVtCiAgICAgICAgICAgICAgOnRvdGFsLXRpbWUgdG90 YWwtdGltZQogICAgICAgICAgICAgIDphdmVyYWdlIChpZ25vcmUtZXJyb3IgYXJpdGgtZXJy b3IgKC8gdG90YWwtdGltZSBudW0pKSkpCiAgICAod2hlbiByZXNldCAoc2V0cSBteS1iZW5j aG1hcmstYWNjdW11bGF0ZS10aW1lLS1udW0tdGltZSBuaWwpKSkpCgooZGVmdW4gbXktdG8t bmV3LWJ1ZmZlciAoKQogIChpbnRlcmFjdGl2ZSkKICAoc3dpdGNoLXRvLWJ1ZmZlcgogICAo Z2VuZXJhdGUtbmV3LWJ1ZmZlciAibmV3IikpKQoKOzs7IFBlcmZvcm0gYmVuY2htYXJraW5n CgooZGVmY29uc3QgbXktdHlwaW5nCiAgIkVtYWNzIGxhMiB0cmkybmggc29hNW4gdGhhM28g dmE4biBiYTNuIGQ5YSBjaHU3MWMgbmE4bmcuIEQ5YTZ5CmxhMiBwaGE2Mm4gbWU2Mm0gdHU3 NSBkbywgY2hhNXkgZDl1N283NWMgdHJlNm4gbmhpZTYydSBoZTY1CmQ5aWU2MnUgaGEybmgg dmEyIGNvMSB0aGU2MyBtbzczIHJvNjVuZyBkOWU2MyB0aGU2bSB2YTJvIGNodTcxYwpuYThu ZyBtbzcxaS4iCiAgImh0dHBzOi8vdmkud2lraXBlZGlhLm9yZy93aWtpL0VtYWNzIikKCihk ZWZ1biBteS1iZW5jaG1hcmstcXVhaWwgKCZvcHRpb25hbCBsb2FkLWNvbXBpbGVkLXF1YWls LXBhY2thZ2UpCiAgKGludGVyYWN0aXZlICJQIikKICAoZGVhY3RpdmF0ZS1pbnB1dC1tZXRo b2QpCiAgKGFkdmljZS1hZGQgIydxdWFpbC1pbnB1dC1tZXRob2QgOmFyb3VuZCAjJ215LWJl bmNobWFyay1hY2N1bXVsYXRlLXRpbWUtYSkKICAobXktYmVuY2htYXJrLWFjY3VtdWxhdGUt dGltZS1yZXBvcnQgJ3Jlc2V0KQogIChiZW5jaG1hcmstcHJvZ24KICAgIChpZiBsb2FkLWNv bXBpbGVkLXF1YWlsLXBhY2thZ2UKICAgICAgICAobG9hZCAiL3Vzci9zaGFyZS9lbWFjcy8y OS4wLjYwL2xpc3AvbGVpbS9xdWFpbC92bnZuaSIpCiAgICAgIChsb2FkICIvdXNyL3NoYXJl L2VtYWNzLzI5LjAuNjAvbGlzcC9sZWltL3F1YWlsL3Zudm5pLmVsIikpKQogIChhY3RpdmF0 ZS1pbnB1dC1tZXRob2QgInZpZXRuYW1lc2Utdm5pIikKICAobGV0KiAoKHByb2MgKHN0YXJ0 LXByb2Nlc3MgIiIgbmlsICJ5ZG90b29sIiAidHlwZSIgbXktdHlwaW5nKSkpCiAgICAoc2V0 LXByb2Nlc3Mtc2VudGluZWwKICAgICBwcm9jCiAgICAgKGxhbWJkYSAoJnJlc3QgXykKICAg ICAgIChkZWFjdGl2YXRlLWlucHV0LW1ldGhvZCkKICAgICAgIChwcmludCAobGlzdCA6Y29t cGlsZWQgbG9hZC1jb21waWxlZC1xdWFpbC1wYWNrYWdlCiAgICAgICAgICAgICAgICAgICAg KG15LWJlbmNobWFyay1hY2N1bXVsYXRlLXRpbWUtcmVwb3J0KSkpKSkpKQo= --------------tIq56WB5J9wgTKWvXPQ8kODG Content-Type: text/x-patch; charset=UTF-8; name="0001-Inhibit-compilation-for-some-quail-packages-generators.patch" Content-Disposition: attachment; filename*0="0001-Inhibit-compilation-for-some-quail-packages-generators."; filename*1="patch" Content-Transfer-Encoding: base64 RnJvbSAxY2NmNDk0ZDQxNzVmOGM1NmVmOTVhMDY2MTI0OWY0MjMzN2ZhZTc3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYWFudHVybyA8ZGFhbnR1cm9AZ21haWwuY29tPgpE YXRlOiBXZWQsIDMwIE5vdiAyMDIyIDE2OjAzOjU5ICswNzAwClN1YmplY3Q6IFtQQVRDSF0g SW5oaWJpdCBjb21waWxhdGlvbiBmb3Igc29tZSBxdWFpbCBwYWNrYWdlcyBnZW5lcmF0b3Jz CgotLS0KIGxpc3AvaW50ZXJuYXRpb25hbC9qYS1kaWMtY252LmVsIHwgMyArKy0KIGxpc3Av aW50ZXJuYXRpb25hbC90aXRkaWMtY252LmVsIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3Av aW50ZXJuYXRpb25hbC9qYS1kaWMtY252LmVsIGIvbGlzcC9pbnRlcm5hdGlvbmFsL2phLWRp Yy1jbnYuZWwKaW5kZXggZWM2OGQ4YzgwNC4uZGY3MDk1OWIxOSAxMDA2NDQKLS0tIGEvbGlz cC9pbnRlcm5hdGlvbmFsL2phLWRpYy1jbnYuZWwKKysrIGIvbGlzcC9pbnRlcm5hdGlvbmFs L2phLWRpYy1jbnYuZWwKQEAgLTM5Niw3ICszOTYsOCBAQCBza2tkaWMtY29udmVydAogCTs7 IFBvc3RmaXgKIAkod2l0aC1jdXJyZW50LWJ1ZmZlciBidWYKIAkgIChnb3RvLWNoYXIgKHBv aW50LW1heCkpCi0gICAgICAgICAgKGdlbmVyYXRlLWxpc3AtZmlsZS10cmFpbGVyIGphLWRp Yy1maWxlbmFtZSA6Y29tcGlsZSB0KSkpCisgICAgICAgICAgKGdlbmVyYXRlLWxpc3AtZmls ZS10cmFpbGVyCisgICAgICAgICAgIGphLWRpYy1maWxlbmFtZSA6Y29tcGlsZSB0IDppbmhp Yml0LW5hdGl2ZS1jb21waWxlIHQpKSkKIAogICAgICAgOzsgU2F2ZSB0aGUgd29ya2luZyBi dWZmZXIuCiAgICAgICAoc2V0LWJ1ZmZlciBidWYpCmRpZmYgLS1naXQgYS9saXNwL2ludGVy bmF0aW9uYWwvdGl0ZGljLWNudi5lbCBiL2xpc3AvaW50ZXJuYXRpb25hbC90aXRkaWMtY252 LmVsCmluZGV4IGI5NDJmNWZhYmMuLjg5OTYyMTRkY2IgMTAwNjQ0Ci0tLSBhL2xpc3AvaW50 ZXJuYXRpb25hbC90aXRkaWMtY252LmVsCisrKyBiL2xpc3AvaW50ZXJuYXRpb25hbC90aXRk aWMtY252LmVsCkBAIC01MjcsNyArNTI3LDcgQEAgdGl0ZGljLWNvbnZlcnQKIAkgIDs7IFBy b2Nlc3MgdGhlIGJvZHkgcGFydAogCSAgKHRpdC1wcm9jZXNzLWJvZHkpCiAgICAgICAgICAg KGdlbmVyYXRlLWxpc3AtZmlsZS10cmFpbGVyCi0gICAgICAgICAgIGZpbGVuYW1lIDppbmhp Yml0LXByb3ZpZGUgdCA6Y29tcGlsZSB0IDpjb2RpbmcgbmlsKSkpKSkpCisgICAgICAgICAg IGZpbGVuYW1lIDppbmhpYml0LXByb3ZpZGUgdCA6Y29tcGlsZSBuaWwgOmNvZGluZyBuaWwp KSkpKSkKIAogOzs7IyMjYXV0b2xvYWQKIChkZWZ1biBiYXRjaC10aXRkaWMtY29udmVydCAo Jm9wdGlvbmFsIGZvcmNlKQpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgbWlzY2RpYy1jb252ZXJ0 CiAgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgZHN0YnVmCiAgICAgICAg ICAgICAgICAgICAoZnVuY2FsbCBjb252ZXJ0ZXIgZGljYnVmKSkpKSkKICAgICAgICAgICAo Z2VuZXJhdGUtbGlzcC1maWxlLXRyYWlsZXIKLSAgICAgICAgICAgcXVhaWxmaWxlIDppbmhp Yml0LXByb3ZpZGUgdCA6Y29tcGlsZSB0IDpjb2RpbmcgbmlsKSkpCisgICAgICAgICAgIHF1 YWlsZmlsZSA6aW5oaWJpdC1wcm92aWRlIHQgOmNvbXBpbGUgbmlsIDpjb2RpbmcgbmlsKSkp CiAgICAgICAoc2V0cSB0YWlsIChjZHIgdGFpbCkpKSkpCiAKIChkZWZ1biBiYXRjaC1taXNj ZGljLWNvbnZlcnQgKCkKQEAgLTEyMTgsNyArMTIxOCw3IEBAIHBpbnlpbi1jb252ZXJ0CiAg ICAgICAgICAgKGZvcndhcmQtbGluZSAxKSkpCiAgICAgICAoaW5zZXJ0ICIpXG5cIkFuIGFs aXN0IGhvbGRpbmcgY29ycmVzcG9uZGVuY2VzIGJldHdlZW4gcGlueWluIHN5bGxhYmxlc1wK ICBhbmRcbkNoaW5lc2UgY2hhcmFjdGVycy5cIilcblxuIikKLSAgICAgIChnZW5lcmF0ZS1s aXNwLWZpbGUtdHJhaWxlciBkc3QtZmlsZSA6Y29tcGlsZSB0KSkKKyAgICAgIChnZW5lcmF0 ZS1saXNwLWZpbGUtdHJhaWxlciBkc3QtZmlsZSA6Y29tcGlsZSBuaWwpKQogICAgIChraWxs LWVtYWNzIDApKSkKIAogOzs7IHRpdGRpYy1jbnYuZWwgZW5kcyBoZXJlCi0tIAoyLjM4LjEK Cg== --------------tIq56WB5J9wgTKWvXPQ8kODG--