{"id":15771,"date":"2026-10-08T15:48:08","date_gmt":"2026-10-08T13:48:08","guid":{"rendered":"https:\/\/www.coverfop.it\/?page_id=15771"},"modified":"2026-10-31T11:12:13","modified_gmt":"2026-10-31T10:12:13","slug":"aule_vc","status":"publish","type":"page","link":"https:\/\/www.coverfop.it\/index.php\/aule_vc\/","title":{"rendered":"Aule_giorno"},"content":{"rendered":"<div>\n<p>    <!-- LEDWALL COVERFOP - Aule del giorno\n     Da incollare per intero in un blocco \"HTML personalizzato\" di una pagina WordPress.\n     L'unica riga modificabile e' LEDWALL_URL (indirizzo \/exec dello script Google).\n     Il programma e' codificato per non essere alterato dalla formattazione automatica di WordPress. --><\/p>\n<div id=\"lw-root\">\n<style>\n#lw-root{position:fixed;left:0;top:0;right:0;bottom:0;z-index:2147483000;background:#000;overflow:hidden;cursor:none;font-family:Roboto,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1.2;text-align:left}\n#lw-root h1,#lw-root b,#lw-root small,#lw-root em,#lw-root span,#lw-root div,#lw-root i{font-family:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0;border:0;background:none;box-shadow:none;line-height:inherit;font-size:inherit;font-weight:inherit}\n#lw-root svg{display:inline-block;max-width:none;vertical-align:middle}\n#lw-root header,#lw-root main,#lw-root footer{width:auto;max-width:none;min-height:0;transform:none;opacity:1;visibility:visible}\n#lw-root,#lw-root *{box-sizing:border-box;margin:0;padding:0}\n#lw-root{font-family:Roboto,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;color:#ffffff;-webkit-font-smoothing:antialiased}\n#lw-root .num{font-variant-numeric:tabular-nums;-webkit-font-feature-settings:\"tnum\";font-feature-settings:\"tnum\"}\n#lw-root #lw-app{-webkit-transform:scale(.5);transform:scale(.5);position:absolute;left:50%;top:50%;width:1080px;height:1920px;margin:-960px 0 0 -540px;\n  background:#0b2350;display:flex;flex-direction:column;overflow:hidden;\n  -webkit-transform-origin:50% 50%;transform-origin:50% 50%}\n#lw-root header{position:relative;height:192px;flex:none;display:flex;align-items:center;justify-content:space-between;\n  padding:8px 40px 0;background:#061634;border-bottom:3px solid #CDCF01}\n#lw-root .stripe{position:absolute;left:0;right:0;top:0;height:8px;display:flex}\n#lw-root .stripe i{flex:1}\n#lw-root .tbox{line-height:1}\n#lw-root .clock{font-size:108px;font-weight:700;letter-spacing:-1px}\n#lw-root .clock .col{display:inline-block;margin:0 2px}\n#lw-root .clock .col.off{opacity:.25}\n#lw-root .clock small{font-size:40px;color:#a9bde0;font-weight:500;margin-left:10px}\n#lw-root .date{font-size:30px;font-weight:600;color:#dce6f7;margin-top:12px}\n#lw-root .rbox{display:flex;flex-direction:column;align-items:flex-end}\n#lw-root .brand{display:flex;align-items:center}\n#lw-root .bars{display:flex;align-items:flex-end;height:44px;margin-right:14px}\n#lw-root .bars span{width:8px;margin-right:5px;border-radius:4px}\n#lw-root .brand b{font-size:32px;letter-spacing:2px;font-weight:700}\n#lw-root .meteo{display:none;align-items:center;margin-top:18px}\n#lw-root .meteo svg{width:46px;height:46px;margin-right:12px;color:#7AC4C2}\n#lw-root .meteo .t{font-size:40px;font-weight:700;margin-right:12px}\n#lw-root .meteo .d{font-size:22px;color:#a9bde0}\n#lw-root main{position:relative;height:1574px;flex:none;padding:24px 32px 16px;display:flex;flex-direction:column}\n#lw-root #lw-page{display:flex;flex-direction:column;height:100%}\n#lw-root .ttl{display:flex;align-items:center;justify-content:space-between;flex:none;background:#CDCF01;color:#0b1a33;margin:-24px -32px 0;padding:14px 32px}\n#lw-root .ttl h1{font-size:52px;font-weight:800;line-height:1}\n#lw-root .ttl .sub{font-size:24px;color:#0b1a33;font-weight:600}\n#lw-root .legend{display:flex;flex-wrap:wrap;margin-top:18px;flex:none}\n#lw-root .legend span{display:flex;align-items:center;font-size:18px;color:#dce6f7;margin-right:16px;margin-bottom:6px;white-space:nowrap}\n#lw-root .legend i{display:inline-block;width:20px;height:20px;border-radius:5px;margin-right:8px}\n#lw-root .legend .tg{font-size:14px;font-weight:800;padding:2px 6px;border-radius:4px;margin-right:8px;background:#fff;color:#0b0d10}\n#lw-root .thead,#lw-root .row{display:flex}\n#lw-root .thead{height:44px;flex:none;align-items:center;margin-top:10px;font-size:17px;color:#ffffff;font-weight:700;\n  text-transform:uppercase;letter-spacing:2px;padding:0 14px 0 22px;background:#1d4594;border-radius:4px}\n#lw-root .rows{flex:1;display:flex;flex-direction:column;padding-top:8px}\n#lw-root .row{position:relative;flex:none;margin-bottom:3px;background:#123170;border-radius:4px;align-items:center;\n  padding:8px 14px 8px 22px;overflow:hidden}\n#lw-root .row:nth-child(even){background:#0e2a62}\n#lw-root .row.wait .c2{opacity:.85}\n#lw-root .row.wait .cls b{color:#dce6f7}\n#lw-root .row .edge{position:absolute;left:0;top:0;bottom:0;width:9px}\n#lw-root .c1{width:24%;padding-right:8px}\n#lw-root .c2{width:34%;padding-right:8px}\n#lw-root .c3{width:21%}\n#lw-root .c4{width:21%}\n#lw-root .cls b{display:block;font-size:31px;font-weight:800;letter-spacing:-.3px;line-height:1.1}\n#lw-root .cls small{display:block;font-size:18px;color:#a9bde0;margin-top:5px;letter-spacing:.5px}\n#lw-root .blk{display:flex;align-items:center;flex-wrap:wrap;margin:3px 0}\n#lw-root .pill{display:inline-flex;align-items:center;font-size:30px;font-weight:800;\n  padding:2px 14px 3px 10px;border-radius:9px;white-space:nowrap;line-height:1.15}\n#lw-root .pill svg{width:25px;height:25px;margin-right:8px;flex:none}\n#lw-root .tg{display:inline-block;font-size:17px;font-weight:800;letter-spacing:1px;padding:3px 7px;border-radius:5px;\n  background:#fff;color:#0b0d10;margin-right:8px;line-height:1.1}\n#lw-root .tg.u{background:transparent;color:#dce6f7;box-shadow:inset 0 0 0 2px #dce6f7;margin-left:8px;margin-right:0}\n#lw-root .until{font-size:18px;color:#a9bde0;margin-left:10px;white-space:nowrap}\n#lw-root .starts{font-size:19px;color:#CDCF01;font-weight:700;margin-left:10px;white-space:nowrap}\n#lw-root .row .c3,#lw-root .row .c4{border-left:1px solid #2a4a8a;padding-left:12px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}\n#lw-root .nx{margin:3px 0;line-height:1.15}\n#lw-root .nx .h{font-size:18px;color:#CDCF01;font-weight:700}\n#lw-root .nx .a{font-size:23px;font-weight:700;color:#ffffff;white-space:nowrap}\n#lw-root .nx .o{font-size:20px;color:#a9bde0;font-style:italic}\n#lw-root .nx .tg{font-size:14px;padding:2px 5px;margin-right:6px}\n#lw-root .free{color:#a9bde0;font-size:20px}\n#lw-root .rows{overflow:hidden}\n#lw-root .rows.dense .row{padding-top:5px;padding-bottom:5px;margin-bottom:5px}\n#lw-root .rows.dense .cls b{font-size:29px}\n#lw-root .rows.dense .cls small{font-size:16px;margin-top:2px}\n#lw-root .rows.dense .pill{font-size:28px;padding:1px 12px 2px 9px}\n#lw-root .rows.dense .pill svg{width:21px;height:21px}\n#lw-root .rows.dense .blk{margin:1px 0}\n#lw-root .rows.dense .nx .a{font-size:20px}\n#lw-root .rows.dense .nx .h,#lw-root .rows.dense .until,#lw-root .rows.dense .starts,#lw-root .rows.dense .free{font-size:17px}\n#lw-root .rows.dense .tg{font-size:15px;padding:2px 6px}\n#lw-root .rows.dense2 .cls b{font-size:25px}\n#lw-root .rows.dense2 .pill{font-size:25px}\n#lw-root .rows.dense2 .nx .a{font-size:20px}\n#lw-root .rows.dense3 .row{padding-top:3px;padding-bottom:3px;margin-bottom:3px}\n#lw-root .rows.dense3 .cls b{font-size:23px}\n#lw-root .rows.dense3 .cls small{font-size:14px;margin-top:0}\n#lw-root .rows.dense3 .pill{font-size:23px;padding:0 10px 1px 8px}\n#lw-root .rows.dense3 .pill svg{width:18px;height:18px;margin-right:6px}\n#lw-root .rows.dense3 .blk,#lw-root .rows.dense3 .nx{margin:0}\n#lw-root .rows.dense3 .nx .a{font-size:18px}\n#lw-root .rows.dense3 .nx .h,#lw-root .rows.dense3 .until,#lw-root .rows.dense3 .starts,#lw-root .rows.dense3 .free{font-size:15px}\n#lw-root .rows.dense3 .tg{font-size:13px;padding:1px 5px}\n#lw-root .done{flex:none;margin-top:8px;font-size:19px;color:#a9bde0}\n#lw-root .done b{color:#dce6f7;font-weight:600}\n#lw-root .enter{-webkit-animation:enter .6s ease both;animation:enter .6s ease both}\n@-webkit-keyframes enter{from{opacity:0}to{opacity:1}}\n@keyframes enter{from{opacity:0}to{opacity:1}}\n#lw-root .empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}\n#lw-root .empty .bars{height:90px;margin:0 0 40px}\n#lw-root .empty .bars span{width:16px;margin-right:10px}\n#lw-root .empty h1{font-size:76px;font-weight:800;line-height:1.1}\n#lw-root .empty p{font-size:32px;color:#a9bde0;margin-top:20px}\n#lw-root #lw-urgent{display:none;position:absolute;left:32px;right:32px;top:24px;bottom:16px;background:#d32f2f;\n  border-radius:20px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 50px}\n#lw-root #lw-urgent .tag{display:flex;align-items:center;font-size:36px;font-weight:800;letter-spacing:8px;background:#fff;\n  color:#d32f2f;padding:10px 26px;border-radius:12px;-webkit-animation:pulse 1.6s ease-in-out infinite;animation:pulse 1.6s ease-in-out infinite}\n#lw-root #lw-urgent .tag svg{width:38px;height:38px;margin-right:12px}\n#lw-root #lw-urgent .txt{font-size:84px;font-weight:800;line-height:1.12;margin-top:50px}\n@-webkit-keyframes pulse{50%{opacity:.4}}\n@keyframes pulse{50%{opacity:.4}}\n#lw-root footer{height:154px;flex:none;display:flex;background:#061634;border-top:2px solid #2a4a8a}\n#lw-root .flabel{width:150px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#A600B0}\n#lw-root .flabel svg{width:44px;height:44px}\n#lw-root .flabel b{font-size:20px;font-weight:800;letter-spacing:3px;margin-top:8px}\n#lw-root .msg{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 34px}\n#lw-root #lw-msgTxt{font-size:38px;font-weight:600;line-height:1.2;max-height:92px;overflow:hidden}\n#lw-root #lw-msgDots{margin-top:12px;height:8px}\n#lw-root #lw-msgDots i{display:inline-block;width:8px;height:8px;border-radius:4px;background:#2a4a8a;margin-right:8px}\n#lw-root #lw-msgDots i.on{width:30px;background:#CDCF01}\n#lw-root #lw-stale{position:absolute;right:10px;bottom:10px;width:14px;height:14px;border-radius:50%;background:#d32f2f;display:none}\n<\/style>\n<div id=\"lw-app\">\n<header>\n<div class=\"stripe\"><i style=\"background:#A600B0\"><\/i><i style=\"background:#7AC4C2\"><\/i><i style=\"background:#CDCF01\"><\/i><i style=\"background:#1B6E0E\"><\/i><\/div>\n<div class=\"tbox\">\n<div class=\"clock num\" id=\"lw-clock\"><\/div>\n<div class=\"date\" id=\"lw-date\"><\/div>\n<\/p><\/div>\n<div class=\"rbox\">\n<div class=\"brand\">\n<div class=\"bars\"><span style=\"background:#A600B0;height:100%\"><\/span><span style=\"background:#7AC4C2;height:80%\"><\/span><span style=\"background:#CDCF01;height:60%\"><\/span><span style=\"background:#1B6E0E;height:40%\"><\/span><\/div>\n<p><b>CO.VER.FO.P.<\/b><\/div>\n<div class=\"meteo\" id=\"lw-meteo\"><span id=\"lw-micon\"><\/span><span class=\"t num\" id=\"lw-mtemp\"><\/span><span class=\"d\" id=\"lw-mdesc\"><\/span><\/div>\n<\/p><\/div>\n<\/header>\n<p>  <main><\/p>\n<div id=\"lw-page\"><\/div>\n<div id=\"lw-urgent\">\n<div class=\"tag\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3 2 21h20L12 3z\"\/><path d=\"M12 10v5\"\/><path d=\"M12 18h.01\"\/><\/svg>AVVISO<\/div>\n<div class=\"txt\" id=\"lw-urgentTxt\"><\/div>\n<\/div>\n<p>  <\/main><\/p>\n<footer>\n<div class=\"flabel\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 11v2a1 1 0 0 0 1 1h3l5 4V6L7 10H4a1 1 0 0 0-1 1z\"\/><path d=\"M16 9a4 4 0 0 1 0 6\"\/><path d=\"M19 6a8 8 0 0 1 0 12\"\/><\/svg><b>AVVISI<\/b><\/div>\n<div class=\"msg\">\n<div id=\"lw-msgTxt\"><\/div>\n<div id=\"lw-msgDots\"><\/div>\n<\/div>\n<\/footer>\n<div id=\"lw-stale\"><\/div>\n<\/div>\n<\/div>\n<p><script>window.LEDWALL_URL = 'https:\/\/script.google.com\/macros\/s\/AKfycby7VeiQrmdmaOiYVvcLbW7z5vWNBVoG3uotu-EShcJFLI5wmrTHCT1bWWy37JJbmAE\/exec';<\/script><br \/>\n<script>(function(){var c='KGZ1bmN0aW9uKCl7Cid1c2Ugc3RyaWN0JzsKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIENPTkZJR1VSQVpJT05FCiAgIERBVEFfVVJMOiBpbmRpcml6em8gZGVsbG8gc2NyaXB0IEdvb2dsZSBjaGUgcmVzdGl0dWlzY2UgaWwgcGlhbm8gZGVsIGdpb3Juby4KICAgICAgICAgICAgIFZ1b3RvID0gdXNhIGkgZGF0aSBkaSBwcm92YSBxdWkgc290dG8gKHByb3NwZXR0byByZWFsZSBkZWwgMjYvMTAvMjAyNikuCiAgIFJPVEFURTogICAwIHNlIEFuZHJvaWQgbGF2b3JhIGdpYScgaW4gdmVydGljYWxlOyA5MCBvIC05MCBzZSBpbCBwYW5uZWxsbyBlJyBtb250YXRvIHJ1b3RhdG8uCiAgIFBhcmFtZXRyaSBkYSBpbmRpcml6em86ID9yb3Q9OTAgID9vcmE9MTA6MzAgKHNvbG8gcGVyIHByb3ZlKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIENPTkZJRyA9IHsKICBEQVRBX1VSTDogKHdpbmRvdy5MRURXQUxMX1VSTCB8fCAnJyksCiAgUk9UQVRFOiAwLAogIFJFRlJFU0hfREFUQV9TRUM6IDYwLAogIE1TR19TRUM6IDgsCiAgUkVMT0FEX0hPVVJTOiA2LAogIExBVDogNDUuMzIwMiwgTE9OOiA4LjQxODUsCiAgRkFLRV9USU1FOiBudWxsCn07CihmdW5jdGlvbigpewogIHZhciBxID0gbG9jYXRpb24uc2VhcmNoLCBtOwogIGlmICgobSA9IHEubWF0Y2goL1s\/Jl1yb3Q9KC0\/XGQrKS8pKSkgQ09ORklHLlJPVEFURSA9ICttWzFdOwogIGlmICgobSA9IHEubWF0Y2goL1s\/Jl1vcmE9KFxkezEsMn0pWzouXShcZHsyfSkvKSkpIENPTkZJRy5GQUtFX1RJTUUgPSAoK21bMV0pKjYwICsgKCttWzJdKTsKfSkoKTsKCi8qIC0tLS0tLS0tLS0tLS0tLS0gQURBVFRBTUVOVE8gQUxMTyBTQ0hFUk1PIC0tLS0tLS0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gZml0KCl7CiAgdmFyIHcgPSB3aW5kb3cuaW5uZXJXaWR0aCwgaCA9IHdpbmRvdy5pbm5lckhlaWdodCwgciA9IENPTkZJRy5ST1RBVEU7CiAgdmFyIHNpZGUgPSAocj09PTkwIHx8IHI9PT0tOTApLCBXID0gc2lkZSA\/IGggOiB3LCBIID0gc2lkZSA\/IHcgOiBoOwogIHZhciBzID0gTWF0aC5taW4oVy8xMDgwLCBILzE5MjApLCB0ID0gKHIgPyAncm90YXRlKCcrcisnZGVnKSAnIDogJycpICsgJ3NjYWxlKCcrcysnKSc7CiAgLyogcmllbXBpZSBsbyBzcGF6aW8gYXZhbnphdG8gYWxsYXJnYW5kbyBsYSB0ZWxhIChtYXggKzIwJSksIHNlbnphIGRlZm9ybWFyZSAqLwogIHZhciBhdyA9IE1hdGgucm91bmQoTWF0aC5taW4oVy9zLCAxMDgwKjEuMikpLCBhaCA9IE1hdGgucm91bmQoTWF0aC5taW4oSC9zLCAxOTIwKjEuMikpOwogIHZhciBhcHAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctYXBwJyk7CiAgYXBwLnN0eWxlLndpZHRoID0gYXcrJ3B4JzsgYXBwLnN0eWxlLmhlaWdodCA9IGFoKydweCc7CiAgYXBwLnN0eWxlLm1hcmdpbkxlZnQgPSAoLWF3LzIpKydweCc7IGFwcC5zdHlsZS5tYXJnaW5Ub3AgPSAoLWFoLzIpKydweCc7CiAgYXBwLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9IHQ7IGFwcC5zdHlsZS50cmFuc2Zvcm0gPSB0OwogIGlmICh0eXBlb2YgZml0Um93cyA9PT0gJ2Z1bmN0aW9uJykgdHJ5eyBmaXRSb3dzKCk7IH1jYXRjaChlKXt9Cn0Kd2luZG93Lm9ucmVzaXplID0gZml0OwovKiB1biB0b2NjbyBvIHVuIGNsaWMgc3VsbG8gc2NoZXJtbyBwb3J0YSBpbCBicm93c2VyIGEgdHV0dG8gc2NoZXJtbyAoc2UgaWwgYnJvd3NlciBsbyBjb25zZW50ZSkgKi8KZnVuY3Rpb24gZ29GdWxsKCl7CiAgdmFyIGQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIGYgPSBkLnJlcXVlc3RGdWxsc2NyZWVuIHx8IGQud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4gfHwgZC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbjsKICBpZiAoZiAmJiAhKGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50IHx8IGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50KSkgdHJ5eyBmLmNhbGwoZCk7IH1jYXRjaChlKXt9Cn0KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBnb0Z1bGwpOyBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdvRnVsbCk7CgovKiAtLS0tLS0tLS0tLS0tLS0tIERBVEkgREkgUFJPVkE6IHByb3NwZXR0byByZWFsZSBkaSBsdW5lZGknIDI2IG90dG9icmUgMjAyNiAtLS0tLS0tLS0tLS0tLS0tCiAgIFN0ZXNzYSBmb3JtYSBjaGUgcmVzdGl0dWlyYScgbG8gc2NyaXB0IGRlbCBmb2dsaW8gR29vZ2xlLgogICBjb3JzaTogICBvcmRpbmUgZGkgdmlzdWFsaXp6YXppb25lLCBwaWFubyBkaSByaWZlcmltZW50bywgY29sb3JlIGRlbGxhIGZhbWlnbGlhCiAgIGF1bGU6ICAgIHRpcG8gZSBjb2xvcmUgKGxhYm9yYXRvcmlvIHRlY25pY28gLyBpbmZvcm1hdGljYSBhdWxhIDQgLyBpbmZvcm1hdGljYSBhdWxhIDEwIC8gcGFsZXN0cmEpCiAgIGJsb2NjaGk6IHVuYSByaWdhIHBlciBvZ25pIHBlcm1hbmVuemEgaW4gYXVsYTsgZ3J1cHBvIEEvSSBwZXIgbGUgYXJ0aWNvbGF0ZTsgdW5pdGEgPSAodSkgICAgICAgICovCmZ1bmN0aW9uIGRlbW9EYXRhKCl7CiAgdmFyIGQgPSBuZXcgRGF0ZSgpOwogIHZhciBvZ2dpID0gZC5nZXRGdWxsWWVhcigpKyctJytwYWQoZC5nZXRNb250aCgpKzEpKyctJytwYWQoZC5nZXREYXRlKCkpOwogIHJldHVybiB7CiAgICBkYXRhOiBvZ2dpLAogICAgdGlwaTogWwogICAgICB7dGlwbzonTGFib3JhdG9yaW8gdGVjbmljbycsIGNvbG9yZTonI0IyNEJEMCd9LAogICAgICB7dGlwbzonTGFiLiBpbmZvcm1hdGljbyBhdWxhIDQnLCBjb2xvcmU6JyMzQjYzRjAnfSwKICAgICAge3RpcG86J0xhYi4gaW5mb3JtYXRpY28gYXVsYSAxMCcsIGNvbG9yZTonIzZGQjNFMCd9LAogICAgICB7dGlwbzonUGFsZXN0cmEnLCBjb2xvcmU6JyNFNTQ4NEQnfQogICAgXSwKICAgIGF1bGU6IFsKICAgICAge2F1bGE6J2F1bGEgMTInLCB0aXBvOidMYWJvcmF0b3JpbyB0ZWNuaWNvJ30sCiAgICAgIHthdWxhOidhdWxhIDE1JywgdGlwbzonTGFib3JhdG9yaW8gdGVjbmljbyd9LAogICAgICB7YXVsYTonYXVsYSAxNicsIHRpcG86J0xhYm9yYXRvcmlvIHRlY25pY28nfSwKICAgICAge2F1bGE6J2F1bGEgMTcnLCB0aXBvOidMYWJvcmF0b3JpbyB0ZWNuaWNvJ30sCiAgICAgIHthdWxhOidhdWxhIDQnLCAgdGlwbzonTGFiLiBpbmZvcm1hdGljbyBhdWxhIDQnfSwKICAgICAge2F1bGE6J2F1bGEgMTAnLCB0aXBvOidMYWIuIGluZm9ybWF0aWNvIGF1bGEgMTAnfSwKICAgICAge2F1bGE6J3BhbGVzdHJhJyx0aXBvOidQYWxlc3RyYSd9CiAgICBdLAogICAgY29yc2k6IFsKICAgICAge2NvcnNvOidPRS9PSSAxwqonLCBwaWFubzonUGlhbm8gdGVycmEnLCBjb2xvcmU6JyM3QUM0QzInfSwKICAgICAge2NvcnNvOidPRS9PSSAywqonLCBwaWFubzonUGlhbm8gcHJpbW8nLCBjb2xvcmU6JyM3QUM0QzInfSwKICAgICAge2NvcnNvOidPRS9PSSAzwqonLCBwaWFubzonUGlhbm8gdGVycmEnLCBjb2xvcmU6JyM3QUM0QzInfSwKICAgICAge2NvcnNvOidURS9USSA0wqonLCBwaWFubzonUGlhbm8gcHJpbW8nLCBjb2xvcmU6JyM3QUM0QzInfSwKICAgICAge2NvcnNvOidPQiAxwqonLCAgICBwaWFubzonUHJpbW8gcGlhbm8nLCBjb2xvcmU6JyNBNjAwQjAnfSwKICAgICAge2NvcnNvOidPQiAywqonLCAgICBwaWFubzonQWxhIG51b3ZhJywgICBjb2xvcmU6JyNBNjAwQjAnfSwKICAgICAge2NvcnNvOidPQiAzwqonLCAgICBwaWFubzonQWxhIG51b3ZhJywgICBjb2xvcmU6JyNBNjAwQjAnfSwKICAgICAge2NvcnNvOidUVEUgNMKqJywgICBwaWFubzonQWxhIG51b3ZhJywgICBjb2xvcmU6JyNBNjAwQjAnfSwKICAgICAge2NvcnNvOidPU1MgcHJpbW8gY29yc28nLCAgIHBpYW5vOidQcmltbyBwaWFubycsIGNvbG9yZTonIzFCNkUwRSd9LAogICAgICB7Y29yc286J09TUyBzZWNvbmRvIGNvcnNvJywgcGlhbm86J1ByaW1vIHBpYW5vJywgY29sb3JlOicjMUI2RTBFJ30sCiAgICAgIHtjb3JzbzonQWdnLiBpbmZvcm1hdGljbyBHT0wnLCBwaWFubzonUGlhbm8gdGVycmEnLCBjb2xvcmU6JyNDRENGMDEnfSwKICAgICAge2NvcnNvOidTb21tZWxpZXIgMcKwIGxpdmVsbG8nLCBwaWFubzonQWxhIG51b3ZhJywgY29sb3JlOicjQ0RDRjAxJ30sCiAgICAgIHtjb3JzbzonQ29sbG9xdWkgaW4gcHJlc2VuemEnLCBwaWFubzonUHJpbW8gcGlhbm8nLCBjb2xvcmU6JyM4YTk2YTAnfQogICAgXSwKICAgIGJsb2NjaGk6IFsKICAgICAge2NvcnNvOidPRS9PSSAxwqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTA6MDAnLCBhdWxhOidhdWxhIDE0JywgZ3J1cHBvOidBJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgMcKqJywgaW5pemlvOicwODowMCcsIGZpbmU6JzEwOjAwJywgYXVsYTonYXVsYSA0JywgIGdydXBwbzonSSd9LAogICAgICB7Y29yc286J09FL09JIDHCqicsIGluaXppbzonMTA6MDAnLCBmaW5lOicxNDowMCcsIGF1bGE6J2F1bGEgMTQnfSwKICAgICAge2NvcnNvOidPRS9PSSAywqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDYnfSwKICAgICAge2NvcnNvOidPRS9PSSAywqonLCBpbml6aW86JzExOjAwJywgZmluZTonMTQ6MDAnLCBhdWxhOidhdWxhIDE2JywgZ3J1cHBvOidBJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgMsKqJywgaW5pemlvOicxMTowMCcsIGZpbmU6JzE0OjAwJywgYXVsYTonYXVsYSA0JywgIGdydXBwbzonSSd9LAogICAgICB7Y29yc286J09FL09JIDPCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMDowMCcsIGF1bGE6J2F1bGEgMTMnLCB1bml0YTp0cnVlfSwKICAgICAge2NvcnNvOidPRS9PSSAzwqonLCBpbml6aW86JzEwOjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDEzJywgZ3J1cHBvOidBJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgM8KqJywgaW5pemlvOicxMDowMCcsIGZpbmU6JzExOjAwJywgYXVsYTonYXVsYSA0JywgIGdydXBwbzonSSd9LAogICAgICB7Y29yc286J09FL09JIDPCqicsIGluaXppbzonMTE6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgMTMnLCB1bml0YTp0cnVlfSwKICAgICAge2NvcnNvOidURS9USSA0wqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDknLCAgZ3J1cHBvOidBJ30sCiAgICAgIHtjb3JzbzonVEUvVEkgNMKqJywgaW5pemlvOicwODowMCcsIGZpbmU6JzExOjAwJywgYXVsYTonYXVsYSAxMCcsIGdydXBwbzonSSd9LAogICAgICB7Y29yc286J1RFL1RJIDTCqicsIGluaXppbzonMTE6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgOScsICB1bml0YTp0cnVlfSwKICAgICAge2NvcnNvOidPQiAxwqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTA6MDAnLCBhdWxhOidhdWxhIDEyJ30sCiAgICAgIHtjb3JzbzonT0IgMcKqJywgaW5pemlvOicxMDowMCcsIGZpbmU6JzEzOjAwJywgYXVsYTonYXVsYSAxJ30sCiAgICAgIHtjb3JzbzonT0IgMcKqJywgaW5pemlvOicxNDowMCcsIGZpbmU6JzE2OjAwJywgYXVsYToncGFsZXN0cmEnfSwKICAgICAge2NvcnNvOidPQiAywqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTM6MDAnLCBhdWxhOidhdWxhIDIxJ30sCiAgICAgIHtjb3JzbzonT0IgMsKqJywgaW5pemlvOicxNDowMCcsIGZpbmU6JzE2OjAwJywgYXVsYToncGFsZXN0cmEnfSwKICAgICAge2NvcnNvOidPQiAzwqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTM6MDAnLCBhdWxhOidhdWxhIDIyJ30sCiAgICAgIHtjb3JzbzonVFRFIDTCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgMjAnfSwKICAgICAge2NvcnNvOidPU1MgcHJpbW8gY29yc28nLCBpbml6aW86JzA5OjAwJywgZmluZTonMTM6MDAnLCBhdWxhOidhdWxhIDUnfSwKICAgICAge2NvcnNvOidPU1MgcHJpbW8gY29yc28nLCBpbml6aW86JzE0OjMwJywgZmluZTonMTY6MzAnLCBhdWxhOidhdWxhIDEnfSwKICAgICAge2NvcnNvOidPU1Mgc2Vjb25kbyBjb3JzbycsIGluaXppbzonMTQ6MzAnLCBmaW5lOicxODozMCcsIGF1bGE6J2F1bGEgNSd9LAogICAgICB7Y29yc286J0FnZy4gaW5mb3JtYXRpY28gR09MJywgaW5pemlvOicxNDozMCcsIGZpbmU6JzE4OjMwJywgYXVsYTonYXVsYSAxMCd9LAogICAgICB7Y29yc286J1NvbW1lbGllciAxwrAgbGl2ZWxsbycsIGluaXppbzonMjA6MDAnLCBmaW5lOicyMzowMCcsIGF1bGE6J2F1bGEgMjEnfSwKICAgICAge2NvcnNvOidDb2xsb3F1aSBpbiBwcmVzZW56YScsIGluaXppbzonJywgZmluZTonJywgYXVsYTonYXVsYSBkb2NlbnRpJ30KICAgIF0sCiAgICBhdnZpc2k6IFsKICAgICAge3Rlc3RvOidCZW52ZW51dGkgYSBDby5WZXIuRm8uUC4nfQogICAgICAvLyBlc2VtcGlvOiB7dGVzdG86J09wZW4gRGF5IHNhYmF0byAxNSBub3ZlbWJyZScsIGRhbDonMjAyNi0xMC0yNicsIGFsOicyMDI2LTExLTE1J30KICAgICAgLy8gdXJnZW50ZTogIHt0ZXN0bzonLi4uJywgdXJnZW50ZTp0cnVlfQogICAgXQogIH07Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0gVVRJTElUQScgLS0tLS0tLS0tLS0tLS0tLSAqLwp2YXIgR0lPUk5JID0gWydkb21lbmljYScsJ2x1bmVkw6wnLCdtYXJ0ZWTDrCcsJ21lcmNvbGVkw6wnLCdnaW92ZWTDrCcsJ3ZlbmVyZMOsJywnc2FiYXRvJ107CnZhciBNRVNJID0gWydnZW5uYWlvJywnZmViYnJhaW8nLCdtYXJ6bycsJ2FwcmlsZScsJ21hZ2dpbycsJ2dpdWdubycsJ2x1Z2xpbycsJ2Fnb3N0bycsJ3NldHRlbWJyZScsJ290dG9icmUnLCdub3ZlbWJyZScsJ2RpY2VtYnJlJ107CmZ1bmN0aW9uICQoaWQpeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyB9CmZ1bmN0aW9uIHBhZChuKXsgcmV0dXJuIChuPDEwPycwJzonJykrbjsgfQpmdW5jdGlvbiBlc2Mocyl7IHJldHVybiBTdHJpbmcocz09bnVsbD8nJzpzKS5yZXBsYWNlKC9bJjw+Il0vZyxmdW5jdGlvbihjKXtyZXR1cm4geycmJzonJmFtcDsnLCc8JzonJmx0OycsJz4nOicmZ3Q7JywnIic6JyZxdW90Oyd9W2NdO30pOyB9CmZ1bmN0aW9uIHRvTWluKGhobW0peyB2YXIgcD1TdHJpbmcoaGhtbSkucmVwbGFjZSgnLicsJzonKS5yZXBsYWNlKCcsJywnOicpLnNwbGl0KCc6Jyk7IHJldHVybiAoK3BbMF0pKjYwICsgKCsocFsxXXx8MCkpOyB9CmZ1bmN0aW9uIGZtdChoaG1tKXsgdmFyIG0gPSB0b01pbihoaG1tKTsgcmV0dXJuIHBhZChNYXRoLmZsb29yKG0vNjApKSsnOicrcGFkKG0lNjApOyB9CmZ1bmN0aW9uIGlzb0RheShkKXsgcmV0dXJuIGQuZ2V0RnVsbFllYXIoKSsnLScrcGFkKGQuZ2V0TW9udGgoKSsxKSsnLScrcGFkKGQuZ2V0RGF0ZSgpKTsgfQpmdW5jdGlvbiByZ2JhKGhleCwgYSl7IHZhciBoPVN0cmluZyhoZXgpLnJlcGxhY2UoJyMnLCcnKTsgcmV0dXJuICdyZ2JhKCcrcGFyc2VJbnQoaC5zdWJzdHIoMCwyKSwxNikrJywnK3BhcnNlSW50KGguc3Vic3RyKDIsMiksMTYpKycsJytwYXJzZUludChoLnN1YnN0cig0LDIpLDE2KSsnLCcrYSsnKSc7IH0KZnVuY3Rpb24gb25Db2xvcihoZXgpeyB2YXIgaD1TdHJpbmcoaGV4KS5yZXBsYWNlKCcjJywnJyk7IHZhciByPXBhcnNlSW50KGguc3Vic3RyKDAsMiksMTYpLGc9cGFyc2VJbnQoaC5zdWJzdHIoMiwyKSwxNiksYj1wYXJzZUludChoLnN1YnN0cig0LDIpLDE2KTsgcmV0dXJuIChyKjI5OStnKjU4NytiKjExNCkvMTAwMD4xNTA\/JyMwYjBkMTAnOicjZmZmZmZmJzsgfQpmdW5jdGlvbiBjYXAocyl7IHMgPSBTdHJpbmcocyk7IHJldHVybiBzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Muc2xpY2UoMSk7IH0KdmFyIElDT05fUElOID0gJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIxcy03LTYuMi03LTExLjVBNyA3IDAgMCAxIDE5IDkuNUMxOSAxNC44IDEyIDIxIDEyIDIxeiIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iOS41IiByPSIyLjUiLz48L3N2Zz4nOwp2YXIgSUNPTl9MQUIgPSAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOSAzaDYiLz48cGF0aCBkPSJNMTAgM3Y2TDQuNSAxOC41QTEuNyAxLjcgMCAwIDAgNiAyMWgxMmExLjcgMS43IDAgMCAwIDEuNS0yLjVMMTQgOVYzIi8+PHBhdGggZD0iTTcgMTVoMTAiLz48L3N2Zz4nOwp2YXIgR1JVUFBJID0ge0E6J0F1dG9tYXppb25lJywgSTonSW5mb3JtYXRpY2EnfTsKCi8qIC0tLS0tLS0tLS0tLS0tLS0gT1JPTE9HSU8gLS0tLS0tLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiB0aWNrQ2xvY2soKXsKICB2YXIgZCA9IG5ldyBEYXRlKCk7CiAgJCgnbHctY2xvY2snKS5pbm5lckhUTUwgPSBwYWQoZC5nZXRIb3VycygpKSsnPHNwYW4gY2xhc3M9ImNvbCcrKGQuZ2V0U2Vjb25kcygpJTI\/JyBvZmYnOicnKSsnIj46PC9zcGFuPicrcGFkKGQuZ2V0TWludXRlcygpKSsnPHNtYWxsPicrcGFkKGQuZ2V0U2Vjb25kcygpKSsnPC9zbWFsbD4nOwogICQoJ2x3LWRhdGUnKS50ZXh0Q29udGVudCA9IGNhcChHSU9STklbZC5nZXREYXkoKV0pKycgJytkLmdldERhdGUoKSsnICcrTUVTSVtkLmdldE1vbnRoKCldKycgJytkLmdldEZ1bGxZZWFyKCk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0gTUVURU8gKE9wZW4tTWV0ZW8pIC0tLS0tLS0tLS0tLS0tLS0gKi8KdmFyIFNWR19BID0gJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+JzsKdmFyIElDT05TID0gewogIHNvbGU6IFNWR19BKyc8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0Ii8+PHBhdGggZD0iTTEyIDJ2Mk0xMiAyMHYyTTQuOSA0LjlsMS40IDEuNE0xNy43IDE3LjdsMS40IDEuNE0yIDEyaDJNMjAgMTJoMk00LjkgMTkuMWwxLjQtMS40TTE3LjcgNi4zbDEuNC0xLjQiLz48L3N2Zz4nLAogIHBhcno6IFNWR19BKyc8cGF0aCBkPSJNOCAzdjEuNU0zLjggNC44bDEgMU0yIDloMS41Ii8+PHBhdGggZD0iTTUuNiAxMS41QTMuNSAzLjUgMCAxIDEgMTEuNSA3Ii8+PHBhdGggZD0iTTggMjBoOWE0IDQgMCAwIDAgMC04IDUuNSA1LjUgMCAwIDAtMTAuNCAxLjdBMy4yIDMuMiAwIDAgMCA4IDIweiIvPjwvc3ZnPicsCiAgbnViZTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDE5aDEwYTQuNSA0LjUgMCAwIDAgLjUtOUE2IDYgMCAwIDAgNiAxMS41IDMuOCAzLjggMCAwIDAgNyAxOXoiLz48L3N2Zz4nLAogIG5lYmJpYTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDEzaDEwYTQgNCAwIDAgMCAuNC04QTUuNSA1LjUgMCAwIDAgNi42IDcgMyAzIDAgMCAwIDcgMTN6Ii8+PHBhdGggZD0iTTQgMTdoMTZNNiAyMWgxMiIvPjwvc3ZnPicsCiAgcGlvZ2dpYTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDE1aDEwYTQgNCAwIDAgMCAuNC04QTUuNSA1LjUgMCAwIDAgNi42IDkgMyAzIDAgMCAwIDcgMTV6Ii8+PHBhdGggZD0iTTggMThsLTEgM00xMiAxOGwtMSAzTTE2IDE4bC0xIDMiLz48L3N2Zz4nLAogIG5ldmU6IFNWR19BKyc8cGF0aCBkPSJNNyAxNWgxMGE0IDQgMCAwIDAgLjQtOEE1LjUgNS41IDAgMCAwIDYuNiA5IDMgMyAwIDAgMCA3IDE1eiIvPjxwYXRoIGQ9Ik04IDE5aC4wMU0xMiAxOWguMDFNMTYgMTloLjAxTTEwIDIyaC4wMU0xNCAyMmguMDEiLz48L3N2Zz4nLAogIHRlbXBvcmFsZTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDE1aDEwYTQgNCAwIDAgMCAuNC04QTUuNSA1LjUgMCAwIDAgNi42IDkgMyAzIDAgMCAwIDcgMTV6Ii8+PHBhdGggZD0iTTEyLjUgMTZsLTIgMy41aDNsLTIgMy41Ii8+PC9zdmc+Jwp9OwpmdW5jdGlvbiBtZXRlb0luZm8oYyl7CiAgaWYgKGM9PT0wKSByZXR1cm4gWydzb2xlJywnU2VyZW5vJ107CiAgaWYgKGM8PTIpIHJldHVybiBbJ3BhcnonLCdQb2NvIG51dm9sb3NvJ107CiAgaWYgKGM9PT0zKSByZXR1cm4gWydudWJlJywnQ29wZXJ0byddOwogIGlmIChjPT09NDV8fGM9PT00OCkgcmV0dXJuIFsnbmViYmlhJywnTmViYmlhJ107CiAgaWYgKGM+PTUxJiZjPD01NykgcmV0dXJuIFsncGlvZ2dpYScsJ1Bpb3ZpZ2dpbmUnXTsKICBpZiAoKGM+PTYxJiZjPD02Nyl8fChjPj04MCYmYzw9ODIpKSByZXR1cm4gWydwaW9nZ2lhJywgYz49ODA\/J1JvdmVzY2knOidQaW9nZ2lhJ107CiAgaWYgKChjPj03MSYmYzw9NzcpfHxjPT09ODV8fGM9PT04NikgcmV0dXJuIFsnbmV2ZScsJ05ldmUnXTsKICBpZiAoYz49OTUpIHJldHVybiBbJ3RlbXBvcmFsZScsJ1RlbXBvcmFsZSddOwogIHJldHVybiBbJ251YmUnLCcnXTsKfQpmdW5jdGlvbiBsb2FkTWV0ZW8oKXsKICBnZXQoJ2h0dHBzOi8vYXBpLm9wZW4tbWV0ZW8uY29tL3YxL2ZvcmVjYXN0P2xhdGl0dWRlPScrQ09ORklHLkxBVCsnJmxvbmdpdHVkZT0nK0NPTkZJRy5MT04rJyZjdXJyZW50PXRlbXBlcmF0dXJlXzJtLHdlYXRoZXJfY29kZSZ0aW1lem9uZT1FdXJvcGUlMkZSb21lJywgZnVuY3Rpb24oail7CiAgICB0cnl7IHZhciBjPWouY3VycmVudCwgbWk9bWV0ZW9JbmZvKGMud2VhdGhlcl9jb2RlKTsKICAgICAgJCgnbHctbWljb24nKS5pbm5lckhUTUwgPSBJQ09OU1ttaVswXV07ICQoJ2x3LW10ZW1wJykudGV4dENvbnRlbnQgPSBNYXRoLnJvdW5kKGMudGVtcGVyYXR1cmVfMm0pKyfCsCc7CiAgICAgICQoJ2x3LW1kZXNjJykudGV4dENvbnRlbnQgPSAnVmVyY2VsbGkgwrcgJyttaVsxXTsgJCgnbHctbWV0ZW8nKS5zdHlsZS5kaXNwbGF5PSdmbGV4JzsKICAgIH1jYXRjaChlKXt9CiAgfSk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0gUkVURSBFIERBVEkgLS0tLS0tLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiBnZXQodXJsLCBvaywga28pewogIHZhciB4ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHgub3BlbignR0VUJywgdXJsLCB0cnVlKTsgeC50aW1lb3V0ID0gMTUwMDA7CiAgeC5vbmxvYWQgPSBmdW5jdGlvbigpeyBpZiAoeC5zdGF0dXM+PTIwMCAmJiB4LnN0YXR1czwzMDApeyB0cnl7IG9rKEpTT04ucGFyc2UoeC5yZXNwb25zZVRleHQpKTsgfWNhdGNoKGUpeyBpZihrbykga28oKTsgfSB9IGVsc2UgaWYoa28pIGtvKCk7IH07CiAgeC5vbmVycm9yID0geC5vbnRpbWVvdXQgPSBmdW5jdGlvbigpeyBpZihrbykga28oKTsgfTsgeC5zZW5kKCk7Cn0KdmFyIERBVEEgPSBudWxsOwpmdW5jdGlvbiBsb2FkRGF0YSgpewogIGlmICghQ09ORklHLkRBVEFfVVJMKXsgREFUQSA9IGRlbW9EYXRhKCk7IHJlbmRlcigpOyByZXR1cm47IH0KICBnZXQoQ09ORklHLkRBVEFfVVJMKyhDT05GSUcuREFUQV9VUkwuaW5kZXhPZignPycpPDA\/Jz8nOicmJykrJ3Q9JytEYXRlLm5vdygpLCBmdW5jdGlvbihqKXsKICAgIERBVEEgPSBqOyAkKCdsdy1zdGFsZScpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdHJ5eyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGVkd2FsbF9kYXRhJywgSlNPTi5zdHJpbmdpZnkoaikpOyB9Y2F0Y2goZSl7fQogICAgdHJ5eyByZW5kZXIoKTsgfWNhdGNoKGUpeyBzaG93RXJyKGUpOyB9CiAgfSwgZnVuY3Rpb24oKXsKICAgIGlmICghREFUQSl7IHRyeXsgREFUQSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xlZHdhbGxfZGF0YScpKTsgfWNhdGNoKGUpe30gfQogICAgJCgnbHctc3RhbGUnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7IGlmIChEQVRBKSByZW5kZXIoKTsKICB9KTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBMT0dJQ0E6IGFkZXNzbyAvIHBvaSBwZXIgb2duaSBjb3JzbyAtLS0tLS0tLS0tLS0tLS0tICovCmZ1bmN0aW9uIG5vd01pbigpewogIGlmIChDT05GSUcuRkFLRV9USU1FICE9PSBudWxsKSByZXR1cm4gQ09ORklHLkZBS0VfVElNRTsKICB2YXIgZCA9IG5ldyBEYXRlKCk7IHJldHVybiBkLmdldEhvdXJzKCkqNjAgKyBkLmdldE1pbnV0ZXMoKTsKfQpmdW5jdGlvbiByb29tSW5mbyhhdWxhKXsKICB2YXIgYSA9IFN0cmluZyhhdWxhKS50b0xvd2VyQ2FzZSgpLCBhdSA9IERBVEEuYXVsZSB8fCBbXSwgdGkgPSBEQVRBLnRpcGkgfHwgW10sIGksIHQgPSBudWxsOwogIGZvciAoaT0wO2k8YXUubGVuZ3RoO2krKykgaWYgKFN0cmluZyhhdVtpXS5hdWxhKS50b0xvd2VyQ2FzZSgpPT09YSkgdCA9IGF1W2ldLnRpcG87CiAgaWYgKCF0KSByZXR1cm4gbnVsbDsKICBmb3IgKGk9MDtpPHRpLmxlbmd0aDtpKyspIGlmICh0aVtpXS50aXBvPT09dCkgcmV0dXJuIHRpW2ldOwogIHJldHVybiBudWxsOwp9CmZ1bmN0aW9uIHBpbGxIdG1sKGIpewogIHZhciByaSA9IHJvb21JbmZvKGIuYXVsYSksIHN0LCBpY29uOwogIGlmIChyaSl7IHN0ID0gJ2JhY2tncm91bmQ6JytyaS5jb2xvcmUrJztjb2xvcjonK29uQ29sb3IocmkuY29sb3JlKTsgaWNvbiA9IElDT05fTEFCOyB9CiAgZWxzZSB7IHN0ID0gJ2JhY2tncm91bmQ6I0NEQ0YwMTtjb2xvcjojMGIxYTMzJzsgaWNvbiA9IElDT05fUElOOyB9CiAgcmV0dXJuICc8c3BhbiBjbGFzcz0icGlsbCIgc3R5bGU9Iicrc3QrJyI+JytpY29uK2VzYyhjYXAoYi5hdWxhKSkrJzwvc3Bhbj4nOwp9CmZ1bmN0aW9uIHRhZ0h0bWwoYil7IHJldHVybiBiLmdydXBwbyA\/ICc8c3BhbiBjbGFzcz0idGciIHRpdGxlPSInKyhHUlVQUElbYi5ncnVwcG9dfHwnJykrJyI+Jytlc2MoR1JVUFBJW2IuZ3J1cHBvXSA\/IEdSVVBQSVtiLmdydXBwb10uc2xpY2UoMCwzKS50b1VwcGVyQ2FzZSgpIDogYi5ncnVwcG8pKyc8L3NwYW4+JyA6ICcnOyB9CmZ1bmN0aW9uIHNvcnRHKGEsYil7IHJldHVybiAoYS5ncnVwcG98fCcnKS5sb2NhbGVDb21wYXJlKGIuZ3J1cHBvfHwnJyk7IH0KCi8qIFBlciBvZ25pIGNvcnNvOiBsYSBzaXR1YXppb25lIGFkZXNzbyBlIGkgZHVlIGNhbWJpIHN1Y2Nlc3NpdmkgKHVuIGNhbWJpbyA9IHVuIG1vbWVudG8gaW4gY3VpCiAgIGwnaW5zaWVtZSBkZWxsZSBhdWxlIG9jY3VwYXRlIGRhbCBjb3JzbyBjYW1iaWE6IGluaXppbywgZmluZSwgc3Bvc3RhbWVudG8gZGkgdW4gZ3J1cHBvKS4gKi8KZnVuY3Rpb24gYlN0YXJ0KGIpeyByZXR1cm4gYi5pbml6aW8gPyB0b01pbihiLmluaXppbykgOiAwOyB9CmZ1bmN0aW9uIGJFbmQoYil7IHJldHVybiBiLmZpbmUgPyB0b01pbihiLmZpbmUpIDogMjQqNjA7IH0KZnVuY3Rpb24gc3RhdGVBdChibCwgdCl7CiAgdmFyIG91dCA9IFtdOwogIGZvciAodmFyIGk9MDtpPGJsLmxlbmd0aDtpKyspIGlmIChiU3RhcnQoYmxbaV0pIDw9IHQgJiYgdCA8IGJFbmQoYmxbaV0pKSBvdXQucHVzaChibFtpXSk7CiAgb3V0LnNvcnQoc29ydEcpOyByZXR1cm4gb3V0Owp9CmZ1bmN0aW9uIHN0S2V5KHN0KXsgdmFyIGs9Jyc7IGZvciAodmFyIGk9MDtpPHN0Lmxlbmd0aDtpKyspIGsgKz0gc3RbaV0uYXVsYSsnfCcrKHN0W2ldLmdydXBwb3x8JycpKyd8Jysoc3RbaV0udW5pdGE\/MTowKSsnOyc7IHJldHVybiBrOyB9CmZ1bmN0aW9uIHBsYW5Gb3IoY29yc28sIG5vdyl7CiAgdmFyIGJsID0gW10sIGksIGFsbCA9IERBVEEuYmxvY2NoaTsKICBmb3IgKGk9MDtpPGFsbC5sZW5ndGg7aSsrKSBpZiAoYWxsW2ldLmNvcnNvPT09Y29yc28pIGJsLnB1c2goYWxsW2ldKTsKICBpZiAoIWJsLmxlbmd0aCkgcmV0dXJuIG51bGw7CiAgdmFyIGxhc3RFbmQgPSAwLCB0aW1lcyA9IFtdOwogIGZvciAoaT0wO2k8YmwubGVuZ3RoO2krKyl7CiAgICB2YXIgcyA9IGJTdGFydChibFtpXSksIGUgPSBiRW5kKGJsW2ldKTsKICAgIGlmIChlID4gbGFzdEVuZCkgbGFzdEVuZCA9IGU7CiAgICBpZiAocyA+IG5vdyAmJiB0aW1lcy5pbmRleE9mKHMpIDwgMCkgdGltZXMucHVzaChzKTsKICAgIGlmIChlID4gbm93ICYmIGUgPCAyNCo2MCAmJiB0aW1lcy5pbmRleE9mKGUpIDwgMCkgdGltZXMucHVzaChlKTsKICB9CiAgdGltZXMuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gYS1iOyB9KTsKICB2YXIgY3VyID0gc3RhdGVBdChibCwgbm93KSwgc2VxID0gW10sIHByZXYgPSBzdEtleShjdXIpOwogIGZvciAoaT0wO2k8dGltZXMubGVuZ3RoICYmIHNlcS5sZW5ndGg8MztpKyspewogICAgdmFyIHN0ID0gc3RhdGVBdChibCwgdGltZXNbaV0pLCBrID0gc3RLZXkoc3QpOwogICAgaWYgKGsgPT09IHByZXYpIGNvbnRpbnVlOwogICAgdmFyIGxhdGVyID0gZmFsc2U7CiAgICBmb3IgKHZhciBqPTA7ajxibC5sZW5ndGg7aisrKSBpZiAoYlN0YXJ0KGJsW2pdKSA+IHRpbWVzW2ldKSBsYXRlciA9IHRydWU7CiAgICBzZXEucHVzaCh7dDp0aW1lc1tpXSwgc3Q6c3QsIGxhdGVyOmxhdGVyfSk7CiAgICBwcmV2ID0gazsKICB9CiAgcmV0dXJuIHtjdXI6Y3VyLCBzZXE6c2VxLCBmaW5pc2hlZDogbm93ID49IGxhc3RFbmR9Owp9CmZ1bmN0aW9uIGhtKG0peyByZXR1cm4gcGFkKE1hdGguZmxvb3IobS82MCkpKyc6JytwYWQobSU2MCk7IH0KZnVuY3Rpb24gbmV4dENlbGwoc3RlcCl7CiAgaWYgKCFzdGVwKSByZXR1cm4gJzxzcGFuIGNsYXNzPSJmcmVlIj7igJQ8L3NwYW4+JzsKICB2YXIgaCA9ICc8ZGl2IGNsYXNzPSJueCI+PGRpdiBjbGFzcz0iaCBudW0iPicrKHN0ZXAuc3QubGVuZ3RoID8gJ2RhbGxlICcgOiAnYWxsZSAnKStobShzdGVwLnQpKyc8L2Rpdj4nOwogIGlmICghc3RlcC5zdC5sZW5ndGgpIHJldHVybiBoICsgJzxkaXYgY2xhc3M9Im8iPicrKHN0ZXAubGF0ZXIgPyAncGF1c2EnIDogJ3VzY2l0YScpKyc8L2Rpdj48L2Rpdj4nOwogIGZvciAodmFyIGk9MDtpPHN0ZXAuc3QubGVuZ3RoO2krKyl7CiAgICB2YXIgbiA9IHN0ZXAuc3RbaV0sIHJuID0gcm9vbUluZm8obi5hdWxhKTsKICAgIGggKz0gJzxkaXYgY2xhc3M9ImEiPicrdGFnSHRtbChuKSsnPHNwYW4gc3R5bGU9ImNvbG9yOicrKHJuID8gcm4uY29sb3JlIDogJyNDRENGMDEnKSsnIj4nK2VzYyhjYXAobi5hdWxhKSkrJzwvc3Bhbj4nKyhuLnVuaXRhPycgwrcgdW5pdGEnOicnKSsnPC9kaXY+JzsKICB9CiAgcmV0dXJuIGggKyAnPC9kaXY+JzsKfQoKdmFyIGxhc3RIdG1sID0gJyc7CmZ1bmN0aW9uIHJlbmRlcigpewogIGlmICghREFUQSkgcmV0dXJuOwogIHJlbmRlck1lc3NhZ2VzKCk7CiAgdmFyIG5vdyA9IG5vd01pbigpLCBlbCA9ICQoJ2x3LXBhZ2UnKSwgY29yc2kgPSBEQVRBLmNvcnNpIHx8IFtdLCByb3dzID0gW10sIGZpbmlzaGVkID0gW107CiAgZm9yICh2YXIgYz0wO2M8Y29yc2kubGVuZ3RoO2MrKyl7CiAgICB2YXIgcCA9IHBsYW5Gb3IoY29yc2lbY10uY29yc28sIG5vdyk7CiAgICBpZiAoIXApIGNvbnRpbnVlOwogICAgaWYgKHAuZmluaXNoZWQpeyBmaW5pc2hlZC5wdXNoKGNvcnNpW2NdLmNvcnNvKTsgY29udGludWU7IH0KICAgIHJvd3MucHVzaCh7Yzpjb3JzaVtjXSwgcDpwfSk7CiAgfQogIC8qIGkgY29sbG9xdWkgc3Rhbm5vIHNlbXByZSBpbiBmb25kbywgYW5jaGUgZG9wbyBsZSBwcmVub3RhemlvbmkgZGFsIHNpdG8gKi8KICB2YXIgdGFpbCA9IFtdLCBoZWFkID0gW107CiAgZm9yICh2YXIgcT0wO3E8cm93cy5sZW5ndGg7cSsrKSAoL15jb2xsb3F1aS9pLnRlc3Qocm93c1txXS5jLmNvcnNvKSA\/IHRhaWwgOiBoZWFkKS5wdXNoKHJvd3NbcV0pOwogIHJvd3MgPSBoZWFkLmNvbmNhdCh0YWlsKTsKCiAgdmFyIGg7CiAgaWYgKCFyb3dzLmxlbmd0aCl7CiAgICBoID0gJzxkaXYgY2xhc3M9ImVtcHR5Ij48ZGl2IGNsYXNzPSJiYXJzIj48c3BhbiBzdHlsZT0iYmFja2dyb3VuZDojQTYwMEIwO2hlaWdodDoxMDAlIj48L3NwYW4+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6IzdBQzRDMjtoZWlnaHQ6ODAlIj48L3NwYW4+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6I0NEQ0YwMTtoZWlnaHQ6NjAlIj48L3NwYW4+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6IzFCNkUwRTtoZWlnaHQ6NDAlIj48L3NwYW4+PC9kaXY+JwogICAgICArICc8aDE+JysoZmluaXNoZWQubGVuZ3RoID8gJ0F0dGl2aXTDoCBkaSBvZ2dpPGJyPmNvbmNsdXNlJyA6ICdPZ2dpIG5lc3N1bmE8YnI+YXR0aXZpdMOgIGluIGF1bGEnKSsnPC9oMT48cD5CdW9uYSBnaW9ybmF0YSBkYSBDby5WZXIuRm8uUC48L3A+PC9kaXY+JzsKICB9IGVsc2UgewogICAgdmFyIGxnID0gJzxzcGFuPjxpIHN0eWxlPSJiYWNrZ3JvdW5kOiNDRENGMDEiPjwvaT5BdWxhPC9zcGFuPicsIHRpID0gREFUQS50aXBpIHx8IFtdOwogICAgZm9yICh2YXIgdD0wO3Q8dGkubGVuZ3RoO3QrKykgbGcgKz0gJzxzcGFuPjxpIHN0eWxlPSJiYWNrZ3JvdW5kOicrdGlbdF0uY29sb3JlKyciPjwvaT4nK2VzYyh0aVt0XS50aXBvKSsnPC9zcGFuPic7CiAgICBsZyArPSAnPHNwYW4+PGIgY2xhc3M9InRnIj5BVVQ8L2I+QXV0b21hemlvbmU8L3NwYW4+PHNwYW4+PGIgY2xhc3M9InRnIj5JTkY8L2I+SW5mb3JtYXRpY2E8L3NwYW4+JzsKCiAgICBoID0gJzxkaXYgY2xhc3M9InR0bCI+PGgxPkF1bGUgZGVsIGdpb3JubzwvaDE+PGRpdiBjbGFzcz0ic3ViIj4nK3Jvd3MubGVuZ3RoKycgY29yc2kgaW4gc2VkZTwvZGl2PjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0ibGVnZW5kIj4nK2xnKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9InRoZWFkIj48ZGl2IGNsYXNzPSJjMSI+Q29yc288L2Rpdj48ZGl2IGNsYXNzPSJjMiI+QWRlc3NvPC9kaXY+PGRpdiBjbGFzcz0iYzMiPlBvaTwvZGl2PjxkaXYgY2xhc3M9ImM0Ij5Eb3BvIGFuY29yYTwvZGl2PjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0icm93cyI+JzsKICAgIGZvciAodmFyIHI9MDtyPHJvd3MubGVuZ3RoO3IrKyl7CiAgICAgIHZhciBjbyA9IHJvd3Nbcl0uYywgcGwgPSByb3dzW3JdLnAsIGNvbCA9IGNvLmNvbG9yZSB8fCAnIzdBQzRDMicsIGksIG1pZCA9ICcnLCBzZXEgPSBwbC5zZXE7CiAgICAgIHZhciB3YWl0aW5nID0gIXBsLmN1ci5sZW5ndGg7CiAgICAgIHZhciBzaG93biA9IHdhaXRpbmcgPyBzZXFbMF0uc3QgOiBwbC5jdXI7CiAgICAgIGZvciAoaT0wO2k8c2hvd24ubGVuZ3RoO2krKyl7CiAgICAgICAgdmFyIGIgPSBzaG93bltpXSwgbGFzdCA9IChpPT09c2hvd24ubGVuZ3RoLTEpOwogICAgICAgIG1pZCArPSAnPGRpdiBjbGFzcz0iYmxrIj4nK3RhZ0h0bWwoYikrcGlsbEh0bWwoYikrKGIudW5pdGE\/JzxzcGFuIGNsYXNzPSJ0ZyB1Ij5VTklUQTwvc3Bhbj4nOicnKTsKICAgICAgICBpZiAobGFzdCl7CiAgICAgICAgICBpZiAod2FpdGluZykgbWlkICs9ICc8c3BhbiBjbGFzcz0ic3RhcnRzIG51bSI+ZGFsbGUgJytobShzZXFbMF0udCkrJzwvc3Bhbj4nOwogICAgICAgICAgZWxzZSBpZiAoc2VxLmxlbmd0aCkgbWlkICs9ICc8c3BhbiBjbGFzcz0idW50aWwgbnVtIj5maW5vIGFsbGUgJytobShzZXFbMF0udCkrJzwvc3Bhbj4nOwogICAgICAgIH0KICAgICAgICBtaWQgKz0gJzwvZGl2Pic7CiAgICAgIH0KICAgICAgdmFyIHMxID0gd2FpdGluZyA\/IHNlcVsxXSA6IHNlcVswXSwgczIgPSB3YWl0aW5nID8gc2VxWzJdIDogc2VxWzFdOwogICAgICB2YXIgYzMgPSBzMSA\/IG5leHRDZWxsKHMxKSA6IChwbC5jdXIubGVuZ3RoICYmICFwbC5jdXJbcGwuY3VyLmxlbmd0aC0xXS5maW5lID8gJzxzcGFuIGNsYXNzPSJmcmVlIj50dXR0byBpbCBnaW9ybm88L3NwYW4+JyA6ICc8c3BhbiBjbGFzcz0iZnJlZSI+4oCUPC9zcGFuPicpOwogICAgICB2YXIgYzQgPSBzMSA\/IG5leHRDZWxsKHMyKSA6ICc8c3BhbiBjbGFzcz0iZnJlZSI+PC9zcGFuPic7CiAgICAgIGggKz0gJzxkaXYgY2xhc3M9InJvdycrKHdhaXRpbmc\/JyB3YWl0JzonJykrJyI+PGRpdiBjbGFzcz0iZWRnZSIgc3R5bGU9ImJhY2tncm91bmQ6Jytjb2wrJyI+PC9kaXY+JwogICAgICAgICArICc8ZGl2IGNsYXNzPSJjMSBjbHMiPjxiPicrZXNjKGNvLmNvcnNvKSsnPC9iPjxzbWFsbD4nK2VzYyhjby5waWFub3x8JycpKyc8L3NtYWxsPjwvZGl2PicKICAgICAgICAgKyAnPGRpdiBjbGFzcz0iYzIiPicrbWlkKyc8L2Rpdj4nCiAgICAgICAgICsgJzxkaXYgY2xhc3M9ImMzIj4nK2MzKyc8L2Rpdj4nCiAgICAgICAgICsgJzxkaXYgY2xhc3M9ImM0Ij4nK2M0Kyc8L2Rpdj48L2Rpdj4nOwogICAgfQogICAgaCArPSAnPC9kaXY+JzsKICAgIGlmIChmaW5pc2hlZC5sZW5ndGgpIGggKz0gJzxkaXYgY2xhc3M9ImRvbmUiPkNvbmNsdXNlIG9nZ2k6IDxiPicrZXNjKGZpbmlzaGVkLmpvaW4oJyDCtyAnKSkrJzwvYj48L2Rpdj4nOwogIH0KICBpZiAoaCA9PT0gbGFzdEh0bWwpIHJldHVybjsKICBlbC5jbGFzc05hbWUgPSBsYXN0SHRtbCA\/ICcnIDogJ2VudGVyJzsKICBsYXN0SHRtbCA9IGg7CiAgZWwuaW5uZXJIVE1MID0gaDsKICBmaXRSb3dzKCk7Cn0KLyogcmlnaGUgYWx0ZSBxdWFudG8gc2VydmU6IHNlIGF2YW56YW5vIHNwYXppbyBzaSBhbGxhcmdhbm8sIGZpbm8gYSB1biBtYXNzaW1vICovCmZ1bmN0aW9uIGZpdFJvd3MoKXsKICB2YXIgYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2x3LXJvb3QgLnJvd3MnKTsgaWYgKCFib3gpIHJldHVybjsKICB2YXIgcm93cyA9IGJveC5jaGlsZHJlbiwgbiA9IHJvd3MubGVuZ3RoLCBpLCB1c2VkID0gMDsKICBmb3IgKGk9MDtpPG47aSsrKSByb3dzW2ldLnN0eWxlLm1pbkhlaWdodCA9ICcnOwogIGJveC5jbGFzc05hbWUgPSAncm93cyc7CiAgaWYgKGJveC5zY3JvbGxIZWlnaHQgPiBib3guY2xpZW50SGVpZ2h0ICsgMikgYm94LmNsYXNzTmFtZSA9ICdyb3dzIGRlbnNlJzsKICBpZiAoYm94LnNjcm9sbEhlaWdodCA+IGJveC5jbGllbnRIZWlnaHQgKyAyKSBib3guY2xhc3NOYW1lID0gJ3Jvd3MgZGVuc2UgZGVuc2UyJzsKICBpZiAoYm94LnNjcm9sbEhlaWdodCA+IGJveC5jbGllbnRIZWlnaHQgKyAyKSBib3guY2xhc3NOYW1lID0gJ3Jvd3MgZGVuc2UgZGVuc2UyIGRlbnNlMyc7CiAgZm9yIChpPTA7aTxuO2krKykgdXNlZCArPSByb3dzW2ldLm9mZnNldEhlaWdodCArIDc7CiAgdmFyIGZyZWUgPSBib3guY2xpZW50SGVpZ2h0IC0gOCAtIHVzZWQ7CiAgaWYgKGZyZWUgPiAwKXsKICAgIHZhciBhZGQgPSBNYXRoLm1pbihmcmVlIC8gbiwgNDApOwogICAgZm9yIChpPTA7aTxuO2krKykgcm93c1tpXS5zdHlsZS5taW5IZWlnaHQgPSAocm93c1tpXS5vZmZzZXRIZWlnaHQgKyBhZGQpICsgJ3B4JzsKICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0gQVZWSVNJIC0tLS0tLS0tLS0tLS0tLS0gKi8KdmFyIG1zZ0lkeCA9IDA7CmZ1bmN0aW9uIGFjdGl2ZU1lc3NhZ2VzKCl7CiAgdmFyIHRvZGF5ID0gaXNvRGF5KG5ldyBEYXRlKCkpLCBvdXQgPSB7bm9ybTpbXSwgdXJnOltdfSwgbSA9IChEQVRBICYmIERBVEEuYXZ2aXNpKSB8fCBbXTsKICBmb3IgKHZhciBpPTA7aTxtLmxlbmd0aDtpKyspewogICAgaWYgKG1baV0uZGFsICYmIHRvZGF5IDwgbVtpXS5kYWwpIGNvbnRpbnVlOwogICAgaWYgKG1baV0uYWwgJiYgdG9kYXkgPiBtW2ldLmFsKSBjb250aW51ZTsKICAgIChtW2ldLnVyZ2VudGUgPyBvdXQudXJnIDogb3V0Lm5vcm0pLnB1c2gobVtpXS50ZXN0byk7CiAgfQogIHJldHVybiBvdXQ7Cn0KZnVuY3Rpb24gcmVuZGVyTWVzc2FnZXMoc3RlcCl7CiAgdmFyIGFtID0gYWN0aXZlTWVzc2FnZXMoKTsKICBpZiAoYW0udXJnLmxlbmd0aCl7ICQoJ2x3LXVyZ2VudFR4dCcpLnRleHRDb250ZW50ID0gYW0udXJnLmpvaW4oJyDCtyAnKTsgJCgnbHctdXJnZW50Jykuc3R5bGUuZGlzcGxheT0nZmxleCc7IH0KICBlbHNlICQoJ2x3LXVyZ2VudCcpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogIHZhciBsaXN0ID0gYW0ubm9ybS5sZW5ndGggPyBhbS5ub3JtIDogWydCZW52ZW51dGkgYSBDby5WZXIuRm8uUC4nXTsKICBpZiAoc3RlcCkgbXNnSWR4Kys7CiAgdmFyIGkgPSBtc2dJZHggJSBsaXN0Lmxlbmd0aCwgdCA9ICQoJ2x3LW1zZ1R4dCcpOwogIGlmIChzdGVwICYmIGxpc3QubGVuZ3RoPjEpeyB0LmNsYXNzTmFtZT0nJzsgdm9pZCB0Lm9mZnNldFdpZHRoOyB0LmNsYXNzTmFtZT0nZW50ZXInOyB9CiAgdC50ZXh0Q29udGVudCA9IGxpc3RbaV07CiAgdmFyIGQ9Jyc7IGZvciAodmFyIGo9MDtqPGxpc3QubGVuZ3RoO2orKykgZCArPSAnPGkgY2xhc3M9IicrKGo9PT1pPydvbic6JycpKyciPjwvaT4nOwogICQoJ2x3LW1zZ0RvdHMnKS5pbm5lckhUTUwgPSBsaXN0Lmxlbmd0aD4xID8gZCA6ICcnOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tIEFWVklPIC0tLS0tLS0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gYm9vdCgpewpmaXQoKTsKdGlja0Nsb2NrKCk7IHNldEludGVydmFsKHRpY2tDbG9jaywgMTAwMCk7CmxvYWRNZXRlbygpOyBzZXRJbnRlcnZhbChsb2FkTWV0ZW8sIDMwKjYwKjEwMDApOwpsb2FkRGF0YSgpOyBzZXRJbnRlcnZhbChsb2FkRGF0YSwgQ09ORklHLlJFRlJFU0hfREFUQV9TRUMqMTAwMCk7CnNldEludGVydmFsKGZ1bmN0aW9uKCl7IGlmIChEQVRBKSByZW5kZXIoKTsgfSwgMjAwMDApOwpzZXRJbnRlcnZhbChmdW5jdGlvbigpeyBpZiAoREFUQSkgcmVuZGVyTWVzc2FnZXModHJ1ZSk7IH0sIENPTkZJRy5NU0dfU0VDKjEwMDApOwovKiByaWNhcmljYSBwZXJpb2RpY2EsIG1hIG5vbiBzZSBlJyBhIHR1dHRvIHNjaGVybW8gKHJpY2FyaWNhcmUgZmFyZWJiZSByaWNvbXBhcmlyZSBsYSBiYXJyYSBkZWwgYnJvd3NlcikgKi8Kc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsKICBpZiAoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQgfHwgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVsZW1lbnQpIHJldHVybjsKICBsb2NhdGlvbi5yZWxvYWQoKTsKfSwgQ09ORklHLlJFTE9BRF9IT1VSUyozNjAwKjEwMDApOwp9CmZ1bmN0aW9uIHN0YXJ0KCl7CiAgdHJ5ewogICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctcm9vdCcpOwogICAgaWYgKHJvb3QgJiYgcm9vdC5wYXJlbnROb2RlICE9PSBkb2N1bWVudC5ib2R5KSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpOwogICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOwogICAgYm9vdCgpOwogIH1jYXRjaChlKXsgc2hvd0VycihlKTsgfQp9CmZ1bmN0aW9uIHNob3dFcnIoZSl7CiAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctYXBwJyk7IGlmICghYSkgcmV0dXJuOwogIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgZC5zdHlsZS5jc3NUZXh0PSdwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjIwcHg7cmlnaHQ6MjBweDtib3R0b206MTcwcHg7YmFja2dyb3VuZDojZDMyZjJmO2NvbG9yOiNmZmY7Zm9udDoyNHB4IEFyaWFsO3BhZGRpbmc6MTZweDtib3JkZXItcmFkaXVzOjEwcHg7ei1pbmRleDo5JzsKICBkLnRleHRDb250ZW50ID0gJ0Vycm9yZSBsZWR3YWxsOiAnICsgKGUgJiYgZS5tZXNzYWdlID8gZS5tZXNzYWdlIDogZSk7CiAgYS5hcHBlbmRDaGlsZChkKTsKfQppZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc3RhcnQpOyBlbHNlIHN0YXJ0KCk7Cn0pKCk7';new Function(decodeURIComponent(escape(window.atob(c))))();})();<\/script><\/p>\n<\/div>\n<p><!--more--><br \/>\n<!-- {\"type\":\"layout\",\"children\":[{\"type\":\"section\",\"props\":{\"image_position\":\"center-center\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"html\",\"props\":{\"content\":\"<!-- LEDWALL COVERFOP - Aule del giorno\\n     Da incollare per intero in un blocco \\\"HTML personalizzato\\\" di una pagina WordPress.\\n     L'unica riga modificabile e' LEDWALL_URL (indirizzo \/exec dello script Google).\\n     Il programma e' codificato per non essere alterato dalla formattazione automatica di WordPress. -->\\n<\/p>\n<div id=\\\"lw-root\\\">\\n<\/p>\n<style>\\n#lw-root{position:fixed;left:0;top:0;right:0;bottom:0;z-index:2147483000;background:#000;overflow:hidden;cursor:none;font-family:Roboto,\\\"Segoe UI\\\",\\\"Helvetica Neue\\\",Arial,sans-serif;line-height:1.2;text-align:left}\\n#lw-root h1,#lw-root b,#lw-root small,#lw-root em,#lw-root span,#lw-root div,#lw-root i{font-family:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0;border:0;background:none;box-shadow:none;line-height:inherit;font-size:inherit;font-weight:inherit}\\n#lw-root svg{display:inline-block;max-width:none;vertical-align:middle}\\n#lw-root header,#lw-root main,#lw-root footer{width:auto;max-width:none;min-height:0;transform:none;opacity:1;visibility:visible}\\n#lw-root,#lw-root *{box-sizing:border-box;margin:0;padding:0}\\n#lw-root{font-family:Roboto,\\\"Segoe UI\\\",\\\"Helvetica Neue\\\",Arial,sans-serif;color:#ffffff;-webkit-font-smoothing:antialiased}\\n#lw-root .num{font-variant-numeric:tabular-nums;-webkit-font-feature-settings:\\\"tnum\\\";font-feature-settings:\\\"tnum\\\"}\\n#lw-root #lw-app{-webkit-transform:scale(.5);transform:scale(.5);position:absolute;left:50%;top:50%;width:1080px;height:1920px;margin:-960px 0 0 -540px;\\n  background:#0b2350;display:flex;flex-direction:column;overflow:hidden;\\n  -webkit-transform-origin:50% 50%;transform-origin:50% 50%}\\n#lw-root header{position:relative;height:192px;flex:none;display:flex;align-items:center;justify-content:space-between;\\n  padding:8px 40px 0;background:#061634;border-bottom:3px solid #CDCF01}\\n#lw-root .stripe{position:absolute;left:0;right:0;top:0;height:8px;display:flex}\\n#lw-root .stripe i{flex:1}\\n#lw-root .tbox{line-height:1}\\n#lw-root .clock{font-size:108px;font-weight:700;letter-spacing:-1px}\\n#lw-root .clock .col{display:inline-block;margin:0 2px}\\n#lw-root .clock .col.off{opacity:.25}\\n#lw-root .clock small{font-size:40px;color:#a9bde0;font-weight:500;margin-left:10px}\\n#lw-root .date{font-size:30px;font-weight:600;color:#dce6f7;margin-top:12px}\\n#lw-root .rbox{display:flex;flex-direction:column;align-items:flex-end}\\n#lw-root .brand{display:flex;align-items:center}\\n#lw-root .bars{display:flex;align-items:flex-end;height:44px;margin-right:14px}\\n#lw-root .bars span{width:8px;margin-right:5px;border-radius:4px}\\n#lw-root .brand b{font-size:32px;letter-spacing:2px;font-weight:700}\\n#lw-root .meteo{display:none;align-items:center;margin-top:18px}\\n#lw-root .meteo svg{width:46px;height:46px;margin-right:12px;color:#7AC4C2}\\n#lw-root .meteo .t{font-size:40px;font-weight:700;margin-right:12px}\\n#lw-root .meteo .d{font-size:22px;color:#a9bde0}\\n#lw-root main{position:relative;height:1574px;flex:none;padding:24px 32px 16px;display:flex;flex-direction:column}\\n#lw-root #lw-page{display:flex;flex-direction:column;height:100%}\\n#lw-root .ttl{display:flex;align-items:center;justify-content:space-between;flex:none;background:#CDCF01;color:#0b1a33;margin:-24px -32px 0;padding:14px 32px}\\n#lw-root .ttl h1{font-size:52px;font-weight:800;line-height:1}\\n#lw-root .ttl .sub{font-size:24px;color:#0b1a33;font-weight:600}\\n#lw-root .legend{display:flex;flex-wrap:wrap;margin-top:18px;flex:none}\\n#lw-root .legend span{display:flex;align-items:center;font-size:18px;color:#dce6f7;margin-right:16px;margin-bottom:6px;white-space:nowrap}\\n#lw-root .legend i{display:inline-block;width:20px;height:20px;border-radius:5px;margin-right:8px}\\n#lw-root .legend .tg{font-size:14px;font-weight:800;padding:2px 6px;border-radius:4px;margin-right:8px;background:#fff;color:#0b0d10}\\n#lw-root .thead,#lw-root .row{display:flex}\\n#lw-root .thead{height:44px;flex:none;align-items:center;margin-top:10px;font-size:17px;color:#ffffff;font-weight:700;\\n  text-transform:uppercase;letter-spacing:2px;padding:0 14px 0 22px;background:#1d4594;border-radius:4px}\\n#lw-root .rows{flex:1;display:flex;flex-direction:column;padding-top:8px}\\n#lw-root .row{position:relative;flex:none;margin-bottom:3px;background:#123170;border-radius:4px;align-items:center;\\n  padding:8px 14px 8px 22px;overflow:hidden}\\n#lw-root .row:nth-child(even){background:#0e2a62}\\n#lw-root .row.wait .c2{opacity:.85}\\n#lw-root .row.wait .cls b{color:#dce6f7}\\n#lw-root .row .edge{position:absolute;left:0;top:0;bottom:0;width:9px}\\n#lw-root .c1{width:24%;padding-right:8px}\\n#lw-root .c2{width:34%;padding-right:8px}\\n#lw-root .c3{width:21%}\\n#lw-root .c4{width:21%}\\n#lw-root .cls b{display:block;font-size:31px;font-weight:800;letter-spacing:-.3px;line-height:1.1}\\n#lw-root .cls small{display:block;font-size:18px;color:#a9bde0;margin-top:5px;letter-spacing:.5px}\\n#lw-root .blk{display:flex;align-items:center;flex-wrap:wrap;margin:3px 0}\\n#lw-root .pill{display:inline-flex;align-items:center;font-size:30px;font-weight:800;\\n  padding:2px 14px 3px 10px;border-radius:9px;white-space:nowrap;line-height:1.15}\\n#lw-root .pill svg{width:25px;height:25px;margin-right:8px;flex:none}\\n#lw-root .tg{display:inline-block;font-size:17px;font-weight:800;letter-spacing:1px;padding:3px 7px;border-radius:5px;\\n  background:#fff;color:#0b0d10;margin-right:8px;line-height:1.1}\\n#lw-root .tg.u{background:transparent;color:#dce6f7;box-shadow:inset 0 0 0 2px #dce6f7;margin-left:8px;margin-right:0}\\n#lw-root .until{font-size:18px;color:#a9bde0;margin-left:10px;white-space:nowrap}\\n#lw-root .starts{font-size:19px;color:#CDCF01;font-weight:700;margin-left:10px;white-space:nowrap}\\n#lw-root .row .c3,#lw-root .row .c4{border-left:1px solid #2a4a8a;padding-left:12px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}\\n#lw-root .nx{margin:3px 0;line-height:1.15}\\n#lw-root .nx .h{font-size:18px;color:#CDCF01;font-weight:700}\\n#lw-root .nx .a{font-size:23px;font-weight:700;color:#ffffff;white-space:nowrap}\\n#lw-root .nx .o{font-size:20px;color:#a9bde0;font-style:italic}\\n#lw-root .nx .tg{font-size:14px;padding:2px 5px;margin-right:6px}\\n#lw-root .free{color:#a9bde0;font-size:20px}\\n#lw-root .rows{overflow:hidden}\\n#lw-root .rows.dense .row{padding-top:5px;padding-bottom:5px;margin-bottom:5px}\\n#lw-root .rows.dense .cls b{font-size:29px}\\n#lw-root .rows.dense .cls small{font-size:16px;margin-top:2px}\\n#lw-root .rows.dense .pill{font-size:28px;padding:1px 12px 2px 9px}\\n#lw-root .rows.dense .pill svg{width:21px;height:21px}\\n#lw-root .rows.dense .blk{margin:1px 0}\\n#lw-root .rows.dense .nx .a{font-size:20px}\\n#lw-root .rows.dense .nx .h,#lw-root .rows.dense .until,#lw-root .rows.dense .starts,#lw-root .rows.dense .free{font-size:17px}\\n#lw-root .rows.dense .tg{font-size:15px;padding:2px 6px}\\n#lw-root .rows.dense2 .cls b{font-size:25px}\\n#lw-root .rows.dense2 .pill{font-size:25px}\\n#lw-root .rows.dense2 .nx .a{font-size:20px}\\n#lw-root .rows.dense3 .row{padding-top:3px;padding-bottom:3px;margin-bottom:3px}\\n#lw-root .rows.dense3 .cls b{font-size:23px}\\n#lw-root .rows.dense3 .cls small{font-size:14px;margin-top:0}\\n#lw-root .rows.dense3 .pill{font-size:23px;padding:0 10px 1px 8px}\\n#lw-root .rows.dense3 .pill svg{width:18px;height:18px;margin-right:6px}\\n#lw-root .rows.dense3 .blk,#lw-root .rows.dense3 .nx{margin:0}\\n#lw-root .rows.dense3 .nx .a{font-size:18px}\\n#lw-root .rows.dense3 .nx .h,#lw-root .rows.dense3 .until,#lw-root .rows.dense3 .starts,#lw-root .rows.dense3 .free{font-size:15px}\\n#lw-root .rows.dense3 .tg{font-size:13px;padding:1px 5px}\\n#lw-root .done{flex:none;margin-top:8px;font-size:19px;color:#a9bde0}\\n#lw-root .done b{color:#dce6f7;font-weight:600}\\n#lw-root .enter{-webkit-animation:enter .6s ease both;animation:enter .6s ease both}\\n@-webkit-keyframes enter{from{opacity:0}to{opacity:1}}\\n@keyframes enter{from{opacity:0}to{opacity:1}}\\n#lw-root .empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}\\n#lw-root .empty .bars{height:90px;margin:0 0 40px}\\n#lw-root .empty .bars span{width:16px;margin-right:10px}\\n#lw-root .empty h1{font-size:76px;font-weight:800;line-height:1.1}\\n#lw-root .empty p{font-size:32px;color:#a9bde0;margin-top:20px}\\n#lw-root #lw-urgent{display:none;position:absolute;left:32px;right:32px;top:24px;bottom:16px;background:#d32f2f;\\n  border-radius:20px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 50px}\\n#lw-root #lw-urgent .tag{display:flex;align-items:center;font-size:36px;font-weight:800;letter-spacing:8px;background:#fff;\\n  color:#d32f2f;padding:10px 26px;border-radius:12px;-webkit-animation:pulse 1.6s ease-in-out infinite;animation:pulse 1.6s ease-in-out infinite}\\n#lw-root #lw-urgent .tag svg{width:38px;height:38px;margin-right:12px}\\n#lw-root #lw-urgent .txt{font-size:84px;font-weight:800;line-height:1.12;margin-top:50px}\\n@-webkit-keyframes pulse{50%{opacity:.4}}\\n@keyframes pulse{50%{opacity:.4}}\\n#lw-root footer{height:154px;flex:none;display:flex;background:#061634;border-top:2px solid #2a4a8a}\\n#lw-root .flabel{width:150px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#A600B0}\\n#lw-root .flabel svg{width:44px;height:44px}\\n#lw-root .flabel b{font-size:20px;font-weight:800;letter-spacing:3px;margin-top:8px}\\n#lw-root .msg{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 34px}\\n#lw-root #lw-msgTxt{font-size:38px;font-weight:600;line-height:1.2;max-height:92px;overflow:hidden}\\n#lw-root #lw-msgDots{margin-top:12px;height:8px}\\n#lw-root #lw-msgDots i{display:inline-block;width:8px;height:8px;border-radius:4px;background:#2a4a8a;margin-right:8px}\\n#lw-root #lw-msgDots i.on{width:30px;background:#CDCF01}\\n#lw-root #lw-stale{position:absolute;right:10px;bottom:10px;width:14px;height:14px;border-radius:50%;background:#d32f2f;display:none}\\n<\/style>\n<p>\\n<\/p>\n<div id=\\\"lw-app\\\">\\n  <\/p>\n<header>\\n    <\/p>\n<div class=\\\"stripe\\\"><i style=\\\"background:#A600B0\\\"><\/i><i style=\\\"background:#7AC4C2\\\"><\/i><i style=\\\"background:#CDCF01\\\"><\/i><i style=\\\"background:#1B6E0E\\\"><\/i><\/div>\n<p>\\n    <\/p>\n<div class=\\\"tbox\\\">\\n      <\/p>\n<div class=\\\"clock num\\\" id=\\\"lw-clock\\\"><\/div>\n<p>\\n      <\/p>\n<div class=\\\"date\\\" id=\\\"lw-date\\\"><\/div>\n<p>\\n    <\/p><\/div>\n<p>\\n    <\/p>\n<div class=\\\"rbox\\\">\\n      <\/p>\n<div class=\\\"brand\\\">\n<div class=\\\"bars\\\"><span style=\\\"background:#A600B0;height:100%\\\"><\/span><span style=\\\"background:#7AC4C2;height:80%\\\"><\/span><span style=\\\"background:#CDCF01;height:60%\\\"><\/span><span style=\\\"background:#1B6E0E;height:40%\\\"><\/span><\/div>\n<p><b>CO.VER.FO.P.<\/b><\/div>\n<p>\\n      <\/p>\n<div class=\\\"meteo\\\" id=\\\"lw-meteo\\\"><span id=\\\"lw-micon\\\"><\/span><span class=\\\"t num\\\" id=\\\"lw-mtemp\\\"><\/span><span class=\\\"d\\\" id=\\\"lw-mdesc\\\"><\/span><\/div>\n<p>\\n    <\/p><\/div>\n<p>\\n  <\/header>\n<p>\\n\\n  <main>\\n    <\/p>\n<div id=\\\"lw-page\\\"><\/div>\n<p>\\n    <\/p>\n<div id=\\\"lw-urgent\\\">\n<div class=\\\"tag\\\"><svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2.6\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M12 3 2 21h20L12 3z\\\"\/><path d=\\\"M12 10v5\\\"\/><path d=\\\"M12 18h.01\\\"\/><\/svg>AVVISO<\/div>\n<div class=\\\"txt\\\" id=\\\"lw-urgentTxt\\\"><\/div>\n<\/div>\n<p>\\n  <\/main>\\n\\n  <\/p>\n<footer>\\n    <\/p>\n<div class=\\\"flabel\\\"><svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M3 11v2a1 1 0 0 0 1 1h3l5 4V6L7 10H4a1 1 0 0 0-1 1z\\\"\/><path d=\\\"M16 9a4 4 0 0 1 0 6\\\"\/><path d=\\\"M19 6a8 8 0 0 1 0 12\\\"\/><\/svg><b>AVVISI<\/b><\/div>\n<p>\\n    <\/p>\n<div class=\\\"msg\\\">\n<div id=\\\"lw-msgTxt\\\"><\/div>\n<div id=\\\"lw-msgDots\\\"><\/div>\n<\/div>\n<p>\\n  <\/footer>\n<p>\\n  <\/p>\n<div id=\\\"lw-stale\\\"><\/div>\n<p>\\n<\/p><\/div>\n<p>\\n<\/p><\/div>\n<p>\\n<script>window.LEDWALL_URL = 'https:\/\/script.google.com\/macros\/s\/AKfycby7VeiQrmdmaOiYVvcLbW7z5vWNBVoG3uotu-EShcJFLI5wmrTHCT1bWWy37JJbmAE\/exec';<\/script>\\n<script>(function(){var c='KGZ1bmN0aW9uKCl7Cid1c2Ugc3RyaWN0JzsKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIENPTkZJR1VSQVpJT05FCiAgIERBVEFfVVJMOiBpbmRpcml6em8gZGVsbG8gc2NyaXB0IEdvb2dsZSBjaGUgcmVzdGl0dWlzY2UgaWwgcGlhbm8gZGVsIGdpb3Juby4KICAgICAgICAgICAgIFZ1b3RvID0gdXNhIGkgZGF0aSBkaSBwcm92YSBxdWkgc290dG8gKHByb3NwZXR0byByZWFsZSBkZWwgMjYvMTAvMjAyNikuCiAgIFJPVEFURTogICAwIHNlIEFuZHJvaWQgbGF2b3JhIGdpYScgaW4gdmVydGljYWxlOyA5MCBvIC05MCBzZSBpbCBwYW5uZWxsbyBlJyBtb250YXRvIHJ1b3RhdG8uCiAgIFBhcmFtZXRyaSBkYSBpbmRpcml6em86ID9yb3Q9OTAgID9vcmE9MTA6MzAgKHNvbG8gcGVyIHByb3ZlKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIENPTkZJRyA9IHsKICBEQVRBX1VSTDogKHdpbmRvdy5MRURXQUxMX1VSTCB8fCAnJyksCiAgUk9UQVRFOiAwLAogIFJFRlJFU0hfREFUQV9TRUM6IDYwLAogIE1TR19TRUM6IDgsCiAgUkVMT0FEX0hPVVJTOiA2LAogIExBVDogNDUuMzIwMiwgTE9OOiA4LjQxODUsCiAgRkFLRV9USU1FOiBudWxsCn07CihmdW5jdGlvbigpewogIHZhciBxID0gbG9jYXRpb24uc2VhcmNoLCBtOwogIGlmICgobSA9IHEubWF0Y2goL1s\/Jl1yb3Q9KC0\/XGQrKS8pKSkgQ09ORklHLlJPVEFURSA9ICttWzFdOwogIGlmICgobSA9IHEubWF0Y2goL1s\/Jl1vcmE9KFxkezEsMn0pWzouXShcZHsyfSkvKSkpIENPTkZJRy5GQUtFX1RJTUUgPSAoK21bMV0pKjYwICsgKCttWzJdKTsKfSkoKTsKCi8qIC0tLS0tLS0tLS0tLS0tLS0gQURBVFRBTUVOVE8gQUxMTyBTQ0hFUk1PIC0tLS0tLS0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gZml0KCl7CiAgdmFyIHcgPSB3aW5kb3cuaW5uZXJXaWR0aCwgaCA9IHdpbmRvdy5pbm5lckhlaWdodCwgciA9IENPTkZJRy5ST1RBVEU7CiAgdmFyIHNpZGUgPSAocj09PTkwIHx8IHI9PT0tOTApLCBXID0gc2lkZSA\/IGggOiB3LCBIID0gc2lkZSA\/IHcgOiBoOwogIHZhciBzID0gTWF0aC5taW4oVy8xMDgwLCBILzE5MjApLCB0ID0gKHIgPyAncm90YXRlKCcrcisnZGVnKSAnIDogJycpICsgJ3NjYWxlKCcrcysnKSc7CiAgLyogcmllbXBpZSBsbyBzcGF6aW8gYXZhbnphdG8gYWxsYXJnYW5kbyBsYSB0ZWxhIChtYXggKzIwJSksIHNlbnphIGRlZm9ybWFyZSAqLwogIHZhciBhdyA9IE1hdGgucm91bmQoTWF0aC5taW4oVy9zLCAxMDgwKjEuMikpLCBhaCA9IE1hdGgucm91bmQoTWF0aC5taW4oSC9zLCAxOTIwKjEuMikpOwogIHZhciBhcHAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctYXBwJyk7CiAgYXBwLnN0eWxlLndpZHRoID0gYXcrJ3B4JzsgYXBwLnN0eWxlLmhlaWdodCA9IGFoKydweCc7CiAgYXBwLnN0eWxlLm1hcmdpbkxlZnQgPSAoLWF3LzIpKydweCc7IGFwcC5zdHlsZS5tYXJnaW5Ub3AgPSAoLWFoLzIpKydweCc7CiAgYXBwLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9IHQ7IGFwcC5zdHlsZS50cmFuc2Zvcm0gPSB0OwogIGlmICh0eXBlb2YgZml0Um93cyA9PT0gJ2Z1bmN0aW9uJykgdHJ5eyBmaXRSb3dzKCk7IH1jYXRjaChlKXt9Cn0Kd2luZG93Lm9ucmVzaXplID0gZml0OwovKiB1biB0b2NjbyBvIHVuIGNsaWMgc3VsbG8gc2NoZXJtbyBwb3J0YSBpbCBicm93c2VyIGEgdHV0dG8gc2NoZXJtbyAoc2UgaWwgYnJvd3NlciBsbyBjb25zZW50ZSkgKi8KZnVuY3Rpb24gZ29GdWxsKCl7CiAgdmFyIGQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIGYgPSBkLnJlcXVlc3RGdWxsc2NyZWVuIHx8IGQud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4gfHwgZC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbjsKICBpZiAoZiAmJiAhKGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50IHx8IGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50KSkgdHJ5eyBmLmNhbGwoZCk7IH1jYXRjaChlKXt9Cn0KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBnb0Z1bGwpOyBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdvRnVsbCk7CgovKiAtLS0tLS0tLS0tLS0tLS0tIERBVEkgREkgUFJPVkE6IHByb3NwZXR0byByZWFsZSBkaSBsdW5lZGknIDI2IG90dG9icmUgMjAyNiAtLS0tLS0tLS0tLS0tLS0tCiAgIFN0ZXNzYSBmb3JtYSBjaGUgcmVzdGl0dWlyYScgbG8gc2NyaXB0IGRlbCBmb2dsaW8gR29vZ2xlLgogICBjb3JzaTogICBvcmRpbmUgZGkgdmlzdWFsaXp6YXppb25lLCBwaWFubyBkaSByaWZlcmltZW50bywgY29sb3JlIGRlbGxhIGZhbWlnbGlhCiAgIGF1bGU6ICAgIHRpcG8gZSBjb2xvcmUgKGxhYm9yYXRvcmlvIHRlY25pY28gLyBpbmZvcm1hdGljYSBhdWxhIDQgLyBpbmZvcm1hdGljYSBhdWxhIDEwIC8gcGFsZXN0cmEpCiAgIGJsb2NjaGk6IHVuYSByaWdhIHBlciBvZ25pIHBlcm1hbmVuemEgaW4gYXVsYTsgZ3J1cHBvIEEvSSBwZXIgbGUgYXJ0aWNvbGF0ZTsgdW5pdGEgPSAodSkgICAgICAgICovCmZ1bmN0aW9uIGRlbW9EYXRhKCl7CiAgdmFyIGQgPSBuZXcgRGF0ZSgpOwogIHZhciBvZ2dpID0gZC5nZXRGdWxsWWVhcigpKyctJytwYWQoZC5nZXRNb250aCgpKzEpKyctJytwYWQoZC5nZXREYXRlKCkpOwogIHJldHVybiB7CiAgICBkYXRhOiBvZ2dpLAogICAgdGlwaTogWwogICAgICB7dGlwbzonTGFib3JhdG9yaW8gdGVjbmljbycsIGNvbG9yZTonI0IyNEJEMCd9LAogICAgICB7dGlwbzonTGFiLiBpbmZvcm1hdGljbyBhdWxhIDQnLCBjb2xvcmU6JyMzQjYzRjAnfSwKICAgICAge3RpcG86J0xhYi4gaW5mb3JtYXRpY28gYXVsYSAxMCcsIGNvbG9yZTonIzZGQjNFMCd9LAogICAgICB7dGlwbzonUGFsZXN0cmEnLCBjb2xvcmU6JyNFNTQ4NEQnfQogICAgXSwKICAgIGF1bGU6IFsKICAgICAge2F1bGE6J2F1bGEgMTInLCB0aXBvOidMYWJvcmF0b3JpbyB0ZWNuaWNvJ30sCiAgICAgIHthdWxhOidhdWxhIDE1JywgdGlwbzonTGFib3JhdG9yaW8gdGVjbmljbyd9LAogICAgICB7YXVsYTonYXVsYSAxNicsIHRpcG86J0xhYm9yYXRvcmlvIHRlY25pY28nfSwKICAgICAge2F1bGE6J2F1bGEgMTcnLCB0aXBvOidMYWJvcmF0b3JpbyB0ZWNuaWNvJ30sCiAgICAgIHthdWxhOidhdWxhIDQnLCAgdGlwbzonTGFiLiBpbmZvcm1hdGljbyBhdWxhIDQnfSwKICAgICAge2F1bGE6J2F1bGEgMTAnLCB0aXBvOidMYWIuIGluZm9ybWF0aWNvIGF1bGEgMTAnfSwKICAgICAge2F1bGE6J3BhbGVzdHJhJyx0aXBvOidQYWxlc3RyYSd9CiAgICBdLAogICAgY29yc2k6IFsKICAgICAge2NvcnNvOidPRS9PSSAxwqonLCBwaWFubzonUGlhbm8gdGVycmEnLCBjb2xvcmU6JyM3QUM0QzInfSwKICAgICAge2NvcnNvOidPRS9PSSAywqonLCBwaWFubzonUGlhbm8gcHJpbW8nLCBjb2xvcmU6JyM3QUM0QzInfSwKICAgICAge2NvcnNvOidPRS9PSSAzwqonLCBwaWFubzonUGlhbm8gdGVycmEnLCBjb2xvcmU6JyM3QUM0QzInfSwKICAgICAge2NvcnNvOidURS9USSA0wqonLCBwaWFubzonUGlhbm8gcHJpbW8nLCBjb2xvcmU6JyM3QUM0QzInfSwKICAgICAge2NvcnNvOidPQiAxwqonLCAgICBwaWFubzonUHJpbW8gcGlhbm8nLCBjb2xvcmU6JyNBNjAwQjAnfSwKICAgICAge2NvcnNvOidPQiAywqonLCAgICBwaWFubzonQWxhIG51b3ZhJywgICBjb2xvcmU6JyNBNjAwQjAnfSwKICAgICAge2NvcnNvOidPQiAzwqonLCAgICBwaWFubzonQWxhIG51b3ZhJywgICBjb2xvcmU6JyNBNjAwQjAnfSwKICAgICAge2NvcnNvOidUVEUgNMKqJywgICBwaWFubzonQWxhIG51b3ZhJywgICBjb2xvcmU6JyNBNjAwQjAnfSwKICAgICAge2NvcnNvOidPU1MgcHJpbW8gY29yc28nLCAgIHBpYW5vOidQcmltbyBwaWFubycsIGNvbG9yZTonIzFCNkUwRSd9LAogICAgICB7Y29yc286J09TUyBzZWNvbmRvIGNvcnNvJywgcGlhbm86J1ByaW1vIHBpYW5vJywgY29sb3JlOicjMUI2RTBFJ30sCiAgICAgIHtjb3JzbzonQWdnLiBpbmZvcm1hdGljbyBHT0wnLCBwaWFubzonUGlhbm8gdGVycmEnLCBjb2xvcmU6JyNDRENGMDEnfSwKICAgICAge2NvcnNvOidTb21tZWxpZXIgMcKwIGxpdmVsbG8nLCBwaWFubzonQWxhIG51b3ZhJywgY29sb3JlOicjQ0RDRjAxJ30sCiAgICAgIHtjb3JzbzonQ29sbG9xdWkgaW4gcHJlc2VuemEnLCBwaWFubzonUHJpbW8gcGlhbm8nLCBjb2xvcmU6JyM4YTk2YTAnfQogICAgXSwKICAgIGJsb2NjaGk6IFsKICAgICAge2NvcnNvOidPRS9PSSAxwqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTA6MDAnLCBhdWxhOidhdWxhIDE0JywgZ3J1cHBvOidBJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgMcKqJywgaW5pemlvOicwODowMCcsIGZpbmU6JzEwOjAwJywgYXVsYTonYXVsYSA0JywgIGdydXBwbzonSSd9LAogICAgICB7Y29yc286J09FL09JIDHCqicsIGluaXppbzonMTA6MDAnLCBmaW5lOicxNDowMCcsIGF1bGE6J2F1bGEgMTQnfSwKICAgICAge2NvcnNvOidPRS9PSSAywqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDYnfSwKICAgICAge2NvcnNvOidPRS9PSSAywqonLCBpbml6aW86JzExOjAwJywgZmluZTonMTQ6MDAnLCBhdWxhOidhdWxhIDE2JywgZ3J1cHBvOidBJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgMsKqJywgaW5pemlvOicxMTowMCcsIGZpbmU6JzE0OjAwJywgYXVsYTonYXVsYSA0JywgIGdydXBwbzonSSd9LAogICAgICB7Y29yc286J09FL09JIDPCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMDowMCcsIGF1bGE6J2F1bGEgMTMnLCB1bml0YTp0cnVlfSwKICAgICAge2NvcnNvOidPRS9PSSAzwqonLCBpbml6aW86JzEwOjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDEzJywgZ3J1cHBvOidBJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgM8KqJywgaW5pemlvOicxMDowMCcsIGZpbmU6JzExOjAwJywgYXVsYTonYXVsYSA0JywgIGdydXBwbzonSSd9LAogICAgICB7Y29yc286J09FL09JIDPCqicsIGluaXppbzonMTE6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgMTMnLCB1bml0YTp0cnVlfSwKICAgICAge2NvcnNvOidURS9USSA0wqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDknLCAgZ3J1cHBvOidBJ30sCiAgICAgIHtjb3JzbzonVEUvVEkgNMKqJywgaW5pemlvOicwODowMCcsIGZpbmU6JzExOjAwJywgYXVsYTonYXVsYSAxMCcsIGdydXBwbzonSSd9LAogICAgICB7Y29yc286J1RFL1RJIDTCqicsIGluaXppbzonMTE6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgOScsICB1bml0YTp0cnVlfSwKICAgICAge2NvcnNvOidPQiAxwqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTA6MDAnLCBhdWxhOidhdWxhIDEyJ30sCiAgICAgIHtjb3JzbzonT0IgMcKqJywgaW5pemlvOicxMDowMCcsIGZpbmU6JzEzOjAwJywgYXVsYTonYXVsYSAxJ30sCiAgICAgIHtjb3JzbzonT0IgMcKqJywgaW5pemlvOicxNDowMCcsIGZpbmU6JzE2OjAwJywgYXVsYToncGFsZXN0cmEnfSwKICAgICAge2NvcnNvOidPQiAywqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTM6MDAnLCBhdWxhOidhdWxhIDIxJ30sCiAgICAgIHtjb3JzbzonT0IgMsKqJywgaW5pemlvOicxNDowMCcsIGZpbmU6JzE2OjAwJywgYXVsYToncGFsZXN0cmEnfSwKICAgICAge2NvcnNvOidPQiAzwqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTM6MDAnLCBhdWxhOidhdWxhIDIyJ30sCiAgICAgIHtjb3JzbzonVFRFIDTCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgMjAnfSwKICAgICAge2NvcnNvOidPU1MgcHJpbW8gY29yc28nLCBpbml6aW86JzA5OjAwJywgZmluZTonMTM6MDAnLCBhdWxhOidhdWxhIDUnfSwKICAgICAge2NvcnNvOidPU1MgcHJpbW8gY29yc28nLCBpbml6aW86JzE0OjMwJywgZmluZTonMTY6MzAnLCBhdWxhOidhdWxhIDEnfSwKICAgICAge2NvcnNvOidPU1Mgc2Vjb25kbyBjb3JzbycsIGluaXppbzonMTQ6MzAnLCBmaW5lOicxODozMCcsIGF1bGE6J2F1bGEgNSd9LAogICAgICB7Y29yc286J0FnZy4gaW5mb3JtYXRpY28gR09MJywgaW5pemlvOicxNDozMCcsIGZpbmU6JzE4OjMwJywgYXVsYTonYXVsYSAxMCd9LAogICAgICB7Y29yc286J1NvbW1lbGllciAxwrAgbGl2ZWxsbycsIGluaXppbzonMjA6MDAnLCBmaW5lOicyMzowMCcsIGF1bGE6J2F1bGEgMjEnfSwKICAgICAge2NvcnNvOidDb2xsb3F1aSBpbiBwcmVzZW56YScsIGluaXppbzonJywgZmluZTonJywgYXVsYTonYXVsYSBkb2NlbnRpJ30KICAgIF0sCiAgICBhdnZpc2k6IFsKICAgICAge3Rlc3RvOidCZW52ZW51dGkgYSBDby5WZXIuRm8uUC4nfQogICAgICAvLyBlc2VtcGlvOiB7dGVzdG86J09wZW4gRGF5IHNhYmF0byAxNSBub3ZlbWJyZScsIGRhbDonMjAyNi0xMC0yNicsIGFsOicyMDI2LTExLTE1J30KICAgICAgLy8gdXJnZW50ZTogIHt0ZXN0bzonLi4uJywgdXJnZW50ZTp0cnVlfQogICAgXQogIH07Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0gVVRJTElUQScgLS0tLS0tLS0tLS0tLS0tLSAqLwp2YXIgR0lPUk5JID0gWydkb21lbmljYScsJ2x1bmVkw6wnLCdtYXJ0ZWTDrCcsJ21lcmNvbGVkw6wnLCdnaW92ZWTDrCcsJ3ZlbmVyZMOsJywnc2FiYXRvJ107CnZhciBNRVNJID0gWydnZW5uYWlvJywnZmViYnJhaW8nLCdtYXJ6bycsJ2FwcmlsZScsJ21hZ2dpbycsJ2dpdWdubycsJ2x1Z2xpbycsJ2Fnb3N0bycsJ3NldHRlbWJyZScsJ290dG9icmUnLCdub3ZlbWJyZScsJ2RpY2VtYnJlJ107CmZ1bmN0aW9uICQoaWQpeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyB9CmZ1bmN0aW9uIHBhZChuKXsgcmV0dXJuIChuPDEwPycwJzonJykrbjsgfQpmdW5jdGlvbiBlc2Mocyl7IHJldHVybiBTdHJpbmcocz09bnVsbD8nJzpzKS5yZXBsYWNlKC9bJjw+Il0vZyxmdW5jdGlvbihjKXtyZXR1cm4geycmJzonJmFtcDsnLCc8JzonJmx0OycsJz4nOicmZ3Q7JywnIic6JyZxdW90Oyd9W2NdO30pOyB9CmZ1bmN0aW9uIHRvTWluKGhobW0peyB2YXIgcD1TdHJpbmcoaGhtbSkucmVwbGFjZSgnLicsJzonKS5yZXBsYWNlKCcsJywnOicpLnNwbGl0KCc6Jyk7IHJldHVybiAoK3BbMF0pKjYwICsgKCsocFsxXXx8MCkpOyB9CmZ1bmN0aW9uIGZtdChoaG1tKXsgdmFyIG0gPSB0b01pbihoaG1tKTsgcmV0dXJuIHBhZChNYXRoLmZsb29yKG0vNjApKSsnOicrcGFkKG0lNjApOyB9CmZ1bmN0aW9uIGlzb0RheShkKXsgcmV0dXJuIGQuZ2V0RnVsbFllYXIoKSsnLScrcGFkKGQuZ2V0TW9udGgoKSsxKSsnLScrcGFkKGQuZ2V0RGF0ZSgpKTsgfQpmdW5jdGlvbiByZ2JhKGhleCwgYSl7IHZhciBoPVN0cmluZyhoZXgpLnJlcGxhY2UoJyMnLCcnKTsgcmV0dXJuICdyZ2JhKCcrcGFyc2VJbnQoaC5zdWJzdHIoMCwyKSwxNikrJywnK3BhcnNlSW50KGguc3Vic3RyKDIsMiksMTYpKycsJytwYXJzZUludChoLnN1YnN0cig0LDIpLDE2KSsnLCcrYSsnKSc7IH0KZnVuY3Rpb24gb25Db2xvcihoZXgpeyB2YXIgaD1TdHJpbmcoaGV4KS5yZXBsYWNlKCcjJywnJyk7IHZhciByPXBhcnNlSW50KGguc3Vic3RyKDAsMiksMTYpLGc9cGFyc2VJbnQoaC5zdWJzdHIoMiwyKSwxNiksYj1wYXJzZUludChoLnN1YnN0cig0LDIpLDE2KTsgcmV0dXJuIChyKjI5OStnKjU4NytiKjExNCkvMTAwMD4xNTA\/JyMwYjBkMTAnOicjZmZmZmZmJzsgfQpmdW5jdGlvbiBjYXAocyl7IHMgPSBTdHJpbmcocyk7IHJldHVybiBzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Muc2xpY2UoMSk7IH0KdmFyIElDT05fUElOID0gJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIxcy03LTYuMi03LTExLjVBNyA3IDAgMCAxIDE5IDkuNUMxOSAxNC44IDEyIDIxIDEyIDIxeiIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iOS41IiByPSIyLjUiLz48L3N2Zz4nOwp2YXIgSUNPTl9MQUIgPSAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOSAzaDYiLz48cGF0aCBkPSJNMTAgM3Y2TDQuNSAxOC41QTEuNyAxLjcgMCAwIDAgNiAyMWgxMmExLjcgMS43IDAgMCAwIDEuNS0yLjVMMTQgOVYzIi8+PHBhdGggZD0iTTcgMTVoMTAiLz48L3N2Zz4nOwp2YXIgR1JVUFBJID0ge0E6J0F1dG9tYXppb25lJywgSTonSW5mb3JtYXRpY2EnfTsKCi8qIC0tLS0tLS0tLS0tLS0tLS0gT1JPTE9HSU8gLS0tLS0tLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiB0aWNrQ2xvY2soKXsKICB2YXIgZCA9IG5ldyBEYXRlKCk7CiAgJCgnbHctY2xvY2snKS5pbm5lckhUTUwgPSBwYWQoZC5nZXRIb3VycygpKSsnPHNwYW4gY2xhc3M9ImNvbCcrKGQuZ2V0U2Vjb25kcygpJTI\/JyBvZmYnOicnKSsnIj46PC9zcGFuPicrcGFkKGQuZ2V0TWludXRlcygpKSsnPHNtYWxsPicrcGFkKGQuZ2V0U2Vjb25kcygpKSsnPC9zbWFsbD4nOwogICQoJ2x3LWRhdGUnKS50ZXh0Q29udGVudCA9IGNhcChHSU9STklbZC5nZXREYXkoKV0pKycgJytkLmdldERhdGUoKSsnICcrTUVTSVtkLmdldE1vbnRoKCldKycgJytkLmdldEZ1bGxZZWFyKCk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0gTUVURU8gKE9wZW4tTWV0ZW8pIC0tLS0tLS0tLS0tLS0tLS0gKi8KdmFyIFNWR19BID0gJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+JzsKdmFyIElDT05TID0gewogIHNvbGU6IFNWR19BKyc8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0Ii8+PHBhdGggZD0iTTEyIDJ2Mk0xMiAyMHYyTTQuOSA0LjlsMS40IDEuNE0xNy43IDE3LjdsMS40IDEuNE0yIDEyaDJNMjAgMTJoMk00LjkgMTkuMWwxLjQtMS40TTE3LjcgNi4zbDEuNC0xLjQiLz48L3N2Zz4nLAogIHBhcno6IFNWR19BKyc8cGF0aCBkPSJNOCAzdjEuNU0zLjggNC44bDEgMU0yIDloMS41Ii8+PHBhdGggZD0iTTUuNiAxMS41QTMuNSAzLjUgMCAxIDEgMTEuNSA3Ii8+PHBhdGggZD0iTTggMjBoOWE0IDQgMCAwIDAgMC04IDUuNSA1LjUgMCAwIDAtMTAuNCAxLjdBMy4yIDMuMiAwIDAgMCA4IDIweiIvPjwvc3ZnPicsCiAgbnViZTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDE5aDEwYTQuNSA0LjUgMCAwIDAgLjUtOUE2IDYgMCAwIDAgNiAxMS41IDMuOCAzLjggMCAwIDAgNyAxOXoiLz48L3N2Zz4nLAogIG5lYmJpYTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDEzaDEwYTQgNCAwIDAgMCAuNC04QTUuNSA1LjUgMCAwIDAgNi42IDcgMyAzIDAgMCAwIDcgMTN6Ii8+PHBhdGggZD0iTTQgMTdoMTZNNiAyMWgxMiIvPjwvc3ZnPicsCiAgcGlvZ2dpYTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDE1aDEwYTQgNCAwIDAgMCAuNC04QTUuNSA1LjUgMCAwIDAgNi42IDkgMyAzIDAgMCAwIDcgMTV6Ii8+PHBhdGggZD0iTTggMThsLTEgM00xMiAxOGwtMSAzTTE2IDE4bC0xIDMiLz48L3N2Zz4nLAogIG5ldmU6IFNWR19BKyc8cGF0aCBkPSJNNyAxNWgxMGE0IDQgMCAwIDAgLjQtOEE1LjUgNS41IDAgMCAwIDYuNiA5IDMgMyAwIDAgMCA3IDE1eiIvPjxwYXRoIGQ9Ik04IDE5aC4wMU0xMiAxOWguMDFNMTYgMTloLjAxTTEwIDIyaC4wMU0xNCAyMmguMDEiLz48L3N2Zz4nLAogIHRlbXBvcmFsZTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDE1aDEwYTQgNCAwIDAgMCAuNC04QTUuNSA1LjUgMCAwIDAgNi42IDkgMyAzIDAgMCAwIDcgMTV6Ii8+PHBhdGggZD0iTTEyLjUgMTZsLTIgMy41aDNsLTIgMy41Ii8+PC9zdmc+Jwp9OwpmdW5jdGlvbiBtZXRlb0luZm8oYyl7CiAgaWYgKGM9PT0wKSByZXR1cm4gWydzb2xlJywnU2VyZW5vJ107CiAgaWYgKGM8PTIpIHJldHVybiBbJ3BhcnonLCdQb2NvIG51dm9sb3NvJ107CiAgaWYgKGM9PT0zKSByZXR1cm4gWydudWJlJywnQ29wZXJ0byddOwogIGlmIChjPT09NDV8fGM9PT00OCkgcmV0dXJuIFsnbmViYmlhJywnTmViYmlhJ107CiAgaWYgKGM+PTUxJiZjPD01NykgcmV0dXJuIFsncGlvZ2dpYScsJ1Bpb3ZpZ2dpbmUnXTsKICBpZiAoKGM+PTYxJiZjPD02Nyl8fChjPj04MCYmYzw9ODIpKSByZXR1cm4gWydwaW9nZ2lhJywgYz49ODA\/J1JvdmVzY2knOidQaW9nZ2lhJ107CiAgaWYgKChjPj03MSYmYzw9NzcpfHxjPT09ODV8fGM9PT04NikgcmV0dXJuIFsnbmV2ZScsJ05ldmUnXTsKICBpZiAoYz49OTUpIHJldHVybiBbJ3RlbXBvcmFsZScsJ1RlbXBvcmFsZSddOwogIHJldHVybiBbJ251YmUnLCcnXTsKfQpmdW5jdGlvbiBsb2FkTWV0ZW8oKXsKICBnZXQoJ2h0dHBzOi8vYXBpLm9wZW4tbWV0ZW8uY29tL3YxL2ZvcmVjYXN0P2xhdGl0dWRlPScrQ09ORklHLkxBVCsnJmxvbmdpdHVkZT0nK0NPTkZJRy5MT04rJyZjdXJyZW50PXRlbXBlcmF0dXJlXzJtLHdlYXRoZXJfY29kZSZ0aW1lem9uZT1FdXJvcGUlMkZSb21lJywgZnVuY3Rpb24oail7CiAgICB0cnl7IHZhciBjPWouY3VycmVudCwgbWk9bWV0ZW9JbmZvKGMud2VhdGhlcl9jb2RlKTsKICAgICAgJCgnbHctbWljb24nKS5pbm5lckhUTUwgPSBJQ09OU1ttaVswXV07ICQoJ2x3LW10ZW1wJykudGV4dENvbnRlbnQgPSBNYXRoLnJvdW5kKGMudGVtcGVyYXR1cmVfMm0pKyfCsCc7CiAgICAgICQoJ2x3LW1kZXNjJykudGV4dENvbnRlbnQgPSAnVmVyY2VsbGkgwrcgJyttaVsxXTsgJCgnbHctbWV0ZW8nKS5zdHlsZS5kaXNwbGF5PSdmbGV4JzsKICAgIH1jYXRjaChlKXt9CiAgfSk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0gUkVURSBFIERBVEkgLS0tLS0tLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiBnZXQodXJsLCBvaywga28pewogIHZhciB4ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHgub3BlbignR0VUJywgdXJsLCB0cnVlKTsgeC50aW1lb3V0ID0gMTUwMDA7CiAgeC5vbmxvYWQgPSBmdW5jdGlvbigpeyBpZiAoeC5zdGF0dXM+PTIwMCAmJiB4LnN0YXR1czwzMDApeyB0cnl7IG9rKEpTT04ucGFyc2UoeC5yZXNwb25zZVRleHQpKTsgfWNhdGNoKGUpeyBpZihrbykga28oKTsgfSB9IGVsc2UgaWYoa28pIGtvKCk7IH07CiAgeC5vbmVycm9yID0geC5vbnRpbWVvdXQgPSBmdW5jdGlvbigpeyBpZihrbykga28oKTsgfTsgeC5zZW5kKCk7Cn0KdmFyIERBVEEgPSBudWxsOwpmdW5jdGlvbiBsb2FkRGF0YSgpewogIGlmICghQ09ORklHLkRBVEFfVVJMKXsgREFUQSA9IGRlbW9EYXRhKCk7IHJlbmRlcigpOyByZXR1cm47IH0KICBnZXQoQ09ORklHLkRBVEFfVVJMKyhDT05GSUcuREFUQV9VUkwuaW5kZXhPZignPycpPDA\/Jz8nOicmJykrJ3Q9JytEYXRlLm5vdygpLCBmdW5jdGlvbihqKXsKICAgIERBVEEgPSBqOyAkKCdsdy1zdGFsZScpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdHJ5eyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGVkd2FsbF9kYXRhJywgSlNPTi5zdHJpbmdpZnkoaikpOyB9Y2F0Y2goZSl7fQogICAgdHJ5eyByZW5kZXIoKTsgfWNhdGNoKGUpeyBzaG93RXJyKGUpOyB9CiAgfSwgZnVuY3Rpb24oKXsKICAgIGlmICghREFUQSl7IHRyeXsgREFUQSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xlZHdhbGxfZGF0YScpKTsgfWNhdGNoKGUpe30gfQogICAgJCgnbHctc3RhbGUnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7IGlmIChEQVRBKSByZW5kZXIoKTsKICB9KTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBMT0dJQ0E6IGFkZXNzbyAvIHBvaSBwZXIgb2duaSBjb3JzbyAtLS0tLS0tLS0tLS0tLS0tICovCmZ1bmN0aW9uIG5vd01pbigpewogIGlmIChDT05GSUcuRkFLRV9USU1FICE9PSBudWxsKSByZXR1cm4gQ09ORklHLkZBS0VfVElNRTsKICB2YXIgZCA9IG5ldyBEYXRlKCk7IHJldHVybiBkLmdldEhvdXJzKCkqNjAgKyBkLmdldE1pbnV0ZXMoKTsKfQpmdW5jdGlvbiByb29tSW5mbyhhdWxhKXsKICB2YXIgYSA9IFN0cmluZyhhdWxhKS50b0xvd2VyQ2FzZSgpLCBhdSA9IERBVEEuYXVsZSB8fCBbXSwgdGkgPSBEQVRBLnRpcGkgfHwgW10sIGksIHQgPSBudWxsOwogIGZvciAoaT0wO2k8YXUubGVuZ3RoO2krKykgaWYgKFN0cmluZyhhdVtpXS5hdWxhKS50b0xvd2VyQ2FzZSgpPT09YSkgdCA9IGF1W2ldLnRpcG87CiAgaWYgKCF0KSByZXR1cm4gbnVsbDsKICBmb3IgKGk9MDtpPHRpLmxlbmd0aDtpKyspIGlmICh0aVtpXS50aXBvPT09dCkgcmV0dXJuIHRpW2ldOwogIHJldHVybiBudWxsOwp9CmZ1bmN0aW9uIHBpbGxIdG1sKGIpewogIHZhciByaSA9IHJvb21JbmZvKGIuYXVsYSksIHN0LCBpY29uOwogIGlmIChyaSl7IHN0ID0gJ2JhY2tncm91bmQ6JytyaS5jb2xvcmUrJztjb2xvcjonK29uQ29sb3IocmkuY29sb3JlKTsgaWNvbiA9IElDT05fTEFCOyB9CiAgZWxzZSB7IHN0ID0gJ2JhY2tncm91bmQ6I0NEQ0YwMTtjb2xvcjojMGIxYTMzJzsgaWNvbiA9IElDT05fUElOOyB9CiAgcmV0dXJuICc8c3BhbiBjbGFzcz0icGlsbCIgc3R5bGU9Iicrc3QrJyI+JytpY29uK2VzYyhjYXAoYi5hdWxhKSkrJzwvc3Bhbj4nOwp9CmZ1bmN0aW9uIHRhZ0h0bWwoYil7IHJldHVybiBiLmdydXBwbyA\/ICc8c3BhbiBjbGFzcz0idGciIHRpdGxlPSInKyhHUlVQUElbYi5ncnVwcG9dfHwnJykrJyI+Jytlc2MoR1JVUFBJW2IuZ3J1cHBvXSA\/IEdSVVBQSVtiLmdydXBwb10uc2xpY2UoMCwzKS50b1VwcGVyQ2FzZSgpIDogYi5ncnVwcG8pKyc8L3NwYW4+JyA6ICcnOyB9CmZ1bmN0aW9uIHNvcnRHKGEsYil7IHJldHVybiAoYS5ncnVwcG98fCcnKS5sb2NhbGVDb21wYXJlKGIuZ3J1cHBvfHwnJyk7IH0KCi8qIFBlciBvZ25pIGNvcnNvOiBsYSBzaXR1YXppb25lIGFkZXNzbyBlIGkgZHVlIGNhbWJpIHN1Y2Nlc3NpdmkgKHVuIGNhbWJpbyA9IHVuIG1vbWVudG8gaW4gY3VpCiAgIGwnaW5zaWVtZSBkZWxsZSBhdWxlIG9jY3VwYXRlIGRhbCBjb3JzbyBjYW1iaWE6IGluaXppbywgZmluZSwgc3Bvc3RhbWVudG8gZGkgdW4gZ3J1cHBvKS4gKi8KZnVuY3Rpb24gYlN0YXJ0KGIpeyByZXR1cm4gYi5pbml6aW8gPyB0b01pbihiLmluaXppbykgOiAwOyB9CmZ1bmN0aW9uIGJFbmQoYil7IHJldHVybiBiLmZpbmUgPyB0b01pbihiLmZpbmUpIDogMjQqNjA7IH0KZnVuY3Rpb24gc3RhdGVBdChibCwgdCl7CiAgdmFyIG91dCA9IFtdOwogIGZvciAodmFyIGk9MDtpPGJsLmxlbmd0aDtpKyspIGlmIChiU3RhcnQoYmxbaV0pIDw9IHQgJiYgdCA8IGJFbmQoYmxbaV0pKSBvdXQucHVzaChibFtpXSk7CiAgb3V0LnNvcnQoc29ydEcpOyByZXR1cm4gb3V0Owp9CmZ1bmN0aW9uIHN0S2V5KHN0KXsgdmFyIGs9Jyc7IGZvciAodmFyIGk9MDtpPHN0Lmxlbmd0aDtpKyspIGsgKz0gc3RbaV0uYXVsYSsnfCcrKHN0W2ldLmdydXBwb3x8JycpKyd8Jysoc3RbaV0udW5pdGE\/MTowKSsnOyc7IHJldHVybiBrOyB9CmZ1bmN0aW9uIHBsYW5Gb3IoY29yc28sIG5vdyl7CiAgdmFyIGJsID0gW10sIGksIGFsbCA9IERBVEEuYmxvY2NoaTsKICBmb3IgKGk9MDtpPGFsbC5sZW5ndGg7aSsrKSBpZiAoYWxsW2ldLmNvcnNvPT09Y29yc28pIGJsLnB1c2goYWxsW2ldKTsKICBpZiAoIWJsLmxlbmd0aCkgcmV0dXJuIG51bGw7CiAgdmFyIGxhc3RFbmQgPSAwLCB0aW1lcyA9IFtdOwogIGZvciAoaT0wO2k8YmwubGVuZ3RoO2krKyl7CiAgICB2YXIgcyA9IGJTdGFydChibFtpXSksIGUgPSBiRW5kKGJsW2ldKTsKICAgIGlmIChlID4gbGFzdEVuZCkgbGFzdEVuZCA9IGU7CiAgICBpZiAocyA+IG5vdyAmJiB0aW1lcy5pbmRleE9mKHMpIDwgMCkgdGltZXMucHVzaChzKTsKICAgIGlmIChlID4gbm93ICYmIGUgPCAyNCo2MCAmJiB0aW1lcy5pbmRleE9mKGUpIDwgMCkgdGltZXMucHVzaChlKTsKICB9CiAgdGltZXMuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gYS1iOyB9KTsKICB2YXIgY3VyID0gc3RhdGVBdChibCwgbm93KSwgc2VxID0gW10sIHByZXYgPSBzdEtleShjdXIpOwogIGZvciAoaT0wO2k8dGltZXMubGVuZ3RoICYmIHNlcS5sZW5ndGg8MztpKyspewogICAgdmFyIHN0ID0gc3RhdGVBdChibCwgdGltZXNbaV0pLCBrID0gc3RLZXkoc3QpOwogICAgaWYgKGsgPT09IHByZXYpIGNvbnRpbnVlOwogICAgdmFyIGxhdGVyID0gZmFsc2U7CiAgICBmb3IgKHZhciBqPTA7ajxibC5sZW5ndGg7aisrKSBpZiAoYlN0YXJ0KGJsW2pdKSA+IHRpbWVzW2ldKSBsYXRlciA9IHRydWU7CiAgICBzZXEucHVzaCh7dDp0aW1lc1tpXSwgc3Q6c3QsIGxhdGVyOmxhdGVyfSk7CiAgICBwcmV2ID0gazsKICB9CiAgcmV0dXJuIHtjdXI6Y3VyLCBzZXE6c2VxLCBmaW5pc2hlZDogbm93ID49IGxhc3RFbmR9Owp9CmZ1bmN0aW9uIGhtKG0peyByZXR1cm4gcGFkKE1hdGguZmxvb3IobS82MCkpKyc6JytwYWQobSU2MCk7IH0KZnVuY3Rpb24gbmV4dENlbGwoc3RlcCl7CiAgaWYgKCFzdGVwKSByZXR1cm4gJzxzcGFuIGNsYXNzPSJmcmVlIj7igJQ8L3NwYW4+JzsKICB2YXIgaCA9ICc8ZGl2IGNsYXNzPSJueCI+PGRpdiBjbGFzcz0iaCBudW0iPicrKHN0ZXAuc3QubGVuZ3RoID8gJ2RhbGxlICcgOiAnYWxsZSAnKStobShzdGVwLnQpKyc8L2Rpdj4nOwogIGlmICghc3RlcC5zdC5sZW5ndGgpIHJldHVybiBoICsgJzxkaXYgY2xhc3M9Im8iPicrKHN0ZXAubGF0ZXIgPyAncGF1c2EnIDogJ3VzY2l0YScpKyc8L2Rpdj48L2Rpdj4nOwogIGZvciAodmFyIGk9MDtpPHN0ZXAuc3QubGVuZ3RoO2krKyl7CiAgICB2YXIgbiA9IHN0ZXAuc3RbaV0sIHJuID0gcm9vbUluZm8obi5hdWxhKTsKICAgIGggKz0gJzxkaXYgY2xhc3M9ImEiPicrdGFnSHRtbChuKSsnPHNwYW4gc3R5bGU9ImNvbG9yOicrKHJuID8gcm4uY29sb3JlIDogJyNDRENGMDEnKSsnIj4nK2VzYyhjYXAobi5hdWxhKSkrJzwvc3Bhbj4nKyhuLnVuaXRhPycgwrcgdW5pdGEnOicnKSsnPC9kaXY+JzsKICB9CiAgcmV0dXJuIGggKyAnPC9kaXY+JzsKfQoKdmFyIGxhc3RIdG1sID0gJyc7CmZ1bmN0aW9uIHJlbmRlcigpewogIGlmICghREFUQSkgcmV0dXJuOwogIHJlbmRlck1lc3NhZ2VzKCk7CiAgdmFyIG5vdyA9IG5vd01pbigpLCBlbCA9ICQoJ2x3LXBhZ2UnKSwgY29yc2kgPSBEQVRBLmNvcnNpIHx8IFtdLCByb3dzID0gW10sIGZpbmlzaGVkID0gW107CiAgZm9yICh2YXIgYz0wO2M8Y29yc2kubGVuZ3RoO2MrKyl7CiAgICB2YXIgcCA9IHBsYW5Gb3IoY29yc2lbY10uY29yc28sIG5vdyk7CiAgICBpZiAoIXApIGNvbnRpbnVlOwogICAgaWYgKHAuZmluaXNoZWQpeyBmaW5pc2hlZC5wdXNoKGNvcnNpW2NdLmNvcnNvKTsgY29udGludWU7IH0KICAgIHJvd3MucHVzaCh7Yzpjb3JzaVtjXSwgcDpwfSk7CiAgfQogIC8qIGkgY29sbG9xdWkgc3Rhbm5vIHNlbXByZSBpbiBmb25kbywgYW5jaGUgZG9wbyBsZSBwcmVub3RhemlvbmkgZGFsIHNpdG8gKi8KICB2YXIgdGFpbCA9IFtdLCBoZWFkID0gW107CiAgZm9yICh2YXIgcT0wO3E8cm93cy5sZW5ndGg7cSsrKSAoL15jb2xsb3F1aS9pLnRlc3Qocm93c1txXS5jLmNvcnNvKSA\/IHRhaWwgOiBoZWFkKS5wdXNoKHJvd3NbcV0pOwogIHJvd3MgPSBoZWFkLmNvbmNhdCh0YWlsKTsKCiAgdmFyIGg7CiAgaWYgKCFyb3dzLmxlbmd0aCl7CiAgICBoID0gJzxkaXYgY2xhc3M9ImVtcHR5Ij48ZGl2IGNsYXNzPSJiYXJzIj48c3BhbiBzdHlsZT0iYmFja2dyb3VuZDojQTYwMEIwO2hlaWdodDoxMDAlIj48L3NwYW4+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6IzdBQzRDMjtoZWlnaHQ6ODAlIj48L3NwYW4+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6I0NEQ0YwMTtoZWlnaHQ6NjAlIj48L3NwYW4+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6IzFCNkUwRTtoZWlnaHQ6NDAlIj48L3NwYW4+PC9kaXY+JwogICAgICArICc8aDE+JysoZmluaXNoZWQubGVuZ3RoID8gJ0F0dGl2aXTDoCBkaSBvZ2dpPGJyPmNvbmNsdXNlJyA6ICdPZ2dpIG5lc3N1bmE8YnI+YXR0aXZpdMOgIGluIGF1bGEnKSsnPC9oMT48cD5CdW9uYSBnaW9ybmF0YSBkYSBDby5WZXIuRm8uUC48L3A+PC9kaXY+JzsKICB9IGVsc2UgewogICAgdmFyIGxnID0gJzxzcGFuPjxpIHN0eWxlPSJiYWNrZ3JvdW5kOiNDRENGMDEiPjwvaT5BdWxhPC9zcGFuPicsIHRpID0gREFUQS50aXBpIHx8IFtdOwogICAgZm9yICh2YXIgdD0wO3Q8dGkubGVuZ3RoO3QrKykgbGcgKz0gJzxzcGFuPjxpIHN0eWxlPSJiYWNrZ3JvdW5kOicrdGlbdF0uY29sb3JlKyciPjwvaT4nK2VzYyh0aVt0XS50aXBvKSsnPC9zcGFuPic7CiAgICBsZyArPSAnPHNwYW4+PGIgY2xhc3M9InRnIj5BVVQ8L2I+QXV0b21hemlvbmU8L3NwYW4+PHNwYW4+PGIgY2xhc3M9InRnIj5JTkY8L2I+SW5mb3JtYXRpY2E8L3NwYW4+JzsKCiAgICBoID0gJzxkaXYgY2xhc3M9InR0bCI+PGgxPkF1bGUgZGVsIGdpb3JubzwvaDE+PGRpdiBjbGFzcz0ic3ViIj4nK3Jvd3MubGVuZ3RoKycgY29yc2kgaW4gc2VkZTwvZGl2PjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0ibGVnZW5kIj4nK2xnKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9InRoZWFkIj48ZGl2IGNsYXNzPSJjMSI+Q29yc288L2Rpdj48ZGl2IGNsYXNzPSJjMiI+QWRlc3NvPC9kaXY+PGRpdiBjbGFzcz0iYzMiPlBvaTwvZGl2PjxkaXYgY2xhc3M9ImM0Ij5Eb3BvIGFuY29yYTwvZGl2PjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0icm93cyI+JzsKICAgIGZvciAodmFyIHI9MDtyPHJvd3MubGVuZ3RoO3IrKyl7CiAgICAgIHZhciBjbyA9IHJvd3Nbcl0uYywgcGwgPSByb3dzW3JdLnAsIGNvbCA9IGNvLmNvbG9yZSB8fCAnIzdBQzRDMicsIGksIG1pZCA9ICcnLCBzZXEgPSBwbC5zZXE7CiAgICAgIHZhciB3YWl0aW5nID0gIXBsLmN1ci5sZW5ndGg7CiAgICAgIHZhciBzaG93biA9IHdhaXRpbmcgPyBzZXFbMF0uc3QgOiBwbC5jdXI7CiAgICAgIGZvciAoaT0wO2k8c2hvd24ubGVuZ3RoO2krKyl7CiAgICAgICAgdmFyIGIgPSBzaG93bltpXSwgbGFzdCA9IChpPT09c2hvd24ubGVuZ3RoLTEpOwogICAgICAgIG1pZCArPSAnPGRpdiBjbGFzcz0iYmxrIj4nK3RhZ0h0bWwoYikrcGlsbEh0bWwoYikrKGIudW5pdGE\/JzxzcGFuIGNsYXNzPSJ0ZyB1Ij5VTklUQTwvc3Bhbj4nOicnKTsKICAgICAgICBpZiAobGFzdCl7CiAgICAgICAgICBpZiAod2FpdGluZykgbWlkICs9ICc8c3BhbiBjbGFzcz0ic3RhcnRzIG51bSI+ZGFsbGUgJytobShzZXFbMF0udCkrJzwvc3Bhbj4nOwogICAgICAgICAgZWxzZSBpZiAoc2VxLmxlbmd0aCkgbWlkICs9ICc8c3BhbiBjbGFzcz0idW50aWwgbnVtIj5maW5vIGFsbGUgJytobShzZXFbMF0udCkrJzwvc3Bhbj4nOwogICAgICAgIH0KICAgICAgICBtaWQgKz0gJzwvZGl2Pic7CiAgICAgIH0KICAgICAgdmFyIHMxID0gd2FpdGluZyA\/IHNlcVsxXSA6IHNlcVswXSwgczIgPSB3YWl0aW5nID8gc2VxWzJdIDogc2VxWzFdOwogICAgICB2YXIgYzMgPSBzMSA\/IG5leHRDZWxsKHMxKSA6IChwbC5jdXIubGVuZ3RoICYmICFwbC5jdXJbcGwuY3VyLmxlbmd0aC0xXS5maW5lID8gJzxzcGFuIGNsYXNzPSJmcmVlIj50dXR0byBpbCBnaW9ybm88L3NwYW4+JyA6ICc8c3BhbiBjbGFzcz0iZnJlZSI+4oCUPC9zcGFuPicpOwogICAgICB2YXIgYzQgPSBzMSA\/IG5leHRDZWxsKHMyKSA6ICc8c3BhbiBjbGFzcz0iZnJlZSI+PC9zcGFuPic7CiAgICAgIGggKz0gJzxkaXYgY2xhc3M9InJvdycrKHdhaXRpbmc\/JyB3YWl0JzonJykrJyI+PGRpdiBjbGFzcz0iZWRnZSIgc3R5bGU9ImJhY2tncm91bmQ6Jytjb2wrJyI+PC9kaXY+JwogICAgICAgICArICc8ZGl2IGNsYXNzPSJjMSBjbHMiPjxiPicrZXNjKGNvLmNvcnNvKSsnPC9iPjxzbWFsbD4nK2VzYyhjby5waWFub3x8JycpKyc8L3NtYWxsPjwvZGl2PicKICAgICAgICAgKyAnPGRpdiBjbGFzcz0iYzIiPicrbWlkKyc8L2Rpdj4nCiAgICAgICAgICsgJzxkaXYgY2xhc3M9ImMzIj4nK2MzKyc8L2Rpdj4nCiAgICAgICAgICsgJzxkaXYgY2xhc3M9ImM0Ij4nK2M0Kyc8L2Rpdj48L2Rpdj4nOwogICAgfQogICAgaCArPSAnPC9kaXY+JzsKICAgIGlmIChmaW5pc2hlZC5sZW5ndGgpIGggKz0gJzxkaXYgY2xhc3M9ImRvbmUiPkNvbmNsdXNlIG9nZ2k6IDxiPicrZXNjKGZpbmlzaGVkLmpvaW4oJyDCtyAnKSkrJzwvYj48L2Rpdj4nOwogIH0KICBpZiAoaCA9PT0gbGFzdEh0bWwpIHJldHVybjsKICBlbC5jbGFzc05hbWUgPSBsYXN0SHRtbCA\/ICcnIDogJ2VudGVyJzsKICBsYXN0SHRtbCA9IGg7CiAgZWwuaW5uZXJIVE1MID0gaDsKICBmaXRSb3dzKCk7Cn0KLyogcmlnaGUgYWx0ZSBxdWFudG8gc2VydmU6IHNlIGF2YW56YW5vIHNwYXppbyBzaSBhbGxhcmdhbm8sIGZpbm8gYSB1biBtYXNzaW1vICovCmZ1bmN0aW9uIGZpdFJvd3MoKXsKICB2YXIgYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2x3LXJvb3QgLnJvd3MnKTsgaWYgKCFib3gpIHJldHVybjsKICB2YXIgcm93cyA9IGJveC5jaGlsZHJlbiwgbiA9IHJvd3MubGVuZ3RoLCBpLCB1c2VkID0gMDsKICBmb3IgKGk9MDtpPG47aSsrKSByb3dzW2ldLnN0eWxlLm1pbkhlaWdodCA9ICcnOwogIGJveC5jbGFzc05hbWUgPSAncm93cyc7CiAgaWYgKGJveC5zY3JvbGxIZWlnaHQgPiBib3guY2xpZW50SGVpZ2h0ICsgMikgYm94LmNsYXNzTmFtZSA9ICdyb3dzIGRlbnNlJzsKICBpZiAoYm94LnNjcm9sbEhlaWdodCA+IGJveC5jbGllbnRIZWlnaHQgKyAyKSBib3guY2xhc3NOYW1lID0gJ3Jvd3MgZGVuc2UgZGVuc2UyJzsKICBpZiAoYm94LnNjcm9sbEhlaWdodCA+IGJveC5jbGllbnRIZWlnaHQgKyAyKSBib3guY2xhc3NOYW1lID0gJ3Jvd3MgZGVuc2UgZGVuc2UyIGRlbnNlMyc7CiAgZm9yIChpPTA7aTxuO2krKykgdXNlZCArPSByb3dzW2ldLm9mZnNldEhlaWdodCArIDc7CiAgdmFyIGZyZWUgPSBib3guY2xpZW50SGVpZ2h0IC0gOCAtIHVzZWQ7CiAgaWYgKGZyZWUgPiAwKXsKICAgIHZhciBhZGQgPSBNYXRoLm1pbihmcmVlIC8gbiwgNDApOwogICAgZm9yIChpPTA7aTxuO2krKykgcm93c1tpXS5zdHlsZS5taW5IZWlnaHQgPSAocm93c1tpXS5vZmZzZXRIZWlnaHQgKyBhZGQpICsgJ3B4JzsKICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0gQVZWSVNJIC0tLS0tLS0tLS0tLS0tLS0gKi8KdmFyIG1zZ0lkeCA9IDA7CmZ1bmN0aW9uIGFjdGl2ZU1lc3NhZ2VzKCl7CiAgdmFyIHRvZGF5ID0gaXNvRGF5KG5ldyBEYXRlKCkpLCBvdXQgPSB7bm9ybTpbXSwgdXJnOltdfSwgbSA9IChEQVRBICYmIERBVEEuYXZ2aXNpKSB8fCBbXTsKICBmb3IgKHZhciBpPTA7aTxtLmxlbmd0aDtpKyspewogICAgaWYgKG1baV0uZGFsICYmIHRvZGF5IDwgbVtpXS5kYWwpIGNvbnRpbnVlOwogICAgaWYgKG1baV0uYWwgJiYgdG9kYXkgPiBtW2ldLmFsKSBjb250aW51ZTsKICAgIChtW2ldLnVyZ2VudGUgPyBvdXQudXJnIDogb3V0Lm5vcm0pLnB1c2gobVtpXS50ZXN0byk7CiAgfQogIHJldHVybiBvdXQ7Cn0KZnVuY3Rpb24gcmVuZGVyTWVzc2FnZXMoc3RlcCl7CiAgdmFyIGFtID0gYWN0aXZlTWVzc2FnZXMoKTsKICBpZiAoYW0udXJnLmxlbmd0aCl7ICQoJ2x3LXVyZ2VudFR4dCcpLnRleHRDb250ZW50ID0gYW0udXJnLmpvaW4oJyDCtyAnKTsgJCgnbHctdXJnZW50Jykuc3R5bGUuZGlzcGxheT0nZmxleCc7IH0KICBlbHNlICQoJ2x3LXVyZ2VudCcpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogIHZhciBsaXN0ID0gYW0ubm9ybS5sZW5ndGggPyBhbS5ub3JtIDogWydCZW52ZW51dGkgYSBDby5WZXIuRm8uUC4nXTsKICBpZiAoc3RlcCkgbXNnSWR4Kys7CiAgdmFyIGkgPSBtc2dJZHggJSBsaXN0Lmxlbmd0aCwgdCA9ICQoJ2x3LW1zZ1R4dCcpOwogIGlmIChzdGVwICYmIGxpc3QubGVuZ3RoPjEpeyB0LmNsYXNzTmFtZT0nJzsgdm9pZCB0Lm9mZnNldFdpZHRoOyB0LmNsYXNzTmFtZT0nZW50ZXInOyB9CiAgdC50ZXh0Q29udGVudCA9IGxpc3RbaV07CiAgdmFyIGQ9Jyc7IGZvciAodmFyIGo9MDtqPGxpc3QubGVuZ3RoO2orKykgZCArPSAnPGkgY2xhc3M9IicrKGo9PT1pPydvbic6JycpKyciPjwvaT4nOwogICQoJ2x3LW1zZ0RvdHMnKS5pbm5lckhUTUwgPSBsaXN0Lmxlbmd0aD4xID8gZCA6ICcnOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tIEFWVklPIC0tLS0tLS0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gYm9vdCgpewpmaXQoKTsKdGlja0Nsb2NrKCk7IHNldEludGVydmFsKHRpY2tDbG9jaywgMTAwMCk7CmxvYWRNZXRlbygpOyBzZXRJbnRlcnZhbChsb2FkTWV0ZW8sIDMwKjYwKjEwMDApOwpsb2FkRGF0YSgpOyBzZXRJbnRlcnZhbChsb2FkRGF0YSwgQ09ORklHLlJFRlJFU0hfREFUQV9TRUMqMTAwMCk7CnNldEludGVydmFsKGZ1bmN0aW9uKCl7IGlmIChEQVRBKSByZW5kZXIoKTsgfSwgMjAwMDApOwpzZXRJbnRlcnZhbChmdW5jdGlvbigpeyBpZiAoREFUQSkgcmVuZGVyTWVzc2FnZXModHJ1ZSk7IH0sIENPTkZJRy5NU0dfU0VDKjEwMDApOwovKiByaWNhcmljYSBwZXJpb2RpY2EsIG1hIG5vbiBzZSBlJyBhIHR1dHRvIHNjaGVybW8gKHJpY2FyaWNhcmUgZmFyZWJiZSByaWNvbXBhcmlyZSBsYSBiYXJyYSBkZWwgYnJvd3NlcikgKi8Kc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsKICBpZiAoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQgfHwgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVsZW1lbnQpIHJldHVybjsKICBsb2NhdGlvbi5yZWxvYWQoKTsKfSwgQ09ORklHLlJFTE9BRF9IT1VSUyozNjAwKjEwMDApOwp9CmZ1bmN0aW9uIHN0YXJ0KCl7CiAgdHJ5ewogICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctcm9vdCcpOwogICAgaWYgKHJvb3QgJiYgcm9vdC5wYXJlbnROb2RlICE9PSBkb2N1bWVudC5ib2R5KSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpOwogICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOwogICAgYm9vdCgpOwogIH1jYXRjaChlKXsgc2hvd0VycihlKTsgfQp9CmZ1bmN0aW9uIHNob3dFcnIoZSl7CiAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctYXBwJyk7IGlmICghYSkgcmV0dXJuOwogIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgZC5zdHlsZS5jc3NUZXh0PSdwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjIwcHg7cmlnaHQ6MjBweDtib3R0b206MTcwcHg7YmFja2dyb3VuZDojZDMyZjJmO2NvbG9yOiNmZmY7Zm9udDoyNHB4IEFyaWFsO3BhZGRpbmc6MTZweDtib3JkZXItcmFkaXVzOjEwcHg7ei1pbmRleDo5JzsKICBkLnRleHRDb250ZW50ID0gJ0Vycm9yZSBsZWR3YWxsOiAnICsgKGUgJiYgZS5tZXNzYWdlID8gZS5tZXNzYWdlIDogZSk7CiAgYS5hcHBlbmRDaGlsZChkKTsKfQppZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc3RhcnQpOyBlbHNlIHN0YXJ0KCk7Cn0pKCk7';new Function(decodeURIComponent(escape(window.atob(c))))();})();<\/script>\\n&#8221;}}]}]}]}],&#8221;version&#8221;:&#8221;5.0.52&#8243;} &#8211;><\/p>\n","protected":false},"excerpt":{"rendered":"<p>CO.VER.FO.P. AVVISO AVVISI<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","footnotes":""},"class_list":["post-15771","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/pages\/15771","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/comments?post=15771"}],"version-history":[{"count":9,"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/pages\/15771\/revisions"}],"predecessor-version":[{"id":15929,"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/pages\/15771\/revisions\/15929"}],"wp:attachment":[{"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/media?parent=15771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}