From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#51622: 29.0.50; [PATCH v3] Abbreviate remote home directories in `abbreviate-file-name' Date: Sun, 14 Nov 2021 22:58:31 -0800 Message-ID: <6deae031-0bbd-9dec-d9d1-3e74e45acaeb@gmail.com> References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> <874k8eg5mf.fsf@gmx.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------5367A389331408C0FC513C60" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39288"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 51622@debbugs.gnu.org To: Michael Albinus Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Nov 15 07:59:11 2021 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 1mmVxP-000A2U-3X for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 15 Nov 2021 07:59:11 +0100 Original-Received: from localhost ([::1]:54150 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mmVxN-0004nz-Ln for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 15 Nov 2021 01:59:09 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:33994) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mmVxG-0004na-GN for bug-gnu-emacs@gnu.org; Mon, 15 Nov 2021 01:59:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:40877) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mmVxG-00082u-7x for bug-gnu-emacs@gnu.org; Mon, 15 Nov 2021 01:59:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mmVxG-0007TQ-3J for bug-gnu-emacs@gnu.org; Mon, 15 Nov 2021 01:59:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 15 Nov 2021 06:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51622 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 51622-submit@debbugs.gnu.org id=B51622.163695952128693 (code B ref 51622); Mon, 15 Nov 2021 06:59:02 +0000 Original-Received: (at 51622) by debbugs.gnu.org; 15 Nov 2021 06:58:41 +0000 Original-Received: from localhost ([127.0.0.1]:52423 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmVwu-0007Sh-MF for submit@debbugs.gnu.org; Mon, 15 Nov 2021 01:58:41 -0500 Original-Received: from mail-pl1-f172.google.com ([209.85.214.172]:41880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmVws-0007SR-2y for 51622@debbugs.gnu.org; Mon, 15 Nov 2021 01:58:40 -0500 Original-Received: by mail-pl1-f172.google.com with SMTP id k4so13601965plx.8 for <51622@debbugs.gnu.org>; Sun, 14 Nov 2021 22:58:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=65toNNatvFEHLb9XxtGykdiUZ7yP1WMWseRJu8uW3Sk=; b=ZKyK5Z8QKiypeaojR8CkM5Ebhinbh4DkhQ2VwL97oCnPt681lfKNp4GPUiPSa/wqSW j4Ij6aK8L8Px8MY/Uks94drbu+KlY0y8CKOOP/yrtadriUcbIP/eIpzQmq0Lfxh8pSB2 APHRpoo3uC41XhyD47Mxii9bTztz4YL04NTFJ1DWBngr+qBArUiZz7fFSOD/H76QFiuz pfM7HVvQsXgFR7r0WuGysi6w/r9vKx5PVWlR2qs62t3phZ6FVVH97NyZyJIB4JMw7w8s +FRGWlNya95TkuADTTWV2lmQJmrm1yMqI5Xxrfng3GL1xYSABeZ11sGqrEwy/hckmCtK 3Uug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=65toNNatvFEHLb9XxtGykdiUZ7yP1WMWseRJu8uW3Sk=; b=CXSW+e/baBAdPJDCpSSRoXlBGRjczpETuY4sD1s403EarbL5o1mjFGhPq+C70PdXuP dCo4kKbqxMimzif4Aa+hThnGyY2EZtEe0ZWKcrLfJORRID2LjD/KX8d63K89sADyMqt4 IpzehlNJsWYSnl7P3AeYvFFAYlI4sS8gf6PiQlkJNP0TLhm6n0JT96rL2CwiTHmOzLvU PbebhSmZ/2aLl7eW2JgwniySbiOtc0L8BBMutLmcWeDN5b7Rg0CRexzLVOsuT2lGtJ3K 4qRSV1nX2no/qWoM9bU74xE9pyCkWXHtAqcuaM3did0+DtdTE+hGNywZ5iwjtFoHQJhe wS4g== X-Gm-Message-State: AOAM532+ojqZStFYaFS2KXdve26eOF39SY9tIAb3QU29dr9W1k4K6nBK IVjfxbm0NkBooxO8S2RnGmOaZUfrN0k= X-Google-Smtp-Source: ABdhPJx5LYLk5wdkTZpDZ/v87mBkP+8CpXTAKYva6QyYkOhAYkAVaSCZjny8xFbsHRE5ZXiJPwK/PQ== X-Received: by 2002:a17:90b:3ecd:: with SMTP id rm13mr43439617pjb.157.1636959512108; Sun, 14 Nov 2021 22:58:32 -0800 (PST) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id lw1sm18424196pjb.38.2021.11.14.22.58.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 14 Nov 2021 22:58:31 -0800 (PST) In-Reply-To: <874k8eg5mf.fsf@gmx.de> Content-Language: en-US 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:220037 Archived-At: This is a multi-part message in MIME format. --------------5367A389331408C0FC513C60 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/14/2021 6:43 AM, Michael Albinus wrote: > Thanks. However, I believe this test shall be called > `files-tests-file-name-non-special-file-abbreviate-file-name', like the > other non-special tests. And perhaps it shall be located prior > `files-tests-file-name-non-special-access-file'. Ok, done. >> Incidentally, another interesting >> feature would be abbreviating default methods/users. That's probably >> easy when Tramp has filled in those values since the file name has >> `tramp-default' properties set. I'm not sure how tricky it would be to >> do without those properties though. > > You cannot trust the `tramp-default' property. It is set when a method > or user or host name is expanded as in "/ssh::". But when the host name > is used explicitly by the user, as in "/ssh:host:", the property is not > set, even if "host" is the default. Same for user. > > But it shouldn't be too hard to determine the defaults. We have > tramp-default-method{-alist}, tramp-default-user{-alist}, and > tramp-default-host{-alist}. All needed information is there. Right, that confirms what I suspected. I'll try to look into this in more detail later when I get the chance. >> I also attached a slightly-updated benchmark script as well as new >> results. Performance on local file names is the same as before the >> patch, and just slightly faster than before with Tramp file >> names. (Most of the performance improvements here happened in >> bug#51699, so I mainly wanted to maintain the current performance in >> this patch.) > > Good, no regression :-) Fixing your comments below *did* regress performance for abbreviating Tramp file names compared to current master (it takes 1.47x as long now in the worst case), but it's still considerably faster than Emacs 28. I've attached updated benchmark results to show the difference. > This shall be rather "---". We don't add documentation (yet) for this > new Tramp feature. Fixed. >> +*** Tramp supports abbreviating remote home directories now. >> +When calling 'abbreviate-file-name' on a Tramp filename, the result >> +will abbreviate the home directory to "~". > > This might be misleading. ... the result will abbreviate the remote home > directory to "/ssh:user@host:~" (for example). Ok, I tried to make this section clearer. > Well, I believe we can implement abbreviation also for other Tramp > backends, like in tramp-sudoedit.el. So it might be better to call this > handler `tramp-handle-abbreviate-file-name'. Done. I added this for the sudoedit and smb methods, since both support "~" expansion in `expand-file-name'. That *should* be sufficient, but I've never used either of those methods, so I could be wrong... > Please use `case-insensitive-p'. We don't know whether there will be > other implementation for this magic function in the future. And we shall > not bypass the checks in `tramp-file-name-handler', which are important > for parallel invocations of Tramp handlers. Fixed (same with `expand-file-name'). These changes slow things down a fair bit, but that's mostly due to checking for the right file name handler more often. Like I said above though, it's still a lot faster than Emacs 28 (thanks to bug#51699). --------------5367A389331408C0FC513C60 Content-Type: text/plain; charset=UTF-8; name="0001-Add-another-abbreviate-file-name-test.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-another-abbreviate-file-name-test.patch" RnJvbSA0ZjIzNTIxNWM5NjFmN2EyZjFjMzViMTMyN2FmNzc5NGFiMjUwZTRkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTMgTm92IDIwMjEgMTc6Mzg6MzYgLTA4MDAKU3ViamVjdDogW1BB VENIIDEvMl0gQWRkIGFub3RoZXIgJ2FiYnJldmlhdGUtZmlsZS1uYW1lJyB0ZXN0CgoqIHRl c3QvbGlzcC9maWxlcy10ZXN0cy5lbAooZmlsZXMtdGVzdHMtZmlsZS1uYW1lLW5vbi1zcGVj aWFsLWFiYnJldmlhdGUtZmlsZS1uYW1lKTogTmV3IHRlc3QuCi0tLQogdGVzdC9saXNwL2Zp bGVzLXRlc3RzLmVsIHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZmlsZXMtdGVzdHMuZWwgYi90ZXN0L2xp c3AvZmlsZXMtdGVzdHMuZWwKaW5kZXggZDAwZjFjZTMyNi4uMmM0NTU3ZWFkNiAxMDA2NDQK LS0tIGEvdGVzdC9saXNwL2ZpbGVzLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9maWxlcy10 ZXN0cy5lbApAQCAtNDY1LDYgKzQ2NSwxNSBAQCBmaWxlcy10ZXN0cy0tbmV3LW5hbWUKICAg KGxldCAoZmlsZS1uYW1lLWhhbmRsZXItYWxpc3QpCiAgICAgKGNvbmNhdCAoZmlsZS1uYW1l LXNhbnMtZXh0ZW5zaW9uIG5hbWUpIHBhcnQgKGZpbGUtbmFtZS1leHRlbnNpb24gbmFtZSB0 KSkpKQogCisoZXJ0LWRlZnRlc3QgZmlsZXMtdGVzdHMtZmlsZS1uYW1lLW5vbi1zcGVjaWFs LWFiYnJldmlhdGUtZmlsZS1uYW1lICgpCisgIChsZXQqICgoaG9tZWRpciB0ZW1wb3Jhcnkt ZmlsZS1kaXJlY3RvcnkpCisgICAgICAgICAocHJvY2Vzcy1lbnZpcm9ubWVudCAoY29ucyAo Zm9ybWF0ICJIT01FPSVzIiBob21lZGlyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJvY2Vzcy1lbnZpcm9ubWVudCkpCisgICAgICAgICAoYWJicmV2aWF0ZWQt aG9tZS1kaXIgbmlsKSkKKyAgICA7OyBDaGVjayB0aGF0IGFiYnJldmlhdGlvbiBkb2Vzbid0 IG9jY3VyIGZvciBxdW90ZWQgZmlsZSBuYW1lcy4KKyAgICAoc2hvdWxkIChlcXVhbCAoY29u Y2F0ICIvOiIgaG9tZWRpciAiZm9vL2JhciIpCisgICAgICAgICAgICAgICAgICAgKGFiYnJl dmlhdGUtZmlsZS1uYW1lIChjb25jYXQgIi86IiBob21lZGlyICJmb28vYmFyIikpKSkpKQor CiAoZXJ0LWRlZnRlc3QgZmlsZXMtdGVzdHMtZmlsZS1uYW1lLW5vbi1zcGVjaWFsLWFjY2Vz cy1maWxlICgpCiAgIChmaWxlcy10ZXN0cy0td2l0aC10ZW1wLW5vbi1zcGVjaWFsICh0bXBm aWxlIG5vc3BlY2lhbCkKICAgICA7OyBCb3RoIHZlcnNpb25zIG9mIHRoZSBmaWxlIG5hbWUg d29yay4KLS0gCjIuMjUuMQoK --------------5367A389331408C0FC513C60 Content-Type: text/plain; charset=UTF-8; name="0002-Support-abbreviating-home-directory-of-Tramp-filenam.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Support-abbreviating-home-directory-of-Tramp-filenam.pa"; filename*1="tch" RnJvbSA4NjYzYTg3MmE1M2YxMzk0ODA5NmE5NWFkYTkyZTNhYzA5OWVlZTVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMTQgTm92IDIwMjEgMjI6NDE6MzAgLTA4MDAKU3ViamVjdDogW1BB VENIIDIvMl0gU3VwcG9ydCBhYmJyZXZpYXRpbmcgaG9tZSBkaXJlY3Rvcnkgb2YgVHJhbXAg ZmlsZW5hbWVzCgoqIGxpc3AvZmlsZXMuZWwgKGRpcmVjdG9yeS1hYmJyZXYtbWFrZS1yZWdl eHApOgooZGlyZWN0b3J5LWFiYnJldi1hcHBseSk6IE5ldyBmdW5jdGlvbnMuCihhYmJyZXZp YXRlLWZpbGUtbmFtZSk6IENoZWNrIGZvciBmaWxlIG5hbWUgaGFuZGxlci4KCiogbGlzcC90 cmFtcC5lbCAodHJhbXAtc2gtaGFuZGxlLWFiYnJldmlhdGUtZmlsZS1uYW1lKTogTmV3IGZ1 bmN0aW9uLgoKKiBsaXNwL2ZpbGVzLmVsIChmaWxlLW5hbWUtbm9uLXNwZWNpYWwpOgoqIGxp c3AvbmV0L3RyYW1wLmVsICh0cmFtcC1maWxlLW5hbWUtZm9yLW9wZXJhdGlvbik6CiogbGlz cC9uZXQvdHJhbXAtc2guZWwgKHRyYW1wLXNoLWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0KToK KiBsaXNwL25ldC90cmFtcC1zbWIuZWwgKHRyYW1wLXNtYi1maWxlLW5hbWUtaGFuZGxlci1h bGlzdCk6CiogbGlzcC9uZXQvdHJhbXAtc3Vkb2VkaXQuZWwgKHRyYW1wLXN1ZG9lZGl0LWZp bGUtbmFtZS1oYW5kbGVyLWFsaXN0KToKQWRkICdhYmJyZXZpYXRlLWZpbGUtbmFtZScuCgoq IHRlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgKHRyYW1wLXRlc3QwNy1hYmJyZXZpYXRl LWZpbGUtbmFtZSk6Ck5ldyB0ZXN0LgoKKiBkb2MvbGlzcHJlZi9maWxlcy50ZXhpIChNYWdp YyBGaWxlIE5hbWVzKTogTWVudGlvbgonYWJicmV2aWF0ZS1maWxlLW5hbWUnIGluIHRoZSBs aXN0IG9mIG1hZ2ljIGZpbGUgbmFtZSBoYW5kbGVycy4KCiogZXRjL05FV1M6IEFubm91bmNl IHRoZSBjaGFuZ2UuCi0tLQogZG9jL2xpc3ByZWYvZmlsZXMudGV4aSAgICAgICB8ICAgNyAr LQogZXRjL05FV1MgICAgICAgICAgICAgICAgICAgICB8ICAxMSArKysKIGxpc3AvZmlsZXMu ZWwgICAgICAgICAgICAgICAgfCAxNDMgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0KIGxpc3AvbmV0L3RyYW1wLXNoLmVsICAgICAgICAgfCAgIDMgKy0KIGxpc3AvbmV0 L3RyYW1wLXNtYi5lbCAgICAgICAgfCAgIDMgKy0KIGxpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0 LmVsICAgfCAgIDMgKy0KIGxpc3AvbmV0L3RyYW1wLmVsICAgICAgICAgICAgfCAgMTkgKysr KysKIHRlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgfCAgMjUgKysrKysrCiA4IGZpbGVz IGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2MvbGlzcHJlZi9maWxlcy50ZXhpIGIvZG9jL2xpc3ByZWYvZmlsZXMudGV4aQpp bmRleCBkOTM3NzBhMGQyLi40YjExNGJhMTExIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9m aWxlcy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL2ZpbGVzLnRleGkKQEAgLTMzMDgsOCArMzMw OCw4IEBAIE1hZ2ljIEZpbGUgTmFtZXMKIAogQGlmbm90dGV4CiBAbm9pbmRlbnQKLUBjb2Rl e2FjY2Vzcy1maWxlfSwgQGNvZGV7YWRkLW5hbWUtdG8tZmlsZX0sCi1AY29kZXtieXRlLWNv bXBpbGVyLWJhc2UtZmlsZS1uYW1lfSxAKgorQGNvZGV7YWJicmV2aWF0ZS1maWxlLW5hbWV9 LCBAY29kZXthY2Nlc3MtZmlsZX0sCitAY29kZXthZGQtbmFtZS10by1maWxlfSwgQGNvZGV7 Ynl0ZS1jb21waWxlci1iYXNlLWZpbGUtbmFtZX0sQCoKIEBjb2Rle2NvcHktZGlyZWN0b3J5 fSwgQGNvZGV7Y29weS1maWxlfSwKIEBjb2Rle2RlbGV0ZS1kaXJlY3Rvcnl9LCBAY29kZXtk ZWxldGUtZmlsZX0sCiBAY29kZXtkaWZmLWxhdGVzdC1iYWNrdXAtZmlsZX0sCkBAIC0zMzY4 LDcgKzMzNjgsOCBAQCBNYWdpYyBGaWxlIE5hbWVzCiBAaWZ0ZXgKIEBub2luZGVudAogQGZs dXNobGVmdAotQGNvZGV7YWNjZXNzLWZpbGV9LCBAY29kZXthZGQtbmFtZS10by1maWxlfSwK K0Bjb2Rle2FiYnJldmlhdGUtZmlsZS1uYW1lfSwgQGNvZGV7YWNjZXNzLWZpbGV9LAorQGNv ZGV7YWRkLW5hbWUtdG8tZmlsZX0sCiBAY29kZXtieXRlLWNvbUBkaXNjcmV0aW9uYXJ5e317 fXt9cGlsZXItYmFzZS1maWxlLW5hbWV9LAogQGNvZGV7Y29weS1kaXJlY3Rvcnl9LCBAY29k ZXtjb3B5LWZpbGV9LAogQGNvZGV7ZGVsZXRlLWRpcmVjdG9yeX0sIEBjb2Rle2RlbGV0ZS1m aWxlfSwKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggYzM2MmU1NmNl ZS4uMTczODkxMGNiYyAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIvZXRjL05FV1MKQEAg LTQ5Nyw2ICs0OTcsMTQgQEAgVGhlIG5ld2x5IGNyZWF0ZWQgYnVmZmVyIHdpbGwgYmUgZGlz cGxheWVkIHZpYSAnZGlzcGxheS1idWZmZXInLCB3aGljaAogY2FuIGJlIGN1c3RvbWl6ZWQg dGhyb3VnaCB0aGUgdXN1YWwgbWVjaGFuaXNtIG9mICdkaXNwbGF5LWJ1ZmZlci1hbGlzdCcK IGFuZCBmcmllbmRzLgogCisqKiBUcmFtcAorCistLS0KKyoqKiBUcmFtcCBzdXBwb3J0cyBh YmJyZXZpYXRpbmcgcmVtb3RlIGhvbWUgZGlyZWN0b3JpZXMgbm93LgorV2hlbiBjYWxsaW5n ICdhYmJyZXZpYXRlLWZpbGUtbmFtZScgb24gYSBUcmFtcCBmaWxlbmFtZSwgdGhlIHJlc3Vs dAord2lsbCBhYmJyZXZpYXRlIHRoZSB1c2VyJ3MgaG9tZSBkaXJlY3RvcnksIGZvciBleGFt cGxlIGJ5IGFiYnJldmlhdGluZworIi9zc2g6dXNlckBob3N0Oi9ob21lL3VzZXIiIHRvICIv c3NoOnVzZXJAaG9zdDp+Ii4KKwogDAogKiBOZXcgTW9kZXMgYW5kIFBhY2thZ2VzIGluIEVt YWNzIDI5LjEKIApAQCAtNjMyLDYgKzY0MCw5IEBAIFRoaXMgY29udmVuaWVuY2UgZnVuY3Rp b24gaXMgdXNlZnVsIHdoZW4gd3JpdGluZyBjb2RlIHRoYXQgcGFyc2VzCiBmaWxlcyBhdCBy dW4tdGltZSwgYW5kIGFsbG93cyBMaXNwIHByb2dyYW1zIHRvIHJlLXBhcnNlIGZpbGVzIG9u bHkKIHdoZW4gdGhleSBoYXZlIGNoYW5nZWQuCiAKKysrKworKiogJ2FiYnJldmlhdGUtZmls ZS1uYW1lJyBub3cgcmVzcGVjdHMgbWFnaWMgZmlsZSBuYW1lIGhhbmRsZXJzLgorCiAtLS0K ICoqIE5ldyBmdW5jdGlvbiAnZm9udC1oYXMtY2hhci1wJy4KIFRoaXMgY2FuIGJlIHVzZWQg dG8gY2hlY2sgd2hldGhlciBhIHNwZWNpZmljIGZvbnQgaGFzIGEgZ2x5cGggZm9yIGEKZGlm ZiAtLWdpdCBhL2xpc3AvZmlsZXMuZWwgYi9saXNwL2ZpbGVzLmVsCmluZGV4IDM0OTBkMDQy OGEuLjQ5YmYwNmJmYzEgMTAwNjQ0Ci0tLSBhL2xpc3AvZmlsZXMuZWwKKysrIGIvbGlzcC9m aWxlcy5lbApAQCAtNjgsNiArNjgsMzEgQEAgZGlyZWN0b3J5LWFiYnJldi1hbGlzdAogICA6 Z3JvdXAgJ2FiYnJldgogICA6Z3JvdXAgJ2ZpbmQtZmlsZSkKIAorKGRlZnVuIGRpcmVjdG9y eS1hYmJyZXYtbWFrZS1yZWdleHAgKGRpcmVjdG9yeSkKKyAgIkNyZWF0ZSBhIHJlZ2V4cCB0 byBtYXRjaCBESVJFQ1RPUlkgZm9yIGBkaXJlY3RvcnktYWJicmV2LWFsaXN0Jy4iCisgIChs ZXQgKChyZWdleHAKKyAgICAgICAgIDs7IFdlIGluY2x1ZGUgYSBzbGFzaCBhdCB0aGUgZW5k LCB0byBhdm9pZCBzcHVyaW91cworICAgICAgICAgOzsgbWF0Y2hlcyBzdWNoIGFzIGAvdXNy L2Zvb2Jhcicgd2hlbiB0aGUgaG9tZSBkaXIgaXMKKyAgICAgICAgIDs7IGAvdXNyL2Zvbycu CisgICAgICAgICAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgZGlyZWN0b3J5KSAiXFwo L1xcfFxcJ1xcKSIpKSkKKyAgICA7OyBUaGUgdmFsdWUgb2YgcmVnZXhwIGNvdWxkIGJlIG11 bHRpYnl0ZSBvciB1bmlieXRlLiAgSW4gdGhlCisgICAgOzsgbGF0dGVyIGNhc2UsIHdlIG5l ZWQgdG8gZGVjb2RlIGl0LgorICAgIChpZiAobXVsdGlieXRlLXN0cmluZy1wIHJlZ2V4cCkK KyAgICAgICAgcmVnZXhwCisgICAgICAoZGVjb2RlLWNvZGluZy1zdHJpbmcgcmVnZXhwCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93 cy1udCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3V0Zi04CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUtY29kaW5nLXN5c3RlbSkpKSkpCisKKyhk ZWZ1biBkaXJlY3RvcnktYWJicmV2LWFwcGx5IChmaWxlbmFtZSkKKyAgIkFwcGx5IHRoZSBh YmJyZXZpYXRpb25zIGluIGBkaXJlY3RvcnktYWJicmV2LWFsaXN0JyB0byBGSUxFTkFNRS4K K05vdGUgdGhhdCB3aGVuIGNhbGxpbmcgdGhpcywgeW91IHNob3VsZCBzZXQgYGNhc2UtZm9s ZC1zZWFyY2gnIGFzCithcHByb3ByaWF0ZSBmb3IgdGhlIGZpbGVzeXN0ZW0gdXNlZCBmb3Ig RklMRU5BTUUuIgorICAoZG9saXN0IChkaXItYWJicmV2IGRpcmVjdG9yeS1hYmJyZXYtYWxp c3QgZmlsZW5hbWUpCisgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAoY2FyIGRpci1hYmJyZXYp IGZpbGVuYW1lKQorICAgICAgICAgKHNldHEgZmlsZW5hbWUgKGNvbmNhdCAoY2RyIGRpci1h YmJyZXYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgZmls ZW5hbWUgKG1hdGNoLWVuZCAwKSkpKSkpKQorCiAoZGVmY3VzdG9tIG1ha2UtYmFja3VwLWZp bGVzIHQKICAgIk5vbi1uaWwgbWVhbnMgbWFrZSBhIGJhY2t1cCBvZiBhIGZpbGUgdGhlIGZp cnN0IHRpbWUgaXQgaXMgc2F2ZWQuCiBUaGlzIGNhbiBiZSBkb25lIGJ5IHJlbmFtaW5nIHRo ZSBmaWxlIG9yIGJ5IGNvcHlpbmcuCkBAIC0yMDE1LDczICsyMDQwLDU0IEBAIGFiYnJldmlh dGUtZmlsZS1uYW1lCiBzdGFydGVkIEVtYWNzLCBzZXQgYGFiYnJldmlhdGVkLWhvbWUtZGly JyB0byBuaWwgc28gaXQgd2lsbCBiZSByZWNhbGN1bGF0ZWQpLiIKICAgOzsgR2V0IHJpZCBv ZiB0aGUgcHJlZml4ZXMgYWRkZWQgYnkgdGhlIGF1dG9tb3VudGVyLgogICAoc2F2ZS1tYXRj aC1kYXRhICAgICAgICAgICAgICAgICAgICAgIDtGSVhNRTogV2h5PwotICAgIChpZiAoYW5k IGF1dG9tb3VudC1kaXItcHJlZml4Ci0JICAgICAoc3RyaW5nLW1hdGNoIGF1dG9tb3VudC1k aXItcHJlZml4IGZpbGVuYW1lKQotCSAgICAgKGZpbGUtZXhpc3RzLXAgKGZpbGUtbmFtZS1k aXJlY3RvcnkKLQkJCSAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSAoMS0gKG1hdGNoLWVuZCAw KSkpKSkpCi0JKHNldHEgZmlsZW5hbWUgKHN1YnN0cmluZyBmaWxlbmFtZSAoMS0gKG1hdGNo LWVuZCAwKSkpKSkKLSAgICA7OyBBdm9pZCB0cmVhdGluZyAvaG9tZS9mb28gYXMgL2hvbWUv Rm9vIGR1cmluZyBgficgc3Vic3RpdHV0aW9uLgotICAgIChsZXQgKChjYXNlLWZvbGQtc2Vh cmNoIChmaWxlLW5hbWUtY2FzZS1pbnNlbnNpdGl2ZS1wIGZpbGVuYW1lKSkpCi0gICAgICA7 OyBJZiBhbnkgZWx0IG9mIGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgbWF0Y2hlcyB0aGlzIG5h bWUsCi0gICAgICA7OyBhYmJyZXZpYXRlIGFjY29yZGluZ2x5LgotICAgICAgKGRvbGlzdCAo ZGlyLWFiYnJldiBkaXJlY3RvcnktYWJicmV2LWFsaXN0KQotCShpZiAoc3RyaW5nLW1hdGNo IChjYXIgZGlyLWFiYnJldikgZmlsZW5hbWUpCi0JICAgIChzZXRxIGZpbGVuYW1lCi0JCSAg KGNvbmNhdCAoY2RyIGRpci1hYmJyZXYpCi0JCQkgIChzdWJzdHJpbmcgZmlsZW5hbWUgKG1h dGNoLWVuZCAwKSkpKSkpCi0gICAgICA7OyBDb21wdXRlIGFuZCBzYXZlIHRoZSBhYmJyZXZp YXRlZCBob21lZGlyIG5hbWUuCi0gICAgICA7OyBXZSBkZWZlciBjb21wdXRpbmcgdGhpcyB1 bnRpbCB0aGUgZmlyc3QgdGltZSBpdCdzIG5lZWRlZCwgdG8KLSAgICAgIDs7IGdpdmUgdGlt ZSBmb3IgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCB0byBiZSBzZXQgcHJvcGVybHkuCi0gICAg ICA7OyBXZSBpbmNsdWRlIGEgc2xhc2ggYXQgdGhlIGVuZCwgdG8gYXZvaWQgc3B1cmlvdXMg bWF0Y2hlcwotICAgICAgOzsgc3VjaCBhcyBgL3Vzci9mb29iYXInIHdoZW4gdGhlIGhvbWUg ZGlyIGlzIGAvdXNyL2ZvbycuCi0gICAgICAodW5sZXNzIGFiYnJldmlhdGVkLWhvbWUtZGly Ci0gICAgICAgIChwdXQgJ2FiYnJldmlhdGVkLWhvbWUtZGlyICdob21lIChleHBhbmQtZmls ZS1uYW1lICJ+IikpCi0gICAgICAgIChzZXRxIGFiYnJldmlhdGVkLWhvbWUtZGlyCi0gICAg ICAgICAgICAgIChsZXQqICgoYWJicmV2aWF0ZWQtaG9tZS1kaXIgIlxcYFxcJy4iKSA7SW1w b3NzaWJsZSByZWdleHAuCi0gICAgICAgICAgICAgICAgICAgICAocmVnZXhwCi0gICAgICAg ICAgICAgICAgICAgICAgKGNvbmNhdCAiXFxgIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHJlZ2V4cC1xdW90ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChh YmJyZXZpYXRlLWZpbGUtbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Z2V0ICdhYmJyZXZpYXRlZC1ob21lLWRpciAnaG9tZSkpKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlxcKC9cXHxcXCdcXCkiKSkpCi0gICAgICAgICAgICAgICAgOzsgRGVw ZW5kaW5nIG9uIHdoZXRoZXIgZGVmYXVsdC1kaXJlY3RvcnkgZG9lcyBvcgotICAgICAgICAg ICAgICAgIDs7IGRvZXNuJ3QgaW5jbHVkZSBub24tQVNDSUkgY2hhcmFjdGVycywgdGhlIHZh bHVlCi0gICAgICAgICAgICAgICAgOzsgb2YgYWJicmV2aWF0ZWQtaG9tZS1kaXIgY291bGQg YmUgbXVsdGlieXRlIG9yCi0gICAgICAgICAgICAgICAgOzsgdW5pYnl0ZS4gIEluIHRoZSBs YXR0ZXIgY2FzZSwgd2UgbmVlZCB0byBkZWNvZGUKLSAgICAgICAgICAgICAgICA7OyBpdC4g IE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgdGhlCi0gICAgICAgICAg ICAgICAgOzsgZmlyc3QgdGltZSAoZnJvbSBzdGFydHVwLmVsKSB3aGVuCi0gICAgICAgICAg ICAgICAgOzsgbG9jYWxlLWNvZGluZy1zeXN0ZW0gaXMgYWxyZWFkeSBzZXQgdXAuCi0gICAg ICAgICAgICAgICAgKGlmIChtdWx0aWJ5dGUtc3RyaW5nLXAgcmVnZXhwKQotICAgICAgICAg ICAgICAgICAgICByZWdleHAKLSAgICAgICAgICAgICAgICAgIChkZWNvZGUtY29kaW5nLXN0 cmluZyByZWdleHAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo aWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAndXRmLTgKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxvY2FsZS1jb2Rpbmctc3lzdGVtKSkpKSkpCi0KLSAgICAg IDs7IElmIEZJTEVOQU1FIHN0YXJ0cyB3aXRoIHRoZSBhYmJyZXZpYXRlZCBob21lZGlyLAot ICAgICAgOzsgYW5kIH4gaGFzbid0IGNoYW5nZWQgc2luY2UgYWJicmV2aWF0ZWQtaG9tZS1k aXIgd2FzIHNldCwKLSAgICAgIDs7IG1ha2UgaXQgc3RhcnQgd2l0aCBgficgaW5zdGVhZC4K LSAgICAgIDs7IElmIH4gaGFzIGNoYW5nZWQsIHdlIGlnbm9yZSBhYmJyZXZpYXRlZC1ob21l LWRpciByYXRoZXIgdGhhbgotICAgICAgOzsgaW52YWxpZGF0aW5nIGl0LCBvbiB0aGUgYXNz dW1wdGlvbiB0aGF0IGEgY2hhbmdlIGluIEhPTUUKLSAgICAgIDs7IGlzIGxpa2VseSB0ZW1w b3JhcnkgKGVnIGZvciB0ZXN0aW5nKS4KLSAgICAgIDs7IEZJWE1FIElzIGl0IGV2ZW4gd29y dGggY2FjaGluZyBhYmJyZXZpYXRlZC1ob21lLWRpcj8KLSAgICAgIDs7IFJlZjogaHR0cHM6 Ly9kZWJidWdzLmdudS5vcmcvMTk2NTcjMjAKLSAgICAgIChsZXQgKG1iMSkKLSAgICAgICAg KGlmIChhbmQgKHN0cmluZy1tYXRjaCBhYmJyZXZpYXRlZC1ob21lLWRpciBmaWxlbmFtZSkK LSAgICAgICAgICAgICAgICAgKHNldHEgbWIxIChtYXRjaC1iZWdpbm5pbmcgMSkpCi0JICAg ICAgICAgOzsgSWYgdGhlIGhvbWUgZGlyIGlzIGp1c3QgLywgZG9uJ3QgY2hhbmdlIGl0Lgot CSAgICAgICAgIChub3QgKGFuZCAoPSAobWF0Y2gtZW5kIDApIDEpCi0JCQkgICAoPSAoYXJl ZiBmaWxlbmFtZSAwKSA/LykpKQotCSAgICAgICAgIDs7IE1TLURPUyByb290IGRpcmVjdG9y aWVzIGNhbiBjb21lIHdpdGggYSBkcml2ZSBsZXR0ZXI7Ci0JICAgICAgICAgOzsgTm92ZWxs IE5ldHdhcmUgYWxsb3dzIGRyaXZlIGxldHRlcnMgYmV5b25kIGBaOicuCi0JICAgICAgICAg KG5vdCAoYW5kIChtZW1xIHN5c3RlbS10eXBlICcobXMtZG9zIHdpbmRvd3MtbnQgY3lnd2lu KSkKLQkJCSAgIChzdHJpbmctbWF0Y2ggIlxcYFthLXpBLWBdOi9cXCciIGZpbGVuYW1lKSkp Ci0gICAgICAgICAgICAgICAgIChlcXVhbCAoZ2V0ICdhYmJyZXZpYXRlZC1ob21lLWRpciAn aG9tZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChleHBhbmQtZmlsZS1uYW1lICJ+Iikp KQotCSAgICAoc2V0cSBmaWxlbmFtZQotCQkgIChjb25jYXQgIn4iCi0JCQkgIChzdWJzdHJp bmcgZmlsZW5hbWUgbWIxKSkpKQotICAgICAgICBmaWxlbmFtZSkpKSkKKyAgICAoaWYtbGV0 ICgoaGFuZGxlciAoZmluZC1maWxlLW5hbWUtaGFuZGxlciBmaWxlbmFtZSAnYWJicmV2aWF0 ZS1maWxlLW5hbWUpKSkKKyAgICAgICAgKGZ1bmNhbGwgaGFuZGxlciAnYWJicmV2aWF0ZS1m aWxlLW5hbWUgZmlsZW5hbWUpCisgICAgICAoaWYgKGFuZCBhdXRvbW91bnQtZGlyLXByZWZp eAorICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCBhdXRvbW91bnQtZGlyLXByZWZpeCBm aWxlbmFtZSkKKyAgICAgICAgICAgICAgIChmaWxlLWV4aXN0cy1wIChmaWxlLW5hbWUtZGly ZWN0b3J5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxl bmFtZSAoMS0gKG1hdGNoLWVuZCAwKSkpKSkpCisgICAgICAgICAgKHNldHEgZmlsZW5hbWUg KHN1YnN0cmluZyBmaWxlbmFtZSAoMS0gKG1hdGNoLWVuZCAwKSkpKSkKKyAgICAgIDs7IEF2 b2lkIHRyZWF0aW5nIC9ob21lL2ZvbyBhcyAvaG9tZS9Gb28gZHVyaW5nIGB+JyBzdWJzdGl0 dXRpb24uCisgICAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCAoZmlsZS1uYW1lLWNhc2Ut aW5zZW5zaXRpdmUtcCBmaWxlbmFtZSkpKQorICAgICAgICA7OyBJZiBhbnkgZWx0IG9mIGRp cmVjdG9yeS1hYmJyZXYtYWxpc3QgbWF0Y2hlcyB0aGlzIG5hbWUsCisgICAgICAgIDs7IGFi YnJldmlhdGUgYWNjb3JkaW5nbHkuCisgICAgICAgIChzZXRxIGZpbGVuYW1lIChkaXJlY3Rv cnktYWJicmV2LWFwcGx5IGZpbGVuYW1lKSkKKworICAgICAgICA7OyBDb21wdXRlIGFuZCBz YXZlIHRoZSBhYmJyZXZpYXRlZCBob21lZGlyIG5hbWUuCisgICAgICAgIDs7IFdlIGRlZmVy IGNvbXB1dGluZyB0aGlzIHVudGlsIHRoZSBmaXJzdCB0aW1lIGl0J3MgbmVlZGVkLCB0bwor ICAgICAgICA7OyBnaXZlIHRpbWUgZm9yIGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgdG8gYmUg c2V0IHByb3Blcmx5LgorICAgICAgICAodW5sZXNzIGFiYnJldmlhdGVkLWhvbWUtZGlyCisg ICAgICAgICAgKHB1dCAnYWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUgKGV4cGFuZC1maWxl LW5hbWUgIn4iKSkKKyAgICAgICAgICAoc2V0cSBhYmJyZXZpYXRlZC1ob21lLWRpcgorICAg ICAgICAgICAgICAgIChkaXJlY3RvcnktYWJicmV2LW1ha2UtcmVnZXhwCisgICAgICAgICAg ICAgICAgIChsZXQgKChhYmJyZXZpYXRlZC1ob21lLWRpciAiXFxgXFwnLiIpKSA7SW1wb3Nz aWJsZSByZWdleHAuCisgICAgICAgICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1l CisgICAgICAgICAgICAgICAgICAgIChnZXQgJ2FiYnJldmlhdGVkLWhvbWUtZGlyICdob21l KSkpKSkpCisKKyAgICAgICAgOzsgSWYgRklMRU5BTUUgc3RhcnRzIHdpdGggdGhlIGFiYnJl dmlhdGVkIGhvbWVkaXIsCisgICAgICAgIDs7IGFuZCB+IGhhc24ndCBjaGFuZ2VkIHNpbmNl IGFiYnJldmlhdGVkLWhvbWUtZGlyIHdhcyBzZXQsCisgICAgICAgIDs7IG1ha2UgaXQgc3Rh cnQgd2l0aCBgficgaW5zdGVhZC4KKyAgICAgICAgOzsgSWYgfiBoYXMgY2hhbmdlZCwgd2Ug aWdub3JlIGFiYnJldmlhdGVkLWhvbWUtZGlyIHJhdGhlciB0aGFuCisgICAgICAgIDs7IGlu dmFsaWRhdGluZyBpdCwgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBhIGNoYW5nZSBpbiBIT01F CisgICAgICAgIDs7IGlzIGxpa2VseSB0ZW1wb3JhcnkgKGVnIGZvciB0ZXN0aW5nKS4KKyAg ICAgICAgOzsgRklYTUUgSXMgaXQgZXZlbiB3b3J0aCBjYWNoaW5nIGFiYnJldmlhdGVkLWhv bWUtZGlyPworICAgICAgICA7OyBSZWY6IGh0dHBzOi8vZGViYnVncy5nbnUub3JnLzE5NjU3 IzIwCisgICAgICAgIChsZXQgKG1iMSkKKyAgICAgICAgICAoaWYgKGFuZCAoc3RyaW5nLW1h dGNoIGFiYnJldmlhdGVkLWhvbWUtZGlyIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAg IChzZXRxIG1iMSAobWF0Y2gtYmVnaW5uaW5nIDEpKQorICAgICAgICAgICAgICAgICAgIDs7 IElmIHRoZSBob21lIGRpciBpcyBqdXN0IC8sIGRvbid0IGNoYW5nZSBpdC4KKyAgICAgICAg ICAgICAgICAgICAobm90IChhbmQgKD0gKG1hdGNoLWVuZCAwKSAxKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoPSAoYXJlZiBmaWxlbmFtZSAwKSA/LykpKQorICAgICAgICAg ICAgICAgICAgIDs7IE1TLURPUyByb290IGRpcmVjdG9yaWVzIGNhbiBjb21lIHdpdGggYSBk cml2ZSBsZXR0ZXI7CisgICAgICAgICAgICAgICAgICAgOzsgTm92ZWxsIE5ldHdhcmUgYWxs b3dzIGRyaXZlIGxldHRlcnMgYmV5b25kIGBaOicuCisgICAgICAgICAgICAgICAgICAgKG5v dCAoYW5kIChtZW1xIHN5c3RlbS10eXBlICcobXMtZG9zIHdpbmRvd3MtbnQgY3lnd2luKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCAiXFxgW2EtekEt YF06L1xcJyIgZmlsZW5hbWUpKSkKKyAgICAgICAgICAgICAgICAgICAoZXF1YWwgKGdldCAn YWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAg IChleHBhbmQtZmlsZS1uYW1lICJ+IikpKQorICAgICAgICAgICAgICAoc2V0cSBmaWxlbmFt ZQorICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJ+IgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzdWJzdHJpbmcgZmlsZW5hbWUgbWIxKSkpKQorICAgICAgICAgIGZpbGVu YW1lKSkpKSkKIAogKGRlZnVuIGZpbmQtYnVmZmVyLXZpc2l0aW5nIChmaWxlbmFtZSAmb3B0 aW9uYWwgcHJlZGljYXRlKQogICAiUmV0dXJuIHRoZSBidWZmZXIgdmlzaXRpbmcgZmlsZSBG SUxFTkFNRSAoYSBzdHJpbmcpLgpAQCAtNzgzNiwxMCArNzg0MiwxMSBAQCBmaWxlLW5hbWUt bm9uLXNwZWNpYWwKIAk7OyBHZXQgYSBsaXN0IG9mIHRoZSBpbmRpY2VzIG9mIHRoZSBhcmdz IHRoYXQgYXJlIGZpbGUgbmFtZXMuCiAJKGZpbGUtYXJnLWluZGljZXMKIAkgKGNkciAob3Ig KGFzc3Egb3BlcmF0aW9uCi0JCQknKDs7IFRoZSBmaXJzdCBzZXZlbiBhcmUgc3BlY2lhbCBi ZWNhdXNlIHRoZXkKKwkJCScoOzsgVGhlIGZpcnN0IGVpZ2h0IGFyZSBzcGVjaWFsIGJlY2F1 c2UgdGhleQogCQkJICA7OyByZXR1cm4gYSBmaWxlIG5hbWUuICBXZSB3YW50IHRvIGluY2x1 ZGUKIAkJCSAgOzsgdGhlIC86IGluIHRoZSByZXR1cm4gdmFsdWUuICBTbyBqdXN0CiAJCQkg IDs7IGF2b2lkIHN0cmlwcGluZyBpdCBpbiB0aGUgZmlyc3QgcGxhY2UuCisgICAgICAgICAg ICAgICAgICAgICAgICAgIChhYmJyZXZpYXRlLWZpbGUtbmFtZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGRpcmVjdG9yeS1maWxlLW5hbWUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIChleHBhbmQtZmlsZS1uYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAo ZmlsZS1uYW1lLWFzLWRpcmVjdG9yeSkKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1wLXNo LmVsIGIvbGlzcC9uZXQvdHJhbXAtc2guZWwKaW5kZXggYzYxMDI1YTg2Yi4uYjgzNTY5ZjNk ZSAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAtc2guZWwKKysrIGIvbGlzcC9uZXQvdHJh bXAtc2guZWwKQEAgLTk0Miw3ICs5NDIsOCBAQCB0cmFtcC12Yy1yZWdpc3RlcmVkLXJlYWQt ZmlsZS1uYW1lcwogOzsgTmV3IGhhbmRsZXJzIHNob3VsZCBiZSBhZGRlZCBoZXJlLgogOzs7 IyMjdHJhbXAtYXV0b2xvYWQKIChkZWZjb25zdCB0cmFtcC1zaC1maWxlLW5hbWUtaGFuZGxl ci1hbGlzdAotICAnKChhY2Nlc3MtZmlsZSAuIHRyYW1wLWhhbmRsZS1hY2Nlc3MtZmlsZSkK KyAgJygoYWJicmV2aWF0ZS1maWxlLW5hbWUgLiB0cmFtcC1oYW5kbGUtYWJicmV2aWF0ZS1m aWxlLW5hbWUpCisgICAgKGFjY2Vzcy1maWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vzcy1maWxl KQogICAgIChhZGQtbmFtZS10by1maWxlIC4gdHJhbXAtc2gtaGFuZGxlLWFkZC1uYW1lLXRv LWZpbGUpCiAgICAgOzsgYGJ5dGUtY29tcGlsZXItYmFzZS1maWxlLW5hbWUnIHBlcmZvcm1l ZCBieSBkZWZhdWx0IGhhbmRsZXIuCiAgICAgKGNvcHktZGlyZWN0b3J5IC4gdHJhbXAtc2gt aGFuZGxlLWNvcHktZGlyZWN0b3J5KQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtc21i LmVsIGIvbGlzcC9uZXQvdHJhbXAtc21iLmVsCmluZGV4IDBiMjUxNjQ5MDIuLjI0MTE5NTM5 ZGIgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLXNtYi5lbAorKysgYi9saXNwL25ldC90 cmFtcC1zbWIuZWwKQEAgLTIyMiw3ICsyMjIsOCBAQCB0cmFtcC1zbWItYWN0aW9ucy1zZXQt YWNsCiA7OyBOZXcgaGFuZGxlcnMgc2hvdWxkIGJlIGFkZGVkIGhlcmUuCiA7OzsjIyN0cmFt cC1hdXRvbG9hZAogKGRlZmNvbnN0IHRyYW1wLXNtYi1maWxlLW5hbWUtaGFuZGxlci1hbGlz dAotICAnKChhY2Nlc3MtZmlsZSAuIHRyYW1wLWhhbmRsZS1hY2Nlc3MtZmlsZSkKKyAgJygo YWJicmV2aWF0ZS1maWxlLW5hbWUgLiB0cmFtcC1oYW5kbGUtYWJicmV2aWF0ZS1maWxlLW5h bWUpCisgICAgKGFjY2Vzcy1maWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vzcy1maWxlKQogICAg IChhZGQtbmFtZS10by1maWxlIC4gdHJhbXAtc21iLWhhbmRsZS1hZGQtbmFtZS10by1maWxl KQogICAgIDs7IGBieXRlLWNvbXBpbGVyLWJhc2UtZmlsZS1uYW1lJyBwZXJmb3JtZWQgYnkg ZGVmYXVsdCBoYW5kbGVyLgogICAgIChjb3B5LWRpcmVjdG9yeSAuIHRyYW1wLXNtYi1oYW5k bGUtY29weS1kaXJlY3RvcnkpCmRpZmYgLS1naXQgYS9saXNwL25ldC90cmFtcC1zdWRvZWRp dC5lbCBiL2xpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0LmVsCmluZGV4IDdjZjBlYTQ1MWQuLmM5 MWJjZWQ2NTYgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0LmVsCisrKyBi L2xpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0LmVsCkBAIC02Myw3ICs2Myw4IEBAIHRyYW1wLXN1 ZG9lZGl0LXN1ZG8tYWN0aW9ucwogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZmNvbnN0 IHRyYW1wLXN1ZG9lZGl0LWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0Ci0gICcoKGFjY2Vzcy1m aWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vzcy1maWxlKQorICAnKChhYmJyZXZpYXRlLWZpbGUt bmFtZSAuIHRyYW1wLWhhbmRsZS1hYmJyZXZpYXRlLWZpbGUtbmFtZSkKKyAgICAoYWNjZXNz LWZpbGUgLiB0cmFtcC1oYW5kbGUtYWNjZXNzLWZpbGUpCiAgICAgKGFkZC1uYW1lLXRvLWZp bGUgLiB0cmFtcC1zdWRvZWRpdC1oYW5kbGUtYWRkLW5hbWUtdG8tZmlsZSkKICAgICAoYnl0 ZS1jb21waWxlci1iYXNlLWZpbGUtbmFtZSAuIGlnbm9yZSkKICAgICAoY29weS1kaXJlY3Rv cnkgLiB0cmFtcC1oYW5kbGUtY29weS1kaXJlY3RvcnkpCmRpZmYgLS1naXQgYS9saXNwL25l dC90cmFtcC5lbCBiL2xpc3AvbmV0L3RyYW1wLmVsCmluZGV4IDg3NmJiYjJjNTQuLjlkNGZh NDg1YjUgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLmVsCisrKyBiL2xpc3AvbmV0L3Ry YW1wLmVsCkBAIC0yNDk1LDYgKzI0OTUsOCBAQCB0cmFtcC1maWxlLW5hbWUtZm9yLW9wZXJh dGlvbgogCSAgICAgIGZpbGUtc3lzdGVtLWluZm8KIAkgICAgICA7OyBFbWFjcyAyOCsgb25s eS4KIAkgICAgICBmaWxlLWxvY2tlZC1wIGxvY2stZmlsZSBtYWtlLWxvY2stZmlsZS1uYW1l IHVubG9jay1maWxlCisJICAgICAgOzsgRW1hY3MgMjkrIG9ubHkuCisJICAgICAgYWJicmV2 aWF0ZS1maWxlLW5hbWUKIAkgICAgICA7OyBUcmFtcCBpbnRlcm5hbCBtYWdpYyBmaWxlIG5h bWUgZnVuY3Rpb24uCiAJICAgICAgdHJhbXAtc2V0LWZpbGUtdWlkLWdpZCkpCiAgICAgKGlm IChmaWxlLW5hbWUtYWJzb2x1dGUtcCAobnRoIDAgYXJncykpCkBAIC0zMjc1LDYgKzMyNzcs MjMgQEAgdHJhbXAtaGFuZGxlLWZpbGUtbG9jYWwtY29weS1ob29rCiAoZGVmdmFyIHRyYW1w LWhhbmRsZS13cml0ZS1yZWdpb24taG9vayBuaWwKICAgIk5vcm1hbCBob29rIHRvIGJlIHJ1 biBhdCB0aGUgZW5kIG9mIGB0cmFtcC0qLWhhbmRsZS13cml0ZS1yZWdpb24nLiIpCiAKKyhk ZWZ1biB0cmFtcC1oYW5kbGUtYWJicmV2aWF0ZS1maWxlLW5hbWUgKGZpbGVuYW1lKQorICAi TGlrZSBgYWJicmV2aWF0ZS1maWxlLW5hbWUnIGZvciBUcmFtcCBmaWxlcy4iCisgIChsZXQq ICgoY2FzZS1mb2xkLXNlYXJjaCAoZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcCBmaWxl bmFtZSkpCisgICAgICAgICAoaG9tZS1kaXIKKyAgICAgICAgICAod2l0aC1wYXJzZWQtdHJh bXAtZmlsZS1uYW1lIGZpbGVuYW1lIG5pbAorICAgICAgICAgICAgKHdpdGgtdHJhbXAtY29u bmVjdGlvbi1wcm9wZXJ0eSB2ICJob21lLWRpcmVjdG9yeSIKKyAgICAgICAgICAgICAgKGRp cmVjdG9yeS1hYmJyZXYtYXBwbHkgKGV4cGFuZC1maWxlLW5hbWUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFtcC1tYWtlLXRyYW1wLWZpbGUtbmFtZSB2 ICJ+IikpKSkpKSkKKyAgICA7OyBJZiBhbnkgZWx0IG9mIGRpcmVjdG9yeS1hYmJyZXYtYWxp c3QgbWF0Y2hlcyB0aGlzIG5hbWUsCisgICAgOzsgYWJicmV2aWF0ZSBhY2NvcmRpbmdseS4K KyAgICAoc2V0cSBmaWxlbmFtZSAoZGlyZWN0b3J5LWFiYnJldi1hcHBseSBmaWxlbmFtZSkp CisgICAgKGlmIChzdHJpbmctbWF0Y2ggKGRpcmVjdG9yeS1hYmJyZXYtbWFrZS1yZWdleHAg aG9tZS1kaXIpIGZpbGVuYW1lKQorICAgICAgICAod2l0aC1wYXJzZWQtdHJhbXAtZmlsZS1u YW1lIGZpbGVuYW1lIG5pbAorICAgICAgICAgICh0cmFtcC1tYWtlLXRyYW1wLWZpbGUtbmFt ZQorICAgICAgICAgICB2IChjb25jYXQgIn4iIChzdWJzdHJpbmcgZmlsZW5hbWUgKG1hdGNo LWJlZ2lubmluZyAxKSkpKSkKKyAgICAgIGZpbGVuYW1lKSkpCisKIChkZWZ1biB0cmFtcC1o YW5kbGUtYWNjZXNzLWZpbGUgKGZpbGVuYW1lIHN0cmluZykKICAgIkxpa2UgYGFjY2Vzcy1m aWxlJyBmb3IgVHJhbXAgZmlsZXMuIgogICAoc2V0cSBmaWxlbmFtZSAoZmlsZS10cnVlbmFt ZSBmaWxlbmFtZSkpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvbmV0L3RyYW1wLXRlc3RzLmVs IGIvdGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5lbAppbmRleCA1MmM2MTU5ZGMxLi42OThk MThiNTI4IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvbmV0L3RyYW1wLXRlc3RzLmVsCisrKyBi L3Rlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwKQEAgLTIyODksNiArMjI4OSwzMSBAQCB0 cmFtcC10ZXN0MDYtZGlyZWN0b3J5LWZpbGUtbmFtZQogCSAgKHNob3VsZCAoc3RyaW5nLWVx dWFsIChmaWxlLW5hbWUtZGlyZWN0b3J5IGZpbGUpIGZpbGUpKQogCSAgKHNob3VsZCAoc3Ry aW5nLWVxdWFsIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGZpbGUpICIiKSkpKSkpKQogCiso ZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDA3LWFiYnJldmlhdGUtZmlsZS1uYW1lICgpCisgICJD aGVjayB0aGF0IFRyYW1wIGFiYnJldmlhdGVzIGZpbGUgbmFtZXMgY29ycmVjdGx5LiIKKyAg KHNraXAtdW5sZXNzICh0cmFtcC0tdGVzdC1lbmFibGVkKSkKKyAgKHNraXAtdW5sZXNzICh0 cmFtcC0tdGVzdC1lbWFjczI5LXApKQorCisgIChsZXQqICgocmVtb3RlLWhvc3QgKGZpbGUt cmVtb3RlLXAgdHJhbXAtdGVzdC10ZW1wb3JhcnktZmlsZS1kaXJlY3RvcnkpKQorICAgICAg ICAgKGhvbWUtZGlyIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgcmVtb3RlLWhvc3QgIn4i KSkpKQorICAgIDs7IENoZWNrIGhvbWUtZGlyIGFiYnJldmlhdGlvbi4KKyAgICAoc2hvdWxk IChlcXVhbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNhdCBob21lLWRpciAiL2Zvby9i YXIiKSkKKyAgICAgICAgICAgICAgICAgICAoY29uY2F0IHJlbW90ZS1ob3N0ICJ+L2Zvby9i YXIiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGFiYnJldmlhdGUtZmlsZS1uYW1lIChjb25j YXQgcmVtb3RlLWhvc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiL25vd2hlcmUvc3BlY2lhbCIpKQorICAgICAgICAgICAgICAgICAgIChj b25jYXQgcmVtb3RlLWhvc3QgIi9ub3doZXJlL3NwZWNpYWwiKSkpCisgICAgOzsgQ2hlY2sg YGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnIGFiYnJldmlhdGlvbi4KKyAgICAobGV0ICgoZGly ZWN0b3J5LWFiYnJldi1hbGlzdAorICAgICAgICAgICBgKCgsKGNvbmNhdCAiXFxgIiAocmVn ZXhwLXF1b3RlIGhvbWUtZGlyKSAiL2ZvbyIpCisgICAgICAgICAgICAgIC4gLChjb25jYXQg aG9tZS1kaXIgIi9mIikpCisgICAgICAgICAgICAgKCwoY29uY2F0ICJcXGAiIChyZWdleHAt cXVvdGUgcmVtb3RlLWhvc3QpICIvbm93aGVyZSIpCisgICAgICAgICAgICAgIC4gLChjb25j YXQgcmVtb3RlLWhvc3QgIi9udyIpKSkpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGFiYnJl dmlhdGUtZmlsZS1uYW1lIChjb25jYXQgaG9tZS1kaXIgIi9mb28vYmFyIikpCisgICAgICAg ICAgICAgICAgICAgICAoY29uY2F0IHJlbW90ZS1ob3N0ICJ+L2YvYmFyIikpKQorICAgICAg KHNob3VsZCAoZXF1YWwgKGFiYnJldmlhdGUtZmlsZS1uYW1lIChjb25jYXQgcmVtb3RlLWhv c3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIvbm93aGVyZS9zcGVjaWFsIikpCisgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IHJl bW90ZS1ob3N0ICIvbncvc3BlY2lhbCIpKSkpKSkKKwogKGVydC1kZWZ0ZXN0IHRyYW1wLXRl c3QwNy1maWxlLWV4aXN0cy1wICgpCiAgICJDaGVjayBgZmlsZS1leGlzdC1wJywgYHdyaXRl LXJlZ2lvbicgYW5kIGBkZWxldGUtZmlsZScuIgogICAoc2tpcC11bmxlc3MgKHRyYW1wLS10 ZXN0LWVuYWJsZWQpKQotLSAKMi4yNS4xCgo= --------------5367A389331408C0FC513C60 Content-Type: text/plain; charset=UTF-8; name="benchmark-results.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark-results.txt" RW1hY3MgMjkgbWFzdGVyCi0tLS0tLS0tLS0tLS0tLQoKRW1wdHkg4oCYZGlyZWN0b3J5LWFi YnJldi1hbGlzdOKAmQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4wODIwOTRzICgwLjAxMjk4 MXMgaW4gMSBHQ3MpClRyYW1wIHwgRWxhcHNlZCB0aW1lOiAwLjU3MDQ0MXMgKDAuMTc1MDEz cyBpbiAxMyBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKA mSAobm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzM0MzIwcyAoMC4xMjkz NTFzIGluIDEwIEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuODM4MzY2cyAoMC4yOTQz MzBzIGluIDIyIEdDcykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN0 4oCZIChhbGwgbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuNTMwMTg3cyAoMC4z MjAxNjVzIGluIDI1IEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuODM2MTkwcyAoMC4y ODUzNzFzIGluIDIyIEdDcykKCjUwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFs aXN04oCZIChubyBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4wODkyMjlzICgw LjQ5MjIyNXMgaW4gMzggR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41ODczNTFzICgw LjY0OTAxNHMgaW4gNTAgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYt YWxpc3TigJkgKGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4yOTIxMDNz ICgwLjY4NzYzMXMgaW4gNTMgR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41OTIyMTBz ICgwLjY1MTA5MHMgaW4gNTAgR0NzKQoKCldpdGggb2xkIHBhdGNoIChmcm9tIE5vdiAxMykK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKRW1wdHkg4oCYZGlyZWN0b3J5LWFiYnJl di1hbGlzdOKAmQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4wNzYxMzZzICgwLjAxMjk0OXMg aW4gMSBHQ3MpClRyYW1wIHwgRWxhcHNlZCB0aW1lOiAwLjUxMDQ0NXMgKDAuMTYwMDUycyBp biAxMiBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAo bm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzQyNTA5cyAoMC4xMzA5MTZz IGluIDEwIEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuNzgwMjAxcyAoMC4yODExMThz IGluIDIxIEdDcykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZ IChhbGwgbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuNTM4MzUzcyAoMC4zMjM4 OThzIGluIDI1IEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuNjk5MjYycyAoMC4yNDU5 NDJzIGluIDE5IEdDcykKCjUwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN0 4oCZIChubyBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4xMDQ3ODZzICgwLjUw MDg4MHMgaW4gMzggR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41MjQ2NjJzICgwLjY0 MjIzNnMgaW4gNDkgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxp c3TigJkgKGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4yOTkxNjBzICgw LjY4Nzg2N3MgaW4gNTMgR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41MTk4MjlzICgw LjY1MTY5MXMgaW4gNDcgR0NzKQoKCldpdGggbmV3IHBhdGNoIChmcm9tIE5vdiAxNCkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKRW1wdHkg4oCYZGlyZWN0b3J5LWFiYnJldi1h bGlzdOKAmQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4wNzczODRzICgwLjAxMzA5OHMgaW4g MSBHQ3MpClRyYW1wIHwgRWxhcHNlZCB0aW1lOiAwLjgzOTM3MHMgKDAuMjY3MzEwcyBpbiAy MCBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAobm8g bWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzM4MjU1cyAoMC4xMzE0ODNzIGlu IDEwIEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDEuMDg0NDEzcyAoMC4zNzAyODdzIGlu IDI4IEdDcykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZIChh bGwgbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuNTQ2Mjg1cyAoMC4zMzM1Mjdz IGluIDI1IEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDEuMDM4MzQwcyAoMC4zNTk4NzFz IGluIDI3IEdDcykKCjUwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZ IChubyBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4wOTk0NzNzICgwLjUwMDgz OHMgaW4gMzggR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS44NDg3MDdzICgwLjc0NzYy M3MgaW4gNTYgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3Ti gJkgKGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4zMTM5NjhzICgwLjcw NDIzOHMgaW4gNTMgR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS44MDI1OTNzICgwLjcy NzEwMnMgaW4gNTUgR0NzKQo= --------------5367A389331408C0FC513C60--