From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 5314 invoked from network); 27 Feb 2023 03:57:09 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 27 Feb 2023 03:57:09 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1677470229; b=kZZovi20ufhlGvt0bBBPnSoBAmNAh8wpapb8+h1+uu6LYiNXGjyGz45GiunODz2q5rSJMwdubF E3ngsooAnauIyNnCTamjHc7+jLuSQhokS22dWzYA7y/FPwdo4Zklz9XImCJv217QAup7TH+YIq gdYLvt4lecCmVAUqD9zrsGv1JhGp24p+41wiHHcynuaMA/hzrfVgCFNtRqL7z5UPMrNyZcOi1h TbCz0n1NY1c/tkEVyDFby/NCFxWnWSv18zSjJMM4bC68rmIQboTuEEBfVAEy99cZCF4CD4TJJy btNEIP6BGKjdqEY6rwqe1vp5n6GJnMGg/u4QECgNUMPG+A==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f41.google.com) smtp.remote-ip=209.85.208.41; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1677470229; bh=EG5OUWeVwfN1Q8krY/TOBO2oiwomqc8V0fmhLvgXh7M=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:MIME-Version: DKIM-Signature:DKIM-Signature; b=n0O5cJkgp6EqE7syhIP2lhFrs8y1jm5A70jZ8LGXrWu2Y4IbZ0V027yt0EZh25Cp4DP0xgS0Rg gLiKrypeaX0rd1torHTxWKQUPix/oPWZRgx4lBVCdfbzEBpIM/CPjyWPu7k15cQvg28ArXKWik d1RHfORjWwQnmMhieH6SItTlg4j0cqH4Hx5FCIq0h3COI2DVbjtko/I7cF0DR/G1D2p6Jyiu5D Scy5/diQBPYGU7qmS8J2hmuZ6r+cohK/u8vjJlK4MabBKf60AmfFWFN2bjOQPIhybc2DLVF8VH f8vXTV0jB014QCed1mIOjRTGWDt2XRHN7vtBjDi8ROf8Mg==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:MIME-Version:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=b5y7LFEhkeOR1Ab5uvqQ4cWwbTF7lFDcttT8SPElRIg=; b=R8ySwTCwr2ABCJyr8POATx2AhF 2eqIWuMZ+J1OflCJ8Z1RXP2Gh+urBzac3hoKaUUTbhLyD48+zOoN02Nw0kZPnI6UIPerrXgV4+cZI ev3P4P9jXd7Ml8MktwIy0xE2OLOdlNxO+/4KJwfjlKkPwKTX92j/o64sgz/pxBk5FlED1QJexZVYQ qoXn4qh9WIHtBrP/VRLgvSsw2BSZAztIOOtT/2+BUawDHJIICZFek/VYnGIebiw5B6nkgJiL6MXQd xwVPzFOB6x8Ouz6okLvex56YIgzAcMAmM6XtvaZvvXSrLxnzk8SrEAki2rQRpZXRxdKIAwes3wsyW +nV5b1Cg==; Received: by zero.zsh.org with local id 1pWUdO-00060j-DT; Mon, 27 Feb 2023 03:57:06 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f41.google.com) smtp.remote-ip=209.85.208.41; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ed1-f41.google.com ([209.85.208.41]:40650) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1pWUcj-0005hD-N6; Mon, 27 Feb 2023 03:56:26 +0000 Received: by mail-ed1-f41.google.com with SMTP id i34so20359677eda.7 for ; Sun, 26 Feb 2023 19:56:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=b5y7LFEhkeOR1Ab5uvqQ4cWwbTF7lFDcttT8SPElRIg=; b=zG2ph9JGwvkpeustQESDLf3XI9eszRaErEUHSKP7e5sI06NJV7vprkXIFKfvIn1Jem nxfOhUHviOqv+IAOmN6v/4w1czl1Jo/Md+x4/y1ja9sfyTCDXkGbza5b4Cnq4mTA53km Y1eaXAs/RVmGl2ZY2W8xUYGODWedpogXwYuAp3k7SZkj0pEkLt2Sb0eyRLEp0GjXI2xV IWigdNeWCjNFHzsAIWJoigCMwbRQaue52ADsLQOgsuV0rtt0ar2ENThj65Iuig8lYaB5 pZQ5RImH3SJPLxgvWihrQ6az1GLJ9Xs5RI3tChb9i8G86tU0XtAmt0KlYNU1go/uitho uLxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=b5y7LFEhkeOR1Ab5uvqQ4cWwbTF7lFDcttT8SPElRIg=; b=5DDGwL+xp/77dU5iizcyFh9el06QzcP30hEBK1R3XaQIoyWxkODuPzvWyl4dxMg3Zf gXZzLkqMd6ks9XevasjHnx+Jy/L6ws8ci9C3gRxrrkKTAUv0LcaictD6AaWzxklnep6o kzHPflRwknGk5XG52MHvay/3wdN6Yf8J2UMaf/iUUCEIom8BlVm2+MYbAk0Bee25psyh +CuHsRA2OAzjMeaNyQ8c84m/tLb3MgjrmYylTkCN7JPnSsc9HJ2x2JhtYKi+iB1qomM+ lV/7/VirChBTJ8UIxE9JR3jLObARvmMq8gai1KxXqV5z/HmvXxc+UvGxmCx5ZTlFXmuy rsfw== X-Gm-Message-State: AO0yUKWzlqeFmAO8ckZVxnp4rQRNMYi0Ew6YUZ8TCZcUhXBY35B/KzkR dEmnHm0bg1xXy2hzMqx1jDOeXZy1w2x2gUar5s8SxcHGnIUGvQ== X-Google-Smtp-Source: AK7set+42Y93D9yScLq4N9Q4ZMRAb2YCuOVv2twDqBz5Z35FAlW7xL5X8oGjT78jorWOewJRCV7fR8g4nbeS1RR/gX0= X-Received: by 2002:a17:907:2b09:b0:8b1:cd2e:177a with SMTP id gc9-20020a1709072b0900b008b1cd2e177amr15370381ejc.6.1677470183273; Sun, 26 Feb 2023 19:56:23 -0800 (PST) MIME-Version: 1.0 From: Bart Schaefer Date: Sun, 26 Feb 2023 19:56:12 -0800 Message-ID: Subject: [PATCH 1/3] Extended ksh compatibility: namespace parameter syntax To: Zsh hackers list Content-Type: multipart/mixed; boundary="0000000000006561d205f5a67603" X-Seq: 51483 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --0000000000006561d205f5a67603 Content-Type: text/plain; charset="UTF-8" The attached patch enables assignment of and reference to parameters prefixed with ksh-style namespace syntax, e.g., ${.namespace.param}. As yet, there's no special significance to use of this syntax, that is, parameters having such a prefix are ordinary parameters like any others, with the usual dynamic scoping rules, etc. Each of namespace and param must be an identifier in the original zsh semantics of identifiers. The braces are required when using this syntax in a parameter substitution, so without braces $foo.bar continues to be interpreted as ${foo}.bar. --0000000000006561d205f5a67603 Content-Type: text/plain; charset="US-ASCII"; name="ns-param-syntax.txt" Content-Disposition: attachment; filename="ns-param-syntax.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lem9vki50 ZGlmZiAtLWdpdCBhL1NyYy9abGUvY29tcGNvcmUuYyBiL1NyYy9abGUvY29tcGNvcmUuYwppbmRl eCA2NGE4NjBmYTMuLjc3ZmNlNjZlOCAxMDA2NDQKLS0tIGEvU3JjL1psZS9jb21wY29yZS5jCisr KyBiL1NyYy9abGUvY29tcGNvcmUuYwpAQCAtMTIzMCwxNCArMTIzMCwxNCBAQCBjaGVja19wYXJh bShjaGFyICpzLCBpbnQgc2V0LCBpbnQgdGVzdCkKIAllbHNlIGlmIChpZGlnaXQoKmUpKQogCSAg ICB3aGlsZSAoaWRpZ2l0KCplKSkKIAkJZSsrOwotCWVsc2UgaWYgKChpZSA9IGl0eXBlX2VuZChl LCBJSURFTlQsIDApKSAhPSBlKSB7CisJZWxzZSBpZiAoKGllID0gaXR5cGVfZW5kKGUsIElOQU1F U1BDLCAwKSkgIT0gZSkgewogCSAgICBkbyB7CiAJCWUgPSBpZTsKIAkJaWYgKGNvbXBwYXRtYXRj aCAmJiAqY29tcHBhdG1hdGNoICYmCiAJCSAgICAoKmUgPT0gU3RhciB8fCAqZSA9PSBRdWVzdCkp CiAJCSAgICBpZSA9IGUgKyAxOwogCQllbHNlCi0JCSAgICBpZSA9IGl0eXBlX2VuZChlLCBJSURF TlQsIDApOworCQkgICAgaWUgPSBpdHlwZV9lbmQoZSwgSU5BTUVTUEMsIDApOwogCSAgICB9IHdo aWxlIChpZSAhPSBlKTsKIAl9CiAKZGlmZiAtLWdpdCBhL1NyYy9abGUvemxlX3RyaWNreS5jIGIv U3JjL1psZS96bGVfdHJpY2t5LmMKaW5kZXggMDdmYWM3MTQ0Li42OTBjZjZlZmIgMTAwNjQ0Ci0t LSBhL1NyYy9abGUvemxlX3RyaWNreS5jCisrKyBiL1NyYy9abGUvemxlX3RyaWNreS5jCkBAIC01 NzYsNyArNTc2LDcgQEAgcGFyYW1iZWcoY2hhciAqcykKIAkgICAgd2hpbGUgKGlkaWdpdCgqZSkp CiAJCWUrKzsKIAllbHNlCi0JICAgIGUgPSBpdHlwZV9lbmQoZSwgSUlERU5ULCAwKTsKKwkgICAg ZSA9IGl0eXBlX2VuZChlLCBJTkFNRVNQQywgMCk7CiAKIAkvKiBOb3cgbWFrZSBzdXJlIHRoYXQg dGhlIGN1cnNvciBpcyBpbnNpZGUgdGhlIG5hbWUuICovCiAJaWYgKG9mZnMgPD0gZSAtIHMgJiYg b2ZmcyA+PSBiIC0gcyAmJiBuIDw9IDApIHsKQEAgLTc2NSw3ICs3NjUsNyBAQCBkb2NvbXBsZXRl KGludCBsc3QpCiAJCQkgICAgZWxzZSBpZiAoaWRpZ2l0KCpxKSkKIAkJCQlkbyBxKys7IHdoaWxl IChpZGlnaXQoKnEpKTsKIAkJCSAgICBlbHNlCi0JCQkJcSA9IGl0eXBlX2VuZChxLCBJSURFTlQs IDApOworCQkJCXEgPSBpdHlwZV9lbmQocSwgSU5BTUVTUEMsIDApOwogCQkJICAgIHNhdiA9ICpx OwogCQkJICAgICpxID0gJ1wwJzsKIAkJCSAgICBpZiAoemxlbWV0YWNzIC0gd2IgPT0gcSAtIHMg JiYKQEAgLTE0OTcsNyArMTQ5Nyw3IEBAIGdldF9jb21wX3N0cmluZyh2b2lkKQogCWlmICh2YXJx KQogCSAgICB0dCA9IGNsd29yZHNbY2x3cG9zXTsKIAotCXMgPSBpdHlwZV9lbmQodHQsIElJREVO VCwgMCk7CisJcyA9IGl0eXBlX2VuZCh0dCwgSU5BTUVTUEMsIDApOwogCXNhdiA9ICpzOwogCSpz ID0gJ1wwJzsKIAl6c2ZyZWUodmFybmFtZSk7CmRpZmYgLS1naXQgYS9TcmMvbGV4LmMgYi9TcmMv bGV4LmMKaW5kZXggMTVkYTg1YTkzLi4yZjc5Mzc0MTAgMTAwNjQ0Ci0tLSBhL1NyYy9sZXguYwor KysgYi9TcmMvbGV4LmMKQEAgLTEyMzAsNyArMTIzMCw3IEBAIGdldHRva3N0cihpbnQgYywgaW50 IHN1YikKIAkJICAgIGVsc2UgewogCQkJaW50IHNhdiA9ICpsZXhidWYucHRyOwogCQkJKmxleGJ1 Zi5wdHIgPSAnXDAnOwotCQkJdCA9IGl0eXBlX2VuZCh0LCBJSURFTlQsIDApOworCQkJdCA9IGl0 eXBlX2VuZCh0LCBJTkFNRVNQQywgMCk7CiAJCQlpZiAodCA8IGxleGJ1Zi5wdHIpIHsKIAkJCSAg ICBza2lwcGFyZW5zKEluYnJhY2ssIE91dGJyYWNrLCAmdCk7CiAJCQl9IGVsc2UgewpkaWZmIC0t Z2l0IGEvU3JjL3BhcmFtcy5jIGIvU3JjL3BhcmFtcy5jCmluZGV4IDkwMzAyYjFiMC4uZDNiNmE3 ZDQzIDEwMDY0NAotLS0gYS9TcmMvcGFyYW1zLmMKKysrIGIvU3JjL3BhcmFtcy5jCkBAIC0xMjIz LDcgKzEyMjMsNyBAQCBpc2lkZW50KGNoYXIgKnMpCiAJCWJyZWFrOwogICAgIH0gZWxzZSB7CiAJ LyogRmluZCB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIGBzJyBub3QgaW4gdGhlIGlpZGVudCB0eXBl IHRhYmxlICovCi0Jc3MgPSBpdHlwZV9lbmQocywgSUlERU5ULCAwKTsKKwlzcyA9IGl0eXBlX2Vu ZChzLCBJTkFNRVNQQywgMCk7CiAgICAgfQogCiAgICAgLyogSWYgdGhlIG5leHQgY2hhcmFjdGVy IGlzIG5vdCBbLCB0aGVuIGl0IGlzICoKQEAgLTIwODYsNiArMjA4Niw3IEBAIGZldGNodmFsdWUo VmFsdWUgdiwgY2hhciAqKnBwdHIsIGludCBicmFja3MsIGludCBmbGFncykKICAgICBjaGFyICpz LCAqdCwgKmllOwogICAgIGNoYXIgc2F2LCBjOwogICAgIGludCBwcGFyID0gMDsKKyAgICBpbnQg aXR5cGUgPSAoZmxhZ3MgJiBTQ0FOUE1fTk9OQU1FU1BDKSA/IElJREVOVCA6IElOQU1FU1BDOwog CiAgICAgcyA9IHQgPSAqcHB0cjsKIApAQCAtMjA5NSw3ICsyMDk2LDcgQEAgZmV0Y2h2YWx1ZShW YWx1ZSB2LCBjaGFyICoqcHB0ciwgaW50IGJyYWNrcywgaW50IGZsYWdzKQogCWVsc2UKIAkgICAg cHBhciA9ICpzKysgLSAnMCc7CiAgICAgfQotICAgIGVsc2UgaWYgKChpZSA9IGl0eXBlX2VuZChz LCBJSURFTlQsIDApKSAhPSBzKQorICAgIGVsc2UgaWYgKChpZSA9IGl0eXBlX2VuZChzLCBpdHlw ZSwgMCkpICE9IHMpCiAJcyA9IGllOwogICAgIGVsc2UgaWYgKGMgPT0gUXVlc3QpCiAJKnMrKyA9 ICc/JzsKQEAgLTIxODMsNyArMjE4NCw3IEBAIGZldGNodmFsdWUoVmFsdWUgdiwgY2hhciAqKnBw dHIsIGludCBicmFja3MsIGludCBmbGFncykKIAkJcmV0dXJuIHY7CiAJICAgIH0KIAl9IGVsc2Ug aWYgKCEoZmxhZ3MgJiBTQ0FOUE1fQVNTSUdOSU5HKSAmJiB2LT5pc2FyciAmJgotCQkgICBpdHlw ZV9lbmQodCwgSUlERU5ULCAxKSAhPSB0ICYmIGlzc2V0KEtTSEFSUkFZUykpCisJCSAgIGl0eXBl X2VuZCh0LCBJTkFNRVNQQywgMSkgIT0gdCAmJiBpc3NldChLU0hBUlJBWVMpKQogCSAgICB2LT5l bmQgPSAxLCB2LT5pc2FyciA9IDA7CiAgICAgfQogICAgIGlmICghYnJhY2tzICYmICpzKQpAQCAt NjE5Niw3ICs2MTk3LDcgQEAgc2V0c2NvcGUoUGFyYW0gcG0pCiAgICAgaWYgKHBtLT5ub2RlLmZs YWdzICYgUE1fTkFNRVJFRikgewogCVBhcmFtIGJhc2VwbTsKIAlzdHJ1Y3QgYXNnbWVudCBzdG9w OwotCWNoYXIgKnQgPSBwbS0+dS5zdHIgPyBpdHlwZV9lbmQocG0tPnUuc3RyLCBJSURFTlQsIDAp IDogTlVMTDsKKwljaGFyICp0ID0gcG0tPnUuc3RyID8gaXR5cGVfZW5kKHBtLT51LnN0ciwgSU5B TUVTUEMsIDApIDogTlVMTDsKIAogCS8qIFRlbXBvcmFyaWx5IGNoYW5nZSBuYW1lcmVmIHRvIGFy cmF5IHBhcmFtZXRlciBpdHNlbGYgKi8KIAlpZiAodCAmJiAqdCA9PSAnWycpCkBAIC02Mjc3LDcg KzYyNzgsNyBAQCB1cHNjb3BlKFBhcmFtIHBtLCBpbnQgcmVmbGV2ZWwpCiBtb2RfZXhwb3J0IGlu dAogdmFsaWRfcmVmbmFtZShjaGFyICp2YWwpCiB7Ci0gICAgY2hhciAqdCA9IGl0eXBlX2VuZCh2 YWwsIElJREVOVCwgMCk7CisgICAgY2hhciAqdCA9IGl0eXBlX2VuZCh2YWwsIElOQU1FU1BDLCAw KTsKIAogICAgIGlmICgqdCAhPSAwKSB7CiAJaWYgKCp0ID09ICdbJykgewpkaWZmIC0tZ2l0IGEv U3JjL3N1YnN0LmMgYi9TcmMvc3Vic3QuYwppbmRleCAwNWJmY2MwM2IuLjdhNGI0MzNiYyAxMDA2 NDQKLS0tIGEvU3JjL3N1YnN0LmMKKysrIGIvU3JjL3N1YnN0LmMKQEAgLTE4NzAsNyArMTg3MCw3 IEBAIHBhcmFtc3Vic3QoTGlua0xpc3QgbCwgTGlua05vZGUgbiwgY2hhciAqKnN0ciwgaW50IHF0 LCBpbnQgcGZfZmxhZ3MsCiAgICAgICogdGhlc2UgbGF0ZXIgb24sIHRvby4KICAgICAgKi8KICAg ICBjID0gKnM7Ci0gICAgaWYgKGl0eXBlX2VuZChzLCBJSURFTlQsIDEpID09IHMgJiYgKnMgIT0g JyMnICYmIGMgIT0gUG91bmQgJiYKKyAgICBpZiAoaXR5cGVfZW5kKHMsIElOQU1FU1BDLCAxKSA9 PSBzICYmICpzICE9ICcjJyAmJiBjICE9IFBvdW5kICYmCiAJIUlTX0RBU0goYykgJiYKIAljICE9 ICchJyAmJiBjICE9ICckJyAmJiBjICE9IFN0cmluZyAmJiBjICE9IFFzdHJpbmcgJiYKIAljICE9 ICc/JyAmJiBjICE9IFF1ZXN0ICYmCkBAIC0yMzMyLDcgKzIzMzIsNyBAQCBwYXJhbXN1YnN0KExp bmtMaXN0IGwsIExpbmtOb2RlIG4sIGNoYXIgKipzdHIsIGludCBxdCwgaW50IHBmX2ZsYWdzLAog CSAgICB9CiAJfSBlbHNlIGlmICgoYyA9PSAnIycgfHwgYyA9PSBQb3VuZCkgJiYKIAkJICAgKGlu YnJhY2UgfHwgIWlzc2V0KFBPU0lYSURFTlRJRklFUlMpKSAmJgotCQkgICAoaXR5cGVfZW5kKHMr MSwgSUlERU5ULCAwKSAhPSBzICsgMQorCQkgICAoaXR5cGVfZW5kKHMrMSwgSU5BTUVTUEMsIDAp ICE9IHMgKyAxCiAJCSAgICB8fCAoY2MgPSBzWzFdKSA9PSAnKicgfHwgY2MgPT0gU3RhciB8fCBj YyA9PSAnQCcKIAkJICAgIHx8IGNjID09ICc/JyB8fCBjYyA9PSBRdWVzdAogCQkgICAgfHwgY2Mg PT0gJyQnIHx8IGNjID09IFN0cmluZyB8fCBjYyA9PSBRc3RyaW5nCkBAIC0yMzY5LDggKzIzNjks OSBAQCBwYXJhbXN1YnN0KExpbmtMaXN0IGwsIExpbmtOb2RlIG4sIGNoYXIgKipzdHIsIGludCBx dCwgaW50IHBmX2ZsYWdzLAogCSAgICAgKiBUcnkgdG8gaGFuZGxlIHRoaXMgd2hlbiBwYXJhbWV0 ZXIgaXMgbmFtZWQKIAkgICAgICogYnkgKFApIChzZWNvbmQgcGFydCBvZiB0ZXN0KS4KIAkgICAg ICovCi0JICAgIGlmIChpdHlwZV9lbmQocysxLCBJSURFTlQsIDApICE9IHMrMSB8fCAoYXNwYXIg JiYgaXNzdHJpbmcoc1sxXSkgJiYKLQkJCQkgKHNbMl0gPT0gSW5icmFjZSB8fCBzWzJdID09IElu cGFyKSkpCisJICAgIGlmIChpdHlwZV9lbmQocysxLCBJTkFNRVNQQywgMCkgIT0gcysxIHx8CisJ CShhc3BhciAmJiBpc3N0cmluZyhzWzFdKSAmJgorCQkgKHNbMl0gPT0gSW5icmFjZSB8fCBzWzJd ID09IElucGFyKSkpCiAJCWNoa3NldCA9IDEsIHMrKzsKIAkgICAgZWxzZSBpZiAoIWluYnJhY2Up IHsKIAkJLyogU3BlY2lhbCBjYXNlIGZvciBgJCsnIG9uIGl0cyBvd24gLS0tIGxlYXZlIHVubW9k aWZpZWQgKi8KQEAgLTI1MzEsNiArMjUzMiw4IEBAIHBhcmFtc3Vic3QoTGlua0xpc3QgbCwgTGlu a05vZGUgbiwgY2hhciAqKnN0ciwgaW50IHF0LCBpbnQgcGZfZmxhZ3MsCiAJICAgIHNjYW5mbGFn cyB8PSBTQ0FOUE1fRFFVT1RFRDsKIAlpZiAoY2hrc2V0KQogCSAgICBzY2FuZmxhZ3MgfD0gU0NB TlBNX0NIRUNLSU5HOworCWlmICghaW5icmFjZSkKKwkgICAgc2NhbmZsYWdzIHw9IFNDQU5QTV9O T05BTUVTUEM7CiAJLyoKIAkgKiBTZWNvbmQgYXJndW1lbnQ6IGRlY2lkZSB3aGV0aGVyIHRvIHVz ZSB0aGUgc3ViZXhwcmVzc2lvbiBvcgogCSAqICAgdGhlIHN0cmluZyBuZXh0IG9uIHRoZSBsaW5l IGFzIHRoZSBwYXJhbWV0ZXIgbmFtZS4KQEAgLTMyMTEsNyArMzIxNCw3IEBAIHBhcmFtc3Vic3Qo TGlua0xpc3QgbCwgTGlua05vZGUgbiwgY2hhciAqKnN0ciwgaW50IHF0LCBpbnQgcGZfZmxhZ3Ms CiAJICAgIHNob3J0ZXN0ID0gMDsKIAkgICAgKytzOwogCX0KLQlpZiAoKml0eXBlX2VuZChzLCBJ SURFTlQsIDApKSB7CisJaWYgKCppdHlwZV9lbmQocywgSU5BTUVTUEMsIDApKSB7CiAJICAgIHVu dG9rZW5pemUocyk7CiAJICAgIHplcnIoIm5vdCBhbiBpZGVudGlmaWVyOiAlcyIsIHMpOwogCSAg ICByZXR1cm4gTlVMTDsKQEAgLTMyNzEsNyArMzI3NCw3IEBAIHBhcmFtc3Vic3QoTGlua0xpc3Qg bCwgTGlua05vZGUgbiwgY2hhciAqKnN0ciwgaW50IHF0LCBpbnQgcGZfZmxhZ3MsCiAJaW50IGlu dGVyc2VjdCA9ICgqcyA9PSAnKicgfHwgKnMgPT0gU3Rhcik7CiAJY2hhciAqKmNvbXBhcmUsICoq YXAsICoqYXBzcmM7CiAJKytzOwotCWlmICgqaXR5cGVfZW5kKHMsIElJREVOVCwgMCkpIHsKKwlp ZiAoKml0eXBlX2VuZChzLCBJTkFNRVNQQywgMCkpIHsKIAkgICAgdW50b2tlbml6ZShzKTsKIAkg ICAgemVycigibm90IGFuIGlkZW50aWZpZXI6ICVzIiwgcyk7CiAJICAgIHJldHVybiBOVUxMOwpk aWZmIC0tZ2l0IGEvU3JjL3V0aWxzLmMgYi9TcmMvdXRpbHMuYwppbmRleCA1NWYyZDFhYjAuLjEz OTNlY2IxMyAxMDA2NDQKLS0tIGEvU3JjL3V0aWxzLmMKKysrIGIvU3JjL3V0aWxzLmMKQEAgLTMx MjMsNyArMzEyMyw3IEBAIHNwY2t3b3JkKGNoYXIgKipzLCBpbnQgaGlzdCwgaW50IGNtZCwgaW50 IGFzaykKIAogICAgIGlmICgqKnMgPT0gU3RyaW5nICYmICEqdCkgewogCWd1ZXNzID0gKnMgKyAx OwotCWlmIChpdHlwZV9lbmQoZ3Vlc3MsIElJREVOVCwgMSkgPT0gZ3Vlc3MpCisJaWYgKGl0eXBl X2VuZChndWVzcywgSU5BTUVTUEMsIDEpID09IGd1ZXNzKQogCSAgICByZXR1cm47CiAJaWMgPSBT dHJpbmc7CiAJZCA9IDEwMDsKQEAgLTQzMTAsMTMgKzQzMTAsMjcgQEAgd2NzaXR5cGUod2NoYXJf dCBjLCBpbnQgaXR5cGUpCiAgKiBJZiAib25jZSIgaXMgc2V0LCBqdXN0IHRlc3QgdGhlIGZpcnN0 IGNoYXJhY3RlciwgaS5lLiAob3V0cHRyICE9CiAgKiBpbnB0cikgdGVzdHMgd2hldGhlciB0aGUg Zmlyc3QgY2hhcmFjdGVyIGlzIHZhbGlkIGluIGFuIGlkZW50aWZpZXIuCiAgKgotICogQ3VycmVu dGx5IHRoaXMgaXMgb25seSBjYWxsZWQgd2l0aCBpdHlwZSBJSURFTlQsIElVU0VSIG9yIElTRVAu CisgKiBDdXJyZW50bHkgY2FsbGVkIG9ubHkgd2l0aCBpdHlwZSBJTkFNRVNQQywgSUlERU5ULCBJ VVNFUiBvciBJU0VQLgogICovCiAKIC8qKi8KIG1vZF9leHBvcnQgY2hhciAqCiBpdHlwZV9lbmQo Y29uc3QgY2hhciAqcHRyLCBpbnQgaXR5cGUsIGludCBvbmNlKQogeworICAgIGlmIChpdHlwZSA9 PSBJTkFNRVNQQykgeworCWl0eXBlID0gSUlERU5UOworCWlmIChvbmNlID09IDAgJiYgIWlzc2V0 KFBPU0lYSURFTlRJRklFUlMpKSB7CisJICAgIC8qIFNwZWNpYWwgY2FzZSBmb3IgbmFtZXMgY29u dGFpbmluZyAiLiIsIGtzaDkzIG5hbWVzcGFjZXMgKi8KKwkgICAgY2hhciAqdCA9IGl0eXBlX2Vu ZChwdHIgKyAoKnB0ciA9PSAnLicpLCBpdHlwZSwgMCk7CisJICAgIGlmICh0ID4gcHRyKzEpIHsK KwkJaWYgKCp0ID09ICcuJykKKwkJICAgIHJldHVybiBpdHlwZV9lbmQodCsxLCBpdHlwZSwgMCk7 CisJCWVsc2UKKwkJICAgIHJldHVybiB0OworCSAgICB9CisJfQorICAgIH0KKwogI2lmZGVmIE1V TFRJQllURV9TVVBQT1JUCiAgICAgaWYgKGlzc2V0KE1VTFRJQllURSkgJiYKIAkoaXR5cGUgIT0g SUlERU5UIHx8ICFpc3NldChQT1NJWElERU5USUZJRVJTKSkpIHsKZGlmZiAtLWdpdCBhL1NyYy96 c2guaCBiL1NyYy96c2guaAppbmRleCA5NmI0YjA2YmQuLjBkZTFmN2FmYiAxMDA2NDQKLS0tIGEv U3JjL3pzaC5oCisrKyBiL1NyYy96c2guaApAQCAtMTk2Myw2ICsxOTYzLDggQEAgc3RydWN0IHRp ZWRkYXRhIHsKIAkJCQkgICovCiAjZGVmaW5lIFNDQU5QTV9DSEVDS0lORyAgICgxPDwxMCkgLyog Q2hlY2sgaWYgc2V0LCBubyBuZWVkIHRvIGNyZWF0ZSAqLwogI2RlZmluZSBTQ0FOUE1fTk9FWEVD ICAgICAoMTw8MTEpIC8qIE5vIGNvbW1hbmQgc3Vic3RpdHV0aW9ucywgZXRjLiAqLworI2RlZmlu ZSBTQ0FOUE1fTk9OQU1FU1BDICAoMTw8MTIpIC8qIG5hbWVzcGFjZSBzeW50YXggbm90IGFsbG93 ZWQgKi8KKwogLyogIiRmb29bQF0iLXN0eWxlIHN1YnN0aXR1dGlvbgogICogT25seSBzaWduIGJp dCBpcyBzaWduaWZpY2FudAogICovCmRpZmYgLS1naXQgYS9TcmMvenR5cGUuaCBiL1NyYy96dHlw ZS5oCmluZGV4IDg3NTdmYzczMy4uNDY3NWY3M2E5IDEwMDY0NAotLS0gYS9TcmMvenR5cGUuaAor KysgYi9TcmMvenR5cGUuaApAQCAtNDMsNiArNDMsNyBAQAogI2RlZmluZSBJV1NFUCAgICAoMSA8 PCAxMykKICNkZWZpbmUgSU5VTEwgICAgKDEgPDwgMTQpCiAjZGVmaW5lIElQQVRURVJOICgxIDw8 IDE1KQorI2RlZmluZSBJTkFNRVNQQyAoMSA8PCAxNikKICNkZWZpbmUgemlzdHlwZShYLFkpICh0 eXB0YWJbKHVuc2lnbmVkIGNoYXIpIChYKV0gJiBZKQogI2RlZmluZSBpZGlnaXQoWCkgemlzdHlw ZShYLElESUdJVCkKICNkZWZpbmUgaWFsbnVtKFgpIHppc3R5cGUoWCxJQUxOVU0pCg== --0000000000006561d205f5a67603--