# HG changeset patch # User tduigou # Date 1748004830 0 # Node ID 296e5145a862640ec9d5df19e5e139c4dd6ac1f8 # Parent e1e9859132046d01c556bd6b7ec21bd439bb06e8 planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/DnaCauldron/tree/master commit 6ae809b563b40bcdb6be2e74fe2a84ddad5484ae diff -r e1e985913204 -r 296e5145a862 cloning_similation.xml --- a/cloning_similation.xml Wed May 21 14:53:05 2025 +0000 +++ b/cloning_similation.xml Fri May 23 12:53:50 2025 +0000 @@ -38,33 +38,33 @@ --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' - --enzyme '$adv.enzyme' + --enzyme '$adv.enzyme' --topology '$topology' && cp 'output_zip.zip' '$output_zip' ]]> - + - + - +
- - + +
- + @@ -369,11 +369,12 @@ **Parameters**: --------------- -* **assemnby csv**: csv file containes the construct names with their parts. +* **Assemby csv**: csv file containes the construct names with their parts. * **GenBank files**: Upload all the parts sequences for your assembli(es). Don't forget the receptor vector(s). -* **topology**: Can be "circular", "linear". -* **enzyme**: It will be selected automatically, or you can set one from this dictionnary : `dict `_ -* **assembly_class**: +* **Domesticated GenBank**: Dimesticated GenBank list (Optional) +* **Topology**: Can be "circular", "linear". +* **Enzyme**: It will be selected automatically, or you can set one from this dictionnary : `dict `_ +* **Assembly Class**: - "GoldenGate_assembly": Type2sRestrictionAssembly (recommended in Domesticated dataset) `ex. dataset `_ - "gibson_assembly": GibsonAssembly `ex. dataset `_ - "BASIC_assembly": BASICAssembly `ex. dataset `_ diff -r e1e985913204 -r 296e5145a862 output.html --- a/output.html Wed May 21 14:53:05 2025 +0000 +++ b/output.html Fri May 23 12:53:50 2025 +0000 @@ -285,7 +285,7 @@ var md = window.markdownit({ html: true, }); - target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDg1LjcxNDI4NTcxNDI4NTcxJSIgYXJpYS12YWx1ZW5vdz0iNiIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI2IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAxNC4yODU3MTQyODU3MTQyODUlIiBhcmlhLXZhbHVlbm93PSIxIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMSBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA2IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDEgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyBvcGVuPjxzdW1tYXJ5PkZhaWxlZCBUZXN0czwvc3VtbWFyeT4KCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LXJlZCI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LXJlZCI+JiMxMDA2MDsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKlByb2JsZW1zKio6CiAgICAqIGBgYAogICAgICBKb2IgaW4gZXJyb3Igc3RhdGUuLiB0b29sX2lkOiBjbG9uaW5nX3NpbXVsYXRpb24sIGV4aXRfY29kZTogMSwgc3RkZXJyOiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5IiwgbGluZSAxNjUsIGluIDxtb2R1bGU+CiAgICAgICAgICBjbG9uaW5nX3NpbXVsYXRpb24oCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5eCiAgICAgICAgICAgICAgYXJncy5wYXJ0c19maWxlcywgYXJncy5kb21lc3RpY2F0ZWRfc2VxLAogICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICAgIC4uLjwzIGxpbmVzPi4uLgogICAgICAgICAgICAgIGFyZ3Mub3V0cHV0X3NpbXVsYXRpb24sIGFyZ3MuZW56eW1lLCBhcmdzLm91dGRpcl9nYgogICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogICAgICAgICAgKQogICAgICAgICAgXgogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weSIsIGxpbmUgMjIsIGluIGNsb25pbmdfc2ltdWxhdGlvbgogICAgICAgICAgcmVwb3NpdG9yeS5pbXBvcnRfcmVjb3JkcyhmaWxlcz1kb21lc3RpY2F0ZWRfZmlsZXMsCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2ZpbGVfbmFtZXNfYXNfaWRzPXVzZV9maWxlX25hbWVzX2FzX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcG9sb2d5PXRvcG9sb2d5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL21pbmljb25kYTMvZW52cy9tdWxsZWQtdjEtNmMyYjllYmI0NzVhMzdiZDBkOWNhNzg1NzQ3NGU4NTc0NzE5ZTU0NmRlODgyODEwZjc4MjhmZTU5OTNhOGFkZi9saWIvcHl0aG9uMy4xMy9zaXRlLXBhY2thZ2VzL2RuYWNhdWxkcm9uL1NlcXVlbmNlUmVwb3NpdG9yeS5weSIsIGxpbmUgMTcwLCBpbiBpbXBvcnRfcmVjb3JkcwogICAgICAgICAgc2VsZi5hZGRfcmVjb3JkcyhyZWNvcmRzLCBjb2xsZWN0aW9uPWNvbGxlY3Rpb24pCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL21pbmljb25kYTMvZW52cy9tdWxsZWQtdjEtNmMyYjllYmI0NzVhMzdiZDBkOWNhNzg1NzQ3NGU4NTc0NzE5ZTU0NmRlODgyODEwZjc4MjhmZTU5OTNhOGFkZi9saWIvcHl0aG9uMy4xMy9zaXRlLXBhY2thZ2VzL2RuYWNhdWxkcm9uL1NlcXVlbmNlUmVwb3NpdG9yeS5weSIsIGxpbmUgOTYsIGluIGFkZF9yZWNvcmRzCiAgICAgICAgICBzZWxmLmFkZF9yZWNvcmQocmVjb3JkLCBjb2xsZWN0aW9uPWNvbGxlY3Rpb24pCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9taW5pY29uZGEzL2VudnMvbXVsbGVkLXYxLTZjMmI5ZWJiNDc1YTM3YmQwZDljYTc4NTc0NzRlODU3NDcxOWU1NDZkZTg4MjgxMGY3ODI4ZmU1OTkzYThhZGYvbGliL3B5dGhvbjMuMTMvc2l0ZS1wYWNrYWdlcy9kbmFjYXVsZHJvbi9TZXF1ZW5jZVJlcG9zaXRvcnkucHkiLCBsaW5lIDg1LCBpbiBhZGRfcmVjb3JkCiAgICAgICAgICByYWlzZSBSZXBvc2l0b3J5RHVwbGljYXRlRXJyb3IoW3JlY29yZC5pZF0sIHJlcG9zaXRvcnk9c2VsZikKICAgICAgZG5hY2F1bGRyb24uU2VxdWVuY2VSZXBvc2l0b3J5LlJlcG9zaXRvcnlEdXBsaWNhdGVFcnJvcjogUGFydCBJRCBkYXRhc2V0XzRjN2M2NzFiLTVmYzMtNGU5Ni1iN2YyLTdlMzA5ZDUzNTg4ZCBkdXBsaWNhdGVkIGluICBpbiByZXBvCiAgICAgIC4KICAgICAgYGBgCiAgICAqIGBgYAogICAgICBKb2IgaW4gZXJyb3Igc3RhdGUuLiB0b29sX2lkOiBjbG9uaW5nX3NpbXVsYXRpb24sIGV4aXRfY29kZTogMSwgc3RkZXJyOiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5IiwgbGluZSAxNjUsIGluIDxtb2R1bGU+CiAgICAgICAgICBjbG9uaW5nX3NpbXVsYXRpb24oCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5eCiAgICAgICAgICAgICAgYXJncy5wYXJ0c19maWxlcywgYXJncy5kb21lc3RpY2F0ZWRfc2VxLAogICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICAgIC4uLjwzIGxpbmVzPi4uLgogICAgICAgICAgICAgIGFyZ3Mub3V0cHV0X3NpbXVsYXRpb24sIGFyZ3MuZW56eW1lLCBhcmdzLm91dGRpcl9nYgogICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogICAgICAgICAgKQogICAgICAgICAgXgogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weSIsIGxpbmUgMjIsIGluIGNsb25pbmdfc2ltdWxhdGlvbgogICAgICAgICAgcmVwb3NpdG9yeS5pbXBvcnRfcmVjb3JkcyhmaWxlcz1kb21lc3RpY2F0ZWRfZmlsZXMsCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2ZpbGVfbmFtZXNfYXNfaWRzPXVzZV9maWxlX25hbWVzX2FzX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcG9sb2d5PXRvcG9sb2d5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL21pbmljb25kYTMvZW52cy9tdWxsZWQtdjEtNmMyYjllYmI0NzVhMzdiZDBkOWNhNzg1NzQ3NGU4NTc0NzE5ZTU0NmRlODgyODEwZjc4MjhmZTU5OTNhOGFkZi9saWIvcHl0aG9uMy4xMy9zaXRlLXBhY2thZ2VzL2RuYWNhdWxkcm9uL1NlcXVlbmNlUmVwb3NpdG9yeS5weSIsIGxpbmUgMTcwLCBpbiBpbXBvcnRfcmVjb3JkcwogICAgICAgICAgc2VsZi5hZGRfcmVjb3JkcyhyZWNvcmRzLCBjb2xsZWN0aW9uPWNvbGxlY3Rpb24pCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL21pbmljb25kYTMvZW52cy9tdWxsZWQtdjEtNmMyYjllYmI0NzVhMzdiZDBkOWNhNzg1NzQ3NGU4NTc0NzE5ZTU0NmRlODgyODEwZjc4MjhmZTU5OTNhOGFkZi9saWIvcHl0aG9uMy4xMy9zaXRlLXBhY2thZ2VzL2RuYWNhdWxkcm9uL1NlcXVlbmNlUmVwb3NpdG9yeS5weSIsIGxpbmUgOTYsIGluIGFkZF9yZWNvcmRzCiAgICAgICAgICBzZWxmLmFkZF9yZWNvcmQocmVjb3JkLCBjb2xsZWN0aW9uPWNvbGxlY3Rpb24pCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9taW5pY29uZGEzL2VudnMvbXVsbGVkLXYxLTZjMmI5ZWJiNDc1YTM3YmQwZDljYTc4NTc0NzRlODU3NDcxOWU1NDZkZTg4MjgxMGY3ODI4ZmU1OTkzYThhZGYvbGliL3B5dGhvbjMuMTMvc2l0ZS1wYWNrYWdlcy9kbmFjYXVsZHJvbi9TZXF1ZW5jZVJlcG9zaXRvcnkucHkiLCBsaW5lIDg1LCBpbiBhZGRfcmVjb3JkCiAgICAgICAgICByYWlzZSBSZXBvc2l0b3J5RHVwbGljYXRlRXJyb3IoW3JlY29yZC5pZF0sIHJlcG9zaXRvcnk9c2VsZikKICAgICAgZG5hY2F1bGRyb24uU2VxdWVuY2VSZXBvc2l0b3J5LlJlcG9zaXRvcnlEdXBsaWNhdGVFcnJvcjogUGFydCBJRCBkYXRhc2V0XzRjN2M2NzFiLTVmYzMtNGU5Ni1iN2YyLTdlMzA5ZDUzNTg4ZCBkdXBsaWNhdGVkIGluICBpbiByZXBvCiAgICAgIC4KICAgICAgYGBgCiAgICAqIGBgYAogICAgICBPdXRwdXQgY29sbGVjdGlvbiAnY29uc3RydWN0X2diJzogZXhwZWN0ZWQgdG8gaGF2ZSA0IGVsZW1lbnRzLCBidXQgaXQgaGFkIDAuCiAgICAgIGBgYAogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzgvNi84L2RhdGFzZXRfODY4ZWRmYzYtZTU5ZS00NTIyLWJkMGMtMjg3MTQwZDI3YmNmLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzQvYy83L2RhdGFzZXRfNGM3YzY3MWItNWZjMy00ZTk2LWI3ZjItN2UzMDlkNTM1ODhkLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzQvYy82L2RhdGFzZXRfNGM2YjRjMDItOGY4NC00MzE0LThhMTMtNjgyYTg1NTAwNWUwLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzIvOS9jL2RhdGFzZXRfMjljMjA3ZmMtMzk1OC00MGI3LThkM2EtMjk0ODZlYmU3MjllLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2MvNi9lL2RhdGFzZXRfYzZlMTRhYmMtNGNjMy00MDI3LWJiMWItY2Y4N2I0ZGYyZTRjLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2MvYi85L2RhdGFzZXRfY2I5MGMwZWMtYzVkNS00YTBjLWEyYTgtODJiZGY1OGE0ZGNkLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2UvYi82L2RhdGFzZXRfZWI2NzMzZjItZWE5MS00Y2UyLTg3OGMtMGJjYTc4OWJmZTk1LmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2QvZS9hL2RhdGFzZXRfZGVhN2EzMDAtYjA5OC00MWExLTg2M2QtZWM1NWUzYjc4YmRhLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzEvMy8zL2RhdGFzZXRfMTMzMDAzNTMtOGI4ZC00YmQ0LTlkMjUtODhkY2VkYTc1OTRiLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzYvMS9mL2RhdGFzZXRfNjFmZmI3ZDYtODU2YS00ZTRhLTlkYTMtNDhhNDE5NDU1ZTkyLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2UvNi80L2RhdGFzZXRfZTY0MzE2MzQtMDc3ZS00NTFlLWFmYTMtYjEyYzA4ZmM1YzdjLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzcvNS84L2RhdGFzZXRfNzU4YjRhNDUtYzE3ZC00ZDFhLWEyODktNzlkM2IyZGZlNTI0LmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzIvMi82L2RhdGFzZXRfMjI2ODg5YTEtMDU0My00MDUyLTlkOTQtMzI3NmFjZGJkOGFkLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzQvYy83L2RhdGFzZXRfNGM3YzY3MWItNWZjMy00ZTk2LWI3ZjItN2UzMDlkNTM1ODhkLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzQvYy82L2RhdGFzZXRfNGM2YjRjMDItOGY4NC00MzE0LThhMTMtNjgyYTg1NTAwNWUwLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzIvOS9jL2RhdGFzZXRfMjljMjA3ZmMtMzk1OC00MGI3LThkM2EtMjk0ODZlYmU3MjllLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2MvNi9lL2RhdGFzZXRfYzZlMTRhYmMtNGNjMy00MDI3LWJiMWItY2Y4N2I0ZGYyZTRjLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2MvYi85L2RhdGFzZXRfY2I5MGMwZWMtYzVkNS00YTBjLWEyYTgtODJiZGY1OGE0ZGNkLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2UvYi82L2RhdGFzZXRfZWI2NzMzZjItZWE5MS00Y2UyLTg3OGMtMGJjYTc4OWJmZTk1LmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2QvZS9hL2RhdGFzZXRfZGVhN2EzMDAtYjA5OC00MWExLTg2M2QtZWM1NWUzYjc4YmRhLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzEvMy8zL2RhdGFzZXRfMTMzMDAzNTMtOGI4ZC00YmQ0LTlkMjUtODhkY2VkYTc1OTRiLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzYvMS9mL2RhdGFzZXRfNjFmZmI3ZDYtODU2YS00ZTRhLTlkYTMtNDhhNDE5NDU1ZTkyLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2UvNi80L2RhdGFzZXRfZTY0MzE2MzQtMDc3ZS00NTFlLWFmYTMtYjEyYzA4ZmM1YzdjLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzcvNS84L2RhdGFzZXRfNzU4YjRhNDUtYzE3ZC00ZDFhLWEyODktNzlkM2IyZGZlNTI0LmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzIvMi82L2RhdGFzZXRfMjI2ODg5YTEtMDU0My00MDUyLTlkOTQtMzI3NmFjZGJkOGFkLmRhdCcgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzQvYy83L2RhdGFzZXRfNGM3YzY3MWItNWZjMy00ZTk2LWI3ZjItN2UzMDlkNTM1ODhkLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy80L2MvNi9kYXRhc2V0XzRjNmI0YzAyLThmODQtNDMxNC04YTEzLTY4MmE4NTUwMDVlMC5kYXQ6cGFydF9CLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMi85L2MvZGF0YXNldF8yOWMyMDdmYy0zOTU4LTQwYjctOGQzYS0yOTQ4NmViZTcyOWUuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2MvNi9lL2RhdGFzZXRfYzZlMTRhYmMtNGNjMy00MDI3LWJiMWItY2Y4N2I0ZGYyZTRjLmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy9jL2IvOS9kYXRhc2V0X2NiOTBjMGVjLWM1ZDUtNGEwYy1hMmE4LTgyYmRmNThhNGRjZC5kYXQ6cGFydF9FLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvZS9iLzYvZGF0YXNldF9lYjY3MzNmMi1lYTkxLTRjZTItODc4Yy0wYmNhNzg5YmZlOTUuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2QvZS9hL2RhdGFzZXRfZGVhN2EzMDAtYjA5OC00MWExLTg2M2QtZWM1NWUzYjc4YmRhLmRhdDpwYXJ0X0cuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy8xLzMvMy9kYXRhc2V0XzEzMzAwMzUzLThiOGQtNGJkNC05ZDI1LTg4ZGNlZGE3NTk0Yi5kYXQ6cGFydF9ILmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNi8xL2YvZGF0YXNldF82MWZmYjdkNi04NTZhLTRlNGEtOWRhMy00OGE0MTk0NTVlOTIuZGF0OnBhcnRfSS5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2UvNi80L2RhdGFzZXRfZTY0MzE2MzQtMDc3ZS00NTFlLWFmYTMtYjEyYzA4ZmM1YzdjLmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy83LzUvOC9kYXRhc2V0Xzc1OGI0YTQ1LWMxN2QtNGQxYS1hMjg5LTc5ZDNiMmRmZTUyNC5kYXQ6cGFydF9LLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMi8yLzYvZGF0YXNldF8yMjY4ODlhMS0wNTQzLTQwNTItOWQ5NC0zMjc2YWNkYmQ4YWQuZGF0OnBhcnRfTC5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNC9jLzcvZGF0YXNldF80YzdjNjcxYi01ZmMzLTRlOTYtYjdmMi03ZTMwOWQ1MzU4OGQuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzQvYy82L2RhdGFzZXRfNGM2YjRjMDItOGY4NC00MzE0LThhMTMtNjgyYTg1NTAwNWUwLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy8yLzkvYy9kYXRhc2V0XzI5YzIwN2ZjLTM5NTgtNDBiNy04ZDNhLTI5NDg2ZWJlNzI5ZS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvYy82L2UvZGF0YXNldF9jNmUxNGFiYy00Y2MzLTQwMjctYmIxYi1jZjg3YjRkZjJlNGMuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2MvYi85L2RhdGFzZXRfY2I5MGMwZWMtYzVkNS00YTBjLWEyYTgtODJiZGY1OGE0ZGNkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy9lL2IvNi9kYXRhc2V0X2ViNjczM2YyLWVhOTEtNGNlMi04NzhjLTBiY2E3ODliZmU5NS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvZC9lL2EvZGF0YXNldF9kZWE3YTMwMC1iMDk4LTQxYTEtODYzZC1lYzU1ZTNiNzhiZGEuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzEvMy8zL2RhdGFzZXRfMTMzMDAzNTMtOGI4ZC00YmQ0LTlkMjUtODhkY2VkYTc1OTRiLmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy82LzEvZi9kYXRhc2V0XzYxZmZiN2Q2LTg1NmEtNGU0YS05ZGEzLTQ4YTQxOTQ1NWU5Mi5kYXQ6cGFydF9JLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvZS82LzQvZGF0YXNldF9lNjQzMTYzNC0wNzdlLTQ1MWUtYWZhMy1iMTJjMDhmYzVjN2MuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzcvNS84L2RhdGFzZXRfNzU4YjRhNDUtYzE3ZC00ZDFhLWEyODktNzlkM2IyZGZlNTI0LmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy8yLzIvNi9kYXRhc2V0XzIyNjg4OWExLTA1NDMtNDA1Mi05ZDk0LTMyNzZhY2RiZDhhZC5kYXQ6cGFydF9MLmdiJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcG8zbnBmemRrL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvNjMvb3V0cHV0cy9kYXRhc2V0XzdlYzRjY2VhLTZkNTMtNGQyYy1iMzQzLTQ3NjAxM2U4YzBkOS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMQogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weSIsIGxpbmUgMTY1LCBpbiA8bW9kdWxlPgogICAgICAgICAgY2xvbmluZ19zaW11bGF0aW9uKAogICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+XgogICAgICAgICAgICAgIGFyZ3MucGFydHNfZmlsZXMsIGFyZ3MuZG9tZXN0aWNhdGVkX3NlcSwKICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgICAuLi48MyBsaW5lcz4uLi4KICAgICAgICAgICAgICBhcmdzLm91dHB1dF9zaW11bGF0aW9uLCBhcmdzLmVuenltZSwgYXJncy5vdXRkaXJfZ2IKICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICAgICkKICAgICAgICAgIF4KICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHkiLCBsaW5lIDIyLCBpbiBjbG9uaW5nX3NpbXVsYXRpb24KICAgICAgICAgIHJlcG9zaXRvcnkuaW1wb3J0X3JlY29yZHMoZmlsZXM9ZG9tZXN0aWNhdGVkX2ZpbGVzLAogICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9maWxlX25hbWVzX2FzX2lkcz11c2VfZmlsZV9uYW1lc19hc19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3BvbG9neT10b3BvbG9neSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9taW5pY29uZGEzL2VudnMvbXVsbGVkLXYxLTZjMmI5ZWJiNDc1YTM3YmQwZDljYTc4NTc0NzRlODU3NDcxOWU1NDZkZTg4MjgxMGY3ODI4ZmU1OTkzYThhZGYvbGliL3B5dGhvbjMuMTMvc2l0ZS1wYWNrYWdlcy9kbmFjYXVsZHJvbi9TZXF1ZW5jZVJlcG9zaXRvcnkucHkiLCBsaW5lIDE3MCwgaW4gaW1wb3J0X3JlY29yZHMKICAgICAgICAgIHNlbGYuYWRkX3JlY29yZHMocmVjb3JkcywgY29sbGVjdGlvbj1jb2xsZWN0aW9uKQogICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9taW5pY29uZGEzL2VudnMvbXVsbGVkLXYxLTZjMmI5ZWJiNDc1YTM3YmQwZDljYTc4NTc0NzRlODU3NDcxOWU1NDZkZTg4MjgxMGY3ODI4ZmU1OTkzYThhZGYvbGliL3B5dGhvbjMuMTMvc2l0ZS1wYWNrYWdlcy9kbmFjYXVsZHJvbi9TZXF1ZW5jZVJlcG9zaXRvcnkucHkiLCBsaW5lIDk2LCBpbiBhZGRfcmVjb3JkcwogICAgICAgICAgc2VsZi5hZGRfcmVjb3JkKHJlY29yZCwgY29sbGVjdGlvbj1jb2xsZWN0aW9uKQogICAgICAgICAgfn5+fn5+fn5+fn5+fn5+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvbWluaWNvbmRhMy9lbnZzL211bGxlZC12MS02YzJiOWViYjQ3NWEzN2JkMGQ5Y2E3ODU3NDc0ZTg1NzQ3MTllNTQ2ZGU4ODI4MTBmNzgyOGZlNTk5M2E4YWRmL2xpYi9weXRob24zLjEzL3NpdGUtcGFja2FnZXMvZG5hY2F1bGRyb24vU2VxdWVuY2VSZXBvc2l0b3J5LnB5IiwgbGluZSA4NSwgaW4gYWRkX3JlY29yZAogICAgICAgICAgcmFpc2UgUmVwb3NpdG9yeUR1cGxpY2F0ZUVycm9yKFtyZWNvcmQuaWRdLCByZXBvc2l0b3J5PXNlbGYpCiAgICAgIGRuYWNhdWxkcm9uLlNlcXVlbmNlUmVwb3NpdG9yeS5SZXBvc2l0b3J5RHVwbGljYXRlRXJyb3I6IFBhcnQgSUQgZGF0YXNldF80YzdjNjcxYi01ZmMzLTRlOTYtYjdmMi03ZTMwOWQ1MzU4OGQgZHVwbGljYXRlZCBpbiAgaW4gcmVwbwoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxNCwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDE0LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIlR5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcG8zbnBmemRrL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKPC9kZXRhaWxzPgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBvM25wZnpkay9maWxlcy9hLzUvNy9kYXRhc2V0X2E1Nzk0MjllLWVhYmYtNDhiZi04YmFhLTRiNTRlMzQwYWY0Ni5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBvM25wZnpkay9maWxlcy9lLzgvNi9kYXRhc2V0X2U4NmFkMzA2LTY5NjAtNGRlYy04MGZiLTAyM2ZhNmRhNTIyNy5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy9kLzMvNC9kYXRhc2V0X2QzNDBiMmVlLWYwNjEtNDAyOC04ZTYxLWMzODRhZmM0Njc4YS5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy8xLzkvNS9kYXRhc2V0XzE5NTY5Njc2LTQyYjgtNDdmNi1iYjZkLWZkODY1OGNkNmEzNy5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy8wLzUvYS9kYXRhc2V0XzA1YTYzYWYwLWY5YTMtNDJmMC04YmE4LTc0MzU5MzAxMzk1ZS5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy9jLzYvMy9kYXRhc2V0X2M2MzY3MDRiLThmMmEtNGNiNi05YjhjLTE3MjE0ZGFkYjA4ZC5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy84LzUvNS9kYXRhc2V0Xzg1NWQ5MDYyLWFmZTEtNDhiNy1hMWU5LWE0OTk1MzYxNTVhYS5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy9lLzMvNy9kYXRhc2V0X2UzNzUwOWZmLTgwMTYtNDljZS1hOWNhLWZiMDY2YTViNmJlNi5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy9lL2QvZC9kYXRhc2V0X2VkZGU0OTlhLTYyNDctNDg3NC04ZWY2LTkyMWZhN2QzMTFiNi5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy82LzYvYy9kYXRhc2V0XzY2YzRkZWNmLTg0NjktNDMwMi04OTU3LTMyMGUyMzZjN2VlNy5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy8wL2YvZS9kYXRhc2V0XzBmZTE3NzJhLWQ4YjEtNGI5MS1hZWUwLTFhNmQxNTc3NTkwZS5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy9jLzEvYS9kYXRhc2V0X2MxYWE5YjU2LWYxNTUtNDRhZi04YWY1LTE5OTdmM2FlNDhhNy5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy8yLzcvMS9kYXRhc2V0XzI3MTQ4ZjVlLWQzZjAtNDViOS1hNWY2LTkwZDEyNzY3YjJhZi5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvZS84LzYvZGF0YXNldF9lODZhZDMwNi02OTYwLTRkZWMtODBmYi0wMjNmYTZkYTUyMjcuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2QvMy80L2RhdGFzZXRfZDM0MGIyZWUtZjA2MS00MDI4LThlNjEtYzM4NGFmYzQ2NzhhLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy8xLzkvNS9kYXRhc2V0XzE5NTY5Njc2LTQyYjgtNDdmNi1iYjZkLWZkODY1OGNkNmEzNy5kYXQ6cGFydF9DLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMC81L2EvZGF0YXNldF8wNWE2M2FmMC1mOWEzLTQyZjAtOGJhOC03NDM1OTMwMTM5NWUuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2MvNi8zL2RhdGFzZXRfYzYzNjcwNGItOGYyYS00Y2I2LTliOGMtMTcyMTRkYWRiMDhkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy84LzUvNS9kYXRhc2V0Xzg1NWQ5MDYyLWFmZTEtNDhiNy1hMWU5LWE0OTk1MzYxNTVhYS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvZS8zLzcvZGF0YXNldF9lMzc1MDlmZi04MDE2LTQ5Y2UtYTljYS1mYjA2NmE1YjZiZTYuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2UvZC9kL2RhdGFzZXRfZWRkZTQ5OWEtNjI0Ny00ODc0LThlZjYtOTIxZmE3ZDMxMWI2LmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy82LzYvYy9kYXRhc2V0XzY2YzRkZWNmLTg0NjktNDMwMi04OTU3LTMyMGUyMzZjN2VlNy5kYXQ6cGFydF9JLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMC9mL2UvZGF0YXNldF8wZmUxNzcyYS1kOGIxLTRiOTEtYWVlMC0xYTZkMTU3NzU5MGUuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2MvMS9hL2RhdGFzZXRfYzFhYTliNTYtZjE1NS00NGFmLThhZjUtMTk5N2YzYWU0OGE3LmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy8yLzcvMS9kYXRhc2V0XzI3MTQ4ZjVlLWQzZjAtNDViOS1hNWY2LTkwZDEyNzY3YjJhZi5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcG8zbnBmemRrL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0X2Q0YTNhODI0LWFhZTktNDQ5My04MTFkLTc3YThhYmQ2OTkwNS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDJpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuNzlpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wbzNucGZ6ZGsvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2UvYy8yL2RhdGFzZXRfZWMyNDQ1ZjItM2M2NS00ZGE4LThlZmYtYjc2Njk4M2JmYzY3LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzYvNy9mL2RhdGFzZXRfNjdmODg5MzgtYWQ3Ni00NzYwLTlmMzctMGFkNjU2MzY3N2QyLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnR2lic29uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNi83L2YvZGF0YXNldF82N2Y4ODkzOC1hZDc2LTQ3NjAtOWYzNy0wYWQ2NTYzNjc3ZDIuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbzNucGZ6ZGsvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfOTg5ZTQxNWQtNzExNy00YzZhLTk3MjEtYTQ3MWQ0ODQ4YjI4LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuNDFpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMjNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjIzaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNTRpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcG8zbnBmemRrL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBvM25wZnpkay9maWxlcy9mLzgvZS9kYXRhc2V0X2Y4ZThmMTkwLTY0NDgtNDE0My05YzlkLTMxODk4MzU1NGY2ZS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBvM25wZnpkay9maWxlcy9mLzAvZC9kYXRhc2V0X2YwZDYwMWY1LWFlYjUtNGRkZS04OGYyLTFlZjkwZjJjZWU5ZC5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy8wLzEvZS9kYXRhc2V0XzAxZWY5MmViLTcyOTctNDllZC1iOTMzLTIxZTJmZDEzYWJkZS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0xpZ2FzZUN5Y2xpbmdSZWFjdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2YvMC9kL2RhdGFzZXRfZjBkNjAxZjUtYWViNS00ZGRlLTg4ZjItMWVmOTBmMmNlZTlkLmRhdDpSRlBfR0ZQX3BsYXNtaWRfQk9zLmZhLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMC8xL2UvZGF0YXNldF8wMWVmOTJlYi03Mjk3LTQ5ZWQtYjkzMy0yMWUyZmQxM2FiZGUuZGF0OlJGUF9HRlBfcGxhc21pZF9wYXJ0cy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBvM25wZnpkay9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF8yN2EzNTBjZi1mN2YzLTQxZjMtOGI3ZC1hN2Y1YTM4NTdjZGEuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi4zNWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wbzNucGZ6ZGsvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzIvZS9iL2RhdGFzZXRfMmViY2U4M2YtMjNiZC00ZWQ5LWJmODEtODQ3MTljZTQ3ZjM2LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2IvYS85L2RhdGFzZXRfYmE5ZjNmZGEtZTY1YS00MzY3LTk4ODMtOTg4Y2YyYTU1YmM3LmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzUvNi80L2RhdGFzZXRfNTY0NzdkYmYtNGE5Zi00ZDg1LTg2MzktNDliYzA1YmZmN2I3LmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzcvNS9kL2RhdGFzZXRfNzVkODI0ODUtZTNjOC00MzExLTg5NTItNjU4ZDg1MjJmOGE1LmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2YvYS9mL2RhdGFzZXRfZmFmZjczZmUtMmVmOS00YzI1LTkxM2MtZGY1ZThiOTMzMDZhLmRhdCwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzgvNS85L2RhdGFzZXRfODU5ZGNmM2QtZTBmNy00NjY3LTljOGQtOWE5NTg3ZDkzNGZiLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBvM25wZnpkay9maWxlcy9iL2EvOS9kYXRhc2V0X2JhOWYzZmRhLWU2NWEtNDM2Ny05ODgzLTk4OGNmMmE1NWJjNy5kYXQ6R0ZQLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNS82LzQvZGF0YXNldF81NjQ3N2RiZi00YTlmLTRkODUtODYzOS00OWJjMDViZmY3YjcuZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNy81L2QvZGF0YXNldF83NWQ4MjQ4NS1lM2M4LTQzMTEtODk1Mi02NThkODUyMmY4YTUuZGF0OnByb21vdGVyLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvZi9hL2YvZGF0YXNldF9mYWZmNzNmZS0yZWY5LTRjMjUtOTEzYy1kZjVlOGI5MzMwNmEuZGF0OlJGUC5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzgvNS85L2RhdGFzZXRfODU5ZGNmM2QtZTBmNy00NjY3LTljOGQtOWE5NTg3ZDkzNGZiLmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbzNucGZ6ZGsvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfOWExOTcwYWQtMzU0Zi00ZGFiLTgwNjUtMmUzN2NkMWQxOTZiLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDYvOCBbMDA6MDA8MDA6MDAsIDQ4LjQ0aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAyLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogOCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAwfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA3LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJBU0lDQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcG8zbnBmemRrL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA1KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBvM25wZnpkay9maWxlcy8xL2QvNC9kYXRhc2V0XzFkNDg5NzQ2LTYxOGQtNDNmOS1hYzgwLTM3N2I0ZGQzNGIyNC5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBvM25wZnpkay9maWxlcy84LzkvNy9kYXRhc2V0Xzg5N2E2NTliLWRlZDYtNGYxZC1hZTY2LTJhMWNlZjE5ZmUyMC5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy83LzQvYy9kYXRhc2V0Xzc0Y2Q5NTEyLWY2ZmQtNDFkYi04YjI1LTZkOWVkZDEzZmIzNS5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy8yLzYvNC9kYXRhc2V0XzI2NGJhZjNiLWQyMDEtNDQ5ZC05M2JmLTE0MDhiMDRlM2NjOC5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy9iLzgvNy9kYXRhc2V0X2I4NzdjNDkyLWY1MzItNGY0Zi1hOTVkLThkZWEwNDk3YzdmZi5kYXQsL3RtcC90bXBvM25wZnpkay9maWxlcy9mL2EvMS9kYXRhc2V0X2ZhMTRkNzU1LTZmOTgtNGU5NC05ZjI0LWNmYmNhMjcyNmUzMS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0Jpb0JyaWNrU3RhbmRhcmRBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBvM25wZnpkay9maWxlcy84LzkvNy9kYXRhc2V0Xzg5N2E2NTliLWRlZDYtNGYxZC1hZTY2LTJhMWNlZjE5ZmUyMC5kYXQ6QkJhX0UwMDQwX0dGUC5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzcvNC9jL2RhdGFzZXRfNzRjZDk1MTItZjZmZC00MWRiLThiMjUtNmQ5ZWRkMTNmYjM1LmRhdDpCQmFfSjIzMTE5X3Byb20uZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy8yLzYvNC9kYXRhc2V0XzI2NGJhZjNiLWQyMDEtNDQ5ZC05M2JmLTE0MDhiMDRlM2NjOC5kYXQ6QkJhX0oyMzExOV9wcm9tX2ZsYXdlZC5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2IvOC83L2RhdGFzZXRfYjg3N2M0OTItZjUzMi00ZjRmLWE5NWQtOGRlYTA0OTdjN2ZmLmRhdDpCQmFfSjYxMDQ4X3Rlcm0uZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy9mL2EvMS9kYXRhc2V0X2ZhMTRkNzU1LTZmOTgtNGU5NC05ZjI0LWNmYmNhMjcyNmUzMS5kYXQ6QkJhX0s2MTEwOTRfYmFyLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcG8zbnBmemRrL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMzUvb3V0cHV0cy9kYXRhc2V0X2VmMjk0NzUyLWIxNTQtNDRjMy04MjhjLTcxNjUyMDBkZjQ0ZC5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDY3JXzilojilojilojilojilojilojilosgICB8IDIvMyBbMDA6MDE8MDA6MDAsICAxLjkyaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMy8zIFswMDowMTwwMDowMCwgIDEuNTZpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDksICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiQmlvQnJpY2tTdGFuZGFyZEFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBvM25wZnpkay9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvOC9jL2MvZGF0YXNldF84Y2NiNTVhNC03MzNmLTQ2NzEtYTEyYy1jODljZWU1YTY5NGIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNS84LzYvZGF0YXNldF81ODZmYzcxNC0xN2M3LTQzNTYtYTgxMi1hMjU1OTNkMGI5NDEuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvZi83LzUvZGF0YXNldF9mNzVkM2NiNC04ZDExLTRkYTMtOTlhZS01NmE5NmFkZWI0NWMuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMC9mLzIvZGF0YXNldF8wZjJjMDNkNy04NGU5LTQ5MDgtOGNjMi1jZTk0YjQ1NmFkMWQuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNi8xLzYvZGF0YXNldF82MTZmNGRiMy0xOTY3LTQ3YzktYjg2OS1iMDJiY2ViYWQ3YzAuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNS9iLzQvZGF0YXNldF81YjRkOTkzMS0yZjk0LTQ2OWYtOGZiYi1kZGRkMWI0ZjIzZmUuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMS9jLzkvZGF0YXNldF8xYzlmZWJlOC1iMWZmLTRmN2UtYTM5NS1mYmQ2NzFmZGJmMGEuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMS81LzYvZGF0YXNldF8xNTZmZmViZS0xZDYzLTQ0MmEtODIyZS05NGMyNjYxMmFlYmIuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJy90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvYS8zLzIvZGF0YXNldF9hMzJkMDE5YS1lZjEwLTQyYjgtOTJkMy1iMWE4OTE0OTExNGUuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMy80L2MvZGF0YXNldF8zNGNhM2I5YS02ZDhlLTQ3OTAtOGUwNC05NDZmNzc3YWFhMmYuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNy9kLzQvZGF0YXNldF83ZDQzNGZkNi0zZGE2LTRhMzUtYTkzNS02MjYyYzJiZTNiOTUuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNS8wL2EvZGF0YXNldF81MGEzMDRhOC1mZjk0LTRlZmMtOGQzYy05ZGQ1NzE0ZDBhYjkuZGF0LC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvZC80LzcvZGF0YXNldF9kNDc2YjE3MS05ZWIzLTRmY2ItOWUxNi0xZDQ2MzFiMjExYWUuZGF0JyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNS84LzYvZGF0YXNldF81ODZmYzcxNC0xN2M3LTQzNTYtYTgxMi1hMjU1OTNkMGI5NDEuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2YvNy81L2RhdGFzZXRfZjc1ZDNjYjQtOGQxMS00ZGEzLTk5YWUtNTZhOTZhZGViNDVjLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy8wL2YvMi9kYXRhc2V0XzBmMmMwM2Q3LTg0ZTktNDkwOC04Y2MyLWNlOTRiNDU2YWQxZC5kYXQ6cGFydF9DLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNi8xLzYvZGF0YXNldF82MTZmNGRiMy0xOTY3LTQ3YzktYjg2OS1iMDJiY2ViYWQ3YzAuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzUvYi80L2RhdGFzZXRfNWI0ZDk5MzEtMmY5NC00NjlmLThmYmItZGRkZDFiNGYyM2ZlLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy8xL2MvOS9kYXRhc2V0XzFjOWZlYmU4LWIxZmYtNGY3ZS1hMzk1LWZiZDY3MWZkYmYwYS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvMS81LzYvZGF0YXNldF8xNTZmZmViZS0xZDYzLTQ0MmEtODIyZS05NGMyNjYxMmFlYmIuZGF0OnBhcnRfRy5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvYS8zLzIvZGF0YXNldF9hMzJkMDE5YS1lZjEwLTQyYjgtOTJkMy1iMWE4OTE0OTExNGUuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzLzMvNC9jL2RhdGFzZXRfMzRjYTNiOWEtNmQ4ZS00NzkwLThlMDQtOTQ2Zjc3N2FhYTJmLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBvM25wZnpkay9maWxlcy83L2QvNC9kYXRhc2V0XzdkNDM0ZmQ2LTNkYTYtNGEzNS1hOTM1LTYyNjJjMmJlM2I5NS5kYXQ6cGFydF9KLmdiLC90bXAvdG1wbzNucGZ6ZGsvZmlsZXMvNS8wL2EvZGF0YXNldF81MGEzMDRhOC1mZjk0LTRlZmMtOGQzYy05ZGQ1NzE0ZDBhYjkuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcG8zbnBmemRrL2ZpbGVzL2QvNC83L2RhdGFzZXRfZDQ3NmIxNzEtOWViMy00ZmNiLTllMTYtMWQ0NjMxYjIxMWFlLmRhdDpwYXJ0X0wuZ2InIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbzNucGZ6ZGsvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC80OS9vdXRwdXRzL2RhdGFzZXRfMjZmMDlkNTQtNjczMy00YjRmLTkxMTAtNThiNzQyMmY2NTg0LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi40MWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMjBpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MGl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTIsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxMSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBvM25wZnpkay9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K')); + target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iNyIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI3IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA3IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzEvMS9kYXRhc2V0X2IxMTQ5NTJkLTc5NWYtNDg3Mi1hNTA4LTFiNjhmNzFmNjg0My5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy83LzcvMi9kYXRhc2V0Xzc3MjgzOTJiLTZjZWMtNDg2NC1iYjIxLTc5YzUzMzBmMzRkYi5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzkvNi9kYXRhc2V0X2Y5NmExYzZmLWNjNWItNDk2OS05NDdlLWQwYzVkOWJjMTg2MS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy81L2QvOS9kYXRhc2V0XzVkOWZhMzlkLTU4YTAtNDM4NS1hNTJhLWNmZjU2NmFiNjU2OS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzIvZC9kYXRhc2V0XzkyZDc0ZGJiLTMyMDAtNDE4Mi1iMWMxLWI5MTZkOGI5NjM2YS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80L2UvNy9kYXRhc2V0XzRlN2YzOTc1LWUwYzQtNDA0My1hMWQ2LWU3OThkNDNjODhiZC5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzYvNS9kYXRhc2V0Xzk2NWQ1YTFjLTViMTEtNDRjNC1iMWJjLTM5MmNiMmUzNGJkYS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzIvOS9kYXRhc2V0X2IyOWI2ZWRlLWZkN2QtNGRiNy04MTJhLWU0NzE5ODQ4YzlkOS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9kLzAvYi9kYXRhc2V0X2QwYjhiNTVlLWQzMjktNDU2Ni1iOGEyLTg3MDhmMjNkNTdkMi5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2MvMS9kYXRhc2V0X2JjMTA3NjY1LTBlMzgtNDJmZS04MTgzLWVkYjNiM2YyMjI0OC5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzcvZS9kYXRhc2V0X2Y3ZTA4NGRhLTdhYmMtNGIwYi1hNzVhLWQ3YmUwODhlMzBlZS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy82LzIvZS9kYXRhc2V0XzYyZWNlNzlkLWMwY2MtNDU0YS1iYmQ4LTFjOTQzZmYwYmNjZS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8yLzQvNy9kYXRhc2V0XzI0NzY4ODdmLTc3ZTctNDk1NS04ZTczLWEwYjU3YjUwMDA5ZC5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNy83LzIvZGF0YXNldF83NzI4MzkyYi02Y2VjLTQ4NjQtYmIyMS03OWM1MzMwZjM0ZGIuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvOS82L2RhdGFzZXRfZjk2YTFjNmYtY2M1Yi00OTY5LTk0N2UtZDBjNWQ5YmMxODYxLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy81L2QvOS9kYXRhc2V0XzVkOWZhMzlkLTU4YTAtNDM4NS1hNTJhLWNmZjU2NmFiNjU2OS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS8yL2QvZGF0YXNldF85MmQ3NGRiYi0zMjAwLTQxODItYjFjMS1iOTE2ZDhiOTYzNmEuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvZS83L2RhdGFzZXRfNGU3ZjM5NzUtZTBjNC00MDQzLWExZDYtZTc5OGQ0M2M4OGJkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzYvNS9kYXRhc2V0Xzk2NWQ1YTFjLTViMTEtNDRjNC1iMWJjLTM5MmNiMmUzNGJkYS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYi8yLzkvZGF0YXNldF9iMjliNmVkZS1mZDdkLTRkYjctODEyYS1lNDcxOTg0OGM5ZDkuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMC9iL2RhdGFzZXRfZDBiOGI1NWUtZDMyOS00NTY2LWI4YTItODcwOGYyM2Q1N2QyLmRhdDpwYXJ0X0guZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2MvMS9kYXRhc2V0X2JjMTA3NjY1LTBlMzgtNDJmZS04MTgzLWVkYjNiM2YyMjI0OC5kYXQ6cGFydF9JLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi83L2UvZGF0YXNldF9mN2UwODRkYS03YWJjLTRiMGItYTc1YS1kN2JlMDg4ZTMwZWUuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvMi9lL2RhdGFzZXRfNjJlY2U3OWQtYzBjYy00NTRhLWJiZDgtMWM5NDNmZjBiY2NlLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8yLzQvNy9kYXRhc2V0XzI0NzY4ODdmLTc3ZTctNDk1NS04ZTczLWEwYjU3YjUwMDA5ZC5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHVsYjdrZWNwL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0XzUzMWI1Yzc0LTg1NzctNGJhMi04NmNmLWQ4ZjI1ZjE2ZTE2OS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuNzhpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0ODU5ODYtM2I4Ny00Njc1LWIzYzUtY2RiMmQwMjg3YzJhLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2EvNi8wL2RhdGFzZXRfYTYwOWY3YzItMDQyZS00NDEyLTk4YTgtMjA1NmZlNjk4NTMzLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnR2lic29uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYS82LzAvZGF0YXNldF9hNjA5ZjdjMi0wNDJlLTQ0MTItOThhOC0yMDU2ZmU2OTg1MzMuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfZmY2M2JjMTEtOGU0NC00NzUzLWEyNDgtMzI5ZmI0NGVlM2IxLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuMzdpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMzZpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjM1aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNTRpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcHVsYjdrZWNwL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzcvNy9kYXRhc2V0X2I3NzEzMjI3LTZjOTctNDY4NC1hYzlhLTc2NjUwNjMxYTBhOS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mL2UvOS9kYXRhc2V0X2ZlOWE4ZWM2LTVkMGYtNGY4OS05MzRmLWE0NmJiOWZmOGRiNy5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzUvNy9kYXRhc2V0XzQ1NzYzODU0LTMyN2UtNDcyZi05Y2IzLWEzY2M3MmI4Zjc2Yi5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0xpZ2FzZUN5Y2xpbmdSZWFjdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZS85L2RhdGFzZXRfZmU5YThlYzYtNWQwZi00Zjg5LTkzNGYtYTQ2YmI5ZmY4ZGI3LmRhdDpSRlBfR0ZQX3BsYXNtaWRfQk9zLmZhLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNC81LzcvZGF0YXNldF80NTc2Mzg1NC0zMjdlLTQ3MmYtOWNiMy1hM2NjNzJiOGY3NmIuZGF0OlJGUF9HRlBfcGxhc21pZF9wYXJ0cy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXB1bGI3a2VjcC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF8xZDUzMTI5Yi1hMzk2LTQyOWItOTk3MS0yZDAwYjk5M2U0OGEuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi4zN2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzUvMS8zL2RhdGFzZXRfNTEzMjk0YzQtYjFiZi00YTAyLWEzN2QtNmY0YmQ3NDQzNmQ5LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2EvNy85L2RhdGFzZXRfYTc5ODI5ZWYtNjQ1MC00MDRhLThkNTktZmE0MmRkYjkxY2EzLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzcvYy83L2RhdGFzZXRfN2M3NGQ0YzMtMzhiNS00MGE3LTljNzEtNDgyNTAyZTZlNWY4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzUvMS9jL2RhdGFzZXRfNTFjMzE4NGQtZmQ3ZS00OWE4LWFmNTEtZTI5YmJmN2E4YTM3LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvNC80L2RhdGFzZXRfMjQ0OTM1NzktYTcwMy00Yjk0LWFjMDktZTI4M2Y1OTAzNWIwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0YmZkMTYtZGI1Yy00N2NlLTk4ZjUtYTVjNTA2NWQ0ZGQ0LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9hLzcvOS9kYXRhc2V0X2E3OTgyOWVmLTY0NTAtNDA0YS04ZDU5LWZhNDJkZGI5MWNhMy5kYXQ6R0ZQLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNy9jLzcvZGF0YXNldF83Yzc0ZDRjMy0zOGI1LTQwYTctOWM3MS00ODI1MDJlNmU1ZjguZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNS8xL2MvZGF0YXNldF81MWMzMTg0ZC1mZDdlLTQ5YTgtYWY1MS1lMjliYmY3YThhMzcuZGF0OnByb21vdGVyLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi80LzQvZGF0YXNldF8yNDQ5MzU3OS1hNzAzLTRiOTQtYWMwOS1lMjgzZjU5MDM1YjAuZGF0OlJGUC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0YmZkMTYtZGI1Yy00N2NlLTk4ZjUtYTVjNTA2NWQ0ZGQ0LmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfNDc0OTExMzItOTAxZC00MjQ5LTljMWUtZGZkMTJmZWFlMTdlLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MiV84paI4paI4paI4paI4paI4paI4paOICAgfCA1LzggWzAwOjAwPDAwOjAwLCA0OS4wNWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMiwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDgsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNywgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJCQVNJQ0Fzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXB1bGI3a2VjcC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNSk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS80LzAvZGF0YXNldF85NDBhMDQ4YS1lYzlmLTRjYzktOTk5MC1mMGYxYmI5YzAxZGIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZC81LzkvZGF0YXNldF9kNTkxOTAyYi03MjRkLTQ0NmQtYmFkNS0xZWNmNTM5ZjQxOTMuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNC81LzcvZGF0YXNldF80NTdkNjgwYS03ZmQ1LTQyY2UtODc0Ny1hNzgyNjcwODNkYTkuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS9hLzkvZGF0YXNldF8xYTlhYTRjOC00Mzg3LTRiNjUtYTYzOC0xMDMzNDY1MDYwZDcuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMy9mL2UvZGF0YXNldF8zZmVlYTYyYi1jMzViLTRmNjUtOTM3ZC0zMjMzZGI2YmYwZWMuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi85LzEvZGF0YXNldF9mOTE3ZjQyZC05ZDE0LTRiNWUtYWE0Zi1iMDRlMDZhNTYzNTcuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdCaW9Ccmlja1N0YW5kYXJkQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZC81LzkvZGF0YXNldF9kNTkxOTAyYi03MjRkLTQ0NmQtYmFkNS0xZWNmNTM5ZjQxOTMuZGF0OkJCYV9FMDA0MF9HRlAuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzUvNy9kYXRhc2V0XzQ1N2Q2ODBhLTdmZDUtNDJjZS04NzQ3LWE3ODI2NzA4M2RhOS5kYXQ6QkJhX0oyMzExOV9wcm9tLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS9hLzkvZGF0YXNldF8xYTlhYTRjOC00Mzg3LTRiNjUtYTYzOC0xMDMzNDY1MDYwZDcuZGF0OkJCYV9KMjMxMTlfcHJvbV9mbGF3ZWQuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8zL2YvZS9kYXRhc2V0XzNmZWVhNjJiLWMzNWItNGY2NS05MzdkLTMyMzNkYjZiZjBlYy5kYXQ6QkJhX0o2MTA0OF90ZXJtLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi85LzEvZGF0YXNldF9mOTE3ZjQyZC05ZDE0LTRiNWUtYWE0Zi1iMDRlMDZhNTYzNTcuZGF0OkJCYV9LNjExMDk0X2Jhci5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXB1bGI3a2VjcC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzM1L291dHB1dHMvZGF0YXNldF8zMzJhNjBiNS0xYjdlLTQwZDYtYjRkOS1hMDdmMDViYzlkNGIuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2NyV84paI4paI4paI4paI4paI4paI4paLICAgfCAyLzMgWzAwOjAxPDAwOjAwLCAgMS44OWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDMvMyBbMDA6MDE8MDA6MDAsICAxLjU1aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAzfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA5LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJpb0JyaWNrU3RhbmRhcmRBc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDYpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvZi9hL2RhdGFzZXRfY2ZhMWM2MjgtMWJhZC00ODY0LTk3YzktZjVmZjhhZTNiYjk0LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvOS8yL2RhdGFzZXRfMDkyZTNkNjktMzRhMC00YzAyLTk1OTMtODU5ZmExNzAxNmZiLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2UvZC81L2RhdGFzZXRfZWQ1OTEwMGQtYTRlNy00ZWI4LTk5NjUtODgxN2E4ZTQ0MDAwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvMS83L2RhdGFzZXRfMDE3MmJkY2UtY2E0OS00NWQ0LWFmMmQtMTJhNTMwNGI1NWNhLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMi8yL2RhdGFzZXRfZDIyNDc1ZjMtNmMyZi00YzUyLTkxNjQtMTIyNDhiYTVkMmE4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvZC85L2RhdGFzZXRfMWQ5YjNkNGMtZWVkMy00NDRlLTg3ZTYtMjljMDRlOTE1YzBkLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvNC9jL2RhdGFzZXRfMjRjNTU1ZWMtMTUzNi00ZWY2LWEwN2QtMjBkNzQ0ZjNiNWZjLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvMi8zL2RhdGFzZXRfYzIzZjQ3NWItZjgyNi00MzMzLTg2NDEtNjZlNjhiZmFkNDJhLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZi9hL2RhdGFzZXRfZmZhOGRmYTYtZGYzNC00MTJiLTg0YWUtMzI1YTNlMzg5YTg4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvMy8zL2RhdGFzZXRfZjMzYWY2YjYtY2NlMy00OWIyLWExN2UtOWExNjhhZDA2NWY5LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvOS83L2RhdGFzZXRfMjk3ZWM2ZGEtNGU1NS00NTM0LTk0YzctOTAzZTdlMTA3NjMyLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvMC83L2RhdGFzZXRfMzA3ODVjN2YtMDYyOC00ZTYzLWJlNDUtNzcyNzJmZGVkYjUwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvMy8yL2RhdGFzZXRfZjMyYTkwNjItOWNmNy00OGQ5LTlkZGItZWYwYzAyNTI2NTY0LmRhdCcgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvOS8yL2RhdGFzZXRfMDkyZTNkNjktMzRhMC00YzAyLTk1OTMtODU5ZmExNzAxNmZiLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9lL2QvNS9kYXRhc2V0X2VkNTkxMDBkLWE0ZTctNGViOC05OTY1LTg4MTdhOGU0NDAwMC5kYXQ6cGFydF9CLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMC8xLzcvZGF0YXNldF8wMTcyYmRjZS1jYTQ5LTQ1ZDQtYWYyZC0xMmE1MzA0YjU1Y2EuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMi8yL2RhdGFzZXRfZDIyNDc1ZjMtNmMyZi00YzUyLTkxNjQtMTIyNDhiYTVkMmE4LmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8xL2QvOS9kYXRhc2V0XzFkOWIzZDRjLWVlZDMtNDQ0ZS04N2U2LTI5YzA0ZTkxNWMwZC5kYXQ6cGFydF9FLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi80L2MvZGF0YXNldF8yNGM1NTVlYy0xNTM2LTRlZjYtYTA3ZC0yMGQ3NDRmM2I1ZmMuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvMi8zL2RhdGFzZXRfYzIzZjQ3NWItZjgyNi00MzMzLTg2NDEtNjZlNjhiZmFkNDJhLmRhdDpwYXJ0X0cuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZi9hL2RhdGFzZXRfZmZhOGRmYTYtZGYzNC00MTJiLTg0YWUtMzI1YTNlMzg5YTg4LmRhdDpwYXJ0X0guZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzMvMy9kYXRhc2V0X2YzM2FmNmI2LWNjZTMtNDliMi1hMTdlLTlhMTY4YWQwNjVmOS5kYXQ6cGFydF9JLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi85LzcvZGF0YXNldF8yOTdlYzZkYS00ZTU1LTQ1MzQtOTRjNy05MDNlN2UxMDc2MzIuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvMC83L2RhdGFzZXRfMzA3ODVjN2YtMDYyOC00ZTYzLWJlNDUtNzcyNzJmZGVkYjUwLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzMvMi9kYXRhc2V0X2YzMmE5MDYyLTljZjctNDhkOS05ZGRiLWVmMGMwMjUyNjU2NC5kYXQ6cGFydF9MLmdiJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHVsYjdrZWNwL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvNDkvb3V0cHV0cy9kYXRhc2V0X2RhNmY4YjkyLTAzYmEtNDU2MS04MWE0LTJhYzUxMGFmZjhjNi5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIxaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuODFpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEyLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDcpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvZC82L2RhdGFzZXRfNGQ2NjRjMjEtMDYwNi00OGYyLWE0MDMtYzk3MGVhZGE1NDY5LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2IvZi83L2RhdGFzZXRfYmY3OGFmNzktMmQxMy00ZmQ1LTg4NTgtYTBmY2YwNTI3MTI1LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvYy9mL2RhdGFzZXRfNmNmNmY1OWYtM2NlZS00NTM5LTg1ZTItMGI1Nzg2YjQyYThhLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzgvYy8xL2RhdGFzZXRfOGMxYTQ1MDktZjc5My00YjFhLTlmYzItNTk5YjgzNmU2ZDFlLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvOC8xL2RhdGFzZXRfMzgxOGFmYjQtMTE4NC00M2IxLWFhNDgtMTNlZmFiYjdlY2M4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzkvMC9lL2RhdGFzZXRfOTBlMzc3YjYtYzUzZS00Mjc3LThjNTQtYzM2MTc2OWVlNTJmLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvNS85L2RhdGFzZXRfNDU5NDQ0MmEtOGQyYi00Zjk3LWEyODAtOGRlYjc5MTVkYTljLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvZS85L2RhdGFzZXRfNmU5NzY3YmYtMDg1ZC00OGQwLTlhZDMtNTk2ZTQzNTIyNGYzLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvNC9iL2RhdGFzZXRfMTRiZDM2OWItODQxMC00ODRlLTg0MDItMzNhYWM5OTk4Yjg0LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvMS84L2RhdGFzZXRfMTE4MGQxODktOGY0OS00ODExLThlNzktOTU3YzdiZjMxOWU0LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvOS8xL2RhdGFzZXRfNDkxNDAyOTItNWJiMi00YjJlLWJmMDItODc0MDI3NDFkMTIwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2IvNC8yL2RhdGFzZXRfYjQyNzhkMTYtZDU2ZC00Y2JmLThmYzYtMTAwZjEwYTVhMTQyLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvOC8wL2RhdGFzZXRfMTgwMjE3NTItYTE4Ni00YjYzLWJhNjgtYjU2ZGE2NGM3ZTlhLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2YvNy9kYXRhc2V0X2JmNzhhZjc5LTJkMTMtNGZkNS04ODU4LWEwZmNmMDUyNzEyNS5kYXQ6cGFydF9BLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNi9jL2YvZGF0YXNldF82Y2Y2ZjU5Zi0zY2VlLTQ1MzktODVlMi0wYjU3ODZiNDJhOGEuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzgvYy8xL2RhdGFzZXRfOGMxYTQ1MDktZjc5My00YjFhLTlmYzItNTk5YjgzNmU2ZDFlLmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8zLzgvMS9kYXRhc2V0XzM4MThhZmI0LTExODQtNDNiMS1hYTQ4LTEzZWZhYmI3ZWNjOC5kYXQ6cGFydF9ELmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS8wL2UvZGF0YXNldF85MGUzNzdiNi1jNTNlLTQyNzctOGM1NC1jMzYxNzY5ZWU1MmYuZGF0OnBhcnRfRS5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvNS85L2RhdGFzZXRfNDU5NDQ0MmEtOGQyYi00Zjk3LWEyODAtOGRlYjc5MTVkYTljLmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy82L2UvOS9kYXRhc2V0XzZlOTc2N2JmLTA4NWQtNDhkMC05YWQzLTU5NmU0MzUyMjRmMy5kYXQ6cGFydF9HLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS80L2IvZGF0YXNldF8xNGJkMzY5Yi04NDEwLTQ4NGUtODQwMi0zM2FhYzk5OThiODQuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvMS84L2RhdGFzZXRfMTE4MGQxODktOGY0OS00ODExLThlNzktOTU3YzdiZjMxOWU0LmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzkvMS9kYXRhc2V0XzQ5MTQwMjkyLTViYjItNGIyZS1iZjAyLTg3NDAyNzQxZDEyMC5kYXQ6cGFydF9KLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYi80LzIvZGF0YXNldF9iNDI3OGQxNi1kNTZkLTRjYmYtOGZjNi0xMDBmMTBhNWExNDIuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvOC8wL2RhdGFzZXRfMTgwMjE3NTItYTE4Ni00YjYzLWJhNjgtYjU2ZGE2NGM3ZTlhLmRhdDpwYXJ0X0wuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC82My9vdXRwdXRzL2RhdGFzZXRfNWU5NzJhYzMtYTFjMC00OGM0LTlkYjgtNjQ4MzQzOTM3ODkxLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi4zOWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMTlpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS43OWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCBOb25lIGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTQsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgo8L2RldGFpbHM+Cg==')); \ No newline at end of file diff -r e1e985913204 -r 296e5145a862 output.json --- a/output.json Wed May 21 14:53:05 2025 +0000 +++ b/output.json Fri May 23 12:53:50 2025 +0000 @@ -1,7 +1,7 @@ { "summary": { "num_errors": 0, - "num_failures": 1, + "num_failures": 0, "num_skips": 0, "num_tests": 7 }, @@ -11,93 +11,93 @@ "inputs": { "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "acd1a5e1ec1673bf", + "id": "106ff655f8a511fe", "src": "hda" }, "assembly_plan_name": "Type2sRestrictionAssembly", "genbank_files": { - "id": "9f2c11a06c2c8bb2", + "id": "8094a24bdbd328fd", "src": "hdca" }, "topology": "circular" }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpo3npfzdk/files/a/5/7/dataset_a579429e-eabf-48bf-8baa-4b54e340af46.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpo3npfzdk/files/e/8/6/dataset_e86ad306-6960-4dec-80fb-023fa6da5227.dat,/tmp/tmpo3npfzdk/files/d/3/4/dataset_d340b2ee-f061-4028-8e61-c384afc4678a.dat,/tmp/tmpo3npfzdk/files/1/9/5/dataset_19569676-42b8-47f6-bb6d-fd8658cd6a37.dat,/tmp/tmpo3npfzdk/files/0/5/a/dataset_05a63af0-f9a3-42f0-8ba8-74359301395e.dat,/tmp/tmpo3npfzdk/files/c/6/3/dataset_c636704b-8f2a-4cb6-9b8c-17214dadb08d.dat,/tmp/tmpo3npfzdk/files/8/5/5/dataset_855d9062-afe1-48b7-a1e9-a499536155aa.dat,/tmp/tmpo3npfzdk/files/e/3/7/dataset_e37509ff-8016-49ce-a9ca-fb066a5b6be6.dat,/tmp/tmpo3npfzdk/files/e/d/d/dataset_edde499a-6247-4874-8ef6-921fa7d311b6.dat,/tmp/tmpo3npfzdk/files/6/6/c/dataset_66c4decf-8469-4302-8957-320e236c7ee7.dat,/tmp/tmpo3npfzdk/files/0/f/e/dataset_0fe1772a-d8b1-4b91-aee0-1a6d1577590e.dat,/tmp/tmpo3npfzdk/files/c/1/a/dataset_c1aa9b56-f155-44af-8af5-1997f3ae48a7.dat,/tmp/tmpo3npfzdk/files/2/7/1/dataset_27148f5e-d3f0-45b9-a5f6-90d12767b2af.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpo3npfzdk/files/e/8/6/dataset_e86ad306-6960-4dec-80fb-023fa6da5227.dat:part_A.gb,/tmp/tmpo3npfzdk/files/d/3/4/dataset_d340b2ee-f061-4028-8e61-c384afc4678a.dat:part_B.gb,/tmp/tmpo3npfzdk/files/1/9/5/dataset_19569676-42b8-47f6-bb6d-fd8658cd6a37.dat:part_C.gb,/tmp/tmpo3npfzdk/files/0/5/a/dataset_05a63af0-f9a3-42f0-8ba8-74359301395e.dat:part_D.gb,/tmp/tmpo3npfzdk/files/c/6/3/dataset_c636704b-8f2a-4cb6-9b8c-17214dadb08d.dat:part_E.gb,/tmp/tmpo3npfzdk/files/8/5/5/dataset_855d9062-afe1-48b7-a1e9-a499536155aa.dat:part_F.gb,/tmp/tmpo3npfzdk/files/e/3/7/dataset_e37509ff-8016-49ce-a9ca-fb066a5b6be6.dat:part_G.gb,/tmp/tmpo3npfzdk/files/e/d/d/dataset_edde499a-6247-4874-8ef6-921fa7d311b6.dat:part_H.gb,/tmp/tmpo3npfzdk/files/6/6/c/dataset_66c4decf-8469-4302-8957-320e236c7ee7.dat:part_I.gb,/tmp/tmpo3npfzdk/files/0/f/e/dataset_0fe1772a-d8b1-4b91-aee0-1a6d1577590e.dat:part_J.gb,/tmp/tmpo3npfzdk/files/c/1/a/dataset_c1aa9b56-f155-44af-8af5-1997f3ae48a7.dat:part_K.gb,/tmp/tmpo3npfzdk/files/2/7/1/dataset_27148f5e-d3f0-45b9-a5f6-90d12767b2af.dat:part_L.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpo3npfzdk/job_working_directory/000/14/outputs/dataset_d4a3a824-aae9-4493-811d-77a8abd69905.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/b/1/1/dataset_b114952d-795f-4872-a508-1b68f71f6843.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/7/7/2/dataset_7728392b-6cec-4864-bb21-79c5330f34db.dat,/tmp/tmpulb7kecp/files/f/9/6/dataset_f96a1c6f-cc5b-4969-947e-d0c5d9bc1861.dat,/tmp/tmpulb7kecp/files/5/d/9/dataset_5d9fa39d-58a0-4385-a52a-cff566ab6569.dat,/tmp/tmpulb7kecp/files/9/2/d/dataset_92d74dbb-3200-4182-b1c1-b916d8b9636a.dat,/tmp/tmpulb7kecp/files/4/e/7/dataset_4e7f3975-e0c4-4043-a1d6-e798d43c88bd.dat,/tmp/tmpulb7kecp/files/9/6/5/dataset_965d5a1c-5b11-44c4-b1bc-392cb2e34bda.dat,/tmp/tmpulb7kecp/files/b/2/9/dataset_b29b6ede-fd7d-4db7-812a-e4719848c9d9.dat,/tmp/tmpulb7kecp/files/d/0/b/dataset_d0b8b55e-d329-4566-b8a2-8708f23d57d2.dat,/tmp/tmpulb7kecp/files/b/c/1/dataset_bc107665-0e38-42fe-8183-edb3b3f22248.dat,/tmp/tmpulb7kecp/files/f/7/e/dataset_f7e084da-7abc-4b0b-a75a-d7be088e30ee.dat,/tmp/tmpulb7kecp/files/6/2/e/dataset_62ece79d-c0cc-454a-bbd8-1c943ff0bcce.dat,/tmp/tmpulb7kecp/files/2/4/7/dataset_2476887f-77e7-4955-8e73-a0b57b50009d.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/7/7/2/dataset_7728392b-6cec-4864-bb21-79c5330f34db.dat:part_A.gb,/tmp/tmpulb7kecp/files/f/9/6/dataset_f96a1c6f-cc5b-4969-947e-d0c5d9bc1861.dat:part_B.gb,/tmp/tmpulb7kecp/files/5/d/9/dataset_5d9fa39d-58a0-4385-a52a-cff566ab6569.dat:part_C.gb,/tmp/tmpulb7kecp/files/9/2/d/dataset_92d74dbb-3200-4182-b1c1-b916d8b9636a.dat:part_D.gb,/tmp/tmpulb7kecp/files/4/e/7/dataset_4e7f3975-e0c4-4043-a1d6-e798d43c88bd.dat:part_E.gb,/tmp/tmpulb7kecp/files/9/6/5/dataset_965d5a1c-5b11-44c4-b1bc-392cb2e34bda.dat:part_F.gb,/tmp/tmpulb7kecp/files/b/2/9/dataset_b29b6ede-fd7d-4db7-812a-e4719848c9d9.dat:part_G.gb,/tmp/tmpulb7kecp/files/d/0/b/dataset_d0b8b55e-d329-4566-b8a2-8708f23d57d2.dat:part_H.gb,/tmp/tmpulb7kecp/files/b/c/1/dataset_bc107665-0e38-42fe-8183-edb3b3f22248.dat:part_I.gb,/tmp/tmpulb7kecp/files/f/7/e/dataset_f7e084da-7abc-4b0b-a75a-d7be088e30ee.dat:part_J.gb,/tmp/tmpulb7kecp/files/6/2/e/dataset_62ece79d-c0cc-454a-bbd8-1c943ff0bcce.dat:part_K.gb,/tmp/tmpulb7kecp/files/2/4/7/dataset_2476887f-77e7-4955-8e73-a0b57b50009d.dat:part_L.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpulb7kecp/job_working_directory/000/14/outputs/dataset_531b5c74-8577-4ba2-86cf-d8f25f16e169.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-21T14:47:30.360925", + "create_time": "2025-05-23T12:13:12.978945", "dependencies": [], "exit_code": 0, - "external_id": "317822", + "external_id": "178458", "galaxy_version": "24.2", "handler": null, - "history_id": "9f2c11a06c2c8bb2", - "id": "18479e206f3c823f", + "history_id": "8094a24bdbd328fd", + "id": "a843aa6880d39864", "inputs": { "assembly_csv": { - "id": "acd1a5e1ec1673bf", + "id": "106ff655f8a511fe", "src": "hda", - "uuid": "a579429e-eabf-48bf-8baa-4b54e340af46" + "uuid": "b114952d-795f-4872-a508-1b68f71f6843" }, "genbank_files1": { - "id": "9f2c11a06c2c8bb2", + "id": "8094a24bdbd328fd", "src": "hda", - "uuid": "e86ad306-6960-4dec-80fb-023fa6da5227" + "uuid": "7728392b-6cec-4864-bb21-79c5330f34db" }, "genbank_files10": { - "id": "d905212b22d14b29", + "id": "54ed1ed3b165c7b4", "src": "hda", - "uuid": "0fe1772a-d8b1-4b91-aee0-1a6d1577590e" + "uuid": "f7e084da-7abc-4b0b-a75a-d7be088e30ee" }, "genbank_files11": { - "id": "64a027171405da09", + "id": "aa441ebc75addcb0", "src": "hda", - "uuid": "c1aa9b56-f155-44af-8af5-1997f3ae48a7" + "uuid": "62ece79d-c0cc-454a-bbd8-1c943ff0bcce" }, "genbank_files12": { - "id": "f3ab5b94869b932e", + "id": "41108ccf3c813abd", "src": "hda", - "uuid": "27148f5e-d3f0-45b9-a5f6-90d12767b2af" + "uuid": "2476887f-77e7-4955-8e73-a0b57b50009d" }, "genbank_files2": { - "id": "edba41b605a9f854", + "id": "6c2020bf7be1ec65", "src": "hda", - "uuid": "d340b2ee-f061-4028-8e61-c384afc4678a" + "uuid": "f96a1c6f-cc5b-4969-947e-d0c5d9bc1861" }, "genbank_files3": { - "id": "b1906c2e1f5de664", + "id": "8a7a2aba20929ed0", "src": "hda", - "uuid": "19569676-42b8-47f6-bb6d-fd8658cd6a37" + "uuid": "5d9fa39d-58a0-4385-a52a-cff566ab6569" }, "genbank_files4": { - "id": "d28b58e6679c5691", + "id": "53ad8e2eaf8a05d9", "src": "hda", - "uuid": "05a63af0-f9a3-42f0-8ba8-74359301395e" + "uuid": "92d74dbb-3200-4182-b1c1-b916d8b9636a" }, "genbank_files5": { - "id": "39de46ba349dfcbe", + "id": "85b2c5efa0bce20f", "src": "hda", - "uuid": "c636704b-8f2a-4cb6-9b8c-17214dadb08d" + "uuid": "4e7f3975-e0c4-4043-a1d6-e798d43c88bd" }, "genbank_files6": { - "id": "d10d7a9bf6c42600", + "id": "3758c7315f184c9a", "src": "hda", - "uuid": "855d9062-afe1-48b7-a1e9-a499536155aa" + "uuid": "965d5a1c-5b11-44c4-b1bc-392cb2e34bda" }, "genbank_files7": { - "id": "6f2e93d50b248cee", + "id": "cc5b73713462c207", "src": "hda", - "uuid": "e37509ff-8016-49ce-a9ca-fb066a5b6be6" + "uuid": "b29b6ede-fd7d-4db7-812a-e4719848c9d9" }, "genbank_files8": { - "id": "00a7ec1d542ff3f2", + "id": "abedd81ff2360f10", "src": "hda", - "uuid": "edde499a-6247-4874-8ef6-921fa7d311b6" + "uuid": "d0b8b55e-d329-4566-b8a2-8708f23d57d2" }, "genbank_files9": { - "id": "39eaa2809c3cd4cb", + "id": "83d0643dcafc650b", "src": "hda", - "uuid": "66c4decf-8469-4302-8957-320e236c7ee7" + "uuid": "bc107665-0e38-42fe-8183-edb3b3f22248" } }, "job_messages": [], @@ -108,60 +108,60 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "edba41b605a9f854", + "id": "6c2020bf7be1ec65", "src": "hdca" } }, "outputs": { "__new_primary_file_construct_gb|construct_1__": { - "id": "fae073f924dc0737", + "id": "03b30db777cad5e1", "src": "hda", - "uuid": "41fc11c8-e2d3-4dad-9886-b8b318d263b0" + "uuid": "21d43ad8-7969-4897-bade-2bde4913b7c5" }, "__new_primary_file_construct_gb|construct_2__": { - "id": "a0099218a00b3fc6", + "id": "d7483ddd36cf3921", "src": "hda", - "uuid": "7bc46185-b70d-4e82-b1fe-e0bc1710c1c7" + "uuid": "9420de76-fe00-401e-9cef-039d76b41e8f" }, "__new_primary_file_construct_gb|construct_3__": { - "id": "87b4cc5bde3d0d60", + "id": "2239b1a77a4b659c", "src": "hda", - "uuid": "79f1a377-2d26-4e23-aa72-01151870f643" + "uuid": "e360b3e5-97c6-49be-9e0e-4ff44209fb03" }, "__new_primary_file_construct_gb|construct_4__": { - "id": "b1ff512a2804398b", + "id": "b9f6f443461a8e55", "src": "hda", - "uuid": "63ad38c1-369e-4ef2-b296-6c80774439a1" + "uuid": "580f1a4e-e43c-4396-9ae5-d441a0f64d1a" }, "output_zip": { - "id": "18479e206f3c823f", + "id": "a843aa6880d39864", "src": "hda", - "uuid": "d4a3a824-aae9-4493-811d-77a8abd69905" + "uuid": "531b5c74-8577-4ba2-86cf-d8f25f16e169" } }, "params": { "__input_ext": "\"input\"", "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", "assembly_plan_name": "\"Type2sRestrictionAssembly\"", - "chromInfo": "\"/tmp/tmpo3npfzdk/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", "domesticated_input": null, "genbank_files": "{\"values\": [{\"id\": 1, \"src\": \"hdca\"}]}", "topology": "\"circular\"" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/4 [00:00\n cloning_simulation(\n ~~~~~~~~~~~~~~~~~~^\n args.parts_files, args.domesticated_seq,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n ...<3 lines>...\n args.output_simulation, args.enzyme, args.outdir_gb\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 22, in cloning_simulation\n repository.import_records(files=domesticated_files,\n ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^\n use_file_names_as_ids=use_file_names_as_id,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n topology=topology)\n ^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 170, in import_records\n self.add_records(records, collection=collection)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 96, in add_records\n self.add_record(record, collection=collection)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 85, in add_record\n raise RepositoryDuplicateError([record.id], repository=self)\ndnacauldron.SequenceRepository.RepositoryDuplicateError: Part ID dataset_4c7c671b-5fc3-4e96-b7f2-7e309d53588d duplicated in in repo\n", - "stdout": "", + "state": "ok", + "stderr": "\rassembly: 0%| | 0/4 [00:00\n cloning_simulation(\n ~~~~~~~~~~~~~~~~~~^\n args.parts_files, args.domesticated_seq,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n ...<3 lines>...\n args.output_simulation, args.enzyme, args.outdir_gb\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 22, in cloning_simulation\n repository.import_records(files=domesticated_files,\n ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^\n use_file_names_as_ids=use_file_names_as_id,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n topology=topology)\n ^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 170, in import_records\n self.add_records(records, collection=collection)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 96, in add_records\n self.add_record(record, collection=collection)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 85, in add_record\n raise RepositoryDuplicateError([record.id], repository=self)\ndnacauldron.SequenceRepository.RepositoryDuplicateError: Part ID dataset_4c7c671b-5fc3-4e96-b7f2-7e309d53588d duplicated in in repo\n", - "tool_stdout": "", - "update_time": "2025-05-21T14:51:18.877985", + "tool_stderr": "\rassembly: 0%| | 0/4 [00:00\n cloning_simulation(\n ~~~~~~~~~~~~~~~~~~^\n args.parts_files, args.domesticated_seq,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n ...<3 lines>...\n args.output_simulation, args.enzyme, args.outdir_gb\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 22, in cloning_simulation\n repository.import_records(files=domesticated_files,\n ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^\n use_file_names_as_ids=use_file_names_as_id,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n topology=topology)\n ^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 170, in import_records\n self.add_records(records, collection=collection)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 96, in add_records\n self.add_record(record, collection=collection)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 85, in add_record\n raise RepositoryDuplicateError([record.id], repository=self)\ndnacauldron.SequenceRepository.RepositoryDuplicateError: Part ID dataset_4c7c671b-5fc3-4e96-b7f2-7e309d53588d duplicated in in repo\n.", - "Job in error state.. tool_id: cloning_simulation, exit_code: 1, stderr: Traceback (most recent call last):\n File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 165, in \n cloning_simulation(\n ~~~~~~~~~~~~~~~~~~^\n args.parts_files, args.domesticated_seq,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n ...<3 lines>...\n args.output_simulation, args.enzyme, args.outdir_gb\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 22, in cloning_simulation\n repository.import_records(files=domesticated_files,\n ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^\n use_file_names_as_ids=use_file_names_as_id,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n topology=topology)\n ^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 170, in import_records\n self.add_records(records, collection=collection)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 96, in add_records\n self.add_record(record, collection=collection)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 85, in add_record\n raise RepositoryDuplicateError([record.id], repository=self)\ndnacauldron.SequenceRepository.RepositoryDuplicateError: Part ID dataset_4c7c671b-5fc3-4e96-b7f2-7e309d53588d duplicated in in repo\n.", - "Output collection 'construct_gb': expected to have 4 elements, but it had 0." - ], - "status": "failure", + "status": "success", "test_index": 6, - "time_seconds": 49.28661274909973, + "time_seconds": 53.04504728317261, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, diff -r e1e985913204 -r 296e5145a862 test-data/2-step_golden_gate_parts/2-step-golden_gate_plan.csv --- a/test-data/2-step_golden_gate_parts/2-step-golden_gate_plan.csv Wed May 21 14:53:05 2025 +0000 +++ b/test-data/2-step_golden_gate_parts/2-step-golden_gate_plan.csv Fri May 23 12:53:50 2025 +0000 @@ -1,4 +1,3 @@ -construct, parts,,,,, construct_3,construct_1,part_L,part_J,part_K,, construct_4,construct_2,part_L,part_J,part_K,, construct_1,part_A,part_B,part_C,part_D,part_E,part_F