# HG changeset patch # User tduigou # Date 1747839185 0 # Node ID e1e9859132046d01c556bd6b7ec21bd439bb06e8 # Parent b0134502203bb90d602e9dd07845a3f489c31199 planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/DnaCauldron/tree/master commit 6ae809b563b40bcdb6be2e74fe2a84ddad5484ae diff -r b0134502203b -r e1e985913204 cloning_similation.xml --- a/cloning_similation.xml Mon May 19 14:14:18 2025 +0000 +++ b/cloning_similation.xml Wed May 21 14:53:05 2025 +0000 @@ -16,13 +16,14 @@ - + - + @@ -305,11 +306,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `_). diff -r b0134502203b -r e1e985913204 output.html --- a/output.html Mon May 19 14:14:18 2025 +0000 +++ b/output.html Wed May 21 14:53:05 2025 +0000 @@ -285,7 +285,7 @@ var md = window.markdownit({ html: true, }); - target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iNiIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI2IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjYiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI2IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDYgfAp8IFBhc3NlZCAgICAgfCA2IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBheTB0bWU0di9maWxlcy80L2IvMy9kYXRhc2V0XzRiMzJjNmE4LWIzOWQtNGY1Zi05MTU1LTMwN2UxNDJkOTE5My5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy84L2UvZi9kYXRhc2V0XzhlZjE4MWRkLTVjM2EtNDBlYi05OTI2LTM3MzhlMWFlNGJlMS5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy9iL2EvYi9kYXRhc2V0X2JhYmJhMjAwLTJhZmQtNDM0Zi04Nzk3LTliMTBjYzczNmJhNy5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy9iLzcvYy9kYXRhc2V0X2I3YzVhODhjLTA1YWUtNGVmZC05ODg3LTQ3YTg5OTc0OTE3OC5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy83L2YvZS9kYXRhc2V0XzdmZWE0ZWNmLWJlNTYtNDIzZC04YTExLWQ2NDkxMDc3ZTIzMy5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy9lLzEvZi9kYXRhc2V0X2UxZjlhYjllLWM5ZTAtNGFjZC1hYzYzLWU0Mjk5YzM3OTJmZS5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy9mLzAvZi9kYXRhc2V0X2YwZmUwNDZjLTYxMzItNGJiOS1iNWRjLTUyMWVkZWFkMzJmMi5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy9lL2UvYy9kYXRhc2V0X2VlYzE5N2U3LWQ4ZmEtNGM0NS1iNWNiLTg5ZTUxZWUxZGIwZS5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy8zLzIvMS9kYXRhc2V0XzMyMTI0ZjQwLWVkOWItNGQyNS1iNzRmLWE0ZmY0NDU4MTk2Mi5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy9lLzEvMi9kYXRhc2V0X2UxMjZmZTA1LWQ3N2MtNGIzMy05NzgyLWU1YjFlN2U2YzdhZC5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy8yLzMvNC9kYXRhc2V0XzIzNGY5ODU1LTgxM2UtNDI5Ny1iYmQ0LWQxMzI3ZmIwY2JhZC5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy82L2IvMi9kYXRhc2V0XzZiMjNlMTI3LWU0YTItNDFiNi05OGYzLTRmOGY3MjE0YjIwOS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnL3RtcC90bXBheTB0bWU0di9maWxlcy8xLzQvNi9kYXRhc2V0XzE0NjQ1ZTkwLTkxMDUtNDhhZi1hMDcxLTZlYTA1MmZkNGFhZC5kYXQnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzQvYi8zL2RhdGFzZXRfNGIzMmM2YTgtYjM5ZC00ZjVmLTkxNTUtMzA3ZTE0MmQ5MTkzLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXBheTB0bWU0di9maWxlcy84L2UvZi9kYXRhc2V0XzhlZjE4MWRkLTVjM2EtNDBlYi05OTI2LTM3MzhlMWFlNGJlMS5kYXQ6cGFydF9CLmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvYi9hL2IvZGF0YXNldF9iYWJiYTIwMC0yYWZkLTQzNGYtODc5Ny05YjEwY2M3MzZiYTcuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzL2IvNy9jL2RhdGFzZXRfYjdjNWE4OGMtMDVhZS00ZWZkLTk4ODctNDdhODk5NzQ5MTc4LmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXBheTB0bWU0di9maWxlcy83L2YvZS9kYXRhc2V0XzdmZWE0ZWNmLWJlNTYtNDIzZC04YTExLWQ2NDkxMDc3ZTIzMy5kYXQ6cGFydF9FLmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvZS8xL2YvZGF0YXNldF9lMWY5YWI5ZS1jOWUwLTRhY2QtYWM2My1lNDI5OWMzNzkyZmUuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzL2YvMC9mL2RhdGFzZXRfZjBmZTA0NmMtNjEzMi00YmI5LWI1ZGMtNTIxZWRlYWQzMmYyLmRhdDpwYXJ0X0cuZ2IsL3RtcC90bXBheTB0bWU0di9maWxlcy9lL2UvYy9kYXRhc2V0X2VlYzE5N2U3LWQ4ZmEtNGM0NS1iNWNiLTg5ZTUxZWUxZGIwZS5kYXQ6cGFydF9ILmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvMy8yLzEvZGF0YXNldF8zMjEyNGY0MC1lZDliLTRkMjUtYjc0Zi1hNGZmNDQ1ODE5NjIuZGF0OnBhcnRfSS5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzL2UvMS8yL2RhdGFzZXRfZTEyNmZlMDUtZDc3Yy00YjMzLTk3ODItZTViMWU3ZTZjN2FkLmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXBheTB0bWU0di9maWxlcy8yLzMvNC9kYXRhc2V0XzIzNGY5ODU1LTgxM2UtNDI5Ny1iYmQ0LWQxMzI3ZmIwY2JhZC5kYXQ6cGFydF9LLmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvNi9iLzIvZGF0YXNldF82YjIzZTEyNy1lNGEyLTQxYjYtOThmMy00ZjhmNzIxNGIyMDkuZGF0OnBhcnRfTC5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGF5MHRtZTR2L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0X2YzMGQ5MDZkLTJlYTQtNGNkZS1iNDUxLWI3YzZkYWYyNWEyOS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuMTRpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjE1aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuNzdpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wYXkwdG1lNHYvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzAvNi85L2RhdGFzZXRfMDY5ZjkxMzctNzA1Yi00ZTE3LWI5MzEtMWViZDU0N2E3ZmU0LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzMvZC8xL2RhdGFzZXRfM2QxYTkxZWUtZDliYS00MWZjLWJkNzktZjAxMmFlNjU0MjUwLmRhdCcgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0dpYnNvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzAvNi85L2RhdGFzZXRfMDY5ZjkxMzctNzA1Yi00ZTE3LWI5MzEtMWViZDU0N2E3ZmU0LmRhdDpnaWJzb25fc2VxdWVuY2VzLmZhJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wYXkwdG1lNHYvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfMzMyN2UyODItZDIxOS00M2UzLTk0ZDctODhmZDA4YWE2ODY3LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuMjBpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMTJpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjM0aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNjJpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcGF5MHRtZTR2L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBheTB0bWU0di9maWxlcy9lLzAvZi9kYXRhc2V0X2UwZjgyOTZlLTA5NGQtNDk3MS05NzZiLTZlNTM0MTQ4ZDFkNS5kYXQsL3RtcC90bXBheTB0bWU0di9maWxlcy82LzAvOC9kYXRhc2V0XzYwODcyMmQ1LWVhZDUtNDlmYi04NzM2LTA0ZmE3YWIwMjdmMy5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnL3RtcC90bXBheTB0bWU0di9maWxlcy8xL2QvOS9kYXRhc2V0XzFkOWVkMjY4LWJjMjUtNDBjMC1hNjdmLTQzOWFjY2FlN2U0MC5kYXQnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBheTB0bWU0di9maWxlcy9lLzAvZi9kYXRhc2V0X2UwZjgyOTZlLTA5NGQtNDk3MS05NzZiLTZlNTM0MTQ4ZDFkNS5kYXQ6UkZQX0dGUF9wbGFzbWlkX0JPcy5mYSwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzYvMC84L2RhdGFzZXRfNjA4NzIyZDUtZWFkNS00OWZiLTg3MzYtMDRmYTdhYjAyN2YzLmRhdDpSRlBfR0ZQX3BsYXNtaWRfcGFydHMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBheTB0bWU0di9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF9iMWFmNzE5Mi1hMjZmLTRlNmEtYmEyMi05YWVmZmFjMmVhNDYuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi4wNWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wYXkwdG1lNHYvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzUvMC85L2RhdGFzZXRfNTA5ZmE4N2QtNGFmOS00NmY3LWIzMjMtNDhmODEyODY3NWM4LmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzAvMi9iL2RhdGFzZXRfMDJiOGI2ZjItNDNhYi00ODg1LWE5ZGUtMzM2ZDkwM2VkYzU1LmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzkvNS9hL2RhdGFzZXRfOTVhYTVhMTYtOWI2MS00NWJlLTk0ZTYtMzUyODQ1MzFmY2Q3LmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzEvNy9jL2RhdGFzZXRfMTdjOTRmZTYtZTBjZS00YzcyLTlhZGMtNWY4MTMyYTZkZjgxLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzL2QvYi82L2RhdGFzZXRfZGI2YmI4YmEtNDY4Mi00NzZlLWE2ODgtYmU5ZTVjZmIwYWZkLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzMvNC80L2RhdGFzZXRfMzQ0ZWYzODAtZTlkMy00NzI5LWJjNmUtNDVhMDAzMDAwNjEzLmRhdCcgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0JBU0lDQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wYXkwdG1lNHYvZmlsZXMvNS8wLzkvZGF0YXNldF81MDlmYTg3ZC00YWY5LTQ2ZjctYjMyMy00OGY4MTI4Njc1YzguZGF0OkdGUC5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzAvMi9iL2RhdGFzZXRfMDJiOGI2ZjItNDNhYi00ODg1LWE5ZGUtMzM2ZDkwM2VkYzU1LmRhdDpwMTVBX2thbi5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzkvNS9hL2RhdGFzZXRfOTVhYTVhMTYtOWI2MS00NWJlLTk0ZTYtMzUyODQ1MzFmY2Q3LmRhdDpwcm9tb3Rlci5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzEvNy9jL2RhdGFzZXRfMTdjOTRmZTYtZTBjZS00YzcyLTlhZGMtNWY4MTMyYTZkZjgxLmRhdDpSRlAuZ2IsL3RtcC90bXBheTB0bWU0di9maWxlcy9kL2IvNi9kYXRhc2V0X2RiNmJiOGJhLTQ2ODItNDc2ZS1hNjg4LWJlOWU1Y2ZiMGFmZC5kYXQ6b2xpZ29zLmZhJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wYXkwdG1lNHYvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfY2RiNjFjYmMtYzljNS00NWZjLTlmYzgtZTAwYzFmM2Q0ZjBmLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MiV84paI4paI4paI4paI4paI4paI4paOICAgfCA1LzggWzAwOjAwPDAwOjAwLCA0NC45MGl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMiwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDgsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNywgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJCQVNJQ0Fzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBheTB0bWU0di9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNSk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wYXkwdG1lNHYvZmlsZXMvNi9lLzAvZGF0YXNldF82ZTA0NTNjNC02ZWRkLTRkNzYtOTUwNC00Y2M0OTQxNjEwZjYuZGF0LC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvNi9kLzMvZGF0YXNldF82ZDNjMjRlNS03M2NkLTRiZWQtOTVhYS1kMWMzNjFjNzQxODAuZGF0LC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvNy83LzkvZGF0YXNldF83NzkzNTQxYi0xOGNjLTRmN2QtYTlkZi0xMjM5NjgwN2MzNjguZGF0LC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvYS9lLzEvZGF0YXNldF9hZTE2MTFlZC1hNWUyLTQ2ZTgtYjk3NS02MTNhZGExYmI4ZGIuZGF0LC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvOS9hL2QvZGF0YXNldF85YWRmYWZlMy1iMGFkLTQ0OWItODU1NS0yODZjYTgzZTY1YTQuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJy90bXAvdG1wYXkwdG1lNHYvZmlsZXMvOS83LzYvZGF0YXNldF85NzZmN2Q5OS0wN2U1LTRkNWMtYWI3OS1hOTZhZTQyNzYwZDQuZGF0JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQmlvQnJpY2tTdGFuZGFyZEFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzYvZS8wL2RhdGFzZXRfNmUwNDUzYzQtNmVkZC00ZDc2LTk1MDQtNGNjNDk0MTYxMGY2LmRhdDpCQmFfRTAwNDBfR0ZQLmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvNi9kLzMvZGF0YXNldF82ZDNjMjRlNS03M2NkLTRiZWQtOTVhYS1kMWMzNjFjNzQxODAuZGF0OkJCYV9KMjMxMTlfcHJvbS5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzcvNy85L2RhdGFzZXRfNzc5MzU0MWItMThjYy00ZjdkLWE5ZGYtMTIzOTY4MDdjMzY4LmRhdDpCQmFfSjIzMTE5X3Byb21fZmxhd2VkLmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvYS9lLzEvZGF0YXNldF9hZTE2MTFlZC1hNWUyLTQ2ZTgtYjk3NS02MTNhZGExYmI4ZGIuZGF0OkJCYV9KNjEwNDhfdGVybS5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzkvYS9kL2RhdGFzZXRfOWFkZmFmZTMtYjBhZC00NDliLTg1NTUtMjg2Y2E4M2U2NWE0LmRhdDpCQmFfSzYxMTA5NF9iYXIuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBheTB0bWU0di9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzM1L291dHB1dHMvZGF0YXNldF9kZWViOTc1Zi00YWU4LTQ0ZDMtOWMzYy01MWRjMDVlNzRmMDUuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2NyV84paI4paI4paI4paI4paI4paI4paLICAgfCAyLzMgWzAwOjAxPDAwOjAwLCAgMS43NGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDMvMyBbMDA6MDI8MDA6MDAsICAxLjQzaXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAzfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA5LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJpb0JyaWNrU3RhbmRhcmRBc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wYXkwdG1lNHYvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDYpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzEvOS8zL2RhdGFzZXRfMTkzY2JkMTAtNGI3Ni00NmQ5LWIzNzctYTdmMDY0NzFkNGQ0LmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzL2YvYS8zL2RhdGFzZXRfZmEzMWM1ZjUtZTY3OC00NzFlLWIxYTMtNGY4YTE2OGJiZWUxLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzYvOS83L2RhdGFzZXRfNjk3YzgzZmUtMTY4Yi00MzE5LWE2ZTUtM2RiOTBjNTA0YzhiLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzAvNi9kL2RhdGFzZXRfMDZkNGRkOTQtNWYzMy00Y2UwLWFiMGEtZTZlZmU5NmNhMjIyLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzcvMC8xL2RhdGFzZXRfNzAxYjcyYzYtZWMyZS00NDM1LWIwZDUtOGY0MTk4MTFhNGRkLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzUvYS8wL2RhdGFzZXRfNWEwN2YwNTktZjZmOS00OWRlLWIwZmMtM2NkZWQxNTdmNDRiLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzcvNS8zL2RhdGFzZXRfNzUzZjAyOTctNGJmZi00OWM4LWIyMmEtMTM3N2U0M2E4MWY2LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzL2YvNi9kL2RhdGFzZXRfZjZkNjAyYjktNzc3Mi00YTkzLTk2OWQtZjBkY2RhZDk4YzZhLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzL2QvNC9kL2RhdGFzZXRfZDRkYzNlY2ItNzdmZi00YjI4LWE1NWEtN2IyNjM0MTZjNmM3LmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzcvZC80L2RhdGFzZXRfN2Q0ODlkYmQtMTYxZS00ZjA0LWEzZGYtZWY1Yjk4OWFkMWUwLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzQvYy9hL2RhdGFzZXRfNGNhM2MyMjItNjcyYS00ODA2LWI2MGMtMDgxZjFiN2I2NGNiLmRhdCwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzkvMC82L2RhdGFzZXRfOTA2NzA3ZGItYjNjZi00MGY5LWFmMGItMWZmYzE0M2Y5MWU4LmRhdCcgLS1hc3NlbWJseV9jc3YgJy90bXAvdG1wYXkwdG1lNHYvZmlsZXMvOS9jLzgvZGF0YXNldF85YzhlYzY5My0wMmY5LTRjYzctYjdlMy04YmZiMGE0ZGQxZGMuZGF0JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBheTB0bWU0di9maWxlcy8xLzkvMy9kYXRhc2V0XzE5M2NiZDEwLTRiNzYtNDZkOS1iMzc3LWE3ZjA2NDcxZDRkNC5kYXQ6cGFydF9BLmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvZi9hLzMvZGF0YXNldF9mYTMxYzVmNS1lNjc4LTQ3MWUtYjFhMy00ZjhhMTY4YmJlZTEuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzYvOS83L2RhdGFzZXRfNjk3YzgzZmUtMTY4Yi00MzE5LWE2ZTUtM2RiOTBjNTA0YzhiLmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXBheTB0bWU0di9maWxlcy8wLzYvZC9kYXRhc2V0XzA2ZDRkZDk0LTVmMzMtNGNlMC1hYjBhLWU2ZWZlOTZjYTIyMi5kYXQ6cGFydF9ELmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvNy8wLzEvZGF0YXNldF83MDFiNzJjNi1lYzJlLTQ0MzUtYjBkNS04ZjQxOTgxMWE0ZGQuZGF0OnBhcnRfRS5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzUvYS8wL2RhdGFzZXRfNWEwN2YwNTktZjZmOS00OWRlLWIwZmMtM2NkZWQxNTdmNDRiLmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXBheTB0bWU0di9maWxlcy83LzUvMy9kYXRhc2V0Xzc1M2YwMjk3LTRiZmYtNDljOC1iMjJhLTEzNzdlNDNhODFmNi5kYXQ6cGFydF9HLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnL3RtcC90bXBheTB0bWU0di9maWxlcy9mLzYvZC9kYXRhc2V0X2Y2ZDYwMmI5LTc3NzItNGE5My05NjlkLWYwZGNkYWQ5OGM2YS5kYXQ6cGFydF9ILmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvZC80L2QvZGF0YXNldF9kNGRjM2VjYi03N2ZmLTRiMjgtYTU1YS03YjI2MzQxNmM2YzcuZGF0OnBhcnRfSS5nYiwvdG1wL3RtcGF5MHRtZTR2L2ZpbGVzLzcvZC80L2RhdGFzZXRfN2Q0ODlkYmQtMTYxZS00ZjA0LWEzZGYtZWY1Yjk4OWFkMWUwLmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXBheTB0bWU0di9maWxlcy80L2MvYS9kYXRhc2V0XzRjYTNjMjIyLTY3MmEtNDgwNi1iNjBjLTA4MWYxYjdiNjRjYi5kYXQ6cGFydF9LLmdiLC90bXAvdG1wYXkwdG1lNHYvZmlsZXMvOS8wLzYvZGF0YXNldF85MDY3MDdkYi1iM2NmLTQwZjktYWYwYi0xZmZjMTQzZjkxZTguZGF0OnBhcnRfTC5nYicgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGF5MHRtZTR2L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvNDkvb3V0cHV0cy9kYXRhc2V0XzgwMDMyMGRjLWQxODEtNDBiZi1iMWNiLTU0MWY0M2E4MzhjMy5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuMzVpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjEzaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuNzdpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEyLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wYXkwdG1lNHYvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgo8L2RldGFpbHM+Cg==')); + 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')); \ No newline at end of file diff -r b0134502203b -r e1e985913204 output.json --- a/output.json Mon May 19 14:14:18 2025 +0000 +++ b/output.json Wed May 21 14:53:05 2025 +0000 @@ -1,9 +1,9 @@ { "summary": { "num_errors": 0, - "num_failures": 0, + "num_failures": 1, "num_skips": 0, - "num_tests": 6 + "num_tests": 7 }, "tests": [ { @@ -11,93 +11,93 @@ "inputs": { "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "40769e0726e5d2f9", + "id": "acd1a5e1ec1673bf", "src": "hda" }, "assembly_plan_name": "Type2sRestrictionAssembly", "genbank_files": { - "id": "fd8809ceca5b90d8", + "id": "9f2c11a06c2c8bb2", "src": "hdca" }, "topology": "circular" }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpay0tme4v/files/4/b/3/dataset_4b32c6a8-b39d-4f5f-9155-307e142d9193.dat,/tmp/tmpay0tme4v/files/8/e/f/dataset_8ef181dd-5c3a-40eb-9926-3738e1ae4be1.dat,/tmp/tmpay0tme4v/files/b/a/b/dataset_babba200-2afd-434f-8797-9b10cc736ba7.dat,/tmp/tmpay0tme4v/files/b/7/c/dataset_b7c5a88c-05ae-4efd-9887-47a899749178.dat,/tmp/tmpay0tme4v/files/7/f/e/dataset_7fea4ecf-be56-423d-8a11-d6491077e233.dat,/tmp/tmpay0tme4v/files/e/1/f/dataset_e1f9ab9e-c9e0-4acd-ac63-e4299c3792fe.dat,/tmp/tmpay0tme4v/files/f/0/f/dataset_f0fe046c-6132-4bb9-b5dc-521edead32f2.dat,/tmp/tmpay0tme4v/files/e/e/c/dataset_eec197e7-d8fa-4c45-b5cb-89e51ee1db0e.dat,/tmp/tmpay0tme4v/files/3/2/1/dataset_32124f40-ed9b-4d25-b74f-a4ff44581962.dat,/tmp/tmpay0tme4v/files/e/1/2/dataset_e126fe05-d77c-4b33-9782-e5b1e7e6c7ad.dat,/tmp/tmpay0tme4v/files/2/3/4/dataset_234f9855-813e-4297-bbd4-d1327fb0cbad.dat,/tmp/tmpay0tme4v/files/6/b/2/dataset_6b23e127-e4a2-41b6-98f3-4f8f7214b209.dat' --domesticated_seq '' --assembly_csv '/tmp/tmpay0tme4v/files/1/4/6/dataset_14645e90-9105-48af-a071-6ea052fd4aad.dat' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpay0tme4v/files/4/b/3/dataset_4b32c6a8-b39d-4f5f-9155-307e142d9193.dat:part_A.gb,/tmp/tmpay0tme4v/files/8/e/f/dataset_8ef181dd-5c3a-40eb-9926-3738e1ae4be1.dat:part_B.gb,/tmp/tmpay0tme4v/files/b/a/b/dataset_babba200-2afd-434f-8797-9b10cc736ba7.dat:part_C.gb,/tmp/tmpay0tme4v/files/b/7/c/dataset_b7c5a88c-05ae-4efd-9887-47a899749178.dat:part_D.gb,/tmp/tmpay0tme4v/files/7/f/e/dataset_7fea4ecf-be56-423d-8a11-d6491077e233.dat:part_E.gb,/tmp/tmpay0tme4v/files/e/1/f/dataset_e1f9ab9e-c9e0-4acd-ac63-e4299c3792fe.dat:part_F.gb,/tmp/tmpay0tme4v/files/f/0/f/dataset_f0fe046c-6132-4bb9-b5dc-521edead32f2.dat:part_G.gb,/tmp/tmpay0tme4v/files/e/e/c/dataset_eec197e7-d8fa-4c45-b5cb-89e51ee1db0e.dat:part_H.gb,/tmp/tmpay0tme4v/files/3/2/1/dataset_32124f40-ed9b-4d25-b74f-a4ff44581962.dat:part_I.gb,/tmp/tmpay0tme4v/files/e/1/2/dataset_e126fe05-d77c-4b33-9782-e5b1e7e6c7ad.dat:part_J.gb,/tmp/tmpay0tme4v/files/2/3/4/dataset_234f9855-813e-4297-bbd4-d1327fb0cbad.dat:part_K.gb,/tmp/tmpay0tme4v/files/6/b/2/dataset_6b23e127-e4a2-41b6-98f3-4f8f7214b209.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/tmpay0tme4v/job_working_directory/000/14/outputs/dataset_f30d906d-2ea4-4cde-b451-b7c6daf25a29.dat'", + "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_version": "", "copied_from_job_id": null, - "create_time": "2025-05-19T13:45:01.696419", + "create_time": "2025-05-21T14:47:30.360925", "dependencies": [], "exit_code": 0, - "external_id": "245391", + "external_id": "317822", "galaxy_version": "24.2", "handler": null, - "history_id": "fd8809ceca5b90d8", - "id": "d25964a649f0fc81", + "history_id": "9f2c11a06c2c8bb2", + "id": "18479e206f3c823f", "inputs": { "assembly_csv": { - "id": "40769e0726e5d2f9", + "id": "acd1a5e1ec1673bf", "src": "hda", - "uuid": "14645e90-9105-48af-a071-6ea052fd4aad" + "uuid": "a579429e-eabf-48bf-8baa-4b54e340af46" }, "genbank_files1": { - "id": "fd8809ceca5b90d8", + "id": "9f2c11a06c2c8bb2", "src": "hda", - "uuid": "4b32c6a8-b39d-4f5f-9155-307e142d9193" + "uuid": "e86ad306-6960-4dec-80fb-023fa6da5227" }, "genbank_files10": { - "id": "171b3bd3b2ffa75e", + "id": "d905212b22d14b29", "src": "hda", - "uuid": "e126fe05-d77c-4b33-9782-e5b1e7e6c7ad" + "uuid": "0fe1772a-d8b1-4b91-aee0-1a6d1577590e" }, "genbank_files11": { - "id": "ec7f951857c74506", + "id": "64a027171405da09", "src": "hda", - "uuid": "234f9855-813e-4297-bbd4-d1327fb0cbad" + "uuid": "c1aa9b56-f155-44af-8af5-1997f3ae48a7" }, "genbank_files12": { - "id": "8c74660869d2dd19", + "id": "f3ab5b94869b932e", "src": "hda", - "uuid": "6b23e127-e4a2-41b6-98f3-4f8f7214b209" + "uuid": "27148f5e-d3f0-45b9-a5f6-90d12767b2af" }, "genbank_files2": { - "id": "132b871e5e3014ee", + "id": "edba41b605a9f854", "src": "hda", - "uuid": "8ef181dd-5c3a-40eb-9926-3738e1ae4be1" + "uuid": "d340b2ee-f061-4028-8e61-c384afc4678a" }, "genbank_files3": { - "id": "65f48584dd2a1828", + "id": "b1906c2e1f5de664", "src": "hda", - "uuid": "babba200-2afd-434f-8797-9b10cc736ba7" + "uuid": "19569676-42b8-47f6-bb6d-fd8658cd6a37" }, "genbank_files4": { - "id": "543bb64c618cca80", + "id": "d28b58e6679c5691", "src": "hda", - "uuid": "b7c5a88c-05ae-4efd-9887-47a899749178" + "uuid": "05a63af0-f9a3-42f0-8ba8-74359301395e" }, "genbank_files5": { - "id": "e550d863bf084702", + "id": "39de46ba349dfcbe", "src": "hda", - "uuid": "7fea4ecf-be56-423d-8a11-d6491077e233" + "uuid": "c636704b-8f2a-4cb6-9b8c-17214dadb08d" }, "genbank_files6": { - "id": "6a73e15df176b356", + "id": "d10d7a9bf6c42600", "src": "hda", - "uuid": "e1f9ab9e-c9e0-4acd-ac63-e4299c3792fe" + "uuid": "855d9062-afe1-48b7-a1e9-a499536155aa" }, "genbank_files7": { - "id": "7faba24a30f85c9d", + "id": "6f2e93d50b248cee", "src": "hda", - "uuid": "f0fe046c-6132-4bb9-b5dc-521edead32f2" + "uuid": "e37509ff-8016-49ce-a9ca-fb066a5b6be6" }, "genbank_files8": { - "id": "f121a1ae40e58e96", + "id": "00a7ec1d542ff3f2", "src": "hda", - "uuid": "eec197e7-d8fa-4c45-b5cb-89e51ee1db0e" + "uuid": "edde499a-6247-4874-8ef6-921fa7d311b6" }, "genbank_files9": { - "id": "fc2d53421d7989de", + "id": "39eaa2809c3cd4cb", "src": "hda", - "uuid": "32124f40-ed9b-4d25-b74f-a4ff44581962" + "uuid": "66c4decf-8469-4302-8957-320e236c7ee7" } }, "job_messages": [], @@ -108,60 +108,60 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "132b871e5e3014ee", + "id": "edba41b605a9f854", "src": "hdca" } }, "outputs": { "__new_primary_file_construct_gb|construct_1__": { - "id": "6d4f2c14c91fd6e1", + "id": "fae073f924dc0737", "src": "hda", - "uuid": "32687278-a139-4ee2-bfc0-86735e813b3e" + "uuid": "41fc11c8-e2d3-4dad-9886-b8b318d263b0" }, "__new_primary_file_construct_gb|construct_2__": { - "id": "ce0686b9d731295a", + "id": "a0099218a00b3fc6", "src": "hda", - "uuid": "a78e87bc-7aa1-4e9e-8625-78450d68b18d" + "uuid": "7bc46185-b70d-4e82-b1fe-e0bc1710c1c7" }, "__new_primary_file_construct_gb|construct_3__": { - "id": "9fb491af1d40ed73", + "id": "87b4cc5bde3d0d60", "src": "hda", - "uuid": "6ce970af-f5f4-4193-9d0a-d1fc701d17d5" + "uuid": "79f1a377-2d26-4e23-aa72-01151870f643" }, "__new_primary_file_construct_gb|construct_4__": { - "id": "0a54ce1a82948d59", + "id": "b1ff512a2804398b", "src": "hda", - "uuid": "b76d3345-d556-4f55-9285-6a7ce76d9150" + "uuid": "63ad38c1-369e-4ef2-b296-6c80774439a1" }, "output_zip": { - "id": "d25964a649f0fc81", + "id": "18479e206f3c823f", "src": "hda", - "uuid": "f30d906d-2ea4-4cde-b451-b7c6daf25a29" + "uuid": "d4a3a824-aae9-4493-811d-77a8abd69905" } }, "params": { "__input_ext": "\"input\"", "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", "assembly_plan_name": "\"Type2sRestrictionAssembly\"", - "chromInfo": "\"/tmp/tmpay0tme4v/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpo3npfzdk/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": "", "tool_id": "cloning_simulation", - "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", + "tool_stdout": "", + "update_time": "2025-05-21T14:51:18.877985", "user_email": "planemo@galaxyproject.org", - "user_id": "fd8809ceca5b90d8" + "user_id": "9f2c11a06c2c8bb2" }, - "status": "success", - "test_index": 5, - "time_seconds": 55.54361414909363, + "output_problems": [ + "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.", + "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", + "test_index": 6, + "time_seconds": 49.28661274909973, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, "has_data": true, - "id": "cloning_simulation-5" + "id": "cloning_simulation-6" } ], "version": "0.1"