WyI8IS0tIEZhY2Vib29rIFBpeGVsIENvZGUgLS0+XG4gICAgPHNjcmlwdD5cbiAgICAgICAgZnVuY3Rpb24gZ2V0RkJDb29raWUoY25hbWUpIHtcbiAgICAgICAgICAgIGxldCBuYW1lID0gY25hbWUgKyBcIj1cIjtcbiAgICAgICAgICAgIGxldCBkZWNvZGVkQ29va2llID0gZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZSk7XG4gICAgICAgICAgICBsZXQgY2EgPSBkZWNvZGVkQ29va2llLnNwbGl0KCc7Jyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGMgPSBjYVtpXTtcbiAgICAgICAgICAgICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT0gJyAnKSB7XG4gICAgICAgICAgICAgICAgICAgIGMgPSBjLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0VXJsUGFyYW1ldGVyKHBhcmFtKSB7XG4gICAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgICAgICAgcmV0dXJuIHVybFBhcmFtcy5nZXQocGFyYW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICFmdW5jdGlvbiAoZiwgYiwgZSwgdiwgbiwgdCwgcykge1xuICAgICAgICAgICAgaWYgKGYuZmJxKSByZXR1cm47XG4gICAgICAgICAgICBuID0gZi5mYnEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgbi5jYWxsTWV0aG9kID9cbiAgICAgICAgICAgICAgICAgICAgbi5jYWxsTWV0aG9kLmFwcGx5KG4sIGFyZ3VtZW50cykgOiBuLnF1ZXVlLnB1c2goYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIWYuX2ZicSkgZi5fZmJxID0gbjtcbiAgICAgICAgICAgIG4ucHVzaCA9IG47XG4gICAgICAgICAgICBuLmxvYWRlZCA9ICEwO1xuICAgICAgICAgICAgbi52ZXJzaW9uID0gXCIyLjBcIjtcbiAgICAgICAgICAgIG4ucXVldWUgPSBbXTtcbiAgICAgICAgICAgIHQgPSBiLmNyZWF0ZUVsZW1lbnQoZSk7XG4gICAgICAgICAgICB0LmFzeW5jID0gITA7XG4gICAgICAgICAgICB0LnNyYyA9IHY7XG4gICAgICAgICAgICBzID0gYi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTtcbiAgICAgICAgICAgIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCwgcyk7XG4gICAgICAgIH0od2luZG93LCBkb2N1bWVudCwgXCJzY3JpcHRcIixcbiAgICAgICAgICAgIFwiaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qc1wiKTtcblxuICAgICAgICBmYnEoXCJpbml0XCIsICcxNTE5MTk2NzYzMDQ5NDQyJyk7XG4gICAgICAgICAgICAgICAgbGV0IGV2ZW50VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIGxldCBmYnAgPSBnZXRGQkNvb2tpZSgnX2ZicCcpO1xuICAgICAgICBsZXQgZmJjID0gZ2V0RkJDb29raWUoJ19mYmMnKTtcbiAgICAgICAgbGV0IGZiY2xpZCA9IGdldFVybFBhcmFtZXRlcignZmJjbGlkJyk7XG5cbiAgICAgICAgXG4gICAgICAgIGlmIChmYmMgPT09IFwiXCIgJiYgZmJjbGlkKSB7XG4gICAgICAgICAgICBmYmMgPSBgZmIuMS4ke2V2ZW50VGltZX0uJHtmYmNsaWR9YDtcbiAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHhJZCA9IGdldFVybFBhcmFtZXRlcignZm9ybV9zdWJtaXNzaW9uX2lkJykgPz8gZXZlbnRUaW1lO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IGdldFVybFBhcmFtZXRlcignZm9ybV9zdWJtaXNzaW9uX2lkJykgPyAnTGVhZCcgOiAnUGFnZVZpZXcnO1xuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRJRCA9IGBwYWdlLiR7ZXZlbnR9LnR4XyR7dHhJZH1gO1xuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgICAgICAgICAgbGV0IGRlZHVwbGljYXRpb25LZXkgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcG9zdCA9IHtcbiAgICAgICAgICAgICAgZG9tYWluOiAnYmFtaWZpdC5ubCcsXG4gICAgICAgICAgICAgIGNvbnZlcnNpb25fdHlwZTogJ1BhZ2VWaWV3JyxcbiAgICAgICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgICAgICAgICAgZXZlbnRfaWQ6IGV2ZW50SUQsXG4gICAgICAgICAgICAgIGV2ZW50X3RpbWU6IGV2ZW50VGltZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChnZXRVcmxQYXJhbWV0ZXIoXCJwYWdlc2VcIikpIHtcbiAgICAgICAgICAgICAgcG9zdC5lbWFpbCA9IGdldFVybFBhcmFtZXRlcihcInBhZ2VzZVwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGdldFVybFBhcmFtZXRlcihcInBhZ2VzZlwiKSkge1xuICAgICAgICAgICAgICBwb3N0LmZpcnN0X25hbWUgPSBnZXRVcmxQYXJhbWV0ZXIoXCJwYWdlc2ZcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChnZXRVcmxQYXJhbWV0ZXIoXCJwYWdlc2xcIikpIHtcbiAgICAgICAgICAgICAgcG9zdC5sYXN0X25hbWUgPSBnZXRVcmxQYXJhbWV0ZXIoXCJwYWdlc2xcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmYnAgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgcG9zdC5mYnAgPSBmYnA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmYmMgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgcG9zdC5mYmMgPSBmYmM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHVybCA9ICdodHRwczovL2JhbWlmaXQubmwvY2xpZW50L2ZhY2Vib29rLWNvbnZlcnNpb24vZXZlbnRzJztcbiAgICAgICAgICAgIGxldCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgICAgICAgIHhoci5vcGVuKFwiUE9TVFwiLCB1cmwsIHRydWUpO1xuICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoXCJDb250ZW50LXR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04XCIpO1xuICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoXCJYLVJlcXVlc3RlZC1XaXRoXCIsIFwiWE1MSHR0cFJlcXVlc3RcIik7XG4gICAgICAgICAgICB4aHIuc2VuZChKU09OLnN0cmluZ2lmeShwb3N0KSk7XG4gICAgICAgIFxuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGxldCBldmVudFN0b3JhZ2VLZXkgPSBkZWR1cGxpY2F0aW9uS2V5ID8gJ2ZiX2V2ZW50XycgKyBkZWR1cGxpY2F0aW9uS2V5IDogbnVsbDtcbiAgICAgICAgICAgIGxldCBldmVudFRyYWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChldmVudFN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBldmVudFRyYWNrZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShldmVudFN0b3JhZ2VLZXkpICE9PSBudWxsO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbG9jYWxTdG9yYWdlIG1heSBiZSB1bmF2YWlsYWJsZSAocHJpdmF0ZSBtb2RlIC8gZGlzYWJsZWQgc3RvcmFnZSk7IGZpcmUgYW55d2F5LlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFldmVudFRyYWNrZWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmJEYXRhID0ge307XG5cbiAgICAgICAgICAgICAgICBpZiAoZmJwICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGZiRGF0YS5mYnAgPSBmYnA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGZiYyAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICBmYkRhdGEuZmJjID0gZmJjO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGZicShcInRyYWNrXCIsICdQYWdlVmlldycsIGZiRGF0YSwgeyBldmVudElEOiBldmVudElEIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50U3RvcmFnZUtleSkge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oZXZlbnRTdG9yYWdlS2V5LCBldmVudFRpbWUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBzdG9yYWdlIGZhaWx1cmVzIChxdW90YSAvIHByaXZhdGUgbW9kZSkuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIDwvc2NyaXB0PlxuICAgIDwhLS0gRW5kIEZhY2Vib29rIFBpeGVsIENvZGUgLS0+XG4iLHsibmFtZSI6ImZiIiwibG9jYXRpb24iOiJoZWFkIiwiY29uc2VudFR5cGUiOiJzdGF0aXN0aWNhbCIsImNvbnRlbnQiOiI8IS0tIEZhY2Vib29rIFBpeGVsIENvZGUgLS0+XG4gICAgPHNjcmlwdD5cbiAgICAgICAgZnVuY3Rpb24gZ2V0RkJDb29raWUoY25hbWUpIHtcbiAgICAgICAgICAgIGxldCBuYW1lID0gY25hbWUgKyBcIj1cIjtcbiAgICAgICAgICAgIGxldCBkZWNvZGVkQ29va2llID0gZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZSk7XG4gICAgICAgICAgICBsZXQgY2EgPSBkZWNvZGVkQ29va2llLnNwbGl0KCc7Jyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGMgPSBjYVtpXTtcbiAgICAgICAgICAgICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT0gJyAnKSB7XG4gICAgICAgICAgICAgICAgICAgIGMgPSBjLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0VXJsUGFyYW1ldGVyKHBhcmFtKSB7XG4gICAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgICAgICAgcmV0dXJuIHVybFBhcmFtcy5nZXQocGFyYW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICFmdW5jdGlvbiAoZiwgYiwgZSwgdiwgbiwgdCwgcykge1xuICAgICAgICAgICAgaWYgKGYuZmJxKSByZXR1cm47XG4gICAgICAgICAgICBuID0gZi5mYnEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgbi5jYWxsTWV0aG9kID9cbiAgICAgICAgICAgICAgICAgICAgbi5jYWxsTWV0aG9kLmFwcGx5KG4sIGFyZ3VtZW50cykgOiBuLnF1ZXVlLnB1c2goYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIWYuX2ZicSkgZi5fZmJxID0gbjtcbiAgICAgICAgICAgIG4ucHVzaCA9IG47XG4gICAgICAgICAgICBuLmxvYWRlZCA9ICEwO1xuICAgICAgICAgICAgbi52ZXJzaW9uID0gXCIyLjBcIjtcbiAgICAgICAgICAgIG4ucXVldWUgPSBbXTtcbiAgICAgICAgICAgIHQgPSBiLmNyZWF0ZUVsZW1lbnQoZSk7XG4gICAgICAgICAgICB0LmFzeW5jID0gITA7XG4gICAgICAgICAgICB0LnNyYyA9IHY7XG4gICAgICAgICAgICBzID0gYi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTtcbiAgICAgICAgICAgIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCwgcyk7XG4gICAgICAgIH0od2luZG93LCBkb2N1bWVudCwgXCJzY3JpcHRcIixcbiAgICAgICAgICAgIFwiaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qc1wiKTtcblxuICAgICAgICBmYnEoXCJpbml0XCIsICcxNTE5MTk2NzYzMDQ5NDQyJyk7XG4gICAgICAgICAgICAgICAgbGV0IGV2ZW50VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIGxldCBmYnAgPSBnZXRGQkNvb2tpZSgnX2ZicCcpO1xuICAgICAgICBsZXQgZmJjID0gZ2V0RkJDb29raWUoJ19mYmMnKTtcbiAgICAgICAgbGV0IGZiY2xpZCA9IGdldFVybFBhcmFtZXRlcignZmJjbGlkJyk7XG5cbiAgICAgICAgXG4gICAgICAgIGlmIChmYmMgPT09IFwiXCIgJiYgZmJjbGlkKSB7XG4gICAgICAgICAgICBmYmMgPSBgZmIuMS4ke2V2ZW50VGltZX0uJHtmYmNsaWR9YDtcbiAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHhJZCA9IGdldFVybFBhcmFtZXRlcignZm9ybV9zdWJtaXNzaW9uX2lkJykgPz8gZXZlbnRUaW1lO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IGdldFVybFBhcmFtZXRlcignZm9ybV9zdWJtaXNzaW9uX2lkJykgPyAnTGVhZCcgOiAnUGFnZVZpZXcnO1xuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRJRCA9IGBwYWdlLiR7ZXZlbnR9LnR4XyR7dHhJZH1gO1xuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgICAgICAgICAgbGV0IGRlZHVwbGljYXRpb25LZXkgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcG9zdCA9IHtcbiAgICAgICAgICAgICAgZG9tYWluOiAnYmFtaWZpdC5ubCcsXG4gICAgICAgICAgICAgIGNvbnZlcnNpb25fdHlwZTogJ1BhZ2VWaWV3JyxcbiAgICAgICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgICAgICAgICAgZXZlbnRfaWQ6IGV2ZW50SUQsXG4gICAgICAgICAgICAgIGV2ZW50X3RpbWU6IGV2ZW50VGltZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChnZXRVcmxQYXJhbWV0ZXIoXCJwYWdlc2VcIikpIHtcbiAgICAgICAgICAgICAgcG9zdC5lbWFpbCA9IGdldFVybFBhcmFtZXRlcihcInBhZ2VzZVwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGdldFVybFBhcmFtZXRlcihcInBhZ2VzZlwiKSkge1xuICAgICAgICAgICAgICBwb3N0LmZpcnN0X25hbWUgPSBnZXRVcmxQYXJhbWV0ZXIoXCJwYWdlc2ZcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChnZXRVcmxQYXJhbWV0ZXIoXCJwYWdlc2xcIikpIHtcbiAgICAgICAgICAgICAgcG9zdC5sYXN0X25hbWUgPSBnZXRVcmxQYXJhbWV0ZXIoXCJwYWdlc2xcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmYnAgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgcG9zdC5mYnAgPSBmYnA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmYmMgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgcG9zdC5mYmMgPSBmYmM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHVybCA9ICdodHRwczovL2JhbWlmaXQubmwvY2xpZW50L2ZhY2Vib29rLWNvbnZlcnNpb24vZXZlbnRzJztcbiAgICAgICAgICAgIGxldCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgICAgICAgIHhoci5vcGVuKFwiUE9TVFwiLCB1cmwsIHRydWUpO1xuICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoXCJDb250ZW50LXR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04XCIpO1xuICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoXCJYLVJlcXVlc3RlZC1XaXRoXCIsIFwiWE1MSHR0cFJlcXVlc3RcIik7XG4gICAgICAgICAgICB4aHIuc2VuZChKU09OLnN0cmluZ2lmeShwb3N0KSk7XG4gICAgICAgIFxuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGxldCBldmVudFN0b3JhZ2VLZXkgPSBkZWR1cGxpY2F0aW9uS2V5ID8gJ2ZiX2V2ZW50XycgKyBkZWR1cGxpY2F0aW9uS2V5IDogbnVsbDtcbiAgICAgICAgICAgIGxldCBldmVudFRyYWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChldmVudFN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBldmVudFRyYWNrZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShldmVudFN0b3JhZ2VLZXkpICE9PSBudWxsO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbG9jYWxTdG9yYWdlIG1heSBiZSB1bmF2YWlsYWJsZSAocHJpdmF0ZSBtb2RlIC8gZGlzYWJsZWQgc3RvcmFnZSk7IGZpcmUgYW55d2F5LlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFldmVudFRyYWNrZWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmJEYXRhID0ge307XG5cbiAgICAgICAgICAgICAgICBpZiAoZmJwICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGZiRGF0YS5mYnAgPSBmYnA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGZiYyAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICBmYkRhdGEuZmJjID0gZmJjO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGZicShcInRyYWNrXCIsICdQYWdlVmlldycsIGZiRGF0YSwgeyBldmVudElEOiBldmVudElEIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50U3RvcmFnZUtleSkge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oZXZlbnRTdG9yYWdlS2V5LCBldmVudFRpbWUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBzdG9yYWdlIGZhaWx1cmVzIChxdW90YSAvIHByaXZhdGUgbW9kZSkuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIDwvc2NyaXB0PlxuICAgIDwhLS0gRW5kIEZhY2Vib29rIFBpeGVsIENvZGUgLS0+XG4iLCJhdHRyaWJ1dGVzIjpudWxsfSx7Im5hbWUiOiJNYWlsYmx1ZSB0cmFja2luZyIsImxvY2F0aW9uIjoiaGVhZCIsImNvbnNlbnRUeXBlIjoibWFya2V0aW5nIiwiY29udGVudCI6IjxzY3JpcHQ+XG4gICAgKGZ1bmN0aW9uKGUsdCxvLG4scCxyLGkpe2UudmlzaXRvckdsb2JhbE9iamVjdEFsaWFzPW47ZVtlLnZpc2l0b3JHbG9iYWxPYmplY3RBbGlhc109ZVtlLnZpc2l0b3JHbG9iYWxPYmplY3RBbGlhc118fGZ1bmN0aW9uKCl7KGVbZS52aXNpdG9yR2xvYmFsT2JqZWN0QWxpYXNdLnE9ZVtlLnZpc2l0b3JHbG9iYWxPYmplY3RBbGlhc10ucXx8W10pLnB1c2goYXJndW1lbnRzKX07ZVtlLnZpc2l0b3JHbG9iYWxPYmplY3RBbGlhc10ubD0obmV3IERhdGUpLmdldFRpbWUoKTtyPXQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtyLnNyYz1vO3IuYXN5bmM9dHJ1ZTtpPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIilbMF07aS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyLGkpfSkod2luZG93LGRvY3VtZW50LFwiaHR0cHM6Ly9kaWZmdXNlci1jZG4uYXBwLXVzMS5jb20vZGlmZnVzZXIvZGlmZnVzZXIuanNcIixcInZnb1wiKTtcbiAgICB2Z28oJ3NldEFjY291bnQnLCAnNjk0OTMxNDInKTtcbiAgICB2Z28oJ3NldFRyYWNrQnlEZWZhdWx0JywgdHJ1ZSk7XG5cbiAgICB2Z28oJ3Byb2Nlc3MnKTtcbjwvc2NyaXB0PlxuIiwiYXR0cmlidXRlcyI6W119XQ==
Ga naar hoofdinhoud
App
Community
Kookboek
E-books
Over mij
Gratis
App
Community
Kookboek
E-books
Over mij
Gratis
Contact
Heb je een vraag of kom je ergens niet uit?
Of ben je benieuwd naar de mogelijkheden voor een samenwerking?
Neem dan contact met mij op via
[email protected]
.
Ik probeer je vraag zo snel mogelijk te beantwoorden.
© Bamifit — kvk: 83824057
Algemene voorwaarden
Privacybeleid
W10=
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,