Skip to contentLy8gPGJsb2NrOnNldHVwOjE+CmZ1bmN0aW9uIGNhcGl0YWxpemVGaXJzdExldHRlcihzdHJpbmcpIHsKICByZXR1cm4gc3RyaW5nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyaW5nLnNsaWNlKDEpOwp9Ci8vIDwvYmxvY2s6c2V0dXA+CgovLyA8YmxvY2s6Y29uZmlnOjA+CmNvbnN0IGNvbmZpZyA9IHsKICB0eXBlOiAndHJlZW1hcCcsCiAgZGF0YTogewogICAgZGF0YXNldHM6IFt7CiAgICAgIHRyZWU6IERhdGEuc3RhdHNCeVN0YXRlLAogICAgICBrZXk6ICdhcmVhJywKICAgICAgZ3JvdXBzOiBbJ2RpdmlzaW9uJywgJ3N0YXRlJ10sCiAgICAgIHNwYWNpbmc6IDIsCiAgICAgIGJvcmRlcldpZHRoOiAxLAogICAgICBib3JkZXJDb2xvcjogJ3JnYmEoMjAwLDIwMCwyMDAsMSknLAogICAgICBiYWNrZ3JvdW5kQ29sb3I6IChjdHgpID0+IHsKICAgICAgICBpZiAoY3R4LnR5cGUgIT09ICdkYXRhJykgewogICAgICAgICAgcmV0dXJuICd0cmFuc3BhcmVudCc7CiAgICAgICAgfQogICAgICAgIGlmIChjdHguZGF0YXNldC5kaXNwbGF5TW9kZSA9PT0gJ2NvbnRhaW5lckJveGVzJykgewogICAgICAgICAgcmV0dXJuICdyZ2JhKDIyMCwyMzAsMjIwLDAuMyknOwogICAgICAgIH0KICAgICAgICByZXR1cm4gY3R4LnJhdy5sID8gJ3JnYigyMjAsMjMwLDIyMCknIDogJ2xpZ2h0Z3JheSc7CiAgICAgIH0sCiAgICAgIGRpc3BsYXlNb2RlOiAnY29udGFpbmVyQm94ZXMnLAogICAgICBjYXB0aW9uczogewogICAgICAgIHBhZGRpbmc6IDYsCiAgICAgIH0sCiAgICB9XQogIH0sCiAgb3B0aW9uczogewogICAgcGx1Z2luczogewogICAgICB0aXRsZTogewogICAgICAgIGRpc3BsYXk6IHRydWUsCiAgICAgICAgdGV4dDogJ1VTIGFyZWEgYnkgZGl2aXNpb24gLyBzdGF0ZScKICAgICAgfSwKICAgICAgbGVnZW5kOiB7CiAgICAgICAgZGlzcGxheTogZmFsc2UKICAgICAgfSwKICAgICAgdG9vbHRpcDogewogICAgICAgIGNhbGxiYWNrczogewogICAgICAgICAgdGl0bGUoaXRlbXMpIHsKICAgICAgICAgICAgcmV0dXJuIGNhcGl0YWxpemVGaXJzdExldHRlcihpdGVtc1swXS5kYXRhc2V0LmtleSk7CiAgICAgICAgICB9LAogICAgICAgICAgbGFiZWwoaXRlbSkgewogICAgICAgICAgICBjb25zdCBkYXRhSXRlbSA9IGl0ZW0ucmF3OwogICAgICAgICAgICBjb25zdCBvYmogPSBkYXRhSXRlbS5fZGF0YTsKICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBvYmouc3RhdGUgfHwgb2JqLmRpdmlzaW9uIHx8IG9iai5yZWdpb247CiAgICAgICAgICAgIHJldHVybiBsYWJlbCArICc6ICcgKyBkYXRhSXRlbS52OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfTsKLy8gPC9ibG9jazpjb25maWc+Cgptb2R1bGUuZXhwb3J0cyA9IHsKICBjb25maWcsCiAgY2hvaWNlczogWwogICAgewogICAgICBwYXRoOiAnZGF0YS5kYXRhc2V0cy4wLmRpc3BsYXlNb2RlJywKICAgICAgdmFsdWVzOiBbJ2NvbnRhaW5lckJveGVzJywgJ2hlYWRlckJveGVzJ10sCiAgICAgIGNvbnRyb2w6ICdyYWRpbycsCiAgICAgIGxhYmVsOiAnRGlzcGxheSBtb2RlJwogICAgfQogIF0KfTs=