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 1wE8Zl-003i9J-3C for pgsql-hackers@arkaria.postgresql.org; Sat, 18 Apr 2026 16:31:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wE8Zl-00DKTI-0c for pgsql-hackers@arkaria.postgresql.org; Sat, 18 Apr 2026 16:31:21 +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 1wE8Zk-00DKTA-2n for pgsql-hackers@lists.postgresql.org; Sat, 18 Apr 2026 16:31:20 +0000 Received: from mail-ua1-x92c.google.com ([2607:f8b0:4864:20::92c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wE8Zi-00000001r5Z-3Qvg for pgsql-hackers@lists.postgresql.org; Sat, 18 Apr 2026 16:31:20 +0000 Received: by mail-ua1-x92c.google.com with SMTP id a1e0cc1a2514c-94dcf70af41so339906241.1 for ; Sat, 18 Apr 2026 09:31:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776529876; cv=none; d=google.com; s=arc-20240605; b=C1XtfeYYGf43PEquNymiNJ6hs/T4cg3T5B83TjD51aARi9AjAmVlRCG3CXGMp14Xks 8lKuUH90ro2KIaFPYeGB3OUqjRlKIvUmomcrxOj3jorTbcQUMu7zNjlYx8JpMdGkH7MJ 3X1w31t9WjR7++nX9X76sKvlWYE6dyYDBOCpFZ8eXFKVbbeRzxyhnvgvuhjPxZSzcyE3 Q2l2EyCg5iG1+kGLK+R0WXbrg7DVOH7HYhcyQJYxMf/sKKuEjpWDacRPnmCiy2B+DsLy CM7ejrzmsBZ3FpBCDCWBvdqCrcw/OteXDubxa4/4DoVwd9RItm4miV3IdiH1sqeauoyS m1+w== 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:mime-version:dkim-signature; bh=v91/wpM5pRgbEZqJ+MWmoEjgGWoFclumJYmRH7tFmdQ=; fh=P1nsYnU/BFBr1Rv9psPBQPCzI/qeXLpXUWzxkxQtCOA=; b=JfsfJHAdQS82jkYt8FkR3AQaQ67SEBbJG+0iDc1OsM5/ppQ2pSJumSbxjnFzxSM/vd hDrY5VIPwa+AXWHdg8Y3jqWO/MUVea0ro/W0RgI6t4RmtHMMzgA8vZ+6SJAjC1lhtNkP mLECNU8cmvve0X/ac2iMZC1E+dhqvBxVr9ZbyJag0z+wdbJzvZtm7eGYzYi4eCyGNsYo F3mvIifYBtKGdhX0nEFpc8O/L49pCeJXJYeEBwx7Q6HJ/9+BtvcDSwOvMCxOYSgJzTX2 YFaZV6Ygvnto2NODPjKASX3fWk3cwvTEnMRlooLkmtFSkH906i7/EAP/WLDwa3gl/NMo 8Zzg==; 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=1776529876; x=1777134676; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=v91/wpM5pRgbEZqJ+MWmoEjgGWoFclumJYmRH7tFmdQ=; b=iDa1+B12fKDS2gJBr9lQwEhLub0GNScS5qzN/swy6uYYQlllV4kTIWr2bBE5OKL/lF dcvph7Mw2rNIa5BZUNjGcD2emHyBf5bwzZtjFCT7Ryd8Q69mefaRSsJwc6X5Ii6+sCa4 mz540/gpcg6xPyekelvOAaJndonu4ZdrVk7ysvRyFC1H0DfPCdxhR9FnfXyHLZRPaSsN M7CpWuTxyIbYuXybpT5bczIaCU5Ze3ay+k+H0awM2c+DPe3ZYO/vKixN4MR97Ajwd/4g CGrkhSqQKSiarWs8HLzYydEc82vfXZE5orCqKdGeepeov+qMT9TAwf7sAOqt1CnWlb/q pVBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776529876; x=1777134676; h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=v91/wpM5pRgbEZqJ+MWmoEjgGWoFclumJYmRH7tFmdQ=; b=RzlXHfpKm8SAjLw5PLOxGJVQohE14EhZt1oufv+nlDfIU73FCmqMRkurrO88U37BDU 5fyMVtzZ7qGUufzUISoPHxnk0OfCNAWvrf5z5JIFk9rUY/4h92+2OeGJysyNWXl5olMv A4euSbweSy3u6GdKkwrH2/+uCjUwURcZzUPNErYi4CDjvhvKDmuGZs1Ta32xlcuy97CF ir2Qb+32yyXzpJvtgCUo10jJNV8tWprBcKNs1iEVrA8nilKnp9Y+C7Qp2kB1FAmf5hDd pt1tSzEJe/XyGF+pT3Ez4e5srCN4BbbAdUsEBQ/CujsIEafbnkluq0YcV+WJth1uIxeK CZ3w== X-Gm-Message-State: AOJu0YxbeGlaXHDS40RvQTkWDmRayOkdyPo1RjDxUTVve7rNYKKjIerz wK03zv8k8VMpqUafxtKX+RlCQzsMgYE4Wqg3eY86RrT1v1/ErQA43k1/NSWN44v5e5+nsQ7lUYB oQbKVWETmIpxhTiUq8dMqsB0go8J3OIlvdKuO X-Gm-Gg: AeBDieseZOgLt9n6zxzbQlrtAs4F9onrJB38HWBHrs/IubSA/WSPzKLFmoWgC93U94w J1fDiUR/FnT3ziUhU74ofUd5aw/Q/n7yKeufGBsTzWHhpgq1MFfvbr+FMIHtXOpxllv7id2DEe/ kLSt9Vf3FMZ2E/Y+e6h8egzP6mN7SD5CgvjK8JuQvtJU8XUWMcfWnlpAjlZehJhk32vXaXyyqpx za+AWbfWkuqk8ONJmWgGZ018tixLGtU87sYw3y97kIOYMgzvDEpLGGjoUpCXXa/R+8s3W95gv83 zegx91ht5Wqk3kX02w== X-Received: by 2002:a67:e117:0:b0:60f:eab7:cd77 with SMTP id ada2fe7eead31-616f88a7b7fmr2847944137.22.1776529875974; Sat, 18 Apr 2026 09:31:15 -0700 (PDT) MIME-Version: 1.0 From: SATYANARAYANA NARLAPURAM Date: Sat, 18 Apr 2026 09:31:03 -0700 X-Gm-Features: AQROBzDdlD8h1GtA7g8wrTioyf02xeTnECGv0by8kAqUlR6uyXfRySNenv8yWDg Message-ID: Subject: BUG: jsonpath .split_part() bypasses lax-mode error suppression To: PostgreSQL Hackers Cc: florents.tselai@gmail.com, david@justatheory.com Content-Type: multipart/mixed; boundary="00000000000030d8b0064fbe98cf" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000030d8b0064fbe98cf Content-Type: multipart/alternative; boundary="00000000000030d8ae064fbe98cd" --00000000000030d8ae064fbe98cd Content-Type: text/plain; charset="UTF-8" Hi hackers, The jsonpath string method .split_part() bypasses lax-mode error suppression. This is because executeStringInternalMethod() uses DirectFunctionCall1(numeric_int4, ...) to convert the field number from numeric to int4. This throws ereport(ERROR) directly, bypassing the jspThrowErrors(cxt) / RETURN_ERROR mechanism that other methods like .double() use correctly. Reproduction: -- These should return NULL in lax mode, but throw hard ERRORs: SELECT '"hello-world"'::jsonb @? '$.split_part("-", 99999999999)'; SELECT '"hello-world"'::jsonb @? '$.split_part("-", 0)'; ERROR: integer out of range ERROR: field position must not be zero Fix by replacing the bare DirectFunctionCall with numeric_int4_safe() using ErrorSaveContext to catch overflow, and adding an explicit field==0 check, both gated behind RETURN_ERROR so errors are properly suppressed in lax/silent mode while still raised in strict/non-silent mode. Thanks, Satya --00000000000030d8ae064fbe98cd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi hackers,

The jsonpath string method= =C2=A0 .split_part() bypasses lax-mode error suppression.
This is becaus= e executeStringInternalMethod() uses DirectFunctionCall1(numeric_int4, ...)=
to convert the field number from numeric to int4. This throws ereport(E= RROR) directly,=C2=A0
bypassing the jspThrowErrors(cxt) / RETURN_= ERROR mechanism that other methods=C2=A0
like .double() use corre= ctly.

Reproduction:
-- These should return NULL in = lax mode, but throw hard ERRORs:
SELECT '"hello-world"'= ;::jsonb @? '$.split_part("-", 99999999999)';
SELECT &= #39;"hello-world"'::jsonb @? '$.split_part("-",= 0)';
ERROR: =C2=A0integer out of range
ERROR: =C2=A0field positi= on must not be zero


Fix by replacin= g the bare DirectFunctionCall with numeric_int4_safe()
using ErrorSaveCo= ntext to catch overflow, and adding an explicit field=3D=3D0
check, both= gated behind RETURN_ERROR so errors are properly suppressed
in lax/sile= nt mode while still raised in strict/non-silent mode.

Thanks,=
Satya
--00000000000030d8ae064fbe98cd-- --00000000000030d8b0064fbe98cf Content-Type: application/octet-stream; name="0001-Fix-jsonpath-.split_part-to-respect-error-suppressio.patch" Content-Disposition: attachment; filename="0001-Fix-jsonpath-.split_part-to-respect-error-suppressio.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo4jz6ov0 RnJvbSBkMWYwMDFjODFkZDA5NmNmMmY5OTQ1MzY1NzllOTk1YzRmY2ViM2RhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzYXR5YW5hcmF5YW5hIG5hcmxhcHVyYW0gPHNhdHlhbmFybGFw dXJhbUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTggQXByIDIwMjYgMTU6NDI6MTggKzAwMDAKU3Vi amVjdDogW1BBVENIXSBGaXgganNvbnBhdGggLnNwbGl0X3BhcnQoKSB0byByZXNwZWN0IGVycm9y IHN1cHByZXNzaW9uIGluCiBsYXggbW9kZQoKVGhlIC5zcGxpdF9wYXJ0KCkganNvbnBhdGggc3Ry aW5nIG1ldGhvZCwgaW50cm9kdWNlZCBpbiBiZDRmODc5YSwgdXNlZApiYXJlIERpcmVjdEZ1bmN0 aW9uQ2FsbDEobnVtZXJpY19pbnQ0LCAuLi4pIHRvIGNvbnZlcnQgdGhlIGZpZWxkIG51bWJlcgph cmd1bWVudCBmcm9tIG51bWVyaWMgdG8gaW50NC4gIFRoaXMgdGhyb3dzIGFuIHVuY2F0Y2hhYmxl IEVSUk9SIHdoZW4gdGhlCmZpZWxkIG51bWJlciBvdmVyZmxvd3MgaW50MzIgcmFuZ2Ugb3IgaXMg emVybywgYnlwYXNzaW5nIHRoZSBsYXgtbW9kZQplcnJvciBzdXBwcmVzc2lvbiBtZWNoYW5pc20g dGhhdCBvdGhlciBqc29ucGF0aCBtZXRob2RzIHVzZS4KCkZvciBleGFtcGxlLCB0aGVzZSBleHBy ZXNzaW9ucyBzaG91bGQgcmV0dXJuIE5VTEwgLyBmYWxzZSBpbiBsYXggbW9kZSwKYnV0IGluc3Rl YWQgdGhyb3cgaGFyZCBFUlJPUnM6CgogICAgJyJoZWxsbyInOjpqc29uYiBAPyAnJC5zcGxpdF9w YXJ0KCItIiwgOTk5OTk5OTk5OTkpJwogICAgLS0gRVJST1I6IGludGVnZXIgb3V0IG9mIHJhbmdl IChleHBlY3RlZDogTlVMTCkKCiAgICAnImhlbGxvIic6Ompzb25iIEA/ICckLnNwbGl0X3BhcnQo Ii0iLCAwKScKICAgIC0tIEVSUk9SOiBmaWVsZCBwb3NpdGlvbiBtdXN0IG5vdCBiZSB6ZXJvIChl eHBlY3RlZDogTlVMTCkKCkZpeCBieSByZXBsYWNpbmcgdGhlIGJhcmUgRGlyZWN0RnVuY3Rpb25D YWxsIHdpdGggbnVtZXJpY19pbnQ0X3NhZmUoKQp1c2luZyBFcnJvclNhdmVDb250ZXh0IHRvIGNh dGNoIG92ZXJmbG93LCBhbmQgYWRkaW5nIGFuIGV4cGxpY2l0IGZpZWxkPT0wCmNoZWNrLCBib3Ro IGdhdGVkIGJlaGluZCBSRVRVUk5fRVJST1Igc28gZXJyb3JzIGFyZSBwcm9wZXJseSBzdXBwcmVz c2VkCmluIGxheC9zaWxlbnQgbW9kZSB3aGlsZSBzdGlsbCByYWlzZWQgaW4gc3RyaWN0L25vbi1z aWxlbnQgbW9kZS4KClRoaXMgaXMgY29uc2lzdGVudCB3aXRoIGhvdyAuZG91YmxlKCkgYW5kIC5p bnRlZ2VyKCkgaGFuZGxlIGNvbnZlcnNpb24KZXJyb3JzIHVzaW5nIEVycm9yU2F2ZUNvbnRleHQg YW5kIFJFVFVSTl9FUlJPUi4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhl Yy5jICAgICAgICB8IDE3ICsrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29u Yl9qc29ucGF0aC5vdXQgfCA0MCArKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvanNvbmJfanNvbnBhdGguc3FsICAgICAgfCAxMSArKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgNjcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9leGVjLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNv bnBhdGhfZXhlYy5jCmluZGV4IDBlYzliNGRmLi40MmVkM2FlYSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2V4ZWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbnBhdGhfZXhlYy5jCkBAIC03NCw2ICs3NCw3IEBACiAjaW5jbHVkZSAidXRpbHMvanNv bi5oIgogI2luY2x1ZGUgInV0aWxzL2pzb25wYXRoLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRp bHMuaCIKKyNpbmNsdWRlICJ1dGlscy9udW1lcmljLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0 YW1wLmgiCiAKIC8qCkBAIC0zMDE4LDYgKzMwMTksOCBAQCBleGVjdXRlU3RyaW5nSW50ZXJuYWxN ZXRob2QoSnNvblBhdGhFeGVjQ29udGV4dCAqY3h0LCBKc29uUGF0aEl0ZW0gKmpzcCwKIAkJCXsK IAkJCQljaGFyCSAgICpmcm9tX3N0cjsKIAkJCQlOdW1lcmljCQluOworCQkJCWludDMyCQlmaWVs ZDsKKwkJCQlFcnJvclNhdmVDb250ZXh0IGVzY29udGV4dCA9IHtUX0Vycm9yU2F2ZUNvbnRleHR9 OwogCiAJCQkJanNwR2V0TGVmdEFyZyhqc3AsICZlbGVtKTsKIAkJCQlpZiAoZWxlbS50eXBlICE9 IGpwaVN0cmluZykKQEAgLTMwMzEsMTEgKzMwMzQsMjMgQEAgZXhlY3V0ZVN0cmluZ0ludGVybmFs TWV0aG9kKEpzb25QYXRoRXhlY0NvbnRleHQgKmN4dCwgSnNvblBhdGhJdGVtICpqc3AsCiAKIAkJ CQluID0ganNwR2V0TnVtZXJpYygmZWxlbSk7CiAKKwkJCQlmaWVsZCA9IG51bWVyaWNfaW50NF9z YWZlKG4sIChOb2RlICopICZlc2NvbnRleHQpOworCQkJCWlmIChlc2NvbnRleHQuZXJyb3Jfb2Nj dXJyZWQpCisJCQkJCVJFVFVSTl9FUlJPUihlcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJCSAoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkJCQkgIGVycm1z ZygianNvbnBhdGggaXRlbSBtZXRob2QgLiVzKCkgZmllbGQgbnVtYmVyIGlzIG91dCBvZiByYW5n ZSBmb3IgdHlwZSBpbnRlZ2VyIiwKKwkJCQkJCQkJCQkJCSBqc3BPcGVyYXRpb25OYW1lKGpzcC0+ dHlwZSkpKSkpOworCisJCQkJaWYgKGZpZWxkID09IDApCisJCQkJCVJFVFVSTl9FUlJPUihlcmVw b3J0KEVSUk9SLAorCQkJCQkJCQkJCSAoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVS X1ZBTFVFKSwKKwkJCQkJCQkJCQkgIGVycm1zZygiZmllbGQgcG9zaXRpb24gbXVzdCBub3QgYmUg emVybyIpKSkpOworCiAJCQkJcmVzU3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhEaXJlY3RGdW5j dGlvbkNhbGwzQ29sbChzcGxpdF9wYXJ0LAogCQkJCQkJCQkJCQkJCQkJCQkgREVGQVVMVF9DT0xM QVRJT05fT0lELAogCQkJCQkJCQkJCQkJCQkJCQkgc3RyLAogCQkJCQkJCQkJCQkJCQkJCQkgQ1N0 cmluZ0dldFRleHREYXR1bShmcm9tX3N0ciksCi0JCQkJCQkJCQkJCQkJCQkJCSBEaXJlY3RGdW5j dGlvbkNhbGwxKG51bWVyaWNfaW50NCwgTnVtZXJpY0dldERhdHVtKG4pKSkpOworCQkJCQkJCQkJ CQkJCQkJCQkgSW50MzJHZXREYXR1bShmaWVsZCkpKTsKIAkJCQlicmVhazsKIAkJCX0KIAkJZGVm YXVsdDoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmJfanNvbnBh dGgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYl9qc29ucGF0aC5vdXQKaW5k ZXggYWZhNmM0Y2IuLjE0YzEzNTkyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2pzb25iX2pzb25wYXRoLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pz b25iX2pzb25wYXRoLm91dApAQCAtMzA3Myw2ICszMDczLDQ2IEBAIHNlbGVjdCBqc29uYl9wYXRo X3F1ZXJ5KCciYWJjLGRlZixnaGksamtsIicsICckLnNwbGl0X3BhcnQoIiwiLCAtMiknKTsKICAi Z2hpIgogKDEgcm93KQogCistLSBUZXN0IC5zcGxpdF9wYXJ0KCkgZXJyb3IgaGFuZGxpbmcgaW4g bGF4IG1vZGUgKHNob3VsZCBzdXBwcmVzcyBlcnJvcnMpCitzZWxlY3QganNvbmIgJyJoZWxsby13 b3JsZCInIEA/ICckLnNwbGl0X3BhcnQoIi0iLCAwKSc7CisgP2NvbHVtbj8gCistLS0tLS0tLS0t CisgCisoMSByb3cpCisKK3NlbGVjdCBqc29uYiAnImhlbGxvLXdvcmxkIicgQD8gJyQuc3BsaXRf cGFydCgiLSIsIDk5OTk5OTk5OTk5KSc7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK3NlbGVjdCBqc29uYl9wYXRoX2V4aXN0cygnImhlbGxvLXdvcmxkIicsICckLnNwbGl0 X3BhcnQoIi0iLCAwKScsIHNpbGVudCA9PiB0cnVlKTsKKyBqc29uYl9wYXRoX2V4aXN0cyAKKy0t LS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworc2VsZWN0IGpzb25iX3BhdGhfZXhpc3Rz KCciaGVsbG8td29ybGQiJywgJyQuc3BsaXRfcGFydCgiLSIsIDk5OTk5OTk5OTk5KScsIHNpbGVu dCA9PiB0cnVlKTsKKyBqc29uYl9wYXRoX2V4aXN0cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAK KygxIHJvdykKKworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyJoZWxsby13b3JsZCInLCAnJC5z cGxpdF9wYXJ0KCItIiwgMCknLCBzaWxlbnQgPT4gdHJ1ZSk7CisganNvbmJfcGF0aF9xdWVyeSAK Ky0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnko JyJoZWxsby13b3JsZCInLCAnJC5zcGxpdF9wYXJ0KCItIiwgOTk5OTk5OTk5OTkpJywgc2lsZW50 ID0+IHRydWUpOworIGpzb25iX3BhdGhfcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJv d3MpCisKKy0tIFRoZXNlIHNob3VsZCBzdGlsbCBlcnJvciBpbiBzdHJpY3Qvbm9uLXNpbGVudCBt b2RlCitzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnImhlbGxvLXdvcmxkIicsICckLnNwbGl0X3Bh cnQoIi0iLCAwKScpOworRVJST1I6ICBmaWVsZCBwb3NpdGlvbiBtdXN0IG5vdCBiZSB6ZXJvCitz ZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnImhlbGxvLXdvcmxkIicsICckLnNwbGl0X3BhcnQoIi0i LCA5OTk5OTk5OTk5OSknKTsKK0VSUk9SOiAganNvbnBhdGggaXRlbSBtZXRob2QgLnNwbGl0X3Bh cnQoKSBmaWVsZCBudW1iZXIgaXMgb3V0IG9mIHJhbmdlIGZvciB0eXBlIGludGVnZXIKIC0tIFRl c3Qgc3RyaW5nIG1ldGhvZHMgcGxheSBuaWNlbHkgdG9nZXRoZXIKIHNlbGVjdCBqc29uYl9wYXRo X3F1ZXJ5KCciaGVsbG8gd29ybGQiJywgJyQucmVwbGFjZSgiaGVsbG8iLCJieWUiKS51cHBlcigp Jyk7CiAganNvbmJfcGF0aF9xdWVyeSAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2pzb25iX2pzb25wYXRoLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iX2pzb25wYXRo LnNxbAppbmRleCBkM2EzOGM1Ny4uYjllMTg5YTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2pzb25iX2pzb25wYXRoLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29u Yl9qc29ucGF0aC5zcWwKQEAgLTcyMiw2ICs3MjIsMTcgQEAgc2VsZWN0IGpzb25iX3BhdGhfcXVl cnkoJyJoZWxsbyB3b3JsZCInLCAnJC5yZXBsYWNlKCJoZWxsbyIsImJ5ZSIpIHN0YXJ0cyB3aXRo ICIKIHNlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciYWJjfkB+ZGVmfkB+Z2hpIicsICckLnNwbGl0 X3BhcnQoIn5AfiIsIDIpJyk7CiBzZWxlY3QganNvbmJfcGF0aF9xdWVyeSgnImFiYyxkZWYsZ2hp LGprbCInLCAnJC5zcGxpdF9wYXJ0KCIsIiwgLTIpJyk7CiAKKy0tIFRlc3QgLnNwbGl0X3BhcnQo KSBlcnJvciBoYW5kbGluZyBpbiBsYXggbW9kZSAoc2hvdWxkIHN1cHByZXNzIGVycm9ycykKK3Nl bGVjdCBqc29uYiAnImhlbGxvLXdvcmxkIicgQD8gJyQuc3BsaXRfcGFydCgiLSIsIDApJzsKK3Nl bGVjdCBqc29uYiAnImhlbGxvLXdvcmxkIicgQD8gJyQuc3BsaXRfcGFydCgiLSIsIDk5OTk5OTk5 OTk5KSc7CitzZWxlY3QganNvbmJfcGF0aF9leGlzdHMoJyJoZWxsby13b3JsZCInLCAnJC5zcGxp dF9wYXJ0KCItIiwgMCknLCBzaWxlbnQgPT4gdHJ1ZSk7CitzZWxlY3QganNvbmJfcGF0aF9leGlz dHMoJyJoZWxsby13b3JsZCInLCAnJC5zcGxpdF9wYXJ0KCItIiwgOTk5OTk5OTk5OTkpJywgc2ls ZW50ID0+IHRydWUpOworc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyJoZWxsby13b3JsZCInLCAn JC5zcGxpdF9wYXJ0KCItIiwgMCknLCBzaWxlbnQgPT4gdHJ1ZSk7CitzZWxlY3QganNvbmJfcGF0 aF9xdWVyeSgnImhlbGxvLXdvcmxkIicsICckLnNwbGl0X3BhcnQoIi0iLCA5OTk5OTk5OTk5OSkn LCBzaWxlbnQgPT4gdHJ1ZSk7CistLSBUaGVzZSBzaG91bGQgc3RpbGwgZXJyb3IgaW4gc3RyaWN0 L25vbi1zaWxlbnQgbW9kZQorc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyJoZWxsby13b3JsZCIn LCAnJC5zcGxpdF9wYXJ0KCItIiwgMCknKTsKK3NlbGVjdCBqc29uYl9wYXRoX3F1ZXJ5KCciaGVs bG8td29ybGQiJywgJyQuc3BsaXRfcGFydCgiLSIsIDk5OTk5OTk5OTk5KScpOworCiAtLSBUZXN0 IHN0cmluZyBtZXRob2RzIHBsYXkgbmljZWx5IHRvZ2V0aGVyCiBzZWxlY3QganNvbmJfcGF0aF9x dWVyeSgnImhlbGxvIHdvcmxkIicsICckLnJlcGxhY2UoImhlbGxvIiwiYnllIikudXBwZXIoKScp Owogc2VsZWN0IGpzb25iX3BhdGhfcXVlcnkoJyJoRWxMbyBXb3JsRCInLCAnJC5sb3dlcigpLnVw cGVyKCkubG93ZXIoKS5yZXBsYWNlKCJoZWxsbyIsImJ5ZSIpJyk7Ci0tIAoyLjQzLjAKCg== --00000000000030d8b0064fbe98cf--