From fb15128d7fc792ec39107ead720d2908ca69d7e3 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Tue, 21 Jul 2026 19:29:41 +0000 Subject: [PATCH] runtime: publish HOMELAB-128-FINAL-DECISION-129 --- .../HOMELAB-128-FINAL-DECISION-129.json | 30 ++++++++++++ .../HOMELAB-128-FINAL-DECISION-129.txt | 32 +++++++++++++ runtime/latest.json | 14 +++--- runtime/latest.txt | 48 ++++--------------- 4 files changed, 79 insertions(+), 45 deletions(-) create mode 100644 runtime/history/HOMELAB-128-FINAL-DECISION-129.json create mode 100644 runtime/history/HOMELAB-128-FINAL-DECISION-129.txt diff --git a/runtime/history/HOMELAB-128-FINAL-DECISION-129.json b/runtime/history/HOMELAB-128-FINAL-DECISION-129.json new file mode 100644 index 0000000..5a391a6 --- /dev/null +++ b/runtime/history/HOMELAB-128-FINAL-DECISION-129.json @@ -0,0 +1,30 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "HOMELAB-128-FINAL-DECISION-129", + "status": "FAIL", + "rc": 1, + "host": "pve01", + "mode": "read-only", + "component": "cluster-audit", + "started_at_utc": "2026-07-21T19:29:40Z", + "finished_at_utc": "2026-07-21T19:29:40Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752", + "command_sha256": "f809088538067a6961a82327fd0b443ab113d2d3cb5a1f19e60b9815c4778089", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "changes_made": false, + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "cc67c53b8ddadc66b18648c5ccfb5ef258fd7782ddf58b40171b0e29e5a2a9dd", + "sanitized_output_sha256": "cc67c53b8ddadc66b18648c5ccfb5ef258fd7782ddf58b40171b0e29e5a2a9dd", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "Traceback (most recent call last):\n File \"\", line 1, in \n import base64,zlib;exec(compile(zlib.decompress(base64.b64decode(\"eJyVGGtv4rj2O78i11oJ2FtgOpod7VSKrlJI22yBsCHMQ93eyAJpGu3sODi0/fedOEmTlJA0uRz5+fF8Ty6poVLfHdYjW3Ga08asxko9Xwtk+iYm+5HmtBJv6z/bKzMWdbLFoq4omvk1SnA/qc0nJdr2Yjps3pR1uquKYtiw5M0d4V9dXtr4+sK6rc8mI8dJ7Aq+ygqgzn6VxvdXKdr0TJ6KpQa+Ssq9m3C6N5mhQ3VnWK1mYtp6wyreUj+r/F0p4Sp5Lg5zWK/BYWX7QbZQY72z/4tUPNQ6q0Y3xk2TIn1pNWlPw24zSjH1nhpoB+B7rQTP6nE8v7A8VvuvvWQ+XmgZ0X5t0vLzTn7hMNX82y2V2zMW8otz/Yn4cV6qFPH8fTBYu3dxc8J8KKQKcVpPbRdxmKfX8i8w9QstbJd0vCvvZV1Q0ZlHvcw9Q+WvUplnVg8vP3o48O3VXjxPzdbhlYv3j3u1K4n7MxsFzYfHhQ/bqv6G27jsYMl2Vz1m0LzC22uG7t7ydVC3nMmFMZ/eV7w6zK1O8K5xw8axmcPzDGzrNQ6Z3WjqU8vV7g7ZcK+kl1OoM37T+fH8Krr3/PpVb6bLm0M5V7t8Zq5VtGOKs8vQpS0kGkWRTzPNPxfCllgQO6bYQ6pjVVLw8PvXJZhtS93woTiBvNn+eM6+q4r7Wz0xN8c8u3BFT9vM2VvsAjtxXZWJt8v8QmH1Z2S4U1PUX2JkKf0sYdV20fx5aowb4S1NQw2Wn8Sqo3l1AVZ8gQ1uL5pPJb8cAqt3cPVi+R+z7x9fX8TT2JcIhRWk69wmEB9aQZaOjnN0H5pP6T84+TiQt7xph/YmGJdUcnT5fL+Cw1xq2N4l1m2kLq6Pp9FJqVr1+3uV7nnCw2xKkRb0/f0f6ikdmYV5pJ0I4s1n/5iK9AxE5Xq1Hc73mkj10oJ/9bM9wpVv+pqPvwNtv62w8tpn8ZqlV+80X8K7I9flGu3qrr+j6thpmra6w7f7cE3wXdKY+Mtg9apGRtvpS7ZVjLc+OQt8hUfctNz+0c+qTpg3HEo9js3fW7S56PrzMzXXHe15zPy/VyODZPrh3dX2F09QGLk25LsYBD3/QZ0ccSt2YG2RFzQ5VLZvEuy26nFVH4Yv6j5+Mnp8TBTJmGsqT0cR0fWf7Y0vVZzP6Iu8w7DeuGyq9F9ft9pd+kMZ6Cj9gZcCEvVfqj9mFiWl5xY7SJ9sQlP3fH7QF9Yb22fQ1XlE0+7Vhhs3RcW6dAq5LoyrHjb/YVZ8wXn3VZtV9KvZxnJxCOf60XwN3I4lM5WLJ7cskX5R7a3A5iKuImy1Sq7j3Oa5rI5j2m4sZzoUVQ23r2uF6C8mCj22VkHhFY9mRyPng6vPvhBtbCjujLal3qk3I8T3QKcMr4Vjba4EGQkH/Uh2WZ/8HJl2LMjVTDRo1Zl32v5hu1YmHQE7B/Wtpa0taL/8aD3gjUuzsJ5cLZUE3G7ZWVt8E0mS2FfQYv3Y5rvt7tWdpHvCqY1uYZ8XsPSm0Vr2sM3GQXq2o9YUvK/OcO2A9/8YdcWpjT+RX4k8CF8dDRVT6fksN+nrQYvYOme9b4mzN1jA3VhdtPbr1p/nxY3QacPsvrAb24yxdhqXWZ9mePpGkKUq6VvY2zuX6uY4ve/VTr2i8u+mX4GLd1pkZKuc5WitR+tU8fNr9m12W6tMZ5uVwFD/NXj/VF6Jn3N8xWrDkn6hdO6hxO3x/8FU11Nis=\")).decode(),\"\",\"exec\"))\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/lib/python3.13/base64.py\", line 88, in b64decode\n return binascii.a2b_base64(s, strict_mode=validate)\n ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\nbinascii.Error: Invalid base64-encoded string: number of data characters (1729) cannot be 1 more than a multiple of 4\n" +} diff --git a/runtime/history/HOMELAB-128-FINAL-DECISION-129.txt b/runtime/history/HOMELAB-128-FINAL-DECISION-129.txt new file mode 100644 index 0000000..7ef5e6a --- /dev/null +++ b/runtime/history/HOMELAB-128-FINAL-DECISION-129.txt @@ -0,0 +1,32 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=HOMELAB-128-FINAL-DECISION-129 +STATUS=FAIL +RC=1 +HOST=pve01 +MODE=read-only +COMPONENT=cluster-audit +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752 +COMMAND_SHA256=f809088538067a6961a82327fd0b443ab113d2d3cb5a1f19e60b9815c4778089 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGES_MADE=false +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=cc67c53b8ddadc66b18648c5ccfb5ef258fd7782ddf58b40171b0e29e5a2a9dd +SANITIZED_OUTPUT_SHA256=cc67c53b8ddadc66b18648c5ccfb5ef258fd7782ddf58b40171b0e29e5a2a9dd +OUTPUT_BEGIN +Traceback (most recent call last): + File "", line 1, in + import base64,zlib;exec(compile(zlib.decompress(base64.b64decode("eJyVGGtv4rj2O78i11oJ2FtgOpod7VSKrlJI22yBsCHMQ93eyAJpGu3sODi0/fedOEmTlJA0uRz5+fF8Ty6poVLfHdYjW3Ga08asxko9Xwtk+iYm+5HmtBJv6z/bKzMWdbLFoq4omvk1SnA/qc0nJdr2Yjps3pR1uquKYtiw5M0d4V9dXtr4+sK6rc8mI8dJ7Aq+ygqgzn6VxvdXKdr0TJ6KpQa+Ssq9m3C6N5mhQ3VnWK1mYtp6wyreUj+r/F0p4Sp5Lg5zWK/BYWX7QbZQY72z/4tUPNQ6q0Y3xk2TIn1pNWlPw24zSjH1nhpoB+B7rQTP6nE8v7A8VvuvvWQ+XmgZ0X5t0vLzTn7hMNX82y2V2zMW8otz/Yn4cV6qFPH8fTBYu3dxc8J8KKQKcVpPbRdxmKfX8i8w9QstbJd0vCvvZV1Q0ZlHvcw9Q+WvUplnVg8vP3o48O3VXjxPzdbhlYv3j3u1K4n7MxsFzYfHhQ/bqv6G27jsYMl2Vz1m0LzC22uG7t7ydVC3nMmFMZ/eV7w6zK1O8K5xw8axmcPzDGzrNQ6Z3WjqU8vV7g7ZcK+kl1OoM37T+fH8Krr3/PpVb6bLm0M5V7t8Zq5VtGOKs8vQpS0kGkWRTzPNPxfCllgQO6bYQ6pjVVLw8PvXJZhtS93woTiBvNn+eM6+q4r7Wz0xN8c8u3BFT9vM2VvsAjtxXZWJt8v8QmH1Z2S4U1PUX2JkKf0sYdV20fx5aowb4S1NQw2Wn8Sqo3l1AVZ8gQ1uL5pPJb8cAqt3cPVi+R+z7x9fX8TT2JcIhRWk69wmEB9aQZaOjnN0H5pP6T84+TiQt7xph/YmGJdUcnT5fL+Cw1xq2N4l1m2kLq6Pp9FJqVr1+3uV7nnCw2xKkRb0/f0f6ikdmYV5pJ0I4s1n/5iK9AxE5Xq1Hc73mkj10oJ/9bM9wpVv+pqPvwNtv62w8tpn8ZqlV+80X8K7I9flGu3qrr+j6thpmra6w7f7cE3wXdKY+Mtg9apGRtvpS7ZVjLc+OQt8hUfctNz+0c+qTpg3HEo9js3fW7S56PrzMzXXHe15zPy/VyODZPrh3dX2F09QGLk25LsYBD3/QZ0ccSt2YG2RFzQ5VLZvEuy26nFVH4Yv6j5+Mnp8TBTJmGsqT0cR0fWf7Y0vVZzP6Iu8w7DeuGyq9F9ft9pd+kMZ6Cj9gZcCEvVfqj9mFiWl5xY7SJ9sQlP3fH7QF9Yb22fQ1XlE0+7Vhhs3RcW6dAq5LoyrHjb/YVZ8wXn3VZtV9KvZxnJxCOf60XwN3I4lM5WLJ7cskX5R7a3A5iKuImy1Sq7j3Oa5rI5j2m4sZzoUVQ23r2uF6C8mCj22VkHhFY9mRyPng6vPvhBtbCjujLal3qk3I8T3QKcMr4Vjba4EGQkH/Uh2WZ/8HJl2LMjVTDRo1Zl32v5hu1YmHQE7B/Wtpa0taL/8aD3gjUuzsJ5cLZUE3G7ZWVt8E0mS2FfQYv3Y5rvt7tWdpHvCqY1uYZ8XsPSm0Vr2sM3GQXq2o9YUvK/OcO2A9/8YdcWpjT+RX4k8CF8dDRVT6fksN+nrQYvYOme9b4mzN1jA3VhdtPbr1p/nxY3QacPsvrAb24yxdhqXWZ9mePpGkKUq6VvY2zuX6uY4ve/VTr2i8u+mX4GLd1pkZKuc5WitR+tU8fNr9m12W6tMZ5uVwFD/NXj/VF6Jn3N8xWrDkn6hdO6hxO3x/8FU11Nis=")).decode(),"","exec")) + ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/base64.py", line 88, in b64decode + return binascii.a2b_base64(s, strict_mode=validate) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ +binascii.Error: Invalid base64-encoded string: number of data characters (1729) cannot be 1 more than a multiple of 4 + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 99c5fbd..5a391a6 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "HOMELAB-IMMUTABLE-PER-FILE-RECONCILE-128", + "command_id": "HOMELAB-128-FINAL-DECISION-129", "status": "FAIL", "rc": 1, "host": "pve01", "mode": "read-only", "component": "cluster-audit", - "started_at_utc": "2026-07-21T19:26:52Z", - "finished_at_utc": "2026-07-21T19:26:54Z", + "started_at_utc": "2026-07-21T19:29:40Z", + "finished_at_utc": "2026-07-21T19:29:40Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752", - "command_sha256": "70f4e37095b426398e6e882f7ce7289bc0efef60b63e4b1e591700adf19669f2", + "command_sha256": "f809088538067a6961a82327fd0b443ab113d2d3cb5a1f19e60b9815c4778089", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -22,9 +22,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "7a12ebc45debe76d36dc95f174c6f0ce9159a686d93862cfea3877cdd294e1ec", - "sanitized_output_sha256": "7a12ebc45debe76d36dc95f174c6f0ce9159a686d93862cfea3877cdd294e1ec", + "raw_evidence_sha256": "cc67c53b8ddadc66b18648c5ccfb5ef258fd7782ddf58b40171b0e29e5a2a9dd", + "sanitized_output_sha256": "cc67c53b8ddadc66b18648c5ccfb5ef258fd7782ddf58b40171b0e29e5a2a9dd", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "Traceback (most recent call last):\n File \"\", line 1, in \n import base64; exec(compile(base64.b64decode(\"CmltcG9ydCBiYXNlNjQKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IGpzb24KaW1wb3J0IG9zCmltcG9ydCByZQppbXBvcnQgc3VicHJvY2VzcwppbXBvcnQgdXJsbGliLnBhcnNlCmltcG9ydCB1cmxsaWIucmVxdWVzdAoKQkFTRSA9ICJodHRwczovL2dpdC5ncmFtMS5ydSIKUkVQTyA9ICJob21lbGFiLWFkbWluL2hvbWVsYWItcHVibGljLWNvbnRleHQiCkJSQU5DSCA9ICJhc3Npc3RhbnQtcnVudGltZSIKVEFSR0VUID0gIkhPTUVMQUItMTI2LUFDVElPTi0xMjciCgpkZWYgZmV0Y2godXJsLCB0aW1lb3V0PTkwKToKICAgIHJlcSA9IHVybGxpYi5yZXF1ZXN0LlJlcXVlc3QodXJsLCBoZWFkZXJzPXsiVXNlci1BZ2VudCI6ICJob21lbGFiLWltbXV0YWJsZS1wZXItZmlsZS8xIn0pCiAgICB3aXRoIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4ocmVxLCB0aW1lb3V0PXRpbWVvdXQpIGFzIHJlc3BvbnNlOgogICAgICAgIHJldHVybiByZXNwb25zZS5yZWFkKCkKCmRlZiBmZXRjaF9qc29uKHVybCk6CiAgICByZXR1cm4ganNvbi5sb2FkcyhmZXRjaCh1cmwpLmRlY29kZSgidXRmLTgiKSkKCmRlZiBpbW11dGFibGVfZmlsZShjb21tYW5kX2lkLCBleHQpOgogICAgcGF0aCA9IGYicnVudGltZS9oaXN0b3J5L3tjb21tYW5kX2lkfS57ZXh0fSIKICAgIGVuY29kZWQgPSB1cmxsaWIucGFyc2UucXVvdGUocGF0aCwgc2FmZT0iLyIpCiAgICBtZXRhID0gZmV0Y2hfanNvbihmIntCQVNFfS9hcGkvdjEvcmVwb3Mve1JFUE99L2NvbnRlbnRzL3tlbmNvZGVkfT9yZWY9e0JSQU5DSH0iKQogICAgYnJhbmNoX2J5dGVzID0gYmFzZTY0LmI2NGRlY29kZShtZXRhWyJjb250ZW50Il0pCiAgICBjb21taXQgPSBtZXRhLmdldCgibGFzdF9jb21taXRfc2hhIikgb3IgIiIKICAgIGlmIG5vdCBjb21taXQ6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYibWlzc2luZyBsYXN0X2NvbW1pdF9zaGEgZm9yIHtwYXRofSIpCiAgICBpbW11dGFibGVfYnl0ZXMgPSBmZXRjaChmIntCQVNFfS97UkVQT30vcmF3L2NvbW1pdC97Y29tbWl0fS97cGF0aH0iKQogICAgaWYgYnJhbmNoX2J5dGVzICE9IGltbXV0YWJsZV9ieXRlczoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoZiJicmFuY2gvY29tbWl0IG1pc21hdGNoIGZvciB7cGF0aH0iKQogICAgcmV0dXJuIGltbXV0YWJsZV9ieXRlcywgY29tbWl0CgpkZWYgcnVuKGNvbW1hbmQsIHRpbWVvdXQpOgogICAgdHJ5OgogICAgICAgIGNvbXBsZXRlZCA9IHN1YnByb2Nlc3MucnVuKAogICAgICAgICAgICBjb21tYW5kLAogICAgICAgICAgICB0ZXh0PVRydWUsCiAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCiAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCwKICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAogICAgICAgICAgICBjaGVjaz1GYWxzZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIGNvbXBsZXRlZC5yZXR1cm5jb2RlLCBjb21wbGV0ZWQuc3Rkb3V0CiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCBhcyBleGM6CiAgICAgICAgb3V0cHV0ID0gZXhjLnN0ZG91dCBvciAiIgogICAgICAgIGlmIGlzaW5zdGFuY2Uob3V0cHV0LCBieXRlcyk6CiAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5kZWNvZGUoInV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikKICAgICAgICByZXR1cm4gMTI0LCBvdXRwdXQgKyAiXG5USU1FT1VUXG4iCiAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3IgYXMgZXhjOgogICAgICAgIHJldHVybiAxMjcsIGYie3R5cGUoZXhjKS5fX25hbWVfX306IHtleGN9XG4iCgpib290c3RyYXAgPSBmZXRjaF9qc29uKGYie0JBU0V9Ly53ZWxsLWtub3duL2hvbWVsYWItYm9vdHN0cmFwLmpzb24iKQpydW50aW1lID0gYm9vdHN0cmFwWyJydW50aW1lIl0KY29udHJhY3QgPSBib290c3RyYXBbIm9wZXJhdGluZ19jb250cmFjdCJdCmFzc2VydCBydW50aW1lWyJyZXN1bHRfY29uZmlybWF0aW9uIl0gPT0gImltbXV0YWJsZV9oaXN0b3J5X2J5X2NvbW1hbmRfaWQiCmFzc2VydCBydW50aW1lWyJsYXRlc3RfanNvbl9pc19hdXRob3JpdGF0aXZlIl0gaXMgRmFsc2UKYXNzZXJ0IGNvbnRyYWN0WyJsb2FkX2Vycm9yX3JlZ2lzdGVyX2JlZm9yZV9jb21tYW5kcyJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJjaGVja19wcmV2aW91c19jb21tYW5kX3Jlc3VsdCJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJyZWplY3Rfa25vd25fZmFpbGVkX2V4YWN0X3JlcGVhdHMiXSBpcyBUcnVlCmFzc2VydCBjb250cmFjdFsiZG91YmxlX3ByZV9jb21tYW5kX2NoZWNrIl0gaXMgVHJ1ZQoKZXJyb3JzX2J5dGVzID0gZmV0Y2goYm9vdHN0cmFwWyJlbnRyeXBvaW50cyJdWyJlcnJvcnNfaW5kZXhfdXJsIl0pCmpzb24ubG9hZHMoZXJyb3JzX2J5dGVzLmRlY29kZSgidXRmLTgiKSkKZXJyb3JzX3RleHQgPSBlcnJvcnNfYnl0ZXMuZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0icmVwbGFjZSIpCgpqc29uX2J5dGVzLCBqc29uX2NvbW1pdCA9IGltbXV0YWJsZV9maWxlKFRBUkdFVCwgImpzb24iKQp0eHRfYnl0ZXMsIHR4dF9jb21taXQgPSBpbW11dGFibGVfZmlsZShUQVJHRVQsICJ0eHQiKQpyZXN1bHQgPSBqc29uLmxvYWRzKGpzb25fYnl0ZXMuZGVjb2RlKCJ1dGYtOCIpKQp0ZXh0ID0gdHh0X2J5dGVzLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQppZiByZXN1bHQuZ2V0KCJjb21tYW5kX2lkIikgIT0gVEFSR0VUOgogICAgcmFpc2UgUnVudGltZUVycm9yKGYid3JvbmcgY29tbWFuZF9pZDoge3Jlc3VsdC5nZXQoJ2NvbW1hbmRfaWQnKX0iKQoKc3RhdHVzID0gc3RyKHJlc3VsdC5nZXQoInN0YXR1cyIsICJVTktOT1dOIikpCnJjID0gaW50KHJlc3VsdC5nZXQoInJjIiwgLTk5OSkpCnN0YXJ0ZWQgPSBib29sKHJlc3VsdC5nZXQoImV4ZWN1dGlvbl9zdGFydGVkIiwgRmFsc2UpKQpkdXBsaWNhdGUgPSBib29sKHJlc3VsdC5nZXQoImR1cGxpY2F0ZV9mYWlsZWRfY29tbWFuZF9ibG9ja2VkIiwgRmFsc2UpKQpyZWdpc3RlcmVkID0gVEFSR0VUIGluIGVycm9yc190ZXh0CgpwcmludCgiPT09IElNTVVUQUJMRV8xMjdfUEVSX0ZJTEUgPT09IikKcHJpbnQoZiJDT01NQU5EX0lEPXtUQVJHRVR9IikKcHJpbnQoZiJKU09OX0lNTVVUQUJMRV9DT01NSVQ9e2pzb25fY29tbWl0fSIpCnByaW50KGYiVFhUX0lNTVVUQUJMRV9DT01NSVQ9e3R4dF9jb21taXR9IikKcHJpbnQoZiJDT01NSVRTX0VRVUFMPXsneWVzJyBpZiBqc29uX2NvbW1pdCA9PSB0eHRfY29tbWl0IGVsc2UgJ25vJ30iKQpwcmludCgiSElTVE9SWV9WRVJJRklDQVRJT05fTU9ERT1QRVJfRklMRV9JTU1VVEFCTEVfQ09NTUlUIikKcHJpbnQoZiJKU09OX1NIQTI1Nj17aGFzaGxpYi5zaGEyNTYoanNvbl9ieXRlcykuaGV4ZGlnZXN0KCl9IikKcHJpbnQoZiJUWFRfU0hBMjU2PXtoYXNobGliLnNoYTI1Nih0eHRfYnl0ZXMpLmhleGRpZ2VzdCgpfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJfU0hBMjU2PXtoYXNobGliLnNoYTI1NihlcnJvcnNfYnl0ZXMpLmhleGRpZ2VzdCgpfSIpCnByaW50KGYiU1RBVFVTPXtzdGF0dXN9IikKcHJpbnQoZiJSQz17cmN9IikKcHJpbnQoZiJFWEVDVVRJT05fU1RBUlRFRD17J3RydWUnIGlmIHN0YXJ0ZWQgZWxzZSAnZmFsc2UnfSIpCnByaW50KGYiRFVQTElDQVRFX0ZBSUxFRF9DT01NQU5EX0JMT0NLRUQ9eyd0cnVlJyBpZiBkdXBsaWNhdGUgZWxzZSAnZmFsc2UnfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJFRD17J3llcycgaWYgcmVnaXN0ZXJlZCBlbHNlICdubyd9IikKcHJpbnQoIj09PSBSRVNVTFRfTUFSS0VSU18xMjcgPT09IikKbWFya2VyX3JlID0gcmUuY29tcGlsZSgKICAgIHIiXihIT01FTEFCX3xERUNJU0lPTl98RklOQUxffE5FWFRfQUNUSU9OPXxST09UX3xDSEFJTl98V09SS0ZMT1dffCIKICAgIHIiVE9UQUxfLipSSVNLUz18UFJPQkVfRkFJTFVSRVM9fFFVT1JVTV9SSVNLUz18RkFJTEVEX1VOSVRfUklTS1M9fCIKICAgIHIiU1RPUkFHRV9TVEFURV9SSVNLUz18Q0FQQUNJVFlfUklTS1M9fEtFUk5FTF9SSVNLUz18IgogICAgciJCQUNLVVBfUE9MSUNZX1JJU0tTPXxMT0NBTF9CQUNLVVBfQVJDSElWRVM9KSIKKQptYXJrZXJzID0gW2xpbmUgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdGxpbmVzKCkgaWYgbWFya2VyX3JlLm1hdGNoKGxpbmUpXQpmb3IgbGluZSBpbiBtYXJrZXJzWy0zMDA6XToKICAgIHByaW50KGxpbmUpCmlmIHN0YXR1cyAhPSAiT0siIG9yIHJjICE9IDAgb3Igbm90IHN0YXJ0ZWQ6CiAgICBwcmludCgiPT09IEZBSUxVUkVfRVZJREVOQ0VfMTI3ID09PSIpCiAgICBwcmludCgiXG4iLmpvaW4odGV4dC5zdHJpcCgpLnNwbGl0bGluZXMoKVstNTAwOl0pIG9yICJFTVBUWSIpCgpwcm9iZXMgPSB7CiAgICAicXVvcnVtIjogKFsicHZlY20iLCAic3RhdHVzIl0sIDMwKSwKICAgICJmYWlsZWQiOiAoWyJzeXN0ZW1jdGwiLCAiLS1mYWlsZWQiLCAiLS1hbGwiLCAiLS1uby1sZWdlbmQiLCAiLS1wbGFpbiJdLCAzMCksCiAgICAic3RvcmFnZSI6IChbInB2ZXNtIiwgInN0YXR1cyJdLCA0NSksCiAgICAiY2FwYWNpdHkiOiAoWyJkZiIsICItUCIsICItaCJdLCAzMCksCiAgICAia2VybmVsIjogKFsiam91cm5hbGN0bCIsICItayIsICItLXNpbmNlIiwgIi0yNCBob3VycyIsICItLW5vLXBhZ2VyIl0sIDkwKSwKICAgICJqb3VybmFsIjogKFsiam91cm5hbGN0bCIsICItLXNpbmNlIiwgIi03MiBob3VycyIsICItLW5vLXBhZ2VyIiwgIi1vIiwgImNhdCJdLCAxMjApLAp9Cm91dHB1dHMgPSB7fQpwcm9iZV9mYWlsdXJlcyA9IFtdCmZvciBuYW1lLCAoY29tbWFuZCwgdGltZW91dCkgaW4gcHJvYmVzLml0ZW1zKCk6CiAgICBwcm9iZV9yYywgb3V0cHV0ID0gcnVuKGNvbW1hbmQsIHRpbWVvdXQpCiAgICBvdXRwdXRzW25hbWVdID0gb3V0cHV0CiAgICBpZiBwcm9iZV9yYyAhPSAwOgogICAgICAgIHByb2JlX2ZhaWx1cmVzLmFwcGVuZChmIntuYW1lfTpyYz17cHJvYmVfcmN9IikKCnF1b3J1bV9saW5lcyA9IFsKICAgIGxpbmUuc3RyaXAoKQogICAgZm9yIGxpbmUgaW4gb3V0cHV0c1sicXVvcnVtIl0uc3BsaXRsaW5lcygpCiAgICBpZiByZS5zZWFyY2gociJRdW9yYXRlOlxzKk5vfG5vdCBxdW9yYXRlIiwgbGluZSwgcmUuSSkKXQpmYWlsZWRfbGluZXMgPSBbCiAgICBsaW5lLnN0cmlwKCkKICAgIGZvciBsaW5lIGluIG91dHB1dHNbImZhaWxlZCJdLnNwbGl0bGluZXMoKQogICAgaWYgcmUuc2VhcmNoKHIiXC4oc2VydmljZXxzb2NrZXR8dGltZXJ8bW91bnR8dGFyZ2V0KVxiIiwgbGluZSkKXQpzdG9yYWdlX2xpbmVzID0gWwogICAgbGluZS5zdHJpcCgpCiAgICBmb3IgbGluZSBpbiBvdXRwdXRzWyJzdG9yYWdlIl0uc3BsaXRsaW5lcygpCiAgICBpZiByZS5zZWFyY2gociJcYihpbmFjdGl2ZXx1bmtub3dufGVycm9yfGZhaWxlZHxvZmZsaW5lKVxiIiwgbGluZSwgcmUuSSkKXQpjYXBhY2l0eV9saW5lcyA9IFtdCmZvciBpbmRleCwgbGluZSBpbiBlbnVtZXJhdGUob3V0cHV0c1siY2FwYWNpdHkiXS5zcGxpdGxpbmVzKCkpOgogICAgaWYgaW5kZXggPT0gMDoKICAgICAgICBjb250aW51ZQogICAgbWF0Y2ggPSByZS5zZWFyY2gociJccyhcZCspJVxzIiwgbGluZSkKICAgIGlmIG1hdGNoIGFuZCBpbnQobWF0Y2guZ3JvdXAoMSkpID49IDg1OgogICAgICAgIGNhcGFjaXR5X2xpbmVzLmFwcGVuZChsaW5lLnN0cmlwKCkpCgprZXJuZWxfcGF0dGVybiA9IHJlLmNvbXBpbGUoCiAgICByIkkvTyBlcnJvcnxmaWxlc3lzdGVtIGVycm9yfHJlYWQtb25seSBmaWxlIHN5c3RlbXxoYXJkd2FyZSBlcnJvcnxtYWNoaW5lIGNoZWNrfCIKICAgIHIib29tLWtpbGxlcnxvdXQgb2YgbWVtb3J5fG52bWUuKig/OmNyaXRpY2FsfGVycm9yKXxhdGEuKmVycm9yfGNvcnJ1cHR8RkFVTFRFRHxERUdSQURFRCIsCiAgICByZS5JLAopCmtlcm5lbF9ub2lzZSA9IHJlLmNvbXBpbGUociJjb3JyZWN0ZWQgZXJyb3J8ZXJyb3IgcmVwb3J0aW5nIGVuYWJsZWR8QUVSOiBlbmFibGVkIiwgcmUuSSkKa2VybmVsX2xpbmVzID0gWwogICAgbGluZS5zdHJpcCgpCiAgICBmb3IgbGluZSBpbiBvdXRwdXRzWyJrZXJuZWwiXS5zcGxpdGxpbmVzKCkKICAgIGlmIGtlcm5lbF9wYXR0ZXJuLnNlYXJjaChsaW5lKSBhbmQgbm90IGtlcm5lbF9ub2lzZS5zZWFyY2gobGluZSkKXQoKYmFja3VwX3BhdHRlcm4gPSByZS5jb21waWxlKAogICAgciJSRU1PVEVfRkFJTFVSRVM9WzEtOV18TE9DQUxfQkFDS1VQX1RPVEFMPVsxLTldfGJhY2t1cC4qKD86RkFJTHxFUlJPUil8IgogICAgciJyZXN0b3JlLiooPzpGQUlMfEVSUk9SKXxjbG91ZC4qKD86RkFJTHxFUlJPUil8aW50ZWdyaXR5LiooPzpGQUlMfEVSUk9SKXwiCiAgICByImNoZWNrc3VtLiptaXNtYXRjaHx1cGxvYWQuKmZhaWwiLAogICAgcmUuSSwKKQpiYWNrdXBfbm9pc2UgPSByZS5jb21waWxlKAogICAgciJob21lbGFiLWNoYXQtcnVufENPTU1BTkRfSUQ9fGdyZXAgLUV8SE9NRUxBQi18Q1JJVElDQUwtfCIKICAgIHIicHl0aG9uMyAtY3xiYXNlNjQiLAogICAgcmUuSSwKKQpiYWNrdXBfbGluZXMgPSBbCiAgICBsaW5lLnN0cmlwKCkKICAgIGZvciBsaW5lIGluIG91dHB1dHNbImpvdXJuYWwiXS5zcGxpdGxpbmVzKCkKICAgIGlmIGJhY2t1cF9wYXR0ZXJuLnNlYXJjaChsaW5lKSBhbmQgbm90IGJhY2t1cF9ub2lzZS5zZWFyY2gobGluZSkKXQoKbG9jYWxfYXJjaGl2ZV9saW5lcyA9IFtdCmR1bXBfcm9vdCA9ICIvdmFyL2xpYi92ei9kdW1wIgppZiBvcy5wYXRoLmlzZGlyKGR1bXBfcm9vdCk6CiAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMgaW4gb3Mud2FsayhkdW1wX3Jvb3QpOgogICAgICAgIGRlcHRoID0gb3MucGF0aC5yZWxwYXRoKHJvb3QsIGR1bXBfcm9vdCkuY291bnQob3Muc2VwKQogICAgICAgIGlmIGRlcHRoID49IDE6CiAgICAgICAgICAgIGRpcnNbOl0gPSBbXQogICAgICAgIGZvciBuYW1lIGluIGZpbGVzOgogICAgICAgICAgICBpZiByZS5tYXRjaChyIl52emR1bXAtLipcLig/OnZtYXx0YXIpKD86XC4uKik/JCIsIG5hbWUpOgogICAgICAgICAgICAgICAgbG9jYWxfYXJjaGl2ZV9saW5lcy5hcHBlbmQob3MucGF0aC5qb2luKHJvb3QsIG5hbWUpKQoKY291bnRzID0gewogICAgIlBST0JFX0ZBSUxVUkVTIjogbGVuKHByb2JlX2ZhaWx1cmVzKSwKICAgICJRVU9SVU1fUklTS1MiOiBsZW4ocXVvcnVtX2xpbmVzKSwKICAgICJGQUlMRURfVU5JVF9SSVNLUyI6IGxlbihmYWlsZWRfbGluZXMpLAogICAgIlNUT1JBR0VfU1RBVEVfUklTS1MiOiBsZW4oc3RvcmFnZV9saW5lcyksCiAgICAiQ0FQQUNJVFlfUklTS1MiOiBsZW4oY2FwY2l0eV9saW5lcyksCiAgICAiS0VSTkVMX1JJU0tTIjogbGVuKGtlcm5lbF9saW5lcyksCiAgICAiQkFDS1VQX1BPTElDWV9SSVNLUyI6IGxlbihiYWNrdXBfbGluZXMpLAogICAgIkxPQ0FMX0JBQ0tVUF9BUkNISVZFUyI6IGxlbihsb2NhbF9hcmNoaXZlX2xpbmVzKSwKfQp0b3RhbCA9IHN1bShjb3VudHMudmFsdWVzKCkpCgpwcmludCgiPT09IElOREVQRU5ERU5UX0xJVkVfR0FURSA9PT0iKQpmb3Iga2V5LCB2YWx1ZSBpbiBjb3VudHMuaXRlbXMoKToKICAgIHByaW50KGYie2tleX09e3ZhbHVlfSIpCnByaW50KGYiVE9UQUxfRklOQUxfUklTS1M9e3RvdGFsfSIpCgpldmlkZW5jZV9ncm91cHMgPSBbCiAgICAoIlBST0JFX0ZBSUxVUkVfRVZJREVOQ0UiLCBwcm9iZV9mYWlsdXJlcyksCiAgICAoIlFVT1JVTV9FVklERU5DRSIsIHF1b3J1bV9saW5lcyksCiAgICAoIkZBSUxFRF9VTklUX0VWSURFTkNFIiwgZmFpbGVkX2xpbmVzKSwKICAgICgiU1RPUkFHRV9FVklERU5DRSIsIHN0b3JhZ2VfbGluZXMpLAogICAgKCJDQVBBQ0lUWV9FVklERU5DRSIsIGNhcGFjaXR5X2xpbmVzKSwKICAgICgiS0VSTkVMX0VWSURFTkNFIiwga2VybmVsX2xpbmVzKSwKICAgICgiQkFDS1VQX0VWSURFTkNFIiwgYmFja3VwX2xpbmVzKSwKICAgICgiTE9DQUxfQkFDS1VQX0FSQ0hJVkVfRVZJREVOQ0UiLCBsb2NhbF9hcmNoaXZlX2xpbmVzKSwKXQpmb3IgdGl0bGUsIGxpbmVzIGluIGV2aWRlbmNlX2dyb3VwczoKICAgIHByaW50KGYiPT09IHt0aXRsZX0gPT09IikKICAgIGlmIGxpbmVzOgogICAgICAgIGZvciBsaW5lIGluIGxpbmVzWzoxMjBdOgogICAgICAgICAgICBwcmludChsaW5lKQogICAgICAgIGlmIGxlbihsaW5lcykgPiAxMjA6CiAgICAgICAgICAgIHByaW50KGYiVFJVTkNBVEVEPXtsZW4obGluZXMpLTEyMH0iKQogICAgZWxzZToKICAgICAgICBwcmludCgiTk9ORSIpCgppZiBjb3VudHNbIlBST0JFX0ZBSUxVUkVTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRVBBSVJfQVVESVRfUFJPQkVTIgplbGlmIGNvdW50c1siUVVPUlVNX1JJU0tTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRVBBSVJfUVVPUlVNIgplbGlmIGNvdW50c1siQkFDS1VQX1BPTElDWV9SSVNLUyJdIG9yIGNvdW50c1siTE9DQUxfQkFDS1VQX0FSQ0hJVkVTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRUNPTkNJTEVfRFVBTF9NQUlMX0NMT1VEX0JBQ0tVUFMiCmVsaWYgY291bnRzWyJLRVJORUxfUklTS1MiXToKICAgIG5leHRfYWN0aW9uID0gIklTT0xBVEVfS0VSTkVMX1NUT1JBR0VfT1JfSEFSRFdBUkVfRkFVTFQiCmVsaWYgY291bnRzWyJTVE9SQUdFX1NUQVRFX1JJU0tTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRVBBSVJfUFJPWE1PWF9TVE9SQUdFX1NUQVRFIgplbGlmIGNvdW50c1siRkFJTEVEX1VOSVRfUklTS1MiXToKICAgIG5leHRfYWN0aW9uID0gIlJFUEFJUl9GQUlMRURfU1lTVEVNRF9VTklUUyIKZWxpZiBjb3VudHNbIkNBUEFDSVRZX1JJU0tTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRURVQ0VfT1JfRVhQQU5EX0NBUEFDSVRZIgplbHNlOgogICAgbmV4dF9hY3Rpb24gPSAiTk9ORSIKCmlmIHRvdGFsID09IDA6CiAgICBwcmludCgiSE9NRUxBQl9GSU5BTF9TVEFURT1DTE9TRUQiKQogICAgcHJpbnQoIkZJTkFMX0dBVEU9UEFTUyIpCiAgICBwcmludCgiSE9NRUxBQl9XT1JLRkxPV19TVEFUVVM9Q09NUExFVEUiKQogICAgcHJpbnQoIk5FWFRfQUNUSU9OPU5PTkUiKQplbHNlOgogICAgcHJpbnQoIkhPTUVMQUJfRklOQUxfU1RBVEU9QkxPQ0tFRCIpCiAgICBwcmludCgiRklOQUxfR0FURT1CTE9DS0VEIikKICAgIHByaW50KCJIT01FTEFCX1dPUktGTE9XX1NUQVRVUz1SRVFVSVJFU19BQ1RJT04iKQogICAgcHJpbnQoZiJORVhUX0FDVElPTj17bmV4dF9hY3Rpb259IikKCnByaW50KCJJTU1VVEFCTEVfQ09NTUlUX1JVTEVfQ09SUkVDVElPTj1KU09OX0FORF9UWFRfVkVSSUZJRURfSU5ERVBFTkRFTlRMWSIpCnByaW50KCJIT01FTEFCX0lNTVVUQUJMRV9QRVJfRklMRV9SRUNPTkNJTEU9Q09NUExFVEUiKQo=\"), \"\", \"exec\"))\n ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\", line 195, in \nNameError: name 'capcity_lines' is not defined. Did you mean: 'capacity_lines'?\n=== IMMUTABLE_127_PER_FILE ===\nCOMMAND_ID=HOMELAB-126-ACTION-127\nJSON_IMMUTABLE_COMMIT=3b4a5565e4d07127e6561009623a862837fd8c20\nTXT_IMMUTABLE_COMMIT=3b4a5565e4d07127e6561009623a862837fd8c20\nCOMMITS_EQUAL=yes\nHISTORY_VERIFICATION_MODE=PER_FILE_IMMUTABLE_COMMIT\nJSON_SHA256=7577ab416090308b391918d1609cccd7352b9f2bb4379f8844caec5cf9e20c9d\nTXT_SHA256=84aea6a5c4ac24d3d0f3ec1983250ed7abfaebe92154d82c73a73aaa8f8535c8\nERROR_REGISTER_SHA256=a13ca59d5fa1ad39b813bad3115d7b8cf8c5c68935fc813dbd792757ed421e24\nSTATUS=OK\nRC=0\nEXECUTION_STARTED=true\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\nERROR_REGISTERED=no\n=== RESULT_MARKERS_127 ===\nDECISION_125=ROOT_FAILURE_CONFIRMED\nROOT_FAILURE_ID=HOMELAB-123-RESOLUTION-124\nROOT_FAILURE_CLASS=COMMAND_SYNTAX_OR_QUOTING_FAILURE\nWORKFLOW_STATUS=UNKNOWN\nNEXT_ACTION=REBUILD_ROOT_FAILURE_ONLY\nROOT_COMMAND_ID=HOMELAB-123-RESOLUTION-124\nROOT_IMMUTABLE_COMMIT=b51cd8a842dcef66b0bf30dbe40d10cc18c4b7cd\nROOT_STATUS=FAIL\nROOT_RC=1\nROOT_ERROR_REGISTERED=no\nROOT_JSON_SHA256=\nROOT_TXT_SHA256=\nDECISION_126=ROOT_FAILURE_CONFIRMED\nNEXT_ACTION=REBUILD_ROOT_FAILURE_ONLY\nHOMELAB_126_ACTION=COMPLETE\n" + "output": "Traceback (most recent call last):\n File \"\", line 1, in \n import base64,zlib;exec(compile(zlib.decompress(base64.b64decode(\"eJyVGGtv4rj2O78i11oJ2FtgOpod7VSKrlJI22yBsCHMQ93eyAJpGu3sODi0/fedOEmTlJA0uRz5+fF8Ty6poVLfHdYjW3Ga08asxko9Xwtk+iYm+5HmtBJv6z/bKzMWdbLFoq4omvk1SnA/qc0nJdr2Yjps3pR1uquKYtiw5M0d4V9dXtr4+sK6rc8mI8dJ7Aq+ygqgzn6VxvdXKdr0TJ6KpQa+Ssq9m3C6N5mhQ3VnWK1mYtp6wyreUj+r/F0p4Sp5Lg5zWK/BYWX7QbZQY72z/4tUPNQ6q0Y3xk2TIn1pNWlPw24zSjH1nhpoB+B7rQTP6nE8v7A8VvuvvWQ+XmgZ0X5t0vLzTn7hMNX82y2V2zMW8otz/Yn4cV6qFPH8fTBYu3dxc8J8KKQKcVpPbRdxmKfX8i8w9QstbJd0vCvvZV1Q0ZlHvcw9Q+WvUplnVg8vP3o48O3VXjxPzdbhlYv3j3u1K4n7MxsFzYfHhQ/bqv6G27jsYMl2Vz1m0LzC22uG7t7ydVC3nMmFMZ/eV7w6zK1O8K5xw8axmcPzDGzrNQ6Z3WjqU8vV7g7ZcK+kl1OoM37T+fH8Krr3/PpVb6bLm0M5V7t8Zq5VtGOKs8vQpS0kGkWRTzPNPxfCllgQO6bYQ6pjVVLw8PvXJZhtS93woTiBvNn+eM6+q4r7Wz0xN8c8u3BFT9vM2VvsAjtxXZWJt8v8QmH1Z2S4U1PUX2JkKf0sYdV20fx5aowb4S1NQw2Wn8Sqo3l1AVZ8gQ1uL5pPJb8cAqt3cPVi+R+z7x9fX8TT2JcIhRWk69wmEB9aQZaOjnN0H5pP6T84+TiQt7xph/YmGJdUcnT5fL+Cw1xq2N4l1m2kLq6Pp9FJqVr1+3uV7nnCw2xKkRb0/f0f6ikdmYV5pJ0I4s1n/5iK9AxE5Xq1Hc73mkj10oJ/9bM9wpVv+pqPvwNtv62w8tpn8ZqlV+80X8K7I9flGu3qrr+j6thpmra6w7f7cE3wXdKY+Mtg9apGRtvpS7ZVjLc+OQt8hUfctNz+0c+qTpg3HEo9js3fW7S56PrzMzXXHe15zPy/VyODZPrh3dX2F09QGLk25LsYBD3/QZ0ccSt2YG2RFzQ5VLZvEuy26nFVH4Yv6j5+Mnp8TBTJmGsqT0cR0fWf7Y0vVZzP6Iu8w7DeuGyq9F9ft9pd+kMZ6Cj9gZcCEvVfqj9mFiWl5xY7SJ9sQlP3fH7QF9Yb22fQ1XlE0+7Vhhs3RcW6dAq5LoyrHjb/YVZ8wXn3VZtV9KvZxnJxCOf60XwN3I4lM5WLJ7cskX5R7a3A5iKuImy1Sq7j3Oa5rI5j2m4sZzoUVQ23r2uF6C8mCj22VkHhFY9mRyPng6vPvhBtbCjujLal3qk3I8T3QKcMr4Vjba4EGQkH/Uh2WZ/8HJl2LMjVTDRo1Zl32v5hu1YmHQE7B/Wtpa0taL/8aD3gjUuzsJ5cLZUE3G7ZWVt8E0mS2FfQYv3Y5rvt7tWdpHvCqY1uYZ8XsPSm0Vr2sM3GQXq2o9YUvK/OcO2A9/8YdcWpjT+RX4k8CF8dDRVT6fksN+nrQYvYOme9b4mzN1jA3VhdtPbr1p/nxY3QacPsvrAb24yxdhqXWZ9mePpGkKUq6VvY2zuX6uY4ve/VTr2i8u+mX4GLd1pkZKuc5WitR+tU8fNr9m12W6tMZ5uVwFD/NXj/VF6Jn3N8xWrDkn6hdO6hxO3x/8FU11Nis=\")).decode(),\"\",\"exec\"))\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/lib/python3.13/base64.py\", line 88, in b64decode\n return binascii.a2b_base64(s, strict_mode=validate)\n ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\nbinascii.Error: Invalid base64-encoded string: number of data characters (1729) cannot be 1 more than a multiple of 4\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 1ad1ce1..7ef5e6a 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,5 +1,5 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HOMELAB-IMMUTABLE-PER-FILE-RECONCILE-128 +COMMAND_ID=HOMELAB-128-FINAL-DECISION-129 STATUS=FAIL RC=1 HOST=pve01 @@ -9,52 +9,24 @@ REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752 -COMMAND_SHA256=70f4e37095b426398e6e882f7ce7289bc0efef60b63e4b1e591700adf19669f2 +COMMAND_SHA256=f809088538067a6961a82327fd0b443ab113d2d3cb5a1f19e60b9815c4778089 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGES_MADE=false SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=7a12ebc45debe76d36dc95f174c6f0ce9159a686d93862cfea3877cdd294e1ec -SANITIZED_OUTPUT_SHA256=7a12ebc45debe76d36dc95f174c6f0ce9159a686d93862cfea3877cdd294e1ec +RAW_EVIDENCE_SHA256=cc67c53b8ddadc66b18648c5ccfb5ef258fd7782ddf58b40171b0e29e5a2a9dd +SANITIZED_OUTPUT_SHA256=cc67c53b8ddadc66b18648c5ccfb5ef258fd7782ddf58b40171b0e29e5a2a9dd OUTPUT_BEGIN Traceback (most recent call last): File "", line 1, in - import base64; exec(compile(base64.b64decode("CmltcG9ydCBiYXNlNjQKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IGpzb24KaW1wb3J0IG9zCmltcG9ydCByZQppbXBvcnQgc3VicHJvY2VzcwppbXBvcnQgdXJsbGliLnBhcnNlCmltcG9ydCB1cmxsaWIucmVxdWVzdAoKQkFTRSA9ICJodHRwczovL2dpdC5ncmFtMS5ydSIKUkVQTyA9ICJob21lbGFiLWFkbWluL2hvbWVsYWItcHVibGljLWNvbnRleHQiCkJSQU5DSCA9ICJhc3Npc3RhbnQtcnVudGltZSIKVEFSR0VUID0gIkhPTUVMQUItMTI2LUFDVElPTi0xMjciCgpkZWYgZmV0Y2godXJsLCB0aW1lb3V0PTkwKToKICAgIHJlcSA9IHVybGxpYi5yZXF1ZXN0LlJlcXVlc3QodXJsLCBoZWFkZXJzPXsiVXNlci1BZ2VudCI6ICJob21lbGFiLWltbXV0YWJsZS1wZXItZmlsZS8xIn0pCiAgICB3aXRoIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4ocmVxLCB0aW1lb3V0PXRpbWVvdXQpIGFzIHJlc3BvbnNlOgogICAgICAgIHJldHVybiByZXNwb25zZS5yZWFkKCkKCmRlZiBmZXRjaF9qc29uKHVybCk6CiAgICByZXR1cm4ganNvbi5sb2FkcyhmZXRjaCh1cmwpLmRlY29kZSgidXRmLTgiKSkKCmRlZiBpbW11dGFibGVfZmlsZShjb21tYW5kX2lkLCBleHQpOgogICAgcGF0aCA9IGYicnVudGltZS9oaXN0b3J5L3tjb21tYW5kX2lkfS57ZXh0fSIKICAgIGVuY29kZWQgPSB1cmxsaWIucGFyc2UucXVvdGUocGF0aCwgc2FmZT0iLyIpCiAgICBtZXRhID0gZmV0Y2hfanNvbihmIntCQVNFfS9hcGkvdjEvcmVwb3Mve1JFUE99L2NvbnRlbnRzL3tlbmNvZGVkfT9yZWY9e0JSQU5DSH0iKQogICAgYnJhbmNoX2J5dGVzID0gYmFzZTY0LmI2NGRlY29kZShtZXRhWyJjb250ZW50Il0pCiAgICBjb21taXQgPSBtZXRhLmdldCgibGFzdF9jb21taXRfc2hhIikgb3IgIiIKICAgIGlmIG5vdCBjb21taXQ6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYibWlzc2luZyBsYXN0X2NvbW1pdF9zaGEgZm9yIHtwYXRofSIpCiAgICBpbW11dGFibGVfYnl0ZXMgPSBmZXRjaChmIntCQVNFfS97UkVQT30vcmF3L2NvbW1pdC97Y29tbWl0fS97cGF0aH0iKQogICAgaWYgYnJhbmNoX2J5dGVzICE9IGltbXV0YWJsZV9ieXRlczoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoZiJicmFuY2gvY29tbWl0IG1pc21hdGNoIGZvciB7cGF0aH0iKQogICAgcmV0dXJuIGltbXV0YWJsZV9ieXRlcywgY29tbWl0CgpkZWYgcnVuKGNvbW1hbmQsIHRpbWVvdXQpOgogICAgdHJ5OgogICAgICAgIGNvbXBsZXRlZCA9IHN1YnByb2Nlc3MucnVuKAogICAgICAgICAgICBjb21tYW5kLAogICAgICAgICAgICB0ZXh0PVRydWUsCiAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCiAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCwKICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAogICAgICAgICAgICBjaGVjaz1GYWxzZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIGNvbXBsZXRlZC5yZXR1cm5jb2RlLCBjb21wbGV0ZWQuc3Rkb3V0CiAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCBhcyBleGM6CiAgICAgICAgb3V0cHV0ID0gZXhjLnN0ZG91dCBvciAiIgogICAgICAgIGlmIGlzaW5zdGFuY2Uob3V0cHV0LCBieXRlcyk6CiAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5kZWNvZGUoInV0Zi04IiwgZXJyb3JzPSJyZXBsYWNlIikKICAgICAgICByZXR1cm4gMTI0LCBvdXRwdXQgKyAiXG5USU1FT1VUXG4iCiAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3IgYXMgZXhjOgogICAgICAgIHJldHVybiAxMjcsIGYie3R5cGUoZXhjKS5fX25hbWVfX306IHtleGN9XG4iCgpib290c3RyYXAgPSBmZXRjaF9qc29uKGYie0JBU0V9Ly53ZWxsLWtub3duL2hvbWVsYWItYm9vdHN0cmFwLmpzb24iKQpydW50aW1lID0gYm9vdHN0cmFwWyJydW50aW1lIl0KY29udHJhY3QgPSBib290c3RyYXBbIm9wZXJhdGluZ19jb250cmFjdCJdCmFzc2VydCBydW50aW1lWyJyZXN1bHRfY29uZmlybWF0aW9uIl0gPT0gImltbXV0YWJsZV9oaXN0b3J5X2J5X2NvbW1hbmRfaWQiCmFzc2VydCBydW50aW1lWyJsYXRlc3RfanNvbl9pc19hdXRob3JpdGF0aXZlIl0gaXMgRmFsc2UKYXNzZXJ0IGNvbnRyYWN0WyJsb2FkX2Vycm9yX3JlZ2lzdGVyX2JlZm9yZV9jb21tYW5kcyJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJjaGVja19wcmV2aW91c19jb21tYW5kX3Jlc3VsdCJdIGlzIFRydWUKYXNzZXJ0IGNvbnRyYWN0WyJyZWplY3Rfa25vd25fZmFpbGVkX2V4YWN0X3JlcGVhdHMiXSBpcyBUcnVlCmFzc2VydCBjb250cmFjdFsiZG91YmxlX3ByZV9jb21tYW5kX2NoZWNrIl0gaXMgVHJ1ZQoKZXJyb3JzX2J5dGVzID0gZmV0Y2goYm9vdHN0cmFwWyJlbnRyeXBvaW50cyJdWyJlcnJvcnNfaW5kZXhfdXJsIl0pCmpzb24ubG9hZHMoZXJyb3JzX2J5dGVzLmRlY29kZSgidXRmLTgiKSkKZXJyb3JzX3RleHQgPSBlcnJvcnNfYnl0ZXMuZGVjb2RlKCJ1dGYtOCIsIGVycm9ycz0icmVwbGFjZSIpCgpqc29uX2J5dGVzLCBqc29uX2NvbW1pdCA9IGltbXV0YWJsZV9maWxlKFRBUkdFVCwgImpzb24iKQp0eHRfYnl0ZXMsIHR4dF9jb21taXQgPSBpbW11dGFibGVfZmlsZShUQVJHRVQsICJ0eHQiKQpyZXN1bHQgPSBqc29uLmxvYWRzKGpzb25fYnl0ZXMuZGVjb2RlKCJ1dGYtOCIpKQp0ZXh0ID0gdHh0X2J5dGVzLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InJlcGxhY2UiKQppZiByZXN1bHQuZ2V0KCJjb21tYW5kX2lkIikgIT0gVEFSR0VUOgogICAgcmFpc2UgUnVudGltZUVycm9yKGYid3JvbmcgY29tbWFuZF9pZDoge3Jlc3VsdC5nZXQoJ2NvbW1hbmRfaWQnKX0iKQoKc3RhdHVzID0gc3RyKHJlc3VsdC5nZXQoInN0YXR1cyIsICJVTktOT1dOIikpCnJjID0gaW50KHJlc3VsdC5nZXQoInJjIiwgLTk5OSkpCnN0YXJ0ZWQgPSBib29sKHJlc3VsdC5nZXQoImV4ZWN1dGlvbl9zdGFydGVkIiwgRmFsc2UpKQpkdXBsaWNhdGUgPSBib29sKHJlc3VsdC5nZXQoImR1cGxpY2F0ZV9mYWlsZWRfY29tbWFuZF9ibG9ja2VkIiwgRmFsc2UpKQpyZWdpc3RlcmVkID0gVEFSR0VUIGluIGVycm9yc190ZXh0CgpwcmludCgiPT09IElNTVVUQUJMRV8xMjdfUEVSX0ZJTEUgPT09IikKcHJpbnQoZiJDT01NQU5EX0lEPXtUQVJHRVR9IikKcHJpbnQoZiJKU09OX0lNTVVUQUJMRV9DT01NSVQ9e2pzb25fY29tbWl0fSIpCnByaW50KGYiVFhUX0lNTVVUQUJMRV9DT01NSVQ9e3R4dF9jb21taXR9IikKcHJpbnQoZiJDT01NSVRTX0VRVUFMPXsneWVzJyBpZiBqc29uX2NvbW1pdCA9PSB0eHRfY29tbWl0IGVsc2UgJ25vJ30iKQpwcmludCgiSElTVE9SWV9WRVJJRklDQVRJT05fTU9ERT1QRVJfRklMRV9JTU1VVEFCTEVfQ09NTUlUIikKcHJpbnQoZiJKU09OX1NIQTI1Nj17aGFzaGxpYi5zaGEyNTYoanNvbl9ieXRlcykuaGV4ZGlnZXN0KCl9IikKcHJpbnQoZiJUWFRfU0hBMjU2PXtoYXNobGliLnNoYTI1Nih0eHRfYnl0ZXMpLmhleGRpZ2VzdCgpfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJfU0hBMjU2PXtoYXNobGliLnNoYTI1NihlcnJvcnNfYnl0ZXMpLmhleGRpZ2VzdCgpfSIpCnByaW50KGYiU1RBVFVTPXtzdGF0dXN9IikKcHJpbnQoZiJSQz17cmN9IikKcHJpbnQoZiJFWEVDVVRJT05fU1RBUlRFRD17J3RydWUnIGlmIHN0YXJ0ZWQgZWxzZSAnZmFsc2UnfSIpCnByaW50KGYiRFVQTElDQVRFX0ZBSUxFRF9DT01NQU5EX0JMT0NLRUQ9eyd0cnVlJyBpZiBkdXBsaWNhdGUgZWxzZSAnZmFsc2UnfSIpCnByaW50KGYiRVJST1JfUkVHSVNURVJFRD17J3llcycgaWYgcmVnaXN0ZXJlZCBlbHNlICdubyd9IikKcHJpbnQoIj09PSBSRVNVTFRfTUFSS0VSU18xMjcgPT09IikKbWFya2VyX3JlID0gcmUuY29tcGlsZSgKICAgIHIiXihIT01FTEFCX3xERUNJU0lPTl98RklOQUxffE5FWFRfQUNUSU9OPXxST09UX3xDSEFJTl98V09SS0ZMT1dffCIKICAgIHIiVE9UQUxfLipSSVNLUz18UFJPQkVfRkFJTFVSRVM9fFFVT1JVTV9SSVNLUz18RkFJTEVEX1VOSVRfUklTS1M9fCIKICAgIHIiU1RPUkFHRV9TVEFURV9SSVNLUz18Q0FQQUNJVFlfUklTS1M9fEtFUk5FTF9SSVNLUz18IgogICAgciJCQUNLVVBfUE9MSUNZX1JJU0tTPXxMT0NBTF9CQUNLVVBfQVJDSElWRVM9KSIKKQptYXJrZXJzID0gW2xpbmUgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdGxpbmVzKCkgaWYgbWFya2VyX3JlLm1hdGNoKGxpbmUpXQpmb3IgbGluZSBpbiBtYXJrZXJzWy0zMDA6XToKICAgIHByaW50KGxpbmUpCmlmIHN0YXR1cyAhPSAiT0siIG9yIHJjICE9IDAgb3Igbm90IHN0YXJ0ZWQ6CiAgICBwcmludCgiPT09IEZBSUxVUkVfRVZJREVOQ0VfMTI3ID09PSIpCiAgICBwcmludCgiXG4iLmpvaW4odGV4dC5zdHJpcCgpLnNwbGl0bGluZXMoKVstNTAwOl0pIG9yICJFTVBUWSIpCgpwcm9iZXMgPSB7CiAgICAicXVvcnVtIjogKFsicHZlY20iLCAic3RhdHVzIl0sIDMwKSwKICAgICJmYWlsZWQiOiAoWyJzeXN0ZW1jdGwiLCAiLS1mYWlsZWQiLCAiLS1hbGwiLCAiLS1uby1sZWdlbmQiLCAiLS1wbGFpbiJdLCAzMCksCiAgICAic3RvcmFnZSI6IChbInB2ZXNtIiwgInN0YXR1cyJdLCA0NSksCiAgICAiY2FwYWNpdHkiOiAoWyJkZiIsICItUCIsICItaCJdLCAzMCksCiAgICAia2VybmVsIjogKFsiam91cm5hbGN0bCIsICItayIsICItLXNpbmNlIiwgIi0yNCBob3VycyIsICItLW5vLXBhZ2VyIl0sIDkwKSwKICAgICJqb3VybmFsIjogKFsiam91cm5hbGN0bCIsICItLXNpbmNlIiwgIi03MiBob3VycyIsICItLW5vLXBhZ2VyIiwgIi1vIiwgImNhdCJdLCAxMjApLAp9Cm91dHB1dHMgPSB7fQpwcm9iZV9mYWlsdXJlcyA9IFtdCmZvciBuYW1lLCAoY29tbWFuZCwgdGltZW91dCkgaW4gcHJvYmVzLml0ZW1zKCk6CiAgICBwcm9iZV9yYywgb3V0cHV0ID0gcnVuKGNvbW1hbmQsIHRpbWVvdXQpCiAgICBvdXRwdXRzW25hbWVdID0gb3V0cHV0CiAgICBpZiBwcm9iZV9yYyAhPSAwOgogICAgICAgIHByb2JlX2ZhaWx1cmVzLmFwcGVuZChmIntuYW1lfTpyYz17cHJvYmVfcmN9IikKCnF1b3J1bV9saW5lcyA9IFsKICAgIGxpbmUuc3RyaXAoKQogICAgZm9yIGxpbmUgaW4gb3V0cHV0c1sicXVvcnVtIl0uc3BsaXRsaW5lcygpCiAgICBpZiByZS5zZWFyY2gociJRdW9yYXRlOlxzKk5vfG5vdCBxdW9yYXRlIiwgbGluZSwgcmUuSSkKXQpmYWlsZWRfbGluZXMgPSBbCiAgICBsaW5lLnN0cmlwKCkKICAgIGZvciBsaW5lIGluIG91dHB1dHNbImZhaWxlZCJdLnNwbGl0bGluZXMoKQogICAgaWYgcmUuc2VhcmNoKHIiXC4oc2VydmljZXxzb2NrZXR8dGltZXJ8bW91bnR8dGFyZ2V0KVxiIiwgbGluZSkKXQpzdG9yYWdlX2xpbmVzID0gWwogICAgbGluZS5zdHJpcCgpCiAgICBmb3IgbGluZSBpbiBvdXRwdXRzWyJzdG9yYWdlIl0uc3BsaXRsaW5lcygpCiAgICBpZiByZS5zZWFyY2gociJcYihpbmFjdGl2ZXx1bmtub3dufGVycm9yfGZhaWxlZHxvZmZsaW5lKVxiIiwgbGluZSwgcmUuSSkKXQpjYXBhY2l0eV9saW5lcyA9IFtdCmZvciBpbmRleCwgbGluZSBpbiBlbnVtZXJhdGUob3V0cHV0c1siY2FwYWNpdHkiXS5zcGxpdGxpbmVzKCkpOgogICAgaWYgaW5kZXggPT0gMDoKICAgICAgICBjb250aW51ZQogICAgbWF0Y2ggPSByZS5zZWFyY2gociJccyhcZCspJVxzIiwgbGluZSkKICAgIGlmIG1hdGNoIGFuZCBpbnQobWF0Y2guZ3JvdXAoMSkpID49IDg1OgogICAgICAgIGNhcGFjaXR5X2xpbmVzLmFwcGVuZChsaW5lLnN0cmlwKCkpCgprZXJuZWxfcGF0dGVybiA9IHJlLmNvbXBpbGUoCiAgICByIkkvTyBlcnJvcnxmaWxlc3lzdGVtIGVycm9yfHJlYWQtb25seSBmaWxlIHN5c3RlbXxoYXJkd2FyZSBlcnJvcnxtYWNoaW5lIGNoZWNrfCIKICAgIHIib29tLWtpbGxlcnxvdXQgb2YgbWVtb3J5fG52bWUuKig/OmNyaXRpY2FsfGVycm9yKXxhdGEuKmVycm9yfGNvcnJ1cHR8RkFVTFRFRHxERUdSQURFRCIsCiAgICByZS5JLAopCmtlcm5lbF9ub2lzZSA9IHJlLmNvbXBpbGUociJjb3JyZWN0ZWQgZXJyb3J8ZXJyb3IgcmVwb3J0aW5nIGVuYWJsZWR8QUVSOiBlbmFibGVkIiwgcmUuSSkKa2VybmVsX2xpbmVzID0gWwogICAgbGluZS5zdHJpcCgpCiAgICBmb3IgbGluZSBpbiBvdXRwdXRzWyJrZXJuZWwiXS5zcGxpdGxpbmVzKCkKICAgIGlmIGtlcm5lbF9wYXR0ZXJuLnNlYXJjaChsaW5lKSBhbmQgbm90IGtlcm5lbF9ub2lzZS5zZWFyY2gobGluZSkKXQoKYmFja3VwX3BhdHRlcm4gPSByZS5jb21waWxlKAogICAgciJSRU1PVEVfRkFJTFVSRVM9WzEtOV18TE9DQUxfQkFDS1VQX1RPVEFMPVsxLTldfGJhY2t1cC4qKD86RkFJTHxFUlJPUil8IgogICAgciJyZXN0b3JlLiooPzpGQUlMfEVSUk9SKXxjbG91ZC4qKD86RkFJTHxFUlJPUil8aW50ZWdyaXR5LiooPzpGQUlMfEVSUk9SKXwiCiAgICByImNoZWNrc3VtLiptaXNtYXRjaHx1cGxvYWQuKmZhaWwiLAogICAgcmUuSSwKKQpiYWNrdXBfbm9pc2UgPSByZS5jb21waWxlKAogICAgciJob21lbGFiLWNoYXQtcnVufENPTU1BTkRfSUQ9fGdyZXAgLUV8SE9NRUxBQi18Q1JJVElDQUwtfCIKICAgIHIicHl0aG9uMyAtY3xiYXNlNjQiLAogICAgcmUuSSwKKQpiYWNrdXBfbGluZXMgPSBbCiAgICBsaW5lLnN0cmlwKCkKICAgIGZvciBsaW5lIGluIG91dHB1dHNbImpvdXJuYWwiXS5zcGxpdGxpbmVzKCkKICAgIGlmIGJhY2t1cF9wYXR0ZXJuLnNlYXJjaChsaW5lKSBhbmQgbm90IGJhY2t1cF9ub2lzZS5zZWFyY2gobGluZSkKXQoKbG9jYWxfYXJjaGl2ZV9saW5lcyA9IFtdCmR1bXBfcm9vdCA9ICIvdmFyL2xpYi92ei9kdW1wIgppZiBvcy5wYXRoLmlzZGlyKGR1bXBfcm9vdCk6CiAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMgaW4gb3Mud2FsayhkdW1wX3Jvb3QpOgogICAgICAgIGRlcHRoID0gb3MucGF0aC5yZWxwYXRoKHJvb3QsIGR1bXBfcm9vdCkuY291bnQob3Muc2VwKQogICAgICAgIGlmIGRlcHRoID49IDE6CiAgICAgICAgICAgIGRpcnNbOl0gPSBbXQogICAgICAgIGZvciBuYW1lIGluIGZpbGVzOgogICAgICAgICAgICBpZiByZS5tYXRjaChyIl52emR1bXAtLipcLig/OnZtYXx0YXIpKD86XC4uKik/JCIsIG5hbWUpOgogICAgICAgICAgICAgICAgbG9jYWxfYXJjaGl2ZV9saW5lcy5hcHBlbmQob3MucGF0aC5qb2luKHJvb3QsIG5hbWUpKQoKY291bnRzID0gewogICAgIlBST0JFX0ZBSUxVUkVTIjogbGVuKHByb2JlX2ZhaWx1cmVzKSwKICAgICJRVU9SVU1fUklTS1MiOiBsZW4ocXVvcnVtX2xpbmVzKSwKICAgICJGQUlMRURfVU5JVF9SSVNLUyI6IGxlbihmYWlsZWRfbGluZXMpLAogICAgIlNUT1JBR0VfU1RBVEVfUklTS1MiOiBsZW4oc3RvcmFnZV9saW5lcyksCiAgICAiQ0FQQUNJVFlfUklTS1MiOiBsZW4oY2FwY2l0eV9saW5lcyksCiAgICAiS0VSTkVMX1JJU0tTIjogbGVuKGtlcm5lbF9saW5lcyksCiAgICAiQkFDS1VQX1BPTElDWV9SSVNLUyI6IGxlbihiYWNrdXBfbGluZXMpLAogICAgIkxPQ0FMX0JBQ0tVUF9BUkNISVZFUyI6IGxlbihsb2NhbF9hcmNoaXZlX2xpbmVzKSwKfQp0b3RhbCA9IHN1bShjb3VudHMudmFsdWVzKCkpCgpwcmludCgiPT09IElOREVQRU5ERU5UX0xJVkVfR0FURSA9PT0iKQpmb3Iga2V5LCB2YWx1ZSBpbiBjb3VudHMuaXRlbXMoKToKICAgIHByaW50KGYie2tleX09e3ZhbHVlfSIpCnByaW50KGYiVE9UQUxfRklOQUxfUklTS1M9e3RvdGFsfSIpCgpldmlkZW5jZV9ncm91cHMgPSBbCiAgICAoIlBST0JFX0ZBSUxVUkVfRVZJREVOQ0UiLCBwcm9iZV9mYWlsdXJlcyksCiAgICAoIlFVT1JVTV9FVklERU5DRSIsIHF1b3J1bV9saW5lcyksCiAgICAoIkZBSUxFRF9VTklUX0VWSURFTkNFIiwgZmFpbGVkX2xpbmVzKSwKICAgICgiU1RPUkFHRV9FVklERU5DRSIsIHN0b3JhZ2VfbGluZXMpLAogICAgKCJDQVBBQ0lUWV9FVklERU5DRSIsIGNhcGFjaXR5X2xpbmVzKSwKICAgICgiS0VSTkVMX0VWSURFTkNFIiwga2VybmVsX2xpbmVzKSwKICAgICgiQkFDS1VQX0VWSURFTkNFIiwgYmFja3VwX2xpbmVzKSwKICAgICgiTE9DQUxfQkFDS1VQX0FSQ0hJVkVfRVZJREVOQ0UiLCBsb2NhbF9hcmNoaXZlX2xpbmVzKSwKXQpmb3IgdGl0bGUsIGxpbmVzIGluIGV2aWRlbmNlX2dyb3VwczoKICAgIHByaW50KGYiPT09IHt0aXRsZX0gPT09IikKICAgIGlmIGxpbmVzOgogICAgICAgIGZvciBsaW5lIGluIGxpbmVzWzoxMjBdOgogICAgICAgICAgICBwcmludChsaW5lKQogICAgICAgIGlmIGxlbihsaW5lcykgPiAxMjA6CiAgICAgICAgICAgIHByaW50KGYiVFJVTkNBVEVEPXtsZW4obGluZXMpLTEyMH0iKQogICAgZWxzZToKICAgICAgICBwcmludCgiTk9ORSIpCgppZiBjb3VudHNbIlBST0JFX0ZBSUxVUkVTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRVBBSVJfQVVESVRfUFJPQkVTIgplbGlmIGNvdW50c1siUVVPUlVNX1JJU0tTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRVBBSVJfUVVPUlVNIgplbGlmIGNvdW50c1siQkFDS1VQX1BPTElDWV9SSVNLUyJdIG9yIGNvdW50c1siTE9DQUxfQkFDS1VQX0FSQ0hJVkVTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRUNPTkNJTEVfRFVBTF9NQUlMX0NMT1VEX0JBQ0tVUFMiCmVsaWYgY291bnRzWyJLRVJORUxfUklTS1MiXToKICAgIG5leHRfYWN0aW9uID0gIklTT0xBVEVfS0VSTkVMX1NUT1JBR0VfT1JfSEFSRFdBUkVfRkFVTFQiCmVsaWYgY291bnRzWyJTVE9SQUdFX1NUQVRFX1JJU0tTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRVBBSVJfUFJPWE1PWF9TVE9SQUdFX1NUQVRFIgplbGlmIGNvdW50c1siRkFJTEVEX1VOSVRfUklTS1MiXToKICAgIG5leHRfYWN0aW9uID0gIlJFUEFJUl9GQUlMRURfU1lTVEVNRF9VTklUUyIKZWxpZiBjb3VudHNbIkNBUEFDSVRZX1JJU0tTIl06CiAgICBuZXh0X2FjdGlvbiA9ICJSRURVQ0VfT1JfRVhQQU5EX0NBUEFDSVRZIgplbHNlOgogICAgbmV4dF9hY3Rpb24gPSAiTk9ORSIKCmlmIHRvdGFsID09IDA6CiAgICBwcmludCgiSE9NRUxBQl9GSU5BTF9TVEFURT1DTE9TRUQiKQogICAgcHJpbnQoIkZJTkFMX0dBVEU9UEFTUyIpCiAgICBwcmludCgiSE9NRUxBQl9XT1JLRkxPV19TVEFUVVM9Q09NUExFVEUiKQogICAgcHJpbnQoIk5FWFRfQUNUSU9OPU5PTkUiKQplbHNlOgogICAgcHJpbnQoIkhPTUVMQUJfRklOQUxfU1RBVEU9QkxPQ0tFRCIpCiAgICBwcmludCgiRklOQUxfR0FURT1CTE9DS0VEIikKICAgIHByaW50KCJIT01FTEFCX1dPUktGTE9XX1NUQVRVUz1SRVFVSVJFU19BQ1RJT04iKQogICAgcHJpbnQoZiJORVhUX0FDVElPTj17bmV4dF9hY3Rpb259IikKCnByaW50KCJJTU1VVEFCTEVfQ09NTUlUX1JVTEVfQ09SUkVDVElPTj1KU09OX0FORF9UWFRfVkVSSUZJRURfSU5ERVBFTkRFTlRMWSIpCnByaW50KCJIT01FTEFCX0lNTVVUQUJMRV9QRVJfRklMRV9SRUNPTkNJTEU9Q09NUExFVEUiKQo="), "", "exec")) - ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "", line 195, in -NameError: name 'capcity_lines' is not defined. Did you mean: 'capacity_lines'? -=== IMMUTABLE_127_PER_FILE === -COMMAND_ID=HOMELAB-126-ACTION-127 -JSON_IMMUTABLE_COMMIT=3b4a5565e4d07127e6561009623a862837fd8c20 -TXT_IMMUTABLE_COMMIT=3b4a5565e4d07127e6561009623a862837fd8c20 -COMMITS_EQUAL=yes -HISTORY_VERIFICATION_MODE=PER_FILE_IMMUTABLE_COMMIT -JSON_SHA256=7577ab416090308b391918d1609cccd7352b9f2bb4379f8844caec5cf9e20c9d -TXT_SHA256=84aea6a5c4ac24d3d0f3ec1983250ed7abfaebe92154d82c73a73aaa8f8535c8 -ERROR_REGISTER_SHA256=a13ca59d5fa1ad39b813bad3115d7b8cf8c5c68935fc813dbd792757ed421e24 -STATUS=OK -RC=0 -EXECUTION_STARTED=true -DUPLICATE_FAILED_COMMAND_BLOCKED=false -ERROR_REGISTERED=no -=== RESULT_MARKERS_127 === -DECISION_125=ROOT_FAILURE_CONFIRMED -ROOT_FAILURE_ID=HOMELAB-123-RESOLUTION-124 -ROOT_FAILURE_CLASS=COMMAND_SYNTAX_OR_QUOTING_FAILURE -WORKFLOW_STATUS=UNKNOWN -NEXT_ACTION=REBUILD_ROOT_FAILURE_ONLY -ROOT_COMMAND_ID=HOMELAB-123-RESOLUTION-124 -ROOT_IMMUTABLE_COMMIT=b51cd8a842dcef66b0bf30dbe40d10cc18c4b7cd -ROOT_STATUS=FAIL -ROOT_RC=1 -ROOT_ERROR_REGISTERED=no -ROOT_JSON_SHA256= -ROOT_TXT_SHA256= -DECISION_126=ROOT_FAILURE_CONFIRMED -NEXT_ACTION=REBUILD_ROOT_FAILURE_ONLY -HOMELAB_126_ACTION=COMPLETE + import base64,zlib;exec(compile(zlib.decompress(base64.b64decode("eJyVGGtv4rj2O78i11oJ2FtgOpod7VSKrlJI22yBsCHMQ93eyAJpGu3sODi0/fedOEmTlJA0uRz5+fF8Ty6poVLfHdYjW3Ga08asxko9Xwtk+iYm+5HmtBJv6z/bKzMWdbLFoq4omvk1SnA/qc0nJdr2Yjps3pR1uquKYtiw5M0d4V9dXtr4+sK6rc8mI8dJ7Aq+ygqgzn6VxvdXKdr0TJ6KpQa+Ssq9m3C6N5mhQ3VnWK1mYtp6wyreUj+r/F0p4Sp5Lg5zWK/BYWX7QbZQY72z/4tUPNQ6q0Y3xk2TIn1pNWlPw24zSjH1nhpoB+B7rQTP6nE8v7A8VvuvvWQ+XmgZ0X5t0vLzTn7hMNX82y2V2zMW8otz/Yn4cV6qFPH8fTBYu3dxc8J8KKQKcVpPbRdxmKfX8i8w9QstbJd0vCvvZV1Q0ZlHvcw9Q+WvUplnVg8vP3o48O3VXjxPzdbhlYv3j3u1K4n7MxsFzYfHhQ/bqv6G27jsYMl2Vz1m0LzC22uG7t7ydVC3nMmFMZ/eV7w6zK1O8K5xw8axmcPzDGzrNQ6Z3WjqU8vV7g7ZcK+kl1OoM37T+fH8Krr3/PpVb6bLm0M5V7t8Zq5VtGOKs8vQpS0kGkWRTzPNPxfCllgQO6bYQ6pjVVLw8PvXJZhtS93woTiBvNn+eM6+q4r7Wz0xN8c8u3BFT9vM2VvsAjtxXZWJt8v8QmH1Z2S4U1PUX2JkKf0sYdV20fx5aowb4S1NQw2Wn8Sqo3l1AVZ8gQ1uL5pPJb8cAqt3cPVi+R+z7x9fX8TT2JcIhRWk69wmEB9aQZaOjnN0H5pP6T84+TiQt7xph/YmGJdUcnT5fL+Cw1xq2N4l1m2kLq6Pp9FJqVr1+3uV7nnCw2xKkRb0/f0f6ikdmYV5pJ0I4s1n/5iK9AxE5Xq1Hc73mkj10oJ/9bM9wpVv+pqPvwNtv62w8tpn8ZqlV+80X8K7I9flGu3qrr+j6thpmra6w7f7cE3wXdKY+Mtg9apGRtvpS7ZVjLc+OQt8hUfctNz+0c+qTpg3HEo9js3fW7S56PrzMzXXHe15zPy/VyODZPrh3dX2F09QGLk25LsYBD3/QZ0ccSt2YG2RFzQ5VLZvEuy26nFVH4Yv6j5+Mnp8TBTJmGsqT0cR0fWf7Y0vVZzP6Iu8w7DeuGyq9F9ft9pd+kMZ6Cj9gZcCEvVfqj9mFiWl5xY7SJ9sQlP3fH7QF9Yb22fQ1XlE0+7Vhhs3RcW6dAq5LoyrHjb/YVZ8wXn3VZtV9KvZxnJxCOf60XwN3I4lM5WLJ7cskX5R7a3A5iKuImy1Sq7j3Oa5rI5j2m4sZzoUVQ23r2uF6C8mCj22VkHhFY9mRyPng6vPvhBtbCjujLal3qk3I8T3QKcMr4Vjba4EGQkH/Uh2WZ/8HJl2LMjVTDRo1Zl32v5hu1YmHQE7B/Wtpa0taL/8aD3gjUuzsJ5cLZUE3G7ZWVt8E0mS2FfQYv3Y5rvt7tWdpHvCqY1uYZ8XsPSm0Vr2sM3GQXq2o9YUvK/OcO2A9/8YdcWpjT+RX4k8CF8dDRVT6fksN+nrQYvYOme9b4mzN1jA3VhdtPbr1p/nxY3QacPsvrAb24yxdhqXWZ9mePpGkKUq6VvY2zuX6uY4ve/VTr2i8u+mX4GLd1pkZKuc5WitR+tU8fNr9m12W6tMZ5uVwFD/NXj/VF6Jn3N8xWrDkn6hdO6hxO3x/8FU11Nis=")).decode(),"","exec")) + ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/base64.py", line 88, in b64decode + return binascii.a2b_base64(s, strict_mode=validate) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ +binascii.Error: Invalid base64-encoded string: number of data characters (1729) cannot be 1 more than a multiple of 4 OUTPUT_END CHAT_OUTPUT_END