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 1wDAFr-002fTp-1Y for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Apr 2026 00:06:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDAFo-002oAL-2k for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Apr 2026 00:06:44 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wDAFo-002oAD-1Z for pgsql-hackers@lists.postgresql.org; Thu, 16 Apr 2026 00:06:44 +0000 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDAFm-00000001JPk-0CS9 for pgsql-hackers@lists.postgresql.org; Thu, 16 Apr 2026 00:06:44 +0000 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-35d94f4ee36so4351436a91.3 for ; Wed, 15 Apr 2026 17:06:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776297999; cv=none; d=google.com; s=arc-20240605; b=jIHBLL/Tt3ttMGTjRY9IR3ZNySOgPl+r2XXx91Huf32Ta+gazPiL/cHHWoUEZa+5zj a551NSCuL3n8gCJptByI4S6yTEYVKfFrfhaZ98Z3by56tX7lZXl80QGZrYfbIsZuiT3d IBUfXKD0u6837TZsOiUPN9zHapRHcwYmd+jYR2yp5e7LogmzUSr6qtu6e0J9M4NmJJO1 PYjZY6BoSqZZp31zztE3odopYu0dcbdue6iuqtbnFf+REyFzXQ7SprIxep0JhPmlu49H zyGQLAmrWFYgwOn1kngXpsrNB5+gU0npXXsZYR09AbUQHZBy/UfJ6L9QsSxqI5AaXezo NaXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=xWxyfkvbIPrAGW9ZmBZUsZr0hMXMZYX13NwW6Jj5cws=; fh=PDhzRmLFhJQgKl2kpY6iqaoiggk+rKjB8rXL7ERgOws=; b=I/dU/ib+RRSdKhOHCkij9XJMYpfYY9fplhzpVrtSn8Vjhz3yVyBry5eXRhNibbiNRj ib4+Jh3NtV2C891vqFpWEYWCOK+geFD/eHK63Qki2jFQXi3ciy6Ge0EMn1yFeSZuLN4S 4LBP/AJGfFffoGX7gmi+E9N9oWDaFWpAEB0wixiP/58pQFL6PZqBvBGRouuR5EgTH/9X nGeM1GkAx5zuNOjW1LdE20tLev5T4nLOJazGTjBIdW0X1blTnrsypG1iSFiXHTrCfG9k srivVwszZCpP7l6Ys4U007ikTp5eCrfNnhI3Lprg+LbT/z3CxEC7AjwZY94UOTNPW9K8 ZyuQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776297999; x=1776902799; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=xWxyfkvbIPrAGW9ZmBZUsZr0hMXMZYX13NwW6Jj5cws=; b=gc+6Yo/1ntnNbzwojzx3B6PkmOb5oAiMp1S4GG/UsKQVHilxYsWY05ecJfVltn5f8j vpUlYl/coz8Fn3qByfj6jtC6r0qC7zLVqUdpqCdzlJdl66mJk45jVCsKuwGqBumK1hw9 Qc9jFYtUyJZZYnOuRVmBEIgKH1aZp18iI/OuewGzK1wj/cRi+4fDM6OMp9dtWdB318Ku P3HuiXWETtF3WuG5QpUaVUHLxvnQFvCHWScr4hzohlfYbIP1UDPQBzg4al0uCOc2xspD 5Q3nH7jUSoW6OweGpj5e6JLQU+g7n9ceZovh0km193NOKyFy/qYg2HSAL8iQD1LVEXqF IBqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776297999; x=1776902799; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xWxyfkvbIPrAGW9ZmBZUsZr0hMXMZYX13NwW6Jj5cws=; b=BOlr2ryurcv554k4+l5ozyL/OdLVLrOswdBHLWKoQSUrkmG2WU+GqzUkLguPq3tyKb i/uWFjrkXEubJSeBib8q+q94UKB/fsWbiUHJQClWTmbYXZAZZBPZdFINS8HN8F+msVmA j8H+QS2NzwKyTkaGn6cW2wbe9nJHGVuZrbkVoVp2B+mtd0UZLjWURDAu90eUrCbB34tv wEq2PC+XFiTnYPR+K+M2qxFfLbNulqv+iMllWc/4Q5/Rh+tB3Kqd0oG5dzTYdNeYhvgm UG6nBrhHtdyCZ1ugYiM5hkx6KwZZm+Jn7QqT/zFY3PAjqfnS8boe33jPxbVlMalvW0Sb uryg== X-Gm-Message-State: AOJu0YyN8Wqo+P+slvMlFBcpe6b9SBq6fyRzPGLxsz5DP3cqyUsEaCN1 si4qdmw7+EsKlvdo+EPPqQguJ9Bu3Halrs9mphyDhXJ1QKAuUBuc1rZF05kz7L57EyS8sqdasAt wGDCExaf/FR8uzJSkEV9kgthrHUGmRxk= X-Gm-Gg: AeBDievC59Sk5lGzyQ/qz5RdpNOw8/H4a1CxoazuEt9igLA+fp9Z9xbrUlwpSM6GX8/ i/RQO1Sht/89gxsKiuq0hr0gtXI+XCmCUs8Ufk4RuBYLEwXgftMO6OtdedbssXkEFdHsyUHNyu6 Z7C6ueI910WIgKNooBFYe3i9aqwK86tCG3h4JDDfjjFeT7S4oiyXZmrkHb5qjtwKGYr5Gj3OK7A RG28vQUOi1aH8h8GVWjy3wegFDaSWaJokwIgPTn7t3WR1ITVhhj1gMCEq+ujL0qinbHf3me2LUZ nUdtoZUCJ8UJJEvnTuYOcsId3Ihln2BWVe6MYeHsxIcOK6/1dJFsoLX27R+xQyz2 X-Received: by 2002:a17:90a:e70c:b0:35d:9f7c:142c with SMTP id 98e67ed59e1d1-35e4282731emr19876223a91.26.1776297999381; Wed, 15 Apr 2026 17:06:39 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Amit Langote Date: Thu, 16 Apr 2026 09:06:21 +0900 X-Gm-Features: AQROBzDwW1SF1g4QL85WLlaP0eRXQXzg609-rMK_6z7ffVrKufhuw06fe2qDRGE Message-ID: Subject: Re: pg_overexplain produces invalid JSON with RANGE_TABLE option To: SATYANARAYANA NARLAPURAM Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000044ce85064f889ba3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000044ce85064f889ba3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Thu, Apr 16, 2026 at 6:36=E2=80=AFAM SATYANARAYANA NARLAPURAM wrote: > > Hi Hackers, > > It appears that pg_overexplain produces invalid JSON output when > EXPLAIN (FORMAT JSON, RANGE_TABLE) is used. The "Unprunable RTIs" and > "Result RTIs" properties are emitted as key:value pairs directly inside > the "Range Table" JSON array, which is structurally invalid. Thanks for the report and the patch. That makes sense. > Attempted to fix this by moving ExplainCloseGroup() before the two overex= plain_bitmapset() > calls, so the properties are emitted as siblings of "Range Table" in the = parent object rather > than inside the array. > > Attached a patch to address this which also includes a test. I have added a commit message. Will commit shortly to master and v18. --=20 Thanks, Amit Langote --00000000000044ce85064f889ba3 Content-Type: application/octet-stream; name="v1-0001-Fix-pg_overexplain-to-emit-valid-output-with-RANG.patch" Content-Disposition: attachment; filename="v1-0001-Fix-pg_overexplain-to-emit-valid-output-with-RANG.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo0px5rg0 RnJvbSAzMzE1N2I2ZGM2NTNmODFhNTQzYmQ3ZmRjMzhhM2FlNjJiOWFmMGNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IExhbmdvdGUgPGFtaXRsYW5AcG9zdGdyZXNxbC5vcmc+ CkRhdGU6IFRodSwgMTYgQXByIDIwMjYgMDg6NTQ6MTggKzA5MDAKU3ViamVjdDogW1BBVENIIHYx XSBGaXggcGdfb3ZlcmV4cGxhaW4gdG8gZW1pdCB2YWxpZCBvdXRwdXQgd2l0aCBSQU5HRV9UQUJM RQogb3B0aW9uLgoKb3ZlcmV4cGxhaW5fcmFuZ2VfdGFibGUoKSBlbWl0dGVkIHRoZSAiVW5wcnVu YWJsZSBSVElzIiBhbmQgIlJlc3VsdApSVElzIiBwcm9wZXJ0aWVzIGJlZm9yZSBjbG9zaW5nIHRo ZSAiUmFuZ2UgVGFibGUiIGdyb3VwLiAgSW4gdGhlIEpTT04KYW5kIFlBTUwgZm9ybWF0cyB0aGUg UmFuZ2UgVGFibGUgZ3JvdXAgaXMgcmVuZGVyZWQgYXMgYW4gYXJyYXkgb2YgUlRFCm9iamVjdHMs IHNvIGVtaXR0aW5nIGtleS92YWx1ZSBwYWlycyBpbnNpZGUgaXQgcHJvZHVjZWQgc3RydWN0dXJh bGx5CmludmFsaWQgb3V0cHV0LiAgVGhlIFhNTCBmb3JtYXQgaGFkIGEgcmVsYXRlZCBvZGRpdHks IHdpdGggdGhlc2UKZWxlbWVudHMgbmVzdGVkIGluc2lkZSA8UmFuZ2UtVGFibGU+IHJhdGhlciB0 aGFuIGFwcGVhcmluZyBhcyBpdHMKc2libGluZ3MuCgpUaGVzZSBmaWVsZHMgYXJlIHByb3BlcnRp ZXMgb2YgdGhlIFBsYW5uZWRTdG10IGFzIGEgd2hvbGUsIG5vdCBvZiBhbnkKaW5kaXZpZHVhbCBS VEUsIHNvIGNsb3NlIHRoZSBSYW5nZSBUYWJsZSBncm91cCBiZWZvcmUgZW1pdHRpbmcgdGhlbS4K VGhleSBub3cgYXBwZWFyIGFzIHNpYmxpbmdzIG9mICJSYW5nZSBUYWJsZSIgaW4gdGhlIHBhcmVu dCBRdWVyeQpvYmplY3QsIHdoaWNoIGlzIHdoYXQgd2FzIGludGVuZGVkLgoKQWxzbyBhZGQgYSB0 ZXN0IGV4ZXJjaXNpbmcgRk9STUFUIEpTT04gd2l0aCBSQU5HRV9UQUJMRSBzbyB0aGF0IGFueQpm dXR1cmUgcmVncmVzc2lvbiBpbiB0aGUgb3V0cHV0IHN0cnVjdHVyZSBpcyBjYXVnaHQuCgpSZXBv cnRlZC1ieTogU2F0eWFuYXJheWFuYSBOYXJsYXB1cmFtIDxzYXR5YW5hcmxhcHVyYW1AZ21haWwu Y29tPgpBdXRob3I6IFNhdHlhbmFyYXlhbmEgTmFybGFwdXJhbSA8c2F0eWFuYXJsYXB1cmFtQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtaXQgTGFuZ290ZSA8YW1pdGxhbmdvdGUwOUBnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FIZytRRGREcmRxTXI5OGFfT0JZ RFltSzNSYVQ3WHdDRVNoWmZ2RFlLWnBaVGZPRWpRQG1haWwuZ21haWwuY29tCkJhY2twYXRjaC10 aHJvdWdoOiAxOAotLS0KIC4uLi9leHBlY3RlZC9wZ19vdmVyZXhwbGFpbi5vdXQgICAgICAgICAg ICAgICB8IDEyMiArKysrKysrKysrKysrKysrKy0KIGNvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vcGdf b3ZlcmV4cGxhaW4uYyAgICAgICB8ICAxMiArLQogY29udHJpYi9wZ19vdmVyZXhwbGFpbi9zcWwv cGdfb3ZlcmV4cGxhaW4uc3FsIHwgICA2ICsKIDMgZmlsZXMgY2hhbmdlZCwgMTM0IGluc2VydGlv bnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19vdmVyZXhwbGFp bi9leHBlY3RlZC9wZ19vdmVyZXhwbGFpbi5vdXQgYi9jb250cmliL3BnX292ZXJleHBsYWluL2V4 cGVjdGVkL3BnX292ZXJleHBsYWluLm91dAppbmRleCAwNWM2Njg2ZDY3Ny4uMTJhYjkyNjI5YWIg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vZXhwZWN0ZWQvcGdfb3ZlcmV4cGxh aW4ub3V0CisrKyBiL2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vZXhwZWN0ZWQvcGdfb3ZlcmV4cGxh aW4ub3V0CkBAIC0yOTQsMTMgKzI5NCwxMzEgQEAgJCQpOwogICAgICAgICAgPFNlY3VyaXR5LUJh cnJpZXI+ZmFsc2U8L1NlY3VyaXR5LUJhcnJpZXI+ICAgICAgICAgICAgICAgICArCiAgICAgICAg ICA8TGF0ZXJhbD5mYWxzZTwvTGF0ZXJhbD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKICAgICAgICA8L1JhbmdlLVRhYmxlLUVudHJ5PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICAgIDxVbnBydW5hYmxlLVJUSXM+MSAzIDQ8L1VucHJ1 bmFibGUtUlRJcz4gICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgPFJlc3VsdC1SVElzPm5v bmU8L1Jlc3VsdC1SVElzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgPC9S YW5nZS1UYWJsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICA8VW5wcnVuYWJsZS1SVElzPjEgMyA0PC9VbnBydW5hYmxlLVJUSXM+ICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgIDxSZXN1bHQtUlRJcz5ub25lPC9SZXN1bHQtUlRJcz4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgIDwvUXVlcnk+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogIDwvZXhwbGFp bj4KICgxIHJvdykKIAorLS0gVGVzdCBKU09OIGZvcm1hdCB3aXRoIFJBTkdFX1RBQkxFIHRvIHZl cmlmeSB2YWxpZCBKU09OIHN0cnVjdHVyZS4KK1NFTEVDVCBleHBsYWluX2ZpbHRlcigkJAorRVhQ TEFJTiAoUkFOR0VfVEFCTEUsIEZPUk1BVCBKU09OLCBDT1NUUyBPRkYpCitTRUxFQ1QgZ2VudXMs IGFycmF5X2FnZyhuYW1lIE9SREVSIEJZIG5hbWUpIEZST00gdmVnZXRhYmxlcyBHUk9VUCBCWSBn ZW51cworJCQpOworICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxh biI6IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJOb2RlIFR5cGUiOiAiQWdncmVnYXRlIiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICJTdHJhdGVneSI6ICJTb3J0ZWQiLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICJQYXJ0aWFsIE1vZGUiOiAiU2ltcGxlIiwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNl LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJBc3luYyBDYXBhYmxl IjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJEaXNh YmxlZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICJHcm91cCBLZXkiOiBbInZlZ2V0YWJsZXMuZ2VudXMiXSwgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICJQbGFucyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiTm9kZSBUeXBlIjogIlNvcnQiLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiUGFyZW50IFJlbGF0 aW9uc2hpcCI6ICJPdXRlciIsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiUGFy YWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAiU29ydCBLZXkiOiBbInZlZ2V0YWJsZXMuZ2VudXMiLCAi dmVnZXRhYmxlcy5uYW1lIl0sKworICAgICAgICAgICAiUGxhbnMiOiBbICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgIk5v ZGUgVHlwZSI6ICJBcHBlbmQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgIlBhcmVudCBSZWxhdGlvbnNoaXAiOiAiT3V0ZXIiLCAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgIkFwcGVuZCBSVElzIjog IjEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgIkNoaWxk IEFwcGVuZCBSVElzIjogIm5vbmUiLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgIlN1YnBsYW5zIFJlbW92ZWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgIlBsYW5zIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICJOb2RlIFR5cGUiOiAiU2VxIFNjYW4i LCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICJQYXJlbnQgUmVsYXRp b25zaGlwIjogIk1lbWJlciIsICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICJQYXJh bGxlbCBBd2FyZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICJBc3luYyBDYXBhYmxlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICJSZWxhdGlvbiBOYW1lIjogImJyYXNzaWNhIiwgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICJBbGlhcyI6ICJ2ZWdldGFibGVzXzEiLCAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICJTY2FuIFJUSSI6IDMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICB9LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICJOb2RlIFR5cGUiOiAiU2VxIFNjYW4iLCAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICJQYXJlbnQgUmVsYXRpb25zaGlwIjogIk1lbWJlciIsICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFs c2UsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICJSZWxhdGlvbiBO YW1lIjogImRhdWN1cyIsICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICJB bGlhcyI6ICJ2ZWdldGFibGVzXzIiLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICJTY2FuIFJUSSI6IDQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgXSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICBdICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg IF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAiUmFuZ2UgVGFibGUiOiBbICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlJUSSI6IDEsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIktpbmQiOiAi cmVsYXRpb24iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg IkluaGVyaXRlZCI6IHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgIkluIEZyb20gQ2xhdXNlIjogdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgIkVyZWYiOiAidmVnZXRhYmxlcyAoaWQsIG5hbWUsIGdlbnVzKSIs ICAgICAgICAgICAgICAgKworICAgICAgICAgIlJlbGF0aW9uIjogInZlZ2V0YWJsZXMiLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlJlbGF0aW9uIEtpbmQiOiAicGFy dGl0aW9uZWRfdGFibGUiLCAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlJlbGF0aW9uIExv Y2sgTW9kZSI6ICJBY2Nlc3NTaGFyZUxvY2siLCAgICAgICAgICAgICAgKworICAgICAgICAgIlBl cm1pc3Npb24gSW5mbyBJbmRleCI6IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgIlNlY3VyaXR5IEJhcnJpZXIiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgIkxhdGVyYWwiOiBmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlJUSSI6IDIsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIktpbmQi OiAiZ3JvdXAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgIkluaGVyaXRlZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgIkluIEZyb20gQ2xhdXNlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgIkVyZWYiOiAiXCIqR1JPVVAqXCIgKGdlbnVzKSIsICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlNlY3VyaXR5IEJhcnJpZXIiOiBmYWxzZSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkxhdGVyYWwiOiBmYWxzZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIH0sICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgIlJUSSI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgIktpbmQiOiAicmVsYXRpb24iLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgIkluaGVyaXRlZCI6IGZhbHNlLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkluIEZyb20gQ2xhdXNlIjogdHJ1 ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkFsaWFzIjogInZl Z2V0YWJsZXMgKGlkLCBuYW1lLCBnZW51cykiLCAgICAgICAgICAgICAgKworICAgICAgICAgIkVy ZWYiOiAidmVnZXRhYmxlcyAoaWQsIG5hbWUsIGdlbnVzKSIsICAgICAgICAgICAgICAgKworICAg ICAgICAgIlJlbGF0aW9uIjogImJyYXNzaWNhIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgIlJlbGF0aW9uIEtpbmQiOiAicmVsYXRpb24iLCAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgIlJlbGF0aW9uIExvY2sgTW9kZSI6ICJBY2Nlc3NTaGFy ZUxvY2siLCAgICAgICAgICAgICAgKworICAgICAgICAgIlNlY3VyaXR5IEJhcnJpZXIiOiBmYWxz ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkxhdGVyYWwiOiBmYWxz ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIH0sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgIlJUSSI6IDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgIktpbmQiOiAicmVsYXRpb24iLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkluaGVyaXRlZCI6IGZhbHNlLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkluIEZyb20gQ2xhdXNlIjog dHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkFsaWFzIjog InZlZ2V0YWJsZXMgKGlkLCBuYW1lLCBnZW51cykiLCAgICAgICAgICAgICAgKworICAgICAgICAg IkVyZWYiOiAidmVnZXRhYmxlcyAoaWQsIG5hbWUsIGdlbnVzKSIsICAgICAgICAgICAgICAgKwor ICAgICAgICAgIlJlbGF0aW9uIjogImRhdWN1cyIsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgIlJlbGF0aW9uIEtpbmQiOiAicmVsYXRpb24iLCAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgIlJlbGF0aW9uIExvY2sgTW9kZSI6ICJBY2Nlc3NT aGFyZUxvY2siLCAgICAgICAgICAgICAgKworICAgICAgICAgIlNlY3VyaXR5IEJhcnJpZXIiOiBm YWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkxhdGVyYWwiOiBm YWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAiVW5wcnVuYWJsZSBSVElzIjogIjEgMyA0IiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAiUmVzdWx0IFJUSXMiOiAibm9uZSIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIF0KKygxIHJvdykKKwogLS0gVGVzdCBq dXN0IHRoZSBERUJVRyBvcHRpb24uIFZlcmlmeSB0aGF0IGl0IHNob3dzIGluZm9ybWF0aW9uIGFi b3V0CiAtLSBkaXNhYmxlZCBub2RlcywgcGFyYWxsZWwgc2FmZXR5LCBhbmQgdGhlIHBhcmFsbGVs TW9kZU5lZWRlZCBmbGFnLgogU0VUIGVuYWJsZV9zZXFzY2FuID0gZmFsc2U7CmRpZmYgLS1naXQg YS9jb250cmliL3BnX292ZXJleHBsYWluL3BnX292ZXJleHBsYWluLmMgYi9jb250cmliL3BnX292 ZXJleHBsYWluL3BnX292ZXJleHBsYWluLmMKaW5kZXggNzE1ZWRhOGRjNTYuLmZiMjc3ZTAyMzA4 IDEwMDY0NAotLS0gYS9jb250cmliL3BnX292ZXJleHBsYWluL3BnX292ZXJleHBsYWluLmMKKysr IGIvY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19vdmVyZXhwbGFpbi5jCkBAIC03NzYsNyArNzc2 LDE0IEBAIG92ZXJleHBsYWluX3JhbmdlX3RhYmxlKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwg RXhwbGFpblN0YXRlICplcykKIAkJRXhwbGFpbkNsb3NlR3JvdXAoIlJhbmdlIFRhYmxlIEVudHJ5 IiwgTlVMTCwgdHJ1ZSwgZXMpOwogCX0KIAotCS8qIFByaW50IFBsYW5uZWRTdG10IGZpZWxkcyB0 aGF0IGNvbnRhaW4gUlRJcy4gKi8KKwkvKiBDbG9zZSB0aGUgUmFuZ2UgVGFibGUgYXJyYXkgYmVm b3JlIGVtaXR0aW5nIFBsYW5uZWRTdG10LWxldmVsIGZpZWxkcy4gKi8KKwlFeHBsYWluQ2xvc2VH cm91cCgiUmFuZ2UgVGFibGUiLCAiUmFuZ2UgVGFibGUiLCBmYWxzZSwgZXMpOworCisJLyoKKwkg KiBQcmludCBQbGFubmVkU3RtdCBmaWVsZHMgdGhhdCBjb250YWluIFJUSXMuICBUaGVzZSBhcmUg cHJvcGVydGllcyBvZgorCSAqIHRoZSBQbGFubmVkU3RtdCwgbm90IG9mIGluZGl2aWR1YWwgUlRF cywgc28gdGhleSBiZWxvbmcgb3V0c2lkZSB0aGUKKwkgKiBSYW5nZSBUYWJsZSBhcnJheS4KKwkg Ki8KIAlpZiAoZXMtPmZvcm1hdCAhPSBFWFBMQUlOX0ZPUk1BVF9URVhUIHx8CiAJCSFibXNfaXNf ZW1wdHkocGxhbm5lZHN0bXQtPnVucHJ1bmFibGVSZWxpZHMpKQogCQlvdmVyZXhwbGFpbl9iaXRt YXBzZXQoIlVucHJ1bmFibGUgUlRJcyIsIHBsYW5uZWRzdG10LT51bnBydW5hYmxlUmVsaWRzLApA QCAtNzg1LDkgKzc5Miw2IEBAIG92ZXJleHBsYWluX3JhbmdlX3RhYmxlKFBsYW5uZWRTdG10ICpw bGFubmVkc3RtdCwgRXhwbGFpblN0YXRlICplcykKIAkJIWJtc19pc19lbXB0eShwbGFubmVkc3Rt dC0+cmVzdWx0UmVsYXRpb25SZWxpZHMpKQogCQlvdmVyZXhwbGFpbl9iaXRtYXBzZXQoIlJlc3Vs dCBSVElzIiwgcGxhbm5lZHN0bXQtPnJlc3VsdFJlbGF0aW9uUmVsaWRzLAogCQkJCQkJCSAgZXMp OwotCi0JLyogQ2xvc2UgZ3JvdXAsIHdlJ3JlIGFsbCBkb25lICovCi0JRXhwbGFpbkNsb3NlR3Jv dXAoIlJhbmdlIFRhYmxlIiwgIlJhbmdlIFRhYmxlIiwgZmFsc2UsIGVzKTsKIH0KIAogLyoKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vc3FsL3BnX292ZXJleHBsYWluLnNxbCBi L2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vc3FsL3BnX292ZXJleHBsYWluLnNxbAppbmRleCBkMDdm OTM2ODhhOS4uM2YxN2I2MWEyZGEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4v c3FsL3BnX292ZXJleHBsYWluLnNxbAorKysgYi9jb250cmliL3BnX292ZXJleHBsYWluL3NxbC9w Z19vdmVyZXhwbGFpbi5zcWwKQEAgLTY2LDYgKzY2LDEyIEBAIEVYUExBSU4gKERFQlVHLCBSQU5H RV9UQUJMRSwgRk9STUFUIFhNTCwgQ09TVFMgT0ZGKQogU0VMRUNUIGdlbnVzLCBhcnJheV9hZ2co bmFtZSBPUkRFUiBCWSBuYW1lKSBGUk9NIHZlZ2V0YWJsZXMgR1JPVVAgQlkgZ2VudXMKICQkKTsK IAorLS0gVGVzdCBKU09OIGZvcm1hdCB3aXRoIFJBTkdFX1RBQkxFIHRvIHZlcmlmeSB2YWxpZCBK U09OIHN0cnVjdHVyZS4KK1NFTEVDVCBleHBsYWluX2ZpbHRlcigkJAorRVhQTEFJTiAoUkFOR0Vf VEFCTEUsIEZPUk1BVCBKU09OLCBDT1NUUyBPRkYpCitTRUxFQ1QgZ2VudXMsIGFycmF5X2FnZyhu YW1lIE9SREVSIEJZIG5hbWUpIEZST00gdmVnZXRhYmxlcyBHUk9VUCBCWSBnZW51cworJCQpOwor CiAtLSBUZXN0IGp1c3QgdGhlIERFQlVHIG9wdGlvbi4gVmVyaWZ5IHRoYXQgaXQgc2hvd3MgaW5m b3JtYXRpb24gYWJvdXQKIC0tIGRpc2FibGVkIG5vZGVzLCBwYXJhbGxlbCBzYWZldHksIGFuZCB0 aGUgcGFyYWxsZWxNb2RlTmVlZGVkIGZsYWcuCiBTRVQgZW5hYmxlX3NlcXNjYW4gPSBmYWxzZTsK LS0gCjIuNDcuMwoK --00000000000044ce85064f889ba3--