From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Newsgroups: gmane.emacs.bugs Subject: bug#41242: Port feature/native-comp to Windows - Reduce the number of files probed when finding a lisp file. Date: Sun, 31 May 2020 12:34:16 -0300 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000000d42205a6f36a4c" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="59842"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 41242@debbugs.gnu.org To: Andrea Corallo Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun May 31 17:35:11 2020 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 1jfPzS-000FVG-Pc for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 31 May 2020 17:35:10 +0200 Original-Received: from localhost ([::1]:57702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jfPzR-00087Y-My for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 31 May 2020 11:35:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49356) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jfPzK-00087R-JO for bug-gnu-emacs@gnu.org; Sun, 31 May 2020 11:35:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:50312) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jfPzK-0001Sx-8f for bug-gnu-emacs@gnu.org; Sun, 31 May 2020 11:35:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jfPzK-0006LM-5C for bug-gnu-emacs@gnu.org; Sun, 31 May 2020 11:35:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 15:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41242 X-GNU-PR-Package: emacs Original-Received: via spool by 41242-submit@debbugs.gnu.org id=B41242.159093927724352 (code B ref 41242); Sun, 31 May 2020 15:35:02 +0000 Original-Received: (at 41242) by debbugs.gnu.org; 31 May 2020 15:34:37 +0000 Original-Received: from localhost ([127.0.0.1]:33625 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfPyv-0006Ki-0X for submit@debbugs.gnu.org; Sun, 31 May 2020 11:34:37 -0400 Original-Received: from mail-ot1-f42.google.com ([209.85.210.42]:34963) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfPyt-0006KU-0W for 41242@debbugs.gnu.org; Sun, 31 May 2020 11:34:36 -0400 Original-Received: by mail-ot1-f42.google.com with SMTP id 69so5987432otv.2 for <41242@debbugs.gnu.org>; Sun, 31 May 2020 08:34:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=g8ve+4xIvansnywLYywcTPMldoY1QPd4WbgksOP3YHk=; b=Ora1Ch9eIqIljo8fzMmRdS0neGAYx1cWYnEnSABBdISYmnPR2H5HSxBVipwju3v/Jl /jFPPdwQ/wKFmSCnGmLFtQaIuSBTOWNZXuE313Z6XQXhY2xFU5jnYzKSqbACRRJ4rKxO zW3lw6iZPaQTNmmsutmLG6sUbAUI0FN/wg958DOebO5kqJiU9drEB/37eRPDMOzMZITO KsKtW8kxOdQsXuL5VMlO80hkOOSWLjYrYa8EJjrPEljUnyspzff4kbXt8rqBbk48+ZT1 P2cmlYYHxBl0oJuGTj2F2NY+fr50vPSg5SEegJprnpa3ypTknubP8rr2OV7xws2eQzdW nceA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=g8ve+4xIvansnywLYywcTPMldoY1QPd4WbgksOP3YHk=; b=fKCyu4gqLXBYi2Z3TBYYBFR4lrbF/3SxLicO9QLoRbGSE0zLDvtQ/qiQQrJGg0m5xz HljFGefTI+Bu4AwS2mCNUyd5n+MSTMwlCzBg1XYMDQX2yLfFbF2vlQQSGU+oX/yhwVaA hgpP5neTbTSiXbvMxY7FIaMW1823GQxYGd90ffxeyZlAnMQnWnsaVaVWp+dZrzjgKtw6 GXMRaplhnZH7Sqzb2xBfMSSGWhiCjfFXU7e/pT72t7vPxEw/bMETz9HQMleCy1TGOQyf A/1RpDC0nnGbGtQyyAN8BUd+62uqdy7n02iuIEPV7gHHCNIqvBxGuBbAjGdy820XTZRN 2KwQ== X-Gm-Message-State: AOAM533wsDj5uaDUk1rjyT06z93MmZ1G24f4cZii0ra/XNqvwm3EEwBc blMQdv3YLT+8CEA4bbBW8be1HyKrcZPts1JVCkg= X-Google-Smtp-Source: ABdhPJywZlCOcCjhnsChBK4RhB6Hq9eUrDWJYarQyQEFYLlbP9pBv+V0t+gh6PjmPaWeS0X8WjC2UGW+GkXLDFuzTH8= X-Received: by 2002:a05:6830:2439:: with SMTP id k25mr12940324ots.352.1590939269245; Sun, 31 May 2020 08:34:29 -0700 (PDT) In-Reply-To: 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" Xref: news.gmane.io gmane.emacs.bugs:181289 Archived-At: --00000000000000d42205a6f36a4c Content-Type: text/plain; charset="UTF-8" Hi Andrea, > I could not compile this patch because non all the calls to openp has > been updated for the new parameter (my question on adding this stands). Sorry. I didn't check the GNU/Linux build. > In general please recall to check the stock build when working on > infrastructure integration, it's quite easy to break. I have tested that this new patch builds and bootstraps in windows x64, Ubuntu 18.04 amd64. Both with and without nativecomp. > Generally speaking I think the behavior we want to have is that when a > .eln file is specified this is loaded without re-adding > Vcomp_native_path_postfix. I could not test it but I suspect this is > not handled. I tested moving company.eln to a directory in load-path without `comp-native-path-postfix` and then ran (load "company.eln") and it was loaded from that directory. Nico. --00000000000000d42205a6f36a4c Content-Type: application/octet-stream; name="0001-Reduce-the-number-of-files-probed-when-finding-a-lis.patch" Content-Disposition: attachment; filename="0001-Reduce-the-number-of-files-probed-when-finding-a-lis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kav7th660 RnJvbSBkNjU5YThhN2VkOTkxOGQ3YTc3NjU1MTA5YWJjNmRiNTMzOGFjMzU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyNSBNYXkgMjAyMCAxODow NToyMyAtMDMwMApTdWJqZWN0OiBbUEFUQ0hdIFJlZHVjZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHBy b2JlZCB3aGVuIGZpbmRpbmcgYSBsaXNwIGZpbGUuCgoqIHNyYy9scmVhZC5jIChnZXQtbG9hZC1z dWZmaXhlcyk6IERvIG5vdCBhZGQgYW55IHN1ZmZpeCB0byBmaWxlcyB0aGF0Cm5lZWQgdG8gYmUg bG9hZGVkIGJ5IHRoZSBkeW5hbWljIGxpbmtlci4KKGVmZmVjdGl2ZV9sb2FkX3BhdGgpOiBSZW1v dmUgZnVuY3Rpb24uCihsb2FkKTogRG9uJ3QgYWRkIGFueSBzdWZmaXggaWYgZmlsZSBlbmRzIGlu IGEgc3VmZml4IGFscmVhZHkuCihlZmZlY3RpdmVfbG9hZF9wYXRoKTogUmVtb3ZlIGZ1bmN0aW9u Lgoob3BlbnBfYWRkX21pZGRsZV9kaXJfdG9fc3VmZml4ZXMpOiBBZGQgaGVscGVyIGZ1bmN0aW9u IHRvIGNyZWF0ZQpwYWlycyBvZiBtaWRkbGUgZGlyZWN0b3JpZXMgYW5kIHN1ZmZpeGVzLgoob3Bl bnBfbWF4X21pZGRsZWRpcl9hbmRfc3VmZml4X2xlbik6IEFkZCBoZWxwZXIgZnVuY3Rpb24gdG8g Y291bnQgdGhlCm51bWJlciBvZiBieXRlcyBuZWVkZWQgdG8gc3RvcmUgdGhlIG1pZGRsZSBkaXJl Y3RvcnkgYW5kIHN1ZmZpeC4KKG9wZW5wX2ZpbGxfZmlsZW5hbWVfYnVmZmVyKTogQWRkIGhlbHBl ciBmdW5jdGlvbiB0byBjb3B5IG1pZGRsZQpkaXJlY3RvcnksIGJhc2VuYW1lIGFuZCBzdWZmaXgg dG8gdGhlIGZpbGVuYW1lIGJ1ZmZlci4KLS0tCiBzcmMvbHJlYWQuYyB8IDIwMyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTU0IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9s cmVhZC5jIGIvc3JjL2xyZWFkLmMKaW5kZXggOWY4NDllZGE0Mi4uYzY2NjZlNGVhMyAxMDA2NDQK LS0tIGEvc3JjL2xyZWFkLmMKKysrIGIvc3JjL2xyZWFkLmMKQEAgLTEwNTYsMzEgKzEwNTYsMjUg QEAgREVGVU4gKCJnZXQtbG9hZC1zdWZmaXhlcyIsIEZnZXRfbG9hZF9zdWZmaXhlcywgU2dldF9s b2FkX3N1ZmZpeGVzLCAwLCAwLCAwLAogICAgIHsKICAgICAgIExpc3BfT2JqZWN0IGV4dHMgPSBW bG9hZF9maWxlX3JlcF9zdWZmaXhlczsKICAgICAgIExpc3BfT2JqZWN0IHN1ZmZpeCA9IFhDQVIg KHN1ZmZpeGVzKTsKLSAgICAgIEZPUl9FQUNIX1RBSUwgKGV4dHMpCi0JbHN0ID0gRmNvbnMgKGNv bmNhdDIgKHN1ZmZpeCwgWENBUiAoZXh0cykpLCBsc3QpOwotICAgIH0KLSAgcmV0dXJuIEZucmV2 ZXJzZSAobHN0KTsKLX0KKyAgICAgIGJvb2wgbmF0aXZlX2NvZGVfc3VmZml4ID0gKE5BVElWRV9D T01QX0ZMQUcKKyAgICAgICAgJiYgc3RyY21wIChOQVRJVkVfRUxJU1BfU1VGRklYLCBTU0RBVEEg KHN1ZmZpeCkpID09IDApOwogCi1zdGF0aWMgTGlzcF9PYmplY3QKLWVmZmVjdGl2ZV9sb2FkX3Bh dGggKHZvaWQpCi17Ci0jaWZuZGVmIEhBVkVfTkFUSVZFX0NPTVAKLSAgcmV0dXJuIFZsb2FkX3Bh dGg7Ci0jZWxzZQotICBMaXNwX09iamVjdCBscCA9IFZsb2FkX3BhdGg7Ci0gIExpc3BfT2JqZWN0 IG5ld19scCA9IFFuaWw7Ci0gIEZPUl9FQUNIX1RBSUwgKGxwKQotICAgIHsKLSAgICAgIExpc3Bf T2JqZWN0IGVsID0gWENBUiAobHApOwotICAgICAgbmV3X2xwID0KLQlGY29ucyAoY29uY2F0MiAo RmZpbGVfbmFtZV9hc19kaXJlY3RvcnkgKGVsKSwKLQkJCVZjb21wX25hdGl2ZV9wYXRoX3Bvc3Rm aXgpLAotCSAgICAgICBuZXdfbHApOwotICAgICAgbmV3X2xwID0gRmNvbnMgKGVsLCBuZXdfbHAp OwotICAgIH0KLSAgcmV0dXJuIEZucmV2ZXJzZSAobmV3X2xwKTsKKyNpZmRlZiBIQVZFX01PRFVM RVMKKyAgICAgIG5hdGl2ZV9jb2RlX3N1ZmZpeCA9IG5hdGl2ZV9jb2RlX3N1ZmZpeAorICAgICAg ICB8fCBzdHJjbXAgKE1PRFVMRVNfU1VGRklYLCBTU0RBVEEgKHN1ZmZpeCkpID09IDA7CisjaWZk ZWYgTU9EVUxFU19TRUNPTkRBUllfU1VGRklYCisgICAgICBuYXRpdmVfY29kZV9zdWZmaXggPSBu YXRpdmVfY29kZV9zdWZmaXgKKyAgICAgICAgfHwgc3RyY21wIChNT0RVTEVTX1NFQ09OREFSWV9T VUZGSVgsIFNTREFUQSAoc3VmZml4KSkgPT0gMDsKKyNlbmRpZgogI2VuZGlmCisKKyAgICAgIGlm IChuYXRpdmVfY29kZV9zdWZmaXgpCisJbHN0ID0gRmNvbnMgKHN1ZmZpeCwgbHN0KTsKKyAgICAg IGVsc2UKKyAgICAgICAgRk9SX0VBQ0hfVEFJTCAoZXh0cykKKyAgICAgICAgICBsc3QgPSBGY29u cyAoY29uY2F0MiAoc3VmZml4LCBYQ0FSIChleHRzKSksIGxzdCk7CisgICAgfQorICByZXR1cm4g Rm5yZXZlcnNlIChsc3QpOwogfQogCiAvKiBSZXR1cm4gdHJ1ZSBpZiBTVFJJTkcgZW5kcyB3aXRo IFNVRkZJWC4gICovCkBAIC0xMjE4LDcgKzEyMTIsNyBAQCBERUZVTiAoImxvYWQiLCBGbG9hZCwg U2xvYWQsIDEsIDUsIDAsCiAgICAgICAgICAgICAgIHx8IHN1ZmZpeF9wIChmaWxlLCBNT0RVTEVT X1NFQ09OREFSWV9TVUZGSVgpCiAjZW5kaWYKICNlbmRpZgotCSAgICAgICkKKyAgICAgICAgICAg ICAgfHwgKE5BVElWRV9DT01QX0ZMQUcgJiYgc3VmZml4X3AgKGZpbGUsIE5BVElWRV9FTElTUF9T VUZGSVgpKSkKIAkgICAgbXVzdF9zdWZmaXggPSBRbmlsOwogCSAgLyogRG9uJ3QgaW5zaXN0IG9u IGFkZGluZyBhIHN1ZmZpeAogCSAgICAgaWYgdGhlIGFyZ3VtZW50IGluY2x1ZGVzIGEgZGlyZWN0 b3J5IG5hbWUuICAqLwpAQCAtMTIzNiw4ICsxMjMwLDcgQEAgREVGVU4gKCJsb2FkIiwgRmxvYWQs IFNsb2FkLCAxLCA1LCAwLAogCX0KIAogICAgICAgZmQgPQotCW9wZW5wIChlZmZlY3RpdmVfbG9h ZF9wYXRoICgpLCBmaWxlLCBzdWZmaXhlcywgJmZvdW5kLCBRbmlsLAotCSAgICAgICBsb2FkX3By ZWZlcl9uZXdlcik7CisJb3BlbnAgKFZsb2FkX3BhdGgsIGZpbGUsIHN1ZmZpeGVzLCAmZm91bmQs IFFuaWwsIGxvYWRfcHJlZmVyX25ld2VyKTsKICAgICB9CiAKICAgaWYgKGZkID09IC0xKQpAQCAt MTYwNiw2ICsxNTk5LDExNiBAQCBERUZVTiAoImxvY2F0ZS1maWxlLWludGVybmFsIiwgRmxvY2F0 ZV9maWxlX2ludGVybmFsLCBTbG9jYXRlX2ZpbGVfaW50ZXJuYWwsIDIsCiAgIHJldHVybiBmaWxl OwogfQogCisvKiBUaGlzIGZ1bmN0aW9uIHR1cm5zIGEgbGlzdCBvZiBzdWZmaXhlcyBpbnRvIGEg bGlzdCBvZiBtaWRkbGUgZGlycworICAgYW5kIHN1ZmZpeGVzLiAgSWYgdGhlIHN1ZmZpeCBpcyBu b3QgTkFUSVZFX0VMSVNQX1NVRkZJWCB0aGVuIGl0cworICAgc3VmZml4IGlzIG5pbCBhbmQgaXQg aXMgYWRkZWQgdG8gdGhlIGxpc3QgYXMgaXMuICBJbnN0ZWFkLCBpZiBpdAorICAgc3VmZml4IGlz IE5BVElWRV9FTElTUF9TVUZGSVggdGhlbiB0d28gZWxlbWVudHMgYXJlIGFkZGVkIHRvIHRoZQor ICAgbGlzdC4gIFRoZSBmaXJzdCBvbmUgaGFzIG1pZGRsZWRpciBlcXVhbCB0byBuaWwgYW5kIHRo ZSBzZWNvbmQgdXNlcworICAgY29tcC1uYXRpdmUtcGF0aC1wb3N0Zml4IGFzIG1pZGRsZWRpci4g IFRoaXMgaXMgYmVjYXVzZSB3ZSdkIGxpa2UKKyAgIHRvIHNlYXJjaCBmb3IgZGlyL2Zvby5lbG4g YmVmb3JlIGRpci9taWRkbGVkaXIvZm9vLmVsbi4KKworRm9yIGV4YW1wbGUsIGl0IHR1cm5zIHRo aXM6CisKKygiLmVsbiIgIi5lbGMiICIuZWxjLmd6IiAiLmVsIiAiLmVsLmd6IikKKworIGludG8g dGhpczoKKworKChuaWwgLiAiLmVsbiIpCisgKGNvbXAtbmF0aXZlLXBhdGgtcG9zdGZpeCAuICIu ZWxuIikKKyAobmlsIC4gIi5lbGMiKQorIChuaWwgLiAiLmVsYy5neiIpCisgKG5pbCAuICIuZWwi KQorIChuaWwgLiAiLmVsLmd6IikpCisqLworc3RhdGljIExpc3BfT2JqZWN0CitvcGVucF9hZGRf bWlkZGxlX2Rpcl90b19zdWZmaXhlcyAoTGlzcF9PYmplY3Qgc3VmZml4ZXMpCit7CisgIExpc3Bf T2JqZWN0IHRhaWwgPSBzdWZmaXhlczsKKyAgTGlzcF9PYmplY3QgZXh0ZW5kZWRfc3VmID0gUW5p bDsKKyAgRk9SX0VBQ0hfVEFJTF9TQUZFICh0YWlsKQorICAgIHsKKyNpZmRlZiBIQVZFX05BVElW RV9DT01QCisgICAgICBDSEVDS19TVFJJTkdfQ0FSICh0YWlsKTsKKyAgICAgIGNoYXIgKiBzdWYg PSBTU0RBVEEgKFhDQVIgKHRhaWwpKTsKKyAgICAgIGlmIChzdHJjbXAgKE5BVElWRV9FTElTUF9T VUZGSVgsIHN1ZikgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgIENIRUNLX1NUUklORyAoVmNv bXBfbmF0aXZlX3BhdGhfcG9zdGZpeCk7CisgICAgICAgICAgLyogSGVyZSB3ZSBhZGQgdGhlbSBp biB0aGUgb3Bwb3NpdGUgb3JkZXIgc28gdGhhdCBucmV2ZXJzZQorICAgICAgICAgICAgIGNvcnJl Y3RzIGl0LiAgKi8KKyAgICAgICAgICBleHRlbmRlZF9zdWYgPSBGY29ucyAoRmNvbnMgKFFuaWws IFhDQVIgKHRhaWwpKSwgZXh0ZW5kZWRfc3VmKTsKKyAgICAgICAgICBleHRlbmRlZF9zdWYgPSBG Y29ucyAoRmNvbnMgKFZjb21wX25hdGl2ZV9wYXRoX3Bvc3RmaXgsIFhDQVIgKHRhaWwpKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5kZWRfc3VmKTsKKyAgICAgICAgfQor ICAgICAgZWxzZQorI2VuZGlmCisgICAgICAgIHsKKyAgICAgICAgICBleHRlbmRlZF9zdWYgPSBG Y29ucyAoRmNvbnMgKFFuaWwsIFhDQVIgKHRhaWwpKSwgZXh0ZW5kZWRfc3VmKTsKKyAgICAgICAg fQorICAgIH0KKworICBzdWZmaXhlcyA9IEZucmV2ZXJzZSAoZXh0ZW5kZWRfc3VmKTsKKyAgcmV0 dXJuIHN1ZmZpeGVzOworfQorCisvKiAgVGhpcyBmdW5jdGlvbiB0YWtlcyBhIGxpc3Qgb2YgbWlk ZGxlZGlycyBhbmQgc3VmZml4ZXMgYW5kIHJldHVybnMKKyAgICB0aGUgbWF4aW11bSBidWZmZXIg c3BhY2UgdGhhdCB0aGlzIHBhcnQgb2YgdGhlIGZpbGVuYW1lIHdpbGwKKyAgICBuZWVkLiAgKi8K K3N0YXRpYyBwdHJkaWZmX3QKK29wZW5wX21heF9taWRkbGVkaXJfYW5kX3N1ZmZpeF9sZW4gKExp c3BfT2JqZWN0IG1pZGRsZWRpcl9hbmRfc3VmZml4ZXMpCit7CisgIHB0cmRpZmZfdCBtYXhfZXh0 cmFfbGVuID0gMDsKKyAgTGlzcF9PYmplY3QgdGFpbCA9IG1pZGRsZWRpcl9hbmRfc3VmZml4ZXM7 CisgIEZPUl9FQUNIX1RBSUxfU0FGRSAodGFpbCkKKyAgICB7CisgICAgICBMaXNwX09iamVjdCBt aWRkbGVkaXJfYW5kX3N1ZmZpeCA9IFhDQVIgKHRhaWwpOworICAgICAgTGlzcF9PYmplY3QgbWlk ZGxlZGlyID0gWENBUiAobWlkZGxlZGlyX2FuZF9zdWZmaXgpOworICAgICAgTGlzcF9PYmplY3Qg c3VmZml4ID0gWENEUiAobWlkZGxlZGlyX2FuZF9zdWZmaXgpOworICAgICAgcHRyZGlmZl90IGxl biA9IFNCWVRFUyAoc3VmZml4KTsKKyAgICAgIGlmICghTklMUCAobWlkZGxlZGlyKSkKKyAgICAg ICAgICBsZW4gKz0gMiArIFNCWVRFUyAobWlkZGxlZGlyKTsgLyogQWRkIHR3byBzbGFzaGVzLiAg Ki8KKyAgICAgIG1heF9leHRyYV9sZW4gPSBtYXggKG1heF9leHRyYV9sZW4sIGxlbik7CisgICAg fQorICByZXR1cm4gbWF4X2V4dHJhX2xlbjsKK30KKworLyogIFRoaXMgZnVuY3Rpb24gY29tcGxl dGVzIHRoZSBGTiBidWZmZXIgd2l0aCB0aGUgbWlkZGxlZGlyLAorICAgIGJhc2VuYW1lbWUsIGFu ZCBzdWZmaXguICBJdCB0YWtlcyB0aGUgZGlyZWN0b3J5IGxlbmd0aCBpbiBESVJOQU1FLAorICAg IGJ1dCBpdCByZXF1aXJlcyB0aGF0IGl0IGhhcyBiZWVuIGNvcGllZCBhbHJlYWR5IHRvIHRoZSBz dGFydCBvZgorICAgIHRoZSBidWZmZXIuCisKKyAgICBBZnRlciB0aGlzIGZ1bmN0aW9uIHRoZSBG TiBidWZmZXIgd2lsbCBiZSAoZGVwZW5kaW5nIG9uIG1pZGRsZWRpcikKKyAgICBkaXJuYW1lL21p ZGRsZWRpci9iYXNlbmFtZS5zdWZmaXgKKyAgICBvcgorICAgIGRpcm5hbWUvYmFzZW5hbWUuc3Vm Zml4CisqLworc3RhdGljIHB0cmRpZmZfdAorb3BlbnBfZmlsbF9maWxlbmFtZV9idWZmZXIgKGNo YXIgKmZuLCBwdHJkaWZmX3QgZGlybmFtZWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXNwX09iamVjdCBiYXNlbmFtZXdleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzcF9PYmplY3QgbWlkZGxlZGlyX2FuZF9zdWZmaXgpCit7CisgIExpc3BfT2JqZWN0IG1pZGRs ZWRpciA9IFhDQVIgKG1pZGRsZWRpcl9hbmRfc3VmZml4KTsKKyAgTGlzcF9PYmplY3Qgc3VmZml4 ID0gWENEUiAobWlkZGxlZGlyX2FuZF9zdWZmaXgpOworICBwdHJkaWZmX3QgYmFzZW5hbWV3ZXh0 X2xlbiA9IFNCWVRFUyAoYmFzZW5hbWV3ZXh0KTsKKyAgcHRyZGlmZl90IGZubGVuLCBsc3VmZml4 ID0gU0JZVEVTIChzdWZmaXgpOworICBwdHJkaWZmX3QgbG1pZGRsZWRpciA9IDA7CisgIGlmICgh TklMUCAobWlkZGxlZGlyKSkKKyAgICB7CisgICAgICAvKiBBZGQgMSBmb3IgdGhlIHNsYXNoLiAg Ki8KKyAgICAgIGxtaWRkbGVkaXIgPSBTQllURVMgKG1pZGRsZWRpcikgKyAxOworICAgICAgbWVt Y3B5IChmbiArIGRpcm5hbWVsZW4sIFNEQVRBIChtaWRkbGVkaXIpLAorICAgICAgICAgICAgICBs bWlkZGxlZGlyIC0gMSk7CisgICAgICBmbltkaXJuYW1lbGVuICsgKGxtaWRkbGVkaXIgLSAxKV0g PSAnLyc7CisgICAgfQorCisgIG1lbWNweSAoZm4gKyBkaXJuYW1lbGVuICsgbG1pZGRsZWRpciwg U0RBVEEgKGJhc2VuYW1ld2V4dCksCisgICAgICAgICAgYmFzZW5hbWV3ZXh0X2xlbik7CisgIC8q IE1ha2UgY29tcGxldGUgZmlsZW5hbWUgYnkgYXBwZW5kaW5nIFNVRkZJWC4gICovCisgIG1lbWNw eSAoZm4gKyBkaXJuYW1lbGVuICsgbG1pZGRsZWRpciArIGJhc2VuYW1ld2V4dF9sZW4sCisgICAg ICAgICAgU0RBVEEgKHN1ZmZpeCksIGxzdWZmaXggKyAxKTsKKyAgZm5sZW4gPSBkaXJuYW1lbGVu ICsgbG1pZGRsZWRpciArIGJhc2VuYW1ld2V4dF9sZW4gKyBsc3VmZml4OworICByZXR1cm4gZm5s ZW47Cit9CisKIC8qIFNlYXJjaCBmb3IgYSBmaWxlIHdob3NlIG5hbWUgaXMgU1RSLCBsb29raW5n IGluIGRpcmVjdG9yaWVzCiAgICBpbiB0aGUgTGlzcCBsaXN0IFBBVEgsIGFuZCB0cnlpbmcgc3Vm Zml4ZXMgZnJvbSBTVUZGSVguCiAgICBPbiBzdWNjZXNzLCByZXR1cm4gYSBmaWxlIGRlc2NyaXB0 b3IgKG9yIDEgb3IgLTIgYXMgZGVzY3JpYmVkIGJlbG93KS4KQEAgLTE2NDMsNyArMTc0Niw4IEBA IG9wZW5wIChMaXNwX09iamVjdCBwYXRoLCBMaXNwX09iamVjdCBzdHIsIExpc3BfT2JqZWN0IHN1 ZmZpeGVzLAogICBwdHJkaWZmX3Qgd2FudF9sZW5ndGg7CiAgIExpc3BfT2JqZWN0IGZpbGVuYW1l OwogICBMaXNwX09iamVjdCBzdHJpbmcsIHRhaWwsIGVuY29kZWRfZm4sIHNhdmVfc3RyaW5nOwot ICBwdHJkaWZmX3QgbWF4X3N1ZmZpeF9sZW4gPSAwOworICBMaXNwX09iamVjdCBtaWRkbGVkaXJf YW5kX3N1ZmZpeGVzOworICBwdHJkaWZmX3QgbWF4X2V4dHJhX2xlbiA9IDA7CiAgIGludCBsYXN0 X2Vycm5vID0gRU5PRU5UOwogICBpbnQgc2F2ZV9mZCA9IC0xOwogICBVU0VfU0FGRV9BTExPQ0E7 CkBAIC0xNjU0LDEzICsxNzU4LDkgQEAgb3BlbnAgKExpc3BfT2JqZWN0IHBhdGgsIExpc3BfT2Jq ZWN0IHN0ciwgTGlzcF9PYmplY3Qgc3VmZml4ZXMsCiAKICAgQ0hFQ0tfU1RSSU5HIChzdHIpOwog Ci0gIHRhaWwgPSBzdWZmaXhlczsKLSAgRk9SX0VBQ0hfVEFJTF9TQUZFICh0YWlsKQotICAgIHsK LSAgICAgIENIRUNLX1NUUklOR19DQVIgKHRhaWwpOwotICAgICAgbWF4X3N1ZmZpeF9sZW4gPSBt YXggKG1heF9zdWZmaXhfbGVuLAotCQkJICAgIFNCWVRFUyAoWENBUiAodGFpbCkpKTsKLSAgICB9 CisgIG1pZGRsZWRpcl9hbmRfc3VmZml4ZXMgPSBvcGVucF9hZGRfbWlkZGxlX2Rpcl90b19zdWZm aXhlcyAoc3VmZml4ZXMpOworCisgIG1heF9leHRyYV9sZW4gPSBvcGVucF9tYXhfbWlkZGxlZGly X2FuZF9zdWZmaXhfbGVuIChtaWRkbGVkaXJfYW5kX3N1ZmZpeGVzKTsKIAogICBzdHJpbmcgPSBm aWxlbmFtZSA9IGVuY29kZWRfZm4gPSBzYXZlX3N0cmluZyA9IFFuaWw7CiAKQEAgLTE2NzcsNyAr MTc3Nyw3IEBAIG9wZW5wIChMaXNwX09iamVjdCBwYXRoLCBMaXNwX09iamVjdCBzdHIsIExpc3Bf T2JqZWN0IHN1ZmZpeGVzLAogICAgICBleGVjdXRhYmxlLiAqLwogICBGT1JfRUFDSF9UQUlMX1NB RkUgKHBhdGgpCiAgICB7Ci0gICAgcHRyZGlmZl90IGJhc2VsZW4sIHByZWZpeGxlbjsKKyAgICBw dHJkaWZmX3QgZGlybmFtZWxlbiwgcHJlZml4bGVuOwogCiAgICAgaWYgKEVRIChwYXRoLCBqdXN0 X3VzZV9zdHIpKQogICAgICAgZmlsZW5hbWUgPSBzdHI7CkBAIC0xNjk0LDM1ICsxNzk0LDQwIEBA IG9wZW5wIChMaXNwX09iamVjdCBwYXRoLCBMaXNwX09iamVjdCBzdHIsIExpc3BfT2JqZWN0IHN1 ZmZpeGVzLAogCSAgY29udGludWU7CiAgICAgICB9CiAKKwogICAgIC8qIENhbGN1bGF0ZSBtYXhp bXVtIGxlbmd0aCBvZiBhbnkgZmlsZW5hbWUgbWFkZSBmcm9tCiAgICAgICAgdGhpcyBwYXRoIGVs ZW1lbnQvc3BlY2lmaWVkIGZpbGUgbmFtZSBhbmQgYW55IHBvc3NpYmxlIHN1ZmZpeC4gICovCi0g ICAgd2FudF9sZW5ndGggPSBtYXhfc3VmZml4X2xlbiArIFNCWVRFUyAoZmlsZW5hbWUpOworICAg IHdhbnRfbGVuZ3RoID0gbWF4X2V4dHJhX2xlbiArIFNCWVRFUyAoZmlsZW5hbWUpOwogICAgIGlm IChmbl9zaXplIDw9IHdhbnRfbGVuZ3RoKQogICAgICAgewogCWZuX3NpemUgPSAxMDAgKyB3YW50 X2xlbmd0aDsKIAlmbiA9IFNBRkVfQUxMT0NBIChmbl9zaXplKTsKICAgICAgIH0KIAorICAgIExp c3BfT2JqZWN0IGRpcm5hbWV3c2xhc2ggPSBGZmlsZV9uYW1lX2RpcmVjdG9yeSAoZmlsZW5hbWUp OworICAgIExpc3BfT2JqZWN0IGJhc2VuYW1ld2V4dCA9IEZmaWxlX25hbWVfbm9uZGlyZWN0b3J5 IChmaWxlbmFtZSk7CisKICAgICAvKiBDb3B5IEZJTEVOQU1FJ3MgZGF0YSB0byBGTiBidXQgcmVt b3ZlIHN0YXJ0aW5nIC86IGlmIGFueS4gICovCi0gICAgcHJlZml4bGVuID0gKChTQ0hBUlMgKGZp bGVuYW1lKSA+IDIKLQkJICAmJiBTUkVGIChmaWxlbmFtZSwgMCkgPT0gJy8nCi0JCSAgJiYgU1JF RiAoZmlsZW5hbWUsIDEpID09ICc6JykKKyAgICBwcmVmaXhsZW4gPSAoKFNDSEFSUyAoZGlybmFt ZXdzbGFzaCkgPiAyCisJCSAgJiYgU1JFRiAoZGlybmFtZXdzbGFzaCwgMCkgPT0gJy8nCisJCSAg JiYgU1JFRiAoZGlybmFtZXdzbGFzaCwgMSkgPT0gJzonKQogCQkgPyAyIDogMCk7Ci0gICAgYmFz ZWxlbiA9IFNCWVRFUyAoZmlsZW5hbWUpIC0gcHJlZml4bGVuOwotICAgIG1lbWNweSAoZm4sIFNE QVRBIChmaWxlbmFtZSkgKyBwcmVmaXhsZW4sIGJhc2VsZW4pOworICAgIGRpcm5hbWVsZW4gPSBT QllURVMgKGRpcm5hbWV3c2xhc2gpIC0gcHJlZml4bGVuOworICAgIG1lbWNweSAoZm4sIFNEQVRB IChkaXJuYW1ld3NsYXNoKSArIHByZWZpeGxlbiwgZGlybmFtZWxlbik7CiAKLSAgICAvKiBMb29w IG92ZXIgc3VmZml4ZXMuICAqLwotICAgIEFVVE9fTElTVDEgKGVtcHR5X3N0cmluZ19vbmx5LCBl bXB0eV91bmlieXRlX3N0cmluZyk7Ci0gICAgdGFpbCA9IE5JTFAgKHN1ZmZpeGVzKSA/IGVtcHR5 X3N0cmluZ19vbmx5IDogc3VmZml4ZXM7CisgICAgLyogTG9vcCBvdmVyIG1pZGRsZWRpcl9hbmRf c3VmZml4ZXMuICAqLworICAgIEFVVE9fTElTVDEgKGVtcHR5X3N0cmluZ19vbmx5LCBGY29ucyAo UW5pbCwgZW1wdHlfdW5pYnl0ZV9zdHJpbmcpKTsKKyAgICB0YWlsID0gTklMUCAobWlkZGxlZGly X2FuZF9zdWZmaXhlcykgPyBlbXB0eV9zdHJpbmdfb25seQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IG1pZGRsZWRpcl9hbmRfc3VmZml4ZXM7CiAgICAgRk9SX0VB Q0hfVEFJTF9TQUZFICh0YWlsKQogICAgICAgewotCUxpc3BfT2JqZWN0IHN1ZmZpeCA9IFhDQVIg KHRhaWwpOwotCXB0cmRpZmZfdCBmbmxlbiwgbHN1ZmZpeCA9IFNCWVRFUyAoc3VmZml4KTsKKwlM aXNwX09iamVjdCBtaWRkbGVkaXJfYW5kX3N1ZmZpeCA9IFhDQVIgKHRhaWwpOworICAgICAgICBM aXNwX09iamVjdCBzdWZmaXggPSBYQ0RSIChtaWRkbGVkaXJfYW5kX3N1ZmZpeCk7CiAJTGlzcF9P YmplY3QgaGFuZGxlcjsKIAotCS8qIE1ha2UgY29tcGxldGUgZmlsZW5hbWUgYnkgYXBwZW5kaW5n IFNVRkZJWC4gICovCi0JbWVtY3B5IChmbiArIGJhc2VsZW4sIFNEQVRBIChzdWZmaXgpLCBsc3Vm Zml4ICsgMSk7Ci0JZm5sZW4gPSBiYXNlbGVuICsgbHN1ZmZpeDsKKyAgICAgICAgcHRyZGlmZl90 IGZubGVuID0gb3BlbnBfZmlsbF9maWxlbmFtZV9idWZmZXIgKGZuLCBkaXJuYW1lbGVuLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZW5h bWV3ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWlkZGxlZGlyX2FuZF9zdWZmaXgpOwogCiAJLyogQ2hlY2sgdGhhdCB0aGUgZmlsZSBl eGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeS4gICovCiAJLyogV2UgdXNlZCB0byBvbmx5IGNo ZWNrIGZvciBoYW5kbGVycyBvbiBub24tYWJzb2x1dGUgZmlsZSBuYW1lczoKLS0gCjIuMjUuMS53 aW5kb3dzLjEKCg== --00000000000000d42205a6f36a4c--