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 1wE0Xc-003ZQ5-2H for pgsql-hackers@arkaria.postgresql.org; Sat, 18 Apr 2026 07:56:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wE0Xb-00CWj3-2A for pgsql-hackers@arkaria.postgresql.org; Sat, 18 Apr 2026 07:56:35 +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 1wE0Xb-00CWiu-16 for pgsql-hackers@lists.postgresql.org; Sat, 18 Apr 2026 07:56:35 +0000 Received: from mail-ua1-x930.google.com ([2607:f8b0:4864:20::930]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wE0XZ-00000001mmZ-0K1E for pgsql-hackers@lists.postgresql.org; Sat, 18 Apr 2026 07:56:35 +0000 Received: by mail-ua1-x930.google.com with SMTP id a1e0cc1a2514c-953aacb9d78so382815241.2 for ; Sat, 18 Apr 2026 00:56:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776498991; cv=none; d=google.com; s=arc-20240605; b=Iul5z+xz1feUUgppw6V48FYLkPZSnFUrhymWDVmB5NUvyP04vZxuiZsxJLtermiIvG /ITW8XSQKE84hqeyWaBynx0dCAAmNR4RuP+Uyf4mh5DEzeWl06KGV47e0YDeHkxbqP/I quUMaaDTJbe8olW3BuJZWvNuY+B7/KZ3YjGxOcfbygkZmjt/4BjK3G9nzwniMVOWg3z/ musgv75HaWM2ZyVCG+dnfVys9XXOuKRA0yHFyYhmNNRldrrXCew8qYH7bzr07R1cD05i O9B51WOKtWaHABX51j72+7yFJgyNVwpfstBibNnIvZT2MrWGa5OErbLzB/RvYX3b5Cvx COaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=7LFg47XBVlC3bULn4w3q+Y43EQVsXJStyCzi5ph0ASI=; fh=rf79rTKPGsw7cX8Ly8TKTWm50sbG7CfzRgfTSNZkF6w=; b=OtWhxZaRa7+Ad0pMH9ozLBgQ7xQvpPlq4uu78muYW5ULuntMGEsPicn1OoMRn9/0CF 7QrrAq5UOV+hJc1+LumPqC1XIx8xRB1n2zJrjA4TBMKNJ7ZuU1vVuxnzy832HkuODs/9 TjnaSwnK6L7czeSJt1T2bnk9x8GX6P4gNQ4hnzAfOJkd/fNOr7Fx9YACdjloKTeH6Waw HK4PEwtXXO9zXpaEt9SABksh4WfcD9d5QEZ3tLNPPZdkcJ1x0vKeEWUfgGHBN/1LLoeF X76LKBUt0+ktYV7rCAoeOZuiw0XP6IgxvJYKxx54mk0TZ+FHFQLBGNZf6f/lfkMNP4jD kKjg==; 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=1776498991; x=1777103791; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=7LFg47XBVlC3bULn4w3q+Y43EQVsXJStyCzi5ph0ASI=; b=p7O9P2WIH35WnOzMDMearqPd14q96yx3iTRQ4ad7ctYu9qt8ybxGFmdlgqOA167qHg G4yk1HYWkE+jG8sW1C8flLBbQi0o3+EbFf3lphmUZwCtAqz2314N1DsLbkCJcy2GNlC5 9qAzhpDE19MZ2iixK7dZ4+k7yhW7Pnp5KHr8tw5zdI8YEph9n1JTKurJUhLsAOZR0xfs 3oJd2+XUyomYf5VqQOfT+/CCp5WuGkUjgL6uSiMsSw2D5damC1S8bwkBGxpusRaRL2pw wPtW7mk9i7xWklS7WtsEG1zHhkslMh0YtEdRYzLnoDGWeJswifmQrPbsO4VZ0XMT4BX5 FkNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776498991; x=1777103791; h=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=7LFg47XBVlC3bULn4w3q+Y43EQVsXJStyCzi5ph0ASI=; b=AbUVq3RT68zQwWyYFmvPIufE4hOaRLCcUot8eaG0CfbiFjFDnyu2/PqEDQvXK+sKFI gpqk1HRauIUXNpsPCQPuWSRU7JkIrIJntaJONVKp2H9TIbTg2HfBqOcjscF5gqmkM81B nXPzUxCQ/J7j/EjzO+xlem8RCytakbldyZkeirbyYzSazMmv0mIrOElwcokgzTHotmZj WC06oETXRa7whHleupbY0wfE4Ugx1y90UbBTqLB1dcEB1BIbFJChBlxyi26i/0/Zz3ba LENJGroxqVN7ylH/mg2bYFTmSUMtUWYPwE08wkMnQq5GkI6eRTJ6OBfVTKtDNeUmvdVc vRTQ== X-Gm-Message-State: AOJu0YwPFPatI/0q0NNN3pyuTgDm03C4Yu2YDGDWXWhMowU/PSktlWYv hpokowSQiaLtbhUFlhCGVQK5oND+xzYwsjrDWHP4qqOAFAYpQ7hCsmbjeukS6EnT3s+hokyarzr thEtDigwLqmnXMWM14u1hsmM+FesR+4ZG1qUB X-Gm-Gg: AeBDievraoHGaOPrzl/yKhDooQi4SvV7/orwFWdOAvDMLMo6Fy3Ci9xu2yvaXQtSdYS VlQI4Nl5D/ihHxVvbwdTNdFkQmb0O/DRSLGB3ZZAwdnXnPcEIWYSXi+hbPrVPIdVYz9p6JN/m0Z 6tbT/8R6JdeDOhy31Alyk0HV8N7ziqJBps03vEhQ3jwEHBc3vjClISp/8q77ZkRcUhg5NINyVl9 EZ+DoCHrKotimNBD7h/0jEH2VfW3/8pSRIh/u22OoA7hyB6gVPJubsXqliAhTJq1n5Q7r9eyaDU pZ2tONfgDjp9/1tdpA== X-Received: by 2002:a05:6122:4d0f:b0:56f:6d11:b962 with SMTP id 71dfb90a1353d-56fa57fac70mr2995936e0c.2.1776498990661; Sat, 18 Apr 2026 00:56:30 -0700 (PDT) MIME-Version: 1.0 From: SATYANARAYANA NARLAPURAM Date: Sat, 18 Apr 2026 00:56:19 -0700 X-Gm-Features: AQROBzC4biBblQ3Oig105tLfvUA9R2FYgISzT2sfkduUriAJdCw7iZ5H1E-XatY Message-ID: Subject: Bug: pg_get_viewdef() fails on GRAPH_TABLE views with lateral column references To: PostgreSQL Hackers , Ashutosh Bapat Content-Type: multipart/mixed; boundary="000000000000485c3a064fb767a8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000485c3a064fb767a8 Content-Type: multipart/alternative; boundary="000000000000485c39064fb767a6" --000000000000485c39064fb767a6 Content-Type: text/plain; charset="UTF-8" Hi hackers, pg_get_viewdef() fails with ERROR: bogus varlevelsup: 0 offset 0 for any view containing a GRAPH_TABLE whose COLUMNS clause references an outer (lateral) table. This also breaks pg_dump and \d+ for any database containing such a view. Repro: CREATE TABLE vtab (id int PRIMARY KEY, name text); CREATE TABLE etab (eid int PRIMARY KEY, src int REFERENCES vtab(id), dst int REFERENCES vtab(id)); CREATE PROPERTY GRAPH g1 VERTEX TABLES (vtab) EDGE TABLES (etab KEY (eid) SOURCE KEY (src) REFERENCES vtab(id) DESTINATION KEY (dst) REFERENCES vtab(id)); CREATE TABLE outer_t (val int); CREATE VIEW v AS SELECT * FROM outer_t, GRAPH_TABLE (g1 MATCH (a IS vtab) COLUMNS (a.name AS src_name, outer_t.val AS oval)); pg_dump -d foo -p 5433 pg_dump: error: query failed: ERROR: bogus varlevelsup: 0 offset 0 pg_dump: detail: Query was: SELECT pg_catalog.pg_get_viewdef('173849'::pg_catalog.oid) AS viewdef Problem: deparse_context context variable declared in the case RTE_GRAPH_TABLE shadows the function's deparse_context *context parameter. The zeroed struct has namespaces = NIL, so when get_rule_expr() reaches a Var node, get_variable() sees list_length(context->namespaces) == 0 and raises the error. Property references are fine because GraphPropertyRef deparsing never touches namespaces. Fix: Remove the shadowing local variable and pass the outer context pointer to get_rule_expr(). Attached a patch with a fix, additionally added a test. Thanks, Satya --000000000000485c39064fb767a6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi hackers,

pg_get_viewdef() fails with= ERROR: bogus varlevelsup: 0 offset 0 for any
view containing a GRAPH_TA= BLE whose COLUMNS clause references an outer (lateral)
table. This also = breaks pg_dump and \d+ for any database containing such a
view.

Repro:

CREATE TABLE vtab (id int PR= IMARY KEY, name text);
CREATE TABLE etab (eid int PRIMARY KEY,
=C2=A0= =C2=A0 src int REFERENCES vtab(id), dst int REFERENCES vtab(id));
CREAT= E PROPERTY GRAPH g1
=C2=A0 =C2=A0 VERTEX TABLES (vtab)
=C2=A0 =C2=A0 = EDGE TABLES (etab KEY (eid)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 SOURCE KEY (src)= REFERENCES vtab(id)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 DESTINATION KEY (dst) R= EFERENCES vtab(id));
CREATE TABLE outer_t (val int);

CREATE VIEW = v AS
=C2=A0 SELECT * FROM outer_t,
=C2=A0 =C2=A0 GRAPH_TABLE (g1 MATC= H (a IS vtab)
=C2=A0 =C2=A0 =C2=A0 COLUMNS (a.= name AS src_name, outer_t.val AS oval));

pg_dump -d foo -p 5433<= br>pg_dump: error: query failed: ERROR: =C2=A0bogus varlevelsup: 0 offset 0=
pg_dump: detail: Query was: SELECT pg_catalog.pg_get_viewdef('17384= 9'::pg_catalog.oid) AS viewdef

Problem:
<= div>deparse_context context variable declared in the case=C2=A0RTE_GRAPH_TA= BLE shadows the function's=C2=A0
deparse_context *context par= ameter. The zeroed struct has namespaces =3D NIL, so when get_rule_expr()= =C2=A0
reaches a Var node, get_variable() sees list_length(contex= t->namespaces) =3D=3D 0 and raises the error. Property
references a= re fine because GraphPropertyRef deparsing never touches namespaces.<= div>
Fix:
Remove the shadowing local variable and p= ass the outer context pointer to get_rule_expr(). Attached a patch
with a fix, additionally added a test.

Thanks,
Satya

--000000000000485c39064fb767a6-- --000000000000485c3a064fb767a8 Content-Type: application/octet-stream; name="0001-Fix-pg_get_viewdef-crash-for-GRAPH_TABLE-views-with-.patch" Content-Disposition: attachment; filename="0001-Fix-pg_get_viewdef-crash-for-GRAPH_TABLE-views-with-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo41ltyo0 RnJvbSBmOTY2Nzg5OTE1NGU2YTQyZTZlNzNkOWYyMTM5MzM4NGE5ZmYxZGMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBVYnVudHUKIDxhenVyZXVzZXJAcGdjbGllbnQuNXNkdnc1ZGFj Mmh1M28zZnJmZGczc3h5ZGQuenguaW50ZXJuYWwuY2xvdWRhcHAubmV0PgpEYXRlOiBTYXQsIDE4 IEFwciAyMDI2IDA3OjM0OjU4ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gRml4IHBnX2dldF92aWV3 ZGVmKCkgY3Jhc2ggZm9yIEdSQVBIX1RBQkxFIHZpZXdzIHdpdGggbGF0ZXJhbAogY29sdW1uIHJl ZnMKCmdldF9mcm9tX2NsYXVzZV9pdGVtKCkgaW4gcnVsZXV0aWxzLmMgZGVjbGFyZXMgYSBsb2Nh bCAnZGVwYXJzZV9jb250ZXh0CmNvbnRleHQgPSB7MH0nIGluc2lkZSB0aGUgUlRFX0dSQVBIX1RB QkxFIENPTFVNTlMgbG9vcCwgd2hpY2ggc2hhZG93cyB0aGUKZnVuY3Rpb24ncyAnZGVwYXJzZV9j b250ZXh0ICpjb250ZXh0JyBwYXJhbWV0ZXIuIFRoZSB6ZXJvZWQgc3RydWN0IGhhcwpuYW1lc3Bh Y2VzID0gTklMLCBzbyB3aGVuIGdldF9ydWxlX2V4cHIoKSBlbmNvdW50ZXJzIGEgVmFyIG5vZGUg KGZyb20gYQpsYXRlcmFsIGNvbHVtbiByZWZlcmVuY2UgaW4gQ09MVU1OUyksIGdldF92YXJpYWJs ZSgpIGZpbmRzIGxpc3RfbGVuZ3RoKDApCmFuZCBlcnJvcnMgd2l0aCAnYm9ndXMgdmFybGV2ZWxz dXA6IDAgb2Zmc2V0IDAnLgoKRml4IGJ5IHJlbW92aW5nIHRoZSBzaGFkb3dpbmcgbG9jYWwgdmFy aWFibGUgYW5kIHBhc3NpbmcgdGhlIG91dGVyIGNvbnRleHQKcG9pbnRlciB0aHJvdWdoIHRvIGdl dF9ydWxlX2V4cHIoKSwgd2hpY2ggaXMgd2hhdCBldmVyeSBvdGhlciBSVEUgY2FzZSBpbgp0aGlz IGZ1bmN0aW9uIGFscmVhZHkgZG9lcy4KClRoaXMgY3Jhc2ggYWZmZWN0cyBwZ19nZXRfdmlld2Rl ZigpLCBwZ19kdW1wLCBhbmQgcHNxbCdzIFxkKyBmb3IgYW55IHZpZXcKY29udGFpbmluZyBhIEdS QVBIX1RBQkxFIHdpdGggbGF0ZXJhbCBjb2x1bW4gcmVmZXJlbmNlcyBpbiBpdHMgQ09MVU1OUwpj bGF1c2UuCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgfCAg NSArLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQgfCAxOSAr KysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwg ICAgICB8IDExICsrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDA5MGU4Y2My Li4xNDhlYjViYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTMwOTcsMTYgKzEz MDk3LDEzIEBAIGdldF9mcm9tX2NsYXVzZV9pdGVtKE5vZGUgKmp0bm9kZSwgUXVlcnkgKnF1ZXJ5 LCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJCQkJCWZvcmVhY2gobGMsIHJ0ZS0+Z3JhcGhf dGFibGVfY29sdW1ucykKIAkJCQkJewogCQkJCQkJVGFyZ2V0RW50cnkgKnRlID0gbGZpcnN0X25v ZGUoVGFyZ2V0RW50cnksIGxjKTsKLQkJCQkJCWRlcGFyc2VfY29udGV4dCBjb250ZXh0ID0gezB9 OwogCiAJCQkJCQlpZiAoIWZpcnN0KQogCQkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCAiLCAiKTsKIAkJCQkJCWVsc2UKIAkJCQkJCQlmaXJzdCA9IGZhbHNlOwogCi0JCQkJCQljb250 ZXh0LmJ1ZiA9IGJ1ZjsKLQotCQkJCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSB0ZS0+ZXhwciwg JmNvbnRleHQsIGZhbHNlKTsKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgdGUtPmV4cHIs IGNvbnRleHQsIGZhbHNlKTsKIAkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIEFT ICIpOwogCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIo dGUtPnJlc25hbWUpKTsKIAkJCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ncmFwaF90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3Rh YmxlLm91dAppbmRleCBiNTc5ZTNkZi4uZDdiNzY3YmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZ3JhcGhfdGFibGUub3V0CkBAIC05MzIsNiArOTMyLDI1IEBAIFNFTEVDVCBwZ19nZXRf dmlld2RlZignY3VzdG9tZXJzX3VzJzo6cmVnY2xhc3MpOwogICAgT1JERVIgQlkgY3VzdG9tZXJf bmFtZSwgcHJvZHVjdF9uYW1lOwogKDEgcm93KQogCistLSBydWxldXRpbHMgcmV2ZXJzZSBwYXJz aW5nIHdpdGggbGF0ZXJhbCBjb2x1bW4gcmVmZXJlbmNlIGluIENPTFVNTlMKK0NSRUFURSBUQUJM RSBsYXRlcmFsX3QgKHZhbCBpbnQpOworSU5TRVJUIElOVE8gbGF0ZXJhbF90IFZBTFVFUyAoMSk7 CitDUkVBVEUgVklFVyBndF9sYXRlcmFsX3ZpZXcgQVMKKyAgU0VMRUNUICogRlJPTSBsYXRlcmFs X3QsCisgICAgR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpCisgICAg ICBDT0xVTU5TIChjLm5hbWUgQVMgY25hbWUsIGxhdGVyYWxfdC52YWwgQVMgbHZhbCkpOworU0VM RUNUIHBnX2dldF92aWV3ZGVmKCdndF9sYXRlcmFsX3ZpZXcnOjpyZWdjbGFzcyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgbGF0ZXJhbF90LnZhbCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICJncmFwaF90YWJsZSIuY25hbWUsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgImdyYXBoX3RhYmxlIi5sdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZST00gbGF0ZXJh bF90LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEdSQVBIX1RBQkxFIChteXNob3AgTUFU Q0ggKGMgSVMgY3VzdG9tZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY25hbWUsIGxhdGVyYWxfdC52 YWwgQVMgbHZhbCkpOworKDEgcm93KQorCitEUk9QIFZJRVcgZ3RfbGF0ZXJhbF92aWV3OworRFJP UCBUQUJMRSBsYXRlcmFsX3Q7CiAtLSB0ZXN0IHZpZXcvZ3JhcGggbmVzdGluZwogQ1JFQVRFIFZJ RVcgY3VzdG9tZXJzX3ZpZXcgQVMgU0VMRUNUIGN1c3RvbWVyX2lkLCAncmVkYWN0ZWQnIHx8IGN1 c3RvbWVyX2lkIEFTIG5hbWVfcmVkYWN0ZWQsIGFkZHJlc3MgRlJPTSBjdXN0b21lcnM7CiBTRUxF Q1QgKiBGUk9NIGN1c3RvbWVyczsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dy YXBoX3RhYmxlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbAppbmRl eCA0ZmY5ODgxNy4uOTBlNWVhMmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dy YXBoX3RhYmxlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwK QEAgLTUyOCw2ICs1MjgsMTcgQEAgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzQgTUFUQ0gg KHMgV0hFUkUgcy5pZCA9IDMpLVtlXS0oZCkgQ09MVU1OUyAocy52YWwsIGUKIENSRUFURSBWSUVX IGN1c3RvbWVyc191cyBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0gg KGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRl cnMgfCBjdXN0b21lcl93aXNobGlzdHMgXS0+KGwgSVMgb3JkZXJzIHwgd2lzaGxpc3RzKS1bIElT IGxpc3RfaXRlbXNdLT4ocCBJUyBwcm9kdWN0cykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVy X25hbWUsIHAubmFtZSBBUyBwcm9kdWN0X25hbWUpKSBPUkRFUiBCWSBjdXN0b21lcl9uYW1lLCBw cm9kdWN0X25hbWU7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ2N1c3RvbWVyc191cyc6OnJlZ2Ns YXNzKTsKIAorLS0gcnVsZXV0aWxzIHJldmVyc2UgcGFyc2luZyB3aXRoIGxhdGVyYWwgY29sdW1u IHJlZmVyZW5jZSBpbiBDT0xVTU5TCitDUkVBVEUgVEFCTEUgbGF0ZXJhbF90ICh2YWwgaW50KTsK K0lOU0VSVCBJTlRPIGxhdGVyYWxfdCBWQUxVRVMgKDEpOworQ1JFQVRFIFZJRVcgZ3RfbGF0ZXJh bF92aWV3IEFTCisgIFNFTEVDVCAqIEZST00gbGF0ZXJhbF90LAorICAgIEdSQVBIX1RBQkxFICht eXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzKQorICAgICAgQ09MVU1OUyAoYy5uYW1lIEFTIGNu YW1lLCBsYXRlcmFsX3QudmFsIEFTIGx2YWwpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZignZ3Rf bGF0ZXJhbF92aWV3Jzo6cmVnY2xhc3MpOworRFJPUCBWSUVXIGd0X2xhdGVyYWxfdmlldzsKK0RS T1AgVEFCTEUgbGF0ZXJhbF90OworCiAtLSB0ZXN0IHZpZXcvZ3JhcGggbmVzdGluZwogCiBDUkVB VEUgVklFVyBjdXN0b21lcnNfdmlldyBBUyBTRUxFQ1QgY3VzdG9tZXJfaWQsICdyZWRhY3RlZCcg fHwgY3VzdG9tZXJfaWQgQVMgbmFtZV9yZWRhY3RlZCwgYWRkcmVzcyBGUk9NIGN1c3RvbWVyczsK LS0gCjIuNDMuMAoK --000000000000485c3a064fb767a8--