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.94.2) (envelope-from ) id 1rvpiJ-00EnkF-PB for pgsql-general@arkaria.postgresql.org; Sun, 14 Apr 2024 02:35:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rvpiH-006A0n-37 for pgsql-general@arkaria.postgresql.org; Sun, 14 Apr 2024 02:35:25 +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.94.2) (envelope-from ) id 1rvpiG-006A0f-N2 for pgsql-general@lists.postgresql.org; Sun, 14 Apr 2024 02:35:24 +0000 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rvpiB-000p1z-Iz for pgsql-general@postgresql.org; Sun, 14 Apr 2024 02:35:23 +0000 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-221e6bf537dso1354574fac.1 for ; Sat, 13 Apr 2024 19:35:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713062117; x=1713666917; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Vj8Zp2hDQaE+y01jqnQPEXhaGOA86hXJiCf03d+dJpQ=; b=GS1fcq/pbk8eMWJCgFote6CtdLCkZiajw2kviclA+W/RDDlqloeyK1jMpeD7zfHTLV aDQ9kYJ57u/uB//aIvMCFQWJbhNapnhWfUTwLqP2kMrTyOxTWyRTlIYceZQ9mrfUzI34 mOQxXJq4eGD5GH+zhXvD1Kwzt1Nl39tpjomOpfctWZ/r0m2T5++A4zmmtDxRwpDFcF7o TDNwmAmDxrkNrm9hpu5WnkVTpmrspUwyMJMUDqCBBF+QVXV5XXt3K91GZ9Af0STwKL4n b+HQwCvPnavfM/FdCsQOWn/rDt4fBk/jrd46+OL25K1G1W2AjucIbHsHu1yP/3En4tA/ UPBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713062117; x=1713666917; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Vj8Zp2hDQaE+y01jqnQPEXhaGOA86hXJiCf03d+dJpQ=; b=HoW2UbMsFc3QBcD/WKDZmw3tUspoQ+yhA1QN5VMwCcbQcUtVEofe/+Q9o4lQ7yBh6+ BuGkDPFM440HqDc179vQLbJziFpJCLyRz5uB4zb4tIjO9G8ZJdTTYe2nYtsKxqwIxH/2 Mto9FqoxI/SDhEPMyAg6LTk8X/DFiVg874hw7thD8A6Zl2jlHdue1lOlZBGqTNS+bxZQ HNRFX7nHysSriM78zfj7VyApqhHOF+z065GlN32NcFkq1AhaUUXDMY5t3TvoarFkQcEY RtiWtKJ5xpG5yQ0H2ZPY2NESZsywugTFuV0mpHaCY7/M/0YBOI6lY0dikB5bIi2TvWxA 4VLg== X-Gm-Message-State: AOJu0YyOXv8eB49JbjqPy9v3XYMQ5geZo9VseWXM4yWDg/MbTtOvO0lw wKkFEVIvvcka08B71q3uMXZBvVgkzb/vE4QugQ7wdKP4y+7t/ZjkBCynJvq35UuZk0pAGWc26GY hMFSROn35jFd1oFYnH08eH0OjXv9Yj1FG X-Google-Smtp-Source: AGHT+IENLfQyX3LnFaGfzFnJO6OVBz+cG1QvF01WYpjHqR59VElpVfRU6qkm8IcuiVdMYorM3ATOvJXJeOAdjzGnzCI= X-Received: by 2002:a05:6871:713:b0:220:941d:18b7 with SMTP id f19-20020a056871071300b00220941d18b7mr7132811oap.59.1713062116607; Sat, 13 Apr 2024 19:35:16 -0700 (PDT) MIME-Version: 1.0 From: Ron Johnson Date: Sat, 13 Apr 2024 22:35:05 -0400 Message-ID: Subject: Recursively trace all Foreign Key "referenced by" tables? To: pgsql-general Content-Type: multipart/mixed; boundary="000000000000f063e70616055a48" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f063e70616055a48 Content-Type: multipart/alternative; boundary="000000000000f063e60616055a46" --000000000000f063e60616055a46 Content-Type: text/plain; charset="UTF-8" The attached PG function dba.get_fk_referenced_by() has been tested on PG 9.6 and 14. A recursive bash function (also attached) calls the PG function, and displays the whole tree of tables that the table in question depends on. Output also attached. Is there a better way to do this? (I'm limited to scripting languages and what can be installed from RPM files.) --000000000000f063e60616055a46 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The attached PG function=C2=A0dba.get_fk_referenced_by() h= as been tested on PG 9.6 and 14.

A=C2=A0recursive=C2=A0b= ash function (also attached) calls the PG function, and displays the whole = tree of tables that the table in question depends on.=C2=A0 Output also att= ached.

Is there a better way to do this?=C2=A0 (I&= #39;m limited to scripting languages and what can be installed from RPM fil= es.)
--000000000000f063e60616055a46-- --000000000000f063e70616055a48 Content-Type: text/plain; charset="US-ASCII"; name="FK tree.txt" Content-Disposition: attachment; filename="FK tree.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_luywr9d90 DQpmazggKCkNCnsNCiAgICBsb2NhbCAgICBUYmw9JDENCiAgICBsb2NhbCAgICBQYWRkaW5nPSQy DQogICAgbG9jYWwgLWkgTGV2ZWw9JDMNCiAgICBsb2NhbCAgICBUYmxGS0ZsZA0KICAgIGxvY2Fs ICAgIHQNCiAgICBsb2NhbCAgICBDaGxkRktGbGQNCiAgICBsb2NhbCAgICBDaGxkSWR4DQogICAg bG9jYWwgLWkgQ250PTANCiAgICBsb2NhbCAgICBzcWw9IlNFTEVDVCB0aGlzX2NvbHVtbiwgUkVQ TEFDRShkb3duc3RyZWFtX3RhYmxlLCAnXCInLCAnJyksIGRvd25zdHJlYW1fY29sdW1uLCBkb3du c3RyZWFtX2luZGV4IA0KICAgICAgICAgICAgICAgICAgRlJPTSBkYmEuZ2V0X2ZrX3JlZmVyZW5j ZWRfYnkoJyRUYmwnKTsiDQogICAgaWYgWyAkTGV2ZWwgPSAwIF07IHRoZW4gTGV2ZWw9MTsgZmkN CiAgICBpZiBbIC16ICRQYWRkaW5nIF07IHRoZW4gUGFkZGluZz0iKysrIjsgZmkNCiAgICB3aGls ZSBJRlM9JCdcdCcgcmVhZCAtciAtYSBSDQogICAgZG8NCiAgICAgICAgQ250PSQoKENudCsxKSkN CiAgICAgICAgVGJsRktGbGQ9JHtSWzBdfQ0KICAgICAgICB0PSR7UlsxXX0NCiAgICAgICAgQ2hs ZEZLRmxkPSR7UlsyXX0NCiAgICAgICAgQ2hsZElkeD0iJHtSWzNdfSINCiAgICAgICAgcHJpbnRm ICIlMTBkJTAyZCAlcyAlLTM1cyAlLTMwcyAlLTMwc1xuIiAkTGV2ZWwgJENudCAkUGFkZGluZyAk dCAkQ2hsZEZLRmxkICIkQ2hsZElkeCINCiAgICAgICAgZms4ICR0ICIke1BhZGRpbmd9KysrKyIg JCgoTGV2ZWwqMTAwK0NudCkpIA0KICAgIGRvbmUgPCA8KHBzcWwgQ0RTTEJYVyAtWHRBRiQnXHQn IC1jICIkc3FsIikNCiAgICBpZiBbWyAkTGV2ZWwgPSAxIF1dDQogICAgdGhlbg0KICAgICAgICBw cmludGYgIiAgJTEwZCAlc1xuIiAkTGV2ZWwgJFRibA0KICAgIGZpDQp9DQoNCi8qDQogICAgX3Bf dGFibGVfbmFtZSBtdXN0IGJlIHNjaGVtYS50YWJsZV9uYW1lIChFeGFtcGxlOiB0bXMuZG9jdW1l bnQpDQoqLw0KQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gZGJhLmdldF9ma19yZWZlcmVuY2Vk X2J5KF9wX3RhYmxlX25hbWUgVEVYVCkgDQogICAgUkVUVVJOUyBUQUJMRSAodGhpc19jb2x1bW4g VEVYVA0KICAgICAgICAgICAgICAgICAgLCBkb3duc3RyZWFtX3RhYmxlIFRFWFQNCiAgICAgICAg ICAgICAgICAgICwgZG93bnN0cmVhbV9jb2x1bW4gVEVYVA0KICAgICAgICAgICAgICAgICAgLCBk b3duc3RyZWFtX2luZGV4IFRFWFQpDQogICAgTEFOR1VBR0UgcGxwZ3NxbCANCiAgICBBUyANCiQk DQogICAgREVDTEFSRQ0KICAgICAgICBfdl9uYW1lIFRFWFQ7IA0KICAgICAgICBfdl9kb3duc3Ry ZWFtX2luZGV4X25hbWUgTkFNRTsNCiAgICAgICAgX2NfZG93bnN0cmVhbSBDVVJTT1IgRk9SDQog ICAgICAgIHNlbGVjdCBhdHQyLmF0dG5hbWU6OnRleHQgQVMgdGhpc19jb2x1bW4NCiAgICAgICAg ICAgICAgICAsIGNsYTIucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2U6OnRleHR8fCcuJ3x8Y28u Y29ucmVsaWQ6OnJlZ2NsYXNzOjp0ZXh0IEFTIGRvd25zdHJlYW1fdGFibGUNCiAgICAgICAgICAg ICAgICAsIGNvLmNvbnJlbGlkIEFTIGRvd25zdHJlYW1fb2lkDQogICAgICAgICAgICAgICAgLCBh dHQxLmF0dG5hbWU6OnRleHQgQVMgZG93bnN0cmVhbV9jb2x1bW4NCiAgICAgICAgZnJvbSBwZ19j b25zdHJhaW50IGNvDQogICAgICAgICAgICBpbm5lciBqb2luIHBnX2NsYXNzIGNsYTENCiAgICAg ICAgICAgICAgICBvbiBjby5jb25mcmVsaWQgPSBjbGExLm9pZA0KICAgICAgICAgICAgaW5uZXIg am9pbiBwZ19jbGFzcyBjbGEyDQogICAgICAgICAgICAgICAgb24gY28uY29ucmVsaWQgPSBjbGEy Lm9pZA0KICAgICAgICAgICAgaW5uZXIgam9pbiBwZ19hdHRyaWJ1dGUgYXR0MQ0KICAgICAgICAg ICAgICAgIG9uIGNvLmNvbnJlbGlkID0gYXR0MS5hdHRyZWxpZA0KICAgICAgICAgICAgaW5uZXIg am9pbiBwZ19hdHRyaWJ1dGUgYXR0Mg0KICAgICAgICAgICAgICAgIG9uIGNvLmNvbmZyZWxpZCA9 IGF0dDIuYXR0cmVsaWQNCiAgICAgICAgd2hlcmUgY28uY29udHlwZSA9ICdmJw0KICAgICAgICAg ICAgYW5kIGNsYTEucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2U6OnRleHR8fCcuJ3x8Y2xhMS5y ZWxuYW1lID0gX3BfdGFibGVfbmFtZQ0KICAgICAgICAgICAgYW5kIGF0dDEuYXR0bnVtID0gY28u Y29ua2V5WzFdDQogICAgICAgICAgICBhbmQgYXR0Mi5hdHRudW0gPSBjby5jb25ma2V5WzFdDQog ICAgICAgIG9yZGVyIGJ5IDI7DQogICAgQkVHSU4NCiAgICAgICAgX3ZfbmFtZSA6PSBUUklNKEJP VEggRlJPTSBfcF90YWJsZV9uYW1lKTsNCiAgICAgICAgUEVSRk9STSByZWxuYW1lDQogICAgICAg IEZST00gcGdfY2xhc3MNCiAgICAgICAgV0hFUkUgcmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2U6 OnRleHR8fCcuJ3x8cmVsbmFtZSA9IF92X25hbWUNCiAgICAgICAgICBBTkQgcmVsa2luZCA9ICdy JzsNCiAgICAgICAgSUYgTk9UIEZPVU5EIFRIRU4gDQogICAgICAgICAgICBkb3duc3RyZWFtX3Rh YmxlIDo9IF92X25hbWU7DQogICAgICAgICAgICBkb3duc3RyZWFtX2NvbHVtbiA6PSAnZG9lcyBu b3QgZXhpc3QnOw0KICAgICAgICAgICAgZG93bnN0cmVhbV9pbmRleCA6PSBOVUxMOw0KICAgICAg ICAgICAgUkVUVVJOIE5FWFQ7DQogICAgICAgICAgICBSRVRVUk47DQogICAgICAgIEVORCBJRjsN CiAgICAgICAgRk9SIGkgSU4gX2NfZG93bnN0cmVhbQ0KICAgICAgICBMT09QDQogICAgICAgICAg ICB0aGlzX2NvbHVtbiA6PSBpLnRoaXNfY29sdW1uOw0KICAgICAgICAgICAgZG93bnN0cmVhbV90 YWJsZSA6PSBpLmRvd25zdHJlYW1fdGFibGU7DQogICAgICAgICAgICBkb3duc3RyZWFtX2NvbHVt biA6PSBpLmRvd25zdHJlYW1fY29sdW1uOw0KICAgICAgICAgICAgU0VMRUNUIGluZGV4cmVsaWQ6 OnJlZ2NsYXNzOjp0ZXh0DQogICAgICAgICAgICBpbnRvIGRvd25zdHJlYW1faW5kZXgNCiAgICAg ICAgICAgIEZST00gcGdfaW5kZXgNCiAgICAgICAgICAgICAgICBJTk5FUiBKT0lOIHBnX2F0dHJp YnV0ZSBPTiBpbmRleHJlbGlkID0gYXR0cmVsaWQNCiAgICAgICAgICAgIFdIRVJFIGluZHJlbGlk ID0gaS5kb3duc3RyZWFtX29pZA0KICAgICAgICAgICAgICBBTkQgYXR0bmFtZSA9IGkuZG93bnN0 cmVhbV9jb2x1bW47DQogICAgICAgICAgICBJRiBkb3duc3RyZWFtX2luZGV4IElTIE5VTEwgVEhF Tg0KICAgICAgICAgICAgICAgIGRvd25zdHJlYW1faW5kZXggOj0gJ0FMRVJUISEhIE1JU1NJTkcg SU5ERVgnOw0KICAgICAgICAgICAgRU5EIElGOw0KICAgICAgICAgICAgUkVUVVJOIE5FWFQ7DQog ICAgICAgIEVORCBMT09QOw0KICAgIEVORDsNCiQkOw0KDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCg0KJCAuIGZrLnNoICYmIGZrOCB0bXMuYmF0Y2gNCiAgICAgICAgIDEwMSArKysg Y2RzLnJlbF94OTM3YnVuZGxlX2JhdGNoICAgICAgICAgICAgYmF0Y2hfaWQgICAgICAgICAgICAg ICAgICAgICAgIGlkeF9jZHNfcmVsX3g5MzdidW5kbGVfYmF0Y2ggIA0KICAgICAgICAgMTAyICsr KyB0bXMuYWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaF9pZCAgICAgICAgICAg ICAgICAgICAgICAgaWR4X2FjdGlvbl9iYXRjaF9pZCAgICAgICAgICAgDQogICAgICAgICAxMDMg KysrIHRtcy5hbGVydGVkX3dhdGNobGlzdCAgICAgICAgICAgICAgIGJhdGNoX2lkICAgICAgICAg ICAgICAgICAgICAgICBBTEVSVCEhISBNSVNTSU5HIElOREVYICAgICAgICANCiAgICAgICAgIDEw NCArKysgdG1zLmJhdGNoX2Fzc29jaWF0aW9uICAgICAgICAgICAgICAgYmF0Y2hfaWQgICAgICAg ICAgICAgICAgICAgICAgIGlkeF9iYXRjaF9hc3NvY2lhdGlvbl9iYXRjaF9pZA0KICAgICAgICAg MTA1ICsrKyB0bXMuYmF0Y2hfY2xlYXJpbmdfYXVkaXQgICAgICAgICAgICBiYXRjaF9pZCAgICAg ICAgICAgICAgICAgICAgICAgaWR4X2JhdGNoX2NsZWFyaW5nX2F1ZGl0X2JhdGNoX2lkDQogICAg ICAgICAxMDYgKysrIHRtcy5iYXRjaF9mb3JtYXQgICAgICAgICAgICAgICAgICAgIGJhdGNoX2lk ICAgICAgICAgICAgICAgICAgICAgICBpZHhfYmF0Y2hfZm9ybWF0X2JhdGNoX2lkICAgICANCiAg ICAgICAxMDYwMSArKysrKysrIHRtcy5iYXRjaF9mb3JtYXRfaXRlbSAgICAgICAgICAgICAgIGJh dGNoX2Zvcm1hdF9pZCAgICAgICAgICAgICAgICBpZHhfYmF0Y2hfZm9ybWF0X2l0ZW1fYmF0Y2hf Zm9ybWF0X2lkDQogICAgICAgICAxMDcgKysrIHRtcy5iYXRjaF9pdGVtX21hcHBpbmcgICAgICAg ICAgICAgIGJhdGNoX2lkICAgICAgICAgICAgICAgICAgICAgICBpZHhfYmF0Y2hfaXRlbV9tYXBw aW5nX2JhdGNoX2lkDQogICAgICAgICAxMDggKysrIHRtcy5iYXRjaF90cmlnZ2VyICAgICAgICAg ICAgICAgICAgIGJhdGNoX2lkICAgICAgICAgICAgICAgICAgICAgICBpZHhfYmF0Y2hfdHJpZ2dl cl9iYXRjaF9pZCAgICANCiAgICAgICAgIDEwOSArKysgdG1zLm9wZXJhdG9yICAgICAgICAgICAg ICAgICAgICAgICAgYmF0Y2hfaWQgICAgICAgICAgICAgICAgICAgICAgIGlkeF9vcGVyYXRvcl9i YXRjaF9pZCAgICAgICAgIA0KICAgICAgICAgMTEwICsrKyB0bXMuc3ViX2JhdGNoICAgICAgICAg ICAgICAgICAgICAgICBiYXRjaF9pZCAgICAgICAgICAgICAgICAgICAgICAgaWR4X3N1Yl9iYXRj aF9iYXRjaF9pZCAgICAgICAgDQogICAgICAgMTEwMDEgKysrKysrKyBjZHMuY2Rzc3ViYmF0Y2gg ICAgICAgICAgICAgICAgICAgICBjZHNzdWJiYXRjaF9pZCAgICAgICAgICAgICAgICAgcGtfY2Rz c3ViYmF0Y2ggICAgICAgICAgICAgICAgDQogICAgICAgMTEwMDIgKysrKysrKyBjZHMucmVsX3g5 MzdidW5kbGVfc3ViX2JhdGNoICAgICAgICBzdWJfYmF0Y2hfaWQgICAgICAgICAgICAgICAgICAg aWR4X2Nkc19yZWxfeDkzN2J1bmRsZV9zdWJfYmF0Y2gNCiAgICAgICAxMTAwMyArKysrKysrIHRt cy5zdWJfdHJhbnNhY3Rpb24gICAgICAgICAgICAgICAgIHN1Yl9iYXRjaF9pZCAgICAgICAgICAg ICAgICAgICBpZHhfc3ViX3RyYW5zYWN0aW9uX3N1Yl9iYXRjaF9pZA0KICAgICAgICAgMTExICsr KyB0bXMudHJhbnNhY3Rpb24gICAgICAgICAgICAgICAgICAgICBiYXRjaF9pZCAgICAgICAgICAg ICAgICAgICAgICAgaWR4X3RyYW5zYWN0aW9uX2JhdGNoX2lkICAgICAgDQogICAgICAgMTExMDEg KysrKysrKyBjZHMuY2RzdHJhbnNhY3Rpb24gICAgICAgICAgICAgICAgICBjZHN0cmFuc2FjdGlv bl9pZCAgICAgICAgICAgICAgcGtfY2RzdHJhbnNhY3Rpb24gICAgICAgICAgICAgDQogICAgIDEx MTAxMDEgKysrKysrKysrKysgY2RzLnJlbF9jZHN0cmFuc2FjdGlvbl9yZWplY3RydWxlICAgY2Rz dHJhbnNhY3Rpb25faWQgICAgICAgICAgICAgIGlkeF9jZHNfcmVsX2Nkc3RyYW5zYWN0aW9uX3Jl amVjdHJ1bGUNCiAgICAgICAxMTEwMiArKysrKysrIGNkcy5yZWxfeDkzN2J1bmRsZV90cmFuc2Fj dGlvbiAgICAgIHRyYW5zYWN0aW9uX2lkICAgICAgICAgICAgICAgICBpZHhfY2RzX3JlbF94OTM3 YnVuZGxlX3RyYW5zYWN0aW9uDQogICAgICAgMTExMDMgKysrKysrKyB0bXMuZG9jdW1lbnQgICAg ICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pZCAgICAgICAgICAgICAgICAgaWR4X2Rv Y3VtZW50X3RyYW5zYWN0aW9uX2lkICAgDQogICAgIDExMTAzMDEgKysrKysrKysrKysgY2RzLmNk c2RvY3VtZW50ICAgICAgICAgICAgICAgICAgICAgY2RzZG9jdW1lbnRfaWQgICAgICAgICAgICAg ICAgIHBrX2Nkc2RvY3VtZW50ICAgICAgICAgICAgICAgIA0KICAgMTExMDMwMTAxICsrKysrKysr KysrKysrKyBjZHMucmVsX2Nkc2RvY3VtZW50X3JlamVjdHJ1bGUgICAgICBjZHNkb2N1bWVudF9p ZCAgICAgICAgICAgICAgICAgaWR4X2Nkc19yZWxfY2RzZG9jdW1lbnRfcmVqZWN0cnVsZV9kb2N1 bWVudGlkDQogICAgIDExMTAzMDIgKysrKysrKysrKysgdG1zLmRvY2Zvcm1hdCAgICAgICAgICAg ICAgICAgICAgICAgZG9jdW1lbnRfaWQgICAgICAgICAgICAgICAgICAgIGlkeF9kb2Nmb3JtYXRf ZG9jdW1lbnRfaWQgICAgIA0KICAgMTExMDMwMjAxICsrKysrKysrKysrKysrKyB0bXMuZG9jZm9y bWF0X3JlZmVyZW5jZSAgICAgICAgICAgICBmb3JtYXRfaWQgICAgICAgICAgICAgICAgICAgICAg aWR4X2RvY2Zvcm1hdF9yZWZlcmVuY2VfZm9ybWF0X2lkDQogMTExMDMwMjAxMDEgKysrKysrKysr KysrKysrKysrKyB0bXMuZG9jZm9ybWF0X2l0ZW0gICAgICAgICAgICAgICAgICByZWZlcmVuY2Vf aWQgICAgICAgICAgICAgICAgICAgaWR4X2RvY2Zvcm1hdF9pdGVtX3JlZmVyZW5jZV9pZA0KICAg ICAxMTEwMzAzICsrKysrKysrKysrIHRtcy5kb2NfaW1hZ2UgICAgICAgICAgICAgICAgICAgICAg IGRvY3VtZW50X2lkICAgICAgICAgICAgICAgICAgICBpZHhfZG9jX2ltYWdlX2RvY3VtZW50X2lk ICAgICANCiAgICAgMTExMDMwNCArKysrKysrKysrKyB0bXMuZG9jX2l0ZW1fbWFwcGluZyAgICAg ICAgICAgICAgICBkb2N1bWVudF9pZCAgICAgICAgICAgICAgICAgICAgaWR4X2RvY19pdGVtX21h cHBpbmdfZG9jdW1lbnRfaWQNCiAgICAgMTExMDMwNSArKysrKysrKysrKyB0bXMubWFya19zZW5z ZV9kZXRhaWwgICAgICAgICAgICAgICBkb2N1bWVudF9pZCAgICAgICAgICAgICAgICAgICAgaWR4 X21hcmtfc2Vuc2VfZGV0YWlsX2RvY3VtZW50X2lkDQogICAgICAgMTExMDQgKysrKysrKyB0bXMu cGF5bWVudCAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pZCAgICAgICAgICAg ICAgICAgaWR4X3BheW1lbnRfdHJhbnNhY3Rpb25faWQgICAgDQogICAgIDExMTA0MDEgKysrKysr KysrKysgY2RzLmNkc3BheW1lbnQgICAgICAgICAgICAgICAgICAgICAgY2RzcGF5bWVudF9pZCAg ICAgICAgICAgICAgICAgIHBrX2Nkc3BheW1lbnQgICAgICAgICAgICAgICAgIA0KICAgMTExMDQw MTAxICsrKysrKysrKysrKysrKyBjZHMucmVsX2Nkc3BheW1lbnRfcmVqZWN0cnVsZSAgICAgICBj ZHNwYXltZW50X2lkICAgICAgICAgICAgICAgICAgaWR4X2Nkc19yZWxfY2RzcGF5bWVudF9yZWpl Y3RydWxlX3BheW1lbnRpZA0KICAgICAxMTEwNDAyICsrKysrKysrKysrIHRtcy5jaGVjayAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBheW1lbnRfaWQgICAgICAgICAgICAgICAgICAgICBpZHhf Y2hlY2tfcGF5bWVudF9pZCAgICAgICAgICANCiAgIDExMTA0MDIwMSArKysrKysrKysrKysrKysg dG1zLmNoZWNrX2NsZWFyaW5nX2F1ZGl0ICAgICAgICAgICAgY2hlY2tfaWQgICAgICAgICAgICAg ICAgICAgICAgIGlkeF9jaGVja19jbGVhcmluZ19hdWRpdF9jaGVja19pZA0KICAgMTExMDQwMjAy ICsrKysrKysrKysrKysrKyB0bXMuY2hlY2tfaXRlbV9tYXBwaW5nICAgICAgICAgICAgICBjaGVj a19pZCAgICAgICAgICAgICAgICAgICAgICAgaWR4X2NoZWNrX2l0ZW1fbWFwcGluZ19jaGVja19p ZA0KICAgMTExMDQwMjAzICsrKysrKysrKysrKysrKyB0bXMuY2hlY2tfcmVmZXJlbmNlICAgICAg ICAgICAgICAgICBjaGVja19pZCAgICAgICAgICAgICAgICAgICAgICAgaWR4X2NoZWNrX3JlZmVy ZW5jZV9jaGVja19pZCAgDQogMTExMDQwMjAzMDEgKysrKysrKysrKysrKysrKysrKyB0bXMuY2hl Y2tfaXRlbSAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VfaWQgICAgICAgICAgICAgICAg ICAgaWR4X2NoZWNrX2l0ZW1fcmVmZXJlbmNlX2lkICAgDQogICAxMTEwNDAyMDQgKysrKysrKysr KysrKysrIHRtcy5nbF90aWNrZXRfaW1hZ2UgICAgICAgICAgICAgICAgIGNoZWNrX2lkICAgICAg ICAgICAgICAgICAgICAgICBpZHhfZ2xfdGlja2V0X2ltYWdlX2NoZWNrX2lkICANCiAgICAgMTEx MDQwMyArKysrKysrKysrKyB0bXMuY2hrX2ltYWdlICAgICAgICAgICAgICAgICAgICAgICBwYXlt ZW50X2lkICAgICAgICAgICAgICAgICAgICAgaWR4X2Noa19pbWFnZV9wYXltZW50X2lkICAgICAg DQogICAgIDExMTA0MDQgKysrKysrKysrKysgdG1zLmNoa19vcmlnaW5hbF9pbWFnZSAgICAgICAg ICAgICAgcGF5bWVudF9pZCAgICAgICAgICAgICAgICAgICAgIGlkeF9jaGtfb3JpZ2luYWxfaW1h Z2VfcGF5bWVudF9pZA0KICAgICAxMTEwNDA1ICsrKysrKysrKysrIHRtcy5jcmVkaXRfY2FyZCAg ICAgICAgICAgICAgICAgICAgIHBheW1lbnRfaWQgICAgICAgICAgICAgICAgICAgICBpZHhfY3Jl ZGl0X2NhcmRfcGF5bWVudF9pZCAgICANCiAgICAgMTExMDQwNiArKysrKysrKysrKyB0bXMuZmxv YXQgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXltZW50X2lkICAgICAgICAgICAgICAgICAg ICAgaWR4X2Zsb2F0X3BheW1lbnRfaWQgICAgICAgICAgDQogICAgICAgMTExMDUgKysrKysrKyB0 bXMuc3ViX3RyYW5zYWN0aW9uICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pZCAgICAgICAg ICAgICAgICAgaWR4X3N1Yl90cmFuc2FjdGlvbl90cmFuc2FjdGlvbl9pZA0KICAgICAgICAgICAx IHRtcy5iYXRjaA0K --000000000000f063e70616055a48--