From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Feb 2024 00:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 68963@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.170726418812374 (code B ref -1); Wed, 07 Feb 2024 00:04:01 +0000 Received: (at submit) by debbugs.gnu.org; 7 Feb 2024 00:03:08 +0000 Received: from localhost ([127.0.0.1]:55368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXVP8-0003DT-68 for submit@debbugs.gnu.org; Tue, 06 Feb 2024 19:03:08 -0500 Received: from lists.gnu.org ([2001:470:142::17]:53010) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXVP4-0003Cy-OE for submit@debbugs.gnu.org; Tue, 06 Feb 2024 19:03:04 -0500 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 1rXVOl-0000kk-Oa for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:02:44 -0500 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rXVOf-0004Mb-2n for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:02:42 -0500 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-5cdbc4334edso4875006a12.3 for ; Tue, 06 Feb 2024 16:02:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707264155; x=1707868955; darn=gnu.org; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=sQed+nERYSyH8xcNwE7loqstrEblFZoI6Rs93rZB2gk=; b=DaiMy/gQ+VmYFzGDuGn5NZbnJ8CVRoou8Irs7xS0Dl6cJ4qhMkOSoZ0w+QEPImpWvK pDNo1LyhOSvUq2IVz3R0T5qTubWeoRxBQIeTsjwlwL6gwkpvKZa3sY7yf8w3ygRdt2OI RMeQvz8172Rd190lDq5uLA2YobrIa8H0Jek/vfO7oaN/KA6aa9LuJ5OZKryyVCUXOfL3 64G3I5+X3pl4SkY3KaJusQ3vm8V1LTcZjQArXu4Uk8yV/Rw/JL3qrHd2pbE9nQx26gVV YFBUeNwFo9K71Ai5VL8PvBwLmoJD53hq2e0rwFIte9HfazDWO3qdBLXfM3OPztuBoi6I jysA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707264155; x=1707868955; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sQed+nERYSyH8xcNwE7loqstrEblFZoI6Rs93rZB2gk=; b=D5LtmtSh9gXR2i7ymuE5ZH9gME66rYthQm3+VSBSfnuhFLUMLNufPQYH1ivjXP+Qtr 7BUBoarnfP3CYsLyyD7LoQq+aB9/hIrcKKcVQ4KdypK9uM7cT8L47hlI29iN6YX6qANR DcGETC/EPAvDSREkxyCj0b7sEVxz2SB79QiXEbtATVfbaMDsLS/5zdQEPUdJnmU/9eDc iytsT8Pxt741iclaJYoSpZjHuBeCcKxDA76h/TMNcnWYmiAhbPg7YxQBuXTeAXeqdh6y ZKl/upUzDjmHIDbHgM2eHk3GRkAhKycXFE4UKP9y1W9FqVxEckwGtmHOpYDK6l3t0dfp zqRw== X-Gm-Message-State: AOJu0YyqxLnqHqftFHI8a6cAbeillnqBV6MYxxrwIBdBfeyPVbMxVq28 4OMUCKEHQ59UWJ6OGz8d1cFo3P0BOmTKiAIdH9n9bgaygma8LNIcdbb7/p7M X-Google-Smtp-Source: AGHT+IHtt5gLOsW1125UoszV3q1CdlARHKKd3f8+6xvOy+13LrWJtvin2M3uZiyOQYOOzlGMFdmiUw== X-Received: by 2002:a17:90b:3508:b0:296:3ca5:df7b with SMTP id ls8-20020a17090b350800b002963ca5df7bmr1065662pjb.40.1707264155067; Tue, 06 Feb 2024 16:02:35 -0800 (PST) Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id sm16-20020a17090b2e5000b00296aa266ffesm129267pjb.31.2024.02.06.16.02.33 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Feb 2024 16:02:34 -0800 (PST) Content-Type: multipart/mixed; boundary="------------kf40TWkKs0Hp0Bo9JkxrEbjG" Message-ID: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> Date: Tue, 6 Feb 2024 16:02:32 -0800 MIME-Version: 1.0 X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US From: Jim Porter Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=jporterbugs@gmail.com; helo=mail-pg1-x533.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) This is a multi-part message in MIME format. --------------kf40TWkKs0Hp0Bo9JkxrEbjG Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Currently, the Eshell manual lists all the built-in commands in one section, which can make it hard to find the commands related to the topic you care about. Here's a patch to split this into subsections of various (loosely-defined) topics. I welcome any suggestions about the division or the name of the subsections. For example, I split them into "Commands for Directories" and "Commands for Files", but an alternate scheme could be "Commands for Files and Directories" and "Commands for Changing the Current Directory". Here's how I split the commands up in the patch, so you don't have to read through a huge diff: # Commands for Directories cd, dirs, du, ls, mkdir, popd, pushd, pwd, rmdir # Commands for Files cat, cp, diff, ln, mv, rm # Commands for Searching grep, agrep, egrep, fgrep, rgrep, glimpse, info, locate, man, occur # Commands for Variables env, export, set, setq, unset # Commands for Using Other Commands ., addpath, alias, compile, jobs, kill, source, time, wait, which # Miscellaneous Commands basename, clear, clear-scrollback, date, dirname, echo, eshell-debug, exit, history, listify, make, printnl, umask, whoami --------------kf40TWkKs0Hp0Bo9JkxrEbjG Content-Type: text/plain; charset=UTF-8; name="0001-Split-Eshell-built-in-commands-documentation-into-su.patch" Content-Disposition: attachment; filename*0="0001-Split-Eshell-built-in-commands-documentation-into-su.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkZmYzOGI5MzMwNTFiOWE5YTQ5NjgxNDA5M2I1OTg0NjYyY2MyMjU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgNiBGZWIgMjAyNCAxNTo1MzoxNyAtMDgwMApTdWJqZWN0OiBbUEFU Q0hdIFNwbGl0IEVzaGVsbCBidWlsdC1pbiBjb21tYW5kcyBkb2N1bWVudGF0aW9uIGludG8g c3Vic2VjdGlvbnMKCiogZG9jL21pc2MvZXNoZWxsLnRleGkgKEJ1aWx0LWlucyk6IE1vdmUg YnVpbHQtaW4gY29tbWFuZHMgdG8uLi4KKENvbW1hbmRzIGZvciBEaXJlY3RvcmllcywgQ29t bWFuZHMgZm9yIEZpbGVzLCBDb21tYW5kcyBmb3IgU2VhcmNoaW5nKQooQ29tbWFuZHMgZm9y IFZhcmlhYmxlcywgQ29tbWFuZHMgZm9yIFVzaW5nIE90aGVyIENvbW1hbmRzKQooTWlzY2Vs bGFuZW91cyBDb21tYW5kcyk6IC4uLiB0aGVzZS4KLS0tCiBkb2MvbWlzYy9lc2hlbGwudGV4 aSB8IDkyNSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgNDg0IGluc2VydGlvbnMoKyksIDQ0MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhp CmluZGV4IDVkM2U1YzdkYmQ2Li5jM2Q5ZWVhZTUwMyAxMDA2NDQKLS0tIGEvZG9jL21pc2Mv ZXNoZWxsLnRleGkKKysrIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKQEAgLTQ3OSw0NSArNDc5 LDE5IEBAIEJ1aWx0LWlucwogQSBmZXcgY29tbWFuZHMgYXJlIHdyYXBwZXJzIGZvciBtb3Jl IG5pY2hlIEVtYWNzIGZlYXR1cmVzLCBhbmQgY2FuIGJlCiBsb2FkZWQgYXMgcGFydCBvZiB0 aGUgZXNoZWxsLXh0cmEgbW9kdWxlLiAgQHhyZWZ7RXh0ZW5zaW9uIG1vZHVsZXN9LgogCi1A dGFibGUgQGNvZGUKLQotQGl0ZW0gLiBAdmFye2ZpbGV9IFtAdmFye2FyZ3VtZW50fV1AZG90 c3t9Ci1AY21pbmRleCAuCi1Tb3VyY2UgYW4gRXNoZWxsIHNjcmlwdCBuYW1lZCBAdmFye2Zp bGV9IGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LAotcGFzc2luZyBhbnkgQHZhcnthcmd1 bWVudHN9IHRvIHRoZSBzY3JpcHQgKEBweHJlZntTY3JpcHRzfSkuICBUaGlzIGlzCi1ub3Qg dG8gYmUgY29uZnVzZWQgd2l0aCB0aGUgY29tbWFuZCBAY29tbWFuZHtzb3VyY2V9LCB3aGlj aCBzb3VyY2VzIGEKLWZpbGUgaW4gYSBzdWJzaGVsbCBlbnZpcm9ubWVudC4KLQotQGl0ZW0g YWRkcGF0aAotQGl0ZW14IGFkZHBhdGggWy1iXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9Ci1A Y21pbmRleCBhZGRwYXRoCi1BZGRzIGVhY2ggc3BlY2lmaWVkIEB2YXJ7ZGlyZWN0b3J5fSB0 byB0aGUgQGNvZGV7JFBBVEh9IGVudmlyb25tZW50Ci12YXJpYWJsZS4gIEJ5IGRlZmF1bHQs IHRoaXMgYWRkcyB0aGUgZGlyZWN0b3JpZXMgdG8gdGhlIGVuZCBvZgotQGNvZGV7JFBBVEh9 LCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lOyBi eQotcGFzc2luZyBAY29kZXstYn0gb3IgQGNvZGV7LS1iZWdpbn0sIEVzaGVsbCB3aWxsIGlu c3RlYWQgYWRkIHRoZQotZGlyZWN0b3JpZXMgdG8gdGhlIGJlZ2lubmluZy4KLQotV2l0aCBu byBkaXJlY3RvcmllcywgcHJpbnQgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgY3VycmVudGx5 IHN0b3JlZCBpbgotQGNvZGV7JFBBVEh9LgotCi1AaXRlbSBhbGlhcwotQGl0ZW14IGFsaWFz IEB2YXJ7bmFtZX0gW0B2YXJ7Y29tbWFuZH1dCi1AY21pbmRleCBhbGlhcwotRGVmaW5lIGFu IGFsaWFzIG5hbWVkIEB2YXJ7bmFtZX0gYW5kIGV4cGFuZGluZyB0byBAdmFye2NvbW1hbmR9 LAotYWRkaW5nIGl0IHRvIHRoZSBhbGlhc2VzIGZpbGUgKEBweHJlZntBbGlhc2VzfSkuICBJ ZiBAdmFye2NvbW1hbmR9IGlzCi1vbWl0dGVkLCBkZWxldGUgdGhlIGFsaWFzIG5hbWVkIEB2 YXJ7bmFtZX0uICBXaXRoIG5vIGFyZ3VtZW50cyBhdCBhbGwsCi1saXN0IGFsbCB0aGUgY3Vy cmVudGx5LWRlZmluZWQgYWxpYXNlcy4KLQotQGl0ZW0gYmFzZW5hbWUgQHZhcntmaWxlbmFt ZX0KLUBjbWluZGV4IGJhc2VuYW1lCi1SZXR1cm4gQHZhcntmaWxlbmFtZX0gd2l0aG91dCBp dHMgZGlyZWN0b3J5LgorQG1lbnUKKyogQ29tbWFuZHMgZm9yIERpcmVjdG9yaWVzOjoKKyog Q29tbWFuZHMgZm9yIEZpbGVzOjoKKyogQ29tbWFuZHMgZm9yIFNlYXJjaGluZzo6CisqIENv bW1hbmRzIGZvciBWYXJpYWJsZXM6OgorKiBDb21tYW5kcyBmb3IgVXNpbmcgT3RoZXIgQ29t bWFuZHM6OgorKiBNaXNjZWxsYW5lb3VzIENvbW1hbmRzOjoKKyogRGVmaW5pbmcgTmV3IEJ1 aWx0LWluIENvbW1hbmRzOjoKK0BlbmQgbWVudQogCi1AaXRlbSBjYXQgQHZhcntmaWxlfUBk b3Rze30KLUBjbWluZGV4IGNhdAotQ29uY2F0ZW5hdGUgdGhlIGNvbnRlbnRzIG9mIEB2YXJ7 ZmlsZX1zIHRvIHN0YW5kYXJkIG91dHB1dC4gIElmIGluIGEKLXBpcGVsaW5lLCBvciBpZiBh bnkgb2YgdGhlIGZpbGVzIGlzIG5vdCBhIHJlZ3VsYXIgZmlsZSwgZGlyZWN0b3J5LCBvcgot c3ltbGluaywgdGhlbiB0aGlzIGNvbW1hbmQgcmV2ZXJ0cyB0byB0aGUgc3lzdGVtJ3MgZGVm aW5pdGlvbiBvZgotQGNvbW1hbmR7Y2F0fS4KK0Bub2RlIENvbW1hbmRzIGZvciBEaXJlY3Rv cmllcworQHN1YnNlY3Rpb24gQ29tbWFuZHMgZm9yIERpcmVjdG9yaWVzCitAdGFibGUgQGNv ZGUKIAogQGl0ZW0gY2QKIEBpdGVteCBjZCBAdmFye2RpcmVjdG9yeX0KQEAgLTU1OCwxMDQg KzUzMiw2IEBAIEJ1aWx0LWlucwogQGNvZGV7ZXNoZWxsLWxpc3QtZmlsZXMtYWZ0ZXItY2R9 IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuIEBjb21tYW5ke2xzfQogaXMgY2FsbGVkIHdpdGgg YW55IHJlbWFpbmluZyBhcmd1bWVudHMgYWZ0ZXIgY2hhbmdpbmcgZGlyZWN0b3JpZXMuCiAK LUBpdGVtIGNsZWFyIFtAdmFye3Njcm9sbGJhY2t9XQotQGNtaW5kZXggY2xlYXIKLVNjcm9s bHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBFc2hlbGwgd2luZG93IG91dCBvZiBzaWdodCwgbGVh dmluZyBhCi1ibGFuayB3aW5kb3cuICBJZiBAdmFye3Njcm9sbGJhY2t9IGlzIG5vbi1AY29k ZXtuaWx9LCB0aGUgc2Nyb2xsYmFjawotY29udGVudHMgYXJlIGNsZWFyZWQgaW5zdGVhZCwg YXMgd2l0aCBAY29tbWFuZHtjbGVhci1zY3JvbGxiYWNrfS4KLQotQGl0ZW0gY2xlYXItc2Ny b2xsYmFjawotQGNtaW5kZXggY2xlYXItc2Nyb2xsYmFjawotQ2xlYXIgdGhlIHNjcm9sbGJh Y2sgY29udGVudHMgb2YgdGhlIEVzaGVsbCB3aW5kb3cuICBVbmxpa2UgdGhlCi1jb21tYW5k IEBjb21tYW5ke2NsZWFyfSwgdGhpcyBjb21tYW5kIGRlbGV0ZXMgY29udGVudCBpbiB0aGUg RXNoZWxsCi1idWZmZXIuCi0KLUBpdGVtIGNvbXBpbGUgWy1wIHwgLWldIFstbSBAdmFye21v ZGUtbmFtZX1dIEB2YXJ7Y29tbWFuZH1AZG90c3t9Ci1AY21pbmRleCBjb21waWxlCi1SdW4g YW4gZXh0ZXJuYWwgY29tbWFuZCwgc2VuZGluZyBpdHMgb3V0cHV0IHRvIGEgY29tcGlsYXRp b24gYnVmZmVyIGlmCi10aGUgY29tbWFuZCB3b3VsZCBvdXRwdXQgdG8gdGhlIHNjcmVlbiBh bmQgaXMgbm90IHBhcnQgb2YgYSBwaXBlbGluZQotb3Igc3ViY29tbWFuZC4KLQotV2l0aCB0 aGUgQGNvZGV7LXB9IG9yIEBjb2Rley0tcGxhaW59IG9wdGlvbnMsIGFsd2F5cyBzZW5kIHRo ZSBvdXRwdXQKLXRvIHRoZSBFc2hlbGwgYnVmZmVyOyBzaW1pbGFybHksIHdpdGggQGNvZGV7 LWl9IG9yCi1AY29kZXstLWludGVyYWN0aXZlfSwgYWx3YXlzIHNlbmQgdGhlIG91dHB1dCB0 byBhIGNvbXBpbGF0aW9uIGJ1ZmZlci4KLVlvdSBjYW4gYWxzbyBzZXQgdGhlIG1vZGUgb2Yg dGhlIGNvbXBpbGF0aW9uIGJ1ZmZlciB3aXRoIEBjb2Rley1tCi1AdmFye21vZGUtbmFtZX19 IG9yIEBjb2Rley0tbW9kZSBAdmFye21vZGUtbmFtZX19LgotCi1AY29tbWFuZHtjb21waWxl fSBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gZGVmaW5pbmcgYWxpYXNlcywgc28KLXRo YXQgaW50ZXJhY3RpdmVseSwgdGhlIG91dHB1dCBzaG93cyB1cCBpbiBhIGNvbXBpbGF0aW9u IGJ1ZmZlciwgYnV0Ci15b3UgY2FuIHN0aWxsIHBpcGUgdGhlIG91dHB1dCBlbHNld2hlcmUg aWYgZGVzaXJlZC4gIEZvciBleGFtcGxlLCBpZgoteW91IGhhdmUgYSBncmVwLWxpa2UgY29t bWFuZCBvbiB5b3VyIHN5c3RlbSwgeW91IG1pZ2h0IGRlZmluZSBhbiBhbGlhcwotZm9yIGl0 IGxpa2Ugc286IEBzYW1we2FsaWFzIG15Z3JlcCAnY29tcGlsZSAtLW1vZGU9Z3JlcC1tb2Rl IC0tIG15Z3JlcAotJConfS4KLQotQGl0ZW0gY3AgW0B2YXJ7b3B0aW9ufUBkb3Rze31dIEB2 YXJ7c291cmNlfSBAdmFye2Rlc3R9Ci1AaXRlbSBjcCBbQHZhcntvcHRpb259QGRvdHN7fV0g QHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KLUBjbWluZGV4IGNwCi1Db3B5 IHRoZSBmaWxlIEB2YXJ7c291cmNlfSB0byBAdmFye2Rlc3R9IG9yIEB2YXJ7c291cmNlfSBp bnRvCi1AdmFye2RpcmVjdG9yeX0uCi0KLUB2aW5kZXggZXNoZWxsLWNwLW92ZXJ3cml0ZS1m aWxlcwotQHZpbmRleCBlc2hlbGwtY3AtaW50ZXJhY3RpdmUtcXVlcnkKLUlmIEBjb2Rle2Vz aGVsbC1jcC1vdmVyd3JpdGUtZmlsZXN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuCi1AY29t bWFuZHtjcH0gd2lsbCBvdmVyd3JpdGUgZmlsZXMgd2l0aG91dCB3YXJuaW5nLiAgSWYKLUBj b2Rle2VzaGVsbC1jcC1pbnRlcmFjdGl2ZS1xdWVyeX0gaXMgbm9uLUBjb2Rle25pbH0sIHRo ZW4KLUBjb21tYW5ke2NwfSB3aWxsIGFzayBiZWZvcmUgb3ZlcndyaXRpbmcgYW55dGhpbmcu Ci0KLUBjb21tYW5ke2NwfSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKLQotQHRh YmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hcmNoaXZlfQotRXF1aXZh bGVudCB0byBAY29kZXstLW5vLWRlcmVmZXJlbmNlIC0tcHJlc2VydmUgLS1yZWN1cnNpdmV9 LgotCi1AaXRlbSBAY29kZXstZH0sIEBjb2Rley0tbm8tZGVyZWZlcmVuY2V9Ci1Eb24ndCBk ZXJlZmVyZW5jZSBzeW1ib2xpYyBsaW5rcyB3aGVuIGNvcHlpbmc7IGluc3RlYWQsIGNvcHkg dGhlIGxpbmsKLWl0c2VsZi4KLQotQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQot TmV2ZXIgcHJvbXB0IGZvciBjb25maXJtYXRpb24gYmVmb3JlIGNvcHlpbmcgYSBmaWxlLgot Ci1AaXRlbSBAY29kZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9Ci1Qcm9tcHQgZm9yIGNv bmZpcm1hdGlvbiBiZWZvcmUgY29weWluZyBhIGZpbGUgaWYgdGhlIHRhcmdldCBhbHJlYWR5 Ci1leGlzdHMuCi0KLUBpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQotUnVuIHRo ZSBjb21tYW5kLCBidXQgZG9uJ3QgY29weSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlm IHlvdQotd2FudCB0byBwcmV2aWV3IHdoYXQgd291bGQgYmUgcmVtb3ZlZCB3aGVuIGNhbGxp bmcgQGNvbW1hbmR7Y3B9LgotCi1AaXRlbSBAY29kZXstcH0sIEBjb2Rley0tcHJlc2VydmV9 Ci1BdHRlbXB0IHRvIHByZXNlcnZlIGZpbGUgYXR0cmlidXRlcyB3aGVuIGNvcHlpbmcuCi0K LUBpdGVtIEBjb2Rley1yfSwgQGNvZGV7LVJ9LCBAY29kZXstLXJlY3Vyc2l2ZX0KLUNvcHkg YW55IHNwZWNpZmllZCBkaXJlY3RvcmllcyBhbmQgdGhlaXIgY29udGVudHMgcmVjdXJzaXZl bHkuCi0KLUBpdGVtIEBjb2Rley12fSwgQGNvZGV7LS12ZXJib3NlfQotUHJpbnQgdGhlIG5h bWUgb2YgZWFjaCBmaWxlIGJlZm9yZSBjb3B5aW5nIGl0LgotCi1AZW5kIHRhYmxlCi0KLUBp dGVtIGRhdGUgW0B2YXJ7c3BlY2lmaWVkLXRpbWV9IFtAdmFye3pvbmV9XV0KLUBjbWluZGV4 IGRhdGUKLVByaW50IHRoZSBjdXJyZW50IGxvY2FsIHRpbWUgYXMgYSBodW1hbi1yZWFkYWJs ZSBzdHJpbmcuICBUaGlzIGNvbW1hbmQKLWlzIGFuIGFsaWFzIHRvIHRoZSBFbWFjcyBMaXNw IGZ1bmN0aW9uIEBjb2Rle2N1cnJlbnQtdGltZS1zdHJpbmd9Ci0oQHB4cmVme1RpbWUgb2Yg RGF5LCwsIGVsaXNwLCBHTlUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfSkuCi0KLUBp dGVtIGRpZmYgW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7b2xkfSBAdmFye25ld30KLUBj bWluZGV4IGRpZmYKLUNvbXBhcmUgdGhlIGZpbGVzIEB2YXJ7b2xkfSBhbmQgQHZhcntuZXd9 IHVzaW5nIEVtYWNzJ3MgaW50ZXJuYWwKLUBjb2Rle2RpZmZ9IChub3QgdG8gYmUgY29uZnVz ZWQgd2l0aCBAY29kZXtlZGlmZn0pLiAgQHhyZWZ7Q29tcGFyaW5nCi1GaWxlcywgLCAsIGVt YWNzLCBUaGUgR05VIEVtYWNzIE1hbnVhbH0uCi0KLUB2aW5kZXggZXNoZWxsLXBsYWluLWRp ZmYtYmVoYXZpb3IKLUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1kaWZmLWJlaGF2aW9yfSBpcyBu b24tQGNvZGV7bmlsfSwgdGhlbiB0aGlzCi1jb21tYW5kIGRvZXMgbm90IHVzZSBFbWFjcydz IGludGVybmFsIEBjb2Rle2RpZmZ9LiAgVGhpcyBpcyB0aGUgc2FtZQotYXMgdXNpbmcgQHNh bXB7YWxpYXMgZGlmZiAnKmRpZmYgJEBAKid9LgotCi1AaXRlbSBkaXJuYW1lIEB2YXJ7Zmls ZW5hbWV9Ci1AY21pbmRleCBkaXJuYW1lCi1SZXR1cm4gdGhlIGRpcmVjdG9yeSBjb21wb25l bnQgb2YgQHZhcntmaWxlbmFtZX0uCi0KIEBpdGVtIGRpcnMKIEBjbWluZGV4IGRpcnMKIFBy aW50cyB0aGUgZGlyZWN0b3J5IHN0YWNrLiAgRGlyZWN0b3JpZXMgY2FuIGJlIGFkZGVkIG9y IHJlbW92ZWQgZnJvbQpAQCAtNzExLDIzNSArNTg3LDU4IEBAIEJ1aWx0LWlucwogCiBAZW5k IHRhYmxlCiAKLUBpdGVtIGVjaG8gWy1uIHwgLU5dIFtAdmFye2FyZ31dQGRvdHN7fQotQGNt aW5kZXggZWNobwotUHJpbnRzIHRoZSB2YWx1ZSBvZiBlYWNoIEB2YXJ7YXJnfS4gIEJ5IGRl ZmF1bHQsIHRoaXMgcHJpbnRzIGluIGEKLUxpc3AtZnJpZW5kbHkgZmFzaGlvbiAoc28gdGhh dCB0aGUgdmFsdWUgaXMgdXNlZnVsIHRvIGEgTGlzcCBjb21tYW5kCi11c2luZyB0aGUgcmVz dWx0IG9mIEBjb21tYW5ke2VjaG99IGFzIGFuIGFyZ3VtZW50KS4gIElmIGEgc2luZ2xlCi1h cmd1bWVudCBpcyBwYXNzZWQsIEBjb21tYW5ke2VjaG99IHByaW50cyB0aGF0OyBpZiBtdWx0 aXBsZSBhcmd1bWVudHMKLWFyZSBwYXNzZWQsIGl0IHByaW50cyBhIGxpc3Qgb2YgYWxsIHRo ZSBhcmd1bWVudHM7IG90aGVyd2lzZSwgaXQKLXByaW50cyB0aGUgZW1wdHkgc3RyaW5nLgot Ci1AdmluZGV4IGVzaGVsbC1wbGFpbi1lY2hvLWJlaGF2aW9yCi1JZiBAY29kZXtlc2hlbGwt cGxhaW4tZWNoby1iZWhhdmlvcn0gaXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke2VjaG99 Ci13aWxsIHRyeSB0byBiZWhhdmUgbW9yZSBsaWtlIGEgcGxhaW4gc2hlbGwncyBAY29tbWFu ZHtlY2hvfSwgcHJpbnRpbmcKLWVhY2ggYXJndW1lbnQgYXMgYSBzdHJpbmcsIHNlcGFyYXRl ZCBieSBhIHNwYWNlLgotCi1Zb3UgY2FuIGNvbnRyb2wgd2hldGhlciBAY29tbWFuZHtlY2hv fSBvdXRwdXRzIGEgdHJhaWxpbmcgbmV3bGluZQotdXNpbmcgQGNvZGV7LW59IHRvIGRpc2Fi bGUgdGhlIHRyYWlsaW5nIG5ld2xpbmUgKHRoZSBkZWZhdWx0IGJlaGF2aW9yKQotb3IgQGNv ZGV7LU59IHRvIGVuYWJsZSBpdCAodGhlIGRlZmF1bHQgd2hlbgotQGNvZGV7ZXNoZWxsLXBs YWluLWVjaG8tYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9KS4KK0BpdGVtIGxzIFtAdmFy e29wdGlvbn1dQGRvdHN7fSBbQHZhcntmaWxlfV1AZG90c3t9CitAY21pbmRleCBscworTGlz dCBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIEB2YXJ7ZmlsZX0sIGluY2x1ZGluZyB0aGUgY29u dGVudHMgb2YgYW55CitzcGVjaWZpZWQgZGlyZWN0b3JpZXMuICBJZiBAdmFye2ZpbGV9IGlz IHVuc3BlY2lmaWVkLCBsaXN0IHRoZQorY29udGVudHMgb2YgdGhlIGN1cnJlbnQgZGlyZWN0 b3J5LgogCi1AaXRlbSBlbnYgW0B2YXJ7dmFyfT1AdmFye3ZhbHVlfV1AZG90c3t9IFtAdmFy e2NvbW1hbmR9XUBkb3Rze30KLUBjbWluZGV4IGVudgotV2l0aCBubyBhcmd1bWVudHMsIHBy aW50IHRoZSBjdXJyZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4gIElmIHlvdQotcGFzcyBh cmd1bWVudHMgdG8gdGhpcyBjb21tYW5kLCB0aGVuIEBjb21tYW5ke2Vudn0gd2lsbCBleGVj dXRlIHRoZQotYXJndW1lbnRzIGFzIGEgY29tbWFuZC4gIElmIHlvdSBwYXNzIGFueSBpbml0 aWFsIGFyZ3VtZW50cyBvZiB0aGUgZm9ybQotQHNhbXB7QHZhcnt2YXJ9PUB2YXJ7dmFsdWV9 fSwgQGNvbW1hbmR7ZW52fSB3aWxsIGZpcnN0IHNldCBAdmFye3Zhcn0KLXRvIEB2YXJ7dmFs dWV9IGJlZm9yZSBydW5uaW5nIHRoZSBjb21tYW5kLgorQHZpbmRleCBlc2hlbGwtbHMtaW5p dGlhbC1hcmdzCitUaGUgdXNlciBvcHRpb24gQGNvZGV7ZXNoZWxsLWxzLWluaXRpYWwtYXJn c30gY29udGFpbnMgYSBsaXN0IG9mCithcmd1bWVudHMgdG8gaW5jbHVkZSB3aXRoIGFueSBj YWxsIHRvIEBjb21tYW5ke2xzfS4gIEZvciBleGFtcGxlLCB5b3UKK2NhbiBpbmNsdWRlIHRo ZSBvcHRpb24gQG9wdGlvbnstaH0gdG8gYWx3YXlzIHVzZSBhIG1vcmUgaHVtYW4tcmVhZGFi bGUKK2Zvcm1hdC4KIAotQGl0ZW0gZXNoZWxsLWRlYnVnIFtlcnJvciB8IGZvcm0gfCBwcm9j ZXNzXUBkb3Rze30KLUBjbWluZGV4IGVzaGVsbC1kZWJ1ZwotVG9nZ2xlIGRlYnVnZ2luZyBp bmZvcm1hdGlvbiBmb3IgRXNoZWxsIGl0c2VsZi4gIFlvdSBjYW4gcGFzcyB0aGlzCi1jb21t YW5kIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOgorQHZpbmRleCBl c2hlbGwtbHMtdXNlLWNvbG9ycworSWYgQGNvZGV7ZXNoZWxsLWxzLXVzZS1jb2xvcnN9IGlz IG5vbi1AY29kZXtuaWx9LCB0aGUgY29udGVudHMgb2YgYQorZGlyZWN0b3J5IGlzIGNvbG9y LWNvZGVkIGFjY29yZGluZyB0byBmaWxlIHR5cGUgYW5kIHN0YXR1cy4gIFRoZXNlCitjb2xv cnMgYW5kIHRoZSByZWdleHBzIHVzZWQgdG8gaWRlbnRpZnkgdGhlaXIgY29ycmVzcG9uZGlu ZyBmaWxlcyBjYW4KK2JlIGN1c3RvbWl6ZWQgdmlhIEB3e0BrYmR7TS14IGN1c3RvbWl6ZS1n cm91cCBAa2V5e1JFVH0gZXNoZWxsLWxzCitAa2V5e1JFVH19fS4KIAotQGl0ZW1pemUgQGJ1 bGxldAorQGNvbW1hbmR7bHN9IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKIAot QGl0ZW0KLUBjb2Rle2Vycm9yfSwgdG8gZW5hYmxlL2Rpc2FibGUgRXNoZWxsIHRyYXBwaW5n IGVycm9ycyB3aGVuCi1ldmFsdWF0aW5nIGNvbW1hbmRzOworQHRhYmxlIEBhc2lzCiAKLUBp dGVtCi1AY29kZXtmb3JtfSwgdG8gc2hvdy9oaWRlIEVzaGVsbCBjb21tYW5kIGZvcm0gbWFu aXB1bGF0aW9uIGluIHRoZQotYnVmZmVyIEBjb2Rleyplc2hlbGwgbGFzdCBjbWQqfTsgb3IK K0BpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hbGx9CitMaXN0IGFsbCBmaWxlcywgaW5jbHVk aW5nIG9uZXMgc3RhcnRpbmcgd2l0aCBAc2FtcHsufS4KIAotQGl0ZW0KLUBjb2Rle3Byb2Nl c3N9LCB0byBzaG93L2hpZGUgZXh0ZXJuYWwgcHJvY2VzcyBldmVudHMgaW4gdGhlIGJ1ZmZl cgotQGNvZGV7KmVzaGVsbCBsYXN0IGNtZCp9LgorQGl0ZW0gQGNvZGV7LUF9LCBAY29kZXst LWFsbW9zdC1hbGx9CitMaWtlIEBjb2Rley0tYWxsfSwgYnV0IGRvbid0IGxpc3QgdGhlIGN1 cnJlbnQgZGlyZWN0b3J5IChAZmlsZXsufSkgb3IKK3RoZSBwYXJlbnQgZGlyZWN0b3J5IChA ZmlsZXsuLn0pLgogCi1AZW5kIGl0ZW1pemUKK0BpdGVtIEBjb2Rley1jfSwgQGNvZGV7LS1i eS1jdGltZX0KK1NvcnQgZmlsZXMgYnkgbGFzdCBzdGF0dXMgY2hhbmdlIHRpbWUsIHdpdGgg bmV3ZXN0IGZpbGVzIGZpcnN0LgogCi1AaXRlbSBleGl0Ci1AY21pbmRleCBleGl0Ci1Admlu ZGV4IGVzaGVsbC1raWxsLW9uLWV4aXQKLUV4aXQgRXNoZWxsIGFuZCBzYXZlIHRoZSBoaXN0 b3J5LiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGtpbGxzIHRoZQotRXNoZWxsIGJ1ZmZl ciwgYnV0IGlmIEBjb2Rle2VzaGVsbC1raWxsLW9uLWV4aXR9IGlzIEBjb2Rle25pbH0sIHRo ZW4KLXRoZSBidWZmZXIgaXMgbWVyZWx5IGJ1cmllZCBpbnN0ZWFkLgorQGl0ZW0gQGNvZGV7 LUN9CitMaXN0IGVudHJpZXMgYnkgY29sdW1ucy4KIAotQGl0ZW0gZXhwb3J0IFtAdmFye25h bWV9PUB2YXJ7dmFsdWV9XUBkb3Rze30KLUBjbWluZGV4IGV4cG9ydAotU2V0IGVudmlyb25t ZW50IHZhcmlhYmxlcyB1c2luZyBpbnB1dCBsaWtlIEJhc2gncyBAY29tbWFuZHtleHBvcnR9 LCBhcwotaW4gQHNhbXB7ZXhwb3J0IEB2YXJ7dmFyMX09QHZhcnt2YWwxfSBAdmFye3ZhcjJ9 PUB2YXJ7dmFsMn0gQGRvdHN7fX0uCitAaXRlbSBAY29kZXstZH0sIEBjb2Rley0tZGlyZWN0 b3J5fQorTGlzdCBkaXJlY3RvcnkgZW50cmllcyBpbnN0ZWFkIG9mIHRoZWlyIGNvbnRlbnRz LgogCi1AaXRlbSBncmVwIFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5kZXggZ3JlcAotQGl0 ZW14IGFncmVwIFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5kZXggYWdyZXAKLUBpdGVteCBl Z3JlcCBbQHZhcnthcmd9XUBkb3Rze30KLUBjbWluZGV4IGVncmVwCi1AaXRlbXggZmdyZXAg W0B2YXJ7YXJnfV1AZG90c3t9Ci1AY21pbmRleCBmZ3JlcAotQGl0ZW14IHJncmVwIFtAdmFy e2FyZ31dQGRvdHN7fQotQGNtaW5kZXggcmdyZXAKLUBpdGVteCBnbGltcHNlIFtAdmFye2Fy Z31dQGRvdHN7fQotQGNtaW5kZXggZ2xpbXBzZQotVGhlIEBjb21tYW5ke2dyZXB9IGNvbW1h bmRzIGFyZSBjb21wYXRpYmxlIHdpdGggR05VIEBjb21tYW5ke2dyZXB9LAotYnV0IG9wZW4g YSBjb21waWxhdGlvbiBidWZmZXIgaW4gQGNvZGV7Z3JlcC1tb2RlfSBpbnN0ZWFkLgotQHhy ZWZ7R3JlcCBTZWFyY2hpbmcsICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9Lgor QGl0ZW0gQGNvZGV7LWh9LCBAY29kZXstLWh1bWFuLXJlYWRhYmxlfQorUHJpbnQgc2l6ZXMg aW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGJpbmFyeSBwcmVmaXhlcyAoc28gMSBL QiBpcworMTAyNCBieXRlcykuCiAKLUB2aW5kZXggZXNoZWxsLXBsYWluLWdyZXAtYmVoYXZp b3IKLUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1ncmVwLWJlaGF2aW9yfSBpcyBub24tQGNvZGV7 bmlsfSwgdGhlbiB0aGVzZQotY29tbWFuZHMgZG8gbm90IHVzZSBvcGVuIGEgY29tcGlsYXRp b24gYnVmZmVyLCBpbnN0ZWFkIHByaW50aW5nIG91dHB1dAotdG8gRXNoZWxsJ3MgYnVmZmVy LiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB1c2luZyBAc2FtcHthbGlhcyBncmVwICcqZ3JlcAot JEBAKid9LCB0aG91Z2ggdGhpcyBzZXR0aW5nIGFwcGxpZXMgdG8gYWxsIG9mIHRoZSBidWls dC1pbiBjb21tYW5kcwotZm9yIHdoaWNoIHlvdSB3b3VsZCBuZWVkIHRvIGNyZWF0ZSBhIHNl cGFyYXRlIGFsaWFzLgorQGl0ZW0gQGNvZGV7LUh9LCBAY29kZXstLXNpfQorUHJpbnQgc2l6 ZXMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGRlY2ltYWwgcHJlZml4ZXMgKHNv IDEgS0IKK2lzIDEwMDAgYnl0ZXMpLgogCi1AaXRlbSBoaXN0b3J5IFtAdmFye259XQotQGl0 ZW14IGhpc3RvcnkgWy1hcnddIFtAdmFye2ZpbGVuYW1lfV0KLUBjbWluZGV4IGhpc3RvcnkK LVByaW50cyBFc2hlbGwncyBpbnB1dCBoaXN0b3J5LiAgV2l0aCBhIG51bWVyaWMgYXJndW1l bnQgQHZhcntufSwgdGhpcwotY29tbWFuZCBwcmludHMgdGhlIEB2YXJ7bn0gbW9zdCByZWNl bnQgaXRlbXMgaW4gdGhlIGhpc3RvcnkuCi1BbHRlcm5hdGVseSwgeW91IGNhbiBzcGVjaWZ5 IHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKK0BpdGVtIEBjb2Rley1JQHZhcntwYXR0ZXJufX0s IEBjb2Rley0taWdub3JlPUB2YXJ7cGF0dGVybn19CitEb24ndCBsaXN0IGRpcmVjdG9yeSBl bnRyaWVzIG1hdGNoaW5nIEB2YXJ7cGF0dGVybn0uCiAKLUB0YWJsZSBAYXNpcwotCi1AaXRl bSBAY29kZXstYX0sIEBjb2Rley0tYXBwZW5kfQotQXBwZW5kIG5ldyBoaXN0b3J5IGl0ZW1z IHRvIHRoZSBoaXN0b3J5IGZpbGUuCi0KLUBpdGVtIEBjb2Rley1yfSwgQGNvZGV7LS1yZWFk fQotUmVhZCBoaXN0b3J5IGl0ZW1zIGZyb20gdGhlIGhpc3RvcnkgZmlsZSBhbmQgYXBwZW5k IHRoZW0gdG8gdGhlCi1jdXJyZW50IHNoZWxsJ3MgaGlzdG9yeS4KLQotQGl0ZW0gQGNvZGV7 LXd9LCBAY29kZXstLXdyaXRlfQotV3JpdGUgdGhlIGN1cnJlbnQgaGlzdG9yeSBsaXN0IHRv IHRoZSBoaXN0b3J5IGZpbGUuCi0KLUBlbmQgdGFibGUKLQotQGl0ZW0gaW5mbyBbQHZhcntt YW51YWx9IFtAdmFye2l0ZW19XUBkb3Rze31dCi1AY21pbmRleCBpbmZvCi1Ccm93c2UgdGhl IGF2YWlsYWJsZSBJbmZvIGRvY3VtZW50YXRpb24uICBXaXRoIG5vIGFyZ3VtZW50cywgYnJv d3NlCi10aGUgdG9wLWxldmVsIG1lbnUuICBPdGhlcndpc2UsIHNob3cgdGhlIG1hbnVhbCBm b3IgQHZhcnttYW51YWx9LAotc2VsZWN0aW5nIHRoZSBtZW51IGVudHJ5IGZvciBAdmFye2l0 ZW19LgotCi1UaGlzIGNvbW1hbmQgaXMgdGhlIHNhbWUgYXMgdGhlIGV4dGVybmFsIEBjb21t YW5ke2luZm99IGNvbW1hbmQsIGJ1dAotdXNlcyBFbWFjcydzIGludGVybmFsIEluZm8gcmVh ZGVyLiAgQHhyZWZ7TWlzYyBIZWxwLCAsICwgZW1hY3MsIFRoZQotR05VIEVtYWNzIE1hbnVh bH0uCi0KLUBpdGVtIGpvYnMKLUBjbWluZGV4IGpvYnMKLUxpc3Qgc3VicHJvY2Vzc2VzIG9m IHRoZSBFbWFjcyBwcm9jZXNzLCBpZiBhbnksIHVzaW5nIHRoZSBmdW5jdGlvbgotQGNvZGV7 bGlzdC1wcm9jZXNzZXN9LgotCi1AaXRlbSBraWxsIFstQHZhcntzaWduYWx9XSBbQHZhcntw aWR9IHwgQHZhcntwcm9jZXNzfV0KLUBjbWluZGV4IGtpbGwKLUtpbGwgcHJvY2Vzc2VzLiAg VGFrZXMgYSBQSUQgb3IgYSBwcm9jZXNzIG9iamVjdCBhbmQgYW4gb3B0aW9uYWwKLUB2YXJ7 c2lnbmFsfSBzcGVjaWZpZXIgd2hpY2ggY2FuIGVpdGhlciBiZSBhIG51bWJlciBvciBhIHNp Z25hbCBuYW1lLgotCi1AaXRlbSBsaXN0aWZ5IFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5k ZXggbGlzdGlmeQotUmV0dXJuIHRoZSBhcmd1bWVudHMgYXMgYSBzaW5nbGUgbGlzdC4gIFdp dGggYSBzaW5nbGUgYXJndW1lbnQsIHJldHVybgotaXQgYXMtaXMgaWYgaXQncyBhbHJlYWR5 IGEgbGlzdCwgb3Igb3RoZXJ3aXNlIHdyYXAgaXQgaW4gYSBsaXN0LiAgV2l0aAotbXVsdGlw bGUgYXJndW1lbnRzLCByZXR1cm4gYSBsaXN0IG9mIGFsbCBvZiB0aGVtLgotCi1AaXRlbSBs biBbQHZhcntvcHRpb259XUBkb3Rze30gQHZhcnt0YXJnZXR9IFtAdmFye2xpbmstbmFtZX1d Ci1AaXRlbXggbG4gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7dGFyZ2V0fUBkb3Rze30g QHZhcntkaXJlY3Rvcnl9Ci1AY21pbmRleCBsbgotQ3JlYXRlIGEgbGluayB0byB0aGUgc3Bl Y2lmaWVkIEB2YXJ7dGFyZ2V0fSBuYW1lZCBAdmFye2xpbmstbmFtZX0gb3IKLWNyZWF0ZSBs aW5rcyB0byBtdWx0aXBsZSBAdmFye3RhcmdldHN9IGluIEB2YXJ7ZGlyZWN0b3J5fS4KLQot QHZpbmRleCBlc2hlbGwtbG4tb3ZlcndyaXRlLWZpbGVzCi1AdmluZGV4IGVzaGVsbC1sbi1p bnRlcmFjdGl2ZS1xdWVyeQotSWYgQGNvZGV7ZXNoZWxsLWxuLW92ZXJ3cml0ZS1maWxlc30g aXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke2xufQotd2lsbCBvdmVyd3JpdGUgZmlsZXMg d2l0aG91dCB3YXJuaW5nLiAgSWYKLUBjb2Rle2VzaGVsbC1sbi1pbnRlcmFjdGl2ZS1xdWVy eX0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4KLUBjb21tYW5ke2xufSB3aWxsIGFzayBiZWZv cmUgb3ZlcndyaXRpbmcgZmlsZXMuCi0KLUBjb21tYW5ke2xufSBhY2NlcHRzIHRoZSBmb2xs b3dpbmcgb3B0aW9uczoKLQotQHRhYmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1mfSwgQGNv ZGV7LS1mb3JjZX0KLU5ldmVyIHByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBsaW5r aW5nIGEgdGFyZ2V0LgotCi1AaXRlbSBAY29kZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9 Ci1Qcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgbGlua2luZyB0byBhbiBpdGVtIGlm IHRoZSBzb3VyY2UKLWFscmVhZHkgZXhpc3RzLgotCi1AaXRlbSBAY29kZXstbn0sIEBjb2Rl ey0tcHJldmlld30KLVJ1biB0aGUgY29tbWFuZCwgYnV0IGRvbid0IG1vdmUgYW55dGhpbmcu ICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UKLXdhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJl IGxpbmtlZCB3aGVuIGNhbGxpbmcgQGNvbW1hbmR7bG59LgotCi1AaXRlbSBAY29kZXstc30s IEBjb2Rley0tc3ltYm9saWN9Ci1NYWtlIHN5bWJvbGljIGxpbmtzIGluc3RlYWQgb2YgaGFy ZCBsaW5rcy4KLQotQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1QcmludCB0 aGUgbmFtZSBvZiBlYWNoIGZpbGUgYmVmb3JlIGxpbmtpbmcgaXQuCi0KLUBlbmQgdGFibGUK LQotQGl0ZW0gbG9jYXRlIEB2YXJ7YXJnfUBkb3Rze30KLUBjbWluZGV4IGxvY2F0ZQotQWxp YXMgdG8gRW1hY3MncyBAY29kZXtsb2NhdGV9IGZ1bmN0aW9uLCB3aGljaCBzaW1wbHkgcnVu cyB0aGUgZXh0ZXJuYWwKLUBjb21tYW5ke2xvY2F0ZX0gY29tbWFuZCBhbmQgcGFyc2VzIHRo ZSByZXN1bHRzLgotQHhyZWZ7RGlyZWQgYW5kIEZpbmQsICwgLCBlbWFjcywgVGhlIEdOVSBF bWFjcyBNYW51YWx9LgotCi1AdmluZGV4IGVzaGVsbC1wbGFpbi1sb2NhdGUtYmVoYXZpb3IK LUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1sb2NhdGUtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtu aWx9LCB0aGVuIEVtYWNzJ3MKLWludGVybmFsIEBjb2Rle2xvY2F0ZX0gaXMgbm90IHVzZWQu ICBUaGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nCi1Ac2FtcHthbGlhcyBsb2NhdGUgJypsb2Nh dGUgJEBAKid9LgotCi1AaXRlbSBscyBbQHZhcntvcHRpb259XUBkb3Rze30gW0B2YXJ7Zmls ZX1dQGRvdHN7fQotQGNtaW5kZXggbHMKLUxpc3QgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBA dmFye2ZpbGV9LCBpbmNsdWRpbmcgdGhlIGNvbnRlbnRzIG9mIGFueQotc3BlY2lmaWVkIGRp cmVjdG9yaWVzLiAgSWYgQHZhcntmaWxlfSBpcyB1bnNwZWNpZmllZCwgbGlzdCB0aGUKLWNv bnRlbnRzIG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KLQotQHZpbmRleCBlc2hlbGwtbHMt aW5pdGlhbC1hcmdzCi1UaGUgdXNlciBvcHRpb24gQGNvZGV7ZXNoZWxsLWxzLWluaXRpYWwt YXJnc30gY29udGFpbnMgYSBsaXN0IG9mCi1hcmd1bWVudHMgdG8gaW5jbHVkZSB3aXRoIGFu eSBjYWxsIHRvIEBjb21tYW5ke2xzfS4gIEZvciBleGFtcGxlLCB5b3UKLWNhbiBpbmNsdWRl IHRoZSBvcHRpb24gQG9wdGlvbnstaH0gdG8gYWx3YXlzIHVzZSBhIG1vcmUgaHVtYW4tcmVh ZGFibGUKLWZvcm1hdC4KLQotQHZpbmRleCBlc2hlbGwtbHMtdXNlLWNvbG9ycwotSWYgQGNv ZGV7ZXNoZWxsLWxzLXVzZS1jb2xvcnN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGUgY29udGVu dHMgb2YgYQotZGlyZWN0b3J5IGlzIGNvbG9yLWNvZGVkIGFjY29yZGluZyB0byBmaWxlIHR5 cGUgYW5kIHN0YXR1cy4gIFRoZXNlCi1jb2xvcnMgYW5kIHRoZSByZWdleHBzIHVzZWQgdG8g aWRlbnRpZnkgdGhlaXIgY29ycmVzcG9uZGluZyBmaWxlcyBjYW4KLWJlIGN1c3RvbWl6ZWQg dmlhIEB3e0BrYmR7TS14IGN1c3RvbWl6ZS1ncm91cCBAa2V5e1JFVH0gZXNoZWxsLWxzCi1A a2V5e1JFVH19fS4KLQotQGNvbW1hbmR7bHN9IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgb3B0 aW9uczoKLQotQHRhYmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hbGx9 Ci1MaXN0IGFsbCBmaWxlcywgaW5jbHVkaW5nIG9uZXMgc3RhcnRpbmcgd2l0aCBAc2FtcHsu fS4KLQotQGl0ZW0gQGNvZGV7LUF9LCBAY29kZXstLWFsbW9zdC1hbGx9Ci1MaWtlIEBjb2Rl ey0tYWxsfSwgYnV0IGRvbid0IGxpc3QgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IChAZmlsZXsu fSkgb3IKLXRoZSBwYXJlbnQgZGlyZWN0b3J5IChAZmlsZXsuLn0pLgotCi1AaXRlbSBAY29k ZXstY30sIEBjb2Rley0tYnktY3RpbWV9Ci1Tb3J0IGZpbGVzIGJ5IGxhc3Qgc3RhdHVzIGNo YW5nZSB0aW1lLCB3aXRoIG5ld2VzdCBmaWxlcyBmaXJzdC4KLQotQGl0ZW0gQGNvZGV7LUN9 Ci1MaXN0IGVudHJpZXMgYnkgY29sdW1ucy4KLQotQGl0ZW0gQGNvZGV7LWR9LCBAY29kZXst LWRpcmVjdG9yeX0KLUxpc3QgZGlyZWN0b3J5IGVudHJpZXMgaW5zdGVhZCBvZiB0aGVpciBj b250ZW50cy4KLQotQGl0ZW0gQGNvZGV7LWh9LCBAY29kZXstLWh1bWFuLXJlYWRhYmxlfQot UHJpbnQgc2l6ZXMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGJpbmFyeSBwcmVm aXhlcyAoc28gMSBLQiBpcwotMTAyNCBieXRlcykuCi0KLUBpdGVtIEBjb2Rley1IfSwgQGNv ZGV7LS1zaX0KLVByaW50IHNpemVzIGluIGh1bWFuLXJlYWRhYmxlIGZvcm1hdCwgd2l0aCBk ZWNpbWFsIHByZWZpeGVzIChzbyAxIEtCCi1pcyAxMDAwIGJ5dGVzKS4KLQotQGl0ZW0gQGNv ZGV7LUlAdmFye3BhdHRlcm59fSwgQGNvZGV7LS1pZ25vcmU9QHZhcntwYXR0ZXJufX0KLURv bid0IGxpc3QgZGlyZWN0b3J5IGVudHJpZXMgbWF0Y2hpbmcgQHZhcntwYXR0ZXJufS4KLQot QGl0ZW0gQGNvZGV7LWt9LCBAY29kZXstLWtpbG9ieXRlc30KLVByaW50IHNpemVzIGFzIDEw MjQtYnl0ZSBraWxvYnl0ZXMuCitAaXRlbSBAY29kZXsta30sIEBjb2Rley0ta2lsb2J5dGVz fQorUHJpbnQgc2l6ZXMgYXMgMTAyNC1ieXRlIGtpbG9ieXRlcy4KIAogQHZpbmRleCBlc2hl bGwtbHMtZGF0ZS1mb3JtYXQKIEBpdGVtIEBjb2Rley1sfQpAQCAtOTkwLDYwICs2ODksMTEg QEAgQnVpbHQtaW5zCiAKIEBlbmQgdGFibGUKIAotQGl0ZW0gbWFrZSBbQHZhcnthcmd9XUBk b3Rze30KLUBjbWluZGV4IG1ha2UKLVJ1biBAY29tbWFuZHttYWtlfSB0aHJvdWdoIEBjb2Rl e2NvbXBpbGV9IHdoZW4gcnVuIGFzeW5jaHJvbm91c2x5Ci0oZS5nLiwgQHNhbXB7bWFrZSAm fSkuICBAeHJlZntDb21waWxhdGlvbiwgLCAsIGVtYWNzLCBUaGUgR05VIEVtYWNzCi1NYW51 YWx9LiAgT3RoZXJ3aXNlIGNhbGwgdGhlIGV4dGVybmFsIEBjb21tYW5ke21ha2V9IGNvbW1h bmQuCi0KLUBpdGVtIG1hbiBbQHZhcnthcmd9XUBkb3Rze30KLUBjbWluZGV4IG1hbgotRGlz cGxheSBNYW4gcGFnZXMgdXNpbmcgdGhlIEVtYWNzIEBjb2Rle21hbn0gY29tbWFuZC4KLUB4 cmVme01hbiBQYWdlLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFsfS4KLQogQGl0 ZW0gbWtkaXIgWy1wXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9CiBAY21pbmRleCBta2Rpcgog TWFrZSBuZXcgZGlyZWN0b3JpZXMuICBXaXRoIEBjb2Rley1wfSBvciBAY29kZXstLXBhcmVu dHN9LAogYXV0b21hdGljYWxseSBtYWtlIGFueSBuZWNlc3NhcnkgcGFyZW50IGRpcmVjdG9y aWVzIGFzIHdlbGwuCiAKLUBpdGVtIG12IFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFye3Nv dXJjZX0gQHZhcntkZXN0fQotQGl0ZW14IG12IFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFy e3NvdXJjZX1AZG90c3t9IEB2YXJ7ZGlyZWN0b3J5fQotQGNtaW5kZXggbXYKLVJlbmFtZSB0 aGUgZmlsZSBAdmFye3NvdXJjZX0gdG8gQHZhcntkZXN0fSBvciBtb3ZlIEB2YXJ7c291cmNl fSBpbnRvCi1AdmFye2RpcmVjdG9yeX0uCi0KLUB2aW5kZXggZXNoZWxsLW12LW92ZXJ3cml0 ZS1maWxlcwotQHZpbmRleCBlc2hlbGwtbXYtaW50ZXJhY3RpdmUtcXVlcnkKLUlmIEBjb2Rl e2VzaGVsbC1tdi1vdmVyd3JpdGUtZmlsZXN9IGlzIG5vbi1AY29kZXtuaWx9LCBAY29tbWFu ZHttdn0KLXdpbGwgb3ZlcndyaXRlIGZpbGVzIHdpdGhvdXQgd2FybmluZy4gIElmCi1AY29k ZXtlc2hlbGwtbXYtaW50ZXJhY3RpdmUtcXVlcnl9IGlzIG5vbi1AY29kZXtuaWx9LCBAY29t bWFuZHttdn0KLXdpbGwgcHJvbXB0IGJlZm9yZSBvdmVyd3JpdGluZyBhbnl0aGluZy4KLQot QGNvbW1hbmR7bXZ9IGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgotCi1AdGFibGUg QGFzaXMKLQotQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQotTmV2ZXIgcHJvbXB0 IGZvciBjb25maXJtYXRpb24gYmVmb3JlIG1vdmluZyBhbiBpdGVtLgotCi1AaXRlbSBAY29k ZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9Ci1Qcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBi ZWZvcmUgbW92aW5nIGFuIGl0ZW0gaWYgdGhlIHRhcmdldCBhbHJlYWR5Ci1leGlzdHMuCi0K LUBpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQotUnVuIHRoZSBjb21tYW5kLCBi dXQgZG9uJ3QgbW92ZSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdQotd2FudCB0 byBwcmV2aWV3IHdoYXQgd291bGQgYmUgbW92ZWQgd2hlbiBjYWxsaW5nIEBjb21tYW5ke212 fS4KLQotQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1QcmludCB0aGUgbmFt ZSBvZiBlYWNoIGl0ZW0gYmVmb3JlIG1vdmluZyBpdC4KLQotQGVuZCB0YWJsZQotCi1AaXRl bSBvY2N1ciBAdmFye3JlZ2V4cH0gW0B2YXJ7bmxpbmVzfV0KLUBjbWluZGV4IG9jY3VyCi1B bGlhcyB0byBFbWFjcydzIEBjb2Rle29jY3VyfS4KLUB4cmVme090aGVyIFJlcGVhdGluZyBT ZWFyY2gsICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9LgotCiBAaXRlbSBwb3Bk CiBAaXRlbSBwb3BkICtAdmFye259CiBAY21pbmRleCBwb3BkCkBAIC0xMDYyLDEwICs3MTIs NiBAQCBCdWlsdC1pbnMKIAogQGVuZCB0YWJsZQogCi1AaXRlbSBwcmludG5sIFtAdmFye2Fy Z31dQGRvdHN7fQotQGNtaW5kZXggcHJpbnRubAotUHJpbnQgYWxsIHRoZSBAdmFye2FyZ31z IHNlcGFyYXRlZCBieSBuZXdsaW5lcy4KLQogQGl0ZW0gcHVzaGQKIEBpdGVteCBwdXNoZCBA dmFye2RpcmVjdG9yeX0KIEBpdGVteCBwdXNoZCArQHZhcntufQpAQCAtMTEwMiw0NCArNzQ4 LDI2MiBAQCBCdWlsdC1pbnMKIEBjbWluZGV4IHB3ZAogUHJpbnRzIHRoZSBjdXJyZW50IHdv cmtpbmcgZGlyZWN0b3J5LgogCi1AaXRlbSBybSBbQHZhcntvcHRpb259XUBkb3Rze30gQHZh cntpdGVtfUBkb3Rze30KLUBjbWluZGV4IHJtCi1SZW1vdmVzIGZpbGVzLCBidWZmZXJzLCBw cm9jZXNzZXMsIG9yIEVtYWNzIExpc3Agc3ltYm9scywgZGVwZW5kaW5nIG9uCi10aGUgdHlw ZSBvZiBlYWNoIEB2YXJ7aXRlbX0uCitAaXRlbSBybWRpciBAdmFye2RpcmVjdG9yeX1AZG90 c3t9CitAY21pbmRleCBybWRpcgorUmVtb3ZlcyBkaXJlY3RvcmllcyBpZiB0aGV5IGFyZSBl bXB0eS4KIAotQHZpbmRleCBlc2hlbGwtcm0taW50ZXJhY3RpdmUtcXVlcnkKLUB2aW5kZXgg ZXNoZWxsLXJtLXJlbW92ZXMtZGlyZWN0b3JpZXMKLUlmIEBjb2Rle2VzaGVsbC1ybS1pbnRl cmFjdGl2ZS1xdWVyeX0gaXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke3JtfQotd2lsbCBw cm9tcHQgYmVmb3JlIHJlbW92aW5nIGFueXRoaW5nLiAgSWYKLUBjb2Rle2VzaGVsbC1ybS1y ZW1vdmVzLWRpcmVjdG9yaWVzfSBpcyBub24tQGNvZGV7bmlsfSwgdGhlbgotQGNvbW1hbmR7 cm19IGNhbiBhbHNvIHJlbW92ZSBkaXJlY3Rvcmllcy4gIE90aGVyd2lzZSwgQGNvbW1hbmR7 cm1kaXJ9Ci1pcyByZXF1aXJlZC4KK0BlbmQgdGFibGUKIAotQGNvbW1hbmR7cm19IGFjY2Vw dHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorQG5vZGUgQ29tbWFuZHMgZm9yIEZpbGVzCitA c3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgRmlsZXMKK0B0YWJsZSBAY29kZQorCitAaXRlbSBj YXQgQHZhcntmaWxlfUBkb3Rze30KK0BjbWluZGV4IGNhdAorQ29uY2F0ZW5hdGUgdGhlIGNv bnRlbnRzIG9mIEB2YXJ7ZmlsZX1zIHRvIHN0YW5kYXJkIG91dHB1dC4gIElmIGluIGEKK3Bp cGVsaW5lLCBvciBpZiBhbnkgb2YgdGhlIGZpbGVzIGlzIG5vdCBhIHJlZ3VsYXIgZmlsZSwg ZGlyZWN0b3J5LCBvcgorc3ltbGluaywgdGhlbiB0aGlzIGNvbW1hbmQgcmV2ZXJ0cyB0byB0 aGUgc3lzdGVtJ3MgZGVmaW5pdGlvbiBvZgorQGNvbW1hbmR7Y2F0fS4KKworQGl0ZW0gY3Ag W0B2YXJ7b3B0aW9ufUBkb3Rze31dIEB2YXJ7c291cmNlfSBAdmFye2Rlc3R9CitAaXRlbSBj cCBbQHZhcntvcHRpb259QGRvdHN7fV0gQHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVj dG9yeX0KK0BjbWluZGV4IGNwCitDb3B5IHRoZSBmaWxlIEB2YXJ7c291cmNlfSB0byBAdmFy e2Rlc3R9IG9yIEB2YXJ7c291cmNlfSBpbnRvCitAdmFye2RpcmVjdG9yeX0uCisKK0B2aW5k ZXggZXNoZWxsLWNwLW92ZXJ3cml0ZS1maWxlcworQHZpbmRleCBlc2hlbGwtY3AtaW50ZXJh Y3RpdmUtcXVlcnkKK0lmIEBjb2Rle2VzaGVsbC1jcC1vdmVyd3JpdGUtZmlsZXN9IGlzIG5v bi1AY29kZXtuaWx9LCB0aGVuCitAY29tbWFuZHtjcH0gd2lsbCBvdmVyd3JpdGUgZmlsZXMg d2l0aG91dCB3YXJuaW5nLiAgSWYKK0Bjb2Rle2VzaGVsbC1jcC1pbnRlcmFjdGl2ZS1xdWVy eX0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4KK0Bjb21tYW5ke2NwfSB3aWxsIGFzayBiZWZv cmUgb3ZlcndyaXRpbmcgYW55dGhpbmcuCisKK0Bjb21tYW5ke2NwfSBhY2NlcHRzIHRoZSBm b2xsb3dpbmcgb3B0aW9uczoKIAogQHRhYmxlIEBhc2lzCiAKK0BpdGVtIEBjb2Rley1hfSwg QGNvZGV7LS1hcmNoaXZlfQorRXF1aXZhbGVudCB0byBAY29kZXstLW5vLWRlcmVmZXJlbmNl IC0tcHJlc2VydmUgLS1yZWN1cnNpdmV9LgorCitAaXRlbSBAY29kZXstZH0sIEBjb2Rley0t bm8tZGVyZWZlcmVuY2V9CitEb24ndCBkZXJlZmVyZW5jZSBzeW1ib2xpYyBsaW5rcyB3aGVu IGNvcHlpbmc7IGluc3RlYWQsIGNvcHkgdGhlIGxpbmsKK2l0c2VsZi4KKwogQGl0ZW0gQGNv ZGV7LWZ9LCBAY29kZXstLWZvcmNlfQotTmV2ZXIgcHJvbXB0IGZvciBjb25maXJtYXRpb24g YmVmb3JlIHJlbW92aW5nIGFuIGl0ZW0uCitOZXZlciBwcm9tcHQgZm9yIGNvbmZpcm1hdGlv biBiZWZvcmUgY29weWluZyBhIGZpbGUuCiAKIEBpdGVtIEBjb2Rley1pfSwgQGNvZGV7LS1p bnRlcmFjdGl2ZX0KLVByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSByZW1vdmluZyBl YWNoIGl0ZW0uCitQcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgY29weWluZyBhIGZp bGUgaWYgdGhlIHRhcmdldCBhbHJlYWR5CitleGlzdHMuCiAKIEBpdGVtIEBjb2Rley1ufSwg QGNvZGV7LS1wcmV2aWV3fQotUnVuIHRoZSBjb21tYW5kLCBidXQgZG9uJ3QgcmVtb3ZlIGFu eXRoaW5nLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91Ci13YW50IHRvIHByZXZpZXcgd2hhdCB3 b3VsZCBiZSByZW1vdmVkIHdoZW4gY2FsbGluZyBAY29tbWFuZHtybX0uCitSdW4gdGhlIGNv bW1hbmQsIGJ1dCBkb24ndCBjb3B5IGFueXRoaW5nLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91 Cit3YW50IHRvIHByZXZpZXcgd2hhdCB3b3VsZCBiZSByZW1vdmVkIHdoZW4gY2FsbGluZyBA Y29tbWFuZHtjcH0uCisKK0BpdGVtIEBjb2Rley1wfSwgQGNvZGV7LS1wcmVzZXJ2ZX0KK0F0 dGVtcHQgdG8gcHJlc2VydmUgZmlsZSBhdHRyaWJ1dGVzIHdoZW4gY29weWluZy4KIAogQGl0 ZW0gQGNvZGV7LXJ9LCBAY29kZXstUn0sIEBjb2Rley0tcmVjdXJzaXZlfQotUmVtb3ZlIGFu eSBzcGVjaWZpZWQgZGlyZWN0b3JpZXMgYW5kIHRoZWlyIGNvbnRlbnRzIHJlY3Vyc2l2ZWx5 LgorQ29weSBhbnkgc3BlY2lmaWVkIGRpcmVjdG9yaWVzIGFuZCB0aGVpciBjb250ZW50cyBy ZWN1cnNpdmVseS4KIAogQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1Qcmlu dCB0aGUgbmFtZSBvZiBlYWNoIGl0ZW0gYmVmb3JlIHJlbW92aW5nIGl0LgorUHJpbnQgdGhl IG5hbWUgb2YgZWFjaCBmaWxlIGJlZm9yZSBjb3B5aW5nIGl0LgogCiBAZW5kIHRhYmxlCiAK LUBpdGVtIHJtZGlyIEB2YXJ7ZGlyZWN0b3J5fUBkb3Rze30KLUBjbWluZGV4IHJtZGlyCi1S ZW1vdmVzIGRpcmVjdG9yaWVzIGlmIHRoZXkgYXJlIGVtcHR5LgorQGl0ZW0gZGlmZiBbQHZh cntvcHRpb259XUBkb3Rze30gQHZhcntvbGR9IEB2YXJ7bmV3fQorQGNtaW5kZXggZGlmZgor Q29tcGFyZSB0aGUgZmlsZXMgQHZhcntvbGR9IGFuZCBAdmFye25ld30gdXNpbmcgRW1hY3Mn cyBpbnRlcm5hbAorQGNvZGV7ZGlmZn0gKG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIEBjb2Rl e2VkaWZmfSkuICBAeHJlZntDb21wYXJpbmcKK0ZpbGVzLCAsICwgZW1hY3MsIFRoZSBHTlUg RW1hY3MgTWFudWFsfS4KKworQHZpbmRleCBlc2hlbGwtcGxhaW4tZGlmZi1iZWhhdmlvcgor SWYgQGNvZGV7ZXNoZWxsLXBsYWluLWRpZmYtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9 LCB0aGVuIHRoaXMKK2NvbW1hbmQgZG9lcyBub3QgdXNlIEVtYWNzJ3MgaW50ZXJuYWwgQGNv ZGV7ZGlmZn0uICBUaGlzIGlzIHRoZSBzYW1lCithcyB1c2luZyBAc2FtcHthbGlhcyBkaWZm ICcqZGlmZiAkQEAqJ30uCisKK0BpdGVtIGxuIFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFy e3RhcmdldH0gW0B2YXJ7bGluay1uYW1lfV0KK0BpdGVteCBsbiBbQHZhcntvcHRpb259XUBk b3Rze30gQHZhcnt0YXJnZXR9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KK0BjbWluZGV4IGxu CitDcmVhdGUgYSBsaW5rIHRvIHRoZSBzcGVjaWZpZWQgQHZhcnt0YXJnZXR9IG5hbWVkIEB2 YXJ7bGluay1uYW1lfSBvcgorY3JlYXRlIGxpbmtzIHRvIG11bHRpcGxlIEB2YXJ7dGFyZ2V0 c30gaW4gQHZhcntkaXJlY3Rvcnl9LgorCitAdmluZGV4IGVzaGVsbC1sbi1vdmVyd3JpdGUt ZmlsZXMKK0B2aW5kZXggZXNoZWxsLWxuLWludGVyYWN0aXZlLXF1ZXJ5CitJZiBAY29kZXtl c2hlbGwtbG4tb3ZlcndyaXRlLWZpbGVzfSBpcyBub24tQGNvZGV7bmlsfSwgQGNvbW1hbmR7 bG59Cit3aWxsIG92ZXJ3cml0ZSBmaWxlcyB3aXRob3V0IHdhcm5pbmcuICBJZgorQGNvZGV7 ZXNoZWxsLWxuLWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNvZGV7bmlsfSwgdGhlbgor QGNvbW1hbmR7bG59IHdpbGwgYXNrIGJlZm9yZSBvdmVyd3JpdGluZyBmaWxlcy4KKworQGNv bW1hbmR7bG59IGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCitAdGFibGUgQGFz aXMKKworQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQorTmV2ZXIgcHJvbXB0IGZv ciBjb25maXJtYXRpb24gYmVmb3JlIGxpbmtpbmcgYSB0YXJnZXQuCisKK0BpdGVtIEBjb2Rl ey1pfSwgQGNvZGV7LS1pbnRlcmFjdGl2ZX0KK1Byb21wdCBmb3IgY29uZmlybWF0aW9uIGJl Zm9yZSBsaW5raW5nIHRvIGFuIGl0ZW0gaWYgdGhlIHNvdXJjZQorYWxyZWFkeSBleGlzdHMu CisKK0BpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQorUnVuIHRoZSBjb21tYW5k LCBidXQgZG9uJ3QgbW92ZSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdQord2Fu dCB0byBwcmV2aWV3IHdoYXQgd291bGQgYmUgbGlua2VkIHdoZW4gY2FsbGluZyBAY29tbWFu ZHtsbn0uCisKK0BpdGVtIEBjb2Rley1zfSwgQGNvZGV7LS1zeW1ib2xpY30KK01ha2Ugc3lt Ym9saWMgbGlua3MgaW5zdGVhZCBvZiBoYXJkIGxpbmtzLgorCitAaXRlbSBAY29kZXstdn0s IEBjb2Rley0tdmVyYm9zZX0KK1ByaW50IHRoZSBuYW1lIG9mIGVhY2ggZmlsZSBiZWZvcmUg bGlua2luZyBpdC4KKworQGVuZCB0YWJsZQorCitAaXRlbSBtdiBbQHZhcntvcHRpb259XUBk b3Rze30gQHZhcntzb3VyY2V9IEB2YXJ7ZGVzdH0KK0BpdGVteCBtdiBbQHZhcntvcHRpb259 XUBkb3Rze30gQHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KK0BjbWluZGV4 IG12CitSZW5hbWUgdGhlIGZpbGUgQHZhcntzb3VyY2V9IHRvIEB2YXJ7ZGVzdH0gb3IgbW92 ZSBAdmFye3NvdXJjZX0gaW50bworQHZhcntkaXJlY3Rvcnl9LgorCitAdmluZGV4IGVzaGVs bC1tdi1vdmVyd3JpdGUtZmlsZXMKK0B2aW5kZXggZXNoZWxsLW12LWludGVyYWN0aXZlLXF1 ZXJ5CitJZiBAY29kZXtlc2hlbGwtbXYtb3ZlcndyaXRlLWZpbGVzfSBpcyBub24tQGNvZGV7 bmlsfSwgQGNvbW1hbmR7bXZ9Cit3aWxsIG92ZXJ3cml0ZSBmaWxlcyB3aXRob3V0IHdhcm5p bmcuICBJZgorQGNvZGV7ZXNoZWxsLW12LWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNv ZGV7bmlsfSwgQGNvbW1hbmR7bXZ9Cit3aWxsIHByb21wdCBiZWZvcmUgb3ZlcndyaXRpbmcg YW55dGhpbmcuCisKK0Bjb21tYW5ke212fSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9u czoKKworQHRhYmxlIEBhc2lzCisKK0BpdGVtIEBjb2Rley1mfSwgQGNvZGV7LS1mb3JjZX0K K05ldmVyIHByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBtb3ZpbmcgYW4gaXRlbS4K KworQGl0ZW0gQGNvZGV7LWl9LCBAY29kZXstLWludGVyYWN0aXZlfQorUHJvbXB0IGZvciBj b25maXJtYXRpb24gYmVmb3JlIG1vdmluZyBhbiBpdGVtIGlmIHRoZSB0YXJnZXQgYWxyZWFk eQorZXhpc3RzLgorCitAaXRlbSBAY29kZXstbn0sIEBjb2Rley0tcHJldmlld30KK1J1biB0 aGUgY29tbWFuZCwgYnV0IGRvbid0IG1vdmUgYW55dGhpbmcuICBUaGlzIGlzIHVzZWZ1bCBp ZiB5b3UKK3dhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJlIG1vdmVkIHdoZW4gY2FsbGlu ZyBAY29tbWFuZHttdn0uCisKK0BpdGVtIEBjb2Rley12fSwgQGNvZGV7LS12ZXJib3NlfQor UHJpbnQgdGhlIG5hbWUgb2YgZWFjaCBpdGVtIGJlZm9yZSBtb3ZpbmcgaXQuCisKK0BlbmQg dGFibGUKKworQGl0ZW0gcm0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7aXRlbX1AZG90 c3t9CitAY21pbmRleCBybQorUmVtb3ZlcyBmaWxlcywgYnVmZmVycywgcHJvY2Vzc2VzLCBv ciBFbWFjcyBMaXNwIHN5bWJvbHMsIGRlcGVuZGluZyBvbgordGhlIHR5cGUgb2YgZWFjaCBA dmFye2l0ZW19LgorCitAdmluZGV4IGVzaGVsbC1ybS1pbnRlcmFjdGl2ZS1xdWVyeQorQHZp bmRleCBlc2hlbGwtcm0tcmVtb3Zlcy1kaXJlY3RvcmllcworSWYgQGNvZGV7ZXNoZWxsLXJt LWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNvZGV7bmlsfSwgQGNvbW1hbmR7cm19Cit3 aWxsIHByb21wdCBiZWZvcmUgcmVtb3ZpbmcgYW55dGhpbmcuICBJZgorQGNvZGV7ZXNoZWxs LXJtLXJlbW92ZXMtZGlyZWN0b3JpZXN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuCitAY29t bWFuZHtybX0gY2FuIGFsc28gcmVtb3ZlIGRpcmVjdG9yaWVzLiAgT3RoZXJ3aXNlLCBAY29t bWFuZHtybWRpcn0KK2lzIHJlcXVpcmVkLgorCitAY29tbWFuZHtybX0gYWNjZXB0cyB0aGUg Zm9sbG93aW5nIG9wdGlvbnM6CisKK0B0YWJsZSBAYXNpcworCitAaXRlbSBAY29kZXstZn0s IEBjb2Rley0tZm9yY2V9CitOZXZlciBwcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUg cmVtb3ZpbmcgYW4gaXRlbS4KKworQGl0ZW0gQGNvZGV7LWl9LCBAY29kZXstLWludGVyYWN0 aXZlfQorUHJvbXB0IGZvciBjb25maXJtYXRpb24gYmVmb3JlIHJlbW92aW5nIGVhY2ggaXRl bS4KKworQGl0ZW0gQGNvZGV7LW59LCBAY29kZXstLXByZXZpZXd9CitSdW4gdGhlIGNvbW1h bmQsIGJ1dCBkb24ndCByZW1vdmUgYW55dGhpbmcuICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UK K3dhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJlIHJlbW92ZWQgd2hlbiBjYWxsaW5nIEBj b21tYW5ke3JtfS4KKworQGl0ZW0gQGNvZGV7LXJ9LCBAY29kZXstUn0sIEBjb2Rley0tcmVj dXJzaXZlfQorUmVtb3ZlIGFueSBzcGVjaWZpZWQgZGlyZWN0b3JpZXMgYW5kIHRoZWlyIGNv bnRlbnRzIHJlY3Vyc2l2ZWx5LgorCitAaXRlbSBAY29kZXstdn0sIEBjb2Rley0tdmVyYm9z ZX0KK1ByaW50IHRoZSBuYW1lIG9mIGVhY2ggaXRlbSBiZWZvcmUgcmVtb3ZpbmcgaXQuCisK K0BlbmQgdGFibGUKKworQGVuZCB0YWJsZQorCitAbm9kZSBDb21tYW5kcyBmb3IgU2VhcmNo aW5nCitAc3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgU2VhcmNoaW5nCitAdGFibGUgQGNvZGUK KworQGl0ZW0gZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IGdyZXAKK0BpdGVt eCBhZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IGFncmVwCitAaXRlbXggZWdy ZXAgW0B2YXJ7YXJnfV1AZG90c3t9CitAY21pbmRleCBlZ3JlcAorQGl0ZW14IGZncmVwIFtA dmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggZmdyZXAKK0BpdGVteCByZ3JlcCBbQHZhcnth cmd9XUBkb3Rze30KK0BjbWluZGV4IHJncmVwCitAaXRlbXggZ2xpbXBzZSBbQHZhcnthcmd9 XUBkb3Rze30KK0BjbWluZGV4IGdsaW1wc2UKK1RoZSBAY29tbWFuZHtncmVwfSBjb21tYW5k cyBhcmUgY29tcGF0aWJsZSB3aXRoIEdOVSBAY29tbWFuZHtncmVwfSwKK2J1dCBvcGVuIGEg Y29tcGlsYXRpb24gYnVmZmVyIGluIEBjb2Rle2dyZXAtbW9kZX0gaW5zdGVhZC4KK0B4cmVm e0dyZXAgU2VhcmNoaW5nLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFsfS4KKwor QHZpbmRleCBlc2hlbGwtcGxhaW4tZ3JlcC1iZWhhdmlvcgorSWYgQGNvZGV7ZXNoZWxsLXBs YWluLWdyZXAtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuIHRoZXNlCitjb21t YW5kcyBkbyBub3QgdXNlIG9wZW4gYSBjb21waWxhdGlvbiBidWZmZXIsIGluc3RlYWQgcHJp bnRpbmcgb3V0cHV0Cit0byBFc2hlbGwncyBidWZmZXIuICBUaGlzIGlzIHRoZSBzYW1lIGFz IHVzaW5nIEBzYW1we2FsaWFzIGdyZXAgJypncmVwCiskQEAqJ30sIHRob3VnaCB0aGlzIHNl dHRpbmcgYXBwbGllcyB0byBhbGwgb2YgdGhlIGJ1aWx0LWluIGNvbW1hbmRzCitmb3Igd2hp Y2ggeW91IHdvdWxkIG5lZWQgdG8gY3JlYXRlIGEgc2VwYXJhdGUgYWxpYXMuCisKK0BpdGVt IGluZm8gW0B2YXJ7bWFudWFsfSBbQHZhcntpdGVtfV1AZG90c3t9XQorQGNtaW5kZXggaW5m bworQnJvd3NlIHRoZSBhdmFpbGFibGUgSW5mbyBkb2N1bWVudGF0aW9uLiAgV2l0aCBubyBh cmd1bWVudHMsIGJyb3dzZQordGhlIHRvcC1sZXZlbCBtZW51LiAgT3RoZXJ3aXNlLCBzaG93 IHRoZSBtYW51YWwgZm9yIEB2YXJ7bWFudWFsfSwKK3NlbGVjdGluZyB0aGUgbWVudSBlbnRy eSBmb3IgQHZhcntpdGVtfS4KKworVGhpcyBjb21tYW5kIGlzIHRoZSBzYW1lIGFzIHRoZSBl eHRlcm5hbCBAY29tbWFuZHtpbmZvfSBjb21tYW5kLCBidXQKK3VzZXMgRW1hY3MncyBpbnRl cm5hbCBJbmZvIHJlYWRlci4gIEB4cmVme01pc2MgSGVscCwgLCAsIGVtYWNzLCBUaGUKK0dO VSBFbWFjcyBNYW51YWx9LgorCitAaXRlbSBsb2NhdGUgQHZhcnthcmd9QGRvdHN7fQorQGNt aW5kZXggbG9jYXRlCitBbGlhcyB0byBFbWFjcydzIEBjb2Rle2xvY2F0ZX0gZnVuY3Rpb24s IHdoaWNoIHNpbXBseSBydW5zIHRoZSBleHRlcm5hbAorQGNvbW1hbmR7bG9jYXRlfSBjb21t YW5kIGFuZCBwYXJzZXMgdGhlIHJlc3VsdHMuCitAeHJlZntEaXJlZCBhbmQgRmluZCwgLCAs IGVtYWNzLCBUaGUgR05VIEVtYWNzIE1hbnVhbH0uCisKK0B2aW5kZXggZXNoZWxsLXBsYWlu LWxvY2F0ZS1iZWhhdmlvcgorSWYgQGNvZGV7ZXNoZWxsLXBsYWluLWxvY2F0ZS1iZWhhdmlv cn0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4gRW1hY3MncworaW50ZXJuYWwgQGNvZGV7bG9j YXRlfSBpcyBub3QgdXNlZC4gIFRoaXMgaXMgdGhlIHNhbWUgYXMgdXNpbmcKK0BzYW1we2Fs aWFzIGxvY2F0ZSAnKmxvY2F0ZSAkQEAqJ30uCisKK0BpdGVtIG1hbiBbQHZhcnthcmd9XUBk b3Rze30KK0BjbWluZGV4IG1hbgorRGlzcGxheSBNYW4gcGFnZXMgdXNpbmcgdGhlIEVtYWNz IEBjb2Rle21hbn0gY29tbWFuZC4KK0B4cmVme01hbiBQYWdlLCAsICwgZW1hY3MsIFRoZSBH TlUgRW1hY3MgTWFudWFsfS4KKworQGl0ZW0gb2NjdXIgQHZhcntyZWdleHB9IFtAdmFye25s aW5lc31dCitAY21pbmRleCBvY2N1cgorQWxpYXMgdG8gRW1hY3MncyBAY29kZXtvY2N1cn0u CitAeHJlZntPdGhlciBSZXBlYXRpbmcgU2VhcmNoLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1h Y3MgTWFudWFsfS4KKworQGVuZCB0YWJsZQorCitAbm9kZSBDb21tYW5kcyBmb3IgVmFyaWFi bGVzCitAc3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgVmFyaWFibGVzCitAdGFibGUgQGNvZGUK KworQGl0ZW0gZW52IFtAdmFye3Zhcn09QHZhcnt2YWx1ZX1dQGRvdHN7fSBbQHZhcntjb21t YW5kfV1AZG90c3t9CitAY21pbmRleCBlbnYKK1dpdGggbm8gYXJndW1lbnRzLCBwcmludCB0 aGUgY3VycmVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICBJZiB5b3UKK3Bhc3MgYXJndW1l bnRzIHRvIHRoaXMgY29tbWFuZCwgdGhlbiBAY29tbWFuZHtlbnZ9IHdpbGwgZXhlY3V0ZSB0 aGUKK2FyZ3VtZW50cyBhcyBhIGNvbW1hbmQuICBJZiB5b3UgcGFzcyBhbnkgaW5pdGlhbCBh cmd1bWVudHMgb2YgdGhlIGZvcm0KK0BzYW1we0B2YXJ7dmFyfT1AdmFye3ZhbHVlfX0sIEBj b21tYW5ke2Vudn0gd2lsbCBmaXJzdCBzZXQgQHZhcnt2YXJ9Cit0byBAdmFye3ZhbHVlfSBi ZWZvcmUgcnVubmluZyB0aGUgY29tbWFuZC4KKworQGl0ZW0gZXhwb3J0IFtAdmFye25hbWV9 PUB2YXJ7dmFsdWV9XUBkb3Rze30KK0BjbWluZGV4IGV4cG9ydAorU2V0IGVudmlyb25tZW50 IHZhcmlhYmxlcyB1c2luZyBpbnB1dCBsaWtlIEJhc2gncyBAY29tbWFuZHtleHBvcnR9LCBh cworaW4gQHNhbXB7ZXhwb3J0IEB2YXJ7dmFyMX09QHZhcnt2YWwxfSBAdmFye3ZhcjJ9PUB2 YXJ7dmFsMn0gQGRvdHN7fX0uCiAKIEBpdGVtIHNldCBbQHZhcnt2YXJ9IEB2YXJ7dmFsdWV9 XUBkb3Rze30KIEBjbWluZGV4IHNldApAQCAtMTE1NCw2ICsxMDE4LDc0IEBAIEJ1aWx0LWlu cwogU2V0IHZhcmlhYmxlIHZhbHVlcywgdXNpbmcgdGhlIGZ1bmN0aW9uIEBjb2Rle3NldHF9 IGxpa2UgYSBjb21tYW5kCiAoQHB4cmVme1NldHRpbmcgVmFyaWFibGVzLCwsIGVsaXNwLCBH TlUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfSkuCiAKK0BpdGVtIHVuc2V0IFtAdmFy e3Zhcn1dQGRvdHN7fQorQGNtaW5kZXggdW5zZXQKK1Vuc2V0IG9uZSBvciBtb3JlIHZhcmlh Ymxlcy4gIEFzIHdpdGggQGNvbW1hbmR7c2V0fSwgdGhlIHZhbHVlIG9mCitAdmFye3Zhcn0g Y2FuIGJlIGEgc3ltYm9sLCBpbiB3aGljaCBjYXNlIGl0IHJlZmVycyB0byBhIExpc3AgdmFy aWFibGUsCitvciBhIHN0cmluZywgcmVmZXJyaW5nIHRvIGFuIGVudmlyb25tZW50IHZhcmlh YmxlLgorCitAZW5kIHRhYmxlCisKK0Bub2RlIENvbW1hbmRzIGZvciBVc2luZyBPdGhlciBD b21tYW5kcworQHN1YnNlY3Rpb24gQ29tbWFuZHMgZm9yIFVzaW5nIE90aGVyIENvbW1hbmRz CitAdGFibGUgQGNvZGUKKworQGl0ZW0gLiBAdmFye2ZpbGV9IFtAdmFye2FyZ3VtZW50fV1A ZG90c3t9CitAY21pbmRleCAuCitTb3VyY2UgYW4gRXNoZWxsIHNjcmlwdCBuYW1lZCBAdmFy e2ZpbGV9IGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LAorcGFzc2luZyBhbnkgQHZhcnth cmd1bWVudHN9IHRvIHRoZSBzY3JpcHQgKEBweHJlZntTY3JpcHRzfSkuICBUaGlzIGlzCitu b3QgdG8gYmUgY29uZnVzZWQgd2l0aCB0aGUgY29tbWFuZCBAY29tbWFuZHtzb3VyY2V9LCB3 aGljaCBzb3VyY2VzIGEKK2ZpbGUgaW4gYSBzdWJzaGVsbCBlbnZpcm9ubWVudC4KKworQGl0 ZW0gYWRkcGF0aAorQGl0ZW14IGFkZHBhdGggWy1iXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9 CitAY21pbmRleCBhZGRwYXRoCitBZGRzIGVhY2ggc3BlY2lmaWVkIEB2YXJ7ZGlyZWN0b3J5 fSB0byB0aGUgQGNvZGV7JFBBVEh9IGVudmlyb25tZW50Cit2YXJpYWJsZS4gIEJ5IGRlZmF1 bHQsIHRoaXMgYWRkcyB0aGUgZGlyZWN0b3JpZXMgdG8gdGhlIGVuZCBvZgorQGNvZGV7JFBB VEh9LCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5l OyBieQorcGFzc2luZyBAY29kZXstYn0gb3IgQGNvZGV7LS1iZWdpbn0sIEVzaGVsbCB3aWxs IGluc3RlYWQgYWRkIHRoZQorZGlyZWN0b3JpZXMgdG8gdGhlIGJlZ2lubmluZy4KKworV2l0 aCBubyBkaXJlY3RvcmllcywgcHJpbnQgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgY3VycmVu dGx5IHN0b3JlZCBpbgorQGNvZGV7JFBBVEh9LgorCitAaXRlbSBhbGlhcworQGl0ZW14IGFs aWFzIEB2YXJ7bmFtZX0gW0B2YXJ7Y29tbWFuZH1dCitAY21pbmRleCBhbGlhcworRGVmaW5l IGFuIGFsaWFzIG5hbWVkIEB2YXJ7bmFtZX0gYW5kIGV4cGFuZGluZyB0byBAdmFye2NvbW1h bmR9LAorYWRkaW5nIGl0IHRvIHRoZSBhbGlhc2VzIGZpbGUgKEBweHJlZntBbGlhc2VzfSku ICBJZiBAdmFye2NvbW1hbmR9IGlzCitvbWl0dGVkLCBkZWxldGUgdGhlIGFsaWFzIG5hbWVk IEB2YXJ7bmFtZX0uICBXaXRoIG5vIGFyZ3VtZW50cyBhdCBhbGwsCitsaXN0IGFsbCB0aGUg Y3VycmVudGx5LWRlZmluZWQgYWxpYXNlcy4KKworQGl0ZW0gY29tcGlsZSBbLXAgfCAtaV0g Wy1tIEB2YXJ7bW9kZS1uYW1lfV0gQHZhcntjb21tYW5kfUBkb3Rze30KK0BjbWluZGV4IGNv bXBpbGUKK1J1biBhbiBleHRlcm5hbCBjb21tYW5kLCBzZW5kaW5nIGl0cyBvdXRwdXQgdG8g YSBjb21waWxhdGlvbiBidWZmZXIgaWYKK3RoZSBjb21tYW5kIHdvdWxkIG91dHB1dCB0byB0 aGUgc2NyZWVuIGFuZCBpcyBub3QgcGFydCBvZiBhIHBpcGVsaW5lCitvciBzdWJjb21tYW5k LgorCitXaXRoIHRoZSBAY29kZXstcH0gb3IgQGNvZGV7LS1wbGFpbn0gb3B0aW9ucywgYWx3 YXlzIHNlbmQgdGhlIG91dHB1dAordG8gdGhlIEVzaGVsbCBidWZmZXI7IHNpbWlsYXJseSwg d2l0aCBAY29kZXstaX0gb3IKK0Bjb2Rley0taW50ZXJhY3RpdmV9LCBhbHdheXMgc2VuZCB0 aGUgb3V0cHV0IHRvIGEgY29tcGlsYXRpb24gYnVmZmVyLgorWW91IGNhbiBhbHNvIHNldCB0 aGUgbW9kZSBvZiB0aGUgY29tcGlsYXRpb24gYnVmZmVyIHdpdGggQGNvZGV7LW0KK0B2YXJ7 bW9kZS1uYW1lfX0gb3IgQGNvZGV7LS1tb2RlIEB2YXJ7bW9kZS1uYW1lfX0uCisKK0Bjb21t YW5ke2NvbXBpbGV9IGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBkZWZpbmluZyBhbGlh c2VzLCBzbwordGhhdCBpbnRlcmFjdGl2ZWx5LCB0aGUgb3V0cHV0IHNob3dzIHVwIGluIGEg Y29tcGlsYXRpb24gYnVmZmVyLCBidXQKK3lvdSBjYW4gc3RpbGwgcGlwZSB0aGUgb3V0cHV0 IGVsc2V3aGVyZSBpZiBkZXNpcmVkLiAgRm9yIGV4YW1wbGUsIGlmCit5b3UgaGF2ZSBhIGdy ZXAtbGlrZSBjb21tYW5kIG9uIHlvdXIgc3lzdGVtLCB5b3UgbWlnaHQgZGVmaW5lIGFuIGFs aWFzCitmb3IgaXQgbGlrZSBzbzogQHNhbXB7YWxpYXMgbXlncmVwICdjb21waWxlIC0tbW9k ZT1ncmVwLW1vZGUgLS0gbXlncmVwCiskKid9LgorCitAaXRlbSBqb2JzCitAY21pbmRleCBq b2JzCitMaXN0IHN1YnByb2Nlc3NlcyBvZiB0aGUgRW1hY3MgcHJvY2VzcywgaWYgYW55LCB1 c2luZyB0aGUgZnVuY3Rpb24KK0Bjb2Rle2xpc3QtcHJvY2Vzc2VzfS4KKworQGl0ZW0ga2ls bCBbLUB2YXJ7c2lnbmFsfV0gW0B2YXJ7cGlkfSB8IEB2YXJ7cHJvY2Vzc31dCitAY21pbmRl eCBraWxsCitLaWxsIHByb2Nlc3Nlcy4gIFRha2VzIGEgUElEIG9yIGEgcHJvY2VzcyBvYmpl Y3QgYW5kIGFuIG9wdGlvbmFsCitAdmFye3NpZ25hbH0gc3BlY2lmaWVyIHdoaWNoIGNhbiBl aXRoZXIgYmUgYSBudW1iZXIgb3IgYSBzaWduYWwgbmFtZS4KKwogQGl0ZW0gc291cmNlIEB2 YXJ7ZmlsZX0gW0B2YXJ7YXJndW1lbnR9XUBkb3Rze30KIEBjbWluZGV4IHNvdXJjZQogU291 cmNlIGFuIEVzaGVsbCBzY3JpcHQgbmFtZWQgQHZhcntmaWxlfSBpbiBhIHN1YnNoZWxsIGVu dmlyb25tZW50LApAQCAtMTE2NSwyMCArMTA5Nyw2IEBAIEJ1aWx0LWlucwogQGNtaW5kZXgg dGltZQogU2hvdyB0aGUgdGltZSBlbGFwc2VkIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIEB2 YXJ7Y29tbWFuZH0uCiAKLUBpdGVtIHVtYXNrIFstU10KLUBpdGVteCB1bWFzayBAdmFye21v ZGV9Ci1AY21pbmRleCB1bWFzawotVmlldyB0aGUgZGVmYXVsdCBmaWxlIHBlcm1pc3Npb25z IGZvciBuZXdseSBjcmVhdGVkIGZpbGVzIGFuZAotZGlyZWN0b3JpZXMuICBJZiB5b3UgcGFz cyBAY29kZXstU30gb3IgQGNvZGV7LS1zeW1ib2xpY30sIHZpZXcgdGhlCi1tb2RlIHN5bWJv bGljYWxseS4gIFdpdGggQHZhcnttb2RlfSwgc2V0IHRoZSBkZWZhdWx0IHBlcm1pc3Npb25z IHRvCi10aGlzIHZhbHVlLgotCi1AaXRlbSB1bnNldCBbQHZhcnt2YXJ9XUBkb3Rze30KLUBj bWluZGV4IHVuc2V0Ci1VbnNldCBvbmUgb3IgbW9yZSB2YXJpYWJsZXMuICBBcyB3aXRoIEBj b21tYW5ke3NldH0sIHRoZSB2YWx1ZSBvZgotQHZhcnt2YXJ9IGNhbiBiZSBhIHN5bWJvbCwg aW4gd2hpY2ggY2FzZSBpdCByZWZlcnMgdG8gYSBMaXNwIHZhcmlhYmxlLAotb3IgYSBzdHJp bmcsIHJlZmVycmluZyB0byBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KLQogQGl0ZW0gd2Fp dCBbQHZhcntwcm9jZXNzfV1AZG90c3t9CiBAY21pbmRleCB3YWl0CiBXYWl0IHVudGlsIGVh Y2ggc3BlY2lmaWVkIEB2YXJ7cHJvY2Vzc30gaGFzIGV4aXRlZC4KQEAgLTExODgsNiArMTEw NiwxMzAgQEAgQnVpbHQtaW5zCiBGb3IgZWFjaCBAdmFye2NvbW1hbmR9LCBpZGVudGlmeSB3 aGF0IGtpbmQgb2YgY29tbWFuZCBpdCBpcyBhbmQgaXRzCiBsb2NhdGlvbi4KIAorQGVuZCB0 YWJsZQorCitAbm9kZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzCitAc3Vic2VjdGlvbiBNaXNj ZWxsYW5lb3VzIENvbW1hbmRzCitAdGFibGUgQGNvZGUKKworQGl0ZW0gYmFzZW5hbWUgQHZh cntmaWxlbmFtZX0KK0BjbWluZGV4IGJhc2VuYW1lCitSZXR1cm4gQHZhcntmaWxlbmFtZX0g d2l0aG91dCBpdHMgZGlyZWN0b3J5LgorCitAaXRlbSBjbGVhciBbQHZhcntzY3JvbGxiYWNr fV0KK0BjbWluZGV4IGNsZWFyCitTY3JvbGxzIHRoZSBjb250ZW50cyBvZiB0aGUgRXNoZWxs IHdpbmRvdyBvdXQgb2Ygc2lnaHQsIGxlYXZpbmcgYQorYmxhbmsgd2luZG93LiAgSWYgQHZh cntzY3JvbGxiYWNrfSBpcyBub24tQGNvZGV7bmlsfSwgdGhlIHNjcm9sbGJhY2sKK2NvbnRl bnRzIGFyZSBjbGVhcmVkIGluc3RlYWQsIGFzIHdpdGggQGNvbW1hbmR7Y2xlYXItc2Nyb2xs YmFja30uCisKK0BpdGVtIGNsZWFyLXNjcm9sbGJhY2sKK0BjbWluZGV4IGNsZWFyLXNjcm9s bGJhY2sKK0NsZWFyIHRoZSBzY3JvbGxiYWNrIGNvbnRlbnRzIG9mIHRoZSBFc2hlbGwgd2lu ZG93LiAgVW5saWtlIHRoZQorY29tbWFuZCBAY29tbWFuZHtjbGVhcn0sIHRoaXMgY29tbWFu ZCBkZWxldGVzIGNvbnRlbnQgaW4gdGhlIEVzaGVsbAorYnVmZmVyLgorCitAaXRlbSBkYXRl IFtAdmFye3NwZWNpZmllZC10aW1lfSBbQHZhcnt6b25lfV1dCitAY21pbmRleCBkYXRlCitQ cmludCB0aGUgY3VycmVudCBsb2NhbCB0aW1lIGFzIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5n LiAgVGhpcyBjb21tYW5kCitpcyBhbiBhbGlhcyB0byB0aGUgRW1hY3MgTGlzcCBmdW5jdGlv biBAY29kZXtjdXJyZW50LXRpbWUtc3RyaW5nfQorKEBweHJlZntUaW1lIG9mIERheSwsLCBl bGlzcCwgR05VIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1hbnVhbH0pLgorCitAaXRlbSBkaXJu YW1lIEB2YXJ7ZmlsZW5hbWV9CitAY21pbmRleCBkaXJuYW1lCitSZXR1cm4gdGhlIGRpcmVj dG9yeSBjb21wb25lbnQgb2YgQHZhcntmaWxlbmFtZX0uCisKK0BpdGVtIGVjaG8gWy1uIHwg LU5dIFtAdmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggZWNobworUHJpbnRzIHRoZSB2YWx1 ZSBvZiBlYWNoIEB2YXJ7YXJnfS4gIEJ5IGRlZmF1bHQsIHRoaXMgcHJpbnRzIGluIGEKK0xp c3AtZnJpZW5kbHkgZmFzaGlvbiAoc28gdGhhdCB0aGUgdmFsdWUgaXMgdXNlZnVsIHRvIGEg TGlzcCBjb21tYW5kCit1c2luZyB0aGUgcmVzdWx0IG9mIEBjb21tYW5ke2VjaG99IGFzIGFu IGFyZ3VtZW50KS4gIElmIGEgc2luZ2xlCithcmd1bWVudCBpcyBwYXNzZWQsIEBjb21tYW5k e2VjaG99IHByaW50cyB0aGF0OyBpZiBtdWx0aXBsZSBhcmd1bWVudHMKK2FyZSBwYXNzZWQs IGl0IHByaW50cyBhIGxpc3Qgb2YgYWxsIHRoZSBhcmd1bWVudHM7IG90aGVyd2lzZSwgaXQK K3ByaW50cyB0aGUgZW1wdHkgc3RyaW5nLgorCitAdmluZGV4IGVzaGVsbC1wbGFpbi1lY2hv LWJlaGF2aW9yCitJZiBAY29kZXtlc2hlbGwtcGxhaW4tZWNoby1iZWhhdmlvcn0gaXMgbm9u LUBjb2Rle25pbH0sIEBjb21tYW5ke2VjaG99Cit3aWxsIHRyeSB0byBiZWhhdmUgbW9yZSBs aWtlIGEgcGxhaW4gc2hlbGwncyBAY29tbWFuZHtlY2hvfSwgcHJpbnRpbmcKK2VhY2ggYXJn dW1lbnQgYXMgYSBzdHJpbmcsIHNlcGFyYXRlZCBieSBhIHNwYWNlLgorCitZb3UgY2FuIGNv bnRyb2wgd2hldGhlciBAY29tbWFuZHtlY2hvfSBvdXRwdXRzIGEgdHJhaWxpbmcgbmV3bGlu ZQordXNpbmcgQGNvZGV7LW59IHRvIGRpc2FibGUgdGhlIHRyYWlsaW5nIG5ld2xpbmUgKHRo ZSBkZWZhdWx0IGJlaGF2aW9yKQorb3IgQGNvZGV7LU59IHRvIGVuYWJsZSBpdCAodGhlIGRl ZmF1bHQgd2hlbgorQGNvZGV7ZXNoZWxsLXBsYWluLWVjaG8tYmVoYXZpb3J9IGlzIG5vbi1A Y29kZXtuaWx9KS4KKworQGl0ZW0gZXNoZWxsLWRlYnVnIFtlcnJvciB8IGZvcm0gfCBwcm9j ZXNzXUBkb3Rze30KK0BjbWluZGV4IGVzaGVsbC1kZWJ1ZworVG9nZ2xlIGRlYnVnZ2luZyBp bmZvcm1hdGlvbiBmb3IgRXNoZWxsIGl0c2VsZi4gIFlvdSBjYW4gcGFzcyB0aGlzCitjb21t YW5kIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOgorCitAaXRlbWl6 ZSBAYnVsbGV0CisKK0BpdGVtCitAY29kZXtlcnJvcn0sIHRvIGVuYWJsZS9kaXNhYmxlIEVz aGVsbCB0cmFwcGluZyBlcnJvcnMgd2hlbgorZXZhbHVhdGluZyBjb21tYW5kczsKKworQGl0 ZW0KK0Bjb2Rle2Zvcm19LCB0byBzaG93L2hpZGUgRXNoZWxsIGNvbW1hbmQgZm9ybSBtYW5p cHVsYXRpb24gaW4gdGhlCitidWZmZXIgQGNvZGV7KmVzaGVsbCBsYXN0IGNtZCp9OyBvcgor CitAaXRlbQorQGNvZGV7cHJvY2Vzc30sIHRvIHNob3cvaGlkZSBleHRlcm5hbCBwcm9jZXNz IGV2ZW50cyBpbiB0aGUgYnVmZmVyCitAY29kZXsqZXNoZWxsIGxhc3QgY21kKn0uCisKK0Bl bmQgaXRlbWl6ZQorCitAaXRlbSBleGl0CitAY21pbmRleCBleGl0CitAdmluZGV4IGVzaGVs bC1raWxsLW9uLWV4aXQKK0V4aXQgRXNoZWxsIGFuZCBzYXZlIHRoZSBoaXN0b3J5LiAgQnkg ZGVmYXVsdCwgdGhpcyBjb21tYW5kIGtpbGxzIHRoZQorRXNoZWxsIGJ1ZmZlciwgYnV0IGlm IEBjb2Rle2VzaGVsbC1raWxsLW9uLWV4aXR9IGlzIEBjb2Rle25pbH0sIHRoZW4KK3RoZSBi dWZmZXIgaXMgbWVyZWx5IGJ1cmllZCBpbnN0ZWFkLgorCitAaXRlbSBoaXN0b3J5IFtAdmFy e259XQorQGl0ZW14IGhpc3RvcnkgWy1hcnddIFtAdmFye2ZpbGVuYW1lfV0KK0BjbWluZGV4 IGhpc3RvcnkKK1ByaW50cyBFc2hlbGwncyBpbnB1dCBoaXN0b3J5LiAgV2l0aCBhIG51bWVy aWMgYXJndW1lbnQgQHZhcntufSwgdGhpcworY29tbWFuZCBwcmludHMgdGhlIEB2YXJ7bn0g bW9zdCByZWNlbnQgaXRlbXMgaW4gdGhlIGhpc3RvcnkuCitBbHRlcm5hdGVseSwgeW91IGNh biBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKworQHRhYmxlIEBhc2lzCisKK0Bp dGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hcHBlbmR9CitBcHBlbmQgbmV3IGhpc3RvcnkgaXRl bXMgdG8gdGhlIGhpc3RvcnkgZmlsZS4KKworQGl0ZW0gQGNvZGV7LXJ9LCBAY29kZXstLXJl YWR9CitSZWFkIGhpc3RvcnkgaXRlbXMgZnJvbSB0aGUgaGlzdG9yeSBmaWxlIGFuZCBhcHBl bmQgdGhlbSB0byB0aGUKK2N1cnJlbnQgc2hlbGwncyBoaXN0b3J5LgorCitAaXRlbSBAY29k ZXstd30sIEBjb2Rley0td3JpdGV9CitXcml0ZSB0aGUgY3VycmVudCBoaXN0b3J5IGxpc3Qg dG8gdGhlIGhpc3RvcnkgZmlsZS4KKworQGVuZCB0YWJsZQorCitAaXRlbSBsaXN0aWZ5IFtA dmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggbGlzdGlmeQorUmV0dXJuIHRoZSBhcmd1bWVu dHMgYXMgYSBzaW5nbGUgbGlzdC4gIFdpdGggYSBzaW5nbGUgYXJndW1lbnQsIHJldHVybgor aXQgYXMtaXMgaWYgaXQncyBhbHJlYWR5IGEgbGlzdCwgb3Igb3RoZXJ3aXNlIHdyYXAgaXQg aW4gYSBsaXN0LiAgV2l0aAorbXVsdGlwbGUgYXJndW1lbnRzLCByZXR1cm4gYSBsaXN0IG9m IGFsbCBvZiB0aGVtLgorCitAaXRlbSBtYWtlIFtAdmFye2FyZ31dQGRvdHN7fQorQGNtaW5k ZXggbWFrZQorUnVuIEBjb21tYW5ke21ha2V9IHRocm91Z2ggQGNvZGV7Y29tcGlsZX0gd2hl biBydW4gYXN5bmNocm9ub3VzbHkKKyhlLmcuLCBAc2FtcHttYWtlICZ9KS4gIEB4cmVme0Nv bXBpbGF0aW9uLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MKK01hbnVhbH0uICBPdGhlcndp c2UgY2FsbCB0aGUgZXh0ZXJuYWwgQGNvbW1hbmR7bWFrZX0gY29tbWFuZC4KKworQGl0ZW0g cHJpbnRubCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IHByaW50bmwKK1ByaW50IGFs bCB0aGUgQHZhcnthcmd9cyBzZXBhcmF0ZWQgYnkgbmV3bGluZXMuCisKK0BpdGVtIHVtYXNr IFstU10KK0BpdGVteCB1bWFzayBAdmFye21vZGV9CitAY21pbmRleCB1bWFzaworVmlldyB0 aGUgZGVmYXVsdCBmaWxlIHBlcm1pc3Npb25zIGZvciBuZXdseSBjcmVhdGVkIGZpbGVzIGFu ZAorZGlyZWN0b3JpZXMuICBJZiB5b3UgcGFzcyBAY29kZXstU30gb3IgQGNvZGV7LS1zeW1i b2xpY30sIHZpZXcgdGhlCittb2RlIHN5bWJvbGljYWxseS4gIFdpdGggQHZhcnttb2RlfSwg c2V0IHRoZSBkZWZhdWx0IHBlcm1pc3Npb25zIHRvCit0aGlzIHZhbHVlLgorCiBAaXRlbSB3 aG9hbWkKIEBjbWluZGV4IHdob2FtaQogUHJpbnQgdGhlIGN1cnJlbnQgdXNlci4gIFRoaXMg RXNoZWxsIHZlcnNpb24gb2YgQGNvbW1hbmR7d2hvYW1pfSBpcwpAQCAtMTE5NSw3ICsxMjM3 LDggQEAgQnVpbHQtaW5zCiBhc3NvY2lhdGVkIHdpdGggdGhhdCBjb25uZWN0aW9uLgogQGVu ZCB0YWJsZQogCi1Ac3Vic2VjdGlvbiBEZWZpbmluZyBuZXcgYnVpbHQtaW4gY29tbWFuZHMK K0Bub2RlIERlZmluaW5nIE5ldyBCdWlsdC1pbiBDb21tYW5kcworQHN1YnNlY3Rpb24gRGVm aW5pbmcgTmV3IEJ1aWx0LWluIENvbW1hbmRzCiBXaGlsZSBFc2hlbGwgY2FuIHJ1biBMaXNw IGZ1bmN0aW9ucyBkaXJlY3RseSBhcyBjb21tYW5kcywgaXQgbWF5IGJlCiBtb3JlIGNvbnZl bmllbnQgdG8gcHJvdmlkZSBhIHNwZWNpYWwgYnVpbHQtaW4gY29tbWFuZCBmb3IKIEVzaGVs bC4gIEJ1aWx0LWluIGNvbW1hbmRzIGFyZSBqdXN0IG9yZGluYXJ5IExpc3AgZnVuY3Rpb25z IGRlc2lnbmVkCi0tIAoyLjI1LjEKCg== --------------kf40TWkKs0Hp0Bo9JkxrEbjG-- From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Feb 2024 03:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter Cc: 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.17072767412241 (code B ref 68963); Wed, 07 Feb 2024 03:33:01 +0000 Received: (at 68963) by debbugs.gnu.org; 7 Feb 2024 03:32:21 +0000 Received: from localhost ([127.0.0.1]:55516 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXYfd-0000a5-7f for submit@debbugs.gnu.org; Tue, 06 Feb 2024 22:32:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35730) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXYfZ-0000Zm-CW for 68963@debbugs.gnu.org; Tue, 06 Feb 2024 22:32:19 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rXYfF-0000nO-KV; Tue, 06 Feb 2024 22:31:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=EQ+LdaZyWFYrWICywGTbIAXkbN15XiUhGSzLowOx9P8=; b=GUPgaPXNwR+2 fcVsyv6wZlaED1mSEXRDmQwJKiQnCiW6TbiEjY2SLDDYT2V/mkM97ICY1AU11pfGUms5B3zKQBhVr xHKrcH5c32L8mWUnqmynbhhXfZOtKezA8oclCQEl5V+rtN4yfIwX393aYtMy5k/H4otMEaOuzvyF2 ZO/LND8oKhkHwFNsbcr20PY1s/1Mv3XO1nuZ3ZzLT/nx/zAaW4RLzQ8XMz2fRBsWvEmg5CmSyolmc hEjgewF/IW6wq7/yHqAEYD37a5HvfVLlknqjYo7wtRdfN/IeXhZSX9ZvtERNpC3VCdvoG7ghS1AsF Q/U2D6ecF7eS9a4Opc4PXQ==; Date: Wed, 07 Feb 2024 05:31:52 +0200 Message-Id: <86mssdymon.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> (message from Jim Porter on Tue, 6 Feb 2024 16:02:32 -0800) References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 6 Feb 2024 16:02:32 -0800 > From: Jim Porter > > Currently, the Eshell manual lists all the built-in commands in one > section, which can make it hard to find the commands related to the > topic you care about. Here's a patch to split this into subsections of > various (loosely-defined) topics. If people look for commands by using 'i' (Info-index), then finding them in a single long section will be as easy as doing that in several shorter ones. From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Feb 2024 04:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.17072799917599 (code B ref 68963); Wed, 07 Feb 2024 04:27:01 +0000 Received: (at 68963) by debbugs.gnu.org; 7 Feb 2024 04:26:31 +0000 Received: from localhost ([127.0.0.1]:55532 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXZW2-0001yV-ND for submit@debbugs.gnu.org; Tue, 06 Feb 2024 23:26:30 -0500 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]:55773) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXZW0-0001yE-Aj for 68963@debbugs.gnu.org; Tue, 06 Feb 2024 23:26:29 -0500 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-296e094e0b8so166987a91.3 for <68963@debbugs.gnu.org>; Tue, 06 Feb 2024 20:26:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707279969; x=1707884769; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=b5+i8IJ5tbXyakC+S6j+z7BVz20zd1nO7kr81HUEYHM=; b=eVu0KpnHBwqwFtYoyT8XbpP5sA/NvnSVFQGQND7F3F5o5fC2mqB9Yqp8qOa5ApBtpV FLS5GxDlCABbbaYN9b/ZgH7uYibzIJf8msBDzQkxSI3DMjzLo8NLoTYSwPd5qRJnRzHu xESkBKKqY7UDcHr2ta2wvKaf/hchwUVkZ2JuDQC8XaAQEvN+cfe33aEpD3eChdFoV6Bv qcZd30/HuzExVqdMflRhj+IOwThjpYIMFJA3A8+qirC4cjDi+uJ0KKVBAWmGt+k2fRpj 6vJ1/8+C2exFv2wZtQDeBXGKO1BXJyE9u/HX1xxRe52iRhXqSirkPVD1ZoVC9yMbN1c9 oVtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707279969; x=1707884769; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=b5+i8IJ5tbXyakC+S6j+z7BVz20zd1nO7kr81HUEYHM=; b=fowPdYvCS4WPxxTZJDTXOmlPI3KS6pOfOgas+7Yw8/rjh2ciWZvQeSNTFl25DpEM5E 3T29bRJMHZv16uers0NeiNKvFzfcXxnUwYxDd6YxGbdYzlH6osPnE/csjh3Y0L1aJMyX TcN+8zl45Ojudz/lbMmPdzkHJC5HZfTUCrzltneZClGvYYqRR5pNsHuK114ywN0lmTeU ML5h0UnV8G+c+3oCV1JaLVjOLOHdSrqbyPEe4GiujYogzLX7ajgJ1wTGBs4pEGZ6/c/H oFQD9hT92Jio6I4FGIIox9G/So24IrRoOpN8FcillbXAp+q/vXNvpTn0GHr3Qox2RKTq LUMg== X-Gm-Message-State: AOJu0YxzDTHILulTM8vgreUhpn16MzR2labJjntAmZMxN4Q4u5Rrhgff gpc8xYMAyoOe5P6bGUoCwmc7fVbF0sZSN9ydO70964/nglDSAQLV X-Google-Smtp-Source: AGHT+IHjuiAoTUgdQv7hothdCdPC+EQGUUwd4TULB9pdSA50hPdxqqJ+fm2TjTMbeul/Itx3kIZXbw== X-Received: by 2002:a17:90a:7848:b0:295:f717:881a with SMTP id y8-20020a17090a784800b00295f717881amr1388053pjl.35.1707279968621; Tue, 06 Feb 2024 20:26:08 -0800 (PST) Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id az13-20020a17090b028d00b002964f55de20sm2674635pjb.30.2024.02.06.20.26.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Feb 2024 20:26:08 -0800 (PST) Message-ID: <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> Date: Tue, 6 Feb 2024 20:26:08 -0800 MIME-Version: 1.0 Content-Language: en-US References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> From: Jim Porter In-Reply-To: <86mssdymon.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 2/6/2024 7:31 PM, Eli Zaretskii wrote: >> Date: Tue, 6 Feb 2024 16:02:32 -0800 >> From: Jim Porter >> >> Currently, the Eshell manual lists all the built-in commands in one >> section, which can make it hard to find the commands related to the >> topic you care about. Here's a patch to split this into subsections of >> various (loosely-defined) topics. > > If people look for commands by using 'i' (Info-index), then finding > them in a single long section will be as easy as doing that in several > shorter ones. The use-case I was imagining for this was a person thinking, "What commands does Eshell have for working with [say] directories?" Since those were previously interspersed throughout the full command list, it would take a fair bit of skimming past irrelevant commands to find the directory-related ones. For looking up a specific command though, I agree that the current manual is fine. From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Feb 2024 12:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter Cc: 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.17073105067618 (code B ref 68963); Wed, 07 Feb 2024 12:56:02 +0000 Received: (at 68963) by debbugs.gnu.org; 7 Feb 2024 12:55:06 +0000 Received: from localhost ([127.0.0.1]:55845 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXhSE-0001yo-8v for submit@debbugs.gnu.org; Wed, 07 Feb 2024 07:55:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53980) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXhSC-0001yF-B9 for 68963@debbugs.gnu.org; Wed, 07 Feb 2024 07:55:05 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rXhRt-0006Ky-94; Wed, 07 Feb 2024 07:54:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=UOS8mETf59fCOPAE1zB/or4mfq81tsbF/6hFuGLDFSY=; b=SpV4bfKlYdxQ T34AugP07wpn3Uo+vmlpAKuzBCrw66CFWhGTbgUqNQ+4n3gdIS1N6qHsjzs0zoKu7lsGelLc8gFZt wwKd2O1lyur+BuaAdQQpfHA/KRtclN3NHhpFbcmxri5evJVizgO1AF5vkGTh45rYu8BgYU1U4NOrO wvkUCXpU0/3G3rsqI5fxwPTlQSVtaHyzuhUZkhTyFMfoKenoaLaMlCaJX++AKxnjRZgYhnVBQw9xn dak/cBZKwS5TzcQXTM5tZMsOAYUIlyMxi+AOPY/Jy217dYWm1Mdfz200jRw1Q58cQ3BfvL9bxrOe6 z3107Qw0+W7KjaWEqoZILw==; Date: Wed, 07 Feb 2024 14:54:41 +0200 Message-Id: <86eddozb72.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> (message from Jim Porter on Tue, 6 Feb 2024 20:26:08 -0800) References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 6 Feb 2024 20:26:08 -0800 > Cc: 68963@debbugs.gnu.org > From: Jim Porter > > On 2/6/2024 7:31 PM, Eli Zaretskii wrote: > >> Date: Tue, 6 Feb 2024 16:02:32 -0800 > >> From: Jim Porter > >> > >> Currently, the Eshell manual lists all the built-in commands in one > >> section, which can make it hard to find the commands related to the > >> topic you care about. Here's a patch to split this into subsections of > >> various (loosely-defined) topics. > > > > If people look for commands by using 'i' (Info-index), then finding > > them in a single long section will be as easy as doing that in several > > shorter ones. > > The use-case I was imagining for this was a person thinking, "What > commands does Eshell have for working with [say] directories?" But then subdivision into sections has other problems. For example, who says that 'ls' is only "for directories", ln, mv, and rm are only "for files", and info is "for searching"? A person can reasonably think about these (and others) differently. And why "basename" is not about files? That is why we use indexing for providing flexible and accurate search capabilities: you can have more than one index entry for each piece of text, so you can satisfy different use cases where people have different phrases on their mind when thinking about something. So the right way of handling this is to use better indexing. You could index each command, for example: @cindex deleting files and directories @cindex file commands, deletion [text about 'rm' here] and in addition, you could have a short section with a list of "file-related commands", where each command or group of commands is followed by a cross-reference to the relevant place/section. Using sectioning for these purposes is not flexible enough to satisfy enough use cases, because it supports only a single way of looking at a subject, and people tend to think about them differently, especially if they need that in different contexts. From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Feb 2024 20:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii , Jim Porter Cc: 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.17073374001928 (code B ref 68963); Wed, 07 Feb 2024 20:24:02 +0000 Received: (at 68963) by debbugs.gnu.org; 7 Feb 2024 20:23:20 +0000 Received: from localhost ([127.0.0.1]:57981 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXoRz-0000V1-Ij for submit@debbugs.gnu.org; Wed, 07 Feb 2024 15:23:19 -0500 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]:58743) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXoRw-0000UY-L4 for 68963@debbugs.gnu.org; Wed, 07 Feb 2024 15:23:17 -0500 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-55a8fd60af0so1252617a12.1 for <68963@debbugs.gnu.org>; Wed, 07 Feb 2024 12:23:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707337376; x=1707942176; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=bsahEgB44GeexlW4YP6mx5vgs9/CIHghY5HXOsUQFss=; b=edHxV62jpev9tsCV3MOoaZUklLO5YT8O0BnO/f6XnU2Fk6SK4J9RcROTwMRMMcnEWJ VqqJpNIBYIuFdhENV3wte1EcFjrWAiCofDik09WwuIg8Gel/nGhY/q/4XZXYYQTOqb1B Ta+frZxx2UkeFaFGxv2L4N5J8/yd1W7cCMUcSnqbAzBhYyeuM1ChHtQNJK6Sxk3gIW94 c5eatM4RbcM/qgeKtLHerZPgGtiHllOzKh9XgpV1lKq4LVuzz6nIm8StFG2M86nL+ixa vfbtfn+lhGLKV3uWtMFeMCsCb7+U45ogx7qxSZmuymjUXDvdW8uksUooBfGjwm/T+VH7 AeFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707337376; x=1707942176; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=bsahEgB44GeexlW4YP6mx5vgs9/CIHghY5HXOsUQFss=; b=Xh1wEUcC1r7ecuhWmGDyJ3qzWmXoRMfkAyEeh7rXZkNcAAyZI2OZjoD9h6Xo4y5w64 gJXLajzftgjUPWgGq3Brwt2LWH5IJyDLgRzm0iHX1PXNPyKpi+EuhIDhWtwcABGAvWQN HP0/8ipr4rbel/AQ2zot4Rq6sy1PAXXn+E8Y3HkNoqMkTQetXGPJ9DpDccF068F3WVwY UONKNcLDAyBhxYlu2iNdmjdHOxtLtWv7IjIYgI2YzLG/emXSHxynMFIWPBQ3cr1KAThP VYnCbJPWg25rS1vdCqjDceIfMI4eAJB/1R1T4pQp8pGDs4UwXwmQdiUDrk8cm2hkkczf YXgA== X-Gm-Message-State: AOJu0YxQ68y2IQlBq2aq1ZcFCudo1kBHV/If9jv2jomRda85JpZi+bVG olmBsgNHEIxZIVmNkAclL1iqDPTTBltQGt06VbkPFK/nRxvaToR/QqJ/ip+8eiBLdnqSLPsV7Ck 5kVWHSlWkbjtljbfsNhpFG67mN2w= X-Google-Smtp-Source: AGHT+IEFBtAY22YN8bbS6BAvw7wLtMH6fQ8vHMniGy/U8Ef7WcFeWuhwx1WbCxinSMaP90BbovZYlin0MBr0E7aQBzo= X-Received: by 2002:aa7:c30f:0:b0:55f:8bba:d0ae with SMTP id l15-20020aa7c30f000000b0055f8bbad0aemr5741550edq.23.1707337376266; Wed, 07 Feb 2024 12:22:56 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Wed, 7 Feb 2024 12:22:55 -0800 From: Stefan Kangas In-Reply-To: <86eddozb72.fsf@gnu.org> References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> <86eddozb72.fsf@gnu.org> MIME-Version: 1.0 Date: Wed, 7 Feb 2024 12:22:55 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Date: Tue, 6 Feb 2024 20:26:08 -0800 >> Cc: 68963@debbugs.gnu.org >> From: Jim Porter >> >> The use-case I was imagining for this was a person thinking, "What >> commands does Eshell have for working with [say] directories?" > > But then subdivision into sections has other problems. For example, > who says that 'ls' is only "for directories", ln, mv, and rm are only > "for files", and info is "for searching"? A person can reasonably > think about these (and others) differently. And why "basename" is not > about files? FWIW, I tend to agree with Eli: having all built-in commands on one page also provides some benefit, especially to power users (the likely audience for eshell) that are already familiar with a standard Unix shell and just wants to know "what's different about Eshell" or "what does Eshell provide". However, I agree that the section is a bit long and unwieldy. To make it shorter, how about moving the section "Defining new built-in commands" to some other part of the manual instead? For example some chapter that talks about "Extending Eshell" or similar. Just my two cents. From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 08 Feb 2024 02:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Stefan Kangas , Eli Zaretskii Cc: 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.17073579316129 (code B ref 68963); Thu, 08 Feb 2024 02:06:02 +0000 Received: (at 68963) by debbugs.gnu.org; 8 Feb 2024 02:05:31 +0000 Received: from localhost ([127.0.0.1]:58717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXtn8-0001an-TZ for submit@debbugs.gnu.org; Wed, 07 Feb 2024 21:05:31 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]:54297) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXtn7-0001aY-0y for 68963@debbugs.gnu.org; Wed, 07 Feb 2024 21:05:29 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1d51ba18e1bso12114335ad.0 for <68963@debbugs.gnu.org>; Wed, 07 Feb 2024 18:05:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707357909; x=1707962709; darn=debbugs.gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=xA/P6xq6Wfn+TrJnTHptFMoNkcFoINr2pgjm1MZhbwo=; b=BDXERp6unkUWaLecbhLjFwRRIP5utiq+O5mCBmntyFyxAR2J7g45OtK/wjtnYfdvew PyLWa5C/w+aj94N/0Ag2/Jyfo4vVRWBI9ik00kss28YIXzVTUzitNB8Dg1Xcwqz/qolu R4oagykAKVPfkaiG/8v5ipldtbS/6Id8Ti+o7nKyyKyawRugISRRQ3WVsp+qDp7+ZffL KVpGyUKWU6d/suPCGmA5fSkpVk3DE14X5gQIX7kjoevLs+pmcposNGmjm74hYQO6VsDp mCDx/1NVnBm7t0gdVFUrm7p8b8h1GGLP2xR+CwkRMyE4p+n8u5klF5j8kNc0oshLr7tV oddg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707357909; x=1707962709; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=xA/P6xq6Wfn+TrJnTHptFMoNkcFoINr2pgjm1MZhbwo=; b=alMvfPWHzVTzwaR0ao40+ICNOQ9Rmf6mWfpCAI6DpTaGvLYWicqAX28kw2WjWGb3ta 60jAh6Kyy2V3zaMAThCHBD6D9uWGiJtM1sRYeqnZTddB2b2BwDKnxFfB7fUsPK+elLyp f/zZZGxJ15ysiNIQLJE3C8IfHAvC7EEC4N8ivDBZeNtyvlaC2XtB7x1KNdBfMjfgFTZ8 ROi8RBUdmVaHseOAY5BRUGVXurL4tbx+A6x7LuQVgjx9105FXZ5GsBRJXNxX9/PfCFo8 v2ETtdcQu/slAPfZjzn7P9AVucFfs0+jiEkiGVcNUlpyVpPbZqL+yPjoWByUyROMd1Dk eZMw== X-Gm-Message-State: AOJu0YxpnPpRFZceI+SHp6ZmKS+ZxJUvfH1CQ5Q2icOD2ak8k43qvBWa BkKdUFe+H2xlixFt7NUnwryRDUiqZpCMStenwx4dkEU4ZhZu7QymgCLkHGkg X-Google-Smtp-Source: AGHT+IE+XEykm3we7QHgNtr0P58yieTc4tjzuqJQGa7xDfBGy72xgPoK7nu3BzrQ9pMCxCWSqvqODA== X-Received: by 2002:a17:903:24c:b0:1d9:a647:5566 with SMTP id j12-20020a170903024c00b001d9a6475566mr8053532plh.4.1707357908954; Wed, 07 Feb 2024 18:05:08 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCWYp4RZRUwXNGvG3SU8wlfBZ+NlgQtHf3ReglRuFc0tERpglVQJ/TTfSl09VW/x2K8Eeacvtvu7B6kqALU= Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id jd20-20020a170903261400b001d9630e3396sm2161614plb.193.2024.02.07.18.05.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Feb 2024 18:05:08 -0800 (PST) Content-Type: multipart/mixed; boundary="------------PeoOT01plyx8j2lpzGBIgrF7" Message-ID: Date: Wed, 7 Feb 2024 18:05:07 -0800 MIME-Version: 1.0 Content-Language: en-US References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> <86eddozb72.fsf@gnu.org> From: Jim Porter In-Reply-To: X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------PeoOT01plyx8j2lpzGBIgrF7 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2/7/2024 12:22 PM, Stefan Kangas wrote: > Eli Zaretskii writes: > >> But then subdivision into sections has other problems. For example, >> who says that 'ls' is only "for directories", ln, mv, and rm are only >> "for files", and info is "for searching"? A person can reasonably >> think about these (and others) differently. And why "basename" is not >> about files? > > FWIW, I tend to agree with Eli: having all built-in commands on one page > also provides some benefit, especially to power users (the likely > audience for eshell) that are already familiar with a standard Unix > shell and just wants to know "what's different about Eshell" or "what > does Eshell provide". Ok, no problem. It just seemed a bit hard to navigate to me, but I don't have any issues with keeping all the commands together. > However, I agree that the section is a bit long and unwieldy. To make > it shorter, how about moving the section "Defining new built-in > commands" to some other part of the manual instead? For example some > chapter that talks about "Extending Eshell" or similar. > > Just my two cents. How about the attached patch instead? It just moves the list of commands to a sub-node, and also makes the "defining new built-ins" a proper sub-node too. That should keep things a bit easier to navigate, and then we can add more indexing as needed later. --------------PeoOT01plyx8j2lpzGBIgrF7 Content-Type: text/plain; charset=UTF-8; name="0001-Put-the-list-of-built-in-Eshell-commands-in-its-own-.patch" Content-Disposition: attachment; filename*0="0001-Put-the-list-of-built-in-Eshell-commands-in-its-own-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0ZDc0ZmM5ZDUwMGJjYzFiMmFjMzUwYjVkZjNlZGI3YjE2NzFkM2NjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgNyBGZWIgMjAyNCAxNzo1ODozMSAtMDgwMApTdWJqZWN0OiBbUEFU Q0hdIFB1dCB0aGUgbGlzdCBvZiBidWlsdC1pbiBFc2hlbGwgY29tbWFuZHMgaW4gaXRzIG93 biBtYW51YWwKIG5vZGUKCiogZG9jL21pc2MvZXNoZWxsLnRleGkgKEJ1aWx0LWlucyk6IEZp eCBjYXBpdGFsaXphdGlvbiBvZiBub2RlIHRvIGJlCm1vcmUgY29uc2lzdGVudCB3aXRoIHRo ZSByZXN0IG9mIHRoZSBtYW51YWwuICBGaXggYSBjcm9zcyByZWZlcmVuY2UuCkxpc3QgY2hp bGQgbm9kZXMuCihMaXN0IG9mIEJ1aWx0LWlucyk6IE5ldyBzZWN0aW9uIGFuZCBub2RlLgoo RGVmaW5pbmcgTmV3IEJ1aWx0LWlucyk6IE1ha2UgdGhpcyBhIG5vZGUuICBGaXggY2FwaXRh bGl6YXRpb24uCi0tLQogZG9jL21pc2MvZXNoZWxsLnRleGkgfCAxNiArKysrKysrKysrKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50 ZXhpCmluZGV4IDVkM2U1YzdkYmQ2Li45ZTVlZWE2Y2I2MSAxMDA2NDQKLS0tIGEvZG9jL21p c2MvZXNoZWxsLnRleGkKKysrIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKQEAgLTQxNiw3ICs0 MTYsNyBAQCBBcmd1bWVudHMKIEBlbmQgdGFibGUKIAogQG5vZGUgQnVpbHQtaW5zCi1Ac2Vj dGlvbiBCdWlsdC1pbiBjb21tYW5kcworQHNlY3Rpb24gQnVpbHQtaW4gQ29tbWFuZHMKIEVz aGVsbCBwcm92aWRlcyBhIG51bWJlciBvZiBidWlsdC1pbiBjb21tYW5kcywgbWFueSBvZiB0 aGVtCiBpbXBsZW1lbnRpbmcgY29tbW9uIGNvbW1hbmQtbGluZSB1dGlsaXRpZXMsIGJ1dCBl bmhhbmNlZCBmb3IgRXNoZWxsLgogKFRoZXNlIGJ1aWx0LWluIGNvbW1hbmRzIGFyZSBqdXN0 IG9yZGluYXJ5IExpc3AgZnVuY3Rpb25zIHdob3NlIG5hbWVzCkBAIC00NzcsNyArNDc3LDE2 IEBAIEJ1aWx0LWlucwogQGNvbW1hbmR7bG59IGlzIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4K IAogQSBmZXcgY29tbWFuZHMgYXJlIHdyYXBwZXJzIGZvciBtb3JlIG5pY2hlIEVtYWNzIGZl YXR1cmVzLCBhbmQgY2FuIGJlCi1sb2FkZWQgYXMgcGFydCBvZiB0aGUgZXNoZWxsLXh0cmEg bW9kdWxlLiAgQHhyZWZ7RXh0ZW5zaW9uIG1vZHVsZXN9LgorbG9hZGVkIGFzIHBhcnQgb2Yg dGhlIEBjb2Rle2VzaGVsbC14dHJhfSBtb2R1bGUuICBAeHJlZntFeHRyYSBidWlsdC1pbgor Y29tbWFuZHN9LgorCitAbWVudQorKiBMaXN0IG9mIEJ1aWx0LWluczo6CisqIERlZmluaW5n IE5ldyBCdWlsdC1pbnM6OgorQGVuZCBtZW51CisKK0Bub2RlIExpc3Qgb2YgQnVpbHQtaW5z CitAc3Vic2VjdGlvbiBMaXN0IG9mIEJ1aWx0LWluIENvbW1hbmRzCiAKIEB0YWJsZSBAY29k ZQogCkBAIC0xMTk1LDcgKzEyMDQsOCBAQCBCdWlsdC1pbnMKIGFzc29jaWF0ZWQgd2l0aCB0 aGF0IGNvbm5lY3Rpb24uCiBAZW5kIHRhYmxlCiAKLUBzdWJzZWN0aW9uIERlZmluaW5nIG5l dyBidWlsdC1pbiBjb21tYW5kcworQG5vZGUgRGVmaW5pbmcgTmV3IEJ1aWx0LWlucworQHN1 YnNlY3Rpb24gRGVmaW5pbmcgTmV3IEJ1aWx0LWluIENvbW1hbmRzCiBXaGlsZSBFc2hlbGwg Y2FuIHJ1biBMaXNwIGZ1bmN0aW9ucyBkaXJlY3RseSBhcyBjb21tYW5kcywgaXQgbWF5IGJl CiBtb3JlIGNvbnZlbmllbnQgdG8gcHJvdmlkZSBhIHNwZWNpYWwgYnVpbHQtaW4gY29tbWFu ZCBmb3IKIEVzaGVsbC4gIEJ1aWx0LWluIGNvbW1hbmRzIGFyZSBqdXN0IG9yZGluYXJ5IExp c3AgZnVuY3Rpb25zIGRlc2lnbmVkCi0tIAoyLjI1LjEKCg== --------------PeoOT01plyx8j2lpzGBIgrF7-- From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 08 Feb 2024 07:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter Cc: stefankangas@gmail.com, 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.17073760597720 (code B ref 68963); Thu, 08 Feb 2024 07:08:02 +0000 Received: (at 68963) by debbugs.gnu.org; 8 Feb 2024 07:07:39 +0000 Received: from localhost ([127.0.0.1]:58856 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXyVX-00020R-G2 for submit@debbugs.gnu.org; Thu, 08 Feb 2024 02:07:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56994) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXyVV-00020B-T1 for 68963@debbugs.gnu.org; Thu, 08 Feb 2024 02:07:38 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rXyVC-0001H5-59; Thu, 08 Feb 2024 02:07:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=dQHnpQIzlttlxFFsmmmmV94Jk+sp96a3hyZ5zh3G+dY=; b=oAIclNsw+PU0 zZDnFdbEAiRkXjbOX+/HGdxHIc3EyRC8tCVN4DTiLPHZgaOSta0RMQXdxK0Unkc6vlcagrYinabdE F0Ba+KNSg657t+ygulbvvcpXNPLoZUw3ch2ax170mUw57erW7DROQ2grWL5J1mAAH8R+FhXZoK4Sf JhkaJeZbcd1yPEOECdV8JUmFU/Cpe0rK/NHDasZvAo7+hHmpGdttcNO+Ks8TrVCgi7Pj3FzBRcNPG u0Q+3Z6g1XlBJN6/fQM16cYKrmDZKJ22iS2bZfN7E8zPTzvgCqpbkmg17kFobExSX/23KbNDn1N74 5F2myAjwakjo3z9ePCP10g==; Date: Thu, 08 Feb 2024 09:07:16 +0200 Message-Id: <867cjfxwm3.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Jim Porter on Wed, 7 Feb 2024 18:05:07 -0800) References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> <86eddozb72.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Wed, 7 Feb 2024 18:05:07 -0800 > Cc: 68963@debbugs.gnu.org > From: Jim Porter > > On 2/7/2024 12:22 PM, Stefan Kangas wrote: > > Eli Zaretskii writes: > > > >> But then subdivision into sections has other problems. For example, > >> who says that 'ls' is only "for directories", ln, mv, and rm are only > >> "for files", and info is "for searching"? A person can reasonably > >> think about these (and others) differently. And why "basename" is not > >> about files? > > > > FWIW, I tend to agree with Eli: having all built-in commands on one page > > also provides some benefit, especially to power users (the likely > > audience for eshell) that are already familiar with a standard Unix > > shell and just wants to know "what's different about Eshell" or "what > > does Eshell provide". > > Ok, no problem. It just seemed a bit hard to navigate to me, but I don't > have any issues with keeping all the commands together. I'm not against subdividing that section. My point was that if you want these commands to be easier to find, the subdivision itself is not enough; you need additional measures. > How about the attached patch instead? It just moves the list of commands > to a sub-node, and also makes the "defining new built-ins" a proper > sub-node too. That should keep things a bit easier to navigate, and then > we can add more indexing as needed later. No objections here. But once again: your points about being able to find the commands by categories are well-taken, and adding indexing to make that easier would also be a good change. Thanks. From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 08 Feb 2024 20:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: stefankangas@gmail.com, 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.170742427213650 (code B ref 68963); Thu, 08 Feb 2024 20:32:02 +0000 Received: (at 68963) by debbugs.gnu.org; 8 Feb 2024 20:31:12 +0000 Received: from localhost ([127.0.0.1]:33708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rYB38-0003Y2-H6 for submit@debbugs.gnu.org; Thu, 08 Feb 2024 15:31:11 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:53657) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rYB34-0003XS-UX for 68963@debbugs.gnu.org; Thu, 08 Feb 2024 15:31:08 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1d74045c463so1870025ad.3 for <68963@debbugs.gnu.org>; Thu, 08 Feb 2024 12:30:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707424246; x=1708029046; darn=debbugs.gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=2VS/IYEiKLRg5a16TIttA3VzP4RZgEmMS7W1HCXSPcU=; b=cz66sBAtMHHY1mqKSSkq+cnrRtOT51PGoB4MOp0Hk1R63aCtJBI5Ypl2asFR5I3ETs o7UAqxxCxPvmPNCWr0S8sI/7Eg67g0daGXE+xXK6UkJltAtLeJLzjvIWY16Er+aVAyTP gbBp3daqUIoqSmSGqNNjXJuNucbtgeG13hi0wRlgozxRHqPmLWbTWeRkKMaPcHjslSFZ PzVlkpOEY7qL0IULwsmq9pd2FSwdOhDCJF+kAKJsPrLAGiXCRZA228mC0REiVgdyKOQD zKsGAv0j0LG6EW+GSNkHbz+R7DvihBUzEqXL2gqB8cKTSrVvkORZrmKsG5ZQsKH7H71X SZmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707424246; x=1708029046; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=2VS/IYEiKLRg5a16TIttA3VzP4RZgEmMS7W1HCXSPcU=; b=K7eHKS7bK+8Ghc0y+CM9VBWhAnI9RvGRq8Y6txA7ly4HW82k3GneUw5pz3Ij8RAVRN T9gPTfubEgJChVtgLGcMH3Tjx0WKOKGibLHUdqniHLjKZuWiAKiBmhSu7CshMMvNj0NC BTWNiVGZv+dVA+5Ah/UYTqNxyxryMzMbLSwsMo87R4ZM21FkYxn7FL1SiSIroo3Q89y2 GTC7z3qeIXXYyZ0vVu15WZI57m7e9o02TvhTtHvG0Qyv9vqii+6Ph4fGqT6mekOvEB5j 0iLhQHtl+UGGf1t7s8Cq+bnc4aYIc+RsTCpz5CIg8/V7mF5cQAmpBR7xRLR7KbbEvc1o q64g== X-Gm-Message-State: AOJu0YyNnYujfdLSZi4/o6TAUFmb+zvBf6wcqsH97iXHBjBzVmqXEGyq yKHDaFTnYEKP55elSWoT31FY923dLJNYFCyMdAEFg4azchn4pMSt X-Google-Smtp-Source: AGHT+IEHrxVHOC3UIshLLwwSRpQuRkvtmXL5TgN45dkjBim0QEuTIhA7hYn8N8MlM6rMz5FJ6HSXxw== X-Received: by 2002:a17:903:494:b0:1d9:5b8b:f70 with SMTP id jj20-20020a170903049400b001d95b8b0f70mr295569plb.29.1707424246241; Thu, 08 Feb 2024 12:30:46 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCU0jFtAUWtJcNcAgsz4Zmqr3gS1ZeRjhwFioYP7SURslyoq2SL2wRF2y4kk7U2xe0KQLvfsJV1ky2DZEppcpQke/kQUvLY= Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id z8-20020a1709028f8800b001d911dd145esm162634plo.219.2024.02.08.12.30.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Feb 2024 12:30:45 -0800 (PST) Content-Type: multipart/mixed; boundary="------------mQUXTifleoozFwjv6e8Qb5fQ" Message-ID: <1e440e86-1d6f-c52a-8749-4eb28bc51986@gmail.com> Date: Thu, 8 Feb 2024 12:30:46 -0800 MIME-Version: 1.0 Content-Language: en-US References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> <86eddozb72.fsf@gnu.org> <867cjfxwm3.fsf@gnu.org> From: Jim Porter In-Reply-To: <867cjfxwm3.fsf@gnu.org> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------mQUXTifleoozFwjv6e8Qb5fQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2/7/2024 11:07 PM, Eli Zaretskii wrote: > I'm not against subdividing that section. My point was that if you > want these commands to be easier to find, the subdivision itself is > not enough; you need additional measures. I think you and Stefan have successfully convinced me that there's no need to try and fuss with making arbitrary divisions of the built-in commands. It's tricky to split them up just right, and time spent on that should go towards adding indexing instead. > No objections here. But once again: your points about being able to > find the commands by categories are well-taken, and adding indexing to > make that easier would also be a good change. Attached are some initial improvements to the indexing (patch 0003 in the series). It would probably be worth adding concept indices to most/all of the built-in commands, but the few I added here are pretty straightforward, and I can just poke at this a bit at a time for the remainder. (Writing documentation isn't the most viscerally exciting thing to do, so I prefer to spread the work out.) I also added patch 0002, which moves the indexing above the "@item"s. That way, when you navigate to the entry from the index, it shows the header line listing the supported arguments when viewing the documentation as HTML. --------------mQUXTifleoozFwjv6e8Qb5fQ Content-Type: text/plain; charset=UTF-8; name="0001-Put-the-list-of-built-in-Eshell-commands-in-its-own-.patch" Content-Disposition: attachment; filename*0="0001-Put-the-list-of-built-in-Eshell-commands-in-its-own-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0ZDc0ZmM5ZDUwMGJjYzFiMmFjMzUwYjVkZjNlZGI3YjE2NzFkM2NjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgNyBGZWIgMjAyNCAxNzo1ODozMSAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBQdXQgdGhlIGxpc3Qgb2YgYnVpbHQtaW4gRXNoZWxsIGNvbW1hbmRzIGluIGl0 cyBvd24KIG1hbnVhbCBub2RlCgoqIGRvYy9taXNjL2VzaGVsbC50ZXhpIChCdWlsdC1pbnMp OiBGaXggY2FwaXRhbGl6YXRpb24gb2Ygbm9kZSB0byBiZQptb3JlIGNvbnNpc3RlbnQgd2l0 aCB0aGUgcmVzdCBvZiB0aGUgbWFudWFsLiAgRml4IGEgY3Jvc3MgcmVmZXJlbmNlLgpMaXN0 IGNoaWxkIG5vZGVzLgooTGlzdCBvZiBCdWlsdC1pbnMpOiBOZXcgc2VjdGlvbiBhbmQgbm9k ZS4KKERlZmluaW5nIE5ldyBCdWlsdC1pbnMpOiBNYWtlIHRoaXMgYSBub2RlLiAgRml4IGNh cGl0YWxpemF0aW9uLgotLS0KIGRvYy9taXNjL2VzaGVsbC50ZXhpIHwgMTYgKysrKysrKysr KysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL21pc2MvZXNoZWxsLnRleGkgYi9kb2MvbWlzYy9lc2hl bGwudGV4aQppbmRleCA1ZDNlNWM3ZGJkNi4uOWU1ZWVhNmNiNjEgMTAwNjQ0Ci0tLSBhL2Rv Yy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC00MTYs NyArNDE2LDcgQEAgQXJndW1lbnRzCiBAZW5kIHRhYmxlCiAKIEBub2RlIEJ1aWx0LWlucwot QHNlY3Rpb24gQnVpbHQtaW4gY29tbWFuZHMKK0BzZWN0aW9uIEJ1aWx0LWluIENvbW1hbmRz CiBFc2hlbGwgcHJvdmlkZXMgYSBudW1iZXIgb2YgYnVpbHQtaW4gY29tbWFuZHMsIG1hbnkg b2YgdGhlbQogaW1wbGVtZW50aW5nIGNvbW1vbiBjb21tYW5kLWxpbmUgdXRpbGl0aWVzLCBi dXQgZW5oYW5jZWQgZm9yIEVzaGVsbC4KIChUaGVzZSBidWlsdC1pbiBjb21tYW5kcyBhcmUg anVzdCBvcmRpbmFyeSBMaXNwIGZ1bmN0aW9ucyB3aG9zZSBuYW1lcwpAQCAtNDc3LDcgKzQ3 NywxNiBAQCBCdWlsdC1pbnMKIEBjb21tYW5ke2xufSBpcyB0aGUgY3VycmVudCBkaXJlY3Rv cnkuCiAKIEEgZmV3IGNvbW1hbmRzIGFyZSB3cmFwcGVycyBmb3IgbW9yZSBuaWNoZSBFbWFj cyBmZWF0dXJlcywgYW5kIGNhbiBiZQotbG9hZGVkIGFzIHBhcnQgb2YgdGhlIGVzaGVsbC14 dHJhIG1vZHVsZS4gIEB4cmVme0V4dGVuc2lvbiBtb2R1bGVzfS4KK2xvYWRlZCBhcyBwYXJ0 IG9mIHRoZSBAY29kZXtlc2hlbGwteHRyYX0gbW9kdWxlLiAgQHhyZWZ7RXh0cmEgYnVpbHQt aW4KK2NvbW1hbmRzfS4KKworQG1lbnUKKyogTGlzdCBvZiBCdWlsdC1pbnM6OgorKiBEZWZp bmluZyBOZXcgQnVpbHQtaW5zOjoKK0BlbmQgbWVudQorCitAbm9kZSBMaXN0IG9mIEJ1aWx0 LWlucworQHN1YnNlY3Rpb24gTGlzdCBvZiBCdWlsdC1pbiBDb21tYW5kcwogCiBAdGFibGUg QGNvZGUKIApAQCAtMTE5NSw3ICsxMjA0LDggQEAgQnVpbHQtaW5zCiBhc3NvY2lhdGVkIHdp dGggdGhhdCBjb25uZWN0aW9uLgogQGVuZCB0YWJsZQogCi1Ac3Vic2VjdGlvbiBEZWZpbmlu ZyBuZXcgYnVpbHQtaW4gY29tbWFuZHMKK0Bub2RlIERlZmluaW5nIE5ldyBCdWlsdC1pbnMK K0BzdWJzZWN0aW9uIERlZmluaW5nIE5ldyBCdWlsdC1pbiBDb21tYW5kcwogV2hpbGUgRXNo ZWxsIGNhbiBydW4gTGlzcCBmdW5jdGlvbnMgZGlyZWN0bHkgYXMgY29tbWFuZHMsIGl0IG1h eSBiZQogbW9yZSBjb252ZW5pZW50IHRvIHByb3ZpZGUgYSBzcGVjaWFsIGJ1aWx0LWluIGNv bW1hbmQgZm9yCiBFc2hlbGwuICBCdWlsdC1pbiBjb21tYW5kcyBhcmUganVzdCBvcmRpbmFy eSBMaXNwIGZ1bmN0aW9ucyBkZXNpZ25lZAotLSAKMi4yNS4xCgo= --------------mQUXTifleoozFwjv6e8Qb5fQ Content-Type: text/plain; charset=UTF-8; name="0002-In-Eshell-manual-put-command-index-anchors-above-the.patch" Content-Disposition: attachment; filename*0="0002-In-Eshell-manual-put-command-index-anchors-above-the.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkNWExNjcxM2I0NzA2MTdiOTg5ZWQyMTBiNGQzZWMyYWJkOTBmYzE0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFRodSwgOCBGZWIgMjAyNCAxMTozMToxNyAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMi8zXSBJbiBFc2hlbGwgbWFudWFsLCBwdXQgY29tbWFuZCBpbmRleCBhbmNob3JzIGFi b3ZlIHRoZQogaXRlbQoKVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2hlbiBuYXZpZ2F0aW5nIHRv IHRoZSBjb21tYW5kJ3MgZG9jdW1lbnRhdGlvbiBmcm9tCnRoZSBpbmRleCwgaXQgc2hvd3Mg dGhlIGl0ZW0gaGVhZGluZyAod2hpY2ggbGlzdHMgdGhlIHN1cHBvcnRlZAphcmd1bWVudHMp LgoKKiBkb2MvbWlzYy9lc2hlbGwudGV4aSAoTGlzdCBvZiBCdWlsdC1pbnMsIFRyYW1wIGV4 dGVuc2lvbnMpCihFeHRyYSBidWlsdC1pbiBjb21tYW5kcyk6IEFkanVzdCBwbGFjZW1lbnQg b2YgJ0BjbWluZGV4Jy4KLS0tCiBkb2MvbWlzYy9lc2hlbGwudGV4aSB8IDEzNCArKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NjcgaW5zZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL21p c2MvZXNoZWxsLnRleGkgYi9kb2MvbWlzYy9lc2hlbGwudGV4aQppbmRleCA5ZTVlZWE2Y2I2 MS4uM2ZmOGU1NWVkMDMgMTAwNjQ0Ci0tLSBhL2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBi L2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC00OTAsMTYgKzQ5MCwxNiBAQCBMaXN0IG9mIEJ1 aWx0LWlucwogCiBAdGFibGUgQGNvZGUKIAotQGl0ZW0gLiBAdmFye2ZpbGV9IFtAdmFye2Fy Z3VtZW50fV1AZG90c3t9CiBAY21pbmRleCAuCitAaXRlbSAuIEB2YXJ7ZmlsZX0gW0B2YXJ7 YXJndW1lbnR9XUBkb3Rze30KIFNvdXJjZSBhbiBFc2hlbGwgc2NyaXB0IG5hbWVkIEB2YXJ7 ZmlsZX0gaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQsCiBwYXNzaW5nIGFueSBAdmFye2Fy Z3VtZW50c30gdG8gdGhlIHNjcmlwdCAoQHB4cmVme1NjcmlwdHN9KS4gIFRoaXMgaXMKIG5v dCB0byBiZSBjb25mdXNlZCB3aXRoIHRoZSBjb21tYW5kIEBjb21tYW5ke3NvdXJjZX0sIHdo aWNoIHNvdXJjZXMgYQogZmlsZSBpbiBhIHN1YnNoZWxsIGVudmlyb25tZW50LgogCitAY21p bmRleCBhZGRwYXRoCiBAaXRlbSBhZGRwYXRoCiBAaXRlbXggYWRkcGF0aCBbLWJdIEB2YXJ7 ZGlyZWN0b3J5fUBkb3Rze30KLUBjbWluZGV4IGFkZHBhdGgKIEFkZHMgZWFjaCBzcGVjaWZp ZWQgQHZhcntkaXJlY3Rvcnl9IHRvIHRoZSBAY29kZXskUEFUSH0gZW52aXJvbm1lbnQKIHZh cmlhYmxlLiAgQnkgZGVmYXVsdCwgdGhpcyBhZGRzIHRoZSBkaXJlY3RvcmllcyB0byB0aGUg ZW5kIG9mCiBAY29kZXskUEFUSH0sIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgcGFzc2VkIG9u IHRoZSBjb21tYW5kIGxpbmU7IGJ5CkBAIC01MDksMzAgKzUwOSwzMCBAQCBMaXN0IG9mIEJ1 aWx0LWlucwogV2l0aCBubyBkaXJlY3RvcmllcywgcHJpbnQgdGhlIGxpc3Qgb2YgZGlyZWN0 b3JpZXMgY3VycmVudGx5IHN0b3JlZCBpbgogQGNvZGV7JFBBVEh9LgogCitAY21pbmRleCBh bGlhcwogQGl0ZW0gYWxpYXMKIEBpdGVteCBhbGlhcyBAdmFye25hbWV9IFtAdmFye2NvbW1h bmR9XQotQGNtaW5kZXggYWxpYXMKIERlZmluZSBhbiBhbGlhcyBuYW1lZCBAdmFye25hbWV9 IGFuZCBleHBhbmRpbmcgdG8gQHZhcntjb21tYW5kfSwKIGFkZGluZyBpdCB0byB0aGUgYWxp YXNlcyBmaWxlIChAcHhyZWZ7QWxpYXNlc30pLiAgSWYgQHZhcntjb21tYW5kfSBpcwogb21p dHRlZCwgZGVsZXRlIHRoZSBhbGlhcyBuYW1lZCBAdmFye25hbWV9LiAgV2l0aCBubyBhcmd1 bWVudHMgYXQgYWxsLAogbGlzdCBhbGwgdGhlIGN1cnJlbnRseS1kZWZpbmVkIGFsaWFzZXMu CiAKLUBpdGVtIGJhc2VuYW1lIEB2YXJ7ZmlsZW5hbWV9CiBAY21pbmRleCBiYXNlbmFtZQor QGl0ZW0gYmFzZW5hbWUgQHZhcntmaWxlbmFtZX0KIFJldHVybiBAdmFye2ZpbGVuYW1lfSB3 aXRob3V0IGl0cyBkaXJlY3RvcnkuCiAKLUBpdGVtIGNhdCBAdmFye2ZpbGV9QGRvdHN7fQog QGNtaW5kZXggY2F0CitAaXRlbSBjYXQgQHZhcntmaWxlfUBkb3Rze30KIENvbmNhdGVuYXRl IHRoZSBjb250ZW50cyBvZiBAdmFye2ZpbGV9cyB0byBzdGFuZGFyZCBvdXRwdXQuICBJZiBp biBhCiBwaXBlbGluZSwgb3IgaWYgYW55IG9mIHRoZSBmaWxlcyBpcyBub3QgYSByZWd1bGFy IGZpbGUsIGRpcmVjdG9yeSwgb3IKIHN5bWxpbmssIHRoZW4gdGhpcyBjb21tYW5kIHJldmVy dHMgdG8gdGhlIHN5c3RlbSdzIGRlZmluaXRpb24gb2YKIEBjb21tYW5ke2NhdH0uCiAKK0Bj bWluZGV4IGNkCiBAaXRlbSBjZAogQGl0ZW14IGNkIEB2YXJ7ZGlyZWN0b3J5fQogQGl0ZW14 IGNkIC1bQHZhcntufV0KIEBpdGVteCBjZCA9W0B2YXJ7cmVnZXhwfV0KLUBjbWluZGV4IGNk CiBDaGFuZ2UgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuICBUaGlzIGNvbW1hbmQg Y2FuIHRha2Ugc2V2ZXJhbAogZm9ybXM6CiAKQEAgLTU2NywyMCArNTY3LDIwIEBAIExpc3Qg b2YgQnVpbHQtaW5zCiBAY29kZXtlc2hlbGwtbGlzdC1maWxlcy1hZnRlci1jZH0gaXMgbm9u LUBjb2Rle25pbH0sIHRoZW4gQGNvbW1hbmR7bHN9CiBpcyBjYWxsZWQgd2l0aCBhbnkgcmVt YWluaW5nIGFyZ3VtZW50cyBhZnRlciBjaGFuZ2luZyBkaXJlY3Rvcmllcy4KIAotQGl0ZW0g Y2xlYXIgW0B2YXJ7c2Nyb2xsYmFja31dCiBAY21pbmRleCBjbGVhcgorQGl0ZW0gY2xlYXIg W0B2YXJ7c2Nyb2xsYmFja31dCiBTY3JvbGxzIHRoZSBjb250ZW50cyBvZiB0aGUgRXNoZWxs IHdpbmRvdyBvdXQgb2Ygc2lnaHQsIGxlYXZpbmcgYQogYmxhbmsgd2luZG93LiAgSWYgQHZh cntzY3JvbGxiYWNrfSBpcyBub24tQGNvZGV7bmlsfSwgdGhlIHNjcm9sbGJhY2sKIGNvbnRl bnRzIGFyZSBjbGVhcmVkIGluc3RlYWQsIGFzIHdpdGggQGNvbW1hbmR7Y2xlYXItc2Nyb2xs YmFja30uCiAKLUBpdGVtIGNsZWFyLXNjcm9sbGJhY2sKIEBjbWluZGV4IGNsZWFyLXNjcm9s bGJhY2sKK0BpdGVtIGNsZWFyLXNjcm9sbGJhY2sKIENsZWFyIHRoZSBzY3JvbGxiYWNrIGNv bnRlbnRzIG9mIHRoZSBFc2hlbGwgd2luZG93LiAgVW5saWtlIHRoZQogY29tbWFuZCBAY29t bWFuZHtjbGVhcn0sIHRoaXMgY29tbWFuZCBkZWxldGVzIGNvbnRlbnQgaW4gdGhlIEVzaGVs bAogYnVmZmVyLgogCi1AaXRlbSBjb21waWxlIFstcCB8IC1pXSBbLW0gQHZhcnttb2RlLW5h bWV9XSBAdmFye2NvbW1hbmR9QGRvdHN7fQogQGNtaW5kZXggY29tcGlsZQorQGl0ZW0gY29t cGlsZSBbLXAgfCAtaV0gWy1tIEB2YXJ7bW9kZS1uYW1lfV0gQHZhcntjb21tYW5kfUBkb3Rz e30KIFJ1biBhbiBleHRlcm5hbCBjb21tYW5kLCBzZW5kaW5nIGl0cyBvdXRwdXQgdG8gYSBj b21waWxhdGlvbiBidWZmZXIgaWYKIHRoZSBjb21tYW5kIHdvdWxkIG91dHB1dCB0byB0aGUg c2NyZWVuIGFuZCBpcyBub3QgcGFydCBvZiBhIHBpcGVsaW5lCiBvciBzdWJjb21tYW5kLgpA QCAtNTk4LDkgKzU5OCw5IEBAIExpc3Qgb2YgQnVpbHQtaW5zCiBmb3IgaXQgbGlrZSBzbzog QHNhbXB7YWxpYXMgbXlncmVwICdjb21waWxlIC0tbW9kZT1ncmVwLW1vZGUgLS0gbXlncmVw CiAkKid9LgogCitAY21pbmRleCBjcAogQGl0ZW0gY3AgW0B2YXJ7b3B0aW9ufUBkb3Rze31d IEB2YXJ7c291cmNlfSBAdmFye2Rlc3R9CiBAaXRlbSBjcCBbQHZhcntvcHRpb259QGRvdHN7 fV0gQHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KLUBjbWluZGV4IGNwCiBD b3B5IHRoZSBmaWxlIEB2YXJ7c291cmNlfSB0byBAdmFye2Rlc3R9IG9yIEB2YXJ7c291cmNl fSBpbnRvCiBAdmFye2RpcmVjdG9yeX0uCiAKQEAgLTY0NCwxNCArNjQ0LDE0IEBAIExpc3Qg b2YgQnVpbHQtaW5zCiAKIEBlbmQgdGFibGUKIAotQGl0ZW0gZGF0ZSBbQHZhcntzcGVjaWZp ZWQtdGltZX0gW0B2YXJ7em9uZX1dXQogQGNtaW5kZXggZGF0ZQorQGl0ZW0gZGF0ZSBbQHZh cntzcGVjaWZpZWQtdGltZX0gW0B2YXJ7em9uZX1dXQogUHJpbnQgdGhlIGN1cnJlbnQgbG9j YWwgdGltZSBhcyBhIGh1bWFuLXJlYWRhYmxlIHN0cmluZy4gIFRoaXMgY29tbWFuZAogaXMg YW4gYWxpYXMgdG8gdGhlIEVtYWNzIExpc3AgZnVuY3Rpb24gQGNvZGV7Y3VycmVudC10aW1l LXN0cmluZ30KIChAcHhyZWZ7VGltZSBvZiBEYXksLCwgZWxpc3AsIEdOVSBFbWFjcyBMaXNw IFJlZmVyZW5jZSBNYW51YWx9KS4KIAotQGl0ZW0gZGlmZiBbQHZhcntvcHRpb259XUBkb3Rz e30gQHZhcntvbGR9IEB2YXJ7bmV3fQogQGNtaW5kZXggZGlmZgorQGl0ZW0gZGlmZiBbQHZh cntvcHRpb259XUBkb3Rze30gQHZhcntvbGR9IEB2YXJ7bmV3fQogQ29tcGFyZSB0aGUgZmls ZXMgQHZhcntvbGR9IGFuZCBAdmFye25ld30gdXNpbmcgRW1hY3MncyBpbnRlcm5hbAogQGNv ZGV7ZGlmZn0gKG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIEBjb2Rle2VkaWZmfSkuICBAeHJl ZntDb21wYXJpbmcKIEZpbGVzLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFsfS4K QEAgLTY2MSwxOCArNjYxLDE4IEBAIExpc3Qgb2YgQnVpbHQtaW5zCiBjb21tYW5kIGRvZXMg bm90IHVzZSBFbWFjcydzIGludGVybmFsIEBjb2Rle2RpZmZ9LiAgVGhpcyBpcyB0aGUgc2Ft ZQogYXMgdXNpbmcgQHNhbXB7YWxpYXMgZGlmZiAnKmRpZmYgJEBAKid9LgogCi1AaXRlbSBk aXJuYW1lIEB2YXJ7ZmlsZW5hbWV9CiBAY21pbmRleCBkaXJuYW1lCitAaXRlbSBkaXJuYW1l IEB2YXJ7ZmlsZW5hbWV9CiBSZXR1cm4gdGhlIGRpcmVjdG9yeSBjb21wb25lbnQgb2YgQHZh cntmaWxlbmFtZX0uCiAKLUBpdGVtIGRpcnMKIEBjbWluZGV4IGRpcnMKK0BpdGVtIGRpcnMK IFByaW50cyB0aGUgZGlyZWN0b3J5IHN0YWNrLiAgRGlyZWN0b3JpZXMgY2FuIGJlIGFkZGVk IG9yIHJlbW92ZWQgZnJvbQogdGhlIHN0YWNrIHVzaW5nIHRoZSBjb21tYW5kcyBAY29tbWFu ZHtwdXNoZH0gYW5kIEBjb21tYW5ke3BvcGR9LAogcmVzcGVjdGl2ZWx5LgogCi1AaXRlbSBk dSBbQHZhcntvcHRpb259XUBkb3Rze30gQHZhcntmaWxlfUBkb3Rze30KIEBjbWluZGV4IGR1 CitAaXRlbSBkdSBbQHZhcntvcHRpb259XUBkb3Rze30gQHZhcntmaWxlfUBkb3Rze30KIFN1 bW1hcml6ZSBkaXNrIHVzYWdlIGZvciBlYWNoIGZpbGUsIHJlY3Vyc2luZyBpbnRvIGRpcmVj dG9yaWVzLgogCiBAY29tbWFuZHtkdX0gYWNjZXB0cyB0aGUgZm9sbG93aW5nIG9wdGlvbnM6 CkBAIC03MjAsOCArNzIwLDggQEAgTGlzdCBvZiBCdWlsdC1pbnMKIAogQGVuZCB0YWJsZQog Ci1AaXRlbSBlY2hvIFstbiB8IC1OXSBbQHZhcnthcmd9XUBkb3Rze30KIEBjbWluZGV4IGVj aG8KK0BpdGVtIGVjaG8gWy1uIHwgLU5dIFtAdmFye2FyZ31dQGRvdHN7fQogUHJpbnRzIHRo ZSB2YWx1ZSBvZiBlYWNoIEB2YXJ7YXJnfS4gIEJ5IGRlZmF1bHQsIHRoaXMgcHJpbnRzIGlu IGEKIExpc3AtZnJpZW5kbHkgZmFzaGlvbiAoc28gdGhhdCB0aGUgdmFsdWUgaXMgdXNlZnVs IHRvIGEgTGlzcCBjb21tYW5kCiB1c2luZyB0aGUgcmVzdWx0IG9mIEBjb21tYW5ke2VjaG99 IGFzIGFuIGFyZ3VtZW50KS4gIElmIGEgc2luZ2xlCkBAIC03MzksMTYgKzczOSwxNiBAQCBM aXN0IG9mIEJ1aWx0LWlucwogb3IgQGNvZGV7LU59IHRvIGVuYWJsZSBpdCAodGhlIGRlZmF1 bHQgd2hlbgogQGNvZGV7ZXNoZWxsLXBsYWluLWVjaG8tYmVoYXZpb3J9IGlzIG5vbi1AY29k ZXtuaWx9KS4KIAotQGl0ZW0gZW52IFtAdmFye3Zhcn09QHZhcnt2YWx1ZX1dQGRvdHN7fSBb QHZhcntjb21tYW5kfV1AZG90c3t9CiBAY21pbmRleCBlbnYKK0BpdGVtIGVudiBbQHZhcnt2 YXJ9PUB2YXJ7dmFsdWV9XUBkb3Rze30gW0B2YXJ7Y29tbWFuZH1dQGRvdHN7fQogV2l0aCBu byBhcmd1bWVudHMsIHByaW50IHRoZSBjdXJyZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4g IElmIHlvdQogcGFzcyBhcmd1bWVudHMgdG8gdGhpcyBjb21tYW5kLCB0aGVuIEBjb21tYW5k e2Vudn0gd2lsbCBleGVjdXRlIHRoZQogYXJndW1lbnRzIGFzIGEgY29tbWFuZC4gIElmIHlv dSBwYXNzIGFueSBpbml0aWFsIGFyZ3VtZW50cyBvZiB0aGUgZm9ybQogQHNhbXB7QHZhcnt2 YXJ9PUB2YXJ7dmFsdWV9fSwgQGNvbW1hbmR7ZW52fSB3aWxsIGZpcnN0IHNldCBAdmFye3Zh cn0KIHRvIEB2YXJ7dmFsdWV9IGJlZm9yZSBydW5uaW5nIHRoZSBjb21tYW5kLgogCi1AaXRl bSBlc2hlbGwtZGVidWcgW2Vycm9yIHwgZm9ybSB8IHByb2Nlc3NdQGRvdHN7fQogQGNtaW5k ZXggZXNoZWxsLWRlYnVnCitAaXRlbSBlc2hlbGwtZGVidWcgW2Vycm9yIHwgZm9ybSB8IHBy b2Nlc3NdQGRvdHN7fQogVG9nZ2xlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgRXNoZWxs IGl0c2VsZi4gIFlvdSBjYW4gcGFzcyB0aGlzCiBjb21tYW5kIG9uZSBvciBtb3JlIG9mIHRo ZSBmb2xsb3dpbmcgYXJndW1lbnRzOgogCkBAIC03NjgsMzAgKzc2OCwzMCBAQCBMaXN0IG9m IEJ1aWx0LWlucwogCiBAZW5kIGl0ZW1pemUKIAotQGl0ZW0gZXhpdAogQGNtaW5kZXggZXhp dAorQGl0ZW0gZXhpdAogQHZpbmRleCBlc2hlbGwta2lsbC1vbi1leGl0CiBFeGl0IEVzaGVs bCBhbmQgc2F2ZSB0aGUgaGlzdG9yeS4gIEJ5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBraWxs cyB0aGUKIEVzaGVsbCBidWZmZXIsIGJ1dCBpZiBAY29kZXtlc2hlbGwta2lsbC1vbi1leGl0 fSBpcyBAY29kZXtuaWx9LCB0aGVuCiB0aGUgYnVmZmVyIGlzIG1lcmVseSBidXJpZWQgaW5z dGVhZC4KIAotQGl0ZW0gZXhwb3J0IFtAdmFye25hbWV9PUB2YXJ7dmFsdWV9XUBkb3Rze30K IEBjbWluZGV4IGV4cG9ydAorQGl0ZW0gZXhwb3J0IFtAdmFye25hbWV9PUB2YXJ7dmFsdWV9 XUBkb3Rze30KIFNldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdXNpbmcgaW5wdXQgbGlrZSBC YXNoJ3MgQGNvbW1hbmR7ZXhwb3J0fSwgYXMKIGluIEBzYW1we2V4cG9ydCBAdmFye3ZhcjF9 PUB2YXJ7dmFsMX0gQHZhcnt2YXIyfT1AdmFye3ZhbDJ9IEBkb3Rze319LgogCi1AaXRlbSBn cmVwIFtAdmFye2FyZ31dQGRvdHN7fQogQGNtaW5kZXggZ3JlcAotQGl0ZW14IGFncmVwIFtA dmFye2FyZ31dQGRvdHN7fQorQGl0ZW0gZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30KIEBjbWlu ZGV4IGFncmVwCi1AaXRlbXggZWdyZXAgW0B2YXJ7YXJnfV1AZG90c3t9CitAaXRlbXggYWdy ZXAgW0B2YXJ7YXJnfV1AZG90c3t9CiBAY21pbmRleCBlZ3JlcAotQGl0ZW14IGZncmVwIFtA dmFye2FyZ31dQGRvdHN7fQorQGl0ZW14IGVncmVwIFtAdmFye2FyZ31dQGRvdHN7fQogQGNt aW5kZXggZmdyZXAKLUBpdGVteCByZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30KK0BpdGVteCBm Z3JlcCBbQHZhcnthcmd9XUBkb3Rze30KIEBjbWluZGV4IHJncmVwCi1AaXRlbXggZ2xpbXBz ZSBbQHZhcnthcmd9XUBkb3Rze30KK0BpdGVteCByZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30K IEBjbWluZGV4IGdsaW1wc2UKK0BpdGVteCBnbGltcHNlIFtAdmFye2FyZ31dQGRvdHN7fQog VGhlIEBjb21tYW5ke2dyZXB9IGNvbW1hbmRzIGFyZSBjb21wYXRpYmxlIHdpdGggR05VIEBj b21tYW5ke2dyZXB9LAogYnV0IG9wZW4gYSBjb21waWxhdGlvbiBidWZmZXIgaW4gQGNvZGV7 Z3JlcC1tb2RlfSBpbnN0ZWFkLgogQHhyZWZ7R3JlcCBTZWFyY2hpbmcsICwgLCBlbWFjcywg VGhlIEdOVSBFbWFjcyBNYW51YWx9LgpAQCAtODAzLDkgKzgwMyw5IEBAIExpc3Qgb2YgQnVp bHQtaW5zCiAkQEAqJ30sIHRob3VnaCB0aGlzIHNldHRpbmcgYXBwbGllcyB0byBhbGwgb2Yg dGhlIGJ1aWx0LWluIGNvbW1hbmRzCiBmb3Igd2hpY2ggeW91IHdvdWxkIG5lZWQgdG8gY3Jl YXRlIGEgc2VwYXJhdGUgYWxpYXMuCiAKK0BjbWluZGV4IGhpc3RvcnkKIEBpdGVtIGhpc3Rv cnkgW0B2YXJ7bn1dCiBAaXRlbXggaGlzdG9yeSBbLWFyd10gW0B2YXJ7ZmlsZW5hbWV9XQot QGNtaW5kZXggaGlzdG9yeQogUHJpbnRzIEVzaGVsbCdzIGlucHV0IGhpc3RvcnkuICBXaXRo IGEgbnVtZXJpYyBhcmd1bWVudCBAdmFye259LCB0aGlzCiBjb21tYW5kIHByaW50cyB0aGUg QHZhcntufSBtb3N0IHJlY2VudCBpdGVtcyBpbiB0aGUgaGlzdG9yeS4KIEFsdGVybmF0ZWx5 LCB5b3UgY2FuIHNwZWNpZnkgdGhlIGZvbGxvd2luZyBvcHRpb25zOgpAQCAtODI0LDggKzgy NCw4IEBAIExpc3Qgb2YgQnVpbHQtaW5zCiAKIEBlbmQgdGFibGUKIAotQGl0ZW0gaW5mbyBb QHZhcnttYW51YWx9IFtAdmFye2l0ZW19XUBkb3Rze31dCiBAY21pbmRleCBpbmZvCitAaXRl bSBpbmZvIFtAdmFye21hbnVhbH0gW0B2YXJ7aXRlbX1dQGRvdHN7fV0KIEJyb3dzZSB0aGUg YXZhaWxhYmxlIEluZm8gZG9jdW1lbnRhdGlvbi4gIFdpdGggbm8gYXJndW1lbnRzLCBicm93 c2UKIHRoZSB0b3AtbGV2ZWwgbWVudS4gIE90aGVyd2lzZSwgc2hvdyB0aGUgbWFudWFsIGZv ciBAdmFye21hbnVhbH0sCiBzZWxlY3RpbmcgdGhlIG1lbnUgZW50cnkgZm9yIEB2YXJ7aXRl bX0uCkBAIC04MzQsMjUgKzgzNCwyNSBAQCBMaXN0IG9mIEJ1aWx0LWlucwogdXNlcyBFbWFj cydzIGludGVybmFsIEluZm8gcmVhZGVyLiAgQHhyZWZ7TWlzYyBIZWxwLCAsICwgZW1hY3Ms IFRoZQogR05VIEVtYWNzIE1hbnVhbH0uCiAKLUBpdGVtIGpvYnMKIEBjbWluZGV4IGpvYnMK K0BpdGVtIGpvYnMKIExpc3Qgc3VicHJvY2Vzc2VzIG9mIHRoZSBFbWFjcyBwcm9jZXNzLCBp ZiBhbnksIHVzaW5nIHRoZSBmdW5jdGlvbgogQGNvZGV7bGlzdC1wcm9jZXNzZXN9LgogCi1A aXRlbSBraWxsIFstQHZhcntzaWduYWx9XSBbQHZhcntwaWR9IHwgQHZhcntwcm9jZXNzfV0K IEBjbWluZGV4IGtpbGwKK0BpdGVtIGtpbGwgWy1AdmFye3NpZ25hbH1dIFtAdmFye3BpZH0g fCBAdmFye3Byb2Nlc3N9XQogS2lsbCBwcm9jZXNzZXMuICBUYWtlcyBhIFBJRCBvciBhIHBy b2Nlc3Mgb2JqZWN0IGFuZCBhbiBvcHRpb25hbAogQHZhcntzaWduYWx9IHNwZWNpZmllciB3 aGljaCBjYW4gZWl0aGVyIGJlIGEgbnVtYmVyIG9yIGEgc2lnbmFsIG5hbWUuCiAKLUBpdGVt IGxpc3RpZnkgW0B2YXJ7YXJnfV1AZG90c3t9CiBAY21pbmRleCBsaXN0aWZ5CitAaXRlbSBs aXN0aWZ5IFtAdmFye2FyZ31dQGRvdHN7fQogUmV0dXJuIHRoZSBhcmd1bWVudHMgYXMgYSBz aW5nbGUgbGlzdC4gIFdpdGggYSBzaW5nbGUgYXJndW1lbnQsIHJldHVybgogaXQgYXMtaXMg aWYgaXQncyBhbHJlYWR5IGEgbGlzdCwgb3Igb3RoZXJ3aXNlIHdyYXAgaXQgaW4gYSBsaXN0 LiAgV2l0aAogbXVsdGlwbGUgYXJndW1lbnRzLCByZXR1cm4gYSBsaXN0IG9mIGFsbCBvZiB0 aGVtLgogCitAY21pbmRleCBsbgogQGl0ZW0gbG4gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2 YXJ7dGFyZ2V0fSBbQHZhcntsaW5rLW5hbWV9XQogQGl0ZW14IGxuIFtAdmFye29wdGlvbn1d QGRvdHN7fSBAdmFye3RhcmdldH1AZG90c3t9IEB2YXJ7ZGlyZWN0b3J5fQotQGNtaW5kZXgg bG4KIENyZWF0ZSBhIGxpbmsgdG8gdGhlIHNwZWNpZmllZCBAdmFye3RhcmdldH0gbmFtZWQg QHZhcntsaW5rLW5hbWV9IG9yCiBjcmVhdGUgbGlua3MgdG8gbXVsdGlwbGUgQHZhcnt0YXJn ZXRzfSBpbiBAdmFye2RpcmVjdG9yeX0uCiAKQEAgLTg4Niw4ICs4ODYsOCBAQCBMaXN0IG9m IEJ1aWx0LWlucwogCiBAZW5kIHRhYmxlCiAKLUBpdGVtIGxvY2F0ZSBAdmFye2FyZ31AZG90 c3t9CiBAY21pbmRleCBsb2NhdGUKK0BpdGVtIGxvY2F0ZSBAdmFye2FyZ31AZG90c3t9CiBB bGlhcyB0byBFbWFjcydzIEBjb2Rle2xvY2F0ZX0gZnVuY3Rpb24sIHdoaWNoIHNpbXBseSBy dW5zIHRoZSBleHRlcm5hbAogQGNvbW1hbmR7bG9jYXRlfSBjb21tYW5kIGFuZCBwYXJzZXMg dGhlIHJlc3VsdHMuCiBAeHJlZntEaXJlZCBhbmQgRmluZCwgLCAsIGVtYWNzLCBUaGUgR05V IEVtYWNzIE1hbnVhbH0uCkBAIC04OTcsOCArODk3LDggQEAgTGlzdCBvZiBCdWlsdC1pbnMK IGludGVybmFsIEBjb2Rle2xvY2F0ZX0gaXMgbm90IHVzZWQuICBUaGlzIGlzIHRoZSBzYW1l IGFzIHVzaW5nCiBAc2FtcHthbGlhcyBsb2NhdGUgJypsb2NhdGUgJEBAKid9LgogCi1AaXRl bSBscyBbQHZhcntvcHRpb259XUBkb3Rze30gW0B2YXJ7ZmlsZX1dQGRvdHN7fQogQGNtaW5k ZXggbHMKK0BpdGVtIGxzIFtAdmFye29wdGlvbn1dQGRvdHN7fSBbQHZhcntmaWxlfV1AZG90 c3t9CiBMaXN0IGluZm9ybWF0aW9uIGFib3V0IGVhY2ggQHZhcntmaWxlfSwgaW5jbHVkaW5n IHRoZSBjb250ZW50cyBvZiBhbnkKIHNwZWNpZmllZCBkaXJlY3Rvcmllcy4gIElmIEB2YXJ7 ZmlsZX0gaXMgdW5zcGVjaWZpZWQsIGxpc3QgdGhlCiBjb250ZW50cyBvZiB0aGUgY3VycmVu dCBkaXJlY3RvcnkuCkBAIC05OTksMjUgKzk5OSwyNSBAQCBMaXN0IG9mIEJ1aWx0LWlucwog CiBAZW5kIHRhYmxlCiAKLUBpdGVtIG1ha2UgW0B2YXJ7YXJnfV1AZG90c3t9CiBAY21pbmRl eCBtYWtlCitAaXRlbSBtYWtlIFtAdmFye2FyZ31dQGRvdHN7fQogUnVuIEBjb21tYW5ke21h a2V9IHRocm91Z2ggQGNvZGV7Y29tcGlsZX0gd2hlbiBydW4gYXN5bmNocm9ub3VzbHkKIChl LmcuLCBAc2FtcHttYWtlICZ9KS4gIEB4cmVme0NvbXBpbGF0aW9uLCAsICwgZW1hY3MsIFRo ZSBHTlUgRW1hY3MKIE1hbnVhbH0uICBPdGhlcndpc2UgY2FsbCB0aGUgZXh0ZXJuYWwgQGNv bW1hbmR7bWFrZX0gY29tbWFuZC4KIAotQGl0ZW0gbWFuIFtAdmFye2FyZ31dQGRvdHN7fQog QGNtaW5kZXggbWFuCitAaXRlbSBtYW4gW0B2YXJ7YXJnfV1AZG90c3t9CiBEaXNwbGF5IE1h biBwYWdlcyB1c2luZyB0aGUgRW1hY3MgQGNvZGV7bWFufSBjb21tYW5kLgogQHhyZWZ7TWFu IFBhZ2UsICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9LgogCi1AaXRlbSBta2Rp ciBbLXBdIEB2YXJ7ZGlyZWN0b3J5fUBkb3Rze30KIEBjbWluZGV4IG1rZGlyCitAaXRlbSBt a2RpciBbLXBdIEB2YXJ7ZGlyZWN0b3J5fUBkb3Rze30KIE1ha2UgbmV3IGRpcmVjdG9yaWVz LiAgV2l0aCBAY29kZXstcH0gb3IgQGNvZGV7LS1wYXJlbnRzfSwKIGF1dG9tYXRpY2FsbHkg bWFrZSBhbnkgbmVjZXNzYXJ5IHBhcmVudCBkaXJlY3RvcmllcyBhcyB3ZWxsLgogCitAY21p bmRleCBtdgogQGl0ZW0gbXYgW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7c291cmNlfSBA dmFye2Rlc3R9CiBAaXRlbXggbXYgW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7c291cmNl fUBkb3Rze30gQHZhcntkaXJlY3Rvcnl9Ci1AY21pbmRleCBtdgogUmVuYW1lIHRoZSBmaWxl IEB2YXJ7c291cmNlfSB0byBAdmFye2Rlc3R9IG9yIG1vdmUgQHZhcntzb3VyY2V9IGludG8K IEB2YXJ7ZGlyZWN0b3J5fS4KIApAQCAtMTA0OCwxNCArMTA0OCwxNCBAQCBMaXN0IG9mIEJ1 aWx0LWlucwogCiBAZW5kIHRhYmxlCiAKLUBpdGVtIG9jY3VyIEB2YXJ7cmVnZXhwfSBbQHZh cntubGluZXN9XQogQGNtaW5kZXggb2NjdXIKK0BpdGVtIG9jY3VyIEB2YXJ7cmVnZXhwfSBb QHZhcntubGluZXN9XQogQWxpYXMgdG8gRW1hY3MncyBAY29kZXtvY2N1cn0uCiBAeHJlZntP dGhlciBSZXBlYXRpbmcgU2VhcmNoLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFs fS4KIAorQGNtaW5kZXggcG9wZAogQGl0ZW0gcG9wZAogQGl0ZW0gcG9wZCArQHZhcntufQot QGNtaW5kZXggcG9wZAogUG9wIGEgZGlyZWN0b3J5IGZyb20gdGhlIGRpcmVjdG9yeSBzdGFj ayBhbmQgc3dpdGNoIHRvIGEgYW5vdGhlciBwbGFjZQogaW4gdGhlIHN0YWNrLiAgVGhpcyBj b21tYW5kIGNhbiB0YWtlIHRoZSBmb2xsb3dpbmcgZm9ybXM6CiAKQEAgLTEwNzEsMTQgKzEw NzEsMTQgQEAgTGlzdCBvZiBCdWlsdC1pbnMKIAogQGVuZCB0YWJsZQogCi1AaXRlbSBwcmlu dG5sIFtAdmFye2FyZ31dQGRvdHN7fQogQGNtaW5kZXggcHJpbnRubAorQGl0ZW0gcHJpbnRu bCBbQHZhcnthcmd9XUBkb3Rze30KIFByaW50IGFsbCB0aGUgQHZhcnthcmd9cyBzZXBhcmF0 ZWQgYnkgbmV3bGluZXMuCiAKK0BjbWluZGV4IHB1c2hkCiBAaXRlbSBwdXNoZAogQGl0ZW14 IHB1c2hkIEB2YXJ7ZGlyZWN0b3J5fQogQGl0ZW14IHB1c2hkICtAdmFye259Ci1AY21pbmRl eCBwdXNoZAogUHVzaCB0aGUgY3VycmVudCBkaXJlY3Rvcnkgb250byB0aGUgZGlyZWN0b3J5 IHN0YWNrLCB0aGVuIGNoYW5nZSB0bwogYW5vdGhlciBkaXJlY3RvcnkuICBUaGlzIGNvbW1h bmQgY2FuIHRha2UgdGhlIGZvbGxvd2luZyBmb3JtczoKIApAQCAtMTEwNywxMiArMTEwNywx MiBAQCBMaXN0IG9mIEJ1aWx0LWlucwogCiBAZW5kIHRhYmxlCiAKLUBpdGVtIHB3ZAogQGNt aW5kZXggcHdkCitAaXRlbSBwd2QKIFByaW50cyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVj dG9yeS4KIAotQGl0ZW0gcm0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7aXRlbX1AZG90 c3t9CiBAY21pbmRleCBybQorQGl0ZW0gcm0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7 aXRlbX1AZG90c3t9CiBSZW1vdmVzIGZpbGVzLCBidWZmZXJzLCBwcm9jZXNzZXMsIG9yIEVt YWNzIExpc3Agc3ltYm9scywgZGVwZW5kaW5nIG9uCiB0aGUgdHlwZSBvZiBlYWNoIEB2YXJ7 aXRlbX0uCiAKQEAgLTExNDYsNTkgKzExNDYsNTkgQEAgTGlzdCBvZiBCdWlsdC1pbnMKIAog QGVuZCB0YWJsZQogCi1AaXRlbSBybWRpciBAdmFye2RpcmVjdG9yeX1AZG90c3t9CiBAY21p bmRleCBybWRpcgorQGl0ZW0gcm1kaXIgQHZhcntkaXJlY3Rvcnl9QGRvdHN7fQogUmVtb3Zl cyBkaXJlY3RvcmllcyBpZiB0aGV5IGFyZSBlbXB0eS4KIAotQGl0ZW0gc2V0IFtAdmFye3Zh cn0gQHZhcnt2YWx1ZX1dQGRvdHN7fQogQGNtaW5kZXggc2V0CitAaXRlbSBzZXQgW0B2YXJ7 dmFyfSBAdmFye3ZhbHVlfV1AZG90c3t9CiBTZXQgdmFyaWFibGUgdmFsdWVzLCB1c2luZyB0 aGUgZnVuY3Rpb24gQGNvZGV7c2V0fSBsaWtlIGEgY29tbWFuZAogKEBweHJlZntTZXR0aW5n IFZhcmlhYmxlcywsLCBlbGlzcCwgR05VIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1hbnVhbH0p LgogVGhlIHZhbHVlIG9mIEB2YXJ7dmFyfSBjYW4gYmUgYSBzeW1ib2wsIGluIHdoaWNoIGNh c2UgaXQgcmVmZXJzIHRvIGEKIExpc3AgdmFyaWFibGUsIG9yIGEgc3RyaW5nLCByZWZlcnJp bmcgdG8gYW4gZW52aXJvbm1lbnQgdmFyaWFibGUKIChAcHhyZWZ7QXJndW1lbnRzfSkuCiAK LUBpdGVtIHNldHEgW0B2YXJ7c3ltYm9sfSBAdmFye3ZhbHVlfV1AZG90c3t9CiBAY21pbmRl eCBzZXRxCitAaXRlbSBzZXRxIFtAdmFye3N5bWJvbH0gQHZhcnt2YWx1ZX1dQGRvdHN7fQog U2V0IHZhcmlhYmxlIHZhbHVlcywgdXNpbmcgdGhlIGZ1bmN0aW9uIEBjb2Rle3NldHF9IGxp a2UgYSBjb21tYW5kCiAoQHB4cmVme1NldHRpbmcgVmFyaWFibGVzLCwsIGVsaXNwLCBHTlUg RW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfSkuCiAKLUBpdGVtIHNvdXJjZSBAdmFye2Zp bGV9IFtAdmFye2FyZ3VtZW50fV1AZG90c3t9CiBAY21pbmRleCBzb3VyY2UKK0BpdGVtIHNv dXJjZSBAdmFye2ZpbGV9IFtAdmFye2FyZ3VtZW50fV1AZG90c3t9CiBTb3VyY2UgYW4gRXNo ZWxsIHNjcmlwdCBuYW1lZCBAdmFye2ZpbGV9IGluIGEgc3Vic2hlbGwgZW52aXJvbm1lbnQs CiBwYXNzaW5nIGFueSBAdmFye2FyZ3VtZW50fXMgdG8gdGhlIHNjcmlwdCAoQHB4cmVme1Nj cmlwdHN9KS4gIFRoaXMgaXMKIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIHRoZSBjb21tYW5k IEBjb21tYW5key59LCB3aGljaCBzb3VyY2VzIGEgZmlsZQogaW4gdGhlIGN1cnJlbnQgZW52 aXJvbm1lbnQuCiAKLUBpdGVtIHRpbWUgQHZhcntjb21tYW5kfUBkb3Rze30KIEBjbWluZGV4 IHRpbWUKK0BpdGVtIHRpbWUgQHZhcntjb21tYW5kfUBkb3Rze30KIFNob3cgdGhlIHRpbWUg ZWxhcHNlZCBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiBAdmFye2NvbW1hbmR9LgogCitAY21p bmRleCB1bWFzawogQGl0ZW0gdW1hc2sgWy1TXQogQGl0ZW14IHVtYXNrIEB2YXJ7bW9kZX0K LUBjbWluZGV4IHVtYXNrCiBWaWV3IHRoZSBkZWZhdWx0IGZpbGUgcGVybWlzc2lvbnMgZm9y IG5ld2x5IGNyZWF0ZWQgZmlsZXMgYW5kCiBkaXJlY3Rvcmllcy4gIElmIHlvdSBwYXNzIEBj b2Rley1TfSBvciBAY29kZXstLXN5bWJvbGljfSwgdmlldyB0aGUKIG1vZGUgc3ltYm9saWNh bGx5LiAgV2l0aCBAdmFye21vZGV9LCBzZXQgdGhlIGRlZmF1bHQgcGVybWlzc2lvbnMgdG8K IHRoaXMgdmFsdWUuCiAKLUBpdGVtIHVuc2V0IFtAdmFye3Zhcn1dQGRvdHN7fQogQGNtaW5k ZXggdW5zZXQKK0BpdGVtIHVuc2V0IFtAdmFye3Zhcn1dQGRvdHN7fQogVW5zZXQgb25lIG9y IG1vcmUgdmFyaWFibGVzLiAgQXMgd2l0aCBAY29tbWFuZHtzZXR9LCB0aGUgdmFsdWUgb2YK IEB2YXJ7dmFyfSBjYW4gYmUgYSBzeW1ib2wsIGluIHdoaWNoIGNhc2UgaXQgcmVmZXJzIHRv IGEgTGlzcCB2YXJpYWJsZSwKIG9yIGEgc3RyaW5nLCByZWZlcnJpbmcgdG8gYW4gZW52aXJv bm1lbnQgdmFyaWFibGUuCiAKLUBpdGVtIHdhaXQgW0B2YXJ7cHJvY2Vzc31dQGRvdHN7fQog QGNtaW5kZXggd2FpdAorQGl0ZW0gd2FpdCBbQHZhcntwcm9jZXNzfV1AZG90c3t9CiBXYWl0 IHVudGlsIGVhY2ggc3BlY2lmaWVkIEB2YXJ7cHJvY2Vzc30gaGFzIGV4aXRlZC4KIAotQGl0 ZW0gd2hpY2ggQHZhcntjb21tYW5kfUBkb3Rze30KIEBjbWluZGV4IHdoaWNoCitAaXRlbSB3 aGljaCBAdmFye2NvbW1hbmR9QGRvdHN7fQogRm9yIGVhY2ggQHZhcntjb21tYW5kfSwgaWRl bnRpZnkgd2hhdCBraW5kIG9mIGNvbW1hbmQgaXQgaXMgYW5kIGl0cwogbG9jYXRpb24uCiAK LUBpdGVtIHdob2FtaQogQGNtaW5kZXggd2hvYW1pCitAaXRlbSB3aG9hbWkKIFByaW50IHRo ZSBjdXJyZW50IHVzZXIuICBUaGlzIEVzaGVsbCB2ZXJzaW9uIG9mIEBjb21tYW5ke3dob2Ft aX0gaXMKIGNvbm5lY3Rpb24tYXdhcmUsIHNvIGZvciByZW1vdGUgZGlyZWN0b3JpZXMsIGl0 IHdpbGwgcHJpbnQgdGhlIHVzZXIKIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGNvbm5lY3Rpb24u CkBAIC0yNjAxLDE3ICsyNjAxLDE3IEBAIFRyYW1wIGV4dGVuc2lvbnMKIAogQHRhYmxlIEBj b2RlCiAKLUBpdGVtIHN1IFstIHwgLWxdIFtAdmFye3VzZXJ9XQogQGNtaW5kZXggc3UKK0Bp dGVtIHN1IFstIHwgLWxdIFtAdmFye3VzZXJ9XQogVXNlcyBUUkFNUCdzIEBjb21tYW5ke3N1 fSBtZXRob2QgKEBweHJlZntJbmxpbmUgbWV0aG9kcywgLCAsIHRyYW1wLAogVGhlIFRyYW1w IE1hbnVhbH0pIHRvIGNoYW5nZSB0aGUgY3VycmVudCB1c2VyIHRvIEB2YXJ7dXNlcn0gKG9y IHJvb3QKIGlmIHVuc3BlY2lmaWVkKS4gIFdpdGggQGNvZGV7LX0sIEBjb2Rley1sfSwgb3Ig QGNvZGV7LS1sb2dpbn0sIHByb3ZpZGUKIGEgbG9naW4gZW52aXJvbm1lbnQuCiAKLUBpdGVt IHN1ZG8gWy11IEB2YXJ7dXNlcn1dIFstcyB8IEB2YXJ7Y29tbWFuZH1AZG90c3t9XQogQGNt aW5kZXggc3VkbwotQGl0ZW14IGRvYXMgWy11IEB2YXJ7dXNlcn1dIFstcyB8IEB2YXJ7Y29t bWFuZH1AZG90c3t9XQorQGl0ZW0gc3VkbyBbLXUgQHZhcnt1c2VyfV0gWy1zIHwgQHZhcntj b21tYW5kfUBkb3Rze31dCiBAY21pbmRleCBkb2FzCitAaXRlbXggZG9hcyBbLXUgQHZhcnt1 c2VyfV0gWy1zIHwgQHZhcntjb21tYW5kfUBkb3Rze31dCiBVc2VzIFRSQU1QJ3MgQGNvbW1h bmR7c3Vkb30gb3IgQGNvbW1hbmR7ZG9hc30gbWV0aG9kIChAcHhyZWZ7SW5saW5lCiBtZXRo b2RzLCAsICwgdHJhbXAsIFRoZSBUcmFtcCBNYW51YWx9KSB0byBydW4gQHZhcntjb21tYW5k fSBhcyByb290CiB2aWEgQGNvbW1hbmR7c3Vkb30gb3IgQGNvbW1hbmR7ZG9hc30uICBXaGVu IHNwZWNpZnlpbmcgQGNvZGV7LXUKQEAgLTI2MzAsNTkgKzI2MzAsNTkgQEAgRXh0cmEgYnVp bHQtaW4gY29tbWFuZHMKIAogQHRhYmxlIEBjb2RlCiAKLUBpdGVtIGNvdW50IEB2YXJ7aXRl bX0gQHZhcntzZXF9IFtAdmFye29wdGlvbn1dQGRvdHN7fQogQGNtaW5kZXggY291bnQKK0Bp dGVtIGNvdW50IEB2YXJ7aXRlbX0gQHZhcntzZXF9IFtAdmFye29wdGlvbn1dQGRvdHN7fQog QSB3cmFwcGVyIGFyb3VuZCB0aGUgZnVuY3Rpb24gQGNvZGV7Y2wtY291bnR9IChAcHhyZWZ7 U2VhcmNoaW5nCiBTZXF1ZW5jZXMsLCwgY2wsIEdOVSBFbWFjcyBDb21tb24gTGlzcCBFbXVs YXRpb259KS4gIFRoaXMgY29tbWFuZCBjYW4KIGJlIHVzZWQgZm9yIGNvbXBhcmluZyBsaXN0 cyBvZiBzdHJpbmdzLgogCi1AaXRlbSBleHByIEB2YXJ7c3RyfSBbQHZhcntzZXBhcmF0b3J9 XSBbQHZhcnthcmd9XUBkb3Rze30KIEBjbWluZGV4IGV4cHIKK0BpdGVtIGV4cHIgQHZhcntz dHJ9IFtAdmFye3NlcGFyYXRvcn1dIFtAdmFye2FyZ31dQGRvdHN7fQogQW4gaW1wbGVtZW50 YXRpb24gb2YgQGNvbW1hbmR7ZXhwcn0gdXNpbmcgdGhlIENhbGMgcGFja2FnZS4KIEB4cmVm e1RvcCwsLCBjYWxjLCBUaGUgR05VIEVtYWNzIENhbGN1bGF0b3J9LgogCi1AaXRlbSBmZiBA dmFye2RpcmVjdG9yeX0gQHZhcntwYXR0ZXJufQogQGNtaW5kZXggZmYKK0BpdGVtIGZmIEB2 YXJ7ZGlyZWN0b3J5fSBAdmFye3BhdHRlcm59CiBTaG9ydGhhbmQgZm9yIHRoZSB0aGUgZnVu Y3Rpb24gQGNvZGV7ZmluZC1uYW1lLWRpcmVkfSAoQHB4cmVme0RpcmVkCiBhbmQgRmluZCwg LCAsIGVtYWNzLCBUaGUgRW1hY3MgRWRpdG9yfSkuCiAKLUBpdGVtIGdmIEB2YXJ7ZGlyZWN0 b3J5fSBAdmFye3JlZ2V4cH0KIEBjbWluZGV4IGdmCitAaXRlbSBnZiBAdmFye2RpcmVjdG9y eX0gQHZhcntyZWdleHB9CiBTaG9ydGhhbmQgZm9yIHRoZSB0aGUgZnVuY3Rpb24gQGNvZGV7 ZmluZC1ncmVwLWRpcmVkfSAoQHB4cmVme0RpcmVkCiBhbmQgRmluZCwgLCAsIGVtYWNzLCBU aGUgRW1hY3MgRWRpdG9yfSkuCiAKLUBpdGVtIGludGVyc2VjdGlvbiBAdmFye2xpc3QxfSBA dmFye2xpc3QyfSBbQHZhcntvcHRpb259XUBkb3Rze30KIEBjbWluZGV4IGludGVyc2VjdGlv bgorQGl0ZW0gaW50ZXJzZWN0aW9uIEB2YXJ7bGlzdDF9IEB2YXJ7bGlzdDJ9IFtAdmFye29w dGlvbn1dQGRvdHN7fQogQSB3cmFwcGVyIGFyb3VuZCB0aGUgZnVuY3Rpb24gQGNvZGV7Y2wt aW50ZXJzZWN0aW9ufSAoQHB4cmVme0xpc3RzIGFzCiBTZXRzLCwsIGNsLCBHTlUgRW1hY3Mg Q29tbW9uIExpc3AgRW11bGF0aW9ufSkuICBUaGlzIGNvbW1hbmQKIGNhbiBiZSB1c2VkIGZv ciBjb21wYXJpbmcgbGlzdHMgb2Ygc3RyaW5ncy4KIAotQGl0ZW0gbWlzbWF0Y2ggQHZhcntz ZXExfSBAdmFye3NlcTJ9IFtAdmFye29wdGlvbn1dQGRvdHN7fQogQGNtaW5kZXggbWlzbWF0 Y2gKK0BpdGVtIG1pc21hdGNoIEB2YXJ7c2VxMX0gQHZhcntzZXEyfSBbQHZhcntvcHRpb259 XUBkb3Rze30KIEEgd3JhcHBlciBhcm91bmQgdGhlIGZ1bmN0aW9uIEBjb2Rle2NsLW1pc21h dGNofSAoQHB4cmVme1NlYXJjaGluZwogU2VxdWVuY2VzLCwsIGNsLCBHTlUgRW1hY3MgQ29t bW9uIExpc3AgRW11bGF0aW9ufSkuICBUaGlzIGNvbW1hbmQgY2FuCiBiZSB1c2VkIGZvciBj b21wYXJpbmcgbGlzdHMgb2Ygc3RyaW5ncy4KIAotQGl0ZW0gc2V0LWRpZmZlcmVuY2UgQHZh cntsaXN0MX0gQHZhcntsaXN0Mn0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9CiBAY21pbmRleCBz ZXQtZGlmZmVyZW5jZQorQGl0ZW0gc2V0LWRpZmZlcmVuY2UgQHZhcntsaXN0MX0gQHZhcnts aXN0Mn0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9CiBBIHdyYXBwZXIgYXJvdW5kIHRoZSBmdW5j dGlvbiBAY29kZXtjbC1zZXQtZGlmZmVyZW5jZX0gKEBweHJlZntMaXN0cwogYXMgU2V0cyws LCBjbCwgR05VIEVtYWNzIENvbW1vbiBMaXNwIEVtdWxhdGlvbn0pLiAgVGhpcyBjb21tYW5k IGNhbiBiZQogdXNlZCBmb3IgY29tcGFyaW5nIGxpc3RzIG9mIHN0cmluZ3MuCiAKLUBpdGVt IHNldC1leGNsdXNpdmUtb3IgQHZhcntsaXN0MX0gQHZhcntsaXN0Mn0gW0B2YXJ7b3B0aW9u fV1AZG90c3t9CiBAY21pbmRleCBzZXQtZXhjbHVzaXZlLW9yCitAaXRlbSBzZXQtZXhjbHVz aXZlLW9yIEB2YXJ7bGlzdDF9IEB2YXJ7bGlzdDJ9IFtAdmFye29wdGlvbn1dQGRvdHN7fQog QSB3cmFwcGVyIGFyb3VuZCB0aGUgZnVuY3Rpb24gQGNvZGV7Y2wtc2V0LWV4Y2x1c2l2ZS1v cn0gKEBweHJlZntMaXN0cwogYXMgU2V0cywsLCBjbCwgR05VIEVtYWNzIENvbW1vbiBMaXNw IEVtdWxhdGlvbn0pLiAgVGhpcyBjb21tYW5kIGNhbiBiZQogdXNlZCBmb3IgY29tcGFyaW5n IGxpc3RzIG9mIHN0cmluZ3MuCiAKLUBpdGVtIHN1YnN0aXR1dGUgQHZhcntuZXd9IEB2YXJ7 b2xkfSBAdmFye3NlcX0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9CiBAY21pbmRleCBzdWJzdGl0 dXRlCitAaXRlbSBzdWJzdGl0dXRlIEB2YXJ7bmV3fSBAdmFye29sZH0gQHZhcntzZXF9IFtA dmFye29wdGlvbn1dQGRvdHN7fQogQSB3cmFwcGVyIGFyb3VuZCB0aGUgZnVuY3Rpb24gQGNv ZGV7Y2wtc3Vic3RpdHV0ZX0gKEBweHJlZntTZXF1ZW5jZQogRnVuY3Rpb25zLCwsIGNsLCBH TlUgRW1hY3MgQ29tbW9uIExpc3AgRW11bGF0aW9ufSkuICBUaGlzIGNvbW1hbmQgY2FuCiBi ZSB1c2VkIGZvciBjb21wYXJpbmcgbGlzdHMgb2Ygc3RyaW5ncy4KIAotQGl0ZW0gdW5pb24g QHZhcntsaXN0MX0gQHZhcntsaXN0Mn0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9CiBAY21pbmRl eCB1bmlvbgorQGl0ZW0gdW5pb24gQHZhcntsaXN0MX0gQHZhcntsaXN0Mn0gW0B2YXJ7b3B0 aW9ufV1AZG90c3t9CiBBIHdyYXBwZXIgYXJvdW5kIHRoZSBmdW5jdGlvbiBAY29kZXtjbC11 bmlvbn0gKEBweHJlZntMaXN0cyBhcyBTZXRzLCwsCiBjbCwgR05VIEVtYWNzIENvbW1vbiBM aXNwIEVtdWxhdGlvbn0pLiAgVGhpcyBjb21tYW5kIGNhbiBiZSB1c2VkIGZvcgogY29tcGFy aW5nIGxpc3RzIG9mIHN0cmluZ3MuCi0tIAoyLjI1LjEKCg== --------------mQUXTifleoozFwjv6e8Qb5fQ Content-Type: text/plain; charset=UTF-8; name="0003-Add-concept-indices-for-some-Eshell-commands.patch" Content-Disposition: attachment; filename="0003-Add-concept-indices-for-some-Eshell-commands.patch" Content-Transfer-Encoding: base64 RnJvbSAwYzg0M2E4NjM0ZDVmZWE1ZDNkOGEyMWQ2YzU4MTlhYmIzZjkxMzZjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFRodSwgOCBGZWIgMjAyNCAxMTo0NDowNSAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBBZGQgY29uY2VwdCBpbmRpY2VzIGZvciBzb21lIEVzaGVsbCBjb21tYW5kcwoK KiBkb2MvbWlzYy9lc2hlbGwudGV4aSAoTGlzdCBvZiBCdWlsdC1pbnMpOiBBZGQgaW5kaWNl cyBmb3Igc29tZQpkaXJlY3RvcnktIGFuZCBwcm9jZXNzLXJlbGF0ZWQgY29tbWFuZHMuCihB bGlhc2VzKTogQ2hhbmdlIHRvIGNvbmNlcHQgaW5kZXguCi0tLQogZG9jL21pc2MvZXNoZWxs LnRleGkgfCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9taXNjL2VzaGVsbC50ZXhpIGIv ZG9jL21pc2MvZXNoZWxsLnRleGkKaW5kZXggM2ZmOGU1NWVkMDMuLjNkMGFjZTUxZDFlIDEw MDY0NAotLS0gYS9kb2MvbWlzYy9lc2hlbGwudGV4aQorKysgYi9kb2MvbWlzYy9lc2hlbGwu dGV4aQpAQCAtMyw3ICszLDcgQEAKIEBzZXRmaWxlbmFtZSAuLi8uLi9pbmZvL2VzaGVsbC5p bmZvCiBAc2V0dGl0bGUgRXNoZWxsOiBUaGUgRW1hY3MgU2hlbGwKIEBpbmNsdWRlIGRvY3N0 eWxlLnRleGkKLUBkZWZpbmRleCBjbQorQGRlZmNvZGVpbmRleCBjbQogQHN5bmNvZGVpbmRl eCB2ciBmbgogQGMgJSoqZW5kIG9mIGhlYWRlcgogCkBAIC01MjksNiArNTI5LDcgQEAgTGlz dCBvZiBCdWlsdC1pbnMKIEBjb21tYW5ke2NhdH0uCiAKIEBjbWluZGV4IGNkCitAY2luZGV4 IGRpcmVjdG9yaWVzLCBjaGFuZ2luZwogQGl0ZW0gY2QKIEBpdGVteCBjZCBAdmFye2RpcmVj dG9yeX0KIEBpdGVteCBjZCAtW0B2YXJ7bn1dCkBAIC02NjYsNiArNjY3LDcgQEAgTGlzdCBv ZiBCdWlsdC1pbnMKIFJldHVybiB0aGUgZGlyZWN0b3J5IGNvbXBvbmVudCBvZiBAdmFye2Zp bGVuYW1lfS4KIAogQGNtaW5kZXggZGlycworQGNpbmRleCBkaXJlY3Rvcnkgc3RhY2ssIGxp c3RpbmcKIEBpdGVtIGRpcnMKIFByaW50cyB0aGUgZGlyZWN0b3J5IHN0YWNrLiAgRGlyZWN0 b3JpZXMgY2FuIGJlIGFkZGVkIG9yIHJlbW92ZWQgZnJvbQogdGhlIHN0YWNrIHVzaW5nIHRo ZSBjb21tYW5kcyBAY29tbWFuZHtwdXNoZH0gYW5kIEBjb21tYW5ke3BvcGR9LApAQCAtODM1 LDExICs4MzcsMTMgQEAgTGlzdCBvZiBCdWlsdC1pbnMKIEdOVSBFbWFjcyBNYW51YWx9Lgog CiBAY21pbmRleCBqb2JzCitAY2luZGV4IHByb2Nlc3NlcywgbGlzdGluZwogQGl0ZW0gam9i cwogTGlzdCBzdWJwcm9jZXNzZXMgb2YgdGhlIEVtYWNzIHByb2Nlc3MsIGlmIGFueSwgdXNp bmcgdGhlIGZ1bmN0aW9uCiBAY29kZXtsaXN0LXByb2Nlc3Nlc30uCiAKIEBjbWluZGV4IGtp bGwKK0BjaW5kZXggcHJvY2Vzc2VzLCBzaWduYWxpbmcKIEBpdGVtIGtpbGwgWy1AdmFye3Np Z25hbH1dIFtAdmFye3BpZH0gfCBAdmFye3Byb2Nlc3N9XQogS2lsbCBwcm9jZXNzZXMuICBU YWtlcyBhIFBJRCBvciBhIHByb2Nlc3Mgb2JqZWN0IGFuZCBhbiBvcHRpb25hbAogQHZhcntz aWduYWx9IHNwZWNpZmllciB3aGljaCBjYW4gZWl0aGVyIGJlIGEgbnVtYmVyIG9yIGEgc2ln bmFsIG5hbWUuCkBAIC0xMDU0LDYgKzEwNTgsNyBAQCBMaXN0IG9mIEJ1aWx0LWlucwogQHhy ZWZ7T3RoZXIgUmVwZWF0aW5nIFNlYXJjaCwgLCAsIGVtYWNzLCBUaGUgR05VIEVtYWNzIE1h bnVhbH0uCiAKIEBjbWluZGV4IHBvcGQKK0BjaW5kZXggZGlyZWN0b3J5IHN0YWNrLCByZW1v dmluZyBmcm9tCiBAaXRlbSBwb3BkCiBAaXRlbSBwb3BkICtAdmFye259CiBQb3AgYSBkaXJl Y3RvcnkgZnJvbSB0aGUgZGlyZWN0b3J5IHN0YWNrIGFuZCBzd2l0Y2ggdG8gYSBhbm90aGVy IHBsYWNlCkBAIC0xMDc2LDYgKzEwODEsNyBAQCBMaXN0IG9mIEJ1aWx0LWlucwogUHJpbnQg YWxsIHRoZSBAdmFye2FyZ31zIHNlcGFyYXRlZCBieSBuZXdsaW5lcy4KIAogQGNtaW5kZXgg cHVzaGQKK0BjaW5kZXggZGlyZWN0b3J5IHN0YWNrLCBhZGRpbmcgdG8KIEBpdGVtIHB1c2hk CiBAaXRlbXggcHVzaGQgQHZhcntkaXJlY3Rvcnl9CiBAaXRlbXggcHVzaGQgK0B2YXJ7bn0K QEAgLTE1MDEsNyArMTUwNyw3IEBAIEFsaWFzZXMKIAogQG5vZGUgUmVtb3RlIEFjY2Vzcwog QHNlY3Rpb24gUmVtb3RlIEFjY2VzcwotQGNtaW5kZXggcmVtb3RlIGFjY2VzcworQGNpbmRl eCByZW1vdGUgYWNjZXNzCiAKIFNpbmNlIEVzaGVsbCB1c2VzIEVtYWNzIGZhY2lsaXRpZXMg Zm9yIG1vc3Qgb2YgaXRzIGZ1bmN0aW9uYWxpdHksIHlvdQogY2FuIGFjY2VzcyByZW1vdGUg aG9zdHMgdHJhbnNwYXJlbnRseS4gIFRvIGNvbm5lY3QgdG8gYSByZW1vdGUgaG9zdCwKLS0g CjIuMjUuMQoK --------------mQUXTifleoozFwjv6e8Qb5fQ-- From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 08 Feb 2024 21:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter , Eli Zaretskii Cc: 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.170742795719901 (code B ref 68963); Thu, 08 Feb 2024 21:33:01 +0000 Received: (at 68963) by debbugs.gnu.org; 8 Feb 2024 21:32:37 +0000 Received: from localhost ([127.0.0.1]:33729 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rYC0b-0005Av-6T for submit@debbugs.gnu.org; Thu, 08 Feb 2024 16:32:37 -0500 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]:54438) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rYC0V-0005Ae-1r for 68963@debbugs.gnu.org; Thu, 08 Feb 2024 16:32:35 -0500 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-5610c233b95so401331a12.0 for <68963@debbugs.gnu.org>; Thu, 08 Feb 2024 13:32:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707427930; x=1708032730; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=rWgCCxt4iSWmpBGHFMTXAGkPbzggtZ6MJP2XS/KwH0E=; b=BAVED6yHo7MOtI0HMzmkGgHil2mbObdSLVYXA7lQon+S5fhA9W6lDGbZPR6uP0PAcW 7dOpj8w+vJH3C+OPu90xDJYkzhBH2U/GC/X38wqDSytwxVnk1ZDB5b6oJhg0mZSM1wsM LcADGDiPoUbKNVCxXL53Kqe59V2+AdMNey6n+5+3qlrqyoFSHu6EpbKynECHG39qlZfy GxnCw5XzHur8nNKkCnfp89S2UgQTw6rHgLX9j0+Fx73URl8AmSK2yhiFd5OwG6tGD4Rf eQOYCu692qtA3Ypf/moUps1sh5CwsEqU7EVCFSRM6ij9WEh07uUBRNZcPN8ie8y/6Wof rs6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707427930; x=1708032730; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rWgCCxt4iSWmpBGHFMTXAGkPbzggtZ6MJP2XS/KwH0E=; b=KbdZQ/w1Y15uUYvQWtloN89U20FBNSG1jwCCaQ/gUagL/uzH5Yh6jCMHvP6d3siEgW Ymy12TZ4sEMgA4EkuLQZgg/AMdm8IjGWR7Ov4b6/D8xXcWzSHHKfuHFW6UCLolLGz++n lrUG3t4WV9J55znGiRDsAdn3g7e+MPG5sHQoGZ5AVmyeBMju/JBc7qn1x4EyBm/PKlBw lVaObM5g3rDz8NTTjt4sLpwlFGlIidxy5UuPSmjhM0o9uwqcOubFFGl6v4BpA7ux8E6d wCoejk3xVgf5uI04LFiT7wZYsYR2wirhksXUDyEh+TTy/WhBunCZT3RDOqqnO7a8Uy4M aZWg== X-Gm-Message-State: AOJu0YwqUw02NbyJUxHSOPQtjF27wljSnD7ibfMs+/ap4ZVaqBSCcNgK 8uI5m2Fs4lQsyVnfE/tO3y003h+BFlK9AHniOADz5E9AIiWiXupFwaMbP/e3Bwjbf/2XtP4h7cV 9+qLmFiC4MCGa1zRP361ykfybquA= X-Google-Smtp-Source: AGHT+IGVaonCdUAvrtdZNrmYhgoUdQCfbwDEE7opUjyNf78CObKVhEc71pVq4c8nGB19ECs5idKAP76SmkWjco6q0i0= X-Received: by 2002:a50:ee88:0:b0:55f:335:8b77 with SMTP id f8-20020a50ee88000000b0055f03358b77mr329949edr.39.1707427930349; Thu, 08 Feb 2024 13:32:10 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Thu, 8 Feb 2024 13:32:09 -0800 From: Stefan Kangas In-Reply-To: References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> <86eddozb72.fsf@gnu.org> MIME-Version: 1.0 Date: Thu, 8 Feb 2024 13:32:09 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jim Porter writes: > Ok, no problem. It just seemed a bit hard to navigate to me, but I don't > have any issues with keeping all the commands together. I don't want to object to splitting it up or anything like that. I'm only offering my perspective and ideas. Should you go a different route, here are some ideas to improve your categorization: # Commands for Directories cd, dirs, du, ls, mkdir, popd, pushd, pwd, rmdir # Commands for Files cat, cp, diff, ln, mv, rm Probably unify these into one? # Commands for Searching grep, agrep, egrep, fgrep, rgrep, glimpse, info, locate, man, occur "info" and "man" might belong under Miscellaneous Commands. BTW, the "glimpse" command could use some documentation. It's not as popular as "grep", AFAIK, and many users don't know what it does. # Commands for Variables env, export, set, setq, unset # Commands for Using Other Commands ., addpath, alias, compile, jobs, kill, source, time, wait, which Rather than "Using Other Commands" isn't this called "job control" or something like that? # Miscellaneous Commands basename, clear, clear-scrollback, date, dirname, echo, eshell-debug, exit, history, listify, make, printnl, umask, whoami "basename", "dirname" might belong under files/directories. > How about the attached patch instead? It just moves the list of commands > to a sub-node, and also makes the "defining new built-ins" a proper > sub-node too. That should keep things a bit easier to navigate, and then > we can add more indexing as needed later. Yeah, this would also be an improvement. BTW, another idea that might work is to offer both a summary in the form of a table/list, and the detailed documentation in subnodes. For example, the above list placing commands into different categories could go on the first page of your most recent patch. Indexing would definitely help, too. It's the first thing I reach for in any manual. Thanks again for working on improving the Eshell manual. It's much appreciated. From unknown Tue Jun 17 22:00:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 09 Feb 2024 07:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter Cc: stefankangas@gmail.com, 68963@debbugs.gnu.org Received: via spool by 68963-submit@debbugs.gnu.org id=B68963.170746234226002 (code B ref 68963); Fri, 09 Feb 2024 07:06:02 +0000 Received: (at 68963) by debbugs.gnu.org; 9 Feb 2024 07:05:42 +0000 Received: from localhost ([127.0.0.1]:40560 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rYKxC-0006lJ-0b for submit@debbugs.gnu.org; Fri, 09 Feb 2024 02:05:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57506) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rYKxA-0006kv-GD for 68963@debbugs.gnu.org; Fri, 09 Feb 2024 02:05:40 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rYKwq-0007f0-Ag; Fri, 09 Feb 2024 02:05:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=gHk5ZoGy59qobg8obUvDLKjN3efy3t3Z8dvL02gRjY0=; b=UNPQu2vMKk1E BX0RPvj6tUWPCdQuLT+ZebI8/je1z2vp54uRrTdCUCWTs9xMxAhBN0LLKkZA7b0JRQ9yMzdc6m6Lv +YXH8KZl1Jhe2sOs9uOqaPOSH/KH5hqm6TxEdwNdhyexUF+vMVrzBTpC4/8ITlOlCuaIkSnYt9+q7 8F0UnkOzbF5X1MVVrfUuTF8iYKGZYq95BcWcxjIlPSVxENrm9OrlMRJ3KvrkRaquxNxeUcOcnlgU+ EocZeXDqmNINaj5iGDABllBBnMsrCrSrkD2idz86m7BCYhLpP6xA63AbP24m+MbnUqf2Fpa1Bq7Q3 MW5njTwr8/E1vK+S8gsOPg==; Date: Fri, 09 Feb 2024 09:05:18 +0200 Message-Id: <861q9mw21d.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <1e440e86-1d6f-c52a-8749-4eb28bc51986@gmail.com> (message from Jim Porter on Thu, 8 Feb 2024 12:30:46 -0800) References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> <86eddozb72.fsf@gnu.org> <867cjfxwm3.fsf@gnu.org> <1e440e86-1d6f-c52a-8749-4eb28bc51986@gmail.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 8 Feb 2024 12:30:46 -0800 > Cc: stefankangas@gmail.com, 68963@debbugs.gnu.org > From: Jim Porter > > > No objections here. But once again: your points about being able to > > find the commands by categories are well-taken, and adding indexing to > > make that easier would also be a good change. > > Attached are some initial improvements to the indexing (patch 0003 in > the series). It would probably be worth adding concept indices to > most/all of the built-in commands, but the few I added here are pretty > straightforward, and I can just poke at this a bit at a time for the > remainder. (Writing documentation isn't the most viscerally exciting > thing to do, so I prefer to spread the work out.) > > I also added patch 0002, which moves the indexing above the "@item"s. > That way, when you navigate to the entry from the index, it shows the > header line listing the supported arguments when viewing the > documentation as HTML. LGTM, thanks. Yes, index entries should always be before the corresponding @item's. From unknown Tue Jun 17 22:00:27 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jim Porter Subject: bug#68963: closed (Re: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections) Message-ID: References: <0257620b-a90f-6dbf-4c2c-3f103b447778@gmail.com> <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> X-Gnu-PR-Message: they-closed 68963 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 68963@debbugs.gnu.org Date: Sat, 10 Feb 2024 01:46:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1707529562-9482-1" This is a multi-part message in MIME format... ------------=_1707529562-9482-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into s= ubsections which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 68963@debbugs.gnu.org. --=20 68963: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D68963 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1707529562-9482-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 68963-done) by debbugs.gnu.org; 10 Feb 2024 01:45:21 +0000 Received: from localhost ([127.0.0.1]:57457 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rYcQi-0002Qp-Ln for submit@debbugs.gnu.org; Fri, 09 Feb 2024 20:45:20 -0500 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]:44273) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rYcQh-0002QR-Jz for 68963-done@debbugs.gnu.org; Fri, 09 Feb 2024 20:45:19 -0500 Received: by mail-oi1-x233.google.com with SMTP id 5614622812f47-3beb504c985so697822b6e.0 for <68963-done@debbugs.gnu.org>; Fri, 09 Feb 2024 17:45:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707529498; x=1708134298; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=MYObS9S1X3rv49a2GqIX9o8oAVsXo1lcfYEjQe8Bvgg=; b=cR3bbNNxHj41W9irl8FZRLjdjDr2hCDc03pHQdw1ls6ghigpTZ1K4nHmuYL6opK1kP ++pyXdeOCsn7mqC+9+0JVDyD8rxt3EtTMKYym02xVk2BkakaTOKz4SZY7yNzok44ccvX WhIzQYjU2SLxAgtJDOPHt30jCYSWkFfGlmKKY5iDgHn/AKnM/ZdJLepCnzEs5rGNqVBF zfVFlJqQBehLSkt9RUHlAUElgK3kFjwPAHQF/TeJS9cc07MXQXgRL01dJoZvA/xAnirG hLxHJqW3BJ58T6FNLvURyksU2mUFHHu1FUzfQOcrQCcYvFgz287QxTyPsOXl8RmzBPlS 4iHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707529498; x=1708134298; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MYObS9S1X3rv49a2GqIX9o8oAVsXo1lcfYEjQe8Bvgg=; b=Dus3YReU0wmKKDRo3igYBe65+EbfWDbyUHaSG+1XAs8Um17YkunsSaoGNssktmj+jo yoRVIBwuKlXA5P+61BzZMTwYLfHw9copNK4FdgFRHr0BoPbD0/zQB4vwbRvATZe6IUQ9 bVAX1UuLDvHlGhKiVIgShRzNSjMqSulZeba8Z4ANoenWxJQwhknGXII6BtsUl7x08bG0 ULN5Tch1SqGZAivklc5yNfMKGTvttOG1UQNyoCtvr5wCbjM2o33k5MVncJONWO2ycczV hhQn6GHwV2n4xhoRfOMywK/C27PKILgn1+WoO34nieug25/PaQTJ6n9CLxzOYxPwgkX7 1YUQ== X-Forwarded-Encrypted: i=1; AJvYcCVRKAgi/pf/nE8aLUqeGwKs/GRpBxsul6C2AWIW80imEIVbtdDnMjbuh8vicixDckZldi3Mpl/Pk3XBNBhlQ6yBa218yxtfJnMWqQ== X-Gm-Message-State: AOJu0YzoIXqQAjvpwc4A+nhMy1HyCjNUT6PN+IwcMxg/ZzelS0r6R36+ nAmHyD3edlfqvoBo+j6EQKVW+wW/yovqOIehB84uFiHs0RIN+9La X-Google-Smtp-Source: AGHT+IFIE63TEvXRvQwaOScTUniqIsFJKcsrC35GrdjmdHJffE0VjVV6UGL2D8VP03Ll4X7t9U2dbg== X-Received: by 2002:a05:6808:6409:b0:3bf:e24c:4019 with SMTP id fg9-20020a056808640900b003bfe24c4019mr963301oib.7.1707529498589; Fri, 09 Feb 2024 17:44:58 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVkiS/oaHY+b1wfR7I8uY6sbXFnOXWxwMDPJuUU4BmJeaJ+3lOp1Xpgt7uAgMr2I24BfNIdQe/C4JLI7xHIw9ayfRtSArq7Vsp/Eg== Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id le22-20020a056a004fd600b006e0a30c8c8dsm503913pfb.117.2024.02.09.17.44.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 09 Feb 2024 17:44:58 -0800 (PST) Message-ID: <0257620b-a90f-6dbf-4c2c-3f103b447778@gmail.com> Date: Fri, 9 Feb 2024 17:44:59 -0800 MIME-Version: 1.0 Subject: Re: bug#68963: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Content-Language: en-US To: Eli Zaretskii References: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> <86mssdymon.fsf@gnu.org> <7ba997dc-80ed-1915-0953-e013fa8a7162@gmail.com> <86eddozb72.fsf@gnu.org> <867cjfxwm3.fsf@gnu.org> <1e440e86-1d6f-c52a-8749-4eb28bc51986@gmail.com> <861q9mw21d.fsf@gnu.org> From: Jim Porter In-Reply-To: <861q9mw21d.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68963-done Cc: stefankangas@gmail.com, 68963-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 2/8/2024 11:05 PM, Eli Zaretskii wrote: > LGTM, thanks. Yes, index entries should always be before the > corresponding @item's. Thanks, good to know for sure. Merged to master as de5acc3b0d8, so closing this now. I'll keep looking for more places to add indexing to the manual as I go through it. ------------=_1707529562-9482-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 7 Feb 2024 00:03:08 +0000 Received: from localhost ([127.0.0.1]:55368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXVP8-0003DT-68 for submit@debbugs.gnu.org; Tue, 06 Feb 2024 19:03:08 -0500 Received: from lists.gnu.org ([2001:470:142::17]:53010) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXVP4-0003Cy-OE for submit@debbugs.gnu.org; Tue, 06 Feb 2024 19:03:04 -0500 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 1rXVOl-0000kk-Oa for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:02:44 -0500 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rXVOf-0004Mb-2n for bug-gnu-emacs@gnu.org; Tue, 06 Feb 2024 19:02:42 -0500 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-5cdbc4334edso4875006a12.3 for ; Tue, 06 Feb 2024 16:02:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707264155; x=1707868955; darn=gnu.org; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=sQed+nERYSyH8xcNwE7loqstrEblFZoI6Rs93rZB2gk=; b=DaiMy/gQ+VmYFzGDuGn5NZbnJ8CVRoou8Irs7xS0Dl6cJ4qhMkOSoZ0w+QEPImpWvK pDNo1LyhOSvUq2IVz3R0T5qTubWeoRxBQIeTsjwlwL6gwkpvKZa3sY7yf8w3ygRdt2OI RMeQvz8172Rd190lDq5uLA2YobrIa8H0Jek/vfO7oaN/KA6aa9LuJ5OZKryyVCUXOfL3 64G3I5+X3pl4SkY3KaJusQ3vm8V1LTcZjQArXu4Uk8yV/Rw/JL3qrHd2pbE9nQx26gVV YFBUeNwFo9K71Ai5VL8PvBwLmoJD53hq2e0rwFIte9HfazDWO3qdBLXfM3OPztuBoi6I jysA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707264155; x=1707868955; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sQed+nERYSyH8xcNwE7loqstrEblFZoI6Rs93rZB2gk=; b=D5LtmtSh9gXR2i7ymuE5ZH9gME66rYthQm3+VSBSfnuhFLUMLNufPQYH1ivjXP+Qtr 7BUBoarnfP3CYsLyyD7LoQq+aB9/hIrcKKcVQ4KdypK9uM7cT8L47hlI29iN6YX6qANR DcGETC/EPAvDSREkxyCj0b7sEVxz2SB79QiXEbtATVfbaMDsLS/5zdQEPUdJnmU/9eDc iytsT8Pxt741iclaJYoSpZjHuBeCcKxDA76h/TMNcnWYmiAhbPg7YxQBuXTeAXeqdh6y ZKl/upUzDjmHIDbHgM2eHk3GRkAhKycXFE4UKP9y1W9FqVxEckwGtmHOpYDK6l3t0dfp zqRw== X-Gm-Message-State: AOJu0YyqxLnqHqftFHI8a6cAbeillnqBV6MYxxrwIBdBfeyPVbMxVq28 4OMUCKEHQ59UWJ6OGz8d1cFo3P0BOmTKiAIdH9n9bgaygma8LNIcdbb7/p7M X-Google-Smtp-Source: AGHT+IHtt5gLOsW1125UoszV3q1CdlARHKKd3f8+6xvOy+13LrWJtvin2M3uZiyOQYOOzlGMFdmiUw== X-Received: by 2002:a17:90b:3508:b0:296:3ca5:df7b with SMTP id ls8-20020a17090b350800b002963ca5df7bmr1065662pjb.40.1707264155067; Tue, 06 Feb 2024 16:02:35 -0800 (PST) Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id sm16-20020a17090b2e5000b00296aa266ffesm129267pjb.31.2024.02.06.16.02.33 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Feb 2024 16:02:34 -0800 (PST) Content-Type: multipart/mixed; boundary="------------kf40TWkKs0Hp0Bo9JkxrEbjG" Message-ID: <7c6e1a19-8657-f72a-4372-c1caa34bc4c5@gmail.com> Date: Tue, 6 Feb 2024 16:02:32 -0800 MIME-Version: 1.0 X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US To: bug-gnu-emacs@gnu.org From: Jim Porter Subject: 30.0.50; [PATCH] Split Eshell built-in command documentation into subsections Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=jporterbugs@gmail.com; helo=mail-pg1-x533.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) This is a multi-part message in MIME format. --------------kf40TWkKs0Hp0Bo9JkxrEbjG Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Currently, the Eshell manual lists all the built-in commands in one section, which can make it hard to find the commands related to the topic you care about. Here's a patch to split this into subsections of various (loosely-defined) topics. I welcome any suggestions about the division or the name of the subsections. For example, I split them into "Commands for Directories" and "Commands for Files", but an alternate scheme could be "Commands for Files and Directories" and "Commands for Changing the Current Directory". Here's how I split the commands up in the patch, so you don't have to read through a huge diff: # Commands for Directories cd, dirs, du, ls, mkdir, popd, pushd, pwd, rmdir # Commands for Files cat, cp, diff, ln, mv, rm # Commands for Searching grep, agrep, egrep, fgrep, rgrep, glimpse, info, locate, man, occur # Commands for Variables env, export, set, setq, unset # Commands for Using Other Commands ., addpath, alias, compile, jobs, kill, source, time, wait, which # Miscellaneous Commands basename, clear, clear-scrollback, date, dirname, echo, eshell-debug, exit, history, listify, make, printnl, umask, whoami --------------kf40TWkKs0Hp0Bo9JkxrEbjG Content-Type: text/plain; charset=UTF-8; name="0001-Split-Eshell-built-in-commands-documentation-into-su.patch" Content-Disposition: attachment; filename*0="0001-Split-Eshell-built-in-commands-documentation-into-su.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkZmYzOGI5MzMwNTFiOWE5YTQ5NjgxNDA5M2I1OTg0NjYyY2MyMjU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgNiBGZWIgMjAyNCAxNTo1MzoxNyAtMDgwMApTdWJqZWN0OiBbUEFU Q0hdIFNwbGl0IEVzaGVsbCBidWlsdC1pbiBjb21tYW5kcyBkb2N1bWVudGF0aW9uIGludG8g c3Vic2VjdGlvbnMKCiogZG9jL21pc2MvZXNoZWxsLnRleGkgKEJ1aWx0LWlucyk6IE1vdmUg YnVpbHQtaW4gY29tbWFuZHMgdG8uLi4KKENvbW1hbmRzIGZvciBEaXJlY3RvcmllcywgQ29t bWFuZHMgZm9yIEZpbGVzLCBDb21tYW5kcyBmb3IgU2VhcmNoaW5nKQooQ29tbWFuZHMgZm9y IFZhcmlhYmxlcywgQ29tbWFuZHMgZm9yIFVzaW5nIE90aGVyIENvbW1hbmRzKQooTWlzY2Vs bGFuZW91cyBDb21tYW5kcyk6IC4uLiB0aGVzZS4KLS0tCiBkb2MvbWlzYy9lc2hlbGwudGV4 aSB8IDkyNSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgNDg0IGluc2VydGlvbnMoKyksIDQ0MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhp CmluZGV4IDVkM2U1YzdkYmQ2Li5jM2Q5ZWVhZTUwMyAxMDA2NDQKLS0tIGEvZG9jL21pc2Mv ZXNoZWxsLnRleGkKKysrIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKQEAgLTQ3OSw0NSArNDc5 LDE5IEBAIEJ1aWx0LWlucwogQSBmZXcgY29tbWFuZHMgYXJlIHdyYXBwZXJzIGZvciBtb3Jl IG5pY2hlIEVtYWNzIGZlYXR1cmVzLCBhbmQgY2FuIGJlCiBsb2FkZWQgYXMgcGFydCBvZiB0 aGUgZXNoZWxsLXh0cmEgbW9kdWxlLiAgQHhyZWZ7RXh0ZW5zaW9uIG1vZHVsZXN9LgogCi1A dGFibGUgQGNvZGUKLQotQGl0ZW0gLiBAdmFye2ZpbGV9IFtAdmFye2FyZ3VtZW50fV1AZG90 c3t9Ci1AY21pbmRleCAuCi1Tb3VyY2UgYW4gRXNoZWxsIHNjcmlwdCBuYW1lZCBAdmFye2Zp bGV9IGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LAotcGFzc2luZyBhbnkgQHZhcnthcmd1 bWVudHN9IHRvIHRoZSBzY3JpcHQgKEBweHJlZntTY3JpcHRzfSkuICBUaGlzIGlzCi1ub3Qg dG8gYmUgY29uZnVzZWQgd2l0aCB0aGUgY29tbWFuZCBAY29tbWFuZHtzb3VyY2V9LCB3aGlj aCBzb3VyY2VzIGEKLWZpbGUgaW4gYSBzdWJzaGVsbCBlbnZpcm9ubWVudC4KLQotQGl0ZW0g YWRkcGF0aAotQGl0ZW14IGFkZHBhdGggWy1iXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9Ci1A Y21pbmRleCBhZGRwYXRoCi1BZGRzIGVhY2ggc3BlY2lmaWVkIEB2YXJ7ZGlyZWN0b3J5fSB0 byB0aGUgQGNvZGV7JFBBVEh9IGVudmlyb25tZW50Ci12YXJpYWJsZS4gIEJ5IGRlZmF1bHQs IHRoaXMgYWRkcyB0aGUgZGlyZWN0b3JpZXMgdG8gdGhlIGVuZCBvZgotQGNvZGV7JFBBVEh9 LCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lOyBi eQotcGFzc2luZyBAY29kZXstYn0gb3IgQGNvZGV7LS1iZWdpbn0sIEVzaGVsbCB3aWxsIGlu c3RlYWQgYWRkIHRoZQotZGlyZWN0b3JpZXMgdG8gdGhlIGJlZ2lubmluZy4KLQotV2l0aCBu byBkaXJlY3RvcmllcywgcHJpbnQgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgY3VycmVudGx5 IHN0b3JlZCBpbgotQGNvZGV7JFBBVEh9LgotCi1AaXRlbSBhbGlhcwotQGl0ZW14IGFsaWFz IEB2YXJ7bmFtZX0gW0B2YXJ7Y29tbWFuZH1dCi1AY21pbmRleCBhbGlhcwotRGVmaW5lIGFu IGFsaWFzIG5hbWVkIEB2YXJ7bmFtZX0gYW5kIGV4cGFuZGluZyB0byBAdmFye2NvbW1hbmR9 LAotYWRkaW5nIGl0IHRvIHRoZSBhbGlhc2VzIGZpbGUgKEBweHJlZntBbGlhc2VzfSkuICBJ ZiBAdmFye2NvbW1hbmR9IGlzCi1vbWl0dGVkLCBkZWxldGUgdGhlIGFsaWFzIG5hbWVkIEB2 YXJ7bmFtZX0uICBXaXRoIG5vIGFyZ3VtZW50cyBhdCBhbGwsCi1saXN0IGFsbCB0aGUgY3Vy cmVudGx5LWRlZmluZWQgYWxpYXNlcy4KLQotQGl0ZW0gYmFzZW5hbWUgQHZhcntmaWxlbmFt ZX0KLUBjbWluZGV4IGJhc2VuYW1lCi1SZXR1cm4gQHZhcntmaWxlbmFtZX0gd2l0aG91dCBp dHMgZGlyZWN0b3J5LgorQG1lbnUKKyogQ29tbWFuZHMgZm9yIERpcmVjdG9yaWVzOjoKKyog Q29tbWFuZHMgZm9yIEZpbGVzOjoKKyogQ29tbWFuZHMgZm9yIFNlYXJjaGluZzo6CisqIENv bW1hbmRzIGZvciBWYXJpYWJsZXM6OgorKiBDb21tYW5kcyBmb3IgVXNpbmcgT3RoZXIgQ29t bWFuZHM6OgorKiBNaXNjZWxsYW5lb3VzIENvbW1hbmRzOjoKKyogRGVmaW5pbmcgTmV3IEJ1 aWx0LWluIENvbW1hbmRzOjoKK0BlbmQgbWVudQogCi1AaXRlbSBjYXQgQHZhcntmaWxlfUBk b3Rze30KLUBjbWluZGV4IGNhdAotQ29uY2F0ZW5hdGUgdGhlIGNvbnRlbnRzIG9mIEB2YXJ7 ZmlsZX1zIHRvIHN0YW5kYXJkIG91dHB1dC4gIElmIGluIGEKLXBpcGVsaW5lLCBvciBpZiBh bnkgb2YgdGhlIGZpbGVzIGlzIG5vdCBhIHJlZ3VsYXIgZmlsZSwgZGlyZWN0b3J5LCBvcgot c3ltbGluaywgdGhlbiB0aGlzIGNvbW1hbmQgcmV2ZXJ0cyB0byB0aGUgc3lzdGVtJ3MgZGVm aW5pdGlvbiBvZgotQGNvbW1hbmR7Y2F0fS4KK0Bub2RlIENvbW1hbmRzIGZvciBEaXJlY3Rv cmllcworQHN1YnNlY3Rpb24gQ29tbWFuZHMgZm9yIERpcmVjdG9yaWVzCitAdGFibGUgQGNv ZGUKIAogQGl0ZW0gY2QKIEBpdGVteCBjZCBAdmFye2RpcmVjdG9yeX0KQEAgLTU1OCwxMDQg KzUzMiw2IEBAIEJ1aWx0LWlucwogQGNvZGV7ZXNoZWxsLWxpc3QtZmlsZXMtYWZ0ZXItY2R9 IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuIEBjb21tYW5ke2xzfQogaXMgY2FsbGVkIHdpdGgg YW55IHJlbWFpbmluZyBhcmd1bWVudHMgYWZ0ZXIgY2hhbmdpbmcgZGlyZWN0b3JpZXMuCiAK LUBpdGVtIGNsZWFyIFtAdmFye3Njcm9sbGJhY2t9XQotQGNtaW5kZXggY2xlYXIKLVNjcm9s bHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBFc2hlbGwgd2luZG93IG91dCBvZiBzaWdodCwgbGVh dmluZyBhCi1ibGFuayB3aW5kb3cuICBJZiBAdmFye3Njcm9sbGJhY2t9IGlzIG5vbi1AY29k ZXtuaWx9LCB0aGUgc2Nyb2xsYmFjawotY29udGVudHMgYXJlIGNsZWFyZWQgaW5zdGVhZCwg YXMgd2l0aCBAY29tbWFuZHtjbGVhci1zY3JvbGxiYWNrfS4KLQotQGl0ZW0gY2xlYXItc2Ny b2xsYmFjawotQGNtaW5kZXggY2xlYXItc2Nyb2xsYmFjawotQ2xlYXIgdGhlIHNjcm9sbGJh Y2sgY29udGVudHMgb2YgdGhlIEVzaGVsbCB3aW5kb3cuICBVbmxpa2UgdGhlCi1jb21tYW5k IEBjb21tYW5ke2NsZWFyfSwgdGhpcyBjb21tYW5kIGRlbGV0ZXMgY29udGVudCBpbiB0aGUg RXNoZWxsCi1idWZmZXIuCi0KLUBpdGVtIGNvbXBpbGUgWy1wIHwgLWldIFstbSBAdmFye21v ZGUtbmFtZX1dIEB2YXJ7Y29tbWFuZH1AZG90c3t9Ci1AY21pbmRleCBjb21waWxlCi1SdW4g YW4gZXh0ZXJuYWwgY29tbWFuZCwgc2VuZGluZyBpdHMgb3V0cHV0IHRvIGEgY29tcGlsYXRp b24gYnVmZmVyIGlmCi10aGUgY29tbWFuZCB3b3VsZCBvdXRwdXQgdG8gdGhlIHNjcmVlbiBh bmQgaXMgbm90IHBhcnQgb2YgYSBwaXBlbGluZQotb3Igc3ViY29tbWFuZC4KLQotV2l0aCB0 aGUgQGNvZGV7LXB9IG9yIEBjb2Rley0tcGxhaW59IG9wdGlvbnMsIGFsd2F5cyBzZW5kIHRo ZSBvdXRwdXQKLXRvIHRoZSBFc2hlbGwgYnVmZmVyOyBzaW1pbGFybHksIHdpdGggQGNvZGV7 LWl9IG9yCi1AY29kZXstLWludGVyYWN0aXZlfSwgYWx3YXlzIHNlbmQgdGhlIG91dHB1dCB0 byBhIGNvbXBpbGF0aW9uIGJ1ZmZlci4KLVlvdSBjYW4gYWxzbyBzZXQgdGhlIG1vZGUgb2Yg dGhlIGNvbXBpbGF0aW9uIGJ1ZmZlciB3aXRoIEBjb2Rley1tCi1AdmFye21vZGUtbmFtZX19 IG9yIEBjb2Rley0tbW9kZSBAdmFye21vZGUtbmFtZX19LgotCi1AY29tbWFuZHtjb21waWxl fSBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gZGVmaW5pbmcgYWxpYXNlcywgc28KLXRo YXQgaW50ZXJhY3RpdmVseSwgdGhlIG91dHB1dCBzaG93cyB1cCBpbiBhIGNvbXBpbGF0aW9u IGJ1ZmZlciwgYnV0Ci15b3UgY2FuIHN0aWxsIHBpcGUgdGhlIG91dHB1dCBlbHNld2hlcmUg aWYgZGVzaXJlZC4gIEZvciBleGFtcGxlLCBpZgoteW91IGhhdmUgYSBncmVwLWxpa2UgY29t bWFuZCBvbiB5b3VyIHN5c3RlbSwgeW91IG1pZ2h0IGRlZmluZSBhbiBhbGlhcwotZm9yIGl0 IGxpa2Ugc286IEBzYW1we2FsaWFzIG15Z3JlcCAnY29tcGlsZSAtLW1vZGU9Z3JlcC1tb2Rl IC0tIG15Z3JlcAotJConfS4KLQotQGl0ZW0gY3AgW0B2YXJ7b3B0aW9ufUBkb3Rze31dIEB2 YXJ7c291cmNlfSBAdmFye2Rlc3R9Ci1AaXRlbSBjcCBbQHZhcntvcHRpb259QGRvdHN7fV0g QHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KLUBjbWluZGV4IGNwCi1Db3B5 IHRoZSBmaWxlIEB2YXJ7c291cmNlfSB0byBAdmFye2Rlc3R9IG9yIEB2YXJ7c291cmNlfSBp bnRvCi1AdmFye2RpcmVjdG9yeX0uCi0KLUB2aW5kZXggZXNoZWxsLWNwLW92ZXJ3cml0ZS1m aWxlcwotQHZpbmRleCBlc2hlbGwtY3AtaW50ZXJhY3RpdmUtcXVlcnkKLUlmIEBjb2Rle2Vz aGVsbC1jcC1vdmVyd3JpdGUtZmlsZXN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuCi1AY29t bWFuZHtjcH0gd2lsbCBvdmVyd3JpdGUgZmlsZXMgd2l0aG91dCB3YXJuaW5nLiAgSWYKLUBj b2Rle2VzaGVsbC1jcC1pbnRlcmFjdGl2ZS1xdWVyeX0gaXMgbm9uLUBjb2Rle25pbH0sIHRo ZW4KLUBjb21tYW5ke2NwfSB3aWxsIGFzayBiZWZvcmUgb3ZlcndyaXRpbmcgYW55dGhpbmcu Ci0KLUBjb21tYW5ke2NwfSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKLQotQHRh YmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hcmNoaXZlfQotRXF1aXZh bGVudCB0byBAY29kZXstLW5vLWRlcmVmZXJlbmNlIC0tcHJlc2VydmUgLS1yZWN1cnNpdmV9 LgotCi1AaXRlbSBAY29kZXstZH0sIEBjb2Rley0tbm8tZGVyZWZlcmVuY2V9Ci1Eb24ndCBk ZXJlZmVyZW5jZSBzeW1ib2xpYyBsaW5rcyB3aGVuIGNvcHlpbmc7IGluc3RlYWQsIGNvcHkg dGhlIGxpbmsKLWl0c2VsZi4KLQotQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQot TmV2ZXIgcHJvbXB0IGZvciBjb25maXJtYXRpb24gYmVmb3JlIGNvcHlpbmcgYSBmaWxlLgot Ci1AaXRlbSBAY29kZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9Ci1Qcm9tcHQgZm9yIGNv bmZpcm1hdGlvbiBiZWZvcmUgY29weWluZyBhIGZpbGUgaWYgdGhlIHRhcmdldCBhbHJlYWR5 Ci1leGlzdHMuCi0KLUBpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQotUnVuIHRo ZSBjb21tYW5kLCBidXQgZG9uJ3QgY29weSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlm IHlvdQotd2FudCB0byBwcmV2aWV3IHdoYXQgd291bGQgYmUgcmVtb3ZlZCB3aGVuIGNhbGxp bmcgQGNvbW1hbmR7Y3B9LgotCi1AaXRlbSBAY29kZXstcH0sIEBjb2Rley0tcHJlc2VydmV9 Ci1BdHRlbXB0IHRvIHByZXNlcnZlIGZpbGUgYXR0cmlidXRlcyB3aGVuIGNvcHlpbmcuCi0K LUBpdGVtIEBjb2Rley1yfSwgQGNvZGV7LVJ9LCBAY29kZXstLXJlY3Vyc2l2ZX0KLUNvcHkg YW55IHNwZWNpZmllZCBkaXJlY3RvcmllcyBhbmQgdGhlaXIgY29udGVudHMgcmVjdXJzaXZl bHkuCi0KLUBpdGVtIEBjb2Rley12fSwgQGNvZGV7LS12ZXJib3NlfQotUHJpbnQgdGhlIG5h bWUgb2YgZWFjaCBmaWxlIGJlZm9yZSBjb3B5aW5nIGl0LgotCi1AZW5kIHRhYmxlCi0KLUBp dGVtIGRhdGUgW0B2YXJ7c3BlY2lmaWVkLXRpbWV9IFtAdmFye3pvbmV9XV0KLUBjbWluZGV4 IGRhdGUKLVByaW50IHRoZSBjdXJyZW50IGxvY2FsIHRpbWUgYXMgYSBodW1hbi1yZWFkYWJs ZSBzdHJpbmcuICBUaGlzIGNvbW1hbmQKLWlzIGFuIGFsaWFzIHRvIHRoZSBFbWFjcyBMaXNw IGZ1bmN0aW9uIEBjb2Rle2N1cnJlbnQtdGltZS1zdHJpbmd9Ci0oQHB4cmVme1RpbWUgb2Yg RGF5LCwsIGVsaXNwLCBHTlUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfSkuCi0KLUBp dGVtIGRpZmYgW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7b2xkfSBAdmFye25ld30KLUBj bWluZGV4IGRpZmYKLUNvbXBhcmUgdGhlIGZpbGVzIEB2YXJ7b2xkfSBhbmQgQHZhcntuZXd9 IHVzaW5nIEVtYWNzJ3MgaW50ZXJuYWwKLUBjb2Rle2RpZmZ9IChub3QgdG8gYmUgY29uZnVz ZWQgd2l0aCBAY29kZXtlZGlmZn0pLiAgQHhyZWZ7Q29tcGFyaW5nCi1GaWxlcywgLCAsIGVt YWNzLCBUaGUgR05VIEVtYWNzIE1hbnVhbH0uCi0KLUB2aW5kZXggZXNoZWxsLXBsYWluLWRp ZmYtYmVoYXZpb3IKLUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1kaWZmLWJlaGF2aW9yfSBpcyBu b24tQGNvZGV7bmlsfSwgdGhlbiB0aGlzCi1jb21tYW5kIGRvZXMgbm90IHVzZSBFbWFjcydz IGludGVybmFsIEBjb2Rle2RpZmZ9LiAgVGhpcyBpcyB0aGUgc2FtZQotYXMgdXNpbmcgQHNh bXB7YWxpYXMgZGlmZiAnKmRpZmYgJEBAKid9LgotCi1AaXRlbSBkaXJuYW1lIEB2YXJ7Zmls ZW5hbWV9Ci1AY21pbmRleCBkaXJuYW1lCi1SZXR1cm4gdGhlIGRpcmVjdG9yeSBjb21wb25l bnQgb2YgQHZhcntmaWxlbmFtZX0uCi0KIEBpdGVtIGRpcnMKIEBjbWluZGV4IGRpcnMKIFBy aW50cyB0aGUgZGlyZWN0b3J5IHN0YWNrLiAgRGlyZWN0b3JpZXMgY2FuIGJlIGFkZGVkIG9y IHJlbW92ZWQgZnJvbQpAQCAtNzExLDIzNSArNTg3LDU4IEBAIEJ1aWx0LWlucwogCiBAZW5k IHRhYmxlCiAKLUBpdGVtIGVjaG8gWy1uIHwgLU5dIFtAdmFye2FyZ31dQGRvdHN7fQotQGNt aW5kZXggZWNobwotUHJpbnRzIHRoZSB2YWx1ZSBvZiBlYWNoIEB2YXJ7YXJnfS4gIEJ5IGRl ZmF1bHQsIHRoaXMgcHJpbnRzIGluIGEKLUxpc3AtZnJpZW5kbHkgZmFzaGlvbiAoc28gdGhh dCB0aGUgdmFsdWUgaXMgdXNlZnVsIHRvIGEgTGlzcCBjb21tYW5kCi11c2luZyB0aGUgcmVz dWx0IG9mIEBjb21tYW5ke2VjaG99IGFzIGFuIGFyZ3VtZW50KS4gIElmIGEgc2luZ2xlCi1h cmd1bWVudCBpcyBwYXNzZWQsIEBjb21tYW5ke2VjaG99IHByaW50cyB0aGF0OyBpZiBtdWx0 aXBsZSBhcmd1bWVudHMKLWFyZSBwYXNzZWQsIGl0IHByaW50cyBhIGxpc3Qgb2YgYWxsIHRo ZSBhcmd1bWVudHM7IG90aGVyd2lzZSwgaXQKLXByaW50cyB0aGUgZW1wdHkgc3RyaW5nLgot Ci1AdmluZGV4IGVzaGVsbC1wbGFpbi1lY2hvLWJlaGF2aW9yCi1JZiBAY29kZXtlc2hlbGwt cGxhaW4tZWNoby1iZWhhdmlvcn0gaXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke2VjaG99 Ci13aWxsIHRyeSB0byBiZWhhdmUgbW9yZSBsaWtlIGEgcGxhaW4gc2hlbGwncyBAY29tbWFu ZHtlY2hvfSwgcHJpbnRpbmcKLWVhY2ggYXJndW1lbnQgYXMgYSBzdHJpbmcsIHNlcGFyYXRl ZCBieSBhIHNwYWNlLgotCi1Zb3UgY2FuIGNvbnRyb2wgd2hldGhlciBAY29tbWFuZHtlY2hv fSBvdXRwdXRzIGEgdHJhaWxpbmcgbmV3bGluZQotdXNpbmcgQGNvZGV7LW59IHRvIGRpc2Fi bGUgdGhlIHRyYWlsaW5nIG5ld2xpbmUgKHRoZSBkZWZhdWx0IGJlaGF2aW9yKQotb3IgQGNv ZGV7LU59IHRvIGVuYWJsZSBpdCAodGhlIGRlZmF1bHQgd2hlbgotQGNvZGV7ZXNoZWxsLXBs YWluLWVjaG8tYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9KS4KK0BpdGVtIGxzIFtAdmFy e29wdGlvbn1dQGRvdHN7fSBbQHZhcntmaWxlfV1AZG90c3t9CitAY21pbmRleCBscworTGlz dCBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIEB2YXJ7ZmlsZX0sIGluY2x1ZGluZyB0aGUgY29u dGVudHMgb2YgYW55CitzcGVjaWZpZWQgZGlyZWN0b3JpZXMuICBJZiBAdmFye2ZpbGV9IGlz IHVuc3BlY2lmaWVkLCBsaXN0IHRoZQorY29udGVudHMgb2YgdGhlIGN1cnJlbnQgZGlyZWN0 b3J5LgogCi1AaXRlbSBlbnYgW0B2YXJ7dmFyfT1AdmFye3ZhbHVlfV1AZG90c3t9IFtAdmFy e2NvbW1hbmR9XUBkb3Rze30KLUBjbWluZGV4IGVudgotV2l0aCBubyBhcmd1bWVudHMsIHBy aW50IHRoZSBjdXJyZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4gIElmIHlvdQotcGFzcyBh cmd1bWVudHMgdG8gdGhpcyBjb21tYW5kLCB0aGVuIEBjb21tYW5ke2Vudn0gd2lsbCBleGVj dXRlIHRoZQotYXJndW1lbnRzIGFzIGEgY29tbWFuZC4gIElmIHlvdSBwYXNzIGFueSBpbml0 aWFsIGFyZ3VtZW50cyBvZiB0aGUgZm9ybQotQHNhbXB7QHZhcnt2YXJ9PUB2YXJ7dmFsdWV9 fSwgQGNvbW1hbmR7ZW52fSB3aWxsIGZpcnN0IHNldCBAdmFye3Zhcn0KLXRvIEB2YXJ7dmFs dWV9IGJlZm9yZSBydW5uaW5nIHRoZSBjb21tYW5kLgorQHZpbmRleCBlc2hlbGwtbHMtaW5p dGlhbC1hcmdzCitUaGUgdXNlciBvcHRpb24gQGNvZGV7ZXNoZWxsLWxzLWluaXRpYWwtYXJn c30gY29udGFpbnMgYSBsaXN0IG9mCithcmd1bWVudHMgdG8gaW5jbHVkZSB3aXRoIGFueSBj YWxsIHRvIEBjb21tYW5ke2xzfS4gIEZvciBleGFtcGxlLCB5b3UKK2NhbiBpbmNsdWRlIHRo ZSBvcHRpb24gQG9wdGlvbnstaH0gdG8gYWx3YXlzIHVzZSBhIG1vcmUgaHVtYW4tcmVhZGFi bGUKK2Zvcm1hdC4KIAotQGl0ZW0gZXNoZWxsLWRlYnVnIFtlcnJvciB8IGZvcm0gfCBwcm9j ZXNzXUBkb3Rze30KLUBjbWluZGV4IGVzaGVsbC1kZWJ1ZwotVG9nZ2xlIGRlYnVnZ2luZyBp bmZvcm1hdGlvbiBmb3IgRXNoZWxsIGl0c2VsZi4gIFlvdSBjYW4gcGFzcyB0aGlzCi1jb21t YW5kIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOgorQHZpbmRleCBl c2hlbGwtbHMtdXNlLWNvbG9ycworSWYgQGNvZGV7ZXNoZWxsLWxzLXVzZS1jb2xvcnN9IGlz IG5vbi1AY29kZXtuaWx9LCB0aGUgY29udGVudHMgb2YgYQorZGlyZWN0b3J5IGlzIGNvbG9y LWNvZGVkIGFjY29yZGluZyB0byBmaWxlIHR5cGUgYW5kIHN0YXR1cy4gIFRoZXNlCitjb2xv cnMgYW5kIHRoZSByZWdleHBzIHVzZWQgdG8gaWRlbnRpZnkgdGhlaXIgY29ycmVzcG9uZGlu ZyBmaWxlcyBjYW4KK2JlIGN1c3RvbWl6ZWQgdmlhIEB3e0BrYmR7TS14IGN1c3RvbWl6ZS1n cm91cCBAa2V5e1JFVH0gZXNoZWxsLWxzCitAa2V5e1JFVH19fS4KIAotQGl0ZW1pemUgQGJ1 bGxldAorQGNvbW1hbmR7bHN9IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKIAot QGl0ZW0KLUBjb2Rle2Vycm9yfSwgdG8gZW5hYmxlL2Rpc2FibGUgRXNoZWxsIHRyYXBwaW5n IGVycm9ycyB3aGVuCi1ldmFsdWF0aW5nIGNvbW1hbmRzOworQHRhYmxlIEBhc2lzCiAKLUBp dGVtCi1AY29kZXtmb3JtfSwgdG8gc2hvdy9oaWRlIEVzaGVsbCBjb21tYW5kIGZvcm0gbWFu aXB1bGF0aW9uIGluIHRoZQotYnVmZmVyIEBjb2Rleyplc2hlbGwgbGFzdCBjbWQqfTsgb3IK K0BpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hbGx9CitMaXN0IGFsbCBmaWxlcywgaW5jbHVk aW5nIG9uZXMgc3RhcnRpbmcgd2l0aCBAc2FtcHsufS4KIAotQGl0ZW0KLUBjb2Rle3Byb2Nl c3N9LCB0byBzaG93L2hpZGUgZXh0ZXJuYWwgcHJvY2VzcyBldmVudHMgaW4gdGhlIGJ1ZmZl cgotQGNvZGV7KmVzaGVsbCBsYXN0IGNtZCp9LgorQGl0ZW0gQGNvZGV7LUF9LCBAY29kZXst LWFsbW9zdC1hbGx9CitMaWtlIEBjb2Rley0tYWxsfSwgYnV0IGRvbid0IGxpc3QgdGhlIGN1 cnJlbnQgZGlyZWN0b3J5IChAZmlsZXsufSkgb3IKK3RoZSBwYXJlbnQgZGlyZWN0b3J5IChA ZmlsZXsuLn0pLgogCi1AZW5kIGl0ZW1pemUKK0BpdGVtIEBjb2Rley1jfSwgQGNvZGV7LS1i eS1jdGltZX0KK1NvcnQgZmlsZXMgYnkgbGFzdCBzdGF0dXMgY2hhbmdlIHRpbWUsIHdpdGgg bmV3ZXN0IGZpbGVzIGZpcnN0LgogCi1AaXRlbSBleGl0Ci1AY21pbmRleCBleGl0Ci1Admlu ZGV4IGVzaGVsbC1raWxsLW9uLWV4aXQKLUV4aXQgRXNoZWxsIGFuZCBzYXZlIHRoZSBoaXN0 b3J5LiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGtpbGxzIHRoZQotRXNoZWxsIGJ1ZmZl ciwgYnV0IGlmIEBjb2Rle2VzaGVsbC1raWxsLW9uLWV4aXR9IGlzIEBjb2Rle25pbH0sIHRo ZW4KLXRoZSBidWZmZXIgaXMgbWVyZWx5IGJ1cmllZCBpbnN0ZWFkLgorQGl0ZW0gQGNvZGV7 LUN9CitMaXN0IGVudHJpZXMgYnkgY29sdW1ucy4KIAotQGl0ZW0gZXhwb3J0IFtAdmFye25h bWV9PUB2YXJ7dmFsdWV9XUBkb3Rze30KLUBjbWluZGV4IGV4cG9ydAotU2V0IGVudmlyb25t ZW50IHZhcmlhYmxlcyB1c2luZyBpbnB1dCBsaWtlIEJhc2gncyBAY29tbWFuZHtleHBvcnR9 LCBhcwotaW4gQHNhbXB7ZXhwb3J0IEB2YXJ7dmFyMX09QHZhcnt2YWwxfSBAdmFye3ZhcjJ9 PUB2YXJ7dmFsMn0gQGRvdHN7fX0uCitAaXRlbSBAY29kZXstZH0sIEBjb2Rley0tZGlyZWN0 b3J5fQorTGlzdCBkaXJlY3RvcnkgZW50cmllcyBpbnN0ZWFkIG9mIHRoZWlyIGNvbnRlbnRz LgogCi1AaXRlbSBncmVwIFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5kZXggZ3JlcAotQGl0 ZW14IGFncmVwIFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5kZXggYWdyZXAKLUBpdGVteCBl Z3JlcCBbQHZhcnthcmd9XUBkb3Rze30KLUBjbWluZGV4IGVncmVwCi1AaXRlbXggZmdyZXAg W0B2YXJ7YXJnfV1AZG90c3t9Ci1AY21pbmRleCBmZ3JlcAotQGl0ZW14IHJncmVwIFtAdmFy e2FyZ31dQGRvdHN7fQotQGNtaW5kZXggcmdyZXAKLUBpdGVteCBnbGltcHNlIFtAdmFye2Fy Z31dQGRvdHN7fQotQGNtaW5kZXggZ2xpbXBzZQotVGhlIEBjb21tYW5ke2dyZXB9IGNvbW1h bmRzIGFyZSBjb21wYXRpYmxlIHdpdGggR05VIEBjb21tYW5ke2dyZXB9LAotYnV0IG9wZW4g YSBjb21waWxhdGlvbiBidWZmZXIgaW4gQGNvZGV7Z3JlcC1tb2RlfSBpbnN0ZWFkLgotQHhy ZWZ7R3JlcCBTZWFyY2hpbmcsICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9Lgor QGl0ZW0gQGNvZGV7LWh9LCBAY29kZXstLWh1bWFuLXJlYWRhYmxlfQorUHJpbnQgc2l6ZXMg aW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGJpbmFyeSBwcmVmaXhlcyAoc28gMSBL QiBpcworMTAyNCBieXRlcykuCiAKLUB2aW5kZXggZXNoZWxsLXBsYWluLWdyZXAtYmVoYXZp b3IKLUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1ncmVwLWJlaGF2aW9yfSBpcyBub24tQGNvZGV7 bmlsfSwgdGhlbiB0aGVzZQotY29tbWFuZHMgZG8gbm90IHVzZSBvcGVuIGEgY29tcGlsYXRp b24gYnVmZmVyLCBpbnN0ZWFkIHByaW50aW5nIG91dHB1dAotdG8gRXNoZWxsJ3MgYnVmZmVy LiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB1c2luZyBAc2FtcHthbGlhcyBncmVwICcqZ3JlcAot JEBAKid9LCB0aG91Z2ggdGhpcyBzZXR0aW5nIGFwcGxpZXMgdG8gYWxsIG9mIHRoZSBidWls dC1pbiBjb21tYW5kcwotZm9yIHdoaWNoIHlvdSB3b3VsZCBuZWVkIHRvIGNyZWF0ZSBhIHNl cGFyYXRlIGFsaWFzLgorQGl0ZW0gQGNvZGV7LUh9LCBAY29kZXstLXNpfQorUHJpbnQgc2l6 ZXMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGRlY2ltYWwgcHJlZml4ZXMgKHNv IDEgS0IKK2lzIDEwMDAgYnl0ZXMpLgogCi1AaXRlbSBoaXN0b3J5IFtAdmFye259XQotQGl0 ZW14IGhpc3RvcnkgWy1hcnddIFtAdmFye2ZpbGVuYW1lfV0KLUBjbWluZGV4IGhpc3RvcnkK LVByaW50cyBFc2hlbGwncyBpbnB1dCBoaXN0b3J5LiAgV2l0aCBhIG51bWVyaWMgYXJndW1l bnQgQHZhcntufSwgdGhpcwotY29tbWFuZCBwcmludHMgdGhlIEB2YXJ7bn0gbW9zdCByZWNl bnQgaXRlbXMgaW4gdGhlIGhpc3RvcnkuCi1BbHRlcm5hdGVseSwgeW91IGNhbiBzcGVjaWZ5 IHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKK0BpdGVtIEBjb2Rley1JQHZhcntwYXR0ZXJufX0s IEBjb2Rley0taWdub3JlPUB2YXJ7cGF0dGVybn19CitEb24ndCBsaXN0IGRpcmVjdG9yeSBl bnRyaWVzIG1hdGNoaW5nIEB2YXJ7cGF0dGVybn0uCiAKLUB0YWJsZSBAYXNpcwotCi1AaXRl bSBAY29kZXstYX0sIEBjb2Rley0tYXBwZW5kfQotQXBwZW5kIG5ldyBoaXN0b3J5IGl0ZW1z IHRvIHRoZSBoaXN0b3J5IGZpbGUuCi0KLUBpdGVtIEBjb2Rley1yfSwgQGNvZGV7LS1yZWFk fQotUmVhZCBoaXN0b3J5IGl0ZW1zIGZyb20gdGhlIGhpc3RvcnkgZmlsZSBhbmQgYXBwZW5k IHRoZW0gdG8gdGhlCi1jdXJyZW50IHNoZWxsJ3MgaGlzdG9yeS4KLQotQGl0ZW0gQGNvZGV7 LXd9LCBAY29kZXstLXdyaXRlfQotV3JpdGUgdGhlIGN1cnJlbnQgaGlzdG9yeSBsaXN0IHRv IHRoZSBoaXN0b3J5IGZpbGUuCi0KLUBlbmQgdGFibGUKLQotQGl0ZW0gaW5mbyBbQHZhcntt YW51YWx9IFtAdmFye2l0ZW19XUBkb3Rze31dCi1AY21pbmRleCBpbmZvCi1Ccm93c2UgdGhl IGF2YWlsYWJsZSBJbmZvIGRvY3VtZW50YXRpb24uICBXaXRoIG5vIGFyZ3VtZW50cywgYnJv d3NlCi10aGUgdG9wLWxldmVsIG1lbnUuICBPdGhlcndpc2UsIHNob3cgdGhlIG1hbnVhbCBm b3IgQHZhcnttYW51YWx9LAotc2VsZWN0aW5nIHRoZSBtZW51IGVudHJ5IGZvciBAdmFye2l0 ZW19LgotCi1UaGlzIGNvbW1hbmQgaXMgdGhlIHNhbWUgYXMgdGhlIGV4dGVybmFsIEBjb21t YW5ke2luZm99IGNvbW1hbmQsIGJ1dAotdXNlcyBFbWFjcydzIGludGVybmFsIEluZm8gcmVh ZGVyLiAgQHhyZWZ7TWlzYyBIZWxwLCAsICwgZW1hY3MsIFRoZQotR05VIEVtYWNzIE1hbnVh bH0uCi0KLUBpdGVtIGpvYnMKLUBjbWluZGV4IGpvYnMKLUxpc3Qgc3VicHJvY2Vzc2VzIG9m IHRoZSBFbWFjcyBwcm9jZXNzLCBpZiBhbnksIHVzaW5nIHRoZSBmdW5jdGlvbgotQGNvZGV7 bGlzdC1wcm9jZXNzZXN9LgotCi1AaXRlbSBraWxsIFstQHZhcntzaWduYWx9XSBbQHZhcntw aWR9IHwgQHZhcntwcm9jZXNzfV0KLUBjbWluZGV4IGtpbGwKLUtpbGwgcHJvY2Vzc2VzLiAg VGFrZXMgYSBQSUQgb3IgYSBwcm9jZXNzIG9iamVjdCBhbmQgYW4gb3B0aW9uYWwKLUB2YXJ7 c2lnbmFsfSBzcGVjaWZpZXIgd2hpY2ggY2FuIGVpdGhlciBiZSBhIG51bWJlciBvciBhIHNp Z25hbCBuYW1lLgotCi1AaXRlbSBsaXN0aWZ5IFtAdmFye2FyZ31dQGRvdHN7fQotQGNtaW5k ZXggbGlzdGlmeQotUmV0dXJuIHRoZSBhcmd1bWVudHMgYXMgYSBzaW5nbGUgbGlzdC4gIFdp dGggYSBzaW5nbGUgYXJndW1lbnQsIHJldHVybgotaXQgYXMtaXMgaWYgaXQncyBhbHJlYWR5 IGEgbGlzdCwgb3Igb3RoZXJ3aXNlIHdyYXAgaXQgaW4gYSBsaXN0LiAgV2l0aAotbXVsdGlw bGUgYXJndW1lbnRzLCByZXR1cm4gYSBsaXN0IG9mIGFsbCBvZiB0aGVtLgotCi1AaXRlbSBs biBbQHZhcntvcHRpb259XUBkb3Rze30gQHZhcnt0YXJnZXR9IFtAdmFye2xpbmstbmFtZX1d Ci1AaXRlbXggbG4gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7dGFyZ2V0fUBkb3Rze30g QHZhcntkaXJlY3Rvcnl9Ci1AY21pbmRleCBsbgotQ3JlYXRlIGEgbGluayB0byB0aGUgc3Bl Y2lmaWVkIEB2YXJ7dGFyZ2V0fSBuYW1lZCBAdmFye2xpbmstbmFtZX0gb3IKLWNyZWF0ZSBs aW5rcyB0byBtdWx0aXBsZSBAdmFye3RhcmdldHN9IGluIEB2YXJ7ZGlyZWN0b3J5fS4KLQot QHZpbmRleCBlc2hlbGwtbG4tb3ZlcndyaXRlLWZpbGVzCi1AdmluZGV4IGVzaGVsbC1sbi1p bnRlcmFjdGl2ZS1xdWVyeQotSWYgQGNvZGV7ZXNoZWxsLWxuLW92ZXJ3cml0ZS1maWxlc30g aXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke2xufQotd2lsbCBvdmVyd3JpdGUgZmlsZXMg d2l0aG91dCB3YXJuaW5nLiAgSWYKLUBjb2Rle2VzaGVsbC1sbi1pbnRlcmFjdGl2ZS1xdWVy eX0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4KLUBjb21tYW5ke2xufSB3aWxsIGFzayBiZWZv cmUgb3ZlcndyaXRpbmcgZmlsZXMuCi0KLUBjb21tYW5ke2xufSBhY2NlcHRzIHRoZSBmb2xs b3dpbmcgb3B0aW9uczoKLQotQHRhYmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1mfSwgQGNv ZGV7LS1mb3JjZX0KLU5ldmVyIHByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBsaW5r aW5nIGEgdGFyZ2V0LgotCi1AaXRlbSBAY29kZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9 Ci1Qcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgbGlua2luZyB0byBhbiBpdGVtIGlm IHRoZSBzb3VyY2UKLWFscmVhZHkgZXhpc3RzLgotCi1AaXRlbSBAY29kZXstbn0sIEBjb2Rl ey0tcHJldmlld30KLVJ1biB0aGUgY29tbWFuZCwgYnV0IGRvbid0IG1vdmUgYW55dGhpbmcu ICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UKLXdhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJl IGxpbmtlZCB3aGVuIGNhbGxpbmcgQGNvbW1hbmR7bG59LgotCi1AaXRlbSBAY29kZXstc30s IEBjb2Rley0tc3ltYm9saWN9Ci1NYWtlIHN5bWJvbGljIGxpbmtzIGluc3RlYWQgb2YgaGFy ZCBsaW5rcy4KLQotQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1QcmludCB0 aGUgbmFtZSBvZiBlYWNoIGZpbGUgYmVmb3JlIGxpbmtpbmcgaXQuCi0KLUBlbmQgdGFibGUK LQotQGl0ZW0gbG9jYXRlIEB2YXJ7YXJnfUBkb3Rze30KLUBjbWluZGV4IGxvY2F0ZQotQWxp YXMgdG8gRW1hY3MncyBAY29kZXtsb2NhdGV9IGZ1bmN0aW9uLCB3aGljaCBzaW1wbHkgcnVu cyB0aGUgZXh0ZXJuYWwKLUBjb21tYW5ke2xvY2F0ZX0gY29tbWFuZCBhbmQgcGFyc2VzIHRo ZSByZXN1bHRzLgotQHhyZWZ7RGlyZWQgYW5kIEZpbmQsICwgLCBlbWFjcywgVGhlIEdOVSBF bWFjcyBNYW51YWx9LgotCi1AdmluZGV4IGVzaGVsbC1wbGFpbi1sb2NhdGUtYmVoYXZpb3IK LUlmIEBjb2Rle2VzaGVsbC1wbGFpbi1sb2NhdGUtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtu aWx9LCB0aGVuIEVtYWNzJ3MKLWludGVybmFsIEBjb2Rle2xvY2F0ZX0gaXMgbm90IHVzZWQu ICBUaGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nCi1Ac2FtcHthbGlhcyBsb2NhdGUgJypsb2Nh dGUgJEBAKid9LgotCi1AaXRlbSBscyBbQHZhcntvcHRpb259XUBkb3Rze30gW0B2YXJ7Zmls ZX1dQGRvdHN7fQotQGNtaW5kZXggbHMKLUxpc3QgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBA dmFye2ZpbGV9LCBpbmNsdWRpbmcgdGhlIGNvbnRlbnRzIG9mIGFueQotc3BlY2lmaWVkIGRp cmVjdG9yaWVzLiAgSWYgQHZhcntmaWxlfSBpcyB1bnNwZWNpZmllZCwgbGlzdCB0aGUKLWNv bnRlbnRzIG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KLQotQHZpbmRleCBlc2hlbGwtbHMt aW5pdGlhbC1hcmdzCi1UaGUgdXNlciBvcHRpb24gQGNvZGV7ZXNoZWxsLWxzLWluaXRpYWwt YXJnc30gY29udGFpbnMgYSBsaXN0IG9mCi1hcmd1bWVudHMgdG8gaW5jbHVkZSB3aXRoIGFu eSBjYWxsIHRvIEBjb21tYW5ke2xzfS4gIEZvciBleGFtcGxlLCB5b3UKLWNhbiBpbmNsdWRl IHRoZSBvcHRpb24gQG9wdGlvbnstaH0gdG8gYWx3YXlzIHVzZSBhIG1vcmUgaHVtYW4tcmVh ZGFibGUKLWZvcm1hdC4KLQotQHZpbmRleCBlc2hlbGwtbHMtdXNlLWNvbG9ycwotSWYgQGNv ZGV7ZXNoZWxsLWxzLXVzZS1jb2xvcnN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGUgY29udGVu dHMgb2YgYQotZGlyZWN0b3J5IGlzIGNvbG9yLWNvZGVkIGFjY29yZGluZyB0byBmaWxlIHR5 cGUgYW5kIHN0YXR1cy4gIFRoZXNlCi1jb2xvcnMgYW5kIHRoZSByZWdleHBzIHVzZWQgdG8g aWRlbnRpZnkgdGhlaXIgY29ycmVzcG9uZGluZyBmaWxlcyBjYW4KLWJlIGN1c3RvbWl6ZWQg dmlhIEB3e0BrYmR7TS14IGN1c3RvbWl6ZS1ncm91cCBAa2V5e1JFVH0gZXNoZWxsLWxzCi1A a2V5e1JFVH19fS4KLQotQGNvbW1hbmR7bHN9IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgb3B0 aW9uczoKLQotQHRhYmxlIEBhc2lzCi0KLUBpdGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hbGx9 Ci1MaXN0IGFsbCBmaWxlcywgaW5jbHVkaW5nIG9uZXMgc3RhcnRpbmcgd2l0aCBAc2FtcHsu fS4KLQotQGl0ZW0gQGNvZGV7LUF9LCBAY29kZXstLWFsbW9zdC1hbGx9Ci1MaWtlIEBjb2Rl ey0tYWxsfSwgYnV0IGRvbid0IGxpc3QgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IChAZmlsZXsu fSkgb3IKLXRoZSBwYXJlbnQgZGlyZWN0b3J5IChAZmlsZXsuLn0pLgotCi1AaXRlbSBAY29k ZXstY30sIEBjb2Rley0tYnktY3RpbWV9Ci1Tb3J0IGZpbGVzIGJ5IGxhc3Qgc3RhdHVzIGNo YW5nZSB0aW1lLCB3aXRoIG5ld2VzdCBmaWxlcyBmaXJzdC4KLQotQGl0ZW0gQGNvZGV7LUN9 Ci1MaXN0IGVudHJpZXMgYnkgY29sdW1ucy4KLQotQGl0ZW0gQGNvZGV7LWR9LCBAY29kZXst LWRpcmVjdG9yeX0KLUxpc3QgZGlyZWN0b3J5IGVudHJpZXMgaW5zdGVhZCBvZiB0aGVpciBj b250ZW50cy4KLQotQGl0ZW0gQGNvZGV7LWh9LCBAY29kZXstLWh1bWFuLXJlYWRhYmxlfQot UHJpbnQgc2l6ZXMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0LCB3aXRoIGJpbmFyeSBwcmVm aXhlcyAoc28gMSBLQiBpcwotMTAyNCBieXRlcykuCi0KLUBpdGVtIEBjb2Rley1IfSwgQGNv ZGV7LS1zaX0KLVByaW50IHNpemVzIGluIGh1bWFuLXJlYWRhYmxlIGZvcm1hdCwgd2l0aCBk ZWNpbWFsIHByZWZpeGVzIChzbyAxIEtCCi1pcyAxMDAwIGJ5dGVzKS4KLQotQGl0ZW0gQGNv ZGV7LUlAdmFye3BhdHRlcm59fSwgQGNvZGV7LS1pZ25vcmU9QHZhcntwYXR0ZXJufX0KLURv bid0IGxpc3QgZGlyZWN0b3J5IGVudHJpZXMgbWF0Y2hpbmcgQHZhcntwYXR0ZXJufS4KLQot QGl0ZW0gQGNvZGV7LWt9LCBAY29kZXstLWtpbG9ieXRlc30KLVByaW50IHNpemVzIGFzIDEw MjQtYnl0ZSBraWxvYnl0ZXMuCitAaXRlbSBAY29kZXsta30sIEBjb2Rley0ta2lsb2J5dGVz fQorUHJpbnQgc2l6ZXMgYXMgMTAyNC1ieXRlIGtpbG9ieXRlcy4KIAogQHZpbmRleCBlc2hl bGwtbHMtZGF0ZS1mb3JtYXQKIEBpdGVtIEBjb2Rley1sfQpAQCAtOTkwLDYwICs2ODksMTEg QEAgQnVpbHQtaW5zCiAKIEBlbmQgdGFibGUKIAotQGl0ZW0gbWFrZSBbQHZhcnthcmd9XUBk b3Rze30KLUBjbWluZGV4IG1ha2UKLVJ1biBAY29tbWFuZHttYWtlfSB0aHJvdWdoIEBjb2Rl e2NvbXBpbGV9IHdoZW4gcnVuIGFzeW5jaHJvbm91c2x5Ci0oZS5nLiwgQHNhbXB7bWFrZSAm fSkuICBAeHJlZntDb21waWxhdGlvbiwgLCAsIGVtYWNzLCBUaGUgR05VIEVtYWNzCi1NYW51 YWx9LiAgT3RoZXJ3aXNlIGNhbGwgdGhlIGV4dGVybmFsIEBjb21tYW5ke21ha2V9IGNvbW1h bmQuCi0KLUBpdGVtIG1hbiBbQHZhcnthcmd9XUBkb3Rze30KLUBjbWluZGV4IG1hbgotRGlz cGxheSBNYW4gcGFnZXMgdXNpbmcgdGhlIEVtYWNzIEBjb2Rle21hbn0gY29tbWFuZC4KLUB4 cmVme01hbiBQYWdlLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFsfS4KLQogQGl0 ZW0gbWtkaXIgWy1wXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9CiBAY21pbmRleCBta2Rpcgog TWFrZSBuZXcgZGlyZWN0b3JpZXMuICBXaXRoIEBjb2Rley1wfSBvciBAY29kZXstLXBhcmVu dHN9LAogYXV0b21hdGljYWxseSBtYWtlIGFueSBuZWNlc3NhcnkgcGFyZW50IGRpcmVjdG9y aWVzIGFzIHdlbGwuCiAKLUBpdGVtIG12IFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFye3Nv dXJjZX0gQHZhcntkZXN0fQotQGl0ZW14IG12IFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFy e3NvdXJjZX1AZG90c3t9IEB2YXJ7ZGlyZWN0b3J5fQotQGNtaW5kZXggbXYKLVJlbmFtZSB0 aGUgZmlsZSBAdmFye3NvdXJjZX0gdG8gQHZhcntkZXN0fSBvciBtb3ZlIEB2YXJ7c291cmNl fSBpbnRvCi1AdmFye2RpcmVjdG9yeX0uCi0KLUB2aW5kZXggZXNoZWxsLW12LW92ZXJ3cml0 ZS1maWxlcwotQHZpbmRleCBlc2hlbGwtbXYtaW50ZXJhY3RpdmUtcXVlcnkKLUlmIEBjb2Rl e2VzaGVsbC1tdi1vdmVyd3JpdGUtZmlsZXN9IGlzIG5vbi1AY29kZXtuaWx9LCBAY29tbWFu ZHttdn0KLXdpbGwgb3ZlcndyaXRlIGZpbGVzIHdpdGhvdXQgd2FybmluZy4gIElmCi1AY29k ZXtlc2hlbGwtbXYtaW50ZXJhY3RpdmUtcXVlcnl9IGlzIG5vbi1AY29kZXtuaWx9LCBAY29t bWFuZHttdn0KLXdpbGwgcHJvbXB0IGJlZm9yZSBvdmVyd3JpdGluZyBhbnl0aGluZy4KLQot QGNvbW1hbmR7bXZ9IGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgotCi1AdGFibGUg QGFzaXMKLQotQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQotTmV2ZXIgcHJvbXB0 IGZvciBjb25maXJtYXRpb24gYmVmb3JlIG1vdmluZyBhbiBpdGVtLgotCi1AaXRlbSBAY29k ZXstaX0sIEBjb2Rley0taW50ZXJhY3RpdmV9Ci1Qcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBi ZWZvcmUgbW92aW5nIGFuIGl0ZW0gaWYgdGhlIHRhcmdldCBhbHJlYWR5Ci1leGlzdHMuCi0K LUBpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQotUnVuIHRoZSBjb21tYW5kLCBi dXQgZG9uJ3QgbW92ZSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdQotd2FudCB0 byBwcmV2aWV3IHdoYXQgd291bGQgYmUgbW92ZWQgd2hlbiBjYWxsaW5nIEBjb21tYW5ke212 fS4KLQotQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1QcmludCB0aGUgbmFt ZSBvZiBlYWNoIGl0ZW0gYmVmb3JlIG1vdmluZyBpdC4KLQotQGVuZCB0YWJsZQotCi1AaXRl bSBvY2N1ciBAdmFye3JlZ2V4cH0gW0B2YXJ7bmxpbmVzfV0KLUBjbWluZGV4IG9jY3VyCi1B bGlhcyB0byBFbWFjcydzIEBjb2Rle29jY3VyfS4KLUB4cmVme090aGVyIFJlcGVhdGluZyBT ZWFyY2gsICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9LgotCiBAaXRlbSBwb3Bk CiBAaXRlbSBwb3BkICtAdmFye259CiBAY21pbmRleCBwb3BkCkBAIC0xMDYyLDEwICs3MTIs NiBAQCBCdWlsdC1pbnMKIAogQGVuZCB0YWJsZQogCi1AaXRlbSBwcmludG5sIFtAdmFye2Fy Z31dQGRvdHN7fQotQGNtaW5kZXggcHJpbnRubAotUHJpbnQgYWxsIHRoZSBAdmFye2FyZ31z IHNlcGFyYXRlZCBieSBuZXdsaW5lcy4KLQogQGl0ZW0gcHVzaGQKIEBpdGVteCBwdXNoZCBA dmFye2RpcmVjdG9yeX0KIEBpdGVteCBwdXNoZCArQHZhcntufQpAQCAtMTEwMiw0NCArNzQ4 LDI2MiBAQCBCdWlsdC1pbnMKIEBjbWluZGV4IHB3ZAogUHJpbnRzIHRoZSBjdXJyZW50IHdv cmtpbmcgZGlyZWN0b3J5LgogCi1AaXRlbSBybSBbQHZhcntvcHRpb259XUBkb3Rze30gQHZh cntpdGVtfUBkb3Rze30KLUBjbWluZGV4IHJtCi1SZW1vdmVzIGZpbGVzLCBidWZmZXJzLCBw cm9jZXNzZXMsIG9yIEVtYWNzIExpc3Agc3ltYm9scywgZGVwZW5kaW5nIG9uCi10aGUgdHlw ZSBvZiBlYWNoIEB2YXJ7aXRlbX0uCitAaXRlbSBybWRpciBAdmFye2RpcmVjdG9yeX1AZG90 c3t9CitAY21pbmRleCBybWRpcgorUmVtb3ZlcyBkaXJlY3RvcmllcyBpZiB0aGV5IGFyZSBl bXB0eS4KIAotQHZpbmRleCBlc2hlbGwtcm0taW50ZXJhY3RpdmUtcXVlcnkKLUB2aW5kZXgg ZXNoZWxsLXJtLXJlbW92ZXMtZGlyZWN0b3JpZXMKLUlmIEBjb2Rle2VzaGVsbC1ybS1pbnRl cmFjdGl2ZS1xdWVyeX0gaXMgbm9uLUBjb2Rle25pbH0sIEBjb21tYW5ke3JtfQotd2lsbCBw cm9tcHQgYmVmb3JlIHJlbW92aW5nIGFueXRoaW5nLiAgSWYKLUBjb2Rle2VzaGVsbC1ybS1y ZW1vdmVzLWRpcmVjdG9yaWVzfSBpcyBub24tQGNvZGV7bmlsfSwgdGhlbgotQGNvbW1hbmR7 cm19IGNhbiBhbHNvIHJlbW92ZSBkaXJlY3Rvcmllcy4gIE90aGVyd2lzZSwgQGNvbW1hbmR7 cm1kaXJ9Ci1pcyByZXF1aXJlZC4KK0BlbmQgdGFibGUKIAotQGNvbW1hbmR7cm19IGFjY2Vw dHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorQG5vZGUgQ29tbWFuZHMgZm9yIEZpbGVzCitA c3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgRmlsZXMKK0B0YWJsZSBAY29kZQorCitAaXRlbSBj YXQgQHZhcntmaWxlfUBkb3Rze30KK0BjbWluZGV4IGNhdAorQ29uY2F0ZW5hdGUgdGhlIGNv bnRlbnRzIG9mIEB2YXJ7ZmlsZX1zIHRvIHN0YW5kYXJkIG91dHB1dC4gIElmIGluIGEKK3Bp cGVsaW5lLCBvciBpZiBhbnkgb2YgdGhlIGZpbGVzIGlzIG5vdCBhIHJlZ3VsYXIgZmlsZSwg ZGlyZWN0b3J5LCBvcgorc3ltbGluaywgdGhlbiB0aGlzIGNvbW1hbmQgcmV2ZXJ0cyB0byB0 aGUgc3lzdGVtJ3MgZGVmaW5pdGlvbiBvZgorQGNvbW1hbmR7Y2F0fS4KKworQGl0ZW0gY3Ag W0B2YXJ7b3B0aW9ufUBkb3Rze31dIEB2YXJ7c291cmNlfSBAdmFye2Rlc3R9CitAaXRlbSBj cCBbQHZhcntvcHRpb259QGRvdHN7fV0gQHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVj dG9yeX0KK0BjbWluZGV4IGNwCitDb3B5IHRoZSBmaWxlIEB2YXJ7c291cmNlfSB0byBAdmFy e2Rlc3R9IG9yIEB2YXJ7c291cmNlfSBpbnRvCitAdmFye2RpcmVjdG9yeX0uCisKK0B2aW5k ZXggZXNoZWxsLWNwLW92ZXJ3cml0ZS1maWxlcworQHZpbmRleCBlc2hlbGwtY3AtaW50ZXJh Y3RpdmUtcXVlcnkKK0lmIEBjb2Rle2VzaGVsbC1jcC1vdmVyd3JpdGUtZmlsZXN9IGlzIG5v bi1AY29kZXtuaWx9LCB0aGVuCitAY29tbWFuZHtjcH0gd2lsbCBvdmVyd3JpdGUgZmlsZXMg d2l0aG91dCB3YXJuaW5nLiAgSWYKK0Bjb2Rle2VzaGVsbC1jcC1pbnRlcmFjdGl2ZS1xdWVy eX0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4KK0Bjb21tYW5ke2NwfSB3aWxsIGFzayBiZWZv cmUgb3ZlcndyaXRpbmcgYW55dGhpbmcuCisKK0Bjb21tYW5ke2NwfSBhY2NlcHRzIHRoZSBm b2xsb3dpbmcgb3B0aW9uczoKIAogQHRhYmxlIEBhc2lzCiAKK0BpdGVtIEBjb2Rley1hfSwg QGNvZGV7LS1hcmNoaXZlfQorRXF1aXZhbGVudCB0byBAY29kZXstLW5vLWRlcmVmZXJlbmNl IC0tcHJlc2VydmUgLS1yZWN1cnNpdmV9LgorCitAaXRlbSBAY29kZXstZH0sIEBjb2Rley0t bm8tZGVyZWZlcmVuY2V9CitEb24ndCBkZXJlZmVyZW5jZSBzeW1ib2xpYyBsaW5rcyB3aGVu IGNvcHlpbmc7IGluc3RlYWQsIGNvcHkgdGhlIGxpbmsKK2l0c2VsZi4KKwogQGl0ZW0gQGNv ZGV7LWZ9LCBAY29kZXstLWZvcmNlfQotTmV2ZXIgcHJvbXB0IGZvciBjb25maXJtYXRpb24g YmVmb3JlIHJlbW92aW5nIGFuIGl0ZW0uCitOZXZlciBwcm9tcHQgZm9yIGNvbmZpcm1hdGlv biBiZWZvcmUgY29weWluZyBhIGZpbGUuCiAKIEBpdGVtIEBjb2Rley1pfSwgQGNvZGV7LS1p bnRlcmFjdGl2ZX0KLVByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSByZW1vdmluZyBl YWNoIGl0ZW0uCitQcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUgY29weWluZyBhIGZp bGUgaWYgdGhlIHRhcmdldCBhbHJlYWR5CitleGlzdHMuCiAKIEBpdGVtIEBjb2Rley1ufSwg QGNvZGV7LS1wcmV2aWV3fQotUnVuIHRoZSBjb21tYW5kLCBidXQgZG9uJ3QgcmVtb3ZlIGFu eXRoaW5nLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91Ci13YW50IHRvIHByZXZpZXcgd2hhdCB3 b3VsZCBiZSByZW1vdmVkIHdoZW4gY2FsbGluZyBAY29tbWFuZHtybX0uCitSdW4gdGhlIGNv bW1hbmQsIGJ1dCBkb24ndCBjb3B5IGFueXRoaW5nLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91 Cit3YW50IHRvIHByZXZpZXcgd2hhdCB3b3VsZCBiZSByZW1vdmVkIHdoZW4gY2FsbGluZyBA Y29tbWFuZHtjcH0uCisKK0BpdGVtIEBjb2Rley1wfSwgQGNvZGV7LS1wcmVzZXJ2ZX0KK0F0 dGVtcHQgdG8gcHJlc2VydmUgZmlsZSBhdHRyaWJ1dGVzIHdoZW4gY29weWluZy4KIAogQGl0 ZW0gQGNvZGV7LXJ9LCBAY29kZXstUn0sIEBjb2Rley0tcmVjdXJzaXZlfQotUmVtb3ZlIGFu eSBzcGVjaWZpZWQgZGlyZWN0b3JpZXMgYW5kIHRoZWlyIGNvbnRlbnRzIHJlY3Vyc2l2ZWx5 LgorQ29weSBhbnkgc3BlY2lmaWVkIGRpcmVjdG9yaWVzIGFuZCB0aGVpciBjb250ZW50cyBy ZWN1cnNpdmVseS4KIAogQGl0ZW0gQGNvZGV7LXZ9LCBAY29kZXstLXZlcmJvc2V9Ci1Qcmlu dCB0aGUgbmFtZSBvZiBlYWNoIGl0ZW0gYmVmb3JlIHJlbW92aW5nIGl0LgorUHJpbnQgdGhl IG5hbWUgb2YgZWFjaCBmaWxlIGJlZm9yZSBjb3B5aW5nIGl0LgogCiBAZW5kIHRhYmxlCiAK LUBpdGVtIHJtZGlyIEB2YXJ7ZGlyZWN0b3J5fUBkb3Rze30KLUBjbWluZGV4IHJtZGlyCi1S ZW1vdmVzIGRpcmVjdG9yaWVzIGlmIHRoZXkgYXJlIGVtcHR5LgorQGl0ZW0gZGlmZiBbQHZh cntvcHRpb259XUBkb3Rze30gQHZhcntvbGR9IEB2YXJ7bmV3fQorQGNtaW5kZXggZGlmZgor Q29tcGFyZSB0aGUgZmlsZXMgQHZhcntvbGR9IGFuZCBAdmFye25ld30gdXNpbmcgRW1hY3Mn cyBpbnRlcm5hbAorQGNvZGV7ZGlmZn0gKG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIEBjb2Rl e2VkaWZmfSkuICBAeHJlZntDb21wYXJpbmcKK0ZpbGVzLCAsICwgZW1hY3MsIFRoZSBHTlUg RW1hY3MgTWFudWFsfS4KKworQHZpbmRleCBlc2hlbGwtcGxhaW4tZGlmZi1iZWhhdmlvcgor SWYgQGNvZGV7ZXNoZWxsLXBsYWluLWRpZmYtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9 LCB0aGVuIHRoaXMKK2NvbW1hbmQgZG9lcyBub3QgdXNlIEVtYWNzJ3MgaW50ZXJuYWwgQGNv ZGV7ZGlmZn0uICBUaGlzIGlzIHRoZSBzYW1lCithcyB1c2luZyBAc2FtcHthbGlhcyBkaWZm ICcqZGlmZiAkQEAqJ30uCisKK0BpdGVtIGxuIFtAdmFye29wdGlvbn1dQGRvdHN7fSBAdmFy e3RhcmdldH0gW0B2YXJ7bGluay1uYW1lfV0KK0BpdGVteCBsbiBbQHZhcntvcHRpb259XUBk b3Rze30gQHZhcnt0YXJnZXR9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KK0BjbWluZGV4IGxu CitDcmVhdGUgYSBsaW5rIHRvIHRoZSBzcGVjaWZpZWQgQHZhcnt0YXJnZXR9IG5hbWVkIEB2 YXJ7bGluay1uYW1lfSBvcgorY3JlYXRlIGxpbmtzIHRvIG11bHRpcGxlIEB2YXJ7dGFyZ2V0 c30gaW4gQHZhcntkaXJlY3Rvcnl9LgorCitAdmluZGV4IGVzaGVsbC1sbi1vdmVyd3JpdGUt ZmlsZXMKK0B2aW5kZXggZXNoZWxsLWxuLWludGVyYWN0aXZlLXF1ZXJ5CitJZiBAY29kZXtl c2hlbGwtbG4tb3ZlcndyaXRlLWZpbGVzfSBpcyBub24tQGNvZGV7bmlsfSwgQGNvbW1hbmR7 bG59Cit3aWxsIG92ZXJ3cml0ZSBmaWxlcyB3aXRob3V0IHdhcm5pbmcuICBJZgorQGNvZGV7 ZXNoZWxsLWxuLWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNvZGV7bmlsfSwgdGhlbgor QGNvbW1hbmR7bG59IHdpbGwgYXNrIGJlZm9yZSBvdmVyd3JpdGluZyBmaWxlcy4KKworQGNv bW1hbmR7bG59IGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCitAdGFibGUgQGFz aXMKKworQGl0ZW0gQGNvZGV7LWZ9LCBAY29kZXstLWZvcmNlfQorTmV2ZXIgcHJvbXB0IGZv ciBjb25maXJtYXRpb24gYmVmb3JlIGxpbmtpbmcgYSB0YXJnZXQuCisKK0BpdGVtIEBjb2Rl ey1pfSwgQGNvZGV7LS1pbnRlcmFjdGl2ZX0KK1Byb21wdCBmb3IgY29uZmlybWF0aW9uIGJl Zm9yZSBsaW5raW5nIHRvIGFuIGl0ZW0gaWYgdGhlIHNvdXJjZQorYWxyZWFkeSBleGlzdHMu CisKK0BpdGVtIEBjb2Rley1ufSwgQGNvZGV7LS1wcmV2aWV3fQorUnVuIHRoZSBjb21tYW5k LCBidXQgZG9uJ3QgbW92ZSBhbnl0aGluZy4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdQord2Fu dCB0byBwcmV2aWV3IHdoYXQgd291bGQgYmUgbGlua2VkIHdoZW4gY2FsbGluZyBAY29tbWFu ZHtsbn0uCisKK0BpdGVtIEBjb2Rley1zfSwgQGNvZGV7LS1zeW1ib2xpY30KK01ha2Ugc3lt Ym9saWMgbGlua3MgaW5zdGVhZCBvZiBoYXJkIGxpbmtzLgorCitAaXRlbSBAY29kZXstdn0s IEBjb2Rley0tdmVyYm9zZX0KK1ByaW50IHRoZSBuYW1lIG9mIGVhY2ggZmlsZSBiZWZvcmUg bGlua2luZyBpdC4KKworQGVuZCB0YWJsZQorCitAaXRlbSBtdiBbQHZhcntvcHRpb259XUBk b3Rze30gQHZhcntzb3VyY2V9IEB2YXJ7ZGVzdH0KK0BpdGVteCBtdiBbQHZhcntvcHRpb259 XUBkb3Rze30gQHZhcntzb3VyY2V9QGRvdHN7fSBAdmFye2RpcmVjdG9yeX0KK0BjbWluZGV4 IG12CitSZW5hbWUgdGhlIGZpbGUgQHZhcntzb3VyY2V9IHRvIEB2YXJ7ZGVzdH0gb3IgbW92 ZSBAdmFye3NvdXJjZX0gaW50bworQHZhcntkaXJlY3Rvcnl9LgorCitAdmluZGV4IGVzaGVs bC1tdi1vdmVyd3JpdGUtZmlsZXMKK0B2aW5kZXggZXNoZWxsLW12LWludGVyYWN0aXZlLXF1 ZXJ5CitJZiBAY29kZXtlc2hlbGwtbXYtb3ZlcndyaXRlLWZpbGVzfSBpcyBub24tQGNvZGV7 bmlsfSwgQGNvbW1hbmR7bXZ9Cit3aWxsIG92ZXJ3cml0ZSBmaWxlcyB3aXRob3V0IHdhcm5p bmcuICBJZgorQGNvZGV7ZXNoZWxsLW12LWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNv ZGV7bmlsfSwgQGNvbW1hbmR7bXZ9Cit3aWxsIHByb21wdCBiZWZvcmUgb3ZlcndyaXRpbmcg YW55dGhpbmcuCisKK0Bjb21tYW5ke212fSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9u czoKKworQHRhYmxlIEBhc2lzCisKK0BpdGVtIEBjb2Rley1mfSwgQGNvZGV7LS1mb3JjZX0K K05ldmVyIHByb21wdCBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBtb3ZpbmcgYW4gaXRlbS4K KworQGl0ZW0gQGNvZGV7LWl9LCBAY29kZXstLWludGVyYWN0aXZlfQorUHJvbXB0IGZvciBj b25maXJtYXRpb24gYmVmb3JlIG1vdmluZyBhbiBpdGVtIGlmIHRoZSB0YXJnZXQgYWxyZWFk eQorZXhpc3RzLgorCitAaXRlbSBAY29kZXstbn0sIEBjb2Rley0tcHJldmlld30KK1J1biB0 aGUgY29tbWFuZCwgYnV0IGRvbid0IG1vdmUgYW55dGhpbmcuICBUaGlzIGlzIHVzZWZ1bCBp ZiB5b3UKK3dhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJlIG1vdmVkIHdoZW4gY2FsbGlu ZyBAY29tbWFuZHttdn0uCisKK0BpdGVtIEBjb2Rley12fSwgQGNvZGV7LS12ZXJib3NlfQor UHJpbnQgdGhlIG5hbWUgb2YgZWFjaCBpdGVtIGJlZm9yZSBtb3ZpbmcgaXQuCisKK0BlbmQg dGFibGUKKworQGl0ZW0gcm0gW0B2YXJ7b3B0aW9ufV1AZG90c3t9IEB2YXJ7aXRlbX1AZG90 c3t9CitAY21pbmRleCBybQorUmVtb3ZlcyBmaWxlcywgYnVmZmVycywgcHJvY2Vzc2VzLCBv ciBFbWFjcyBMaXNwIHN5bWJvbHMsIGRlcGVuZGluZyBvbgordGhlIHR5cGUgb2YgZWFjaCBA dmFye2l0ZW19LgorCitAdmluZGV4IGVzaGVsbC1ybS1pbnRlcmFjdGl2ZS1xdWVyeQorQHZp bmRleCBlc2hlbGwtcm0tcmVtb3Zlcy1kaXJlY3RvcmllcworSWYgQGNvZGV7ZXNoZWxsLXJt LWludGVyYWN0aXZlLXF1ZXJ5fSBpcyBub24tQGNvZGV7bmlsfSwgQGNvbW1hbmR7cm19Cit3 aWxsIHByb21wdCBiZWZvcmUgcmVtb3ZpbmcgYW55dGhpbmcuICBJZgorQGNvZGV7ZXNoZWxs LXJtLXJlbW92ZXMtZGlyZWN0b3JpZXN9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuCitAY29t bWFuZHtybX0gY2FuIGFsc28gcmVtb3ZlIGRpcmVjdG9yaWVzLiAgT3RoZXJ3aXNlLCBAY29t bWFuZHtybWRpcn0KK2lzIHJlcXVpcmVkLgorCitAY29tbWFuZHtybX0gYWNjZXB0cyB0aGUg Zm9sbG93aW5nIG9wdGlvbnM6CisKK0B0YWJsZSBAYXNpcworCitAaXRlbSBAY29kZXstZn0s IEBjb2Rley0tZm9yY2V9CitOZXZlciBwcm9tcHQgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUg cmVtb3ZpbmcgYW4gaXRlbS4KKworQGl0ZW0gQGNvZGV7LWl9LCBAY29kZXstLWludGVyYWN0 aXZlfQorUHJvbXB0IGZvciBjb25maXJtYXRpb24gYmVmb3JlIHJlbW92aW5nIGVhY2ggaXRl bS4KKworQGl0ZW0gQGNvZGV7LW59LCBAY29kZXstLXByZXZpZXd9CitSdW4gdGhlIGNvbW1h bmQsIGJ1dCBkb24ndCByZW1vdmUgYW55dGhpbmcuICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UK K3dhbnQgdG8gcHJldmlldyB3aGF0IHdvdWxkIGJlIHJlbW92ZWQgd2hlbiBjYWxsaW5nIEBj b21tYW5ke3JtfS4KKworQGl0ZW0gQGNvZGV7LXJ9LCBAY29kZXstUn0sIEBjb2Rley0tcmVj dXJzaXZlfQorUmVtb3ZlIGFueSBzcGVjaWZpZWQgZGlyZWN0b3JpZXMgYW5kIHRoZWlyIGNv bnRlbnRzIHJlY3Vyc2l2ZWx5LgorCitAaXRlbSBAY29kZXstdn0sIEBjb2Rley0tdmVyYm9z ZX0KK1ByaW50IHRoZSBuYW1lIG9mIGVhY2ggaXRlbSBiZWZvcmUgcmVtb3ZpbmcgaXQuCisK K0BlbmQgdGFibGUKKworQGVuZCB0YWJsZQorCitAbm9kZSBDb21tYW5kcyBmb3IgU2VhcmNo aW5nCitAc3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgU2VhcmNoaW5nCitAdGFibGUgQGNvZGUK KworQGl0ZW0gZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IGdyZXAKK0BpdGVt eCBhZ3JlcCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IGFncmVwCitAaXRlbXggZWdy ZXAgW0B2YXJ7YXJnfV1AZG90c3t9CitAY21pbmRleCBlZ3JlcAorQGl0ZW14IGZncmVwIFtA dmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggZmdyZXAKK0BpdGVteCByZ3JlcCBbQHZhcnth cmd9XUBkb3Rze30KK0BjbWluZGV4IHJncmVwCitAaXRlbXggZ2xpbXBzZSBbQHZhcnthcmd9 XUBkb3Rze30KK0BjbWluZGV4IGdsaW1wc2UKK1RoZSBAY29tbWFuZHtncmVwfSBjb21tYW5k cyBhcmUgY29tcGF0aWJsZSB3aXRoIEdOVSBAY29tbWFuZHtncmVwfSwKK2J1dCBvcGVuIGEg Y29tcGlsYXRpb24gYnVmZmVyIGluIEBjb2Rle2dyZXAtbW9kZX0gaW5zdGVhZC4KK0B4cmVm e0dyZXAgU2VhcmNoaW5nLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFsfS4KKwor QHZpbmRleCBlc2hlbGwtcGxhaW4tZ3JlcC1iZWhhdmlvcgorSWYgQGNvZGV7ZXNoZWxsLXBs YWluLWdyZXAtYmVoYXZpb3J9IGlzIG5vbi1AY29kZXtuaWx9LCB0aGVuIHRoZXNlCitjb21t YW5kcyBkbyBub3QgdXNlIG9wZW4gYSBjb21waWxhdGlvbiBidWZmZXIsIGluc3RlYWQgcHJp bnRpbmcgb3V0cHV0Cit0byBFc2hlbGwncyBidWZmZXIuICBUaGlzIGlzIHRoZSBzYW1lIGFz IHVzaW5nIEBzYW1we2FsaWFzIGdyZXAgJypncmVwCiskQEAqJ30sIHRob3VnaCB0aGlzIHNl dHRpbmcgYXBwbGllcyB0byBhbGwgb2YgdGhlIGJ1aWx0LWluIGNvbW1hbmRzCitmb3Igd2hp Y2ggeW91IHdvdWxkIG5lZWQgdG8gY3JlYXRlIGEgc2VwYXJhdGUgYWxpYXMuCisKK0BpdGVt IGluZm8gW0B2YXJ7bWFudWFsfSBbQHZhcntpdGVtfV1AZG90c3t9XQorQGNtaW5kZXggaW5m bworQnJvd3NlIHRoZSBhdmFpbGFibGUgSW5mbyBkb2N1bWVudGF0aW9uLiAgV2l0aCBubyBh cmd1bWVudHMsIGJyb3dzZQordGhlIHRvcC1sZXZlbCBtZW51LiAgT3RoZXJ3aXNlLCBzaG93 IHRoZSBtYW51YWwgZm9yIEB2YXJ7bWFudWFsfSwKK3NlbGVjdGluZyB0aGUgbWVudSBlbnRy eSBmb3IgQHZhcntpdGVtfS4KKworVGhpcyBjb21tYW5kIGlzIHRoZSBzYW1lIGFzIHRoZSBl eHRlcm5hbCBAY29tbWFuZHtpbmZvfSBjb21tYW5kLCBidXQKK3VzZXMgRW1hY3MncyBpbnRl cm5hbCBJbmZvIHJlYWRlci4gIEB4cmVme01pc2MgSGVscCwgLCAsIGVtYWNzLCBUaGUKK0dO VSBFbWFjcyBNYW51YWx9LgorCitAaXRlbSBsb2NhdGUgQHZhcnthcmd9QGRvdHN7fQorQGNt aW5kZXggbG9jYXRlCitBbGlhcyB0byBFbWFjcydzIEBjb2Rle2xvY2F0ZX0gZnVuY3Rpb24s IHdoaWNoIHNpbXBseSBydW5zIHRoZSBleHRlcm5hbAorQGNvbW1hbmR7bG9jYXRlfSBjb21t YW5kIGFuZCBwYXJzZXMgdGhlIHJlc3VsdHMuCitAeHJlZntEaXJlZCBhbmQgRmluZCwgLCAs IGVtYWNzLCBUaGUgR05VIEVtYWNzIE1hbnVhbH0uCisKK0B2aW5kZXggZXNoZWxsLXBsYWlu LWxvY2F0ZS1iZWhhdmlvcgorSWYgQGNvZGV7ZXNoZWxsLXBsYWluLWxvY2F0ZS1iZWhhdmlv cn0gaXMgbm9uLUBjb2Rle25pbH0sIHRoZW4gRW1hY3MncworaW50ZXJuYWwgQGNvZGV7bG9j YXRlfSBpcyBub3QgdXNlZC4gIFRoaXMgaXMgdGhlIHNhbWUgYXMgdXNpbmcKK0BzYW1we2Fs aWFzIGxvY2F0ZSAnKmxvY2F0ZSAkQEAqJ30uCisKK0BpdGVtIG1hbiBbQHZhcnthcmd9XUBk b3Rze30KK0BjbWluZGV4IG1hbgorRGlzcGxheSBNYW4gcGFnZXMgdXNpbmcgdGhlIEVtYWNz IEBjb2Rle21hbn0gY29tbWFuZC4KK0B4cmVme01hbiBQYWdlLCAsICwgZW1hY3MsIFRoZSBH TlUgRW1hY3MgTWFudWFsfS4KKworQGl0ZW0gb2NjdXIgQHZhcntyZWdleHB9IFtAdmFye25s aW5lc31dCitAY21pbmRleCBvY2N1cgorQWxpYXMgdG8gRW1hY3MncyBAY29kZXtvY2N1cn0u CitAeHJlZntPdGhlciBSZXBlYXRpbmcgU2VhcmNoLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1h Y3MgTWFudWFsfS4KKworQGVuZCB0YWJsZQorCitAbm9kZSBDb21tYW5kcyBmb3IgVmFyaWFi bGVzCitAc3Vic2VjdGlvbiBDb21tYW5kcyBmb3IgVmFyaWFibGVzCitAdGFibGUgQGNvZGUK KworQGl0ZW0gZW52IFtAdmFye3Zhcn09QHZhcnt2YWx1ZX1dQGRvdHN7fSBbQHZhcntjb21t YW5kfV1AZG90c3t9CitAY21pbmRleCBlbnYKK1dpdGggbm8gYXJndW1lbnRzLCBwcmludCB0 aGUgY3VycmVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICBJZiB5b3UKK3Bhc3MgYXJndW1l bnRzIHRvIHRoaXMgY29tbWFuZCwgdGhlbiBAY29tbWFuZHtlbnZ9IHdpbGwgZXhlY3V0ZSB0 aGUKK2FyZ3VtZW50cyBhcyBhIGNvbW1hbmQuICBJZiB5b3UgcGFzcyBhbnkgaW5pdGlhbCBh cmd1bWVudHMgb2YgdGhlIGZvcm0KK0BzYW1we0B2YXJ7dmFyfT1AdmFye3ZhbHVlfX0sIEBj b21tYW5ke2Vudn0gd2lsbCBmaXJzdCBzZXQgQHZhcnt2YXJ9Cit0byBAdmFye3ZhbHVlfSBi ZWZvcmUgcnVubmluZyB0aGUgY29tbWFuZC4KKworQGl0ZW0gZXhwb3J0IFtAdmFye25hbWV9 PUB2YXJ7dmFsdWV9XUBkb3Rze30KK0BjbWluZGV4IGV4cG9ydAorU2V0IGVudmlyb25tZW50 IHZhcmlhYmxlcyB1c2luZyBpbnB1dCBsaWtlIEJhc2gncyBAY29tbWFuZHtleHBvcnR9LCBh cworaW4gQHNhbXB7ZXhwb3J0IEB2YXJ7dmFyMX09QHZhcnt2YWwxfSBAdmFye3ZhcjJ9PUB2 YXJ7dmFsMn0gQGRvdHN7fX0uCiAKIEBpdGVtIHNldCBbQHZhcnt2YXJ9IEB2YXJ7dmFsdWV9 XUBkb3Rze30KIEBjbWluZGV4IHNldApAQCAtMTE1NCw2ICsxMDE4LDc0IEBAIEJ1aWx0LWlu cwogU2V0IHZhcmlhYmxlIHZhbHVlcywgdXNpbmcgdGhlIGZ1bmN0aW9uIEBjb2Rle3NldHF9 IGxpa2UgYSBjb21tYW5kCiAoQHB4cmVme1NldHRpbmcgVmFyaWFibGVzLCwsIGVsaXNwLCBH TlUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfSkuCiAKK0BpdGVtIHVuc2V0IFtAdmFy e3Zhcn1dQGRvdHN7fQorQGNtaW5kZXggdW5zZXQKK1Vuc2V0IG9uZSBvciBtb3JlIHZhcmlh Ymxlcy4gIEFzIHdpdGggQGNvbW1hbmR7c2V0fSwgdGhlIHZhbHVlIG9mCitAdmFye3Zhcn0g Y2FuIGJlIGEgc3ltYm9sLCBpbiB3aGljaCBjYXNlIGl0IHJlZmVycyB0byBhIExpc3AgdmFy aWFibGUsCitvciBhIHN0cmluZywgcmVmZXJyaW5nIHRvIGFuIGVudmlyb25tZW50IHZhcmlh YmxlLgorCitAZW5kIHRhYmxlCisKK0Bub2RlIENvbW1hbmRzIGZvciBVc2luZyBPdGhlciBD b21tYW5kcworQHN1YnNlY3Rpb24gQ29tbWFuZHMgZm9yIFVzaW5nIE90aGVyIENvbW1hbmRz CitAdGFibGUgQGNvZGUKKworQGl0ZW0gLiBAdmFye2ZpbGV9IFtAdmFye2FyZ3VtZW50fV1A ZG90c3t9CitAY21pbmRleCAuCitTb3VyY2UgYW4gRXNoZWxsIHNjcmlwdCBuYW1lZCBAdmFy e2ZpbGV9IGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LAorcGFzc2luZyBhbnkgQHZhcnth cmd1bWVudHN9IHRvIHRoZSBzY3JpcHQgKEBweHJlZntTY3JpcHRzfSkuICBUaGlzIGlzCitu b3QgdG8gYmUgY29uZnVzZWQgd2l0aCB0aGUgY29tbWFuZCBAY29tbWFuZHtzb3VyY2V9LCB3 aGljaCBzb3VyY2VzIGEKK2ZpbGUgaW4gYSBzdWJzaGVsbCBlbnZpcm9ubWVudC4KKworQGl0 ZW0gYWRkcGF0aAorQGl0ZW14IGFkZHBhdGggWy1iXSBAdmFye2RpcmVjdG9yeX1AZG90c3t9 CitAY21pbmRleCBhZGRwYXRoCitBZGRzIGVhY2ggc3BlY2lmaWVkIEB2YXJ7ZGlyZWN0b3J5 fSB0byB0aGUgQGNvZGV7JFBBVEh9IGVudmlyb25tZW50Cit2YXJpYWJsZS4gIEJ5IGRlZmF1 bHQsIHRoaXMgYWRkcyB0aGUgZGlyZWN0b3JpZXMgdG8gdGhlIGVuZCBvZgorQGNvZGV7JFBB VEh9LCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5l OyBieQorcGFzc2luZyBAY29kZXstYn0gb3IgQGNvZGV7LS1iZWdpbn0sIEVzaGVsbCB3aWxs IGluc3RlYWQgYWRkIHRoZQorZGlyZWN0b3JpZXMgdG8gdGhlIGJlZ2lubmluZy4KKworV2l0 aCBubyBkaXJlY3RvcmllcywgcHJpbnQgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgY3VycmVu dGx5IHN0b3JlZCBpbgorQGNvZGV7JFBBVEh9LgorCitAaXRlbSBhbGlhcworQGl0ZW14IGFs aWFzIEB2YXJ7bmFtZX0gW0B2YXJ7Y29tbWFuZH1dCitAY21pbmRleCBhbGlhcworRGVmaW5l IGFuIGFsaWFzIG5hbWVkIEB2YXJ7bmFtZX0gYW5kIGV4cGFuZGluZyB0byBAdmFye2NvbW1h bmR9LAorYWRkaW5nIGl0IHRvIHRoZSBhbGlhc2VzIGZpbGUgKEBweHJlZntBbGlhc2VzfSku ICBJZiBAdmFye2NvbW1hbmR9IGlzCitvbWl0dGVkLCBkZWxldGUgdGhlIGFsaWFzIG5hbWVk IEB2YXJ7bmFtZX0uICBXaXRoIG5vIGFyZ3VtZW50cyBhdCBhbGwsCitsaXN0IGFsbCB0aGUg Y3VycmVudGx5LWRlZmluZWQgYWxpYXNlcy4KKworQGl0ZW0gY29tcGlsZSBbLXAgfCAtaV0g Wy1tIEB2YXJ7bW9kZS1uYW1lfV0gQHZhcntjb21tYW5kfUBkb3Rze30KK0BjbWluZGV4IGNv bXBpbGUKK1J1biBhbiBleHRlcm5hbCBjb21tYW5kLCBzZW5kaW5nIGl0cyBvdXRwdXQgdG8g YSBjb21waWxhdGlvbiBidWZmZXIgaWYKK3RoZSBjb21tYW5kIHdvdWxkIG91dHB1dCB0byB0 aGUgc2NyZWVuIGFuZCBpcyBub3QgcGFydCBvZiBhIHBpcGVsaW5lCitvciBzdWJjb21tYW5k LgorCitXaXRoIHRoZSBAY29kZXstcH0gb3IgQGNvZGV7LS1wbGFpbn0gb3B0aW9ucywgYWx3 YXlzIHNlbmQgdGhlIG91dHB1dAordG8gdGhlIEVzaGVsbCBidWZmZXI7IHNpbWlsYXJseSwg d2l0aCBAY29kZXstaX0gb3IKK0Bjb2Rley0taW50ZXJhY3RpdmV9LCBhbHdheXMgc2VuZCB0 aGUgb3V0cHV0IHRvIGEgY29tcGlsYXRpb24gYnVmZmVyLgorWW91IGNhbiBhbHNvIHNldCB0 aGUgbW9kZSBvZiB0aGUgY29tcGlsYXRpb24gYnVmZmVyIHdpdGggQGNvZGV7LW0KK0B2YXJ7 bW9kZS1uYW1lfX0gb3IgQGNvZGV7LS1tb2RlIEB2YXJ7bW9kZS1uYW1lfX0uCisKK0Bjb21t YW5ke2NvbXBpbGV9IGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBkZWZpbmluZyBhbGlh c2VzLCBzbwordGhhdCBpbnRlcmFjdGl2ZWx5LCB0aGUgb3V0cHV0IHNob3dzIHVwIGluIGEg Y29tcGlsYXRpb24gYnVmZmVyLCBidXQKK3lvdSBjYW4gc3RpbGwgcGlwZSB0aGUgb3V0cHV0 IGVsc2V3aGVyZSBpZiBkZXNpcmVkLiAgRm9yIGV4YW1wbGUsIGlmCit5b3UgaGF2ZSBhIGdy ZXAtbGlrZSBjb21tYW5kIG9uIHlvdXIgc3lzdGVtLCB5b3UgbWlnaHQgZGVmaW5lIGFuIGFs aWFzCitmb3IgaXQgbGlrZSBzbzogQHNhbXB7YWxpYXMgbXlncmVwICdjb21waWxlIC0tbW9k ZT1ncmVwLW1vZGUgLS0gbXlncmVwCiskKid9LgorCitAaXRlbSBqb2JzCitAY21pbmRleCBq b2JzCitMaXN0IHN1YnByb2Nlc3NlcyBvZiB0aGUgRW1hY3MgcHJvY2VzcywgaWYgYW55LCB1 c2luZyB0aGUgZnVuY3Rpb24KK0Bjb2Rle2xpc3QtcHJvY2Vzc2VzfS4KKworQGl0ZW0ga2ls bCBbLUB2YXJ7c2lnbmFsfV0gW0B2YXJ7cGlkfSB8IEB2YXJ7cHJvY2Vzc31dCitAY21pbmRl eCBraWxsCitLaWxsIHByb2Nlc3Nlcy4gIFRha2VzIGEgUElEIG9yIGEgcHJvY2VzcyBvYmpl Y3QgYW5kIGFuIG9wdGlvbmFsCitAdmFye3NpZ25hbH0gc3BlY2lmaWVyIHdoaWNoIGNhbiBl aXRoZXIgYmUgYSBudW1iZXIgb3IgYSBzaWduYWwgbmFtZS4KKwogQGl0ZW0gc291cmNlIEB2 YXJ7ZmlsZX0gW0B2YXJ7YXJndW1lbnR9XUBkb3Rze30KIEBjbWluZGV4IHNvdXJjZQogU291 cmNlIGFuIEVzaGVsbCBzY3JpcHQgbmFtZWQgQHZhcntmaWxlfSBpbiBhIHN1YnNoZWxsIGVu dmlyb25tZW50LApAQCAtMTE2NSwyMCArMTA5Nyw2IEBAIEJ1aWx0LWlucwogQGNtaW5kZXgg dGltZQogU2hvdyB0aGUgdGltZSBlbGFwc2VkIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIEB2 YXJ7Y29tbWFuZH0uCiAKLUBpdGVtIHVtYXNrIFstU10KLUBpdGVteCB1bWFzayBAdmFye21v ZGV9Ci1AY21pbmRleCB1bWFzawotVmlldyB0aGUgZGVmYXVsdCBmaWxlIHBlcm1pc3Npb25z IGZvciBuZXdseSBjcmVhdGVkIGZpbGVzIGFuZAotZGlyZWN0b3JpZXMuICBJZiB5b3UgcGFz cyBAY29kZXstU30gb3IgQGNvZGV7LS1zeW1ib2xpY30sIHZpZXcgdGhlCi1tb2RlIHN5bWJv bGljYWxseS4gIFdpdGggQHZhcnttb2RlfSwgc2V0IHRoZSBkZWZhdWx0IHBlcm1pc3Npb25z IHRvCi10aGlzIHZhbHVlLgotCi1AaXRlbSB1bnNldCBbQHZhcnt2YXJ9XUBkb3Rze30KLUBj bWluZGV4IHVuc2V0Ci1VbnNldCBvbmUgb3IgbW9yZSB2YXJpYWJsZXMuICBBcyB3aXRoIEBj b21tYW5ke3NldH0sIHRoZSB2YWx1ZSBvZgotQHZhcnt2YXJ9IGNhbiBiZSBhIHN5bWJvbCwg aW4gd2hpY2ggY2FzZSBpdCByZWZlcnMgdG8gYSBMaXNwIHZhcmlhYmxlLAotb3IgYSBzdHJp bmcsIHJlZmVycmluZyB0byBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KLQogQGl0ZW0gd2Fp dCBbQHZhcntwcm9jZXNzfV1AZG90c3t9CiBAY21pbmRleCB3YWl0CiBXYWl0IHVudGlsIGVh Y2ggc3BlY2lmaWVkIEB2YXJ7cHJvY2Vzc30gaGFzIGV4aXRlZC4KQEAgLTExODgsNiArMTEw NiwxMzAgQEAgQnVpbHQtaW5zCiBGb3IgZWFjaCBAdmFye2NvbW1hbmR9LCBpZGVudGlmeSB3 aGF0IGtpbmQgb2YgY29tbWFuZCBpdCBpcyBhbmQgaXRzCiBsb2NhdGlvbi4KIAorQGVuZCB0 YWJsZQorCitAbm9kZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzCitAc3Vic2VjdGlvbiBNaXNj ZWxsYW5lb3VzIENvbW1hbmRzCitAdGFibGUgQGNvZGUKKworQGl0ZW0gYmFzZW5hbWUgQHZh cntmaWxlbmFtZX0KK0BjbWluZGV4IGJhc2VuYW1lCitSZXR1cm4gQHZhcntmaWxlbmFtZX0g d2l0aG91dCBpdHMgZGlyZWN0b3J5LgorCitAaXRlbSBjbGVhciBbQHZhcntzY3JvbGxiYWNr fV0KK0BjbWluZGV4IGNsZWFyCitTY3JvbGxzIHRoZSBjb250ZW50cyBvZiB0aGUgRXNoZWxs IHdpbmRvdyBvdXQgb2Ygc2lnaHQsIGxlYXZpbmcgYQorYmxhbmsgd2luZG93LiAgSWYgQHZh cntzY3JvbGxiYWNrfSBpcyBub24tQGNvZGV7bmlsfSwgdGhlIHNjcm9sbGJhY2sKK2NvbnRl bnRzIGFyZSBjbGVhcmVkIGluc3RlYWQsIGFzIHdpdGggQGNvbW1hbmR7Y2xlYXItc2Nyb2xs YmFja30uCisKK0BpdGVtIGNsZWFyLXNjcm9sbGJhY2sKK0BjbWluZGV4IGNsZWFyLXNjcm9s bGJhY2sKK0NsZWFyIHRoZSBzY3JvbGxiYWNrIGNvbnRlbnRzIG9mIHRoZSBFc2hlbGwgd2lu ZG93LiAgVW5saWtlIHRoZQorY29tbWFuZCBAY29tbWFuZHtjbGVhcn0sIHRoaXMgY29tbWFu ZCBkZWxldGVzIGNvbnRlbnQgaW4gdGhlIEVzaGVsbAorYnVmZmVyLgorCitAaXRlbSBkYXRl IFtAdmFye3NwZWNpZmllZC10aW1lfSBbQHZhcnt6b25lfV1dCitAY21pbmRleCBkYXRlCitQ cmludCB0aGUgY3VycmVudCBsb2NhbCB0aW1lIGFzIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5n LiAgVGhpcyBjb21tYW5kCitpcyBhbiBhbGlhcyB0byB0aGUgRW1hY3MgTGlzcCBmdW5jdGlv biBAY29kZXtjdXJyZW50LXRpbWUtc3RyaW5nfQorKEBweHJlZntUaW1lIG9mIERheSwsLCBl bGlzcCwgR05VIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1hbnVhbH0pLgorCitAaXRlbSBkaXJu YW1lIEB2YXJ7ZmlsZW5hbWV9CitAY21pbmRleCBkaXJuYW1lCitSZXR1cm4gdGhlIGRpcmVj dG9yeSBjb21wb25lbnQgb2YgQHZhcntmaWxlbmFtZX0uCisKK0BpdGVtIGVjaG8gWy1uIHwg LU5dIFtAdmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggZWNobworUHJpbnRzIHRoZSB2YWx1 ZSBvZiBlYWNoIEB2YXJ7YXJnfS4gIEJ5IGRlZmF1bHQsIHRoaXMgcHJpbnRzIGluIGEKK0xp c3AtZnJpZW5kbHkgZmFzaGlvbiAoc28gdGhhdCB0aGUgdmFsdWUgaXMgdXNlZnVsIHRvIGEg TGlzcCBjb21tYW5kCit1c2luZyB0aGUgcmVzdWx0IG9mIEBjb21tYW5ke2VjaG99IGFzIGFu IGFyZ3VtZW50KS4gIElmIGEgc2luZ2xlCithcmd1bWVudCBpcyBwYXNzZWQsIEBjb21tYW5k e2VjaG99IHByaW50cyB0aGF0OyBpZiBtdWx0aXBsZSBhcmd1bWVudHMKK2FyZSBwYXNzZWQs IGl0IHByaW50cyBhIGxpc3Qgb2YgYWxsIHRoZSBhcmd1bWVudHM7IG90aGVyd2lzZSwgaXQK K3ByaW50cyB0aGUgZW1wdHkgc3RyaW5nLgorCitAdmluZGV4IGVzaGVsbC1wbGFpbi1lY2hv LWJlaGF2aW9yCitJZiBAY29kZXtlc2hlbGwtcGxhaW4tZWNoby1iZWhhdmlvcn0gaXMgbm9u LUBjb2Rle25pbH0sIEBjb21tYW5ke2VjaG99Cit3aWxsIHRyeSB0byBiZWhhdmUgbW9yZSBs aWtlIGEgcGxhaW4gc2hlbGwncyBAY29tbWFuZHtlY2hvfSwgcHJpbnRpbmcKK2VhY2ggYXJn dW1lbnQgYXMgYSBzdHJpbmcsIHNlcGFyYXRlZCBieSBhIHNwYWNlLgorCitZb3UgY2FuIGNv bnRyb2wgd2hldGhlciBAY29tbWFuZHtlY2hvfSBvdXRwdXRzIGEgdHJhaWxpbmcgbmV3bGlu ZQordXNpbmcgQGNvZGV7LW59IHRvIGRpc2FibGUgdGhlIHRyYWlsaW5nIG5ld2xpbmUgKHRo ZSBkZWZhdWx0IGJlaGF2aW9yKQorb3IgQGNvZGV7LU59IHRvIGVuYWJsZSBpdCAodGhlIGRl ZmF1bHQgd2hlbgorQGNvZGV7ZXNoZWxsLXBsYWluLWVjaG8tYmVoYXZpb3J9IGlzIG5vbi1A Y29kZXtuaWx9KS4KKworQGl0ZW0gZXNoZWxsLWRlYnVnIFtlcnJvciB8IGZvcm0gfCBwcm9j ZXNzXUBkb3Rze30KK0BjbWluZGV4IGVzaGVsbC1kZWJ1ZworVG9nZ2xlIGRlYnVnZ2luZyBp bmZvcm1hdGlvbiBmb3IgRXNoZWxsIGl0c2VsZi4gIFlvdSBjYW4gcGFzcyB0aGlzCitjb21t YW5kIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOgorCitAaXRlbWl6 ZSBAYnVsbGV0CisKK0BpdGVtCitAY29kZXtlcnJvcn0sIHRvIGVuYWJsZS9kaXNhYmxlIEVz aGVsbCB0cmFwcGluZyBlcnJvcnMgd2hlbgorZXZhbHVhdGluZyBjb21tYW5kczsKKworQGl0 ZW0KK0Bjb2Rle2Zvcm19LCB0byBzaG93L2hpZGUgRXNoZWxsIGNvbW1hbmQgZm9ybSBtYW5p cHVsYXRpb24gaW4gdGhlCitidWZmZXIgQGNvZGV7KmVzaGVsbCBsYXN0IGNtZCp9OyBvcgor CitAaXRlbQorQGNvZGV7cHJvY2Vzc30sIHRvIHNob3cvaGlkZSBleHRlcm5hbCBwcm9jZXNz IGV2ZW50cyBpbiB0aGUgYnVmZmVyCitAY29kZXsqZXNoZWxsIGxhc3QgY21kKn0uCisKK0Bl bmQgaXRlbWl6ZQorCitAaXRlbSBleGl0CitAY21pbmRleCBleGl0CitAdmluZGV4IGVzaGVs bC1raWxsLW9uLWV4aXQKK0V4aXQgRXNoZWxsIGFuZCBzYXZlIHRoZSBoaXN0b3J5LiAgQnkg ZGVmYXVsdCwgdGhpcyBjb21tYW5kIGtpbGxzIHRoZQorRXNoZWxsIGJ1ZmZlciwgYnV0IGlm IEBjb2Rle2VzaGVsbC1raWxsLW9uLWV4aXR9IGlzIEBjb2Rle25pbH0sIHRoZW4KK3RoZSBi dWZmZXIgaXMgbWVyZWx5IGJ1cmllZCBpbnN0ZWFkLgorCitAaXRlbSBoaXN0b3J5IFtAdmFy e259XQorQGl0ZW14IGhpc3RvcnkgWy1hcnddIFtAdmFye2ZpbGVuYW1lfV0KK0BjbWluZGV4 IGhpc3RvcnkKK1ByaW50cyBFc2hlbGwncyBpbnB1dCBoaXN0b3J5LiAgV2l0aCBhIG51bWVy aWMgYXJndW1lbnQgQHZhcntufSwgdGhpcworY29tbWFuZCBwcmludHMgdGhlIEB2YXJ7bn0g bW9zdCByZWNlbnQgaXRlbXMgaW4gdGhlIGhpc3RvcnkuCitBbHRlcm5hdGVseSwgeW91IGNh biBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKworQHRhYmxlIEBhc2lzCisKK0Bp dGVtIEBjb2Rley1hfSwgQGNvZGV7LS1hcHBlbmR9CitBcHBlbmQgbmV3IGhpc3RvcnkgaXRl bXMgdG8gdGhlIGhpc3RvcnkgZmlsZS4KKworQGl0ZW0gQGNvZGV7LXJ9LCBAY29kZXstLXJl YWR9CitSZWFkIGhpc3RvcnkgaXRlbXMgZnJvbSB0aGUgaGlzdG9yeSBmaWxlIGFuZCBhcHBl bmQgdGhlbSB0byB0aGUKK2N1cnJlbnQgc2hlbGwncyBoaXN0b3J5LgorCitAaXRlbSBAY29k ZXstd30sIEBjb2Rley0td3JpdGV9CitXcml0ZSB0aGUgY3VycmVudCBoaXN0b3J5IGxpc3Qg dG8gdGhlIGhpc3RvcnkgZmlsZS4KKworQGVuZCB0YWJsZQorCitAaXRlbSBsaXN0aWZ5IFtA dmFye2FyZ31dQGRvdHN7fQorQGNtaW5kZXggbGlzdGlmeQorUmV0dXJuIHRoZSBhcmd1bWVu dHMgYXMgYSBzaW5nbGUgbGlzdC4gIFdpdGggYSBzaW5nbGUgYXJndW1lbnQsIHJldHVybgor aXQgYXMtaXMgaWYgaXQncyBhbHJlYWR5IGEgbGlzdCwgb3Igb3RoZXJ3aXNlIHdyYXAgaXQg aW4gYSBsaXN0LiAgV2l0aAorbXVsdGlwbGUgYXJndW1lbnRzLCByZXR1cm4gYSBsaXN0IG9m IGFsbCBvZiB0aGVtLgorCitAaXRlbSBtYWtlIFtAdmFye2FyZ31dQGRvdHN7fQorQGNtaW5k ZXggbWFrZQorUnVuIEBjb21tYW5ke21ha2V9IHRocm91Z2ggQGNvZGV7Y29tcGlsZX0gd2hl biBydW4gYXN5bmNocm9ub3VzbHkKKyhlLmcuLCBAc2FtcHttYWtlICZ9KS4gIEB4cmVme0Nv bXBpbGF0aW9uLCAsICwgZW1hY3MsIFRoZSBHTlUgRW1hY3MKK01hbnVhbH0uICBPdGhlcndp c2UgY2FsbCB0aGUgZXh0ZXJuYWwgQGNvbW1hbmR7bWFrZX0gY29tbWFuZC4KKworQGl0ZW0g cHJpbnRubCBbQHZhcnthcmd9XUBkb3Rze30KK0BjbWluZGV4IHByaW50bmwKK1ByaW50IGFs bCB0aGUgQHZhcnthcmd9cyBzZXBhcmF0ZWQgYnkgbmV3bGluZXMuCisKK0BpdGVtIHVtYXNr IFstU10KK0BpdGVteCB1bWFzayBAdmFye21vZGV9CitAY21pbmRleCB1bWFzaworVmlldyB0 aGUgZGVmYXVsdCBmaWxlIHBlcm1pc3Npb25zIGZvciBuZXdseSBjcmVhdGVkIGZpbGVzIGFu ZAorZGlyZWN0b3JpZXMuICBJZiB5b3UgcGFzcyBAY29kZXstU30gb3IgQGNvZGV7LS1zeW1i b2xpY30sIHZpZXcgdGhlCittb2RlIHN5bWJvbGljYWxseS4gIFdpdGggQHZhcnttb2RlfSwg c2V0IHRoZSBkZWZhdWx0IHBlcm1pc3Npb25zIHRvCit0aGlzIHZhbHVlLgorCiBAaXRlbSB3 aG9hbWkKIEBjbWluZGV4IHdob2FtaQogUHJpbnQgdGhlIGN1cnJlbnQgdXNlci4gIFRoaXMg RXNoZWxsIHZlcnNpb24gb2YgQGNvbW1hbmR7d2hvYW1pfSBpcwpAQCAtMTE5NSw3ICsxMjM3 LDggQEAgQnVpbHQtaW5zCiBhc3NvY2lhdGVkIHdpdGggdGhhdCBjb25uZWN0aW9uLgogQGVu ZCB0YWJsZQogCi1Ac3Vic2VjdGlvbiBEZWZpbmluZyBuZXcgYnVpbHQtaW4gY29tbWFuZHMK K0Bub2RlIERlZmluaW5nIE5ldyBCdWlsdC1pbiBDb21tYW5kcworQHN1YnNlY3Rpb24gRGVm aW5pbmcgTmV3IEJ1aWx0LWluIENvbW1hbmRzCiBXaGlsZSBFc2hlbGwgY2FuIHJ1biBMaXNw IGZ1bmN0aW9ucyBkaXJlY3RseSBhcyBjb21tYW5kcywgaXQgbWF5IGJlCiBtb3JlIGNvbnZl bmllbnQgdG8gcHJvdmlkZSBhIHNwZWNpYWwgYnVpbHQtaW4gY29tbWFuZCBmb3IKIEVzaGVs bC4gIEJ1aWx0LWluIGNvbW1hbmRzIGFyZSBqdXN0IG9yZGluYXJ5IExpc3AgZnVuY3Rpb25z IGRlc2lnbmVkCi0tIAoyLjI1LjEKCg== --------------kf40TWkKs0Hp0Bo9JkxrEbjG-- ------------=_1707529562-9482-1--