From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#60186: 29.0.60; ruby-mode indentation of multi-line expressions Date: Thu, 22 Dec 2022 00:48:38 +0200 Message-ID: <2b4a91e1-bad1-382f-dd64-abf171efb404@yandex.ru> References: <4e44df18-207c-c7ca-0588-7285f3008dfb@yandex.ru> <358bbd65-9375-04c8-f0a2-24a4383f142e@yandex.ru> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------Bl7q6rA8Uybewx7PYREJDLHt" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23137"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Cc: 60186@debbugs.gnu.org To: Aaron Jensen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Dec 21 23:56:58 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p881C-0005ll-4d for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 21 Dec 2022 23:56:58 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87tY-0001QD-2j; Wed, 21 Dec 2022 17:49:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87tW-0001OL-IW for bug-gnu-emacs@gnu.org; Wed, 21 Dec 2022 17:49:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p87tW-0001zQ-7k for bug-gnu-emacs@gnu.org; Wed, 21 Dec 2022 17:49:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p87tW-000655-0Z for bug-gnu-emacs@gnu.org; Wed, 21 Dec 2022 17:49:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 21 Dec 2022 22:49:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60186 X-GNU-PR-Package: emacs Original-Received: via spool by 60186-submit@debbugs.gnu.org id=B60186.167166293123368 (code B ref 60186); Wed, 21 Dec 2022 22:49:01 +0000 Original-Received: (at 60186) by debbugs.gnu.org; 21 Dec 2022 22:48:51 +0000 Original-Received: from localhost ([127.0.0.1]:54391 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p87tK-00064o-8d for submit@debbugs.gnu.org; Wed, 21 Dec 2022 17:48:50 -0500 Original-Received: from mail-wm1-f47.google.com ([209.85.128.47]:46053) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p87tH-00064e-O8 for 60186@debbugs.gnu.org; Wed, 21 Dec 2022 17:48:48 -0500 Original-Received: by mail-wm1-f47.google.com with SMTP id p1-20020a05600c1d8100b003d8c9b191e0so36049wms.4 for <60186@debbugs.gnu.org>; Wed, 21 Dec 2022 14:48:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=1b4kmyuHnDDL5Fkq+dHM6tpjYi0ITMfBMINW9oem/4M=; b=AA9CUutTXQO/tvQdQRB6vT6YCz6zDSYL26OZGzcwapW6V1yz7ciPe/z2YAhINGlS2d bDWNnmKI+yln9a7xIo/knFGv030zHFMXh206OtVaAU5D+eg00qK/ingxHFKALrrj7OBM EVeAckeSF5xd+FwMNo4tIj9iJiFhQ1IMsIyvS3mWpxGgQhoMn6dbjvFr1oBw8tDXnN/c C3bXRhPAeD707gxWiGWNm9KY+UDiotpXoau0wQGF3bs02EkWI82UadWTiAmPEySgA8a3 PNb0S+4WdbCfAmnMeCDwRRGFcV+dsaMhQ9OqmbIAGhEdQIERi/HQgV86RrXj1H1xoG+0 oAng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=1b4kmyuHnDDL5Fkq+dHM6tpjYi0ITMfBMINW9oem/4M=; b=fdZbFi27cYdErub/LFlZ0XtXTQVvH/BbfcyBWBKQmBpr6ahYxRlKKU+CBxa9jyvC/J qdeZNv4W3t1nxdSng48yGMOVAgr3NcdJ4czQYDSTIBida2m9G3GmU8XfBtzD66l0pNro Sr2vsOanH5NLecEYSED82eh9ELBMNWVXeSygZIVsWKIykkiyPMWQkRWs/1XP4Sogcwz/ VehPI+GjltvwBiVzLCuqZDqGbIndeFk9Q+UZe2vpZFig1nTwdaHfakFwR3OIWoWS5IXO HfbfcQ5XwwIVZTuRYIBCO/OjSl3j7gmira/xsT5cOalZ3alkDmZHc2EFuQUS2rT+9Wya z58Q== X-Gm-Message-State: AFqh2kqCyrl6z3lYSZxyiA5LczYpoBc/AwcRfC6eb1QbCR5tbpzCyJZA 9fxKemfM50HCJRUDAPdj4Sc= X-Google-Smtp-Source: AMrXdXvaQncvZFOv3PVYP2nUd+W/HDV1RQ4QFM21S2pjKKV5tAC+5JTGSzRLRG4Xqz7io0XznftyPg== X-Received: by 2002:a05:600c:1e16:b0:3d1:d1a9:efde with SMTP id ay22-20020a05600c1e1600b003d1d1a9efdemr5557927wmb.12.1671662920686; Wed, 21 Dec 2022 14:48:40 -0800 (PST) Original-Received: from [192.168.0.2] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id c12-20020a05600c0a4c00b003cfa3a12660sm8824849wmq.1.2022.12.21.14.48.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 21 Dec 2022 14:48:39 -0800 (PST) Content-Language: en-US In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:251626 Archived-At: This is a multi-part message in MIME format. --------------Bl7q6rA8Uybewx7PYREJDLHt Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 20/12/2022 22:05, Aaron Jensen wrote: >> some_variable = some_number + some_other_number * >> some_third_number + >> some_fourth_number - >> some_fifth_number > > Yeah, with this I'd probably be trying to give a name to some of the > things (what is the name of the product there?) I don't think I've > ever seen code like that in practice to be honest. Sure, but if such complex structures are not used, it also doesn't matter that the ruby-mode indents them differently from the "community baseline". But it could still help when prototyping code, fiddling with the implementation (to factor pieces out into named variables later), etc. >> One might ask why it's lined up to 'map' only after it's moved to the >> next line, but not in the first example. > > It's never lined up to map, I don't think that's the right way to > think about it. It's lined up to indent level 1. It isn't until after > the `end' that the indent level returns to 0. > > Line continuation (mid-expression): +1 indent level > Block opening (mid-block): +1 indent level > Paren opening (mid-arguments/params): +1 indent level > And all the closing/endings: -1 indent level > > Only one indent level can be added per line, so all that matters is > where the line ends. In short, there are a set of expressions that > require indentation if they span multiple lines: > > expression-start > expression-middle > expression-end I think I got it. Only one indent level can be added for the duration of a statement. Unless there are nested blocks or parens/brackets/braces. > I haven't tried the patch yet, but I'll give it a shot. See this new patch instead. The code is messier than I'd like it to be, but it seems to handle all of the cases mentioned so far and more (including the dots-at-indentation style, thanks). --------------Bl7q6rA8Uybewx7PYREJDLHt Content-Type: text/x-patch; charset=UTF-8; name="ruby-simplified-indent-v3.diff" Content-Disposition: attachment; filename="ruby-simplified-indent-v3.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3J1YnktbW9kZS5lbCBiL2xpc3AvcHJvZ21v ZGVzL3J1YnktbW9kZS5lbAppbmRleCAxZjNlOWI2YWU3Yi4uMTg0ZmY2YTYxZTAgMTAwNjQ0 Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3J1YnktbW9kZS5lbAorKysgYi9saXNwL3Byb2dtb2Rl cy9ydWJ5LW1vZGUuZWwKQEAgLTI4NSw2ICsyODUsMTEgQEAgcnVieS1tZXRob2QtcGFyYW1z LWluZGVudAogICA6c2FmZSAobGFtYmRhICh2YWwpIChvciAobWVtcSB2YWwgJyh0IG5pbCkp IChudW1iZXJwIHZhbCkpKQogICA6dmVyc2lvbiAiMjkuMSIpCiAKKyhkZWZjdXN0b20gcnVi eS1pbmRlbnQtc2ltcGxpZmllZCB0CisgICJGb28gYmFyLiIKKyAgOnR5cGUgJ2Jvb2xlYW4K KyAgOnNhZmUgJ2Jvb2xlYW5wKQorCiAoZGVmY3VzdG9tIHJ1YnktZGVlcC1hcmdsaXN0IHQK ICAgIkRlZXAgaW5kZW50IGxpc3RzIGluIHBhcmVudGhlc2lzIHdoZW4gbm9uLW5pbC4KIEFs c28gaWdub3JlcyBzcGFjZXMgYWZ0ZXIgcGFyZW50aGVzaXMgd2hlbiBgc3BhY2UnLgpAQCAt NDE2LDYgKzQyMSw3IEBAIHJ1Ynktc21pZS1ncmFtbWFyCiAgICAgICcoKHJpZ2h0ICI9IikK ICAgICAgICAocmlnaHQgIis9IiAiLT0iICIqPSIgIi89IiAiJT0iICIqKj0iICImPSIgInw9 IiAiXj0iCiAgICAgICAgICAgICAgICI8PD0iICI+Pj0iICImJj0iICJ8fD0iKQorICAgICAg IChyaWdodCAiPyIpCiAgICAgICAgKG5vbmFzc29jICIuLiIgIi4uLiIpCiAgICAgICAgKGxl ZnQgIiYmIiAifHwiKQogICAgICAgIChub25hc3NvYyAiPD0+IikKQEAgLTYwOCwxMCArNjE0 LDIyIEBAIHJ1Ynktc21pZS0tYmFja3dhcmQtdG9rZW4KICAgICAgICAgICAiZGVmPSIpCiAg ICAgICAgICAodCB0b2spKSkpKSkpCiAKLShkZWZ1biBydWJ5LXNtaWUtLWluZGVudC10by1z dG10ICgpCisoZGVmdW4gcnVieS1zbWllLS1pbmRlbnQtdG8tc3RtdCAoJm9wdGlvbmFsIG9m ZnNldCkKICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgKHNtaWUtYmFja3dhcmQtc2V4cCAiOyIp Ci0gICAgKGNvbnMgJ2NvbHVtbiAoc21pZS1pbmRlbnQtdmlydHVhbCkpKSkKKyAgICAoY29u cyAnY29sdW1uICgrIChzbWllLWluZGVudC12aXJ0dWFsKSAob3Igb2Zmc2V0IDApKSkpKQor CisoZGVmdW4gcnVieS1zbWllLS1pbmRlbnQtd2l0aC1jb250aW51YXRpb24gKHRva2VuKQor ICAobGV0KiAoaW5kZW50CisgICAgICAgICAoc3RtdC1iZWcgKHNhdmUtZXhjdXJzaW9uCisg ICAgICAgICAgICAgICAgICAgICAoc21pZS1iYWNrd2FyZC1zZXhwICI7IikKKyAgICAgICAg ICAgICAgICAgICAgIChzZXRxIGluZGVudCAoc21pZS1pbmRlbnQtdmlydHVhbCkpCisgICAg ICAgICAgICAgICAgICAgICAocG9pbnQpKSkKKyAgICAgICAgIChubHMgKDEtIChjb3VudC1s aW5lcyBzdG10LWJlZyAocG9pbnQpKSkpKQorICAgICh3aGVuIChhbmQgKG5vdCAoZXF1YWwg dG9rZW4gImRvIikpIChzbWllLWluZGVudC0taGFuZ2luZy1wKSkKKyAgICAgIChjbC1pbmNm IG5scykpCisgICAgKHdoZW4gKD4gbmxzIDApIChjbC1pbmNmIGluZGVudCBydWJ5LWluZGVu dC1sZXZlbCkpCisgICAgKGNvbnMgJ2NvbHVtbiBpbmRlbnQpKSkKIAogKGRlZnVuIHJ1Ynkt c21pZS0taW5kZW50LXRvLXN0bXQtcCAoa2V5d29yZCkKICAgKG9yIChlcSB0IHJ1YnktYWxp Z24tdG8tc3RtdC1rZXl3b3JkcykKQEAgLTY0Miw3ICs2NjAsOSBAQCBydWJ5LXNtaWUtcnVs ZXMKICAgICAgICAgICAgICAgKGZvcndhcmQtY29tbWVudCAtMSkKICAgICAgICAgICAgICAg KG5vdCAoZXEgKHByZWNlZGluZy1jaGFyKSA/OikpKSkKICAgICAgICA7OyBDdXJseSBibG9j ayBvcGVuZXIuCi0gICAgICAgKHJ1Ynktc21pZS0taW5kZW50LXRvLXN0bXQpKQorICAgICAg IChpZiBydWJ5LWluZGVudC1zaW1wbGlmaWVkCisgICAgICAgICAgIChydWJ5LXNtaWUtLWlu ZGVudC13aXRoLWNvbnRpbnVhdGlvbiB0b2tlbikKKyAgICAgICAgIChydWJ5LXNtaWUtLWlu ZGVudC10by1zdG10KSkpCiAgICAgICAoKHNtaWUtcnVsZS1oYW5naW5nLXApCiAgICAgICAg OzsgVHJlYXQgcHVyZWx5IHN5bnRhY3RpYyBibG9jay1jb25zdHJ1Y3RzIGFzIGJlaW5nIHBh cnQgb2YgdGhlaXIgcGFyZW50LAogICAgICAgIDs7IHdoZW4gdGhlIG9wZW5pbmcgdG9rZW4g aXMgaGFuZ2luZyBhbmQgdGhlIHBhcmVudCBpcyBub3QgYW4KQEAgLTY4Myw3ICs3MDMsNiBA QCBydWJ5LXNtaWUtcnVsZXMKICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0 IikKICAgICAgICAgICAgKGNvbnMgJ2NvbHVtbiAoY3VycmVudC1jb2x1bW4pKSkKICAgICAg ICAoc21pZS1ydWxlLXBhcmVudCAob3IgcnVieS1tZXRob2QtcGFyYW1zLWluZGVudCAwKSkp KQotICAgICgnKDpiZWZvcmUgLiAiZG8iKSAocnVieS1zbWllLS1pbmRlbnQtdG8tc3RtdCkp CiAgICAgKCcoOmJlZm9yZSAuICIuIikKICAgICAgKGlmIChzbWllLXJ1bGUtc2libGluZy1w KQogICAgICAgICAgKHdoZW4gcnVieS1hbGlnbi1jaGFpbmVkLWNhbGxzCkBAIC02OTYsOCAr NzE1LDEwIEBAIHJ1Ynktc21pZS1ydWxlcwogICAgICAgICAgICAgICAgICAgIChub3QgKHNt aWUtcnVsZS1ib2xwKSkpKSkKICAgICAgICAgICAgKGNvbnMgJ2NvbHVtbiAoY3VycmVudC1j b2x1bW4pKSkKICAgICAgICAoc21pZS1iYWNrd2FyZC1zZXhwICIuIikKLSAgICAgICAoY29u cyAnY29sdW1uICgrIChjdXJyZW50LWNvbHVtbikKLSAgICAgICAgICAgICAgICAgICAgICAg IHJ1YnktaW5kZW50LWxldmVsKSkpKQorICAgICAgIChpZiBydWJ5LWluZGVudC1zaW1wbGlm aWVkCisgICAgICAgICAgIChydWJ5LXNtaWUtLWluZGVudC10by1zdG10IHJ1YnktaW5kZW50 LWxldmVsKQorICAgICAgICAgKGNvbnMgJ2NvbHVtbiAoKyAoY3VycmVudC1jb2x1bW4pCisg ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1YnktaW5kZW50LWxldmVsKSkpKSkKICAgICAo YCg6YmVmb3JlIC4gLChvciAiZWxzZSIgInRoZW4iICJlbHNpZiIgInJlc2N1ZSIgImVuc3Vy ZSIpKQogICAgICAoc21pZS1ydWxlLXBhcmVudCkpCiAgICAgKGAoOmJlZm9yZSAuICwob3Ig IndoZW4iICJpbiIpKQpAQCAtNzEwLDE0ICs3MzEsMTYgQEAgcnVieS1zbWllLXJ1bGVzCiAg ICAgICAgICAgICAgICAgICAgICAiPDw9IiAiPj49IiAiJiY9IiAifHw9IiAiYW5kIiAib3Ii KSkKICAgICAgKGFuZCAoc21pZS1ydWxlLXBhcmVudC1wICI7IiBuaWwpCiAgICAgICAgICAg KHNtaWUtaW5kZW50LS1oYW5naW5nLXApCi0gICAgICAgICAgcnVieS1pbmRlbnQtbGV2ZWwp KQorICAgICAgICAgIChpZiBydWJ5LWluZGVudC1zaW1wbGlmaWVkCisgICAgICAgICAgICAg IChydWJ5LXNtaWUtLWluZGVudC10by1zdG10IHJ1YnktaW5kZW50LWxldmVsKQorICAgICAg ICAgICAgcnVieS1pbmRlbnQtbGV2ZWwpKSkKICAgICAoYCg6YmVmb3JlIC4gIj0iKQogICAg ICAoc2F2ZS1leGN1cnNpb24KICAgICAgIChhbmQgKHNtaWUtcnVsZS1wYXJlbnQtcCAiIEAg IikKICAgICAgICAgICAgKGdvdG8tY2hhciAobnRoIDEgKHNtaWUtaW5kZW50LS1wYXJlbnQp KSkKICAgICAgICAgICAgKHNtaWUtcnVsZS1wcmV2LXAgImRlZj0iKQogICAgICAgICAgICAo Y29ucyAnY29sdW1uICgrIChjdXJyZW50LWNvbHVtbikgcnVieS1pbmRlbnQtbGV2ZWwgLTMp KSkpKQotICAgIChgKDphZnRlciAuICwob3IgIj8iICI6IikpIHJ1YnktaW5kZW50LWxldmVs KQorICAgIChgKDphZnRlciAuICwob3IgIj8iICI6IikpICh1bmxlc3MgcnVieS1pbmRlbnQt c2ltcGxpZmllZCBydWJ5LWluZGVudC1sZXZlbCkpCiAgICAgKGAoOmJlZm9yZSAuICwoZ3Vh cmQgKG1lbXEgKGludGVybi1zb2Z0IHRva2VuKSBydWJ5LWFsaWduYWJsZS1rZXl3b3Jkcykp KQogICAgICAod2hlbiAobm90IChydWJ5LS1hdC1pbmRlbnRhdGlvbi1wKSkKICAgICAgICAo aWYgKHJ1Ynktc21pZS0taW5kZW50LXRvLXN0bXQtcCB0b2tlbikKQEAgLTcyNSw3ICs3NDgs MTggQEAgcnVieS1zbWllLXJ1bGVzCiAgICAgICAgICAoY29ucyAnY29sdW1uIChjdXJyZW50 LWNvbHVtbikpKSkpCiAgICAgKCcoOmJlZm9yZSAuICJpdXd1LW1vZCIpCiAgICAgIChzbWll LXJ1bGUtcGFyZW50IHJ1YnktaW5kZW50LWxldmVsKSkKLSAgICApKQorICAgIChgKDpiZWZv cmUgLiAsXykKKyAgICAgKHdoZW4gKGFuZCBydWJ5LWluZGVudC1zaW1wbGlmaWVkCisgICAg ICAgICAgICAgICAgKG5vdCAob3IgKG1lbWJlciB0b2tlbiAnKCIsIikpCisgICAgICAgICAg ICAgICAgICAgICAgICAgKHNtaWUtcnVsZS1wcmV2LXAgIjsiKSkpKQorICAgICAgIChsZXQq ICgoc3RtdC1iZWcgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg IChzbWllLWJhY2t3YXJkLXNleHAgIjsiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo cG9pbnQpKSkKKyAgICAgICAgICAgICAgKG5scyAoMS0gKGNvdW50LWxpbmVzIHN0bXQtYmVn IChwb2ludCkpKSkpCisgICAgICAgICAod2hlbiAoYW5kIChub3QgKGVxdWFsIHRva2VuICJk byIpKSAoc21pZS1pbmRlbnQtLWhhbmdpbmctcCkpCisgICAgICAgICAgIChjbC1pbmNmIG5s cykpCisgICAgICAgICAocnVieS1zbWllLS1pbmRlbnQtdG8tc3RtdCAoaWYgKD4gbmxzIDAp IHJ1YnktaW5kZW50LWxldmVsIDApKSkpKQorICAgICgnKDpiZWZvcmUgLiAiZG8iKSAocnVi eS1zbWllLS1pbmRlbnQtdG8tc3RtdCkpKSkKIAogKGRlZnVuIHJ1YnktLWF0LWluZGVudGF0 aW9uLXAgKCZvcHRpb25hbCBwb2ludCkKICAgKHNhdmUtZXhjdXJzaW9uCmRpZmYgLS1naXQg YS90ZXN0L2xpc3AvcHJvZ21vZGVzL3J1YnktbW9kZS1yZXNvdXJjZXMvcnVieS5yYiBiL3Rl c3QvbGlzcC9wcm9nbW9kZXMvcnVieS1tb2RlLXJlc291cmNlcy9ydWJ5LnJiCmluZGV4IDZh NjlkOWRiNzhhLi4zYmYzNTc5MDA5OSAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rl cy9ydWJ5LW1vZGUtcmVzb3VyY2VzL3J1YnkucmIKKysrIGIvdGVzdC9saXNwL3Byb2dtb2Rl cy9ydWJ5LW1vZGUtcmVzb3VyY2VzL3J1YnkucmIKQEAgLTE4NSwxNCArMTg1LDE0IEBAIGRl ZiB0ZXN0MiAoYXJnKQogCiAjIEV4YW1wbGUgZnJvbSBodHRwczovL3J1YnktZG9jLmNvbS9k b2NzL1Byb2dyYW1taW5nUnVieS8KIGQgPSA0ICsgNSArICAgICAgIyBubyAnXCcgbmVlZGVk Ci0gICAgNiArIDcKKyAgNiArIDcKIAogIyBFeGFtcGxlIGZyb20gaHR0cHM6Ly93d3cucnVi eS1kb2Mub3JnL2RvY3MvUHJvZ3JhbW1pbmdSdWJ5LwogZSA9IDggKyA5ICAgXAotICAgICsg MTAgICAgICAgICAjICdcJyBuZWVkZWQKKyAgKyAxMCAgICAgICAgICMgJ1wnIG5lZWRlZAog CiBmb28gPSBvYmouYmFyIHsgfG18IHRlZShtKSB9ICsKLSAgICAgIG9iai5xdXggeyB8bXwg aHVtKG0pIH0KKyAgb2JqLnF1eCB7IHxtfCBodW0obSkgfQogCiBiZWdpbgogICBmb28KQEAg LTIxNSw3ICsyMTUsNyBAQCBkZWYgYmVnaW4KIGVuZAogCiBhID0gZm9vKGosIGspIC0KLSAg ICBiYXJfdGVlCisgIGJhcl90ZWUKIAogd2hpbGUgYSA8IGIgZG8gIyAiZG8iIGlzIG9wdGlv bmFsCiAgIGZvbwpAQCAtMjI0LDggKzIyNCw4IEBAIGRlZiBiZWdpbgogZGVzYyAiZm9vIGZv byIgXAogICAgICAiYmFyIGJhciIKIAotZm9vLgotICBiYXIKK2ZvbworICAuYmFyCiAKICMg aHR0cHM6Ly9naXRodWIuY29tL3JhaWxzL3JhaWxzL2Jsb2IvMTdmNWQ4ZTA2MjkwOWYxZmNh ZTI1MzUxODM0ZDhlODk5NjdiNjQ1ZS9hY3RpdmVzdXBwb3J0L2xpYi9hY3RpdmVfc3VwcG9y dC90aW1lX3dpdGhfem9uZS5yYiNMMjA2CiBmb28gIyBjb21tZW50IGludGVuZGVkIHRvIGNv bmZ1c2UgdGhlIHRva2VuaXplcgpAQCAtMjg4LDcgKzI4OCw3IEBAIGRlZiBiZWdpbgogfQog CiBpZiBmb28gJiYKLSAgIGJhcgorICAgICBiYXIKIGVuZAogCiBmb28gKwpAQCAtMzEyLDEw ICszMTIsMTAgQEAgZGVmIGJlZ2luCiAgIHRlZSArIHF1eAogCiAxIC4uIDIgJiYKLSAgICAg MworICAzCiAKIDMgPCA0ICsKLSAgICA1CisgIDUKIAogMTAgPDwgNCBeCiAgIDIwCkBAIC00 MTgsOCArNDE4LDkgQEAgZGVmIHF1eAogZGRkCiAKIHF1eCA9IGZvby5mZWUgPwotICAgICAg ICBiYXIgOgotICAgICAgICB0ZWUKKyAgYmFyICsgMyAqCisgIDQgOgorICB0ZWUKIAogem9v LmtlZXAuYmFyISgKICAge3g6IHksCkBAIC00MzksOSArNDQwLDkgQEAgZGVmIHF1eAogCiBm b28yID0KICAgc3ViamVjdC4KLSAgICB1cGRhdGUoCi0gICAgICAyCi0gICAgKQorICB1cGRh dGUoCisgICAgMgorICApCiAKICMgRklYTUU6IFRoaXMgaXMgbm90IGNvbnNpc3RlbnQgd2l0 aCB0aGUgZXhhbXBsZSBiZWxvdyBpdCwgYnV0IHRoaXMKICMgb2Zmc2V0IG9ubHkgaGFwcGVu cyBpZiB0aGUgY29sb24gaXMgYXQgZW9sLCB3aGljaCB3b3VsZG4ndCBiZSBvZnRlbi4KQEAg LTQ1MSw3ICs0NTIsNyBAQCBkZWYgcXV4CiAgICAgICB0ZWUpCiAKIGZvbyg6YmFyID0+Ci0g ICAgdGVlKQorICAgICAgdGVlKQogCiByZWdpb25zID0gZm9vKAogICBPcGVuU3RydWN0Lm5l dyhpZDogMCwgbmFtZTogImZvbyIpID0+IFsKQEAgLTUwMCw5ICs1MDEsMTcgQEAgZGVmIHF1 eAogCiAjIFRva2VuaXppbmcgIioqIiBhbmQgInwiIHNlcGFyYXRlbHkuCiBkZWYgcmVzb2x2 ZSgqKmFyZ3MpCi0gIG1lbWJlcnMgPSBwcm9jIGRvIHwqKmFyZ3N8Ci0gICAgcCgqKmFyZ3Mp Ci0gIGVuZAorICBtZW1iZXJzID0gZm9vCisgICAgLmFzZGFzZAorICAgIC5wcm9jIGRvIHwq KmFyZ3N8CisgICAgICBwKCoqYXJncykKKyAgICBlbmQKKworICBtZW1iZXJzID0gZm9vCisg ICAgLmFzZGFzZAorICAgIC5wcm9jIHsgfCoqYXJnc3wKKyAgICAgIHAoKiphcmdzKQorICAg IH0KIAogICBtZW1iZXIuY2FsbCgqKmFyZ3MpCiBlbmQKQEAgLTUxMCw3ICs1MTksNyBAQCBk ZWYgcmVzb2x2ZSgqKmFyZ3MpCiAjIEVuZGxlc3MgbWV0aG9kcy4KIGNsYXNzIEJhcgogICBk ZWYgZm9vKGFiYykgPSBiYXIgKwotICAgICAgICAgICAgICAgICBiYXoKKyAgICBiYXoKIAog ICBkZWYgc2VsZi5iYXIgPQogICAgIDEyMyArCkBAIC01NDEsNCArNTUwLDUgQEAgZGVmIGJh ei5mdWxsX25hbWUgPSAiI3tiYXJ9IDMiCiAKICMgTG9jYWwgVmFyaWFibGVzOgogIyBydWJ5 LW1ldGhvZC1wYXJhbXMtaW5kZW50OiB0CisjIHJ1YnktaW5kZW50LXNpbXBsaWZpZWQ6IHQK ICMgRW5kOgo= --------------Bl7q6rA8Uybewx7PYREJDLHt--