From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lin Sun Newsgroups: gmane.emacs.bugs Subject: bug#41646: Startup in Windows is very slow when load-path contains many Date: Wed, 16 Oct 2024 07:51:28 +0000 Message-ID: References: <86jzedy84g.fsf@gnu.org> <86r08luqsq.fsf@gnu.org> <86frp1unvu.fsf@gnu.org> <86y12stv24.fsf@gnu.org> <86set0th9d.fsf@gnu.org> <86iktwt49w.fsf@gnu.org> <86cyk4t2su.fsf@gnu.org> <86a5f8t0sf.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000000b7f7d06249357eb" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12087"; mail-complaints-to="usenet@ciao.gmane.io" Cc: acorallo@gnu.org, 41646@debbugs.gnu.org, stefankangas@gmail.com, monnier@gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Oct 16 09:54:07 2024 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 1t0yr8-0002yw-Tl for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 16 Oct 2024 09:54:07 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t0yqn-00039m-6G; Wed, 16 Oct 2024 03:53:45 -0400 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 1t0yqm-00039d-2B for bug-gnu-emacs@gnu.org; Wed, 16 Oct 2024 03:53:44 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t0yql-0000Cf-Os for bug-gnu-emacs@gnu.org; Wed, 16 Oct 2024 03:53:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=Date:From:In-Reply-To:References:MIME-Version:To:Subject; bh=EMlS81p0PYbdJA6VY6lFZWqF7GFiHhL1qGSzmrSWx40=; b=NugJEX0aAWXTZ31a8aaFHFlgpPWEVQQJDrMiCisxOqa1vEkSLxGUXlnEQj5HrPnu2xb7hz8H5XgKdNFBSQW8hXTiBNVrGtgPtHbezdUTv7+p3wI0xEKKtShXkSf0+9b7cSahcqqZ/qdw75o0fypsFoE5lxEXg+KtrqoQKOqn8bOBwAM8S+fsRngpc85Nhc6jQKn1iqmUAhxn3582VOjibJj0lkaGCt7VP36qjCSJf8OFTk+nkei5IeuDATqf7YEBChWgsiYnthdlyA+ahd64KCkoqwMbWnEM1rZf2N/5L5+HJyBfjoekW48xP/SFgxpYpq5Z76ck7nPSBMhvm9CGLA==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t0yr4-00023j-0b for bug-gnu-emacs@gnu.org; Wed, 16 Oct 2024 03:54:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lin Sun Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 16 Oct 2024 07:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41646 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch fixed Original-Received: via spool by 41646-submit@debbugs.gnu.org id=B41646.17290651877841 (code B ref 41646); Wed, 16 Oct 2024 07:54:01 +0000 Original-Received: (at 41646) by debbugs.gnu.org; 16 Oct 2024 07:53:07 +0000 Original-Received: from localhost ([127.0.0.1]:58374 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t0yqB-00022N-3s for submit@debbugs.gnu.org; Wed, 16 Oct 2024 03:53:07 -0400 Original-Received: from mail-lj1-f173.google.com ([209.85.208.173]:45121) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t0yq9-00021s-47 for 41646@debbugs.gnu.org; Wed, 16 Oct 2024 03:53:06 -0400 Original-Received: by mail-lj1-f173.google.com with SMTP id 38308e7fff4ca-2fb561f273eso25916851fa.2 for <41646@debbugs.gnu.org>; Wed, 16 Oct 2024 00:52:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729065100; x=1729669900; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=EMlS81p0PYbdJA6VY6lFZWqF7GFiHhL1qGSzmrSWx40=; b=L1cwVJj+kikZJAg/PbAKP+8OV8fOgcKOLg+vPZwHg67HJiZloAAjlTNZtVT/xFoICq 3iotgUhZu0ZZIBR3MT3bWwa3ltDynEK3Odc2Js1SaacmpfBluIXsRXMktJqrye38MjOj jN3sTsR5ikIuAS0B/3YwL52aUWBp0ObzqT66HlPW3sgZUtYdRLd6F54CxmV0LcXiJ4yk 7WcIS3DMT5GgzPojnNYLNtId5ni5kPiT32pzay9xDN9iDoY0uPmp9+ELUHdYtfd04mkX rBFJLE3Swq9/oBostPUxi8I828pq8psNzVhiRo04YZ2IX+lghaIIerC0rhktjtqnf/dT AMQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729065100; x=1729669900; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=EMlS81p0PYbdJA6VY6lFZWqF7GFiHhL1qGSzmrSWx40=; b=ph77m+MCVUlUlb0etMREDmOWVYiw+lGv++YqGN3r8qNtXg5hCOgVy0YSvFd7hm9e++ Fy9TEFw0aDfd8szS6wIsTVYXzUKs24xy8fXpF7A26yaplp1AU8uCEFac/EvjqFNLJtuz k+imuDJAWJwFG6vzGR20k09+dHnniMaatTuSXz3HW0wU093ppjSOjnT2vQ+VeZCV/Ncv itFrTy8ncm0MW4cxkO/7RXtdwNFNmKQdIwdUzt3pVxCzFQ/xrO/mZY28weRNHYo5KKN2 DamPM6xWQXllZQkqa3ry5riN0KjVTzIqwL2/ZI7kLe6A6a0mJxyz+AcGHmto1gUON6m5 tIwQ== X-Forwarded-Encrypted: i=1; AJvYcCW6cyFKk5sWvlXnZteMn3axJUtl+bqLt+E1FlrlYtY3LM6MmWtOWMZdV2hKLqePalFR9+J6fg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzyWs4+Fbo5yyWLKWQYlWd2fucLaneMEj72HlCnKId3jqCY1Pdk VRG/IW1tGAkOgRpCKfVmdqm71mY2rZ0qhE1MT6sGCjV3rB4OT0GH45UA0nahytUnS+BdMYJe+gB B//t3ljvtfwLG+oCJ4kLE+3IMJKpKnzup X-Google-Smtp-Source: AGHT+IEwCYiDDDszqMCa7ATnOqq9M9czdx6ObwEZpMkXwMOAY9tHPq4gOlOPdsjNsU7iE/PjX1882DxcykPTDWytamQ= X-Received: by 2002:a2e:719:0:b0:2f3:b71a:1e91 with SMTP id 38308e7fff4ca-2fb32714935mr67023251fa.17.1729065099386; Wed, 16 Oct 2024 00:51:39 -0700 (PDT) In-Reply-To: <86a5f8t0sf.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:293664 Archived-At: --0000000000000b7f7d06249357eb Content-Type: text/plain; charset="UTF-8" Hi Eli, I wrote the code and tested it, the patch file attached. In the patch, a new "load-hints" is introduced with a default value nil. When its value is nil, everything works as before. When its value is set as a list of hints, the openp function calling count is reduced a lot. I had an example for require "org", the "load-hints" can reduce the access attempts from 123 to 6, here is the test command lines, strace the emacs in batch mode, a single (require 'org) trigger more than 100+ open attempts; with correct load-hints, the count reduce to 6. > strace src/emacs -batch -eval "(require 'org)" 2>&1| grep 'open.*/org\.' | wc -l > 123 > strace src/emacs -batch -eval "(let ((load-hints '((\"org*\" \"~/tmp/emacs.debug/lisp/org/\"))))(require 'org))" 2>&1| grep 'open.*/org\.' | wc -l > 6 And you had mentioned scan the load-path to build a full hints list, it absolutely should work; I'm looking to change package.el to generate the "-autoloads.el" work with "load-hints", currently the autoloads.el will add its folder into "load-path", just change it to add its path into "load-hints" should work, then we do NOT need to provide a function to build the "load-hints" for the packages installed by package.el won't bother the "load-path". --0000000000000b7f7d06249357eb Content-Type: text/x-patch; charset="US-ASCII"; name="0001-New-variable-load-hints-to-speedup-searching-file-fo.patch" Content-Disposition: attachment; filename="0001-New-variable-load-hints-to-speedup-searching-file-fo.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2bkcwzg0 RnJvbSBmMTk0ZDY5NDQ1YzFlZjBlMDhkYjI5YjA3NTcwZWUzZWQ3YjJlZDYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaW4gU3VuIDxzdW5saW43QGhvdG1haWwuY29tPgpEYXRlOiBX ZWQsIDE2IE9jdCAyMDI0IDA3OjMxOjU5ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gTmV3IHZhcmlh YmxlIGxvYWQtaGludHMgdG8gc3BlZWR1cCBzZWFyY2hpbmcgZmlsZSBmb3IgKGxvYWQpCiBmdW5j dGlvbgoKKiBsaXNwL3N1YnIuZWw6IChsb2NhdGUtbGlicmFyeSkgc3VwcG9ydCB0aGUgYGxvYWQt aGludHMnIHZhcmlhYmxlCiogc3JjL2xyZWFkLmM6IChsb2FkKSBmdW5jdGlvbiBzdXBwb3J0IHRo ZSBgbG9hZC1oaW50cycgdmFyaWFibGUKLS0tCiBsaXNwL3N1YnIuZWwgfCAgOSArKy0tLQogc3Jj L2xyZWFkLmMgIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3N1YnIuZWwgYi9saXNwL3N1YnIuZWwKaW5kZXggMmVh ZWQ2ODI0MDYuLjNkOTU5OTI3MGVkIDEwMDY0NAotLS0gYS9saXNwL3N1YnIuZWwKKysrIGIvbGlz cC9zdWJyLmVsCkBAIC0zMTQxLDEwICszMTQxLDExIEBAIGxvY2F0ZS1saWJyYXJ5CiBzdHJpbmcu ICBXaGVuIHJ1biBpbnRlcmFjdGl2ZWx5LCB0aGUgYXJndW1lbnQgSU5URVJBQ1RJVkUtQ0FMTCBp cyB0LAogYW5kIHRoZSBmaWxlIG5hbWUgaXMgZGlzcGxheWVkIGluIHRoZSBlY2hvIGFyZWEuIgog ICAoaW50ZXJhY3RpdmUgKGxpc3QgKHJlYWQtbGlicmFyeS1uYW1lKSBuaWwgbmlsIHQpKQotICAo bGV0ICgoZmlsZSAobG9jYXRlLWZpbGUgbGlicmFyeQotCQkJICAgKG9yIHBhdGggbG9hZC1wYXRo KQotCQkJICAgKGFwcGVuZCAodW5sZXNzIG5vc3VmZml4IChnZXQtbG9hZC1zdWZmaXhlcykpCi0J CQkJICAgbG9hZC1maWxlLXJlcC1zdWZmaXhlcykpKSkKKyAgKGxldCAoKGZpbGUgKGxvY2F0ZS1m aWxlLWludGVybmFsCisgICAgICAgICAgICAgICBsaWJyYXJ5IChvciBwYXRoIGxvYWQtcGF0aCkK KyAgICAgICAgICAgICAgIChhcHBlbmQgKHVubGVzcyBub3N1ZmZpeCAoZ2V0LWxvYWQtc3VmZml4 ZXMpKQorICAgICAgICAgICAgICAgICAgICAgICBsb2FkLWZpbGUtcmVwLXN1ZmZpeGVzKQorICAg ICAgICAgICAgICAgbmlsICh1bmxlc3MgcGF0aCBsb2FkLWhpbnRzKSkpKQogICAgIChpZiBpbnRl cmFjdGl2ZS1jYWxsCiAJKGlmIGZpbGUKIAkgICAgKG1lc3NhZ2UgIkxpYnJhcnkgaXMgZmlsZSAl cyIgKGFiYnJldmlhdGUtZmlsZS1uYW1lIGZpbGUpKQpkaWZmIC0tZ2l0IGEvc3JjL2xyZWFkLmMg Yi9zcmMvbHJlYWQuYwppbmRleCA5NWM2ODkxYzIwNS4uNmRlMWM1YmU1ZWIgMTAwNjQ0Ci0tLSBh L3NyYy9scmVhZC5jCisrKyBiL3NyYy9scmVhZC5jCkBAIC0xMjcxLDYgKzEyNzEsNTMgQEAgY2xv c2VfZmlsZV91bndpbmRfYW5kcm9pZF9mZCAodm9pZCAqcHRyKQogCiAjZW5kaWYKIAorc3RhdGlj IGJvb2wKK2NvbXBsZXRlX2ZpbGVuYW1lX3AgKExpc3BfT2JqZWN0IHBhdGhuYW1lKQoreworICBj b25zdCB1bnNpZ25lZCBjaGFyICpzID0gU0RBVEEgKHBhdGhuYW1lKTsKKyAgcmV0dXJuIChJU19E SVJFQ1RPUllfU0VQIChzWzBdKQorCSAgfHwgKFNDSEFSUyAocGF0aG5hbWUpID4gMiAmJiBJU19E RVZJQ0VfU0VQIChzWzFdKQorCSAgICAgICYmIElTX0RJUkVDVE9SWV9TRVAgKHNbMl0pKSk7Cit9 CisKKy8qIHNlYXJjaCB0aGUgZmlsZSBpbiBsb2FkIGhpbnRzIHRvIGdldCBhIHBhdGggbGlzdCAq Lworc3RhdGljIExpc3BfT2JqZWN0CitzZWFyY2hfbG9hZF9oaW50cyhMaXNwX09iamVjdCBsb2Fk X2hpbnRzLCBMaXNwX09iamVjdCBmaWxlKSB7CisgIExpc3BfT2JqZWN0IGxvYWRfcGF0aCA9IFFu aWw7CisgIExpc3BfT2JqZWN0IHRhaWwgPSBsb2FkX2hpbnRzOworICBGT1JfRUFDSF9UQUlMX1NB RkUgKHRhaWwpCisgICAgeworICAgICAgYm9vbCBmdWxsbWF0Y2ggPSBmYWxzZTsKKyAgICAgIHB0 cmRpZmZfdCBsZW4gPSAtMTsKKyAgICAgIExpc3BfT2JqZWN0IHJvdyA9IFhDQVIgKHRhaWwpOwor ICAgICAgTGlzcF9PYmplY3Qga2V5ID0gWENBUiAocm93KTsKKyAgICAgIENIRUNLX1NUUklORyAo a2V5KTsKKworICAgICAgaWYgKFNCWVRFUyAoa2V5KSAtIDEgPD0gU0JZVEVTIChmaWxlKSkKKwl7 CisJICBpZiAoU0JZVEVTIChrZXkpID49IDEKKwkgICAgICAmJiBTREFUQSAoa2V5KVtTQllURVMg KGtleSkgLSAxXSA9PSAnKicpCisJICAgIGxlbiA9IFNCWVRFUyAoa2V5KSAtIDE7IC8qICJmaWxl LSoiIGZvcm1hdCAqLworCSAgZWxzZSBpZiAoU0JZVEVTIChrZXkpID09IFNCWVRFUyAoZmlsZSkp CisJICAgIHsKKwkgICAgICBsZW4gPSBTQllURVMgKGtleSk7CisJICAgICAgZnVsbG1hdGNoID0g dHJ1ZTsKKwkgICAgfQorCX0KKworICAgICAgaWYgKGxlbiA+PSAwICYmIDAgPT0gbWVtY21wIChT REFUQSAoa2V5KSwgU0RBVEEgKGZpbGUpLCBsZW4pKQorCXsKKwkgIGlmIChmdWxsbWF0Y2gpCisJ ICAgIHsKKwkgICAgICBsb2FkX3BhdGggPSBDQUxMTiAoRmFwcGVuZCwgWENEUiAocm93KSk7CisJ ICAgICAgYnJlYWs7CisJICAgIH0KKwkgIGxvYWRfcGF0aCA9IENBTExOIChGYXBwZW5kLCBsb2Fk X3BhdGgsIFhDRFIgKHJvdykpOworCX0KKyAgICB9CisgIHJldHVybiBsb2FkX3BhdGg7Cit9CisK IERFRlVOICgibG9hZCIsIEZsb2FkLCBTbG9hZCwgMSwgNSwgMCwKICAgICAgICBkb2M6IC8qIEV4 ZWN1dGUgYSBmaWxlIG9mIExpc3AgY29kZSBuYW1lZCBGSUxFLgogRmlyc3QgdHJ5IEZJTEUgd2l0 aCBgLmVsYycgYXBwZW5kZWQsIHRoZW4gdHJ5IHdpdGggYC5lbCcsIHRoZW4gdHJ5CkBAIC0xMjc4 LDcgKzEzMjUsOSBAQCBERUZVTiAoImxvYWQiLCBGbG9hZCwgU2xvYWQsIDEsIDUsIDAsCiB0aGVu IHRyeSBGSUxFIHVubW9kaWZpZWQgKHRoZSBleGFjdCBzdWZmaXhlcyBpbiB0aGUgZXhhY3Qgb3Jk ZXIgYXJlCiBkZXRlcm1pbmVkIGJ5IGBsb2FkLXN1ZmZpeGVzJykuICBFbnZpcm9ubWVudCB2YXJp YWJsZSByZWZlcmVuY2VzIGluCiBGSUxFIGFyZSByZXBsYWNlZCB3aXRoIHRoZWlyIHZhbHVlcyBi eSBjYWxsaW5nIGBzdWJzdGl0dXRlLWluLWZpbGUtbmFtZScuCi1UaGlzIGZ1bmN0aW9uIHNlYXJj aGVzIHRoZSBkaXJlY3RvcmllcyBpbiBgbG9hZC1wYXRoJy4KK1RoaXMgZnVuY3Rpb24gc2VhcmNo ZXMgdGhlIGVudHJ5IGluIGBsb2FkLWhpbnRzYCBmaXJzdCwgaWYgc29tZSBlbnRyaWVzCittYXRj aGVkLCBzZWFyY2hlcyBpbiB0aGUgbWF0Y2hlZCBwYXRoZXMuIE90aGVyd2lzZSwgc2VhcmNoZXMg ZGlyZWN0b3JpZXMKK2luIGBsb2FkLXBhdGgnLgogCiBJZiBvcHRpb25hbCBzZWNvbmQgYXJnIE5P RVJST1IgaXMgbm9uLW5pbCwKIHJlcG9ydCBubyBlcnJvciBpZiBGSUxFIGRvZXNuJ3QgZXhpc3Qu CkBAIC0xMzI3LDcgKzEzNzYsNyBAQCBERUZVTiAoImxvYWQiLCBGbG9hZCwgU2xvYWQsIDEsIDUs IDAsCiAjZW5kaWYKICAgc3BlY3BkbF9yZWYgZmRfaW5kZXggVU5JTklUOwogICBzcGVjcGRsX3Jl ZiBjb3VudCA9IFNQRUNQRExfSU5ERVggKCk7Ci0gIExpc3BfT2JqZWN0IGZvdW5kLCBlZm91bmQs IGhpc3RfZmlsZV9uYW1lOworICBMaXNwX09iamVjdCBmb3VuZCwgZWZvdW5kLCBoaXN0X2ZpbGVf bmFtZSwgbG9hZF9wYXRoID0gUW5pbDsKICAgLyogVHJ1ZSBtZWFucyB3ZSBwcmludGVkIHRoZSAi LmVsIGlzIG5ld2VyIiBtZXNzYWdlLiAgKi8KICAgYm9vbCBuZXdlciA9IDA7CiAgIC8qIFRydWUg bWVhbnMgd2UgYXJlIGxvYWRpbmcgYSBjb21waWxlZCBmaWxlLiAgKi8KQEAgLTE0MDksMTIgKzE0 NTgsMTggQEAgREVGVU4gKCJsb2FkIiwgRmxvYWQsIFNsb2FkLCAxLCA1LCAwLAogCSAgICBzdWZm aXhlcyA9IENBTExOIChGYXBwZW5kLCBzdWZmaXhlcywgVmxvYWRfZmlsZV9yZXBfc3VmZml4ZXMp OwogCX0KIAorICAgICAgaWYgKCFjb21wbGV0ZV9maWxlbmFtZV9wIChmaWxlKSkKKwlsb2FkX3Bh dGggPSBzZWFyY2hfbG9hZF9oaW50cyhWbG9hZF9oaW50cywgZmlsZSk7CisKKyAgICAgIGlmIChO SUxQIChsb2FkX3BhdGgpKQorCWxvYWRfcGF0aCA9IFZsb2FkX3BhdGg7CisKICNpZiAhZGVmaW5l ZCBVU0VfQU5EUk9JRF9BU1NFVFMKLSAgICAgIGZkID0gb3BlbnAgKFZsb2FkX3BhdGgsIGZpbGUs IHN1ZmZpeGVzLCAmZm91bmQsIFFuaWwsCisgICAgICBmZCA9IG9wZW5wIChsb2FkX3BhdGgsIGZp bGUsIHN1ZmZpeGVzLCAmZm91bmQsIFFuaWwsCiAJCSAgbG9hZF9wcmVmZXJfbmV3ZXIsIG5vX25h dGl2ZSwgTlVMTCk7CiAjZWxzZQogICAgICAgYXNzZXQgPSBOVUxMOwotICAgICAgcmMgPSBvcGVu cCAoVmxvYWRfcGF0aCwgZmlsZSwgc3VmZml4ZXMsICZmb3VuZCwgUW5pbCwKKyAgICAgIHJjID0g b3BlbnAgKGxvYWRfcGF0aCwgZmlsZSwgc3VmZml4ZXMsICZmb3VuZCwgUW5pbCwKIAkJICBsb2Fk X3ByZWZlcl9uZXdlciwgbm9fbmF0aXZlLCAmYXNzZXQpOwogICAgICAgZmQuZmQgPSByYzsKICAg ICAgIGZkLmFzc2V0ID0gYXNzZXQ7CkBAIC0xNzgwLDE2ICsxODM1LDcgQEAgc2F2ZV9tYXRjaF9k YXRhX2xvYWQgKExpc3BfT2JqZWN0IGZpbGUsIExpc3BfT2JqZWN0IG5vZXJyb3IsCiAgIHJldHVy biB1bmJpbmRfdG8gKGNvdW50LCByZXN1bHQpOwogfQogDAotc3RhdGljIGJvb2wKLWNvbXBsZXRl X2ZpbGVuYW1lX3AgKExpc3BfT2JqZWN0IHBhdGhuYW1lKQotewotICBjb25zdCB1bnNpZ25lZCBj aGFyICpzID0gU0RBVEEgKHBhdGhuYW1lKTsKLSAgcmV0dXJuIChJU19ESVJFQ1RPUllfU0VQIChz WzBdKQotCSAgfHwgKFNDSEFSUyAocGF0aG5hbWUpID4gMgotCSAgICAgICYmIElTX0RFVklDRV9T RVAgKHNbMV0pICYmIElTX0RJUkVDVE9SWV9TRVAgKHNbMl0pKSk7Ci19Ci0KLURFRlVOICgibG9j YXRlLWZpbGUtaW50ZXJuYWwiLCBGbG9jYXRlX2ZpbGVfaW50ZXJuYWwsIFNsb2NhdGVfZmlsZV9p bnRlcm5hbCwgMiwgNCwgMCwKK0RFRlVOICgibG9jYXRlLWZpbGUtaW50ZXJuYWwiLCBGbG9jYXRl X2ZpbGVfaW50ZXJuYWwsIFNsb2NhdGVfZmlsZV9pbnRlcm5hbCwgMiwgNSwgMCwKICAgICAgICBk b2M6IC8qIFNlYXJjaCBmb3IgRklMRU5BTUUgdGhyb3VnaCBQQVRILgogUmV0dXJucyB0aGUgZmls ZSdzIG5hbWUgaW4gYWJzb2x1dGUgZm9ybSwgb3IgbmlsIGlmIG5vdCBmb3VuZC4KIElmIFNVRkZJ WEVTIGlzIG5vbi1uaWwsIGl0IHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3VmZml4ZXMgdG8gYXBwZW5k IHRvCkBAIC0xNzk3LDEyICsxODQzLDE4IEBAIERFRlVOICgibG9jYXRlLWZpbGUtaW50ZXJuYWwi LCBGbG9jYXRlX2ZpbGVfaW50ZXJuYWwsIFNsb2NhdGVfZmlsZV9pbnRlcm5hbCwgMiwKIElmIG5v bi1uaWwsIFBSRURJQ0FURSBpcyB1c2VkIGluc3RlYWQgb2YgYGZpbGUtcmVhZGFibGUtcCcuCiBQ UkVESUNBVEUgY2FuIGFsc28gYmUgYW4gaW50ZWdlciB0byBwYXNzIHRvIHRoZSBmYWNjZXNzYXQo MikgZnVuY3Rpb24sCiBpbiB3aGljaCBjYXNlIGZpbGUtbmFtZS1oYW5kbGVycyBhcmUgaWdub3Jl ZC4KK0xPQUQtSElOVFMgaXMgYSBsaXN0IHNhbWUgYXMgYGxvYWQtaGludHMnLgogVGhpcyBmdW5j dGlvbiB3aWxsIG5vcm1hbGx5IHNraXAgZGlyZWN0b3JpZXMsIHNvIGlmIHlvdSB3YW50IGl0IHRv IGZpbmQKIGRpcmVjdG9yaWVzLCBtYWtlIHN1cmUgdGhlIFBSRURJQ0FURSBmdW5jdGlvbiByZXR1 cm5zIGBkaXItb2snIGZvciB0aGVtLiAgKi8pCi0gIChMaXNwX09iamVjdCBmaWxlbmFtZSwgTGlz cF9PYmplY3QgcGF0aCwgTGlzcF9PYmplY3Qgc3VmZml4ZXMsIExpc3BfT2JqZWN0IHByZWRpY2F0 ZSkKKyAgKExpc3BfT2JqZWN0IGZpbGVuYW1lLCBMaXNwX09iamVjdCBwYXRoLCBMaXNwX09iamVj dCBzdWZmaXhlcywgTGlzcF9PYmplY3QgcHJlZGljYXRlLAorICAgTGlzcF9PYmplY3QgbG9hZF9o aW50cykKIHsKLSAgTGlzcF9PYmplY3QgZmlsZTsKLSAgaW50IGZkID0gb3BlbnAgKHBhdGgsIGZp bGVuYW1lLCBzdWZmaXhlcywgJmZpbGUsIHByZWRpY2F0ZSwgZmFsc2UsIHRydWUsCisgIExpc3Bf T2JqZWN0IGZpbGUsIGRpcnMgPSBRbmlsOworICBpZiAoIU5JTFAobG9hZF9oaW50cykpCisgICAg ZGlycyA9IHNlYXJjaF9sb2FkX2hpbnRzKGxvYWRfaGludHMsIGZpbGVuYW1lKTsKKyAgaWYgKE5J TFAoZGlycykpCisgICAgZGlycyA9IHBhdGg7CisgIGludCBmZCA9IG9wZW5wIChkaXJzLCBmaWxl bmFtZSwgc3VmZml4ZXMsICZmaWxlLCBwcmVkaWNhdGUsIGZhbHNlLCB0cnVlLAogCQkgIE5VTEwp OwogICBpZiAoTklMUCAocHJlZGljYXRlKSAmJiBmZCA+PSAwKQogICAgIGVtYWNzX2Nsb3NlIChm ZCk7CkBAIC01ODUxLDYgKzU5MDMsMTMgQEAgc3ltc19vZl9scmVhZCAodm9pZCkKIAkgICAgICAg ZG9jOiAvKiBOb24tbmlsIG1lYW5zIHJlYWQgcmVjdXJzaXZlIHN0cnVjdHVyZXMgdXNpbmcgI049 IGFuZCAjTiMgc3ludGF4LiAgKi8pOwogICBWcmVhZF9jaXJjbGUgPSBRdDsKIAorICBERUZWQVJf TElTUCAoImxvYWQtaGludHMiLCBWbG9hZF9oaW50cywKKwkgICAgICAgZG9jOiAvKiBBIGxpc3Qg Zm9yIG5hbWUgdG8gZGlyZWN0b3J5LWxpc3QgdG8gc2VhcmNoIGZvciBmaWxlcwordG8gbG9hZCwg YmVmb3JlIHRoZSBsb2FkLXBhdGguICBFYWNoZSBlbnRyeSBpcyBhIGZpbGUgbmFtZSB0byBkaXJl Y3RvcnkgbGlzdCwKK2ZpbGUgbmFtZSBlbmRzIHdpdGggYSAnKicgbWVhbnMgcHJlZml4IG1hdGNo aW5nLiBFeGFtcGxlOgorICAnKCgibmFtZTEtKiIgIi9wYXRoMSIgIi9wYXRoMiIpKS4gICovKTsK KyAgVmxvYWRfaGludHMgPSBRbmlsOworCiAgIERFRlZBUl9MSVNQICgibG9hZC1wYXRoIiwgVmxv YWRfcGF0aCwKIAkgICAgICAgZG9jOiAvKiBMaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBm b3IgZmlsZXMgdG8gbG9hZC4KIEVhY2ggZWxlbWVudCBpcyBhIHN0cmluZyAoZGlyZWN0b3J5IGZp bGUgbmFtZSkgb3IgbmlsIChtZWFuaW5nCi0tIAoyLjM0LjEKCg== --0000000000000b7f7d06249357eb--