Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vxiNd-00H47y-2K for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Mar 2026 09:18:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vxiNc-00Brao-0h for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Mar 2026 09:18:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vxiNb-00Braf-1n for pgsql-hackers@lists.postgresql.org; Wed, 04 Mar 2026 09:18:56 +0000 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vxiNX-00000000Ld4-4BJF for pgsql-hackers@lists.postgresql.org; Wed, 04 Mar 2026 09:18:54 +0000 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-b8f992167dcso662901866b.1 for ; Wed, 04 Mar 2026 01:18:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1772615931; x=1773220731; darn=lists.postgresql.org; h=in-reply-to:references:cc:from:to:subject:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=YX107MK+zrHF+mysYQrNE1nBQEl+8+IkT/Ge2yH56w0=; b=INyNvbiPl8sBaaipSEW29JOui+m9afTiS7iaPPfPR1QvRPD8U66xB+hnEi88i8r8M/ JKNLeLbhCR4LH9U74Ab5oycvGCrkkZfrief9LDL1VsPeXKbz7GBFtqtTY95zcNtxPQCT XxoXoiAyI7/Z5yoQFjKleBAjVCHK4WzlukCka9q8zyWVmq/cnt1fm2Up67aIrNf5G5s2 E7kNNOspqjmJ+ivLNjDC9jEoq2ujU1+mGGd8KdfoURijfJHfMknma9+eY5QCwmo4Hilc O4eyccqtOrcoaRo6E10UJDjPOSO/F2VVZ6tIdaDI4vDoxIH+/CDhxjbMqDp0VHqTTMx4 781A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772615931; x=1773220731; h=in-reply-to:references:cc:from:to:subject:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=YX107MK+zrHF+mysYQrNE1nBQEl+8+IkT/Ge2yH56w0=; b=N3+JKWjphZd/WN+3dIc53kBf6L0PbHxTE+sUbjJ+5hmrENO6wrR0NCjtzEhPe+XCFJ CrQ+in0LnkfcSsEWJ/yqlfPZHj1XEIZnSftB8V89J19UD83IvZsCrVn0DDOjm4hdZliY 0MD/9obfmN0bOcGuwa8lgjO3Hf7aBIrrya25x5U9mx97Nky0Vj0wimcocp96LkrCynsG 8V8QW1JwC3VeLGeq90Lx1ZEVBc0okHlApfFk1/MCOvE+BvyHUkXtxUBcSWgfvjDZhqiT +Eg9u3GOqQANN5EhHkhAveirXvZKDYvLpsxIjkChxNJu84InskYSmgPKJ+iLptqbcAHO SW9Q== X-Gm-Message-State: AOJu0YziKwjk6f48uuVRynKKXMnZ9lv/whc51dUAz6zo/82qdtyznTbG JbblulmFYgtD/+SzkkrEtTlqD66wsL4cW1rd1UizdRu0A2FDtdg2gTTJmuIJPD4TQKPPK9kDM8w S+93d X-Gm-Gg: ATEYQzxnvTwWJos1+euSYq53kuKbF2YoRuvE5rEZwYWYKLPRQe2IKxrioOjOhQGoxG/ 5Iglp14Q8gsXrrxG1yLuRD/H389BHnuE/D7Im0OvJR7M9nB0H8rKOmJXsAJcAKjtUynHclcB3cN OuPXZ4t9Xs2dc9ABFR62ekLHjJMN21aJKEnFPySomT2nU+x2dTj/Ht5AqQweqGD0VBrUTxCdZkW a1Bj1bRvsVN63+LOsrb3XYmlkn7ZhjxCHFE8YOzFcFyrNhgUl8LNtWUlEP1E+xVBd4j14zd5gaJ fg9IsrzAkyXUW8e/CiUrmoXjQKV09TAzq0/WLgvQdJtQlisWsRAvh4SssYWy0w46EE4vUHSdGPE 1rhvyJaWtPlkYert21OgmnAEXGEbkBPQbQ8XjeGFG8M0EEQ6GdfC5YhqVMhArsWROW9yzkUsp17 /OhBBvbU0l5gFX26yjXawGDBNG9UaJG1sTTA4jJyIDJCsGHTIO X-Received: by 2002:a17:907:6d16:b0:b8f:7c0a:f942 with SMTP id a640c23a62f3a-b93f11cdf01mr75368466b.25.1772615930332; Wed, 04 Mar 2026 01:18:50 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b935ac513bcsm712949866b.19.2026.03.04.01.18.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Mar 2026 01:18:49 -0800 (PST) Content-Type: multipart/mixed; boundary=8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Mime-Version: 1.0 Date: Wed, 04 Mar 2026 10:18:49 +0100 Message-Id: Subject: Re: Add "format" target to make and ninja to run pgindent and pgperltidy To: "Andrew Dunstan" , "Tom Lane" , "Ashutosh Bapat" From: "Jelte Fennema-Nio" Cc: "PostgreSQL Hackers" , "Daniel Gustafsson" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <3913298.1767194804@sss.pgh.pa.us> <5611b8aa-8496-4632-92b4-e096654850d1@dunslane.net> In-Reply-To: <5611b8aa-8496-4632-92b4-e096654850d1@dunslane.net> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Content-Type: multipart/alternative; boundary=6dcee2ba66a20e8e9ff45aec4d6824030c5929c24c3b3b2241815358d3d4 --6dcee2ba66a20e8e9ff45aec4d6824030c5929c24c3b3b2241815358d3d4 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Wed Dec 31, 2025 at 4:48 PM CET, Andrew Dunstan wrote: > I'd kinda like to unify these universes, though. We could import the=20 > pgperltidy logic into pgindent but disable it unless some flag were=20 > given and the correct version of perltidy were present. Attached is an initial patchset that does that, as well as improving pgindent in various other ways. This has removed the make/meson integration and instead made pgindent smarter at finding pg_bsd_indent and perltidy. I believe that with all of these QoL improvements we could enable perltidy in pgindent by default (after doing a full indent run). I want to call pretty much all of this code was written by Claude Code (i.e. an AI). I plan to do another review pass over this code soonish. Especially the later commits, which I haven't checked in detail yet. But for now I at least wanted to share the direction of what I've been working on, because I saw that Peter marked himself as reviewer on the commitfest app and I don't think it makes sense for him to look at the previous patchset. --6dcee2ba66a20e8e9ff45aec4d6824030c5929c24c3b3b2241815358d3d4-- --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0001-pgindent-Clean-up-temp-files-on-SIGINT.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0001-pgindent-Clean-up-temp-files-on-SIGINT.patch RnJvbSBlZmE3NzY4NzU5NGU3ZjUyYjE5NGFlYjgxMjkyYjNlY2I3YTE2NWRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBXZWQsIDQgTWFyIDIwMjYgMTA6MDI6MzkgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy IDEvN10gcGdpbmRlbnQ6IENsZWFuIHVwIHRlbXAgZmlsZXMgb24gU0lHSU5UCgpXaGVuIHByZXNz aW5nIEN0cmwrQyB3aGlsZSBydW5uaW5nIHBnaW5kZW50LCBpdCB3b3VsZCBvZnRlbiBsZWF2ZSBh cm91bmQKZmlsZXMgbGlrZSBwZ3R5cGVkZWZBWFVFRUEuIFRoaXMgc2xpZ2h0bHkgY2hhbmdlcyBT SUdJTlQgaGFuZGxpbmcgc28KdGhvc2UgZmlsZXMgYXJlIGNsZWFuZWQgdXAuCi0tLQogc3JjL3Rv b2xzL3BnaW5kZW50L3BnaW5kZW50IHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgYi9zcmMvdG9v bHMvcGdpbmRlbnQvcGdpbmRlbnQKaW5kZXggNzQ4MTY5NmE1ODQuLmNjYzVkYjRiMjA1IDEwMDc1 NQotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3BnaW5kZW50CkBAIC0xOSw2ICsxOSw5IEBAIHVzZSBGaWxlOjpUZW1wOwogdXNlIElPOjpI YW5kbGU7CiB1c2UgR2V0b3B0OjpMb25nOwogCisjIEVuc3VyZSBTSUdJTlQgdHJpZ2dlcnMgYSBj bGVhbiBleGl0IHNvIEZpbGU6OlRlbXAgY2FuIHJlbW92ZSB0ZW1wIGZpbGVzLgorJFNJR3tJTlR9 ID0gc3ViIHsgZXhpdCAxMzA7IH07CisKICMgVXBkYXRlIGZvciBwZ19ic2RfaW5kZW50IHZlcnNp b24KIG15ICRJTkRFTlRfVkVSU0lPTiA9ICIyLjEuMiI7CiAKCmJhc2UtY29tbWl0OiAyYTUyNWNj OTdlMTk4Njg5NDBjNTMzNzg3MTY1YmM3ZTdkZTNhODBhCi0tIAoyLjUzLjAKCg== --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0002-pgindent-Try-to-find-pg_bsd_indent-binary-in-comm.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0002-pgindent-Try-to-find-pg_bsd_indent-binary-in-comm.patch RnJvbSA4N2UwNWE0NmZiYTM2NmUwM2RmNmM4YjFmZTdiZDJiMGExZWY1NjBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDMgTWFyIDIwMjYgMjM6NDY6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy IDIvN10gcGdpbmRlbnQ6IFRyeSB0byBmaW5kIHBnX2JzZF9pbmRlbnQgYmluYXJ5IGluIGNvbW1v bgogbG9jYXRpb25zCgpUbyBydW4gcGdpbmRlbnQgeW91IG5lZWQgdG8gdG8gaGF2ZSB0aGUgcmln aHQgdmVyc2lvbiBvZiBwZ19ic2RfaW5kZW50CmluIHlvdXIgUEFUSCwgb3Igc3BlY2lmeSBpdCBt YW51YWxseS4gVGhpcyBpcyBhIGJpdCBvZiBhIGhhc3NsZSwKZXNwZWNpYWxseSBmb3IgbmV3Y29t ZXJzIG9yIHdoZW4gd29ya2luZyBvbiBiYWNrYnJhbmNoZXMuIFNvIHRoaXMKY2huYWdlcyBwZ2lu ZGVudCB0byBzZWFyY2ggZm9yIGEgcGdfYnNkX2luZGVudCB0aGF0J3MgYnVpbHQgZnJvbSB0aGUK Y3VycmVudCBzb3VyY2VzLCBib3RoIGluLXRyZWUgKGZvciBpbi10cmVlIGF1dG9jb25mIGJ1aWxk cykgYW5kIGluIGEKYnVpbGQgZGlyZWN0b3J5IChmb3IgbWVzb24gb3IgYXV0b2NvbmYgdnBhdGgg YnVpbGRzKS4KLS0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgfCAyOSArKysrKysrKysr KysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50IGIv c3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50CmluZGV4IGNjYzVkYjRiMjA1Li42NTcwNzI2Mzgx YyAxMDA3NTUKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50CisrKyBiL3NyYy90b29s cy9wZ2luZGVudC9wZ2luZGVudApAQCAtNTYsMTEgKzU2LDM0IEBAIHVzYWdlKCJDYW5ub3QgdXNl IC0tY29tbWl0IHdpdGggY29tbWFuZCBsaW5lIGZpbGUgbGlzdCIpCiAjIGRpciwgdGhlbiBkZWZh dWx0IGxvY2F0aW9uCiAkdHlwZWRlZnNfZmlsZSB8fD0gJEVOVntQR1RZUEVERUZTfTsKIAotIyBn ZXQgaW5kZW50IGxvY2F0aW9uIGZvciBlbnZpcm9ubWVudCBvciBkZWZhdWx0Ci0kaW5kZW50IHx8 PSAkRU5We1BHSU5ERU5UfSB8fCAkRU5We0lOREVOVH0gfHwgInBnX2JzZF9pbmRlbnQiOwotCiBt eSAkc291cmNlZGlyID0gbG9jYXRlX3NvdXJjZWRpcigpOwogCisjIGdldCBpbmRlbnQgbG9jYXRp b246IGNvbW1hbmQgbGluZSB3aW5zLCB0aGVuIGVudmlyb25tZW50LCB0aGVuIHRyeSB0byBmaW5k CisjIGEgY29tcGlsZWQgcGdfYnNkX2luZGVudCBpbiB0aGUgc291cmNlIHRyZWUsIHRoZW4gZmFs bCBiYWNrIHRvIFBBVEguCiskaW5kZW50IHx8PSAkRU5We1BHSU5ERU5UfSB8fCAkRU5We0lOREVO VH07CitpZiAoISRpbmRlbnQgJiYgJHNvdXJjZWRpcikKK3sKKwlteSAkc3Jjcm9vdCA9ICIkc291 cmNlZGlyLy4uLy4uLy4uIjsKKwlteSAkYnNkX2luZGVudF9zdWJkaXIgPSAic3JjL3Rvb2xzL3Bn X2JzZF9pbmRlbnQvcGdfYnNkX2luZGVudCI7CisKKwkjIExvb2sgZm9yIHBnX2JzZF9pbmRlbnQ6 IGZpcnN0IGluLXRyZWUgKGF1dG9jb25mIGluLXRyZWUgYnVpbGQpLAorCSMgdGhlbiBpbiBhICJi dWlsZCIgZGlyZWN0b3J5IChtZXNvbiBvciBhdXRvY29uZiB2cGF0aCksCisJIyB0aGVuIGFueSAi YnVpbGQqIiBkaXJlY3RvcnkuCisJZm9yZWFjaCBteSAkY2FuZGlkYXRlICgKKwkJIiRzcmNyb290 LyRic2RfaW5kZW50X3N1YmRpciIsCisJCWdsb2IoIiRzcmNyb290L2J1aWxkLyRic2RfaW5kZW50 X3N1YmRpciIpLAorCQlnbG9iKCIkc3Jjcm9vdC9idWlsZCovJGJzZF9pbmRlbnRfc3ViZGlyIikp CisJeworCQlpZiAoLXggJGNhbmRpZGF0ZSkKKwkJeworCQkJJGluZGVudCA9ICRjYW5kaWRhdGU7 CisJCQlsYXN0OworCQl9CisJfQorfQorJGluZGVudCB8fD0gInBnX2JzZF9pbmRlbnQiOworCisK ICMgaWYgaXQncyB0aGUgYmFzZSBvZiBhIHBvc3RncmVzIHRyZWUsIHdlIHdpbGwgZXhjbHVkZSB0 aGUgZmlsZXMKICMgcG9zdGdyZXMgd2FudHMgZXhjbHVkZWQKIGlmICgkc291cmNlZGlyKQotLSAK Mi41My4wCgo= --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0003-pgindent-Integrate-pgperltidy-functionality-into-.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0003-pgindent-Integrate-pgperltidy-functionality-into-.patch RnJvbSAwYzdlN2EyMjE1Y2IwMTdiYTU5ZGMyMDI1OGY5ZWRmYjE5YTE0YzFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBXZWQsIDMxIERlYyAyMDI1IDExOjA3OjU4ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 MiAzLzddIHBnaW5kZW50OiBJbnRlZ3JhdGUgcGdwZXJsdGlkeSBmdW5jdGlvbmFsaXR5IGludG8K IHBnaW5kZW50CgpPdmVyIHRpbWUgb3VyIHBnaW5kZW50IHNjcmlwdCBoYXMgZ290dGVuIGEgbG90 IG9mIHF1YWxpdHkgb2YgbGlmZQpmZWF0dXJlcywgbGlrZSB0aGUgLS1jb21taXQsIC0tZGlmZiBh bmQgLS1jaGVjayBmbGFncy4gVGhpcyBpbnRlZ3JhdGVzCnRoZSBmdW5jdGlvbmFsaXR5IG9mIHBn cGVybHRpZHkgaW50byBwZ2luZGVudCwgc28gaXQgY2FuIGJlbmVmaXQgZnJvbQp0aGVzZSBzYW1l IHF1YWxpdHkgb2YgbGlmZSBpbXByb3ZlbWVudHMsIGFzIHdlbGwgYXMgZnV0dXJlIG9uZXMuCgpU aGlzIGNvbW1pdCBhZGRzIGEgLS1wZXJsdGlkeSBmbGFnIHRvIHBnaW5kZW50LCB3aGljaCB3aGVu IGdpdmVuIHdpbGwKY2F1c2UgcGdpbmRlbnQgdG8gYWxzbyBmb3JtYXQgUGVybCBmaWxlcyBpbiBh ZGRpdGlvbiB0byB0aGUgQyBmaWxlcyBpdAp3b3VsZCBub3JtYWxseSBmb3JtYXQuIEl0IGFsc28g YWRkcyBhIC0tcGVybC1vbmx5IGZsYWcsIHRvIChhcyB0aGUgbmFtZQpzdWdnZXN0cykgb25seSBm b3JtYXQgUGVybCBmaWxlcy4KLS0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvUkVBRE1FICAgICB8ICAx NCArLS0KIHNyYy90b29scy9wZ2luZGVudC9wZ2luZGVudCAgIHwgMTg1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0KIHNyYy90b29scy9wZ2luZGVudC9wZ3Blcmx0aWR5IHwgIDE4 IC0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTYxIGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygt KQogZGVsZXRlIG1vZGUgMTAwNzU1IHNyYy90b29scy9wZ2luZGVudC9wZ3Blcmx0aWR5CgpkaWZm IC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L1JFQURNRSBiL3NyYy90b29scy9wZ2luZGVudC9S RUFETUUKaW5kZXggYjZjZDRjNmY2YjcuLjJlMzE0NzFkN2U2IDEwMDY0NAotLS0gYS9zcmMvdG9v bHMvcGdpbmRlbnQvUkVBRE1FCisrKyBiL3NyYy90b29scy9wZ2luZGVudC9SRUFETUUKQEAgLTM1 LDYgKzM1LDEwIEBAIERPSU5HIFRIRSBJTkRFTlQgUlVOIEJFRk9SRSBBIE5PUk1BTCBDT01NSVQ6 CiAKIAlzcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgLgogCisgICBUbyBhbHNvIGZvcm1hdCBQ ZXJsIGZpbGVzIGF0IHRoZSBzYW1lIHRpbWUsIGFkZCAtLXBlcmx0aWR5OgorCisJc3JjL3Rvb2xz L3BnaW5kZW50L3BnaW5kZW50IC0tcGVybHRpZHk9cGVybHRpZHkgLgorCiAgICBJZiBhbnkgZmls ZXMgZ2VuZXJhdGUgZXJyb3JzLCByZXN0b3JlIHRoZWlyIG9yaWdpbmFsIHZlcnNpb25zIHdpdGgK ICAgICJnaXQgY2hlY2tvdXQiLCBhbmQgc2VlIGJlbG93IGZvciBjbGVhbnVwIGlkZWFzLgogCkBA IC03NiwxMiArODAsMTIgQEAgQVQgTEVBU1QgT05DRSBQRVIgUkVMRUFTRSBDWUNMRToKIAogMikg UnVuIHBnaW5kZW50IGFzIGFib3ZlLgogCi0zKSBJbmRlbnQgdGhlIFBlcmwgY29kZSB1c2luZyBw ZXJsdGlkeToKKzMpIEluZGVudCB0aGUgUGVybCBjb2RlIHVzaW5nIHBlcmx0aWR5IChpZiBub3Qg YWxyZWFkeSBkb25lIGluIHN0ZXAgMik6CiAKLQlzcmMvdG9vbHMvcGdpbmRlbnQvcGdwZXJsdGlk eSAuCisJc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50IC0tcGVybC1vbmx5IC4KIAogICAgSWYg eW91IHdhbnQgdG8gdXNlIHNvbWUgcGVybHRpZHkgdmVyc2lvbiB0aGF0J3Mgbm90IGluIHlvdXIg UEFUSCwKLSAgIGZpcnN0IHNldCB0aGUgUEVSTFRJRFkgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g cG9pbnQgdG8gaXQuCisgICB1c2UgLS1wZXJsdGlkeT1QQVRIIG9yIHNldCB0aGUgUEVSTFRJRFkg ZW52aXJvbm1lbnQgdmFyaWFibGUuCiAKIDQpIFJlZm9ybWF0IHRoZSBib290c3RyYXAgY2F0YWxv ZyBkYXRhIGZpbGVzOgogCkBAIC0xNjYsNiArMTcwLDQgQEAgTm90ZSB0aGF0IHdlIGRvIG5vdCBl eGNsdWRlIGVjcGcncyBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgcnVuLiAgU29tZSBvZiB0aGVtCiBn ZXQgY29waWVkIHZlcmJhdGltIGludG8gZWNwZydzIG91dHB1dCwgbWVhbmluZyB0aGF0IGVjcGcn cyBleHBlY3RlZCBmaWxlcwogbWF5IG5lZWQgdG8gYmUgdXBkYXRlZCB0byBtYXRjaC4KIAotVGhl IHBlcmx0aWR5IHJ1biBwcm9jZXNzZXMgYWxsICoucGwgYW5kICoucG0gZmlsZXMsIHBsdXMgYSBm ZXcKLWV4ZWN1dGFibGUgUGVybCBzY3JpcHRzIHRoYXQgYXJlIG5vdCBuYW1lZCB0aGF0IHdheS4g IFNlZSB0aGUgImZpbmQiCi1ydWxlcyBpbiBwZ3Blcmx0aWR5IGZvciBkZXRhaWxzLgorV2hlbiAt LXBlcmx0aWR5IGlzIGdpdmVuLCBwZ2luZGVudCBhbHNvIHByb2Nlc3NlcyAqLnBsIGFuZCAqLnBt IGZpbGVzLgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50IGIvc3JjL3Rv b2xzL3BnaW5kZW50L3BnaW5kZW50CmluZGV4IDY1NzA3MjYzODFjLi5mOGFjOWM4MjY4YiAxMDA3 NTUKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC9wZ2luZGVudApAQCAtMiwxMiArMiwxMiBAQAogCiAjIENvcHlyaWdodCAoYykgMjAyMS0y MDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogCi0jIFByb2dyYW0gdG8g bWFpbnRhaW4gdW5pZm9ybSBsYXlvdXQgc3R5bGUgaW4gb3VyIEMgY29kZS4KKyMgUHJvZ3JhbSB0 byBtYWludGFpbiB1bmlmb3JtIGxheW91dCBzdHlsZSBpbiBvdXIgQyBhbmQgUGVybCBjb2RlLgog IyBFeGl0IGNvZGVzOgogIyAgIDAgLS0gYWxsIE9LCiAjICAgMSAtLSBlcnJvciBpbnZva2luZyBw Z2luZGVudCwgbm90aGluZyBkb25lCiAjICAgMiAtLSAtLWNoZWNrIG1vZGUgYW5kIGF0IGxlYXN0 IG9uZSBmaWxlIHJlcXVpcmVzIGNoYW5nZXMKLSMgICAzIC0tIHBnX2JzZF9pbmRlbnQgZmFpbGVk IG9uIGF0IGxlYXN0IG9uZSBmaWxlCisjICAgMyAtLSBwZ19ic2RfaW5kZW50IG9yIHBlcmx0aWR5 IGZhaWxlZCBvbiBhdCBsZWFzdCBvbmUgZmlsZQogCiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdz IEZBVEFMID0+ICdhbGwnOwpAQCAtMzIsMTAgKzMyLDE1IEBAIG15ICRpbmRlbnRfb3B0cyA9CiBt eSAkZGV2bnVsbCA9IEZpbGU6OlNwZWMtPmRldm51bGw7CiAKIG15ICgkdHlwZWRlZnNfZmlsZSwg JHR5cGVkZWZfc3RyLCBAZXhjbHVkZXMsICRpbmRlbnQsICRkaWZmLAotCSRjaGVjaywgJGhlbHAs IEBjb21taXRzLCk7CisJJGNoZWNrLCAkaGVscCwgQGNvbW1pdHMsICRwZXJsdGlkeV9hcmcsICRw ZXJsX29ubHksKTsKIAogJGhlbHAgPSAwOwogCisjIFNhdmUgQEFSR1YgYmVmb3JlIHBhcnNpbmcg c28gd2UgY2FuIGRpc3Rpbmd1aXNoIC0tcGVybHRpZHk9UEFUSCAod2hlcmUKKyMgdGhlIHZhbHVl IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBwZXJsdGlkeSBwYXRoKSBmcm9tIC0tcGVybHRpZHkgUEFU SAorIyAod2hlcmUgUEFUSCBpcyBhIGZpbGUgdG8gZm9ybWF0IHRoYXQgR2V0b3B0OjpMb25nIGdy ZWVkaWx5IGNvbnN1bWVkKS4KK215IEBvcmlnX2FyZ3YgPSBAQVJHVjsKKwogbXkgJW9wdGlvbnMg PSAoCiAJImhlbHAiID0+IFwkaGVscCwKIAkiY29tbWl0PXMiID0+IFxAY29tbWl0cywKQEAgLTQz LDEwICs0OCwyMSBAQCBteSAlb3B0aW9ucyA9ICgKIAkibGlzdC1vZi10eXBlZGVmcz1zIiA9PiBc JHR5cGVkZWZfc3RyLAogCSJleGNsdWRlcz1zIiA9PiBcQGV4Y2x1ZGVzLAogCSJpbmRlbnQ9cyIg PT4gXCRpbmRlbnQsCisJInBlcmx0aWR5OnMiID0+IFwkcGVybHRpZHlfYXJnLAorCSJwZXJsLW9u bHkiID0+IFwkcGVybF9vbmx5LAogCSJkaWZmIiA9PiBcJGRpZmYsCiAJImNoZWNrIiA9PiBcJGNo ZWNrLCk7CiBHZXRPcHRpb25zKCVvcHRpb25zKSB8fCB1c2FnZSgiYmFkIGNvbW1hbmQgbGluZSBh cmd1bWVudCIpOwogCitpZiAoZGVmaW5lZCgkcGVybHRpZHlfYXJnKSAmJiAkcGVybHRpZHlfYXJn IG5lICcnKQoreworCXVubGVzcyAoZ3JlcCB7ICRfIGVxICItLXBlcmx0aWR5PSRwZXJsdGlkeV9h cmciIH0gQG9yaWdfYXJndikKKwl7CisJCXVuc2hpZnQoQEFSR1YsICRwZXJsdGlkeV9hcmcpOwor CQkkcGVybHRpZHlfYXJnID0gJyc7CisJfQorfQorCiB1c2FnZSgpIGlmICRoZWxwOwogCiB1c2Fn ZSgiQ2Fubm90IHVzZSAtLWNvbW1pdCB3aXRoIGNvbW1hbmQgbGluZSBmaWxlIGxpc3QiKQpAQCAt NTYsNiArNzIsMTIgQEAgdXNhZ2UoIkNhbm5vdCB1c2UgLS1jb21taXQgd2l0aCBjb21tYW5kIGxp bmUgZmlsZSBsaXN0IikKICMgZGlyLCB0aGVuIGRlZmF1bHQgbG9jYXRpb24KICR0eXBlZGVmc19m aWxlIHx8PSAkRU5We1BHVFlQRURFRlN9OwogCisjIGdldCBwZXJsdGlkeSBsb2NhdGlvbjogY29t bWFuZCBsaW5lIHdpbnMsIHRoZW4gZW52aXJvbm1lbnQsIHRoZW4gZGVmYXVsdC4KKyMgLS1wZXJs dGlkeSAod2l0aCBvciB3aXRob3V0IGEgcGF0aCkgYW5kIC0tcGVybC1vbmx5IGFsbCBpbXBseSBw ZXJsdGlkeSBpcworIyB3YW50ZWQsIGZhbGxpbmcgYmFjayB0byB0aGUgUEVSTFRJRFkgZW52IHZh ciwgdGhlbiAicGVybHRpZHkiIGluIFBBVEguCitteSAkcGVybHRpZHkgPSAkcGVybHRpZHlfYXJn IHx8ICRFTlZ7UEVSTFRJRFl9CisgIHx8IChkZWZpbmVkKCRwZXJsdGlkeV9hcmcpIHx8ICRwZXJs X29ubHkgPyAicGVybHRpZHkiIDogdW5kZWYpOworCiBteSAkc291cmNlZGlyID0gbG9jYXRlX3Nv dXJjZWRpcigpOwogCiAjIGdldCBpbmRlbnQgbG9jYXRpb246IGNvbW1hbmQgbGluZSB3aW5zLCB0 aGVuIGVudmlyb25tZW50LCB0aGVuIHRyeSB0byBmaW5kCkBAIC0xNDIsNiArMTY0LDMwIEBAIHN1 YiBjaGVja19pbmRlbnQKIAlyZXR1cm47CiB9CiAKK215ICRQRVJMVElEWV9WRVJTSU9OID0gIjIw MjMwMzA5IjsKKworc3ViIGNoZWNrX3Blcmx0aWR5Cit7CisJbXkgJHZlciA9IGAkcGVybHRpZHkg LXYgMj4mMWA7CisJaWYgKCQ/ICE9IDApCisJeworCQlwcmludCBTVERFUlIKKwkJICAiWW91IGRv IG5vdCBhcHBlYXIgdG8gaGF2ZSAkcGVybHRpZHkgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtLlxu IgorCQkgIC4gIlNlZSBzcmMvdG9vbHMvcGdpbmRlbnQvUkVBRE1FIGZvciBpbnN0YWxsYXRpb24g aW5zdHJ1Y3Rpb25zLlxuIjsKKwkJZXhpdCAxOworCX0KKworCWlmICgkdmVyICF+IG0vJFBFUkxU SURZX1ZFUlNJT04vKQorCXsKKwkJcHJpbnQgU1RERVJSCisJCSAgIllvdSBkbyBub3QgYXBwZWFy IHRvIGhhdmUgJHBlcmx0aWR5IHZlcnNpb24gJFBFUkxUSURZX1ZFUlNJT04gaW5zdGFsbGVkIG9u IHlvdXIgc3lzdGVtLlxuIgorCQkgIC4gIlNlZSBzcmMvdG9vbHMvcGdpbmRlbnQvUkVBRE1FIGZv ciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLlxuIjsKKwkJZXhpdCAxOworCX0KKworCXJldHVy bjsKK30KKwogc3ViIGxvY2F0ZV9zb3VyY2VkaXIKIHsKIAkjIHRyeSBmYWlybHkgaGFyZCB0byBs b2NhdGUgdGhlIHNvdXJjZWRpcgpAQCAtMzI3LDYgKzM3Myw0MyBAQCBzdWIgcnVuX2luZGVudAog CXJldHVybiAkc291cmNlOwogfQogCitzdWIgZm9ybWF0X2MKK3sKKwlteSAkc291cmNlID0gc2hp ZnQ7CisJbXkgJHNvdXJjZV9maWxlbmFtZSA9IHNoaWZ0OworCW15ICRlcnJvcl9tZXNzYWdlID0g Jyc7CisKKwlteSAkZm9ybWF0dGVkID0gcHJlX2luZGVudCgkc291cmNlKTsKKwkkZm9ybWF0dGVk ID0gcnVuX2luZGVudCgkZm9ybWF0dGVkLCBcJGVycm9yX21lc3NhZ2UpOworCWlmICgkZm9ybWF0 dGVkIGVxICIiKQorCXsKKwkJcHJpbnQgU1RERVJSICJGYWlsdXJlIGluICRzb3VyY2VfZmlsZW5h bWU6ICIgLiAkZXJyb3JfbWVzc2FnZSAuICJcbiI7CisJCXJldHVybiAoIiIsIDEpOworCX0KKwly ZXR1cm4gcG9zdF9pbmRlbnQoJGZvcm1hdHRlZCk7Cit9CisKK3N1YiBmb3JtYXRfcGVybAorewor CW15ICRzb3VyY2UgPSBzaGlmdDsKKwlteSAkc291cmNlX2ZpbGVuYW1lID0gc2hpZnQ7CisKKwlt eSAkdG1wX2ZoID0gbmV3IEZpbGU6OlRlbXAoVEVNUExBVEUgPT4gInBncGVybHRpZHlYWFhYWCIp OworCW15ICR0bXBfZmlsZW5hbWUgPSAkdG1wX2ZoLT5maWxlbmFtZTsKKwlwcmludCAkdG1wX2Zo ICRzb3VyY2U7CisJJHRtcF9maC0+Y2xvc2UoKTsKKworCW15ICRwZXJsdGlkeV9wcm9maWxlID0g IiRzb3VyY2VkaXIvcGVybHRpZHlyYyI7CisJbXkgJGVyciA9CisJICBgJHBlcmx0aWR5IC0tcHJv ZmlsZT0kcGVybHRpZHlfcHJvZmlsZSAtYiAtYmV4dD0nLycgJHRtcF9maWxlbmFtZSAyPiYxYDsK KwlpZiAoJD8gIT0gMCkKKwl7CisJCXByaW50IFNUREVSUiAiRmFpbHVyZSBpbiAkc291cmNlX2Zp bGVuYW1lOiAiIC4gJGVyciAuICJcbiI7CisJCXJldHVybiAoIiIsIDEpOworCX0KKwlyZXR1cm4g cmVhZF9zb3VyY2UoJHRtcF9maWxlbmFtZSk7Cit9CisKIHN1YiBkaWZmCiB7CiAJbXkgJGluZGVu dGVkID0gc2hpZnQ7CkBAIC0zNTYsNiArNDM5LDggQEAgT3B0aW9uczoKIAktLWxpc3Qtb2YtdHlw ZWRlZnM9U1RSICBzdHJpbmcgY29udGFpbmluZyB0eXBlZGVmcywgc3BhY2Ugc2VwYXJhdGVkCiAJ LS1leGNsdWRlcz1QQVRIICAgICAgICAgZmlsZSBjb250YWluaW5nIGxpc3Qgb2YgZmlsZW5hbWUg cGF0dGVybnMgdG8gaWdub3JlCiAJLS1pbmRlbnQ9UEFUSCAgICAgICAgICAgcGF0aCB0byBwZ19i c2RfaW5kZW50IHByb2dyYW0KKwktLXBlcmx0aWR5Wz1QQVRIXSAgICAgICBlbmFibGUgUGVybCBm b3JtYXR0aW5nIChvcHRpb25hbGx5IHNldCBwZXJsdGlkeSBwYXRoKQorCS0tcGVybC1vbmx5ICAg ICAgICAgICAgIGZvcm1hdCBvbmx5IFBlcmwgZmlsZXMsIHNraXAgQyBmb3JtYXR0aW5nCiAJLS1k aWZmICAgICAgICAgICAgICAgICAgc2hvdyB0aGUgY2hhbmdlcyB0aGF0IHdvdWxkIGJlIG1hZGUK IAktLWNoZWNrICAgICAgICAgICAgICAgICBleGl0IHdpdGggc3RhdHVzIDIgaWYgYW55IGNoYW5n ZXMgd291bGQgYmUgbWFkZQogVGhlIC0tZXhjbHVkZXMgYW5kIC0tY29tbWl0IG9wdGlvbnMgY2Fu IGJlIGdpdmVuIG1vcmUgdGhhbiBvbmNlLgpAQCAtMzc0LDIwICs0NTksNjQgQEAgRU9GCiAKICMg bWFpbgogCi0kZmlsdGVyZWRfdHlwZWRlZnNfZmggPSBsb2FkX3R5cGVkZWZzKCk7CitteSAkZG9f YyA9ICEkcGVybF9vbmx5OworbXkgJGRvX3BlcmwgPSBkZWZpbmVkKCRwZXJsdGlkeSk7CisKK2lm ICgkZG9fYykKK3sKKwkkZmlsdGVyZWRfdHlwZWRlZnNfZmggPSBsb2FkX3R5cGVkZWZzKCk7CisJ Y2hlY2tfaW5kZW50KCk7Cit9CisKK2lmICgkZG9fcGVybCkKK3sKKwljaGVja19wZXJsdGlkeSgp OworfQogCi1jaGVja19pbmRlbnQoKTsKK3N1YiBpc19jX2ZpbGUKK3sKKwlteSAkZmlsZW5hbWUg PSBzaGlmdDsKKwkjIEl0IG5lZWRzIHRvIGhhdmUgLmMgb3IgLmggZXh0ZW5zaW9uCisJcmV0dXJu IDAgdW5sZXNzICRmaWxlbmFtZSA9fiAvXC5bY2hdJC87CisJIyBBdXRvbWF0aWNhbGx5IGlnbm9y ZSAuYyBhbmQgLmggZmlsZXMgdGhhdCBjb3JyZXNwb25kIHRvIGEgLnkgb3IgLmwgZmlsZS4KKwkj IHBnX2JzZF9pbmRlbnQgdGVuZHMgdG8gZ2V0IGJhZGx5IGNvbmZ1c2VkIGJ5IEJpc29uL2ZsZXgg b3V0cHV0LCBhbmQKKwkjIHRoZXJlJ3Mgbm8gdmFsdWUgaW4gaW5kZW50aW5nIGRlcml2ZWQgZmls ZXMgYW55d2F5LgorCW15ICRvdGhlcmZpbGUgPSAkZmlsZW5hbWU7CisJJG90aGVyZmlsZSA9fiBz L1wuW2NoXSQvLnkvOworCXJldHVybiAwIGlmICRvdGhlcmZpbGUgbmUgJGZpbGVuYW1lICYmIC1m ICRvdGhlcmZpbGU7CisJJG90aGVyZmlsZSA9fiBzL1wueSQvLmwvOworCXJldHVybiAwIGlmICRv dGhlcmZpbGUgbmUgJGZpbGVuYW1lICYmIC1mICRvdGhlcmZpbGU7CisJcmV0dXJuIDE7Cit9CisK K3N1YiBpc19wZXJsX2ZpbGUKK3sKKwlteSAkZmlsZW5hbWUgPSBzaGlmdDsKKwkjIHRha2UgYWxs IC5wbCBhbmQgLnBtIGZpbGVzCisJcmV0dXJuIDEgaWYgJGZpbGVuYW1lID1+IC9cLnBbbG1dJC87 CisJIyB0YWtlIGV4ZWN1dGFibGUgZmlsZXMgdGhhdCBmaWxlKDEpIHRoaW5rcyBhcmUgcGVybCBm aWxlcworCXJldHVybiAwIHVubGVzcyAteCAkZmlsZW5hbWU7CisJbXkgJGZpbGVfb3V0ID0gYGZp bGUgIiRmaWxlbmFtZSJgOworCXJldHVybiAkZmlsZV9vdXQgPX4gLzouKnBlcmxbMC05XSpcYi9p OworfQogCiBteSAkd2FudGVkID0gc3ViIHsKIAlteSAoJGRldiwgJGlubywgJG1vZGUsICRubGlu aywgJHVpZCwgJGdpZCk7CiAJKCgkZGV2LCAkaW5vLCAkbW9kZSwgJG5saW5rLCAkdWlkLCAkZ2lk KSA9IGxzdGF0KCRfKSkKIAkgICYmIC1mIF8KLQkgICYmIC9eLipcLltjaF1cei9zCi0JICAmJiBw dXNoKEBmaWxlcywgJEZpbGU6OkZpbmQ6Om5hbWUpOworCSAgfHwgcmV0dXJuOworCWlmICgkZG9f YyAmJiBpc19jX2ZpbGUoJEZpbGU6OkZpbmQ6Om5hbWUpKQorCXsKKwkJcHVzaChAZmlsZXMsICRG aWxlOjpGaW5kOjpuYW1lKTsKKwl9CisJZWxzaWYgKCRkb19wZXJsICYmIGlzX3BlcmxfZmlsZSgk RmlsZTo6RmluZDo6bmFtZSkpCisJeworCQlwdXNoKEBmaWxlcywgJEZpbGU6OkZpbmQ6Om5hbWUp OworCX0KIH07CiAKICMgYW55IG5vbi1vcHRpb24gYXJndW1lbnRzIGFyZSBmaWxlcyBvciBkaXJl Y3RvcmllcyB0byBiZSBwcm9jZXNzZWQKLUZpbGU6OkZpbmQ6OmZpbmQoeyB3YW50ZWQgPT4gJHdh bnRlZCB9LCBAQVJHVikgaWYgQEFSR1Y7CitGaWxlOjpGaW5kOjpmaW5kKHsgd2FudGVkID0+ICR3 YW50ZWQsIG5vX2NoZGlyID0+IDEgfSwgQEFSR1YpIGlmIEBBUkdWOwogCiAjIGNvbW1pdCBmaWxl IGxvY2F0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIHNvdXJjZSByb290CiBjaGRpciAiJHNvdXJj ZWRpci8uLi8uLi8uLiIgaWYgQGNvbW1pdHMgJiYgJHNvdXJjZWRpcjsKQEAgLTM5OSw3ICs1Mjgs OCBAQCBmb3JlYWNoIG15ICRjb21taXQgKEBjb21taXRzKQogCW15IEBhZmZlY3RlZCA9IGBnaXQg ZGlmZiAtLWRpZmYtZmlsdGVyPUFDTVIgLS1uYW1lLW9ubHkgJHByZXYgJGNvbW1pdGA7CiAJZGll ICJnaXQgZXJyb3IiIGlmICQ/OwogCWNob21wKEBhZmZlY3RlZCk7Ci0JcHVzaChAZmlsZXMsIEBh ZmZlY3RlZCk7CisJcHVzaChAZmlsZXMsIGdyZXAgeyBpc19jX2ZpbGUoJF8pIH0gQGFmZmVjdGVk KSBpZiAkZG9fYzsKKwlwdXNoKEBmaWxlcywgZ3JlcCB7IGlzX3BlcmxfZmlsZSgkXykgfSBAYWZm ZWN0ZWQpIGlmICRkb19wZXJsOwogfQogCiB3YXJuICJObyBmaWxlcyB0byBwcm9jZXNzIiB1bmxl c3MgQGZpbGVzOwpAQCAtNDE2LDUxICs1NDYsNDIgQEAgZm9yZWFjaCBteSAkc291cmNlX2ZpbGVu YW1lIChAZmlsZXMpCiAJbmV4dCBpZiAkcHJvY2Vzc2VkeyRzb3VyY2VfZmlsZW5hbWV9OwogCSRw cm9jZXNzZWR7JHNvdXJjZV9maWxlbmFtZX0gPSAxOwogCi0JIyBpZ25vcmUgYW55dGhpbmcgdGhh dCdzIG5vdCBhIC5jIG9yIC5oIGZpbGUKLQluZXh0IHVubGVzcyAkc291cmNlX2ZpbGVuYW1lID1+ IC9cLltjaF0kLzsKLQotCSMgZG9uJ3QgdHJ5IHRvIGluZGVudCBhIGZpbGUgdGhhdCBkb2Vzbid0 IGV4aXN0CisJIyBkb24ndCB0cnkgdG8gZm9ybWF0IGEgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QK IAl1bmxlc3MgKC1mICRzb3VyY2VfZmlsZW5hbWUpCiAJewogCQl3YXJuICJDb3VsZCBub3QgZmlu ZCAkc291cmNlX2ZpbGVuYW1lIjsKIAkJbmV4dDsKIAl9Ci0JIyBBdXRvbWF0aWNhbGx5IGlnbm9y ZSAuYyBhbmQgLmggZmlsZXMgdGhhdCBjb3JyZXNwb25kIHRvIGEgLnkgb3IgLmwKLQkjIGZpbGUu ICBpbmRlbnQgdGVuZHMgdG8gZ2V0IGJhZGx5IGNvbmZ1c2VkIGJ5IEJpc29uL2ZsZXggb3V0cHV0 LAotCSMgYW5kIHRoZXJlJ3Mgbm8gdmFsdWUgaW4gaW5kZW50aW5nIGRlcml2ZWQgZmlsZXMgYW55 d2F5LgotCW15ICRvdGhlcmZpbGUgPSAkc291cmNlX2ZpbGVuYW1lOwotCSRvdGhlcmZpbGUgPX4g cy9cLltjaF0kLy55LzsKLQluZXh0IGlmICRvdGhlcmZpbGUgbmUgJHNvdXJjZV9maWxlbmFtZSAm JiAtZiAkb3RoZXJmaWxlOwotCSRvdGhlcmZpbGUgPX4gcy9cLnkkLy5sLzsKLQluZXh0IGlmICRv dGhlcmZpbGUgbmUgJHNvdXJjZV9maWxlbmFtZSAmJiAtZiAkb3RoZXJmaWxlOwogCiAJbXkgJHNv dXJjZSA9IHJlYWRfc291cmNlKCRzb3VyY2VfZmlsZW5hbWUpOwotCW15ICRvcmlnX3NvdXJjZSA9 ICRzb3VyY2U7Ci0JbXkgJGVycm9yX21lc3NhZ2UgPSAnJzsKKwlteSAoJGZvcm1hdHRlZCwgJGZh aWx1cmUpOwogCi0JJHNvdXJjZSA9IHByZV9pbmRlbnQoJHNvdXJjZSk7CisJaWYgKCRzb3VyY2Vf ZmlsZW5hbWUgPX4gL1wuW2NoXSQvKQorCXsKKwkJKCRmb3JtYXR0ZWQsICRmYWlsdXJlKSA9IGZv cm1hdF9jKCRzb3VyY2UsICRzb3VyY2VfZmlsZW5hbWUpOworCX0KKwllbHNlCisJeworCQkoJGZv cm1hdHRlZCwgJGZhaWx1cmUpID0gZm9ybWF0X3BlcmwoJHNvdXJjZSwgJHNvdXJjZV9maWxlbmFt ZSk7CisJfQogCi0JJHNvdXJjZSA9IHJ1bl9pbmRlbnQoJHNvdXJjZSwgXCRlcnJvcl9tZXNzYWdl KTsKLQlpZiAoJHNvdXJjZSBlcSAiIikKKwlpZiAoJGZhaWx1cmUpCiAJewotCQlwcmludCBTVERF UlIgIkZhaWx1cmUgaW4gJHNvdXJjZV9maWxlbmFtZTogIiAuICRlcnJvcl9tZXNzYWdlIC4gIlxu IjsKIAkJJHN0YXR1cyA9IDM7CiAJCW5leHQ7CiAJfQogCi0JJHNvdXJjZSA9IHBvc3RfaW5kZW50 KCRzb3VyY2UpOwotCi0JaWYgKCRzb3VyY2UgbmUgJG9yaWdfc291cmNlKQorCWlmICgkZm9ybWF0 dGVkIG5lICRzb3VyY2UpCiAJewogCQlpZiAoISRkaWZmICYmICEkY2hlY2spCiAJCXsKLQkJCXdy aXRlX3NvdXJjZSgkc291cmNlLCAkc291cmNlX2ZpbGVuYW1lKTsKKwkJCXdyaXRlX3NvdXJjZSgk Zm9ybWF0dGVkLCAkc291cmNlX2ZpbGVuYW1lKTsKIAkJfQogCQllbHNlCiAJCXsKIAkJCWlmICgk ZGlmZikKIAkJCXsKLQkJCQlwcmludCBkaWZmKCRzb3VyY2UsICRzb3VyY2VfZmlsZW5hbWUpOwor CQkJCXByaW50IGRpZmYoJGZvcm1hdHRlZCwgJHNvdXJjZV9maWxlbmFtZSk7CiAJCQl9CiAKIAkJ CWlmICgkY2hlY2spCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdwZXJsdGlkeSBi L3NyYy90b29scy9wZ2luZGVudC9wZ3Blcmx0aWR5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQpp bmRleCA4NzgzOGQ2YmRlMy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3Bn cGVybHRpZHkKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0jIS9iaW4vc2gKLQotIyBz cmMvdG9vbHMvcGdpbmRlbnQvcGdwZXJsdGlkeQotCi1zZXQgLWUKLQotIyBzZXQgdGhpcyB0byBv dmVycmlkZSBkZWZhdWx0IHBlcmx0aWR5IHByb2dyYW06Ci1QRVJMVElEWT0ke1BFUkxUSURZOi1w ZXJsdGlkeX0KLQotUEVSTFRJRFlfVkVSU0lPTj0yMDIzMDMwOQotaWYgISAkUEVSTFRJRFkgLXYg fCBncmVwIC1xICRQRVJMVElEWV9WRVJTSU9OOyB0aGVuCi0JZWNobyAiWW91IGRvIG5vdCBhcHBl YXIgdG8gaGF2ZSAkUEVSTFRJRFkgdmVyc2lvbiAkUEVSTFRJRFlfVkVSU0lPTiBpbnN0YWxsZWQg b24geW91ciBzeXN0ZW0uIiA+JjIKLQlleGl0IDEKLWZpCi0KLS4gc3JjL3Rvb2xzL3BlcmxjaGVj ay9maW5kX3BlcmxfZmlsZXMKLQotZmluZF9wZXJsX2ZpbGVzICIkQCIgfCB4YXJncyAkUEVSTFRJ RFkgLS1wcm9maWxlPXNyYy90b29scy9wZ2luZGVudC9wZXJsdGlkeXJjCi0tIAoyLjUzLjAKCg== --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0004-pgindent-Use-git-ls-files-to-discover-files.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0004-pgindent-Use-git-ls-files-to-discover-files.patch RnJvbSBiYTI4YWNhYTY0YzMzZDhhOGFmZTEyYzkxYTc2ZjVkZDViNTc0ODNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDMgTWFyIDIwMjYgMDk6NDM6MzMgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy IDQvN10gcGdpbmRlbnQ6IFVzZSBnaXQgbHMtZmlsZXMgdG8gZGlzY292ZXIgZmlsZXMKCi0tLQog c3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50IHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudCBiL3NyYy90 b29scy9wZ2luZGVudC9wZ2luZGVudAppbmRleCBmOGFjOWM4MjY4Yi4uOTgzZmUwYjFkNGYgMTAw NzU1Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudAorKysgYi9zcmMvdG9vbHMvcGdp bmRlbnQvcGdpbmRlbnQKQEAgLTEzLDcgKzEzLDYgQEAgdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5n cyBGQVRBTCA9PiAnYWxsJzsKIAogdXNlIEN3ZCBxdyhhYnNfcGF0aCBnZXRjd2QpOwotdXNlIEZp bGU6OkZpbmQ7CiB1c2UgRmlsZTo6U3BlYzsKIHVzZSBGaWxlOjpUZW1wOwogdXNlIElPOjpIYW5k bGU7CkBAIC01MDAsMjMgKzQ5OSw1NiBAQCBzdWIgaXNfcGVybF9maWxlCiAJcmV0dXJuICRmaWxl X291dCA9fiAvOi4qcGVybFswLTldKlxiL2k7CiB9CiAKLW15ICR3YW50ZWQgPSBzdWIgewotCW15 ICgkZGV2LCAkaW5vLCAkbW9kZSwgJG5saW5rLCAkdWlkLCAkZ2lkKTsKLQkoKCRkZXYsICRpbm8s ICRtb2RlLCAkbmxpbmssICR1aWQsICRnaWQpID0gbHN0YXQoJF8pKQotCSAgJiYgLWYgXwotCSAg fHwgcmV0dXJuOwotCWlmICgkZG9fYyAmJiBpc19jX2ZpbGUoJEZpbGU6OkZpbmQ6Om5hbWUpKQor c3ViIGRpc2NvdmVyX2ZpbGVzCit7CisJbXkgQHBhdGhzID0gQF87CisJbXkgQGRpc2NvdmVyZWQ7 CisKKwkjIFNlcGFyYXRlIGluZGl2aWR1YWwgZmlsZXMgZnJvbSBkaXJlY3RvcmllcworCW15IEBk aXJzOworCWZvcmVhY2ggbXkgJHBhdGggKEBwYXRocykKIAl7Ci0JCXB1c2goQGZpbGVzLCAkRmls ZTo6RmluZDo6bmFtZSk7CisJCWlmICgtZiAkcGF0aCkKKwkJeworCQkJcHVzaChAZGlzY292ZXJl ZCwgJHBhdGgpOworCQl9CisJCWVsc2lmICgtZCAkcGF0aCkKKwkJeworCQkJcHVzaChAZGlycywg JHBhdGgpOworCQl9CisJCWVsc2UKKwkJeworCQkJd2FybiAiQ291bGQgbm90IGZpbmQgJHBhdGgi OworCQl9CiAJfQotCWVsc2lmICgkZG9fcGVybCAmJiBpc19wZXJsX2ZpbGUoJEZpbGU6OkZpbmQ6 Om5hbWUpKQorCisJIyBVc2UgZ2l0IGxzLWZpbGVzIGZvciBkaXJlY3RvcmllcyB0byBhdm9pZCBz ZWFyY2hpbmcgYnVpbGQgdHJlZXMgZXRjLgorCWlmIChAZGlycykKIAl7Ci0JCXB1c2goQGZpbGVz LCAkRmlsZTo6RmluZDo6bmFtZSk7CisJCW15IEBnaXRfZmlsZXMgPSBgZ2l0IGxzLWZpbGVzIC0t IEBkaXJzYDsKKwkJZGllICJnaXQgbHMtZmlsZXMgZXJyb3IiIGlmICQ/OworCQljaG9tcChAZ2l0 X2ZpbGVzKTsKKwkJcHVzaChAZGlzY292ZXJlZCwgQGdpdF9maWxlcyk7CiAJfQotfTsKKworCXJl dHVybiBAZGlzY292ZXJlZDsKK30KIAogIyBhbnkgbm9uLW9wdGlvbiBhcmd1bWVudHMgYXJlIGZp bGVzIG9yIGRpcmVjdG9yaWVzIHRvIGJlIHByb2Nlc3NlZAotRmlsZTo6RmluZDo6ZmluZCh7IHdh bnRlZCA9PiAkd2FudGVkLCBub19jaGRpciA9PiAxIH0sIEBBUkdWKSBpZiBAQVJHVjsKK2lmIChA QVJHVikKK3sKKwlmb3JlYWNoIG15ICRmIChkaXNjb3Zlcl9maWxlcyhAQVJHVikpCisJeworCQlp ZiAoJGRvX2MgJiYgaXNfY19maWxlKCRmKSkKKwkJeworCQkJcHVzaChAZmlsZXMsICRmKTsKKwkJ fQorCQllbHNpZiAoJGRvX3BlcmwgJiYgaXNfcGVybF9maWxlKCRmKSkKKwkJeworCQkJcHVzaChA ZmlsZXMsICRmKTsKKwkJfQorCX0KK30KIAogIyBjb21taXQgZmlsZSBsb2NhdGlvbnMgYXJlIHJl bGF0aXZlIHRvIHRoZSBzb3VyY2Ugcm9vdAogY2hkaXIgIiRzb3VyY2VkaXIvLi4vLi4vLi4iIGlm IEBjb21taXRzICYmICRzb3VyY2VkaXI7Ci0tIAoyLjUzLjAKCg== --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0005-pgindent-Default-to-indenting-the-current-directo.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0005-pgindent-Default-to-indenting-the-current-directo.patch RnJvbSBkOWU0MWMyOTMxMzQwYTc2MzJiMzVlMDM2OWI4YWE2MWE3ZGI4YTdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDMgTWFyIDIwMjYgMjA6NTY6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy IDUvN10gcGdpbmRlbnQ6IERlZmF1bHQgdG8gaW5kZW50aW5nIHRoZSBjdXJyZW50IGRpcmVjdG9y eQogaWYgbm8gZmlsZXMgYXJlIGdpdmVuCgpQcmV2aW91c2x5IHJ1bm5pbmcgcGdpbmRlbnQgd2l0 aG91dCBnaXZpbmcgaXQgYW55IGZpbGVzIHdvdWxkIHJlc3VsdCBpbgp0aGlzIG91dHB1dDoKCnNy Yy90b29scy9wZ2luZGVudC9wZ2luZGVudApObyBmaWxlcyB0byBwcm9jZXNzIGF0IHNyYy90b29s cy9wZ2luZGVudC9wZ2luZGVudCBsaW5lIDUyNi4KClRoaXMgaW5zdGVhZCBpbmRlbnRzIHRoZSBj dXJyZW50IGRpcmVjdG9yeSwgd2hpY2ggaXMgcHJvYmFibHkgd2hhdCB0aGUKdXNlciBpbnRlbmRl ZC4KLS0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgfCAzICsrKwogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC9wZ2lu ZGVudCBiL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudAppbmRleCA5ODNmZTBiMWQ0Zi4uZjBh ODdjNjhkOTcgMTAwNzU1Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKQEAgLTY3LDYgKzY3LDkgQEAgdXNhZ2UoKSBpZiAk aGVscDsKIHVzYWdlKCJDYW5ub3QgdXNlIC0tY29tbWl0IHdpdGggY29tbWFuZCBsaW5lIGZpbGUg bGlzdCIpCiAgIGlmIChAY29tbWl0cyAmJiBAQVJHVik7CiAKKyMgZGVmYXVsdCB0byBjdXJyZW50 IGRpcmVjdG9yeSBpZiBubyBmaWxlcy9kaXJzIGdpdmVuCitAQVJHViA9ICgnLicpIHVubGVzcyBA QVJHViB8fCBAY29tbWl0czsKKwogIyBjb21tYW5kIGxpbmUgb3B0aW9uIHdpbnMsIHRoZW4gZW52 aXJvbm1lbnQsIHRoZW4gbG9jYXRpb25zIGJhc2VkIG9uIGN1cnJlbnQKICMgZGlyLCB0aGVuIGRl ZmF1bHQgbG9jYXRpb24KICR0eXBlZGVmc19maWxlIHx8PSAkRU5We1BHVFlQRURFRlN9OwotLSAK Mi41My4wCgo= --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0006-pgindent-Add-easy-way-of-getting-perltidy.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0006-pgindent-Add-easy-way-of-getting-perltidy.patch RnJvbSBkZWFhZDYzMWQwYjk5OTcwYTIwNzQzNTcxNDAzZWFmZDBmZDhkMTVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBXZWQsIDQgTWFyIDIwMjYgMDk6MDQ6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy IDYvN10gcGdpbmRlbnQ6IEFkZCBlYXN5IHdheSBvZiBnZXR0aW5nIHBlcmx0aWR5CgpXZSBuZWVk IGEgdmVyeSBzcGVjaWZpYyBwZXJsdGlkeSB2ZXJzaW9uLCBidXQgZ2V0dGluZyB0aGF0IGluc3Rh bGxlZCBpcwpxdWl0ZSBhIGhhc3NsZS4gRXNwZWNpYWxseSBmb3IgcGVvcGxlIHdobyBkb24ndCB1 c2UgcGVybCBvbiBhIGRhaWx5CmJhc2lzLiBUaGlzIGFkZHMgYSBzbWFsbCBzY3JpcHQgdG8gZG93 bmxvYWQgdGhlIGV4YWN0IHBlcmx0aWR5IHZlcnNpb24KdGhhdCB3ZSBuZWVkLgotLS0KIHNyYy90 b29scy9wZ2luZGVudC8uZ2l0aWdub3JlICAgfCAgMSArCiBzcmMvdG9vbHMvcGdpbmRlbnQvUkVB RE1FICAgICAgIHwgMTYgKysrKy0tLS0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvZ2V0X3Blcmx0aWR5 IHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRl bnQvcGdpbmRlbnQgICAgIHwgMzAgKysrKysrKysrKysrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCA5 NiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv dG9vbHMvcGdpbmRlbnQvLmdpdGlnbm9yZQogY3JlYXRlIG1vZGUgMTAwNzU1IHNyYy90b29scy9w Z2luZGVudC9nZXRfcGVybHRpZHkKCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvLmdp dGlnbm9yZSBiL3NyYy90b29scy9wZ2luZGVudC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNDk3MjE3MTEzYgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC8uZ2l0aWdub3JlCkBAIC0wLDAgKzEgQEAKKy9wZXJsdGlkeS8KZGlm ZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC9SRUFETUUgYi9zcmMvdG9vbHMvcGdpbmRlbnQv UkVBRE1FCmluZGV4IDJlMzE0NzFkN2U2Li4yNjQwMzhlN2UwOSAxMDA2NDQKLS0tIGEvc3JjL3Rv b2xzL3BnaW5kZW50L1JFQURNRQorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvUkVBRE1FCkBAIC0x NywxNCArMTcsMTQgQEAgUFJFUkVRVUlTSVRFUzoKIAogMikgSW5zdGFsbCBwZXJsdGlkeS4gIFBs ZWFzZSBiZSBzdXJlIGl0IGlzIHZlcnNpb24gMjAyMzAzMDkgKG9sZGVyIGFuZCBuZXdlcgogICAg dmVyc2lvbnMgbWFrZSBkaWZmZXJlbnQgZm9ybWF0dGluZyBjaG9pY2VzLCBhbmQgd2Ugd2FudCBj b25zaXN0ZW5jeSkuCi0gICBZb3UgY2FuIGdldCB0aGUgY29ycmVjdCB2ZXJzaW9uIGZyb20KLSAg IGh0dHBzOi8vY3Bhbi5tZXRhY3Bhbi5vcmcvYXV0aG9ycy9pZC9TL1NIL1NIQU5DT0NLLwotICAg VG8gaW5zdGFsbCwgZm9sbG93IHRoZSB1c3VhbCBpbnN0YWxsIHByb2Nlc3MgZm9yIGEgUGVybCBt b2R1bGUKLSAgICgibWFuIHBlcmxtb2RpbnN0YWxsIiBleHBsYWlucyBpdCkuICBPciwgaWYgeW91 IGhhdmUgY3BhbiBpbnN0YWxsZWQsCi0gICB0aGlzIHNob3VsZCB3b3JrOgotICAgY3BhbiBTSEFO Q09DSy9QZXJsLVRpZHktMjAyMzAzMDkudGFyLmd6Ci0gICBPciBpZiB5b3UgaGF2ZSBjcGFubSBp bnN0YWxsZWQsIHlvdSBjYW4ganVzdCB1c2U6Ci0gICBjcGFubSBodHRwczovL2NwYW4ubWV0YWNw YW4ub3JnL2F1dGhvcnMvaWQvUy9TSC9TSEFOQ09DSy9QZXJsLVRpZHktMjAyMzAzMDkudGFyLmd6 CisKKyAgIFRoZSBlYXNpZXN0IHdheSBpcyB0byB1c2UgdGhlIGdldF9wZXJsdGlkeSBzY3JpcHQs IHdoaWNoIGRvd25sb2FkcywKKyAgIHZlcmlmaWVzLCBhbmQgaW5zdGFsbHMgdGhlIGNvcnJlY3Qg dmVyc2lvbiBpbnRvIHRoZSBzb3VyY2UgdHJlZToKKworCXNyYy90b29scy9wZ2luZGVudC9nZXRf cGVybHRpZHkKKworICAgVGhpcyBpbnN0YWxscyBwZXJsdGlkeSBpbnRvIHNyYy90b29scy9wZ2lu ZGVudC9wZXJsdGlkeS8sIHdoaWNoCisgICBwZ2luZGVudCB3aWxsIGZpbmQgYXV0b21hdGljYWxs eS4KIAogCiBET0lORyBUSEUgSU5ERU5UIFJVTiBCRUZPUkUgQSBOT1JNQUwgQ09NTUlUOgpkaWZm IC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L2dldF9wZXJsdGlkeSBiL3NyYy90b29scy9wZ2lu ZGVudC9nZXRfcGVybHRpZHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAu LjA5Y2U0YTE5NWNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L2dldF9w ZXJsdGlkeQpAQCAtMCwwICsxLDYyIEBACisjIS9iaW4vc2gKKworIyBzcmMvdG9vbHMvcGdpbmRl bnQvZ2V0X3Blcmx0aWR5CisjCisjIERvd25sb2FkcyBhbmQgaW5zdGFsbHMgcGVybHRpZHkgMjAy MzAzMDkgaW50byBzcmMvdG9vbHMvcGdpbmRlbnQvcGVybHRpZHkvLgorCitzZXQgLWUKKworUEVS TFRJRFlfVkVSU0lPTj0yMDIzMDMwOQorUEVSTFRJRFlfVEFSQkFMTD0iUGVybC1UaWR5LSR7UEVS TFRJRFlfVkVSU0lPTn0udGFyLmd6IgorUEVSTFRJRFlfVVJMPSJodHRwczovL2NwYW4ubWV0YWNw YW4ub3JnL2F1dGhvcnMvaWQvUy9TSC9TSEFOQ09DSy8ke1BFUkxUSURZX1RBUkJBTEx9IgorUEVS TFRJRFlfU0hBMjU2PSJlMjI5NDlhMjA4YzYxOGQ2NzFhMThjNTgyOWI0NTFhYmJlOWRhMGRhMmNk ZGQ3OGZkYmZjYjAzNmM3MzYxYzE4IgorCisjIERldGVybWluZSB0aGUgZGlyZWN0b3J5IHRoaXMg c2NyaXB0IGxpdmVzIGluLCBpLmUuIHNyYy90b29scy9wZ2luZGVudAorU0NSSVBUX0RJUj0kKGNk ICIkKGRpcm5hbWUgIiQwIikiICYmIHB3ZCkKKworUEVSTFRJRFlfRElSPSIkU0NSSVBUX0RJUi9w ZXJsdGlkeSIKK1BFUkxUSURZX0JJTj0iJFBFUkxUSURZX0RJUi9iaW4vcGVybHRpZHkiCisKKyMg Q2hlY2sgaWYgYWxyZWFkeSBpbnN0YWxsZWQgd2l0aCB0aGUgY29ycmVjdCB2ZXJzaW9uCitpZiBb IC14ICIkUEVSTFRJRFlfQklOIiBdOyB0aGVuCisJcGVybHRpZHlfbGliPSIkUEVSTFRJRFlfRElS L2xpYi9wZXJsNSIKKwlpbnN0YWxsZWRfdmVyc2lvbj0kKFBFUkw1TElCPSIkcGVybHRpZHlfbGli JHtQRVJMNUxJQjorOiRQRVJMNUxJQn0iICIkUEVSTFRJRFlfQklOIiAtdiAyPi9kZXYvbnVsbCB8 fCB0cnVlKQorCWlmIGVjaG8gIiRpbnN0YWxsZWRfdmVyc2lvbiIgfCBncmVwIC1xICIkUEVSTFRJ RFlfVkVSU0lPTiI7IHRoZW4KKwkJZWNobyAicGVybHRpZHkgJFBFUkxUSURZX1ZFUlNJT04gaXMg YWxyZWFkeSBpbnN0YWxsZWQgaW4gJFBFUkxUSURZX0RJUiIKKwkJZXhpdCAwCisJZmkKK2ZpCisK K1dPUktfRElSPSQobWt0ZW1wIC1kKQordHJhcCAncm0gLXJmICIkV09SS19ESVIiJyBFWElUCisK KyMgRG93bmxvYWQKK1RBUkJBTEw9IiRXT1JLX0RJUi8kUEVSTFRJRFlfVEFSQkFMTCIKK2lmIGNv bW1hbmQgLXYgY3VybCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKwljdXJsIC1zU0wgLW8gIiRUQVJC QUxMIiAiJFBFUkxUSURZX1VSTCIKK2VsaWYgY29tbWFuZCAtdiB3Z2V0ID4vZGV2L251bGwgMj4m MTsgdGhlbgorCXdnZXQgLXEgLU8gIiRUQVJCQUxMIiAiJFBFUkxUSURZX1VSTCIKK2Vsc2UKKwll Y2hvICJlcnJvcjogbmVpdGhlciBjdXJsIG5vciB3Z2V0IGZvdW5kIiA+JjIKKwlleGl0IDEKK2Zp CisKKyMgVmVyaWZ5IFNIQTI1NgoraWYgY29tbWFuZCAtdiBzaGEyNTZzdW0gPi9kZXYvbnVsbCAy PiYxOyB0aGVuCisJZWNobyAiJFBFUkxUSURZX1NIQTI1NiAgJFRBUkJBTEwiIHwgc2hhMjU2c3Vt IC1jIC0gPi9kZXYvbnVsbAorZWxpZiBjb21tYW5kIC12IHNoYXN1bSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKwllY2hvICIkUEVSTFRJRFlfU0hBMjU2ICAkVEFSQkFMTCIgfCBzaGFzdW0gLWEgMjU2 IC1jIC0gPi9kZXYvbnVsbAorZWxzZQorCWVjaG8gImVycm9yOiBuZWl0aGVyIHNoYTI1NnN1bSBu b3Igc2hhc3VtIGZvdW5kIiA+JjIKKwlleGl0IDEKK2ZpCisKKyMgRXh0cmFjdCwgYnVpbGQsIGlu c3RhbGwKK2NkICIkV09SS19ESVIiCit0YXIgeHpmICIkVEFSQkFMTCIKK2NkICJQZXJsLVRpZHkt JHtQRVJMVElEWV9WRVJTSU9OfSIKK3BlcmwgTWFrZWZpbGUuUEwgSU5TVEFMTF9CQVNFPSIkUEVS TFRJRFlfRElSIiA+L2Rldi9udWxsCittYWtlID4vZGV2L251bGwKK21ha2UgaW5zdGFsbCA+L2Rl di9udWxsCisKK2VjaG8gInBlcmx0aWR5ICRQRVJMVElEWV9WRVJTSU9OIGluc3RhbGxlZCBpbiAk UEVSTFRJRFlfRElSIgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50IGIv c3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50CmluZGV4IGYwYTg3YzY4ZDk3Li5kOTA2YzAwMDU5 ZiAxMDA3NTUKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50CisrKyBiL3NyYy90b29s cy9wZ2luZGVudC9wZ2luZGVudApAQCAtNzQsMTQgKzc0LDM0IEBAIHVzYWdlKCJDYW5ub3QgdXNl IC0tY29tbWl0IHdpdGggY29tbWFuZCBsaW5lIGZpbGUgbGlzdCIpCiAjIGRpciwgdGhlbiBkZWZh dWx0IGxvY2F0aW9uCiAkdHlwZWRlZnNfZmlsZSB8fD0gJEVOVntQR1RZUEVERUZTfTsKIAotIyBn ZXQgcGVybHRpZHkgbG9jYXRpb246IGNvbW1hbmQgbGluZSB3aW5zLCB0aGVuIGVudmlyb25tZW50 LCB0aGVuIGRlZmF1bHQuCi0jIC0tcGVybHRpZHkgKHdpdGggb3Igd2l0aG91dCBhIHBhdGgpIGFu ZCAtLXBlcmwtb25seSBhbGwgaW1wbHkgcGVybHRpZHkgaXMKLSMgd2FudGVkLCBmYWxsaW5nIGJh Y2sgdG8gdGhlIFBFUkxUSURZIGVudiB2YXIsIHRoZW4gInBlcmx0aWR5IiBpbiBQQVRILgotbXkg JHBlcmx0aWR5ID0gJHBlcmx0aWR5X2FyZyB8fCAkRU5We1BFUkxUSURZfQotICB8fCAoZGVmaW5l ZCgkcGVybHRpZHlfYXJnKSB8fCAkcGVybF9vbmx5ID8gInBlcmx0aWR5IiA6IHVuZGVmKTsKKyMg Z2V0IHBlcmx0aWR5IGxvY2F0aW9uOiBjb21tYW5kIGxpbmUgd2lucywgdGhlbiBlbnZpcm9ubWVu dCwgdGhlbiB0cnkgdG8KKyMgZmluZCBhIGdldF9wZXJsdGlkeS1pbnN0YWxsZWQgY29weSBpbiB0 aGUgc291cmNlIHRyZWUsIHRoZW4gZmFsbCBiYWNrIHRvCisjIFBBVEguICAtLXBlcmx0aWR5ICh3 aXRoIG9yIHdpdGhvdXQgYSBwYXRoKSBhbmQgLS1wZXJsLW9ubHkgYWxsIGltcGx5CisjIHBlcmx0 aWR5IGlzIHdhbnRlZC4KK215ICRwZXJsdGlkeSA9ICRwZXJsdGlkeV9hcmcgfHwgJEVOVntQRVJM VElEWX07CiAKIG15ICRzb3VyY2VkaXIgPSBsb2NhdGVfc291cmNlZGlyKCk7CiAKK2lmICghJHBl cmx0aWR5ICYmIChkZWZpbmVkKCRwZXJsdGlkeV9hcmcpIHx8ICRwZXJsX29ubHkpICYmICRzb3Vy Y2VkaXIpCit7CisJIyBMb29rIGZvciBhIGdldF9wZXJsdGlkeS1pbnN0YWxsZWQgcGVybHRpZHkg aW4gdGhlIHNvdXJjZSB0cmVlLgorCW15ICRjYW5kaWRhdGUgPSAiJHNvdXJjZWRpci9wZXJsdGlk eS9iaW4vcGVybHRpZHkiOworCWlmICgteCAkY2FuZGlkYXRlKQorCXsKKwkJJHBlcmx0aWR5ID0g JGNhbmRpZGF0ZTsKKworCQkjIExvY2FsIGluc3RhbGxzIG5lZWQgUEVSTDVMSUIgc2V0IHNvIHBl cmx0aWR5IGNhbiBmaW5kIGl0cworCQkjIG1vZHVsZXMuCisJCW15ICRsaWJkaXIgPSAiJHNvdXJj ZWRpci9wZXJsdGlkeS9saWIvcGVybDUiOworCQlpZiAoLWQgJGxpYmRpcikKKwkJeworCQkJJEVO VntQRVJMNUxJQn0gPQorCQkJICAkRU5We1BFUkw1TElCfSA/ICIkbGliZGlyOiRFTlZ7UEVSTDVM SUJ9IiA6ICRsaWJkaXI7CisJCX0KKwl9Cit9CiskcGVybHRpZHkgfHw9IChkZWZpbmVkKCRwZXJs dGlkeV9hcmcpIHx8ICRwZXJsX29ubHkgPyAicGVybHRpZHkiIDogdW5kZWYpOworCiAjIGdldCBp bmRlbnQgbG9jYXRpb246IGNvbW1hbmQgbGluZSB3aW5zLCB0aGVuIGVudmlyb25tZW50LCB0aGVu IHRyeSB0byBmaW5kCiAjIGEgY29tcGlsZWQgcGdfYnNkX2luZGVudCBpbiB0aGUgc291cmNlIHRy ZWUsIHRoZW4gZmFsbCBiYWNrIHRvIFBBVEguCiAkaW5kZW50IHx8PSAkRU5We1BHSU5ERU5UfSB8 fCAkRU5We0lOREVOVH07Ci0tIAoyLjUzLjAKCg== --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0007-pgindent-Allow-parallel-pgindent-runs.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0007-pgindent-Allow-parallel-pgindent-runs.patch RnJvbSA3M2Q1YTI2NDdlMTliNDUxYWQyNWY4ZWFhM2RhNWMwNGIzMGI4MjFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBXZWQsIDQgTWFyIDIwMjYgMDk6MjQ6MjQgKzAxMDAKU3ViamVjdDogW1BBVENIIHYy IDcvN10gcGdpbmRlbnQ6IEFsbG93IHBhcmFsbGVsIHBnaW5kZW50IHJ1bnMKClJ1bm5pbmcgcGdp bmRlbnQgb24gdGhlIHdob2xlIHNvdXJjZSB0cmVlIGNhbiB0YWtlIGEgd2hpbGUsIGVzcGVjaWFs bHkKd2hlbiBhbHNvIGhhdmluZyBpdCBydW4gcGVybHRpZHkgb24gcGVybCBmaWxlcy4gVGhpcyBh ZGRzIHN1cHBvcnQgZm9yCnBnaW5kZW50IHRvIGluZGVudCBmaWxlcyBpbiBwYXJhbGxlbC4gVGhp cyBzcGVlZHMgdXAgYSBmdWxsIHBnaW5kZW50IHJ1bgpmcm9tIG1vcmUgdGhhbiBhIG1pbnV0ZSBv biBteSBtYWNoaW5lIHRvIH43IHNlY29uZHMuCi0tLQogc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5k ZW50IHwgMTEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy90b29scy9wZ2luZGVudC9wZ2luZGVudCBiL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudApp bmRleCBkOTA2YzAwMDU5Zi4uZDI4NmJiYTM3NTAgMTAwNzU1Ci0tLSBhL3NyYy90b29scy9wZ2lu ZGVudC9wZ2luZGVudAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKQEAgLTE3LDYg KzE3LDggQEAgdXNlIEZpbGU6OlNwZWM7CiB1c2UgRmlsZTo6VGVtcDsKIHVzZSBJTzo6SGFuZGxl OwogdXNlIEdldG9wdDo6TG9uZzsKK3VzZSBGY250bCBxdyg6ZmxvY2spOwordXNlIFBPU0lYIHF3 KDpzeXNfd2FpdF9oKTsKIAogIyBFbnN1cmUgU0lHSU5UIHRyaWdnZXJzIGEgY2xlYW4gZXhpdCBz byBGaWxlOjpUZW1wIGNhbiByZW1vdmUgdGVtcCBmaWxlcy4KICRTSUd7SU5UfSA9IHN1YiB7IGV4 aXQgMTMwOyB9OwpAQCAtMzAsMTAgKzMyLDEyIEBAIG15ICRpbmRlbnRfb3B0cyA9CiAKIG15ICRk ZXZudWxsID0gRmlsZTo6U3BlYy0+ZGV2bnVsbDsKIAotbXkgKCR0eXBlZGVmc19maWxlLCAkdHlw ZWRlZl9zdHIsIEBleGNsdWRlcywgJGluZGVudCwgJGRpZmYsCi0JJGNoZWNrLCAkaGVscCwgQGNv bW1pdHMsICRwZXJsdGlkeV9hcmcsICRwZXJsX29ubHksKTsKK215ICgkdHlwZWRlZnNfZmlsZSwg JHR5cGVkZWZfc3RyLCBAZXhjbHVkZXMsICRpbmRlbnQsCisJJGRpZmYsICRjaGVjaywgJGhlbHAs IEBjb21taXRzLAorCSRwZXJsdGlkeV9hcmcsICRwZXJsX29ubHksICRqb2JzLCk7CiAKICRoZWxw ID0gMDsKKyRqb2JzID0gMDsKIAogIyBTYXZlIEBBUkdWIGJlZm9yZSBwYXJzaW5nIHNvIHdlIGNh biBkaXN0aW5ndWlzaCAtLXBlcmx0aWR5PVBBVEggKHdoZXJlCiAjIHRoZSB2YWx1ZSBzaG91bGQg YmUgdXNlZCBhcyB0aGUgcGVybHRpZHkgcGF0aCkgZnJvbSAtLXBlcmx0aWR5IFBBVEgKQEAgLTUw LDcgKzU0LDggQEAgbXkgJW9wdGlvbnMgPSAoCiAJInBlcmx0aWR5OnMiID0+IFwkcGVybHRpZHlf YXJnLAogCSJwZXJsLW9ubHkiID0+IFwkcGVybF9vbmx5LAogCSJkaWZmIiA9PiBcJGRpZmYsCi0J ImNoZWNrIiA9PiBcJGNoZWNrLCk7CisJImNoZWNrIiA9PiBcJGNoZWNrLAorCSJqb2JzfGo9aSIg PT4gXCRqb2JzLCk7CiBHZXRPcHRpb25zKCVvcHRpb25zKSB8fCB1c2FnZSgiYmFkIGNvbW1hbmQg bGluZSBhcmd1bWVudCIpOwogCiBpZiAoZGVmaW5lZCgkcGVybHRpZHlfYXJnKSAmJiAkcGVybHRp ZHlfYXJnIG5lICcnKQpAQCAtNjIsNiArNjcsMjcgQEAgaWYgKGRlZmluZWQoJHBlcmx0aWR5X2Fy ZykgJiYgJHBlcmx0aWR5X2FyZyBuZSAnJykKIAl9CiB9CiAKK3N1YiBnZXRfbnVtX2NwdXMKK3sK KwkjIFRyeSBucHJvYyAoTGludXgsIHNvbWUgQlNEcyksIHRoZW4gc3lzY3RsIChtYWNPUywgRnJl ZUJTRCkuCisJZm9yIG15ICRjbWQgKCducHJvYycsICdzeXNjdGwgLW4gaHcubmNwdScpCisJewor CQlteSAkbiA9IGAkY21kIDI+JGRldm51bGxgOworCQljaG9tcCAkbjsKKwkJcmV0dXJuICRuICsg MCBpZiAoJD8gPT0gMCAmJiAkbiA9fiAvXlxkKyQvICYmICRuID4gMCk7CisJfQorCXJldHVybiAx OworfQorCitpZiAoJGpvYnMgPT0gMCkKK3sKKwkkam9icyA9IGdldF9udW1fY3B1cygpOworfQor ZWxzaWYgKCRqb2JzIDwgMCkKK3sKKwl1c2FnZSgiLS1qb2JzIG11c3QgYmUgYSBub24tbmVnYXRp dmUgbnVtYmVyIik7Cit9CisKIHVzYWdlKCkgaWYgJGhlbHA7CiAKIHVzYWdlKCJDYW5ub3QgdXNl IC0tY29tbWl0IHdpdGggY29tbWFuZCBsaW5lIGZpbGUgbGlzdCIpCkBAIC00NjUsNiArNDkxLDcg QEAgT3B0aW9uczoKIAktLXBlcmwtb25seSAgICAgICAgICAgICBmb3JtYXQgb25seSBQZXJsIGZp bGVzLCBza2lwIEMgZm9ybWF0dGluZwogCS0tZGlmZiAgICAgICAgICAgICAgICAgIHNob3cgdGhl IGNoYW5nZXMgdGhhdCB3b3VsZCBiZSBtYWRlCiAJLS1jaGVjayAgICAgICAgICAgICAgICAgZXhp dCB3aXRoIHN0YXR1cyAyIGlmIGFueSBjaGFuZ2VzIHdvdWxkIGJlIG1hZGUKKwktLWpvYnM9Tiwg LWogTiAgICAgICAgICBudW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyAoMCA9IG51bSBDUFVzLCBk ZWZhdWx0IDApCiBUaGUgLS1leGNsdWRlcyBhbmQgLS1jb21taXQgb3B0aW9ucyBjYW4gYmUgZ2l2 ZW4gbW9yZSB0aGFuIG9uY2UuCiBFT0YKIAlpZiAoJGhlbHApCkBAIC01OTIsMjAgKzYxOSwxOCBA QCB3YXJuICJObyBmaWxlcyB0byBwcm9jZXNzIiB1bmxlc3MgQGZpbGVzOwogIyByZW1vdmUgZXhj bHVkZWQgZmlsZXMgZnJvbSB0aGUgZmlsZSBsaXN0CiBwcm9jZXNzX2V4Y2x1ZGUoKTsKIAotbXkg JXByb2Nlc3NlZDsKLW15ICRzdGF0dXMgPSAwOworIyBVc2VkIGJ5IGZvcmtlZCBjaGlsZHJlbiB0 byBzZXJpYWxpemUgZGlmZiBvdXRwdXQgdG8gU1RET1VUIHZpYSBmbG9jaygpLgorbXkgJHN0ZG91 dF9sb2NrX2ZoID0gbmV3IEZpbGU6OlRlbXAoVEVNUExBVEUgPT4gInBnbG9ja1hYWFhYIik7CiAK LWZvcmVhY2ggbXkgJHNvdXJjZV9maWxlbmFtZSAoQGZpbGVzKQorc3ViIHByb2Nlc3NfZmlsZQog ewotCSMgc2tpcCBkdXBsaWNhdGVzCi0JbmV4dCBpZiAkcHJvY2Vzc2VkeyRzb3VyY2VfZmlsZW5h bWV9OwotCSRwcm9jZXNzZWR7JHNvdXJjZV9maWxlbmFtZX0gPSAxOworCW15ICRzb3VyY2VfZmls ZW5hbWUgPSBzaGlmdDsKIAogCSMgZG9uJ3QgdHJ5IHRvIGZvcm1hdCBhIGZpbGUgdGhhdCBkb2Vz bid0IGV4aXN0CiAJdW5sZXNzICgtZiAkc291cmNlX2ZpbGVuYW1lKQogCXsKIAkJd2FybiAiQ291 bGQgbm90IGZpbmQgJHNvdXJjZV9maWxlbmFtZSI7Ci0JCW5leHQ7CisJCXJldHVybiAwOwogCX0K IAogCW15ICRzb3VyY2UgPSByZWFkX3NvdXJjZSgkc291cmNlX2ZpbGVuYW1lKTsKQEAgLTYyMCwx MSArNjQ1LDcgQEAgZm9yZWFjaCBteSAkc291cmNlX2ZpbGVuYW1lIChAZmlsZXMpCiAJCSgkZm9y bWF0dGVkLCAkZmFpbHVyZSkgPSBmb3JtYXRfcGVybCgkc291cmNlLCAkc291cmNlX2ZpbGVuYW1l KTsKIAl9CiAKLQlpZiAoJGZhaWx1cmUpCi0JewotCQkkc3RhdHVzID0gMzsKLQkJbmV4dDsKLQl9 CisJcmV0dXJuIDMgaWYgJGZhaWx1cmU7CiAKIAlpZiAoJGZvcm1hdHRlZCBuZSAkc291cmNlKQog CXsKQEAgLTYzNiwxNCArNjU3LDY3IEBAIGZvcmVhY2ggbXkgJHNvdXJjZV9maWxlbmFtZSAoQGZp bGVzKQogCQl7CiAJCQlpZiAoJGRpZmYpCiAJCQl7Ci0JCQkJcHJpbnQgZGlmZigkZm9ybWF0dGVk LCAkc291cmNlX2ZpbGVuYW1lKTsKKwkJCQlteSAkb3V0cHV0ID0gZGlmZigkZm9ybWF0dGVkLCAk c291cmNlX2ZpbGVuYW1lKTsKKwkJCQlmbG9jaygkc3Rkb3V0X2xvY2tfZmgsIExPQ0tfRVgpOwor CQkJCXByaW50ICRvdXRwdXQ7CisJCQkJU1RET1VULT5mbHVzaCgpOworCQkJCWZsb2NrKCRzdGRv dXRfbG9ja19maCwgTE9DS19VTik7CiAJCQl9CiAKLQkJCWlmICgkY2hlY2spCisJCQlyZXR1cm4g MiBpZiAkY2hlY2s7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworIyBkZWR1cGxpY2F0ZSBm aWxlIGxpc3QKK215ICVzZWVuOworQGZpbGVzID0gZ3JlcCB7ICEkc2VlbnskX30rKyB9IEBmaWxl czsKKworbXkgJHN0YXR1cyA9IDA7CisKK2lmICgkam9icyA8PSAxKQoreworCWZvcmVhY2ggbXkg JHNvdXJjZV9maWxlbmFtZSAoQGZpbGVzKQorCXsKKwkJbXkgJGZpbGVfc3RhdHVzID0gcHJvY2Vz c19maWxlKCRzb3VyY2VfZmlsZW5hbWUpOworCQkkc3RhdHVzID0gJGZpbGVfc3RhdHVzIGlmICRm aWxlX3N0YXR1cyA+ICRzdGF0dXM7CisJCWxhc3QgaWYgJGNoZWNrICYmICRzdGF0dXMgPj0gMiAm JiAhJGRpZmY7CisJfQorfQorZWxzZQoreworCW15ICVjaGlsZHJlbjsgICAgIyBwaWQgPT4gMQor CisJbXkgJGZpbGVfaWR4ID0gMDsKKwl3aGlsZSAoJGZpbGVfaWR4IDwgc2NhbGFyKEBmaWxlcykg fHwgJWNoaWxkcmVuKQorCXsKKwkJIyBGb3JrIG5ldyBjaGlsZHJlbiB1cCB0byAkam9icyBsaW1p dAorCQl3aGlsZSAoJGZpbGVfaWR4IDwgc2NhbGFyKEBmaWxlcykgJiYgc2NhbGFyKGtleXMgJWNo aWxkcmVuKSA8ICRqb2JzKQorCQl7CisJCQlteSAkc291cmNlX2ZpbGVuYW1lID0gJGZpbGVzWyAk ZmlsZV9pZHgrKyBdOworCisJCQlteSAkcGlkID0gZm9yaygpOworCQkJZGllICJmb3JrIGZhaWxl ZDogJCFcbiIgdW5sZXNzIGRlZmluZWQgJHBpZDsKKworCQkJaWYgKCRwaWQgPT0gMCkKIAkJCXsK LQkJCQkkc3RhdHVzIHx8PSAyOwotCQkJCWxhc3QgdW5sZXNzICRkaWZmOworCQkJCSMgY2hpbGQK KwkJCQlteSAkY2hpbGRfc3RhdHVzID0gcHJvY2Vzc19maWxlKCRzb3VyY2VfZmlsZW5hbWUpOwor CQkJCWV4aXQgJGNoaWxkX3N0YXR1czsKIAkJCX0KKworCQkJJGNoaWxkcmVueyRwaWR9ID0gMTsK KwkJfQorCisJCSMgV2FpdCBmb3IgYXQgbGVhc3Qgb25lIGNoaWxkIHRvIGZpbmlzaAorCQlteSAk cGlkID0gd2FpdHBpZCgtMSwgMCk7CisJCWlmICgkcGlkID4gMCAmJiBleGlzdHMgJGNoaWxkcmVu eyRwaWR9KQorCQl7CisJCQlkZWxldGUgJGNoaWxkcmVueyRwaWR9OworCQkJbXkgJGNoaWxkX3N0 YXR1cyA9ICQ/ID4+IDg7CisJCQkkc3RhdHVzID0gJGNoaWxkX3N0YXR1cyBpZiAkY2hpbGRfc3Rh dHVzID4gJHN0YXR1czsKIAkJfQogCX0KIH0KLS0gCjIuNTMuMAoK --8bac8f2ebf586b660d7713115b22266d4a08dcee829257d48f7c651ee217--