3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · qwe?styles.css?5?3
{
    "qwe?styles.css?5?3": "base64:dGlvbiIpO3JldHVybiB0fX0sSDBwYjpmdW5jdGlvbih0LGUsbil7bigibWE5SSIpLG4oIjA3ZDciKSxuKCJwTk1PIiksbigidGpaTSIpLG4oIjRCcmYiKSxuKCIzSTFSIiksbigiNytrZCIpLG4oIjBvdWciKSxuKCJLaHNTIiksbigianQyRiIpLG4oImdPQ2IiKSxuKCJhNTduIiksbigiR1h2ZCIpLG4oIkkxR3ciKSxuKCJnWElLIiksbigibEVvdSIpLG4oImdiaVQiKSxuKCJJOXhqIiksbigiREVmdSIpO3ZhciByPW4oIlFvOWwiKTt0LmV4cG9ydHM9ci5TeW1ib2x9LEhBdU06ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7cmV0dXJuIHR9fSxISDRvOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ0aUtwIikoIml0ZXJhdG9yIiksbz0hMTt0cnl7dmFyIGk9MCxhPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFpKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtvPSEwfX07YVtyXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKGEsKGZ1bmN0aW9uKCl7dGhyb3cgMn0pKX1jYXRjaChjKXt9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIWUmJiFvKXJldHVybiExO3ZhciBuPSExO3RyeXt2YXIgaT17fTtpW3JdPWZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTpuPSEwfX19fSx0KGkpfWNhdGNoKGMpe31yZXR1cm4gbn19LEhSeFU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oImc2di8iKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6IW8sc2hhbTohb30se2RlZmluZVByb3BlcnRpZXM6bigiTitnMCIpfSl9LEhZQUY6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYobnVsbD09dCl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrdCk7cmV0dXJuIHR9fSxIZDVmOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwRGt5Iiksbz1uKCJ0aUtwIikoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIXIoKGZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuKGUuY29uc3RydWN0b3I9e30pW29dPWZ1bmN0aW9uKCl7cmV0dXJue2ZvbzoxfX0sMSE9PWVbdF0oQm9vbGVhbikuZm9vfSkpfX0sSHNIQTpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgubG9nO3QuZXhwb3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbih0KXtyZXR1cm4odD0rdCk+LTFlLTgmJnQ8MWUtOD90LXQqdC8yOm4oMSt0KX19LCJJK2ViIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMm9SbyIpLG89bigiQnM4ViIpLmYsaT1uKCJYMlUrIiksYT1uKCJidXNFIiksYz1uKCJ6azYwIiksdT1uKCI2Sk5xIikscz1uKCJsTXE1Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG4sZixsLHAsaCx2PXQudGFyZ2V0LGQ9dC5nbG9iYWwsZz10LnN0YXQ7aWYobj1kP3I6Zz9yW3ZdfHxjKHYse30pOihyW3ZdfHx7fSkucHJvdG90eXBlKWZvcihmIGluIGUpe2lmKHA9ZVtmXSxsPXQubm9UYXJnZXRHZXQ/KGg9byhuLGYpKSYmaC52YWx1ZTpuW2ZdLCFzKGQ/Zjp2KyhnPyIuIjoiIyIpK2YsdC5mb3JjZWQpJiZ2b2lkIDAhPT1sKXtpZih0eXBlb2YgcD09dHlwZW9mIGwpY29udGludWU7dShwLGwpfSh0LnNoYW18fGwmJmwuc2hhbSkmJmkocCwic2hhbSIsITApLGEobixmLHAsdCl9fX0sSTFHdzpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJzcGxpdCIpfSxJOHZoOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJwcEdCIiksbz1NYXRoLm1heCxpPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXIodCk7cmV0dXJuIG48MD9vKG4rZSwwKTppKG4sZSl9fSxJOXhqOmZ1bmN0aW9uKHQsZSxuKXtuKCIxRTV6IikoTWF0aCwiTWF0aCIsITApfSxJbVpOOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnbHJrIiksbz1uKCI2Vm9FIiksaT1uKCJVTVNRIiksYT1uKCIrTUx4IiksYz1uKCJOYUZXIiksdT1uKCJtOTJuIikscz1mdW5jdGlvbih0LGUpe3RoaXMuc3RvcHBlZD10LHRoaXMucmVzdWx0PWV9Oyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sZixsKXt2YXIgcCxoLHYsZCxnLHksYj1hKGUsbixmPzI6MSk7aWYobClwPXQ7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YoaD1jKHQpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihvKGgpKXtmb3Iodj0wLGQ9aSh0Lmxlbmd0aCk7ZD52O3YrKylpZigoZz1mP2Iocih5PXRbdl0pWzBdLHlbMV0pOmIodFt2XSkpJiZnIGluc3RhbmNlb2YgcylyZXR1cm4gZztyZXR1cm4gbmV3IHMoITEpfXA9aC5jYWxsKHQpfWZvcig7ISh5PXAubmV4dCgpKS5kb25lOylpZigoZz11KHAsYix5LnZhbHVlLGYpKSYmZyBpbnN0YW5jZW9mIHMpcmV0dXJuIGc7cmV0dXJuIG5ldyBzKCExKX0pLnN0b3A9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzKCEwLHQpfX0sSXhYUjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oImhYcE8iKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjZ1bksiKSgic3RyaWtlIil9LHtzdHJpa2U6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLCJzdHJpa2UiLCIiLCIiKX19KX0sSjMwWDpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6IkFycmF5IixzdGF0OiEwfSx7aXNBcnJheTpuKCI2TFdBIil9KX0sSkJ5ODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieW9SZyIpLG89bigiZURsKyIpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbih0KXtyZXR1cm4gcih0LG8pfX0sSlRKZzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIldqUmIiKSxpPW4oIkhZQUYiKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFuKCJxeFBaIikoImluY2x1ZGVzIil9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4hIX5TdHJpbmcoaSh0aGlzKSkuaW5kZXhPZihvKHQpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sSmV2QTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiNVlPUSIpO3Ioe3RhcmdldDoiTnVtYmVyIixzdGF0OiEwLGZvcmNlZDpOdW1iZXIucGFyc2VJbnQhPW99LHtwYXJzZUludDpvfSl9LEpmQUE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJidXNFIiksbz1uKCJnbHJrIiksaT1uKCIwRGt5IiksYT1uKCJyVzB0IiksYz1SZWdFeHAucHJvdG90eXBlLHU9Yy50b1N0cmluZzsoaSgoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPXUuY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKXx8InRvU3RyaW5nIiE9dS5uYW1lKSYmcihSZWdFeHAucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7dmFyIHQ9byh0aGlzKSxlPVN0cmluZyh0LnNvdXJjZSksbj10LmZsYWdzO3JldHVybiIvIitlKyIvIitTdHJpbmcodm9pZCAwPT09biYmdCBpbnN0YW5jZW9mIFJlZ0V4cCYmISgiZmxhZ3MiaW4gYyk/YS5jYWxsKHQpOm4pfSkse3Vuc2FmZTohMH0pfSxKaVpiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMEdiWSIpLG89bigibS9MOCIpLGk9bigidGlLcCIpLGE9bigiZzZ2LyIpLGM9aSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1yKHQpO2EmJmUmJiFlW2NdJiYoMCxvLmYpKGUsYyx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfX0sS2hzUzpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJtYXRjaCIpfSxLdjlsOmZ1bmN0aW9uKHQsZSxuKXtuKCJUV05zIiksbigiSmZBQSIpLG4oInJCOWoiKSxuKCJVM2Y0IiksbigiUm0xUyIpLG4oIlV4bEMiKSxuKCJoQnlRIiksbigiRW5aeSIpfSxLdkdpOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiTWF0aCIsc3RhdDohMH0se3NpZ246bigiOTBoVyIpfSl9LEt4bGQ6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtpczpuKCJFcDlJIil9KX0sTEtCeDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIlVNU1EiKSxpPW4oIldqUmIiKSxhPW4oIkhZQUYiKSxjPW4oInF4UFoiKSx1PSIiLnN0YXJ0c1dpdGgscz1NYXRoLm1pbjtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFjKCJzdGFydHNXaXRoIil9LHtzdGFydHNXaXRoOmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhhKHRoaXMpKTtpKHQpO3ZhciBuPW8ocyhhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxlLmxlbmd0aCkpLHI9U3RyaW5nKHQpO3JldHVybiB1P3UuY2FsbChlLHIsbik6ZS5zbGljZShuLG4rci5sZW5ndGgpPT09cn19KX0sTFBTUzpmdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpLGE9bigiMm9SbyIpLGM9bigiMERreSIpLHU9bigieHJZSyIpLHM9bigiK01MeCIpLGY9bigiRytSeCIpLGw9bigiekJKNCIpLHA9YS5sb2NhdGlvbixoPWEuc2V0SW1tZWRpYXRlLHY9YS5jbGVhckltbWVkaWF0ZSxkPWEucHJvY2VzcyxnPWEuTWVzc2FnZUNoYW5uZWwseT1hLkRpc3BhdGNoLGI9MCxtPXt9LGs9ZnVuY3Rpb24odCl7aWYobS5oYXNPd25Qcm9wZXJ0eSh0KSl7dmFyIGU9bVt0XTtkZWxldGUgbVt0XSxlKCl9fSxfPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2sodCl9fSx3PWZ1bmN0aW9uKHQpe2sodC5kYXRhKX0seD1mdW5jdGlvbih0KXthLnBvc3RNZXNzYWdlKHQrIiIscC5wcm90b2NvbCsiLy8iK3AuaG9zdCl9O2gmJnZ8fChoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7YXJndW1lbnRzLmxlbmd0aD5uOyllLnB1c2goYXJndW1lbnRzW24rK10pO3JldHVybiBtWysrYl09ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpGdW5jdGlvbih0KSkuYXBwbHkodm9pZCAwLGUpfSxyKGIpLGJ9LHY9ZnVuY3Rpb24odCl7ZGVsZXRlIG1bdF19LCJwcm9jZXNzIj09dShkKT9yPWZ1bmN0aW9uKHQpe2QubmV4dFRpY2soXyh0KSl9OnkmJnkubm93P3I9ZnVuY3Rpb24odCl7eS5ub3coXyh0KSl9Omc/KGk9KG89bmV3IGcpLnBvcnQyLG8ucG9ydDEub25tZXNzYWdlPXcscj1zKGkucG9zdE1lc3NhZ2UsaSwxKSk6IWEuYWRkRXZlbnRMaXN0ZW5lcnx8ImZ1bmN0aW9uIiE9dHlwZW9mIHBvc3RNZXNzYWdlfHxhLmltcG9ydFNjcmlwdHN8fGMoeCk/cj0ib25yZWFkeXN0YXRlY2hhbmdlImluIGwoInNjcmlwdCIpP2Z1bmN0aW9uKHQpe2YuYXBwZW5kQ2hpbGQobCgic2NyaXB0IikpLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2YucmVtb3ZlQ2hpbGQodGhpcyksayh0KX19OmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQoXyh0KSwwKX06KHI9eCxhLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHcsITEpKSksdC5leHBvcnRzPXtzZXQ6aCxjbGVhcjp2fX0sIk4rZzAiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCJtL0w4IiksaT1uKCJnbHJrIiksYT1uKCIzM1doIik7dC5leHBvcnRzPXI/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24odCxlKXtpKHQpO2Zvcih2YXIgbixyPWEoZSksYz1yLmxlbmd0aCx1PTA7Yz51OylvLmYodCxuPXJbdSsrXSxlW25dKTtyZXR1cm4gdH19LE5CQVM6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oImV3dlciKSxhPW4oIjRXT0QiKSxjPW4oIjRYZXQiKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXthKDEpfSkpLHNoYW06IWN9LHtnZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXtyZXR1cm4gYShpKHQpKX19KX0sTmFGVzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiOWQvdCIpLG89bigiUDR5MSIpLGk9bigidGlLcCIpKCJpdGVyYXRvciIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihudWxsIT10KXJldHVybiB0W2ldfHx0WyJAQGl0ZXJhdG9yIl18fG9bcih0KV19fSwiTmJOKyI6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtFUFNJTE9OOk1hdGgucG93KDIsLTUyKX0pfSxPNzQxOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFyKHQpJiZudWxsIT09dCl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyh0KSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIHR9fSxPTTlaOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGVhdDpuKCJFVWphIil9KX0sUDR5MTpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz17fX0sUEtQazpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIlpVZDgiKS5jaGFyQXQsbz1uKCJhZk84IiksaT1uKCJmZEF5IiksYT1vLnNldCxjPW8uZ2V0dGVyRm9yKCJTdHJpbmcgSXRlcmF0b3IiKTtpKFN0cmluZywiU3RyaW5nIiwoZnVuY3Rpb24odCl7YSh0aGlzLHt0eXBlOiJTdHJpbmcgSXRlcmF0b3IiLHN0cmluZzpTdHJpbmcodCksaW5kZXg6MH0pfSksKGZ1bmN0aW9uKCl7dmFyIHQsZT1jKHRoaXMpLG49ZS5zdHJpbmcsbz1lLmluZGV4O3JldHVybiBvPj1uLmxlbmd0aD97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Oih0PXIobixvKSxlLmluZGV4Kz10Lmxlbmd0aCx7dmFsdWU6dCxkb25lOiExfSl9KSl9LFBxT0k6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjkwaFciKSxpPU1hdGguYWJzLGE9TWF0aC5wb3c7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7Y2JydDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0PSt0KSphKGkodCksMS8zKX19KX0sUUZjVDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89TWF0aC5oeXBvdCxpPU1hdGguYWJzLGE9TWF0aC5zcXJ0O3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ISFvJiZvKDEvMCxOYU4pIT09MS8wfSx7aHlwb3Q6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scixvPTAsYz0wLHU9YXJndW1lbnRzLmxlbmd0aCxzPTA7Yzx1OylzPChuPWkoYXJndW1lbnRzW2MrK10pKT8obz1vKihyPXMvbikqcisxLHM9bik6bys9bj4wPyhyPW4vcykqcjpuO3JldHVybiBzPT09MS8wPzEvMDpzKmEobyl9fSl9LFFJcGQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInhyWUsiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIm51bWJlciIhPXR5cGVvZiB0JiYiTnVtYmVyIiE9cih0KSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCBpbnZvY2F0aW9uIik7cmV0dXJuK3R9fSxRTm5wOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1NYXRoLmZsb29yLGk9TWF0aC5sb2csYT1NYXRoLkxPRzJFO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMH0se2NsejMyOmZ1bmN0aW9uKHQpe3JldHVybih0Pj4+PTApPzMxLW8oaSh0Ky41KSphKTozMn19KX0sUVdCbDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIkY4SlIiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6W10uZm9yRWFjaCE9b30se2ZvckVhY2g6b30pfSxRbzlsOmZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9bigiMm9SbyIpfSxSSzN0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwRGt5Iiksbz1uKCJ4cllLIiksaT0iIi5zcGxpdDt0LmV4cG9ydHM9cigoZnVuY3Rpb24oKXtyZXR1cm4hT2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk/ZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyI9PW8odCk/aS5jYWxsKHQsIiIpOk9iamVjdCh0KX06T2JqZWN0fSxSTjZjOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49ci5jb25zb2xlO24mJm4uZXJyb3ImJigxPT09YXJndW1lbnRzLmxlbmd0aD9uLmVycm9yKHQpOm4uZXJyb3IodCxlKSl9fSxSTklzOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ0aUtwIiksbz1uKCJmSE1ZIiksaT1uKCJYMlUrIiksYT1yKCJ1bnNjb3BhYmxlcyIpLGM9QXJyYXkucHJvdG90eXBlO251bGw9PWNbYV0mJmkoYyxhLG8obnVsbCkpLHQuZXhwb3J0cz1mdW5jdGlvbih0KXtjW2FdW3RdPSEwfX0sUk9kUDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiaGgxdiIpLG89bigieHJZSyIpLGk9bigidGlLcCIpKCJtYXRjaCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gcih0KSYmKHZvaWQgMCE9PShlPXRbaV0pPyEhZToiUmVnRXhwIj09byh0KSl9fSxSZnh6OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigidHljUiIpLnNvbWU7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOm4oInN3RkwiKSgic29tZSIpfSx7c29tZTpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxSbTFTOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMTRTbCIpLG89bigiZ2xyayIpLGk9bigiVU1TUSIpLGE9bigiSFlBRiIpLGM9bigiaXFXVyIpLHU9bigiRk1OTSIpO3IoIm1hdGNoIiwxLChmdW5jdGlvbih0LGUsbil7cmV0dXJuW2Z1bmN0aW9uKGUpe3ZhciBuPWEodGhpcykscj1udWxsPT1lP3ZvaWQgMDplW3RdO3JldHVybiB2b2lkIDAhPT1yP3IuY2FsbChlLG4pOm5ldyBSZWdFeHAoZSlbdF0oU3RyaW5nKG4pKX0sZnVuY3Rpb24odCl7dmFyIHI9bihlLHQsdGhpcyk7aWYoci5kb25lKXJldHVybiByLnZhbHVlO3ZhciBhPW8odCkscz1TdHJpbmcodGhpcyk7aWYoIWEuZ2xvYmFsKXJldHVybiB1KGEscyk7dmFyIGY9YS51bmljb2RlO2EubGFzdEluZGV4PTA7Zm9yKHZhciBsLHA9W10saD0wO251bGwhPT0obD11KGEscykpOyl7dmFyIHY9U3RyaW5nKGxbMF0pO3BbaF09diwiIj09PXYmJihhLmxhc3RJbmRleD1jKHMsaShhLmxhc3RJbmRleCksZikpLGgrK31yZXR1cm4gMD09PWg/bnVsbDpwfV19KSl9LFNFQmg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImdscmsiKSxvPW4oIkhBdU0iKSxpPW4oInRpS3AiKSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuLGE9cih0KS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09YXx8bnVsbD09KG49cihhKVtpXSk/ZTpvKG4pfX0sU1RBRTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMERreSIpO3QuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFyKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfSkpfSxTWW9yOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiV0tpSCIpLnRyaW07cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI0SENpIikoInRyaW0iKX0se3RyaW06ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzKX19KX0sVEZQVDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oImhYcE8iKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjZ1bksiKSgic3ViIil9LHtzdWI6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLCJzdWIiLCIiLCIiKX19KX0sVFdOczpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigiMm9SbyIpLGk9bigibE1xNSIpLGE9bigiY1ZZSCIpLGM9bigibS9MOCIpLmYsdT1uKCJKQnk4IikuZixzPW4oIlJPZFAiKSxmPW4oInJXMHQiKSxsPW4oImJ1c0UiKSxwPW4oIjBEa3kiKSxoPW4oIkppWmIiKSx2PW4oInRpS3AiKSgibWF0Y2giKSxkPW8uUmVnRXhwLGc9ZC5wcm90b3R5cGUseT0vYS9nLGI9L2EvZyxtPW5ldyBkKHkpIT09eTtpZihyJiZpKCJSZWdFeHAiLCFtfHxwKChmdW5jdGlvbigpe3JldHVybiBiW3ZdPSExLGQoeSkhPXl8fGQoYik9PWJ8fCIvYS9pIiE9ZCh5LCJpIil9KSkpKXtmb3IodmFyIGs9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzIGluc3RhbmNlb2YgayxyPXModCksbz12b2lkIDA9PT1lO3JldHVybiFuJiZyJiZ0LmNvbnN0cnVjdG9yPT09ayYmbz90OmEobT9uZXcgZChyJiYhbz90LnNvdXJjZTp0LGUpOmQoKHI9dCBpbnN0YW5jZW9mIGspP3Quc291cmNlOnQsciYmbz9mLmNhbGwodCk6ZSksbj90aGlzOmcsayl9LF89ZnVuY3Rpb24odCl7dCBpbiBrfHxjKGssdCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkW3RdfSxzZXQ6ZnVuY3Rpb24oZSl7ZFt0XT1lfX0pfSx3PXUoZCkseD0wO3cubGVuZ3RoPng7KV8od1t4KytdKTtnLmNvbnN0cnVjdG9yPWssay5wcm90b3R5cGU9ZyxsKG8sIlJlZ0V4cCIsayl9aCgiUmVnRXhwIil9LFRXUWI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIi9HcVUiKSxvPW4oIlVNU1EiKSxpPW4oIkk4dmgiKSxhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4sYSl7dmFyIGMsdT1yKGUpLHM9byh1Lmxlbmd0aCksZj1pKGEscyk7aWYodCYmbiE9bil7Zm9yKDtzPmY7KWlmKChjPXVbZisrXSkhPWMpcmV0dXJuITB9ZWxzZSBmb3IoO3M+ZjtmKyspaWYoKHR8fGYgaW4gdSkmJnVbZl09PT1uKXJldHVybiB0fHxmfHwwO3JldHVybiF0JiYtMX19O3QuZXhwb3J0cz17aW5jbHVkZXM6YSghMCksaW5kZXhPZjphKCExKX19LFRlUUY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJ0eWNSIikuZmlsdGVyO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohbigiSGQ1ZiIpKCJmaWx0ZXIiKX0se2ZpbHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxUZlRpOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiK01MeCIpLG89bigiZXd2VyIpLGk9bigibTkybiIpLGE9bigiNlZvRSIpLGM9bigiVU1TUSIpLHU9bigiaEJqTiIpLHM9bigiTmFGVyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxuLGYsbCxwPW8odCksaD0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5LHY9YXJndW1lbnRzLmxlbmd0aCxkPXY+MT9hcmd1bWVudHNbMV06dm9pZCAwLGc9dm9pZCAwIT09ZCx5PTAsYj1zKHApO2lmKGcmJihkPXIoZCx2PjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09Ynx8aD09QXJyYXkmJmEoYikpZm9yKG49bmV3IGgoZT1jKHAubGVuZ3RoKSk7ZT55O3krKyl1KG4seSxnP2QocFt5XSx5KTpwW3ldKTtlbHNlIGZvcihsPWIuY2FsbChwKSxuPW5ldyBoOyEoZj1sLm5leHQoKSkuZG9uZTt5KyspdShuLHksZz9pKGwsZCxbZi52YWx1ZSx5XSwhMCk6Zi52YWx1ZSk7cmV0dXJuIG4ubGVuZ3RoPXksbn19LFRvSnk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJIQXVNIiksaT1uKCJld3ZXIiksYT1uKCIwRGt5IiksYz1uKCJzd0ZMIiksdT1bXS5zb3J0LHM9WzEsMiwzXSxmPWEoKGZ1bmN0aW9uKCl7cy5zb3J0KHZvaWQgMCl9KSksbD1hKChmdW5jdGlvbigpe3Muc29ydChudWxsKX0pKSxwPWMoInNvcnQiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6Znx8IWx8fHB9LHtzb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3UuY2FsbChpKHRoaXMpKTp1LmNhbGwoaSh0aGlzKSxvKHQpKX19KX0sVHNrcTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImJXRmgiKSxvPW4oIlpXYVEiKTt0LmV4cG9ydHM9cigiTWFwIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0pLG8sITApfSxVM2Y0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCJtL0w4IiksaT1uKCJyVzB0Iik7ciYmImciIT0vLi9nLmZsYWdzJiZvLmYoUmVnRXhwLnByb3RvdHlwZSwiZmxhZ3MiLHtjb25maWd1cmFibGU6ITAsZ2V0Oml9KX0sVU1TUTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigicHBHQiIpLG89TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0PjA/byhyKHQpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSxVVFZTOmZ1bmN0aW9uKHQsZSl7dmFyIG49e30uaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uY2FsbCh0LGUpfX0sVWVzTDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImdscmsiKSxvPW4oIndFNnYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoInN0cmluZyIhPT10JiYibnVtYmVyIiE9PXQmJiJkZWZhdWx0IiE9PXQpdGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaGludCIpO3JldHVybiBvKHIodGhpcyksIm51bWJlciIhPT10KX19LFV4bEM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIxNFNsIiksbz1uKCJnbHJrIiksaT1uKCJld3ZXIiksYT1uKCJVTVNRIiksYz1uKCJwcEdCIiksdT1uKCJIWUFGIikscz1uKCJpcVdXIiksZj1uKCJGTU5NIiksbD1NYXRoLm1heCxwPU1hdGgubWluLGg9TWF0aC5mbG9vcix2PS9cJChbJCYnYF18XGRcZD98PFtePl0qPikvZyxkPS9cJChbJCYnYF18XGRcZD8pL2c7cigicmVwbGFjZSIsMiwoZnVuY3Rpb24odCxlLG4pe3JldHVybltmdW5jdGlvbihuLHIpe3ZhciBvPXUodGhpcyksaT1udWxsPT1uP3ZvaWQgMDpuW3RdO3JldHVybiB2b2lkIDAhPT1pP2kuY2FsbChuLG8scik6ZS5jYWxsKFN0cmluZyhvKSxuLHIpfSxmdW5jdGlvbih0LGkpe3ZhciB1PW4oZSx0LHRoaXMsaSk7aWYodS5kb25lKXJldHVybiB1LnZhbHVlO3ZhciBoPW8odCksdj1TdHJpbmcodGhpcyksZD0iZnVuY3Rpb24iPT10eXBlb2YgaTtkfHwoaT1TdHJpbmcoaSkpO3ZhciBnPWguZ2xvYmFsO2lmKGcpe3ZhciB5PWgudW5pY29kZTtoLmxhc3RJbmRleD0wfWZvcih2YXIgYj1bXTs7KXt2YXIgbT1mKGgsdik7aWYobnVsbD09PW0pYnJlYWs7aWYoYi5wdXNoKG0pLCFnKWJyZWFrOyIiPT09U3RyaW5nKG1bMF0pJiYoaC5sYXN0SW5kZXg9cyh2LGEoaC5sYXN0SW5kZXgpLHkpKX1mb3IodmFyIGssXz0iIix3PTAseD0wO3g8Yi5sZW5ndGg7eCsrKXttPWJbeF07Zm9yKHZhciBTPVN0cmluZyhtWzBdKSxFPWwocChjKG0uaW5kZXgpLHYubGVuZ3RoKSwwKSxPPVtdLFQ9MTtUPG0ubGVuZ3RoO1QrKylPLnB1c2godm9pZCAwPT09KGs9bVtUXSk/azpTdHJpbmcoaykpO3ZhciBJPW0uZ3JvdXBzO2lmKGQpe3ZhciBqPVtTXS5jb25jYXQoTyxFLHYpO3ZvaWQgMCE9PUkmJmoucHVzaChJKTt2YXIgTT1TdHJpbmcoaS5hcHBseSh2b2lkIDAsaikpfWVsc2UgTT1yKFMsdixFLE8sSSxpKTtFPj13JiYoXys9di5zbGljZSh3LEUpK00sdz1FK1MubGVuZ3RoKX1yZXR1cm4gXyt2LnNsaWNlKHcpfV07ZnVuY3Rpb24gcih0LG4scixvLGEsYyl7dmFyIHU9cit0Lmxlbmd0aCxzPW8ubGVuZ3RoLGY9ZDtyZXR1cm4gdm9pZCAwIT09YSYmKGE9aShhKSxmPXYpLGUuY2FsbChjLGYsKGZ1bmN0aW9uKGUsaSl7dmFyIGM7c3dpdGNoKGkuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiB0O2Nhc2UiYCI6cmV0dXJuIG4uc2xpY2UoMCxyKTtjYXNlIiciOnJldHVybiBuLnNsaWNlKHUpO2Nhc2UiPCI6Yz1hW2kuc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGY9K2k7aWYoMD09PWYpcmV0dXJuIGU7aWYoZj5zKXt2YXIgbD1oKGYvMTApO3JldHVybiAwPT09bD9lOmw8PXM/dm9pZCAwPT09b1tsLTFdP2kuY2hhckF0KDEpOm9bbC0xXStpLmNoYXJBdCgxKTplfWM9b1tmLTFdfXJldHVybiB2b2lkIDA9PT1jPyIiOmN9KSl9fSkpfSxVeWR5OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJIc0hBIiksaT1NYXRoLmFjb3NoLGE9TWF0aC5sb2csYz1NYXRoLnNxcnQsdT1NYXRoLkxOMjtyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiFpfHw3MTAhPU1hdGguZmxvb3IoaShOdW1iZXIuTUFYX1ZBTFVFKSl8fGkoMS8wKSE9MS8wfSx7YWNvc2g6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpPDE/TmFOOnQ+OTQ5MDYyNjUuNjI0MjUxNTY/YSh0KSt1Om8odC0xK2ModC0xKSpjKHQrMSkpfX0pfSxWQzNMOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiUUlwZCIpLGE9MS4udG9QcmVjaXNpb247cih7dGFyZ2V0OiJOdW1iZXIiLHByb3RvOiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe3JldHVybiIxIiE9PWEuY2FsbCgxLHZvaWQgMCl9KSl8fCFvKChmdW5jdGlvbigpe2EuY2FsbCh7fSl9KSl9LHt0b1ByZWNpc2lvbjpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD9hLmNhbGwoaSh0aGlzKSk6YS5jYWxsKGkodGhpcyksdCl9fSl9LFZwSVQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oInprNjAiKSxpPW4oInhEQlIiKSxhPXJbIl9fY29yZS1qc19zaGFyZWRfXyJdfHxvKCJfX2NvcmUtanNfc2hhcmVkX18iLHt9KTsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFbdF18fChhW3RdPXZvaWQgMCE9PWU/ZTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjIuMSIsbW9kZTppPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LFZ1ODE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBHYlkiKSxvPW4oIkpCeTgiKSxpPW4oImRCZysiKSxhPW4oImdscmsiKTt0LmV4cG9ydHM9cigiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24odCl7dmFyIGU9by5mKGEodCkpLG49aS5mO3JldHVybiBuP2UuY29uY2F0KG4odCkpOmV9fSxXRHNSOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJYb2w4IiksaT1NYXRoLmFicztyKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se2lzU2FmZUludGVnZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG8odCkmJmkodCk8PTkwMDcxOTkyNTQ3NDA5OTF9fSl9LFdKa0o6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9Ilx0XG5cdlxmXHIgwqDhmoDigIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIBcdTIwMjhcdTIwMjlcdWZlZmYifSxXS2lIOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJIWUFGIiksbz0iWyIrbigiV0prSiIpKyJdIixpPVJlZ0V4cCgiXiIrbytvKyIqIiksYT1SZWdFeHAobytvKyIqJCIpLGM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPVN0cmluZyhyKGUpKTtyZXR1cm4gMSZ0JiYobj1uLnJlcGxhY2UoaSwiIikpLDImdCYmKG49bi5yZXBsYWNlKGEsIiIpKSxufX07dC5leHBvcnRzPXtzdGFydDpjKDEpLGVuZDpjKDIpLHRyaW06YygzKX19LFdqUmI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlJPZFAiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocih0KSl0aHJvdyBUeXBlRXJyb3IoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3JldHVybiB0fX0sIlgyVSsiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCJtL0w4IiksaT1uKCJYR3dDIik7dC5leHBvcnRzPXI/ZnVuY3Rpb24odCxlLG4pe3JldHVybiBvLmYodCxlLGkoMSxuKSl9OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1uLHR9fSxYR3dDOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fX0sWGUzTDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oImhCak4iKTtyKHt0YXJnZXQ6IkFycmF5IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIShBcnJheS5vZi5jYWxsKHQpaW5zdGFuY2VvZiB0KX0pKX0se29mOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKGUpO2U+dDspaShuLHQsYXJndW1lbnRzW3QrK10pO3JldHVybiBuLmxlbmd0aD1lLG59fSl9LFhvbDg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImhoMXYiKSxvPU1hdGguZmxvb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiFyKHQpJiZpc0Zpbml0ZSh0KSYmbyh0KT09PXR9fSxZR0s0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiYldGaCIpLG89bigiWldhUSIpO3QuZXhwb3J0cz1yKCJTZXQiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSksbyl9LFlOclY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJnNnYvIiksbz1uKCIwRGt5IiksaT1uKCIzM1doIiksYT1uKCJkQmcrIiksYz1uKCIwZWVmIiksdT1uKCJld3ZXIikscz1uKCJSSzN0IiksZj1PYmplY3QuYXNzaWduO3QuZXhwb3J0cz0hZnx8bygoZnVuY3Rpb24oKXt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCk7cmV0dXJuIHRbbl09NywiYWJjZGVmZ2hpamtsbW5vcHFyc3QiLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXR9KSksNyE9Zih7fSx0KVtuXXx8ImFiY2RlZmdoaWprbG1ub3BxcnN0IiE9aShmKHt9LGUpKS5qb2luKCIiKX0pKT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj11KHQpLG89YXJndW1lbnRzLmxlbmd0aCxmPTEsbD1hLmYscD1jLmY7bz5mOylmb3IodmFyIGgsdj1zKGFyZ3VtZW50c1tmKytdKSxkPWw/aSh2KS5jb25jYXQobCh2KSk6aSh2KSxnPWQubGVuZ3RoLHk9MDtnPnk7KWg9ZFt5KytdLHImJiFwLmNhbGwodixoKXx8KG5baF09dltoXSk7cmV0dXJuIG59OmZ9LFpPWGI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIwRGt5Iiksbz1uKCJETXQyIikuc3RhcnQsaT1NYXRoLmFicyxhPURhdGUucHJvdG90eXBlLGM9YS5nZXRUaW1lLHU9YS50b0lTT1N0cmluZzt0LmV4cG9ydHM9cigoZnVuY3Rpb24oKXtyZXR1cm4iMDM4NS0wNy0yNVQwNzowNjozOS45OTlaIiE9dS5jYWxsKG5ldyBEYXRlKC01ZTEzLTEpKX0pKXx8IXIoKGZ1bmN0aW9uKCl7dS5jYWxsKG5ldyBEYXRlKE5hTikpfSkpP2Z1bmN0aW9uKCl7aWYoIWlzRmluaXRlKGMuY2FsbCh0aGlzKSkpdGhyb3cgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7dmFyIHQ9dGhpcy5nZXRVVENGdWxsWWVhcigpLGU9dGhpcy5nZXRVVENNaWxsaXNlY29uZHMoKSxuPXQ8MD8iLSI6dD45OTk5PyIrIjoiIjtyZXR1cm4gbitvKGkodCksbj82OjQsMCkrIi0iK28odGhpcy5nZXRVVENNb250aCgpKzEsMiwwKSsiLSIrbyh0aGlzLmdldFVUQ0RhdGUoKSwyLDApKyJUIitvKHRoaXMuZ2V0VVRDSG91cnMoKSwyLDApKyI6IitvKHRoaXMuZ2V0VVRDTWludXRlcygpLDIsMCkrIjoiK28odGhpcy5nZXRVVENTZWNvbmRzKCksMiwwKSsiLiIrbyhlLDMsMCkrIloifTp1fSxaVWQ4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJwcEdCIiksbz1uKCJIWUFGIiksaT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaSxhLGM9U3RyaW5nKG8oZSkpLHU9cihuKSxzPWMubGVuZ3RoO3JldHVybiB1PDB8fHU+PXM/dD8iIjp2b2lkIDA6KGk9Yy5jaGFyQ29kZUF0KHUpKTw1NTI5Nnx8aT41NjMxOXx8dSsxPT09c3x8KGE9Yy5jaGFyQ29kZUF0KHUrMSkpPDU2MzIwfHxhPjU3MzQzP3Q/Yy5jaGFyQXQodSk6aTp0P2Muc2xpY2UodSx1KzIpOmEtNTYzMjArKGktNTUyOTY8PDEwKSs2NTUzNn19O3QuZXhwb3J0cz17Y29kZUF0OmkoITEpLGNoYXJBdDppKCEwKX19LFpXYVE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJtL0w4IikuZixvPW4oImZITVkiKSxpPW4oIjRzeXciKSxhPW4oIitNTHgiKSxjPW4oIkdhclUiKSx1PW4oIkltWk4iKSxzPW4oImZkQXkiKSxmPW4oIkppWmIiKSxsPW4oImc2di8iKSxwPW4oIjhZT2EiKS5mYXN0S2V5LGg9bigiYWZPOCIpLHY9aC5zZXQsZD1oLmdldHRlckZvcjt0LmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHQsZSxuLHMpe3ZhciBmPXQoKGZ1bmN0aW9uKHQscil7Yyh0LGYsZSksdih0LHt0eXBlOmUsaW5kZXg6byhudWxsKSxmaXJzdDp2b2lkIDAsbGFzdDp2b2lkIDAsc2l6ZTowfSksbHx8KHQuc2l6ZT0wKSxudWxsIT1yJiZ1KHIsdFtzXSx0LG4pfSkpLGg9ZChlKSxnPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvLGk9aCh0KSxhPXkodCxlKTtyZXR1cm4gYT9hLnZhbHVlPW46KGkubGFzdD1hPXtpbmRleDpvPXAoZSwhMCksa2V5OmUsdmFsdWU6bixwcmV2aW91czpyPWkubGFzdCxuZXh0OnZvaWQgMCxyZW1vdmVkOiExfSxpLmZpcnN0fHwoaS5maXJzdD1hKSxyJiYoci5uZXh0PWEpLGw/aS5zaXplKys6dC5zaXplKyssIkYiIT09byYmKGkuaW5kZXhbb109YSkpLHR9LHk9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWgodCksbz1wKGUpO2lmKCJGIiE9PW8pcmV0dXJuIHIuaW5kZXhbb107Zm9yKG49ci5maXJzdDtuO249bi5uZXh0KWlmKG4ua2V5PT1lKXJldHVybiBufTtyZXR1cm4gaShmLnByb3RvdHlwZSx7Y2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9aCh0aGlzKSxlPXQuaW5kZXgsbj10LmZpcnN0O247KW4ucmVtb3ZlZD0hMCxuLnByZXZpb3VzJiYobi5wcmV2aW91cz1uLnByZXZpb3VzLm5leHQ9dm9pZCAwKSxkZWxldGUgZVtuLmluZGV4XSxuPW4ubmV4dDt0LmZpcnN0PXQubGFzdD12b2lkIDAsbD90LnNpemU9MDp0aGlzLnNpemU9MH0sZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPWgodGhpcyksbj15KHRoaXMsdCk7aWYobil7dmFyIHI9bi5uZXh0LG89bi5wcmV2aW91cztkZWxldGUgZS5pbmRleFtuLmluZGV4XSxuLnJlbW92ZWQ9ITAsbyYmKG8ubmV4dD1yKSxyJiYoci5wcmV2aW91cz1vKSxlLmZpcnN0PT1uJiYoZS5maXJzdD1yKSxlLmxhc3Q9PW4mJihlLmxhc3Q9byksbD9lLnNpemUtLTp0aGlzLnNpemUtLX1yZXR1cm4hIW59LGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49aCh0aGlzKSxyPWEodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtlPWU/ZS5uZXh0Om4uZmlyc3Q7KWZvcihyKGUudmFsdWUsZS5rZXksdGhpcyk7ZSYmZS5yZW1vdmVkOyllPWUucHJldmlvdXN9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4hIXkodGhpcyx0KX19KSxpKGYucHJvdG90eXBlLG4/e2dldDpmdW5jdGlvbih0KXt2YXIgZT15KHRoaXMsdCk7cmV0dXJuIGUmJmUudmFsdWV9LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiBnKHRoaXMsMD09PXQ/MDp0LGUpfX06e2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gZyh0aGlzLHQ9MD09PXQ/MDp0LHQpfX0pLGwmJnIoZi5wcm90b3R5cGUsInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzKS5zaXplfX0pLGZ9LHNldFN0cm9uZzpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZSsiIEl0ZXJhdG9yIixvPWQoZSksaT1kKHIpO3ModCxlLChmdW5jdGlvbih0LGUpe3YodGhpcyx7dHlwZTpyLHRhcmdldDp0LHN0YXRlOm8odCksa2luZDplLGxhc3Q6dm9pZCAwfSl9KSwoZnVuY3Rpb24oKXtmb3IodmFyIHQ9aSh0aGlzKSxlPXQua2luZCxuPXQubGFzdDtuJiZuLnJlbW92ZWQ7KW49bi5wcmV2aW91cztyZXR1cm4gdC50YXJnZXQmJih0Lmxhc3Q9bj1uP24ubmV4dDp0LnN0YXRlLmZpcnN0KT8ia2V5cyI9PWU/e3ZhbHVlOm4ua2V5LGRvbmU6ITF9OiJ2YWx1ZXMiPT1lP3t2YWx1ZTpuLnZhbHVlLGRvbmU6ITF9Ont2YWx1ZTpbbi5rZXksbi52YWx1ZV0sZG9uZTohMX06KHQudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KX0pLG4/ImVudHJpZXMiOiJ2YWx1ZXMiLCFuLCEwKSxmKGUpfX19LFpmRHY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImhoMXYiKSxvPW4oIjZMV0EiKSxpPW4oInRpS3AiKSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBvKHQpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKG49dC5jb25zdHJ1Y3Rvcil8fG4hPT1BcnJheSYmIW8obi5wcm90b3R5cGUpP3IobikmJm51bGw9PT0obj1uW2ldKSYmKG49dm9pZCAwKTpuPXZvaWQgMCksbmV3KHZvaWQgMD09PW4/QXJyYXk6bikoMD09PWU/MDplKX19LFprOFg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoInN1cCIpfSx7c3VwOmZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcywic3VwIiwiIiwiIil9fSl9LGE1N246ZnVuY3Rpb24odCxlLG4pe24oImRHL24iKSgic2VhcmNoIil9LGE1Tks6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPU1hdGgubG9nLGk9TWF0aC5MT0cxMEU7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7bG9nMTA6ZnVuY3Rpb24odCl7cmV0dXJuIG8odCkqaX19KX0sYWZPODpmdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpLGE9bigiZjVwMSIpLGM9bigiMm9SbyIpLHU9bigiaGgxdiIpLHM9bigiWDJVKyIpLGY9bigiVVRWUyIpLGw9bigiOTNJMCIpLHA9bigiMEJLMiIpO2lmKGEpe3ZhciBoPW5ldygwLGMuV2Vha01hcCksdj1oLmdldCxkPWguaGFzLGc9aC5zZXQ7cj1mdW5jdGlvbih0LGUpe3JldHVybiBnLmNhbGwoaCx0LGUpLGV9LG89ZnVuY3Rpb24odCl7cmV0dXJuIHYuY2FsbChoLHQpfHx7fX0saT1mdW5jdGlvbih0KXtyZXR1cm4gZC5jYWxsKGgsdCl9fWVsc2V7dmFyIHk9bCgic3RhdGUiKTtwW3ldPSEwLHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcyh0LHksZSksZX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gZih0LHkpP3RbeV06e319LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGYodCx5KX19dC5leHBvcnRzPXtzZXQ6cixnZXQ6byxoYXM6aSxlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBpKHQpP28odCk6cih0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbjtpZighdShlKXx8KG49byhlKSkudHlwZSE9PXQpdGhyb3cgVHlwZUVycm9yKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIG59fX19LCJiK1ZUIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMm9SbyIpLG89bigiV0tpSCIpLnRyaW0saT1uKCJXSmtKIiksYT1yLnBhcnNlRmxvYXQsYz0xL2EoaSsiLTAiKSE9LTEvMDt0LmV4cG9ydHM9Yz9mdW5jdGlvbih0KXt2YXIgZT1vKFN0cmluZyh0KSksbj1hKGUpO3JldHVybiAwPT09biYmIi0iPT1lLmNoYXJBdCgwKT8tMDpufTphfSxiV0ZoOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMm9SbyIpLGk9bigibE1xNSIpLGE9bigiYnVzRSIpLGM9bigiOFlPYSIpLHU9bigiSW1aTiIpLHM9bigiR2FyVSIpLGY9bigiaGgxdiIpLGw9bigiMERreSIpLHA9bigiSEg0byIpLGg9bigiMUU1eiIpLHY9bigiY1ZZSCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixkLGcpe3ZhciB5PW9bdF0sYj15JiZ5LnByb3RvdHlwZSxtPXksaz1kPyJzZXQiOiJhZGQiLF89e30sdz1mdW5jdGlvbih0KXt2YXIgZT1iW3RdO2EoYix0LCJhZGQiPT10P2Z1bmN0aW9uKHQpe3JldHVybiBlLmNhbGwodGhpcywwPT09dD8wOnQpLHRoaXN9OiJkZWxldGUiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoZyYmIWYodCkpJiZlLmNhbGwodGhpcywwPT09dD8wOnQpfToiZ2V0Ij09dD9mdW5jdGlvbih0KXtyZXR1cm4gZyYmIWYodCk/dm9pZCAwOmUuY2FsbCh0aGlzLDA9PT10PzA6dCl9OiJoYXMiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoZyYmIWYodCkpJiZlLmNhbGwodGhpcywwPT09dD8wOnQpfTpmdW5jdGlvbih0LG4pe3JldHVybiBlLmNhbGwodGhpcywwPT09dD8wOnQsbiksdGhpc30pfTtpZihpKHQsImZ1bmN0aW9uIiE9dHlwZW9mIHl8fCEoZ3x8Yi5mb3JFYWNoJiYhbCgoZnVuY3Rpb24oKXsobmV3IHkpLmVudHJpZXMoKS5uZXh0KCl9KSkpKSltPW4uZ2V0Q29uc3RydWN0b3IoZSx0LGQsayksYy5SRVFVSVJFRD0hMDtlbHNlIGlmKGkodCwhMCkpe3ZhciB4PW5ldyBtLFM9eFtrXShnP3t9Oi0wLDEpIT14LEU9bCgoZnVuY3Rpb24oKXt4LmhhcygxKX0pKSxPPXAoKGZ1bmN0aW9uKHQpe25ldyB5KHQpfSkpLFQ9IWcmJmwoKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyB5LGU9NTtlLS07KXRba10oZSxlKTtyZXR1cm4hdC5oYXMoLTApfSkpO098fCgobT1lKChmdW5jdGlvbihlLG4pe3MoZSxtLHQpO3ZhciByPXYobmV3IHksZSxtKTtyZXR1cm4gbnVsbCE9biYmdShuLHJba10scixkKSxyfSkpKS5wcm90b3R5cGU9YixiLmNvbnN0cnVjdG9yPW0pLChFfHxUKSYmKHcoImRlbGV0ZSIpLHcoImhhcyIpLGQmJncoImdldCIpKSwoVHx8UykmJncoayksZyYmYi5jbGVhciYmZGVsZXRlIGIuY2xlYXJ9cmV0dXJuIF9bdF09bSxyKHtnbG9iYWw6ITAsZm9yY2VkOm0hPXl9LF8pLGgobSx0KSxnfHxuLnNldFN0cm9uZyhtLHQsZCksbX19LGJycDI6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJEYXRlIixzdGF0OiEwfSx7bm93OmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSl9LGJ1c0U6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIlZwSVQiKSxpPW4oIlgyVSsiKSxhPW4oIlVUVlMiKSxjPW4oInprNjAiKSx1PW4oIm5vR28iKSxzPW4oImFmTzgiKSxmPXMuZ2V0LGw9cy5lbmZvcmNlLHA9U3RyaW5nKHUpLnNwbGl0KCJ0b1N0cmluZyIpO28oImluc3BlY3RTb3VyY2UiLChmdW5jdGlvbih0KXtyZXR1cm4gdS5jYWxsKHQpfSkpLCh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sbyl7dmFyIHU9ISFvJiYhIW8udW5zYWZlLHM9ISFvJiYhIW8uZW51bWVyYWJsZSxmPSEhbyYmISFvLm5vVGFyZ2V0R2V0OyJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoInN0cmluZyIhPXR5cGVvZiBlfHxhKG4sIm5hbWU="
}

Changelog:

{
    "2019.12.03 19:45": "base64:dGlvbiIpO3JldHVybiB0fX0sSDBwYjpmdW5jdGlvbih0LGUsbil7bigibWE5SSIpLG4oIjA3ZDciKSxuKCJwTk1PIiksbigidGpaTSIpLG4oIjRCcmYiKSxuKCIzSTFSIiksbigiNytrZCIpLG4oIjBvdWciKSxuKCJLaHNTIiksbigianQyRiIpLG4oImdPQ2IiKSxuKCJhNTduIiksbigiR1h2ZCIpLG4oIkkxR3ciKSxuKCJnWElLIiksbigibEVvdSIpLG4oImdiaVQiKSxuKCJJOXhqIiksbigiREVmdSIpO3ZhciByPW4oIlFvOWwiKTt0LmV4cG9ydHM9ci5TeW1ib2x9LEhBdU06ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7cmV0dXJuIHR9fSxISDRvOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ0aUtwIikoIml0ZXJhdG9yIiksbz0hMTt0cnl7dmFyIGk9MCxhPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFpKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtvPSEwfX07YVtyXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKGEsKGZ1bmN0aW9uKCl7dGhyb3cgMn0pKX1jYXRjaChjKXt9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIWUmJiFvKXJldHVybiExO3ZhciBuPSExO3RyeXt2YXIgaT17fTtpW3JdPWZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTpuPSEwfX19fSx0KGkpfWNhdGNoKGMpe31yZXR1cm4gbn19LEhSeFU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oImc2di8iKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6IW8sc2hhbTohb30se2RlZmluZVByb3BlcnRpZXM6bigiTitnMCIpfSl9LEhZQUY6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYobnVsbD09dCl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrdCk7cmV0dXJuIHR9fSxIZDVmOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwRGt5Iiksbz1uKCJ0aUtwIikoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIXIoKGZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuKGUuY29uc3RydWN0b3I9e30pW29dPWZ1bmN0aW9uKCl7cmV0dXJue2ZvbzoxfX0sMSE9PWVbdF0oQm9vbGVhbikuZm9vfSkpfX0sSHNIQTpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgubG9nO3QuZXhwb3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbih0KXtyZXR1cm4odD0rdCk+LTFlLTgmJnQ8MWUtOD90LXQqdC8yOm4oMSt0KX19LCJJK2ViIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMm9SbyIpLG89bigiQnM4ViIpLmYsaT1uKCJYMlUrIiksYT1uKCJidXNFIiksYz1uKCJ6azYwIiksdT1uKCI2Sk5xIikscz1uKCJsTXE1Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG4sZixsLHAsaCx2PXQudGFyZ2V0LGQ9dC5nbG9iYWwsZz10LnN0YXQ7aWYobj1kP3I6Zz9yW3ZdfHxjKHYse30pOihyW3ZdfHx7fSkucHJvdG90eXBlKWZvcihmIGluIGUpe2lmKHA9ZVtmXSxsPXQubm9UYXJnZXRHZXQ/KGg9byhuLGYpKSYmaC52YWx1ZTpuW2ZdLCFzKGQ/Zjp2KyhnPyIuIjoiIyIpK2YsdC5mb3JjZWQpJiZ2b2lkIDAhPT1sKXtpZih0eXBlb2YgcD09dHlwZW9mIGwpY29udGludWU7dShwLGwpfSh0LnNoYW18fGwmJmwuc2hhbSkmJmkocCwic2hhbSIsITApLGEobixmLHAsdCl9fX0sSTFHdzpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJzcGxpdCIpfSxJOHZoOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJwcEdCIiksbz1NYXRoLm1heCxpPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXIodCk7cmV0dXJuIG48MD9vKG4rZSwwKTppKG4sZSl9fSxJOXhqOmZ1bmN0aW9uKHQsZSxuKXtuKCIxRTV6IikoTWF0aCwiTWF0aCIsITApfSxJbVpOOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnbHJrIiksbz1uKCI2Vm9FIiksaT1uKCJVTVNRIiksYT1uKCIrTUx4IiksYz1uKCJOYUZXIiksdT1uKCJtOTJuIikscz1mdW5jdGlvbih0LGUpe3RoaXMuc3RvcHBlZD10LHRoaXMucmVzdWx0PWV9Oyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sZixsKXt2YXIgcCxoLHYsZCxnLHksYj1hKGUsbixmPzI6MSk7aWYobClwPXQ7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YoaD1jKHQpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihvKGgpKXtmb3Iodj0wLGQ9aSh0Lmxlbmd0aCk7ZD52O3YrKylpZigoZz1mP2Iocih5PXRbdl0pWzBdLHlbMV0pOmIodFt2XSkpJiZnIGluc3RhbmNlb2YgcylyZXR1cm4gZztyZXR1cm4gbmV3IHMoITEpfXA9aC5jYWxsKHQpfWZvcig7ISh5PXAubmV4dCgpKS5kb25lOylpZigoZz11KHAsYix5LnZhbHVlLGYpKSYmZyBpbnN0YW5jZW9mIHMpcmV0dXJuIGc7cmV0dXJuIG5ldyBzKCExKX0pLnN0b3A9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzKCEwLHQpfX0sSXhYUjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oImhYcE8iKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjZ1bksiKSgic3RyaWtlIil9LHtzdHJpa2U6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLCJzdHJpa2UiLCIiLCIiKX19KX0sSjMwWDpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6IkFycmF5IixzdGF0OiEwfSx7aXNBcnJheTpuKCI2TFdBIil9KX0sSkJ5ODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieW9SZyIpLG89bigiZURsKyIpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbih0KXtyZXR1cm4gcih0LG8pfX0sSlRKZzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIldqUmIiKSxpPW4oIkhZQUYiKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFuKCJxeFBaIikoImluY2x1ZGVzIil9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4hIX5TdHJpbmcoaSh0aGlzKSkuaW5kZXhPZihvKHQpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sSmV2QTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiNVlPUSIpO3Ioe3RhcmdldDoiTnVtYmVyIixzdGF0OiEwLGZvcmNlZDpOdW1iZXIucGFyc2VJbnQhPW99LHtwYXJzZUludDpvfSl9LEpmQUE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJidXNFIiksbz1uKCJnbHJrIiksaT1uKCIwRGt5IiksYT1uKCJyVzB0IiksYz1SZWdFeHAucHJvdG90eXBlLHU9Yy50b1N0cmluZzsoaSgoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPXUuY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKXx8InRvU3RyaW5nIiE9dS5uYW1lKSYmcihSZWdFeHAucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7dmFyIHQ9byh0aGlzKSxlPVN0cmluZyh0LnNvdXJjZSksbj10LmZsYWdzO3JldHVybiIvIitlKyIvIitTdHJpbmcodm9pZCAwPT09biYmdCBpbnN0YW5jZW9mIFJlZ0V4cCYmISgiZmxhZ3MiaW4gYyk/YS5jYWxsKHQpOm4pfSkse3Vuc2FmZTohMH0pfSxKaVpiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMEdiWSIpLG89bigibS9MOCIpLGk9bigidGlLcCIpLGE9bigiZzZ2LyIpLGM9aSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1yKHQpO2EmJmUmJiFlW2NdJiYoMCxvLmYpKGUsYyx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfX0sS2hzUzpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJtYXRjaCIpfSxLdjlsOmZ1bmN0aW9uKHQsZSxuKXtuKCJUV05zIiksbigiSmZBQSIpLG4oInJCOWoiKSxuKCJVM2Y0IiksbigiUm0xUyIpLG4oIlV4bEMiKSxuKCJoQnlRIiksbigiRW5aeSIpfSxLdkdpOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiTWF0aCIsc3RhdDohMH0se3NpZ246bigiOTBoVyIpfSl9LEt4bGQ6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtpczpuKCJFcDlJIil9KX0sTEtCeDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIlVNU1EiKSxpPW4oIldqUmIiKSxhPW4oIkhZQUYiKSxjPW4oInF4UFoiKSx1PSIiLnN0YXJ0c1dpdGgscz1NYXRoLm1pbjtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFjKCJzdGFydHNXaXRoIil9LHtzdGFydHNXaXRoOmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhhKHRoaXMpKTtpKHQpO3ZhciBuPW8ocyhhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxlLmxlbmd0aCkpLHI9U3RyaW5nKHQpO3JldHVybiB1P3UuY2FsbChlLHIsbik6ZS5zbGljZShuLG4rci5sZW5ndGgpPT09cn19KX0sTFBTUzpmdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpLGE9bigiMm9SbyIpLGM9bigiMERreSIpLHU9bigieHJZSyIpLHM9bigiK01MeCIpLGY9bigiRytSeCIpLGw9bigiekJKNCIpLHA9YS5sb2NhdGlvbixoPWEuc2V0SW1tZWRpYXRlLHY9YS5jbGVhckltbWVkaWF0ZSxkPWEucHJvY2VzcyxnPWEuTWVzc2FnZUNoYW5uZWwseT1hLkRpc3BhdGNoLGI9MCxtPXt9LGs9ZnVuY3Rpb24odCl7aWYobS5oYXNPd25Qcm9wZXJ0eSh0KSl7dmFyIGU9bVt0XTtkZWxldGUgbVt0XSxlKCl9fSxfPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2sodCl9fSx3PWZ1bmN0aW9uKHQpe2sodC5kYXRhKX0seD1mdW5jdGlvbih0KXthLnBvc3RNZXNzYWdlKHQrIiIscC5wcm90b2NvbCsiLy8iK3AuaG9zdCl9O2gmJnZ8fChoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7YXJndW1lbnRzLmxlbmd0aD5uOyllLnB1c2goYXJndW1lbnRzW24rK10pO3JldHVybiBtWysrYl09ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpGdW5jdGlvbih0KSkuYXBwbHkodm9pZCAwLGUpfSxyKGIpLGJ9LHY9ZnVuY3Rpb24odCl7ZGVsZXRlIG1bdF19LCJwcm9jZXNzIj09dShkKT9yPWZ1bmN0aW9uKHQpe2QubmV4dFRpY2soXyh0KSl9OnkmJnkubm93P3I9ZnVuY3Rpb24odCl7eS5ub3coXyh0KSl9Omc/KGk9KG89bmV3IGcpLnBvcnQyLG8ucG9ydDEub25tZXNzYWdlPXcscj1zKGkucG9zdE1lc3NhZ2UsaSwxKSk6IWEuYWRkRXZlbnRMaXN0ZW5lcnx8ImZ1bmN0aW9uIiE9dHlwZW9mIHBvc3RNZXNzYWdlfHxhLmltcG9ydFNjcmlwdHN8fGMoeCk/cj0ib25yZWFkeXN0YXRlY2hhbmdlImluIGwoInNjcmlwdCIpP2Z1bmN0aW9uKHQpe2YuYXBwZW5kQ2hpbGQobCgic2NyaXB0IikpLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2YucmVtb3ZlQ2hpbGQodGhpcyksayh0KX19OmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQoXyh0KSwwKX06KHI9eCxhLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHcsITEpKSksdC5leHBvcnRzPXtzZXQ6aCxjbGVhcjp2fX0sIk4rZzAiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCJtL0w4IiksaT1uKCJnbHJrIiksYT1uKCIzM1doIik7dC5leHBvcnRzPXI/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24odCxlKXtpKHQpO2Zvcih2YXIgbixyPWEoZSksYz1yLmxlbmd0aCx1PTA7Yz51OylvLmYodCxuPXJbdSsrXSxlW25dKTtyZXR1cm4gdH19LE5CQVM6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oImV3dlciKSxhPW4oIjRXT0QiKSxjPW4oIjRYZXQiKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXthKDEpfSkpLHNoYW06IWN9LHtnZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXtyZXR1cm4gYShpKHQpKX19KX0sTmFGVzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiOWQvdCIpLG89bigiUDR5MSIpLGk9bigidGlLcCIpKCJpdGVyYXRvciIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihudWxsIT10KXJldHVybiB0W2ldfHx0WyJAQGl0ZXJhdG9yIl18fG9bcih0KV19fSwiTmJOKyI6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtFUFNJTE9OOk1hdGgucG93KDIsLTUyKX0pfSxPNzQxOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFyKHQpJiZudWxsIT09dCl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyh0KSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIHR9fSxPTTlaOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGVhdDpuKCJFVWphIil9KX0sUDR5MTpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz17fX0sUEtQazpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIlpVZDgiKS5jaGFyQXQsbz1uKCJhZk84IiksaT1uKCJmZEF5IiksYT1vLnNldCxjPW8uZ2V0dGVyRm9yKCJTdHJpbmcgSXRlcmF0b3IiKTtpKFN0cmluZywiU3RyaW5nIiwoZnVuY3Rpb24odCl7YSh0aGlzLHt0eXBlOiJTdHJpbmcgSXRlcmF0b3IiLHN0cmluZzpTdHJpbmcodCksaW5kZXg6MH0pfSksKGZ1bmN0aW9uKCl7dmFyIHQsZT1jKHRoaXMpLG49ZS5zdHJpbmcsbz1lLmluZGV4O3JldHVybiBvPj1uLmxlbmd0aD97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Oih0PXIobixvKSxlLmluZGV4Kz10Lmxlbmd0aCx7dmFsdWU6dCxkb25lOiExfSl9KSl9LFBxT0k6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjkwaFciKSxpPU1hdGguYWJzLGE9TWF0aC5wb3c7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7Y2JydDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0PSt0KSphKGkodCksMS8zKX19KX0sUUZjVDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89TWF0aC5oeXBvdCxpPU1hdGguYWJzLGE9TWF0aC5zcXJ0O3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ISFvJiZvKDEvMCxOYU4pIT09MS8wfSx7aHlwb3Q6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scixvPTAsYz0wLHU9YXJndW1lbnRzLmxlbmd0aCxzPTA7Yzx1OylzPChuPWkoYXJndW1lbnRzW2MrK10pKT8obz1vKihyPXMvbikqcisxLHM9bik6bys9bj4wPyhyPW4vcykqcjpuO3JldHVybiBzPT09MS8wPzEvMDpzKmEobyl9fSl9LFFJcGQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInhyWUsiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIm51bWJlciIhPXR5cGVvZiB0JiYiTnVtYmVyIiE9cih0KSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCBpbnZvY2F0aW9uIik7cmV0dXJuK3R9fSxRTm5wOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1NYXRoLmZsb29yLGk9TWF0aC5sb2csYT1NYXRoLkxPRzJFO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMH0se2NsejMyOmZ1bmN0aW9uKHQpe3JldHVybih0Pj4+PTApPzMxLW8oaSh0Ky41KSphKTozMn19KX0sUVdCbDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIkY4SlIiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6W10uZm9yRWFjaCE9b30se2ZvckVhY2g6b30pfSxRbzlsOmZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9bigiMm9SbyIpfSxSSzN0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwRGt5Iiksbz1uKCJ4cllLIiksaT0iIi5zcGxpdDt0LmV4cG9ydHM9cigoZnVuY3Rpb24oKXtyZXR1cm4hT2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk/ZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyI9PW8odCk/aS5jYWxsKHQsIiIpOk9iamVjdCh0KX06T2JqZWN0fSxSTjZjOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49ci5jb25zb2xlO24mJm4uZXJyb3ImJigxPT09YXJndW1lbnRzLmxlbmd0aD9uLmVycm9yKHQpOm4uZXJyb3IodCxlKSl9fSxSTklzOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ0aUtwIiksbz1uKCJmSE1ZIiksaT1uKCJYMlUrIiksYT1yKCJ1bnNjb3BhYmxlcyIpLGM9QXJyYXkucHJvdG90eXBlO251bGw9PWNbYV0mJmkoYyxhLG8obnVsbCkpLHQuZXhwb3J0cz1mdW5jdGlvbih0KXtjW2FdW3RdPSEwfX0sUk9kUDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiaGgxdiIpLG89bigieHJZSyIpLGk9bigidGlLcCIpKCJtYXRjaCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gcih0KSYmKHZvaWQgMCE9PShlPXRbaV0pPyEhZToiUmVnRXhwIj09byh0KSl9fSxSZnh6OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigidHljUiIpLnNvbWU7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOm4oInN3RkwiKSgic29tZSIpfSx7c29tZTpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxSbTFTOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMTRTbCIpLG89bigiZ2xyayIpLGk9bigiVU1TUSIpLGE9bigiSFlBRiIpLGM9bigiaXFXVyIpLHU9bigiRk1OTSIpO3IoIm1hdGNoIiwxLChmdW5jdGlvbih0LGUsbil7cmV0dXJuW2Z1bmN0aW9uKGUpe3ZhciBuPWEodGhpcykscj1udWxsPT1lP3ZvaWQgMDplW3RdO3JldHVybiB2b2lkIDAhPT1yP3IuY2FsbChlLG4pOm5ldyBSZWdFeHAoZSlbdF0oU3RyaW5nKG4pKX0sZnVuY3Rpb24odCl7dmFyIHI9bihlLHQsdGhpcyk7aWYoci5kb25lKXJldHVybiByLnZhbHVlO3ZhciBhPW8odCkscz1TdHJpbmcodGhpcyk7aWYoIWEuZ2xvYmFsKXJldHVybiB1KGEscyk7dmFyIGY9YS51bmljb2RlO2EubGFzdEluZGV4PTA7Zm9yKHZhciBsLHA9W10saD0wO251bGwhPT0obD11KGEscykpOyl7dmFyIHY9U3RyaW5nKGxbMF0pO3BbaF09diwiIj09PXYmJihhLmxhc3RJbmRleD1jKHMsaShhLmxhc3RJbmRleCksZikpLGgrK31yZXR1cm4gMD09PWg/bnVsbDpwfV19KSl9LFNFQmg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImdscmsiKSxvPW4oIkhBdU0iKSxpPW4oInRpS3AiKSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuLGE9cih0KS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09YXx8bnVsbD09KG49cihhKVtpXSk/ZTpvKG4pfX0sU1RBRTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMERreSIpO3QuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFyKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfSkpfSxTWW9yOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiV0tpSCIpLnRyaW07cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI0SENpIikoInRyaW0iKX0se3RyaW06ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzKX19KX0sVEZQVDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oImhYcE8iKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjZ1bksiKSgic3ViIil9LHtzdWI6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLCJzdWIiLCIiLCIiKX19KX0sVFdOczpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigiMm9SbyIpLGk9bigibE1xNSIpLGE9bigiY1ZZSCIpLGM9bigibS9MOCIpLmYsdT1uKCJKQnk4IikuZixzPW4oIlJPZFAiKSxmPW4oInJXMHQiKSxsPW4oImJ1c0UiKSxwPW4oIjBEa3kiKSxoPW4oIkppWmIiKSx2PW4oInRpS3AiKSgibWF0Y2giKSxkPW8uUmVnRXhwLGc9ZC5wcm90b3R5cGUseT0vYS9nLGI9L2EvZyxtPW5ldyBkKHkpIT09eTtpZihyJiZpKCJSZWdFeHAiLCFtfHxwKChmdW5jdGlvbigpe3JldHVybiBiW3ZdPSExLGQoeSkhPXl8fGQoYik9PWJ8fCIvYS9pIiE9ZCh5LCJpIil9KSkpKXtmb3IodmFyIGs9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzIGluc3RhbmNlb2YgayxyPXModCksbz12b2lkIDA9PT1lO3JldHVybiFuJiZyJiZ0LmNvbnN0cnVjdG9yPT09ayYmbz90OmEobT9uZXcgZChyJiYhbz90LnNvdXJjZTp0LGUpOmQoKHI9dCBpbnN0YW5jZW9mIGspP3Quc291cmNlOnQsciYmbz9mLmNhbGwodCk6ZSksbj90aGlzOmcsayl9LF89ZnVuY3Rpb24odCl7dCBpbiBrfHxjKGssdCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkW3RdfSxzZXQ6ZnVuY3Rpb24oZSl7ZFt0XT1lfX0pfSx3PXUoZCkseD0wO3cubGVuZ3RoPng7KV8od1t4KytdKTtnLmNvbnN0cnVjdG9yPWssay5wcm90b3R5cGU9ZyxsKG8sIlJlZ0V4cCIsayl9aCgiUmVnRXhwIil9LFRXUWI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIi9HcVUiKSxvPW4oIlVNU1EiKSxpPW4oIkk4dmgiKSxhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4sYSl7dmFyIGMsdT1yKGUpLHM9byh1Lmxlbmd0aCksZj1pKGEscyk7aWYodCYmbiE9bil7Zm9yKDtzPmY7KWlmKChjPXVbZisrXSkhPWMpcmV0dXJuITB9ZWxzZSBmb3IoO3M+ZjtmKyspaWYoKHR8fGYgaW4gdSkmJnVbZl09PT1uKXJldHVybiB0fHxmfHwwO3JldHVybiF0JiYtMX19O3QuZXhwb3J0cz17aW5jbHVkZXM6YSghMCksaW5kZXhPZjphKCExKX19LFRlUUY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJ0eWNSIikuZmlsdGVyO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohbigiSGQ1ZiIpKCJmaWx0ZXIiKX0se2ZpbHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxUZlRpOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiK01MeCIpLG89bigiZXd2VyIpLGk9bigibTkybiIpLGE9bigiNlZvRSIpLGM9bigiVU1TUSIpLHU9bigiaEJqTiIpLHM9bigiTmFGVyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxuLGYsbCxwPW8odCksaD0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5LHY9YXJndW1lbnRzLmxlbmd0aCxkPXY+MT9hcmd1bWVudHNbMV06dm9pZCAwLGc9dm9pZCAwIT09ZCx5PTAsYj1zKHApO2lmKGcmJihkPXIoZCx2PjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09Ynx8aD09QXJyYXkmJmEoYikpZm9yKG49bmV3IGgoZT1jKHAubGVuZ3RoKSk7ZT55O3krKyl1KG4seSxnP2QocFt5XSx5KTpwW3ldKTtlbHNlIGZvcihsPWIuY2FsbChwKSxuPW5ldyBoOyEoZj1sLm5leHQoKSkuZG9uZTt5KyspdShuLHksZz9pKGwsZCxbZi52YWx1ZSx5XSwhMCk6Zi52YWx1ZSk7cmV0dXJuIG4ubGVuZ3RoPXksbn19LFRvSnk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJIQXVNIiksaT1uKCJld3ZXIiksYT1uKCIwRGt5IiksYz1uKCJzd0ZMIiksdT1bXS5zb3J0LHM9WzEsMiwzXSxmPWEoKGZ1bmN0aW9uKCl7cy5zb3J0KHZvaWQgMCl9KSksbD1hKChmdW5jdGlvbigpe3Muc29ydChudWxsKX0pKSxwPWMoInNvcnQiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6Znx8IWx8fHB9LHtzb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3UuY2FsbChpKHRoaXMpKTp1LmNhbGwoaSh0aGlzKSxvKHQpKX19KX0sVHNrcTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImJXRmgiKSxvPW4oIlpXYVEiKTt0LmV4cG9ydHM9cigiTWFwIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0pLG8sITApfSxVM2Y0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCJtL0w4IiksaT1uKCJyVzB0Iik7ciYmImciIT0vLi9nLmZsYWdzJiZvLmYoUmVnRXhwLnByb3RvdHlwZSwiZmxhZ3MiLHtjb25maWd1cmFibGU6ITAsZ2V0Oml9KX0sVU1TUTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigicHBHQiIpLG89TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0PjA/byhyKHQpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSxVVFZTOmZ1bmN0aW9uKHQsZSl7dmFyIG49e30uaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uY2FsbCh0LGUpfX0sVWVzTDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImdscmsiKSxvPW4oIndFNnYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoInN0cmluZyIhPT10JiYibnVtYmVyIiE9PXQmJiJkZWZhdWx0IiE9PXQpdGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaGludCIpO3JldHVybiBvKHIodGhpcyksIm51bWJlciIhPT10KX19LFV4bEM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIxNFNsIiksbz1uKCJnbHJrIiksaT1uKCJld3ZXIiksYT1uKCJVTVNRIiksYz1uKCJwcEdCIiksdT1uKCJIWUFGIikscz1uKCJpcVdXIiksZj1uKCJGTU5NIiksbD1NYXRoLm1heCxwPU1hdGgubWluLGg9TWF0aC5mbG9vcix2PS9cJChbJCYnYF18XGRcZD98PFtePl0qPikvZyxkPS9cJChbJCYnYF18XGRcZD8pL2c7cigicmVwbGFjZSIsMiwoZnVuY3Rpb24odCxlLG4pe3JldHVybltmdW5jdGlvbihuLHIpe3ZhciBvPXUodGhpcyksaT1udWxsPT1uP3ZvaWQgMDpuW3RdO3JldHVybiB2b2lkIDAhPT1pP2kuY2FsbChuLG8scik6ZS5jYWxsKFN0cmluZyhvKSxuLHIpfSxmdW5jdGlvbih0LGkpe3ZhciB1PW4oZSx0LHRoaXMsaSk7aWYodS5kb25lKXJldHVybiB1LnZhbHVlO3ZhciBoPW8odCksdj1TdHJpbmcodGhpcyksZD0iZnVuY3Rpb24iPT10eXBlb2YgaTtkfHwoaT1TdHJpbmcoaSkpO3ZhciBnPWguZ2xvYmFsO2lmKGcpe3ZhciB5PWgudW5pY29kZTtoLmxhc3RJbmRleD0wfWZvcih2YXIgYj1bXTs7KXt2YXIgbT1mKGgsdik7aWYobnVsbD09PW0pYnJlYWs7aWYoYi5wdXNoKG0pLCFnKWJyZWFrOyIiPT09U3RyaW5nKG1bMF0pJiYoaC5sYXN0SW5kZXg9cyh2LGEoaC5sYXN0SW5kZXgpLHkpKX1mb3IodmFyIGssXz0iIix3PTAseD0wO3g8Yi5sZW5ndGg7eCsrKXttPWJbeF07Zm9yKHZhciBTPVN0cmluZyhtWzBdKSxFPWwocChjKG0uaW5kZXgpLHYubGVuZ3RoKSwwKSxPPVtdLFQ9MTtUPG0ubGVuZ3RoO1QrKylPLnB1c2godm9pZCAwPT09KGs9bVtUXSk/azpTdHJpbmcoaykpO3ZhciBJPW0uZ3JvdXBzO2lmKGQpe3ZhciBqPVtTXS5jb25jYXQoTyxFLHYpO3ZvaWQgMCE9PUkmJmoucHVzaChJKTt2YXIgTT1TdHJpbmcoaS5hcHBseSh2b2lkIDAsaikpfWVsc2UgTT1yKFMsdixFLE8sSSxpKTtFPj13JiYoXys9di5zbGljZSh3LEUpK00sdz1FK1MubGVuZ3RoKX1yZXR1cm4gXyt2LnNsaWNlKHcpfV07ZnVuY3Rpb24gcih0LG4scixvLGEsYyl7dmFyIHU9cit0Lmxlbmd0aCxzPW8ubGVuZ3RoLGY9ZDtyZXR1cm4gdm9pZCAwIT09YSYmKGE9aShhKSxmPXYpLGUuY2FsbChjLGYsKGZ1bmN0aW9uKGUsaSl7dmFyIGM7c3dpdGNoKGkuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiB0O2Nhc2UiYCI6cmV0dXJuIG4uc2xpY2UoMCxyKTtjYXNlIiciOnJldHVybiBuLnNsaWNlKHUpO2Nhc2UiPCI6Yz1hW2kuc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGY9K2k7aWYoMD09PWYpcmV0dXJuIGU7aWYoZj5zKXt2YXIgbD1oKGYvMTApO3JldHVybiAwPT09bD9lOmw8PXM/dm9pZCAwPT09b1tsLTFdP2kuY2hhckF0KDEpOm9bbC0xXStpLmNoYXJBdCgxKTplfWM9b1tmLTFdfXJldHVybiB2b2lkIDA9PT1jPyIiOmN9KSl9fSkpfSxVeWR5OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJIc0hBIiksaT1NYXRoLmFjb3NoLGE9TWF0aC5sb2csYz1NYXRoLnNxcnQsdT1NYXRoLkxOMjtyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiFpfHw3MTAhPU1hdGguZmxvb3IoaShOdW1iZXIuTUFYX1ZBTFVFKSl8fGkoMS8wKSE9MS8wfSx7YWNvc2g6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpPDE/TmFOOnQ+OTQ5MDYyNjUuNjI0MjUxNTY/YSh0KSt1Om8odC0xK2ModC0xKSpjKHQrMSkpfX0pfSxWQzNMOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiUUlwZCIpLGE9MS4udG9QcmVjaXNpb247cih7dGFyZ2V0OiJOdW1iZXIiLHByb3RvOiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe3JldHVybiIxIiE9PWEuY2FsbCgxLHZvaWQgMCl9KSl8fCFvKChmdW5jdGlvbigpe2EuY2FsbCh7fSl9KSl9LHt0b1ByZWNpc2lvbjpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD9hLmNhbGwoaSh0aGlzKSk6YS5jYWxsKGkodGhpcyksdCl9fSl9LFZwSVQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oInprNjAiKSxpPW4oInhEQlIiKSxhPXJbIl9fY29yZS1qc19zaGFyZWRfXyJdfHxvKCJfX2NvcmUtanNfc2hhcmVkX18iLHt9KTsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFbdF18fChhW3RdPXZvaWQgMCE9PWU/ZTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjIuMSIsbW9kZTppPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LFZ1ODE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBHYlkiKSxvPW4oIkpCeTgiKSxpPW4oImRCZysiKSxhPW4oImdscmsiKTt0LmV4cG9ydHM9cigiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24odCl7dmFyIGU9by5mKGEodCkpLG49aS5mO3JldHVybiBuP2UuY29uY2F0KG4odCkpOmV9fSxXRHNSOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJYb2w4IiksaT1NYXRoLmFicztyKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se2lzU2FmZUludGVnZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG8odCkmJmkodCk8PTkwMDcxOTkyNTQ3NDA5OTF9fSl9LFdKa0o6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9Ilx0XG5cdlxmXHIgwqDhmoDigIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIBcdTIwMjhcdTIwMjlcdWZlZmYifSxXS2lIOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJIWUFGIiksbz0iWyIrbigiV0prSiIpKyJdIixpPVJlZ0V4cCgiXiIrbytvKyIqIiksYT1SZWdFeHAobytvKyIqJCIpLGM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPVN0cmluZyhyKGUpKTtyZXR1cm4gMSZ0JiYobj1uLnJlcGxhY2UoaSwiIikpLDImdCYmKG49bi5yZXBsYWNlKGEsIiIpKSxufX07dC5leHBvcnRzPXtzdGFydDpjKDEpLGVuZDpjKDIpLHRyaW06YygzKX19LFdqUmI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlJPZFAiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocih0KSl0aHJvdyBUeXBlRXJyb3IoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3JldHVybiB0fX0sIlgyVSsiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCJtL0w4IiksaT1uKCJYR3dDIik7dC5leHBvcnRzPXI/ZnVuY3Rpb24odCxlLG4pe3JldHVybiBvLmYodCxlLGkoMSxuKSl9OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1uLHR9fSxYR3dDOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fX0sWGUzTDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oImhCak4iKTtyKHt0YXJnZXQ6IkFycmF5IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIShBcnJheS5vZi5jYWxsKHQpaW5zdGFuY2VvZiB0KX0pKX0se29mOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKGUpO2U+dDspaShuLHQsYXJndW1lbnRzW3QrK10pO3JldHVybiBuLmxlbmd0aD1lLG59fSl9LFhvbDg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImhoMXYiKSxvPU1hdGguZmxvb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiFyKHQpJiZpc0Zpbml0ZSh0KSYmbyh0KT09PXR9fSxZR0s0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiYldGaCIpLG89bigiWldhUSIpO3QuZXhwb3J0cz1yKCJTZXQiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSksbyl9LFlOclY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJnNnYvIiksbz1uKCIwRGt5IiksaT1uKCIzM1doIiksYT1uKCJkQmcrIiksYz1uKCIwZWVmIiksdT1uKCJld3ZXIikscz1uKCJSSzN0IiksZj1PYmplY3QuYXNzaWduO3QuZXhwb3J0cz0hZnx8bygoZnVuY3Rpb24oKXt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCk7cmV0dXJuIHRbbl09NywiYWJjZGVmZ2hpamtsbW5vcHFyc3QiLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXR9KSksNyE9Zih7fSx0KVtuXXx8ImFiY2RlZmdoaWprbG1ub3BxcnN0IiE9aShmKHt9LGUpKS5qb2luKCIiKX0pKT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj11KHQpLG89YXJndW1lbnRzLmxlbmd0aCxmPTEsbD1hLmYscD1jLmY7bz5mOylmb3IodmFyIGgsdj1zKGFyZ3VtZW50c1tmKytdKSxkPWw/aSh2KS5jb25jYXQobCh2KSk6aSh2KSxnPWQubGVuZ3RoLHk9MDtnPnk7KWg9ZFt5KytdLHImJiFwLmNhbGwodixoKXx8KG5baF09dltoXSk7cmV0dXJuIG59OmZ9LFpPWGI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIwRGt5Iiksbz1uKCJETXQyIikuc3RhcnQsaT1NYXRoLmFicyxhPURhdGUucHJvdG90eXBlLGM9YS5nZXRUaW1lLHU9YS50b0lTT1N0cmluZzt0LmV4cG9ydHM9cigoZnVuY3Rpb24oKXtyZXR1cm4iMDM4NS0wNy0yNVQwNzowNjozOS45OTlaIiE9dS5jYWxsKG5ldyBEYXRlKC01ZTEzLTEpKX0pKXx8IXIoKGZ1bmN0aW9uKCl7dS5jYWxsKG5ldyBEYXRlKE5hTikpfSkpP2Z1bmN0aW9uKCl7aWYoIWlzRmluaXRlKGMuY2FsbCh0aGlzKSkpdGhyb3cgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7dmFyIHQ9dGhpcy5nZXRVVENGdWxsWWVhcigpLGU9dGhpcy5nZXRVVENNaWxsaXNlY29uZHMoKSxuPXQ8MD8iLSI6dD45OTk5PyIrIjoiIjtyZXR1cm4gbitvKGkodCksbj82OjQsMCkrIi0iK28odGhpcy5nZXRVVENNb250aCgpKzEsMiwwKSsiLSIrbyh0aGlzLmdldFVUQ0RhdGUoKSwyLDApKyJUIitvKHRoaXMuZ2V0VVRDSG91cnMoKSwyLDApKyI6IitvKHRoaXMuZ2V0VVRDTWludXRlcygpLDIsMCkrIjoiK28odGhpcy5nZXRVVENTZWNvbmRzKCksMiwwKSsiLiIrbyhlLDMsMCkrIloifTp1fSxaVWQ4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJwcEdCIiksbz1uKCJIWUFGIiksaT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaSxhLGM9U3RyaW5nKG8oZSkpLHU9cihuKSxzPWMubGVuZ3RoO3JldHVybiB1PDB8fHU+PXM/dD8iIjp2b2lkIDA6KGk9Yy5jaGFyQ29kZUF0KHUpKTw1NTI5Nnx8aT41NjMxOXx8dSsxPT09c3x8KGE9Yy5jaGFyQ29kZUF0KHUrMSkpPDU2MzIwfHxhPjU3MzQzP3Q/Yy5jaGFyQXQodSk6aTp0P2Muc2xpY2UodSx1KzIpOmEtNTYzMjArKGktNTUyOTY8PDEwKSs2NTUzNn19O3QuZXhwb3J0cz17Y29kZUF0OmkoITEpLGNoYXJBdDppKCEwKX19LFpXYVE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJtL0w4IikuZixvPW4oImZITVkiKSxpPW4oIjRzeXciKSxhPW4oIitNTHgiKSxjPW4oIkdhclUiKSx1PW4oIkltWk4iKSxzPW4oImZkQXkiKSxmPW4oIkppWmIiKSxsPW4oImc2di8iKSxwPW4oIjhZT2EiKS5mYXN0S2V5LGg9bigiYWZPOCIpLHY9aC5zZXQsZD1oLmdldHRlckZvcjt0LmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHQsZSxuLHMpe3ZhciBmPXQoKGZ1bmN0aW9uKHQscil7Yyh0LGYsZSksdih0LHt0eXBlOmUsaW5kZXg6byhudWxsKSxmaXJzdDp2b2lkIDAsbGFzdDp2b2lkIDAsc2l6ZTowfSksbHx8KHQuc2l6ZT0wKSxudWxsIT1yJiZ1KHIsdFtzXSx0LG4pfSkpLGg9ZChlKSxnPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvLGk9aCh0KSxhPXkodCxlKTtyZXR1cm4gYT9hLnZhbHVlPW46KGkubGFzdD1hPXtpbmRleDpvPXAoZSwhMCksa2V5OmUsdmFsdWU6bixwcmV2aW91czpyPWkubGFzdCxuZXh0OnZvaWQgMCxyZW1vdmVkOiExfSxpLmZpcnN0fHwoaS5maXJzdD1hKSxyJiYoci5uZXh0PWEpLGw/aS5zaXplKys6dC5zaXplKyssIkYiIT09byYmKGkuaW5kZXhbb109YSkpLHR9LHk9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWgodCksbz1wKGUpO2lmKCJGIiE9PW8pcmV0dXJuIHIuaW5kZXhbb107Zm9yKG49ci5maXJzdDtuO249bi5uZXh0KWlmKG4ua2V5PT1lKXJldHVybiBufTtyZXR1cm4gaShmLnByb3RvdHlwZSx7Y2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9aCh0aGlzKSxlPXQuaW5kZXgsbj10LmZpcnN0O247KW4ucmVtb3ZlZD0hMCxuLnByZXZpb3VzJiYobi5wcmV2aW91cz1uLnByZXZpb3VzLm5leHQ9dm9pZCAwKSxkZWxldGUgZVtuLmluZGV4XSxuPW4ubmV4dDt0LmZpcnN0PXQubGFzdD12b2lkIDAsbD90LnNpemU9MDp0aGlzLnNpemU9MH0sZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPWgodGhpcyksbj15KHRoaXMsdCk7aWYobil7dmFyIHI9bi5uZXh0LG89bi5wcmV2aW91cztkZWxldGUgZS5pbmRleFtuLmluZGV4XSxuLnJlbW92ZWQ9ITAsbyYmKG8ubmV4dD1yKSxyJiYoci5wcmV2aW91cz1vKSxlLmZpcnN0PT1uJiYoZS5maXJzdD1yKSxlLmxhc3Q9PW4mJihlLmxhc3Q9byksbD9lLnNpemUtLTp0aGlzLnNpemUtLX1yZXR1cm4hIW59LGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49aCh0aGlzKSxyPWEodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtlPWU/ZS5uZXh0Om4uZmlyc3Q7KWZvcihyKGUudmFsdWUsZS5rZXksdGhpcyk7ZSYmZS5yZW1vdmVkOyllPWUucHJldmlvdXN9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4hIXkodGhpcyx0KX19KSxpKGYucHJvdG90eXBlLG4/e2dldDpmdW5jdGlvbih0KXt2YXIgZT15KHRoaXMsdCk7cmV0dXJuIGUmJmUudmFsdWV9LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiBnKHRoaXMsMD09PXQ/MDp0LGUpfX06e2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gZyh0aGlzLHQ9MD09PXQ/MDp0LHQpfX0pLGwmJnIoZi5wcm90b3R5cGUsInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzKS5zaXplfX0pLGZ9LHNldFN0cm9uZzpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZSsiIEl0ZXJhdG9yIixvPWQoZSksaT1kKHIpO3ModCxlLChmdW5jdGlvbih0LGUpe3YodGhpcyx7dHlwZTpyLHRhcmdldDp0LHN0YXRlOm8odCksa2luZDplLGxhc3Q6dm9pZCAwfSl9KSwoZnVuY3Rpb24oKXtmb3IodmFyIHQ9aSh0aGlzKSxlPXQua2luZCxuPXQubGFzdDtuJiZuLnJlbW92ZWQ7KW49bi5wcmV2aW91cztyZXR1cm4gdC50YXJnZXQmJih0Lmxhc3Q9bj1uP24ubmV4dDp0LnN0YXRlLmZpcnN0KT8ia2V5cyI9PWU/e3ZhbHVlOm4ua2V5LGRvbmU6ITF9OiJ2YWx1ZXMiPT1lP3t2YWx1ZTpuLnZhbHVlLGRvbmU6ITF9Ont2YWx1ZTpbbi5rZXksbi52YWx1ZV0sZG9uZTohMX06KHQudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KX0pLG4/ImVudHJpZXMiOiJ2YWx1ZXMiLCFuLCEwKSxmKGUpfX19LFpmRHY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImhoMXYiKSxvPW4oIjZMV0EiKSxpPW4oInRpS3AiKSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBvKHQpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKG49dC5jb25zdHJ1Y3Rvcil8fG4hPT1BcnJheSYmIW8obi5wcm90b3R5cGUpP3IobikmJm51bGw9PT0obj1uW2ldKSYmKG49dm9pZCAwKTpuPXZvaWQgMCksbmV3KHZvaWQgMD09PW4/QXJyYXk6bikoMD09PWU/MDplKX19LFprOFg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoInN1cCIpfSx7c3VwOmZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcywic3VwIiwiIiwiIil9fSl9LGE1N246ZnVuY3Rpb24odCxlLG4pe24oImRHL24iKSgic2VhcmNoIil9LGE1Tks6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPU1hdGgubG9nLGk9TWF0aC5MT0cxMEU7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7bG9nMTA6ZnVuY3Rpb24odCl7cmV0dXJuIG8odCkqaX19KX0sYWZPODpmdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpLGE9bigiZjVwMSIpLGM9bigiMm9SbyIpLHU9bigiaGgxdiIpLHM9bigiWDJVKyIpLGY9bigiVVRWUyIpLGw9bigiOTNJMCIpLHA9bigiMEJLMiIpO2lmKGEpe3ZhciBoPW5ldygwLGMuV2Vha01hcCksdj1oLmdldCxkPWguaGFzLGc9aC5zZXQ7cj1mdW5jdGlvbih0LGUpe3JldHVybiBnLmNhbGwoaCx0LGUpLGV9LG89ZnVuY3Rpb24odCl7cmV0dXJuIHYuY2FsbChoLHQpfHx7fX0saT1mdW5jdGlvbih0KXtyZXR1cm4gZC5jYWxsKGgsdCl9fWVsc2V7dmFyIHk9bCgic3RhdGUiKTtwW3ldPSEwLHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcyh0LHksZSksZX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gZih0LHkpP3RbeV06e319LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGYodCx5KX19dC5leHBvcnRzPXtzZXQ6cixnZXQ6byxoYXM6aSxlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBpKHQpP28odCk6cih0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbjtpZighdShlKXx8KG49byhlKSkudHlwZSE9PXQpdGhyb3cgVHlwZUVycm9yKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIG59fX19LCJiK1ZUIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMm9SbyIpLG89bigiV0tpSCIpLnRyaW0saT1uKCJXSmtKIiksYT1yLnBhcnNlRmxvYXQsYz0xL2EoaSsiLTAiKSE9LTEvMDt0LmV4cG9ydHM9Yz9mdW5jdGlvbih0KXt2YXIgZT1vKFN0cmluZyh0KSksbj1hKGUpO3JldHVybiAwPT09biYmIi0iPT1lLmNoYXJBdCgwKT8tMDpufTphfSxiV0ZoOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMm9SbyIpLGk9bigibE1xNSIpLGE9bigiYnVzRSIpLGM9bigiOFlPYSIpLHU9bigiSW1aTiIpLHM9bigiR2FyVSIpLGY9bigiaGgxdiIpLGw9bigiMERreSIpLHA9bigiSEg0byIpLGg9bigiMUU1eiIpLHY9bigiY1ZZSCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixkLGcpe3ZhciB5PW9bdF0sYj15JiZ5LnByb3RvdHlwZSxtPXksaz1kPyJzZXQiOiJhZGQiLF89e30sdz1mdW5jdGlvbih0KXt2YXIgZT1iW3RdO2EoYix0LCJhZGQiPT10P2Z1bmN0aW9uKHQpe3JldHVybiBlLmNhbGwodGhpcywwPT09dD8wOnQpLHRoaXN9OiJkZWxldGUiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoZyYmIWYodCkpJiZlLmNhbGwodGhpcywwPT09dD8wOnQpfToiZ2V0Ij09dD9mdW5jdGlvbih0KXtyZXR1cm4gZyYmIWYodCk/dm9pZCAwOmUuY2FsbCh0aGlzLDA9PT10PzA6dCl9OiJoYXMiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoZyYmIWYodCkpJiZlLmNhbGwodGhpcywwPT09dD8wOnQpfTpmdW5jdGlvbih0LG4pe3JldHVybiBlLmNhbGwodGhpcywwPT09dD8wOnQsbiksdGhpc30pfTtpZihpKHQsImZ1bmN0aW9uIiE9dHlwZW9mIHl8fCEoZ3x8Yi5mb3JFYWNoJiYhbCgoZnVuY3Rpb24oKXsobmV3IHkpLmVudHJpZXMoKS5uZXh0KCl9KSkpKSltPW4uZ2V0Q29uc3RydWN0b3IoZSx0LGQsayksYy5SRVFVSVJFRD0hMDtlbHNlIGlmKGkodCwhMCkpe3ZhciB4PW5ldyBtLFM9eFtrXShnP3t9Oi0wLDEpIT14LEU9bCgoZnVuY3Rpb24oKXt4LmhhcygxKX0pKSxPPXAoKGZ1bmN0aW9uKHQpe25ldyB5KHQpfSkpLFQ9IWcmJmwoKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyB5LGU9NTtlLS07KXRba10oZSxlKTtyZXR1cm4hdC5oYXMoLTApfSkpO098fCgobT1lKChmdW5jdGlvbihlLG4pe3MoZSxtLHQpO3ZhciByPXYobmV3IHksZSxtKTtyZXR1cm4gbnVsbCE9biYmdShuLHJba10scixkKSxyfSkpKS5wcm90b3R5cGU9YixiLmNvbnN0cnVjdG9yPW0pLChFfHxUKSYmKHcoImRlbGV0ZSIpLHcoImhhcyIpLGQmJncoImdldCIpKSwoVHx8UykmJncoayksZyYmYi5jbGVhciYmZGVsZXRlIGIuY2xlYXJ9cmV0dXJuIF9bdF09bSxyKHtnbG9iYWw6ITAsZm9yY2VkOm0hPXl9LF8pLGgobSx0KSxnfHxuLnNldFN0cm9uZyhtLHQsZCksbX19LGJycDI6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJEYXRlIixzdGF0OiEwfSx7bm93OmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSl9LGJ1c0U6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIlZwSVQiKSxpPW4oIlgyVSsiKSxhPW4oIlVUVlMiKSxjPW4oInprNjAiKSx1PW4oIm5vR28iKSxzPW4oImFmTzgiKSxmPXMuZ2V0LGw9cy5lbmZvcmNlLHA9U3RyaW5nKHUpLnNwbGl0KCJ0b1N0cmluZyIpO28oImluc3BlY3RTb3VyY2UiLChmdW5jdGlvbih0KXtyZXR1cm4gdS5jYWxsKHQpfSkpLCh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sbyl7dmFyIHU9ISFvJiYhIW8udW5zYWZlLHM9ISFvJiYhIW8uZW51bWVyYWJsZSxmPSEhbyYmISFvLm5vVGFyZ2V0R2V0OyJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoInN0cmluZyIhPXR5cGVvZiBlfHxhKG4sIm5hbWU="
}

github/deemru/w8io/c3f4982 
3.55 ms