From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 6343f8b5 for ; Mon, 18 Mar 2019 00:45:30 +0000 (UTC) Received: (qmail 4099 invoked by alias); 18 Mar 2019 00:45:15 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 44139 Received: (qmail 406 invoked by uid 1010); 18 Mar 2019 00:45:14 -0000 X-Qmail-Scanner-Diagnostics: from mail-ed1-f53.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.100.2/25391. spamassassin: 3.4.2. Clear:RC:0(209.85.208.53):SA:0(-1.8/5.0):. Processed in 1.717989 secs); 18 Mar 2019 00:45:14 -0000 X-Envelope-From: phy1729@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.208.53 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7GtpJuL9pN8M5v7T+ItFgYPi7mLnC1JttRH1n9/Epww=; b=D/6Czb5S2Hx3OwJW6cDUofNY/rmvL5uyI5KsxArPbSbdiTJz3VedRmKgaFVrPIbif/ B6XCj681vCAebTJAfvDTmk6+/+8wLr2vLmbAfCuc1jzWwU10HGWBVTcIl4SeBM/htyDt P3hpkM/w/w9uOcKYYdS2chF46LG82rR6RnYaZw7qrtb3KJZn/XnkjRgoeittkSQ+1KTD c+Hl0J8IElIgf2JGFJ+RJLzON+XjPumd27lI8MwXmGlYr38n/Q2+fciZXW6nygN0huIV N2gpfZAkJn91W92l068Bi8cAGX8gYqxCiWP0qi3e+KQ99yzDIbs8UJX91Lq1pdw/izPK XYbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7GtpJuL9pN8M5v7T+ItFgYPi7mLnC1JttRH1n9/Epww=; b=XnXkS6mNkt5O87gu/m6Y7I3daWKcQKgA3KVHXbr6jjcmsWg9LfdNI/2G9k1Wyf82wi EIOjuXvkT7eQVc5ZR89/VwSuhKsegiYGxcjq76fEFESIMljT2S8590uTF1ZzXM62DzPK +5oPsmQTNRb8dQgdEAdVfI+iVwAaABcIF9DdQ/rsJGRBjrtici0Ipw32h7Uh4k83MPOT hQ7+lUlnS37zivRohd0IyYMeq+J8wSkwD5yVkgdti9JJ9+9zRK/4jz2bodUDaP2nkEnb M8UP+U6maI3QvvFdgR7kxP0gy7MMBhTGwccUb4rSLFkefwPooTWw4gBx7nFUiqioND8h cUpA== X-Gm-Message-State: APjAAAVT6WSuSa31zOqqHNkyUQ9bpqSRINHsVyVw+aXadl+Fs/MC9lDs wfAd0rKxt2KkhLOz9/W9bdRyXfbGi3IEXloh7j6HL/6A X-Google-Smtp-Source: APXvYqzj2p7092OGuSZGc4h9EU13ouzn5uRkRBdXaEGGJaOWAplA+Dnr8BRQQqwU9/Hev1pC7Qck3nB6VucIq+wpNqU= X-Received: by 2002:a50:b1d4:: with SMTP id n20mr6952623edd.108.1552869878304; Sun, 17 Mar 2019 17:44:38 -0700 (PDT) MIME-Version: 1.0 References: <5A60CD98-F8E0-425F-AB77-C88DE7A9CBD2@dana.is> In-Reply-To: <5A60CD98-F8E0-425F-AB77-C88DE7A9CBD2@dana.is> From: Matthew Martin Date: Sun, 17 Mar 2019 19:44:27 -0500 Message-ID: Subject: Re: Add chmod builtin To: dana Cc: zsh-workers@zsh.org Content-Type: multipart/mixed; boundary="0000000000007ab794058453b16d" --0000000000007ab794058453b16d Content-Type: text/plain; charset="UTF-8" On Sun, Mar 17, 2019 at 6:27 AM dana wrote: > >+if zmodload -e zsh/files && [[ $words[1] != */* ]]; then > > I don't think this is reliable. It will detect any chmod as the built-in even > if only zf_chown is loaded (with -F). And `zmodload -e` always returns 1 for > modules loaded through selective auto-loading (-Fa), so it will *never* > detect the built-in in that case. (Not sure if that -e behaviour is intended?) > > I know the $OSTYPE-$variant thing is dumb (should have passed $OSTYPE directly > to _pick_variant), but otherwise i think the method i used for distinguishing > the built-ins in _stat is fairly robust. Reading the docs for _pick_variant, there's a -b option to detect builtins. It has some issues (namely with precommands), but those can be fixed in a separate commit. Requires some reindenting, so I've split the patch in two. > PS: Your patch seems to have corrupt white space Gmail hasn't been sending mails sent via mutt for the past few months. Not sure what's causing it, but I've had to resort to using the web interface which seems to mangle whitespace. I've attached the patches and they're on my github repo as well. --0000000000007ab794058453b16d Content-Type: text/x-patch; charset="US-ASCII"; name="0001-44135-_chmod-Reformat-to-minimize-next-diff.-No-func.patch" Content-Disposition: attachment; filename="0001-44135-_chmod-Reformat-to-minimize-next-diff.-No-func.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jtdmm3gc0 RnJvbSAyZjY3MGJlOTUxYjFiNmUyNDI2OTE1NjJhOWRhZjA2MDEwYmZjZTk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IE1hcnRpbiA8cGh5MTcyOUBnbWFpbC5jb20+CkRh dGU6IFN1biwgMTcgTWFyIDIwMTkgMTk6MjQ6NTYgLTA1MDAKU3ViamVjdDogW1BBVENIIDEvMl0g NDQxMzU6IF9jaG1vZDogUmVmb3JtYXQgdG8gbWluaW1pemUgbmV4dCBkaWZmLiBObwogZnVuY3Rp b25hbCBjaGFuZ2UuCgotLS0KIENvbXBsZXRpb24vVW5peC9Db21tYW5kL19jaG1vZCB8IDk0ICsr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1MCBpbnNl cnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Db21wbGV0aW9uL1VuaXgv Q29tbWFuZC9fY2htb2QgYi9Db21wbGV0aW9uL1VuaXgvQ29tbWFuZC9fY2htb2QKaW5kZXggYWY2 NGI5ZWI5Li42YTQ0YTRlZjEgMTAwNjQ0Ci0tLSBhL0NvbXBsZXRpb24vVW5peC9Db21tYW5kL19j aG1vZAorKysgYi9Db21wbGV0aW9uL1VuaXgvQ29tbWFuZC9fY2htb2QKQEAgLTEsNTIgKzEsNTgg QEAKICNjb21wZGVmIGNobW9kIGdjaG1vZAogCi1sb2NhbCBjdXJjb250ZXh0PSIkY3VyY29udGV4 dCIgc3RhdGUgbGluZSBleHBsIHJldD0xCitsb2NhbCBjdXJjb250ZXh0PSIkY3VyY29udGV4dCIg c3RhdGUgbGluZSBleHBsIHJldD0xIHZhcmlhbnQKIGxvY2FsIC1hIGFyZ3MgcHJpdnMKIAogYXJn cz0oICcqOiA6LT5maWxlcycgJzE6IDpfZmlsZV9tb2RlcycgKQogCi1pZiBfcGlja192YXJpYW50 IGdudT1GcmVlXCBTb2Z0IHVuaXggLS12ZXJzaW9uOyB0aGVuCi0gIGFyZ3MrPSgKLSAgICAnKC12 IC0tdmVyYm9zZSAtYyAtLWNoYW5nZXMpJ3stYywtLWNoYW5nZXN9J1tyZXBvcnQgY2hhbmdlcyBt YWRlXScKLSAgICAnKC12IC0tdmVyYm9zZSAtYyAtLWNoYW5nZXMpJ3stdiwtLXZlcmJvc2V9J1tv dXRwdXQgYSBkaWFnbm9zdGljIGZvciBldmVyeSBmaWxlIHByb2Nlc3NlZF0nCi0gICAgJygtZiAt LXNpbGVudCAtLXF1aWV0KSd7LWYsLS1zaWxlbnQsLS1xdWlldH0nW3N1cHByZXNzIG1vc3QgZXJy b3IgbWVzc2FnZXNdJwotICAgICcoLS1uby1wcmVzZXJ2ZS1yb290KS0tcHJlc2VydmUtcm9vdFtm YWlsIHRvIG9wZXJhdGUgcmVjdXJzaXZlbHkgb24gL10nCi0gICAgIigtLXByZXNlcnZlLXJvb3Qp LS1uby1wcmVzZXJ2ZS1yb290W2Rvbid0IHRyZWF0IC8gc3BlY2lhbGx5IChkZWZhdWx0KV0iCi0g ICAgJygxKS0tcmVmZXJlbmNlPVtjb3B5IHBlcm1pc3Npb25zIG9mIHNwZWNpZmllZCBmaWxlXTpm aWxlOl9maWxlcycKLSAgICAnKC1SIC0tcmVjdXJzaXZlKSd7LVIsLS1yZWN1cnNpdmV9J1tjaGFu Z2UgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHJlY3Vyc2l2ZWx5XScKLSAgICAnKC0gOiAqKS0taGVs cFtkaXNwbGF5IGhlbHAgaW5mb3JtYXRpb25dJwotICAgICcoLSA6ICopLS12ZXJzaW9uW2Rpc3Bs YXkgdmVyc2lvbiBpbmZvcm1hdGlvbl0nCi0gICkKLWVsc2UKLSAgYXJncys9KAotICAgICctZltz dXBwcmVzcyBtb3N0IGVycm9yIG1lc3NhZ2VzXScKLSAgICAnLVJbY2hhbmdlIGZpbGVzIGFuZCBk aXJlY3RvcmllcyByZWN1cnNpdmVseV0nCi0gICkKLSAgY2FzZSAkT1NUWVBFIGluCi0gICAgZnJl ZWJzZCp8ZHJhZ29uZmx5KnxkYXJ3aW4qKQotICAgICAgYXJncys9KCAnLXZbb3V0cHV0IGEgZGlh Z25vc3RpYyBmb3IgZXZlcnkgZmlsZSBwcm9jZXNzZWRdJykKK19waWNrX3ZhcmlhbnQgLXIgdmFy aWFudCBnbnU9RnJlZVwgU29mdCAkT1NUWVBFIC0tdmVyc2lvbgorY2FzZSAiJHZhcmlhbnQiIGlu CisgIGdudSkKKyAgICBhcmdzKz0oCisgICAgICAnKC12IC0tdmVyYm9zZSAtYyAtLWNoYW5nZXMp J3stYywtLWNoYW5nZXN9J1tyZXBvcnQgY2hhbmdlcyBtYWRlXScKKyAgICAgICcoLXYgLS12ZXJi b3NlIC1jIC0tY2hhbmdlcykney12LC0tdmVyYm9zZX0nW291dHB1dCBhIGRpYWdub3N0aWMgZm9y IGV2ZXJ5IGZpbGUgcHJvY2Vzc2VkXScKKyAgICAgICcoLWYgLS1zaWxlbnQgLS1xdWlldCkney1m LC0tc2lsZW50LC0tcXVpZXR9J1tzdXBwcmVzcyBtb3N0IGVycm9yIG1lc3NhZ2VzXScKKyAgICAg ICcoLS1uby1wcmVzZXJ2ZS1yb290KS0tcHJlc2VydmUtcm9vdFtmYWlsIHRvIG9wZXJhdGUgcmVj dXJzaXZlbHkgb24gL10nCisgICAgICAiKC0tcHJlc2VydmUtcm9vdCktLW5vLXByZXNlcnZlLXJv b3RbZG9uJ3QgdHJlYXQgLyBzcGVjaWFsbHkgKGRlZmF1bHQpXSIKKyAgICAgICcoMSktLXJlZmVy ZW5jZT1bY29weSBwZXJtaXNzaW9ucyBvZiBzcGVjaWZpZWQgZmlsZV06ZmlsZTpfZmlsZXMnCisg ICAgICAnKC1SIC0tcmVjdXJzaXZlKSd7LVIsLS1yZWN1cnNpdmV9J1tjaGFuZ2UgZmlsZXMgYW5k IGRpcmVjdG9yaWVzIHJlY3Vyc2l2ZWx5XScKKyAgICAgICcoLSA6ICopLS1oZWxwW2Rpc3BsYXkg aGVscCBpbmZvcm1hdGlvbl0nCisgICAgICAnKC0gOiAqKS0tdmVyc2lvbltkaXNwbGF5IHZlcnNp b24gaW5mb3JtYXRpb25dJworICAgICkKKyAgICA7OworICAqKQorICAgIGFyZ3MrPSgKKyAgICAg ICctZltzdXBwcmVzcyBtb3N0IGVycm9yIG1lc3NhZ2VzXScKKyAgICAgICctUltjaGFuZ2UgZmls ZXMgYW5kIGRpcmVjdG9yaWVzIHJlY3Vyc2l2ZWx5XScKKyAgICApCisgICAgO3wKKyAgZnJlZWJz ZCp8ZHJhZ29uZmx5KnxkYXJ3aW4qKQorICAgIGFyZ3MrPSgKKyAgICAgICctdltvdXRwdXQgYSBk aWFnbm9zdGljIGZvciBldmVyeSBmaWxlIHByb2Nlc3NlZF0nCisgICAgKQogICAgIDt8Ci0gICAg ZnJlZWJzZCp8bmV0YnNkKnxkYXJ3aW4qfGRyYWdvbmZseSopCi0gICAgICBhcmdzKz0oICItaFtv cGVyYXRlIG9uIHN5bWxpbmtzIHRoZW0gc2VsZl0iICkKKyAgZnJlZWJzZCp8bmV0YnNkKnxkYXJ3 aW4qfGRyYWdvbmZseSopCisgICAgYXJncys9KAorICAgICAgJy1oW29wZXJhdGUgb24gc3ltbGlu a3MgdGhlbSBzZWxmXScKKyAgICApCiAgICAgO3wKLSAgICBmcmVlYnNkKnxvcGVuYnNkKnxuZXRi c2QqfGRhcndpbip8ZHJhZ29uZmx5KikKLSAgICAgIGFyZ3MrPSgKLQknKC1IIC1MIC1QKS1MW2Zv bGxvdyBhbGwgc3ltbGlua3NdJwotCScoLUggLUwgLVApLUhbZm9sbG93IHN5bWxpbmtzIG9uIHRo ZSBjb21tYW5kIGxpbmVdJwotCScoLUggLUwgLVApLVBbZG8gbm90IGZvbGxvdyBzeW1saW5rcyAo ZGVmYXVsdCldJwotICAgICAgKQorICBmcmVlYnNkKnxvcGVuYnNkKnxuZXRic2QqfGRhcndpbip8 ZHJhZ29uZmx5KikKKyAgICBhcmdzKz0oCisgICAgICAnKC1IIC1MIC1QKS1MW2ZvbGxvdyBhbGwg c3ltbGlua3NdJworICAgICAgJygtSCAtTCAtUCktSFtmb2xsb3cgc3ltbGlua3Mgb24gdGhlIGNv bW1hbmQgbGluZV0nCisgICAgICAnKC1IIC1MIC1QKS1QW2RvIG5vdCBmb2xsb3cgc3ltbGlua3Mg KGRlZmF1bHQpXScKKyAgICApCiAgICAgO3wKLSAgICBkYXJ3aW4qKQotICAgICAgYXJncys9KAot ICAgICAgICAnKDEpLUNbcmV0dXJucyBmYWxzZSBpZiBhbnkgb2YgdGhlIG5hbWVkIGZpbGVzIGhh dmUgQUNMc10nCi0JJygxKS1OW3JlbW92ZSBBQ0xzIGZyb20gc3BlY2lmaWVkIGZpbGVzXScKLQkn KDEpLUVbcmVhZCBBQ0wgaW5mbyBmcm9tIHN0ZGluIGFzIGEgc2VxdWVudGlhbCBsaXN0IG9mIEFD RXNdJwotCScoMSktaVtyZW1vdmVzIGluaGVyaXRlZCBiaXQgZnJvbSBhbGwgZW50cmllcyBpbiBu YW1lZCBmaWxlcyBBQ0xzXScKLSAgICAgICAgJygxKS1JW3JlbW92ZXMgYWxsIGluaGVyaXRlZCBl bnRyaWVzIGZyb20gbmFtZWQgZmlsZXMgQUNMc10nCi0gICAgICApCisgIGRhcndpbiopCisgICAg YXJncys9KAorICAgICAgJygxKS1DW3JldHVybnMgZmFsc2UgaWYgYW55IG9mIHRoZSBuYW1lZCBm aWxlcyBoYXZlIEFDTHNdJworICAgICAgJygxKS1OW3JlbW92ZSBBQ0xzIGZyb20gc3BlY2lmaWVk IGZpbGVzXScKKyAgICAgICcoMSktRVtyZWFkIEFDTCBpbmZvIGZyb20gc3RkaW4gYXMgYSBzZXF1 ZW50aWFsIGxpc3Qgb2YgQUNFc10nCisgICAgICAnKDEpLWlbcmVtb3ZlcyBpbmhlcml0ZWQgYml0 IGZyb20gYWxsIGVudHJpZXMgaW4gbmFtZWQgZmlsZXMgQUNMc10nCisgICAgICAnKDEpLUlbcmVt b3ZlcyBhbGwgaW5oZXJpdGVkIGVudHJpZXMgZnJvbSBuYW1lZCBmaWxlcyBBQ0xzXScKKyAgICAp CiAgICAgOzsKLSAgZXNhYwotZmkKK2VzYWMKIAogX2FyZ3VtZW50cyAtQyAtcyAiJGFyZ3NbQF0i ICYmIHJldD0wCiAKQEAgLTYyLDEyICs2OCwxMiBAQCBjYXNlICIkc3RhdGUiIGluCiAgICAgICBs b2NhbCBzcGVjIHdobyBvcCBwcml2CiAgICAgICBsb2NhbCAtYSBzcGVjcwogICAgICAgZm9yIHNw ZWMgaW4gJHsoczosOilsaW5lWzFdfTsgZG8KLQlpZiBbWyAke3NwZWMjKlsrLT1dfSAhPSBbcnd4 c3RdIyMgXV07IHRoZW4KLQkgIF9maWxlcyAmJiByZXQ9MAotCSAgcmV0dXJuIHJldAotCWZpCisg ICAgICAgIGlmIFtbICR7c3BlYyMqWystPV19ICE9IFtyd3hzdF0jIyBdXTsgdGhlbgorICAgICAg ICAgIF9maWxlcyAmJiByZXQ9MAorICAgICAgICAgIHJldHVybiByZXQKKyAgICAgICAgZmkKIAot CXNwZWNzKz0oICR7JHsoTSlzcGVjIyNbKy09XSp9OithfSRzcGVjICkKKyAgICAgICAgc3BlY3Mr PSggJHskeyhNKXNwZWMjI1srLT1dKn06K2F9JHNwZWMgKQogICAgICAgZG9uZQogICAgICAgX3dh bnRlZCBmaWxlcyBleHBsIGZpbGUgX2ZpbGVzIC1nICIqKC0uXmY6JHsoai4sLilzcGVjc306KSIg JiYgcmV0PTAKICAgICBmaQotLSAKMi4yMS4wCgo= --0000000000007ab794058453b16d Content-Type: text/x-patch; charset="US-ASCII"; name="0002-44135-Add-chmod-builtin.patch" Content-Disposition: attachment; filename="0002-44135-Add-chmod-builtin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jtdmm3gm1 RnJvbSA4ZDUyNjI4MWU1NmNlYzY1Nzk4OTI3MDZjMmMzMDUyNDYyNjliN2ViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IE1hcnRpbiA8cGh5MTcyOUBnbWFpbC5jb20+CkRh dGU6IFN1biwgMTcgTWFyIDIwMTkgMTk6MzA6NDcgLTA1MDAKU3ViamVjdDogW1BBVENIIDIvMl0g NDQxMzU6IEFkZCBjaG1vZCBidWlsdGluCgotLS0KIENvbXBsZXRpb24vVW5peC9Db21tYW5kL19j aG1vZCB8IDEzICsrKysrKysrKy0tCiBEb2MvWnNoL21vZF9maWxlcy55byAgICAgICAgICAgfCAy MCArKysrKysrKysrKysrKysrKwogU3JjL01vZHVsZXMvZmlsZXMuYyAgICAgICAgICAgIHwgNDEg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA3MiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0NvbXBsZXRpb24vVW5p eC9Db21tYW5kL19jaG1vZCBiL0NvbXBsZXRpb24vVW5peC9Db21tYW5kL19jaG1vZAppbmRleCA2 YTQ0YTRlZjEuLjg5YTdmYmQ0MyAxMDA2NDQKLS0tIGEvQ29tcGxldGlvbi9Vbml4L0NvbW1hbmQv X2NobW9kCisrKyBiL0NvbXBsZXRpb24vVW5peC9Db21tYW5kL19jaG1vZApAQCAtMSwxMiArMSwy MSBAQAotI2NvbXBkZWYgY2htb2QgZ2NobW9kCisjY29tcGRlZiBjaG1vZCBnY2htb2QgemZfY2ht b2QKIAogbG9jYWwgY3VyY29udGV4dD0iJGN1cmNvbnRleHQiIHN0YXRlIGxpbmUgZXhwbCByZXQ9 MSB2YXJpYW50CiBsb2NhbCAtYSBhcmdzIHByaXZzCiAKIGFyZ3M9KCAnKjogOi0+ZmlsZXMnICcx OiA6X2ZpbGVfbW9kZXMnICkKIAotX3BpY2tfdmFyaWFudCAtciB2YXJpYW50IGdudT1GcmVlXCBT b2Z0ICRPU1RZUEUgLS12ZXJzaW9uCitfcGlja192YXJpYW50IC1yIHZhcmlhbnQgLWIgenNoIGdu dT1GcmVlXCBTb2Z0ICRPU1RZUEUgLS12ZXJzaW9uCiBjYXNlICIkdmFyaWFudCIgaW4KKyAgenNo KQorICAgICMgQXNzaWduLCBub3QgYXBwZW5kIGJlY2F1c2UgemZfY2htb2Qgb25seSBzdXBwb3J0 cyBvY3RhbCBtb2Rlcy4KKyAgICBhcmdzPSgKKyAgICAgICctUltjaGFuZ2UgZmlsZXMgYW5kIGRp cmVjdG9yaWVzIHJlY3Vyc2l2ZWx5XScgXAorICAgICAgJy1zW2VuYWJsZSBwYXJhbm9pZCBiZWhh dmlvcl0nIFwKKyAgICAgICcxOm9jdGFsIG1vZGU6JyBcCisgICAgICAnKjogOi0+ZmlsZXMnCisg ICAgKQorICAgIDs7CiAgIGdudSkKICAgICBhcmdzKz0oCiAgICAgICAnKC12IC0tdmVyYm9zZSAt YyAtLWNoYW5nZXMpJ3stYywtLWNoYW5nZXN9J1tyZXBvcnQgY2hhbmdlcyBtYWRlXScKZGlmZiAt LWdpdCBhL0RvYy9ac2gvbW9kX2ZpbGVzLnlvIGIvRG9jL1pzaC9tb2RfZmlsZXMueW8KaW5kZXgg OTBlOTg4NDc0Li4zY2Y3YjYxZTMgMTAwNjQ0Ci0tLSBhL0RvYy9ac2gvbW9kX2ZpbGVzLnlvCisr KyBiL0RvYy9ac2gvbW9kX2ZpbGVzLnlvCkBAIC0yMyw2ICsyMywyNiBAQCBpdGVtKHR0KGNoZ3Jw KSBbIHR0KC1oUnMpIF0gdmFyKGdyb3VwKSB2YXIoZmlsZW5hbWUpIC4uLikoCiBDaGFuZ2VzIGdy b3VwIG9mIGZpbGVzIHNwZWNpZmllZC4gIFRoaXMgaXMgZXF1aXZhbGVudCB0byB0dChjaG93bikg d2l0aAogYSB2YXIodXNlci1zcGVjKSBhcmd1bWVudCBvZiBgdHQoOil2YXIoZ3JvdXApJy4KICkK K2ZpbmRleChjaG1vZCkKK2l0ZW0odHQoY2htb2QpIFsgdHQoLVJzKSBdIHZhcihtb2RlKSB2YXIo ZmlsZW5hbWUpIC4uLikoCitDaGFuZ2VzIG1vZGUgb2YgZmlsZXMgc3BlY2lmaWVkLgorCitUaGUg c3BlY2lmaWVkIHZhcihtb2RlKSBtdXN0IGJlIGluIG9jdGFsLgorCitUaGUgdHQoLVIpIG9wdGlv biBjYXVzZXMgdHQoY2htb2QpIHRvIHJlY3Vyc2l2ZWx5IGRlc2NlbmQgaW50byBkaXJlY3Rvcmll cywKK2NoYW5naW5nIHRoZSBtb2RlIG9mIGFsbCBmaWxlcyBpbiB0aGUgZGlyZWN0b3J5IGFmdGVy CitjaGFuZ2luZyB0aGUgbW9kZSBvZiB0aGUgZGlyZWN0b3J5IGl0c2VsZi4KKworVGhlIHR0KC1z KSBvcHRpb24gaXMgYSB6c2ggZXh0ZW5zaW9uIHRvIHR0KGNobW9kKSBmdW5jdGlvbmFsaXR5LiAg SXQgZW5hYmxlcworcGFyYW5vaWQgYmVoYXZpb3VyLCBpbnRlbmRlZCB0byBhdm9pZCBzZWN1cml0 eSBwcm9ibGVtcyBpbnZvbHZpbmcKK2EgdHQoY2htb2QpIGJlaW5nIHRyaWNrZWQgaW50byBhZmZl Y3RpbmcgZmlsZXMgb3RoZXIgdGhhbiB0aGUgb25lcworaW50ZW5kZWQuICBJdCB3aWxsIHJlZnVz ZSB0byBmb2xsb3cgc3ltYm9saWMgbGlua3MsIHNvIHRoYXQgKGZvciBleGFtcGxlKQorYGB0dChj aG1vZCA2MDAgL3RtcC9mb28vcGFzc3dkKScnIGNhbid0IGFjY2lkZW50YWxseSBjaG1vZCB0dCgv ZXRjL3Bhc3N3ZCkKK2lmIHR0KC90bXAvZm9vKSBoYXBwZW5zIHRvIGJlIGEgbGluayB0byB0dCgv ZXRjKS4gIEl0IHdpbGwgYWxzbyBjaGVjaword2hlcmUgaXQgaXMgYWZ0ZXIgbGVhdmluZyBkaXJl Y3Rvcmllcywgc28gdGhhdCBhIHJlY3Vyc2l2ZSBjaG1vZCBvZgorYSBkZWVwIGRpcmVjdG9yeSB0 cmVlIGNhbid0IGVuZCB1cCByZWN1cnNpdmVseSBjaG1vZGluZyB0dCgvdXNyKSBhcworYSByZXN1 bHQgb2YgZGlyZWN0b3JpZXMgYmVpbmcgbW92ZWQgdXAgdGhlIHRyZWUuCispCiBmaW5kZXgoY2hv d24pCiBpdGVtKHR0KGNob3duKSBbIHR0KC1oUnMpIF0gdmFyKHVzZXItc3BlYykgdmFyKGZpbGVu YW1lKSAuLi4pKAogQ2hhbmdlcyBvd25lcnNoaXAgYW5kIGdyb3VwIG9mIGZpbGVzIHNwZWNpZmll ZC4KZGlmZiAtLWdpdCBhL1NyYy9Nb2R1bGVzL2ZpbGVzLmMgYi9TcmMvTW9kdWxlcy9maWxlcy5j CmluZGV4IDZmODE2YmFjMC4uODU3NjRkNTVlIDEwMDY0NAotLS0gYS9TcmMvTW9kdWxlcy9maWxl cy5jCisrKyBiL1NyYy9Nb2R1bGVzL2ZpbGVzLmMKQEAgLTYxOSw2ICs2MTksNDUgQEAgYmluX3Jt KGNoYXIgKm5hbSwgY2hhciAqKmFyZ3MsIE9wdGlvbnMgb3BzLCBVTlVTRUQoaW50IGZ1bmMpKQog ICAgIHJldHVybiBPUFRfSVNTRVQob3BzLCdmJykgPyAwIDogZXJyOwogfQogCisvKiBjaG1vZCBi dWlsdGluICovCisKK3N0cnVjdCBjaG1vZG1hZ2ljIHsKKyAgICBjaGFyICpuYW07CisgICAgbW9k ZV90IG1vZGU7Cit9OworCisvKiovCitzdGF0aWMgaW50CitjaG1vZF9kb2NobW9kKGNoYXIgKmFy ZywgY2hhciAqcnAsIFVOVVNFRChzdHJ1Y3Qgc3RhdCBjb25zdCAqc3ApLCB2b2lkICptYWdpYykK K3sKKyAgICBzdHJ1Y3QgY2htb2RtYWdpYyAqY2htID0gbWFnaWM7CisKKyAgICBpZihjaG1vZChy cCwgY2htLT5tb2RlKSkgeworCXp3YXJubmFtKGNobS0+bmFtLCAiJXM6ICVlIiwgYXJnLCBlcnJu byk7CisJcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisvKiovCitzdGF0aWMg aW50CitiaW5fY2htb2QoY2hhciAqbmFtLCBjaGFyICoqYXJncywgT3B0aW9ucyBvcHMsIGludCBm dW5jKQoreworICAgIHN0cnVjdCBjaG1vZG1hZ2ljIGNobTsKKyAgICBjaGFyICpzdHIgPSBhcmdz WzBdLCAqcHRyOworCisgICAgY2htLm5hbSA9IG5hbTsKKworICAgIGNobS5tb2RlID0genN0cnRv bChzdHIsICZwdHIsIDgpOworICAgIGlmKCEqc3RyIHx8ICpwdHIpIHsKKwl6d2Fybm5hbShuYW0s ICJpbnZhbGlkIG1vZGUgYCVzJyIsIHN0cik7CisJcmV0dXJuIDE7CisgICAgfQorCisgICAgcmV0 dXJuIHJlY3Vyc2l2ZWNtZChuYW0sIDAsIE9QVF9JU1NFVChvcHMsJ1InKSwgT1BUX0lTU0VUKG9w cywncycpLAorCWFyZ3MgKyAxLCBjaG1vZF9kb2NobW9kLCByZWN1cnNlX2Rvbm90aGluZywgY2ht b2RfZG9jaG1vZCwgJmNobSk7Cit9CisKIC8qIGNob3duIGJ1aWx0aW4gKi8KIAogc3RydWN0IGNo b3dubWFnaWMgewpAQCAtNzU0LDYgKzc5Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgYnVpbHRpbiBiaW50 YWJbXSA9IHsKICAgICAvKiBUaGUgbmFtZXMgd2hpY2ggb3ZlcmxhcCBjb21tYW5kcyB3aXRob3V0 IG5lY2Vzc2FyaWx5IGJlaW5nCiAgICAgICogZnVsbHkgY29tcGF0aWJsZS4gKi8KICAgICBCVUlM VElOKCJjaGdycCIsIDAsIGJpbl9jaG93biwgMiwgLTEsIEJJTl9DSEdSUCwgImhScyIsICAgIE5V TEwpLAorICAgIEJVSUxUSU4oImNobW9kIiwgMCwgYmluX2NobW9kLCAyLCAtMSwgMCwgICAgICAg ICAiUnMiLCAgICBOVUxMKSwKICAgICBCVUlMVElOKCJjaG93biIsIDAsIGJpbl9jaG93biwgMiwg LTEsIEJJTl9DSE9XTiwgImhScyIsICAgIE5VTEwpLAogICAgIEJVSUxUSU4oImxuIiwgICAgMCwg YmluX2xuLCAgICAxLCAtMSwgQklOX0xOLCAgICBMTl9PUFRTLCBOVUxMKSwKICAgICBCVUlMVElO KCJta2RpciIsIDAsIGJpbl9ta2RpciwgMSwgLTEsIDAsICAgICAgICAgInBtOiIsICAgTlVMTCks CkBAIC03NjMsNiArODAzLDcgQEAgc3RhdGljIHN0cnVjdCBidWlsdGluIGJpbnRhYltdID0gewog ICAgIEJVSUxUSU4oInN5bmMiLCAgMCwgYmluX3N5bmMsICAwLCAgMCwgMCwgICAgICAgICBOVUxM LCAgICBOVUxMKSwKICAgICAvKiBUaGUgInNhZmUiIHpzaC1vbmx5IG5hbWVzICovCiAgICAgQlVJ TFRJTigiemZfY2hncnAiLCAwLCBiaW5fY2hvd24sIDIsIC0xLCBCSU5fQ0hHUlAsICJoUnMiLCAg ICBOVUxMKSwKKyAgICBCVUlMVElOKCJ6Zl9jaG1vZCIsIDAsIGJpbl9jaG1vZCwgMiwgLTEsIDAs ICAgICAgICAgIlJzIiwgICAgTlVMTCksCiAgICAgQlVJTFRJTigiemZfY2hvd24iLCAwLCBiaW5f Y2hvd24sIDIsIC0xLCBCSU5fQ0hPV04sICJoUnMiLCAgICBOVUxMKSwKICAgICBCVUlMVElOKCJ6 Zl9sbiIsICAgIDAsIGJpbl9sbiwgICAgMSwgLTEsIEJJTl9MTiwgICAgTE5fT1BUUywgTlVMTCks CiAgICAgQlVJTFRJTigiemZfbWtkaXIiLCAwLCBiaW5fbWtkaXIsIDEsIC0xLCAwLCAgICAgICAg ICJwbToiLCAgIE5VTEwpLAotLSAKMi4yMS4wCgo= --0000000000007ab794058453b16d--