diff --git a/.todo b/.todo index 63db41b..9dd3b05 100644 --- a/.todo +++ b/.todo @@ -56,6 +56,7 @@ Features: Inline Code: ☐ Add copy button via settings and parameter #88 ☐ Add optional pandoc style marking + ☐ Empty backticks followed by new line "``\n" disappear General: Improvements: diff --git a/main.js b/main.js index 839f7ed..fec6d3a 100644 --- a/main.js +++ b/main.js @@ -18107,8 +18107,10 @@ function all2(parent) { // src/Parsing/InlineCodeParsing.ts function parseInlineCode(codeText) { - const match = /^{( *(?:\w+(?: +(?:(?:[^\s"']+|"[^"]*"|'[^']*')+))*)? *)} *?([^ ].*?)$/.exec(codeText); + const match = /^{((?:[^"'{}\\]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')*)} *?([^ ].*)$/.exec(codeText); + console.log(match); if (typeof (match == null ? void 0 : match[1]) !== "undefined" && typeof (match == null ? void 0 : match[2]) !== "undefined") { + console.log(match); if (match[1] === "") return { parameters: null, text: match[2] }; else @@ -18136,7 +18138,7 @@ function parseInlineCodeParameterString(parameterString, inlineCodeParameters) { if (parameterString.startsWith("title:")) { const titleMatch = /(["']?)([^\1]+)\1/.exec(parameterString.slice("title:".length)); if (titleMatch) - inlineCodeParameters.title = titleMatch[2].trim(); + inlineCodeParameters.title = titleMatch[2].trim().replace(/\\{/g, "{"); } else if (parameterString === "icon" || parameterString.startsWith("icon:") && parameterString.toLowerCase() === "icon:true") inlineCodeParameters.icon = true; } @@ -19864,4 +19866,4 @@ var CodeStylerPlugin = class extends import_obsidian9.Plugin { @simonwep/pickr/dist/pickr.min.js: (*! Pickr 1.9.0 MIT | https://github.com/Simonwep/pickr *) */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3V0aWxzL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdXRpbHMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy91dGlscy9oc3ZhY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9saWJzL21vdmVhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvbGlicy9zZWxlY3RhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdGVtcGxhdGUuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3NyYy9pbmRleC50cyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3BpY2tyLmpzIiwgIm5vZGVfbW9kdWxlcy9qc29uNS9kaXN0L2luZGV4LmpzIiwgInNyYy9tYWluLnRzIiwgInNyYy9TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3NUYWIudHMiLCAibm9kZV9tb2R1bGVzL2NvbG9ydHJhbnNsYXRvci9lc20vaW5kZXguanMiLCAic3JjL0FwcGx5U3R5bGluZy50cyIsICJzcmMvRWRpdGluZ1ZpZXcudHMiLCAic3JjL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZy50cyIsICJzcmMvRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJncy50cyIsICJzcmMvUmVmZXJlbmNpbmcudHMiLCAic3JjL1BhcnNpbmcvUmVmZXJlbmNlUGFyc2luZy50cyIsICJzcmMvUmVhZGluZ1ZpZXcudHMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2NvbG9yLmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kZXZsb3AvbGliL2RlZmF1bHQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3R5cGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9kZWZpbmVkLWluZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3hsaW5rLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3N2Zy5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2xpYi9jcmVhdGUtaC5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlLWxvY2F0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvd2ViLW5hbWVzcGFjZXMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLXBhcnNlNS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi91bmljb2RlLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vZXJyb3ItY29kZXMuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3Rva2VuaXplci9wcmVwcm9jZXNzb3IuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi90b2tlbi5qcyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9nZW5lcmF0ZWQvZ2VuZXJhdGVkL2RlY29kZS1kYXRhLWh0bWwudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS14bWwudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZGVjb2RlX2NvZGVwb2ludC50cyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9kZWNvZGUudHMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC90b2tlbml6ZXIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9vcGVuLWVsZW1lbnQtc3RhY2suanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvcGFyc2VyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2VzY2FwZS50cyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3Qvc2VyaWFsaXplci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvdmZpbGUtbWVzc2FnZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9saWIvZXJyb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaHRtbC12b2lkLWVsZW1lbnRzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy96d2l0Y2gvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvY29yZS5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLWhleGFkZWNpbWFsLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8tZGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWxlZ2FjeS9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWh0bWw0L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvbnN0YW50L2Rhbmdlcm91cy5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLW5hbWVkLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvZm9ybWF0LXNtYXJ0LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2NvbW1lbnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvY2NvdW50L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtd2hpdGVzcGFjZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi91dGlsL3NpYmxpbmdzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb21pc3Npb24uanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi9jbG9zaW5nLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb3BlbmluZy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9lbGVtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3RleHQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvcmF3LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3Jvb3QuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9pbmRleC5qcyIsICJzcmMvUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZy50cyIsICJzcmMvQ29kZWJsb2NrRGVjb3JhdGluZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiUGlja3JcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiUGlja3JcIl0gPSBmYWN0b3J5KCk7XG59KShzZWxmLCAoKSA9PiB7XG5yZXR1cm4gIiwgIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4iLCAiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwgIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCAiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwgIi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1yZXN0LXBhcmFtcyAqL1xuZnVuY3Rpb24gZXZlbnRMaXN0ZW5lcihtZXRob2QsIGVsZW1lbnRzLCBldmVudHMsIGZuLCBvcHRpb25zID0ge30pIHtcblxuICAgIC8vIE5vcm1hbGl6ZSBhcnJheVxuICAgIGlmIChlbGVtZW50cyBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uIHx8IGVsZW1lbnRzIGluc3RhbmNlb2YgTm9kZUxpc3QpIHtcbiAgICAgICAgZWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnRzKTtcbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkge1xuICAgICAgICBlbGVtZW50cyA9IFtlbGVtZW50c107XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV2ZW50cykpIHtcbiAgICAgICAgZXZlbnRzID0gW2V2ZW50c107XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgICBmb3IgKGNvbnN0IGV2IG9mIGV2ZW50cykge1xuICAgICAgICAgICAgZWxbbWV0aG9kXShldiwgZm4sIHtjYXB0dXJlOiBmYWxzZSwgLi4ub3B0aW9uc30pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG59XG5cbi8qKlxuICogQWRkIGV2ZW50KHMpIHRvIGVsZW1lbnQocykuXG4gKiBAcGFyYW0gZWxlbWVudHMgRE9NLUVsZW1lbnRzXG4gKiBAcGFyYW0gZXZlbnRzIEV2ZW50IG5hbWVzXG4gKiBAcGFyYW0gZm4gQ2FsbGJhY2tcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnNcbiAqIEByZXR1cm4gQXJyYXkgcGFzc2VkIGFyZ3VtZW50c1xuICovXG5leHBvcnQgY29uc3Qgb24gPSBldmVudExpc3RlbmVyLmJpbmQobnVsbCwgJ2FkZEV2ZW50TGlzdGVuZXInKTtcblxuLyoqXG4gKiBSZW1vdmUgZXZlbnQocykgZnJvbSBlbGVtZW50KHMpLlxuICogQHBhcmFtIGVsZW1lbnRzIERPTS1FbGVtZW50c1xuICogQHBhcmFtIGV2ZW50cyBFdmVudCBuYW1lc1xuICogQHBhcmFtIGZuIENhbGxiYWNrXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zXG4gKiBAcmV0dXJuIEFycmF5IHBhc3NlZCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IG9mZiA9IGV2ZW50TGlzdGVuZXIuYmluZChudWxsLCAncmVtb3ZlRXZlbnRMaXN0ZW5lcicpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gRE9NLUVsZW1lbnQgb3V0IG9mIGEgc3RyaW5nIChTaW5nbGUgZWxlbWVudCkuXG4gKiBAcGFyYW0gaHRtbCBIVE1MIHJlcHJlc2VudGluZyBhIHNpbmdsZSBlbGVtZW50XG4gKiBAcmV0dXJucyB7RWxlbWVudCB8IG51bGx9IFRoZSBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoaHRtbCkge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi5pbm5lckhUTUwgPSBodG1sLnRyaW0oKTtcbiAgICByZXR1cm4gZGl2LmZpcnN0RWxlbWVudENoaWxkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaHRtbCBlbGVtZW50LCBldmVyeSBlbGVtZW50IHdoaWNoIGhhc1xuICogYSAnOnJlZicgYXR0cmlidXRlIHdpbGwgYmUgc2F2ZWQgaW4gYSBvYmplY3QgKHdoaWNoIHdpbGwgYmUgcmV0dXJuZWQpXG4gKiB3aGVyZSB0aGUgdmFsdWUgb2YgJzpyZWYnIGlzIHRoZSBvYmplY3Qta2V5IGFuZCB0aGUgdmFsdWUgdGhlIEhUTUxFbGVtZW50LlxuICpcbiAqIEl0J3MgcG9zc2libGUgdG8gY3JlYXRlIGEgaGllcmFyY2h5IGlmIHlvdSBhZGQgYSAnOm9iaicgYXR0cmlidXRlLiBFdmVyeVxuICogc2libGluZyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBvYmplY3Qgd2hpY2ggd2lsbCBnZXQgdGhlIG5hbWUgZnJvbSB0aGUgJ2RhdGEtY29uJyBhdHRyaWJ1dGUuXG4gKlxuICogSWYgeW91IHdhbnQgdG8gY3JlYXRlIGFuIEFycmF5IG91dCBvZiBtdWx0aXBsZSBlbGVtZW50cywgeW91IGNhbiB1c2UgdGhlICc6YXJyJyBhdHRyaWJ1dGUsXG4gKiB0aGUgdmFsdWUgZGVmaW5lcyB0aGUga2V5IGFuZCBhbGwgZWxlbWVudHMsIHdoaWNoIGhhcyB0aGUgc2FtZSBwYXJlbnQgYW5kIHRoZSBzYW1lICdkYXRhLWFycicgYXR0cmlidXRlLFxuICogd291bGQgYmUgYWRkZWQgdG8gaXQuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBIVE1MIFN0cmluZy5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJvbVRlbXBsYXRlKHN0cikge1xuXG4gICAgLy8gUmVtb3ZlcyBhbiBhdHRyaWJ1dGUgZnJvbSBhIEhUTUxFbGVtZW50IGFuZCByZXR1cm5zIHRoZSB2YWx1ZS5cbiAgICBjb25zdCByZW1vdmVBdHRyaWJ1dGUgPSAoZWwsIG5hbWUpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbC5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICAvLyBSZWN1cnNpdmUgZnVuY3Rpb24gdG8gcmVzb2x2ZSB0ZW1wbGF0ZVxuICAgIGNvbnN0IHJlc29sdmUgPSAoZWxlbWVudCwgYmFzZSA9IHt9KSA9PiB7XG5cbiAgICAgICAgLy8gQ2hlY2sga2V5IGFuZCBjb250YWluZXIgYXR0cmlidXRlXG4gICAgICAgIGNvbnN0IGNvbiA9IHJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCAnOm9iaicpO1xuICAgICAgICBjb25zdCBrZXkgPSByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgJzpyZWYnKTtcbiAgICAgICAgY29uc3Qgc3VidHJlZSA9IGNvbiA/IChiYXNlW2Nvbl0gPSB7fSkgOiBiYXNlO1xuXG4gICAgICAgIC8vIENoZWNrIGFuZCBzYXZlIGVsZW1lbnRcbiAgICAgICAga2V5ICYmIChiYXNlW2tleV0gPSBlbGVtZW50KTtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBBcnJheS5mcm9tKGVsZW1lbnQuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICBjb25zdCBhcnIgPSByZW1vdmVBdHRyaWJ1dGUoY2hpbGQsICc6YXJyJyk7XG4gICAgICAgICAgICBjb25zdCBzdWIgPSByZXNvbHZlKGNoaWxkLCBhcnIgPyB7fSA6IHN1YnRyZWUpO1xuXG4gICAgICAgICAgICBpZiAoYXJyKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGFycmF5IGFuZCBhZGQgZWxlbWVudFxuICAgICAgICAgICAgICAgIChzdWJ0cmVlW2Fycl0gfHwgKHN1YnRyZWVbYXJyXSA9IFtdKSlcbiAgICAgICAgICAgICAgICAgICAgLnB1c2goT2JqZWN0LmtleXMoc3ViKS5sZW5ndGggPyBzdWIgOiBjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYmFzZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc29sdmUoY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoc3RyKSk7XG59XG5cbi8qKlxuICogUG9seWZpbGwgZm9yIHNhZmFyaSAmIGZpcmVmb3ggZm9yIHRoZSBldmVudFBhdGggZXZlbnQgcHJvcGVydHkuXG4gKiBAcGFyYW0gZXZ0IFRoZSBldmVudCBvYmplY3QuXG4gKiBAcmV0dXJuIFtTdHJpbmddIGV2ZW50IHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVudFBhdGgoZXZ0KSB7XG4gICAgbGV0IHBhdGggPSBldnQucGF0aCB8fCAoZXZ0LmNvbXBvc2VkUGF0aCAmJiBldnQuY29tcG9zZWRQYXRoKCkpO1xuICAgIGlmIChwYXRoKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cblxuICAgIGxldCBlbCA9IGV2dC50YXJnZXQucGFyZW50RWxlbWVudDtcbiAgICBwYXRoID0gW2V2dC50YXJnZXQsIGVsXTtcbiAgICB3aGlsZSAoZWwgPSBlbC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIHBhdGgucHVzaChlbCk7XG4gICAgfVxuXG4gICAgcGF0aC5wdXNoKGRvY3VtZW50LCB3aW5kb3cpO1xuICAgIHJldHVybiBwYXRoO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgSFRNTEVsZW1lbnQgYnkgcXVlcnkuXG4gKiBAcGFyYW0gdmFsXG4gKiBAcmV0dXJucyB7bnVsbHxEb2N1bWVudHxFbGVtZW50fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVsZW1lbnQodmFsKSB7XG4gICAgaWYgKHZhbCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWwuc3BsaXQoLz4+L2cpLnJlZHVjZSgocHYsIGN2LCBjaSwgYSkgPT4ge1xuICAgICAgICAgICAgcHYgPSBwdi5xdWVyeVNlbGVjdG9yKGN2KTtcbiAgICAgICAgICAgIHJldHVybiBjaSA8IGEubGVuZ3RoIC0gMSA/IHB2LnNoYWRvd1Jvb3QgOiBwdjtcbiAgICAgICAgfSwgZG9jdW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIG51bWJlcnMgaW4gYW4gaW5wdXQgZmllbGQgd2l0aCB0aGUgc2Nyb2xsLXdoZWVsLlxuICogQHBhcmFtIGVsXG4gKiBAcGFyYW0gbWFwcGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RhYmxlSW5wdXROdW1iZXJzKGVsLCBtYXBwZXIgPSB2ID0+IHYpIHtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZVNjcm9sbChlKSB7XG4gICAgICAgIGNvbnN0IGluYyA9IChbMC4wMDEsIDAuMDEsIDAuMV0pW051bWJlcihlLnNoaWZ0S2V5IHx8IGUuY3RybEtleSAqIDIpXSAqIChlLmRlbHRhWSA8IDAgPyAxIDogLTEpO1xuXG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGxldCBvZmYgPSBlbC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgZWwudmFsdWUgPSBlbC52YWx1ZS5yZXBsYWNlKC9bXFxkLl0rL2csICh2LCBpKSA9PiB7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIG51bWJlciBpcyBpbiBjdXJzb3IgcmFuZ2UgYW5kIGluY3JlYXNlIGl0XG4gICAgICAgICAgICBpZiAoaSA8PSBvZmYgJiYgaSArIHYubGVuZ3RoID49IG9mZikge1xuICAgICAgICAgICAgICAgIG9mZiA9IGk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcHBlcihOdW1iZXIodiksIGluYywgaW5kZXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgIGVsLnNldFNlbGVjdGlvblJhbmdlKG9mZiwgb2ZmKTtcblxuICAgICAgICAvLyBQcmV2ZW50IGRlZmF1bHQgYW5kIHRyaWdnZXIgaW5wdXQgZXZlbnRcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfVxuXG4gICAgLy8gQmluZCBldmVudHNcbiAgICBvbihlbCwgJ2ZvY3VzJywgKCkgPT4gb24od2luZG93LCAnd2hlZWwnLCBoYW5kbGVTY3JvbGwsIHtwYXNzaXZlOiBmYWxzZX0pKTtcbiAgICBvbihlbCwgJ2JsdXInLCAoKSA9PiBvZmYod2luZG93LCAnd2hlZWwnLCBoYW5kbGVTY3JvbGwpKTtcbn1cbiIsICIvLyBTaG9ydGhhbmRzXG5jb25zdCB7bWluLCBtYXgsIGZsb29yLCByb3VuZH0gPSBNYXRoO1xuXG4vKipcbiAqIFRyaWVzIHRvIGNvbnZlcnQgYSBjb2xvciBuYW1lIHRvIHJnYi9hIGhleCByZXByZXNlbnRhdGlvblxuICogQHBhcmFtIG5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCBDYW52YXNHcmFkaWVudCB8IENhbnZhc1BhdHRlcm59XG4gKi9cbmZ1bmN0aW9uIHN0YW5kYXJkaXplQ29sb3IobmFtZSkge1xuXG4gICAgLy8gU2luY2UgaW52YWxpZCBjb2xvcidzIHdpbGwgYmUgcGFyc2VkIGFzIGJsYWNrLCBmaWx0ZXIgdGhlbSBvdXRcbiAgICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYmxhY2snKSB7XG4gICAgICAgIHJldHVybiAnIzAwMCc7XG4gICAgfVxuXG4gICAgY29uc3QgY3R4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjdHguZmlsbFN0eWxlID0gbmFtZTtcbiAgICByZXR1cm4gY3R4LmZpbGxTdHlsZSA9PT0gJyMwMDAnID8gbnVsbCA6IGN0eC5maWxsU3R5bGU7XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gUkdCLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge251bWJlcltdfSBBcnJheSB3aXRoIHJnYiB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb1JnYihoLCBzLCB2KSB7XG4gICAgaCA9IChoIC8gMzYwKSAqIDY7XG4gICAgcyAvPSAxMDA7XG4gICAgdiAvPSAxMDA7XG5cbiAgICBjb25zdCBpID0gZmxvb3IoaCk7XG5cbiAgICBjb25zdCBmID0gaCAtIGk7XG4gICAgY29uc3QgcCA9IHYgKiAoMSAtIHMpO1xuICAgIGNvbnN0IHEgPSB2ICogKDEgLSBmICogcyk7XG4gICAgY29uc3QgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcblxuICAgIGNvbnN0IG1vZCA9IGkgJSA2O1xuICAgIGNvbnN0IHIgPSBbdiwgcSwgcCwgcCwgdCwgdl1bbW9kXTtcbiAgICBjb25zdCBnID0gW3QsIHYsIHYsIHEsIHAsIHBdW21vZF07XG4gICAgY29uc3QgYiA9IFtwLCBwLCB0LCB2LCB2LCBxXVttb2RdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgciAqIDI1NSxcbiAgICAgICAgZyAqIDI1NSxcbiAgICAgICAgYiAqIDI1NVxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gSGV4LlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge3N0cmluZ1tdfSBIZXggdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb0hleChoLCBzLCB2KSB7XG4gICAgcmV0dXJuIGhzdlRvUmdiKGgsIHMsIHYpLm1hcCh2ID0+XG4gICAgICAgIHJvdW5kKHYpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpXG4gICAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBDTVlLLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge251bWJlcltdfSBDTVlLIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9DbXlrKGgsIHMsIHYpIHtcbiAgICBjb25zdCByZ2IgPSBoc3ZUb1JnYihoLCBzLCB2KTtcbiAgICBjb25zdCByID0gcmdiWzBdIC8gMjU1O1xuICAgIGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgY29uc3QgYiA9IHJnYlsyXSAvIDI1NTtcblxuICAgIGNvbnN0IGsgPSBtaW4oMSAtIHIsIDEgLSBnLCAxIC0gYik7XG4gICAgY29uc3QgYyA9IGsgPT09IDEgPyAwIDogKDEgLSByIC0gaykgLyAoMSAtIGspO1xuICAgIGNvbnN0IG0gPSBrID09PSAxID8gMCA6ICgxIC0gZyAtIGspIC8gKDEgLSBrKTtcbiAgICBjb25zdCB5ID0gayA9PT0gMSA/IDAgOiAoMSAtIGIgLSBrKSAvICgxIC0gayk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgICBjICogMTAwLFxuICAgICAgICBtICogMTAwLFxuICAgICAgICB5ICogMTAwLFxuICAgICAgICBrICogMTAwXG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBIU0wuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IEhTTCB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvSHNsKGgsIHMsIHYpIHtcbiAgICBzIC89IDEwMDtcbiAgICB2IC89IDEwMDtcblxuICAgIGNvbnN0IGwgPSAoMiAtIHMpICogdiAvIDI7XG5cbiAgICBpZiAobCAhPT0gMCkge1xuICAgICAgICBpZiAobCA9PT0gMSkge1xuICAgICAgICAgICAgcyA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAobCA8IDAuNSkge1xuICAgICAgICAgICAgcyA9IHMgKiB2IC8gKGwgKiAyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMgPSBzICogdiAvICgyIC0gbCAqIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgaCxcbiAgICAgICAgcyAqIDEwMCxcbiAgICAgICAgbCAqIDEwMFxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBSR0IgdG8gSFNWLlxuICogQHBhcmFtIHIgUmVkXG4gKiBAcGFyYW0gZyBHcmVlblxuICogQHBhcmFtIGIgQmx1ZVxuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIHJnYlRvSHN2KHIsIGcsIGIpIHtcbiAgICByIC89IDI1NTtcbiAgICBnIC89IDI1NTtcbiAgICBiIC89IDI1NTtcblxuICAgIGNvbnN0IG1pblZhbCA9IG1pbihyLCBnLCBiKTtcbiAgICBjb25zdCBtYXhWYWwgPSBtYXgociwgZywgYik7XG4gICAgY29uc3QgZGVsdGEgPSBtYXhWYWwgLSBtaW5WYWw7XG5cbiAgICBsZXQgaCwgcztcbiAgICBjb25zdCB2ID0gbWF4VmFsO1xuICAgIGlmIChkZWx0YSA9PT0gMCkge1xuICAgICAgICBoID0gcyA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcyA9IGRlbHRhIC8gbWF4VmFsO1xuICAgICAgICBjb25zdCBkciA9ICgoKG1heFZhbCAtIHIpIC8gNikgKyAoZGVsdGEgLyAyKSkgLyBkZWx0YTtcbiAgICAgICAgY29uc3QgZGcgPSAoKChtYXhWYWwgLSBnKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XG4gICAgICAgIGNvbnN0IGRiID0gKCgobWF4VmFsIC0gYikgLyA2KSArIChkZWx0YSAvIDIpKSAvIGRlbHRhO1xuXG4gICAgICAgIGlmIChyID09PSBtYXhWYWwpIHtcbiAgICAgICAgICAgIGggPSBkYiAtIGRnO1xuICAgICAgICB9IGVsc2UgaWYgKGcgPT09IG1heFZhbCkge1xuICAgICAgICAgICAgaCA9ICgxIC8gMykgKyBkciAtIGRiO1xuICAgICAgICB9IGVsc2UgaWYgKGIgPT09IG1heFZhbCkge1xuICAgICAgICAgICAgaCA9ICgyIC8gMykgKyBkZyAtIGRyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGggPCAwKSB7XG4gICAgICAgICAgICBoICs9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoaCA+IDEpIHtcbiAgICAgICAgICAgIGggLT0gMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIGggKiAzNjAsXG4gICAgICAgIHMgKiAxMDAsXG4gICAgICAgIHYgKiAxMDBcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgQ01ZSyB0byBIU1YuXG4gKiBAcGFyYW0gYyBDeWFuXG4gKiBAcGFyYW0gbSBNYWdlbnRhXG4gKiBAcGFyYW0geSBZZWxsb3dcbiAqIEBwYXJhbSBrIEtleSAoQmxhY2spXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gY215a1RvSHN2KGMsIG0sIHksIGspIHtcbiAgICBjIC89IDEwMDtcbiAgICBtIC89IDEwMDtcbiAgICB5IC89IDEwMDtcbiAgICBrIC89IDEwMDtcblxuICAgIGNvbnN0IHIgPSAoMSAtIG1pbigxLCBjICogKDEgLSBrKSArIGspKSAqIDI1NTtcbiAgICBjb25zdCBnID0gKDEgLSBtaW4oMSwgbSAqICgxIC0gaykgKyBrKSkgKiAyNTU7XG4gICAgY29uc3QgYiA9ICgxIC0gbWluKDEsIHkgKiAoMSAtIGspICsgaykpICogMjU1O1xuXG4gICAgcmV0dXJuIFsuLi5yZ2JUb0hzdihyLCBnLCBiKV07XG59XG5cbi8qKlxuICogQ29udmVydCBIU0wgdG8gSFNWLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gbCBMaWdodG5lc3NcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBoc2xUb0hzdihoLCBzLCBsKSB7XG4gICAgcyAvPSAxMDA7XG4gICAgbCAvPSAxMDA7XG4gICAgcyAqPSBsIDwgMC41ID8gbCA6IDEgLSBsO1xuXG4gICAgY29uc3QgbnMgPSAoMiAqIHMgLyAobCArIHMpKSAqIDEwMDtcbiAgICBjb25zdCB2ID0gKGwgKyBzKSAqIDEwMDtcbiAgICByZXR1cm4gW2gsIGlzTmFOKG5zKSA/IDAgOiBucywgdl07XG59XG5cbi8qKlxuICogQ29udmVydCBIRVggdG8gSFNWLlxuICogQHBhcmFtIGhleCBIZXhhZGVjaW1hbCBzdHJpbmcgb2YgcmdiIGNvbG9ycywgY2FuIGhhdmUgbGVuZ3RoIDMgb3IgNi5cbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBoZXhUb0hzdihoZXgpIHtcbiAgICByZXR1cm4gcmdiVG9Ic3YoLi4uaGV4Lm1hdGNoKC8uezJ9L2cpLm1hcCh2ID0+IHBhcnNlSW50KHYsIDE2KSkpO1xufVxuXG4vKipcbiAqIFRyeSdzIHRvIHBhcnNlIGEgc3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBjb2xvciB0byBhIEhTViBhcnJheS5cbiAqIEN1cnJlbnQgc3VwcG9ydGVkIHR5cGVzIGFyZSBjbXlrLCByZ2JhLCBoc2xhIGFuZCBoZXhhZGVjaW1hbC5cbiAqIEBwYXJhbSBzdHJcbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvSFNWQShzdHIpIHtcblxuICAgIC8vIENoZWNrIGlmIHN0cmluZyBpcyBhIGNvbG9yLW5hbWVcbiAgICBzdHIgPSBzdHIubWF0Y2goL15bYS16QS1aXSskLykgPyBzdGFuZGFyZGl6ZUNvbG9yKHN0cikgOiBzdHI7XG5cbiAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb25zIHRvIG1hdGNoIGRpZmZlcmVudCB0eXBlcyBvZiBjb2xvciByZXByZXNlbnRpb25cbiAgICBjb25zdCByZWdleCA9IHtcbiAgICAgICAgY215azogL15jbXlrXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKS9pLFxuICAgICAgICByZ2JhOiAvXnJnYmE/XFxEKyhbXFxkLl0rKSglPylcXEQrKFtcXGQuXSspKCU/KVxcRCsoW1xcZC5dKykoJT8pXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoc2xhOiAvXmhzbGE/XFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoc3ZhOiAvXmhzdmE/XFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoZXhhOiAvXiM/KChbXFxkQS1GYS1mXXszLDR9KXwoW1xcZEEtRmEtZl17Nn0pfChbXFxkQS1GYS1mXXs4fSkpJC9pXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRha2VzIGFuIEFycmF5IG9mIGFueSB0eXBlLCBjb252ZXJ0IHN0cmluZ3Mgd2hpY2ggcmVwcmVzZW50c1xuICAgICAqIGEgbnVtYmVyIHRvIGEgbnVtYmVyIGFuIGFueXRoaW5nIGVsc2UgdG8gdW5kZWZpbmVkLlxuICAgICAqIEBwYXJhbSBhcnJheVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICovXG4gICAgY29uc3QgbnVtYXJpemUgPSBhcnJheSA9PiBhcnJheS5tYXAodiA9PiAvXih8XFxkKylcXC5cXGQrfFxcZCskLy50ZXN0KHYpID8gTnVtYmVyKHYpIDogdW5kZWZpbmVkKTtcblxuICAgIGxldCBtYXRjaDtcbiAgICBpbnZhbGlkOiBmb3IgKGNvbnN0IHR5cGUgaW4gcmVnZXgpIHtcblxuICAgICAgICAvLyBDaGVjayBpZiBjdXJyZW50IHNjaGVtZSBwYXNzZWRcbiAgICAgICAgaWYgKCEobWF0Y2ggPSByZWdleFt0eXBlXS5leGVjKHN0cikpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyeSB0byBjb252ZXJ0XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY215ayc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBjLCBtLCB5LCBrXSA9IG51bWFyaXplKG1hdGNoKTtcblxuICAgICAgICAgICAgICAgIGlmIChjID4gMTAwIHx8IG0gPiAxMDAgfHwgeSA+IDEwMCB8fCBrID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IGNteWtUb0hzdihjLCBtLCB5LCBrKSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdyZ2JhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCByLCAsIGcsICwgYiwgLCAsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xuXG4gICAgICAgICAgICAgICAgciA9IG1hdGNoWzJdID09PSAnJScgPyAociAvIDEwMCkgKiAyNTUgOiByO1xuICAgICAgICAgICAgICAgIGcgPSBtYXRjaFs0XSA9PT0gJyUnID8gKGcgLyAxMDApICogMjU1IDogZztcbiAgICAgICAgICAgICAgICBiID0gbWF0Y2hbNl0gPT09ICclJyA/IChiIC8gMTAwKSAqIDI1NSA6IGI7XG4gICAgICAgICAgICAgICAgYSA9IG1hdGNoWzldID09PSAnJScgPyAoYSAvIDEwMCkgOiBhO1xuXG4gICAgICAgICAgICAgICAgaWYgKHIgPiAyNTUgfHwgZyA+IDI1NSB8fCBiID4gMjU1IHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5yZ2JUb0hzdihyLCBnLCBiKSwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaGV4YSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgaGV4XSA9IG1hdGNoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGhleC5sZW5ndGggPT09IDQgfHwgaGV4Lmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgICAgICAgICBoZXggPSBoZXguc3BsaXQoJycpLm1hcCh2ID0+IHYgKyB2KS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByYXcgPSBoZXguc3Vic3RyaW5nKDAsIDYpO1xuICAgICAgICAgICAgICAgIGxldCBhID0gaGV4LnN1YnN0cmluZyg2KTtcblxuICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgMCAtIDI1NSB0byAwIC0gMSBmb3Igb3BhY2l0eVxuICAgICAgICAgICAgICAgIGEgPSBhID8gKHBhcnNlSW50KGEsIDE2KSAvIDI1NSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogWy4uLmhleFRvSHN2KHJhdyksIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2hzbGEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIGgsIHMsIGwsICwgYV0gPSBudW1hcml6ZShtYXRjaCk7XG4gICAgICAgICAgICAgICAgYSA9IG1hdGNoWzZdID09PSAnJScgPyAoYSAvIDEwMCkgOiBhO1xuXG4gICAgICAgICAgICAgICAgaWYgKGggPiAzNjAgfHwgcyA+IDEwMCB8fCBsID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5oc2xUb0hzdihoLCBzLCBsKSwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaHN2YSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgaCwgcywgdiwgLCBhXSA9IG51bWFyaXplKG1hdGNoKTtcbiAgICAgICAgICAgICAgICBhID0gbWF0Y2hbNl0gPT09ICclJyA/IChhIC8gMTAwKSA6IGE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaCA+IDM2MCB8fCBzID4gMTAwIHx8IHYgPiAxMDAgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogW2gsIHMsIHYsIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7dmFsdWVzOiBudWxsLCB0eXBlOiBudWxsfTtcbn1cbiIsICJpbXBvcnQge2hzdlRvQ215aywgaHN2VG9IZXgsIGhzdlRvSHNsLCBoc3ZUb1JnYn0gZnJvbSAnLi9jb2xvcic7XG5cbi8qKlxuICogU2ltcGxlIGNsYXNzIHdoaWNoIGhvbGRzIHRoZSBwcm9wZXJ0aWVzXG4gKiBvZiB0aGUgY29sb3IgcmVwcmVzZW50aW9uIG1vZGVsIGhzbGEgKGh1ZSBzYXR1cmF0aW9uIGxpZ2h0bmVzcyBhbHBoYSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEhTVmFDb2xvcihoID0gMCwgcyA9IDAsIHYgPSAwLCBhID0gMSkge1xuICAgIGNvbnN0IG1hcHBlciA9IChvcmlnaW5hbCwgbmV4dCkgPT4gKHByZWNpc2lvbiA9IC0xKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KH5wcmVjaXNpb24gPyBvcmlnaW5hbC5tYXAodiA9PiBOdW1iZXIodi50b0ZpeGVkKHByZWNpc2lvbikpKSA6IG9yaWdpbmFsKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdGhhdCA9IHtcbiAgICAgICAgaCwgcywgdiwgYSxcblxuICAgICAgICB0b0hTVkEoKSB7XG4gICAgICAgICAgICBjb25zdCBoc3ZhID0gW3RoYXQuaCwgdGhhdC5zLCB0aGF0LnYsIHRoYXQuYV07XG4gICAgICAgICAgICBoc3ZhLnRvU3RyaW5nID0gbWFwcGVyKGhzdmEsIGFyciA9PiBgaHN2YSgke2FyclswXX0sICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7dGhhdC5hfSlgKTtcbiAgICAgICAgICAgIHJldHVybiBoc3ZhO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvSFNMQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhzbGEgPSBbLi4uaHN2VG9Ic2wodGhhdC5oLCB0aGF0LnMsIHRoYXQudiksIHRoYXQuYV07XG4gICAgICAgICAgICBoc2xhLnRvU3RyaW5nID0gbWFwcGVyKGhzbGEsIGFyciA9PiBgaHNsYSgke2FyclswXX0sICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7dGhhdC5hfSlgKTtcbiAgICAgICAgICAgIHJldHVybiBoc2xhO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvUkdCQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJnYmEgPSBbLi4uaHN2VG9SZ2IodGhhdC5oLCB0aGF0LnMsIHRoYXQudiksIHRoYXQuYV07XG4gICAgICAgICAgICByZ2JhLnRvU3RyaW5nID0gbWFwcGVyKHJnYmEsIGFyciA9PiBgcmdiYSgke2FyclswXX0sICR7YXJyWzFdfSwgJHthcnJbMl19LCAke3RoYXQuYX0pYCk7XG4gICAgICAgICAgICByZXR1cm4gcmdiYTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b0NNWUsoKSB7XG4gICAgICAgICAgICBjb25zdCBjbXlrID0gaHN2VG9DbXlrKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpO1xuICAgICAgICAgICAgY215ay50b1N0cmluZyA9IG1hcHBlcihjbXlrLCBhcnIgPT4gYGNteWsoJHthcnJbMF19JSwgJHthcnJbMV19JSwgJHthcnJbMl19JSwgJHthcnJbM119JSlgKTtcbiAgICAgICAgICAgIHJldHVybiBjbXlrO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvSEVYQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhleCA9IGhzdlRvSGV4KHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBhbHBoYSBjaGFubmVsIG1ha2Ugc2Vuc2UsIGNvbnZlcnQgaXQgdG8gMjU1IG51bWJlciBzcGFjZSwgY29udmVydFxuICAgICAgICAgICAgLy8gVG8gaGV4IGFuZCBwYWQgaXQgd2l0aCB6ZXJvcyBpZiBuZWVkZXQuXG4gICAgICAgICAgICBjb25zdCBhbHBoYSA9IHRoYXQuYSA+PSAxID8gJycgOiBOdW1iZXIoKHRoYXQuYSAqIDI1NSkudG9GaXhlZCgwKSlcbiAgICAgICAgICAgICAgICAudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICAgICAgLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoMiwgJzAnKTtcblxuICAgICAgICAgICAgYWxwaGEgJiYgaGV4LnB1c2goYWxwaGEpO1xuICAgICAgICAgICAgaGV4LnRvU3RyaW5nID0gKCkgPT4gYCMke2hleC5qb2luKCcnKS50b1VwcGVyQ2FzZSgpfWA7XG4gICAgICAgICAgICByZXR1cm4gaGV4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGNsb25lOiAoKSA9PiBIU1ZhQ29sb3IodGhhdC5oLCB0aGF0LnMsIHRoYXQudiwgdGhhdC5hKVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhhdDtcbn1cbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4uL3V0aWxzL3V0aWxzJztcblxuY29uc3QgY2xhbXAgPSB2ID0+IE1hdGgubWF4KE1hdGgubWluKHYsIDEpLCAwKTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1vdmVhYmxlKG9wdCkge1xuXG4gICAgY29uc3QgdGhhdCA9IHtcblxuICAgICAgICAvLyBBc3NpZ24gZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgb3B0aW9uczogT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICBsb2NrOiBudWxsLFxuICAgICAgICAgICAgb25jaGFuZ2U6ICgpID0+IDAsXG4gICAgICAgICAgICBvbnN0b3A6ICgpID0+IDBcbiAgICAgICAgfSwgb3B0KSxcblxuICAgICAgICBfa2V5Ym9hcmQoZSkge1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhhdDtcbiAgICAgICAgICAgIGNvbnN0IHt0eXBlLCBrZXl9ID0gZTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBNb3ZhYmxlIGlzIGZvY3VzZWQgYW5kIHRoZW4gbW92ZSBpdCBiYXNlZCBvbiBhcnJvdyBrZXkgaW5wdXRzXG4gICAgICAgICAgICAvLyBGb3IgaW1wcm92ZWQgYWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IG9wdGlvbnMud3JhcHBlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtsb2NrfSA9IHRoYXQub3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCB1cCA9IGtleSA9PT0gJ0Fycm93VXAnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0ID0ga2V5ID09PSAnQXJyb3dSaWdodCc7XG4gICAgICAgICAgICAgICAgY29uc3QgZG93biA9IGtleSA9PT0gJ0Fycm93RG93bic7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IGtleSA9PT0gJ0Fycm93TGVmdCc7XG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2tleWRvd24nICYmICh1cCB8fCByaWdodCB8fCBkb3duIHx8IGxlZnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB4bSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCB5bSA9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2sgPT09ICd2Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSAodXAgfHwgcmlnaHQpID8gMSA6IC0xO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2sgPT09ICdoJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSAodXAgfHwgcmlnaHQpID8gLTEgOiAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgeW0gPSB1cCA/IC0xIDogKGRvd24gPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB4bSA9IGxlZnQgPyAtMSA6IChyaWdodCA/IDEgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAodGhhdC5jYWNoZS54ICsgKDAuMDEgKiB4bSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAodGhhdC5jYWNoZS55ICsgKDAuMDEgKiB5bSkpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5zdGFydHNXaXRoKCdBcnJvdycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy5vbnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBfdGFwc3RhcnQoZXZ0KSB7XG4gICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ21vdXNldXAnLCAndG91Y2hlbmQnLCAndG91Y2hjYW5jZWwnXSwgdGhhdC5fdGFwc3RvcCk7XG4gICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ21vdXNlbW92ZScsICd0b3VjaG1vdmUnXSwgdGhhdC5fdGFwbW92ZSk7XG5cbiAgICAgICAgICAgIGlmIChldnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUcmlnZ2VyXG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKGV2dCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgX3RhcG1vdmUoZXZ0KSB7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9ucywgY2FjaGV9ID0gdGhhdDtcbiAgICAgICAgICAgIGNvbnN0IHtsb2NrLCBlbGVtZW50LCB3cmFwcGVyfSA9IG9wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBiID0gd3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgbGV0IHggPSAwLCB5ID0gMDtcbiAgICAgICAgICAgIGlmIChldnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b3VjaCA9IGV2dCAmJiBldnQudG91Y2hlcyAmJiBldnQudG91Y2hlc1swXTtcbiAgICAgICAgICAgICAgICB4ID0gZXZ0ID8gKHRvdWNoIHx8IGV2dCkuY2xpZW50WCA6IDA7XG4gICAgICAgICAgICAgICAgeSA9IGV2dCA/ICh0b3VjaCB8fCBldnQpLmNsaWVudFkgOiAwO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdG8gYm91bmRzXG4gICAgICAgICAgICAgICAgaWYgKHggPCBiLmxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgeCA9IGIubGVmdDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHggPiBiLmxlZnQgKyBiLndpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHggPSBiLmxlZnQgKyBiLndpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoeSA8IGIudG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBiLnRvcDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHkgPiBiLnRvcCArIGIuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBiLnRvcCArIGIuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIE5vcm1hbGl6ZVxuICAgICAgICAgICAgICAgIHggLT0gYi5sZWZ0O1xuICAgICAgICAgICAgICAgIHkgLT0gYi50b3A7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICAgICAgeCA9IGNhY2hlLnggKiBiLndpZHRoO1xuICAgICAgICAgICAgICAgIHkgPSBjYWNoZS55ICogYi5oZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsb2NrICE9PSAnaCcpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSBgY2FsYygke3ggLyBiLndpZHRoICogMTAwfSUgLSAke2VsZW1lbnQub2Zmc2V0V2lkdGggLyAyfXB4KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsb2NrICE9PSAndicpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IGBjYWxjKCR7eSAvIGIuaGVpZ2h0ICogMTAwfSUgLSAke2VsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMn1weClgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGF0LmNhY2hlID0ge3g6IHggLyBiLndpZHRoLCB5OiB5IC8gYi5oZWlnaHR9O1xuICAgICAgICAgICAgY29uc3QgY3ggPSBjbGFtcCh4IC8gYi53aWR0aCk7XG4gICAgICAgICAgICBjb25zdCBjeSA9IGNsYW1wKHkgLyBiLmhlaWdodCk7XG5cbiAgICAgICAgICAgIHN3aXRjaCAobG9jaykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3YnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeCk7XG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm9uY2hhbmdlKGN5KTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeCwgY3kpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIF90YXBzdG9wKCkge1xuICAgICAgICAgICAgdGhhdC5vcHRpb25zLm9uc3RvcCgpO1xuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsnbW91c2V1cCcsICd0b3VjaGVuZCcsICd0b3VjaGNhbmNlbCddLCB0aGF0Ll90YXBzdG9wKTtcbiAgICAgICAgICAgIF8ub2ZmKGRvY3VtZW50LCBbJ21vdXNlbW92ZScsICd0b3VjaG1vdmUnXSwgdGhhdC5fdGFwbW92ZSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdHJpZ2dlcigpIHtcbiAgICAgICAgICAgIHRoYXQuX3RhcG1vdmUoKTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGUoeCA9IDAsIHkgPSAwKSB7XG4gICAgICAgICAgICBjb25zdCB7bGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0fSA9IHRoYXQub3B0aW9ucy53cmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmxvY2sgPT09ICdoJykge1xuICAgICAgICAgICAgICAgIHkgPSB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKHtcbiAgICAgICAgICAgICAgICBjbGllbnRYOiBsZWZ0ICsgd2lkdGggKiB4LFxuICAgICAgICAgICAgICAgIGNsaWVudFk6IHRvcCArIGhlaWdodCAqIHlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlc3Ryb3koKSB7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9ucywgX3RhcHN0YXJ0LCBfa2V5Ym9hcmR9ID0gdGhhdDtcbiAgICAgICAgICAgIF8ub2ZmKGRvY3VtZW50LCBbJ2tleWRvd24nLCAna2V5dXAnXSwgX2tleWJvYXJkKTtcbiAgICAgICAgICAgIF8ub2ZmKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICdtb3VzZWRvd24nLCBfdGFwc3RhcnQpO1xuICAgICAgICAgICAgXy5vZmYoW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ3RvdWNoc3RhcnQnLCBfdGFwc3RhcnQsIHtcbiAgICAgICAgICAgICAgICBwYXNzaXZlOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gSW5pdGlsaXplXG4gICAgY29uc3Qge29wdGlvbnMsIF90YXBzdGFydCwgX2tleWJvYXJkfSA9IHRoYXQ7XG4gICAgXy5vbihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAnbW91c2Vkb3duJywgX3RhcHN0YXJ0KTtcbiAgICBfLm9uKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICd0b3VjaHN0YXJ0JywgX3RhcHN0YXJ0LCB7XG4gICAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBfLm9uKGRvY3VtZW50LCBbJ2tleWRvd24nLCAna2V5dXAnXSwgX2tleWJvYXJkKTtcblxuICAgIHJldHVybiB0aGF0O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTZWxlY3RhYmxlKG9wdCA9IHt9KSB7XG4gICAgb3B0ID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIG9uY2hhbmdlOiAoKSA9PiAwLFxuICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICBlbGVtZW50czogW11cbiAgICB9LCBvcHQpO1xuXG4gICAgY29uc3Qgb25UYXAgPSBfLm9uKG9wdC5lbGVtZW50cywgJ2NsaWNrJywgZXZ0ID0+IHtcbiAgICAgICAgb3B0LmVsZW1lbnRzLmZvckVhY2goZSA9PlxuICAgICAgICAgICAgZS5jbGFzc0xpc3RbZXZ0LnRhcmdldCA9PT0gZSA/ICdhZGQnIDogJ3JlbW92ZSddKG9wdC5jbGFzc05hbWUpXG4gICAgICAgICk7XG5cbiAgICAgICAgb3B0Lm9uY2hhbmdlKGV2dCk7XG5cbiAgICAgICAgLy8gRml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvcGlja3IvaXNzdWVzLzI0M1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBkZXN0cm95OiAoKSA9PiBfLm9mZiguLi5vblRhcClcbiAgICB9O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi91dGlscy91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlID0+IHtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgdXNlQXNCdXR0b24sXG4gICAgICAgIGlubGluZSxcbiAgICAgICAgYXBwQ2xhc3MsXG4gICAgICAgIHRoZW1lLFxuICAgICAgICBsb2NrT3BhY2l0eVxuICAgIH0gPSBpbnN0YW5jZS5vcHRpb25zO1xuXG4gICAgLy8gVXRpbHNcbiAgICBjb25zdCBoaWRkZW4gPSBjb24gPT4gY29uID8gJycgOiAnc3R5bGU9XCJkaXNwbGF5Om5vbmVcIiBoaWRkZW4nO1xuICAgIGNvbnN0IHQgPSBzdHIgPT4gaW5zdGFuY2UuX3Qoc3RyKTtcblxuICAgIGNvbnN0IHJvb3QgPSBfLmNyZWF0ZUZyb21UZW1wbGF0ZShgXG4gICAgICA8ZGl2IDpyZWY9XCJyb290XCIgY2xhc3M9XCJwaWNrclwiPlxuXG4gICAgICAgICR7dXNlQXNCdXR0b24gPyAnJyA6ICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiA6cmVmPVwiYnV0dG9uXCIgY2xhc3M9XCJwY3ItYnV0dG9uXCI+PC9idXR0b24+J31cblxuICAgICAgICA8ZGl2IDpyZWY9XCJhcHBcIiBjbGFzcz1cInBjci1hcHAgJHthcHBDbGFzcyB8fCAnJ31cIiBkYXRhLXRoZW1lPVwiJHt0aGVtZX1cIiAke2lubGluZSA/ICdzdHlsZT1cInBvc2l0aW9uOiB1bnNldFwiJyA6ICcnfSBhcmlhLWxhYmVsPVwiJHt0KCd1aTpkaWFsb2cnLCAnY29sb3IgcGlja2VyIGRpYWxvZycpfVwiIHJvbGU9XCJ3aW5kb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGNyLXNlbGVjdGlvblwiICR7aGlkZGVuKGNvbXBvbmVudHMucGFsZXR0ZSl9PlxuICAgICAgICAgICAgPGRpdiA6b2JqPVwicHJldmlld1wiIGNsYXNzPVwicGNyLWNvbG9yLXByZXZpZXdcIiAke2hpZGRlbihjb21wb25lbnRzLnByZXZpZXcpfT5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgOnJlZj1cImxhc3RDb2xvclwiIGNsYXNzPVwicGNyLWxhc3QtY29sb3JcIiBhcmlhLWxhYmVsPVwiJHt0KCdidG46bGFzdC1jb2xvcicpfVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJjdXJyZW50Q29sb3JcIiBjbGFzcz1cInBjci1jdXJyZW50LWNvbG9yXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiA6b2JqPVwicGFsZXR0ZVwiIGNsYXNzPVwicGNyLWNvbG9yLXBhbGV0dGVcIj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBhbGV0dGVcIiBjbGFzcz1cInBjci1wYWxldHRlXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpwYWxldHRlJyl9XCIgcm9sZT1cImxpc3Rib3hcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJodWVcIiBjbGFzcz1cInBjci1jb2xvci1jaG9vc2VyXCIgJHtoaWRkZW4oY29tcG9uZW50cy5odWUpfT5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInNsaWRlclwiIGNsYXNzPVwicGNyLWh1ZSBwY3Itc2xpZGVyXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpodWUnKX1cIiByb2xlPVwic2xpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiA6b2JqPVwib3BhY2l0eVwiIGNsYXNzPVwicGNyLWNvbG9yLW9wYWNpdHlcIiAke2hpZGRlbihjb21wb25lbnRzLm9wYWNpdHkpfT5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInNsaWRlclwiIGNsYXNzPVwicGNyLW9wYWNpdHkgcGNyLXNsaWRlclwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6b3BhY2l0eScsICdvcGFjaXR5IHNlbGVjdGlvbiBzbGlkZXInKX1cIiByb2xlPVwic2xpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwY3Itc3dhdGNoZXMgJHtjb21wb25lbnRzLnBhbGV0dGUgPyAnJyA6ICdwY3ItbGFzdCd9XCIgOnJlZj1cInN3YXRjaGVzXCI+PC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IDpvYmo9XCJpbnRlcmFjdGlvblwiIGNsYXNzPVwicGNyLWludGVyYWN0aW9uXCIgJHtoaWRkZW4oT2JqZWN0LmtleXMoY29tcG9uZW50cy5pbnRlcmFjdGlvbikubGVuZ3RoKX0+XG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cInJlc3VsdFwiIGNsYXNzPVwicGNyLXJlc3VsdFwiIHR5cGU9XCJ0ZXh0XCIgc3BlbGxjaGVjaz1cImZhbHNlXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5pbnB1dCl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6aW5wdXQnLCAnY29sb3IgaW5wdXQgZmllbGQnKX1cIj5cblxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhFWEFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSEVYJyA6ICdIRVhBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oZXgpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJSR0JBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ1JHQicgOiAnUkdCQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24ucmdiYSl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhTTEFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSFNMJyA6ICdIU0xBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oc2xhKX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiSFNWQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdIU1YnIDogJ0hTVkEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmhzdmEpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJDTVlLXCIgdmFsdWU9XCJDTVlLXCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uY215ayl9PlxuXG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cInNhdmVcIiBjbGFzcz1cInBjci1zYXZlXCIgdmFsdWU9XCIke3QoJ2J0bjpzYXZlJyl9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uc2F2ZSl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6YnRuOnNhdmUnKX1cIj5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwiY2FuY2VsXCIgY2xhc3M9XCJwY3ItY2FuY2VsXCIgdmFsdWU9XCIke3QoJ2J0bjpjYW5jZWwnKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jYW5jZWwpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpjYW5jZWwnKX1cIj5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwiY2xlYXJcIiBjbGFzcz1cInBjci1jbGVhclwiIHZhbHVlPVwiJHt0KCdidG46Y2xlYXInKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jbGVhcil9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6YnRuOmNsZWFyJyl9XCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYCk7XG5cbiAgICBjb25zdCBpbnQgPSByb290LmludGVyYWN0aW9uO1xuXG4gICAgLy8gU2VsZWN0IG9wdGlvbiB3aGljaCBpcyBub3QgaGlkZGVuXG4gICAgaW50Lm9wdGlvbnMuZmluZChvID0+ICFvLmhpZGRlbiAmJiAhby5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKSk7XG5cbiAgICAvLyBBcHBlbmQgbWV0aG9kIHRvIGZpbmQgY3VycmVudGx5IGFjdGl2ZSBvcHRpb25cbiAgICBpbnQudHlwZSA9ICgpID0+IGludC5vcHRpb25zLmZpbmQoZSA9PiBlLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpO1xuICAgIHJldHVybiByb290O1xufTtcbiIsICJ0eXBlIERpcmVjdGlvbiA9ICd0b3AnIHwgJ2xlZnQnIHwgJ2JvdHRvbScgfCAncmlnaHQnO1xudHlwZSBBbGlnbm1lbnQgPSAnc3RhcnQnIHwgJ21pZGRsZScgfCAnZW5kJztcblxuZXhwb3J0IHR5cGUgVmFyaWFudEZsaXBPcmRlciA9IHtcbiAgICBzdGFydDogc3RyaW5nO1xuICAgIG1pZGRsZTogc3RyaW5nO1xuICAgIGVuZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUG9zaXRpb25GbGlwT3JkZXIgPSB7XG4gICAgdG9wOiBzdHJpbmc7XG4gICAgcmlnaHQ6IHN0cmluZztcbiAgICBib3R0b206IHN0cmluZztcbiAgICBsZWZ0OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBOYW5vUG9wUG9zaXRpb24gPSBgJHtEaXJlY3Rpb259LSR7QWxpZ25tZW50fWAgfCBEaXJlY3Rpb247XG5cbmV4cG9ydCB0eXBlIE5hbm9Qb3BPcHRpb25zID0ge1xuICAgIGNvbnRhaW5lcjogRE9NUmVjdDtcbiAgICBwb3NpdGlvbjogTmFub1BvcFBvc2l0aW9uO1xuICAgIHZhcmlhbnRGbGlwT3JkZXI6IFZhcmlhbnRGbGlwT3JkZXI7XG4gICAgcG9zaXRpb25GbGlwT3JkZXI6IFBvc2l0aW9uRmxpcE9yZGVyO1xuICAgIG1hcmdpbjogbnVtYmVyO1xuICAgIHJlZmVyZW5jZT86IEhUTUxFbGVtZW50O1xuICAgIHBvcHBlcj86IEhUTUxFbGVtZW50O1xuICAgIGFycm93PzogSFRNTEVsZW1lbnQ7XG4gICAgcGFkZGluZz86IG51bWJlcjtcbn07XG5cbnR5cGUgQXZhaWxhYmxlUG9zaXRpb25zID0ge1xuICAgIHQ6IG51bWJlcjtcbiAgICBiOiBudW1iZXI7XG4gICAgbDogbnVtYmVyO1xuICAgIHI6IG51bWJlcjtcbn07XG5cbnR5cGUgQXZhaWxhYmxlVmFyaWFudHMgPSB7XG4gICAgdnM6IG51bWJlcjtcbiAgICB2bTogbnVtYmVyO1xuICAgIHZlOiBudW1iZXI7XG4gICAgaHM6IG51bWJlcjtcbiAgICBobTogbnVtYmVyO1xuICAgIGhlOiBudW1iZXI7XG59O1xuXG50eXBlIFBvc2l0aW9uUGFpcnMgPSBbRGlyZWN0aW9uLCBEaXJlY3Rpb25dO1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbk1hdGNoID0gJ3RzJyB8ICd0bScgfCAndGUnIHwgJ2JzJyB8ICdibScgfCAnYmUnIHwgJ2xzJyB8ICdsbScgfCAnbGUnIHwgJ3JzJyB8ICdybScgfCAncmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hbm9Qb3Age1xuICAgIHVwZGF0ZSh1cGRhdGVkT3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+KTogUG9zaXRpb25NYXRjaCB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFub1BvcENvbnN0cnVjdG9yIHtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSByZWZlcmVuY2UgUmVmZXJlbmNlIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcG9wcGVyIEFjdHVhbCBwb3BwZXIgZWxlbWVudFxuICAgICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnNcbiAgICAgKi9cbiAgICAocmVmZXJlbmNlOiBIVE1MRWxlbWVudCwgcG9wcGVyOiBIVE1MRWxlbWVudCwgb3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+KTogTmFub1BvcDtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFBhcnRpYWwgb3B0aW9ucyB3aGljaCBnZXQgbWVyZ2VkIHdpdGggdGhlIGN1cnJlbnQgb25lXG4gICAgICovXG4gICAgKG9wdGlvbnM/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPik6IE5hbm9Qb3A7XG59XG5cbi8vIEV4cG9ydCBjdXJyZW50IHZlcnNpb25cbmV4cG9ydCBjb25zdCB2ZXJzaW9uID0gVkVSU0lPTjtcblxuLy8gRXhwb3J0IGRlZmF1bHRcbmV4cG9ydCBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICB2YXJpYW50RmxpcE9yZGVyOiB7c3RhcnQ6ICdzbWUnLCBtaWRkbGU6ICdtc2UnLCBlbmQ6ICdlbXMnfSxcbiAgICBwb3NpdGlvbkZsaXBPcmRlcjoge3RvcDogJ3RicmwnLCByaWdodDogJ3JsdGInLCBib3R0b206ICdidHJsJywgbGVmdDogJ2xyYnQnfSxcbiAgICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgbWFyZ2luOiA4LFxuICAgIHBhZGRpbmc6IDBcbn07XG5cbi8qKlxuICogUmVwb3NpdGlvbnMgYW4gZWxlbWVudCBvbmNlIHVzaW5nIHRoZSBwcm92aWRlZCBvcHRpb25zIGFuZCBlbGVtZW50cy5cbiAqIEBwYXJhbSByZWZlcmVuY2UgUmVmZXJlbmNlIGVsZW1lbnRcbiAqIEBwYXJhbSBwb3BwZXIgUG9wcGVyIGVsZW1lbnRcbiAqIEBwYXJhbSBvcHQgT3B0aW9uYWwsIGFkZGl0aW9uYWwgb3B0aW9uc1xuICovXG5leHBvcnQgY29uc3QgcmVwb3NpdGlvbiA9IChcbiAgICByZWZlcmVuY2U6IEhUTUxFbGVtZW50LFxuICAgIHBvcHBlcjogSFRNTEVsZW1lbnQsXG4gICAgb3B0PzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz5cbik6IFBvc2l0aW9uTWF0Y2ggfCBudWxsID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgYXJyb3csXG4gICAgICAgIG1hcmdpbixcbiAgICAgICAgcGFkZGluZyxcbiAgICAgICAgcG9zaXRpb24sXG4gICAgICAgIHZhcmlhbnRGbGlwT3JkZXIsXG4gICAgICAgIHBvc2l0aW9uRmxpcE9yZGVyXG4gICAgfSA9IHtcbiAgICAgICAgY29udGFpbmVyOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgICAuLi5vcHRcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVzZXQgcG9zaXRpb24gdG8gcmVzb2x2ZSB2aWV3cG9ydFxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvcG9zaXRpb24jZml4ZWRcbiAgICAgKi9cbiAgICBjb25zdCB7bGVmdDogb3JpZ2luYWxMZWZ0LCB0b3A6IG9yaWdpbmFsVG9wfSA9IHBvcHBlci5zdHlsZTtcbiAgICBwb3BwZXIuc3R5bGUubGVmdCA9ICcwJztcbiAgICBwb3BwZXIuc3R5bGUudG9wID0gJzAnO1xuXG4gICAgY29uc3QgcmVmQm94ID0gcmVmZXJlbmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHBvcEJveCA9IHBvcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIC8qKlxuICAgICAqIEhvbGRzIGNvb3JkaW5hdGVzIG9mIHRvcCwgbGVmdCwgYm90dG9tIGFuZCByaWdodCBhbGlnbm1lbnRcbiAgICAgKi9cbiAgICBjb25zdCBwb3NpdGlvblN0b3JlOiBBdmFpbGFibGVQb3NpdGlvbnMgPSB7XG4gICAgICAgIHQ6IHJlZkJveC50b3AgLSBwb3BCb3guaGVpZ2h0IC0gbWFyZ2luLFxuICAgICAgICBiOiByZWZCb3guYm90dG9tICsgbWFyZ2luLFxuICAgICAgICByOiByZWZCb3gucmlnaHQgKyBtYXJnaW4sXG4gICAgICAgIGw6IHJlZkJveC5sZWZ0IC0gcG9wQm94LndpZHRoIC0gbWFyZ2luXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEhvbGRzIGNvcnJlc3BvbmRpbmcgdmFyaWFudHMgKHN0YXJ0LCBtaWRkbGUsIGVuZCkuXG4gICAgICogVGhlIHZhbHVlcyBkZXBlbmQgb24gaG9yaXpvbnRhbCAvIHZlcnRpY2FsIG9yaWVudGF0aW9uXG4gICAgICovXG4gICAgY29uc3QgdmFyaWFudFN0b3JlOiBBdmFpbGFibGVWYXJpYW50cyA9IHtcbiAgICAgICAgdnM6IHJlZkJveC5sZWZ0LFxuICAgICAgICB2bTogcmVmQm94LmxlZnQgKyByZWZCb3gud2lkdGggLyAyIC0gcG9wQm94LndpZHRoIC8gMixcbiAgICAgICAgdmU6IHJlZkJveC5sZWZ0ICsgcmVmQm94LndpZHRoIC0gcG9wQm94LndpZHRoLFxuICAgICAgICBoczogcmVmQm94LnRvcCxcbiAgICAgICAgaG06IHJlZkJveC5ib3R0b20gLSByZWZCb3guaGVpZ2h0IC8gMiAtIHBvcEJveC5oZWlnaHQgLyAyLFxuICAgICAgICBoZTogcmVmQm94LmJvdHRvbSAtIHBvcEJveC5oZWlnaHRcbiAgICB9O1xuXG4gICAgLy8gRXh0cmFjdCBwb3NpdGlvbiBhbmQgdmFyaWFudFxuICAgIC8vIFRvcC1zdGFydCAtPiB0b3AgaXMgXCJwb3NpdGlvblwiIGFuZCBcInN0YXJ0XCIgaXMgdGhlIHZhcmlhbnRcbiAgICBjb25zdCBbcG9zS2V5LCB2YXJLZXkgPSAnbWlkZGxlJ10gPSBwb3NpdGlvbi5zcGxpdCgnLScpO1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IHBvc2l0aW9uRmxpcE9yZGVyW3Bvc0tleSBhcyBrZXlvZiBQb3NpdGlvbkZsaXBPcmRlcl07XG4gICAgY29uc3QgdmFyaWFudHMgPSB2YXJpYW50RmxpcE9yZGVyW3ZhcktleSBhcyBrZXlvZiBWYXJpYW50RmxpcE9yZGVyXTtcblxuICAgIC8vIFRyeSBvdXQgYWxsIHBvc3NpYmxlIGNvbWJpbmF0aW9ucywgc3RhcnRpbmcgd2l0aCB0aGUgcHJlZmVycmVkIG9uZS5cbiAgICBjb25zdCB7dG9wLCBsZWZ0LCBib3R0b20sIHJpZ2h0fSA9IGNvbnRhaW5lcjtcblxuICAgIGZvciAoY29uc3QgcCBvZiBwb3NpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgdmVydGljYWwgPSAocCA9PT0gJ3QnIHx8IHAgPT09ICdiJyk7XG5cbiAgICAgICAgLy8gVGhlIHBvc2l0aW9uLXZhbHVlXG4gICAgICAgIGxldCBwb3NpdGlvblZhbCA9IHBvc2l0aW9uU3RvcmVbcCBhcyBrZXlvZiBBdmFpbGFibGVQb3NpdGlvbnNdO1xuXG4gICAgICAgIC8vIFdoaWNoIHByb3BlcnR5IGhhcyB0byBiZSBjaGFuZ2VzLlxuICAgICAgICBjb25zdCBbcG9zaXRpb25LZXksIHZhcmlhbnRLZXldID0gKHZlcnRpY2FsID8gWyd0b3AnLCAnbGVmdCddIDogWydsZWZ0JywgJ3RvcCddKSBhcyBQb3NpdGlvblBhaXJzO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBib3ggcmVmZXJzIHRvIHRoZSBzaXplIG9mIHRoZSBwb3BwZXIgZWxlbWVudC4gRGVwZW5kaW5nIG9uIHRoZSBvcmllbnRhdGlvbiB0aGlzIGlzIHdpZHRoIG9yIGhlaWdodC5cbiAgICAgICAgICogVGhlIGxpbWl0IGlzIHRoZSBjb3JyZXNwb25kaW5nLCBtYXhpbXVtIHZhbHVlIGZvciB0aGlzIHBvc2l0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgW3Bvc2l0aW9uU2l6ZSwgdmFyaWFudFNpemVdID0gdmVydGljYWwgPyBbcG9wQm94LmhlaWdodCwgcG9wQm94LndpZHRoXSA6IFtwb3BCb3gud2lkdGgsIHBvcEJveC5oZWlnaHRdO1xuXG4gICAgICAgIGNvbnN0IFtwb3NpdGlvbk1heGltdW0sIHZhcmlhbnRNYXhpbXVtXSA9IHZlcnRpY2FsID8gW2JvdHRvbSwgcmlnaHRdIDogW3JpZ2h0LCBib3R0b21dO1xuICAgICAgICBjb25zdCBbcG9zaXRpb25NaW5pbXVtLCB2YXJpYW50TWluaW11bV0gPSB2ZXJ0aWNhbCA/IFt0b3AsIGxlZnRdIDogW2xlZnQsIHRvcF07XG5cbiAgICAgICAgLy8gU2tpcCBwcmUtY2xpcHBlZCB2YWx1ZXNcbiAgICAgICAgaWYgKHBvc2l0aW9uVmFsIDwgcG9zaXRpb25NaW5pbXVtIHx8IChwb3NpdGlvblZhbCArIHBvc2l0aW9uU2l6ZSArIHBhZGRpbmcpID4gcG9zaXRpb25NYXhpbXVtKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgdiBvZiB2YXJpYW50cykge1xuXG4gICAgICAgICAgICAvLyBUaGUgcG9zaXRpb24tdmFsdWUsIHRoZSByZWxhdGVkIHNpemUgdmFsdWUgb2YgdGhlIHBvcHBlciBhbmQgdGhlIGxpbWl0XG4gICAgICAgICAgICBsZXQgdmFyaWFudFZhbCA9IHZhcmlhbnRTdG9yZVsoKHZlcnRpY2FsID8gJ3YnIDogJ2gnKSArIHYpIGFzIGtleW9mIEF2YWlsYWJsZVZhcmlhbnRzXTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhbnRWYWwgPCB2YXJpYW50TWluaW11bSB8fCAodmFyaWFudFZhbCArIHZhcmlhbnRTaXplICsgcGFkZGluZykgPiB2YXJpYW50TWF4aW11bSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTdWJ0cmFjdCBwb3BCb3gncyBpbml0aWFsIHBvc2l0aW9uXG4gICAgICAgICAgICB2YXJpYW50VmFsIC09IHBvcEJveFt2YXJpYW50S2V5XTtcbiAgICAgICAgICAgIHBvc2l0aW9uVmFsIC09IHBvcEJveFtwb3NpdGlvbktleV07XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IHN0eWxlcyBhbmQgbm9ybWFsaXplIHZpZXdwb3J0XG4gICAgICAgICAgICBwb3BwZXIuc3R5bGVbdmFyaWFudEtleV0gPSBgJHt2YXJpYW50VmFsfXB4YDtcbiAgICAgICAgICAgIHBvcHBlci5zdHlsZVtwb3NpdGlvbktleV0gPSBgJHtwb3NpdGlvblZhbH1weGA7XG5cbiAgICAgICAgICAgIGlmIChhcnJvdykge1xuICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSByZWZCb3gncyBjZW50ZXIgb2Zmc2V0IGZyb20gaXRzIHZhcmlhbnQgcG9zaXRpb24gZm9yIGFycm93IHBvc2l0aW9uaW5nXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmQm94Q2VudGVyT2Zmc2V0ID0gdmVydGljYWwgPyByZWZCb3gud2lkdGggLyAyIDogcmVmQm94LmhlaWdodCAvIDI7XG5cbiAgICAgICAgICAgICAgICAvLyBXaGVuIHJlZkJveCBpcyBsYXJnZXIgdGhhbiBwb3BCb3gsIGhhdmUgdGhlIGFycm93J3MgdmFyaWFudCBwb3NpdGlvbiBiZSB0aGUgY2VudGVyIG9mIHBvcEJveCBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgIGNvbnN0IGFycm93VmFyaWFudFZhbCA9IHJlZkJveENlbnRlck9mZnNldCAqIDIgPCB2YXJpYW50U2l6ZSA/XG4gICAgICAgICAgICAgICAgICAgIHJlZkJveFt2YXJpYW50S2V5XSArIHJlZkJveENlbnRlck9mZnNldCA6IHZhcmlhbnRWYWwgKyB2YXJpYW50U2l6ZSAvIDI7XG5cbiAgICAgICAgICAgICAgICAvLyBBcnJvdyBwb3NpdGlvbiBpcyBlaXRoZXIgb24gb25lIHNpZGUgb2YgdGhlIHBvcEJveCBvciB0aGUgb3RoZXIuXG4gICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uVmFsIDwgcmVmQm94W3Bvc2l0aW9uS2V5XSkge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvblZhbCArPSBwb3NpdGlvblNpemU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gQXBwbHkgc3R5bGVzIHRvIGFycm93XG4gICAgICAgICAgICAgICAgYXJyb3cuc3R5bGVbdmFyaWFudEtleV0gPSBgJHthcnJvd1ZhcmlhbnRWYWx9cHhgO1xuICAgICAgICAgICAgICAgIGFycm93LnN0eWxlW3Bvc2l0aW9uS2V5XSA9IGAke3Bvc2l0aW9uVmFsfXB4YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIChwICsgdikgYXMgUG9zaXRpb25NYXRjaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldmVydCBzdHlsZSB2YWx1ZXMgKHdvbid0IHdvcmsgd2l0aCBzdHlsZWQtZWxlbWVudHMgb3Igc2ltaWxhciBzeXN0ZW1zKVxuICAgIC8vIFwiRml4XCIgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9TaW1vbndlcC9uYW5vcG9wL2lzc3Vlcy83XG4gICAgcG9wcGVyLnN0eWxlLmxlZnQgPSBvcmlnaW5hbExlZnQ7XG4gICAgcG9wcGVyLnN0eWxlLnRvcCA9IG9yaWdpbmFsVG9wO1xuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGF0ZWZ1bCBwb3BwZXIuXG4gKiBZb3UgY2FuIGVpdGhlci4uLlxuICogLi4uIHBhc3MgYW4gb3B0aW9ucyBvYmplY3Q6IGNyZWF0ZVBvcHBlcig8b3B0aW9ucz4pXG4gKiAuLi4gcGFzcyBib3RoIHRoZSByZWZlcmVuY2UgYW5kIHBvcHBlcjogY3JlYXRlKDxyZWY+LCA8ZWw+LCA8P29wdGlvbnM+KVxuICogLi4uIHBhc3Mgbm90aGluZywgaW4gdGhpcyBjYXNlIHlvdSdsbCBoYXZlIHRvIHNldCBhdCBsZWFzdCBib3RoIGEgcmVmZXJlbmNlIGFuZCBhIHBvcHBlciBpbiB1cGRhdGUuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSB8IG9wdGlvbnMgUmVmZXJlbmNlIGVsZW1lbnQgb3Igb3B0aW9uc1xuICogQHBhcmFtIHBvcHBlciBQb3BwZXIgZWxlbWVudFxuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgYWRkaXRpb25hbCBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVQb3BwZXI6IE5hbm9Qb3BDb25zdHJ1Y3RvciA9IChcbiAgICByZWZlcmVuY2U/OiBIVE1MRWxlbWVudCB8IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+LFxuICAgIHBvcHBlcj86IEhUTUxFbGVtZW50LFxuICAgIG9wdGlvbnM/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPlxuKTogTmFub1BvcCA9PiB7XG5cbiAgICAvLyBSZXNvbHZlIG9wdGlvbnNcbiAgICBjb25zdCBiYXNlT3B0aW9uczogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4gPSB0eXBlb2YgcmVmZXJlbmNlID09PSAnb2JqZWN0JyAmJiAhKHJlZmVyZW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSA/XG4gICAgICAgIHJlZmVyZW5jZSA6IHtyZWZlcmVuY2UsIHBvcHBlciwgLi4ub3B0aW9uc307XG5cbiAgICByZXR1cm4ge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXBvc2l0aW9ucyB0aGUgY3VycmVudCBwb3BwZXIuXG4gICAgICAgICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnMgd2hpY2ggZ2V0IG1lcmdlZCB3aXRoIHRoZSBjdXJyZW50IG9uZXMuXG4gICAgICAgICAqL1xuICAgICAgICB1cGRhdGUob3B0aW9uczogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4gPSBiYXNlT3B0aW9ucyk6IFBvc2l0aW9uTWF0Y2ggfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IHtyZWZlcmVuY2UsIHBvcHBlcn0gPSBPYmplY3QuYXNzaWduKGJhc2VPcHRpb25zLCBvcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKCFwb3BwZXIgfHwgIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUG9wcGVyLSBvciByZWZlcmVuY2UtZWxlbWVudCBtaXNzaW5nLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVwb3NpdGlvbihyZWZlcmVuY2UsIHBvcHBlciwgYmFzZU9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfTtcbn07XG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7cGFyc2VUb0hTVkF9IGZyb20gJy4vdXRpbHMvY29sb3InO1xuaW1wb3J0IHtIU1ZhQ29sb3J9IGZyb20gJy4vdXRpbHMvaHN2YWNvbG9yJztcbmltcG9ydCBNb3ZlYWJsZSBmcm9tICcuL2xpYnMvbW92ZWFibGUnO1xuaW1wb3J0IFNlbGVjdGFibGUgZnJvbSAnLi9saWJzL3NlbGVjdGFibGUnO1xuaW1wb3J0IGJ1aWxkUGlja3IgZnJvbSAnLi90ZW1wbGF0ZSc7XG5pbXBvcnQge2NyZWF0ZVBvcHBlcn0gZnJvbSAnbmFub3BvcCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBpY2tyIHtcblxuICAgIC8vIEV4cG9zZSBwaWNrciB1dGlsc1xuICAgIHN0YXRpYyB1dGlscyA9IF87XG5cbiAgICAvLyBBc3NpZ24gdmVyc2lvbiBhbmQgZXhwb3J0XG4gICAgc3RhdGljIHZlcnNpb24gPSBWRVJTSU9OO1xuXG4gICAgLy8gRGVmYXVsdCBzdHJpbmdzXG4gICAgc3RhdGljIEkxOE5fREVGQVVMVFMgPSB7XG5cbiAgICAgICAgLy8gU3RyaW5ncyB2aXNpYmxlIGluIHRoZSBVSVxuICAgICAgICAndWk6ZGlhbG9nJzogJ2NvbG9yIHBpY2tlciBkaWFsb2cnLFxuICAgICAgICAnYnRuOnRvZ2dsZSc6ICd0b2dnbGUgY29sb3IgcGlja2VyIGRpYWxvZycsXG4gICAgICAgICdidG46c3dhdGNoJzogJ2NvbG9yIHN3YXRjaCcsXG4gICAgICAgICdidG46bGFzdC1jb2xvcic6ICd1c2UgcHJldmlvdXMgY29sb3InLFxuICAgICAgICAnYnRuOnNhdmUnOiAnU2F2ZScsXG4gICAgICAgICdidG46Y2FuY2VsJzogJ0NhbmNlbCcsXG4gICAgICAgICdidG46Y2xlYXInOiAnQ2xlYXInLFxuXG4gICAgICAgIC8vIFN0cmluZ3MgdXNlZCBmb3IgYXJpYS1sYWJlbHNcbiAgICAgICAgJ2FyaWE6YnRuOnNhdmUnOiAnc2F2ZSBhbmQgY2xvc2UnLFxuICAgICAgICAnYXJpYTpidG46Y2FuY2VsJzogJ2NhbmNlbCBhbmQgY2xvc2UnLFxuICAgICAgICAnYXJpYTpidG46Y2xlYXInOiAnY2xlYXIgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6aW5wdXQnOiAnY29sb3IgaW5wdXQgZmllbGQnLFxuICAgICAgICAnYXJpYTpwYWxldHRlJzogJ2NvbG9yIHNlbGVjdGlvbiBhcmVhJyxcbiAgICAgICAgJ2FyaWE6aHVlJzogJ2h1ZSBzZWxlY3Rpb24gc2xpZGVyJyxcbiAgICAgICAgJ2FyaWE6b3BhY2l0eSc6ICdzZWxlY3Rpb24gc2xpZGVyJ1xuICAgIH07XG5cbiAgICAvLyBEZWZhdWx0IG9wdGlvbnNcbiAgICBzdGF0aWMgREVGQVVMVF9PUFRJT05TID0ge1xuICAgICAgICBhcHBDbGFzczogbnVsbCxcbiAgICAgICAgdGhlbWU6ICdjbGFzc2ljJyxcbiAgICAgICAgdXNlQXNCdXR0b246IGZhbHNlLFxuICAgICAgICBwYWRkaW5nOiA4LFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGNvbXBhcmlzb246IHRydWUsXG4gICAgICAgIGNsb3NlT25TY3JvbGw6IGZhbHNlLFxuICAgICAgICBvdXRwdXRQcmVjaXNpb246IDAsXG4gICAgICAgIGxvY2tPcGFjaXR5OiBmYWxzZSxcbiAgICAgICAgYXV0b1JlcG9zaXRpb246IHRydWUsXG4gICAgICAgIGNvbnRhaW5lcjogJ2JvZHknLFxuXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIGludGVyYWN0aW9uOiB7fVxuICAgICAgICB9LFxuXG4gICAgICAgIGkxOG46IHt9LFxuICAgICAgICBzd2F0Y2hlczogbnVsbCxcbiAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgc2xpZGVyczogbnVsbCxcblxuICAgICAgICBkZWZhdWx0OiAnIzQyNDQ1YScsXG4gICAgICAgIGRlZmF1bHRSZXByZXNlbnRhdGlvbjogbnVsbCxcbiAgICAgICAgcG9zaXRpb246ICdib3R0b20tbWlkZGxlJyxcbiAgICAgICAgYWRqdXN0YWJsZU51bWJlcnM6IHRydWUsXG4gICAgICAgIHNob3dBbHdheXM6IGZhbHNlLFxuXG4gICAgICAgIGNsb3NlV2l0aEtleTogJ0VzY2FwZSdcbiAgICB9O1xuXG4gICAgLy8gV2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgc3BlY2lmaWMgYWN0aW9ucyBkdXJpbmcgaW5pdGlsaXphdGlvblxuICAgIF9pbml0aWFsaXppbmdBY3RpdmUgPSB0cnVlO1xuXG4gICAgLy8gSWYgdGhlIGN1cnJlbnQgY29sb3IgdmFsdWUgc2hvdWxkIGJlIHJlY2FsY3VsYXRlZFxuICAgIF9yZWNhbGMgPSB0cnVlO1xuXG4gICAgLy8gUG9zaXRpb25pbmcgZW5naW5lIGFuZCBET00tVHJlZVxuICAgIF9uYW5vcG9wID0gbnVsbDtcbiAgICBfcm9vdCA9IG51bGw7XG5cbiAgICAvLyBDdXJyZW50IGFuZCBsYXN0IGNvbG9yIGZvciBjb21wYXJpc29uXG4gICAgX2NvbG9yID0gSFNWYUNvbG9yKCk7XG4gICAgX2xhc3RDb2xvciA9IEhTVmFDb2xvcigpO1xuICAgIF9zd2F0Y2hDb2xvcnMgPSBbXTtcblxuICAgIC8vIEFuaW1hdGlvbiBmcmFtZSB1c2VkIGZvciBzZXR1cC5cbiAgICAvLyBXaWxsIGJlIGNhbmNlbGxlZCBpbiBjYXNlIG9mIGRlc3RydWN0aW9uLlxuICAgIF9zZXR1cEFuaW1hdGlvbkZyYW1lID0gbnVsbDtcblxuICAgIC8vIEV2ZW5saXN0ZW5lciBuYW1lOiBbY2FsbGJhY2tzXVxuICAgIF9ldmVudExpc3RlbmVyID0ge1xuICAgICAgICBpbml0OiBbXSxcbiAgICAgICAgc2F2ZTogW10sXG4gICAgICAgIGhpZGU6IFtdLFxuICAgICAgICBzaG93OiBbXSxcbiAgICAgICAgY2xlYXI6IFtdLFxuICAgICAgICBjaGFuZ2U6IFtdLFxuICAgICAgICBjaGFuZ2VzdG9wOiBbXSxcbiAgICAgICAgY2FuY2VsOiBbXSxcbiAgICAgICAgc3dhdGNoc2VsZWN0OiBbXVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihvcHQpIHtcblxuICAgICAgICAvLyBBc3NpZ24gZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0ID0gT2JqZWN0LmFzc2lnbih7Li4uUGlja3IuREVGQVVMVF9PUFRJT05TfSwgb3B0KTtcblxuICAgICAgICBjb25zdCB7c3dhdGNoZXMsIGNvbXBvbmVudHMsIHRoZW1lLCBzbGlkZXJzLCBsb2NrT3BhY2l0eSwgcGFkZGluZ30gPSBvcHQ7XG5cbiAgICAgICAgaWYgKFsnbmFubycsICdtb25vbGl0aCddLmluY2x1ZGVzKHRoZW1lKSAmJiAhc2xpZGVycykge1xuICAgICAgICAgICAgb3B0LnNsaWRlcnMgPSAnaCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpbnRlcmFjdGlvbiBzZWN0aW9uXG4gICAgICAgIGlmICghY29tcG9uZW50cy5pbnRlcmFjdGlvbikge1xuICAgICAgICAgICAgY29tcG9uZW50cy5pbnRlcmFjdGlvbiA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3ZlcndyaXRlIHBhbGV0dGUgaWYgcHJldmlldywgb3BhY2l0eSBvciBodWUgYXJlIHRydWVcbiAgICAgICAgY29uc3Qge3ByZXZpZXcsIG9wYWNpdHksIGh1ZSwgcGFsZXR0ZX0gPSBjb21wb25lbnRzO1xuICAgICAgICBjb21wb25lbnRzLm9wYWNpdHkgPSAoIWxvY2tPcGFjaXR5ICYmIG9wYWNpdHkpO1xuICAgICAgICBjb21wb25lbnRzLnBhbGV0dGUgPSBwYWxldHRlIHx8IHByZXZpZXcgfHwgb3BhY2l0eSB8fCBodWU7XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBwaWNrZXJcbiAgICAgICAgdGhpcy5fcHJlQnVpbGQoKTtcbiAgICAgICAgdGhpcy5fYnVpbGRDb21wb25lbnRzKCk7XG4gICAgICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcbiAgICAgICAgdGhpcy5fZmluYWxCdWlsZCgpO1xuXG4gICAgICAgIC8vIEFwcGVuZCBwcmUtZGVmaW5lZCBzd2F0Y2ggY29sb3JzXG4gICAgICAgIGlmIChzd2F0Y2hlcyAmJiBzd2F0Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHN3YXRjaGVzLmZvckVhY2goY29sb3IgPT4gdGhpcy5hZGRTd2F0Y2goY29sb3IpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgcG9zaXRpb25pbmcgZW5naW5lXG4gICAgICAgIGNvbnN0IHtidXR0b24sIGFwcH0gPSB0aGlzLl9yb290O1xuICAgICAgICB0aGlzLl9uYW5vcG9wID0gY3JlYXRlUG9wcGVyKGJ1dHRvbiwgYXBwLCB7XG4gICAgICAgICAgICBtYXJnaW46IHBhZGRpbmdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBhY2Nlc3NpYmlsaXR5XG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnYnV0dG9uJyk7XG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCB0aGlzLl90KCdidG46dG9nZ2xlJykpO1xuXG4gICAgICAgIC8vIEluaXRpbGl6YXRpb24gaXMgZmluaXNoLCBwaWNrciBpcyB2aXNpYmxlIGFuZCByZWFkeSBmb3IgdXNhZ2VcbiAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgIHRoaXMuX3NldHVwQW5pbWF0aW9uRnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uIGNiKCkge1xuXG4gICAgICAgICAgICAvLyBUT0RPOiBQZXJmb3JtYW5jZSBpc3N1ZSBkdWUgdG8gaGlnaCBjYWxsLXJhdGU/XG4gICAgICAgICAgICBpZiAoIWFwcC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICB0aGF0LnNldENvbG9yKG9wdC5kZWZhdWx0KTtcbiAgICAgICAgICAgIHRoYXQuX3JlUG9zaXRpb25pbmdQaWNrZXIoKTtcblxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb2xvciByZXByZXNlbnRhdGlvblxuICAgICAgICAgICAgaWYgKG9wdC5kZWZhdWx0UmVwcmVzZW50YXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGF0Ll9yZXByZXNlbnRhdGlvbiA9IG9wdC5kZWZhdWx0UmVwcmVzZW50YXRpb247XG4gICAgICAgICAgICAgICAgdGhhdC5zZXRDb2xvclJlcHJlc2VudGF0aW9uKHRoYXQuX3JlcHJlc2VudGF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2hvdyBwaWNrciBpZiBsb2NrZWRcbiAgICAgICAgICAgIGlmIChvcHQuc2hvd0Fsd2F5cykge1xuICAgICAgICAgICAgICAgIHRoYXQuc2hvdygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbml0aWFsaXphdGlvbiBpcyBkb25lIC0gcGlja3IgaXMgdXNhYmxlLCBmaXJlIGluaXQgZXZlbnRcbiAgICAgICAgICAgIHRoYXQuX2luaXRpYWxpemluZ0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhhdC5fZW1pdCgnaW5pdCcpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGluc3RhbmNlIHZpYSBtZXRob2RcbiAgICBzdGF0aWMgY3JlYXRlID0gb3B0aW9ucyA9PiBuZXcgUGlja3Iob3B0aW9ucyk7XG5cbiAgICAvLyBEb2VzIG9ubHkgdGhlIGFic29sdXRseSBiYXNpYyB0aGluZyB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzXG4gICAgX3ByZUJ1aWxkKCkge1xuICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIFJlc29sdmUgZWxlbWVudHNcbiAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIFsnZWwnLCAnY29udGFpbmVyJ10pIHtcbiAgICAgICAgICAgIG9wdGlvbnNbdHlwZV0gPSBfLnJlc29sdmVFbGVtZW50KG9wdGlvbnNbdHlwZV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGVsZW1lbnQgYW5kIGFwcGVuZCBpdCB0byBib2R5IHRvXG4gICAgICAgIC8vIFByZXZlbnQgaW5pdGlhbGl6YXRpb24gZXJyb3JzXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBidWlsZFBpY2tyKHRoaXMpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGEgY3VzdG9tIGJ1dHRvbiBpcyB1c2VkXG4gICAgICAgIGlmIChvcHRpb25zLnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLl9yb290LmJ1dHRvbiA9IG9wdGlvbnMuZWw7IC8vIFJlcGxhY2UgYnV0dG9uIHdpdGggY3VzdG9taXplZCBidXR0b25cbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX3Jvb3Qucm9vdCk7XG4gICAgfVxuXG4gICAgX2ZpbmFsQnVpbGQoKSB7XG4gICAgICAgIGNvbnN0IG9wdCA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZyb20gYm9keVxuICAgICAgICBvcHQuY29udGFpbmVyLnJlbW92ZUNoaWxkKHJvb3Qucm9vdCk7XG5cbiAgICAgICAgaWYgKG9wdC5pbmxpbmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IG9wdC5lbC5wYXJlbnRFbGVtZW50O1xuXG4gICAgICAgICAgICBpZiAob3B0LmVsLm5leHRTaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShyb290LmFwcCwgb3B0LmVsLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHJvb3QuYXBwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdC5jb250YWluZXIuYXBwZW5kQ2hpbGQocm9vdC5hcHApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRG9uJ3QgcmVwbGFjZSB0aGUgdGhlIGVsZW1lbnQgaWYgYSBjdXN0b20gYnV0dG9uIGlzIHVzZWRcbiAgICAgICAgaWYgKCFvcHQudXNlQXNCdXR0b24pIHtcblxuICAgICAgICAgICAgLy8gUmVwbGFjZSBlbGVtZW50IHdpdGggYWN0dWFsIGNvbG9yLXBpY2tlclxuICAgICAgICAgICAgb3B0LmVsLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHJvb3Qucm9vdCwgb3B0LmVsKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHQuaW5saW5lKSB7XG4gICAgICAgICAgICBvcHQuZWwucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBpdCBzaG91bGQgYmUgaW1tZWRpYXRseSBkaXNhYmxlZFxuICAgICAgICBpZiAob3B0LmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGNvbG9yIGNvbXBhcmlzb24gaXMgZGlzYWJsZWQsIGlmIHllcyAtIHJlbW92ZSB0cmFuc2l0aW9ucyBzbyBldmVyeXRoaW5nIGtlZXBzIHNtb290aGx5XG4gICAgICAgIGlmICghb3B0LmNvbXBhcmlzb24pIHtcbiAgICAgICAgICAgIHJvb3QuYnV0dG9uLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG5cbiAgICAgICAgICAgIGlmICghb3B0LnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgcm9vdC5wcmV2aWV3Lmxhc3RDb2xvci5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgX2J1aWxkQ29tcG9uZW50cygpIHtcblxuICAgICAgICAvLyBJbnN0YW5jZSByZWZlcmVuY2VcbiAgICAgICAgY29uc3QgaW5zdCA9IHRoaXM7XG4gICAgICAgIGNvbnN0IGNzID0gdGhpcy5vcHRpb25zLmNvbXBvbmVudHM7XG4gICAgICAgIGNvbnN0IHNsaWRlcnMgPSAoaW5zdC5vcHRpb25zLnNsaWRlcnMgfHwgJ3YnKS5yZXBlYXQoMik7XG4gICAgICAgIGNvbnN0IFtzbywgc2hdID0gc2xpZGVycy5tYXRjaCgvXlt2aF0rJC9nKSA/IHNsaWRlcnMgOiBbXTtcblxuICAgICAgICAvLyBSZS1hc3NpZ24gaWYgbnVsbFxuICAgICAgICBjb25zdCBnZXRDb2xvciA9ICgpID0+XG4gICAgICAgICAgICB0aGlzLl9jb2xvciB8fCAodGhpcy5fY29sb3IgPSB0aGlzLl9sYXN0Q29sb3IuY2xvbmUoKSk7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IHtcblxuICAgICAgICAgICAgcGFsZXR0ZTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGluc3QuX3Jvb3QucGFsZXR0ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgd3JhcHBlcjogaW5zdC5fcm9vdC5wYWxldHRlLnBhbGV0dGUsXG5cbiAgICAgICAgICAgICAgICBvbnN0b3A6ICgpID0+IGluc3QuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnc2xpZGVyJywgaW5zdCksXG4gICAgICAgICAgICAgICAgb25jaGFuZ2UoeCwgeSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IGluc3Q7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtsYXN0Q29sb3IsIGN1cnJlbnRDb2xvcn0gPSBfcm9vdC5wcmV2aWV3O1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgaW5wdXQgZmllbGQgb25seSBpZiB0aGUgdXNlciBpcyBjdXJyZW50bHkgbm90IHR5cGluZ1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBzYXR1cmF0aW9uIGJhc2VkIG9uIHRoZSBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IucyA9IHggKiAxMDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnYgPSAxMDAgLSB5ICogMTAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmV2ZW50IGZhbGxpbmcgdW5kZXIgemVyb1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IudiA8IDAgPyBjb2xvci52ID0gMCA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0Ll91cGRhdGVPdXRwdXQoJ3NsaWRlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHBpY2tlciBhbmQgZ3JhZGllbnQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3NzUkdCYVN0cmluZyA9IGNvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IGNzc1JHQmFTdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlci5zdHlsZS5iYWNrZ3JvdW5kID0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAke2NvbG9yLmF9KSwgdHJhbnNwYXJlbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIGhzbGEoJHtjb2xvci5ofSwgMTAwJSwgNTAlLCAke2NvbG9yLmF9KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAke2NvbG9yLmF9KSlcbiAgICAgICAgICAgICAgICAgICAgYDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBpcyBsb2NrZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmNvbXBhcmlzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9yb290LmJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgY29sb3IsIHJlbW92ZSB0aGUgY2xlYXJlZCBpY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBfcm9vdC5idXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnY2xlYXInKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghb3B0aW9ucy51c2VBc0J1dHRvbiAmJiAhaW5zdC5fbGFzdENvbG9yKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IGNvbG9yIHRvIGJvdGggdGhlIGxhc3QgYW5kIGN1cnJlbnQgY29sb3Igc2luY2UgdGhlIGN1cnJlbnQgc3RhdGUgaXMgY2xlYXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdENvbG9yLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhIHN3YXRjaCB3aGljaCBjb2xvciBtYXRjaGVzIHRoZSBjdXJyZW50IG9uZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZXhhID0gY29sb3IudG9IRVhBKCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB7ZWwsIGNvbG9yfSBvZiBpbnN0Ll9zd2F0Y2hDb2xvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdFtoZXhhID09PSBjb2xvci50b0hFWEEoKS50b1N0cmluZygpID8gJ2FkZCcgOiAncmVtb3ZlJ10oJ3Bjci1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoYW5nZSBjdXJyZW50IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgaHVlOiBNb3ZlYWJsZSh7XG4gICAgICAgICAgICAgICAgbG9jazogc2ggPT09ICd2JyA/ICdoJyA6ICd2JyxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290Lmh1ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgd3JhcHBlcjogaW5zdC5fcm9vdC5odWUuc2xpZGVyLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5odWUgfHwgIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgaHVlXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0Ll9yZWNhbGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLmggPSB2ICogMzYwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBgaHNsKCR7Y29sb3IuaH0sIDEwMCUsIDUwJSlgO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnBhbGV0dGUudHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBvcGFjaXR5OiBNb3ZlYWJsZSh7XG4gICAgICAgICAgICAgICAgbG9jazogc28gPT09ICd2JyA/ICdoJyA6ICd2JyxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290Lm9wYWNpdHkucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3Qub3BhY2l0eS5zbGlkZXIsXG5cbiAgICAgICAgICAgICAgICBvbnN0b3A6ICgpID0+IGluc3QuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnc2xpZGVyJywgaW5zdCksXG4gICAgICAgICAgICAgICAgb25jaGFuZ2Uodikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNzLm9wYWNpdHkgfHwgIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgb3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5hID0gTWF0aC5yb3VuZCh2ICogMWUyKSAvIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IGByZ2JhKDAsIDAsIDAsICR7Y29sb3IuYX0pYDtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wYWxldHRlLnRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgc2VsZWN0YWJsZTogU2VsZWN0YWJsZSh7XG4gICAgICAgICAgICAgICAgZWxlbWVudHM6IGluc3QuX3Jvb3QuaW50ZXJhY3Rpb24ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdhY3RpdmUnLFxuXG4gICAgICAgICAgICAgICAgb25jaGFuZ2UoZSkge1xuICAgICAgICAgICAgICAgICAgICBpbnN0Ll9yZXByZXNlbnRhdGlvbiA9IGUudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zdC5fcmVjYWxjICYmIGluc3QuX3VwZGF0ZU91dHB1dCgnc3dhdGNoJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9jb21wb25lbnRzID0gY29tcG9uZW50cztcbiAgICB9XG5cbiAgICBfYmluZEV2ZW50cygpIHtcbiAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgY29uc3QgZXZlbnRCaW5kaW5ncyA9IFtcblxuICAgICAgICAgICAgLy8gQ2xlYXIgY29sb3JcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24uY2xlYXIsICdjbGljaycsICgpID0+IHRoaXMuX2NsZWFyQ29sb3IoKSksXG5cbiAgICAgICAgICAgIC8vIFNlbGVjdCBsYXN0IGNvbG9yIG9uIGNsaWNrXG4gICAgICAgICAgICBfLm9uKFtcbiAgICAgICAgICAgICAgICBfcm9vdC5pbnRlcmFjdGlvbi5jYW5jZWwsXG4gICAgICAgICAgICAgICAgX3Jvb3QucHJldmlldy5sYXN0Q29sb3JcbiAgICAgICAgICAgIF0sICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEhTVkEoLi4uKHRoaXMuX2xhc3RDb2xvciB8fCB0aGlzLl9jb2xvcikudG9IU1ZBKCksIHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NhbmNlbCcpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIFNhdmUgY29sb3JcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24uc2F2ZSwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICF0aGlzLmFwcGx5Q29sb3IoKSAmJiAhb3B0aW9ucy5zaG93QWx3YXlzICYmIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIFVzZXIgaW5wdXRcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCBbJ2tleXVwJywgJ2lucHV0J10sIGUgPT4ge1xuXG4gICAgICAgICAgICAgICAgLy8gRmlyZSBsaXN0ZW5lciBpZiBpbml0aWFsaXphdGlvbiBpcyBmaW5pc2ggYW5kIGNoYW5nZWQgY29sb3Igd2FzIHZhbGlkXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0Q29sb3IoZS50YXJnZXQudmFsdWUsIHRydWUpICYmICF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlJywgdGhpcy5fY29sb3IsICdpbnB1dCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2VzdG9wJywgJ2lucHV0JywgdGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBEZXRlY3QgdXNlciBpbnB1dCBhbmQgZGlzYWJsZSBhdXRvLXJlY2FsY3VsYXRpb25cbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCBbJ2ZvY3VzJywgJ2JsdXInXSwgZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVjYWxjID0gZS50eXBlID09PSAnYmx1cic7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVjYWxjICYmIHRoaXMuX3VwZGF0ZU91dHB1dChudWxsKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBDYW5jZWwgaW5wdXQgZGV0ZWN0aW9uIG9uIGNvbG9yIGNoYW5nZVxuICAgICAgICAgICAgXy5vbihbXG4gICAgICAgICAgICAgICAgX3Jvb3QucGFsZXR0ZS5wYWxldHRlLFxuICAgICAgICAgICAgICAgIF9yb290LnBhbGV0dGUucGlja2VyLFxuICAgICAgICAgICAgICAgIF9yb290Lmh1ZS5zbGlkZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3QuaHVlLnBpY2tlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5vcGFjaXR5LnNsaWRlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5vcGFjaXR5LnBpY2tlclxuICAgICAgICAgICAgXSwgWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddLCAoKSA9PiB0aGlzLl9yZWNhbGMgPSB0cnVlLCB7cGFzc2l2ZTogdHJ1ZX0pXG4gICAgICAgIF07XG5cbiAgICAgICAgLy8gUHJvdmlkZSBoaWRpbmcgLyBzaG93aW5nIGFiaWxpdGllcyBvbmx5IGlmIHNob3dBbHdheXMgaXMgZmFsc2VcbiAgICAgICAgaWYgKCFvcHRpb25zLnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNrID0gb3B0aW9ucy5jbG9zZVdpdGhLZXk7XG5cbiAgICAgICAgICAgIGV2ZW50QmluZGluZ3MucHVzaChcblxuICAgICAgICAgICAgICAgIC8vIFNhdmUgYW5kIGhpZGUgLyBzaG93IHBpY2tlclxuICAgICAgICAgICAgICAgIF8ub24oX3Jvb3QuYnV0dG9uLCAnY2xpY2snLCAoKSA9PiB0aGlzLmlzT3BlbigpID8gdGhpcy5oaWRlKCkgOiB0aGlzLnNob3coKSksXG5cbiAgICAgICAgICAgICAgICAvLyBDbG9zZSB3aXRoIGVzY2FwZSBrZXlcbiAgICAgICAgICAgICAgICBfLm9uKGRvY3VtZW50LCAna2V5dXAnLCBlID0+IHRoaXMuaXNPcGVuKCkgJiYgKGUua2V5ID09PSBjayB8fCBlLmNvZGUgPT09IGNrKSAmJiB0aGlzLmhpZGUoKSksXG5cbiAgICAgICAgICAgICAgICAvLyBDYW5jZWwgc2VsZWN0aW5nIGlmIHRoZSB1c2VyIHRhcHMgYmVoaW5kIHRoZSBjb2xvciBwaWNrZXJcbiAgICAgICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ3RvdWNoc3RhcnQnLCAnbW91c2Vkb3duJ10sIGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc09wZW4oKSAmJiAhXy5ldmVudFBhdGgoZSkuc29tZShlbCA9PiBlbCA9PT0gX3Jvb3QuYXBwIHx8IGVsID09PSBfcm9vdC5idXR0b24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtjYXB0dXJlOiB0cnVlfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYWtlIGlucHV0IGFkanVzdGFibGUgaWYgZW5hYmxlZFxuICAgICAgICBpZiAob3B0aW9ucy5hZGp1c3RhYmxlTnVtYmVycykge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2VzID0ge1xuICAgICAgICAgICAgICAgIHJnYmE6IFsyNTUsIDI1NSwgMjU1LCAxXSxcbiAgICAgICAgICAgICAgICBoc3ZhOiBbMzYwLCAxMDAsIDEwMCwgMV0sXG4gICAgICAgICAgICAgICAgaHNsYTogWzM2MCwgMTAwLCAxMDAsIDFdLFxuICAgICAgICAgICAgICAgIGNteWs6IFsxMDAsIDEwMCwgMTAwLCAxMDBdXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBfLmFkanVzdGFibGVJbnB1dE51bWJlcnMoX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCAobywgc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IHJhbmdlc1t0aGlzLmdldENvbG9yUmVwcmVzZW50YXRpb24oKS50b0xvd2VyQ2FzZSgpXTtcblxuICAgICAgICAgICAgICAgIGlmIChyYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXggPSByYW5nZVtpbmRleF07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIG5leHQgcmVhc29uYWJsZSBudW1iZXJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnYgPSBvICsgKG1heCA+PSAxMDAgPyBzdGVwICogMTAwMCA6IHN0ZXApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IHJhbmdlIG9mIHplcm8gdXAgdG8gbWF4LCBmaXggZmxvYXRpbmctcG9pbnQgaXNzdWVzXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudiA8PSAwID8gMCA6IE51bWJlcigobnYgPCBtYXggPyBudiA6IG1heCkudG9QcmVjaXNpb24oMykpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5hdXRvUmVwb3NpdGlvbiAmJiAhb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuXG4gICAgICAgICAgICAvLyBSZS1jYWxjIHBvc2l0aW9uIG9uIHdpbmRvdyByZXNpemUsIHNjcm9sbCBhbmQgd2hlZWxcbiAgICAgICAgICAgIGV2ZW50QmluZGluZ3MucHVzaChcbiAgICAgICAgICAgICAgICBfLm9uKHdpbmRvdywgWydzY3JvbGwnLCAncmVzaXplJ10sICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuaXNPcGVuKCkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuY2xvc2VPblNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZW91dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRpbWVvdXQgPSBudWxsLCAxMDApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHBvc2l0aW9uIG9uIGV2ZXJ5IGZyYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIHJzKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9yZVBvc2l0aW9uaW5nUGlja2VyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aW1lb3V0ICE9PSBudWxsKSAmJiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGltZW91dCA9IG51bGwsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7Y2FwdHVyZTogdHJ1ZX0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2F2ZSBiaW5kaW5nc1xuICAgICAgICB0aGlzLl9ldmVudEJpbmRpbmdzID0gZXZlbnRCaW5kaW5ncztcbiAgICB9XG5cbiAgICBfcmVQb3NpdGlvbmluZ1BpY2tlcigpIHtcbiAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBObyByZXBvc2l0aW9uaW5nIG5lZWRlZCBpZiBpbmxpbmVcbiAgICAgICAgaWYgKCFvcHRpb25zLmlubGluZSkge1xuICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IHRoaXMuX25hbm9wb3AudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBjb250YWluZXI6IGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IG9wdGlvbnMucG9zaXRpb25cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuX3Jvb3QuYXBwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGViID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgZWwuc3R5bGUudG9wID0gYCR7KHdpbmRvdy5pbm5lckhlaWdodCAtIGViLmhlaWdodCkgLyAyfXB4YDtcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS5sZWZ0ID0gYCR7KHdpbmRvdy5pbm5lcldpZHRoIC0gZWIud2lkdGgpIC8gMn1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfdXBkYXRlT3V0cHV0KGV2ZW50U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgX2NvbG9yLCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY29tcG9uZW50IGlzIHByZXNlbnRcbiAgICAgICAgaWYgKF9yb290LmludGVyYWN0aW9uLnR5cGUoKSkge1xuXG4gICAgICAgICAgICAvLyBDb25zdHJ1Y3QgZnVuY3Rpb24gbmFtZSBhbmQgY2FsbCBpZiBwcmVzZW50XG4gICAgICAgICAgICBjb25zdCBtZXRob2QgPSBgdG8ke19yb290LmludGVyYWN0aW9uLnR5cGUoKS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpfWA7XG4gICAgICAgICAgICBfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQudmFsdWUgPSB0eXBlb2YgX2NvbG9yW21ldGhvZF0gPT09ICdmdW5jdGlvbicgP1xuICAgICAgICAgICAgICAgIF9jb2xvclttZXRob2RdKCkudG9TdHJpbmcob3B0aW9ucy5vdXRwdXRQcmVjaXNpb24pIDogJyc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaXJlIGxpc3RlbmVyIGlmIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaFxuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiB0aGlzLl9yZWNhbGMpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZScsIF9jb2xvciwgZXZlbnRTb3VyY2UsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2NsZWFyQ29sb3Ioc2lsZW50ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gQ2hhbmdlIG9ubHkgdGhlIGJ1dHRvbiBjb2xvciBpZiBpdCBpc24ndCBjdXN0b21pemVkXG4gICAgICAgIGlmICghb3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgX3Jvb3QuYnV0dG9uLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsICdyZ2JhKDAsIDAsIDAsIDAuMTUpJyk7XG4gICAgICAgIH1cblxuICAgICAgICBfcm9vdC5idXR0b24uY2xhc3NMaXN0LmFkZCgnY2xlYXInKTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMuc2hvd0Fsd2F5cykge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sYXN0Q29sb3IgPSBudWxsO1xuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiAhc2lsZW50KSB7XG5cbiAgICAgICAgICAgIC8vIEZpcmUgbGlzdGVuZXJcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3NhdmUnLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NsZWFyJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfcGFyc2VMb2NhbENvbG9yKHN0cikge1xuICAgICAgICBjb25zdCB7dmFsdWVzLCB0eXBlLCBhfSA9IHBhcnNlVG9IU1ZBKHN0cik7XG4gICAgICAgIGNvbnN0IHtsb2NrT3BhY2l0eX0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGFscGhhTWFrZXNBQ2hhbmdlID0gYSAhPT0gdW5kZWZpbmVkICYmIGEgIT09IDE7XG5cbiAgICAgICAgLy8gSWYgbm8gb3BhY2l0eSBpcyBhcHBsaWVkLCBhZGQgdW5kZWZpbmVkIGF0IHRoZSB2ZXJ5IGVuZCB3aGljaCBnZXRzXG4gICAgICAgIC8vIFNldCB0byAxIGluIHNldEhTVkFcbiAgICAgICAgaWYgKHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB2YWx1ZXNbM10gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWVzOiAoIXZhbHVlcyB8fCAobG9ja09wYWNpdHkgJiYgYWxwaGFNYWtlc0FDaGFuZ2UpKSA/IG51bGwgOiB2YWx1ZXMsXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgX3Qoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaTE4bltrZXldIHx8IFBpY2tyLkkxOE5fREVGQVVMVFNba2V5XTtcbiAgICB9XG5cbiAgICBfZW1pdChldmVudCwgLi4uYXJncykge1xuICAgICAgICB0aGlzLl9ldmVudExpc3RlbmVyW2V2ZW50XS5mb3JFYWNoKGNiID0+IGNiKC4uLmFyZ3MsIHRoaXMpKTtcbiAgICB9XG5cbiAgICBvbihldmVudCwgY2IpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcltldmVudF0ucHVzaChjYik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG9mZihldmVudCwgY2IpIHtcbiAgICAgICAgY29uc3QgY2FsbEJhY2tzID0gKHRoaXMuX2V2ZW50TGlzdGVuZXJbZXZlbnRdIHx8IFtdKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjYWxsQmFja3MuaW5kZXhPZihjYik7XG5cbiAgICAgICAgaWYgKH5pbmRleCkge1xuICAgICAgICAgICAgY2FsbEJhY2tzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBlbmRzIGEgY29sb3IgdG8gdGhlIHN3YXRjaCBwYWxldHRlXG4gICAgICogQHBhcmFtIGNvbG9yXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgYWRkU3dhdGNoKGNvbG9yKSB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZXN9ID0gdGhpcy5fcGFyc2VMb2NhbENvbG9yKGNvbG9yKTtcblxuICAgICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCB7X3N3YXRjaENvbG9ycywgX3Jvb3R9ID0gdGhpcztcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gSFNWYUNvbG9yKC4uLnZhbHVlcyk7XG5cbiAgICAgICAgICAgIC8vIENyZWF0ZSBuZXcgc3dhdGNoIEhUTUxFbGVtZW50XG4gICAgICAgICAgICBjb25zdCBlbCA9IF8uY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoXG4gICAgICAgICAgICAgICAgYDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwiLS1wY3ItY29sb3I6ICR7Y29sb3IudG9SR0JBKCkudG9TdHJpbmcoMCl9XCIgYXJpYS1sYWJlbD1cIiR7dGhpcy5fdCgnYnRuOnN3YXRjaCcpfVwiLz5gXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBBcHBlbmQgZWxlbWVudCBhbmQgc2F2ZSBzd2F0Y2ggZGF0YVxuICAgICAgICAgICAgX3Jvb3Quc3dhdGNoZXMuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgICAgICAgX3N3YXRjaENvbG9ycy5wdXNoKHtlbCwgY29sb3J9KTtcblxuICAgICAgICAgICAgLy8gQmluZCBldmVudFxuICAgICAgICAgICAgdGhpcy5fZXZlbnRCaW5kaW5ncy5wdXNoKFxuICAgICAgICAgICAgICAgIF8ub24oZWwsICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIU1ZBKC4uLmNvbG9yLnRvSFNWQSgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnc3dhdGNoc2VsZWN0JywgY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2UnLCBjb2xvciwgJ3N3YXRjaCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgc3dhdGNoIGNvbG9yIGJ5IGl0J3MgaW5kZXhcbiAgICAgKiBAcGFyYW0gaW5kZXhcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICByZW1vdmVTd2F0Y2goaW5kZXgpIHtcbiAgICAgICAgY29uc3Qgc3dhdGNoQ29sb3IgPSB0aGlzLl9zd2F0Y2hDb2xvcnNbaW5kZXhdO1xuXG4gICAgICAgIC8vIENoZWNrIHN3YXRjaCBkYXRhXG4gICAgICAgIGlmIChzd2F0Y2hDb2xvcikge1xuICAgICAgICAgICAgY29uc3Qge2VsfSA9IHN3YXRjaENvbG9yO1xuXG4gICAgICAgICAgICAvLyBSZW1vdmUgSFRNTCBjaGlsZCBhbmQgc3dhdGNoIGRhdGFcbiAgICAgICAgICAgIHRoaXMuX3Jvb3Quc3dhdGNoZXMucmVtb3ZlQ2hpbGQoZWwpO1xuICAgICAgICAgICAgdGhpcy5fc3dhdGNoQ29sb3JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBhcHBseUNvbG9yKHNpbGVudCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHtwcmV2aWV3LCBidXR0b259ID0gdGhpcy5fcm9vdDtcblxuICAgICAgICAvLyBDaGFuZ2UgcHJldmlldyBhbmQgY3VycmVudCBjb2xvclxuICAgICAgICBjb25zdCBjc3NSR0JhU3RyaW5nID0gdGhpcy5fY29sb3IudG9SR0JBKCkudG9TdHJpbmcoMCk7XG4gICAgICAgIHByZXZpZXcubGFzdENvbG9yLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuXG4gICAgICAgIC8vIENoYW5nZSBvbmx5IHRoZSBidXR0b24gY29sb3IgaWYgaXQgaXNuJ3QgY3VzdG9taXplZFxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgYnV0dG9uLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlciBjaGFuZ2VkIHRoZSBjb2xvciBzbyByZW1vdmUgdGhlIGNsZWFyIGNsYXNcbiAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NsZWFyJyk7XG5cbiAgICAgICAgLy8gU2F2ZSBsYXN0IGNvbG9yXG4gICAgICAgIHRoaXMuX2xhc3RDb2xvciA9IHRoaXMuX2NvbG9yLmNsb25lKCk7XG5cbiAgICAgICAgLy8gRmlyZSBsaXN0ZW5lclxuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiAhc2lsZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdzYXZlJywgdGhpcy5fY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzdHJveSdzIGFsbCBmdW5jdGlvbmFsaXR5c1xuICAgICAqL1xuICAgIGRlc3Ryb3koKSB7XG5cbiAgICAgICAgLy8gQ2FuY2VsIHNldHVwLWZyYW1lIGlmIHNldFxuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zZXR1cEFuaW1hdGlvbkZyYW1lKTtcblxuICAgICAgICAvLyBVbmJpbmQgZXZlbnRzXG4gICAgICAgIHRoaXMuX2V2ZW50QmluZGluZ3MuZm9yRWFjaChhcmdzID0+IF8ub2ZmKC4uLmFyZ3MpKTtcblxuICAgICAgICAvLyBEZXN0cm95IHN1Yi1jb21wb25lbnRzXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuX2NvbXBvbmVudHMpXG4gICAgICAgICAgICAuZm9yRWFjaChrZXkgPT4gdGhpcy5fY29tcG9uZW50c1trZXldLmRlc3Ryb3koKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzdHJveSdzIGFsbCBmdW5jdGlvbmFsaXR5cyBhbmQgcmVtb3Zlc1xuICAgICAqIHRoZSBwaWNrciBlbGVtZW50LlxuICAgICAqL1xuICAgIGRlc3Ryb3lBbmRSZW1vdmUoKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICBjb25zdCB7cm9vdCwgYXBwfSA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGVsZW1lbnRcbiAgICAgICAgaWYgKHJvb3QucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgcm9vdC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHJvb3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIC5wY3ItYXBwXG4gICAgICAgIGFwcC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGFwcCk7XG5cbiAgICAgICAgLy8gVGhlcmUgYXJlIHJlZmVyZW5jZXMgdG8gdmFyaW91cyBET00gZWxlbWVudHMgc3RvcmVkIGluIHRoZSBwaWNrciBpbnN0YW5jZVxuICAgICAgICAvLyBUaGlzIGNsZWFucyBhbGwgb2YgdGhlbSB0byBhdm9pZCBkZXRhY2hlZCBET01zXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMpXG4gICAgICAgICAgICAuZm9yRWFjaChrZXkgPT4gdGhpc1trZXldID0gbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZXMgdGhlIGNvbG9yLXBpY2tlciB1aS5cbiAgICAgKi9cbiAgICBoaWRlKCkge1xuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LnJlbW92ZSgndmlzaWJsZScpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnaGlkZScpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd3MgdGhlIGNvbG9yLXBpY2tlciB1aS5cbiAgICAgKi9cbiAgICBzaG93KCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5kaXNhYmxlZCAmJiAhdGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpO1xuICAgICAgICAgICAgdGhpcy5fcmVQb3NpdGlvbmluZ1BpY2tlcigpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnc2hvdycsIHRoaXMuX2NvbG9yKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIHRoZSBjb2xvciBwaWNrZXIgaXMgY3VycmVudGx5IG9wZW5cbiAgICAgKi9cbiAgICBpc09wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmFwcC5jbGFzc0xpc3QuY29udGFpbnMoJ3Zpc2libGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgYSBzcGVjaWZpYyBjb2xvci5cbiAgICAgKiBAcGFyYW0gaCBIdWVcbiAgICAgKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gICAgICogQHBhcmFtIHYgVmFsdWVcbiAgICAgKiBAcGFyYW0gYSBBbHBoYSBjaGFubmVsICgwIC0gMSlcbiAgICAgKiBAcGFyYW0gc2lsZW50IElmIHRoZSBidXR0b24gc2hvdWxkIG5vdCBjaGFuZ2UgdGhlIGNvbG9yXG4gICAgICogQHJldHVybiBib29sZWFuIGlmIHRoZSBjb2xvciBoYXMgYmVlbiBhY2NlcHRlZFxuICAgICAqL1xuICAgIHNldEhTVkEoaCA9IDM2MCwgcyA9IDAsIHYgPSAwLCBhID0gMSwgc2lsZW50ID0gZmFsc2UpIHtcblxuICAgICAgICAvLyBEZWFjdGl2YXRlIGNvbG9yIGNhbGN1bGF0aW9uXG4gICAgICAgIGNvbnN0IHJlY2FsYyA9IHRoaXMuX3JlY2FsYzsgLy8gU2F2ZSBzdGF0ZVxuICAgICAgICB0aGlzLl9yZWNhbGMgPSBmYWxzZTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSBpbnB1dFxuICAgICAgICBpZiAoaCA8IDAgfHwgaCA+IDM2MCB8fCBzIDwgMCB8fCBzID4gMTAwIHx8IHYgPCAwIHx8IHYgPiAxMDAgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE92ZXJyaWRlIGN1cnJlbnQgY29sb3IgYW5kIHJlLWFjdGl2ZSBjb2xvciBjYWxjdWxhdGlvblxuICAgICAgICB0aGlzLl9jb2xvciA9IEhTVmFDb2xvcihoLCBzLCB2LCBhKTtcblxuICAgICAgICAvLyBVcGRhdGUgc2xpZGVyIGFuZCBwYWxldHRlXG4gICAgICAgIGNvbnN0IHtodWUsIG9wYWNpdHksIHBhbGV0dGV9ID0gdGhpcy5fY29tcG9uZW50cztcbiAgICAgICAgaHVlLnVwZGF0ZSgoaCAvIDM2MCkpO1xuICAgICAgICBvcGFjaXR5LnVwZGF0ZShhKTtcbiAgICAgICAgcGFsZXR0ZS51cGRhdGUocyAvIDEwMCwgMSAtICh2IC8gMTAwKSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY2FsbCBpcyBzaWxlbnRcbiAgICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlDb2xvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXBkYXRlIG91dHB1dCBpZiByZWNhbGN1bGF0aW9uIGlzIGVuYWJsZWRcbiAgICAgICAgaWYgKHJlY2FsYykge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlT3V0cHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXN0b3JlIG9sZCBzdGF0ZVxuICAgICAgICB0aGlzLl9yZWNhbGMgPSByZWNhbGM7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIHBhcnNlIGEgc3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBjb2xvci5cbiAgICAgKiBFeGFtcGxlczogI2ZmZlxuICAgICAqICAgICAgICAgICByZ2IgMTAgMTAgMjAwXG4gICAgICogICAgICAgICAgIGhzdmEgMTAgMjAgNSAwLjVcbiAgICAgKiBAcGFyYW0gc3RyaW5nXG4gICAgICogQHBhcmFtIHNpbGVudFxuICAgICAqL1xuICAgIHNldENvbG9yKHN0cmluZywgc2lsZW50ID0gZmFsc2UpIHtcblxuICAgICAgICAvLyBDaGVjayBpZiBudWxsXG4gICAgICAgIGlmIChzdHJpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyQ29sb3Ioc2lsZW50KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3ZhbHVlcywgdHlwZX0gPSB0aGlzLl9wYXJzZUxvY2FsQ29sb3Ioc3RyaW5nKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBpcyBva1xuICAgICAgICBpZiAodmFsdWVzKSB7XG5cbiAgICAgICAgICAgIC8vIENoYW5nZSBzZWxlY3RlZCBjb2xvciBmb3JtYXRcbiAgICAgICAgICAgIGNvbnN0IHV0eXBlID0gdHlwZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcy5fcm9vdC5pbnRlcmFjdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG9wdGlvbnMuZmluZChlbCA9PiBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpID09PSB1dHlwZSk7XG5cbiAgICAgICAgICAgIC8vIEF1dG8gc2VsZWN0IG9ubHkgaWYgbm90IGhpZGRlblxuICAgICAgICAgICAgaWYgKHRhcmdldCAmJiAhdGFyZ2V0LmhpZGRlbikge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZWwgb2Ygb3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3RbZWwgPT09IHRhcmdldCA/ICdhZGQnIDogJ3JlbW92ZSddKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvciAoZmlyZXMgJ3NhdmUnIGV2ZW50IGlmIHNpbGVudCBpcyAnZmFsc2UnKVxuICAgICAgICAgICAgaWYgKCF0aGlzLnNldEhTVkEoLi4udmFsdWVzLCBzaWxlbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgcmVwcmVzZW50YXRpb24gKGZpcmVzICdjaGFuZ2UnIGV2ZW50KVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q29sb3JSZXByZXNlbnRhdGlvbih1dHlwZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgY29sb3IgX3JlcHJlc2VudGF0aW9uLlxuICAgICAqIEFsbG93ZWQgdmFsdWVzIGFyZSBIRVgsIFJHQiwgSFNWLCBIU0wgYW5kIENNWUtcbiAgICAgKiBAcGFyYW0gdHlwZVxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiB0aGUgc2VsZWN0ZWQgdHlwZSB3YXMgdmFsaWQuXG4gICAgICovXG4gICAgc2V0Q29sb3JSZXByZXNlbnRhdGlvbih0eXBlKSB7XG5cbiAgICAgICAgLy8gRm9yY2UgdXBwZXJjYXNlIHRvIGFsbG93IGEgY2FzZS1zZW5zaXRpdiBjb21wYXJpc29uXG4gICAgICAgIHR5cGUgPSB0eXBlLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgLy8gRmluZCBidXR0b24gd2l0aCBnaXZlbiB0eXBlIGFuZCB0cmlnZ2VyIGNsaWNrIGV2ZW50XG4gICAgICAgIHJldHVybiAhIXRoaXMuX3Jvb3QuaW50ZXJhY3Rpb24ub3B0aW9uc1xuICAgICAgICAgICAgLmZpbmQodiA9PiB2LmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykuc3RhcnRzV2l0aCh0eXBlKSAmJiAhdi5jbGljaygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGNvbG9yIHJlcHJlc2VudGFpb24uIFNlZSBzZXRDb2xvclJlcHJlc2VudGF0aW9uXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgZ2V0Q29sb3JSZXByZXNlbnRhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcHJlc2VudGF0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEhTVmFDb2xvciBDdXJyZW50IEhTVmFDb2xvciBvYmplY3QuXG4gICAgICovXG4gICAgZ2V0Q29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY29sb3IuXG4gICAgICogQHJldHVybnMge3thLCB0b0hTVkEsIHRvSEVYQSwgcywgdiwgaCwgY2xvbmUsIHRvQ01ZSywgdG9IU0xBLCB0b1JHQkF9fVxuICAgICAqL1xuICAgIGdldFNlbGVjdGVkQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0Q29sb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgVGhlIHJvb3QgSFRNTEVsZW1lbnQgd2l0aCBhbGwgaGlzIGNvbXBvbmVudHMuXG4gICAgICovXG4gICAgZ2V0Um9vdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzYWJsZSBwaWNrclxuICAgICAqL1xuICAgIGRpc2FibGUoKSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9yb290LmJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgcGlja3JcbiAgICAgKi9cbiAgICBlbmFibGUoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9yb290LmJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdkaXNhYmxlZCcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4iLCAiKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcblx0dHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuXHR0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuXHQoZ2xvYmFsLkpTT041ID0gZmFjdG9yeSgpKTtcbn0odGhpcywgKGZ1bmN0aW9uICgpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cdGZ1bmN0aW9uIGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZuLCBtb2R1bGUpIHtcblx0XHRyZXR1cm4gbW9kdWxlID0geyBleHBvcnRzOiB7fSB9LCBmbihtb2R1bGUsIG1vZHVsZS5leHBvcnRzKSwgbW9kdWxlLmV4cG9ydHM7XG5cdH1cblxuXHR2YXIgX2dsb2JhbCA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcblx0dmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG5cdCAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGZcblx0ICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcblx0ICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdGlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSB7IF9fZyA9IGdsb2JhbDsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cdH0pO1xuXG5cdHZhciBfY29yZSA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0dmFyIGNvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IHsgdmVyc2lvbjogJzIuNi41JyB9O1xuXHRpZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgeyBfX2UgPSBjb3JlOyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblx0fSk7XG5cdHZhciBfY29yZV8xID0gX2NvcmUudmVyc2lvbjtcblxuXHR2YXIgX2lzT2JqZWN0ID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcblx0fTtcblxuXHR2YXIgX2FuT2JqZWN0ID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgaWYgKCFfaXNPYmplY3QoaXQpKSB7IHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTsgfVxuXHQgIHJldHVybiBpdDtcblx0fTtcblxuXHR2YXIgX2ZhaWxzID0gZnVuY3Rpb24gKGV4ZWMpIHtcblx0ICB0cnkge1xuXHQgICAgcmV0dXJuICEhZXhlYygpO1xuXHQgIH0gY2F0Y2ggKGUpIHtcblx0ICAgIHJldHVybiB0cnVlO1xuXHQgIH1cblx0fTtcblxuXHQvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5cdHZhciBfZGVzY3JpcHRvcnMgPSAhX2ZhaWxzKGZ1bmN0aW9uICgpIHtcblx0ICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcblx0fSk7XG5cblx0dmFyIGRvY3VtZW50ID0gX2dsb2JhbC5kb2N1bWVudDtcblx0Ly8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG5cdHZhciBpcyA9IF9pc09iamVjdChkb2N1bWVudCkgJiYgX2lzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXHR2YXIgX2RvbUNyZWF0ZSA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG5cdH07XG5cblx0dmFyIF9pZThEb21EZWZpbmUgPSAhX2Rlc2NyaXB0b3JzICYmICFfZmFpbHMoZnVuY3Rpb24gKCkge1xuXHQgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoX2RvbUNyZWF0ZSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xuXHR9KTtcblxuXHQvLyA3LjEuMSBUb1ByaW1pdGl2ZShpbnB1dCBbLCBQcmVmZXJyZWRUeXBlXSlcblxuXHQvLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuXHQvLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xuXHR2YXIgX3RvUHJpbWl0aXZlID0gZnVuY3Rpb24gKGl0LCBTKSB7XG5cdCAgaWYgKCFfaXNPYmplY3QoaXQpKSB7IHJldHVybiBpdDsgfVxuXHQgIHZhciBmbiwgdmFsO1xuXHQgIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhX2lzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgeyByZXR1cm4gdmFsOyB9XG5cdCAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFfaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSB7IHJldHVybiB2YWw7IH1cblx0ICBpZiAoIVMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFfaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSB7IHJldHVybiB2YWw7IH1cblx0ICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG5cdH07XG5cblx0dmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5cdHZhciBmID0gX2Rlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuXHQgIF9hbk9iamVjdChPKTtcblx0ICBQID0gX3RvUHJpbWl0aXZlKFAsIHRydWUpO1xuXHQgIF9hbk9iamVjdChBdHRyaWJ1dGVzKTtcblx0ICBpZiAoX2llOERvbURlZmluZSkgeyB0cnkge1xuXHQgICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuXHQgIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfSB9XG5cdCAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgeyB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpOyB9XG5cdCAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgeyBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTsgfVxuXHQgIHJldHVybiBPO1xuXHR9O1xuXG5cdHZhciBfb2JqZWN0RHAgPSB7XG5cdFx0ZjogZlxuXHR9O1xuXG5cdHZhciBfcHJvcGVydHlEZXNjID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcblx0ICByZXR1cm4ge1xuXHQgICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcblx0ICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcblx0ICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuXHQgICAgdmFsdWU6IHZhbHVlXG5cdCAgfTtcblx0fTtcblxuXHR2YXIgX2hpZGUgPSBfZGVzY3JpcHRvcnMgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG5cdCAgcmV0dXJuIF9vYmplY3REcC5mKG9iamVjdCwga2V5LCBfcHJvcGVydHlEZXNjKDEsIHZhbHVlKSk7XG5cdH0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG5cdCAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcblx0ICByZXR1cm4gb2JqZWN0O1xuXHR9O1xuXG5cdHZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xuXHR2YXIgX2hhcyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG5cdCAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG5cdH07XG5cblx0dmFyIGlkID0gMDtcblx0dmFyIHB4ID0gTWF0aC5yYW5kb20oKTtcblx0dmFyIF91aWQgPSBmdW5jdGlvbiAoa2V5KSB7XG5cdCAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcblx0fTtcblxuXHR2YXIgX2xpYnJhcnkgPSBmYWxzZTtcblxuXHR2YXIgX3NoYXJlZCA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0dmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xuXHR2YXIgc3RvcmUgPSBfZ2xvYmFsW1NIQVJFRF0gfHwgKF9nbG9iYWxbU0hBUkVEXSA9IHt9KTtcblxuXHQobW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuXHQgIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xuXHR9KSgndmVyc2lvbnMnLCBbXSkucHVzaCh7XG5cdCAgdmVyc2lvbjogX2NvcmUudmVyc2lvbixcblx0ICBtb2RlOiBfbGlicmFyeSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuXHQgIGNvcHlyaWdodDogJ1x1MDBBOSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xuXHR9KTtcblx0fSk7XG5cblx0dmFyIF9mdW5jdGlvblRvU3RyaW5nID0gX3NoYXJlZCgnbmF0aXZlLWZ1bmN0aW9uLXRvLXN0cmluZycsIEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuXHR2YXIgX3JlZGVmaW5lID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHR2YXIgU1JDID0gX3VpZCgnc3JjJyk7XG5cblx0dmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG5cdHZhciBUUEwgPSAoJycgKyBfZnVuY3Rpb25Ub1N0cmluZykuc3BsaXQoVE9fU1RSSU5HKTtcblxuXHRfY29yZS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIF9mdW5jdGlvblRvU3RyaW5nLmNhbGwoaXQpO1xuXHR9O1xuXG5cdChtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbCwgc2FmZSkge1xuXHQgIHZhciBpc0Z1bmN0aW9uID0gdHlwZW9mIHZhbCA9PSAnZnVuY3Rpb24nO1xuXHQgIGlmIChpc0Z1bmN0aW9uKSB7IF9oYXModmFsLCAnbmFtZScpIHx8IF9oaWRlKHZhbCwgJ25hbWUnLCBrZXkpOyB9XG5cdCAgaWYgKE9ba2V5XSA9PT0gdmFsKSB7IHJldHVybjsgfVxuXHQgIGlmIChpc0Z1bmN0aW9uKSB7IF9oYXModmFsLCBTUkMpIHx8IF9oaWRlKHZhbCwgU1JDLCBPW2tleV0gPyAnJyArIE9ba2V5XSA6IFRQTC5qb2luKFN0cmluZyhrZXkpKSk7IH1cblx0ICBpZiAoTyA9PT0gX2dsb2JhbCkge1xuXHQgICAgT1trZXldID0gdmFsO1xuXHQgIH0gZWxzZSBpZiAoIXNhZmUpIHtcblx0ICAgIGRlbGV0ZSBPW2tleV07XG5cdCAgICBfaGlkZShPLCBrZXksIHZhbCk7XG5cdCAgfSBlbHNlIGlmIChPW2tleV0pIHtcblx0ICAgIE9ba2V5XSA9IHZhbDtcblx0ICB9IGVsc2Uge1xuXHQgICAgX2hpZGUoTywga2V5LCB2YWwpO1xuXHQgIH1cblx0Ly8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG5cdH0pKEZ1bmN0aW9uLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcblx0ICByZXR1cm4gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyAmJiB0aGlzW1NSQ10gfHwgX2Z1bmN0aW9uVG9TdHJpbmcuY2FsbCh0aGlzKTtcblx0fSk7XG5cdH0pO1xuXG5cdHZhciBfYUZ1bmN0aW9uID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB7IHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7IH1cblx0ICByZXR1cm4gaXQ7XG5cdH07XG5cblx0Ly8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG5cblx0dmFyIF9jdHggPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuXHQgIF9hRnVuY3Rpb24oZm4pO1xuXHQgIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIGZuOyB9XG5cdCAgc3dpdGNoIChsZW5ndGgpIHtcblx0ICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuXHQgICAgfTtcblx0ICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuXHQgICAgfTtcblx0ICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuXHQgICAgfTtcblx0ICB9XG5cdCAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG5cdCAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcblx0ICB9O1xuXHR9O1xuXG5cdHZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuXHR2YXIgJGV4cG9ydCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCBzb3VyY2UpIHtcblx0ICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcblx0ICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcblx0ICB2YXIgSVNfU1RBVElDID0gdHlwZSAmICRleHBvcnQuUztcblx0ICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuXHQgIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcblx0ICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gX2dsb2JhbCA6IElTX1NUQVRJQyA/IF9nbG9iYWxbbmFtZV0gfHwgKF9nbG9iYWxbbmFtZV0gPSB7fSkgOiAoX2dsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcblx0ICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IF9jb3JlIDogX2NvcmVbbmFtZV0gfHwgKF9jb3JlW25hbWVdID0ge30pO1xuXHQgIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXSB8fCAoZXhwb3J0c1tQUk9UT1RZUEVdID0ge30pO1xuXHQgIHZhciBrZXksIG93biwgb3V0LCBleHA7XG5cdCAgaWYgKElTX0dMT0JBTCkgeyBzb3VyY2UgPSBuYW1lOyB9XG5cdCAgZm9yIChrZXkgaW4gc291cmNlKSB7XG5cdCAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcblx0ICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG5cdCAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuXHQgICAgb3V0ID0gKG93biA/IHRhcmdldCA6IHNvdXJjZSlba2V5XTtcblx0ICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG5cdCAgICBleHAgPSBJU19CSU5EICYmIG93biA/IF9jdHgob3V0LCBfZ2xvYmFsKSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IF9jdHgoRnVuY3Rpb24uY2FsbCwgb3V0KSA6IG91dDtcblx0ICAgIC8vIGV4dGVuZCBnbG9iYWxcblx0ICAgIGlmICh0YXJnZXQpIHsgX3JlZGVmaW5lKHRhcmdldCwga2V5LCBvdXQsIHR5cGUgJiAkZXhwb3J0LlUpOyB9XG5cdCAgICAvLyBleHBvcnRcblx0ICAgIGlmIChleHBvcnRzW2tleV0gIT0gb3V0KSB7IF9oaWRlKGV4cG9ydHMsIGtleSwgZXhwKTsgfVxuXHQgICAgaWYgKElTX1BST1RPICYmIGV4cFByb3RvW2tleV0gIT0gb3V0KSB7IGV4cFByb3RvW2tleV0gPSBvdXQ7IH1cblx0ICB9XG5cdH07XG5cdF9nbG9iYWwuY29yZSA9IF9jb3JlO1xuXHQvLyB0eXBlIGJpdG1hcFxuXHQkZXhwb3J0LkYgPSAxOyAgIC8vIGZvcmNlZFxuXHQkZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuXHQkZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuXHQkZXhwb3J0LlAgPSA4OyAgIC8vIHByb3RvXG5cdCRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuXHQkZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcblx0JGV4cG9ydC5VID0gNjQ7ICAvLyBzYWZlXG5cdCRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxuXHR2YXIgX2V4cG9ydCA9ICRleHBvcnQ7XG5cblx0Ly8gNy4xLjQgVG9JbnRlZ2VyXG5cdHZhciBjZWlsID0gTWF0aC5jZWlsO1xuXHR2YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXHR2YXIgX3RvSW50ZWdlciA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xuXHR9O1xuXG5cdC8vIDcuMi4xIFJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpXG5cdHZhciBfZGVmaW5lZCA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIGlmIChpdCA9PSB1bmRlZmluZWQpIHsgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpOyB9XG5cdCAgcmV0dXJuIGl0O1xuXHR9O1xuXG5cdC8vIHRydWUgIC0+IFN0cmluZyNhdFxuXHQvLyBmYWxzZSAtPiBTdHJpbmcjY29kZVBvaW50QXRcblx0dmFyIF9zdHJpbmdBdCA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHtcblx0ICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykge1xuXHQgICAgdmFyIHMgPSBTdHJpbmcoX2RlZmluZWQodGhhdCkpO1xuXHQgICAgdmFyIGkgPSBfdG9JbnRlZ2VyKHBvcyk7XG5cdCAgICB2YXIgbCA9IHMubGVuZ3RoO1xuXHQgICAgdmFyIGEsIGI7XG5cdCAgICBpZiAoaSA8IDAgfHwgaSA+PSBsKSB7IHJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDsgfVxuXHQgICAgYSA9IHMuY2hhckNvZGVBdChpKTtcblx0ICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG5cdCAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhXG5cdCAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwO1xuXHQgIH07XG5cdH07XG5cblx0dmFyICRhdCA9IF9zdHJpbmdBdChmYWxzZSk7XG5cdF9leHBvcnQoX2V4cG9ydC5QLCAnU3RyaW5nJywge1xuXHQgIC8vIDIxLjEuMy4zIFN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXQocG9zKVxuXHQgIGNvZGVQb2ludEF0OiBmdW5jdGlvbiBjb2RlUG9pbnRBdChwb3MpIHtcblx0ICAgIHJldHVybiAkYXQodGhpcywgcG9zKTtcblx0ICB9XG5cdH0pO1xuXG5cdHZhciBjb2RlUG9pbnRBdCA9IF9jb3JlLlN0cmluZy5jb2RlUG9pbnRBdDtcblxuXHR2YXIgbWF4ID0gTWF0aC5tYXg7XG5cdHZhciBtaW4gPSBNYXRoLm1pbjtcblx0dmFyIF90b0Fic29sdXRlSW5kZXggPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuXHQgIGluZGV4ID0gX3RvSW50ZWdlcihpbmRleCk7XG5cdCAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG5cdH07XG5cblx0dmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG5cdHZhciAkZnJvbUNvZGVQb2ludCA9IFN0cmluZy5mcm9tQ29kZVBvaW50O1xuXG5cdC8vIGxlbmd0aCBzaG91bGQgYmUgMSwgb2xkIEZGIHByb2JsZW1cblx0X2V4cG9ydChfZXhwb3J0LlMgKyBfZXhwb3J0LkYgKiAoISEkZnJvbUNvZGVQb2ludCAmJiAkZnJvbUNvZGVQb2ludC5sZW5ndGggIT0gMSksICdTdHJpbmcnLCB7XG5cdCAgLy8gMjEuMS4yLjIgU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4uY29kZVBvaW50cylcblx0ICBmcm9tQ29kZVBvaW50OiBmdW5jdGlvbiBmcm9tQ29kZVBvaW50KHgpIHtcblx0ICAgIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcblx0IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcblx0ICAgIHZhciByZXMgPSBbXTtcblx0ICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcblx0ICAgIHZhciBpID0gMDtcblx0ICAgIHZhciBjb2RlO1xuXHQgICAgd2hpbGUgKGFMZW4gPiBpKSB7XG5cdCAgICAgIGNvZGUgPSArYXJndW1lbnRzJDFbaSsrXTtcblx0ICAgICAgaWYgKF90b0Fic29sdXRlSW5kZXgoY29kZSwgMHgxMGZmZmYpICE9PSBjb2RlKSB7IHRocm93IFJhbmdlRXJyb3IoY29kZSArICcgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCcpOyB9XG5cdCAgICAgIHJlcy5wdXNoKGNvZGUgPCAweDEwMDAwXG5cdCAgICAgICAgPyBmcm9tQ2hhckNvZGUoY29kZSlcblx0ICAgICAgICA6IGZyb21DaGFyQ29kZSgoKGNvZGUgLT0gMHgxMDAwMCkgPj4gMTApICsgMHhkODAwLCBjb2RlICUgMHg0MDAgKyAweGRjMDApXG5cdCAgICAgICk7XG5cdCAgICB9IHJldHVybiByZXMuam9pbignJyk7XG5cdCAgfVxuXHR9KTtcblxuXHR2YXIgZnJvbUNvZGVQb2ludCA9IF9jb3JlLlN0cmluZy5mcm9tQ29kZVBvaW50O1xuXG5cdC8vIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gRG8gbm90IGVkaXQuXG5cdHZhciBTcGFjZV9TZXBhcmF0b3IgPSAvW1xcdTE2ODBcXHUyMDAwLVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDBdLztcblx0dmFyIElEX1N0YXJ0ID0gL1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkVFLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0Q3XFx1MTdEQ1xcdTE4MjAtXFx1MTg3N1xcdTE4ODAtXFx1MTg4NFxcdTE4ODctXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQUE3XFx1MUIwNS1cXHUxQjMzXFx1MUI0NS1cXHUxQjRCXFx1MUI4My1cXHUxQkEwXFx1MUJBRVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjFcXHUxQ0Y1XFx1MUNGNlxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMjlcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkVcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUFcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFRlxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdBRVxcdUE3QjAtXFx1QTdCN1xcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2NVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ118XFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURENDAtXFx1REQ3NFxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0QVxcdURGNTAtXFx1REY3NVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRlxcdURGRDEtXFx1REZENV18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwXFx1REUxMC1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTMzXFx1REU2MC1cXHVERTdDXFx1REU4MC1cXHVERTlDXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU0XFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjcyXFx1REY4MC1cXHVERjkxXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdURDODAtXFx1RENCMlxcdURDQzAtXFx1RENGMl18XFx1RDgwNFtcXHVEQzAzLVxcdURDMzdcXHVEQzgzLVxcdURDQUZcXHVEQ0QwLVxcdURDRThcXHVERDAzLVxcdUREMjZcXHVERDUwLVxcdURENzJcXHVERDc2XFx1REQ4My1cXHVEREIyXFx1RERDMS1cXHVEREM0XFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERURFXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0RcXHVERjUwXFx1REY1RC1cXHVERjYxXXxcXHVEODA1W1xcdURDMDAtXFx1REMzNFxcdURDNDctXFx1REM0QVxcdURDODAtXFx1RENBRlxcdURDQzRcXHVEQ0M1XFx1RENDN1xcdUREODAtXFx1RERBRVxcdURERDgtXFx1REREQlxcdURFMDAtXFx1REUyRlxcdURFNDRcXHVERTgwLVxcdURFQUFcXHVERjAwLVxcdURGMTldfFxcdUQ4MDZbXFx1RENBMC1cXHVEQ0RGXFx1RENGRlxcdURFMDBcXHVERTBCLVxcdURFMzJcXHVERTNBXFx1REU1MFxcdURFNUMtXFx1REU4M1xcdURFODYtXFx1REU4OVxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMkVcXHVEQzQwXFx1REM3Mi1cXHVEQzhGXFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzBcXHVERDQ2XXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzAwLVxcdURDNkVcXHVEQzgwLVxcdURENDNdfFtcXHVEODBDXFx1RDgxQy1cXHVEODIwXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERUQwLVxcdURFRURcXHVERjAwLVxcdURGMkZcXHVERjQwLVxcdURGNDNcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REYwMC1cXHVERjQ0XFx1REY1MFxcdURGOTMtXFx1REY5RlxcdURGRTBcXHVERkUxXXxcXHVEODIxW1xcdURDMDAtXFx1REZFQ118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OV18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdUREMDAtXFx1REQ0M118XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXS87XG5cdHZhciBJRF9Db250aW51ZSA9IC9bXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzMDAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4My1cXHUwNDg3XFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjEtXFx1MDU4N1xcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzRcXHUwNUM1XFx1MDVDN1xcdTA1RDAtXFx1MDVFQVxcdTA1RjAtXFx1MDVGMlxcdTA2MTAtXFx1MDYxQVxcdTA2MjAtXFx1MDY2OVxcdTA2NkUtXFx1MDZEM1xcdTA2RDUtXFx1MDZEQ1xcdTA2REYtXFx1MDZFOFxcdTA2RUEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwLVxcdTA3NEFcXHUwNzRELVxcdTA3QjFcXHUwN0MwLVxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODJEXFx1MDg0MC1cXHUwODVCXFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEJEXFx1MDhENC1cXHUwOEUxXFx1MDhFMy1cXHUwOTYzXFx1MDk2Ni1cXHUwOTZGXFx1MDk3MS1cXHUwOTgzXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCQy1cXHUwOUM0XFx1MDlDN1xcdTA5QzhcXHUwOUNCLVxcdTA5Q0VcXHUwOUQ3XFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTNcXHUwOUU2LVxcdTA5RjFcXHUwOUZDXFx1MEEwMS1cXHUwQTAzXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTNDXFx1MEEzRS1cXHUwQTQyXFx1MEE0N1xcdTBBNDhcXHUwQTRCLVxcdTBBNERcXHUwQTUxXFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNjYtXFx1MEE3NVxcdTBBODEtXFx1MEE4M1xcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCQy1cXHUwQUM1XFx1MEFDNy1cXHUwQUM5XFx1MEFDQi1cXHUwQUNEXFx1MEFEMFxcdTBBRTAtXFx1MEFFM1xcdTBBRTYtXFx1MEFFRlxcdTBBRjktXFx1MEFGRlxcdTBCMDEtXFx1MEIwM1xcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNDLVxcdTBCNDRcXHUwQjQ3XFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjNcXHUwQjY2LVxcdTBCNkZcXHUwQjcxXFx1MEI4MlxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEMFxcdTBCRDdcXHUwQkU2LVxcdTBCRUZcXHUwQzAwLVxcdTBDMDNcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNELVxcdTBDNDRcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNTgtXFx1MEM1QVxcdTBDNjAtXFx1MEM2M1xcdTBDNjYtXFx1MEM2RlxcdTBDODAtXFx1MEM4M1xcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkMtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENERVxcdTBDRTAtXFx1MENFM1xcdTBDRTYtXFx1MENFRlxcdTBDRjFcXHUwQ0YyXFx1MEQwMC1cXHUwRDAzXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDRFXFx1MEQ1NC1cXHUwRDU3XFx1MEQ1Ri1cXHUwRDYzXFx1MEQ2Ni1cXHUwRDZGXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4MlxcdTBEODNcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MERDQVxcdTBEQ0YtXFx1MERENFxcdTBERDZcXHUwREQ4LVxcdTBEREZcXHUwREU2LVxcdTBERUZcXHUwREYyXFx1MERGM1xcdTBFMDEtXFx1MEUzQVxcdTBFNDAtXFx1MEU0RVxcdTBFNTAtXFx1MEU1OVxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUI5XFx1MEVCQi1cXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFQzgtXFx1MEVDRFxcdTBFRDAtXFx1MEVEOVxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjE4XFx1MEYxOVxcdTBGMjAtXFx1MEYyOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0UtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGNzEtXFx1MEY4NFxcdTBGODYtXFx1MEY5N1xcdTBGOTktXFx1MEZCQ1xcdTBGQzZcXHUxMDAwLVxcdTEwNDlcXHUxMDUwLVxcdTEwOURcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM1RC1cXHUxMzVGXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzE0XFx1MTcyMC1cXHUxNzM0XFx1MTc0MC1cXHUxNzUzXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc3MlxcdTE3NzNcXHUxNzgwLVxcdTE3RDNcXHUxN0Q3XFx1MTdEQ1xcdTE3RERcXHUxN0UwLVxcdTE3RTlcXHUxODBCLVxcdTE4MERcXHUxODEwLVxcdTE4MTlcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTIwLVxcdTE5MkJcXHUxOTMwLVxcdTE5M0JcXHUxOTQ2LVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxOUQwLVxcdTE5RDlcXHUxQTAwLVxcdTFBMUJcXHUxQTIwLVxcdTFBNUVcXHUxQTYwLVxcdTFBN0NcXHUxQTdGLVxcdTFBODlcXHUxQTkwLVxcdTFBOTlcXHUxQUE3XFx1MUFCMC1cXHUxQUJEXFx1MUIwMC1cXHUxQjRCXFx1MUI1MC1cXHUxQjU5XFx1MUI2Qi1cXHUxQjczXFx1MUI4MC1cXHUxQkYzXFx1MUMwMC1cXHUxQzM3XFx1MUM0MC1cXHUxQzQ5XFx1MUM0RC1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0Y5XFx1MUQwMC1cXHUxREY5XFx1MURGQi1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwM0ZcXHUyMDQwXFx1MjA1NFxcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBGMFxcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDdGLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyREUwLVxcdTJERkZcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDJGXFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5OVxcdTMwOUFcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkVcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUFcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MkJcXHVBNjQwLVxcdUE2NkZcXHVBNjc0LVxcdUE2N0RcXHVBNjdGLVxcdUE2RjFcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3QUVcXHVBN0IwLVxcdUE3QjdcXHVBN0Y3LVxcdUE4MjdcXHVBODQwLVxcdUE4NzNcXHVBODgwLVxcdUE4QzVcXHVBOEQwLVxcdUE4RDlcXHVBOEUwLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE5MDAtXFx1QTkyRFxcdUE5MzAtXFx1QTk1M1xcdUE5NjAtXFx1QTk3Q1xcdUE5ODAtXFx1QTlDMFxcdUE5Q0YtXFx1QTlEOVxcdUE5RTAtXFx1QTlGRVxcdUFBMDAtXFx1QUEzNlxcdUFBNDAtXFx1QUE0RFxcdUFBNTAtXFx1QUE1OVxcdUFBNjAtXFx1QUE3NlxcdUFBN0EtXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFRlxcdUFBRjItXFx1QUFGNlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2NVxcdUFCNzAtXFx1QUJFQVxcdUFCRUNcXHVBQkVEXFx1QUJGMC1cXHVBQkY5XFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRC1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTAwLVxcdUZFMEZcXHVGRTIwLVxcdUZFMkZcXHVGRTMzXFx1RkUzNFxcdUZFNEQtXFx1RkU0RlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMTAtXFx1RkYxOVxcdUZGMjEtXFx1RkYzQVxcdUZGM0ZcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERDQwLVxcdURENzRcXHVEREZEXFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REVFMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0QVxcdURGNTAtXFx1REY3QVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRlxcdURGRDEtXFx1REZENV18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0EwLVxcdURDQTlcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwLVxcdURFMDNcXHVERTA1XFx1REUwNlxcdURFMEMtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzM1xcdURFMzgtXFx1REUzQVxcdURFM0ZcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTZcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA0W1xcdURDMDAtXFx1REM0NlxcdURDNjYtXFx1REM2RlxcdURDN0YtXFx1RENCQVxcdURDRDAtXFx1RENFOFxcdURDRjAtXFx1RENGOVxcdUREMDAtXFx1REQzNFxcdUREMzYtXFx1REQzRlxcdURENTAtXFx1REQ3M1xcdURENzZcXHVERDgwLVxcdUREQzRcXHVERENBLVxcdUREQ0NcXHVEREQwLVxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTM3XFx1REUzRVxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFRUFcXHVERUYwLVxcdURFRjlcXHVERjAwLVxcdURGMDNcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzQy1cXHVERjQ0XFx1REY0N1xcdURGNDhcXHVERjRCLVxcdURGNERcXHVERjUwXFx1REY1N1xcdURGNUQtXFx1REY2M1xcdURGNjYtXFx1REY2Q1xcdURGNzAtXFx1REY3NF18XFx1RDgwNVtcXHVEQzAwLVxcdURDNEFcXHVEQzUwLVxcdURDNTlcXHVEQzgwLVxcdURDQzVcXHVEQ0M3XFx1RENEMC1cXHVEQ0Q5XFx1REQ4MC1cXHVEREI1XFx1RERCOC1cXHVEREMwXFx1REREOC1cXHVEREREXFx1REUwMC1cXHVERTQwXFx1REU0NFxcdURFNTAtXFx1REU1OVxcdURFODAtXFx1REVCN1xcdURFQzAtXFx1REVDOVxcdURGMDAtXFx1REYxOVxcdURGMUQtXFx1REYyQlxcdURGMzAtXFx1REYzOV18XFx1RDgwNltcXHVEQ0EwLVxcdURDRTlcXHVEQ0ZGXFx1REUwMC1cXHVERTNFXFx1REU0N1xcdURFNTAtXFx1REU4M1xcdURFODYtXFx1REU5OVxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMzZcXHVEQzM4LVxcdURDNDBcXHVEQzUwLVxcdURDNTlcXHVEQzcyLVxcdURDOEZcXHVEQzkyLVxcdURDQTdcXHVEQ0E5LVxcdURDQjZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzNlxcdUREM0FcXHVERDNDXFx1REQzRFxcdUREM0YtXFx1REQ0N1xcdURENTAtXFx1REQ1OV18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REMwMC1cXHVEQzZFXFx1REM4MC1cXHVERDQzXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4NDAtXFx1RDg2OFxcdUQ4NkEtXFx1RDg2Q1xcdUQ4NkYtXFx1RDg3MlxcdUQ4NzQtXFx1RDg3OV1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMDAtXFx1REMyRV18XFx1RDgxMVtcXHVEQzAwLVxcdURFNDZdfFxcdUQ4MUFbXFx1REMwMC1cXHVERTM4XFx1REU0MC1cXHVERTVFXFx1REU2MC1cXHVERTY5XFx1REVEMC1cXHVERUVEXFx1REVGMC1cXHVERUY0XFx1REYwMC1cXHVERjM2XFx1REY0MC1cXHVERjQzXFx1REY1MC1cXHVERjU5XFx1REY2My1cXHVERjc3XFx1REY3RC1cXHVERjhGXXxcXHVEODFCW1xcdURGMDAtXFx1REY0NFxcdURGNTAtXFx1REY3RVxcdURGOEYtXFx1REY5RlxcdURGRTBcXHVERkUxXXxcXHVEODIxW1xcdURDMDAtXFx1REZFQ118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OVxcdURDOURcXHVEQzlFXXxcXHVEODM0W1xcdURENjUtXFx1REQ2OVxcdURENkQtXFx1REQ3MlxcdUREN0ItXFx1REQ4MlxcdUREODUtXFx1REQ4QlxcdUREQUEtXFx1RERBRFxcdURFNDItXFx1REU0NF18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXFx1REZDRS1cXHVERkZGXXxcXHVEODM2W1xcdURFMDAtXFx1REUzNlxcdURFM0ItXFx1REU2Q1xcdURFNzVcXHVERTg0XFx1REU5Qi1cXHVERTlGXFx1REVBMS1cXHVERUFGXXxcXHVEODM4W1xcdURDMDAtXFx1REMwNlxcdURDMDgtXFx1REMxOFxcdURDMUItXFx1REMyMVxcdURDMjNcXHVEQzI0XFx1REMyNi1cXHVEQzJBXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdURDRDAtXFx1RENENlxcdUREMDAtXFx1REQ0QVxcdURENTAtXFx1REQ1OV18XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXXxcXHVEQjQwW1xcdUREMDAtXFx1RERFRl0vO1xuXG5cdHZhciB1bmljb2RlID0ge1xuXHRcdFNwYWNlX1NlcGFyYXRvcjogU3BhY2VfU2VwYXJhdG9yLFxuXHRcdElEX1N0YXJ0OiBJRF9TdGFydCxcblx0XHRJRF9Db250aW51ZTogSURfQ29udGludWVcblx0fTtcblxuXHR2YXIgdXRpbCA9IHtcblx0ICAgIGlzU3BhY2VTZXBhcmF0b3I6IGZ1bmN0aW9uIGlzU3BhY2VTZXBhcmF0b3IgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIHVuaWNvZGUuU3BhY2VfU2VwYXJhdG9yLnRlc3QoYylcblx0ICAgIH0sXG5cblx0ICAgIGlzSWRTdGFydENoYXI6IGZ1bmN0aW9uIGlzSWRTdGFydENoYXIgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIChcblx0ICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fFxuXHQgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHxcblx0ICAgICAgICAoYyA9PT0gJyQnKSB8fCAoYyA9PT0gJ18nKSB8fFxuXHQgICAgICAgIHVuaWNvZGUuSURfU3RhcnQudGVzdChjKVxuXHQgICAgICAgIClcblx0ICAgIH0sXG5cblx0ICAgIGlzSWRDb250aW51ZUNoYXI6IGZ1bmN0aW9uIGlzSWRDb250aW51ZUNoYXIgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIChcblx0ICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fFxuXHQgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHxcblx0ICAgICAgICAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8XG5cdCAgICAgICAgKGMgPT09ICckJykgfHwgKGMgPT09ICdfJykgfHxcblx0ICAgICAgICAoYyA9PT0gJ1xcdTIwMEMnKSB8fCAoYyA9PT0gJ1xcdTIwMEQnKSB8fFxuXHQgICAgICAgIHVuaWNvZGUuSURfQ29udGludWUudGVzdChjKVxuXHQgICAgICAgIClcblx0ICAgIH0sXG5cblx0ICAgIGlzRGlnaXQ6IGZ1bmN0aW9uIGlzRGlnaXQgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIC9bMC05XS8udGVzdChjKVxuXHQgICAgfSxcblxuXHQgICAgaXNIZXhEaWdpdDogZnVuY3Rpb24gaXNIZXhEaWdpdCAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgL1swLTlBLUZhLWZdLy50ZXN0KGMpXG5cdCAgICB9LFxuXHR9O1xuXG5cdHZhciBzb3VyY2U7XG5cdHZhciBwYXJzZVN0YXRlO1xuXHR2YXIgc3RhY2s7XG5cdHZhciBwb3M7XG5cdHZhciBsaW5lO1xuXHR2YXIgY29sdW1uO1xuXHR2YXIgdG9rZW47XG5cdHZhciBrZXk7XG5cdHZhciByb290O1xuXG5cdHZhciBwYXJzZSA9IGZ1bmN0aW9uIHBhcnNlICh0ZXh0LCByZXZpdmVyKSB7XG5cdCAgICBzb3VyY2UgPSBTdHJpbmcodGV4dCk7XG5cdCAgICBwYXJzZVN0YXRlID0gJ3N0YXJ0Jztcblx0ICAgIHN0YWNrID0gW107XG5cdCAgICBwb3MgPSAwO1xuXHQgICAgbGluZSA9IDE7XG5cdCAgICBjb2x1bW4gPSAwO1xuXHQgICAgdG9rZW4gPSB1bmRlZmluZWQ7XG5cdCAgICBrZXkgPSB1bmRlZmluZWQ7XG5cdCAgICByb290ID0gdW5kZWZpbmVkO1xuXG5cdCAgICBkbyB7XG5cdCAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgICAgICAvLyBpZiAoIXBhcnNlU3RhdGVzW3BhcnNlU3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRQYXJzZVN0YXRlKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBwYXJzZVN0YXRlc1twYXJzZVN0YXRlXSgpO1xuXHQgICAgfSB3aGlsZSAodG9rZW4udHlwZSAhPT0gJ2VvZicpXG5cblx0ICAgIGlmICh0eXBlb2YgcmV2aXZlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgIHJldHVybiBpbnRlcm5hbGl6ZSh7Jyc6IHJvb3R9LCAnJywgcmV2aXZlcilcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHJvb3Rcblx0fTtcblxuXHRmdW5jdGlvbiBpbnRlcm5hbGl6ZSAoaG9sZGVyLCBuYW1lLCByZXZpdmVyKSB7XG5cdCAgICB2YXIgdmFsdWUgPSBob2xkZXJbbmFtZV07XG5cdCAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdCAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIHZhciBrZXkgPSBTdHJpbmcoaSk7XG5cdCAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQgPSBpbnRlcm5hbGl6ZSh2YWx1ZSwga2V5LCByZXZpdmVyKTtcblx0ICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhbHVlW2tleV07XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwga2V5LCB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZXBsYWNlbWVudCxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICB9KTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGtleSQxIGluIHZhbHVlKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQkMSA9IGludGVybmFsaXplKHZhbHVlLCBrZXkkMSwgcmV2aXZlcik7XG5cdCAgICAgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQkMSA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhbHVlW2tleSQxXTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBrZXkkMSwge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVwbGFjZW1lbnQkMSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICB9KTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHJldml2ZXIuY2FsbChob2xkZXIsIG5hbWUsIHZhbHVlKVxuXHR9XG5cblx0dmFyIGxleFN0YXRlO1xuXHR2YXIgYnVmZmVyO1xuXHR2YXIgZG91YmxlUXVvdGU7XG5cdHZhciBzaWduO1xuXHR2YXIgYztcblxuXHRmdW5jdGlvbiBsZXggKCkge1xuXHQgICAgbGV4U3RhdGUgPSAnZGVmYXVsdCc7XG5cdCAgICBidWZmZXIgPSAnJztcblx0ICAgIGRvdWJsZVF1b3RlID0gZmFsc2U7XG5cdCAgICBzaWduID0gMTtcblxuXHQgICAgZm9yICg7Oykge1xuXHQgICAgICAgIGMgPSBwZWVrKCk7XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAgICAgLy8gaWYgKCFsZXhTdGF0ZXNbbGV4U3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRMZXhTdGF0ZShsZXhTdGF0ZSlcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICB2YXIgdG9rZW4gPSBsZXhTdGF0ZXNbbGV4U3RhdGVdKCk7XG5cdCAgICAgICAgaWYgKHRva2VuKSB7XG5cdCAgICAgICAgICAgIHJldHVybiB0b2tlblxuXHQgICAgICAgIH1cblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIHBlZWsgKCkge1xuXHQgICAgaWYgKHNvdXJjZVtwb3NdKSB7XG5cdCAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHNvdXJjZS5jb2RlUG9pbnRBdChwb3MpKVxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gcmVhZCAoKSB7XG5cdCAgICB2YXIgYyA9IHBlZWsoKTtcblxuXHQgICAgaWYgKGMgPT09ICdcXG4nKSB7XG5cdCAgICAgICAgbGluZSsrO1xuXHQgICAgICAgIGNvbHVtbiA9IDA7XG5cdCAgICB9IGVsc2UgaWYgKGMpIHtcblx0ICAgICAgICBjb2x1bW4gKz0gYy5sZW5ndGg7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIGNvbHVtbisrO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoYykge1xuXHQgICAgICAgIHBvcyArPSBjLmxlbmd0aDtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIGNcblx0fVxuXG5cdHZhciBsZXhTdGF0ZXMgPSB7XG5cdCAgICBkZWZhdWx0OiBmdW5jdGlvbiBkZWZhdWx0JDEgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ1xcdCc6XG5cdCAgICAgICAgY2FzZSAnXFx2Jzpcblx0ICAgICAgICBjYXNlICdcXGYnOlxuXHQgICAgICAgIGNhc2UgJyAnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTAwQTAnOlxuXHQgICAgICAgIGNhc2UgJ1xcdUZFRkYnOlxuXHQgICAgICAgIGNhc2UgJ1xcbic6XG5cdCAgICAgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy8nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2NvbW1lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc1NwYWNlU2VwYXJhdG9yKGMpKSB7XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgICAgIC8vIGlmICghbGV4U3RhdGVzW3BhcnNlU3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRMZXhTdGF0ZShwYXJzZVN0YXRlKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHJldHVybiBsZXhTdGF0ZXNbcGFyc2VTdGF0ZV0oKVxuXHQgICAgfSxcblxuXHQgICAgY29tbWVudDogZnVuY3Rpb24gY29tbWVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnbXVsdGlMaW5lQ29tbWVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLyc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc2luZ2xlTGluZUNvbW1lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBtdWx0aUxpbmVDb21tZW50OiBmdW5jdGlvbiBtdWx0aUxpbmVDb21tZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcqJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdtdWx0aUxpbmVDb21tZW50QXN0ZXJpc2snO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgfSxcblxuXHQgICAgbXVsdGlMaW5lQ29tbWVudEFzdGVyaXNrOiBmdW5jdGlvbiBtdWx0aUxpbmVDb21tZW50QXN0ZXJpc2sgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyonOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLyc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVmYXVsdCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAnbXVsdGlMaW5lQ29tbWVudCc7XG5cdCAgICB9LFxuXG5cdCAgICBzaW5nbGVMaW5lQ29tbWVudDogZnVuY3Rpb24gc2luZ2xlTGluZUNvbW1lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ1xcbic6XG5cdCAgICAgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWZhdWx0Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgfSxcblxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICd7Jzpcblx0ICAgICAgICBjYXNlICdbJzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXG5cdCAgICAgICAgY2FzZSAnbic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgndWxsJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVsbCcsIG51bGwpXG5cblx0ICAgICAgICBjYXNlICd0Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdydWUnKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdib29sZWFuJywgdHJ1ZSlcblxuXHQgICAgICAgIGNhc2UgJ2YnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2Fsc2UnKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdib29sZWFuJywgZmFsc2UpXG5cblx0ICAgICAgICBjYXNlICctJzpcblx0ICAgICAgICBjYXNlICcrJzpcblx0ICAgICAgICAgICAgaWYgKHJlYWQoKSA9PT0gJy0nKSB7XG5cdCAgICAgICAgICAgICAgICBzaWduID0gLTE7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzaWduJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnRMZWFkaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcwJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICd6ZXJvJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcxJzpcblx0ICAgICAgICBjYXNlICcyJzpcblx0ICAgICAgICBjYXNlICczJzpcblx0ICAgICAgICBjYXNlICc0Jzpcblx0ICAgICAgICBjYXNlICc1Jzpcblx0ICAgICAgICBjYXNlICc2Jzpcblx0ICAgICAgICBjYXNlICc3Jzpcblx0ICAgICAgICBjYXNlICc4Jzpcblx0ICAgICAgICBjYXNlICc5Jzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsSW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnSSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnbmZpbml0eScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBJbmZpbml0eSlcblxuXHQgICAgICAgIGNhc2UgJ04nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2FOJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIE5hTilcblxuXHQgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBkb3VibGVRdW90ZSA9IChyZWFkKCkgPT09ICdcIicpO1xuXHQgICAgICAgICAgICBidWZmZXIgPSAnJztcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc3RyaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZTogZnVuY3Rpb24gaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgIT09ICd1Jykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHZhciB1ID0gdW5pY29kZUVzY2FwZSgpO1xuXHQgICAgICAgIHN3aXRjaCAodSkge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgZGVmYXVsdDpcblx0ICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRTdGFydENoYXIodSkpIHtcblx0ICAgICAgICAgICAgICAgIHRocm93IGludmFsaWRJZGVudGlmaWVyKClcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJyZWFrXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHU7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWU6IGZ1bmN0aW9uIGlkZW50aWZpZXJOYW1lICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBDJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBEJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcXFxcJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZUVzY2FwZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzSWRDb250aW51ZUNoYXIoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdpZGVudGlmaWVyJywgYnVmZmVyKVxuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWVFc2NhcGU6IGZ1bmN0aW9uIGlkZW50aWZpZXJOYW1lRXNjYXBlICgpIHtcblx0ICAgICAgICBpZiAoYyAhPT0gJ3UnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgdmFyIHUgPSB1bmljb2RlRXNjYXBlKCk7XG5cdCAgICAgICAgc3dpdGNoICh1KSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwQyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwRCc6XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBkZWZhdWx0OlxuXHQgICAgICAgICAgICBpZiAoIXV0aWwuaXNJZENvbnRpbnVlQ2hhcih1KSkge1xuXHQgICAgICAgICAgICAgICAgdGhyb3cgaW52YWxpZElkZW50aWZpZXIoKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnJlYWtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gdTtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICB9LFxuXG5cdCAgICBzaWduOiBmdW5jdGlvbiBzaWduJDEgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludExlYWRpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzAnOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3plcm8nO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzEnOlxuXHQgICAgICAgIGNhc2UgJzInOlxuXHQgICAgICAgIGNhc2UgJzMnOlxuXHQgICAgICAgIGNhc2UgJzQnOlxuXHQgICAgICAgIGNhc2UgJzUnOlxuXHQgICAgICAgIGNhc2UgJzYnOlxuXHQgICAgICAgIGNhc2UgJzcnOlxuXHQgICAgICAgIGNhc2UgJzgnOlxuXHQgICAgICAgIGNhc2UgJzknOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdJJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCduZmluaXR5Jyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBJbmZpbml0eSlcblxuXHQgICAgICAgIGNhc2UgJ04nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2FOJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIE5hTilcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICB6ZXJvOiBmdW5jdGlvbiB6ZXJvICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICd4Jzpcblx0ICAgICAgICBjYXNlICdYJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaGV4YWRlY2ltYWwnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogMClcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxJbnRlZ2VyOiBmdW5jdGlvbiBkZWNpbWFsSW50ZWdlciAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbFBvaW50TGVhZGluZzogZnVuY3Rpb24gZGVjaW1hbFBvaW50TGVhZGluZyAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRnJhY3Rpb24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsUG9pbnQ6IGZ1bmN0aW9uIGRlY2ltYWxQb2ludCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEZyYWN0aW9uJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEZyYWN0aW9uOiBmdW5jdGlvbiBkZWNpbWFsRnJhY3Rpb24gKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudDogZnVuY3Rpb24gZGVjaW1hbEV4cG9uZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcrJzpcblx0ICAgICAgICBjYXNlICctJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50U2lnbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50SW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudFNpZ246IGZ1bmN0aW9uIGRlY2ltYWxFeHBvbmVudFNpZ24gKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50SW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudEludGVnZXI6IGZ1bmN0aW9uIGRlY2ltYWxFeHBvbmVudEludGVnZXIgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uIGhleGFkZWNpbWFsICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2hleGFkZWNpbWFsSW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGhleGFkZWNpbWFsSW50ZWdlcjogZnVuY3Rpb24gaGV4YWRlY2ltYWxJbnRlZ2VyICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIHN0cmluZzogZnVuY3Rpb24gc3RyaW5nICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdcXFxcJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gZXNjYXBlKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgICAgICBpZiAoZG91YmxlUXVvdGUpIHtcblx0ICAgICAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignc3RyaW5nJywgYnVmZmVyKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBpZiAoIWRvdWJsZVF1b3RlKSB7XG5cdCAgICAgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3N0cmluZycsIGJ1ZmZlcilcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXFxuJzpcblx0ICAgICAgICBjYXNlICdcXHInOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgc2VwYXJhdG9yQ2hhcihjKTtcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgIH0sXG5cblx0ICAgIHN0YXJ0OiBmdW5jdGlvbiBzdGFydCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAneyc6XG5cdCAgICAgICAgY2FzZSAnWyc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSB0aGUgZGVmYXVsdCBsZXhTdGF0ZSBoYW5kbGVzIGVvZi5cblx0ICAgICAgICAvLyBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAvLyAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGxleFN0YXRlID0gJ3ZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5TmFtZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXFxcXCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblxuXHQgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBkb3VibGVRdW90ZSA9IChyZWFkKCkgPT09ICdcIicpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzdHJpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0lkU3RhcnRDaGFyKGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICBpZiAoYyA9PT0gJzonKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICd2YWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVBcnJheVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICBpZiAoYyA9PT0gJ10nKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBsZXhTdGF0ZSA9ICd2YWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBhZnRlckFycmF5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgY2FzZSAnXSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBlbmQ6IGZ1bmN0aW9uIGVuZCAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgZGVmYXVsdCBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAoYyA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgLy8gICAgIHJlYWQoKVxuXHQgICAgICAgIC8vICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblx0fTtcblxuXHRmdW5jdGlvbiBuZXdUb2tlbiAodHlwZSwgdmFsdWUpIHtcblx0ICAgIHJldHVybiB7XG5cdCAgICAgICAgdHlwZTogdHlwZSxcblx0ICAgICAgICB2YWx1ZTogdmFsdWUsXG5cdCAgICAgICAgbGluZTogbGluZSxcblx0ICAgICAgICBjb2x1bW46IGNvbHVtbixcblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGxpdGVyYWwgKHMpIHtcblx0ICAgIGZvciAodmFyIGkgPSAwLCBsaXN0ID0gczsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcblx0ICAgICAgICB2YXIgYyA9IGxpc3RbaV07XG5cblx0ICAgICAgICB2YXIgcCA9IHBlZWsoKTtcblxuXHQgICAgICAgIGlmIChwICE9PSBjKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBlc2NhcGUgKCkge1xuXHQgICAgdmFyIGMgPSBwZWVrKCk7XG5cdCAgICBzd2l0Y2ggKGMpIHtcblx0ICAgIGNhc2UgJ2InOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcYidcblxuXHQgICAgY2FzZSAnZic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxmJ1xuXG5cdCAgICBjYXNlICduJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXG4nXG5cblx0ICAgIGNhc2UgJ3InOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xccidcblxuXHQgICAgY2FzZSAndCc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFx0J1xuXG5cdCAgICBjYXNlICd2Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXHYnXG5cblx0ICAgIGNhc2UgJzAnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KHBlZWsoKSkpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiAnXFwwJ1xuXG5cdCAgICBjYXNlICd4Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuIGhleEVzY2FwZSgpXG5cblx0ICAgIGNhc2UgJ3UnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gdW5pY29kZUVzY2FwZSgpXG5cblx0ICAgIGNhc2UgJ1xcbic6XG5cdCAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJydcblxuXHQgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgaWYgKHBlZWsoKSA9PT0gJ1xcbicpIHtcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiAnJ1xuXG5cdCAgICBjYXNlICcxJzpcblx0ICAgIGNhc2UgJzInOlxuXHQgICAgY2FzZSAnMyc6XG5cdCAgICBjYXNlICc0Jzpcblx0ICAgIGNhc2UgJzUnOlxuXHQgICAgY2FzZSAnNic6XG5cdCAgICBjYXNlICc3Jzpcblx0ICAgIGNhc2UgJzgnOlxuXHQgICAgY2FzZSAnOSc6XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXG5cdCAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiByZWFkKClcblx0fVxuXG5cdGZ1bmN0aW9uIGhleEVzY2FwZSAoKSB7XG5cdCAgICB2YXIgYnVmZmVyID0gJyc7XG5cdCAgICB2YXIgYyA9IHBlZWsoKTtcblxuXHQgICAgaWYgKCF1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9XG5cblx0ICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cblx0ICAgIGMgPSBwZWVrKCk7XG5cdCAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH1cblxuXHQgICAgYnVmZmVyICs9IHJlYWQoKTtcblxuXHQgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGJ1ZmZlciwgMTYpKVxuXHR9XG5cblx0ZnVuY3Rpb24gdW5pY29kZUVzY2FwZSAoKSB7XG5cdCAgICB2YXIgYnVmZmVyID0gJyc7XG5cdCAgICB2YXIgY291bnQgPSA0O1xuXG5cdCAgICB3aGlsZSAoY291bnQtLSA+IDApIHtcblx0ICAgICAgICB2YXIgYyA9IHBlZWsoKTtcblx0ICAgICAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGJ1ZmZlciwgMTYpKVxuXHR9XG5cblx0dmFyIHBhcnNlU3RhdGVzID0ge1xuXHQgICAgc3RhcnQ6IGZ1bmN0aW9uIHN0YXJ0ICgpIHtcblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuXHQgICAgICAgIGNhc2UgJ2lkZW50aWZpZXInOlxuXHQgICAgICAgIGNhc2UgJ3N0cmluZyc6XG5cdCAgICAgICAgICAgIGtleSA9IHRva2VuLnZhbHVlO1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyUHJvcGVydHlOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdwdW5jdHVhdG9yJzpcblx0ICAgICAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgICAgIC8vIGlmICh0b2tlbi52YWx1ZSAhPT0gJ30nKSB7XG5cdCAgICAgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgICAgICAvLyB9XG5cblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnZW9mJzpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdwdW5jdHVhdG9yJyB8fCB0b2tlbi52YWx1ZSAhPT0gJzonKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlUHJvcGVydHlWYWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlQXJyYXlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAncHVuY3R1YXRvcicgJiYgdG9rZW4udmFsdWUgPT09ICddJykge1xuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAncHVuY3R1YXRvcicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZVByb3BlcnR5TmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9LFxuXG5cdCAgICBhZnRlckFycmF5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdwdW5jdHVhdG9yJykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlQXJyYXlWYWx1ZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXSc6XG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9LFxuXG5cdCAgICBlbmQ6IGZ1bmN0aW9uIGVuZCAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdlb2YnKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXHQgICAgfSxcblx0fTtcblxuXHRmdW5jdGlvbiBwdXNoICgpIHtcblx0ICAgIHZhciB2YWx1ZTtcblxuXHQgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG5cdCAgICBjYXNlICdwdW5jdHVhdG9yJzpcblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSAneyc6XG5cdCAgICAgICAgICAgIHZhbHVlID0ge307XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBjYXNlICdbJzpcblx0ICAgICAgICAgICAgdmFsdWUgPSBbXTtcblx0ICAgICAgICAgICAgYnJlYWtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBicmVha1xuXG5cdCAgICBjYXNlICdudWxsJzpcblx0ICAgIGNhc2UgJ2Jvb2xlYW4nOlxuXHQgICAgY2FzZSAnbnVtZXJpYyc6XG5cdCAgICBjYXNlICdzdHJpbmcnOlxuXHQgICAgICAgIHZhbHVlID0gdG9rZW4udmFsdWU7XG5cdCAgICAgICAgYnJlYWtcblxuXHQgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgLy8gZGVmYXVsdDpcblx0ICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfVxuXG5cdCAgICBpZiAocm9vdCA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgcm9vdCA9IHZhbHVlO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICB2YXIgcGFyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG5cdCAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGFyZW50KSkge1xuXHQgICAgICAgICAgICBwYXJlbnQucHVzaCh2YWx1ZSk7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudCwga2V5LCB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG5cdCAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgIH0pO1xuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcblxuXHQgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZUFycmF5VmFsdWUnO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlUHJvcGVydHlOYW1lJztcblx0ICAgICAgICB9XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIHZhciBjdXJyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG5cdCAgICAgICAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2VuZCc7XG5cdCAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnQpKSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJBcnJheVZhbHVlJztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyUHJvcGVydHlWYWx1ZSc7XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gcG9wICgpIHtcblx0ICAgIHN0YWNrLnBvcCgpO1xuXG5cdCAgICB2YXIgY3VycmVudCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuXHQgICAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnZW5kJztcblx0ICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkge1xuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJBcnJheVZhbHVlJztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlclByb3BlcnR5VmFsdWUnO1xuXHQgICAgfVxuXHR9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkUGFyc2VTdGF0ZSAoKSB7XG5cdC8vICAgICByZXR1cm4gbmV3IEVycm9yKGBKU09ONTogaW52YWxpZCBwYXJzZSBzdGF0ZSAnJHtwYXJzZVN0YXRlfSdgKVxuXHQvLyB9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkTGV4U3RhdGUgKHN0YXRlKSB7XG5cdC8vICAgICByZXR1cm4gbmV3IEVycm9yKGBKU09ONTogaW52YWxpZCBsZXggc3RhdGUgJyR7c3RhdGV9J2ApXG5cdC8vIH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkQ2hhciAoYykge1xuXHQgICAgaWYgKGMgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgY2hhcmFjdGVyICdcIiArIChmb3JtYXRDaGFyKGMpKSArIFwiJyBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkRU9GICgpIHtcblx0ICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHR9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkVG9rZW4gKCkge1xuXHQvLyAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdC8vICAgICAgICAgcmV0dXJuIHN5bnRheEVycm9yKGBKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgJHtsaW5lfToke2NvbHVtbn1gKVxuXHQvLyAgICAgfVxuXG5cdC8vICAgICBjb25zdCBjID0gU3RyaW5nLmZyb21Db2RlUG9pbnQodG9rZW4udmFsdWUuY29kZVBvaW50QXQoMCkpXG5cdC8vICAgICByZXR1cm4gc3ludGF4RXJyb3IoYEpTT041OiBpbnZhbGlkIGNoYXJhY3RlciAnJHtmb3JtYXRDaGFyKGMpfScgYXQgJHtsaW5lfToke2NvbHVtbn1gKVxuXHQvLyB9XG5cblx0ZnVuY3Rpb24gaW52YWxpZElkZW50aWZpZXIgKCkge1xuXHQgICAgY29sdW1uIC09IDU7XG5cdCAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgaWRlbnRpZmllciBjaGFyYWN0ZXIgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHR9XG5cblx0ZnVuY3Rpb24gc2VwYXJhdG9yQ2hhciAoYykge1xuXHQgICAgY29uc29sZS53YXJuKChcIkpTT041OiAnXCIgKyAoZm9ybWF0Q2hhcihjKSkgKyBcIicgaW4gc3RyaW5ncyBpcyBub3QgdmFsaWQgRUNNQVNjcmlwdDsgY29uc2lkZXIgZXNjYXBpbmdcIikpO1xuXHR9XG5cblx0ZnVuY3Rpb24gZm9ybWF0Q2hhciAoYykge1xuXHQgICAgdmFyIHJlcGxhY2VtZW50cyA9IHtcblx0ICAgICAgICBcIidcIjogXCJcXFxcJ1wiLFxuXHQgICAgICAgICdcIic6ICdcXFxcXCInLFxuXHQgICAgICAgICdcXFxcJzogJ1xcXFxcXFxcJyxcblx0ICAgICAgICAnXFxiJzogJ1xcXFxiJyxcblx0ICAgICAgICAnXFxmJzogJ1xcXFxmJyxcblx0ICAgICAgICAnXFxuJzogJ1xcXFxuJyxcblx0ICAgICAgICAnXFxyJzogJ1xcXFxyJyxcblx0ICAgICAgICAnXFx0JzogJ1xcXFx0Jyxcblx0ICAgICAgICAnXFx2JzogJ1xcXFx2Jyxcblx0ICAgICAgICAnXFwwJzogJ1xcXFwwJyxcblx0ICAgICAgICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuXHQgICAgICAgICdcXHUyMDI5JzogJ1xcXFx1MjAyOScsXG5cdCAgICB9O1xuXG5cdCAgICBpZiAocmVwbGFjZW1lbnRzW2NdKSB7XG5cdCAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50c1tjXVxuXHQgICAgfVxuXG5cdCAgICBpZiAoYyA8ICcgJykge1xuXHQgICAgICAgIHZhciBoZXhTdHJpbmcgPSBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuXHQgICAgICAgIHJldHVybiAnXFxcXHgnICsgKCcwMCcgKyBoZXhTdHJpbmcpLnN1YnN0cmluZyhoZXhTdHJpbmcubGVuZ3RoKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gY1xuXHR9XG5cblx0ZnVuY3Rpb24gc3ludGF4RXJyb3IgKG1lc3NhZ2UpIHtcblx0ICAgIHZhciBlcnIgPSBuZXcgU3ludGF4RXJyb3IobWVzc2FnZSk7XG5cdCAgICBlcnIubGluZU51bWJlciA9IGxpbmU7XG5cdCAgICBlcnIuY29sdW1uTnVtYmVyID0gY29sdW1uO1xuXHQgICAgcmV0dXJuIGVyclxuXHR9XG5cblx0dmFyIHN0cmluZ2lmeSA9IGZ1bmN0aW9uIHN0cmluZ2lmeSAodmFsdWUsIHJlcGxhY2VyLCBzcGFjZSkge1xuXHQgICAgdmFyIHN0YWNrID0gW107XG5cdCAgICB2YXIgaW5kZW50ID0gJyc7XG5cdCAgICB2YXIgcHJvcGVydHlMaXN0O1xuXHQgICAgdmFyIHJlcGxhY2VyRnVuYztcblx0ICAgIHZhciBnYXAgPSAnJztcblx0ICAgIHZhciBxdW90ZTtcblxuXHQgICAgaWYgKFxuXHQgICAgICAgIHJlcGxhY2VyICE9IG51bGwgJiZcblx0ICAgICAgICB0eXBlb2YgcmVwbGFjZXIgPT09ICdvYmplY3QnICYmXG5cdCAgICAgICAgIUFycmF5LmlzQXJyYXkocmVwbGFjZXIpXG5cdCAgICApIHtcblx0ICAgICAgICBzcGFjZSA9IHJlcGxhY2VyLnNwYWNlO1xuXHQgICAgICAgIHF1b3RlID0gcmVwbGFjZXIucXVvdGU7XG5cdCAgICAgICAgcmVwbGFjZXIgPSByZXBsYWNlci5yZXBsYWNlcjtcblx0ICAgIH1cblxuXHQgICAgaWYgKHR5cGVvZiByZXBsYWNlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgIHJlcGxhY2VyRnVuYyA9IHJlcGxhY2VyO1xuXHQgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlcGxhY2VyKSkge1xuXHQgICAgICAgIHByb3BlcnR5TGlzdCA9IFtdO1xuXHQgICAgICAgIGZvciAodmFyIGkgPSAwLCBsaXN0ID0gcmVwbGFjZXI7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG5cdCAgICAgICAgICAgIHZhciB2ID0gbGlzdFtpXTtcblxuXHQgICAgICAgICAgICB2YXIgaXRlbSA9ICh2b2lkIDApO1xuXG5cdCAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICAgICAgICAgIGl0ZW0gPSB2O1xuXHQgICAgICAgICAgICB9IGVsc2UgaWYgKFxuXHQgICAgICAgICAgICAgICAgdHlwZW9mIHYgPT09ICdudW1iZXInIHx8XG5cdCAgICAgICAgICAgICAgICB2IGluc3RhbmNlb2YgU3RyaW5nIHx8XG5cdCAgICAgICAgICAgICAgICB2IGluc3RhbmNlb2YgTnVtYmVyXG5cdCAgICAgICAgICAgICkge1xuXHQgICAgICAgICAgICAgICAgaXRlbSA9IFN0cmluZyh2KTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChpdGVtICE9PSB1bmRlZmluZWQgJiYgcHJvcGVydHlMaXN0LmluZGV4T2YoaXRlbSkgPCAwKSB7XG5cdCAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3QucHVzaChpdGVtKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgaWYgKHNwYWNlIGluc3RhbmNlb2YgTnVtYmVyKSB7XG5cdCAgICAgICAgc3BhY2UgPSBOdW1iZXIoc3BhY2UpO1xuXHQgICAgfSBlbHNlIGlmIChzcGFjZSBpbnN0YW5jZW9mIFN0cmluZykge1xuXHQgICAgICAgIHNwYWNlID0gU3RyaW5nKHNwYWNlKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKHR5cGVvZiBzcGFjZSA9PT0gJ251bWJlcicpIHtcblx0ICAgICAgICBpZiAoc3BhY2UgPiAwKSB7XG5cdCAgICAgICAgICAgIHNwYWNlID0gTWF0aC5taW4oMTAsIE1hdGguZmxvb3Ioc3BhY2UpKTtcblx0ICAgICAgICAgICAgZ2FwID0gJyAgICAgICAgICAnLnN1YnN0cigwLCBzcGFjZSk7XG5cdCAgICAgICAgfVxuXHQgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3BhY2UgPT09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgZ2FwID0gc3BhY2Uuc3Vic3RyKDAsIDEwKTtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHNlcmlhbGl6ZVByb3BlcnR5KCcnLCB7Jyc6IHZhbHVlfSlcblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplUHJvcGVydHkgKGtleSwgaG9sZGVyKSB7XG5cdCAgICAgICAgdmFyIHZhbHVlID0gaG9sZGVyW2tleV07XG5cdCAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcblx0ICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZS50b0pTT041ID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvSlNPTjUoa2V5KTtcblx0ICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUudG9KU09OID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvSlNPTihrZXkpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHJlcGxhY2VyRnVuYykge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IHJlcGxhY2VyRnVuYy5jYWxsKGhvbGRlciwga2V5LCB2YWx1ZSk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtYmVyKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0ICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcblx0ICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQm9vbGVhbikge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlT2YoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSBudWxsOiByZXR1cm4gJ251bGwnXG5cdCAgICAgICAgY2FzZSB0cnVlOiByZXR1cm4gJ3RydWUnXG5cdCAgICAgICAgY2FzZSBmYWxzZTogcmV0dXJuICdmYWxzZSdcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuXHQgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcodmFsdWUsIGZhbHNlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gc2VyaWFsaXplQXJyYXkodmFsdWUpIDogc2VyaWFsaXplT2JqZWN0KHZhbHVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiB1bmRlZmluZWRcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gcXVvdGVTdHJpbmcgKHZhbHVlKSB7XG5cdCAgICAgICAgdmFyIHF1b3RlcyA9IHtcblx0ICAgICAgICAgICAgXCInXCI6IDAuMSxcblx0ICAgICAgICAgICAgJ1wiJzogMC4yLFxuXHQgICAgICAgIH07XG5cblx0ICAgICAgICB2YXIgcmVwbGFjZW1lbnRzID0ge1xuXHQgICAgICAgICAgICBcIidcIjogXCJcXFxcJ1wiLFxuXHQgICAgICAgICAgICAnXCInOiAnXFxcXFwiJyxcblx0ICAgICAgICAgICAgJ1xcXFwnOiAnXFxcXFxcXFwnLFxuXHQgICAgICAgICAgICAnXFxiJzogJ1xcXFxiJyxcblx0ICAgICAgICAgICAgJ1xcZic6ICdcXFxcZicsXG5cdCAgICAgICAgICAgICdcXG4nOiAnXFxcXG4nLFxuXHQgICAgICAgICAgICAnXFxyJzogJ1xcXFxyJyxcblx0ICAgICAgICAgICAgJ1xcdCc6ICdcXFxcdCcsXG5cdCAgICAgICAgICAgICdcXHYnOiAnXFxcXHYnLFxuXHQgICAgICAgICAgICAnXFwwJzogJ1xcXFwwJyxcblx0ICAgICAgICAgICAgJ1xcdTIwMjgnOiAnXFxcXHUyMDI4Jyxcblx0ICAgICAgICAgICAgJ1xcdTIwMjknOiAnXFxcXHUyMDI5Jyxcblx0ICAgICAgICB9O1xuXG5cdCAgICAgICAgdmFyIHByb2R1Y3QgPSAnJztcblxuXHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgdmFyIGMgPSB2YWx1ZVtpXTtcblx0ICAgICAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICAgICAgICAgIHF1b3Rlc1tjXSsrO1xuXHQgICAgICAgICAgICAgICAgcHJvZHVjdCArPSBjO1xuXHQgICAgICAgICAgICAgICAgY29udGludWVcblxuXHQgICAgICAgICAgICBjYXNlICdcXDAnOlxuXHQgICAgICAgICAgICAgICAgaWYgKHV0aWwuaXNEaWdpdCh2YWx1ZVtpICsgMV0pKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCArPSAnXFxcXHgwMCc7XG5cdCAgICAgICAgICAgICAgICAgICAgY29udGludWVcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudHNbY10pIHtcblx0ICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gcmVwbGFjZW1lbnRzW2NdO1xuXHQgICAgICAgICAgICAgICAgY29udGludWVcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChjIDwgJyAnKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgaGV4U3RyaW5nID0gYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcblx0ICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gJ1xcXFx4JyArICgnMDAnICsgaGV4U3RyaW5nKS5zdWJzdHJpbmcoaGV4U3RyaW5nLmxlbmd0aCk7XG5cdCAgICAgICAgICAgICAgICBjb250aW51ZVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcHJvZHVjdCArPSBjO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBxdW90ZUNoYXIgPSBxdW90ZSB8fCBPYmplY3Qua2V5cyhxdW90ZXMpLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKHF1b3Rlc1thXSA8IHF1b3Rlc1tiXSkgPyBhIDogYjsgfSk7XG5cblx0ICAgICAgICBwcm9kdWN0ID0gcHJvZHVjdC5yZXBsYWNlKG5ldyBSZWdFeHAocXVvdGVDaGFyLCAnZycpLCByZXBsYWNlbWVudHNbcXVvdGVDaGFyXSk7XG5cblx0ICAgICAgICByZXR1cm4gcXVvdGVDaGFyICsgcHJvZHVjdCArIHF1b3RlQ2hhclxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVPYmplY3QgKHZhbHVlKSB7XG5cdCAgICAgICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpID49IDApIHtcblx0ICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09ONScpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cblx0ICAgICAgICB2YXIgc3RlcGJhY2sgPSBpbmRlbnQ7XG5cdCAgICAgICAgaW5kZW50ID0gaW5kZW50ICsgZ2FwO1xuXG5cdCAgICAgICAgdmFyIGtleXMgPSBwcm9wZXJ0eUxpc3QgfHwgT2JqZWN0LmtleXModmFsdWUpO1xuXHQgICAgICAgIHZhciBwYXJ0aWFsID0gW107XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxpc3QgPSBrZXlzOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuXHQgICAgICAgICAgICB2YXIga2V5ID0gbGlzdFtpXTtcblxuXHQgICAgICAgICAgICB2YXIgcHJvcGVydHlTdHJpbmcgPSBzZXJpYWxpemVQcm9wZXJ0eShrZXksIHZhbHVlKTtcblx0ICAgICAgICAgICAgaWYgKHByb3BlcnR5U3RyaW5nICE9PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBtZW1iZXIgPSBzZXJpYWxpemVLZXkoa2V5KSArICc6Jztcblx0ICAgICAgICAgICAgICAgIGlmIChnYXAgIT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgbWVtYmVyICs9ICcgJztcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIG1lbWJlciArPSBwcm9wZXJ0eVN0cmluZztcblx0ICAgICAgICAgICAgICAgIHBhcnRpYWwucHVzaChtZW1iZXIpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIGZpbmFsO1xuXHQgICAgICAgIGlmIChwYXJ0aWFsLmxlbmd0aCA9PT0gMCkge1xuXHQgICAgICAgICAgICBmaW5hbCA9ICd7fSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgdmFyIHByb3BlcnRpZXM7XG5cdCAgICAgICAgICAgIGlmIChnYXAgPT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcGFydGlhbC5qb2luKCcsJyk7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICd7JyArIHByb3BlcnRpZXMgKyAnfSc7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgc2VwYXJhdG9yID0gJyxcXG4nICsgaW5kZW50O1xuXHQgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IHBhcnRpYWwuam9pbihzZXBhcmF0b3IpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAne1xcbicgKyBpbmRlbnQgKyBwcm9wZXJ0aWVzICsgJyxcXG4nICsgc3RlcGJhY2sgKyAnfSc7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wb3AoKTtcblx0ICAgICAgICBpbmRlbnQgPSBzdGVwYmFjaztcblx0ICAgICAgICByZXR1cm4gZmluYWxcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplS2V5IChrZXkpIHtcblx0ICAgICAgICBpZiAoa2V5Lmxlbmd0aCA9PT0gMCkge1xuXHQgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcoa2V5LCB0cnVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBmaXJzdENoYXIgPSBTdHJpbmcuZnJvbUNvZGVQb2ludChrZXkuY29kZVBvaW50QXQoMCkpO1xuXHQgICAgICAgIGlmICghdXRpbC5pc0lkU3RhcnRDaGFyKGZpcnN0Q2hhcikpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKGtleSwgdHJ1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBmb3IgKHZhciBpID0gZmlyc3RDaGFyLmxlbmd0aDsgaSA8IGtleS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICBpZiAoIXV0aWwuaXNJZENvbnRpbnVlQ2hhcihTdHJpbmcuZnJvbUNvZGVQb2ludChrZXkuY29kZVBvaW50QXQoaSkpKSkge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKGtleSwgdHJ1ZSlcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBrZXlcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplQXJyYXkgKHZhbHVlKSB7XG5cdCAgICAgICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpID49IDApIHtcblx0ICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09ONScpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cblx0ICAgICAgICB2YXIgc3RlcGJhY2sgPSBpbmRlbnQ7XG5cdCAgICAgICAgaW5kZW50ID0gaW5kZW50ICsgZ2FwO1xuXG5cdCAgICAgICAgdmFyIHBhcnRpYWwgPSBbXTtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgIHZhciBwcm9wZXJ0eVN0cmluZyA9IHNlcmlhbGl6ZVByb3BlcnR5KFN0cmluZyhpKSwgdmFsdWUpO1xuXHQgICAgICAgICAgICBwYXJ0aWFsLnB1c2goKHByb3BlcnR5U3RyaW5nICE9PSB1bmRlZmluZWQpID8gcHJvcGVydHlTdHJpbmcgOiAnbnVsbCcpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBmaW5hbDtcblx0ICAgICAgICBpZiAocGFydGlhbC5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICAgICAgZmluYWwgPSAnW10nO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIGlmIChnYXAgPT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHBhcnRpYWwuam9pbignLCcpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAnWycgKyBwcm9wZXJ0aWVzICsgJ10nO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgdmFyIHNlcGFyYXRvciA9ICcsXFxuJyArIGluZGVudDtcblx0ICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzJDEgPSBwYXJ0aWFsLmpvaW4oc2VwYXJhdG9yKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ1tcXG4nICsgaW5kZW50ICsgcHJvcGVydGllcyQxICsgJyxcXG4nICsgc3RlcGJhY2sgKyAnXSc7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wb3AoKTtcblx0ICAgICAgICBpbmRlbnQgPSBzdGVwYmFjaztcblx0ICAgICAgICByZXR1cm4gZmluYWxcblx0ICAgIH1cblx0fTtcblxuXHR2YXIgSlNPTjUgPSB7XG5cdCAgICBwYXJzZTogcGFyc2UsXG5cdCAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeSxcblx0fTtcblxuXHR2YXIgbGliID0gSlNPTjU7XG5cblx0dmFyIGVzNSA9IGxpYjtcblxuXHRyZXR1cm4gZXM1O1xuXG59KSkpO1xuIiwgImltcG9ydCB7IFBsdWdpbiwgTWFya2Rvd25WaWV3LCBXb3Jrc3BhY2VMZWFmIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGNvbnZlcnRTZXR0aW5ncywgREVGQVVMVF9TRVRUSU5HUywgTEFOR1VBR0VTLCBDb2RlU3R5bGVyU2V0dGluZ3MsIFJFRkVSRU5DRV9DT0RFQkxPQ0ssIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IFNldHRpbmdzVGFiIH0gZnJvbSBcIi4vU2V0dGluZ3NUYWJcIjtcbmltcG9ydCB7IHJlbW92ZVN0eWxlc0FuZENsYXNzZXMsIHVwZGF0ZVN0eWxpbmcgfSBmcm9tIFwiLi9BcHBseVN0eWxpbmdcIjtcbmltcG9ydCB7IGNyZWF0ZUNvZGVibG9ja0NvZGVNaXJyb3JFeHRlbnNpb25zLCBlZGl0aW5nRG9jdW1lbnRGb2xkIH0gZnJvbSBcIi4vRWRpdGluZ1ZpZXdcIjtcbmltcG9ydCB7IGRlc3Ryb3lSZWFkaW5nTW9kZUVsZW1lbnRzLCByZWFkaW5nRG9jdW1lbnRGb2xkLCBleGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIsIHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IsIHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IgfSBmcm9tIFwiLi9SZWFkaW5nVmlld1wiO1xuaW1wb3J0IHsgcmVmZXJlbmNlQ29kZWJsb2NrUHJvY2Vzc29yIH0gZnJvbSBcIi4vUmVmZXJlbmNpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29kZVN0eWxlclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3M7XG5cdGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblx0bGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+O1xuXHRzaXplczoge1xuXHRcdGZvbnQ6IHN0cmluZztcblx0XHR6b29tOiBzdHJpbmc7XG5cdH07XG5cblx0YXN5bmMgb25sb2FkKCkge1xuXHRcdGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7IC8vIExvYWQgU2V0dGluZ3Ncblx0XHRjb25zdCBzZXR0aW5nc1RhYiA9IG5ldyBTZXR0aW5nc1RhYih0aGlzLmFwcCx0aGlzKTtcblx0XHR0aGlzLmFkZFNldHRpbmdUYWIoc2V0dGluZ3NUYWIpO1xuXG5cdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXJcIik7IC8vIExvYWQgU3R5bGVzXG5cdFx0dXBkYXRlU3R5bGluZyh0aGlzLnNldHRpbmdzLHRoaXMuYXBwKTtcblxuXHRcdHRoaXMubGFuZ3VhZ2VJY29ucyA9IE9iamVjdC5rZXlzKExBTkdVQUdFUykucmVkdWNlKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LCBrZXk6IHN0cmluZykgPT4geyAvLyBMb2FkIEljb25zXG5cdFx0XHRpZiAoTEFOR1VBR0VTW2tleV0/Lmljb24pXG5cdFx0XHRcdHJlc3VsdFtrZXldID0gVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj4ke0xBTkdVQUdFU1trZXldLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LHt9KTtcblx0XHR0aGlzLnNpemVzID0ge1xuXHRcdFx0Zm9udDogZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHQtc2l6ZVwiKSxcblx0XHRcdHpvb206IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tem9vbS1mYWN0b3JcIiksXG5cdFx0fTtcblxuXHRcdGlmICghKGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIKSkpIC8vIENyZWF0ZSBmb2xkZXIgZm9yIGV4dGVybmFsIHJlZmVyZW5jZXNcblx0XHRcdGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIubWtkaXIoRVhURVJOQUxfUkVGRVJFTkNFX1BBVEgpO1xuXG5cdFx0dGhpcy5leGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIgPSBleGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXI7IC8vIEFkZCBleGVjdXRlIGNvZGUgbXV0YXRpb24gb2JzZXJ2ZXJcblxuXHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0d2luZG93LkNvZGVNaXJyb3IubW9kZUluZm8ucHVzaCh7XG5cdFx0XHRuYW1lOiBcInJlZmVyZW5jZVwiLFxuXHRcdFx0bWltZTogXCJ0ZXh0L3JlZmVyZW5jZVwiLFxuXHRcdFx0bW9kZTogXCJyZWZlcmVuY2VcIixcblx0XHRcdGV4dDogW1wicmVmZXJlbmNlXCJdXG5cdFx0fSk7XG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKFJFRkVSRU5DRV9DT0RFQkxPQ0ssIGFzeW5jIChzb3VyY2UsIGVsLCBjdHgpID0+IHsgYXdhaXQgcmVmZXJlbmNlQ29kZWJsb2NrUHJvY2Vzc29yKHNvdXJjZSwgZWwsIGN0eCwgdGhpcyk7fSk7XG5cblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKGFzeW5jIChlbCxjdHgpID0+IHthd2FpdCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsLGN0eCx0aGlzKTt9KTsgLy8gQWRkIGNvZGVibG9jayBkZWNvcmF0aW5nIG1hcmtkb3duUG9zdFByb2Nlc3NvclxuXHRcdHRoaXMucmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3IoYXN5bmMgKGVsLGN0eCkgPT4ge2F3YWl0IHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWwsY3R4LHRoaXMpO30pOyAvLyBBZGQgaW5saW5lIGNvZGUgZGVjb3JhdGluZyBtYXJrZG93blBvc3RQcm9jZXNzb3JcblxuXHRcdHRoaXMucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oY3JlYXRlQ29kZWJsb2NrQ29kZU1pcnJvckV4dGVuc2lvbnModGhpcy5zZXR0aW5ncyx0aGlzKSk7IC8vIEFkZCBjb2RlbWlycm9yIGV4dGVuc2lvbnNcblxuXHRcdGxldCB6b29tVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0dGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbihcImNzcy1jaGFuZ2VcIiwoKT0+e1xuXHRcdFx0dXBkYXRlU3R5bGluZyh0aGlzLnNldHRpbmdzLHRoaXMuYXBwKTsgLy8gVXBkYXRlIHN0eWxpbmcgb24gY3NzIGNoYW5nZXNcblx0XHRcdGNvbnN0IGN1cnJlbnRGb250U2l6ZSA9IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tZm9udC10ZXh0LXNpemVcIik7XG5cdFx0XHRpZiAodGhpcy5zaXplcy5mb250ICE9PSBjdXJyZW50Rm9udFNpemUpIHtcblx0XHRcdFx0dGhpcy5zaXplcy5mb250ID0gY3VycmVudEZvbnRTaXplO1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoem9vbVRpbWVvdXQpO1xuXHRcdFx0XHR6b29tVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0XHR0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7IC8vIFJlLXJlbmRlciBvbiBmb250IHNpemUgY2hhbmdlc1xuXHRcdFx0XHR9LDEwMDApO1xuXHRcdFx0fVxuXHRcdH0sdGhpcykpO1xuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oXCJyZXNpemVcIiwoKT0+e1xuXHRcdFx0Y29uc3QgY3VycmVudFpvb21TaXplID0gZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS16b29tLWZhY3RvclwiKTtcblx0XHRcdGlmICh0aGlzLnNpemVzLnpvb20gIT09IGN1cnJlbnRab29tU2l6ZSkge1xuXHRcdFx0XHR0aGlzLnNpemVzLnpvb20gPSBjdXJyZW50Wm9vbVNpemU7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh6b29tVGltZW91dCk7XG5cdFx0XHRcdHpvb21UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHRcdHRoaXMucmVuZGVyUmVhZGluZ1ZpZXcoKTsgLy8gUmUtcmVuZGVyIG9uIHpvb20gY2hhbmdlc1xuXHRcdFx0XHR9LDEwMDApO1xuXHRcdFx0fVxuXHRcdH0sdGhpcykpO1xuXG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJmb2xkLWFsbFwiLCBuYW1lOiBcIkZvbGQgYWxsIGNvZGVibG9ja3NcIiwgY2FsbGJhY2s6ICgpPT57XG5cdFx0XHRjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcblx0XHRcdGlmIChhY3RpdmVWaWV3KSB7XG5cdFx0XHRcdGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdFx0cmVhZGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmNvbnRlbnRFbCx0cnVlKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyx0cnVlKTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJ1bmZvbGQtYWxsXCIsIG5hbWU6IFwiVW5mb2xkIGFsbCBjb2RlYmxvY2tzXCIsIGNhbGxiYWNrOiAoKT0+e1xuXHRcdFx0Y29uc3QgYWN0aXZlVmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0XHRpZiAoYWN0aXZlVmlldykge1xuXHRcdFx0XHRpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRcdHJlYWRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5jb250ZW50RWwsZmFsc2UpO1xuXHRcdFx0XHRlbHNlIGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJzb3VyY2VcIilcblx0XHRcdFx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdFx0XHRcdGVkaXRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5lZGl0b3IuY20uZG9jVmlldy52aWV3LGZhbHNlKTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJyZXNldC1hbGxcIiwgbmFtZTogXCJSZXNldCBmb2xkIHN0YXRlIGZvciBhbGwgY29kZWJsb2Nrc1wiLCBjYWxsYmFjazogKCk9Pntcblx0XHRcdGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdFx0aWYgKGFjdGl2ZVZpZXcpIHtcblx0XHRcdFx0aWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0XHRyZWFkaW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuY29udGVudEVsKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyk7XG5cdFx0XHR9XG5cdFx0fX0pO1xuXG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoKCk9Pnt0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7fSk7IC8vIEFkZCBkZWNvcmF0aW9uIG9uIGVuYWJsaW5nIG9mIHBsdWdpblxuXG5cdFx0Y29uc29sZS5sb2coXCJMb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXG5cdG9udW5sb2FkKCkge1xuXHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0Y29uc3QgcmVmZXJlbmNlTW9kZUluZGV4ID0gd2luZG93LkNvZGVNaXJyb3IubW9kZUluZm8uZmluZEluZGV4KChtb2RlKSA9PiBtb2RlLm1vZGUgPT09IFwicmVmZXJlbmNlXCIpO1xuXHRcdGlmIChyZWZlcmVuY2VNb2RlSW5kZXggIT09IC0xKVxuXHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdHdpbmRvdy5Db2RlTWlycm9yLm1vZGVJbmZvLnNwbGljZShyZWZlcmVuY2VNb2RlSW5kZXgsIDEpO1xuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRyZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk7XG5cdFx0ZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMoKTtcblx0XHRmb3IgKGNvbnN0IHVybCBvZiBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3VhZ2VJY29ucykpIC8vIFVubG9hZCBpY29uc1xuXHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuXHRcdGNvbnNvbGUubG9nKFwiVW5sb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXG5cdGFzeW5jIGxvYWRTZXR0aW5ncygpIHtcblx0XHR0aGlzLnNldHRpbmdzID0gey4uLnN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1NFVFRJTkdTKSwgLi4uY29udmVydFNldHRpbmdzKGF3YWl0IHRoaXMubG9hZERhdGEoKSl9O1xuXHR9XG5cblx0YXN5bmMgc2F2ZVNldHRpbmdzKCkge1xuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLnVwZGF0ZU9wdGlvbnMoKTtcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXHR9XG5cblx0cmVuZGVyUmVhZGluZ1ZpZXcoKSB7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLml0ZXJhdGVSb290TGVhdmVzKChsZWFmOiBXb3Jrc3BhY2VMZWFmKSA9PiB7XG5cdFx0XHRpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRsZWFmLnZpZXcucHJldmlld01vZGUucmVyZW5kZXIodHJ1ZSk7XG5cdFx0fSk7XG5cdH1cbn1cbiIsICIvLyBUeXBpbmdcbmV4cG9ydCB0eXBlIEhFWCA9IGAjJHtzdHJpbmd9YDtcbmV4cG9ydCB0eXBlIENTUyA9IGAtLSR7c3RyaW5nfWA7XG5leHBvcnQgdHlwZSBDb2xvdXIgPSBIRVggfCBDU1M7XG5leHBvcnQgdHlwZSBQZXJjZW50YWdlID0gYCR7bnVtYmVyfSVgO1xuZXhwb3J0IHR5cGUgRGlzcGxheSA9IFwibm9uZVwiIHwgXCJpZl9oZWFkZXJfc2hvd25cIiB8IFwiYWx3YXlzXCI7XG5cbi8vIEludGVyZmFjZSBDcmVhdGlvblxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3VycyB7XG5cdGNvZGVibG9jazoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlVGV4dENvbG91cjogQ29sb3VyO1xuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0fSxcblx0XHRsaW5lQ29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogQ29sb3VyO1xuXHRcdGRlZmF1bHRDb2xvdXI6IENvbG91cjtcblx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IFJlY29yZDxzdHJpbmcsQ29sb3VyPjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0dGl0bGVUZXh0Q29sb3VyOiBDb2xvdXJcblx0fVxuXHRhZHZhbmNlZDoge1xuXHRcdGJ1dHRvbkNvbG91cjogQ29sb3VyO1xuXHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogQ29sb3VyO1xuXHR9XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzIHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0bGluZU51bWJlcnM6IGJvb2xlYW47XG5cdFx0dW53cmFwTGluZXM6IGJvb2xlYW47XG5cdFx0d3JhcExpbmVzQWN0aXZlOiBib29sZWFuO1xuXHRcdGN1cnZhdHVyZTogbnVtYmVyO1xuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRoaWdobGlnaHQ6IGJvb2xlYW47XG5cdFx0YWN0aXZlTGluZTogYm9vbGVhbjtcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRGb250OiBzdHJpbmc7XG5cdFx0XHR0ZXh0Qm9sZDogYm9vbGVhbjtcblx0XHRcdHRleHRJdGFsaWM6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0ZGlzcGxheTogRGlzcGxheTtcblx0XHRcdHRleHRGb250OiBzdHJpbmc7XG5cdFx0XHR0ZXh0Qm9sZDogYm9vbGVhbjtcblx0XHRcdHRleHRJdGFsaWM6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRsYW5ndWFnZUljb246IHtcblx0XHRcdGRpc3BsYXk6IERpc3BsYXk7XG5cdFx0XHRkaXNwbGF5Q29sb3VyOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0Zm9udFNpemU6IG51bWJlcjtcblx0XHRmb2xkUGxhY2Vob2xkZXI6IHN0cmluZztcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGJvb2xlYW47XG5cdFx0YWN0aXZlRWRpdG9yTGluZTogYm9vbGVhbjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0c3ludGF4SGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdHN0eWxlOiBib29sZWFuO1xuXHRcdGZvbnRXZWlnaHQ6IG51bWJlcjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0XHRwYWRkaW5nVmVydGljYWw6IG51bWJlcjtcblx0XHRwYWRkaW5nSG9yaXpvbnRhbDogbnVtYmVyO1xuXHRcdG1hcmdpbkhvcml6b250YWw6IG51bWJlcjtcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IG51bWJlcjtcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRncmFkaWVudEhpZ2hsaWdodHM6IGJvb2xlYW47XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogUGVyY2VudGFnZTtcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogYm9vbGVhbjtcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiBudW1iZXI7XG5cdFx0aWNvblNpemU6IG51bWJlcjtcblx0fTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lQ29sb3VycyB7XG5cdGxpZ2h0OiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3Vycztcblx0ZGFyazogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnM7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZSB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncztcblx0Y29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclNldHRpbmdzIHtcblx0dGhlbWVzOiBSZWNvcmQ8c3RyaW5nLENvZGVTdHlsZXJUaGVtZT47XG5cdHNlbGVjdGVkVGhlbWU6IHN0cmluZztcblx0Y3VycmVudFRoZW1lOiBDb2RlU3R5bGVyVGhlbWU7XG5cdG5ld1RoZW1lOiBzdHJpbmc7XG5cdG5ld0hpZ2hsaWdodDogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVyczogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGVudDogc3RyaW5nO1xuXHRleGFtcGxlSW5saW5lQ29kZTogc3RyaW5nO1xuXHRkZWNvcmF0ZVByaW50OiBib29sZWFuO1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzdHJpbmc7XG5cdHJlZGlyZWN0TGFuZ3VhZ2VzOiBSZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9Pjtcblx0dmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlIHtcblx0aWNvbj86IHN0cmluZztcblx0Y29sb3VyPzogQ29sb3VyO1xuXHRpbmxpbmVDb21tZW50PzogQXJyYXk8c3RyaW5nPjtcblx0YmxvY2tDb21tZW50PzogQXJyYXk8e1xuXHRcdG9wZW46IHN0cmluZztcblx0XHRjbG9zZTogc3RyaW5nO1xuXHRcdGNvbnRpbnVhdGlvbj86IHN0cmluZzsgLy8gRGVmYXVsdDogTm9uZVxuXHRcdG11bHRpbGluZT86IHN0cmluZzsgLy8gRGVmYXVsdDogdHJ1ZVxuXHR9Pjtcbn1cblxuLy8gVGhlbWUgRGVmYXVsdHNcbmNvbnN0IFRIRU1FX0RFRkFVTFRfU0VUVElOR1M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzID0ge1xuXHRjb2RlYmxvY2s6IHtcblx0XHRsaW5lTnVtYmVyczogdHJ1ZSxcblx0XHR1bndyYXBMaW5lczogdHJ1ZSxcblx0XHR3cmFwTGluZXNBY3RpdmU6IGZhbHNlLFxuXHRcdGN1cnZhdHVyZTogNCxcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0aGlnaGxpZ2h0OiB0cnVlLFxuXHRcdGFjdGl2ZUxpbmU6IGZhbHNlLFxuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dEZvbnQ6IFwiXCIsXG5cdFx0XHR0ZXh0Qm9sZDogZmFsc2UsXG5cdFx0XHR0ZXh0SXRhbGljOiB0cnVlLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGRpc3BsYXk6IFwibm9uZVwiLFxuXHRcdFx0dGV4dEZvbnQ6IFwiXCIsXG5cdFx0XHR0ZXh0Qm9sZDogdHJ1ZSxcblx0XHRcdHRleHRJdGFsaWM6IGZhbHNlLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VJY29uOiB7XG5cdFx0XHRkaXNwbGF5OiBcIm5vbmVcIixcblx0XHRcdGRpc3BsYXlDb2xvdXI6IHRydWUsXG5cdFx0fSxcblx0XHRmb250U2l6ZTogMTQsXG5cdFx0Zm9sZFBsYWNlaG9sZGVyOiBcIlwiLFxuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZTogZmFsc2UsXG5cdFx0YWN0aXZlRWRpdG9yTGluZTogZmFsc2UsXG5cdH0sXG5cdGlubGluZToge1xuXHRcdHN5bnRheEhpZ2hsaWdodDogdHJ1ZSxcblx0XHRzdHlsZTogdHJ1ZSxcblx0XHRmb250V2VpZ2h0OiA0LFxuXHRcdGN1cnZhdHVyZTogNixcblx0XHRwYWRkaW5nVmVydGljYWw6IDUsXG5cdFx0cGFkZGluZ0hvcml6b250YWw6IDUsXG5cdFx0bWFyZ2luSG9yaXpvbnRhbDogMCxcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IDgsXG5cdH0sXG5cdGFkdmFuY2VkOiB7XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzOiBmYWxzZSxcblx0XHRncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wOiBcIjcwJVwiLFxuXHRcdGxhbmd1YWdlQm9yZGVyQ29sb3VyOiBmYWxzZSxcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiA1LFxuXHRcdGljb25TaXplOiAyOCxcblx0fSxcbn07XG5leHBvcnQgY29uc3QgVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUzogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMgPSB7XG5cdGNvZGVibG9jazoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1ub3JtYWxcIixcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRleHRDb2xvdXI6IFwiLS10ZXh0LWZhaW50XCIsXG5cdFx0YWN0aXZlVGV4dENvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1jb21tZW50XCIsXG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdFx0dGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHRcdH0sXG5cdFx0bGluZUNvbG91cjogXCItLWNvbG9yLWJhc2UtMzBcIixcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTMwXCIsXG5cdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCItLWNvbG9yLWJhc2UtMjBcIixcblx0XHRkZWZhdWx0Q29sb3VyOiBcIi0tdGV4dC1oaWdobGlnaHQtYmdcIixcblx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHR9LFxuXHRpbmxpbmU6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdFx0YWN0aXZlVGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdFx0dGl0bGVUZXh0Q29sb3VyOiBcIi0tY29kZS1jb21tZW50XCIsXG5cdH0sXG5cdGFkdmFuY2VkOiB7XG5cdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogXCItLXRleHQtbm9ybWFsXCIsXG5cdH1cbn07XG5cbi8vIENvbG9yIFNjaGVtZXNcbmNvbnN0IFNPTEFSSVpFRDogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuXHRcImJhc2UwM1wiOiBcIiMwMDJiMzZcIixcblx0XCJiYXNlMDJcIjogXCIjMDczNjQyXCIsXG5cdFwiYmFzZTAxXCI6IFwiIzU4NmU3NVwiLFxuXHRcImJhc2UwMFwiOiBcIiM2NTdiODNcIixcblx0XCJiYXNlMFwiOiBcIiM4Mzk0OTZcIixcblx0XCJiYXNlMVwiOiBcIiM5M2ExYTFcIixcblx0XCJiYXNlMlwiOiBcIiNlZWU4ZDVcIixcblx0XCJiYXNlM1wiOiBcIiNmZGY2ZTNcIixcblx0XCJ5ZWxsb3dcIjogXCIjYjU4OTAwXCIsXG5cdFwib3JhbmdlXCI6IFwiI2NiNGIxNlwiLFxuXHRcInJlZFwiOiBcIiNkYzMyMmZcIixcblx0XCJtYWdlbnRhXCI6IFwiI2QzMzY4MlwiLFxuXHRcInZpb2xldFwiOiBcIiM2YzcxYzRcIixcblx0XCJibHVlXCI6IFwiIzI2OGJkMlwiLFxuXHRcImN5YW5cIjogXCIjMmFhMTk4XCIsXG5cdFwiZ3JlZW5cIjogXCIjODU5OTAwXCIsXG59O1xuLy8gY29uc3QgQ0FUUFVDQ0lOOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG4vLyBcdGxhdHRlOiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiNlZmYxZjVcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiIzRjNGY2OVwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiNhY2IwYmVcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZGM4YTc4XCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiI2VmZjFmNVwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzVjNWY3N1wiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjMWU2NmY1XCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2QyMGYzOVwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiIzQwYTAyYlwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNkZjhlMWRcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2VhNzZjYlwiLFxuLy8gXHRcdFx0Y3lhbjogXCIjMTc5Mjk5XCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYWNiMGJlXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM2YzZmODVcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2JjYzBjY1wiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiMxZTY2ZjVcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNkMjBmMzlcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiIzQwYTAyYlwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2RmOGUxZFwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNlYTc2Y2JcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjMTc5Mjk5XCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIFx0ZnJhcHBcdTAwRTk6IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzMwMzQ0NlwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjYzZkMGY1XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiIzYyNjg4MFwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNmMmQ1Y2ZcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjMjMyNjM0XCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNTE1NzZkXCIsXG4vLyBcdFx0XHRibHVlOiBcIiM4Y2FhZWVcIixcbi8vIFx0XHRcdHJlZDogXCIjZTc4Mjg0XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjYTZkMTg5XCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2U1Yzg5MFwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZjRiOGU0XCIsXG4vLyBcdFx0XHRjeWFuOiBcIiM4MWM4YmVcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNiNWJmZTJcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzYyNjg4MFwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYTVhZGNlXCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzhjYWFlZVwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2U3ODI4NFwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjYTZkMTg5XCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZTVjODkwXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2Y0YjhlNFwiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiM4MWM4YmVcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gXHRtYWNjaGlhdG86IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzI0MjczYVwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjY2FkM2Y1XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiIzViNjA3OFwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNmNGRiZDZcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjMTgxOTI2XCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNDk0ZDY0XCIsXG4vLyBcdFx0XHRibHVlOiBcIiM4YWFkZjRcIixcbi8vIFx0XHRcdHJlZDogXCIjZWQ4Nzk2XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjYTZkYTk1XCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2VlZDQ5ZlwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZjViZGU2XCIsXG4vLyBcdFx0XHRjeWFuOiBcIiM4YmQ1Y2E4YmQ1Y2FcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNiOGMwZTBcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzViNjA3OFwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYTVhZGNiXCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzhhYWRmNFwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2VkODc5NlwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjYTZkYTk1XCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZWVkNDlmXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2Y1YmRlNlwiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiM4YmQ1Y2FcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gXHRtb2NoYToge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjMWUxZTJlXCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiNjZGQ2ZjRcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjNTg1YjcwXCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2Y1ZTBkY1wiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiMxMTExMWJcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM0NTQ3NUFcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzg5YjRmYVwiLFxuLy8gXHRcdFx0cmVkOiBcIiNmMzhiYThcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiNhNmUzYTFcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZjllMmFmXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNmNWMyZTdcIixcbi8vIFx0XHRcdGN5YW46IFwiIzk0ZTJkNVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2JhYzJkZVwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNTg1YjcwXCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNhNmFkYzhcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjODliNGZhXCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZjM4YmE4XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiNhNmUzYTFcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNmOWUyYWZcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZjVjMmU3XCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzk0ZTJkNVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyB9O1xuLy8gY29uc3QgR1JVVkJPWDogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuLy8gXHRkYXJrMF9oYXJkOiBcIiMxZDIwMjFcIixcbi8vIFx0ZGFyazA6IFwiIzI4MjgyOFwiLFxuLy8gXHRkYXJrMF9zb2Z0OiBcIiMzMjMwMmZcIixcbi8vIFx0ZGFyazE6IFwiIzNjMzgzNlwiLFxuLy8gXHRkYXJrMjogXCIjNTA0OTQ1XCIsXG4vLyBcdGRhcmszOiBcIiM2NjVjNTRcIixcbi8vIFx0ZGFyazQ6IFwiIzdjNmY2NFwiLFxuXG4vLyBcdGdyYXlfMjQ1OiBcIiM5MjgzNzRcIixcbi8vIFx0Z3JheV8yNDQ6IFwiIzkyODM3NFwiLFxuXG4vLyBcdGxpZ2h0MF9oYXJkOiBcIiNmOWY1ZDdcIixcbi8vIFx0bGlnaHQwOiBcIiNmYmYxYzdcIixcbi8vIFx0bGlnaHQwX3NvZnQ6IFwiI2YyZTViY1wiLFxuLy8gXHRsaWdodDE6IFwiI2ViZGJiMlwiLFxuLy8gXHRsaWdodDI6IFwiI2Q1YzRhMVwiLFxuLy8gXHRsaWdodDM6IFwiI2JkYWU5M1wiLFxuLy8gXHRsaWdodDQ6IFwiI2E4OTk4NFwiLFxuXG4vLyBcdGJyaWdodF9yZWQ6IFwiI2ZiNDkzNFwiLFxuLy8gXHRicmlnaHRfZ3JlZW46IFwiI2I4YmIyNlwiLFxuLy8gXHRicmlnaHRfeWVsbG93OiBcIiNmYWJkMmZcIixcbi8vIFx0YnJpZ2h0X2JsdWU6IFwiIzgzYTU5OFwiLFxuLy8gXHRicmlnaHRfcHVycGxlOiBcIiNkMzg2OWJcIixcbi8vIFx0YnJpZ2h0X2FxdWE6IFwiIzhlYzA3Y1wiLFxuLy8gXHRicmlnaHRfb3JhbmdlOiBcIiNmZTgwMTlcIixcblxuLy8gXHRuZXV0cmFsX3JlZDogXCIjY2MyNDFkXCIsXG4vLyBcdG5ldXRyYWxfZ3JlZW46IFwiIzk4OTcxYVwiLFxuLy8gXHRuZXV0cmFsX3llbGxvdzogXCIjZDc5OTIxXCIsXG4vLyBcdG5ldXRyYWxfYmx1ZTogXCIjNDU4NTg4XCIsXG4vLyBcdG5ldXRyYWxfcHVycGxlOiBcIiNiMTYyODZcIixcbi8vIFx0bmV1dHJhbF9hcXVhOiBcIiM2ODlkNmFcIixcbi8vIFx0bmV1dHJhbF9vcmFuZ2U6IFwiI2Q2NWQwZVwiLFxuXG4vLyBcdGZhZGVkX3JlZDogXCIjOWQwMDA2XCIsXG4vLyBcdGZhZGVkX2dyZWVuOiBcIiM3OTc0MGVcIixcbi8vIFx0ZmFkZWRfeWVsbG93OiBcIiNiNTc2MTRcIixcbi8vIFx0ZmFkZWRfYmx1ZTogXCIjMDc2Njc4XCIsXG4vLyBcdGZhZGVkX3B1cnBsZTogXCIjOGYzZjcxXCIsXG4vLyBcdGZhZGVkX2FxdWE6IFwiIzQyN2I1OFwiLFxuLy8gXHRmYWRlZF9vcmFuZ2U6IFwiI2FmM2EwM1wiLFxuLy8gfTtcbi8vIGNvbnN0IE5PUkQ6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcblxuLy8gfTtcbi8vIGNvbnN0IERSQUNVTEE6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcblxuLy8gfTtcblxuLy8gVGhlbWUgQ3JlYXRpb25cbmNvbnN0IERFRkFVTFRfVEhFTUU6IENvZGVTdHlsZXJUaGVtZSA9IHtcblx0c2V0dGluZ3M6IFRIRU1FX0RFRkFVTFRfU0VUVElOR1MsXG5cdGNvbG91cnM6IHtcblx0XHRsaWdodDogVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUyxcblx0XHRkYXJrOiBUSEVNRV9GQUxMQkFDS19DT0xPVVJTLFxuXHR9LFxufTtcbmNvbnN0IFNPTEFSSVpFRF9USEVNRTogQ29kZVN0eWxlclRoZW1lID0ge1xuXHRzZXR0aW5nczogVEhFTUVfREVGQVVMVF9TRVRUSU5HUyxcblx0Y29sb3Vyczoge1xuXHRcdGxpZ2h0OiB7XG5cdFx0XHRjb2RlYmxvY2s6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdH0sXG5cdFx0XHRndXR0ZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UyLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjOGM4YzhjXCIsXG5cdFx0XHR9LFxuXHRcdFx0aGVhZGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiI0Q1Q0NCNFwiLFxuXHRcdFx0XHR0aXRsZToge1xuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzg2NjcwNFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiI0I4QjVBQVwiLFxuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiNFREQ0ODlcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMixcblx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNjA0NjA2MzNcIixcblx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjRTlERkJBXCIsXG5cdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG5cdFx0XHR9LFxuXHRcdFx0aW5saW5lOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuXHRcdFx0fSxcblx0XHRcdGFkdmFuY2VkOiB7XG5cdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRhcms6IHtcblx0XHRcdGNvZGVibG9jazoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdH0sXG5cdFx0XHRndXR0ZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UwMixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzRjNGM0Y1wiLFxuXHRcdFx0fSxcblx0XHRcdGhlYWRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwYTQ1NTRcIixcblx0XHRcdFx0dGl0bGU6IHtcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNkYWRhZGFcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwMDgwODBcIixcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGluZUNvbG91cjogXCIjNDZjY2VkXCIsXG5cdFx0XHR9LFxuXHRcdFx0aGlnaGxpZ2h0czoge1xuXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAyLFxuXHRcdFx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIiM0NjhlZWIzM1wiLFxuXHRcdFx0XHRkZWZhdWx0Q29sb3VyOiBcIiMwNTRiNWNcIixcblx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcblx0XHRcdH0sXG5cdFx0XHRpbmxpbmU6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UwMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuXHRcdFx0fSxcblx0XHRcdGFkdmFuY2VkOiB7XG5cdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0XHRcdH1cblx0XHR9LFxuXHR9LFxufTtcbi8vIGNvbnN0IE5PUkRfVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBEUkFDVUxBX1RIRU1FID0ge1xuXG4vLyB9O1xuLy8gY29uc3QgQ0FUUFVDQ0lOX1RIRU1FID0ge1xuXG4vLyB9O1xuLy8gY29uc3QgR1JVVkJPWF9USEVNRSA9IHtcbi8vIFx0c2V0dGluZ3M6IFRIRU1FX0RFRkFVTFRfU0VUVElOR1MsXG4vLyBcdGNvbG91cnM6IHtcbi8vIFx0XHRsaWdodDoge1xuLy8gXHRcdFx0Y29kZWJsb2NrOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1gubGlnaHQwLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRndXR0ZXI6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5saWdodDEsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzZjNmM2Y1wiLFxuLy8gXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiM4YzhjOGNcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRoZWFkZXI6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjRDVDQ0I0XCIsXG4vLyBcdFx0XHRcdHRpdGxlOiB7XG4vLyBcdFx0XHRcdFx0dGV4dENvbG91cjogXCIjODY2NzA0XCIsXG4vLyBcdFx0XHRcdH0sXG4vLyBcdFx0XHRcdGxhbmd1YWdlVGFnOiB7XG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjQjhCNUFBXCIsXG4vLyBcdFx0XHRcdFx0dGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG4vLyBcdFx0XHRcdH0sXG4vLyBcdFx0XHRcdGxpbmVDb2xvdXI6IFwiI0VERDQ4OVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhpZ2hsaWdodHM6IHtcbi8vIFx0XHRcdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogR1JVVkJPWC5saWdodDEsXG4vLyBcdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzYwNDYwNjMzXCIsXG4vLyBcdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiI0U5REZCQVwiLFxuLy8gXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGlubGluZToge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MCxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGFkdmFuY2VkOiB7XG4vLyBcdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcbi8vIFx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcbi8vIFx0XHRcdH1cbi8vIFx0XHR9LFxuLy8gXHRcdGRhcms6IHtcbi8vIFx0XHRcdGNvZGVibG9jazoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmswLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRndXR0ZXI6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5kYXJrMSxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzRjNGM0Y1wiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhlYWRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwYTQ1NTRcIixcbi8vIFx0XHRcdFx0dGl0bGU6IHtcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNkYWRhZGFcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwMDgwODBcIixcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGluZUNvbG91cjogXCIjNDZjY2VkXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGlnaGxpZ2h0czoge1xuLy8gXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBHUlVWQk9YLmRhcmsxLFxuLy8gXHRcdFx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIiM0NjhlZWIzM1wiLFxuLy8gXHRcdFx0XHRkZWZhdWx0Q29sb3VyOiBcIiMwNTRiNWNcIixcbi8vIFx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRpbmxpbmU6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5kYXJrMCxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGFkdmFuY2VkOiB7XG4vLyBcdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcbi8vIFx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcbi8vIFx0XHRcdH1cbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gfTtcblxuZXhwb3J0IGNvbnN0IElOQlVJTFRfVEhFTUVTOiBSZWNvcmQ8c3RyaW5nLENvZGVTdHlsZXJUaGVtZT4gPSB7XG5cdFwiRGVmYXVsdFwiOiBERUZBVUxUX1RIRU1FLFxuXHRcIlNvbGFyaXplZFwiOiBTT0xBUklaRURfVEhFTUUsXG59O1xuXG4vLyBEZWZhdWx0IFZhbHVlc1xuZXhwb3J0IGNvbnN0IEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMgPSBcInB5dGhvbiB0aXRsZTpmb29cIjtcbmV4cG9ydCBjb25zdCBFWEFNUExFX0NPREVCTE9DS19DT05URU5UID0gXCJwcmludChcXFwiVGhpcyBsaW5lIGlzIHZlcnkgbG9uZyBhbmQgc2hvdWxkIGJlIHVzZWQgYXMgYW4gZXhhbXBsZSBmb3IgaG93IHRoZSBwbHVnaW4gZGVhbHMgd2l0aCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyB2ZXJ5IGxvbmcgbGluZXMgZ2l2ZW4gdGhlIGNob2ljZSBvZiBjb2RlYmxvY2sgcGFyYW1ldGVycyBhbmQgc2V0dGluZ3MuXFxcIilcXG5wcmludChcXFwiVGhpcyBsaW5lIGlzIGhpZ2hsaWdodGVkLlxcXCIpXCI7XG5leHBvcnQgY29uc3QgRVhBTVBMRV9JTkxJTkVfQ09ERSA9IFwie3B5dGhvbiBpY29uIHRpdGxlOmZvb30gcHJpbnQoXFxcIlRoaXMgaXMgaW5saW5lIGNvZGVcXFwiKVwiO1xuZXhwb3J0IGNvbnN0IEVYQ0xVREVEX0xBTkdVQUdFUyA9IFwiYWQtKiwgcmVmZXJlbmNlXCI7XG5leHBvcnQgY29uc3QgV0hJVEVMSVNUX0NPREVCTE9DS1MgPSBcInJ1bi0qLCBpbmNsdWRlXCI7XG5cbi8vIFBsdWdpbiBkZWZhdWx0IHNldHRpbmdzXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVRUSU5HUzogQ29kZVN0eWxlclNldHRpbmdzID0ge1xuXHR0aGVtZXM6IHN0cnVjdHVyZWRDbG9uZShJTkJVSUxUX1RIRU1FUyksXG5cdHNlbGVjdGVkVGhlbWU6IFwiRGVmYXVsdFwiLFxuXHRjdXJyZW50VGhlbWU6IHN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1RIRU1FKSxcblx0bmV3VGhlbWU6IFwiXCIsXG5cdG5ld0hpZ2hsaWdodDogXCJcIixcblx0ZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnM6IEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMsXG5cdGV4YW1wbGVDb2RlYmxvY2tDb250ZW50OiBFWEFNUExFX0NPREVCTE9DS19DT05URU5ULFxuXHRleGFtcGxlSW5saW5lQ29kZTogRVhBTVBMRV9JTkxJTkVfQ09ERSxcblx0ZGVjb3JhdGVQcmludDogdHJ1ZSxcblx0ZXhjbHVkZWRMYW5ndWFnZXM6IEVYQ0xVREVEX0xBTkdVQUdFUyxcblx0cHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdDogV0hJVEVMSVNUX0NPREVCTE9DS1MsXG5cdHJlZGlyZWN0TGFuZ3VhZ2VzOiB7fSxcblx0dmVyc2lvbjogXCIxLjEuNFwiLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTZXR0aW5ncyhzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0aWYgKHR5cGVvZiBzZXR0aW5ncz8udmVyc2lvbiA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gc2V0dGluZ3NDbGVhcigpO1xuXHR3aGlsZSAoc2VtdmVyTmV3ZXIoREVGQVVMVF9TRVRUSU5HUy52ZXJzaW9uLHNldHRpbmdzLnZlcnNpb24pKSB7XG5cdFx0aWYgKHNldHRpbmdzLnZlcnNpb24gaW4gc2V0dGluZ3NVcGRhdGVycylcblx0XHRcdHNldHRpbmdzID0gc2V0dGluZ3NVcGRhdGVyc1tzZXR0aW5ncy52ZXJzaW9uXShzZXR0aW5ncyk7XG5cdFx0ZWxzZVxuXHRcdFx0c2V0dGluZ3MgPSBzZXR0aW5nc0NsZWFyKCk7XG5cdH1cblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2VtdmVyTmV3ZXIobmV3VmVyc2lvbjogc3RyaW5nLCBvbGRWZXJzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIG5ld1ZlcnNpb24ubG9jYWxlQ29tcGFyZShvbGRWZXJzaW9uLCB1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSB9KSA9PT0gMTtcbn1cbmZ1bmN0aW9uIHNldHRpbmdzVmVyc2lvblVwZGF0ZShzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzLCB0aGVtZVVwZGF0ZXI6ICh0aGVtZTogQ29kZVN0eWxlclRoZW1lKT0+Q29kZVN0eWxlclRoZW1lID0gKHRoZW1lKT0+dGhlbWUsIG90aGVyU2V0dGluZ3NVcGRhdGVyOiAoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk9PkNvZGVTdHlsZXJTZXR0aW5ncyA9IChzZXR0aW5ncyk9PnNldHRpbmdzLCByZWRpcmVjdExhbmd1YWdlc1VwZGF0ZXI6IChyZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4pPT5SZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9PiA9IChyZWRpcmVjdExhbmd1YWdlcyk9PnJlZGlyZWN0TGFuZ3VhZ2VzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0Zm9yIChjb25zdCBbbmFtZSwgdGhlbWVdIG9mIE9iamVjdC5lbnRyaWVzKHNldHRpbmdzLnRoZW1lcykpIHtcblx0XHRzZXR0aW5ncy50aGVtZXNbbmFtZV0gPSB0aGVtZVVwZGF0ZXIodGhlbWUpO1xuXHR9XG5cdHNldHRpbmdzLmN1cnJlbnRUaGVtZSA9IHN0cnVjdHVyZWRDbG9uZShzZXR0aW5ncy50aGVtZXNbc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0pO1xuXHRzZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyA9IHJlZGlyZWN0TGFuZ3VhZ2VzVXBkYXRlcihzZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyk7XG5cdHNldHRpbmdzID0gb3RoZXJTZXR0aW5nc1VwZGF0ZXIoc2V0dGluZ3MpO1xuXHRzZXR0aW5ncy52ZXJzaW9uID0gT2JqZWN0LmtleXMoc2V0dGluZ3NVcGRhdGVycykuZmluZCgodmFsdWUsaW5kZXgsYXJyYXkpPT5hcnJheT8uW2luZGV4LTFdPT09c2V0dGluZ3MudmVyc2lvbikgPz8gXCIxLjAuMFwiO1xuXHRyZXR1cm4gc2V0dGluZ3M7XG59XG5mdW5jdGlvbiBzZXR0aW5nc1ByZXNlcnZlKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpOiBDb2RlU3R5bGVyU2V0dGluZ3Mge1xuXHRzZXR0aW5ncy52ZXJzaW9uID0gT2JqZWN0LmtleXMoc2V0dGluZ3NVcGRhdGVycykuZmluZCgodmFsdWUsaW5kZXgsYXJyYXkpPT5hcnJheT8uW2luZGV4LTFdPT09c2V0dGluZ3MudmVyc2lvbikgPz8gXCIxLjAuMFwiO1xuXHRyZXR1cm4gc2V0dGluZ3M7XG59XG5mdW5jdGlvbiBzZXR0aW5nc0NsZWFyKCk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdHJldHVybiBERUZBVUxUX1NFVFRJTkdTO1xufVxuXG5jb25zdCBzZXR0aW5nc1VwZGF0ZXJzOiBSZWNvcmQ8c3RyaW5nLChzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKT0+Q29kZVN0eWxlclNldHRpbmdzPiA9IHtcblx0XCIxLjAuMFwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC4xXCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjJcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuM1wiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC40XCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjVcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuNlwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC43XCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4wLjhcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjAuOVwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMC4xMFwiOiAoc2V0dGluZ3MpPT5zZXR0aW5nc1ZlcnNpb25VcGRhdGUoc2V0dGluZ3MsKHRoZW1lKT0+e1xuXHRcdHRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSA9IHRydWU7XG5cdFx0cmV0dXJuIHRoZW1lO1xuXHR9LChzZXR0aW5ncyk9PnsvL0B0cy1leHBlY3QtZXJyb3IgT2xkZXIgaW50ZXJmYWNlIHZlcnNpb25zXG5cdFx0ZGVsZXRlIHNldHRpbmdzLnNwZWNpYWxMYW5ndWFnZXM7XG5cdFx0cmV0dXJuIHNldHRpbmdzO1xuXHR9KSxcblx0XCIxLjAuMTFcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuMFwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS4xXCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjJcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuM1wiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS40XCI6IHNldHRpbmdzUHJlc2VydmUsXG59O1xuXG4vLyBDb25zdGFudHNcbmV4cG9ydCBjb25zdCBGT0xEX1BMQUNFSE9MREVSID0gXCJGb2xkZWQgQ29kZVwiO1xuZXhwb3J0IGNvbnN0IFBBUkFNRVRFUlMgPSBbXCJ0aXRsZVwiLFwiZm9sZFwiLFwibG5cIixcIndyYXBcIixcInVud3JhcFwiLFwiaWdub3JlXCJdO1xuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fTEVOR1RIID0gMjQwOyAvLyAyNDBtc1xuZXhwb3J0IGNvbnN0IFNQRUNJQUxfTEFOR1VBR0VTID0gW1wiXnJlZmVyZW5jZSRcIixcIl5mb29mb29cIixcIl5wcmV2aWV3JFwiLFwiXmluY2x1ZGUkXCIsXCJeb3V0cHV0JFwiLFwiXnJ1bi0uKyRcIl07XG5leHBvcnQgY29uc3QgU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVggPSBcIkBDb2RlLVN0eWxlci1TZXR0aW5nczpcIjtcbmV4cG9ydCBjb25zdCBMT0NBTF9QUkVGSVggPSBcIkAvXCI7XG5leHBvcnQgY29uc3QgUkVGRVJFTkNFX0NPREVCTE9DSyA9IFwicmVmZXJlbmNlXCI7XG5leHBvcnQgY29uc3QgRVhURVJOQUxfUkVGRVJFTkNFX1BBVEggPSBcIi9wbHVnaW5zL2NvZGUtc3R5bGVyL3JlZmVyZW5jZS1maWxlcy9cIjtcbmV4cG9ydCBjb25zdCBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVggPSBcIi1pbmZvLmpzb25cIjtcbmV4cG9ydCBjb25zdCBHSVRfSUNPTlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG5cdFwiYnJhbmNoXCI6IFwiJiN4ZTBhMDtcIixcblx0XCJ0cmVlXCI6IFwiJiN4ZWFmYztcIiwgLy8gY29tbWl0XG59O1xuZXhwb3J0IGNvbnN0IFNJVEVfSUNPTlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG5cdFwiZ2l0aHViXCI6IFwiJiN4ZjA5YjtcIixcblx0XCJnaXRsYWJcIjogXCImI3hlNjVjO1wiLFxuXHRcImJpdGJ1Y2tldFwiOiBcIiYjeGU3MDM7XCIsXG5cdFwic291cmNlZm9yZ2VcIjogXCImI3hmMDIzODtcIixcblx0XCJnZW5lcmljXCI6IFwiJiN4ZjA1OWY7XCIsXG59O1xuZXhwb3J0IGNvbnN0IFNUQU1QX0lDT04gPSBcIiYjeGYwMGYwO1wiO1xuZXhwb3J0IGNvbnN0IFVQREFURV9JQ09OID0gXCImI3hlMzQ4O1wiO1xuXG5jb25zdCBQUklTTV9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBQcmlzbSBMYW5ndWFnZXM6IGh0dHBzOi8vcHJpc21qcy5jb20vcGx1Z2lucy9zaG93LWxhbmd1YWdlL1xuXHQvLyBcIm5vbmVcIjogXCJQbGFpbiB0ZXh0XCIsIC8vIE5PVEU6IE9ic2lkaWFuIHVzZXMgdGhpcyBmb3IgY29kZWJsb2NrcyB3aXRob3V0IGxhbmd1YWdlIG5hbWVzXG5cdFwicGxhaW5cIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwicGxhaW50ZXh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInRleHRcIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwidHh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcImh0bWxcIjogXCJIVE1MXCIsXG5cdFwieG1sXCI6IFwiWE1MXCIsXG5cdFwic3ZnXCI6IFwiU1ZHXCIsXG5cdFwibWF0aG1sXCI6IFwiTWF0aE1MXCIsXG5cdFwic3NtbFwiOiBcIlNTTUxcIixcblx0XCJyc3NcIjogXCJSU1NcIixcblx0XCJjc3NcIjogXCJDU1NcIixcblx0XCJjbGlrZVwiOiBcIkMtbGlrZVwiLFxuXHRcImpzXCI6IFwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjogXCJBQkFQXCIsXG5cdFwiYWJuZlwiOiBcIkFCTkZcIixcblx0XCJhbFwiOiBcIkFMXCIsXG5cdFwiYW50bHI0XCI6IFwiQU5UTFI0XCIsXG5cdFwiZzRcIjogXCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6IFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIixcblx0XCJhcGxcIjogXCJBUExcIixcblx0XCJhcWxcIjogXCJBUUxcIixcblx0XCJpbm9cIjogXCJBcmR1aW5vXCIsXG5cdFwiYXJmZlwiOiBcIkFSRkZcIixcblx0XCJhcm1hc21cIjogXCJBUk0gQXNzZW1ibHlcIixcblx0XCJhcm0tYXNtXCI6IFwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJ0XCI6IFwiQXJ0dXJvXCIsXG5cdFwiYXNjaWlkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOiBcIkFTUC5ORVQgKEMjKVwiLFxuXHRcImFzbTY1MDJcIjogXCI2NTAyIEFzc2VtYmx5XCIsXG5cdFwiYXNtYXRtZWxcIjogXCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6IFwiQXV0b0hvdGtleVwiLFxuXHRcImF1dG9pdFwiOiBcIkF1dG9JdFwiLFxuXHRcImF2aXN5bnRoXCI6IFwiQXZpU3ludGhcIixcblx0XCJhdnNcIjogXCJBdmlTeW50aFwiLFxuXHRcImF2cm8taWRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhdmRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhd2tcIjogXCJBV0tcIixcblx0XCJnYXdrXCI6IFwiR0FXS1wiLFxuXHRcInNoXCI6IFwiU2hlbGxcIixcblx0XCJiYXNpY1wiOiBcIkJBU0lDXCIsXG5cdFwiYmJjb2RlXCI6IFwiQkJjb2RlXCIsXG5cdFwiYmJqXCI6IFwiQkJqXCIsXG5cdFwiYm5mXCI6IFwiQk5GXCIsXG5cdFwicmJuZlwiOiBcIlJCTkZcIixcblx0XCJicW5cIjogXCJCUU5cIixcblx0XCJic2xcIjogXCJCU0wgKDFDOkVudGVycHJpc2UpXCIsXG5cdFwib3NjcmlwdFwiOiBcIk9uZVNjcmlwdFwiLFxuXHRcImNzaGFycFwiOiBcIkMjXCIsXG5cdFwiY3NcIjogXCJDI1wiLFxuXHRcImRvdG5ldFwiOiBcIkMjXCIsXG5cdFwiY3BwXCI6IFwiQysrXCIsXG5cdFwiY2ZzY3JpcHRcIjogXCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOiBcIkNGU2NyaXB0XCIsXG5cdFwiY2lsXCI6IFwiQ0lMXCIsXG5cdFwiY2lsa2NcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrLWNcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6IFwiQ2lsay9DKytcIixcblx0XCJjaWxrLWNwcFwiOiBcIkNpbGsvQysrXCIsXG5cdFwiY2lsa1wiOiBcIkNpbGsvQysrXCIsXG5cdFwiY21ha2VcIjogXCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6IFwiQ09CT0xcIixcblx0XCJjb2ZmZWVcIjogXCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jXCI6IFwiQ29uY3VybmFzXCIsXG5cdFwiY3NwXCI6IFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjc3MtZXh0cmFzXCI6IFwiQ1NTIEV4dHJhc1wiLFxuXHRcImNzdlwiOiBcIkNTVlwiLFxuXHRcImN1ZVwiOiBcIkNVRVwiLFxuXHRcImRhdGF3ZWF2ZVwiOiBcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOiBcIkRBWFwiLFxuXHRcImRqYW5nb1wiOiBcIkRqYW5nby9KaW5qYTJcIixcblx0XCJqaW5qYTJcIjogXCJEamFuZ28vSmluamEyXCIsXG5cdFwiZG5zLXpvbmUtZmlsZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkb2NrZXJmaWxlXCI6IFwiRG9ja2VyXCIsXG5cdFwiZG90XCI6IFwiRE9UIChHcmFwaHZpeilcIixcblx0XCJndlwiOiBcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZWJuZlwiOiBcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjogXCJFZGl0b3JDb25maWdcIixcblx0XCJlanNcIjogXCJFSlNcIixcblx0XCJldGx1YVwiOiBcIkVtYmVkZGVkIEx1YSB0ZW1wbGF0aW5nXCIsXG5cdFwiZXJiXCI6IFwiRVJCXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHN4XCI6IFwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc1wiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjogXCJGI1wiLFxuXHRcImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlc1wiOiBcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZ0bFwiOiBcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIixcblx0XCJnbWxcIjogXCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOiBcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhcFwiOiBcIkdBUCAoQ0FTKVwiLFxuXHRcImdjb2RlXCI6IFwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjogXCJHRFNjcmlwdFwiLFxuXHRcImdlZGNvbVwiOiBcIkdFRENPTVwiLFxuXHRcImdldHRleHRcIjogXCJnZXR0ZXh0XCIsXG5cdFwicG9cIjogXCJnZXR0ZXh0XCIsXG5cdFwiZ2xzbFwiOiBcIkdMU0xcIixcblx0XCJnblwiOiBcIkdOXCIsXG5cdFwiZ25pXCI6IFwiR05cIixcblx0XCJsaW5rZXItc2NyaXB0XCI6IFwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJsZFwiOiBcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ28tbW9kdWxlXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ28tbW9kXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ3JhcGhxbFwiOiBcIkdyYXBoUUxcIixcblx0XCJoYnNcIjogXCJIYW5kbGViYXJzXCIsXG5cdFwiaHNcIjogXCJIYXNrZWxsXCIsXG5cdFwiaGNsXCI6IFwiSENMXCIsXG5cdFwiaGxzbFwiOiBcIkhMU0xcIixcblx0XCJodHRwXCI6IFwiSFRUUFwiLFxuXHRcImhwa3BcIjogXCJIVFRQIFB1YmxpYy1LZXktUGluc1wiLFxuXHRcImhzdHNcIjogXCJIVFRQIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIixcblx0XCJpY2hpZ29qYW1cIjogXCJJY2hpZ29KYW1cIixcblx0XCJpY3UtbWVzc2FnZS1mb3JtYXRcIjogXCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJcIjogXCJJZHJpc1wiLFxuXHRcImlnbm9yZVwiOiBcIi5pZ25vcmVcIixcblx0XCJnaXRpZ25vcmVcIjogXCIuZ2l0aWdub3JlXCIsXG5cdFwiaGdpZ25vcmVcIjogXCIuaGdpZ25vcmVcIixcblx0XCJucG1pZ25vcmVcIjogXCIubnBtaWdub3JlXCIsXG5cdFwiaW5mb3JtN1wiOiBcIkluZm9ybSA3XCIsXG5cdFwiamF2YWRvY1wiOiBcIkphdmFEb2NcIixcblx0XCJqYXZhZG9jbGlrZVwiOiBcIkphdmFEb2MtbGlrZVwiLFxuXHRcImphdmFzdGFja3RyYWNlXCI6IFwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpxXCI6IFwiSlFcIixcblx0XCJqc2RvY1wiOiBcIkpTRG9jXCIsXG5cdFwianMtZXh0cmFzXCI6IFwiSlMgRXh0cmFzXCIsXG5cdFwianNvblwiOiBcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOiBcIldlYiBBcHAgTWFuaWZlc3RcIixcblx0XCJqc29uNVwiOiBcIkpTT041XCIsXG5cdFwianNvbnBcIjogXCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOiBcIkpTIHN0YWNrIHRyYWNlXCIsXG5cdFwianMtdGVtcGxhdGVzXCI6IFwiSlMgVGVtcGxhdGVzXCIsXG5cdFwia2VlcGFsaXZlZFwiOiBcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia3RzXCI6IFwiS290bGluIFNjcmlwdFwiLFxuXHRcImt0XCI6IFwiS290bGluXCIsXG5cdFwia3VtaXJcIjogXCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOiBcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwibGF0ZXhcIjogXCJMYVRlWFwiLFxuXHRcInRleFwiOiBcIlRlWFwiLFxuXHRcImNvbnRleHRcIjogXCJDb25UZVh0XCIsXG5cdFwibGlseXBvbmRcIjogXCJMaWx5UG9uZFwiLFxuXHRcImx5XCI6IFwiTGlseVBvbmRcIixcblx0XCJlbWFjc1wiOiBcIkxpc3BcIixcblx0XCJlbGlzcFwiOiBcIkxpc3BcIixcblx0XCJlbWFjcy1saXNwXCI6IFwiTGlzcFwiLFxuXHRcImxsdm1cIjogXCJMTFZNIElSXCIsXG5cdFwibG9nXCI6IFwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6IFwiTE9MQ09ERVwiLFxuXHRcIm1hZ21hXCI6IFwiTWFnbWEgKENBUylcIixcblx0XCJtZFwiOiBcIk1hcmtkb3duXCIsXG5cdFwibWFya3VwLXRlbXBsYXRpbmdcIjogXCJNYXJrdXAgdGVtcGxhdGluZ1wiLFxuXHRcIm1hdGxhYlwiOiBcIk1BVExBQlwiLFxuXHRcIm1heHNjcmlwdFwiOiBcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOiBcIk1FTFwiLFxuXHRcIm1ldGFmb250XCI6IFwiTUVUQUZPTlRcIixcblx0XCJtb25nb2RiXCI6IFwiTW9uZ29EQlwiLFxuXHRcIm1vb25cIjogXCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOiBcIk4xUUxcIixcblx0XCJuNGpzXCI6IFwiTjRKU1wiLFxuXHRcIm40anNkXCI6IFwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOiBcIk5hbmQgVG8gVGV0cmlzIEhETFwiLFxuXHRcIm5hbmlzY3JpcHRcIjogXCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFuaVwiOiBcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6IFwiTkFTTVwiLFxuXHRcIm5lb25cIjogXCJORU9OXCIsXG5cdFwibmdpbnhcIjogXCJuZ2lueFwiLFxuXHRcIm5zaXNcIjogXCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2JqY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2NhbWxcIjogXCJPQ2FtbFwiLFxuXHRcIm9wZW5jbFwiOiBcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJxYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJwYXJpZ3BcIjogXCJQQVJJL0dQXCIsXG5cdFwib2JqZWN0cGFzY2FsXCI6IFwiT2JqZWN0IFBhc2NhbFwiLFxuXHRcInBzbFwiOiBcIlBBVFJPTCBTY3JpcHRpbmcgTGFuZ3VhZ2VcIixcblx0XCJwY2F4aXNcIjogXCJQQy1BeGlzXCIsXG5cdFwicHhcIjogXCJQQy1BeGlzXCIsXG5cdFwicGVvcGxlY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwaHBcIjogXCJQSFBcIixcblx0XCJwaHBkb2NcIjogXCJQSFBEb2NcIixcblx0XCJwaHAtZXh0cmFzXCI6IFwiUEhQIEV4dHJhc1wiLFxuXHRcInBsYW50LXVtbFwiOiBcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjogXCJQbGFudFVNTFwiLFxuXHRcInBsc3FsXCI6IFwiUEwvU1FMXCIsXG5cdFwicG93ZXJxdWVyeVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJtc2NyaXB0XCI6IFwiUG93ZXJRdWVyeVwiLFxuXHRcInBvd2Vyc2hlbGxcIjogXCJQb3dlclNoZWxsXCIsXG5cdFwicHJvbXFsXCI6IFwiUHJvbVFMXCIsXG5cdFwicHJvcGVydGllc1wiOiBcIi5wcm9wZXJ0aWVzXCIsXG5cdFwicHJvdG9idWZcIjogXCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVyZWJhc2ljXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicGJmYXNtXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicHVyc1wiOiBcIlB1cmVTY3JpcHRcIixcblx0XCJweVwiOiBcIlB5dGhvblwiLFxuXHRcInFzaGFycFwiOiBcIlEjXCIsXG5cdFwicXNcIjogXCJRI1wiLFxuXHRcInFcIjogXCJRIChrZGIrIGRhdGFiYXNlKVwiLFxuXHRcInFtbFwiOiBcIlFNTFwiLFxuXHRcInJrdFwiOiBcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOiBcIlJhem9yIEMjXCIsXG5cdFwicmF6b3JcIjogXCJSYXpvciBDI1wiLFxuXHRcImpzeFwiOiBcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOiBcIlJlYWN0IFRTWFwiLFxuXHRcInJlbnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicmVzXCI6IFwiUmVTY3JpcHRcIixcblx0XCJyZXN0XCI6IFwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOiBcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJvYm90XCI6IFwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicmJcIjogXCJSdWJ5XCIsXG5cdFwic2FzXCI6IFwiU0FTXCIsXG5cdFwic2Fzc1wiOiBcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOiBcIlNhc3MgKFNDU1MpXCIsXG5cdFwic2hlbGwtc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6IFwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoZWxsc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzbWxcIjogXCJTTUxcIixcblx0XCJzbWxualwiOiBcIlNNTC9OSlwiLFxuXHRcInNvbGlkaXR5XCI6IFwiU29saWRpdHkgKEV0aGVyZXVtKVwiLFxuXHRcInNvbFwiOiBcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2x1dGlvbi1maWxlXCI6IFwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOiBcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzb3lcIjogXCJTb3kgKENsb3N1cmUgVGVtcGxhdGUpXCIsXG5cdFwic3BhcnFsXCI6IFwiU1BBUlFMXCIsXG5cdFwicnFcIjogXCJTUEFSUUxcIixcblx0XCJzcGx1bmstc3BsXCI6IFwiU3BsdW5rIFNQTFwiLFxuXHRcInNxZlwiOiBcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiLFxuXHRcInNxbFwiOiBcIlNRTFwiLFxuXHRcInN0YXRhXCI6IFwiU3RhdGEgQWRvXCIsXG5cdFwiaWVjc3RcIjogXCJTdHJ1Y3R1cmVkIFRleHQgKElFQyA2MTEzMS0zKVwiLFxuXHRcInN1cGVyY29sbGlkZXJcIjogXCJTdXBlckNvbGxpZGVyXCIsXG5cdFwic2NsYW5nXCI6IFwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInN5c3RlbWRcIjogXCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjogXCJUNCB0ZW1wbGF0aW5nXCIsXG5cdFwidDQtY3NcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDRcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCIsXG5cdFwidGFwXCI6IFwiVEFQXCIsXG5cdFwidHQyXCI6IFwiVGVtcGxhdGUgVG9vbGtpdCAyXCIsXG5cdFwidG9tbFwiOiBcIlRPTUxcIixcblx0XCJ0cmlja2xlXCI6IFwidHJpY2tsZVwiLFxuXHRcInRyb3lcIjogXCJ0cm95XCIsXG5cdFwidHJpZ1wiOiBcIlRyaUdcIixcblx0XCJ0c1wiOiBcIlR5cGVTY3JpcHRcIixcblx0XCJ0c2NvbmZpZ1wiOiBcIlRTQ29uZmlnXCIsXG5cdFwidXNjcmlwdFwiOiBcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVjXCI6IFwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidW9yYXpvclwiOiBcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOiBcIlVSSVwiLFxuXHRcInVybFwiOiBcIlVSTFwiLFxuXHRcInZibmV0XCI6IFwiVkIuTmV0XCIsXG5cdFwidmhkbFwiOiBcIlZIRExcIixcblx0XCJ2aW1cIjogXCJ2aW1cIixcblx0XCJ2aXN1YWwtYmFzaWNcIjogXCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YmFcIjogXCJWQkFcIixcblx0XCJ2YlwiOiBcIlZpc3VhbCBCYXNpY1wiLFxuXHRcIndhc21cIjogXCJXZWJBc3NlbWJseVwiLFxuXHRcIndlYi1pZGxcIjogXCJXZWIgSURMXCIsXG5cdFwid2ViaWRsXCI6IFwiV2ViIElETFwiLFxuXHRcIndnc2xcIjogXCJXR1NMXCIsXG5cdFwid2lraVwiOiBcIldpa2kgbWFya3VwXCIsXG5cdFwid29sZnJhbVwiOiBcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJuYlwiOiBcIk1hdGhlbWF0aWNhIE5vdGVib29rXCIsXG5cdFwid2xcIjogXCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwieGVvcmFjdWJlXCI6IFwiWGVvcmFDdWJlXCIsXG5cdFwieG1sLWRvY1wiOiBcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOiBcIlhvam8gKFJFQUxiYXNpYylcIixcblx0XCJ4cXVlcnlcIjogXCJYUXVlcnlcIixcblx0XCJ5YW1sXCI6IFwiWUFNTFwiLFxuXHRcInltbFwiOiBcIllBTUxcIixcblx0XCJ5YW5nXCI6IFwiWUFOR1wiLFxufTtcbmNvbnN0IE1BTlVBTF9QUklTTV9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBNYW51YWxseSBnZW5lcmF0ZWQgbGlzdCBmcm9tIGh0dHBzOi8vcHJpc21qcy5jb20vICAtICAyOTcgbGFuZ3VhZ2VzXG5cdFwiY3NzXCI6XCJDU1NcIixcblx0XCJjbGlrZVwiOlwiQy1saWtlXCIsXG5cdFwiamF2YXNjcmlwdFwiOlwiSmF2YVNjcmlwdFwiLFxuXHRcImpzXCI6XCJKYXZhU2NyaXB0XCIsXG5cdFwiYWJhcFwiOlwiQUJBUFwiLFxuXHRcImFibmZcIjpcIkFCTkZcIixcblx0XCJhY3Rpb25zY3JpcHRcIjpcIkFjdGlvblNjcmlwdFwiLFxuXHRcImFkYVwiOlwiQWRhXCIsXG5cdFwiYWdkYVwiOlwiQWdkYVwiLFxuXHRcImFsXCI6XCJBTFwiLFxuXHRcImFudGxyNFwiOlwiQU5UTFI0XCIsXG5cdFwiZzRcIjpcIkFOVExSNFwiLFxuXHRcImFwYWNoZWNvbmZcIjpcIkFwYWNoZSBDb25maWd1cmF0aW9uXCIsXG5cdFwiYXBleFwiOlwiQXBleFwiLFxuXHRcImFwbFwiOlwiQVBMXCIsXG5cdFwiYXBwbGVzY3JpcHRcIjpcIkFwcGxlU2NyaXB0XCIsXG5cdFwiYXFsXCI6XCJBUUxcIixcblx0XCJhcmR1aW5vXCI6XCJBcmR1aW5vXCIsXG5cdFwiaW5vXCI6XCJBcmR1aW5vXCIsXG5cdFwiYXJmZlwiOlwiQVJGRlwiLFxuXHRcImFybWFzbVwiOlwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJtLWFzbVwiOlwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJ0dXJvXCI6XCJBcnR1cm9cIixcblx0XCJhcnRcIjpcIkFydHVyb1wiLFxuXHRcImFzY2lpZG9jXCI6XCJBc2NpaURvY1wiLFxuXHRcImFkb2NcIjpcIkFzY2lpRG9jXCIsXG5cdFwiYXNwbmV0XCI6XCJBU1AuTkVUIChDIylcIixcblx0XCJhc202NTAyXCI6XCI2NTAyIEFzc2VtYmx5XCIsXG5cdFwiYXNtYXRtZWxcIjpcIkF0bWVsIEFWUiBBc3NlbWJseVwiLFxuXHRcImF1dG9ob3RrZXlcIjpcIkF1dG9Ib3RrZXlcIixcblx0XCJhdXRvaXRcIjpcIkF1dG9JdFwiLFxuXHRcImF2aXN5bnRoXCI6XCJBdmlTeW50aFwiLFxuXHRcImF2c1wiOlwiQXZpU3ludGhcIixcblx0XCJhdnJvLWlkbFwiOlwiQXZybyBJRExcIixcblx0XCJhdmRsXCI6XCJBdnJvIElETFwiLFxuXHRcImF3a1wiOlwiQVdLXCIsXG5cdFwiZ2F3a1wiOlwiR0FXS1wiLFxuXHRcImJhc2hcIjpcIkJhc2hcIixcblx0XCJzaFwiOlwiU2hlbGxcIixcblx0XCJzaGVsbFwiOlwiU2hlbGxcIixcblx0XCJiYXNpY1wiOlwiQkFTSUNcIixcblx0XCJiYXRjaFwiOlwiQmF0Y2hcIixcblx0XCJiYmNvZGVcIjpcIkJCY29kZVwiLFxuXHRcInNob3J0Y29kZVwiOlwiQkJjb2RlXCIsXG5cdFwiYmJqXCI6XCJCQmpcIixcblx0XCJiaXJiXCI6XCJCaXJiXCIsXG5cdFwiYmlzb25cIjpcIkJpc29uXCIsXG5cdFwiYm5mXCI6XCJCTkZcIixcblx0XCJyYm5mXCI6XCJCTkZcIixcblx0XCJicW5cIjpcIkJRTlwiLFxuXHRcImJyYWluZnVja1wiOlwiQnJhaW5mdWNrXCIsXG5cdFwiYnJpZ2h0c2NyaXB0XCI6XCJCcmlnaHRTY3JpcHRcIixcblx0XCJicm9cIjpcIkJyb1wiLFxuXHRcImJzbFwiOlwiQlNMICgxQylcIixcblx0XCJvc2NyaXB0XCI6XCJCU0wgKDFDKVwiLFxuXHRcImNcIjpcIkNcIixcblx0XCJjc2hhcnBcIjpcIkMjXCIsXG5cdFwiY3NcIjpcIkMjXCIsXG5cdFwiZG90bmV0XCI6XCJDI1wiLFxuXHRcImNwcFwiOlwiQysrXCIsXG5cdFwiY2ZzY3JpcHRcIjpcIkNGU2NyaXB0XCIsXG5cdFwiY2ZjXCI6XCJDRlNjcmlwdFwiLFxuXHRcImNoYWlzY3JpcHRcIjpcIkNoYWlTY3JpcHRcIixcblx0XCJjaWxcIjpcIkNJTFwiLFxuXHRcImNpbGtjXCI6XCJDaWxrL0NcIixcblx0XCJjaWxrLWNcIjpcIkNpbGsvQ1wiLFxuXHRcImNpbGtjcHBcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2lsay1jcHBcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2lsa1wiOlwiQ2lsay9DKytcIixcblx0XCJjbG9qdXJlXCI6XCJDbG9qdXJlXCIsXG5cdFwiY21ha2VcIjpcIkNNYWtlXCIsXG5cdFwiY29ib2xcIjpcIkNPQk9MXCIsXG5cdFwiY29mZmVlc2NyaXB0XCI6XCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb2ZmZWVcIjpcIkNvZmZlZVNjcmlwdFwiLFxuXHRcImNvbmN1cm5hc1wiOlwiQ29uY3VybmFzXCIsXG5cdFwiY29uY1wiOlwiQ29uY3VybmFzXCIsXG5cdFwiY3NwXCI6XCJDb250ZW50LVNlY3VyaXR5LVBvbGljeVwiLFxuXHRcImNvb2tsYW5nXCI6XCJDb29rbGFuZ1wiLFxuXHRcImNvcVwiOlwiQ29xXCIsXG5cdFwiY3J5c3RhbFwiOlwiQ3J5c3RhbFwiLFxuXHRcImNzcy1leHRyYXNcIjpcIkNTUyBFeHRyYXNcIixcblx0XCJjc3ZcIjpcIkNTVlwiLFxuXHRcImN1ZVwiOlwiQ1VFXCIsXG5cdFwiY3lwaGVyXCI6XCJDeXBoZXJcIixcblx0XCJkXCI6XCJEXCIsXG5cdFwiZGFydFwiOlwiRGFydFwiLFxuXHRcImRhdGF3ZWF2ZVwiOlwiRGF0YVdlYXZlXCIsXG5cdFwiZGF4XCI6XCJEQVhcIixcblx0XCJkaGFsbFwiOlwiRGhhbGxcIixcblx0XCJkaWZmXCI6XCJEaWZmXCIsXG5cdFwiZGphbmdvXCI6XCJEamFuZ28vSmluamEyXCIsXG5cdFwiamluamEyXCI6XCJEamFuZ28vSmluamEyXCIsXG5cdFwiZG5zLXpvbmUtZmlsZVwiOlwiRE5TIHpvbmUgZmlsZVwiLFxuXHRcImRucy16b25lXCI6XCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG9ja2VyXCI6XCJEb2NrZXJcIixcblx0XCJkb2NrZXJmaWxlXCI6XCJEb2NrZXJcIixcblx0XCJkb3RcIjpcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZ3ZcIjpcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZWJuZlwiOlwiRUJORlwiLFxuXHRcImVkaXRvcmNvbmZpZ1wiOlwiRWRpdG9yQ29uZmlnXCIsXG5cdFwiZWlmZmVsXCI6XCJFaWZmZWxcIixcblx0XCJlanNcIjpcIkVKU1wiLFxuXHRcImV0YVwiOlwiRUpTXCIsXG5cdFwiZWxpeGlyXCI6XCJFbGl4aXJcIixcblx0XCJlbG1cIjpcIkVsbVwiLFxuXHRcImV0bHVhXCI6XCJFbWJlZGRlZCBMdWEgdGVtcGxhdGluZ1wiLFxuXHRcImVyYlwiOlwiRVJCXCIsXG5cdFwiZXJsYW5nXCI6XCJFcmxhbmdcIixcblx0XCJleGNlbC1mb3JtdWxhXCI6XCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwieGxzeFwiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc1wiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcImZzaGFycFwiOlwiRiNcIixcblx0XCJmYWN0b3JcIjpcIkZhY3RvclwiLFxuXHRcImZhbHNlXCI6XCJGYWxzZVwiLFxuXHRcImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlc1wiOlwiRmlyZXN0b3JlIHNlY3VyaXR5IHJ1bGVzXCIsXG5cdFwiZmxvd1wiOlwiRmxvd1wiLFxuXHRcImZvcnRyYW5cIjpcIkZvcnRyYW5cIixcblx0XCJmdGxcIjpcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIixcblx0XCJnbWxcIjpcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhbWVtYWtlcmxhbmd1YWdlXCI6XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYXBcIjpcIkdBUCAoQ0FTKVwiLFxuXHRcImdjb2RlXCI6XCJHLWNvZGVcIixcblx0XCJnZHNjcmlwdFwiOlwiR0RTY3JpcHRcIixcblx0XCJnZWRjb21cIjpcIkdFRENPTVwiLFxuXHRcImdldHRleHRcIjpcImdldHRleHRcIixcblx0XCJwb1wiOlwiZ2V0dGV4dFwiLFxuXHRcImdoZXJraW5cIjpcIkdoZXJraW5cIixcblx0XCJnaXRcIjpcIkdpdFwiLFxuXHRcImdsc2xcIjpcIkdMU0xcIixcblx0XCJnblwiOlwiR05cIixcblx0XCJnbmlcIjpcIkdOXCIsXG5cdFwibGlua2VyLXNjcmlwdFwiOlwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJsZFwiOlwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJnb1wiOlwiR29cIixcblx0XCJnby1tb2R1bGVcIjpcIkdvIG1vZHVsZVwiLFxuXHRcImdvLW1vZFwiOlwiR28gbW9kdWxlXCIsXG5cdFwiZ3JhZGxlXCI6XCJHcmFkbGVcIixcblx0XCJncmFwaHFsXCI6XCJHcmFwaFFMXCIsXG5cdFwiZ3Jvb3Z5XCI6XCJHcm9vdnlcIixcblx0XCJoYW1sXCI6XCJIYW1sXCIsXG5cdFwiaGFuZGxlYmFyc1wiOlwiSGFuZGxlYmFyc1wiLFxuXHRcImhic1wiOlwiSGFuZGxlYmFyc1wiLFxuXHRcIm11c3RhY2hlXCI6XCJIYW5kbGViYXJzXCIsXG5cdFwiaGFza2VsbFwiOlwiSGFza2VsbFwiLFxuXHRcImhzXCI6XCJIYXNrZWxsXCIsXG5cdFwiaGF4ZVwiOlwiSGF4ZVwiLFxuXHRcImhjbFwiOlwiSENMXCIsXG5cdFwiaGxzbFwiOlwiSExTTFwiLFxuXHRcImhvb25cIjpcIkhvb25cIixcblx0XCJodHRwXCI6XCJIVFRQXCIsXG5cdFwiaHBrcFwiOlwiSFRUUCBQdWJsaWMtS2V5LVBpbnNcIixcblx0XCJoc3RzXCI6XCJIVFRQIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIixcblx0XCJpY2hpZ29qYW1cIjpcIkljaGlnb0phbVwiLFxuXHRcImljb25cIjpcIkljb25cIixcblx0XCJpY3UtbWVzc2FnZS1mb3JtYXRcIjpcIklDVSBNZXNzYWdlIEZvcm1hdFwiLFxuXHRcImlkcmlzXCI6XCJJZHJpc1wiLFxuXHRcImlkclwiOlwiSWRyaXNcIixcblx0XCJpbmZvcm03XCI6XCJJbmZvcm0gN1wiLFxuXHRcImluaVwiOlwiSW5pXCIsXG5cdFwiaW9cIjpcIklvXCIsXG5cdFwialwiOlwiSlwiLFxuXHRcImphdmFcIjpcIkphdmFcIixcblx0XCJqYXZhZG9jXCI6XCJKYXZhRG9jXCIsXG5cdFwiamF2YWRvY2xpa2VcIjpcIkphdmFEb2MtbGlrZVwiLFxuXHRcImphdmFzdGFja3RyYWNlXCI6XCJKYXZhIHN0YWNrIHRyYWNlXCIsXG5cdFwiamV4bFwiOlwiSmV4bFwiLFxuXHRcImpvbGllXCI6XCJKb2xpZVwiLFxuXHRcImpxXCI6XCJKUVwiLFxuXHRcImpzZG9jXCI6XCJKU0RvY1wiLFxuXHRcImpzLWV4dHJhc1wiOlwiSlMgRXh0cmFzXCIsXG5cdFwianNvblwiOlwiSlNPTlwiLFxuXHRcIndlYm1hbmlmZXN0XCI6XCJKU09OXCIsXG5cdFwianNvbjVcIjpcIkpTT041XCIsXG5cdFwianNvbnBcIjpcIkpTT05QXCIsXG5cdFwianNzdGFja3RyYWNlXCI6XCJKUyBzdGFjayB0cmFjZVwiLFxuXHRcImpzLXRlbXBsYXRlc1wiOlwiSlMgVGVtcGxhdGVzXCIsXG5cdFwianVsaWFcIjpcIkp1bGlhXCIsXG5cdFwia2VlcGFsaXZlZFwiOlwiS2VlcGFsaXZlZCBDb25maWd1cmVcIixcblx0XCJrZXltYW5cIjpcIktleW1hblwiLFxuXHRcImtvdGxpblwiOlwiS290bGluXCIsXG5cdFwia3RcIjpcIktvdGxpblwiLFxuXHRcImt0c1wiOlwiS290bGluXCIsXG5cdFwia3VtaXJcIjpcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwia3VtXCI6XCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1c3RvXCI6XCJLdXN0b1wiLFxuXHRcImxhdGV4XCI6XCJMYVRlWFwiLFxuXHRcInRleFwiOlwiTGFUZVhcIixcblx0XCJjb250ZXh0XCI6XCJMYVRlWFwiLFxuXHRcImxhdHRlXCI6XCJMYXR0ZVwiLFxuXHRcImxlc3NcIjpcIkxlc3NcIixcblx0XCJsaWx5cG9uZFwiOlwiTGlseVBvbmRcIixcblx0XCJseVwiOlwiTGlseVBvbmRcIixcblx0XCJsaXF1aWRcIjpcIkxpcXVpZFwiLFxuXHRcImxpc3BcIjpcIkxpc3BcIixcblx0XCJlbWFjc1wiOlwiTGlzcFwiLFxuXHRcImVsaXNwXCI6XCJMaXNwXCIsXG5cdFwiZW1hY3MtbGlzcFwiOlwiTGlzcFwiLFxuXHRcImxpdmVzY3JpcHRcIjpcIkxpdmVTY3JpcHRcIixcblx0XCJsbHZtXCI6XCJMTFZNIElSXCIsXG5cdFwibG9nXCI6XCJMb2cgZmlsZVwiLFxuXHRcImxvbGNvZGVcIjpcIkxPTENPREVcIixcblx0XCJsdWFcIjpcIkx1YVwiLFxuXHRcIm1hZ21hXCI6XCJNYWdtYSAoQ0FTKVwiLFxuXHRcIm1ha2VmaWxlXCI6XCJNYWtlZmlsZVwiLFxuXHRcIm1hcmtkb3duXCI6XCJNYXJrZG93blwiLFxuXHRcIm1kXCI6XCJNYXJrZG93blwiLFxuXHRcIm1hcmt1cC10ZW1wbGF0aW5nXCI6XCJNYXJrdXAgdGVtcGxhdGluZ1wiLFxuXHRcIm1hdGFcIjpcIk1hdGFcIixcblx0XCJtYXRsYWJcIjpcIk1BVExBQlwiLFxuXHRcIm1heHNjcmlwdFwiOlwiTUFYU2NyaXB0XCIsXG5cdFwibWVsXCI6XCJNRUxcIixcblx0XCJtZXJtYWlkXCI6XCJNZXJtYWlkXCIsXG5cdFwibWV0YWZvbnRcIjpcIk1FVEFGT05UXCIsXG5cdFwibWl6YXJcIjpcIk1pemFyXCIsXG5cdFwibW9uZ29kYlwiOlwiTW9uZ29EQlwiLFxuXHRcIm1vbmtleVwiOlwiTW9ua2V5XCIsXG5cdFwibW9vbnNjcmlwdFwiOlwiTW9vblNjcmlwdFwiLFxuXHRcIm1vb25cIjpcIk1vb25TY3JpcHRcIixcblx0XCJuMXFsXCI6XCJOMVFMXCIsXG5cdFwibjRqc1wiOlwiTjRKU1wiLFxuXHRcIm40anNkXCI6XCJONEpTXCIsXG5cdFwibmFuZDJ0ZXRyaXMtaGRsXCI6XCJOYW5kIFRvIFRldHJpcyBIRExcIixcblx0XCJuYW5pc2NyaXB0XCI6XCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFuaVwiOlwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hc21cIjpcIk5BU01cIixcblx0XCJuZW9uXCI6XCJORU9OXCIsXG5cdFwibmV2b2RcIjpcIk5ldm9kXCIsXG5cdFwibmdpbnhcIjpcIm5naW54XCIsXG5cdFwibmltXCI6XCJOaW1cIixcblx0XCJuaXhcIjpcIk5peFwiLFxuXHRcIm5zaXNcIjpcIk5TSVNcIixcblx0XCJvYmplY3RpdmVjXCI6XCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9iamNcIjpcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2NhbWxcIjpcIk9DYW1sXCIsXG5cdFwib2RpblwiOlwiT2RpblwiLFxuXHRcIm9wZW5jbFwiOlwiT3BlbkNMXCIsXG5cdFwib3BlbnFhc21cIjpcIk9wZW5RYXNtXCIsXG5cdFwicWFzbVwiOlwiT3BlblFhc21cIixcblx0XCJvelwiOlwiT3pcIixcblx0XCJwYXJpZ3BcIjpcIlBBUkkvR1BcIixcblx0XCJwYXJzZXJcIjpcIlBhcnNlclwiLFxuXHRcInBhc2NhbFwiOlwiUGFzY2FsXCIsXG5cdFwicGFzY2FsaWdvXCI6XCJQYXNjYWxpZ29cIixcblx0XCJwc2xcIjpcIlBBVFJPTCBTY3JpcHRpbmcgTGFuZ3VhZ2VcIixcblx0XCJwY2F4aXNcIjpcIlBDLUF4aXNcIixcblx0XCJweFwiOlwiUEMtQXhpc1wiLFxuXHRcInBlb3BsZWNvZGVcIjpcIlBlb3BsZUNvZGVcIixcblx0XCJwY29kZVwiOlwiUGVvcGxlQ29kZVwiLFxuXHRcInBlcmxcIjpcIlBlcmxcIixcblx0XCJwaHBcIjpcIlBIUFwiLFxuXHRcInBocGRvY1wiOlwiUEhQRG9jXCIsXG5cdFwicGhwLWV4dHJhc1wiOlwiUEhQIEV4dHJhc1wiLFxuXHRcInBsYW50LXVtbFwiOlwiUGxhbnRVTUxcIixcblx0XCJwbGFudHVtbFwiOlwiUGxhbnRVTUxcIixcblx0XCJwbHNxbFwiOlwiUEwvU1FMXCIsXG5cdFwicG93ZXJxdWVyeVwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcInBxXCI6XCJQb3dlclF1ZXJ5XCIsXG5cdFwibXNjcmlwdFwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcInBvd2Vyc2hlbGxcIjpcIlBvd2VyU2hlbGxcIixcblx0XCJwcm9jZXNzaW5nXCI6XCJQcm9jZXNzaW5nXCIsXG5cdFwicHJvbG9nXCI6XCJQcm9sb2dcIixcblx0XCJwcm9tcWxcIjpcIlByb21RTFwiLFxuXHRcInByb3BlcnRpZXNcIjpcIi5wcm9wZXJ0aWVzXCIsXG5cdFwicHJvdG9idWZcIjpcIlByb3RvY29sIEJ1ZmZlcnNcIixcblx0XCJwdWdcIjpcIlB1Z1wiLFxuXHRcInB1cHBldFwiOlwiUHVwcGV0XCIsXG5cdFwicHVyZVwiOlwiUHVyZVwiLFxuXHRcInB1cmViYXNpY1wiOlwiUHVyZUJhc2ljXCIsXG5cdFwicGJmYXNtXCI6XCJQdXJlQmFzaWNcIixcblx0XCJwdXJlc2NyaXB0XCI6XCJQdXJlU2NyaXB0XCIsXG5cdFwicHVyc1wiOlwiUHVyZVNjcmlwdFwiLFxuXHRcInB5dGhvblwiOlwiUHl0aG9uXCIsXG5cdFwicHlcIjpcIlB5dGhvblwiLFxuXHRcInFzaGFycFwiOlwiUSNcIixcblx0XCJxc1wiOlwiUSNcIixcblx0XCJxXCI6XCJRIChrZGIrIGRhdGFiYXNlKVwiLFxuXHRcInFtbFwiOlwiUU1MXCIsXG5cdFwicW9yZVwiOlwiUW9yZVwiLFxuXHRcInJcIjpcIlJcIixcblx0XCJyYWNrZXRcIjpcIlJhY2tldFwiLFxuXHRcInJrdFwiOlwiUmFja2V0XCIsXG5cdFwiY3NodG1sXCI6XCJSYXpvciBDI1wiLFxuXHRcImpzeFwiOlwiUmVhY3QgSlNYXCIsXG5cdFwidHN4XCI6XCJSZWFjdCBUU1hcIixcblx0XCJyZWFzb25cIjpcIlJlYXNvblwiLFxuXHRcInJlZ2V4XCI6XCJSZWdleFwiLFxuXHRcInJlZ29cIjpcIlJlZ29cIixcblx0XCJyZW5weVwiOlwiUmVuJ3B5XCIsXG5cdFwicnB5XCI6XCJSZW4ncHlcIixcblx0XCJyZXNjcmlwdFwiOlwiUmVTY3JpcHRcIixcblx0XCJyZXNcIjpcIlJlU2NyaXB0XCIsXG5cdFwicmVzdFwiOlwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIixcblx0XCJyaXBcIjpcIlJpcFwiLFxuXHRcInJvYm9jb25mXCI6XCJSb2JvY29uZlwiLFxuXHRcInJvYm90ZnJhbWV3b3JrXCI6XCJSb2JvdCBGcmFtZXdvcmtcIixcblx0XCJyb2JvdFwiOlwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicnVieVwiOlwiUnVieVwiLFxuXHRcInJiXCI6XCJSdWJ5XCIsXG5cdFwicnVzdFwiOlwiUnVzdFwiLFxuXHRcInNhc1wiOlwiU0FTXCIsXG5cdFwic2Fzc1wiOlwiU2FzcyAoU2FzcylcIixcblx0XCJzY3NzXCI6XCJTYXNzIChTQ1NTKVwiLFxuXHRcInNjYWxhXCI6XCJTY2FsYVwiLFxuXHRcInNjaGVtZVwiOlwiU2NoZW1lXCIsXG5cdFwic2hlbGwtc2Vzc2lvblwiOlwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoLXNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaGVsbHNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzbWFsaVwiOlwiU21hbGlcIixcblx0XCJzbWFsbHRhbGtcIjpcIlNtYWxsdGFsa1wiLFxuXHRcInNtYXJ0eVwiOlwiU21hcnR5XCIsXG5cdFwic21sXCI6XCJTTUxcIixcblx0XCJzbWxualwiOlwiU01MXCIsXG5cdFwic29saWRpdHlcIjpcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2xcIjpcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2x1dGlvbi1maWxlXCI6XCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic2xuXCI6XCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic295XCI6XCJTb3kgKENsb3N1cmUgVGVtcGxhdGUpXCIsXG5cdFwic3BhcnFsXCI6XCJTUEFSUUxcIixcblx0XCJycVwiOlwiU1BBUlFMXCIsXG5cdFwic3BsdW5rLXNwbFwiOlwiU3BsdW5rIFNQTFwiLFxuXHRcInNxZlwiOlwiU1FGXCIsXG5cdFwic3FsXCI6XCJTUUxcIixcblx0XCJzcXVpcnJlbFwiOlwiU3F1aXJyZWxcIixcblx0XCJzdGFuXCI6XCJTdGFuXCIsXG5cdFwic3RhdGFcIjpcIlN0YXRhIEFkb1wiLFxuXHRcImllY3N0XCI6XCJTdHJ1Y3R1cmVkIFRleHQgKElFQyA2MTEzMS0zKVwiLFxuXHRcInN0eWx1c1wiOlwiU3R5bHVzXCIsXG5cdFwic3VwZXJjb2xsaWRlclwiOlwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInNjbGFuZ1wiOlwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInN3aWZ0XCI6XCJTd2lmdFwiLFxuXHRcInN5c3RlbWRcIjpcIlN5c3RlbWQgY29uZmlndXJhdGlvbiBmaWxlXCIsXG5cdFwidDQtdGVtcGxhdGluZ1wiOlwiVDQgdGVtcGxhdGluZ1wiLFxuXHRcInQ0LWNzXCI6XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDRcIjpcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIixcblx0XCJ0NC12YlwiOlwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiLFxuXHRcInRhcFwiOlwiVEFQXCIsXG5cdFwidGNsXCI6XCJUY2xcIixcblx0XCJ0dDJcIjpcIlRlbXBsYXRlIFRvb2xraXQgMlwiLFxuXHRcInRleHRpbGVcIjpcIlRleHRpbGVcIixcblx0XCJ0b21sXCI6XCJUT01MXCIsXG5cdFwidHJlbW9yXCI6XCJUcmVtb3JcIixcblx0XCJ0cmlja2xlXCI6XCJUcmVtb3JcIixcblx0XCJ0cm95XCI6XCJUcmVtb3JcIixcblx0XCJ0dXJ0bGVcIjpcIlR1cnRsZVwiLFxuXHRcInRyaWdcIjpcIlR1cnRsZVwiLFxuXHRcInR3aWdcIjpcIlR3aWdcIixcblx0XCJ0eXBlc2NyaXB0XCI6XCJUeXBlU2NyaXB0XCIsXG5cdFwidHNcIjpcIlR5cGVTY3JpcHRcIixcblx0XCJ0eXBvc2NyaXB0XCI6XCJUeXBvU2NyaXB0XCIsXG5cdFwidHNjb25maWdcIjpcIlRTQ29uZmlnXCIsXG5cdFwidW5yZWFsc2NyaXB0XCI6XCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1c2NyaXB0XCI6XCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1Y1wiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidW9yYXpvclwiOlwiVU8gUmF6b3IgU2NyaXB0XCIsXG5cdFwidXJpXCI6XCJVUklcIixcblx0XCJ1cmxcIjpcIlVSSVwiLFxuXHRcInZcIjpcIlZcIixcblx0XCJ2YWxhXCI6XCJWYWxhXCIsXG5cdFwidmJuZXRcIjpcIlZCLk5ldFwiLFxuXHRcInZlbG9jaXR5XCI6XCJWZWxvY2l0eVwiLFxuXHRcInZlcmlsb2dcIjpcIlZlcmlsb2dcIixcblx0XCJ2aGRsXCI6XCJWSERMXCIsXG5cdFwidmltXCI6XCJ2aW1cIixcblx0XCJ2aXN1YWwtYmFzaWNcIjpcIlZpc3VhbCBCYXNpY1wiLFxuXHRcInZiXCI6XCJWaXN1YWwgQmFzaWNcIixcblx0XCJ3YXJwc2NyaXB0XCI6XCJXYXJwU2NyaXB0XCIsXG5cdFwid2FzbVwiOlwiV2ViQXNzZW1ibHlcIixcblx0XCJ3ZWItaWRsXCI6XCJXZWIgSURMXCIsXG5cdFwid2ViaWRsXCI6XCJXZWIgSURMXCIsXG5cdFwid2dzbFwiOlwiV0dTTFwiLFxuXHRcIndpa2lcIjpcIldpa2kgbWFya3VwXCIsXG5cdFwid29sZnJhbVwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIm1hdGhlbWF0aWNhXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwibmJcIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJ3bFwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIndyZW5cIjpcIldyZW5cIixcblx0XCJ4ZW9yYVwiOlwiWGVvcmFcIixcblx0XCJ4ZW9yYWN1YmVcIjpcIlhlb3JhXCIsXG5cdFwieG1sLWRvY1wiOlwiWE1MIGRvYyAoLm5ldClcIixcblx0XCJ4b2pvXCI6XCJYb2pvIChSRUFMYmFzaWMpXCIsXG5cdFwieHF1ZXJ5XCI6XCJYUXVlcnlcIixcblx0XCJ5YW1sXCI6XCJZQU1MXCIsXG5cdFwieW1sXCI6XCJZQU1MXCIsXG5cdFwieWFuZ1wiOlwiWUFOR1wiLFxuXHRcInppZ1wiOlwiWmlnXCJcbn07XG5jb25zdCBNQU5VQUxfTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gTWFudWFsbHkgY3JlYXRlZCBsaXN0XG5cdFwiZmlzaFwiOlwiRmlzaFwiLFxuXHRcIm9jdGF2ZVwiOlwiT2N0YXZlXCIsXG5cdFwibWF4aW1hXCI6XCJNYXhpbWFcIixcblx0XCJteXNxbFwiOlwiU1FMXCIsXG5cdFwicG9zdGdyZXNxbFwiOlwiU1FMXCIsXG5cdFwicnNjcmlwdFwiOlwiUlwiLFxuXHRcInNoZWxsc2NyaXB0XCI6XCJTaGVsbFwiLFxuXHRcInNxbGl0ZVwiOlwiU1FMXCIsXG5cdFwienNoXCI6XCJac2hcIixcbn07XG5leHBvcnQgY29uc3QgTEFOR1VBR0VfTkFNRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0gey4uLlBSSVNNX0xBTkdVQUdFUywuLi5NQU5VQUxfUFJJU01fTEFOR1VBR0VTLC4uLk1BTlVBTF9MQU5HVUFHRVN9O1xuXG5leHBvcnQgY29uc3QgTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogTGFuZ3VhZ2V9ID0ge1xuXHRcIi5naXRpZ25vcmVcIjoge1xuXHRcdGNvbG91cjogXCIjZGQ0YzM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNDcyLDE0Ljc1MywxNy4yNDcsMi41MjhhMS44LDEuOCwwLDAsMC0yLjU1LDBMMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNCwyLjUyOCwxNC43YTEuOCwxLjgsMCwwLDAsMCwyLjU1MUwxNC43NTMsMjkuNDcyYTEuOCwxLjgsMCwwLDAsMi41NSwwTDI5LjQ3MiwxNy4zYTEuOCwxLjgsMCwwLDAsMC0yLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGMzNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCIuaGdpZ25vcmVcIjoge1xuXHRcdGNvbG91cjogXCIjYmZiZmJmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjguMDQyLDIzLjE3MmM0Ljk4OS04LjMtMS4wNTQtMjEuNzUxLTEyLjEtMjAuMzg0QzUuOTU1LDQuMDIyLDUuNzk0LDE0LjUzLDE0LjU5MywxNy4wMjZjNy42MTQsMi4xNjIsMS41NzMsNi45OTIsMS43NDksMTAuMjA4czYuNjIsNC4zODIsMTEuNy00LjA2M1xcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxjaXJjbGUgY3g9XFxcIjkuNzg0XFxcIiBjeT1cXFwiMjQuMjU3XFxcIiByPVxcXCI0LjMzMlxcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxjaXJjbGUgY3g9XFxcIjQuODM1XFxcIiBjeT1cXFwiMTUuMDk5XFxcIiByPVxcXCIyLjgzNVxcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4yMzEsMjIuODM1YzQuOTg5LTguMy0xLjA1NC0yMS43NTEtMTIuMS0yMC4zODRDNi4xNDQsMy42ODYsNS45ODMsMTQuMTk0LDE0Ljc4MSwxNi42OWM3LjYxNCwyLjE2MiwxLjU3Myw2Ljk5MiwxLjc0OSwxMC4yMDhzNi42Miw0LjM4MiwxMS43LTQuMDYzXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PGNpcmNsZSBjeD1cXFwiOS45NzJcXFwiIGN5PVxcXCIyMy45MjFcXFwiIHI9XFxcIjQuMzMyXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PGNpcmNsZSBjeD1cXFwiNS4wMjNcXFwiIGN5PVxcXCIxNC43NjJcXFwiIHI9XFxcIjIuODM1XFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PHBhdGggZD1cXFwiTTE3LjgxMSwyOC4xNjhhLjY2OS42NjksMCwwLDEsLjYzNS0uOTk0LDcsNywwLDAsMCwzLjctLjc0NmMzLjI0Ny0xLjg0MSw4LjI0NC0xMC43LDUuNzMxLTE2LjI4NUExMi43NywxMi43NywwLDAsMCwyNS4wNDksNS43Yy0uMjM2LS4yNDktLjEtLjIzNi4wNTktLjE1MmExMC4wOCwxMC4wOCwwLDAsMSwyLjg1NywzLjY3NiwxNC41NzgsMTQuNTc4LDAsMCwxLDEuMSwxMC4yNzljLS40OTQsMS44MTctMi4yLDUuOTI4LTQuNjkxLDcuNzA2cy01LjQyNCwyLjgtNi41NjMuOTU1TTE1LjU0OCwxNi42NzNjLTEuNy0uNS0zLjg5NC0xLjIwOC01LjE2My0yLjg2N0E4LjA4OCw4LjA4OCwwLDAsMSw4Ljg1NCwxMC40OWMtLjA0My0uMjctLjA4LS41LDAtLjU1OGEyMS44ODIsMjEuODgyLDAsMCwwLDEuNjg4LDIuNzIzLDYuNDg3LDYuNDg3LDAsMCwwLDMuNTI2LDIuMjU2LDEyLjM4MywxMi4zODMsMCwwLDEsMy44NjcsMS4zN2MuNzM5LjYyOS44LDEuOTg5LjU1MiwyLjE0MnMtLjc1OS0xLjEtMi45MzgtMS43NDltLTguMTU1LDEwLjRjMy4zNjksMy4xMjEsOC40MzktMS4xNjYsNi4yMDctNC45NTQtLjI1MS0uNDI1LS41NzYtLjc0OS0uNDY5LS40MjMuNzE0LDIuMTc4LjA1NCwzLjktMS4xNzYsNC43ODhhNC4wNjMsNC4wNjMsMCwwLDEtNC4xOTIuMzI4Yy0uMzktLjItLjU1MS4wOTItLjM3LjI2MW0tMy45My0xMC4xNmMuMDE4LjIuMjkyLjQ1OC43MjIuNTc2YTIuOTY5LDIuOTY5LDAsMCwwLDIuNTUtLjQxMywyLjc1OSwyLjc1OSwwLDAsMCwuODEtMy40NTJjLS4xNzItLjMwOC0uNC0uNTMzLS4yMTgtLjA0MUEyLjY4LDIuNjgsMCwwLDEsNi4xNDgsMTYuNTNhMi40MzksMi40MzksMCwwLDEtMi4xLjE2NGMtLjM5MS0uMTE5LS42LjAxNi0uNTguMjIzXFxcIi8+PHBhdGggZD1cXFwiTTE5LjA1NiwyOC40MDdjLS4wMzMuMzg5LjQxNC40NjYsMS4wMTYuMzc2YTYuNzU1LDYuNzU1LDAsMCwwLDIuMzEzLS42NDgsOS41NCw5LjU0LDAsMCwwLDMuMzE0LTIuNjNjMi42NjItMy40NzMsMy42LTcuNTgyLDMuNDYtOC4xNzNBMTYuMTcyLDE2LjE3MiwwLDAsMSwyNywyMi42OTJjLTEuODg4LDIuOTY4LTMuMjU2LDQuNTQ4LTYuNDEzLDUuMzE0LS44NzkuMjEzLTEuNDg1LS4xMTItMS41MjkuNG0tNy0xMy41QTcuOTY3LDcuOTY3LDAsMCwwLDE0LjYsMTYuMDg5YTEyLjIsMTIuMiwwLDAsMSwyLjk2LDEuMzFjLjM3OC4yNTMuNjE4LjgxOS42NDIuMzE3cy0uMjg1LS45MzQtLjk3Ni0xLjE2NGExNS4yNzQsMTUuMjc0LDAsMCwwLTIuMDA5LS42NzRjLS40ODUtLjEtMS4yNzMtLjI4NS0xLjk0OS0uNDkzLS4zNzEtLjExNC0uNzQ4LS4zMTMtMS4yMTQtLjQ4M00xMC4wMzcsMjcuNzE4Yy40MjktLjA5LDIuOTI0LS43MzYsMy41MS0yLjc4OC4xODMtLjY0LjIxNS0uNTExLjE2NC0uMTY1YTMuOCwzLjgsMCwwLDEtMy4zNTgsMy4xMjNjLS4yODkuMDMtLjY2OC0uMS0uMzE1LS4xN001LjA0NiwxNy4yYTcuOTkxLDcuOTkxLDAsMCwwLDEuMTk1LS4zMzYsMi4zODMsMi4zODMsMCwwLDAsMS4yMzItMS43NDFjLjA2NC0uNTA1LjA4My0uMzc4LjEwOS0uMWEyLjYyNywyLjYyNywwLDAsMS0yLjE0NywyLjMyNGMtLjIuMDI4LS41Ni4wMTEtLjM4OS0uMTQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjU0LDE3LjQ0NmMyLjEyNC02LjEyMy0yLjMyMS0xNS4zNy0xMS4zMTUtMTQuMjU4LTguMTI2LDEtOC4yNTcsOS41NTctMS4xLDExLjU5LDguMTEyLDEuMjI4LDMuMjI3LDcuMzQ3LDIuNTM1LDEwLjQzMy0uNjIxLDIuNzY2LDYuNTU1LDMuMjIxLDkuODc2LTcuNzY1TTcuMjE5LDI2LjJhMi4wMjgsMi4wMjgsMCwwLDEsMS4zMzIuNDQyLDMuNTI1LDMuNTI1LDAsMCwwLDMuNzU1LS45ODNBNC4xNTQsNC4xNTQsMCwwLDAsMTIuODY5LDIyYy0uODA2LTIuMzE5LTQuMjI5LTIuMjc4LTUuNzU4LS4zNTMtMS42NTQsMi4xNS0uNCw0LjUzOS4xMDgsNC41NDhNMi42NzYsMTUuNDUxYTEuMTY2LDEuMTY2LDAsMCwwLC45MDguODYzYy43MzEuMS44OC40MzQsMS43NDMuMjYzQTIuNDY0LDIuNDY0LDAsMCwwLDcuMSwxNC45MTZhMS43NzEsMS43NzEsMCwwLDAtLjgyNC0yLjE0LDIuNjg5LDIuNjg5LDAsMCwwLTMuMDQ3LjM2MywyLjI2MywyLjI2MywwLDAsMC0uNTU4LDIuMzEyXFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTIxLjk4MSwyMi4yMjhjLTIuMi0uMjcyLTUuMzYsNC42OS0yLjM3OCw0LjEwOWgwYTUuNjQ1LDUuNjQ1LDAsMCwwLDMuNjgzLTEuOTMyLDIzLjEzNiwyMy4xMzYsMCwwLDAsNC4wNTUtNy4yYy41LTEuODYxLjI1MS00Ljc0NS0uMjY5LTIuMDM2LS41MzMsMi43ODEtMi44OTMsNy4zMzYtNS4wOTEsNy4wNjRNMTAuNTIzLDI2LjM2MkEyLjc3OCwyLjc3OCwwLDAsMCwxMi41LDIyLjk5Yy0uMTY1LTEuMjc2LS44NjEsMS41ODQtMi4xNSwyLjAxMi0xLjk1My42NDgtMS43MzMsMS44NjEuMTc2LDEuMzYxbS00Ljk3OC0xMC4yYy42NjMtLjE3MywxLjU0LTEuMDc3LDEuMS0xLjc2Ny0uNTM3LS44NS0yLjAzMy0uMTIyLTIuMDg0LjgyNHMuMjc3LDEuMTI3Ljk3OS45NDNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmM2YzZjNcXFwiLz5cIixcblx0fSxcblx0XCIubnBtaWdub3JlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NiMzgzN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIsMTAuNTU1SDMwdjkuMzM1SDE2djEuNTU2SDkuNzc4VjE5Ljg4OUgyWm0xLjU1Niw3Ljc3OUg2LjY2N1YxMy42NjZIOC4yMjJ2NC42NjdIOS43NzhWMTIuMTExSDMuNTU2Wm03Ljc3OC02LjIyM3Y3Ljc3OWgzLjExMVYxOC4zMzRoMy4xMTFWMTIuMTExWm0zLjExMSwxLjU1NkgxNnYzLjExMkgxNC40NDRabTQuNjY3LTEuNTU2djYuMjIzaDMuMTExVjEzLjY2NmgxLjU1NnY0LjY2N2gxLjU1NlYxMy42NjZoMS41NTZ2NC42NjdoMS41NTZWMTIuMTExWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NiMzgzN1xcXCIvPlwiLFxuXHR9LFxuXHRcIi5wcm9wZXJ0aWVzXCI6IHtcblx0XHRjb2xvdXI6IFwiIzk5YjhjNFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIzLjI2NSwyNC4zODFsLjktLjg5NGM0LjE2NC4xMzYsNC4yMjgtLjAxLDQuNDExLS40MzhsMS4xNDQtMi43ODVMMjkuODA1LDIwbC0uMDkzLS4yMzFjLS4wNDktLjEyMi0uMi0uNDg2LTIuOC0yLjk2NVYxNS41YzMtMi44OSwyLjkzNi0zLjAzOCwyLjc2NS0zLjQ2MUwyOC41MzgsOS4yMjVjLS4xNzEtLjQyMi0uMjM2LS41ODctNC4zNy0uNDc0bC0uOS0uOTNhMjAuMTY2LDIwLjE2NiwwLDAsMC0uMTQxLTQuMTA2bC0uMTE2LS4yNjMtMi45NzQtMS4zYy0uNDM4LS4yLS41OTItLjI3Mi0zLjQsMi43ODZsLTEuMjYyLS4wMTljLTIuODkxLTMuMDg2LTMuMDI4LTMuMDMtMy40NjEtMi44NTVMOS4xNDksMy4xODJjLS40MzMuMTc1LS41ODYuMjM3LS40MTgsNC40MzdsLS44OTMuODljLTQuMTYyLS4xMzYtNC4yMjYuMDEyLTQuNDA3LjQzOEwyLjI4NSwxMS43MzMsMi4xOTUsMTJsLjA5NC4yMzJjLjA0OS4xMi4xOTQuNDgsMi44LDIuOTYybDAsMS4zYy0zLDIuODktMi45MzUsMy4wMzgtMi43NjMsMy40NjJsMS4xMzgsMi44MTdjLjE3NC40MzEuMjM2LjU4NCw0LjM2OS40NzZsLjkuOTM1YTIwLjI0MywyMC4yNDMsMCwwLDAsLjEzNyw0LjFsLjExNi4yNjUsMi45OTMsMS4zMDhjLjQzNS4xODIuNTg2LjI0NywzLjM4Ni0yLjhsMS4yNjIuMDE2YzIuODk1LDMuMDksMy4wNDMsMy4wMywzLjQ2NiwyLjg1OWwyLjc1OS0xLjExNUMyMy4yODgsMjguNjQ0LDIzLjQ0LDI4LjU4MywyMy4yNjUsMjQuMzgxWk0xMS40MDcsMTcuODU3YTQuOTU3LDQuOTU3LDAsMSwxLDYuNDg4LDIuODI0QTUuMDE0LDUuMDE0LDAsMCwxLDExLjQwNywxNy44NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdH0sXG5cdFwiNjUwMiBBc3NlbWJseVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDAwYmZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjgzNi42M1xcXCIgeTE9XFxcIjM2LjIwNVxcXCIgeDI9XFxcIjg0My44MDJcXFwiIHkyPVxcXCIxNC40OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSg1MjUuOTIyIDMwLjI0OSkgcm90YXRlKDE4MCkgc2NhbGUoMC42MDcgMC42MDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4yNzVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2Fzc2VtYmx5PC90aXRsZT48cGF0aCBkPVxcXCJNMTYsMmMtMS4yNDYsMy4wNTYtMiw1LjA1Ny0zLjM5MSw4LjAyMkEyMS44ODQsMjEuODg0LDAsMCwwLDE2LjIsMTMuMTU2YTE0Ljg1OCwxNC44NTgsMCwwLDEtNC0yLjI4M0MxMC40MywxNC41NzksNy42NDYsMTkuODU1LDIsMzBjNS4xODYtMi45OTQsOS4wMTItNC42NDgsMTIuNjkxLTQuOTY2VjI0LjJoLS44MzR2LS44MzdoLjgzNFYyNC4yaDEuNjc1VjIyLjUyMUgxNC42OTF2LS44MzRoLS44MzRWMjAuMDEzaC44MzR2LS44MzRoMS42NzV2LjgzNEgxNy4ydi44MzdoLS44Mzd2LS44MzdIMTQuNjkxdjEuNjc1aDEuNjc1di44MzRIMTcuMlYyNC4yaC0uODM3di43ODNjMy45OC4xLDguMDA2LDEuNzcyLDEzLjYzNCw1LjAyMS0uODYzLTEuNTg5LTEuNjM2LTMuMDIxLTIuMzcyLTQuMzg1YTI1LjUyNiwyNS41MjYsMCwwLDAtNC44MzMtMy4zMzNBMTQuNDM2LDE0LjQzNiwwLDAsMSwyNi42NSwyMy44QzE5LjE3LDkuODcyLDE4LjU2NSw4LjAyLDE2LDJaTTEwLjUxMSwxOS4xNzloMS42NzF2LjgzNGguODM3djUuMDIxaC0uODM3VjIyLjUyMUgxMC41MTF2Mi41MTJIOS42NzNWMjAuMDEzaC44MzdabTAsLjgzNHYxLjY3NWgxLjY3MVYyMC4wMTNabTcuNTI2LS44MzRoLjgzN3YuODM0aC44Mzd2LjgzN2guODM0di0uODM3aC44Mzd2LS44MzRoLjgzN3Y1Ljg1NWgtLjgzN1YyMC44NWgtLjgzN3YuODM3aC0uODM0VjIwLjg1aC0uODM3djQuMTg0aC0uODM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDBiZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44ODEsMTguNjQyYy02LjA2OS04LjIzNy03LjQ3Ni0xNC44NzYtNy44MzItMTYuNDYxQTE3NS4yMTcsMTc1LjIxNywwLDAsMCwyMy44ODEsMTguNjQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLW9wYWNpdHk6MC4xNjU2ODA0NjgwODI0MjhcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDUxLDIuMTIsMTUuNiwzLjIyN2MtLjE1OS4zOTEtLjMxMS43NjUtLjQ2MSwxLjEzMXMtLjMuNzI0LS40NDgsMS4wNzctLjMuNy0uNDQ4LDEuMDUzLS4zLjcwNi0uNDY1LDEuMDY2LS4zMjkuNzI5LS41MDYsMS4xMTEtLjM2Mi43NzgtLjU2MSwxLjE5M2MtLjAyOC4wNTctLjA2MS4xMjMtLjA4OS4xODFBMjEuODcyLDIxLjg3MiwwLDAsMCwxNi4yLDEzLjE1NmExNC44NzksMTQuODc5LDAsMCwxLTMuOTg5LTIuMjc2bC0uMTQuMjg3Yy0uMDY1LjEzMy0uMTQ0LjI4My0uMjEyLjQybC0uMTA2LjIxOWMtLjg3OCwxLjc5My0yLjAwNiwzLjk4NC0zLjUyNCw2LjgyMiwzLjU1MS0yLDcuMzgxLTQuODg3LDE0LjMzOC0yLjQtLjM0OS0uNjYxLS42Ny0xLjI4LS45NzEtMS44NjNzLS41ODEtMS4xMjgtLjg0MS0xLjY0NC0uNS0xLS43MjUtMS40NjMtLjQzMy0uOS0uNjI5LTEuMzEzLS4zOC0uODE4LS41NTQtMS4yLS4zMzktLjc1NC0uNS0xLjExOFMxOC4wNDcsNi45LDE3LjksNi41NDZzLS4yOTEtLjcwOS0uNDM0LTEuMDY2Yy0uMDM2LS4wOTEtLjA3My0uMTg2LS4xMDktLjI3N0MxNi45NDksNC4yNDcsMTYuNTM2LDMuMjU4LDE2LjA1MSwyLjEyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIkFjdGlvblNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjNDE3MThcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDE1LjI4MWMxLjkxOCwwLDIuMTEtMS4wNTUsMi4xMS0xLjkxOGExNy4xMTksMTcuMTE5LDAsMCwwLS4xOTItMi4yMDUsMTguNzIzLDE4LjcyMywwLDAsMS0uMTkyLTIuMjA1YzAtMi40LDEuNjMtMy40NTIsMy44MzYtMy40NTJoLjU3NVY2LjkzOEg3LjY1OGMtMS41MzQsMC0yLjExLjc2Ny0yLjExLDIuMjA1YTE0LjQxMiwxNC40MTIsMCwwLDAsLjE5MiwxLjkxOCwxNC4zMDYsMTQuMzA2LDAsMCwxLC4xOTIsMi4wMTRjMCwxLjcyNi0uNjcxLDIuNDkzLTEuOTE4LDIuODc3di4xYzEuMTUxLjI4OCwxLjkxOCwxLjE1MSwxLjkxOCwyLjg3N2ExNC4zMDYsMTQuMzA2LDAsMCwxLS4xOTIsMi4wMTQsMTMsMTMsMCwwLDAtLjE5MiwxLjkxOGMwLDEuNDM4LjU3NSwyLjMsMi4xMSwyLjNoLjQ3OVYyNi42SDcuNTYyYy0yLjIwNSwwLTMuODM2LS45NTktMy44MzYtMy42NDRhMTguNzIzLDE4LjcyMywwLDAsMSwuMTkyLTIuMjA1LDE1LjY4LDE1LjY4LDAsMCwwLC4xOTItMi4xMWMwLS44NjMtLjI4OC0xLjkxOC0yLjExLTEuOTE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk05LjQ3OSwxOC4wNjIsOC4yMzMsMjEuOEg2LjZMMTAuNjMsOS45MTFoMS44MjJMMTYuNDc5LDIxLjhIMTQuOTQ1TDEzLjcsMTguMDYyWm0zLjkzMi0xLjE1MUwxMi4yNiwxMy40NTlhOS4zNjQsOS4zNjQsMCwwLDEtLjU3NS0yLjIwNWgwYy0uMTkyLjY3MS0uMzg0LDEuNDM4LS41NzUsMi4xMUw5Ljk1OSwxNi44MTVoMy40NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzQxNzE4XFxcIi8+PHBhdGggZD1cXFwiTTE3LjkxOCwxOS45NzlhNS45NDEsNS45NDEsMCwwLDAsMi43ODEuNzY3YzEuNTM0LDAsMi40OTMtLjg2MywyLjQ5My0yLjAxNHMtLjY3MS0xLjcyNi0yLjIwNS0yLjRjLTEuOTE4LS42NzEtMy4xNjQtMS43MjYtMy4xNjQtMy4zNTYsMC0xLjgyMiwxLjUzNC0zLjI2LDMuODM2LTMuMjZhNS4xMzUsNS4xMzUsMCwwLDEsMi41ODkuNTc1bC0uMzg0LDEuMjQ3YTUuNTE5LDUuNTE5LDAsMCwwLTIuMy0uNDc5Yy0xLjYzLDAtMi4yMDUuOTU5LTIuMjA1LDEuODIyLDAsMS4xNTEuNzY3LDEuNjMsMi40LDIuMywyLjAxNC43NjcsMy4wNjgsMS43MjYsMy4wNjgsMy40NTIsMCwxLjgyMi0xLjM0MiwzLjQ1Mi00LjEyMywzLjQ1MmE1LjgwNyw1LjgwNywwLDAsMS0zLjA2OC0uNzY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNi42MjNjLTEuOTE4LDAtMi4xMSwxLjE1MS0yLjExLDEuOTE4YTE1LjY4LDE1LjY4LDAsMCwwLC4xOTIsMi4xMSwxNS43MzgsMTUuNzM4LDAsMCwxLC4xOTIsMi4yMDVjMCwyLjY4NS0xLjYzLDMuNjQ0LTMuODM2LDMuNjQ0aC0uNTc1VjI1LjA2MmguNDc5YzEuNDM4LDAsMi4xMS0uODYzLDIuMTEtMi4zYTEzLDEzLDAsMCwwLS4xOTItMS45MTgsMTQuMzA2LDE0LjMwNiwwLDAsMS0uMTkyLTIuMDE0YzAtMS43MjYuNzY3LTIuNTg5LDEuOTE4LTIuODc3di0uMWMtMS4xNTEtLjI4OC0xLjkxOC0xLjE1MS0xLjkxOC0yLjg3N2ExNC4zMDYsMTQuMzA2LDAsMCwxLC4xOTItMi4wMTQsMTMsMTMsMCwwLDAsLjE5Mi0xLjkxOGMwLTEuNDM4LS41NzUtMi4yMDUtMi4xMS0yLjNoLS40NzlWNS40aC41NzVjMi4yMDUsMCwzLjgzNiwxLjA1NSwzLjgzNiwzLjQ1MmExNy4xMTksMTcuMTE5LDAsMCwxLS4xOTIsMi4yMDUsMTcuMTE5LDE3LjExOSwwLDAsMC0uMTkyLDIuMjA1YzAsLjk1OS4yODgsMS45MTgsMi4xMSwxLjkxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz5cIixcblx0fSxcblx0XCJBZGFcIjoge1xuXHRcdGNvbG91cjogXCIjMGYyM2MzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjQuNTU0LDIwLjA3NWMuMjA5LjI3LDEuMzU2Ljk2MSwxLjM3LDEuMjQ2YTYuOTIxLDYuOTIxLDAsMCwwLTEuNC0uMzI0Yy0uNDY4LS4xNDItLjk1MS0uMjkzLTEuNDEyLS40OGE5LjIsOS4yLDAsMCwxLTIuMzc1LTEuM0EzLjE0NiwzLjE0NiwwLDAsMSwxOS4zLDE2Ljc1YTEuNzIyLDEuNzIyLDAsMCwxLDEuNzY3LTEuODIyLDMuNTg0LDMuNTg0LDAsMCwxLDEuNTkzLjMyMWMuMTQ2LjA2NiwxLjMxLjYwNiwxLjI1Ni44MDlhNS41LDUuNSwwLDAsMC0xLjQxLS4xMTJjLS42NDkuMjQ0LS40LjgyOC0uMTY4LDEuMzExYTcuODc3LDcuODc3LDAsMCwwLDEuMDc4LDEuNTU0QzIzLjU4LDE5LjAwNSwyNC4zLDIwLjA4MiwyNC41NTQsMjAuMDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzBmMjNjM1xcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xNDEsMTYuMjc2Yy4xMjgtLjU5LjgxOS0xLjM4NCwxLjM0NC0uNzczYTQuMiw0LjIsMCwwLDEsLjU3OCwxLjkxOGMuMTIuNjU2LjIsMS4zMjcuMjYxLDEuOTgyLjAzOC4zNzkuMzQsMS43OTQuMTIzLDIuMDc1YTIzLjI0LDIzLjI0LDAsMCwxLTIuOTIyLTIuODM4LDMuNzYzLDMuNzYzLDAsMCwxLS45MjUtMS43QzIyLjUsMTUuODY3LDIzLjQ3OSwxNi4yMSwyNC4xNDEsMTYuMjc2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMTk3OFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi4zLDE3Ljc4MWMuMTQxLS43MzItLjQwNi0yLjU5Mi0xLjA2Ny0yLjk0OWEuMDYuMDYsMCwwLDAsLjA0NC0uMDA3Yy0uMTU2LS40NDQtMS4zNTksMS4xMTYtMS4yMjgsMS4xNzQtLjMxNi0uMTM4Ljc3NC0xLjk4NC45ODgtMi4xNi43LS41NzgsMS4zNzItLjA4NiwxLjg0NS41NDNhNi4wMzYsNi4wMzYsMCwwLDEsLjczMyw0LjQzNCw0LjUsNC41LDAsMCwxLS40MjEsMS4zMTJjLS4xLjIyLS40NSwxLjEtLjY4MiwxLjE3NEExNC43NTQsMTQuNzU0LDAsMCwwLDI2LjMsMTcuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzBmMjNjM1xcXCIvPjxwYXRoIGQ9XFxcIk0zLjY4Nyw4LjRjLjE3OS0uMTg4LS4wNDEtMS41MjcuMzI0LTEuNTQ4LjI2Mi0uMDE1LjU1MywxLjc0MS42MjcsMS45NjhhOS4yLDkuMiwwLDAsMCwxLjEyNywyLjMyOSw3LjUyOSw3LjUyOSwwLDAsMCw0LjAxNiwyLjk3OCw0LjU1LDQuNTUsMCwwLDAsMi4zNjYuMmMuOTMxLS4yMDgsMS44Mi0uNTc3LDIuNzU3LS43NjUsMS4zNS0uMjcsMy4zNDItLjM1Miw0LjQzOC42NDcuNy42NDEuMzc2Ljc2LjA0MywxLjQyMWEyLjQ0NSwyLjQ0NSwwLDAsMCwuMTc4LDIuNTYyYy4yMzUuMzQyLDEuMDMzLjgyNy42NzUsMS4wOTQtLjU2Ny40MjQtMS4yNzctLjQ1Mi0xLjYzNi0uNzc2LTEuNC0xLjI2NC0yLjcxMS0xLjMxMy00LjQ5Mi0xLjA3NGE4Ljk4Nyw4Ljk4NywwLDAsMS00Ljg4My0uNzA4QTkuNDY5LDkuNDY5LDAsMCwxLDMuNjg3LDguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQxLDMwYTMuNjE1LDMuNjE1LDAsMCwxLTIuMzI1LS44MTdjLjQ2OS0uMDkyLDEuMDIxLjAyNSwxLjUwOC0uMDQ0YTkuNyw5LjcsMCwwLDAsMS43NTQtLjQzQTEwLjUzNywxMC41MzcsMCwwLDAsMjMuOSwyNy4xNTVhNi41NSw2LjU1LDAsMCwwLDIuNzU3LTUuMjE0Yy4xNDktLjA4OC4zMTYsMS4wMzQuMzE5LDEuMDkxYTUuNzg5LDUuNzg5LDAsMCwxLS4xOSwxLjcyNyw2Ljg2Nyw2Ljg2NywwLDAsMS0xLjQyMywyLjc3NEE3LjI4Niw3LjI4NiwwLDAsMSwxOS45NDEsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljk2MiwxOS4xMDlhNS43Niw1Ljc2LDAsMCwxLTIuMDUuODU5LDEzLjM4LDEzLjM4LDAsMCwxLTIuMjI0LjU0OSw4Ljg2MSw4Ljg2MSwwLDAsMS00LjQzNS0uNTEsOS45MzksOS45MzksMCwwLDEtMy44NDktMi40QzYuMDUyLDE3LjI0LDQuMywxNS4xOSw0Ljg1NiwxNC41NTdjLjI0OC0uMjgyLjg3NS44NDYsMSwuOTkyYTUsNSwwLDAsMCwxLjM1NywxLjExLDEwLjkxNywxMC45MTcsMCwwLDAsNC4wMzUsMS40NTYsNi42OTMsNi42OTMsMCwwLDAsMi4zNC0uMDk0LDEyLjc0MywxMi43NDMsMCwwLDEsMS42OTQtLjQ4NSw0LDQsMCwwLDEsMi4xMTMuNDU3QzE3LjczOSwxOC4xNjMsMTguOTE4LDE4LjczNiwxOC45NjIsMTkuMTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4zMTMsMTUuMDc4YTE5LjI3NywxOS4yNzcsMCwwLDEtLjQ1MywzLjc3NGMtLjE3Ni0uMjQyLjAxNi0xLjQ3LDAtMS43OTJhNi4wMzIsNi4wMzIsMCwwLDAtLjM4NC0yLjA4N0E0LjkyNSw0LjkyNSwwLDAsMCwyNi4xLDEzLjMxMmExNC43MjgsMTQuNzI4LDAsMCwxLTEuMjctMS41MzZjLTEuODM3LTIuMzgyLTMuMjQ1LTUuMjExLTIuOS04LjMuMDM0LS4zMDguMDY5LTEuNDQ4LjQxMS0xLjQ0NS4xNTIsMCwuMjY2LDEuNTYxLjI5LDEuNzE4YTEyLjUyNywxMi41MjcsMCwwLDAsMS4yMjQsNC4xMTZjLjY3LDEuMjIyLDEuOTQ3LDIuMDIzLDIuODI1LDMuMUE2LjU3OSw2LjU3OSwwLDAsMSwyOC4zMTMsMTUuMDc4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43LDI2LjkzNWExMC44NDUsMTAuODQ1LDAsMCwwLDYuNDM2LS42ODcsNi45NDEsNi45NDEsMCwwLDAsNC4yNzgtNC40MThjLjMxOS4yLS4wNDgsMS41MjktLjEyOCwxLjc4MWE1LjcyNiw1LjcyNiwwLDAsMS0xLjAxLDEuODEzLDguOTMzLDguOTMzLDAsMCwxLTMuMjU3LDIuNTE0QzIwLjMxNiwyOC43MSwxNi4zNTcsMjkuNTksMTUuNywyNi45MzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5LjE1MSwxOS4zNzZjLjM2NywyLjEwNy0yLjk1NywzLjEyNC00LjQ3OCwzLjIxMy0xLjg1OS4xMS00LjkyOS0uMjkyLTYuMDYtMi4wMzEtLjY3My0xLjAzNS43ODEtLjA5LDEuMTg4LjA1OGE4LjY2Myw4LjY2MywwLDAsMCwzLjA2LjUsMTEuNiwxMS42LDAsMCwwLDMuMzA1LS41LDEzLjcyNSwxMy43MjUsMCwwLDAsMS41MzMtLjU3NkMxOCwxOS45MDgsMTguODIzLDE5LjM0OSwxOS4xNTEsMTkuMzc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xNDIsMjMuNDZjLjQtLjk0NS0xLjg4My0xLjU3OC0yLjQ0NS0xLjg1OGE0Ljg1Nyw0Ljg1NywwLDAsMS0xLjMxNS0uODY3Yy0uMTgxLS4xODEtLjg3Mi0uOTItLjgwNy0xLjIxOWE0LjkxMiw0LjkxMiwwLDAsMSwxLjA4Ny0uMTc1LDUuOTMsNS45MywwLDAsMSwuODU1LjU4OCwxMC4zMjMsMTAuMzIzLDAsMCwwLC45NjQuNUExNS42MTUsMTUuNjE1LDAsMCwwLDI0LjYsMjEuMmMuMzA4LjA5LDEuNTQ5LjIwOCwxLjcyNy40MjhDMjYuMjg3LDIxLjkyNCwyNC4zNTcsMjMuNjQ5LDI0LjE0MiwyMy40NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjYuMSwyMi4xNzJjLjI2NS40My0xLjA4LDEuODMxLTEuMzYzLDIuMTA1YTkuMzQsOS4zNCwwLDAsMS0yLjU2NiwxLjcyOCw3Ljc0OCw3Ljc0OCwwLDAsMS0yLjU2Ljc1M2MtLjY3OS4wNTgtMS45NjYtLjEyNC0yLjE0MS0uOTc5YTYuOTUxLDYuOTUxLDAsMCwxLDEuMTc3LS4wODZjLjQ2Mi0uMDU5LjkyMS0uMTQ5LDEuMzc2LS4yNDZhMTMuMDY1LDEzLjA2NSwwLDAsMCwyLjE4NC0uNjQ1LDExLjUwNiwxMS41MDYsMCwwLDAsMi4wODQtMS4xMSwxMC44NzIsMTAuODcyLDAsMCwwLDEuMDc4LS44MjJDMjUuNDc0LDIyLjc4MSwyNS45ODYsMjIuMTY4LDI2LjEsMjIuMTcyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43NTgsMTEuOTY1Yy0uMS0xLjMwOCwyLjYxMi0xLjMsMy4yNzEtMS4wOTJhNS45NzYsNS45NzYsMCwwLDEsMi45ODIsMi40NzVjLTEuMDgyLjgtMi40NDkuMDk0LTMuMy0uNjU0YTQuMzI0LDQuMzI0LDAsMCwwLTEuNDgxLTEuMDI5QzE5LjQyMSwxMS40LDE5LjQxMiwxMS43NTksMTguNzU4LDExLjk2NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzgzLDEzLjM0MWMtLjQ0NC0uMDI5LS4zMTYuMDcxLS42NDctLjIxMi0uMzU4LS4zMDctLjYxNC0uNzk1LS45NDUtMS4xNDEtLjUzNC0uNTU4LTEuMjQyLS44OTUtMS43MjMtMS40ODVhNy4yNjksNy4yNjksMCwwLDEtMS42MjQtNC44NDhjLjAxOC0xLjQ4OS40MDcuMTg3LjU1MS42NzVhMTIuMjc2LDEyLjI3NiwwLDAsMCwxLjEyNiwyLjcwOCw0Ni4wNTUsNDYuMDU1LDAsMCwwLDMuNCw0LjMyMUMyNS44ODIsMTMuMzYxLDI1LjgyNCwxMy4zMzgsMjUuNzgzLDEzLjM0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjAuMDY4LDE0Ljc1NmMuMDMzLS42MjUtLjkxMS0uNzkyLTEuMjExLTEuNDItLjE2NC0uMzQzLS4yMTEtLjU2OS4wMjktLjcuMDgyLS4wNDUuMzgzLjAxMi41LS4wMi4yNzEtLjA3Ni4zMzUtLjI3My41ODEtLjRBMS4xOTMsMS4xOTMsMCwwLDEsMjEuNiwxMy4yMzcsMS44MjEsMS44MjEsMCwwLDEsMjAuMDY4LDE0Ljc1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjAuNSwxNC43NDVhMS45MzEsMS45MzEsMCwwLDAsMS4zMjMtMS43Yy41MjQuMTM5LjkyOC42NTgsMS41MjEuNzcxYTIuNTg0LDIuNTg0LDAsMCwwLDEuMDI5LS4wMTdjLjIwNy0uMDQ1LjU0LS4yNzQuNzIxLS4yNTktLjAzMy4xNjMtLjQ2NC41NDYtLjU2NS43MTdhNC4yNDIsNC4yNDIsMCwwLDAtLjM4OC45Yy0uMjI5Ljc0MS0uMDYxLjczOS0uNzA5LjMxMWE0LjI4NCw0LjI4NCwwLDAsMC0xLjk1Ny0uNzJDMjEuMjA5LDE0LjcyMiwyMC41OTQsMTQuNzY3LDIwLjUsMTQuNzQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45MDUsMjAuNzM0YTIuMDA4LDIuMDA4LDAsMCwxLTEuNCwxLjcxMmMtLjIwNS4wOTEtMi4wMTguNzMzLTIuMDMyLjM0OC0uMDA3LS4yLDEuNjI0LS45NTQsMS44MDktMS4xMWEzLjM1NSwzLjM1NSwwLDAsMCwuODY3LTEuMDcxYy4wNTUtLjExMi4yMzItLjkyNS4yNzEtLjk0M0MxOS42NDQsMTkuNTY0LDE5LjkwOCwyMC42LDE5LjkwNSwyMC43MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTExLjM3MywxMi41MzJhMTAuNjI1LDEwLjYyNSwwLDAsMSwzLjcxLS45MTQsMTAuMjgyLDEwLjI4MiwwLDAsMSwxLjg2NS4wMjRjLjM2Ni4wMzksMS40NjkuMDU0LDEuNzQuMzQzYS4yNTUuMjU1LDAsMCwxLS4yNzMuMTczYy0uMDM3LjA3Ny4yNTEuMzcxLjMuNDI1LS4wMzQuMDM0LTEuNDQ1LS40LTEuNTcyLS40MjRhMTAuNjMyLDEwLjYzMiwwLDAsMC0yLjI4Mi0uMTM0LDE2LDE2LDAsMCwwLTEuODQxLjE5NEE2LjIyNCw2LjIyNCwwLDAsMSwxMS4zNzMsMTIuNTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MTIsMTAuNzMxYTEuODg4LDEuODg4LDAsMCwxLTEuNTE3LS42Yy0uMjQ3LS4zNDktLjczNy0xLjY5Mi0uMzg1LTIuMDIxLjIwOS0uMi4zODQuNjYyLjQ4NC44NDZBMTAuODIyLDEwLjgyMiwwLDAsMCwyMi41MTIsMTAuNzMxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy43ODgsMTkuMmExOS4yMTIsMTkuMjEyLDAsMCwxLS43NDksMy4zMTNjLS4xNzMtLjA3Ny0uMjc1LS43NzgtLjU2Mi0uOTVhNC4wNyw0LjA3LDAsMCwwLC43Ni0xLjE1NEMyNy4zODksMjAuMTA3LDI3LjU0LDE5LjM2MywyNy43ODgsMTkuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTgxLDExLjg0M2MtLjEzMi4yNjgtLjkzMiwxLjEtMS4xMTguNDgxQzE4Ljc1NiwxMS45NjgsMTkuNzM5LDExLjQ4MywxOS45ODEsMTEuODQzWm0tLjc0Ny40NWMuMjI4LjAwNi4wMTItLjI0OC4wMTItLjI2NkMxOS4yNDUsMTEuOTg0LDE4Ljg3OCwxMi4yOTMsMTkuMjM0LDEyLjI5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi0tXCIsXG5cdFx0XSxcblx0fSxcblx0XCJBTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMyZWE5OGVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMS42MTYsNy45ODZBMS41NTksMS41NTksMCwwLDAsMTAuMTYsN0gxMC4xYTEuNTU4LDEuNTU4LDAsMCwwLTEuNDU2Ljk4NkwyLDI1SDUuODA2bDEuMDE1LTIuODM0aDYuNjIxTDE0LjQ1NywyNWgzLjhaTTcuOTQ0LDE4Ljk1NmwyLjE4OC02LjExMSwyLjE4OCw2LjExNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyZWE5OGVcXFwiLz48cGF0aCBkPVxcXCJNMjMuODI5LDIxLjY3MVY3LjEyOUgyMC4zVjIyLjc0N0EyLjM0NiwyLjM0NiwwLDAsMCwyMi41NywyNUgzMFYyMS42NzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmVhOThlXFxcIi8+XCIsXG5cdH0sXG5cdFwiQU5UTFI0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2U0NGEzMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE0LjE3Nyw3LjI3OGEyLjA4LDIuMDgsMCwwLDEsMy4wNDEtLjhBMy41NzEsMy41NzEsMCwwLDEsMTguMiw4LjAyMmMxLjM1NiwzLjEyMiwyLjksNi4xNjUsNC4xMTksOS4zNDUuNjQ1LDEuNSwxLjQyOSwyLjkzOCwxLjk5NCw0LjQ2OGExLjQ1NSwxLjQ1NSwwLDAsMS0yLjI1OCwxLjM3NmMtMi44LTEuNTcyLTUuNjI4LTMuMDk0LTguMzg1LTQuNzMxLDIuMDA5LjAwOCw0LjAxOC0uMDA4LDYuMDI1LjAxM2ExOS43MDcsMTkuNzA3LDAsMCwwLTEuMjg4LTIuOTE4Yy0uNzgxLTEuODU4LTEuNi0zLjctMi4zNTgtNS41NjVhOS43ODMsOS43ODMsMCwwLDAtMS4wMzIsMi4xMjVjLTEuMywzLjE4Mi0yLjg3LDYuMjQxLTQuMTM2LDkuNDM1LS4yODEuNTktLjQyNCwxLjM0NC0xLjAzNSwxLjY5YTEuNDQ3LDEuNDQ3LDAsMCwxLTIuMDk0LS43MzhjLS4yNDEtLjYxLjE1MS0xLjIuMzgyLTEuNzQzLjc3OS0xLjcyNSwxLjY0NS0zLjQxMywyLjI4My01LjJDMTEuNjUsMTIuOCwxMi45MTYsMTAuMDQxLDE0LjE3Nyw3LjI3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZWZlZmVcXFwiLz48cGF0aCBkPVxcXCJNMTMuODE3LDIuMkExMy45MjMsMTMuOTIzLDAsMCwxLDI5LjUyNiwxMi41NDlhMTMuNzMzLDEzLjczMywwLDAsMS0yLjA4MiwxMS41MTlBMTQuMDc0LDE0LjA3NCwwLDAsMSw3LjczOCwyNy4yOTNhMTMuODUyLDEzLjg1MiwwLDAsMS01LjYxNS05LjQ4M0ExNC4xNTIsMTQuMTUyLDAsMCwxLDMuNDUxLDkuODUsMTMuOTYxLDEzLjk2MSwwLDAsMSwxMy44MTcsMi4ybS4zNTksNS4wOGMtMS4yNjEsMi43NjItMi41MjYsNS41MjUtMy43NjIsOC4zLS42MzgsMS43ODYtMS41LDMuNDczLTIuMjgzLDUuMi0uMjMxLjU0Mi0uNjIzLDEuMTMzLS4zODIsMS43NDNhMS40NDcsMS40NDcsMCwwLDAsMi4wOTQuNzM4Yy42MS0uMzQ3Ljc1My0xLjEsMS4wMzUtMS42OSwxLjI2Ni0zLjE5NCwyLjgzMy02LjI1Myw0LjEzNi05LjQzNWE5Ljc4Myw5Ljc4MywwLDAsMSwxLjAzMi0yLjEyNWMuNzU2LDEuODY4LDEuNTc3LDMuNzA3LDIuMzU4LDUuNTY1YTE5LjcwNywxOS43MDcsMCwwLDEsMS4yODgsMi45MThjLTIuMDA3LS4wMi00LjAxNi0uMDA1LTYuMDI1LS4wMTMsMi43NTcsMS42MzcsNS41ODgsMy4xNTksOC4zODUsNC43MzFhMS40NTUsMS40NTUsMCwwLDAsMi4yNTgtMS4zNzZjLS41NjUtMS41MjktMS4zNDktMi45NzEtMS45OTQtNC40NjgtMS4yMi0zLjE3OS0yLjc2Mi02LjIyMy00LjExOS05LjM0NWEzLjU3MSwzLjU3MSwwLDAsMC0uOTgyLTEuNTQ0QTIuMDgsMi4wOCwwLDAsMCwxNC4xNzcsNy4yNzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTQ0YTMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIjoge1xuXHRcdGNvbG91cjogXCIjYzkyMDM3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNTYwMi42ODJcXFwiIHkxPVxcXCI3NjguNTQxXFxcIiB4Mj1cXFwiLTU1OTguNzI3XFxcIiB5Mj1cXFwiNzYzLjkxN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjQyMywgLTAuOTA2LCAtMC45MDYsIC0wLjQyMywgMzA4Mi44NTMsIC00NzQ4LjU1MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmNjk5MjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzEyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjc5YTIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U5NzgyNlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTU2MzEuOTUyXFxcIiB5MT1cXFwiNzY5LjA1MlxcXCIgeDI9XFxcIi01NjAzLjczN1xcXCIgeTI9XFxcIjc2OS4wNTJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC40MjMsIC0wLjkwNiwgLTAuOTA2LCAtMC40MjMsIDMwODIuODUzLCAtNDc0OC41NTEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjMyM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzllMjA2NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42M1xcXCIgc3RvcC1jb2xvcj1cXFwiI2M5MjAzN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NTFcXFwiIHN0b3AtY29sb3I9XFxcIiNjZDIzMzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlOTc4MjZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi01NjI4LjU0NlxcXCIgeTE9XFxcIjc2Ni4yMjFcXFwiIHgyPVxcXCItNTYxMS43MzNcXFwiIHkyPVxcXCI3NjYuMjIxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuNDIzLCAtMC45MDYsIC0wLjkwNiwgLTAuNDIzLCAzMDgyLjg1MywgLTQ3NDguNTUxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI4MjY2MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wOTVcXFwiIHN0b3AtY29sb3I9XFxcIiM2NjJlOGRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzg4XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWYyMDY0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk0OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NkMjAzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY5LjMxNlxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2OS4zMTZcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiLTU2MjguMzFcXFwiIHkxPVxcXCI3NjguOTMzXFxcIiB4Mj1cXFwiLTU2MTMuNDgyXFxcIiB5Mj1cXFwiNzY4LjkzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjYuMzk0XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY2LjM5NFxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNTYzMi4xMThcXFwiIHkxPVxcXCI3NjYuNTM5XFxcIiB4Mj1cXFwiLTU2MDMuOTAyXFxcIiB5Mj1cXFwiNzY2LjUzOVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjUuNTI2XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY1LjUyNlxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjUuNjI1XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY1LjYyNVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItNTYxNC41MTZcXFwiIHkxPVxcXCI3NjUuNjQ1XFxcIiB4Mj1cXFwiLTU2MDguMjhcXFwiIHkyPVxcXCI3NjUuNjQ1XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2FwYWNoZTwvdGl0bGU+PHBhdGggZD1cXFwiTTE5Ljk5MywyLjEzM2ExMC4yNjcsMTAuMjY3LDAsMCwwLTIuMDQsMi4wNTZsLjgsMS41MWExOS43MzMsMTkuNzMzLDAsMCwxLDEuNzA4LTIuMTQ0Yy4wNDQtLjA0OS4wNjgtLjA3Mi4wNjgtLjA3MmwtLjA2OC4wNzJhMTcuODY1LDE3Ljg2NSwwLDAsMC0xLjYsMi4xNzQsMzAuMSwzMC4xLDAsMCwwLDMuMTExLS4zODUsMy4yODgsMy4yODgsMCwwLDAtLjMtMi41UzIwLjksMS42LDE5Ljk5MywyLjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTguNjM4LDEwLjc0OWwuMDE4LDAtLjExNS4wMTMtLjAyMS4wMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjgyMSwxMy40NTVjLS4wNjYuMDE1LS4xMzIuMDI2LS4yLjAzNkMxNy42ODksMTMuNDgxLDE3Ljc1NiwxMy40NjksMTcuODIxLDEzLjQ1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjcsMTkuNTI0Yy4wMDktLjAyMy4wMTctLjA0NS4wMjUtLjA2OHEuMjY0LS43LjUyMy0xLjM1Ny4yOTEtLjc0MS41NzUtMS40MzYuMy0uNzMzLjU5LTEuNDE4LjMwNS0uNzE4LjYtMS4zODQuMjQtLjU0Mi40NzQtMS4wNDkuMDc4LS4xNjkuMTU1LS4zMzUuMTUzLS4zMjkuMy0uNjQ1LjEzOC0uMjkxLjI3NC0uNTdjLjAzLS4wNjIuMDYtLjEyMy4wOS0uMTg1bC4wMTUtLjAzLS4xLjAxMS0uMDc4LS4xNTRjLS4wMDcuMDE1LS4wMTUuMDMtLjAyMy4wNDVxLS4yMTEuNDE4LS40MTcuODQ1LS4xMTkuMjQ2LS4yMzguNDk1LS4zMjguNjg5LS42NDUsMS4zODlUMTMuNzY2LDE1LjFxLS4zLjctLjU5NCwxLjR0LS41NjcsMS4zODdxLS4yODkuNzItLjU2MiwxLjQyNi0uMDYyLjE1OS0uMTIzLjMxOC0uMjE5LjU2OS0uNDI2LDEuMTI0bC4xMjMuMjQzLjExLS4wMTIuMDEyLS4wMzNRMTIuMDA4LDIwLjIxNiwxMi4yNywxOS41MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMwNSwxNC44MThsLS4zMTUuMDU1aDBsLjE2MS0uMDI1QzE3LjIsMTQuODM5LDE3LjI1MywxNC44MjksMTcuMzA1LDE0LjgxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuMzA1LDE0LjgxOGwtLjMxNS4wNTVoMGwuMTYxLS4wMjVDMTcuMiwxNC44MzksMTcuMjUzLDE0LjgyOSwxNy4zMDUsMTQuODE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NzMsMTMuNWgwbC4wNS0uMDA3Yy4wNjgtLjAxLjEzNS0uMDIyLjItLjAzNmwtLjI0OC4wNDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MywxMy41aDBsLjA1LS4wMDdjLjA2OC0uMDEuMTM1LS4wMjIuMi0uMDM2bC0uMjQ4LjA0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTYuMzk0LDkuNnEuMzY1LS42ODIuNzM5LTEuMzMyLjM4OC0uNjc0Ljc4NC0xLjMwNWwuMDQ2LS4wNzVxLjM5Mi0uNjIuNzktMS4xOTFsLS44LTEuNTEtLjE4Mi4yMjVjLS4yMzEuMjg4LS40Ny42LS43MTYuOTI1LS4yNzcuMzctLjU2Mi43NjQtLjg1MSwxLjE3OS0uMjY3LjM4My0uNTM4Ljc4NC0uODA5LDEuMi0uMjMxLjM1My0uNDYyLjcxNy0uNjkyLDEuMDlsLS4wMjYuMDQyTDE1LjcxOCwxMC45UTE2LjA1MiwxMC4yNDQsMTYuMzk0LDkuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjUxLDIxLjE5MnEtLjIwNy41NjgtLjQxNSwxLjE1OWwtLjAwNi4wMTctLjA1OS4xNjdjLS4wOTMuMjY2LS4xNzUuNS0uMzYxLDEuMDQ5YTIuMTA3LDIuMTA3LDAsMCwxLC43ODYuOTI2LDEuNjgsMS42OCwwLDAsMC0uNTQ0LTEuMTU0LDMuNjIxLDMuNjIxLDAsMCwwLDMuNDg5LTEuNDIsMi43OTEsMi43OTEsMCwwLDAsLjE2NS0uMzEzLDEuNDUxLDEuNDUxLDAsMCwxLTEuNC41MTNsMCwwLDAsMGE0LjA1OSw0LjA1OSwwLDAsMCwyLjA0Ni0xLjY3MmMuMTExLS4xNzguMjE4LS4zNzIuMzI4LS41ODdhMy4zLDMuMywwLDAsMS0zLjEwOSwxLjAxbC0uODQyLjA5MkMxMS43LDIxLjA1LDExLjY3NywyMS4xMjEsMTEuNjUxLDIxLjE5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDQ0LDE5LjMwNnEuMjczLS43MDYuNTYyLTEuNDI2LjI3Ni0uNjkuNTY3LTEuMzg3dC41OTQtMS40cS4zMDgtLjcxMS42MjktMS40MTl0LjY0NS0xLjM4OXEuMTE4LS4yNDguMjM4LS40OTUuMjA3LS40MjYuNDE3LS44NDVjLjAwNy0uMDE1LjAxNS0uMDMuMDIzLS4wNDVMMTQuNjc3LDguODQ3bC0uMDUxLjA4M2MtLjI0Mi40LS40ODQuOC0uNzIxLDEuMjE2cy0uNDc1Ljg0NC0uNywxLjI3NnEtLjI5MS41NDctLjU2OCwxLjFsLS4xMS4yMjVjLS4yMjcuNDY3LS40MzIuOTE4LS42MTcsMS4zNTJxLS4zMTUuNzM3LS41NTYsMS40MDZjLS4xMDcuMjkzLS4yLjU3Ni0uMjkyLjg0Ny0uMDczLjIzMi0uMTQyLjQ2NC0uMjA4LjdxLS4yMzQuODE4LS40LDEuNjMxTDExLjUsMjAuNzQ4cS4yMDgtLjU1NC40MjYtMS4xMjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQzNSwxOC43NTVhMTYuMDcsMTYuMDcsMCwwLDAtLjI3MiwxLjk3NGMwLC4wMjMsMCwuMDQ2LS4wMDUuMDY5YTQuMTUsNC4xNSwwLDAsMC0xLjItMS4wMjksNS44MjUsNS44MjUsMCwwLDEsMS4xNzIsMi42OTMsMi42NDIsMi42NDIsMCwwLDEtMS4zMjUtLjIyNiwyLjY2MiwyLjY2MiwwLDAsMCwxLjEzLjY4NiwzLjI0NywzLjI0NywwLDAsMC0xLjU3MS43ODMsMy4zNTksMy4zNTksMCwwLDEsMS44NjEtLjM0MkM5LjUxLDI1LjM4OSw4Ljc5MywyNy42MjYsOC4wNzYsMzBhLjYyNS42MjUsMCwwLDAsLjQyNS0uNDEzYy4xMjgtLjQzLjk3Ni0zLjI1MSwyLjMwNi02Ljk1OWwuMTE1LS4zMTguMDMyLS4wODlxLjIxMS0uNTgzLjQzNy0xLjE5bC4xLS4yNzcsMC0uMDA1TDEwLjQ1LDE4LjY4NEMxMC40NDUsMTguNzA3LDEwLjQzOSwxOC43MzEsMTAuNDM1LDE4Ljc1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTUuODgsMTEuMDc4bC0uMDkuMTg1cS0uMTM1LjI3OS0uMjc0LjU3LS4xNS4zMTUtLjMuNjQ1Yy0uMDUyLjExMS0uMS4yMjItLjE1NS4zMzVxLS4yMzQuNTA4LS40NzQsMS4wNDktLjMuNjY2LS42LDEuMzg0LS4yOTEuNjg1LS41OSwxLjQxOC0uMjg0LjctLjU3NSwxLjQzNi0uMjU5LjY2MS0uNTIzLDEuMzU3Yy0uMDA5LjAyMy0uMDE3LjA0NS0uMDI1LjA2OHEtLjI2Mi42OTMtLjUyOSwxLjQyMmwtLjAxMi4wMzMuODQyLS4wOTItLjA1LS4wMDlhNiw2LDAsMCwwLDMuMjEtMS44MDcsNy45ODQsNy45ODQsMCwwLDAsMS4xLTEuNTI0LDEzLjEzOSwxMy4xMzksMCwwLDAsLjcwNi0xLjQ2N2MuMTk1LS40NzIuMzgyLS45ODIuNTYyLTEuNTM2YTMuMDUzLDMuMDUzLDAsMCwxLS43ODguMjc0Yy0uMDUxLjAxMS0uMS4wMjEtLjE1Ni4wM3MtLjEwNy4wMTgtLjE2MS4wMjVoMGEzLjY2OCwzLjY2OCwwLDAsMCwxLjk2Mi0xLjkxMywzLjM0NCwzLjM0NCwwLDAsMS0xLjEzLjQ5NWMtLjA2Ni4wMTUtLjEzMi4wMjYtLjIuMDM2bC0uMDUuMDA3aDBhMy44MjEsMy44MjEsMCwwLDAsLjgzOS0uNDY5Yy4wNTEtLjAzOC4xLS4wNzguMTQ4LS4xMi4wNzMtLjA2My4xNDItLjEyOS4yMDgtLjIuMDQyLS4wNDQuMDgzLS4wOS4xMjMtLjEzOGEzLjI3LDMuMjcsMCwwLDAsLjI2My0uMzYyYy4wMjUtLjA0LjA1LS4wOC4wNzQtLjEyMi4wMzEtLjA2LjA2MS0uMTE5LjA5LS4xNzguMTMxLS4yNjQuMjM2LS41LjMxOS0uNzA2LjA0Mi0uMS4wNzgtLjIuMTA5LS4yODguMDEzLS4wMzUuMDI1LS4wNy4wMzYtLjEuMDMzLS4xLjA2LS4xODcuMDgxLS4yNjVhMi42MDUsMi42MDUsMCwwLDAsLjA2Mi0uMjc1aDBhMS4wMSwxLjAxLDAsMCwxLS4xMDkuMDc1LDMuOTY1LDMuOTY1LDAsMCwxLTEuMTYyLjRsLjc3My0uMDg1LS43NzMuMDg1LS4wMTgsMC0uMTE5LjAxOS4wMjEtLjAwOS0yLjY0NS4yOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMTguODU4LDUuNzNjLS4yMzUuMzYxLS40OTIuNzcxLS43NjgsMS4yMzZsLS4wNDQuMDc0cS0uMzU4LjYtLjc1OSwxLjMyNy0uMzQ2LjYyNi0uNzE5LDEuMzQ3LS4zMjYuNjI5LS42NzIsMS4zMzZsMi42NDUtLjI5QTMuMjE2LDMuMjE2LDAsMCwwLDE5Ljk5LDkuNjJjLjA4OS0uMTI4LjE3OC0uMjYyLjI2Ny0uNC4yNzItLjQyNC41MzgtLjg5MS43NzYtMS4zNTVhMTQuMDc0LDE0LjA3NCwwLDAsMCwuNTg4LTEuMjk0LDYuOCw2LjgsMCwwLDAsLjIzMy0uN2MuMDQ4LS4xODQuMDg2LS4zNTguMTE1LS41MjRBMzAuMTUyLDMwLjE1MiwwLDAsMSwxOC44NTgsNS43M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMTcuMTQ5LDE0Ljg0OGMtLjA1My4wMDktLjEwNy4wMTgtLjE2MS4wMjVoMEMxNy4wNDIsMTQuODY2LDE3LjEsMTQuODU3LDE3LjE0OSwxNC44NDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjE0OSwxNC44NDhjLS4wNTMuMDA5LS4xMDcuMDE4LS4xNjEuMDI1aDBDMTcuMDQyLDE0Ljg2NiwxNy4xLDE0Ljg1NywxNy4xNDksMTQuODQ4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4xNDksMTQuODQ4Yy0uMDUzLjAwOS0uMTA3LjAxOC0uMTYxLjAyNWgwQzE3LjA0MiwxNC44NjYsMTcuMSwxNC44NTcsMTcuMTQ5LDE0Ljg0OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcsMTMuNWwuMDUtLjAwNy0uMDUuMDA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NywxMy41bC4wNS0uMDA3LS4wNS4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVsLjA1LS4wMDctLjA1LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz5cIixcblx0fSxcblx0XCJBcGV4XCI6IHtcblx0XHRjb2xvdXI6IFwiIzBmOWJkN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEzLjY1Miw4LjMzOEE0LjkwNiw0LjkwNiwwLDAsMSwxNy4yLDYuODE0YTQuOTU3LDQuOTU3LDAsMCwxLDQuMzIsMi41Niw1Ljk3Miw1Ljk3MiwwLDAsMSwyLjQ0Mi0uNTE5LDYuMDg5LDYuMDg5LDAsMSwxLTEuMTg5LDEyLjA2LDQuNDEyLDQuNDEyLDAsMCwxLTUuNzgyLDEuODE2QTUuMDM0LDUuMDM0LDAsMCwxLDcuNjM0LDIyLjVhNC42NDYsNC42NDYsMCwwLDEtLjk2LjEsNC43MzIsNC43MzIsMCwwLDEtMi4zMzctOC44MTIsNS40MzgsNS40MzgsMCwwLDEsOS4zMTUtNS40NTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjliZDdcXFwiLz48cGF0aCBkPVxcXCJNMjUuMzc2LDMwLjk2NmgtLjU2MWE0LjY1OCw0LjY1OCwwLDAsMS0xLjI4NC0uMTM3LDEuOSwxLjksMCwwLDEtLjgxOC0uNDgyLDEuNzI2LDEuNzI2LDAsMCwxLS40NTUtLjg0Myw2Ljc3LDYuNzcsMCwwLDEtLjEwNi0xLjQxMyw1Ljg4OSw1Ljg4OSwwLDAsMC0uMDg0LTEuMzMsMSwxLDAsMCwwLS4zLS41NDQsMS4yMjMsMS4yMjMsMCwwLDAtLjY2LS4xNzlsLS4yMzYtLjAxNFYyNC4xNDVsLjIzNi0uMDE0YTEuNDgyLDEuNDgyLDAsMCwwLC41NDktLjEuNzA2LjcwNiwwLDAsMCwuMjczLS4yNjQsMS4zOTQsMS4zOTQsMCwwLDAsLjE4MS0uNTI5LDYuNjgzLDYuNjgzLDAsMCwwLC4wNDQtLjkzOSw4LjEzMiw4LjEzMiwwLDAsMSwuMTEyLTEuNjQzLDEuNywxLjcsMCwwLDEsLjQ0OC0uODQxLDIuMTQ0LDIuMTQ0LDAsMCwxLC45MDYtLjQ5Miw0LjUxNCw0LjUxNCwwLDAsMSwxLjItLjExNmguNTYxdjEuOWgtLjI1YTIuNTg5LDIuNTg5LDAsMCwwLS43NDMuMDU2LjI4NC4yODQsMCwwLDAtLjE0OC4xMTcuODM5LjgzOSwwLDAsMC0uMDU0LjM4NnEwLC4zNzItLjA1MywxLjQxM2EzLjc0LDMuNzQsMCwwLDEtLjE2NiwxLjAwOSwxLjk0NSwxLjk0NSwwLDAsMS0uNjkzLDEsMi4wMSwyLjAxLDAsMCwxLC43LDEuMDQ0LDQuNjI3LDQuNjI3LDAsMCwxLC4xNjMsMS4wNzljLjAyNy42NTcuMDQxLDEuMDc0LjA0MSwxLjI1NmEuODcxLjg3MSwwLDAsMCwuMDU3LjQwOEEuMzQzLjM0MywwLDAsMCwyNC40LDI5YTIuMzgyLDIuMzgyLDAsMCwwLC43MjguMDZoLjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4xMTgsMjUuNzg4VjI0LjM4MmExLjc1MiwxLjc1MiwwLDAsMCwuNjQ1LS4xMjkuOTM2LjkzNiwwLDAsMCwuMzc1LS4zNTQsMS42MjEsMS42MjEsMCwwLDAsLjIxNy0uNjI0QTYuODgsNi44OCwwLDAsMCwyMi40LDIyLjNhOCw4LDAsMCwxLC4xMDUtMS41ODUsMS40NTYsMS40NTYsMCwwLDEsLjM4MS0uNzIxLDEuOSwxLjksMCwwLDEsLjgtLjQzMSw0LjMzNiw0LjMzNiwwLDAsMSwxLjEyNS0uMTA1aC4zMTF2MS40YTIuODc2LDIuODc2LDAsMCwwLS44MzUuMDczLjUzLjUzLDAsMCwwLS4yNzIuMjIzLDEuMDc5LDEuMDc5LDAsMCwwLS4wODguNTEzcTAsLjM2OS0uMDUzLDEuNGEzLjUzMSwzLjUzMSwwLDAsMS0uMTUyLjk0LDEuOTE4LDEuOTE4LDAsMCwxLS4zMTMuNTk1LDIuNDcsMi40NywwLDAsMS0uNTgzLjQ4NiwyLjA0NSwyLjA0NSwwLDAsMSwuNTY1LjQ2NiwxLjg2OSwxLjg2OSwwLDAsMSwuMzM3LjY0Nyw0LjQxLDQuNDEsMCwwLDEsLjE1MiwxLjAycS4wNDEuOTczLjA0MSwxLjI0MmExLjEsMS4xLDAsMCwwLC4wOTQuNTM5LjU4NC41ODQsMCwwLDAsLjI4NC4yMzEsMi42NDksMi42NDksMCwwLDAsLjgyMy4wNzl2MS40MDZoLS4zMTFBNC40NzQsNC40NzQsMCwwLDEsMjMuNiwzMC41OWExLjY0NCwxLjY0NCwwLDAsMS0uNzEyLS40MTksMS40NzgsMS40NzgsMCwwLDEtLjM5LS43MjQsNi42MjEsNi42MjEsMCwwLDEtLjEtMS4zNTYsNi4zNzQsNi4zNzQsMCwwLDAtLjA5NC0xLjQsMS4yMzIsMS4yMzIsMCwwLDAtLjM5LS42NzFBMS40MzEsMS40MzEsMCwwLDAsMjEuMTE4LDI1Ljc4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDcyYTBcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDExLDMwLjk2NkgyNi40NVYyOS4wNTloLjI1QTIuMzI5LDIuMzI5LDAsMCwwLDI3LjQyNiwyOWEuMzIzLjMyMywwLDAsMCwuMTY1LS4xMjcuODEyLjgxMiwwLDAsMCwuMDU4LS4zNzlxMC0uMzYuMDUtMS4zNzVhMy43MjUsMy43MjUsMCwwLDEsLjE3My0xLjA0NywyLjIyMywyLjIyMywwLDAsMSwuMzg3LS43LDIuMTQ1LDIuMTQ1LDAsMCwxLC4zLS4yOTIsMi4xNDEsMi4xNDEsMCwwLDEtLjQtLjQsMi42MTIsMi42MTIsMCwwLDEtLjQyMS0xLjA5MiwxNy41MjUsMTcuNTI1LDAsMCwxLS4xLTEuODQxLDEuMzU3LDEuMzU3LDAsMCwwLS4wNTMtLjQ3OWMtLjAwOC0uMDE2LS4wMzEtLjA2Mi0uMTM2LS4xMDZhMi41MjQsMi41MjQsMCwwLDAtLjc1Ny0uMDZoLS4yNVYxOS4yaC41NjFhNC43OTMsNC43OTMsMCwwLDEsMS4yODMuMTMzLDEuODQxLDEuODQxLDAsMCwxLC44MTguNDg1LDEuNzgxLDEuNzgxLDAsMCwxLC40NTMuODQzLDYuNiw2LjYsMCwwLDEsLjEwOSwxLjQxNCw2LjM1OSw2LjM1OSwwLDAsMCwuMDc5LDEuMzM2Ljk5Mi45OTIsMCwwLDAsLjMuNTM3LDEuMjI2LDEuMjI2LDAsMCwwLC42NjQuMThsLjIzNi4wMTR2MS44NzlsLS4yMzYuMDE0YTEuNDgyLDEuNDgyLDAsMCwwLS41NDkuMS42ODYuNjg2LDAsMCwwLS4yNy4yNjIsMS40ODQsMS40ODQsMCwwLDAtLjE4Ni41MzQsNi43NDMsNi43NDMsMCwwLDAtLjA0My45MzEsOC4zODMsOC4zODMsMCwwLDEtLjEwOCwxLjY0NCwxLjY5NCwxLjY5NCwwLDAsMS0uNDQ2Ljg0NiwyLjE0MywyLjE0MywwLDAsMS0uOTEzLjQ5MkE0LjUsNC41LDAsMCwxLDI3LjAxMSwzMC45NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTMwLjcwOCwyNS43ODhhMS43NTIsMS43NTIsMCwwLDAtLjY0NS4xMjkuOTE4LjkxOCwwLDAsMC0uMzcyLjM1NCwxLjcyNSwxLjcyNSwwLDAsMC0uMjIuNjI0LDYuODIsNi44MiwwLDAsMC0uMDQ3Ljk3Myw4LjI3LDguMjcsMCwwLDEtLjEsMS41ODgsMS40MzksMS40MzksMCwwLDEtLjM3OC43MjQsMS45LDEuOSwwLDAsMS0uODA5LjQzMSw0LjMzNiw0LjMzNiwwLDAsMS0xLjEyNS4xMDVIMjYuN1YyOS4zMWEyLjY1MiwyLjY1MiwwLDAsMCwuODItLjA3OUEuNTcyLjU3MiwwLDAsMCwyNy44LDI5LDEuMDUsMS4wNSwwLDAsMCwyNy45LDI4LjVxMC0uMzU3LjA1LTEuMzY1YTMuNTMsMy41MywwLDAsMSwuMTU4LS45NzYsMS45NzYsMS45NzYsMCwwLDEsLjM0My0uNjIxQTIuMDM4LDIuMDM4LDAsMCwxLDI5LDI1LjA4NWEyLjQxNiwyLjQxNiwwLDAsMS0uNjMzLS41NTEsMi4zMzksMi4zMzksMCwwLDEtLjM3NS0uOTg0LDE3LjU2NCwxNy41NjQsMCwwLDEtLjA5NC0xLjgsMS41NzEsMS41NzEsMCwwLDAtLjA3OS0uNTg2LjQ4Ny40ODcsMCwwLDAtLjI2NC0uMjI2LDIuOCwyLjgsMCwwLDAtLjg1My0uMDc5di0xLjRoLjMxMWE0LjU3Niw0LjU3NiwwLDAsMSwxLjIxMy4xMjMsMS41ODcsMS41ODcsMCwwLDEsLjcwOS40MTksMS41MjksMS41MjksMCwwLDEsLjM5LjcyNyw2LjQzNiw2LjQzNiwwLDAsMSwuMSwxLjM1Niw2Ljg0Miw2Ljg0MiwwLDAsMCwuMDg4LDEuNCwxLjIyMywxLjIyMywwLDAsMCwuMzkzLjY3MSwxLjQ0NywxLjQ0NywwLDAsMCwuOC4yMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3MmEwXFxcIi8+XCIsXG5cdH0sXG5cdFwiQVBMXCI6IHtcblx0XHRjb2xvdXI6IFwiI2QyZDJkMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTMwLDI4LjI3NSwxNiwyLDIsMjguMjc1SDE0LjE2MlYzMGgzLjY3NlYyOC4yNzVaTTE3LjgzOCwyNC44MjZWMTMuMTYxbDYuMjE1LDExLjY2NVptLTkuODkxLDAsNi4yMTUtMTEuNjY1VjI0LjgyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIlx1MjM1RFwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiQXBwbGVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjYThjMmFiXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTcuMTgxLDQuNDM3QTUuOTkzLDUuOTkzLDAsMCwxLDIxLjU3OSwyYTUuOTc5LDUuOTc5LDAsMCwxLTEuNDQ3LDQuNDc2LDQuNzI5LDQuNzI5LDAsMCwxLTQuMTcsMS45NjFBNS4yLDUuMiwwLDAsMSwxNy4xODEsNC40MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIsMTAuMDM0Yy45NDYsMCwyLjctMS4zLDQuOTg5LTEuM2E2LjI0OSw2LjI0OSwwLDAsMSw1LjQ4NCwyLjgsNi4wOCw2LjA4LDAsMCwwLTMuMDI4LDUuMyw2LjIzNSw2LjIzNSwwLDAsMCwzLjc3Miw1LjdzLTIuNjM3LDcuNDIyLTYuMiw3LjQyMmMtMS42MzYsMC0yLjkwOC0xLjEtNC42MzEtMS4xLTEuNzU3LDAtMy41LDEuMTQ0LTQuNjM1LDEuMTQ0QzguNywzMCw0LjU4NywyMi45NTksNC41ODcsMTcuM2MwLTUuNTY4LDMuNDc4LTguNDg5LDYuNzQtOC40ODlDMTMuNDQ4LDguODExLDE1LjA5MywxMC4wMzQsMTYuMiwxMC4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJBcmR1aW5vXCI6IHtcblx0XHRjb2xvdXI6IFwiIzJkOTA5NFwiLFxuXHRcdGljb246IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiNzY3LjE3OVxcXCIgY3k9XFxcIjUxNjkuNTQzXFxcIiByPVxcXCIxNC45ODlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTcxOC4xMTIgLTQ5NTMuOTE3KSBzY2FsZSgwLjk1NSAwLjk2MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMzNmJhYzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyZDkwOTRcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2FyZHVpbm88L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOS42NDUsMTUuOTI1QTEzLjc3LDEzLjc3LDAsMSwxLDE1Ljg3NiwyLjA1NiwxMy44MTksMTMuODE5LDAsMCwxLDI5LjY0NSwxNS45MjVaXFxcIiBzdHlsZT1cXFwic3Ryb2tlOiMwMjc5N2U7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjEzNjcyMjg0NTQ5NjkyNjdweDtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTgxLDExLjY0OGMyLjQxLS4wNzYsMy4zNTkuODM0LDQuNjA1LDIuMDY5LjI4NS4yODIuNTc5LjU5LjkuOTIxbC45MjItLjk5MWE2LjIyMyw2LjIyMywwLDAsMSwzLjI1Ni0xLjkzYzEuOTM5LS4yMTEsMy4xMTktLjEyMiw0LjMxMS44MTRhNS4wMjMsNS4wMjMsMCwwLDEsMi4yNDUsMy45LDUuNjUzLDUuNjUzLDAsMCwxLTMuMjUsNS4xNTYsNS45NzUsNS45NzUsMCwwLDEtMy45MTMuMTM1LDcuNjU2LDcuNjU2LDAsMCwxLTMuNTQxLTIuOTg3Yy0xLjY3OCwyLjE0Mi0zLjE4NywzLjI1My01LjIzNSwzLjE1NS03LjQ1Mi0uMzU0LTYuODQyLTEwLjA3NS0uMy0xMC4yNDdabTEuNjU3LDcuOTk0YTkuMTkzLDkuMTkzLDAsMCwwLDIuODU2LTIuOWMtLjc0LTEuMjQzLTIuMjA5LTIuODI0LTMuNDU1LTMuMTM0YTQuMzI4LDQuMzI4LDAsMCwwLTMuMjI0Ljc3NywzLjM4NCwzLjM4NCwwLDAsMC0uNzYyLDMuNjg2LDMuNjc0LDMuNjc0LDAsMCwwLDQuNTg1LDEuNTdabS0yLjk4LTMuNDg3LDMuMjc4LjAwNXYxLjIxbC0zLjI4My4wMDVabTEzLjQ0OCwzLjZBMy44NDMsMy44NDMsMCwwLDAsMjQuOTM3LDE3YTMuNDU4LDMuNDU4LDAsMCwwLTEuODYzLTMuMTA5LDMuNjQ4LDMuNjQ4LDAsMCwwLTQuMi43MjgsNy4zNjQsNy4zNjQsMCwwLDAtMS42NDksMi4xNTFBOC45MzYsOC45MzYsMCwwLDAsMTkuMiwxOS4yNTIsNC4wMjIsNC4wMjIsMCwwLDAsMjIuNzA2LDE5Ljc1NFptLTEuOTU1LTIuMzc2LTEuMDg4LS4wMDgsMC0xLjIxNywxLjA5MSwwVjE1LjA3NWwxLjEwNy0uMDA4LS4wMDcsMS4wOTMsMS4wODUsMHYxLjE2NWwtMS4wMjEtLjAwOHYxLjEySDIwLjc1M1pcXFwiIHN0eWxlPVxcXCJzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MC4xMjEwMzA5NjQ4MDkyNzQ4MnB4O29wYWNpdHk6MC4xNjgwOTk5OTk0Mjc3OTU0O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTQuOTE3LDE2LjMzN2MwLDUuMzQ4LDcuMzU0LDcuMzQsMTAuOTg3LDEuODk0LDMuNzY1LDUuNjQ3LDEwLjgyNCwzLjI4LDEwLjgyNC0xLjlTMTkuNyw4LjY1NiwxNS45LDE0LjQ0MWMtMy42LTUuNzE5LTEwLjk4Ny0zLjQ1My0xMC45ODcsMS45Wm0xLjkzMSwwYzAtMy44Niw1LjQ1NS01LjA3OCw3Ljk5MiwwLTIuNTg4LDQuODg5LTcuOTkyLDMuODU5LTcuOTkyLDBabTEwLjExOSwwYzIuMjg2LTUuMTc4LDcuODg5LTMuNzUxLDcuODcyLjAwOFMxOS4xODYsMjEuMjc3LDE2Ljk2NywxNi4zMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDowLjI0MjA2MTkyOTYxODU0OTY0cHhcXFwiLz48cmVjdCB4PVxcXCI4Ljg5OFxcXCIgeT1cXFwiMTUuNzk1XFxcIiB3aWR0aD1cXFwiMy4yMzdcXFwiIGhlaWdodD1cXFwiMS4wNjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjY0NCAxNi44NDYgMTkuNTc2IDE2Ljg0NiAxOS41NzYgMTUuNzEyIDIwLjY0NCAxNS43MTIgMjAuNjQ0IDE0LjY0NCAyMS43NzkgMTQuNjQ0IDIxLjc3OSAxNS43MTIgMjIuODQ3IDE1LjcxMiAyMi44NDcgMTYuODQ2IDIxLjc3OSAxNi44NDYgMjEuNzc5IDE3LjkxNCAyMC42NDQgMTcuOTE0IDIwLjY0NCAxNi44NDZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJBUk0gQXNzZW1ibHlcIjoge1xuXHRcdGNvbG91cjogXCIjMDAwMGJmXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI4MzYuNjNcXFwiIHkxPVxcXCIzNi4yMDVcXFwiIHgyPVxcXCI4NDMuODAyXFxcIiB5Mj1cXFwiMTQuNDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNTI1LjkyMiAzMC4yNDkpIHJvdGF0ZSgxODApIHNjYWxlKDAuNjA3IDAuNjA3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMjc1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hc3NlbWJseTwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDJjLTEuMjQ2LDMuMDU2LTIsNS4wNTctMy4zOTEsOC4wMjJBMjEuODg0LDIxLjg4NCwwLDAsMCwxNi4yLDEzLjE1NmExNC44NTgsMTQuODU4LDAsMCwxLTQtMi4yODNDMTAuNDMsMTQuNTc5LDcuNjQ2LDE5Ljg1NSwyLDMwYzUuMTg2LTIuOTk0LDkuMDEyLTQuNjQ4LDEyLjY5MS00Ljk2NlYyNC4yaC0uODM0di0uODM3aC44MzRWMjQuMmgxLjY3NVYyMi41MjFIMTQuNjkxdi0uODM0aC0uODM0VjIwLjAxM2guODM0di0uODM0aDEuNjc1di44MzRIMTcuMnYuODM3aC0uODM3di0uODM3SDE0LjY5MXYxLjY3NWgxLjY3NXYuODM0SDE3LjJWMjQuMmgtLjgzN3YuNzgzYzMuOTguMSw4LjAwNiwxLjc3MiwxMy42MzQsNS4wMjEtLjg2My0xLjU4OS0xLjYzNi0zLjAyMS0yLjM3Mi00LjM4NWEyNS41MjYsMjUuNTI2LDAsMCwwLTQuODMzLTMuMzMzQTE0LjQzNiwxNC40MzYsMCwwLDEsMjYuNjUsMjMuOEMxOS4xNyw5Ljg3MiwxOC41NjUsOC4wMiwxNiwyWk0xMC41MTEsMTkuMTc5aDEuNjcxdi44MzRoLjgzN3Y1LjAyMWgtLjgzN1YyMi41MjFIMTAuNTExdjIuNTEySDkuNjczVjIwLjAxM2guODM3Wm0wLC44MzR2MS42NzVoMS42NzFWMjAuMDEzWm03LjUyNi0uODM0aC44Mzd2LjgzNGguODM3di44MzdoLjgzNHYtLjgzN2guODM3di0uODM0aC44Mzd2NS44NTVoLS44MzdWMjAuODVoLS44Mzd2LjgzN2gtLjgzNFYyMC44NWgtLjgzN3Y0LjE4NGgtLjgzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwYmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuODgxLDE4LjY0MmMtNi4wNjktOC4yMzctNy40NzYtMTQuODc2LTcuODMyLTE2LjQ2MUExNzUuMjE3LDE3NS4yMTcsMCwwLDAsMjMuODgxLDE4LjY0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjAuMTY1NjgwNDY4MDgyNDI4XFxcIi8+PHBhdGggZD1cXFwiTTE2LjA1MSwyLjEyLDE1LjYsMy4yMjdjLS4xNTkuMzkxLS4zMTEuNzY1LS40NjEsMS4xMzFzLS4zLjcyNC0uNDQ4LDEuMDc3LS4zLjctLjQ0OCwxLjA1My0uMy43MDYtLjQ2NSwxLjA2Ni0uMzI5LjcyOS0uNTA2LDEuMTExLS4zNjIuNzc4LS41NjEsMS4xOTNjLS4wMjguMDU3LS4wNjEuMTIzLS4wODkuMTgxQTIxLjg3MiwyMS44NzIsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODc5LDE0Ljg3OSwwLDAsMS0zLjk4OS0yLjI3NmwtLjE0LjI4N2MtLjA2NS4xMzMtLjE0NC4yODMtLjIxMi40MmwtLjEwNi4yMTljLS44NzgsMS43OTMtMi4wMDYsMy45ODQtMy41MjQsNi44MjIsMy41NTEtMiw3LjM4MS00Ljg4NywxNC4zMzgtMi40LS4zNDktLjY2MS0uNjctMS4yOC0uOTcxLTEuODYzcy0uNTgxLTEuMTI4LS44NDEtMS42NDQtLjUtMS0uNzI1LTEuNDYzLS40MzMtLjktLjYyOS0xLjMxMy0uMzgtLjgxOC0uNTU0LTEuMi0uMzM5LS43NTQtLjUtMS4xMThTMTguMDQ3LDYuOSwxNy45LDYuNTQ2cy0uMjkxLS43MDktLjQzNC0xLjA2NmMtLjAzNi0uMDkxLS4wNzMtLjE4Ni0uMTA5LS4yNzdDMTYuOTQ5LDQuMjQ3LDE2LjUzNiwzLjI1OCwxNi4wNTEsMi4xMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0fSxcblx0XCJBc2NpaURvY1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNlNDAwNDZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0zMCwzMEgyVjJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTQwMDQ2XFxcIi8+PHBhdGggZD1cXFwiTTIzLjczMSwyNC44M2EuNTg5LjU4OSwwLDAsMS0uNzYzLS4zMzdMMTYuNzI0LDkuMjY5LDEzLjkzLDE1Ljk5aDEuODMzYS41OS41OSwwLDAsMS0uMDI0LDEuMThIOC45YS41OS41OSwwLDAsMSwuMDI0LTEuMThoMy43MjdsMC0uMDEzTDE2LjE4NCw3LjVhLjU5MS41OTEsMCwwLDEsLjUzMy0uMzYzaDBhLjU5Mi41OTIsMCwwLDEsLjU1Ny4zNjZsNi43ODUsMTYuNTQ2LjAwOS4wMjFBLjU5LjU5LDAsMCwxLDIzLjczMSwyNC44M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTQuNTE2LDE4Ljc5MUg3LjY3OWEuNTkuNTksMCwwLDAtLjAyNCwxLjE4SDExTDkuMzA5LDI0LjA0M2EuNTkuNTksMCwwLDAsMS4wODUuNDY0bDAtLjAxMSwxLjg3NS00LjUwOS4wMDUtLjAxNmgyLjIxNWEuNTkuNTksMCwwLDAsLjAyMy0xLjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkFTUC5ORVQgKEMjKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzM2E5ZGNcIixcblx0XHRpY29uOiBcIjx0aXRsZT5maWxlX3R5cGVfYXNweDwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi43NSAyIDYuMzUgMiA2LjM1IDMwIDI5LjY1IDMwIDI5LjY1IDkgMjIuNzUgMlxcXCIgc3R5bGU9XFxcImZpbGw6I2M1YzVjNVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMzUgMjcuNyA4Ljc1IDI3LjcgOC43NSA0LjMgMjAuNDUgNC4zIDIwLjQ1IDExLjMgMjcuNDUgMTEuMyAyNy40NSAyNy43IDI3LjM1IDI3LjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWY1ZjVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMSwzMC45OTRBMTEuMDk0LDExLjA5NCwwLDEsMSwyMy4xOTQsMTkuOSwxMS4xMDYsMTEuMTA2LDAsMCwxLDEyLjEsMzAuOTk0Wm0wLTIwLjNBOS4yLDkuMiwwLDEsMCwyMS4zLDE5LjksOS4yMTYsOS4yMTYsMCwwLDAsMTIuMSwxMC43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkY1xcXCIvPjxyZWN0IHg9XFxcIjIuMDk5XFxcIiB5PVxcXCIxOS40NTVcXFwiIHdpZHRoPVxcXCIyMC4wMDNcXFwiIGhlaWdodD1cXFwiMC44OVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4zMjUsMTUuNzYzYTMxLjkzLDMxLjkzLDAsMCwxLTguNDg0LTEuMTFsLjI0Mi0uODA3YTMxLjM3NCwzMS4zNzQsMCwwLDAsMTUuOTkyLDBsLjIzOS44MDdBMjguMDc2LDI4LjA3NiwwLDAsMSwxMi4zMjUsMTUuNzYzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxwYXRoIGQ9XFxcIk00LjEsMjUuNzI0bC0uMjM5LS44MDdhMzEuNjUyLDMxLjY1MiwwLDAsMSwxNi40NzIsMGwtLjI0Mi44MDdBMzEuMzgsMzEuMzgsMCwwLDAsNC4xLDI1LjcyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNOC41MzYsMjkuMDU1QTI1LjQzOCwyNS40MzgsMCwwLDEsOCwxMC42MDhsLjc3Ni4zMzFhMjQuNTU4LDI0LjU1OCwwLDAsMCwuNTMzLDE3Ljc4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNMTUuNiwyOS4wNTVsLS43NzYtLjMzM2EyNC41NTksMjQuNTU5LDAsMCwwLC41MzEtMTcuNzgzbC43NzYtLjMzMUEyNS40NDMsMjUuNDQzLDAsMCwxLDE1LjYsMjkuMDU1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxyZWN0IHg9XFxcIjExLjY1NVxcXCIgeT1cXFwiOS44OThcXFwiIHdpZHRoPVxcXCIwLjg4OVxcXCIgaGVpZ2h0PVxcXCIyMC4zNzFcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz5cIixcblx0fSxcblx0XCJBdXRvSG90a2V5XCI6IHtcblx0XHRjb2xvdXI6IFwiI2Q4ZDhkOFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiNTQuNjA0XFxcIiB5MT1cXFwiMTY4LjM4OFxcXCIgeDI9XFxcIjU0LjYwNFxcXCIgeTI9XFxcIjE5NC44ODVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTM4LjYwNCAtMTY1LjYzNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkOGQ4ZDhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhM2EzYTNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjY4Ljc1NlxcXCIgeTE9XFxcIjIwOS4xNTJcXFwiIHgyPVxcXCI5MS42MzhcXFwiIHkyPVxcXCIyMDkuMTUyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC01MC42MDEgLTE1OS40NDkpIHNjYWxlKDAuODMyIDAuODM3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q3ZDdkN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTdlN2U3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDdkN2Q3XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hdXRvaG90a2V5PC90aXRsZT48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyLjgyNFxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI2LjM1M1xcXCIgcng9XFxcIjMuMDg4XFxcIiByeT1cXFwiMy4wODhcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjYuODU2LDI5LjE4MUg1LjE0NEEzLjE0OCwzLjE0OCwwLDAsMSwyLDI2LjAzN1Y1Ljk2M0EzLjE0OCwzLjE0OCwwLDAsMSw1LjE0NCwyLjgxOUgyNi44NTZBMy4xNDgsMy4xNDgsMCwwLDEsMzAsNS45NjNWMjYuMDM3QTMuMTQ4LDMuMTQ4LDAsMCwxLDI2Ljg1NiwyOS4xODFaTTUuMTQ0LDIuOTYzYTMsMywwLDAsMC0zLDNoMFYyNi4wMzdhMywzLDAsMCwwLDMsM0gyNi44NTZhMywzLDAsMCwwLDMtM1Y1Ljk2M2EzLDMsMCwwLDAtMy0zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkOGQ4ZFxcXCIvPjxyZWN0IHg9XFxcIjQuMzEzXFxcIiB5PVxcXCI0LjY0MVxcXCIgd2lkdGg9XFxcIjIzLjE2OVxcXCIgaGVpZ2h0PVxcXCIyMS45NFxcXCIgcng9XFxcIjIuNTcxXFxcIiByeT1cXFwiMi41NzFcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjQuOTExLDI2LjY0MUg2Ljg4NEEyLjYzNCwyLjYzNCwwLDAsMSw0LjI1MywyNC4wMVY3LjIxMkEyLjYzNCwyLjYzNCwwLDAsMSw2Ljg4NCw0LjU4MUgyNC45MTFhMi42MzQsMi42MzQsMCwwLDEsMi42MzEsMi42MzF2MTYuOEEyLjYzNCwyLjYzNCwwLDAsMSwyNC45MTEsMjYuNjQxWk02Ljg4NCw0LjdBMi41MTQsMi41MTQsMCwwLDAsNC4zNzMsNy4yMTJ2MTYuOGEyLjUxNCwyLjUxNCwwLDAsMCwyLjUxMSwyLjUxMUgyNC45MTFhMi41MTQsMi41MTQsMCwwLDAsMi41MTEtMi41MTFWNy4yMTJBMi41MTQsMi41MTQsMCwwLDAsMjQuOTExLDQuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmOGY4ZjhcXFwiLz48cGF0aCBkPVxcXCJNNi4xNDUsMjMuOWwyLjM0My02LjFoLjg3bDIuNSw2LjFoLS45MmwtLjcxMi0xLjg0OEg3LjY3M0w3LDIzLjlaTTcuOSwyMS40SDkuOTc0bC0uNjM3LTEuN3EtLjI5MS0uNzctLjQzMy0xLjI2NUE3Ljc3Niw3Ljc3NiwwLDAsMSw4LjU3NiwxOS42WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMy42MDcsMjMuOVYxNy44aC44MDd2Mi41aDMuMTcxVjE3LjhoLjgwN3Y2LjFoLS44MDdWMjEuMDIxaC0zLjE3VjIzLjlaXFxcIi8+PHBhdGggZD1cXFwiTTIwLjQ3OCwyMy45VjE3LjhoLjgwN3YzLjAyNWwzLjAzLTMuMDI1aDEuMDk0TDIyLjg1LDIwLjI2NywyNS41MjIsMjMuOUgyNC40NTZsLTIuMTcyLTMuMDg4LTEsLjk3NFYyMy45WlxcXCIvPlwiLFxuXHR9LFxuXHRcIkF1dG9JdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM1ZDgzYWNcIixcblx0XHRpY29uOiBcIjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjEyLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6IzVkODNhY1xcXCIvPjxwYXRoIGQ9XFxcIk0yLDE2QTE0LDE0LDAsMSwxLDE2LDMwLDE0LDE0LDAsMCwxLDIsMTZaTTE2LDQuNzg5QTExLjIxMSwxMS4yMTEsMCwxLDAsMjcuMjExLDE2LDExLjIxMSwxMS4yMTEsMCwwLDAsMTYsNC43ODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjBmMGYwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjU3NiwyMC4xNTZsLTYuNC05LjI2NGEzLjEzMSwzLjEzMSwwLDAsMC0uODE5LS44MTksMi4zNiwyLjM2LDAsMCwwLTIuNDQyLjAyMywzLjU0MywzLjU0MywwLDAsMC0uODEyLjhMNy41MzMsMjAuMTU2aDMuNzUybDQuODA4LTYuOCwxLjgzOCwyLjcxcS4yNi4zNjguNTQ0Ljc4OXQuNS43cS0uMzY4LS4wMzEtLjg2NS0uMDMxaC0zLjUzbC0xLjkxNCwyLjYzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMGYwZjBcXFwiLz5cIixcblx0fSxcblx0XCJBdnJvIElETFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDQwZmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDExLjY0OWguMDI1YTQuNzg1LDQuNzg1LDAsMCwwLDIuOTExLDEuMzM2YzIuMzA4LjIyMSw0LjU5LS40ODUsNi45LS4zMjZhNy4wMyw3LjAzLDAsMCwxLDIuNjguNjY0Yy41LS4zMTkuOTg5LS42NjIsMS40ODYtLjk4OS41LjMyNy45ODQuNjc0LDEuNDg4Ljk4OWE2LjgzNCw2LjgzNCwwLDAsMSwyLjQ4Ny0uNjVjMS45OTUtLjE2NywzLjk2Ny4zMDgsNS45NTcuMzU5YTUuMiw1LjIsMCwwLDAsNC4wMjYtMS4zODNIMzB2LjIzNmMtLjE3OC43NDctLjg4MiwxLjE3Ni0xLjI4NCwxLjc5YTQuOTQ4LDQuOTQ4LDAsMCwxLS43MzEuNzkxLDMuOCwzLjgsMCwwLDEtLjU2NS43NDgsMi41NTEsMi41NTEsMCwwLDAtLjU5NC41NDEsMi4xODEsMi4xODEsMCwwLDEtLjk2Ljc0OSwxLjE0OSwxLjE0OSwwLDAsMS0uNTY1LjU2LDYuNjksNi42OSwwLDAsMS0xLjk0LjE4NGMuNzIzLjU0OCwxLjUsMS4wMiwyLjI0NiwxLjUzNS43ODIuNTEzLDEuNTQsMS4wNjEsMi4zMjYsMS41NjhINC4wODljMS41LTEuMDU4LDMuMDU3LTIuMDM1LDQuNTUtMy4xQTYuOCw2LjgsMCwwLDEsNi43LDE3LjA2NWExLjE1NSwxLjE1NSwwLDAsMS0uNTY5LS41NjIsMi4yOCwyLjI4LDAsMCwxLTEuMDQzLS44NmMtLjI2OC0uMy0uNjctLjQ2Ni0uODUzLS44NDMtLjItLjQzNi0uNjU4LS42NjQtLjkwOS0xLjA2Ny0uNC0uNjQyLTEuMTM3LTEuMDc2LTEuMzI3LTEuODQ2di0uMjM5bTIuOTM5LDguNTI4cTExLjA1OS4wMDksMjIuMTIsMGMtMy42NjgtMi41MS03LjM3Ni00Ljk2MS0xMS4wNTktNy40NDgtMy42ODQsMi40ODctNy4zOTIsNC45NDEtMTEuMDYxLDcuNDQ5TTQuMTY3LDEzLjJhNy44NDIsNy44NDIsMCwwLDAsMi44NC43MzFjMS4xNjMuMTIzLDIuMzQxLjA0NiwzLjUuMjM2YTIuNywyLjcsMCwwLDEsMS42MDcuNzgxYy42NTktLjQ1MiwxLjMzMi0uODg1LDEuOTg3LTEuMzQybC4wMTItLjA2NGE1LjI5NCw1LjI5NCwwLDAsMC0xLjg3Ny0uNWMtMi42OTMtLjMxNi01LjM4Ny43MTItOC4wNjcuMTZtMTMuNjUyLjM1NmMuNjg4LjQ2NiwxLjM4Mi45MjUsMi4wNywxLjM5MmEyLjQ4OCwyLjQ4OCwwLDAsMSwxLjMtLjcxOSwxOS44NTksMTkuODU5LDAsMCwxLDMuMTM3LS4yNDgsOS4xMDUsOS4xMDUsMCwwLDAsMy41LS43NjhjLTIuNTgyLjUtNS4xNjgtLjQwOS03Ljc2MS0uMmE2LjI1Niw2LjI1NiwwLDAsMC0yLjI0NS41NDVNMy4zMzksMTMuMTY2YTcuMjY0LDcuMjY0LDAsMCwwLDIuNzIzLDEuM2MtLjIxOS0uMTUzLS4zNzYtLjQxNi0uNjU3LS40NTdhNy45NTUsNy45NTUsMCwwLDEtMi4wNjYtLjg0NG0yMy4zMzMuODI1Yy0uMzE3LjAyMy0uNS4zLS43MzMuNDczYTcuMjMyLDcuMjMyLDAsMCwwLDIuNzI0LTEuMyw4LjEwNiw4LjEwNiwwLDAsMS0xLjk5MS44MjRtLTIyLjUuMTI2YTUuMTIxLDUuMTIxLDAsMCwwLDIuNTg5LDEuMWMtLjExNS0uMTI4LS4yMDktLjMxMi0uNC0uMzM0YTEwLjQ1OSwxMC40NTksMCwwLDEtMi4xOS0uNzcxbTIxLjQ2Ny43NjhjLS4xODkuMDIyLS4yODQuMi0uMzk0LjMzNmE1LjE4Nyw1LjE4NywwLDAsMCwyLjYtMS4xMDksMTAuNDc3LDEwLjQ3NywwLDAsMS0yLjIuNzczTTYuMywxNC4yMDZhMy4yNDMsMy4yNDMsMCwwLDAsMi40NDUuMzUyYy0uMS0uMDgtLjE4MS0uMjE1LS4zMjUtLjIwNnEtMS4wNjMtLjA0LTIuMTItLjE0Nm0xNy4zNTEuMTM5Yy0uMTcxLS4wMTktLjI5MS4xLS40MDYuMjExYTMuMTA4LDMuMTA4LDAsMCwwLDIuNDItLjM1MnEtMSwuMTEyLTIuMDE0LjE0MW0tMTYuNzQxLjUzOGEzLjY2OSwzLjY2OSwwLDAsMCwyLjQ4Mi4zMTksMS4xMDcsMS4xMDcsMCwwLDAtLjI4MS0uMzc2LDUuMTU4LDUuMTU4LDAsMCwxLTIuMi4wNTdtMTUuNy4zMThhMy42NzgsMy42NzgsMCwwLDAsMi40ODctLjMxOSw1LjEyNyw1LjEyNywwLDAsMS0yLjItLjA1NywxLjEsMS4xLDAsMCwwLS4yODMuMzc2TTQuODM4LDE0Ljk3N2E0LjExLDQuMTEsMCwwLDAsMi4xMzMuODQxYy0uMDU3LS4wODQtLjExNC0uMTY4LS4xNzEtLjI1NGE2Ljk0OCw2Ljk0OCwwLDAsMS0xLjk2Mi0uNTg3bTIwLjM2MS41ODktLjE2OS4yNTNhNC4xNDEsNC4xNDEsMCwwLDAsMi4xMzYtLjg0Myw3LjAxNSw3LjAxNSwwLDAsMS0xLjk2Ny41OW0tMTguMS0uMTNhLjguOCwwLDAsMCwuNTM0LjMxLDcuNTc5LDcuNTc5LDAsMCwwLDIuMDM3LS4wNzNjLS4wMDktLjAzLS4wMjctLjA5LS4wMzYtLjEyLS40NTctLjA1MS0uOTIzLjA3NC0xLjM4NS4wNDdBNy4wNTQsNy4wNTQsMCwwLDEsNy4xLDE1LjQzN20xNi4xOTEuMTUxYTYuMjgsNi4yOCwwLDAsMC0uOTEzLS4wNDFsLS4wNDIuMTI2YTcuNDE2LDcuNDE2LDAsMCwwLDIuMDQ1LjA3Mi43LjcsMCwwLDAsLjUyMi0uMzMxLDQuMzQ5LDQuMzQ5LDAsMCwxLTEuNjEzLjE3NG0tMTcuNTIuMzI3YTMuMTIsMy4xMiwwLDAsMCwxLjc1NC40ODFjLS4wNjUtLjI0LS4zMzQtLjItLjUyMy0uMjM2LS40MTktLjA0MS0uODE2LS4xODYtMS4yMzEtLjI0Nk0yNSwxNi4xNjNjLS4xODguMDQxLS40NTItLjAwNi0uNTIxLjIzMmEyLjg3NCwyLjg3NCwwLDAsMCwxLjczMi0uNDgyYy0uNC4wNzktLjguMjA3LTEuMjExLjI1MU03LjczNSwxNi4xMTlhMSwxLDAsMCwwLC43ODkuMjc1LDkuMzMxLDkuMzMxLDAsMCwwLDEuMzI1LS4xNThjLS4wMjEtLjA5My0uMDA5LS4yNzgtLjE2My0uMjI4YTkuOTgzLDkuOTgzLDAsMCwxLTEuOTUxLjExMW0xNC40MTUuMTE4YTguMTU3LDguMTU3LDAsMCwwLDEuNDEyLjE1NC45LjksMCwwLDAsLjctLjI3NCw5LjM4Nyw5LjM4NywwLDAsMS0xLjkzNC0uMTFjLS4xNi0uMDYtLjE1NS4xMzItLjE3Ni4yM20tMTUuNDM4LjQ0YTEuOTYyLDEuOTYyLDAsMCwwLDEuMy4xODFsLS4wOTEtLjEyNmMtLjQuMDA2LS44MDctLjAyMi0xLjIwOS0uMDU1bTEuNjE1LjA0M2ExLjAzLDEuMDMsMCwwLDAsLjcxNi4yOTRjLjE3OS0uMTI1LjM1OC0uMjUyLjUzMS0uMzg2YTUuNzQ3LDUuNzQ3LDAsMCwxLTEuMjQ3LjA5Mm0xNC4xLS4wOTNjLjIzNy4xNDQuNDY3LjQ3Ny43ODIuMzQ1LjE2Ni0uMDUuMzY5LS4wODkuNDYxLS4yNTdhNS4yNzEsNS4yNzEsMCwwLDEtMS4yNDMtLjA4OG0xLjcxMy4yNjNhMi4wMDcsMi4wMDcsMCwwLDAsMS4xNDUtLjIxMywxMC4yNjksMTAuMjY5LDAsMCwxLTEuMTQ0LjA0OUMyMy45OTMsMTYuNjY3LDIzLjk4NCwxNi45NjEsMjQuMTM4LDE2Ljg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDBmZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjQzNSwxOC44ODZRMTEuNzE5LDE2LjAxMywxNiwxMy4xMzdsOS4zLDYuMjQ0Yy4yMjEuMTQ3LjQzOS4zLjY0OC40NjRxLTkuOTQ3LS4wMS0xOS44OTQsMGMuNDQzLS4zNDQuOTItLjY0LDEuMzgzLS45NThtOC4yNTUtNS4wNjZjLS40NTcsMS44NTktLjkwNywzLjcxOS0xLjM3NSw1LjU3Ni41Mi4wMTUsMS4wNDEuMDEyLDEuNTYyLDBxLS4wMTMtMi44NDEsMC01LjY4bC0uMTg0LjFtLTIuNSwxLjY4NGMuMjU1Ljg1OS40OCwxLjcyOC43NjMsMi41NzkuMjg5LTEuMjM4LjYtMi40NzEuOS0zLjcwNy0uNTUuMzg2LTEuMTE0Ljc1LTEuNjY4LDEuMTI5bTMuMzU3LS44NzNjLS4wMDYuNjgyLDAsMS4zNjQsMCwyLjA0NmEyLjEsMi4xLDAsMCwwLDEuMDE0LS4yNTRjLjE5My0uMTQ1LjEtLjQwOS4wMTEtLjU4NmE0LjI3Niw0LjI3NiwwLDAsMC0xLjAyNC0xLjIwN00xOC4zMjcsMTYuNGMtLjEuNTQ0LS42NjYuNzkyLTEuMTUxLjkuNDc0LjcuOTYsMS4zODksMS40MTYsMi4xLjQ2OS4wMjQuOTQuMDExLDEuNDExLjAwOWExLjYzMSwxLjYzMSwwLDAsMSwuMTYtMi45NzZjLS44MzQtLjYtMS43LTEuMTQtMi41NDQtMS43MjcuMzQ5LjUuODMxLDEuMDM3LjcwOCwxLjdtLTYuODIyLjI0MmMuMjY3LjkyMS41MjksMS44NDUuNzk0LDIuNzY3LjQ0LDAsLjg4LjAwOCwxLjMyMS0uMDA3LS4zMzktMS4xNjEtLjY4NS0yLjMxOS0xLjAwOS0zLjQ4NC0uMzg1LjIxNS0uNzM3LjQ4Mi0xLjEuNzI0bTguOC40NTJhLjk0Ni45NDYsMCwwLDAsLjA1NywxLjdjLjUzMy4wOS44NTUtLjUzMy43NzktLjk5LS4wMjYtLjQtLjQtLjg2MS0uODM2LS43MTRNNy40LDE5LjRxMS4zMjQuMDE4LDIuNjUsMGMuMjU2LS43LjQxMy0xLjQ2OC42MjktMi4yLTEuMS43MTUtMi4xODcsMS40NjEtMy4yNzksMi4xOTRtMTQuMzc3LTEuOWExLjYxNiwxLjYxNiwwLDAsMS0uODc2LDEuOWMxLjIzMy4wMTgsMi40NjUuMDE1LDMuNywwLS45MzQtLjY0NC0xLjg4My0xLjI2Ni0yLjgyMi0xLjltLTUuMjIzLjExNWMtLjAxLjYsMCwxLjIsMCwxLjguNDE1LDAsLjgzMSwwLDEuMjQ4LDAtLjQxOS0uNi0uOC0xLjIxOS0xLjI0My0xLjc5NG0tNS41NDYuOTQxaC4zNDZjLS4wNTUtLjE4Ny0uMTA4LS4zNzYtLjE2Ni0uNTYyYTMuNzUxLDMuNzUxLDAsMCwwLS4xODEuNTYzbS0uMTguNjkzYy0uMDE1LjA0LS4wNDUuMTE5LS4wNjEuMTU5LjI3NS0uMDI2LjU5LjA3MS44NDItLjA1QzExLjQ1MywxOS4xMTIsMTEuMDc0LDE5LjI3NSwxMC44MjYsMTkuMjQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDBmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkFXS1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNkMmQyZDJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNi45MjUsMjcuNzM3QzIzLjQzMSwyNi4xLDI0LjYwNiwxNC41ODgsMTMuODEsOC4zMTksMTQuMDg5LDUuNzkyLDE0Ljc1OC0uNSw3Ljk2MSwzLDYuODQ1LDMuMTI4LDQuOTA3LDIuMzMxLDQsNC44MzF2LjExNEMxNi45MTgsMy45LjA4OCwxMC41MywxNi43NSwyNS44NDRjLS4zNzMuMTc2LS42NzQtLjMyNS0xLjk3LjFsLS4wMTQuMDE2Yy0xLjcyMiwxLjEzNSwxLjkzMy43NjgsNC4xNTQsMS4yNzQtMS42MTEuNDE3LTUuNTk0LTEuMTM3LTYuMywxLjY0NS44NzctLjM3LDEsLjMyOSwxLjA3NiwxLjA3N0EyNi4yNzcsMjYuMjc3LDAsMCwxLDIyLjM3OSwyNy41YzEuMS4yODUsNC4xMTgsMi4wNDksNS4xMjIuNTUxQzI3LjUxOSwyNy45MywyNy4yMjEsMjcuODc2LDI2LjkyNSwyNy43MzdaXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQ0NiwyLjk3bC0uMTIxLjA4OGEuMjY2LjI2NiwwLDAsMC0uMDExLjM3Ny4yMTEuMjExLDAsMCwwLC4wNDUuMDM5LjQxNi40MTYsMCwwLDAsLjUyMS0uMDYzLjI2My4yNjMsMCwwLDAsLjA3OC0uMzY0bC0uMDEtLjAxNGMtLjA3Ni0uMTQzLS4xNjMtLjE3Ny0uMzQtLjEyN0MxMC41NTMsMi45MjUsMTAuNSwyLjk0NiwxMC40NDYsMi45N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTgsMjYuMzY4Yy4xNTEtLjA0MS4zMTgtLjgyOC4xNzQtLjk0OUE2LjI5LDYuMjksMCwwLDAsMTkuNCwyNi40ODVjMS4wMjMsMS4wMDcsMi42NjUtLjAzMiwzLjQ4Mi43NTlhMTAuNzM2LDEwLjczNiwwLDAsMCwxLjk1NywxLjAyN2MtLjEzOS0uMTUxLS4wMjktLjE0NC4xNzktLjAxMS0uMTMtLjMzOC00LjQyMS01LjE1Ni01LjIyNi03LjE4LjA5NS4yOTMtMS42MDgtLjgyNC0yLjA3Ni0xLjQxOS0uMDI4LjA1Ni0uMDkyLS4yNTEtLjIyOC0uNDM0LS4wNDEuMDUtLjItLjQzMy0uMy0uNzI4LjAzNy4xODctLjQ2Mi0uNS0uNjUtLjgxOC0uMDU2LjA5LS43MTkuMzcyLS44MDkuMjg2LS43MjktLjQsMi41MjksNC4wNjYuMTIyLDIuNTU5LjY3Ni42ODMuNjE0LjQtMS4wOTUtLjg1Mi4zNjQuNDUyLS4zMTcuMzEyLTEuNTUzLTEuNTIzLjE4Ni4yLS4yMTgtLjU3Ni0uMjE4LS41NzZhMi42OTIsMi42OTIsMCwwLDAtLjEzMy0uNDgzYy0uMDU2LS4zMi0uMjQxLS43MjMtLjEyLS42NS0xLjQ0NC0xLjU1NiwxLjMxNC0zLjMuNzE5LTMuNjcxLS4xMTEsMC0uMDI3LjAxNy0uMTUxLS4xMDYtLjA5LDAtLjQ2OC4yODUtLjU4Ny0uMjM0LjAwNi4xMzItLjAzNC40MDYtLjE1My0uMS0uMDIzLjA1Mi4wMTUuMS0uMDMuMTQ1LS4yMjUtLjU3Ni0uNzcyLTEuNi0xLjIxNy0yLjUzOS0uMTU4LjE1NS0uMTM4LS4wNzYtLjE5My0xLjA5Mi4wNTMuMTQ0LS4yMjUsMS45MjEtLjIuMTMtLjEyOC4wMDcuMTA4LDEuMjU4LS4zNDMuMjEtLjE0MS4wNS0uMzA1LS4zNjMtLjM0MS0xLjE3OC0uMDQ4LjYyMy0uMjkuMTg3LS41LS45MjMtLjI2OS41MDgtMS42LDEuNzQzLS4zMzMsNy42MjItLjA1My0uMzEzLjE4Ni4zNDEuNzU1LDIuNDI3LjAyMS0uMDM5LS4wMjItLjA4My4wMzgtLjEzMWE2LjMyNCw2LjMyNCwwLDAsMCwuNjc3LDEuMzY1Yy41NDQuNjU4Ljk5NSwyLjA3NC44LDEuMjc3YTExLjg2NywxMS44NjcsMCwwLDAsMi41NTQsMy4yNDlBMzQuNDIzLDM0LjQyMywwLDAsMCwxOCwyNi4zNjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTEwLjgyMywyLjU1N2EuMjkxLjI5MSwwLDAsMC0uMDUxLS4wMjJjLS4yMjEtLjA0LS40MjkuMTUzLS42NTQuMDMyLS4xNDUuMDg1LS4yNTctLjAzNi0uMzc1LS4wNzNhLjIyNC4yMjQsMCwwLDAtLjIuMDE0LDUuODIzLDUuODIzLDAsMCwwLS44MTQuNTgyLDEuMDM3LDEuMDM3LDAsMCwwLS4yNzMuNDQ5Yy0uMDIxLjA0OC0uMDM3LjEyNi4wNS4xMzdhMi4zLDIuMywwLDAsMCwuNjgyLjA0NWMuMTc3LS4wMjguMjc3LS4xNTIuNDE4LS4yMjFhMS4yLDEuMiwwLDAsMCwuNTkyLS42OGMuMDY0LS4xNzUuMTYxLS4xNjcuMjgtLjJTMTAuNywyLjYyLDEwLjgyMywyLjU1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTAuMzI1LDMuMDU4bC4xMjEtLjA4OGEuMTE3LjExNywwLDAsMSwuMTIuMDY0Yy4wNDQuMS4xMDYuMTEyLjE5My4wNDcuMDMzLS4wMjUuMDcxLS4wNTguMTE4LS4wMjdhLjExOS4xMTksMCwwLDEsLjA0MS4xMjguMjc2LjI3NiwwLDAsMS0uMTg3LjI0OC4yNjYuMjY2LDAsMCwxLS4zLS4wM0MxMC4zNDEsMy4zMDgsMTAuMjYsMy4yLDEwLjMyNSwzLjA1OFpcXFwiLz5cIixcblx0fSxcblx0XCJCYXRjaFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkOWI0MDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuMDc3IDE5LjMxNiA1LjUyMiAxOC40ODQgMTAuMzY2IDE1LjI1NSA1LjQ3OSAxMS4xODQgNi4xMiAxMC40MTYgMTIuMDM1IDE1LjM0NCA2LjA3NyAxOS4zMTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIxMi43XFxcIiB5PVxcXCIxOC4yXFxcIiB3aWR0aD1cXFwiNy44XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiQyNcIjoge1xuXHRcdGNvbG91cjogXCIjMzY4ODMyXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX2NzaGFycDwvdGl0bGU+PHBhdGggZD1cXFwiTTE5Ljc5Miw3LjA3MWgyLjU1M1Y5LjYyNEgyNC45VjcuMDcxaDIuNTUyVjkuNjI0SDMwdjIuNTUyaC0yLjU1djIuNTUxSDMwVjE3LjI4SDI3LjQ0OXYyLjU1MkgyNC45di0yLjU1bC0yLjU1LDAsMCwyLjU1MkgxOS43OTN2LTIuNTVsLTIuNTUzLDBWMTQuNzI1aDIuNTUzVjEyLjE3OUgxNy4yNFY5LjYyMmgyLjU1NFptMi41NTMsNy42NThIMjQuOVYxMi4xNzZIMjIuMzQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzM2ODgzMlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC42ODksMjQuMDEzYTEwLjIsMTAuMiwwLDAsMS00LjY1My45MTUsNy42LDcuNiwwLDAsMS01Ljg5LTIuMzM2QTguODM5LDguODM5LDAsMCwxLDIsMTYuMzY3LDkuNDM2LDkuNDM2LDAsMCwxLDQuNDEyLDkuNjQ4YTguMTgxLDguMTgxLDAsMCwxLDYuMjU5LTIuNTc3LDExLjEsMTEuMSwwLDAsMSw0LjAxOC42Mzh2My43NDVhNi44MSw2LjgxLDAsMCwwLTMuNzIzLTEuMDM2LDQuNzkzLDQuNzkzLDAsMCwwLTMuNywxLjUyOSw1Ljg3OSw1Ljg3OSwwLDAsMC0xLjQwNyw0LjE0Miw1Ljc3NCw1Ljc3NCwwLDAsMCwxLjMyOCwzLjk5Miw0LjU1MSw0LjU1MSwwLDAsMCwzLjU3NSwxLjQ4Nyw3LjI4OCw3LjI4OCwwLDAsMCwzLjkyNy0xLjEwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNjg4MzJcXFwiLz5cIixcblx0fSxcblx0XCJDXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNWY5MVwiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9jPC90aXRsZT48cGF0aCBkPVxcXCJNMTAuNjc2LDE1Ljk3M2ExMC4wNTIsMTAuMDUyLDAsMCwwLDEuMTc1LDUuMTUxLDUuNDQ2LDUuNDQ2LDAsMCwwLDYuMzA2LDIuNDA4LDQuMjg0LDQuMjg0LDAsMCwwLDMuMDktMy42Yy4xMDctLjYuMTA5LS42MS4xMDktLjYxLDEuNzM3LjI1MSw0LjUzNy42NTgsNi4yNzQuOTA2bC0uMTEuNDRhMTEuMjU2LDExLjI1NiwwLDAsMS0yLjcsNS4zOSw5LjQzOSw5LjQzOSwwLDAsMS01LjM2NiwyLjY4OCwxNC42MSwxNC42MSwwLDAsMS04LjI3Ny0uODE5QTEwLjE1MSwxMC4xNTEsMCwwLDEsNS40LDIxLjY4N2ExNi4yMjUsMTYuMjI1LDAsMCwxLC4wMTktMTEuNDUsMTAuNTM4LDEwLjUzOCwwLDAsMSw4Ljk2My03LjA1NCwxMy4zNTMsMTMuMzUzLDAsMCwxLDYuNjY2LjU1NSw5LjU3MSw5LjU3MSwwLDAsMSw2LjE2Nyw2LjljLjA5NC4zNTIuMTE0LjQxNy4xMTQuNDE3LTEuOTMyLjM1MS00LjMxOS44LTYuMjM4LDEuMjE1LS4zNjItMS45MTUtMS4yNjUtMy40MjgtMy4yLTMuOWE1LjI2Myw1LjI2MywwLDAsMC02LjYxNiwzLjU3LDEwLjQ5LDEwLjQ5LDAsMCwwLS4zODUsMS40MzlBMTIuMzEsMTIuMzEsMCwwLDAsMTAuNjc2LDE1Ljk3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDVmOTFcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJDKytcIjoge1xuXHRcdGNvbG91cjogXCIjOTg0YzkzXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX2NwcDwvdGl0bGU+PHBhdGggZD1cXFwiTTE0Ljc0MiwyNC4wNDdhMTAuMjQyLDEwLjI0MiwwLDAsMS00LjY3My45MTlBNy42MjgsNy42MjgsMCwwLDEsNC4xNTUsMjIuNjIsOC44NzYsOC44NzYsMCwwLDEsMiwxNi4zNjksOS40NzYsOS40NzYsMCwwLDEsNC40MjIsOS42MjFhOC4yMTYsOC4yMTYsMCwwLDEsNi4yODUtMi41ODgsMTEuMTUxLDExLjE1MSwwLDAsMSw0LjAzNS42NDF2My43NjFBNi44MzksNi44MzksMCwwLDAsMTEsMTAuMzk1LDQuODEzLDQuODEzLDAsMCwwLDcuMjg4LDExLjkzYTUuOSw1LjksMCwwLDAtMS40MTMsNC4xNTlBNS44LDUuOCwwLDAsMCw3LjIwOSwyMC4xYTQuNTcsNC41NywwLDAsMCwzLjU5LDEuNDkzLDcuMzE5LDcuMzE5LDAsMCwwLDMuOTQzLTEuMTEzWlxcXCIgc3R5bGU9XFxcImZpbGw6Izk4NGM5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTcuMTEyIDE0LjgyOSAxNy4xMTIgMTIuNDg1IDE5LjQ1NiAxMi40ODUgMTkuNDU2IDE0LjgyOSAyMS44IDE0LjgyOSAyMS44IDE3LjE3MiAxOS40NTYgMTcuMTcyIDE5LjQ1NiAxOS41MTUgMTcuMTEyIDE5LjUxNSAxNy4xMTIgMTcuMTcyIDE0Ljc3IDE3LjE3MiAxNC43NyAxNC44MjggMTcuMTEyIDE0LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6Izk4NGM5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjUuMzEzIDE0LjgyOSAyNS4zMTMgMTIuNDg1IDI3LjY1NyAxMi40ODUgMjcuNjU3IDE0LjgyOSAzMCAxNC44MjkgMzAgMTcuMTcyIDI3LjY1NyAxNy4xNzIgMjcuNjU3IDE5LjUxNSAyNS4zMTMgMTkuNTE1IDI1LjMxMyAxNy4xNzIgMjIuOTcxIDE3LjE3MiAyMi45NzEgMTQuODI4IDI1LjMxMyAxNC44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJDbG9qdXJlXCI6IHtcblx0XHRjb2xvdXI6IFwiIzkxZGM0N1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LDJBMTQsMTQsMCwxLDAsMzAsMTYsMTQuMDE2LDE0LjAxNiwwLDAsMCwxNiwyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjQ4OCwxNi4yNTJjLS4xMjYuMjczLS4yNjUuNTc5LS40MDguOUEyMi45NjMsMjIuOTYzLDAsMCwwLDEzLjgsMjAuNjA1YTUuMTgxLDUuMTgxLDAsMCwwLS4xMTksMS4xNTVjMCwuMTc0LjAwOS4zNTYuMDI0LjU0MmE2LjY1OCw2LjY1OCwwLDAsMCw0LjQxMy4wNjcsMy45NjYsMy45NjYsMCwwLDEtLjQ0LS40NjZjLS45LTEuMTQ2LTEuNC0yLjgyNy0yLjE5NC01LjY1MlxcXCIgc3R5bGU9XFxcImZpbGw6IzkxZGM0N1xcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNjksMTAuNTU2YTYuNjc3LDYuNjc3LDAsMCwwLS4wNzcsMTAuODgxYy40MTEtMS43MSwxLjQ0LTMuMjc2LDIuOTgzLTYuNDE1LS4wOTItLjI1Mi0uMi0uNTI3LS4zMTMtLjgxN2ExMC4yMDcsMTAuMjA3LDAsMCwwLTEuNi0yLjg4Miw0LjQzOSw0LjQzOSwwLDAsMC0xLS43NjdcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MWRjNDdcXFwiLz48cGF0aCBkPVxcXCJNMjEuODQsMjMuN2ExMC44NzcsMTAuODc3LDAsMCwxLTIuMjU3LS40NzFBOC4wMzYsOC4wMzYsMCwwLDEsMTAuNzE2LDkuOTgyYTUuOSw1LjksMCwwLDAtMS40LS4xNzFjLTIuMzU4LjAyMi00Ljg0OCwxLjMyNy01Ljg4NCw0Ljg1MmE2LjYwNiw2LjYwNiwwLDAsMC0uMDc0LDEuMzYxLDEyLjY0OSwxMi42NDksMCwwLDAsMjMsNy4yNzQsMTQuNzM3LDE0LjczNywwLDAsMS0zLjQ0OC40NTlBOC44ODEsOC44ODEsMCwwLDEsMjEuODQsMjMuN1xcXCIgc3R5bGU9XFxcImZpbGw6IzYzYjEzMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40NjMsMjEuMjQ0YTMuNTMsMy41MywwLDAsMCwuNS4xNzJBNi42OSw2LjY5LDAsMCwwLDIyLjcsMTYuMDIzaDBhNi42ODEsNi42ODEsMCwwLDAtOC43OS02LjM0OGMxLjM1OCwxLjU0OCwyLjAxMSwzLjc2MSwyLjY0Myw2LjE4MXYwcy4yLjY3My41NDcsMS41NjJhMTUuNDM0LDE1LjQzNCwwLDAsMCwxLjM2MywyLjc4OCwyLjkyNCwyLjkyNCwwLDAsMCwxLDEuMDM2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTBiNGZlXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAxMywzLjM3MkExMi42MzIsMTIuNjMyLDAsMCwwLDUuNzMxLDguNjU2YTYuNDI1LDYuNDI1LDAsMCwxLDMuNDgtMS4wMDksNi44LDYuOCwwLDAsMSwzLjE4Mi43NzJjLjEzNC4wNzcuMjYxLjE2LjM4Ni4yNDZhOC4wMzgsOC4wMzgsMCwwLDEsMTEuMjczLDcuMzU4aDBhOC4wMTMsOC4wMTMsMCwwLDEtMi4zOTEsNS43MTksOS44NzEsOS44NzEsMCwwLDAsMS4xNDMuMDY0LDYuMjQsNi4yNCwwLDAsMCw0LjA1MS0xLjI2Myw1LjM0OCw1LjM0OCwwLDAsMCwxLjctMi45MDZBMTIuNjMyLDEyLjYzMiwwLDAsMCwxNi4wMTMsMy4zNzJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ODgxZDhcXFwiLz5cIixcblx0fSxcblx0XCJDTWFrZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMWEzMDBcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjkuOTU1XFxcIiB5MT1cXFwiOS4wOTZcXFwiIHgyPVxcXCIxNi42OFxcXCIgeTI9XFxcIjIzLjMyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTAxMWExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjk2OWUxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNi4yMzFcXFwiIHkxPVxcXCIxOS42NTVcXFwiIHgyPVxcXCIyNS42MThcXFwiIHkyPVxcXCIzLjc4MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjQwZTBlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmY1OTU5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCIyMS42NjNcXFwiIHkxPVxcXCI0LjgyM1xcXCIgeDI9XFxcIjguMzgxXFxcIiB5Mj1cXFwiNS45MzhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzAxYTMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzAxZGYwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTQuNjQzXFxcIiB5MT1cXFwiOC4zNjhcXFwiIHgyPVxcXCIxNC40NzJcXFwiIHkyPVxcXCIxNC4xNDVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODQ4NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2QyZDJkMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfY21ha2U8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNy4yNTcsMTYuOTE5LDIuMjQ2LDI5Ljc0OSwxNS45OTQsMi4yODNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIuMjYyLDI5Ljc2OGwtLjAzOC0uMDNMMTYuMDEyLDIuMTkzbC4wMDguMDg4TDE3LjI4MywxNi45M2wtLjAxLjAwOFpNMTUuOTc3LDIuMzc0LDIuMzI0LDI5LjY0OSwxNy4yMywxNi45MDhaXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljk1MiwyNC45MzEsMTYsMi4yOCwyOS43NjcsMjkuNzUxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS44MTgsMjkuOGwtLjA2MS0uMDI1TDE3LjkyOSwyNC45NDhsMC0uMDE1TDE1Ljk3NSwyLjI4MmwuMDQ3LS4wMTNaTTE3Ljk3NiwyNC45MTMsMjkuNzE1LDI5LjcsMTYuMDM2LDIuNDA4WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4xNiwyMi4wOTRsMTguNjIxLDcuNjU0SDIuMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljc4MSwyOS43NzNIMi4xODNsLjA1MS0uMDQ0LDguOTIxLTcuNjY1LjAxNC4wMDYsMTguNjIyLDcuNjU1Wm0tMjcuNDY0LS4wNUgyOS42NTRsLTE4LjQ4OS03LjZaXFxcIi8+PHBhdGggZD1cXFwiTTExLjE4OSwyMi4xMTJsNi4wNTktNS4xNjguODQzLDcuOThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE4LjE0OSwyNWwtLjA3Ny0uMDMyLTYuOTc4LTIuODQyLDYuMTk0LTUuMjgzLjAxLjA5NFptLTYuODY1LTIuOSw2Ljc0OCwyLjc0OS0uODI0LTcuOFpcXFwiLz48cGF0aCBkPVxcXCJNMjkuNywyOS45MTFIMi4yODVhLjIyMS4yMjEsMCwwLDEtLjE4Mi0uMDg4LjIyMi4yMjIsMCwwLDEsLjAyMi0uMkwxNS44NjQsMi4xODdhLjE2OS4xNjksMCwwLDEsLjE0LS4xaDBhLjE1NC4xNTQsMCwwLDEsLjEzLjA4NUwyOS44NjcsMjkuNjA3YS4yMzguMjM4LDAsMCwxLC4wMi4yMjZBLjIxMS4yMTEsMCwwLDEsMjkuNywyOS45MTFabS0yNy40NjgtLjE2YS40ODQuNDg0LDAsMCwwLC4wNTcuMDExaDI3LjRsLjA3My0uMDA5YS4yMjEuMjIxLDAsMCwwLS4wMjgtLjA3N0wxNiwyLjI0OCwxNiwyLjI2LDIuMjYxLDI5LjY4NGEuMjc5LjI3OSwwLDAsMC0uMDI1LjA2N1pcXFwiLz5cIixcblx0fSxcblx0XCJDT0JPTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDVjYTVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMi4yNCw2LjU0NmE0LjQ0OSw0LjQ0OSwwLDAsMCwxLjc2NS0yLjUyMiw0LjYzNiw0LjYzNiwwLDAsMS0uMDE4LDIuMTU3Yy0uMjIzLjU4Mi0uNTY3LDEuMTA3LS44MzQsMS42NjlhMjEuNzcyLDIxLjc3MiwwLDAsMSw0LjU1OS0yLjkzOEMyNy4yMyw2LjQsMjUuODkxLDcuMywyNC45MDcsOC40NDJjLjE5LjQwOS4yOC45ODkuOCwxLjEwOWE1LjAzNiw1LjAzNiwwLDAsMCwyLjUuMTU1Yy45MTItLjMxMywxLjM0NS0xLjI1OCwxLjgtMi4wMzVWOS4xNGExNS43MzgsMTUuNzM4LDAsMCwxLS41ODIsMS43NDhjLjIuNTQ3LjQwOSwxLjA5Mi41ODIsMS42NDd2Ljk1MmMtLjIxNC4zNjgtLjQ0Mi43MjYtLjY2MywxLjA4OWE1LjI5Myw1LjI5MywwLDAsMC0xLjA2OC0xLjE2Miw0LjAzLDQuMDMsMCwwLDAtMS44NTEtLjEyNSwzLjIxMiwzLjIxMiwwLDAsMCwyLjQxMywxLjQ3Yy0uMzU5LjM3LS42NjMuOTEyLTEuMjMuOTY5LTEuNjQxLjI0Ny0zLjIwNy0uNTA1LTQuODM5LS41LS4yODIuMDItLjcwNy4wMjQtLjc4NS4zNzIsMCwuNzM1LjIxNywxLjQ1My4xOSwyLjE4OC0uMDU5LDEuMjU4LS41MTIsMi40NjYtLjUyOSwzLjcyNmExMy43ODUsMTMuNzg1LDAsMCwwLC44MzgsMy40NDhjLS41MjMtLjA3Ny0xLjA0NC0uMTY2LTEuNTYyLS4yNi0uMS4yMDgtLjE4NC40Mi0uMjYuNjM0QTQuNTE0LDQuNTE0LDAsMCwwLDIxLjgsMjYuNTMxYy0uMDYxLjEyNy0uMTgyLjM4MS0uMjQxLjUwOGwtLjU3My4xMzhjLS4xMzEuMjQ3LS4yNjMuNDkyLS40LjczOWE0LjQyMSw0LjQyMSwwLDAsMC0yLjIuMDYxYy0uNDY2LS4xODYtLjkyOC0uMzc2LTEuMzg5LS41NjdhNS45MzksNS45MzksMCwwLDAsLjQwNy0yLjMxNWMtLjI4Mi0uOTgyLTEuNi0uOTg0LTItMS44NzdhNi4yMzMsNi4yMzMsMCwwLDEtMS4wMjItMi44NTFjLS44MjMtLjQzMy0xLjQ1NS0xLjIyMS0yLjQtMS40LS4wNDguNDA5LS4wODMuODItLjE1MywxLjIyN0E2LjAxNSw2LjAxNSwwLDAsMSwxMC40ODEsMjIuNmMuMDM5LjQyMi4wNzkuODQyLjEyLDEuMjY1LjM0Ni4zMjQuNjkxLjY0OCwxLjAzMy45NzRhOS43NTIsOS43NTIsMCwwLDEtMS40MjYuNzEzLDExLjExNCwxMS4xMTQsMCwwLDEtMS42ODcuMDc3Yy0uMjU4LS4yNTQtLjUxOC0uNTA4LS43NzctLjc2NGE0Ljg3MSw0Ljg3MSwwLDAsMCwuMTE0LTIuNjA4Yy4xNzEtLjQuMzI2LS44MTIuNDc1LTEuMjIxYTUuNTY1LDUuNTY1LDAsMCwxLTMuMDEuMjA2LDUuMTIsNS4xMiwwLDAsMS0zLjI5LTQuMzMsMy44NTksMy44NTksMCwwLDEsMS40MDctMy4yNjhBNi40MSw2LjQxLDAsMCwwLDMuMiwxNi4yNTlhMy4wMzgsMy4wMzgsMCwwLDAsMi41LDIuNDY2LDMuNDYyLDMuNDYyLDAsMCwwLDEuOTYtLjY0Myw3LjQ4LDcuNDgsMCwwLDEsLjM2My00LjEzMyw1LjUyNCw1LjUyNCwwLDAsMSwzLjU4Ni0yLjY2LDQuMjM1LDQuMjM1LDAsMCwwLDIuMDExLTEuNTY2LDEwLjY3LDEwLjY3LDAsMCwxLDEuNTI5LTEuMzNjLS4yMjgtLjIxOS0uNDUzLS40NC0uNjgtLjY1OUEyLjE1NCwyLjE1NCwwLDAsMCwxNS45LDYuMDIzYzEuMjg0LS4zLDIuNTUxLS42NjEsMy44Mi0xLjAxMWEzLjc5MywzLjc5MywwLDAsMCwxLjQxNS42MDZjLjMxNy4zNDYuNDk0LDEuMTU3LDEuMS45MjhNMTguNDU4LDE5LjkwOGMuMDQyLjc2OC0uMDQ4LDEuNjY1LjY3NCwyLjE1NSwwLS43NTUtLjA0Ni0xLjUwNy0uMS0yLjI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNWNhNVxcXCIvPlwiLFxuXHR9LFxuXHRcIkNvZmZlZVNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM2ZjRlMzdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMy4xMTQsNS43MjhjLjAyNS4xNTMtLjA1MS4yOC0uMzA2LjQwOGEzLjQ1NywzLjQ1NywwLDAsMC0xLjYzLS4yMjljLS42MzcuMDUxLTEuMTcyLjI1NS0xLjEuNjg4LjEuNDMzLjcxMy42ODgsMS44MDguNTg2LDIuNjc0LS4yMjksMi42NDktMi4wMzgsNi41NzEtMi4zOTQsMy4wNTYtLjI4LDQuNzYzLjY2Miw0Ljk5MiwxLjgwOC4xNzguODkxLS41NiwxLjc1Ny0yLjc3NiwxLjkzNi0xLjk2MS4xNzgtMy4xMDctLjM1Ny0zLjIwOS0uODkxLS4wNTEtLjI4LjEtLjY4OCwxLjA0NC0uNzkuMS40MzMuNjM3Ljg5MSwxLjkxLjc2NEMyMS4zNDEsNy41MzYsMjIuMSw3LjIsMjIsNi43Yy0uMS0uNTM1LTEuMDctLjg0LTIuNi0uNzEzLTMuMTA3LjI4LTMuODcxLDEuOTg3LTYuNTIsMi4yMTZDMTEsOC4zNzYsOS40NzIsNy42ODksOS4yNjgsNi42N2MtLjA3Ni0uMzgyLS4wNzYtMS4yNzMsMS45MS0xLjQ1MiwxLjAxOS0uMDc2LDEuODM0LjEsMS45MzYuNTA5Wk0zLjE4MSwxNi4zNzRBNS4yNzksNS4yNzksMCwwLDAsMi4wMSwxOS45OWE0LjIwNiw0LjIwNiwwLDAsMCwxLjY1NSwzLjA1Niw0LDQsMCwwLDAsMy4zNjIuNzksMTEuNDM0LDExLjQzNCwwLDAsMCwxLjUtLjQ4NCw0LjIzOCw0LjIzOCwwLDAsMS0yLjc1MS0xLjAxOSw0LjEzLDQuMTMsMCwwLDEtMS43MzItMi44MjdBMy43OSwzLjc5LDAsMCwxLDQuNjU4LDE2LjUsMy45NzcsMy45NzcsMCwwLDEsNy40MDksMTVhNC44MDYsNC44MDYsMCwwLDEsMy4yMDkuOTQyLDYuOTUsNi45NSwwLDAsMC0uODY2LS44NjYsNC4xLDQuMSwwLDAsMC0zLjQ2NC0uNjg4LDUuMiw1LjIsMCwwLDAtMy4xMDcsMS45ODdaTTE2LjgzMywxMC40OUE0MC44MzcsNDAuODM3LDAsMCwxLDguNSw5LjdDNi4yMzcsOS4xNCw1LjA0LDguNTI5LDUuMDQsNy43NGMwLS4zMzEuMTUzLS42MTEuNjExLS45NDItMS40MjYuNTYtMi4xOSwxLjAxOS0yLjE5LDEuNzMyLjA3Ni43OSwxLjM1LDEuNTc5LDMuOTQ4LDIuMTlhMzkuNDQzLDM5LjQ0MywwLDAsMCw5LjM0Ny45NDJBMzguOTkzLDM4Ljk5MywwLDAsMCwyNi4xLDEwLjcyYzIuNi0uNjExLDMuODQ2LTEuNDI2LDMuODQ2LTIuMTksMC0uNTYtLjU2LTEuMS0xLjU3OS0xLjVhLjg2Mi44NjIsMCwwLDEsLjQwOC42ODhjMCwuNzktMS4xNzIsMS40MjYtMy41NCwxLjk2MUEzOS4zMjQsMzkuMzI0LDAsMCwxLDE2LjgzMywxMC40OVptOS4zNzMsMi4xOWE0Mi4zMTUsNDIuMzE1LDAsMCwxLTkuMzQ3Ljk0Miw0NC4xNDQsNDQuMTQ0LDAsMCwxLTkuNDI0LS45NDJjLTIuMTktLjU2LTMuMzYyLTEuMTcyLTMuNzY5LTEuODA4YTIzLjE4NiwyMy4xODYsMCwwLDAsMi42LDcuNjQxYy45NDIsMS40MjYsMS44ODUsMi42NzQsMi44MjcsNC4wMjRhOS44ODMsOS44ODMsMCwwLDEsLjg2NiwyLjM2OSw0LjU1OSw0LjU1OSwwLDAsMCwyLjYsMS43MzIsMTAuNjExLDEwLjYxMSwwLDAsMCw0LjE3Ny42MTFoLjE1M2ExMS44MzksMTEuODM5LDAsMCwwLDQuMy0uNjExLDQuODY5LDQuODY5LDAsMCwwLDIuNTIxLTEuNzMyaC4wNzZhOS41OTIsOS41OTIsMCwwLDEsLjc5LTIuMzY5Yy45NDItMS4zNSwxLjg4NS0yLjYsMi44MjctNC4wMjRBMjQuNjIsMjQuNjIsMCwwLDAsMzAsMTAuODcyQzI5LjQ5MSwxMS41ODUsMjguMzE5LDEyLjIsMjYuMjA1LDEyLjY4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2ZjRlMzdcXFwiLz5cIixcblx0fSxcblx0XCJDcnlzdGFsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2M4YzhjOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5Ljk0MSwxOS44MTYsMTkuOCwyOS45MjhjLS4wMjguMDI4LS4wODUuMDI4LS4xNjkuMDI4TDUuOCwyNi4yNjdjLS4wMjgsMC0uMDg0LS4wMjgtLjExMy0uMTEzTDIsMTIuMzUyYS40MTkuNDE5LDAsMCwxLC4wMjgtLjE2OUwxMi4xNjgsMi4wNzJjLjAyOC0uMDI4LjA4NC0uMDI4LjE2OS0uMDI4bDEzLjgzLDMuNzE4Yy4wMjgsMCwuMDg0LjAyOC4xMTMuMTEzbDMuNjksMTMuOEMzMC4wMjYsMTkuNzMyLDMwLDE5Ljc4OCwyOS45NDEsMTkuODE2Wk0xNi4zOTMsOC44MzIsMi44MTcsMTIuNDkzcS0uMDQyLDAsMCwuMDg0TDEyLjc2LDIyLjUyYy4wMjguMDI4LjAyOCwwLC4wODQsMEwxNi41MDYsOC45NzJDMTYuNDQ5LDguODMyLDE2LjM5Myw4LjgzMiwxNi4zOTMsOC44MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzhjOGM4XFxcIi8+XCIsXG5cdH0sXG5cdFwiQ1NTXCI6IHtcblx0XHRjb2xvdXI6IFwiIzE1NzJiNlwiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwMiAyNy4yMDEgMy42NTYgMiAyOC4zNDQgMiAyNi4wOTUgMjcuMTk3IDE1Ljk4NSAzMCA1LjkwMiAyNy4yMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiMxNTcyYjZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDI3Ljg1OCAyNC4xNyAyNS41OTMgMjYuMDkyIDQuMDYxIDE2IDQuMDYxIDE2IDI3Ljg1OFxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkY1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuMTkxIDIwLjA5IDEzLjE5MSAyMC4zNzIgMTAuMDI2IDE2IDEwLjAyNiAxNiA2LjkzNSAxNi4wMTEgNi45MzUgMjMuNzUgNi45MzUgMjMuNjc2IDcuNzY0IDIyLjkxNyAxNi4yODIgMTYgMTYuMjgyIDE2IDEzLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMDE5IDIxLjIxOCAxNi4wMDUgMjEuMjIyIDEyLjU2MyAyMC4yOTIgMTIuMzQzIDE3LjgyNyAxMC42NyAxNy44MjcgOS4yNCAxNy44MjcgOS42NzMgMjIuNjggMTYuMDA0IDI0LjQzOCAxNi4wMTkgMjQuNDM0IDE2LjAxOSAyMS4yMThcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjgyNyAxNi4xNTEgMTkuNDU1IDIwLjI5IDE2LjAwOCAyMS4yMiAxNi4wMDggMjQuNDM2IDIyLjM0NCAyMi42OCAyMi4zOTEgMjIuMTU4IDIyLjkyOCAxNi4xNTEgMTkuODI3IDE2LjE1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMDExIDYuOTM1IDE2LjAxMSA4Ljg1NSAxNi4wMTEgMTAuMDE4IDE2LjAxMSAxMC4wMjYgOC41NTUgMTAuMDI2IDguNTU1IDEwLjAyNiA4LjU0NSAxMC4wMjYgOC40ODMgOS4zMzEgOC4zNDIgNy43NjQgOC4yNjggNi45MzUgMTYuMDExIDYuOTM1XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAxMy4xOTEgMTYgMTUuMTExIDE2IDE2LjI3NCAxNiAxNi4yODIgMTIuNjExIDE2LjI4MiAxMi42MTEgMTYuMjgyIDEyLjYwMSAxNi4yODIgMTIuNTM5IDE1LjU4NyAxMi4zOTkgMTQuMDIgMTIuMzI1IDEzLjE5MSAxNiAxMy4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz5cIixcblx0fSxcblx0XCJDU1ZcIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjIuMDM4LDJINi4zNzVhMS43NTUsMS43NTUsMCwwLDAtMS43NSwxLjc1djI0LjVBMS43NTUsMS43NTUsMCwwLDAsNi4zNzUsMzBoMTkuMjVhMS43NTUsMS43NTUsMCwwLDAsMS43NS0xLjc1VjYuODU2Wm0uNTI1LDIuODQ0LDEuNjYzLDEuNTMxSDIyLjU2M1pNNi4zNzUsMjguMjVWMy43NUgyMC44MTNWOC4xMjVoNC44MTNWMjguMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjE1LjA5N1xcXCIgd2lkdGg9XFxcIjEzLjA3NlxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjI0LjQzOVxcXCIgd2lkdGg9XFxcIjkuNzYyXFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTkuNzYzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxMC4yM1xcXCIgd2lkdGg9XFxcIjE1Ljc1XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz5cIixcblx0fSxcblx0XCJEXCI6IHtcblx0XHRjb2xvdXI6IFwiI2IwMzkzMVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTg1LjQ1NVxcXCIgeTE9XFxcIjE2MDEuNjQxXFxcIiB4Mj1cXFwiMTgxLjk1NVxcXCIgeTI9XFxcIjE2MzAuMjI0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC02Mi41MjMgLTY2Ni42NDYpIHNjYWxlKDAuNDI3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNzYuMTM2XFxcIiB5MT1cXFwiMTYwMC41XFxcIiB4Mj1cXFwiMTcyLjYzNlxcXCIgeTI9XFxcIjE2MjkuMDgzXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RsYW5nPC90aXRsZT48cGF0aCBkPVxcXCJNMy45NzgsMTUuNDYyLDMuOTY5LDguNTA5QS41ODguNTg4LDAsMCwxLDQuNSw3Ljk0N2EuNjU4LjY1OCwwLDAsMSwuMDc2LDBsNi4wNzQtLjAwOWExNS43LDE1LjcsMCwwLDEsNi4wNjcuOTUsOC45LDguOSwwLDAsMSwyLjI0NCwxLjM1OSw0LjQ2OSw0LjQ2OSwwLDAsMSwyLjk0Ni0xLjA4Myw0LjExLDQuMTEsMCwwLDEsNC4yNzYsMy45MkE0LjExLDQuMTEsMCwwLDEsMjEuOTA3LDE3Yy0uMDg5LDAtLjE3Ny0uMDA4LS4yNjUtLjAxMmE2LjYxNyw2LjYxNywwLDAsMS0uMjMyLjk1Myw4NS4zODMsODUuMzgzLDAsMCwxLDguNTksMi42VjJIMlYxNS40UTIuOTkyLDE1LjQyLDMuOTc4LDE1LjQ2MlptMjIuOC03Ljk0NGExLjMyLDEuMzIsMCwwLDEsMS4zNzQsMS4yNTksMS4zNzksMS4zNzksMCwwLDEtMi43NDcsMEExLjMyLDEuMzIsMCwwLDEsMjYuNzgsNy41MTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljg2MSwxNS43ODdhNC4xMTQsNC4xMTQsMCwwLDAtMS43NDgtMy40NTgsNS44MTQsNS44MTQsMCwwLDAtMS41MDgtLjgyMiw3LjM1NCw3LjM1NCwwLDAsMC0xLjYyOS0uNDM4LDIxLjYyOSwyMS42MjksMCwwLDAtMi41ODgtLjFsLTIuNjE5LDAsLjAwNiw0LjczN2E4OC44MjcsODguODI3LDAsMCwxLDkuOTEsMS40MDhBNC45MTksNC45MTksMCwwLDAsMTcuODYxLDE1Ljc4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMDM5MzFcXFwiLz48cGF0aCBkPVxcXCJNMjAuOTkzLDE4Ljk3OWE3LjkwNiw3LjkwNiwwLDAsMS0yLjEyOCwyLjU4Miw5LjczOSw5LjczOSwwLDAsMS0zLjI1NiwxLjcxLDExLjU1OCwxMS41NTgsMCwwLDEtMS45NzEuNDcyaC0uMDE1YTMxLjg1NywzMS44NTcsMCwwLDEtMy4zMjYuMTExbC01LjYyNS4wMjJhLjYxNi42MTYsMCwwLDEtLjY4Ni0uNjgxbC0uMDEtNy43MzRRMi45OTIsMTUuNDIsMiwxNS40VjMwSDMwVjIwLjU0NGE4NS4zODMsODUuMzgzLDAsMCwwLTguNTktMi42QTYuOTg1LDYuOTg1LDAsMCwxLDIwLjk5MywxOC45NzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTIwLjk5MywxOC45NzlhNy45MDYsNy45MDYsMCwwLDEtMi4xMjgsMi41ODIsOS43MzksOS43MzksMCwwLDEtMy4yNTYsMS43MSwxMS41NTgsMTEuNTU4LDAsMCwxLTEuOTcxLjQ3MmgtLjAxNWEzMS44NTcsMzEuODU3LDAsMCwxLTMuMzI2LjExMWwtNS42MjUuMDIyYS42MTYuNjE2LDAsMCwxLS42ODYtLjY4MWwtLjAxLTcuNzM0UTIuOTkyLDE1LjQyLDIsMTUuNFYzMEgzMFYyMC41NDRhODUuMzgzLDg1LjM4MywwLDAsMC04LjU5LTIuNkE2Ljk4NSw2Ljk4NSwwLDAsMSwyMC45OTMsMTguOTc5WlxcXCIgc3R5bGU9XFxcIm9wYWNpdHk6MC4zMDAwMDAwMTE5MjA5Mjk7aXNvbGF0aW9uOmlzb2xhdGU7ZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQ3NywyMC44MzVhMTYuMDE0LDE2LjAxNCwwLDAsMCwyLjg3Ny0uMiw3LjYzMyw3LjYzMywwLDAsMCwxLjYyOC0uNSw1LjYyOCw1LjYyOCwwLDAsMCwxLjE4Ny0uNzQ4LDQuNDU3LDQuNDU3LDAsMCwwLDEuNTE4LTIuMjcxLDg4LjY5MSw4OC42OTEsMCwwLDAtOS45MS0xLjQwOGwuMDA2LDUuMTMzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NzcsMjAuODM1YTE2LjAxNCwxNi4wMTQsMCwwLDAsMi44NzctLjIsNy42MzMsNy42MzMsMCwwLDAsMS42MjgtLjUsNS42MjgsNS42MjgsMCwwLDAsMS4xODctLjc0OCw0LjQ1Nyw0LjQ1NywwLDAsMCwxLjUxOC0yLjI3MSw4OC42OTEsODguNjkxLDAsMCwwLTkuOTEtMS40MDhsLjAwNiw1LjEzM1pcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzAwMDAwMDExOTIwOTI5O2lzb2xhdGlvbjppc29sYXRlO2ZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4zODMsMTEuNzQ2YTYuOTkzLDYuOTkzLDAsMCwxLDEuMzYsNC4xNDgsNi42MTgsNi42MTgsMCwwLDEtLjEsMS4xYy4wODgsMCwuMTc2LjAxMi4yNjUuMDEyYTQuMTEsNC4xMSwwLDAsMCw0LjI3Ni0zLjkyLDQuMTEsNC4xMSwwLDAsMC00LjI3Ni0zLjkyLDQuNDcsNC40NywwLDAsMC0yLjk0NiwxLjA4M0E4LjEyMyw4LjEyMywwLDAsMSwyMC4zODMsMTEuNzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIyNi43OFxcXCIgY3k9XFxcIjguNzc3XFxcIiByeD1cXFwiMS4zNzRcXFwiIHJ5PVxcXCIxLjI1OVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk00LjY3MywyMy44NzdsNS42MjUtLjAyMmEzMS44NzEsMzEuODcxLDAsMCwwLDMuMzI2LS4xMTFoLjAxNWExMS40OSwxMS40OSwwLDAsMCwxLjk3MS0uNDcyLDkuNzM5LDkuNzM5LDAsMCwwLDMuMjU2LTEuNzEsNy45MDYsNy45MDYsMCwwLDAsMi4xMjgtMi41ODIsNi45ODUsNi45ODUsMCwwLDAsLjQxNy0xLjAzNCw3LjA1Niw3LjA1NiwwLDAsMCwuMzMyLTIuMDUxLDYuOTkyLDYuOTkyLDAsMCwwLTEuMzYtNC4xNDgsOC4xLDguMSwwLDAsMC0xLjQyMS0xLjUsOC44NzgsOC44NzgsMCwwLDAtMi4yNDQtMS4zNTksMTUuNjg2LDE1LjY4NiwwLDAsMC02LjA2Ny0uOTVsLTYuMDc0LjAwOWEuNjU4LjY1OCwwLDAsMC0uMDc2LDAsLjU4OC41ODgsMCwwLDAtLjUzMi41NjJsLjAwOSw2Ljk1Mi4wMSw3LjczNEEuNjE2LjYxNiwwLDAsMCw0LjY3MywyMy44NzdabTMuMS0xMi45MDgsMi42MTksMGEyMS42MjMsMjEuNjIzLDAsMCwxLDIuNTg4LjEsNy4zNTQsNy4zNTQsMCwwLDEsMS42MjkuNDM4LDUuODE0LDUuODE0LDAsMCwxLDEuNTA4LjgyMiw0LjExNiw0LjExNiwwLDAsMSwxLjc0OCwzLjQ1OCw0LjkwNSw0LjkwNSwwLDAsMS0uMTc1LDEuMzI3LDQuNDU3LDQuNDU3LDAsMCwxLTEuNTE4LDIuMjcxLDUuNjEzLDUuNjEzLDAsMCwxLTEuMTg3Ljc0OCw3LjY2Niw3LjY2NiwwLDAsMS0xLjYyOC41LDE2LjAwOSwxNi4wMDksMCwwLDEtMi44NzcuMmwtMi42OTQsMC0uMDA2LTUuMTMzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIkRhcnRcIjoge1xuXHRcdGNvbG91cjogXCIjNThiNmYwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuNzM5LDIuMDM3YTEuMzE0LDEuMzE0LDAsMCwwLS45MTYuMzc3bC0uMDEzLjAxTDcuMjIsNy4zODlsOC41NjYsOC41NjZ2LjAwNmwxMC4zLDEwLjMsMS45NjMtMy41MzZMMjAuOTY4LDUuNzI4bC0zLjMtMy4zYTEuMzA3LDEuMzA3LDAsMCwwLS45MjctLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NmMzZmFcXFwiLz48cGF0aCBkPVxcXCJNNy4yNSw3LjM1LDIuMjg4LDE1LjkzMWwtLjAxLjAxM2ExLjMyMiwxLjMyMiwwLDAsMC0uMzc4LjkxOSwxLjMsMS4zLDAsMCwwLC4zODcuOTI0TDYuNCwyMS45bDE2LjA4NCw2LjMyNywzLjYzNi0yLjAyLS4xLS4xLS4wMjUsMC0xMC4wODMtMTAuMUgxNS45TDcuMjUsNy4zNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMTU4OTZcXFwiLz48cGF0aCBkPVxcXCJNNy4xOTIsNy4zNjJsOC43NjQsOC43NzNoLjAxM2wxMC4wODcsMTAuMSwzLjgzOS0uNzMyTDI5LjksMTQuMTRsLTQuMDU0LTMuOTczYTYuNTIxLDYuNTIxLDAsMCwwLTMuNjI0LTEuNjE2bDAtLjA0NEw3LjE5Miw3LjM2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzU5OTdcXFwiLz48cGF0aCBkPVxcXCJNNy4yNTYsNy40MTFsOC43NjgsOC43Njh2LjAxM0wyNi4xMTYsMjYuMjg0bC0uNzM0LDMuODM5SDE0LjAyMmwtMy45NzEtNC4wNTZhNi41MjIsNi41MjIsMCwwLDEtMS42MTQtMy42MjVsLS4wNDQsMEw3LjI1Niw3LjQxMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OGI2ZjBcXFwiLz5cIixcblx0fSxcblx0XCJEaGFsbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNiN2I3YjdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiwyLjA3QTEzLjkzLDEzLjkzLDAsMSwxLDIsMTYsMTMuOTMsMTMuOTMsMCwwLDEsMTYsMi4wN1pNMTMuMjgsMjIuMzJhMS40OSwxLjQ5LDAsMSwxLTEsMS44M0ExLjQ5LDEuNDksMCwwLDEsMTMuMjgsMjIuMzJabTgtMTUuNjhhLjUzLjUzLDAsMCwxLC4zOC42Ni41Mi41MiwwLDAsMS0uNjUuMzhsLS41LS4xM2E0Mi42Nyw0Mi42NywwLDAsMC0uMzcsNy4wN0MxOC4wNiwxNi40NSwxNC4zOSwyMiwxNC4zOSwyMmwxLjkzLTcuMThhMSwxLDAsMCwwLC44OS0uNjUuOTEuOTEsMCwwLDAtMS43NS0uNDcsMSwxLDAsMCwwLC40NSwxTDE0LDIxLjg1YTY4LjM4LDY4LjM4LDAsMCwwLTEuMzQtOS4yNSwzNC4yOCwzNC4yOCwwLDAsMCwzLjIxLTYuMzFsLS41LS4xM0EuNTUuNTUsMCwwLDEsMTUsNS41YS41My41MywwLDAsMSwuNjYtLjM4bDUuNjgsMS41MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiN2I3Yjc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJEaWZmXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MwMDAwMFwiLFxuXHRcdGljb246IFwiPHJlY3QgeD1cXFwiNi45NzVcXFwiIHk9XFxcIjNcXFwiIHdpZHRoPVxcXCIxOC4wNVxcXCIgaGVpZ2h0PVxcXCI2LjAxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2MwMDAwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMi45OTIsMTAuOTV2Ni4wMTdINi45NzV2Ni4wMTdoNi4wMTdWMjloNi4wMTdWMjIuOTgzaDYuMDE3VjE2Ljk2N0gxOS4wMDhWMTAuOTVaXFxcIiBzdHlsZT1cXFwiZmlsbDpncmVlblxcXCIvPlwiLFxuXHR9LFxuXHRcIkRqYW5nby9KaW5qYTJcIjoge1xuXHRcdGNvbG91cjogXCIjZmYwMDAwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCIxNlxcXCIgY3k9XFxcIi0xMTkuMjgzXFxcIiByPVxcXCIxMy41XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0wLjk0NSwgMCwgLTk2LjczNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1NzU3NTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyZjJmMmZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2ppbmphPC90aXRsZT48cGF0aCBkPVxcXCJNMjkuMzQsMy4yNDFhMzguMjcxLDM4LjI3MSwwLDAsMS05LjQ1MSwzLjA0Yy00LjI0MS41NS0xMi4zMjksMS4xLTEzLjkzNS43MTJBMjMuMywyMy4zLDAsMCwxLDMuMiw2LjE1MWwuMzM0LDEuMTMyTDIuNSw4LjE4OGwuMTgzLjMyMy40MjQuMDMyLDEuMy4xNjIuMTgzLjU4Mi43MjcuMDY2LjM2NCwxLjIyOHMxLjU0NC4xMywyLC4xMywxLjM2My0uMDY0LDEuMzYzLS4wNjRsLjAzLjQ4NS4zMzQuMDY0di41NWwtLjcyOC42NDguMTgzLjAzMnYuMjI1YTE1LjgxNiwxNS44MTYsMCwwLDEtMi4zLjAzNGMtLjY2Ni0uMS0uNzg4LS4xLS43ODgtLjFsLS4wNi4wNjQtLjAzLjI5MWguMTUxbC4wNiwxLjI2MiwzLjM2My0uMTMtLjI0Myw0LjM2NS0uMDMuNTQ5LTIuODQ4LS4xNjItLjAzLTEuMTY0aC42MzVsLjA2MS0uNDUzLjU3NS0uMTMuMDkxLS4xMjgtMi4xNTEtLjUxOC0xLjYzNi40ODUuMjczLjIyN2guMjczbC4wMy4zODkuNTc1LjAzMlYxOC43bC0uNjM1LjE2Mi4xMjEuMjU3LjE1MS4xdi44NzNoLjM5NHY0LjA0MWwtLjYzNy4xLjA5MSwxLjE2NC4zOTMuMDY2LS4wNiwyLjY1MSwxLjcyNy4wMzItLjM2NC0yLjYxOSwyLjYwNS0uMDY0LS4xODEsMS40MjItLjI0MywxLDIuNjM1LjAzMi4wMy0yLjU4NiwxLjgxNy0uMTYyLS4wOSwxLjY0OS0uMDYxLjk2OWgxLjU0NmwtLjA2MS0yLjY1MS4yMTMuMDM0LjA2LTEuMjYyaC0uMjQzbC0uMDktLjUxOEwxMy44LDIxLjlsLjA2LTEuNzEzaC4zMzNWMTkuMTQ5bC0uNDI0LjAzMi4wNjEtMS4yMi40OTMtLjA0OS4wMjMtLjQuMjgtLjA0MS4yODctLjIxOEwxMy4xODcsMTYuOWwtMS43MTIuMzc5LjE2Ny4yNzQuMTgxLS4wMTUuMjExLS4wMDguMDM5LjUuNDc3LS4wMjMuMDA5LDEuMDgyLTIuMDUzLS4wNDcuMDY5LTEuMTU2LjA2Ny0xLjA1MVYxNS40NTVMMTAuNywxNGw0LjExMS0uMjEsNC44OTItLjI4Mi4wNDYuOTI5LS4xNzQsMi4yMzFMMTkuNSwxOC43NDRsLTEuOC0uMDMyLS4wMDktMS40NTUuNjY3LS4wMjQuMDMtLjQxMS4yNzMtLjA0MS0uMDE0LS4wODEuMjczLS4wMTUuMTUxLS4yTDE3LjAzNCwxNiwxNSwxNi40NGwuMTQ0LjI1MS4yMjctLjAxN3YuMTE0aC4yOHYuNDZsLjYuMDA4LS4wMDcsMS4yNzdoLS42MDVsLS4wMDkuMjkxLjIxMy4wMjQtLjAyMywxLjEwOC40NDcuMDI0LS4wNTMsNC4zOS0uNTkxLjEyLjAwNy4yMWguMjA2djEuMTI0aC4zNGwtLjA5LDEuNTM2TDE1Ljk3NCwyOC43bDIuMTUxLjA1Ni0uMDY5LTEuMTY0LS4xNTgtLjk2OS0uMDMxLS44NDEsMS44MjYtLjAzMi0uMDUzLDEuMy0uMDA5LDEuMzc0LDEuMDMxLjA4MSwxLjQtLjA1Ni40NC0uMTMtLjI0My0uNzM2LS4wNi0xLjE1Ni0uMTE0LS44MjQsMS43NDItLjA2NC0uMDc2LDEuMDEtLjAwNywxLjU4NS43LjA2NC42OS0uMDE1LjMzMy0uMTA1LS4yLTEuNUwyNS4yLDI1LjQ0NWwuMy0uMDMyTDI1LjUsMjQuNGwuMDgzLS4wMTctLjAxNC0uMjE4aC0uMzQxbC0uMDY5LS43NDRMMjUuMTMsMjAuMmwuMjU3LS4wMDhWMTkuMTMzbC4xMDcuMDE3di0uMjFsLS4zOC0uMDM0LjAwOS0xLjIyOC42MzUtLjA1Ni0uMDM3LS40MTMuMjgtLjAyNC0uMDE2LS4wODEuMzcxLS4xODYtMS44ODYtLjM3OS0xLjkxNi4zODkuMTIxLjIyNi4zLS4wMjQuMDE2LjFoLjI1bC4wMTQuNDg1LjYyMS0uMDA4LjA1MywxLjE4OC0yLjItLjAxNy0uMjU3LTEuNzg2LS4yMDYtLjk0Ni0uMTY2LTEuNy4xLS45OTMsNC4zNzctLjMzMi4wMTQtMS40NzkuMjItLjA1Ni0uMDE0LS4yMjUtLjE2Ny0uMXMtMi4zOTMuMzU1LTMuMTUxLjQzNmwtLjM3MS4wNC0uMDIzLS4yNzQtLjkwNS0uNDc0LjAxMS0uNTUyLjMxMS0uMDA5LjAyMy0uNzU5YTI0LjgwNywyNC44MDcsMCwwLDAsMi41NDQtLjI4M2MuNjg5LS4xNjIsMS42NjYtLjMyMywxLjY2Ni0uMzIzTDI2LjIsNy44MDlsLjkxNy0uMjY3LjA3Ni0uMjEsMi4wNzQtLjU3NC4yMzYtLjE5NC0uNzg4LTEuNzIyLjA3Ni0uMzg5LjQtLjIxLjI4OC0uODgxWk0xOS4zNzQsOS44bC0uMDExLjYyNi40Ny4wMi0uMDMuNTk0LS45MjEuNi0uMDU3LjE3NC4zNzEsMCwwLC4xNDYtMi44MTQuMTM3LjAxOS0uNDE2LjEyOC0uMjA3LjAwOS0uMTMzLDAtLjI4Ni4wOC0uMTkuMDMtLjE1NHYtLjExbC4xMjEtLjQ4NVptLTUuODg1LjUzMy0uMDY5LjQyMS4yMi4yNTktLjAxNC40NTMuMi4zMTUtLjA1My4zNzIuMTUxLjIxOC0yLjg3MS4xMTMtLjAwNy0uMS4zMzMtLjA0MS4wMTYtLjEyMi0uNzI3LS4zOTUtLjAzOS0uNjMxLjM0OC0uMDE3LjAzLS42OFptNC4yNDksOS43LDEuNzQyLjExM0wxOS40MiwyMi41bC4yMjcsMS45MjNMMTcuOCwyNC4zNTRabS0xMS42NjMuMSwyLjc4OC4xNDVMOC42MiwyMS45djEuMzU5bC4yLjc1OS0yLjcyNy4xM1ptMTcuODQzLjAxNXY0LjAxbC0xLjc3Mi4xMy0uMDYxLTIuMTE4LS4yLTEuOTczWk0xMC41LDIwLjI0bDIuMDYuMDA4LjAyMSwzLjcxOEwxMC42NTcsMjRsLS4xLTEuMjA1LS4wMDctMS4yWlxcXCIgc3R5bGU9XFxcInN0cm9rZTpyZWQ7c3Ryb2tlLXdpZHRoOjAuNXB4O2ZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIkRvY2tlclwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDk2ZTZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNi41NCwxMi42NjNIMTkuNHYyLjkyNGgxLjQ0NmE2LjI3Miw2LjI3MiwwLDAsMCwxLjk4OC0uMzMzLDUuMDkxLDUuMDkxLDAsMCwwLC45NjYtLjQzNiwzLjU4NCwzLjU4NCwwLDAsMS0uNjctMS44NDksMy45MDcsMy45MDcsMCwwLDEsLjctMi43NTNsLjMtLjM0OC4zNTguMjg4YTQuNTU4LDQuNTU4LDAsMCwxLDEuNzk1LDIuODkyLDQuMzc1LDQuMzc1LDAsMCwxLDMuMzE5LjMwOWwuMzkzLjIyNi0uMjA3LjRhNC4xNDEsNC4xNDEsMCwwLDEtNC4xNTcsMS45ODNjLTIuNDgsNi4xNjgtNy44NzEsOS4wODgtMTQuNDA5LDkuMDg4LTMuMzc4LDAtNi40NzYtMS4yNjMtOC4yNDEtNC4yNTlsLS4wMjktLjA0OUwyLjcsMjAuMjI3YTguMzE2LDguMzE2LDAsMCwxLS42NTktNC4yMDhsLjA0LS40MzNINC41MjZWMTIuNjYzSDcuMzg3VjkuOGg1LjcyMVY2Ljk0MkgxNi41NHY1LjcyMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDk2ZTZcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDA2LDI0LjU2N2E2LjAyMiw2LjAyMiwwLDAsMS0zLjE0LTMuMDg5LDEwLjMyOSwxMC4zMjksMCwwLDEtMi4yNjQuMzQzcS0uNS4wMjgtMS4wNDUuMDI4LS42MzIsMC0xLjMzMS0uMDM3YTkuMDUxLDkuMDUxLDAsMCwwLDcsMi43NjlRMTEuNjE4LDI0LjU4MSwxMi4wMDYsMjQuNTY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjA4LDEzLjM0NmguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdINi43VjEzLjM0NlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJWMTMuMzQ2Wk01LDEzLjE0SDcuNDgydjIuNDc5SDVabTIuODU5LTIuODYxaDIuNDh2Mi40NzlINy44NjNabTIuMDc3LjIwN2guMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlYxMC40ODZabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMnYyLjA2NmgtLjJabS0uMjA3LDIuNjUzaDIuNDh2Mi40OEg3Ljg2M1YxMy4xNFptMi4wNzcuMjA3aC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yVjEzLjM0NlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4ydjIuMDY3aC0uMlptMi42NTQtLjIwN0gxMy4ydjIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN0gxM3YyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4ydjIuMDY3aC0uMlptLS4yMDYtMy4wNjdIMTMuMnYyLjQ3OWgtMi40OFYxMC4yNzlabTIuMDc2LjIwN0gxM3YyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM2OCwwaC4ydjIuMDY2aC0uMlptMi42NTQsMi42NTNoMi40Nzl2Mi40OGgtMi40OFYxMy4xNFptMi4wNzYuMjA3aC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzY4LDBoLjE5MnYyLjA2N2gtLjJWMTMuMzQ2Wm0tLjIwNi0zLjA2N2gyLjQ3OXYyLjQ3OWgtMi40OFYxMC4yNzlabTIuMDc2LjIwN2guMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM2OCwwaC4xOTJ2Mi4wNjZoLS4yVjEwLjQ4NlptLS4yMDYtMy4wNjdoMi40NzlWOS45aC0yLjQ4VjcuNDE5Wm0yLjA3Ni4yMDZoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzc2LDBoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNjgsMGguMTkyVjkuNjkxaC0uMlY3LjYyNVptMi42NTQsNS41MTRoMi40Nzl2Mi40OGgtMi40OFYxMy4xNFptMi4wNzYuMjA3aC4xOTV2Mi4wNjdoLS4yVjEzLjM0NlptLS4zNzYsMGguMjA2djIuMDY3aC0uMjA2Wm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yMDVWMTMuMzQ2Wm0tLjM2OCwwaC4ydjIuMDY3aC0uMTk0VjEzLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMTg4LDE5LjYzOGEuNjg0LjY4NCwwLDEsMS0uNjg0LjY4NEEuNjg0LjY4NCwwLDAsMSwxMC4xODgsMTkuNjM4Wm0wLC4xOTRhLjQ4OS40ODksMCwwLDEsLjE3Ny4wMzMuMi4yLDAsMSwwLC4yNzUuMjY5LjQ5LjQ5LDAsMSwxLS40NTMtLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiRE9UIChHcmFwaHZpeilcIjoge1xuXHRcdGNvbG91cjogXCIjNGVkMWY4XCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjIzLjk0MiAzMCAxMi42NzkgMzAgMS40MTcgMzAgMS40MTcgMTYgMS40MTcgMiAxMi42NzkgMiAyMy45NDIgMiAyMy45NDIgMTYgMjMuOTQyIDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZTZlNmU2XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjMuMjAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjcuNDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTEuNjM4XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE1Ljg1NlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMC4wNzRcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjQuMjkzXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI4LjUxMVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjJcXFwiIHk9XFxcIjMuMjAyXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuNTczXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiNi4yMThcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTAuNDM2XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE0LjY1NVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxOC44NzNcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMjMuMDkxXFxcIiB5PVxcXCIzLjIwMlxcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjU3M1xcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNVxcXCI+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI3LjQ1NlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyNi40MDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjUuMzQ3XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjIzLjIzOFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMi4xODRcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjEuMTI5XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE5LjAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE3Ljk2NVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxNi45MTFcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTQuODAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjEzLjc0N1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxMi42OTNcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTAuNTgzXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjkuNTI5XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjguNDc0XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjYuMzY1XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjUuMzExXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjQuMjU2XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNVxcXCI+PHJlY3QgeD1cXFwiMjIuMDM2XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIwLjk4MlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxOS45MjdcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTcuODE4XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE2Ljc2NFxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxNS43MDlcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTMuNlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxMi41NDVcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTEuNDkxXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjkuMzgyXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjguMzI3XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjcuMjczXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjUuMTY0XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjQuMTA5XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjMuMDU1XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjwvZz48cGF0aCBkPVxcXCJNMTMsOC45NzZjLTIuMzA4LDAtNC4xMzEtMS4yNzQtNC4xOTMtMi45NjloMGEyLjc3NSwyLjc3NSwwLDAsMSwxLjI1My0yLjMyLDUuMyw1LjMsMCwwLDEsMi45NDMtLjk2Myw1LjI5NCw1LjI5NCwwLDAsMSwzLjAwNi43NDMsMi43NzUsMi43NzUsMCwwLDEsMS40MjEsMi4yMjFjLjA2NSwxLjc1Mi0xLjc3OSwzLjE5NC00LjIsMy4yODNDMTMuMTU4LDguOTc0LDEzLjA4LDguOTc2LDEzLDguOTc2Wm0uMjMyLTUuMnEtLjA5NSwwLS4xOSwwYTQuMjM4LDQuMjM4LDAsMCwwLTIuMzU0Ljc1NiwxLjc2MSwxLjc2MSwwLDAsMC0uODI4LDEuNDM1QzkuOSw3LjA5LDExLjQyOCw3Ljk3OCwxMy4yLDcuOTE3czMuMjIzLTEuMDY5LDMuMTgxLTIuMTkxYTEuNzYxLDEuNzYxLDAsMCwwLS45MzItMS4zNjlBNC4xNjUsNC4xNjUsMCwwLDAsMTMuMjM0LDMuNzczWlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk02LjQsMjkuMjgxQTUuMjM4LDUuMjM4LDAsMCwxLDMuNiwyOC41MTlhMi43NzUsMi43NzUsMCwwLDEtMS40MS0yLjIyOWMtLjA1Ni0xLjc1MiwxLjgtMy4xODUsNC4yMTMtMy4yNjJzNC4zNTYsMS4yMzYsNC40MTIsMi45ODhBMi43NzUsMi43NzUsMCwwLDEsOS41NDgsMjguMzNhNS4zLDUuMywwLDAsMS0yLjk0OC45NDhRNi41LDI5LjI4MSw2LjQsMjkuMjgxWm0uMTg2LTUuMi0uMTU2LDBjLTEuNzY2LjA1Ni0zLjIyOSwxLjA1Mi0zLjE5MywyLjE3NGExLjc2MSwxLjc2MSwwLDAsMCwuOTI0LDEuMzc0LDQuMjM1LDQuMjM1LDAsMCwwLDIuNC41OTMsNC4yMzUsNC4yMzUsMCwwLDAsMi4zNTctLjc0NCwxLjc2MSwxLjc2MSwwLDAsMCwuODM1LTEuNDNDOS43MjQsMjQuOTYxLDguMjksMjQuMDgsNi41OTEsMjQuMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE5LjI2MSwyOS4yNmE1LjIzOCw1LjIzOCwwLDAsMS0yLjgwNy0uNzYyLDIuNzc1LDIuNzc1LDAsMCwxLTEuNDEtMi4yMjloMGMtLjA1NS0xLjc1MiwxLjgtMy4xODUsNC4yMTMtMy4yNjJhNS4zLDUuMywwLDAsMSwzLC43NTlBMi42LDIuNiwwLDAsMSwyMi40LDI4LjMxYTUuMyw1LjMsMCwwLDEtMi45NDguOTQ4UTE5LjM1OCwyOS4yNiwxOS4yNjEsMjkuMjZaTTE2LjEsMjYuMjM2YTEuNzYxLDEuNzYxLDAsMCwwLC45MjQsMS4zNzQsNC41Nyw0LjU3LDAsMCwwLDQuNzU3LS4xNTEsMS41NTgsMS41NTgsMCwwLDAtLjA4OS0yLjgsNC4yMjYsNC4yMjYsMCwwLDAtMi40LS41OTNjLTEuNzY2LjA1Ni0zLjIyOCwxLjA1Mi0zLjE5MywyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNNi4yLDIzLjQ3N0EyNy40LDI3LjQsMCwwLDEsOS43NjksOC45ODZsLjY4Ny4zOTFBMjYuNjA5LDI2LjYwOSwwLDAsMCw2Ljk4NiwyMy40NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTAuODUzLDcuOTU3YTcuMTcxLDcuMTcxLDAsMCwwLS4wNzUsMi4zMmwtLjc1OC0uOTMtMS4xNzgtLjIzQTcuMTY1LDcuMTY1LDAsMCwwLDEwLjg1Myw3Ljk1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuODU0LDIzLjQ3N2wtLjc5LS4wMjdhMjYuNTksMjYuNTksMCwwLDAtLjkxNS03Ljg4NCwyNi42MjQsMjYuNjI0LDAsMCwwLTIuNTU0LTYuMTg5bC42ODctLjM5MWEyNy40MjMsMjcuNDIzLDAsMCwxLDIuNjMsNi4zNzNBMjcuMzcyLDI3LjM3MiwwLDAsMSwxOS44NTQsMjMuNDc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4yLDcuOTU3YTcuMTcxLDcuMTcxLDAsMCwwLDIuMDExLDEuMTU5bC0xLjE3OC4yMy0uNzU4LjkzQTcuMTY1LDcuMTY1LDAsMCwwLDE1LjIsNy45NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHJlY3QgeD1cXFwiMTEuMzQ4XFxcIiB5PVxcXCI5Ljk0NVxcXCIgd2lkdGg9XFxcIjMuNTE1XFxcIiBoZWlnaHQ9XFxcIjAuNzkxXFxcIiB0cmFuc2Zvcm09XFxcIm1hdHJpeCgwLjAxNiwgLTEsIDEsIDAuMDE2LCAyLjU1NywgMjMuMjc5KVxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4wNTQsMTMuNTI5YTcuMTcxLDcuMTcxLDAsMCwwLTEuMS0yLjA0NmwxLjEyMi40MjYsMS4xMzUtLjM5QTcuMTY1LDcuMTY1LDAsMCwwLDEzLjA1NCwxMy41MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHJlY3QgeD1cXFwiNy44MDlcXFwiIHk9XFxcIjIwLjA4MVxcXCIgd2lkdGg9XFxcIjQuNzU3XFxcIiBoZWlnaHQ9XFxcIjAuNzkxXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTIuNTYgMTguMTA4KSByb3RhdGUoLTU3LjYwMylcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNOC4xNDcsMjMuNjk0YTcuMTcxLDcuMTcxLDAsMCwwLC4xMzMtMi4zMTdsLjczNC45NDksMS4xNzEuMjZBNy4xNjUsNy4xNjUsMCwwLDAsOC4xNDcsMjMuNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxyZWN0IHg9XFxcIjE1LjQxOFxcXCIgeT1cXFwiMTguMDUxXFxcIiB3aWR0aD1cXFwiMC43OTFcXFwiIGhlaWdodD1cXFwiNC45MTlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC04LjI1NyAxMC45NTEpIHJvdGF0ZSgtMzAuNzA4KVxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44LDIzLjg1NmE3LjE3MSw3LjE3MSwwLDAsMC0yLjAwNi0xLjE2OGwxLjE3OS0uMjI1Ljc2Mi0uOTI3QTcuMTY1LDcuMTY1LDAsMCwwLDE3LjgsMjMuODU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4wMjQsMTkuMTI1YTUuMjM4LDUuMjM4LDAsMCwxLTIuODA3LS43NjIsMi43NzUsMi43NzUsMCwwLDEtMS40MS0yLjIyOSwyLjc3NSwyLjc3NSwwLDAsMSwxLjI2Ni0yLjMxNCw1LjMsNS4zLDAsMCwxLDIuOTQ4LS45NDgsNi43MTIsNi43MTIsMCwwLDEsMi4xMzQuMzEzbC0uMzMxLDFhNS42NjgsNS42NjgsMCwwLDAtMS43NjktLjI2MSw0LjIzOCw0LjIzOCwwLDAsMC0yLjM1OC43NDQsMS43NjEsMS43NjEsMCwwLDAtLjgzNSwxLjQzLDEuNzYxLDEuNzYxLDAsMCwwLC45MjQsMS4zNzQsNC4yNDIsNC4yNDIsMCwwLDAsMi40LjU5Myw1LjcsNS43LDAsMCwwLDEuNjc4LS4zNzhsLjM3OC45ODVhNi44NDQsNi44NDQsMCwwLDEtMi4wMjIuNDQ4UTEzLjEyMSwxOS4xMjUsMTMuMDI0LDE5LjEyNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTUuNDM1LDEyLjg3NmE0LjMzOCw0LjMzOCwwLDAsMC0uOTg0LDEuNjIyLDIuMDY0LDIuMDY0LDAsMCwxLS4wMTYsMi44MDYsNC40LDQuNCwwLDAsMCwuOTgyLDEuNiwzLjkzMiwzLjkzMiwwLDAsMCwuMDc4LTUuOTg2QzE1LjQ3NiwxMi45LDE1LjQ1NCwxMi44OTMsMTUuNDM1LDEyLjg3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuNTI1LDE1LjI3OGEyNy45MzEsMjcuOTMxLDAsMCwwLTEuMjYzLTMuNzQyLDQuMzc2LDQuMzc2LDAsMCwwLTEuNzc3LjUxNywyNi4wNjMsMjYuMDYzLDAsMCwxLDEuMjUzLDMuNjg1LDI2LjAzOCwyNi4wMzgsMCwwLDEsLjczNCw0LjUzNCw0LjM0Nyw0LjM0NywwLDAsMCwxLjgyNS0uMzUxQTI3LjksMjcuOSwwLDAsMCwxOS41MjUsMTUuMjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNTMsMTIuMjI5QTQuNDM3LDQuNDM3LDAsMSwwLDIyLjMsMTMuNSw0LjQzNyw0LjQzNywwLDAsMCwxNi4xNTMsMTIuMjI5Wm00LjgxMiw3LjMzMmE0LjM0Niw0LjM0NiwwLDEsMSwxLjI0OS02LjAxOEE0LjM0Niw0LjM0NiwwLDAsMSwyMC45NjUsMTkuNTYxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzJjMjkyOFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4wMTUsMTkuMTg2YS44MjIuODIyLDAsMCwwLS4xOTItLjIwOSw0LjM0Nyw0LjM0NywwLDAsMS0uMzMzLjMxOSw0LjUyMiw0LjUyMiwwLDAsMS0uNDQ2LjMzNyw0LjczLDQuNzMsMCwwLDEtLjk0LjQ3Ny42NjkuNjY5LDAsMCwwLC4wMzEuMS42NC42NCwwLDAsMCwuMDQ3LjA5NGwuNDg3LjhMMjIuNSwxOS45ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjgyODI4XFxcIi8+PHJlY3QgeD1cXFwiMjAuNzkzXFxcIiB5PVxcXCIyMC43ODRcXFwiIHdpZHRoPVxcXCIyLjE0N1xcXCIgaGVpZ2h0PVxcXCIwLjQ0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNy43NCAxNC40NjUpIHJvdGF0ZSgtMzEuMzk0KVxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxyZWN0IHg9XFxcIjIyLjg2OFxcXCIgeT1cXFwiMjAuOTZcXFwiIHdpZHRoPVxcXCIyLjE0N1xcXCIgaGVpZ2h0PVxcXCI2Ljg4N1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTkuMjA3IDE2LjA0NCkgcm90YXRlKC0zMS4zOTQpXFxcIiBzdHlsZT1cXFwiZmlsbDojMjgyODI4XFxcIi8+PHBhdGggZD1cXFwiTTI3LjA1NCwyNy40NDNsLS4yMzYtLjM4Ny0xLjgzMywxLjExOS4yMzYuMzg3YS45MjQuOTI0LDAsMCwwLDEuMjc5LjE1OWwuMTEtLjA2N0EuOTI0LjkyNCwwLDAsMCwyNy4wNTQsMjcuNDQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC42OCwxNC44NDVhLjMxNS4zMTUsMCwwLDEsLjMzOC4wMjcsMS4wNzgsMS4wNzgsMCwwLDEsLjI5NC41NzgsMS4xLDEuMSwwLDAsMSwuMDI5LjY1NC4zMjcuMzI3LDAsMCwxLS4yNzguMi40NjguNDY4LDAsMCwxLS4zNy0uMS45MjIuOTIyLDAsMCwxLS4yNjItLjUuOTU1Ljk1NSwwLDAsMS0uMDEtLjU4NUEuNDY2LjQ2NiwwLDAsMSwyMC42OCwxNC44NDVabS4wNi4yMjdhLjE0OS4xNDksMCwwLDAtLjA3NC4wNjMuMjQ3LjI0NywwLDAsMC0uMDI3LjEzMiwxLjYyNiwxLjYyNiwwLDAsMCwuMDY0LjM1NSwxLjU5MiwxLjU5MiwwLDAsMCwuMTEyLjMyOS4yNjguMjY4LDAsMCwwLC4wOTQuMTEuMTQyLjE0MiwwLDAsMCwuMDk0LjAxNS4xMjEuMTIxLDAsMCwwLC4wNzgtLjA0OC4yMTEuMjExLDAsMCwwLC4wMjgtLjEyOCwyLjY0MywyLjY0MywwLDAsMC0uMTg2LS43MjIuMjM1LjIzNSwwLDAsMC0uMDkzLS4xMDdBLjExNi4xMTYsMCwwLDAsMjAuNzM5LDE1LjA3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjk0LDE0LjRhLjMuMywwLDAsMSwuMzQ2LjA1NywxLjQ5MywxLjQ5MywwLDAsMSwuMzI1LjcsMS41MjEsMS41MjEsMCwwLDEsLjA2Ljc3MS4zMS4zMSwwLDAsMS0uMjcuMjI4LjQ0Ni40NDYsMCwwLDEtLjM3OS0uMTM3LDEuMzEsMS4zMSwwLDAsMS0uMjkyLS42MTcsMS4zNDEsMS4zNDEsMCwwLDEtLjA0MS0uN0EuNDQxLjQ0MSwwLDAsMSwyMS42OTQsMTQuNFptLjA3Mi4yNzNhLjEzNi4xMzYsMCwwLDAtLjA3Mi4wNjkuMzE1LjMxNSwwLDAsMC0uMDIxLjE1NSwyLjM1MSwyLjM1MSwwLDAsMCwuMDg0LjQyNywyLjMxLDIuMzEsMCwwLDAsLjEzMS40LjM0Ny4zNDcsMCwwLDAsLjEuMTM1LjEzLjEzLDAsMCwwLC4xLjAyMS4xMS4xMSwwLDAsMCwuMDc2LS4wNTQuMjc1LjI3NSwwLDAsMCwuMDIyLS4xNSwzLjc3MywzLjc3MywwLDAsMC0uMjI0LS44NjIuMzExLjMxMSwwLDAsMC0uMS0uMTMyQS4xLjEsMCwwLDAsMjEuNzY2LDE0LjY3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjMuNDcyLDE1LjkzNGwtLjI2OS4wMzgtLjM3OS0xLjQzOWEuOTU1Ljk1NSwwLDAsMS0uMjU3LjM5MmwtLjA4Ny0uMzMxYS44NDEuODQxLDAsMCwwLC4xNjktLjI2Ljg3NC44NzQsMCwwLDAsLjA3NS0uMzgzbC4yLS4wODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQ1NSwxNS43OTRsLS4yNjkuMDM4LS40MjktMS42MjVhMSwxLDAsMCwxLS4yNDcuNDI5bC0uMS0uMzc2YS44NzQuODc0LDAsMCwwLC4xNjItLjI4NCwxLjAyOCwxLjAyOCwwLDAsMCwuMDY0LS40MjRsLjItLjA4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNjM2LDEzLjExN2MuMTI3LS4wNTUuMjQ5LS4wMDguMzY5LjE0NGEzLjExLDMuMTEsMCwwLDEsLjQxNiwxLjAzNCwzLjE0MywzLjE0MywwLDAsMSwuMTUxLDEuMTFjLS4wMjkuMTktLjExMS4yOTQtLjI0Ny4zMTJzLS4yNzItLjA1OS0uNC0uMjMxYTIuODU1LDIuODU1LDAsMCwxLS4zODEtLjk1LDIuODcxLDIuODcxLDAsMCwxLS4xMzItMS4wMzlBLjQzNy40MzcsMCwwLDEsMjQuNjM2LDEzLjExN1ptLjEwNy40YS4xMjQuMTI0LDAsMCwwLS4wNjcuMDg4LjU4NC41ODQsMCwwLDAsMCwuMjIxLDUuMjE4LDUuMjE4LDAsMCwwLC4xMzkuNjM1LDUuMTUzLDUuMTUzLDAsMCwwLC4xODQuNi42Ni42NiwwLDAsMCwuMTIuMjA4LjExOC4xMTgsMCwwLDAsLjEuMDQuMS4xLDAsMCwwLC4wNzEtLjA3Mi41MjguNTI4LDAsMCwwLDAtLjIxNiw1LjQ0Miw1LjQ0MiwwLDAsMC0uMTQ0LS42NTMsNS40NDcsNS40NDcsMCwwLDAtLjE4OS0uNjE5LjYxMi42MTIsMCwwLDAtLjExOS0uMjA1QS4wOTMuMDkzLDAsMCwwLDI0Ljc0MywxMy41MjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI2LjYzOCwxNS40ODhsLS4yNjkuMDM4LS41NC0yLjAzOUExLjE1MSwxLjE1MSwwLDAsMSwyNS42LDE0bC0uMTI2LS40NzVhLjk5Ljk5LDAsMCwwLC4xNDgtLjMzNywxLjQzNiwxLjQzNiwwLDAsMCwuMDM5LS41MTVsLjItLjA4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjYuNjY2LDEyLjIzNmMuMTI3LS4wNTUuMjU1LjAxMi4zODUuMmE0LjU4NCw0LjU4NCwwLDAsMSwuNDc4LDEuMjY4LDQuNjIsNC42MiwwLDAsMSwuMjEzLDEuMzQzYy0uMDE4LjIyOS0uMS4zNTItLjIzMi4zN3MtLjI3OC0uMDgxLS40MjEtLjNhNC4yODQsNC4yODQsMCwwLDEtLjQ0My0xLjE3OSw0LjI4Myw0LjI4MywwLDAsMS0uMTk0LTEuMjcyQzI2LjQ2OCwxMi40MzgsMjYuNTM5LDEyLjI5MSwyNi42NjYsMTIuMjM2Wm0uMTMxLjVxLS4wNDYuMDE4LS4wNjQuMWEuODI5LjgyOSwwLDAsMCwuMDA5LjI2Niw3Ljg1Niw3Ljg1NiwwLDAsMCwuMTc4Ljc3OXEuMTQzLjU0MS4yMjEuNzM4YS45NDcuOTQ3LDAsMCwwLC4xMzQuMjU4LjExOS4xMTksMCwwLDAsLjEuMDUycS4wNDgtLjAwOS4wNjgtLjA4NWEuNzYyLjc2MiwwLDAsMC0uMDA4LS4yNjIsOC4xMTcsOC4xMTcsMCwwLDAtLjE4Mi0uOHEtLjE0OC0uNTU3LS4yMjctLjc1N2EuODkyLjg5MiwwLDAsMC0uMTMzLS4yNTZRMjYuODQzLDEyLjcxNCwyNi44LDEyLjczMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjcuNjgxLDExLjhjLjEyNy0uMDU1LjI1Ny4wMjMuMzkzLjIzNGE1LjQzMSw1LjQzMSwwLDAsMSwuNTA5LDEuMzg1LDUuNDY3LDUuNDY3LDAsMCwxLC4yNDQsMS40NmMtLjAxMy4yNDktLjA4OC4zODEtLjIyNC40cy0uMjgxLS4wOTItLjQzLS4zMjhhNS4xMSw1LjExLDAsMCwxLS40NzMtMS4yOTQsNS4xLDUuMSwwLDAsMS0uMjI1LTEuMzg4QzI3LjQ4NiwxMi4wMDgsMjcuNTU1LDExLjg1MSwyNy42ODEsMTEuOFptLjE0NC41NDJxLS4wNDYuMDE4LS4wNjIuMTA2YS45Ny45NywwLDAsMCwuMDE1LjI4OXEuMDQuMjU5LjIuODUxdC4yNC44MDdhMS4xMTIsMS4xMTIsMCwwLDAsLjE0LjI4NHEuMDU3LjA2Ny4xMDYuMDU5dC4wNjYtLjA5MWEuOS45LDAsMCwwLS4wMTQtLjI4NHEtLjA0LS4yNi0uMi0uODY3dC0uMjQ1LS44MjdhMS4wNTMsMS4wNTMsMCwwLDAtLjE0LS4yODFRMjcuODcxLDEyLjMyLDI3LjgyNSwxMi4zMzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI5LjkxNSwxNS4wMzRsLS4yNy4wMzctLjcwNi0yLjY2MWExLjQ3OCwxLjQ3OCwwLDAsMS0uMTkyLjYzNmwtLjE2Ni0uNjI1QTEuMjQ4LDEuMjQ4LDAsMCwwLDI4LjcwOCwxMmEyLjIxNCwyLjIxNCwwLDAsMCwwLS42NTNsLjItLjA4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjkuNzEyLDEwLjkyMWMuMTI3LS4wNTQuMjYzLjA0My40MDkuMjk0YTcuMzQ1LDcuMzQ1LDAsMCwxLC41NzIsMS42MTlBNy4zODIsNy4zODIsMCwwLDEsMzEsMTQuNTI3YzAsLjI4OC0uMDcyLjQ0LS4yMDkuNDU4cy0uMjg2LS4xMTQtLjQ0Ny0uMzkzYTYuOTg0LDYuOTg0LDAsMCwxLS41MzUtMS41MjQsNi45NDQsNi45NDQsMCwwLDEtLjI4Ny0xLjYyMUMyOS41MjMsMTEuMTUxLDI5LjU4NiwxMC45NzUsMjkuNzEyLDEwLjkyMVptLjE2OC42MzNxLS4wNDYuMDE4LS4wNTkuMTE5YTEuMjg3LDEuMjg3LDAsMCwwLC4wMjcuMzM0cS4wNTEuMy4yMzUuOTk0dC4yNzcuOTQ2YTEuNDg0LDEuNDg0LDAsMCwwLC4xNTQuMzM0cS4wNi4wOC4xMDkuMDcxdC4wNjMtLjFhMS4yLDEuMiwwLDAsMC0uMDI2LS4zM3EtLjA1MS0uMy0uMjM5LTEuMDExdC0uMjgyLS45NjVhMS40MiwxLjQyLDAsMCwwLS4xNTMtLjMzMlEyOS45MjYsMTEuNTM2LDI5Ljg4LDExLjU1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjEuMTY3LDE2LjM2MmEuNDIyLjQyMiwwLDAsMSwuMzE4LjE4NSwxLjAwNSwxLjAwNSwwLDAsMS0uMjc3LDEuMDMuNDIuNDIsMCwwLDEtLjM2NiwwLC41OS41OSwwLDAsMS0uMzExLS4yNjEuODA4LjgwOCwwLDAsMSwuMjU0LS44OTNBLjU2MS41NjEsMCwwLDEsMjEuMTY3LDE2LjM2MlptLS4wNTEuMTg5YS4xNzUuMTc1LDAsMCwwLS4xOTIuMDg3LDEuNDg3LDEuNDg3LDAsMCwwLS4xNTUuNTY3LjIxNi4yMTYsMCwwLDAsLjAzOS4xMjQuMTkxLjE5MSwwLDAsMCwuMDg0LjA1OC4xNDUuMTQ1LDAsMCwwLC4xODgtLjA2OSwxLjY2NiwxLjY2NiwwLDAsMCwuMTY0LS42LjE4OS4xODksMCwwLDAtLjA0LS4xMjFBLjE2My4xNjMsMCwwLDAsMjEuMTE3LDE2LjU1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjIuMzc2LDE2LjU0OGEuMzgyLjM4MiwwLDAsMSwuMzExLjIxMiwxLjAyNCwxLjAyNCwwLDAsMS0uMDE5LjY2LDEuMDIyLDEuMDIyLDAsMCwxLS4zMTUuNTgxLjM4LjM4LDAsMCwxLS4zNzMuMDI1LjUzMy41MzMsMCwwLDEtLjMtLjI5LDEuMTg5LDEuMTg5LDAsMCwxLC4zMDktMS4xQS41LjUsMCwwLDEsMjIuMzc2LDE2LjU0OFptLS4wNjIuMjNhLjE2Ny4xNjcsMCwwLDAtLjEuMDEzLjIzNS4yMzUsMCwwLDAtLjEuMSwyLjIxOSwyLjIxOSwwLDAsMC0uMTg5LjY5NC4yNjkuMjY5LDAsMCwwLC4wMzMuMTQ3LjE2Ny4xNjcsMCwwLDAsLjA4My4wNjQuMTQzLjE0MywwLDAsMCwuMSwwLC4yMDYuMjA2LDAsMCwwLC4wOTQtLjEsMi40MzYsMi40MzYsMCwwLDAsLjItLjcyNy4yNC4yNCwwLDAsMC0uMDM0LS4xNDRBLjE0MS4xNDEsMCwwLDAsMjIuMzE0LDE2Ljc3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjMuMzcsMTguNTQxbC0uMjgxLS4xMS4zMjgtMS4yMjVhMSwxLDAsMCwxLS40NDIuMTUybC4wNzUtLjI4MWEuODgxLjg4MSwwLDAsMCwuMjkyLS4xLjY4LjY4LDAsMCwwLC4yNTktLjIzOGwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNzkzLDE2LjkxOWEuMzQ4LjM0OCwwLDAsMSwuMy4yNjYsMS43NTEsMS43NTEsMCwwLDEtLjA3NS44NywxLjc0OSwxLjc0OSwwLDAsMS0uMzcxLjc5MS4zNDUuMzQ1LDAsMCwxLS4zODguMDc4LjQ4OC40ODgsMCwwLDEtLjI4OC0uMzQ4LDEuNTg3LDEuNTg3LDAsMCwxLC4wNjctLjc5LDEuNTc3LDEuNTc3LDAsMCwxLC4zNTQtLjcyN0EuNDU3LjQ1NywwLDAsMSwyNC43OTMsMTYuOTE5Wm0tLjA4NC4zMTJhLjE0My4xNDMsMCwwLDAtLjEwNy4wMjUuMzUzLjM1MywwLDAsMC0uMTA2LjE0MSw0LjEyNiw0LjEyNiwwLDAsMC0uMjU3Ljk0OC40MDguNDA4LDAsMCwwLC4wMjEuMTkyLjE0My4xNDMsMCwwLDAsLjA4LjA3NS4xMi4xMiwwLDAsMCwuMS0uMDExLjMxOC4zMTgsMCwwLDAsLjEwNS0uMTM3LDQuNDE4LDQuNDE4LDAsMCwwLC4yNjYtLjk4MS4zNzQuMzc0LDAsMCwwLS4wMjItLjE4OUEuMTE5LjExOSwwLDAsMCwyNC43MSwxNy4yMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI1LjY0OSwxOS40M2wtLjI4MS0uMTEuNDI4LTEuNmExLjAzMywxLjAzMywwLDAsMS0uNDYyLjIyN2wuMS0uMzcxYS45LjksMCwwLDAsLjMtLjE1MS45My45MywwLDAsMCwuMjgxLS4zMjFsLjI0Mi4wMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjIxMSwxNy4yOTFhLjM0NC4zNDQsMCwwLDEsLjI4Mi4zMTksMi42OTIsMi42OTIsMCwwLDEtLjEzMSwxLjA4LDIuNjksMi42OSwwLDAsMS0uNDI3LDEsLjM0LjM0LDAsMCwxLS40LjEzLjQ4Ny40ODcsMCwwLDEtLjI3My0uNDA1LDIuNDk0LDIuNDk0LDAsMCwxLC4xMjItMSwyLjQ3LDIuNDcsMCwwLDEsLjQxLS45MzdBLjQ1MS40NTEsMCwwLDEsMjcuMjExLDE3LjI5MVptLS4xMDYuMzk0YS4xMzMuMTMzLDAsMCwwLS4xMS4wMzYuNTA5LjUwOSwwLDAsMC0uMTE3LjE4Miw2LjYyMiw2LjYyMiwwLDAsMC0uMzI1LDEuMi41OTEuNTkxLDAsMCwwLC4wMDkuMjM3LjEzMy4xMzMsMCwwLDAsLjA3Ny4wODYuMTEuMTEsMCwwLDAsLjEwNy0uMDIzLjQ2NS40NjUsMCwwLDAsLjExNi0uMTc4LDQuNjM5LDQuNjM5LDAsMCwwLC4yLS42MTksNC42NTgsNC42NTgsMCwwLDAsLjEzNi0uNjE1LjU1Mi41NTIsMCwwLDAtLjAxLS4yMzVBLjExLjExLDAsMCwwLDI3LjEwNSwxNy42ODVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjkyNywyMC4zMmwtLjI4MS0uMTEuNTI4LTEuOTcxYTEuMTM0LDEuMTM0LDAsMCwxLS40ODIuM2wuMTIzLS40NmEuOTcyLjk3MiwwLDAsMCwuMzE3LS4yLDEuMjQ4LDEuMjQ4LDAsMCwwLC4zLS40bC4yNDIuMDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yOC45NTMsMjAuNzIxbC0uMjgxLS4xMS41NzMtMi4xMzlhMS4yLDEuMiwwLDAsMS0uNDkxLjMzNmwuMTM0LS41YTEuMDIsMS4wMiwwLDAsMCwuMzIzLS4yMiwxLjQxMywxLjQxMywwLDAsMCwuMzE0LS40NGwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMzAuNzE3LDE3LjgzYy4xNTEuMDIzLjIzOC4xNTUuMjYyLjRhNC40MzYsNC40MzYsMCwwLDEtLjIxMywxLjM4NSw0LjQzNCw0LjQzNCwwLDAsMS0uNTA5LDEuMzA3Yy0uMTQuMTk1LS4yOC4yNjMtLjQyMi4yMDdzLS4yMjYtLjIyLS4yNS0uNDg5YTQuMTk0LDQuMTk0LDAsMCwxLC4yLTEuMyw0LjE0Myw0LjE0MywwLDAsMSwuNDkyLTEuMjQxQzMwLjQyLDE3LjksMzAuNTY2LDE3LjgwNywzMC43MTcsMTcuODNabS0uMTM3LjUxM2EuMTMyLjEzMiwwLDAsMC0uMTE1LjA1My44LjgsMCwwLDAtLjEzMy4yNDEsNy41ODcsNy41ODcsMCwwLDAtLjI0NC43OTEsNy41MzksNy41MzksMCwwLDAtLjE4Ljc3OS45My45MywwLDAsMC0uMDA5LjMuMTMxLjEzMSwwLDAsMCwuMDczLjEuMTA4LjEwOCwwLDAsMCwuMTExLS4wMzkuNzQyLjc0MiwwLDAsMCwuMTMyLS4yMzcsNy44LDcuOCwwLDAsMCwuMjQ4LS44MDYsNy44MzUsNy44MzUsMCwwLDAsLjE4NS0uOC44ODQuODg0LDAsMCwwLC4wMDgtLjNRMzAuNjMzLDE4LjM1MywzMC41OCwxOC4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+XCIsXG5cdH0sXG5cdFwiRWRpdG9yQ29uZmlnXCI6IHtcblx0XHRjb2xvdXI6IFwiI2UzZTNmOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguNzA5LDE4LjM1MWExLjI2NywxLjI2NywwLDAsMCwuNTMyLTEuMzc5QzguNjkyLDE3LjIwNyw4LjcxOCwxNy43NDksOC43MDksMTguMzUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2UzZTNmOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45MjQsMTkuODUyYS44NzEuODcxLDAsMCwwLC42Mi0xLjEzNUExLjQzLDEuNDMsMCwwLDAsMTQuOTI0LDE5Ljg1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlM2UzZjhcXFwiLz48cGF0aCBkPVxcXCJNMi43MTMsMjcuMDc5YTEuNTM4LDEuNTM4LDAsMCwwLC41MjQsMS4zNTNjMS40MTQuNzk0LDYuMzcyLjE3NSw4LjA1Ni0uMmExNC45OTQsMTQuOTk0LDAsMCwwLDIuNDI2LTEuMjEzLDIyLjY0MywyMi42NDMsMCwwLDAsNC43MTMtMi41NTdjMS4wODItLjc5NCwyLjgtMy4wMjksMi45ODUtNC4zNjRsLTEuNDc1LS4zMzJjLS4wMzUsMS41LS4zNzUsMS44NDItMS43MTEsMi4xOTFhMTAuNjYyLDEwLjY2MiwwLDAsMS0zLjU3LjE0LDMuMzYyLDMuMzYyLDAsMCwxLTIuMzEzLTEuNTYyYy0xLjA2NS0xLjQxNC4yMzYtMi40LTEuNDQ5LTIuNS0xLjc3MiwyLjE3My00LjkuNjExLTYuMjY3LjM5M2EzMC4wNjYsMzAuMDY2LDAsMCwwLTEuOTM4LDcuNiwyLjc0OCwyLjc0OCwwLDAsMSwyLjEzOC4zMjNjMi42ODgsMS4wMzkuMzQsMS45NTUtLjczMywxLjY4NUMzLjM2OCwyNy44NjQsMy4xNDEsMjcuMzg0LDIuNzEzLDI3LjA3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNNi4yMzEsMTQuNTM3YTExLjUzOSwxMS41MzksMCwwLDEsMi45ODUsMS4xMjZjMS41MS43NTEsMS43ODEuNjQ2LDEuOTIsMS42OTMuMDE3LjE5Mi0uMDE3LjMuNTMyLjQ3MS45MjUuMjg4LS41MzItLjIyNywxLjk0Ni0uMjE4QTE2LjY0LDE2LjY0LDAsMCwxLDE5LjU1OSwxOC45Yy40NTQuMjg4LjM2Ny42NTUsMS45LjYxMWExOC43NjcsMTguNzY3LDAsMCwwLTEuMi02LjE2MmMtLjg2NC0yLjAwNy0yLjAwNy0yLjMxMy00LjMzOC0zLjA2NC0xLjM2Mi0uNDM2LTUuMzU5LS45MTYtNi42LS4xNDgtMS4xNjEuNzI0LTEuMzc5LDEuNTg5LTIuNDYxLDMuMTA3QTUuMzY2LDUuMzY2LDAsMCwwLDYuMjMxLDE0LjUzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNMTUuODQsMTguMjQ2Yy44NzMuMzU4LS4wNDQsMi42NzEtMS4yNTcsMi4xMTItLjM5My0xLjEwOC41NDEtMS43MzcuNzk0LTIuMjM0YTguNTEsOC41MSwwLDAsMC0yLjQ2MS0uMTQ4Yy0uNTc2LjIxOC0uNzA3LDEuNDQ5LS40MSwyLjAyNSwxLjQsMi43NDEsNy41NjcsMi4xNTYsNi45MTMuMDI2LS4yNjItLjg2NC0uNTA2LTEtMS4zODgtMS4zQTYuODg1LDYuODg1LDAsMCwwLDE1Ljg0LDE4LjI0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNNC44NjksMTcuOTQxYy43LjY3MiwyLjI3OC43NzcsMy4zLjgyOUM4LjMsMTcuNDE3LDguNDEzLDE2LjQsOS41LDE2LjQ4M2ExLjYsMS42LDAsMCwxLS4zMDUsMi4xMywxLjM4NiwxLjM4NiwwLDAsMCwxLjM2Mi0xLjc2MywxNC41NDIsMTQuNTQyLDAsMCwwLTQuNDYtMS44OTRBOS41MDYsOS41MDYsMCwwLDAsNC44NjksMTcuOTQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZmRmZFxcXCIvPjxwYXRoIGQ9XFxcIk0zLjIyOCwyNi41ODFjLjU3Ni0uMDUyLDIuMDc3LjM4NCwyLjIuODczQzQuNDk0LDI3LjU2OCwzLjMwNywyNy40OCwzLjIyOCwyNi41ODFabS0uNTE1LjVjLjQyOC4zMDUuNjU1Ljc4NiwxLjM4OC45NiwxLjA3NC4yNzEsMy40MjEtLjY0Ni43MzMtMS42ODVBMi43NDgsMi43NDgsMCwwLDAsMi43LDI2LjAzMmEzMC4wNjYsMzAuMDY2LDAsMCwxLDEuOTM4LTcuNmMxLjM3LjIxOCw0LjQ5NSwxLjc4MSw2LjI2Ny0uMzkzLDEuNjg1LjEuMzg0LDEuMDgyLDEuNDQ5LDIuNUEzLjM2MiwzLjM2MiwwLDAsMCwxNC42NjIsMjIuMWExMC42NjIsMTAuNjYyLDAsMCwwLDMuNTctLjE0YzEuMzM1LS4zNDksMS42NzYtLjY5LDEuNzExLTIuMTkxbDEuNDc1LjMzMmMtLjE4MywxLjMzNS0xLjksMy41Ny0yLjk4NSw0LjM2NGEyMi42NDMsMjIuNjQzLDAsMCwxLTQuNzEzLDIuNTU3LDE0Ljk5NCwxNC45OTQsMCwwLDEtMi40MjYsMS4yMTNjLTEuNjg1LjM3NS02LjY0MiwxLTguMDU2LjJBMS41MzgsMS41MzgsMCwwLDEsMi43MTMsMjcuMDc5Wm0xMi4yMTEtNy4yMjdhMS40MywxLjQzLDAsMCwxLC42Mi0xLjEzNUEuODcxLjg3MSwwLDAsMSwxNC45MjQsMTkuODUyWm0uOTE2LTEuNjA2YTYuODg1LDYuODg1LDAsMCwxLDIuMTkxLjQ4Yy44ODIuMywxLjEyNi40MzYsMS4zODgsMS4zLjY1NSwyLjEzLTUuNTE2LDIuNzE0LTYuOTEzLS4wMjYtLjMtLjU3Ni0uMTY2LTEuODA3LjQxLTIuMDI1YTguNTEsOC41MSwwLDAsMSwyLjQ2MS4xNDhjLS4yNTMuNS0xLjE4NywxLjEyNi0uNzk0LDIuMjM0QzE1LjgsMjAuOTE3LDE2LjcxMywxOC42LDE1Ljg0LDE4LjI0NlptLTcuMTMxLjFjLjAwOS0uNi0uMDE3LTEuMTQzLjUzMi0xLjM3OUExLjI2NywxLjI2NywwLDAsMSw4LjcwOSwxOC4zNTFabS0zLjg0LS40MWE5LjUwNiw5LjUwNiwwLDAsMSwxLjIyMi0yLjk4NSwxNC41NDIsMTQuNTQyLDAsMCwxLDQuNDYsMS44OTRBMS4zODYsMS4zODYsMCwwLDEsOS4xOSwxOC42MTNhMS42LDEuNiwwLDAsMCwuMzA1LTIuMTNjLTEuMDgyLS4wNzktMS4yLjkzNC0xLjMyNywyLjI4N0M3LjE0NywxOC43MTcsNS41NjcsMTguNjEzLDQuODY5LDE3Ljk0MVpNNCwxNy4yNDJjLS4zMjMtLjg5LS4zMjMtMi4yNzgsMS4wNDctMi4zOTJsLS43LDEuOTQ2QzQuMTYyLDE3LjIxNiw0LjE2MiwxNy4xMiw0LDE3LjI0MlptMi4yMzQtMi43MDZhNS4zNjYsNS4zNjYsMCwwLDEsLjYyOC0xLjI5MmMxLjA4Mi0xLjUxOSwxLjMtMi4zODMsMi40NjEtMy4xMDcsMS4yMzktLjc2OCw1LjIzNy0uMjg4LDYuNi4xNDgsMi4zMy43NTEsMy40NzQsMS4wNTYsNC4zMzgsMy4wNjRhMTguNzY3LDE4Ljc2NywwLDAsMSwxLjIsNi4xNjJjLTEuNTM2LjA0NC0xLjQ0OS0uMzIzLTEuOS0uNjExYTE2LjY0LDE2LjY0LDAsMCwwLTUuOTQ0LTEuMjkyYy0yLjQ3OS0uMDA5LTEuMDIxLjUwNi0xLjk0Ni4yMTgtLjU1LS4xNzUtLjUxNS0uMjc5LS41MzItLjQ3MS0uMTQtMS4wNDctLjQxLS45NDMtMS45Mi0xLjY5M0ExMS41MzksMTEuNTM5LDAsMCwwLDYuMjMxLDE0LjUzN1ptMTUuNDQ5LS40MjhjLS4xNjYtLjU1LjE0LS41MTUuNjcyLS44OWE5LjAyMSw5LjAyMSwwLDAsMSwuOTI1LS42NTVjMS40MDUtLjc4Niw0LjAyNC0uOTE2LDUuMTQxLjAxN0EyLjQ3OSwyLjQ3OSwwLDAsMSwyOS41LDE0LjY1YTUuODM4LDUuODM4LDAsMCwxLTIuNjE4LDMuODMyLDUuMjEzLDUuMjEzLDAsMCwxLTQuNzgzLDEuMmMtLjE1Ny0uMzg0LS4wMzUtMi44MTktLjIxOC0zLjcxOC0uMTY2LS44LS4wNzktLjg5LjM4NC0xLjM3LDEuMzYyLTEuNDE0LDQuMzEyLTIuNDQ0LDUuOTg4LTEuMjMxLjcwNy41MjQuNTA2LjcyNC44NzMsMS4xMjYuNDU0LS40ODktLjM5My0yLjEzLTMuNTE3LTIuMDI1QzIzLjQ4NiwxMi41MjksMjIuNTcsMTQuMTg3LDIxLjY4LDE0LjEwOVpNOC45NzEsOS4xNDNhOC4wOTQsOC4wOTQsMCwwLDEsMi4yNzgtNC42QzEyLjYsMy41LDE0LjAxNiwyLjUwOSwxNi4wOTQsMy42ODdjLjUxNS4yODguNDg5LjQzNi41NDEsMS4xNTJhMy4zMTIsMy4zMTIsMCwwLDEtLjE5MiwxLjVjLTEuMzc5LDQuNDUxLTIuNTMxLDEuODk0LTYuOTQ4LDIuOTVhNi4zNzQsNi4zNzQsMCwwLDEsMi4xMjEtMy40MTNjMS4yLTEuMTYxLDIuMDYtMS45MTEsMy44NTgtMS42NjdhMS44NDIsMS44NDIsMCwwLDEtLjA1MiwyLjMyMmMtLjgsMS4yOTItMSwxLjIxMy0uODgyLDIuMDk1LjYyOC0uMTU3LjgyLS43NjgsMS4xMDgtMS4zNzksMS43NTQtMy42NjYtLjc5NC00LjExMS0yLjM1Ny0zLjQzOUExMC4zNzIsMTAuMzcyLDAsMCwwLDkuNzY2LDcuNTU0Yy0uMTIyLjI0NC0uMjUzLjU1OS0uMzY3LjgyOVptNi45MTMuMTgzQzE2LjA2Nyw4LjIzNSwxNy4xNSw3Ljk2NCwxNy4xNSw0LjZjMC0xLjQ0OS0xLjc4MS0yLjc0OS00LjExMS0xLjc4MS0yLC44Mi0yLjMsMS40NDktMy4zNjksMy4wNTUtMSwxLjUxOS0uOTY5LDMuMTg2LTEuODMzLDQuNTkxLS4yNTMuNC0uNDguNTQxLS43NTkuOTQzLS4yLjMtLjM0OS42NzItLjU1LDEuMDIxQTEyLjk0LDEyLjk0LDAsMCwwLDUuMzY3LDE0LjRjLTEuMDQ3LjAyNi0xLjkyOS4wNDQtMi4wMzQsMS4xMjYtLjE0LDEuNDg0LjU1OSwxLjg1LjU1OSwyLjQwOS0uMDA5LjYtMi40NTMsNi42NzctMS43NzIsMTAuMy4xOTIsMSwuODQ3LDEsMS44OTQsMS4xMjZhMTcuOTMsMTcuOTMsMCwwLDAsOC4wNTYtLjcwN2w0LjEtMS45NjRhMTguODUsMTguODUsMCwwLDAsMy41NjEtMi41LDEyLjM4MywxMi4zODMsMCwwLDAsMS4zMDktMS43MTksMy4yMTMsMy4yMTMsMCwwLDAsLjgtMi4yMDgsOC40NzMsOC40NzMsMCwwLDEsMi45ODUsMWMtLjA2MS42LS4zNTguMzE0LS4zNTguODU1YTEuMzU1LDEuMzU1LDAsMCwwLDEuMDQ3LS44OWMtLjM1OC0uNTI0LS43MzMtLjQzNi0xLjI0OC0uODU1YTguMjEyLDguMjEyLDAsMCwxLDEuNzE5LS43MDdjMS4yMjItLjUwNiwzLjMwOC0yLjA0MiwzLjgyMy0zLjQzOWE0LjQ0OSw0LjQ0OSwwLDAsMC0uNTU5LTMuNzM2LDUuNDQ0LDUuNDQ0LDAsMCwwLTMuNjQ4LTEuMTYxYy0xLjU4LDAtMy4yMTIsMS4xMzUtNC40ODYsMS42MjMtLjQ4OS0uNDI4LS41MjQtLjkxNi0uODgyLTEuMzg4QTEyLjI4MSwxMi4yODEsMCwwLDAsMTUuODg0LDkuMzI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAyMDIwMlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42OCwxNC4xMDljLjg5LjA3OSwxLjgwNy0xLjU4LDMuOTI4LTEuNjUsMy4xMjUtLjEsMy45NzEsMS41MzYsMy41MTcsMi4wMjUtLjM2Ny0uNC0uMTY2LS42LS44NzMtMS4xMjYtMS42NzYtMS4yMTMtNC42MjYtLjE4My01Ljk4OCwxLjIzMS0uNDYzLjQ4LS41NS41NjctLjM4NCwxLjM3LjE4My45LjA2MSwzLjMzNC4yMTgsMy43MThhNS4yMTMsNS4yMTMsMCwwLDAsNC43ODMtMS4yQTUuODM4LDUuODM4LDAsMCwwLDI5LjUsMTQuNjVhMi40NzksMi40NzksMCwwLDAtMS4wODItMi4wNjljLTEuMTE3LS45MzQtMy43MzYtLjgtNS4xNDEtLjAxN2E5LjAyMSw5LjAyMSwwLDAsMC0uOTI1LjY1NUMyMS44MTksMTMuNTk0LDIxLjUxNCwxMy41NTksMjEuNjgsMTQuMTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZjJmMlxcXCIvPjxwYXRoIGQ9XFxcIk04Ljk3MSw5LjE0Myw5LjQsOC4zODNjLjExMy0uMjcxLjI0NC0uNTg1LjM2Ny0uODI5QTEwLjM3MiwxMC4zNzIsMCwwLDEsMTMuMjkyLDMuODFjMS41NjItLjY3Miw0LjExMS0uMjI3LDIuMzU3LDMuNDM5LS4yODguNjExLS40OCwxLjIyMi0xLjEwOCwxLjM3OS0uMTIyLS44ODIuMDc5LS44Ljg4Mi0yLjA5NWExLjg0MiwxLjg0MiwwLDAsMCwuMDUyLTIuMzIyYy0xLjgtLjI0NC0yLjY2Mi41MDYtMy44NTgsMS42NjdBNi4zNzQsNi4zNzQsMCwwLDAsOS41LDkuMjkxYzQuNDE2LTEuMDU2LDUuNTY5LDEuNSw2Ljk0OC0yLjk1YTMuMzEyLDMuMzEyLDAsMCwwLC4xOTItMS41Yy0uMDUyLS43MTYtLjAyNi0uODY0LS41NDEtMS4xNTItMi4wNzctMS4xNzgtMy40OTEtLjE5Mi00Ljg0NC44NTVBOC4wOTQsOC4wOTQsMCwwLDAsOC45NzEsOS4xNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmVmM2YzXFxcIi8+PHBhdGggZD1cXFwiTTQsMTcuMjQyYy4xNjYtLjEyMi4xNjYtLjAyNi4zNDktLjQ0NWwuNy0xLjk0NkMzLjY3MywxNC45NjQsMy42NzMsMTYuMzUyLDQsMTcuMjQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmZWZlZlxcXCIvPjxwYXRoIGQ9XFxcIk01LjQyOCwyNy40NTRjLS4xMjItLjQ4OS0xLjYyMy0uOTI1LTIuMi0uODczQzMuMzA3LDI3LjQ4LDQuNDk0LDI3LjU2OCw1LjQyOCwyNy40NTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFmMWYxXFxcIi8+XCIsXG5cdH0sXG5cdFwiRUpTXCI6IHtcblx0XHRjb2xvdXI6IFwiIzkwYTkzYVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIsMTcuNjcyVjE0LjMyOGwxMS44Ni02LjJWMTEuMkw1LjEsMTUuOTM5bDguNzYyLDQuODM1djMuMVptMjcuODE0LTguODhMMTkuNDY1LDIzLjIyOUgxNS45MTJMMjYuMjgxLDguNzkxWk0yNi45NDcsMjEuNWEuNzk0Ljc5NCwwLDAsMCwuNjE5LS4yNzgsMS4wNjEsMS4wNjEsMCwwLDAsLjI0OC0uNzMyLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDgtLjc1My43NjguNzY4LDAsMCwwLTEuMjE3LDAsMS4xNDEsMS4xNDEsMCwwLDAtLjI0OC43NTMsMS4wOSwxLjA5LDAsMCwwLC4yMzcuNzMyQS43NjMuNzYzLDAsMCwwLDI2Ljk0NywyMS41Wm0yLjE4NiwxLjA0MmEzLjIzNywzLjIzNywwLDAsMS00LjM1Mi0uMDEsMi44NjQsMi44NjQsMCwwLDEsMC00LjEsMy4yMjMsMy4yMjMsMCwwLDEsNC4zNTIsMEEyLjc3MywyLjc3MywwLDAsMSwzMCwyMC40ODYsMi43NCwyLjc0LDAsMCwxLDI5LjEzNCwyMi41MzhaTTE4LjgyMSwxMy4wNjFhLjc5NC43OTQsMCwwLDAsLjYxOS0uMjc4LDEuMDYxLDEuMDYxLDAsMCwwLC4yNDgtLjczMiwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4LS43NTMuNzY5Ljc2OSwwLDAsMC0xLjIxNywwLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDguNzUzLDEuMDksMS4wOSwwLDAsMCwuMjM3LjczMkEuNzYzLjc2MywwLDAsMCwxOC44MjEsMTMuMDYxWk0yMS4wMDcsMTQuMWEzLjIzNywzLjIzNywwLDAsMS00LjM1Mi0uMDEsMi44NjQsMi44NjQsMCwwLDEsMC00LjEsMy4yMjMsMy4yMjMsMCwwLDEsNC4zNTIsMCwyLjc3MywyLjc3MywwLDAsMSwuODY2LDIuMDYzQTIuNzQsMi43NCwwLDAsMSwyMS4wMDcsMTQuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MGE5M2FcXFwiLz5cIixcblx0fSxcblx0XCJFbGl4aXJcIjoge1xuXHRcdGNvbG91cjogXCIjNDUyNDU5XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNy4yNDlcXFwiIHkxPVxcXCItMzM1LjU5N1xcXCIgeDI9XFxcIjE0Ljk3M1xcXCIgeTI9XFxcIi0zMDkuOTk0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMzA2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjAxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjdmNmY4XFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDlcXFwiIHN0b3AtY29sb3I9XFxcIiNhYTljYjNcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4zOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yXFxcIiBzdG9wLWNvbG9yPVxcXCIjNmY1NjdlXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuNjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzJcXFwiIHN0b3AtY29sb3I9XFxcIiM0NTI0NTlcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC44NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMmQwODQzXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuOTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyNjAwM2RcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2VsaXhpcjwvdGl0bGU+PHBhdGggZD1cXFwiTTE3LjgsOC41OTFjMi4wNzksNC41ODQsNy42NCw2LjUsNy4xNDEsMTIuNDc0LS41ODIsNy4wMTctNS41NTEsOC43ODQtOC4zMTYsOC45MDlhOC44MTUsOC44MTUsMCwwLDEtOS40LTcuNDg1QzUuNjE4LDE1LjA0NiwxMi42NTUsMy42MzIsMTYuNzA5LDJBMTUuMDgzLDE1LjA4MywwLDAsMCwxNy44LDguNTkxWm0tLjE2NiwxOC44NTdhLjQyMy40MjMsMCwwLDAtLjA1Ny0uMzI3Yy0uNTkzLTEuMS01LjgxLTEuNjQ1LTYuOTA3LTEuNzUyYTguMjcyLDguMjcyLDAsMCwwLDEuNjM1LDEuMyw3Ljc2Niw3Ljc2NiwwLDAsMCwyLjgxNCwxLjA0MUMxNS45MjIsMjcuODMxLDE3LjQ2NywyNy45MzMsMTcuNjM1LDI3LjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM3YzY0OGZcXFwiLz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjI1XFxcIj48cGF0aCBkPVxcXCJNMTguMjQ4LDEwLjYxOGM0LjQ3LDQuODIzLDYuNDQ1LDQuOTc5LDYuMjM3LDEwLjQ3OC0uMjQ5LDYuNDc2LTQuNTQzLDguMTkxLTcuMDU4LDguNDItNC4yLjU1MS03LjQ5NS0xLjUyOC04LjM1OC01LjY4NkM3LjMxMiwxNy4wNjMsMTIuOTc4LDYuMDIzLDE2LjYzNyw0LjM2QTE1LjMyMywxNS4zMjMsMCwwLDAsMTguMjU4LDEwLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYwMDNkXFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNzVcXFwiPjxwYXRoIGQ9XFxcIk0xNy4zODUsOS45MjFDMjAuMzY5LDE0LDI0LjMxOSwxMy43LDI1LDE5LjY0MWMuMDk0LDYuOTIzLTMuNiw5LjI4My02LjIzNyw5Ljk0OC00LjUsMS4yNzktOC41MTQtLjY0NS0xMC4wOTQtNS0zLjAzNS03LDIuNjUxLTE4LjUxNCw2LjMxLTIwLjkxNWExNS4wODMsMTUuMDgzLDAsMCwwLDIuMzcsNi4yMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PC9nPlwiLFxuXHR9LFxuXHRcIkVsbVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4Y2Q2MzZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiwxNi43NjgsMi43NjgsMzBIMjkuMjMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzVmYjRjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xMywyMy4zNjIsMzAsMjkuMjMyVjE3LjQ5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWE0MDBcXFwiLz48cGF0aCBkPVxcXCJNMTUuMjMyLDE2LDIsMi43NjhWMjkuMjMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzU5NjI3N1xcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNC40NDhWMkgxNy41NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNWZiNGNiXFxcIi8+PHBhdGggZD1cXFwiTTIzLjM5Miw5LjM3Nmw2LjU5NCw2LjU5NC02LjYyNCw2LjYyNEwxNi43NjgsMTZaTTIuNzY4LDIsOC44NjMsOC4xSDIyLjExMUwxNi4wMTYsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4Y2Q2MzZcXFwiLz48cGF0aCBkPVxcXCJNMTYsMTUuMjMybDYuMDUxLTYuMDUxSDkuOTQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlYTQwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIkVSQlwiOiB7XG5cdFx0Y29sb3VyOiBcIiM5MjFhMWVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk03LjI1LDI0Ljc1aDE3LjVMMTIuNSwxMi41LDcuMjUsMTcuNzVaTTIsMzBIMzBWMkgxNkwyLDE2Wm0yNS4zNzUtMi42MjVINC42MjV2LTEwLjVsMTIuMjUtMTIuMjVoMTAuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MjFhMWVcXFwiLz5cIixcblx0fSxcblx0XCJFcmxhbmdcIjoge1xuXHRcdGNvbG91cjogXCIjYTIwMDNlXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNi4zODgsMjMuODY3YTExLjAxMiwxMS4wMTIsMCwwLDEtMy40NDEtOC4yMzQsMTAuNzY1LDEwLjc2NSwwLDAsMSwyLjg2NC03LjVIMnYxNS43M1ptMjAuMDY2LDBhMTYuNDQsMTYuNDQsMCwwLDAsMi41MzctMy4xMzZsLTQuMjE4LTEuODczYTguMzA2LDguMzA2LDAsMCwxLTYuNjQxLDQuMTJjLTQuMzU5LS4wMTQtNi4wNzItMy4zMjktNi4wNjMtNy41ODRIMjguMzZhNi40NjUsNi40NjUsMCwwLDAsMC0uOTM1LDkuMDU3LDkuMDU3LDAsMCwwLTIuMDI5LTYuMzI2SDMwdjE1LjczSDI2LjQ1NlpNMTIuMzMyLDExLjc0MmEzLjcyMywzLjcyMywwLDAsMSwzLjktMy4yMywzLjI5LDMuMjksMCwwLDEsMy41MzIsMy4yM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNhMjAwM2VcXFwiLz5cIixcblx0fSxcblx0XCJGI1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMzNzhiYmFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDE2LDE1LjI4OCwyLjcxMlY5LjM1Nkw4LjY0NCwxNmw2LjY0NCw2LjY0NHY2LjY0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNzhiYmFcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQyLDE2bDQuNzQ2LTQuNzQ2djkuNDkyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzM3OGJiYVxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNiwxNi4yMzcsMi43MTJWOS4zNTZMMjIuODgxLDE2bC02LjY0NCw2LjY0NHY2LjY0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMGI5ZGJcXFwiLz5cIixcblx0fSxcblx0XCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIjoge1xuXHRcdGNvbG91cjogXCIjZjY4MjBjXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNS44LDI0LjZsLjE3LS4yMzdMMTMuOTksOS4xNDlsLjAxNy0uMTYxLTMuNTM1LTYuNjRhLjY1Ni42NTYsMCwwLDAtMS4yMjcuMjA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYzI0YVxcXCIvPjxwYXRoIGQ9XFxcIk01LjksMjQuNDJsLjEyOC0uMjVMMTMuOTY1LDkuMTE0LDEwLjQzOSwyLjQ0OGEuNi42LDAsMCwwLTEuMTMzLjIwNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmE3MTJcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTg0LDE0LjAxbDIuNjMyLTIuN0wxNi41ODMsNi4yODlhLjY3OC42NzgsMCwwLDAtMS4xOTUsMEwxMy45ODEsOC45NzFWOS4yWlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y0YmQ2MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41MzcsMTMuOSwxOS4xLDExLjI4LDE2LjUzNyw2LjRhLjU4OS41ODksMCwwLDAtMS4wNzQtLjA0N0wxNC4wNDksOS4wODJsLS4wNDIuMTM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYTUwZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNS44MDIgMjQuNjAxIDUuODc5IDI0LjUyMyA2LjE1OCAyNC40MSAxNi40MTggMTQuMTg4IDE2LjU0OCAxMy44MzQgMTMuOTg5IDguOTU2IDUuODAyIDI0LjYwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ODIwY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi45MTIsMjkuNzU2LDI2LjIsMjQuNTc3LDIzLjU0Niw4LjI0NkEuNjM1LjYzNSwwLDAsMCwyMi40NzEsNy45TDUuOCwyNC42bDkuMjMzLDUuMTU1YTEuOTI3LDEuOTI3LDAsMCwwLDEuODc4LDBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGUwNjhcXFwiLz48cGF0aCBkPVxcXCJNMjYuMTE1LDI0LjUzNCwyMy40ODMsOC4zMjZhLjU1Ny41NTcsMCwwLDAtLjk2Ny0uMzUzTDUuOSwyNC41NjlsOS4xMzEsNS4xYTEuOTEyLDEuOTEyLDAsMCwwLDEuODYzLDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmNjYTNmXFxcIi8+PHBhdGggZD1cXFwiTTE2LjkxMiwyOS42YTEuOTI3LDEuOTI3LDAsMCwxLTEuODc4LDBMNS44NzYsMjQuNTIyLDUuOCwyNC42bDkuMjMzLDUuMTU1YTEuOTI3LDEuOTI3LDAsMCwwLDEuODc4LDBMMjYuMiwyNC41NzdsLS4wMjMtLjE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlYWIzN1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuMjAxIDEzIDE1LjQwNSAxNi41MzQgMTUuNDA1IDI3LjYwMyAyMS42MjUgMjQuNzg1IDIxLjYyNSAzMSAzMSAyNi43NDMgMzEgMTYuNTM0IDIzLjIwMSAxM1xcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuMjAxIDE0LjczIDE2Ljk4NSAxNy41NDkgMTYuOTg1IDIwLjMyNyAyMy4yMDEgMTcuNTA3IDI5LjQyMSAyMC4zMjcgMjkuNDIxIDE3LjU0OSAyMy4yMDEgMTQuNzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxOS41NjQgMTYuOTg1IDIyLjM4MSAxNi45ODUgMjUuMTU4IDIzLjIwMSAyMi4zMzcgMjkuNDIxIDI1LjE1OCAyOS40MjEgMjIuMzgxIDIzLjIwMSAxOS41NjRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjYwNiAyNi4wOTggMjUuNTUxIDI0LjcxMiAyMy4yMDEgMjUuNzc4IDIzLjIwMSAyOC41NDggMjguNjA2IDI2LjA5OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkZsb3dcIjoge1xuXHRcdGNvbG91cjogXCIjZmZiMDQ3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjcuOTA3XFxcIiB5MT1cXFwiLTMwOC41NTFcXFwiIHgyPVxcXCItNjcuODU3XFxcIiB5Mj1cXFwiLTMwOC41NjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODcuODIyLCAwLCAwLCAtODguNTMzLCA1OTg0LjUzMiwgLTI3MjkwLjYxNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ0NDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmIwNDdcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi02Ny42NzRcXFwiIHkxPVxcXCItMzEwLjEyMVxcXCIgeDI9XFxcIi02Ny42NDdcXFwiIHkyPVxcXCItMzEwLjA2M1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg4Ny44MjIsIDAsIDAsIC04OC41MzMsIDU5NjQuNjY3LCAtMjc0NDMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNzU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZiNTMyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNjcuMDI5XFxcIiB5MT1cXFwiLTMxMC45MVxcXCIgeDI9XFxcIi02Ny4wMjlcXFwiIHkyPVxcXCItMzEwLjg2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDg3LjgyMiwgMCwgMCwgLTg4LjUzMywgNTkwMi44LCAtMjc1MTguNzMzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDY0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDQ0MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYjUzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTY2LjI1MlxcXCIgeTE9XFxcIi0zMTAuMzc3XFxcIiB4Mj1cXFwiLTY2LjMyXFxcIiB5Mj1cXFwiLTMxMC4zNjJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTA2LjE5OCwgMCwgMCwgLTg4LjU1MSwgNzA0OC40MjgsIC0yNzQ3NC4xNjcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNDQxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZhODI5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9mbG93PC90aXRsZT48cGF0aCBkPVxcXCJNMjMuNDI2LDI5LjQxVjIyLjE3MmgtNy4xOGw3LjE4LDcuMjM4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkZjUxO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4yMzEsMjUuMzA2VjE3LjQ3N0gxNi40NjZsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg5MDA7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE5LjUxNSwyMi4xNzFWMzBoNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi42MDgsMThWMTEuODA5SDE2LjQ2NkwyMi42MDgsMThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRmNGY7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTI1LjUyNCwxNi41MjVWOC43SDE3Ljc1OWw3Ljc2Niw3LjgyOVxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjc5OTk5OTk1MjMxNjI4NDtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjg4LDJWOS44MjloNy43NjZMMTIuMjg4LDJcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC44MDAwMDAwMTE5MjA5Mjk7ZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExLDE0LjI2MlY2LjQzM0g0LjcxOWw3LjczMiw3LjgzLDEuNjU5LDBcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC44Nzk5OTk5OTUyMzE2Mjg7ZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExLDI5Ljk1OFYyMC40ODdINC43MTlsOS4zOTEsOS40NzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmI3MDA7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExMiwyMi4xMTRWMTQuMjg1SDYuMzQ2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiNzAwO2ZpbGwtb3BhY2l0eTowLjVcXFwiLz48cGF0aCBkPVxcXCJNMTYuNDY1LDExLjgwOXY3LjgyOWg3Ljc2NmwtNy43NjYtNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmNkMjU7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE0LjA5MiwxMi42OTFWNC44NjJINi4zMjZsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg5MDA7ZmlsbC1vcGFjaXR5OjAuNzAwMDAwMDQ3NjgzNzE2XFxcIi8+PHBhdGggZD1cXFwiTTE2LjI0NiwyMi4xNzFWMzBoNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuMTIyIDIyLjE3MiAxOC42MDkgMTkuNjM4IDE2LjQ2NSAxOS42MzggMTYuNDY2IDExLjgwOSAyMC44NDcgMTEuODA5IDE4Ljg4MiA5LjgyOSAxNC4wOTIgOS44MjkgMTQuMTEgMTQuMjYyIDE0LjExIDIwLjQ4NyAxNC4xMSAzMCAxNi4yNDYgMzAgMTYuMjQ2IDIyLjE3MiAyMS4xMjIgMjIuMTcyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiRm9ydHJhblwiOiB7XG5cdFx0Y29sb3VyOiBcIiM3MzRmOTZcIixcblx0XHRpY29uOiBcIjxnIGlkPVxcXCJnMzc2OFxcXCI+PHJlY3QgaWQ9XFxcInJlY3Q4ODFcXFwiIHg9XFxcIjIuMzRcXFwiIHk9XFxcIjIuMzRcXFwiIHdpZHRoPVxcXCIyNy4zM1xcXCIgaGVpZ2h0PVxcXCIyNy4zM1xcXCIgcng9XFxcIjUuMDhcXFwiIHN0eWxlPVxcXCJmaWxsOiM3MzRmOTZcXFwiLz48cGF0aCBpZD1cXFwicGF0aDE0MTJcXFwiIGQ9XFxcIk02LjA2LDI1LjVjMC0xLjA5LDAtMS4xOS4xLTEuMTlsMS4yNS0uMDZjMSwwLDEuMTgtLjA2LDEuNDItLjE5YS43NC43NCwwLDAsMCwuMzktLjM3Yy4xMi0uMjMuMTItLjI5LjEyLTcuNzIsMC03LDAtNy41LS4xLTcuNjdhMS4wNiwxLjA2LDAsMCwwLS42My0uNSwxMC4yMywxMC4yMywwLDAsMC0xLjM4LS4xbC0xLjE3LDBWNS4zMkgyNS45NHY4LjgySDI0Ljg5YTguNTYsOC41NiwwLDAsMS0xLjItLjA1Yy0uMTQsMC0uMTUtLjA1LS4yMi0uOTVhMTIuNzMsMTIuNzMsMCwwLDAtLjM1LTIuNDMsMy4yMiwzLjIyLDAsMCwwLTIuNjMtMi44MWMtLjU3LS4xLTMuMS0uMi01LjE5LS4ySDEzLjg3djYuNjNsLjc1LDBBNi4zMyw2LjMzLDAsMCwwLDE2LjQ5LDE0YTEuODgsMS44OCwwLDAsMCwuODktLjkxLDUuODYsNS44NiwwLDAsMCwuMzktMS43NWMwLS4zMy4wOC0uNjYuMS0uNzNzMC0uMTMsMS4xOC0uMTNIMjAuMlYyMS4wNkgxNy44NWwwLS42MWE3Ljg1LDcuODUsMCwwLDAtLjU0LTIuNjZjLS4zNi0uNjgtMS4wNS0xLTIuNDUtMS4wOGwtLjc2LS4wNy0uMiwwLDAsMy4zNGMwLDMuNTEsMCwzLjY1LjMsMy45NHMuNDMuMzIsMy4yMi40MmMuMDUsMCwuMDcuMjguMDcsMS4xOXYxLjE4SDYuMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PC9nPlwiLFxuXHR9LFxuXHRcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIjoge1xuXHRcdGNvbG91cjogXCIjMDA1MGIyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjQuMDIzLDIwLjksMjUuNDA4LDIzbDQuNjE1LTdMMjUuNDA4LDlsLTEuMzg1LDIuMUwyNy4yNTUsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+PHBhdGggZD1cXFwiTTcuOTc3LDExLjEsNi41OTIsOSwxLjk3NywxNmw0LjYxNSw3LDEuMzg1LTIuMUw0Ljc0NSwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUwYjJcXFwiLz48cGF0aCBkPVxcXCJNMTMuMDM1LDloMi44bC0uNDk0LDIuOGgyLjhMMTguNjM1LDloMi44bC0uNDk0LDIuOGgyLjhsLS40OTUsMi44aC0yLjhsLS40OTMsMi44aDIuOGwtLjQ5NCwyLjhoLTIuOEwxOC45NjcsMjNoLTIuOGwuNDkzLTIuOC0yLjgsMEwxMy4zNzUsMjNIMTAuNTY3bC40OTMtMi44LTIuOCwwLC40OTQtMi44aDIuOGwuNDkzLTIuNzkzaC0yLjhMOS43NDEsMTEuOGgyLjhabTEuMzE5LDguNGgyLjhsLjQ5NC0yLjhoLTIuOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUwYjJcXFwiLz5cIixcblx0fSxcblx0XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIjoge1xuXHRcdGNvbG91cjogXCIjOGJjMzRhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTQuMjE2LDI0LjE2N2gtLjk4OWEzLjI0LDMuMjQsMCwwLDEtMi44MTEtMS42NDlMNi42NjcsMTZsNC42ODEtOC4xNjdIMTYuMmwtNC4zNCw4LjE3Ni4wNTcuMDMyTDEzLjkzNiwxOS41SDE2LjgyWk04LjQ1NSwxMC41MzVsLTEuMjctMi4yMWExLDEsMCwwLDAtLjg1OS0uNDkySDJsNCw2Ljk5MlpNMjEuNTQsOS40ODJhMy4yMzksMy4yMzksMCwwLDAtMi44MTItMS42NDlIMTcuNTIzTDE1LjA0NSwxMi41SDE4LjAyTDIwLjA4MywxNmwtNC41MzEsOC4xNjdoNS4wNTZMMjUuMzMzLDE2Wk0yNiwxNy4xNzJsLTIuNDcsNC4yNywxLjI4MywyLjIzM2ExLDEsMCwwLDAsLjg1OS40OTJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGJjMzRhXFxcIi8+XCIsXG5cdH0sXG5cdFwiRy1jb2RlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2JhMDAwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE3LjMzMywxNi4zNTZoMEwxNy4zMDksMjAuOGwtMi4xLTEuMDE4LjAyMy00LjQzN2gwbDEwLjU1OC0zLjAzOCwyLjEwNiwxLjAxM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNDkyLDE4LjU3NmExNC45MDksMTQuOTA5LDAsMCwxLTEuMzQzLDMuMDc0LDcuODYsNy44NiwwLDAsMS0xLjM5LDEuODI5LDYuOCw2LjgsMCwwLDEtMS43LDEuMzI0LDcuNDA1LDcuNDA1LDAsMCwxLTIuMDA2Ljg1NSw2LDYsMCwwLDEtMy4wNzIuMjNBNC42NjgsNC42NjgsMCwwLDEsMTIuNDQsMjQuNjRhNS4zMjIsNS4zMjIsMCwwLDEtLjYzNi0uNjI5bC0uNTA4LS4yNDRhNC43MTcsNC43MTcsMCwwLDAsLjQ1Ny4xODEsNS41Miw1LjUyLDAsMCwxLTEuMDE1LTEuNzU4LDguMTM1LDguMTM1LDAsMCwxLS40My0xLjUzM2MtLjAyMy0uMTMxLS4wNDMtLjIzOS0uMDYxLS4zNGE3LjI5Miw3LjI5MiwwLDAsMCwuMzc3LDEuMzU0LDUuODM2LDUuODM2LDAsMCwwLDEuNjE0LDIuMzE5Yy4wNi4wNTQuMTI3LjEuMTkuMTQ4LjA0LjAwOC4wNzguMDIyLjExOS4wMjlhNi40NTQsNi40NTQsMCwwLDAsMi45MjgtLjIxOSw4LjQsOC40LDAsMCwwLDEuOTEtLjgwNyw3LjY1OCw3LjY1OCwwLDAsMCwxLjU4OS0xLjIyNyw4LjY2Miw4LjY2MiwwLDAsMCwxLjI5LTEuNjksMTIuNjY3LDEyLjY2NywwLDAsMCwxLjAxOS0yLjE5NEwyMy4zLDE5Yy4wNTYtLjE1My4wOTEtLjI1NC4wOTEtLjI1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNTI0LDQuMDEzYTExLjYsMTEuNiwwLDAsMC02LjU4OC0xLjk5NCwxMy44LDEzLjgsMCwwLDAtOS4zNzMsNC44NEExOC4yNDMsMTguMjQzLDAsMCwwLDQsMTguOGMuMDIxLDMuODUxLDEuNDgxLDcuODA2LDUuMTEyLDkuNTc1YTEzLjU2MywxMy41NjMsMCwwLDAsNC4xNTksMS41NjQsMTIuMTE0LDEyLjExNCwwLDAsMCw2Ljg2OS0xLjUyOWMtMi43MzQsMS4zMzMtNi4xMiwxLjk5My04Ljg5NC40LTIuNjg5LTEuNTQzLTMuOTgzLTQuNzI0LTQuMjIxLTcuNy0uNTEyLTYuNCwzLjEtMTMuNjQsOS4xMzItMTYuMjgxLDMuNTEyLTEuNTM3LDcuMzA3LTEuNTg1LDEwLjIzOSwxLjFDMjYuNzI3LDUuMjQ0LDI1LDQuMzA1LDI0LjUyNCw0LjAxM1ptLTE0LjM1OSwyNC44LS4xMzgtLjA5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTI5LDI2Ljc4OGMtMy4wNDQsMi41ODItNy45Miw0LjE0OS0xMS41NTQsMS44NTdDNy4yNCwyNi4yODksNi41MywyMS4wODksNy4yMTIsMTcuMDgzYTE3LjIxOCwxNy4yMTgsMCwwLDEsNi43LTEwLjk3YzMuNzcxLTIuNjM2LDguODgtMy40OSwxMi40ODktLjE4MmwtMi4yNywzLjI5MWMtMi41MS0yLjM1NS02LjMtMS45NTYtOC45NDUtLjA1MkExMi40MzQsMTIuNDM0LDAsMCwwLDEwLjUsMTYuMmMtLjY2MiwyLjYyMy0uNSw2LjAxMSwxLjUsOC4wNDcsMi4wODgsMi4xMjksNS4xMTIsMi4xMTYsNy42NTYuOEExMC4zMzQsMTAuMzM0LDAsMCwwLDI0LjUsMTguNjM2TDE3LjMwNywyMC44bC4wMjItNC40MzhMMjcuODksMTMuMzE5bC4xLjgwNmgwQTE2LjYyNSwxNi42MjUsMCwwLDEsMjIuNTI5LDI2Ljc4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiYTAwMDBcXFwiLz5cIixcblx0fSxcblx0XCJHRFNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0NzhjYmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOC4xNjYsMjEuMDI5djEuNjUyYS4zNzQuMzc0LDAsMCwxLS4yNi4zNTdsLTIuNi44NDFhLjM2Ny4zNjcsMCwwLDEtLjMzNS0uMDU0LjM3NC4zNzQsMCwwLDEtLjE1NS0uM3YtMS44bC0yLjQzOC40NjRWMjQuMDJhLjM3NS4zNzUsMCwwLDEtLjMyNS4zNzFsLTMuNTI1LjQ4M2MtLjAxNiwwLS4wMzQsMC0uMDUxLDBBLjM3NC4zNzQsMCwwLDEsMTguMSwyNC41VjIyLjU1N2wtMS44MTkuMDA4aC0uMjY3bC0xLjgxOS0uMDA4VjI0LjVhLjM3NS4zNzUsMCwwLDEtLjM3NS4zNzZjLS4wMTcsMC0uMDM0LDAtLjA1MiwwbC0zLjUyNS0uNDgzYS4zNzUuMzc1LDAsMCwxLS4zMjQtLjM3MVYyMi4xODRsLTIuNDM5LS40NjR2MS44YS4zNzQuMzc0LDAsMCwxLS4xNTQuMy4zNy4zNywwLDAsMS0uMzM2LjA1NGwtMi42LS44NDFhLjM3NC4zNzQsMCwwLDEtLjI1OS0uMzU3VjIxLjAyOWwtMS42MDgtLjU0MWE0LjU1OCw0LjU1OCwwLDAsMC0uMTI0LDEuMDRjMCw0LjMxNyw2LjA4Miw3LjY1LDEzLjYsNy42NzRoLjAxOWM3LjUxNy0uMDI0LDEzLjYtMy4zNTYsMTMuNi03LjY3NGE0LjU0LDQuNTQsMCwwLDAtLjEtLjk1WlxcXCIgZmlsbD1cXFwiIzQ3OGNiZlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjcxMSwxMy4zNzNWMjAuMWwuOTA3LjMwNmEuMzc0LjM3NCwwLDAsMSwuMjU2LjM1NXYxLjY1bDEuODU1LjZWMjEuMjY3YS4zNzYuMzc2LDAsMCwxLC40NDUtLjM2OWwzLjE4OS42MDlhLjM3NC4zNzQsMCwwLDEsLjMwNS4zNjh2MS44MThsMi43NzUuMzc5di0xLjg5YS4zNzQuMzc0LDAsMCwxLC4zNzYtLjM3NWgwbDIuMzI3LjAwOSwyLjMyNi0uMDA5YS4zNzQuMzc0LDAsMCwxLC4zNzcuMzc1djEuODlsMi43NzUtLjM3OVYyMS44NzRhLjM3My4zNzMsMCwwLDEsLjMtLjM2OGwzLjE4OS0uNjA5YS4zNzcuMzc3LDAsMCwxLC40NDYuMzY5djEuNzQxbDEuODU1LS42VjIwLjc2YS4zNzQuMzc0LDAsMCwxLC4yNTUtLjM1NWwuNjE4LS4yMDhWMTMuMzczaC4wMTdBMjYuNzkyLDI2Ljc5MiwwLDAsMCwzMCwxMC45MzFhMTkuMDIsMTkuMDIsMCwwLDAtMi41MDktMy4yODhBMjQuNTA3LDI0LjUwNywwLDAsMCwyNSw5LjA5MWExMy4wMSwxMy4wMSwwLDAsMC0xLjI3OS0xLjA1MiwxNS4zNjUsMTUuMzY1LDAsMCwwLTEuMzc1LS44OTQsMjguMzUzLDI4LjM1MywwLDAsMCwuMjMyLTMuMDcxQTE1Ljk2OCwxNS45NjgsMCwwLDAsMTguODQ3LDIuOGEyNi40NCwyNi40NCwwLDAsMC0xLjM4NSwyLjcsOS40Niw5LjQ2LDAsMCwwLTEuNDUzLS4xMTZoLS4wMThhOS40NTcsOS40NTcsMCwwLDAtMS40NTQuMTE2LDI2LjI3NSwyNi4yNzUsMCwwLDAtMS4zODUtMi43QTE1Ljk2MSwxNS45NjEsMCwwLDAsOS40MjIsNC4wNzVhMjguMTQyLDI4LjE0MiwwLDAsMCwuMjMyLDMuMDcxLDE1LjMxMiwxNS4zMTIsMCwwLDAtMS4zNzYuODk0QTEzLjA2LDEzLjA2LDAsMCwwLDcsOS4wOTFhMjQuNTUzLDI0LjU1MywwLDAsMC0yLjQ5LTEuNDQ4QTE5LjAyLDE5LjAyLDAsMCwwLDIsMTAuOTMxYTI2Ljc5MiwyNi43OTIsMCwwLDAsMS42OTQsMi40NDNaXFxcIiBmaWxsPVxcXCIjNDc4Y2JmXFxcIi8+PHBhdGggZD1cXFwibTEyLjQ2MiAxNi42YTIuNzM5IDIuNzM5IDAgMSAxLTIuNzQtMi43MzggMi43MzkgMi43MzkgMCAwIDEgMi43NCAyLjczOFxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIm0xMS44IDE2Ljc2NGExLjgxOSAxLjgxOSAwIDEgMS0xLjgxOS0xLjgxOSAxLjgxNyAxLjgxNyAwIDAgMSAxLjgxOSAxLjgxOVxcXCIgZmlsbD1cXFwiIzQxNDA0MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNjYsMTkuNTlhLjg0NC44NDQsMCwwLDEtLjg4Mi0uOFYxNi4yNjdhLjg4Ni44ODYsMCwwLDEsMS43NjQsMHYyLjUyMmEuODQ1Ljg0NSwwLDAsMS0uODgzLjhcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJtMTkuODcxIDE2LjZhMi43MzkgMi43MzkgMCAxIDAgMi43NC0yLjczOCAyLjczOSAyLjczOSAwIDAgMC0yLjc0IDIuNzM4XFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwibTIwLjUzMSAxNi43NjRhMS44MTggMS44MTggMCAxIDAgMS44MTctMS44MTkgMS44MTcgMS44MTcgMCAwIDAtMS44MTcgMS44MTlcXFwiIGZpbGw9XFxcIiM0MTQwNDJcXFwiLz5cIixcblx0fSxcblx0XCJHaXRcIjoge1xuXHRcdGNvbG91cjogXCIjZGQ0YzM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNDcyLDE0Ljc1MywxNy4yNDcsMi41MjhhMS44LDEuOCwwLDAsMC0yLjU1LDBMMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNCwyLjUyOCwxNC43YTEuOCwxLjgsMCwwLDAsMCwyLjU1MUwxNC43NTMsMjkuNDcyYTEuOCwxLjgsMCwwLDAsMi41NSwwTDI5LjQ3MiwxNy4zYTEuOCwxLjgsMCwwLDAsMC0yLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGMzNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiR0xTTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0Mzg2YjVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk03Ljc3OSwxOC45MjNBMi4zMzMsMi4zMzMsMCwwLDEsNS40LDE3LjE2Yy4zMDYsMS40NjIsMS45NjEsMi44OTIsNy4xODMsMy41MjlhMTQuMjI4LDE0LjIyOCwwLDAsMCw5LjIzMi0xLjYxMnMuNzMzLS4zMjIuMjkzLjE3NmMwLDAtMy4xMDcsMi44NzMtOS4yLDIuOVMxLjk3LDE5LjEwNywyLDE2Yy0uMDI5LTMuMTA3LDQuODA2LTYuMTg1LDEwLjktNi4xNTVzOS4yLDIuOSw5LjIsMi45Yy40NC41LS4yOTMuMTc2LS4yOTMuMTc2LTEuMDg0LS43LTQuMjg2LTIuMDg5LTkuMjMyLTEuNjEyLTQuODY2LjQ2OS02LjQ1MywyLjEyMi02Ljk4MSwzLjIzNWEzLjI1NCwzLjI1NCwwLDAsMC0uMzE4LDEuMjQsMi40MjQsMi40MjQsMCwwLDEsMi41LTIuMzE2QTIuNTA3LDIuNTA3LDAsMCwxLDEwLjMsMTYuMTk1LDIuNTA2LDIuNTA2LDAsMCwxLDcuNzc5LDE4LjkyWm0xOS42NDctMS4wNzRIMzB2LjkzN0gyNi4zNDRWMTMuNjA5aDEuMDgydjQuMjRaTTIzLjQ1NCwxNmgyLjE2M3YyLjc5MUgyNC45bC0uMTA4LS42NDlhMS45LDEuOSwwLDAsMS0xLjYxNC43ODYsMi40MTQsMi40MTQsMCwwLDEtMi4zNzktMi43MTEsMi40ODUsMi40ODUsMCwwLDEsMi41MzEtMi43NEEyLjA1MywyLjA1MywwLDAsMSwyNS42LDE1LjIxN0gyNC41MTVhMS4xMzYsMS4xMzYsMCwwLDAtMS4xMzItLjg1MWMtLjc3MSwwLTEuNDg1LjUzNC0xLjQ4NSwxLjg2LDAsMS40MTMuNzcxLDEuNzgxLDEuNTA2LDEuNzgxYTEuMjgsMS4yOCwwLDAsMCwxLjI1NC0xLjEzOWgtMS4yVjE2Wk03Ljc4MSwxNC4xYTEuODYsMS44NiwwLDAsMC0xLjgsMi4xMDUsMS44NiwxLjg2LDAsMCwwLDEuOCwyLjEwNSwxLjg2LDEuODYsMCwwLDAsMS44LTIuMTA1QTEuODYsMS44NiwwLDAsMCw3Ljc4MSwxNC4xWm0yLjkxMSwxLjM4M2guNTI1di40NjhoLjAxM2ExLjEyLDEuMTIsMCwwLDEsLjk4Ny0uNTYzLDEuNTY1LDEuNTY1LDAsMCwxLDEuNTA2LDEuNjc3LDEuNjc1LDEuNjc1LDAsMCwxLTEuNTgzLDEuODI0LDEsMSwwLDAsMS0uODgtLjQ0M2gtLjAxM1YyMC4xaC0uNTU3VjE1LjQ3OVpNMTIuMSwxOC40Yy42MDgsMCwxLjAxOS0uNTI3LDEuMDE5LTEuMjU0LDAtLjQyNC0uMTcxLTEuMjY0LTEuMDMyLTEuMjY0LS44LDAtLjg5My44NjctLjg5MywxLjQwNiwwLC44OC41NTEsMS4xMTQuOTA1LDEuMTE0Wm01LS42NTJhMS4zNzgsMS4zNzgsMCwwLDEtMS40ODgsMS4xMzMsMS40ODcsMS40ODcsMCwwLDEtMS40ODItMS42NThjMC0xLjAyNS40OTQtMS44NDIsMS41ODgtMS44NDIuOTU2LDAsMS40MjQuNzYsMS40MjQsMS45MzFIMTQuNzIxYzAsLjY5LjMyMywxLjA4OS45NjIsMS4wODlhLjg0MS44NDEsMCwwLDAsLjg1NC0uNjUySDE3LjFabS0uNTktLjg4Yy0uMDMyLS41MTMtLjI0Ny0uOTg3LS45MjQtLjk4N2EuOTcyLjk3MiwwLDAsMC0uOTE4Ljk4N2gxLjg0MlptMy43MTMsMS45MTdoLS41NTdWMTYuNzUxYzAtLjU3Ni0uMTY1LS44NjctLjcwOS0uODY3LS4zMTcsMC0uODc0LjItLjg3NCwxLjF2MS44aC0uNTU3VjE1LjQ3OWguNTI1di40NjhoLjAxM2ExLjIsMS4yLDAsMCwxLDEtLjU2MywxLjA0NiwxLjA0NiwwLDAsMSwxLjE1OCwxLjE1MnYyLjI1M1xcXCIgc3R5bGU9XFxcImZpbGw6IzQzODZiNVxcXCIvPlwiLFxuXHR9LFxuXHRcIkdvIG1vZHVsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZTMyNjJcIixcblx0XHRpY29uOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjU0LjUgMjI1XFxcIj48dGl0bGU+ZmlsZV90eXBlX2dvX3BhY2thZ2U8L3RpdGxlPjxwYXRoIGQ9XFxcIk02MS45NDksMTMuMDY4YzE2LjA2LS4xNDcsMzIuMTQzLDAsNDguMjExLS4wNjItMy44MSwxNi40MDgtNy40NjYsMzIuODYyLTExLjI2MSw0OS4yNzdIMjUuNTQ4Yy0yLjMxOSwwLTQuNjM3LjA3Ny02Ljk1Ni0uMDkzQzMzLDQ1Ljc3NSw0Ny41NjYsMjkuNSw2MS45NDksMTMuMDY4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZTZjOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNDMuNTA5LDEzLjAxNGg0OC4wNzJjMTQuNDM3LDE2LjQzMSwyOS4wMTMsMzIuNzIzLDQzLjQxMSw0OS4xNzctOS4yNzQuMTkzLTE4LjU0OSwwLTI3LjgyMy4wODVIMTU0LjY1NEMxNTEuMDA2LDQ1LjgzNywxNDcuMTExLDI5LjQ2LDE0My41MDksMTMuMDE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZTZjOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMTAuMTYsMTMuMDE0aDMzLjM0OWMzLjYsMTYuNDQ2LDcuNDg5LDMyLjgyMywxMS4xNiw0OS4yNTRIOTguOUMxMDIuNjk0LDQ1Ljg2OCwxMDYuMzUsMjkuNDIyLDExMC4xNiwxMy4wMTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjNzVlXFxcIi8+PHBhdGggZD1cXFwiTTE4LjU5Miw2Mi4xODNjMi4zMTkuMTcsNC42MzcuMDg1LDYuOTU2LjA5M0g5OC45cTAsMjYuMDI2LjA1NCw1Mi4wNTJhMTguODU3LDE4Ljg1NywwLDAsMCwxLjk3OS4xMzloNTIuMTE0YTE0LjY5MywxNC42OTMsMCwwLDAsMS41NDYtLjEwOGMuMTQ3LTE3LjM2NiwwLTM0LjczMi4wNy01Mi4xaDUyLjUxNmM5LjI3NC0uMDQ2LDE4LjU0OS4xMDgsMjcuODIzLS4wODVWMjEyLjYySDE4LjZRMTguNTkyLDEzNy40MDUsMTguNTkyLDYyLjE4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlN2JmNTVcXFwiLz48cGF0aCBkPVxcXCJNOTguOSw2Mi4yOTFoNTUuNzY5Yy0uMDYyLDE3LjM2Ni4wODUsMzQuNzMyLS4wNyw1Mi4xLS41MTguMDU0LTEuMDM2LjA5My0xLjU0Ni4xMDhIMTAwLjk0YTE4Ljg1NywxOC44NTcsMCwwLDEtMS45NzEtLjEzMUM5OC44NjEsOTYuOTkzLDk4Ljk2OSw3OS42MzQsOTguOSw2Mi4yOTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGJiNTUxXFxcIi8+PHJlY3QgeD1cXFwiMzQuMzg5XFxcIiB5PVxcXCIxNjMuNjgyXFxcIiB3aWR0aD1cXFwiNzIuNDE3XFxcIiBoZWlnaHQ9XFxcIjI3Ljg4NVxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZjJmMlxcXCIvPjxwYXRoIGQ9XFxcIk02MS40MjIsMTM3LjA4NWMtLjM4OCwwLS40ODctLjE5NC0uMjkxLS40ODdsMi4wNDEtMi42MjVhMS4zOTMsMS4zOTMsMCwwLDEsMS4wNjktLjQ4N2gzNC43Yy4zODgsMCwuNDg3LjI5MS4yOTEuNTg0TDk3LjU4MiwxMzYuNmExLjQ4MSwxLjQ4MSwwLDAsMS0uOTcyLjU4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48cGF0aCBkPVxcXCJNNDYuNzQsMTQ2LjAyOGMtLjM4OCwwLS40ODctLjE5NC0uMjkxLS40ODdsMi4wNDEtMi42MjVhMS4zOTMsMS4zOTMsMCwwLDEsMS4wNjktLjQ4N0g5My44OWEuNDQ3LjQ0NywwLDAsMSwuNDg3LjU4NGwtLjc3OCwyLjMzM2EuODUuODUsMCwwLDEtLjg3NS41ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTcwLjI2NCwxNTQuOTcxYy0uMzg4LDAtLjQ4Ny0uMjkxLS4yOTEtLjU4NGwxLjM1Ny0yLjQzYTEuMjg5LDEuMjg5LDAsMCwxLC45NzItLjU4NEg5MS43NDdjLjM4OCwwLC41ODQuMjkxLjU4NC42ODFsLS4xOTQsMi4zMzNhLjczMS43MzEsMCwwLDEtLjY4MS42ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTE3MS4xNjMsMTM1LjMzNWMtNi4xMjQsMS41NTYtMTAuMywyLjcyMi0xNi4zMyw0LjI4LTEuNDYyLjM4OC0xLjU1Ni40ODctMi44MTktLjk3MmExMy4wMTEsMTMuMDExLDAsMCwwLTQuNTY5LTMuNjk0Yy02LjEyNC0zLjAxMy0xMi4wNTQtMi4xMzgtMTcuNTk0LDEuNDYyYTIwLjY3MSwyMC42NzEsMCwwLDAtOS45MTgsMTguNDY5LDE1LjI0MiwxNS4yNDIsMCwwLDAsMTMuMTIzLDE1LjI2MWM2LjYxLjg3NSwxMi4xNTEtMS40NjIsMTYuNTI1LTYuNDE1Ljg3NS0xLjA2OSwxLjY1My0yLjIzNiwyLjYyNS0zLjZIMTMzLjQ0NmMtMi4wNDEsMC0yLjUyOC0xLjI2My0xLjg0Ny0yLjkxNiwxLjI2My0zLjAxMywzLjYtOC4wNjgsNC45NTgtMTAuNmEyLjYyNSwyLjYyNSwwLDAsMSwyLjQzLTEuNTU2aDM1LjM4NGMtLjE5NCwyLjYyNS0uMTk0LDUuMjQ5LS41ODQsNy44NzRhNDEuNDU2LDQxLjQ1NiwwLDAsMS03Ljk2NywxOS4wNDJjLTYuOTk1LDkuMjM0LTE2LjEzNiwxNC45Ny0yNy43LDE2LjUyNS05LjUyNiwxLjI2My0xOC4zNzQtLjU4NC0yNi4xNDgtNi40MTVBMzAuNTMzLDMwLjUzMywwLDAsMSw5OS42MjUsMTYwLjUxYy0xLjI2My0xMC42LDEuODQ3LTIwLjEyMiw4LjI2Mi0yOC40ODFBNDMuMTM3LDQzLjEzNywwLDAsMSwxMzUuMSwxMTUuMjEyYzkuMTM3LTEuNjUzLDE3Ljg4Ni0uNTg0LDI1Ljc2LDQuNzYzQTMwLjQ3MSwzMC40NzEsMCwwLDEsMTcyLjE0LDEzMy42OEMxNzIuNzE5LDEzNC41NTgsMTcyLjMzLDEzNS4wNDQsMTcxLjE2MywxMzUuMzM1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk0yMDMuMzM4LDE4OS4wOWMtOC44NDYtLjE5NC0xNi45MTMtMi43MjItMjMuNzE5LTguNTU0YTMwLjQ4NSwzMC40ODUsMCwwLDEtMTAuNS0xOC43NjFjLTEuNzUtMTAuOTg0LDEuMjYzLTIwLjcsNy44NzQtMjkuMzU2LDcuMS05LjMzMSwxNS42NTEtMTQuMTkyLDI3LjIxOC0xNi4yMzMsOS45MTgtMS43NSwxOS4yNDctLjc3OCwyNy43LDQuOTU4LDcuNjgsNS4yNDksMTIuNDQyLDEyLjM0NSwxMy43MDYsMjEuNjc2LDEuNjUzLDEzLjEyMy0yLjEzOCwyMy44MTYtMTEuMTc5LDMyLjk1M2E0NC41NDIsNDQuNTQyLDAsMCwxLTIzLjMyOSwxMi40NDJDMjA4LjQ5LDE4OC43LDIwNS44NjYsMTg4LjgsMjAzLjMzOCwxODkuMDlabTIzLjEzNS0zOS4yNzFhMjcuOTc4LDI3Ljk3OCwwLDAsMC0uMjkxLTMuMjA4LDE2LjAxMywxNi4wMTMsMCwwLDAtMTguMzc1LTEzLjIzNXEtLjczNC4xMTktMS40NTQuMzA2Yy05LjA0LDIuMDQxLTE0Ljg3Myw3Ljc3Ny0xNy4wMTEsMTYuOTEzYTE2LjAwOSwxNi4wMDksMCwwLDAsOC45NDMsMTguMzc0LDE3LjgyLDE3LjgyLDAsMCwwLDE1Ljg0NS0uNTg0YzcuNjc5LTMuOTg1LDExLjg1OS0xMC4yMDYsMTIuMzQ4LTE4LjU2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48L3N2Zz5cIixcblx0fSxcblx0XCJHb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMGFjZDdcIixcblx0XHRpY29uOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjU0LjUgMjI1XFxcIj48dGl0bGU+ZmlsZV90eXBlX2dvPC90aXRsZT48cGF0aCBkPVxcXCJNLTQ2LjkyNiw4OWMtLjYyMSwwLS43NzctLjMxMS0uNDY2LS43NzdsMy4yNjItNC4xOTRhMi4yMjUsMi4yMjUsMCwwLDEsMS43MDgtLjc3N0gxMy4wMjZjLjYyMSwwLC43NzcuNDY2LjQ2Ni45MzJsLTIuNjQsNC4wMzhhMi4zNjcsMi4zNjcsMCwwLDEtMS41NTMuOTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0tNzAuMzc5LDEwMy4yODVjLS42MjEsMC0uNzc3LS4zMTEtLjQ2Ni0uNzc3bDMuMjYyLTQuMTk0YTIuMjI1LDIuMjI1LDAsMCwxLDEuNzA4LS43NzdINC45NWEuNzE0LjcxNCwwLDAsMSwuNzc3LjkzMkw0LjQ4NCwxMDIuMmExLjM1OCwxLjM1OCwwLDAsMS0xLjQuOTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0tMzIuNzkyLDExNy41NzRjLS42MjEsMC0uNzc3LS40NjYtLjQ2Ni0uOTMybDIuMTc0LTMuODgzYTIuMDYsMi4wNiwwLDAsMSwxLjU1My0uOTMySDEuNTMzYy42MjEsMCwuOTMyLjQ2Ni45MzIsMS4wODdsLS4zMTEsMy43MjhhMS4xNjcsMS4xNjcsMCwwLDEtMS4wODcsMS4wODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PHBhdGggZD1cXFwiTTEyOC40MjYsODYuMmMtOS43ODUsMi40ODUtMTYuNDY0LDQuMzQ5LTI2LjA5Myw2LjgzNC0yLjMzLjYyMS0yLjQ4NS43NzctNC41LTEuNTUzLTIuMzMtMi42NC00LjAzOC00LjM0OS03LjMtNS45LTkuNzg1LTQuODE1LTE5LjI1OS0zLjQxNy0yOC4xMTIsMi4zMy0xMC41NjEsNi44MzQtMTYsMTYuOTI5LTE1Ljg0MiwyOS41MS4xNTUsMTIuNDI1LDguNywyMi42NzYsMjAuOTY4LDI0LjM4NSwxMC41NjEsMS40LDE5LjQxNC0yLjMzLDI2LjQtMTAuMjUxLDEuNC0xLjcwOCwyLjY0LTMuNTcyLDQuMTk0LTUuNzQ3SDY4LjE2M2MtMy4yNjIsMC00LjAzOC0yLjAxOS0yLjk1MS00LjY1OSwyLjAxOS00LjgxNSw1Ljc0Ny0xMi44OTEsNy45MjEtMTYuOTI5YTQuMTk0LDQuMTk0LDAsMCwxLDMuODgzLTIuNDg1aDU2LjUzNWMtLjMxMSw0LjE5NC0uMzExLDguMzg3LS45MzIsMTIuNTgxYTY2LjIzOSw2Ni4yMzksMCwwLDEtMTIuNzM2LDMwLjQ0MkMxMDguNywxNTkuNTEsOTQuMSwxNjguNjczLDc1LjYxOCwxNzEuMTU4Yy0xNS4yMjEsMi4wMTktMjkuMzU1LS45MzItNDEuNzgtMTAuMjUxYTQ4Ljc4NSw0OC43ODUsMCwwLDEtMTkuNzI1LTM0LjQ4Yy0yLjAxOS0xNi45MjksMi45NTEtMzIuMTUsMTMuMi00NS41MDhDMzguMzQyLDY2LjQ3NSw1Mi45NDIsNTcuMzEyLDcwLjgsNTQuMDVjMTQuNi0yLjY0LDI4LjU3OC0uOTMyLDQxLjE1OSw3LjYxYTQ4LjY4Niw0OC42ODYsMCwwLDEsMTguMDE3LDIxLjlDMTMwLjkxMSw4NC45NTgsMTMwLjI4OSw4NS43MzUsMTI4LjQyNiw4Ni4yWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0xNzkuODM1LDE3Mi4wOWMtMTQuMTM0LS4zMTEtMjcuMDI1LTQuMzQ5LTM3LjktMTMuNjY4YTQ4LjcxMSw0OC43MTEsMCwwLDEtMTYuNzc0LTI5Ljk3NmMtMi44LTE3LjU1MSwyLjAxOS0zMy4wODIsMTIuNTgxLTQ2LjkwNSwxMS4zMzgtMTQuOTEsMjUuMDA2LTIyLjY3Niw0My40ODgtMjUuOTM4LDE1Ljg0Mi0yLjgsMzAuNzUzLTEuMjQzLDQ0LjI2NSw3LjkyMSwxMi4yNyw4LjM4NywxOS44OCwxOS43MjUsMjEuOSwzNC42MzUsMi42NCwyMC45NjgtMy40MTcsMzguMDUyLTE3Ljg2MSw1Mi42NTJhNzEuMTcsNzEuMTcsMCwwLDEtMzcuMjc2LDE5Ljg4QzE4OC4wNjcsMTcxLjQ2OSwxODMuODc0LDE3MS42MjQsMTc5LjgzNSwxNzIuMDlaTTIxNi44LDEwOS4zNDNhNDQuNyw0NC43LDAsMCwwLS40NjYtNS4xMjVjLTIuOC0xNS4zNzYtMTYuOTI5LTI0LjA3NC0zMS42ODQtMjAuNjU3LTE0LjQ0NCwzLjI2Mi0yMy43NjMsMTIuNDI1LTI3LjE4LDI3LjAyNWEyNS41NzksMjUuNTc5LDAsMCwwLDE0LjI4OSwyOS4zNTVjOC41NDIsMy43MjgsMTcuMDg1LDMuMjYyLDI1LjMxNy0uOTMyQzIwOS4zNDUsMTMyLjY0LDIxNi4wMjQsMTIyLjcsMjE2LjgsMTA5LjM0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48L3N2Zz5cIixcblx0fSxcblx0XCJHcmFkbGVcIjoge1xuXHRcdGNvbG91cjogXCIjMDA2NTMzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTMuNSw2Ljk2NWg3LjkyM2w0LDYuODg3SDI5Ljk4QTE0LjEsMTQuMSwwLDAsMCwxMS4wMjQsMi45MzJMMTMuNSw2Ljk2NVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjUzM1xcXCIvPjxwYXRoIGQ9XFxcIk0yNS42MjgsMThsLTQuMjA5LDcuMjUySDEwLjgwNkw1LjUsMTYuMTA4LDkuNzM5LDguOCw3LjQsNC45ODFBMTQuMDMsMTQuMDMsMCwxLDAsMzAsMThIMjUuNjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojODJiODE2XFxcIi8+PHBhdGggZD1cXFwiTTIxLjA2MSwxNS45NjNhNS4wMjYsNS4wMjYsMCwxLDEtNS4wMjYtNSw1LjAxMyw1LjAxMywwLDAsMSw1LjAyNiw1XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NTMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiR3JhcGhRTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNlMTAwOThcIixcblx0XHRpY29uOiBcIjxyZWN0IHg9XFxcIi0wLjQzXFxcIiB5PVxcXCIxMi41MzRcXFwiIHdpZHRoPVxcXCIyMi45MDFcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC01Ljg1OCAxNi4xMDcpIHJvdGF0ZSgtNTkuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjQuNTQ1XFxcIiB5PVxcXCIyMS4xNjJcXFwiIHdpZHRoPVxcXCIyMi45MDJcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIxMC40M1xcXCIgeT1cXFwiMTguMDA4XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTUuODEyIDIxLjg1Nykgcm90YXRlKC01OS45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjAuMzgxXFxcIiB5PVxcXCIwLjc3MVxcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjEzLjIyN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNC4wOTIgMjEuODU2KSByb3RhdGUoLTU5Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI0LjQxMlxcXCIgeT1cXFwiNi43ODdcXFwiIHdpZHRoPVxcXCIxMy4yMjdcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yLjIxMyA2LjUwMikgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjAuMzg5XFxcIiB5PVxcXCIxLjY3N1xcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjIyLjkwMVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTMuNzUzIDEyLjI1KSByb3RhdGUoLTMwLjAwMSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI1LjQ1NFxcXCIgeT1cXFwiOS4zODZcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIyNS4zNlxcXCIgeT1cXFwiOS4zODZcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIxNS4yMjJcXFwiIHk9XFxcIjI0LjA5N1xcXCIgd2lkdGg9XFxcIjExLjUwNFxcXCIgaGVpZ2h0PVxcXCIxLjAzN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTkuNDk4IDEzLjc4NSkgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTI4LjEyLDIzYTIuNSwyLjUsMCwxLDEtLjkxNS0zLjQxMUEyLjUsMi41LDAsMCwxLDI4LjEyLDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTguMiwxMS41YTIuNSwyLjUsMCwxLDEtLjkxNS0zLjQxMUEyLjUsMi41LDAsMCwxLDguMiwxMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTMuODgsMjNhMi41LDIuNSwwLDEsMSwzLjQxMS45MTVBMi41LDIuNSwwLDAsMSwzLjg4LDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTIzLjgsMTEuNWEyLjUsMi41LDAsMSwxLDMuNDExLjkxNUEyLjUsMi41LDAsMCwxLDIzLjgsMTEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi40OTMsMi40OTMsMCwwLDEsMTYsMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMTYsNi45OTFhMi41LDIuNSwwLDEsMSwyLjUtMi41LDIuNDkzLDIuNDkzLDAsMCwxLTIuNSwyLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz5cIixcblx0fSxcblx0XCJHcm9vdnlcIjoge1xuXHRcdGNvbG91cjogXCIjNjM5OGFhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNy40NTMsMjkuODY1YzAtLjA3NC40OTQtMS43MTcsMS4xLTMuNjUxQTIxLjgwOCwyMS44MDgsMCwwLDAsOS41LDIyLjZjLS4wNzktLjA1Ni0uMzUuMDQ1LS42LjIyNC0uNzY0LjUzOC0uOTIuNC0xLjQ5MS0xLjM1Ni0uNjE3LTEuOS0uNjM5LTIuMDkxLS4zMTctMi44MS4yMS0uNDcuMi0uNTc5LS4xNDctMS4yNzdhMy43NSwzLjc1LDAsMCwxLS4zNzctMS4wNDRjMC0uMjYtMS40MTMtMS40MzgtMy42NDctMy4wNEEzLjg0NSwzLjg0NSwwLDAsMSwyLDEyLjVhMTAuNDc3LDEwLjQ3NywwLDAsMSwyLjM3OC0uMDM5bDIuMzc4LjEuMjMyLS43NDFjLjk4MS0zLjEzLDIuNDYzLTUuOTU3LDMuMTIyLTUuOTU3LjEzNywwLC40MTYuMjY1LjYxOS41ODguMzMxLjUyNy4zNzYuODUzLjQzNSwzLjEyNmEyMy4wMTMsMjMuMDEzLDAsMCwwLC4xNjUsMi43MzljLjA1NS4xMS4yMjgtLjAzNS4zODUtLjMyMi4yLS4zNjcuNDEyLS40NjcuNzEtLjMzNXMuNDg1LjA0My42NDYtLjM0NWMuMjQyLS41ODIsMS40NTUtNC41MTMsMS40NTUtNC43MTcsMC0uMDY5LjI0LS45LjUzNC0xLjg0NnMuNjMxLTIuMDM2Ljc1MS0yLjQyNGMuMjEzLS42ODguMjQ2LS42MDcsMS41MjQsMy43MjYsMS4zMiw0LjQ3NCwyLjAzLDYuMTI0LDIuMzg1LDUuNTQ0LjI0OC0uNCwxLjU1LS40MjgsMS45MTQtLjAzNC4yMDcuMjI0LjMzOC4yMjEuNDUzLS4wMS4yMzctLjQ4LjgtLjQuOTUzLjE0LjExNy40MjMuMTQ3LjQyMy4zMiwwYS44MTIuODEyLDAsMCwxLC42OTItLjQ2NmMuMzg5LDAsLjUzOC4xNjQuNjY2LjczNWwuMTY1LjczNSwyLjU1OC0uMTgzQTExLjUyMSwxMS41MjEsMCwwLDEsMzAsMTIuNDY4YTIwLjc5LDIwLjc5LDAsMCwxLTIuMzIxLDEuODg5Yy0xLjI3Ny45Ni0yLjM0MiwxLjc3NS0yLjM2OCwxLjgxYTE3LjYwNywxNy42MDcsMCwwLDAsLjEyOCwxLjg2NywxMS4wNzUsMTEuMDc1LDAsMCwxLS41NDQsNS43MTMsNC4zMDgsNC4zMDgsMCwwLDEtMS4wMjEsMS40OWMtLjI3OC4xODYtLjUwNi40LS41MDYuNDg2cy4zLDEuMDc3LjY2LDIuMjEyQTkuNjgyLDkuNjgyLDAsMCwxLDI0LjU2OCwzMGMtLjEwOSwwLTIuNzU3LTIuMDctNi44NzYtNS4zNzNhMTEuMTQzLDExLjE0MywwLDAsMC0xLjY0My0xLjE4NGMtLjE3MSwwLTEuNjQ5LDEuMTMzLTUuOTg0LDQuNTg4LTIuNTE0LDItMi42MTIsMi4wNzMtMi42MTIsMS44MzVabTUuMTU4LTQuNzI3YzEuMzM3LTEuMDUxLDIuNjY0LTIuMDc4LDIuOTQ3LTIuMjgyLjQ4OC0uMzUxLjY1MS0uMjYzLDMuMDIxLDEuNjMxLDEuMzc4LDEuMSwyLjczNywyLjE3NCwzLjAyMSwyLjM4NHMuODY4LjY2NiwxLjMsMS4wMTNjLjQ5MS40Ljc0Mi40OTIuNjc0LjI1Ni0uNzctMi42MzQtLjc5My0yLjY3OC0xLjMyNy0yLjQ3Ni0uNjQ0LjI0NC0xLjA0My0uMDA2LTEuMjQ5LS43ODNhMS43MzksMS43MzksMCwwLDEsLjI0LTEuNDUxLDIuMzc3LDIuMzc3LDAsMCwwLS4yMjEtMi43MzEsNC4yODksNC4yODksMCwwLDEtLjY4Ni0xLjUzbC0uMjQxLTEuMDIzLS41MTcuNzFjLS42MzYuODczLTEuNDExLjkxOC0yLjA1OS4xMTlsLS40NzctLjU4OC0uNTU0Ljc2MmMtLjU1NS43NjMtMS4xOTQuODYyLTEuODQ0LjI4NC0uMTc5LS4xNTktLjI1OC0uMS0uMjU4LjJhMS4yNCwxLjI0LDAsMCwxLS4zNzUuNzc3Yy0uNjE5LjU3LTEuMjIzLjQxOS0xLjYzMy0uNDA5TDEyLDE5LjI0OWwtLjMuNzc1YTcuMDMyLDcuMDMyLDAsMCwxLS44NTMsMS40NzksMTMuODkxLDEzLjg5MSwwLDAsMC0xLjQ1NSwzLjY2M2MtLjUsMS42MjctLjksMy4wNDItLjksMy4xNDNzLjM4MS0uMTQxLjg0Ny0uNTM4LDEuOTQyLTEuNTgyLDMuMjc5LTIuNjMzWm0xMS4zNDMtMS4xMzFjMS4wMTUtMS4xNTQsMS4yNS0zLjI4OC44LTcuMjcxLS4zNzUtMy4zMjktLjU2Mi00LjQxOS0uNzg0LTQuNTY1LS4xNTQtLjEtLjE3Ny4wMS0uMDkxLjQyNi41NjIsMi43LjU5Myw0LjA1My4xLDQuNDM0LS4zMzcuMjYyLS42OTUtLjcxOS0uOTc2LTIuNjc1LS4yMTgtMS41MTUtLjQ0NS0yLjItLjYxNy0xLjg1YTMuMzU5LDMuMzU5LDAsMCwwLC4xNiwxLjA3LDI2LjcxOCwyNi43MTgsMCwwLDEsLjM5NCwzLjM4MSwyMS43NTcsMjEuNzU3LDAsMCwwLC4zNzUsMy4xNTFjLjMwOS45ODUuOC43NDcsMS4xMTgtLjU0cy4zNS0uNDI1LjA0NCwxLjA1NWMtLjMxNywxLjUzNi0xLjI2LDItMi4zNTIsMS4xNS0uMTc1LS4xMzYtLjIzNCwwLS4yMzQuNTU1YTQuOTg4LDQuOTg4LDAsMCwxLS4zLDEuNWwtLjMuNzY1LjQwOC4xMzlBMi4yNDcsMi4yNDcsMCwwLDAsMjMuOTU0LDI0LjAwN1pNOS4zNDYsMjEuNDY4YzIuMTE4LTEuMjMyLDIuNS0yLjY2OCwxLjc5My02LjgwNWEyMS45NDEsMjEuOTQxLDAsMCwxLS4zLTIuM2MwLTEuMDI5LS4yNTYtLjU1NC0uNDQ4LjgzMi0uMjU0LDEuODMyLTEuMDE2LDMuMzg5LTEuNjU3LDMuMzgzLS41NTctLjAwNS0uNzM4LS4yMS0uOTY4LTEuMDk0LS40MTMtMS41ODUuMDM3LTQuMDE4LDEuMTg0LTYuNDA2Ljg0LTEuNzQ5LDEuMy0xLjkwOCwxLjMtLjQ0OCwwLDIuMjc2LS43NzYsNS42MjUtMS4xODQsNS4xMTVhMy44MTQsMy44MTQsMCwwLDEsLjA2NS0yLjJjLjItLjcyLjE1Ny0xLjgxOC0uMDY2LTEuODE4LS4yNTksMC0uNzczLDEuOTEtLjg0MSwzLjEyNy0uMDYsMS4wNzYtLjAyMiwxLjMzOC4yMzEsMS42MTIuODg4Ljk2MiwyLjA1Mi0xLjk3MywyLjExMS01LjMyMy4wMzEtMS43NTktLjEzOC0yLjI1NC0uNjc0LTEuOTgyLS43ODEuNC0yLjg4Myw1Ljg4My0yLjg4Myw3LjUyMywwLDEuMjgzLjMxOSwyLjE4Ni44OCwyLjQ5MS45NTQuNTE5LDEuODc2LS40LDIuNTI5LTIuNTMxbC4yNzUtLjg5NFYxNC45N2MwLDEuNzU5LS41NjcsMi42ODYtMi4zNTcsMy44NTJhOC44OTMsOC44OTMsMCwwLDAtLjg1Mi42LDkuNzU4LDkuNzU4LDAsMCwwLC44OTIsMi41MzQsNS4yODMsNS4yODMsMCwwLDAsLjk2OS0uNDg0Wm0xMi43NjQtMi4xODRjLjIxMy0uNDc1LjI1LS45OTIuMi0yLjgxNy0uMDUtMS45ODYtLjEtMi4zMzctLjQ4Ni0zLjE0NC0uNjkxLTEuNDU4LTEuNTQ0LTEuMDg2LTEuMDQ1LjQ1NS4yNjUuODIuNTg5LjY4LjQ3NS0uMjA1LS4wOTEtLjcuMDc5LS43MjMuMzc1LS4wNDEuNTU2LDEuMjgxLjQxNiwzLjA1NS0uMjQyLDMuMDU1LS40NSwwLS41OS0uMzktLjg4My0yLjQ1OWE2Ljc1Miw2Ljc1MiwwLDAsMC0uMzYyLTEuNzE0Yy0uMjE3LDAtLjMxNC4zODgtLjE3OS43MThhMjguMjMsMjguMjMsMCwwLDEsLjQ1MiwyLjg1OWMuNDQxLDMuNTA3LDEuMDU3LDQuNzA3LDEuNjksMy4yOTNabS04LjM4LjA1NmEzLjM4NSwzLjM4NSwwLDAsMCwuMDk1LTEuMzNjLS4wNi0xLjAwOC0uMDk0LTEuMDgxLS4zNjQtLjc5LS4zODcuNDE5LS44LS4zNzUtLjk0NC0xLjgtLjEwNy0xLjA4Mi0uMTQtMS4wNjEuNjQtLjQxNS4xLjA4MS4zNDYtLjE5NC41NTMtLjYxMS4zNzctLjc2My41LTEuNjguMjI4LTEuNjgtLjA4MSwwLS4xNDcuMTM0LS4xNDcuMywwLC40MjktLjQuMzY4LS40OTQtLjA3NS0uMDUzLS4yNTgtLjE2Ni0uMTY3LS4zNjcuMy0uMTYuMzY5LS4zNTYuNjcxLS40MzQuNjcxcy0uMTg1LS4zLS4yMzctLjY3MWMtLjA5LS42NDYtLjEtLjY1LS4zLS4xMTNhLjk1MS45NTEsMCwwLDAtLjAxLjk2NCwxOC44MTgsMTguODE4LDAsMCwxLC41MjEsMy43OTFjMCwxLjE3NC44LDIuMSwxLjI2NywxLjQ2M1ptMi42ODgtMS41NTZhNy4wNTUsNy4wNTUsMCwwLDAsLjQxNi00LjI1OWMtLjIzNi0xLjE0MS0uNjQ1LTEuNTY4LTEuMjIyLTEuMjc1LS40MjkuMjE4LTEuMDgyLDIuNzQ2LTEuMDg0LDQuMiwwLDIuMjYyLDEuMDYsMy4wMTUsMS44OSwxLjMzN1ptLTEuMDA3LTEuNzkyYTMuNzcsMy43NywwLDAsMS0uMjktMS40MTZjMC0uNzQ1LjAyMi0uNzcyLjItLjMuMjIuNTg2LjYxMS42ODguNzYxLjJhMS4wMzUsMS4wMzUsMCwwLDAtLjA2NS0uNjU2Yy0uMjMyLS40NjktLjItMS4xMDcuMDQ5LTEuMTA3LjI4LDAsLjY3MiwxLjE1NC42NzIsMS45ODIsMCwuNjA5LS42MTMsMS44OTMtLjksMS44OTMtLjA3LDAtLjI2LS4yNjgtLjQyMi0uNlpNMTkuMzQ4LDE3LjdhNi40NDcsNi40NDcsMCwwLDAtLjE0MS00LjkxOGMtLjM1OC0uNzczLTEuMTUzLS45MDYtMS40NzktLjI0OGExMS42MDcsMTEuNjA3LDAsMCwwLS40ODksMy44OTVDMTcuNDc3LDE4LjM0OCwxOC43MTYsMTkuMSwxOS4zNDgsMTcuN1pNMTguMSwxNS41MjdhMi40OTIsMi40OTIsMCwwLDEtLjMxOC0xLjU2NWMuMDA4LS45MDkuMDMxLS45OTEuMTM1LS40NzIuMTUzLjc2NC40NzMsMS4wNTIuNzUzLjY3OS4xNzQtLjIzMS4xNjYtLjM0MS0uMDUtLjY3Ni0uMjg4LS40NDctLjM0NC0xLjA3OS0uMS0xLjA3OWE1LjAzNyw1LjAzNywwLDAsMSwxLjAxNywyLjI1YzAsLjQ4LS41NjQsMS4zMjctLjg4NCwxLjMyN0MxOC41MjcsMTUuOTkxLDE4LjI3NiwxNS43ODIsMTguMSwxNS41MjdabTguNjYyLTEuMzE4LDEuNTQ3LTEuMTc1LTEuNjU4LS4wMTJjLTEuNDg0LS4wMTEtMS42NTguMDQzLTEuNjU2LjUxYTExLjUzMiwxMS41MzIsMCwwLDAsLjIsMS44NTdjLjAxMSwwLC43MTYtLjUzNCwxLjU2Ny0xLjE4Wk02LjUzNSwxNGwuMTU4LS45NDlMNS4zLDEyLjk1NmMtLjc2NC0uMDUyLTEuMzg5LS4wMTItMS4zODkuMDg4YTE0LjEsMTQuMSwwLDAsMCwyLjQ0NywxLjkzNEM2LjM3MSwxNC45NjEsNi40NDgsMTQuNTIxLDYuNTM1LDE0Wm05LjUyNi0yLjk0MWExLjYyNCwxLjYyNCwwLDAsMSwuODE5LjZjLjE5Mi4zNDkuMjc2LjMyNi41NzMtLjE2My4xOTEtLjMxNS40NC0uNTcyLjU1My0uNTcycy4yLS4wNjYuMi0uMTQ2YzAtLjI3OC0yLjEyMi03LjMwNi0yLjItNy4zcy0yLjI3LDcuMzg2LTIuMzM3LDcuOTI1Yy0uMDI4LjIyNi4wNi4zMDkuMjMxLjIxOS4xNTItLjA4MS4zNjMuMDYzLjQ2OC4zMTkuMTcuNDE1LjI0LjM4Mi42NDQtLjMwNi4zODQtLjY1NC41NDQtLjc0MiwxLjA0OC0uNTc5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC41LDEyLjE3NWEuODUuODUsMCwwLDEtLjExNS0uMi43MzcuNzM3LDAsMCwwLS4xOTQtLjI5LjI4MS4yODEsMCwwLDAtLjMtLjA2MWMtLjA4Ny4wMzUtLjExMS4wMzktLjE1LjAyNC0uMDY1LS4wMjYtLjA4OS0uMTA2LS4wNy0uMjQyLjAyMy0uMTY5LjItLjgyNS41NDgtMi4wNTQuNzExLTIuNSwxLjY2Ni01LjY0NiwxLjc3Mi01LjgzOS4wMTItLjAyMS4wMTItLjAyMS4wMjQsMCwuMDYzLjExNC40MzIsMS4yNjYuOTM3LDIuOTIyLjY4MiwyLjI0LDEuMjUsNC4yMSwxLjI1LDQuMzM5LDAsLjA3OS0uMDYuMTI3LS4xODYuMTQ3LS4xNTcuMDI2LS4zMzkuMjEyLS41ODcuNmExLjY3NCwxLjY3NCwwLDAsMS0uMjI2LjMxYy0uMDQ4LjA0Ni0uMDUyLjA0OC0uMS4wNDhzLS4wNTYsMC0uMS0uMDQzYS45NTguOTU4LDAsMCwxLS4xLS4xNDQsMS4yNjgsMS4yNjgsMCwwLDAtLjQxNC0uNDIyLDEuNTI1LDEuNTI1LDAsMCwwLS43MzgtLjI4MS40MzQuNDM0LDAsMCwwLS40LjE1NiwyLjcxOCwyLjcxOCwwLDAsMC0uNDE2LjZjLS4yNTcuNDI1LS4zNDguNTEzLS40NDEuNDI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk02LjI1MiwxNC45MjhhMTkuMDU1LDE5LjA1NSwwLDAsMS0yLjMtMS44MzhjLS4wMzEtLjAzOC0uMDM0LS4wNDQtLjAyNS0uMDU3YTIuNywyLjcsMCwwLDEsMS4xNC0uMDg1Yy4yMy4wMTIsMS42MTkuMSwxLjYyMS4xMDhzLS4zLDEuNzc5LS4zMjEsMS44ODFDNi4zNTcsMTQuOTgxLDYuMzM3LDE0Ljk3OSw2LjI1MiwxNC45MjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjM5OGFhXFxcIi8+PHBhdGggZD1cXFwiTTI1LjE3NywxNS4zNUExNC4yMzksMTQuMjM5LDAsMCwxLDI1LDEzLjU2YS41NTMuNTUzLDAsMCwxLC4wNDQtLjI5Yy4wODEtLjE1MS4yNDUtLjIwNS43LS4yMy4yMjgtLjAxMywxLjI4MS0uMDE1LDIuMDI1LDBsLjUyMS4wMDhMMjcuMDI5LDE0Yy0xLjE0NC44NjctMS44MSwxLjM2OS0xLjgzNCwxLjM4Mi0uMDA2LDAtLjAxMi0uMDA2LS4wMTgtLjAyN2gwWlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk04LjUwNiwyOC4yODFjMC0uMDcxLjE0OS0uNi41MjctMS44NzguOTA1LTMuMDU3LDEuMzE5LTQuMTY1LDEuODI3LTQuODkyYTcuNjY0LDcuNjY0LDAsMCwwLC45NjktMS43OTJMMTIsMTkuMjkybC4yMjUuNDQ4Yy4zOTQuNzg0LjYzMiwxLjAxMSwxLjA2MiwxLjAxNmExLjIzOSwxLjIzOSwwLDAsMCwxLjEtMS4xMzdjMC0uMTI0LjA0NC0uMjUxLjA4Ni0uMjUxYTEuMTE5LDEuMTE5LDAsMCwxLC4yMjYuMTQsMS4yNzEsMS4yNzEsMCwwLDAsLjY2Ni4zLjg3OS44NzksMCwwLDAsLjYwOS0uMTQ4LDIuNDcsMi40NywwLDAsMCwuNzExLS43NjRjLjE4Ny0uMjUyLjM0Ny0uNDU5LjM1NC0uNDU5cy4xNDMuMTU5LjMuMzUyYTUuMDkxLDUuMDkxLDAsMCwwLC40MjIuNDY3LDEuMDQ5LDEuMDQ5LDAsMCwwLDEuNTQ5LS4wOCw2LjExMSw2LjExMSwwLDAsMCwuNDY3LS41NzJjLjE2OC0uMjI4LjMwNy0uNDEuMzEtLjRzLjA2Ni4yNjkuMTQxLjU4NC4xNjkuNjcuMjA5Ljc4OWEzLjgyNiwzLjgyNiwwLDAsMCwuNjQyLDEuMjM0LDIuMTcsMi4xNywwLDAsMSwuNDY2LDEuMjQ2LDMuMDUxLDMuMDUxLDAsMCwxLS4zNTIsMS40NDcsMi4wNywyLjA3LDAsMCwwLS4yNjcuOTM0LDIuMDE3LDIuMDE3LDAsMCwwLC4yMTMuODUxLjc3My43NzMsMCwwLDAsMS4wNjkuNDEzLDEuMzUxLDEuMzUxLDAsMCwxLC4zMTYtLjA2OGMuMiwwLC4zMTUuMTkzLjU0Mi44ODEuMTU3LjQ3NC41LDEuNjM3LjUsMS42OTUsMCwuMDMtLjAxNi4wNTEtLjAzOS4wNTFhMS40ODYsMS40ODYsMCwwLDEtLjQwNy0uMjI0Yy0uMi0uMTQ0LTIuNjEyLTIuMDI5LTMuNDA4LTIuNjYzLTIuMTI4LTEuNjkzLTIuODI4LTIuMjMzLTMuMTcxLTIuNDQ2LS4zNy0uMjMtLjYyMi0uMjg1LS44MjctLjE3Ny0uMjU0LjEzMy0zLjcyNiwyLjg0Ny01Ljc1MSw0LjVBMTAuODQ2LDEwLjg0NiwwLDAsMSw4LjY1LDI4LjI1MWMtLjE0OS4wODMtLjE0My4wODEtLjE0My4wM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz5cIixcblx0fSxcblx0XCJIYW1sXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VjZGZhN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE1LjMxMSwxNi4wNDMsMTMuNCwyOS43MjZhNi4zMjIsNi4zMjIsMCwwLDEtNS45NTYtMS4yNWwzLjEtMTMuMjY2TDQuNjksMy4zNGE4LjAzMSw4LjAzMSwwLDAsMSwzLjc5LS42NDZsNS4xNDQsOS43LDguOTE0LTcuNTgxczMsMS4wNDEsMy4yNywyLjA0MWwtMTAuNSw5LjE4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlY2RmYTdcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDE2LDE3LjQxMWE0LjI0NCw0LjI0NCwwLDAsMC0uNTQxLS44MTIsNS43LDUuNywwLDAsMC0xLjQ1OC0xLjE4Nyw3LjMzMSw3LjMzMSwwLDAsMC0xLjY4Ny0uNzkxbC0uMjI5LS4wNjItLjE4Ny0uMDYyYy0uMTI1LS4wNDItLjIyOS0uMS0uMzMzLS4xNDZhMS4yODIsMS4yODIsMCwwLDEtLjQ1OC0uNDE3QTEuNzU0LDEuNzU0LDAsMCwxLDIyLDEyLjY0MmEyLjUxOCwyLjUxOCwwLDAsMSwuMS0uMzc1Yy4wNDItLjEyNS4wODMtLjI1LjEyNS0uNGEyLjY5MSwyLjY5MSwwLDAsMCwuMDYyLS42bC4xLS4wODMsMS4yNS0xLjA0MWMuMjI5LS4xODcuNDU4LS40LjY4Ny0uNTgzYTIuMiwyLjIsMCwwLDEsLjIyOS4xNDZzLjY0Ni4wNjIsMS0uOTE2bC0uMTg3LS4xMjUuMTI1LS4xLjMxMi0uMjcxYS42MTMuNjEzLDAsMCwwLC4yMjktLjM3NS41MjkuNTI5LDAsMCwwLS40MTcuMTI1bC0uMzMzLjI1LS4yMjkuMTY3TDIyLjE4NCw2LjQ3OGMuMTQ2LS4xMjUuMjcxLS4yMjkuNDE3LS4zNTRsLjYtLjU0MS4wNjItLjA2MmMuMDYyLjA0Mi4xLjA4My4xNjcuMTI1LjE0Ni4xLjMxMi4yMDguNDU4LjI5MmwuOTE2LjVjLjI5Mi4xNjcuNi4zMzMuOTE2LjQ3OWEzLjMyMywzLjMyMywwLDAsMCwuNDc5LjIwOGMuMDgzLjAyMS4xNjcuMDYyLjI1LjA4My4wNDIsMCwuMS4wMjEuMTQ2LjAyMWguMWEuMTUxLjE1MSwwLDAsMCwuMTI1LS4wODNWNy4xMjNhLjA3Ny4wNzcsMCwwLDEsLjAyMS0uMDYyVjYuOTc3YS4xMDguMTA4LDAsMCwwLS4wNDItLjA4M2MtLjAyMS0uMDQyLS4wNjItLjA4My0uMDgzLS4xMjVhMS41OSwxLjU5LDAsMCwwLS4xODctLjE4N2MtLjEyNS0uMTI1LS4yNzEtLjIyOS0uNC0uMzMzLS4yNzEtLjIwOC0uNTYyLS40LS44NTQtLjU4M2E3LjU0NSw3LjU0NSwwLDAsMC0uOS0uNSwzLjMyMywzLjMyMywwLDAsMC0uNDc5LS4yMDhjLS4wODMtLjAyMS0uMTY3LS4wNjItLjI3MS0uMDgzLS4wNDIsMC0uMS0uMDIxLS4xNjctLjAyMWEuMzEuMzEsMCwwLDAtLjEyNS4wMjEuNTIyLjUyMiwwLDAsMC0uMTY3LjEsMS42LDEuNiwwLDAsMC0uMzc1LjIwOGwtLjYyNS4zNTRjLS4xODcuMTQ2LS40LjMxMi0uNTgzLjQ1OGwtLjIwOC0uMTQ2cy0uODc1LjA4My0uNTgzLjY0NmwuMDgzLjA4M2MtLjgzMy42ODctMS42NDUsMS40LTIuNDU3LDIuMDgzLS44MzMuNzA4LTEuNjQ1LDEuNDE2LTIuNDc4LDIuMTQ1bC0xLjIyOSwxLjA4M2ExLjg3OCwxLjg3OCwwLDAsMS0uMjA4LjE4N2MtLjA0Mi0uMTI1LS4xLS4yMjktLjE0Ni0uMzMzbC0uMjkyLS42MjUtLjU2Mi0xLjI1Yy0uMzc1LS44MzMtLjc1LTEuNjY2LTEuMTQ1LTIuNUwxMS4yMDksNC44OTVsLS4xODctLjM3NWguMjVzLjA4My0uNjg3LS40MTctLjgxMmExLjQsMS40LDAsMCwwLS4yMDguMDIxYy0uMTg3LS4zNzUtLjM1NC0uNzUtLjU0MS0xLjEyNWgwbC0uMDgzLS4zMTJBLjMzLjMzLDAsMCwwLDkuOSwyLjFhLjM1Mi4zNTIsMCwwLDAtLjEtLjA0MmMtLjA2Mi0uMDIxLS4xLS4wMjEtLjE2Ny0uMDQyQTEuMjgxLDEuMjgxLDAsMCwwLDkuMzU1LDJhNC4wNTcsNC4wNTcsMCwwLDAtLjUyMS4wNDIsOC43NjcsOC43NjcsMCwwLDAtMS4wMi4xODdjLS4zMzMuMDgzLS42NjYuMTY3LTEsLjI3MWEzLjI3MiwzLjI3MiwwLDAsMC0uNDc5LjE4N2wtLjI1LjEyNWMtLjA0Mi4wMjEtLjA4My4wNjItLjEyNS4wODNMNS45LDIuOTU4Yy0uMDIxLjAyMS0uMDIxLjA0Mi0uMDQyLjA2MnYuMDYyaDBWMy4xYS4xNjQuMTY0LDAsMCwwLC4xLjEyNWMuMDQyLjAyMS4wNjIuMDQyLjA4My4wNDJhMS4zMjcsMS4zMjcsMCwwLDEsLjE0Ni4wNDIsMS4xODgsMS4xODgsMCwwLDAsLjI3MS4wMjEsNC4zODQsNC4zODQsMCwwLDAsLjUyMS0uMDQyYy4zMzMtLjA0Mi42ODctLjA4MywxLjAyLS4xNDZsMS4wMi0uMTY3Yy4xNjctLjAyMS4zMzMtLjA2Mi41MjEtLjEuMTQ2LjI5Mi4yOTIuNi40MzcuOS0uOTU4LjA4My0yLjQ1Ny4yMDgtMy4zOTUuMzEyLS4xLS4xODctLjE4Ny0uMzU0LS4yOTItLjU0MWEuMTI3LjEyNywwLDAsMC0uMTQ2LS4wNjIuMTA4LjEwOCwwLDAsMC0uMDYyLjE0NmMuMDYyLjE2Ny4xMjUuMzEyLjE4Ny40NzlhMS4xNjcsMS4xNjcsMCwwLDAtLjUuMTI1QTEuODI4LDEuODI4LDAsMCwwLDYuNCw1LjY0NWEzLjU2NywzLjU2NywwLDAsMSwuNDU4LS4xMjVsLjQzNywxLDEuMjUsMi44MzIsMS4yNywyLjgzMmMuNDE3LjkzNy44NTQsMS44NzQsMS4yOTEsMi44MzJoMGEuMDIuMDIsMCwwLDAsLjAyMS4wMjFsLS4xODcuNjI1LS41LDEuNzQ5Yy0uMzEyLDEuMTY2LS42LDIuMzUzLS45LDMuNTJMOS4xMDUsMjIuN2wtLjQxNywxLjc3Yy0uMjkyLDEuMTg3LS41NjIsMi4zNTMtLjksMy41MmEuMTI1LjEyNSwwLDAsMCwuMDIxLjA4MywzLjA3NiwzLjA3NiwwLDAsMCwuNi41NjIsNi4wNDgsNi4wNDgsMCwwLDAsLjY4Ny40MTcsOS40LDkuNCwwLDAsMCwxLjUuNiw2Ljk3Miw2Ljk3MiwwLDAsMCwxLjYyNC4yNzEsMy43MjgsMy43MjgsMCwwLDAsLjgzMy0uMDQyLDYuNTQ3LDYuNTQ3LDAsMCwwLC44MzMtLjE2Ny4yNTQuMjU0LDAsMCwwLC4xNjctLjE4N3YtLjAyMWMuMjI5LTEuMTQ1LjQxNy0yLjMxMi42MjUtMy40NTdsLjU4My0zLjQ3OGMuMTg3LTEuMTY2LjQtMi4zMTIuNTgzLTMuNDc4LjAyMS0uMTI1LjA0Mi0uMjcxLjA2Mi0uNC4wNDIuMDQyLjA2Mi4xLjEuMTQ2YTQuMTM3LDQuMTM3LDAsMCwwLC43MDguNjQ2LDcuMjEyLDcuMjEyLDAsMCwwLDEuNTgzLjgzMywxMS43NzQsMTEuNzc0LDAsMCwwLDEuNjY2LjUsMTAuMTgyLDEwLjE4MiwwLDAsMCwxLjEuMTg3LDIuNjIxLDIuNjIxLDAsMCwwLS4yNSwxLjIwOC4xMTUuMTE1LDAsMCwwLC4wNjIuMWguMDIxYTUuMTY0LDUuMTY0LDAsMCwwLDEuMjcuNDc5LDQuMzMzLDQuMzMzLDAsMCwwLDEuMzc1LjA2MiwyLjYyNywyLjYyNywwLDAsMCwxLjMzMy0uNTYyLDIuODI0LDIuODI0LDAsMCwwLC44MTItMS4xNjZsLjAyMS0uMDIxVjIxLjFsLjA2Mi0uNTYydi0uMDIxYTUuNDI3LDUuNDI3LDAsMCwwLC42MjUtLjQxNywyLjcxLDIuNzEsMCwwLDAsLjY0Ni0uNzI5LDEuODMzLDEuODMzLDAsMCwwLC4yNS0xLDIuNTYzLDIuNTYzLDAsMCwwLS4yOTItLjk1OFptLS40LTEwLjVabS0xLjQ3OS0xLjFhNy4xMiw3LjEyLDAsMCwxLC44MzMuNTQxYy4xMjUuMS4yNzEuMTg3LjQuMzEyYTEuMjU3LDEuMjU3LDAsMCwxLC4xNjcuMTY3bC4wNDIuMDQyaC0uMDQyYy0uMDgzLS4wMjEtLjE0Ni0uMDQyLS4yMjktLjA2Mi0uMTQ2LS4wNjItLjMxMi0uMTI1LS40NTgtLjE4N2E3LjEzMiw3LjEzMiwwLDAsMS0uODc1LS40NzlBNS42MSw1LjYxLDAsMCwxLDI0LjIsNS41MmEyLjUsMi41LDAsMCwxLS4yMjktLjI1bC4zMTIuMTI1YTYuNCw2LjQsMCwwLDEsLjg1NC40MTdabS0xLjQxNi0uOTE2LjAyMS4wMjF2LjA0MmEuMDIuMDIsMCwwLDAtLjAyMS0uMDIxVjQuODk1Wk04Ljg3NiwyLjU2MmE1LjAyMSw1LjAyMSwwLDAsMS0uOTM3LjMzMyw1LjM0Nyw1LjM0NywwLDAsMS0uOTc5LjE2Nyw0LjAxMyw0LjAxMywwLDAsMS0uNS4wMjEuNzgxLjc4MSwwLDAsMS0uMjI5LS4wMjFINi4xNjljLjAyMSwwLC4wMjEtLjAyMS4wNDItLjAyMS4wNjItLjA0Mi4xNDYtLjA2Mi4yMDgtLjEuMTQ2LS4wNjIuMzEyLS4xLjQ1OC0uMTY3LjMxMi0uMDgzLjY0Ni0uMTY3Ljk3OS0uMjI5YTguNCw4LjQsMCwwLDEsLjk3OS0uMTI1QTEuNTc2LDEuNTc2LDAsMCwwLDkuMTQ3LDIuNGExLjUzNiwxLjUzNiwwLDAsMS0uMjcxLjE2N1ptMTQuNDUzLDcuMS0xLjI5MSwxLTEuMjkxLDEuMDJjLS4zNTQuMjkyLS43MDguNTgzLTEuMDYyLjg1NC4wMjEtLjAyMS4wNDItLjA2Mi4wNjItLjA4My4xNjctLjIyOS4zMzMtLjQzNy41LS42NDYuMzU0LS40MTcuNjg3LS44NTQsMS4wNjItMS4yNXMuNzcxLS43OTEsMS4xNjYtMS4xNDVhNC44NzIsNC44NzIsMCwwLDEsLjY0Ni0uNWwuMTg3LS4xMjVjLjE4Ny4xNDYuNC4yOTIuNTgzLjQzNy0uMTY3LjE0Ni0uMzc1LjI5Mi0uNTYyLjQzN1pNOC4wNjQsNy4xbC4xLjFhNS42Myw1LjYzLDAsMCwxLC41ODMuNjQ2LDIuMjEsMi4yMSwwLDAsMSwuMzc1LjcyOS45MjEuOTIxLDAsMCwxLS4wNjIuNjI1bC0uMDIxLS4wNjJMOC4wNjQsNy4xWm0xLjAyLDIuMTY2YS43Mi43MiwwLDAsMCwuMTQ2LS4yNS44NjYuODY2LDAsMCwwLC4wNDItLjQ1OEExLjcsMS43LDAsMCwwLDguOSw3LjcyN2E0LjAxNSw0LjAxNSwwLDAsMC0uOTc5LS45bC0uMjI5LS40NzljLS4xNDYtLjMxMi0uMjkyLS42MjUtLjQ1OC0uOTE2LjMxMi0uMDgzLjY4Ny0uMjA4LDEuMS0uMzEyQTIwLjMxMywyMC4zMTMsMCwwLDEsOS4zNTUsN2E3Ljk2Myw3Ljk2MywwLDAsMSwuNzcxLDIuNTQxYy4wMjEuMjA4LDAsLjQzNywwLC42NjZzMCwuNDU4LjAyMS42ODdhNy42MDksNy42MDksMCwwLDAsLjE0Ni45NThMOS4wODQsOS4yNjhaTTE0LDI2LjI0MmEuOS45LDAsMCwxLS4xODcuMjA4LjQuNCwwLDAsMS0uMzMzLjEuMzU4LjM1OCwwLDAsMS0uMjI5LS4yMjkuOTgxLjk4MSwwLDAsMS0uMDgzLS4zNTQsMi4yNzUsMi4yNzUsMCwwLDEsLjA0Mi0uNzUsMi44MTYsMi44MTYsMCwwLDEsLjIyOS0uNzA4LDEuNDc4LDEuNDc4LDAsMCwxLC4yMDgtLjI5Mi4zNDEuMzQxLDAsMCwxLC4yOTItLjEyNWMuMSwwLC4yMDguMS4yNzEuMjA4YS43NC43NCwwLDAsMSwuMDgzLjE4N2wtLjI1LDEuNDc5Yy0uMDIxLjEtLjAyMS4xODctLjA0Mi4yNzFabTEuMjI5LTcuMTg1LS4zNzUsMi4xODdhMy4zMjksMy4zMjksMCwwLDAtLjEtLjQzN2MtLjEtLjQtLjIyOS0uNzcxLS4zNTQtMS4xNDVhMTUuNTM3LDE1LjUzNywwLDAsMC0uOTU4LTIuMTY2Yy4yMjkuNzcxLjUsMS41Ljc3MSwyLjI0OS4xNDYuMzc1LjI3MS43NS40LDEuMWwuMTg3LjU2MmMwLC4wMjEuMDIxLjA2Mi4wMjEuMDgzLS4wNjIuMzMzLS4xMjUuNjY2LS4xNjcsMS4wMmwtLjMxMiwxLjljLS4wMjEtLjA0Mi0uMDIxLS4wODMtLjA0Mi0uMTI1YS40ODYuNDg2LDAsMCwwLS4zMTItLjI5Mi41MjUuNTI1LDAsMCwwLS40MTcuMTI1LDEuOTQ0LDEuOTQ0LDAsMCwwLS4yNzEuMzEyLDIuMDM2LDIuMDM2LDAsMCwwLS4yNzEuNzUsMi4xMzEsMi4xMzEsMCwwLDAsMCwuODEyLDEuMDIxLDEuMDIxLDAsMCwwLC4xNDYuNC40ODYuNDg2LDAsMCwwLC4zMzMuMjcxLjQyOC40MjgsMCwwLDAsLjM3NS0uMTY3Yy4wNDItLjA0Mi4wODMtLjEuMTI1LS4xNDYtLjE0Ni45NzktLjMxMiwxLjk1OC0uNDU4LDIuOTU3YTIuNzI3LDIuNzI3LDAsMCwxLS41NjIuMTI1Yy0uMjUuMDQyLS41LjA2Mi0uNzUuMDgzYTUuNTMxLDUuNTMxLDAsMCwxLTEuNTQxLS4xNDYsNy44NDYsNy44NDYsMCwwLDEtMS41LS40NzksMy42MjUsMy42MjUsMCwwLDEtMS4yMjktLjg1NGMuMzEyLTEuMTQ1LjY2Ni0yLjI5MSwxLjAyLTMuNDM2bC41NDEtMS43MjkuNTIxLTEuNzQ5Yy4zNTQtMS4xNjYuNzA4LTIuMzMzLDEuMDQxLTMuNS4xNjctLjU4My4zMTItMS4xNjYuNDc5LTEuNzQ5YTMuNjI2LDMuNjI2LDAsMCwwLC4xODctMS44MzN2LS4wMjFjLS4wMjEtLjAyMS0uMDQyLS4wMjEtLjA0MiwwYTMuMTA5LDMuMTA5LDAsMCwwLS4yNS4yOTJjLS4yMjktLjUyMS0uNDc5LTEuMDItLjcwOC0xLjU0MWE0Ljc2NSw0Ljc2NSwwLDAsMS0uMTY3LS41ODMsNy4xNjUsNy4xNjUsMCwwLDEtLjIwOC0xLjMxMmMtLjAyMS0uMjI5LS4wMjEtLjQzNy0uMDIxLS42NjZzLjAyMS0uNDU4LDAtLjY4N2E3LjYyNSw3LjYyNSwwLDAsMC0uODMzLTIuNiwxMi41ODcsMTIuNTg3LDAsMCwwLTEuMS0xLjgzM2MuNjg3LS4xODcsMS40MTYtLjM3NSwyLS40NzkuMDgzLjE4Ny4xODcuMzU0LjI3MS41NDFMMTEuOTM4LDcuNmwxLjI1LDIuNDM3LjYyNSwxLjIwOC4zMTIuNmMuMDgzLjEyNS4xMjUuMjcxLjIwOC4zNzVsLS44MTIuNzVhLjA2OS4wNjksMCwwLDAsMCwuMS4wNzMuMDczLDAsMCwwLC4xLjAyMWMuNDM3LS4zMTIuODc1LS42NDYsMS4zMTItLjk3OWwxLjMxMi0xYy44NzUtLjY2NiwxLjcyOS0xLjMzMywyLjU4Mi0yczEuNzA4LTEuMzU0LDIuNTYyLTIuMDQxbC4wMjEtLjAyMWEyNC4zMTYsMjQuMzE2LDAsMCwwLDEuODc0LDEuNjQ1LDYuMTYyLDYuMTYyLDAsMCwwLS44NzUuNTQxLDguOTQzLDguOTQzLDAsMCwwLTEuMjI5LDEuMTI1LDEyLjI3OSwxMi4yNzksMCwwLDAtMS4wNDEsMS4yOTEsMTEuNzc4LDExLjc3OCwwLDAsMC0uNjQ2LDFjLTEuMjcsMS4wNDEtMi41MiwyLjEtMy43MjgsMy4yMDdhLjEyOC4xMjgsMCwwLDAtLjAyMS4xNDYuMTM4LjEzOCwwLDAsMCwuMTQ2LjA0Miw5LjEzNCw5LjEzNCwwLDAsMC0uMzEyLDEuMjVjLS4xMjUuNTgzLS4yNSwxLjE2Ni0uMzU0LDEuNzQ5Wm05LjIwNSwyLjc5MWEyLjUyNywyLjUyNywwLDAsMS0xLjAyLjQ1OCwzLjc2NywzLjc2NywwLDAsMS0xLjE4Ny4wNDIsNy4zNjEsNy4zNjEsMCwwLDEtMS4xNDUtLjIwOCwyLjAzNywyLjAzNywwLDAsMSwuMTY3LTEuMDQxYy4xNDYuMDIxLjI3MS4wMjEuNDE3LjA0MmEuMTE0LjExNCwwLDAsMCwuMTI1LS4wODMuMTI0LjEyNCwwLDAsMC0uMDgzLS4xNjdoMGMtLjEtLjA0Mi0uMTg3LS4wNjItLjI5Mi0uMWEyLjc3MSwyLjc3MSwwLDAsMSwuMjkyLS40Yy4xMjUtLjEyNS4yNS0uMjUuMzc1LS4zNTRhMy45OTIsMy45OTIsMCwwLDAsLjg1NC40LDIuODgxLDIuODgxLDAsMCwwLDEuMTI1LjEsMS41NSwxLjU1LDAsMCwwLDEuMDItLjU0MSwxLjUyNCwxLjUyNCwwLDAsMCwuMzU0LS45MTYuODUuODUsMCwwLDEsLjAyMS40LDQuNTExLDQuNTExLDAsMCwxLS4wODMuNTIxbC0uMDYyLjMxMkwyNSwyMC40OTRhLjkxOS45MTksMCwwLDAtLjMzMy4zNTQuNzUxLjc1MSwwLDAsMCwuNDc5LDBjLjAyMSwwLC4wMjEtLjAyMS4wNDItLjAyMS0uMDIxLjA2Mi0uMDIxLjEtLjA0Mi4xNjdhMi41NTIsMi41NTIsMCwwLDEtLjcwOC44NTRaTTI2LjUsMTkuMTE5YTIuMiwyLjIsMCwwLDEtLjQ1OC42MjUsMi42MzgsMi42MzgsMCwwLDEtLjI3MS4yMjksMi41ODUsMi41ODUsMCwwLDAtLjA2Mi0uNTYyLDEuNTM0LDEuNTM0LDAsMCwwLS4wODMtLjI5Mi41MzEuNTMxLDAsMCwwLS4xODctLjI1aDBjLS4wMjEsMC0uMDQyLDAtLjA0Mi4wMjFoMGExLjk1LDEuOTUsMCwwLDEtLjU2Mi43NzEsMS40MjksMS40MjksMCwwLDEtLjgxMi4yOTIsMi44NTcsMi44NTcsMCwwLDEtLjkxNi0uMTI1Yy0uMzEyLS4wODMtLjYyNS0uMTg3LS45MzctLjI5MmwtLjA0Mi0uMDIxYS4yLjIsMCwwLDAtLjE4Ny4wNDJjLS4xNjcuMjA4LS4yOTIuNC0uNDM3LjYtLjEuMTY3LS4xODcuMzEyLS4yNzEuNDc5LS4zNzUtLjE0Ni0uNzI5LS4yNzEtMS4xLS40MTctLjUyMS0uMjA4LTEuMDQxLS40MTctMS41Mi0uNjY2YTcuNjQ4LDcuNjQ4LDAsMCwxLTEuNC0uODEyLDIuOTQ5LDIuOTQ5LDAsMCwxLS45NzktMS4wNjJ2LS4wMjFhLjQwOS40MDksMCwwLDAtLjE4Ny0uMTg3YzAtLjA0Mi4wMjEtLjEuMDIxLS4xNDZhNy4zNyw3LjM3LDAsMCwwLC4xLTEuNTJjMS42ODctMS4xODcsMy4zMzItMi40MzcsNC45NTctMy43MjhsLS4wNjIuMTg3YTMuMjcsMy4yNywwLDAsMC0uMTQ2LDEuMDJBMi4wODksMi4wODksMCwwLDAsMjIuMTIyLDE1LjFhMi44MjUsMi44MjUsMCwwLDAsLjQ3OS4xODdsLjI1LjA2Mi4yMDguMDQyYTYuNjQ1LDYuNjQ1LDAsMCwxLDEuNTQxLjYyNSw2LjE1Niw2LjE1NiwwLDAsMSwxLjMxMi45NzksMi4yNzUsMi4yNzUsMCwwLDEsLjcwOCwxLjMzMywxLjUxLDEuNTEsMCwwLDEtLjEyNS43OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2YzZTI5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjY2NywyMy45MDlhMi4xNjEsMi4xNjEsMCwwLDAtLjM1NC43NzEsMS41NTYsMS41NTYsMCwwLDAtLjA2Mi40MTdsLS4wMjEuNDE3YTQuNTMzLDQuNTMzLDAsMCwwLC4xNDYsMS42NjYsNy42NDcsNy42NDcsMCwwLDAsLjY2NiwxLjUyYy0uMDgzLS4yNzEtLjE4Ny0uNTIxLS4yNzEtLjc3MXMtLjE2Ny0uNTIxLS4yMjktLjc5MWE1Ljg5LDUuODksMCwwLDEtLjEtMS42bC4wMjEtLjQxN2EyLjU1MiwyLjU1MiwwLDAsMSwuMDQyLS40LDMuMTM3LDMuMTM3LDAsMCwxLC4yOTItLjcyOSwyLjk2NywyLjk2NywwLDAsMSwuNTIxLS42MjUsMi41OTEsMi41OTEsMCwwLDEsLjY2Ni0uNDc5LDIuNzYsMi43NiwwLDAsMC0xLjMxMiwxLjAyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNmM2UyOVxcXCIvPlwiLFxuXHR9LFxuXHRcIkhhbmRsZWJhcnNcIjoge1xuXHRcdGNvbG91cjogXCIjYzE5NzcwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuMywxMy4xYTQuMjM4LDQuMjM4LDAsMCwxLDIuNzI4LjlBNC41OTIsNC41OTIsMCwwLDEsMTYsMTUuMTI3YTQuMTQ0LDQuMTQ0LDAsMCwxLDIuMDM5LTEuNzQ3LDQuNzU3LDQuNzU3LDAsMCwxLDMuMjg2LjAxOSw3LjgzMyw3LjgzMywwLDAsMSwyLjQ0MywxLjU1OGMuNTY4LjUsMS4wOTQsMS4wNSwxLjY3OSwxLjUzM2EzLjQsMy40LDAsMCwwLDEuMDE5LjYxNCwxLjQyLDEuNDIsMCwwLDAsMS40Ni0uMzc5Ljk2NS45NjUsMCwwLDAtLjA1NS0xLjMyMy41NDUuNTQ1LDAsMCwwLS44LjEwOC42NTkuNjU5LDAsMCwwLC4wNS42ODYsMS4yMjIsMS4yMjIsMCwwLDEtLjYtLjkyNiwxLjAyMiwxLjAyMiwwLDAsMSwuNjkxLTEuMDMyLDIuMDA1LDIuMDA1LDAsMCwxLDIuMzEyLjY2MSwzLjI1OCwzLjI1OCwwLDAsMSwuNDQsMi4zMDgsMi43NjIsMi43NjIsMCwwLDEtMS4xMzcsMS44NzIsNS4wNTEsNS4wNTEsMCwwLDEtMy4wMTMuOCw4LjQ4OCw4LjQ4OCwwLDAsMS0yLjkzMi0uNjNjLTEuNTU4LS42MjYtMy4wMTYtMS40OTItNC42MjUtMS45OTJhMTMuOTc3LDEzLjk3NywwLDAsMC0xLjctLjM2M2MtLjQzLjAwNy0uODYxLS4wMTUtMS4yOS4wMTVhNS42OTIsNS42OTIsMCwwLDAtMS41MzQuMzQ5Yy0xLjYzNi41MDktMy4xMTYsMS40LTQuNywyLjAyNGE3LjYyNSw3LjYyNSwwLDAsMS00LjI0OS40NzQsMy43NCwzLjc0LDAsMCwxLTIuMTI1LTEuMTRBMi44NTYsMi44NTYsMCwwLDEsMiwxNi42NjhhMi43MjIsMi43MjIsMCwwLDEsLjU1NS0xLjg3NCwxLjk5NCwxLjk5NCwwLDAsMSwxLjY4Ny0uNjgsMS40MjUsMS40MjUsMCwwLDEsMS4wNjMuNTIsMS4wNCwxLjA0LDAsMCwxLC4xMjIuOTExLDEuNDU3LDEuNDU3LDAsMCwxLS41NTYuNjQ0LjY0My42NDMsMCwwLDAsLjA1MS0uNjgxLjU0Ny41NDcsMCwwLDAtLjgzMS0uMDc5Ljk3NS45NzUsMCwwLDAtLjE1MSwxLjExLDEuMzMxLDEuMzMxLDAsMCwwLDEuMDMyLjYyMywyLjMzMiwyLjMzMiwwLDAsMCwxLjYtLjdBMjguNTI2LDI4LjUyNiwwLDAsMSw5LjQsMTQuMDUzLDUuMjUxLDUuMjUxLDAsMCwxLDEyLjMsMTMuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMTk3NzBcXFwiLz5cIixcblx0fSxcblx0XCJIYXNrZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiI0MwNDUwNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMC45OTZcXFwiIHkxPVxcXCItMjA2LjA1N1xcXCIgeDI9XFxcIjAuOTUxXFxcIiB5Mj1cXFwiLTIwNi4wNTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMjU5Ljk0MSwgMCwgMCwgLTE4My40ODcsIC0yMzcuOTQxLCAtMzc3OTIuNzg4KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhYmEwOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2I0MmMwMVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfaGFza2VsbDI8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDI1Ljg4Miw4LjU4OCwxNiwyLDYuMTE4SDYuOTQxTDEzLjUyOSwxNiw2Ljk0MSwyNS44ODJabTYuNTg4LDBMMTUuMTc3LDE2LDguNTg4LDYuMTE4aDQuOTQxTDI2LjcwNiwyNS44ODJIMjEuNzY1bC00LjExNy02LjE3Ni00LjExOCw2LjE3NlpNMjQuNTEsMjAuMTE4bC0yLjItMy4yOTRIMzB2My4yOTRabS0zLjI5NC00Ljk0MS0yLjItMy4yOTRIMzB2My4yOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiSGF4ZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNjg3MTJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiw1LjUsNS41LDE2LDE2LDI2LjUsMjYuNSwxNiwxNiw1LjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjg3MTJcXFwiLz48cGF0aCBkPVxcXCJNMiwyLDE2LDUuNSw1LjUsMTYsMiwyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFiMjBiXFxcIi8+PHBhdGggZD1cXFwiTTMwLDIsMjYuNSwxNiwxNiw1LjUsMzAsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y0NzIxNlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwzMCwxNiwyNi41LDI2LjUsMTYsMzAsMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMjVjMTlcXFwiLz48cGF0aCBkPVxcXCJNMiwzMCw1LjUsMTYsMTYsMjYuNSwyLDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZjg5YzBlXFxcIi8+PHBhdGggZD1cXFwiTTE2LDUuNSwyLDJIOWw3LDMuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZiYzcwN1xcXCIvPjxwYXRoIGQ9XFxcIk0xNiw1LjUsMzAsMkgyM0wxNiw1LjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYmM3MDdcXFwiLz48cGF0aCBkPVxcXCJNMTYsMjYuNSwzMCwzMEgyM2wtNy0zLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjg3MTJcXFwiLz48cGF0aCBkPVxcXCJNMTYsMjYuNSwyLDMwSDlsNy0zLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMjVjMTlcXFwiLz48cGF0aCBkPVxcXCJNNS41LDE2LDIsMzBWMjNsMy41LTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmYyMDBcXFwiLz48cGF0aCBkPVxcXCJNNS41LDE2LDIsMlY5bDMuNSw3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmMjAwXFxcIi8+PHBhdGggZD1cXFwiTTI2LjUsMTYsMzAsMlY5bC0zLjUsN1xcXCIgc3R5bGU9XFxcImZpbGw6I2YxNDcxZFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi41LDE2LDMwLDMwVjIzbC0zLjUtN1xcXCIgc3R5bGU9XFxcImZpbGw6I2YxNDcxZFxcXCIvPlwiLFxuXHR9LFxuXHRcIkhMU0xcIjoge1xuXHRcdGNvbG91cjogXCIjMDAwMGZmXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjkuNTI1IDIxLjk0NyA3LjU2IDIxLjk0NyA3LjU2IDE3LjEgMy45NTggMTcuMSAzLjk1OCAyMS45NDcgMiAyMS45NDcgMiAxMC4wNDQgMy45NTggMTAuMDQ0IDMuOTU4IDE0Ljc5MiA3LjU2IDE0Ljc5MiA3LjU2IDEwLjA0NCA5LjUyNSAxMC4wNDQgOS41MjUgMjEuOTQ3XFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi42OTIgMjEuOTQ3IDExLjUxMyAyMS45NDcgMTEuNTEzIDEwLjA0NCAxMy40NzIgMTAuMDQ0IDEzLjQ3MiAxOS43NzMgMTYuNjkyIDE5Ljc3MyAxNi42OTIgMjEuOTQ3XFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjQ2MiwyMS40OTFWMTguODM0YTMuNjc2LDMuNjc2LDAsMCwwLDEuMTQ2LjkwOSwyLjgwOSwyLjgwOSwwLDAsMCwxLjI0OS4zLDIuMDUsMi4wNSwwLDAsMCwuNjQ2LS4wOTIsMS4zMDksMS4zMDksMCwwLDAsLjQ2MS0uMjUyLDEuMDI5LDEuMDI5LDAsMCwwLC4yNzYtLjM4MiwxLjIzMSwxLjIzMSwwLDAsMCwuMDkxLS40NzgsMS4zLDEuMywwLDAsMC0uMTQ1LS42MjMsMS45MDcsMS45MDcsMCwwLDAtLjQtLjUwNiw0LjA3Nyw0LjA3NywwLDAsMC0uNi0uNDQ4cS0uMzQ2LS4yMTUtLjc0Ni0uNDM5YTQuMDQ1LDQuMDQ1LDAsMCwxLTEuNTE5LTEuNDE5LDMuODg0LDMuODg0LDAsMCwxLS41LTIuMDI2LDQuMjMyLDQuMjMyLDAsMCwxLC4yNzMtMS42LDMuMDIsMy4wMiwwLDAsMSwuNzQ0LTEuMSwyLjkzOCwyLjkzOCwwLDAsMSwxLjA4OC0uNjM0LDQuMTY3LDQuMTY3LDAsMCwxLDEuMzEtLjIsNS44MTYsNS44MTYsMCwwLDEsMS4yLjExMSwzLjgsMy44LDAsMCwxLC45NjcuMzQ1djIuNDgyYTIuODU5LDIuODU5LDAsMCwwLS40NzYtLjM2NSwzLjIxMiwzLjIxMiwwLDAsMC0uNTMtLjI2MkEzLjEsMy4xLDAsMCwwLDIxLjQ2LDEyYTIuNzk0LDIuNzk0LDAsMCwwLS41MTItLjA1LDEuOTk0LDEuOTk0LDAsMCwwLS42MDYuMDg3LDEuMzQ3LDEuMzQ3LDAsMCwwLS40NjEuMjQ1LDEuMDkyLDEuMDkyLDAsMCwwLS4yOTEuMzc3LDEuMTQ0LDEuMTQ0LDAsMCwwLS4xLjQ5NCwxLjIsMS4yLDAsMCwwLC4xMTUuNTM2LDEuNjU3LDEuNjU3LDAsMCwwLC4zMjguNDQ4LDMuNDYxLDMuNDYxLDAsMCwwLC41MTUuNDE1Yy4yLjEzNi40My4yNzUuNjg2LjQxOWE3LjA5NCw3LjA5NCwwLDAsMSwuOTM2LjYzNSwzLjcxMiwzLjcxMiwwLDAsMSwuNzEzLjc1OSwzLjI2OSwzLjI2OSwwLDAsMSwuNDU1Ljk2Nyw0LjU3Myw0LjU3MywwLDAsMSwuMTU4LDEuMjY2LDQuNDM5LDQuNDM5LDAsMCwxLS4yNzcsMS42NzIsMi44ODgsMi44ODgsMCwwLDEtLjc0OSwxLjEsMi44MjMsMi44MjMsMCwwLDEtMS4xLjYsNC43NDIsNC43NDIsMCwwLDEtMS4zMjUuMTgyLDUuNDc2LDUuNDc2LDAsMCwxLTEuMzYxLS4xNjZBMy40MSwzLjQxLDAsMCwxLDE3LjQ2MiwyMS40OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIzMCAyMS45NDcgMjQuODIyIDIxLjk0NyAyNC44MjIgMTAuMDQ0IDI2Ljc4IDEwLjA0NCAyNi43OCAxOS43NzMgMzAgMTkuNzczIDMwIDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPlwiLFxuXHR9LFxuXHRcIkhUTUxcIjoge1xuXHRcdGNvbG91cjogXCIjZTQ0ZjI2XCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuOTAyIDI3LjIwMSAzLjY1NSAyIDI4LjM0NSAyIDI2LjA5NSAyNy4xOTcgMTUuOTg1IDMwIDUuOTAyIDI3LjIwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2U0NGYyNlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMjcuODU4IDI0LjE3IDI1LjU5MyAyNi4wOTIgNC4wNjEgMTYgNC4wNjEgMTYgMjcuODU4XFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAxMy40MDcgMTEuOTEgMTMuNDA3IDExLjYyOCAxMC4yNDIgMTYgMTAuMjQyIDE2IDcuMTUxIDE1Ljk4OSA3LjE1MSA4LjI1IDcuMTUxIDguMzI0IDcuOTgxIDkuMDgzIDE2LjQ5OCAxNiAxNi40OTggMTYgMTMuNDA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAyMS40MzQgMTUuOTg2IDIxLjQzOCAxMi41NDQgMjAuNTA5IDEyLjMyNCAxOC4wNDQgMTAuNjUxIDE4LjA0NCA5LjIyMSAxOC4wNDQgOS42NTQgMjIuODk2IDE1Ljk4NiAyNC42NTQgMTYgMjQuNjUgMTYgMjEuNDM0XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS45ODkgMTMuNDA3IDE1Ljk4OSAxNi40OTggMTkuNzk1IDE2LjQ5OCAxOS40MzcgMjAuNTA3IDE1Ljk4OSAyMS40MzcgMTUuOTg5IDI0LjY1MyAyMi4zMjYgMjIuODk2IDIyLjM3MiAyMi4zNzQgMjMuMDk4IDE0LjIzNyAyMy4xNzQgMTMuNDA3IDIyLjM0MSAxMy40MDcgMTUuOTg5IDEzLjQwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuOTg5IDcuMTUxIDE1Ljk4OSA5LjA3MSAxNS45ODkgMTAuMjM1IDE1Ljk4OSAxMC4yNDIgMjMuNDQ1IDEwLjI0MiAyMy40NDUgMTAuMjQyIDIzLjQ1NSAxMC4yNDIgMjMuNTE3IDkuNTQ4IDIzLjY1OCA3Ljk4MSAyMy43MzIgNy4xNTEgMTUuOTg5IDcuMTUxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiSFRUUFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzYjYxYTZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjEyLjI3OFxcXCIgY3k9XFxcIjI0LjU1N1xcXCIgcj1cXFwiMTguMzcxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAtMC4wMDEsIDM0LjAwMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkM2U5ZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTU1XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDNlOWZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc1XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDA3NGFlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzY0ODZjXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImJcXFwiIGN4PVxcXCIxMC42NTdcXFwiIGN5PVxcXCIyNi43NDZcXFwiIHI9XFxcIjI2LjY2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAtMC4wMDEsIDM0LjAwMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4xNjVcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiY1xcXCIgY3g9XFxcIi00NS4wNVxcXCIgY3k9XFxcIjkuMjg1XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjEuOTcxIDQxLjk0Mikgcm90YXRlKDE0My43MzQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZFxcXCIgY3g9XFxcIi00MS40NTZcXFwiIGN5PVxcXCIzMi4xNTRcXFwiIHI9XFxcIjQuMTE1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDMuNTcxIDg3LjA3NSkgcm90YXRlKDE0My43MzQpIHNjYWxlKDEuMjk3KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImVcXFwiIGN4PVxcXCItNDguNDg1XFxcIiBjeT1cXFwiMTMuMjM5XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjMuMDg0IDU1LjQxMykgcm90YXRlKDE0My43MzQpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZlxcXCIgY3g9XFxcIi00MC44ODNcXFwiIGN5PVxcXCIxNi4wMzZcXFwiIHI9XFxcIjQuMTE1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjg3LCAwLjYzOSwgLTAuNjM4LCAtMC44NywgLTkuMzUxLCA0Ny43MDYpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIi02Ni41MDJcXFwiIHkxPVxcXCIyLjIxOVxcXCIgeDI9XFxcIi02NC42MjZcXFwiIHkyPVxcXCI2Ljc0OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjkzOSwgLTAuODc5LCAtMC42ODMsIC0wLjczLCA4NC44MSwgLTMzLjYyOClcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiLTI2Ljc5MVxcXCIgeTE9XFxcIjM5LjE1OVxcXCIgeDI9XFxcIi0yNC45OTlcXFwiIHkyPVxcXCI0NC42ODNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS4xMzEsIDAuNjEzLCAwLjQ3NywgLTAuODc5LCAyMS42NDgsIDY5LjA3MSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiLTYzLjM4NFxcXCIgeTE9XFxcIjguMTc3XFxcIiB4Mj1cXFwiLTYzLjU3XFxcIiB5Mj1cXFwiNC42OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjkxOCwgLTAuODU5LCAtMC42NjgsIC0wLjcxMywgNzcuODU3LCAtMzYuNDkzKVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItOTkuMjU5XFxcIiB5MT1cXFwiODkuNTQ1XFxcIiB4Mj1cXFwiLTk4LjgyNVxcXCIgeTI9XFxcIjkzLjAyM1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMS4yOCwgLTAuMTI2LCAtMC4wOTgsIDAuOTk1LCAtMTAxLjYzNywgLTkzLjAxNSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJrXFxcIiBjeD1cXFwiLTIwLjcxMlxcXCIgY3k9XFxcIjU3LjYxXFxcIiByPVxcXCIyLjgzNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLCAtMC44NDMsIC0wLjcyMSwgMCwgMjYuNjI1LCAtMjEuNjk2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzcyOWZjZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNiNjFhNlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJsXFxcIiBjeD1cXFwiLTIwLjcxMlxcXCIgY3k9XFxcIjM5Ljg1OFxcXCIgcj1cXFwiMi44MzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMjYuNjI1IDYzLjA5Nikgcm90YXRlKDkwKSBzY2FsZSgwLjg0MyAwLjcyMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3MjlmY2ZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM1MDllMmZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2h0dHA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOC4wMjYsMTQuMkExMS44NzcsMTEuODc3LDAsMSwxLDE2LjE0OSwyLjMyNSwxMS44NzgsMTEuODc4LDAsMCwxLDI4LjAyNiwxNC4yWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNDksMjYuMzg2QTEyLjE4MywxMi4xODMsMCwxLDEsMjguMzMzLDE0LjIsMTIuMiwxMi4yLDAsMCwxLDE2LjE0OSwyNi4zODZabTAtMjMuNzU0QTExLjU3MSwxMS41NzEsMCwxLDAsMjcuNzIsMTQuMiwxMS41ODQsMTEuNTg0LDAsMCwwLDE2LjE0OSwyLjYzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzOTM5NmNcXFwiLz48cGF0aCBkPVxcXCJNMjcuNjkzLDEyLjQyNGgwbC0uMzI4LjM3MWE3LDcsMCwwLDAtLjY1Ni0uNjQ0bC0uNS4wNzQtLjQ2LS41MTl2LjY0M2wuMzk0LjMuMjYyLjMuMzUtLjRjLjA4OC4xNjUuMTc1LjMzLjI2My41di40OTVsLS4zOTQuNDQ1LS43MjIuNS0uNTQ2LjU0NS0uMzUtLjQuMTc1LS40NDUtLjM1LS40LS41OTEtMS4yNjItLjUtLjU2OUwyMy42LDEyLjFsLjIuNzE4LjM3MS40MjFhMTcuMDY5LDE3LjA2OSwwLDAsMCwuNywxLjc4Myw5Ljk3OSw5Ljk3OSwwLDAsMCwxLjI2OC0uMXYuMzQ3bC0uNTI1LDEuMjg3LS40ODEuNTQ0LS4zOTQuODQzVjE5LjMzbC4xMzIuNTQ1LS4yMTkuMjQ3LS40ODIuMy0uNS40MjEuNDE2LjQ3LS41NjkuNS4xMDkuMzIxLS44NTMuOTY2SDIyLjJsLS40ODEuM2gtLjMwN3YtLjRsLS4xMy0uNzkzYy0uMTY5LS41LS4zNDYtLjk5MS0uNTI1LTEuNDg0LDAtLjM2NC4wMjItLjcyNS4wNDQtMS4wODlsLjIxOS0uNDk1LS4zMDctLjU5NS4wMjItLjgxNy0uNDE2LS40Ny4yMDgtLjY4LS4zMzgtLjM4NEgxOS42bC0uMi0uMjIzLS41OTEuMzcyLS4yNC0uMjczLS41NDcuNDdMMTYuOTExLDE1LjI3bC0uNDM3LTEuMDQuMzk0LS41OTMtLjIxOS0uMjQ3LjQ4MS0xLjEzOWMuMzk1LS40OTEuODA3LS45NjMsMS4yMjUtMS40MzZsLjc0NC0uMi44MzEtLjEuNTY5LjE0OS44MDkuODE2LjI4NC0uMzIxLjM5My0uMDQ5Ljc0NC4yNDdIMjMuM2wuMzk0LS4zNDcuMTc1LS4yNDctLjM5NC0uMjQ3LS42NTYtLjA0OWE2LjYsNi42LDAsMCwwLS41NjgtLjc0M2wtLjIxOS4xLS4wODguNjQ0LS4zOTQtLjQ0NS0uMDg3LS41LS40MzctLjM0NmgtLjE3NmwuNDM4LjQ5NS0uMTc1LjQ0NS0uMzUuMS4yMTktLjQ0NS0uMzk0LS4yLS4zNDktLjQtLjY1Ny4xNDgtLjA4Ny4yLS4zOTQuMjQ4LS4yMTkuNTQ1LS41NDYuMjcyLS4yNDEtLjI3MkgxNy44M1Y5LjQyOGwuNTY5LS4zaC40MzdsLS4wODgtLjM0NkwxOC40LDguNDM4bC41OS0uMTI0LjMyOC0uMzcxLjI2Mi0uNDQ2aC40ODJsLS4xMzItLjM0Ni4zMDctLjJ2LjRsLjY1Ni4xNDguNjU2LS41NDQuMDQ0LS4yNDguNTY4LS40YTQuMzUzLDQuMzUzLDAsMCwwLS42MTIuMVY1Ljk2M2wuMjE5LS41aC0uMjE5bC0uNDguNDQ1LS4xMzIuMjQ4LjEzMi4zNDctLjIxOS41OTMtLjM1LS4yLS4zMDYtLjM0Ni0uNDgyLjM0Ni0uMTc1LS43OTIuODMxLS41NDR2LS4zbC41MjUtLjM0Ni44MzEtLjIuNTY5LjIsMS4wNDkuMi0uMjYyLjNIMjIuNTFsLjU2OS41OTQuNDM3LS40OTUuMTMzLS4yMThhMTUuNTMsMTUuNTMsMCwwLDEsMi42MzUsMy4xNDdBMTEuNDUyLDExLjQ1MiwwLDAsMSwyNy42OTMsMTIuNDI0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE2Ljg2MSw1LjUxN2wtLjA0NC4zLjMwNy4yLjUyNC0uMzQ2LS4yNjItLjMtLjM1LjItLjE3NC0uMDVcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zNDMsMy40ODhsLTEuMTM4LS40NDYtMS4zMTIuMTQ4LTEuNjE5LjQ0NS0uMzA2LjMsMS4wMDYuNjkzdi40bC0uMzk0LjQuNTI1LDEuMDQuMzQ5LS4yLjQzOC0uNjkzYTE1LjA1MywxNS4wNTMsMCwwLDAsMS45MjQtLjc0M2wuNTI1LTEuMzM3XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTguNTI0LDcuNjQ3LDE4LjM0OSw3LjJsLS4zMDcuMS4wODguNTQ0LjM5NC0uMlxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE4LjcsNy41NDdsLS4wODguNTk1LjQ4MS0uMS4zNS0uMzQ2LS4zMDYtLjNjLS4xLS4yNzQtLjIyMS0uNTI5LS4zNS0uNzkyaC0uMjYydi4zbC4xNzQuMnYuNDQ1XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjI1LDE2Ljk1M2wtLjM1LS42OTMtLjY1Ni0uMTQ4LS4zNS0uOTQtLjg3NS4xLS43NDMtLjU0NC0uNzg4LjY5M3YuMTA5YTMsMywwLDAsMS0uNzQzLS4yMDlsLS4xNzUtLjQ5NVYxNC4yOGwtLjUyNS4wNDlxLjA2Ni0uNTIuMTMxLTEuMDM5SDYuODQ1bC0uMzA2LjQtLjMwNi4xNDhMNS44LDEzLjU4N2wtLjA0NC0uNTQ1LjA4OC0uNTk0LjY1Ni0uNDk1SDcuMDJsLjA4Ny0uMy42NTYuMTQ4LjQ4MS41OTUuMDg4LS45OTEuODMxLS42OTMuMzA2LS43NDMuNjEyLS4yNDcuMzUtLjQ5NS43ODctLjE0OS4zOTQtLjU5M0gxMC40MzJsLjc0NC0uMzQ3SDExLjdsLjc0NC0uMjQ4LjA4OC0uMy0uMjYzLS4yNDgtLjMwNi0uMS4wODgtLjMtLjIxOS0uNDQ1LS41MjUuMi4wODgtLjQtLjYxMi0uMzQ3TDEwLjMsNi44bC4wNDQuMy0uNDgxLjItLjMwNi42NDMtLjEzMS0uNTk0TDguNTk0LDdsLS4xMzEtLjQ0NSwxLjA5NC0uNjQ0LjQ4MS0uNDQ1LjA0NC0uNTQ0LS4yNjItLjE0OS0uMzUtLjA1LS4yMTkuNTQ1cy0uMzY2LjA3Mi0uNDYuMDk1QTEyLjUsMTIuNSwwLDAsMCw0LjYsMTMuMzcxYTYuNzg5LDYuNzg5LDAsMCwwLC40MDkuNzExbC45MTguNTQ0LjkxOC4yNDguMzk0LjUuNjEyLjQ0NS4zNS0uMDQ5LjI2Mi4xMTh2LjA4bC0uMzUuOTQtLjI2My40LjA4OC4yLS4yMTkuNzQyLjc4NywxLjQzNi43ODcuNjkzLjM1LjQ5NUw5LjYsMjEuOWwuMjYzLjU5M0w5LjYsMjMuNjM3cy0uMDIxLS4wMDcuMDEzLjEwN2E1LjI3OCw1LjI3OCwwLDAsMCwxLjQ4OC44MDlsLjE2MS0uMTIzLS4wODctLjI0Ny4zNS0uMzQ3LjEzMS0uMzQ3LjU2OS0uMi40MzctMS4wODktLjEzMS0uMy4zMDYtLjQ0NS42NTYtLjE0OS4zNS0uNzkyLS4wODgtLjk5LjUyNS0uNzQzLjA4OC0uNzQzYy0uNzE4LS4zNTYtMS40My0uNzIzLTIuMTQzLTEuMDg5XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTEuMjYzLDUuNzE1bC40MzcuM2guMzVWNS42NjZsLS40MzctLjItLjM1LjI0N1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEwLjEyNiw1LjMxOWwtLjIxOS41NDRoLjQzOGwuMjE5LS41Yy4xODktLjEzMy4zNzYtLjI2OC41NjgtLjRsLjQzOC4xNDkuODc1LjU5NC40MzgtLjQtLjQ4Mi0uMi0uMjE5LS40NDYtLjgzMS0uMS0uMDQ0LS4yNDgtLjM5NC4xLS4xNzUuMzQ2LS4yMTktLjQ0Ni0uMDg3LjIuMDQ0LjUtLjM1LjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS43LDQuMDgxbC4yMTktLjIuNDM4LS4xYTYuOSw2LjksMCwwLDEsLjkxOC0uMzQ3bC0uMTc0LS4zLS41NjUuMDgxLS4yNjcuMjY2LS40NC4wNjQtLjM5MS4xODQtLjE5LjA5Mi0uMTE2LjE1NS41NjguMVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjQ0NCw4Ljc4NWwuMjYzLS40LS4zOTQtLjMuMTMxLjY5M1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE2LjE0OSwyNS43ODNBMTEuNTgsMTEuNTgsMCwxLDEsMjcuNzI5LDE0LjIsMTEuNTkzLDExLjU5MywwLDAsMSwxNi4xNDksMjUuNzgzWm0wLTIyLjU0OEExMC45NjgsMTAuOTY4LDAsMSwwLDI3LjExNywxNC4yLDEwLjk4LDEwLjk4LDAsMCwwLDE2LjE0OSwzLjIzNVpcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzk1NjA0NDAxODI2ODU4NTtpc29sYXRpb246aXNvbGF0ZTtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNNS41NDEsMTAuMjQxYTQuMTE1LDQuMTE1LDAsMSwwLDYuNjM2LTQuODY2aDBBNC4xMTUsNC4xMTUsMCwwLDAsNS41NCwxMC4yNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNNy44MzYsOC41NThhMS4yNjgsMS4yNjgsMCwxLDAsMi4wNDYtMS41aDBhMS4yNjgsMS4yNjgsMCwwLDAtMi4wNDYsMS41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45NTIsMjQuOGE1LjMzNyw1LjMzNywwLDEsMCw4LjYwNy02LjMxMnYwQTUuMzM3LDUuMzM3LDAsMCwwLDE3Ljk1LDI0LjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjkyOCwyMi42MTZhMS42NDUsMS42NDUsMCwxLDAsMi42NTMtMS45NDZoMGExLjY0NSwxLjY0NSwwLDAsMC0yLjY1MywxLjk0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNC44NTksMTguNDkzQTQuMTE1LDQuMTE1LDAsMSwwLDExLjUsMTMuNjI2aDBhNC4xMTUsNC4xMTUsMCwwLDAtNi42MzYsNC44NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTcuMTU0LDE2LjgwOWExLjI2OCwxLjI2OCwwLDEsMCwyLjA0Ni0xLjVoMGExLjI2OCwxLjI2OCwwLDAsMC0yLjA0NiwxLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQwOCwxMC4yNjlBNC40NDEsNC40NDEsMCwxLDAsMTkuNTcsNS4wMTZoMGE0LjQ0MSw0LjQ0MSwwLDEsMC03LjE2Miw1LjI1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMTQuODg1LDguNDUyYTEuMzY5LDEuMzY5LDAsMSwwLDIuMjA4LTEuNjE5aDBhMS4zNjksMS4zNjksMCwxLDAtMi4yMDgsMS42MTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjY4LDI2LjIzOGEzLjgzLDMuODMsMCwwLDEtMi45MDktMS4wODdjLTEuMTMzLTEuMjEtMS4yLTMuMjU1LS4yLTUuNzU3YTIxLjU0MiwyMS41NDIsMCwwLDEsNS4zMDctNy4zMjZDMjAuMDY0LDcuMjE1LDI1Ljk0NSw1LjM1NiwyOC4yNyw3LjgzOWMxLjEzMywxLjIxMSwxLjIsMy4yNTUuMiw1Ljc1N2EyMS41NTMsMjEuNTUzLDAsMCwxLTUuMzA4LDcuMzI2QTIxLjU1MSwyMS41NTEsMCwwLDEsMTUuNSwyNS43MzMsOS4yMjksOS4yMjksMCwwLDEsMTIuNjgsMjYuMjM4Wk0yNS4zNDIsNy4yOGMtMi43LDAtNi42LDEuOTA4LTEwLjEsNS4xODNBMjEsMjEsMCwwLDAsMTAuMDcxLDE5LjZjLS45MjEsMi4zLS44ODcsNC4xMzguMDk0LDUuMTg3czIuODE3LDEuMiw1LjE2OS40MzdhMjEsMjEsMCwwLDAsNy40Ni00LjY5MiwyMSwyMSwwLDAsMCw1LjE3NS03LjEzMmMuOTIxLTIuMy44ODgtNC4xMzgtLjA5NS01LjE4N0EzLjM0LDMuMzQsMCwwLDAsMjUuMzQyLDcuMjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2cpXFxcIi8+PHBhdGggZD1cXFwiTTIxLjY4MSwyMi4wOTRhMjAuNjMzLDIwLjYzMywwLDAsMS05LjMzOS0yLjc1OUM2LjEsMTUuOTUsMi40NzMsMTAuOTU3LDQuMDk0LDcuOTY4Yy43OS0xLjQ1OCwyLjctMi4xNzUsNS40LTIuMDEyQTIxLjU0MiwyMS41NDIsMCwwLDEsMTguMTIsOC42NzRhMjEuNTQ1LDIxLjU0NSwwLDAsMSw2Ljk4Nyw1Ljc0NmMxLjYsMi4xNjcsMi4wNTEsNC4xNjMsMS4yNjEsNS42MjFDMjUuNjIyLDIxLjQxNiwyMy45MTUsMjIuMDk0LDIxLjY4MSwyMi4wOTRaTTguNzU5LDYuNDc0Yy0yLjEsMC0zLjU3Mi42MTItNC4xOSwxLjc1MUMzLjExNywxMC45LDYuNzIsMTUuNjc0LDEyLjYsMTguODZzMTEuODQzLDMuNiwxMy4yOTQuOTI0Yy42ODUtMS4yNjMuMjUxLTMuMDU0LTEuMjItNS4wNDJhMjEsMjEsMCwwLDAtNi44MS01LjU5M0EyMSwyMSwwLDAsMCw5LjQ1OSw2LjVROS4xLDYuNDc0LDguNzU5LDYuNDc0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMCwyNC4wNzhhMy43NTcsMy43NTcsMCwwLDEtMi44NTEtMS4wNjVjLTEuMTEtMS4xODctMS4xODEtMy4xODktLjItNS42MzlhMjEuMDYyLDIxLjA2MiwwLDAsMSw1LjE4OS03LjE2M2M1LjA3My00Ljc0NywxMC44My02LjU2MywxMy4xLTQuMTMyaDBjMi4yNzUsMi40MzEuMDgzLDguMDUzLTQuOTksMTIuOGEyMS4wNTksMjEuMDU5LDAsMCwxLTcuNDkxLDQuN0E5LjAyNCw5LjAyNCwwLDAsMSwxMCwyNC4wNzhaTTIyLjM3Myw1LjU1M2MtMi42MywwLTYuNDM5LDEuODY0LTkuODU2LDUuMDYyQTIwLjUsMjAuNSwwLDAsMCw3LjQ2MywxNy41OGMtLjksMi4yMzktLjg2Niw0LjAzNC4wOSw1LjA1NXMyLjc0NSwxLjE3Miw1LjAzOC40MjRhMjAuNTEzLDIwLjUxMywwLDAsMCw3LjI4NC00LjU4MmM0Ljc2Ni00LjQ2LDYuOTk0LTkuODUzLDQuOTY1LTEyLjAyaDBBMy4yNTYsMy4yNTYsMCwwLDAsMjIuMzczLDUuNTUzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNpKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41MTIsMTkuNDEzYy0uODYsMC0xLjc0OC0uMDQzLTIuNjU5LS4xMzNDNy43ODQsMTguNTg0LDIuNTA3LDE1LjM4OCwyLjg0LDEyaDBjLjMzMy0zLjM4Myw2LjEzMy01LjQ5LDEzLjItNC43OTFzMTIuMzQ1LDMuODkyLDEyLjAxMiw3LjI3NUMyNy43NjMsMTcuNDM2LDIzLjMyNCwxOS40MTMsMTcuNTEyLDE5LjQxM1pNMy4zNzgsMTIuMDU3Yy0uMywzLjAzMSw0Ljg3Myw2LjAzLDExLjUyOCw2LjY4NnMxMi4zMTItMS4yNzcsMTIuNjExLTQuMzA4UzIyLjY0NCw4LjQwNiwxNS45ODgsNy43NSwzLjY3Nyw5LjAyNywzLjM3OCwxMi4wNTdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTYuMjUxLDI5Ljk2Nmg2LjY3NFYyMC44MDloMi45ODFMOS41NDgsMTEuNDM0LDMuMjk1LDIwLjc4MmwyLjk1OC4wMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+PHBhdGggZD1cXFwiTTEyLjkyNCwzMC4wNDVINi4yNTFhLjA0OS4wNDksMCwwLDEtLjAzOS0uMDIzYy0uMDEtLjAxNS0uMDE2LTMuMTM1LS4wMTYtMy4xNTZsMC01Ljk3NS0yLjktLjAzYS4wNi4wNiwwLDAsMS0uMDUxLS4wNDguMS4xLDAsMCwxLC4wMTEtLjA4NUw5LjUwOCwxMS4zOGEuMDU2LjA1NiwwLDAsMSwuMDQxLS4wMjUuMDUuMDUsMCwwLDEsLjA0LjAyNGw2LjM1Nyw5LjM3NWEuMS4xLDAsMCwxLC4wMTEuMDg2LjA1OS4wNTksMCwwLDEtLjA1MS4wNDhIMTIuOTh2OS4wNzhDMTIuOTgsMzAuMDEsMTIuOTU1LDMwLjA0NSwxMi45MjQsMzAuMDQ1Wm0tNi42MTgtLjE1OGg2LjU2MlYyMC44MDljMC0uMDQ0LjAyNS0uMDc5LjA1Ni0uMDc5aDIuODVMOS41NDksMTEuNTQ5LDMuNDI0LDIwLjdsMi44My4wM2MuMDMxLDAsLjA1NS4wMzYuMDU1LjA3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxODM4NjhcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDUzLDIwLjU4N2wtMi45NTguMDMxLDYuMjU0LDkuMzQ4LDYuMzU3LTkuMzc1SDI1LjcyNFYxMS40MzRIMTkuMDUxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNsKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43OCwxMS40MzR2OS4wNzhoMi45MjVhLjA1OS4wNTksMCwwLDEsLjA1MS4wNDguMS4xLDAsMCwxLS4wMTEuMDg2bC02LjM1Nyw5LjM3NWEuMDUuMDUsMCwwLDEtLjA0LjAyNC4wNTYuMDU2LDAsMCwxLS4wNDEtLjAyNWwtNi4yNTQtOS4zNDhhLjEuMSwwLDAsMS0uMDExLS4wODUuMDYuMDYsMCwwLDEsLjA1MS0uMDQ4bDIuOS0uMDMsMC01Ljk3NWMwLS4wMjEuMDA2LTMuMTQxLjAxNi0zLjE1NmEuMDQ5LjA0OSwwLDAsMSwuMDM5LS4wMjNoNi42NzRDMjUuNzU1LDExLjM1NSwyNS43OCwxMS4zOSwyNS43OCwxMS40MzRabS02LjY3Miw5LjE1M2MwLC4wNDMtLjAyNS4wNzktLjA1NS4wNzlsLTIuODMuMDMsNi4xMjUsOS4xNTYsNi4yMjYtOS4xODFoLTIuODVjLS4wMzEsMC0uMDU2LS4wMzUtLjA1Ni0uMDc5VjExLjUxM0gxOS4xMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMTgzODY4XFxcIi8+XCIsXG5cdH0sXG5cdFwiSWRyaXNcIjoge1xuXHRcdGNvbG91cjogXCIjOGEwODE5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTMuMzc2LDYuMmMzLjYsMS4xLDQuNSwyLDUuOCw1LjItLjMtNC0xLjktNS42LTUuOC01LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTguMzc2LDEyLjRjMi4zLjcsNSwxLjMsNiw1LjcuNC01LjUtMi4yLTUuOC02LTUuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz48cGF0aCBkPVxcXCJNOS45NzYsOC44YzMuNS43LDUuNywxLjcsNyw2LjIuMy01LjgtMi45LTYuNC03LTYuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz48cGF0aCBkPVxcXCJNMTQuNTc2LDJjMTkuMSwxMi40LTQuMiwxMi43LjgsMjcuMWwzLC45Yy04LjMtMTEuMiwxOC40LTE3LTMuOC0yOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz5cIixcblx0fSxcblx0XCJJbmlcIjoge1xuXHRcdGNvbG91cjogXCIjOTliOGM0XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjMuMjY1LDI0LjM4MWwuOS0uODk0YzQuMTY0LjEzNiw0LjIyOC0uMDEsNC40MTEtLjQzOGwxLjE0NC0yLjc4NUwyOS44MDUsMjBsLS4wOTMtLjIzMWMtLjA0OS0uMTIyLS4yLS40ODYtMi44LTIuOTY1VjE1LjVjMy0yLjg5LDIuOTM2LTMuMDM4LDIuNzY1LTMuNDYxTDI4LjUzOCw5LjIyNWMtLjE3MS0uNDIyLS4yMzYtLjU4Ny00LjM3LS40NzRsLS45LS45M2EyMC4xNjYsMjAuMTY2LDAsMCwwLS4xNDEtNC4xMDZsLS4xMTYtLjI2My0yLjk3NC0xLjNjLS40MzgtLjItLjU5Mi0uMjcyLTMuNCwyLjc4NmwtMS4yNjItLjAxOWMtMi44OTEtMy4wODYtMy4wMjgtMy4wMy0zLjQ2MS0yLjg1NUw5LjE0OSwzLjE4MmMtLjQzMy4xNzUtLjU4Ni4yMzctLjQxOCw0LjQzN2wtLjg5My44OWMtNC4xNjItLjEzNi00LjIyNi4wMTItNC40MDcuNDM4TDIuMjg1LDExLjczMywyLjE5NSwxMmwuMDk0LjIzMmMuMDQ5LjEyLjE5NC40OCwyLjgsMi45NjJsMCwxLjNjLTMsMi44OS0yLjkzNSwzLjAzOC0yLjc2MywzLjQ2MmwxLjEzOCwyLjgxN2MuMTc0LjQzMS4yMzYuNTg0LDQuMzY5LjQ3NmwuOS45MzVhMjAuMjQzLDIwLjI0MywwLDAsMCwuMTM3LDQuMWwuMTE2LjI2NSwyLjk5MywxLjMwOGMuNDM1LjE4Mi41ODYuMjQ3LDMuMzg2LTIuOGwxLjI2Mi4wMTZjMi44OTUsMy4wOSwzLjA0MywzLjAzLDMuNDY2LDIuODU5bDIuNzU5LTEuMTE1QzIzLjI4OCwyOC42NDQsMjMuNDQsMjguNTgzLDIzLjI2NSwyNC4zODFaTTExLjQwNywxNy44NTdhNC45NTcsNC45NTcsMCwxLDEsNi40ODgsMi44MjRBNS4wMTQsNS4wMTQsMCwwLDEsMTEuNDA3LDE3Ljg1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OWI4YzRcXFwiLz5cIixcblx0fSxcblx0XCJJb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDIuODg3SDcuMDc1VjcuNTFIMlptLjA1Miw2LjgzSDcuMDRWMjguNjI2SDIuMDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4yNzEsMjYuNDU0YTkuNzkxLDkuNzkxLDAsMCwxLTIuNjE2LTcuMTc4LDEwLjE0OCwxMC4xNDgsMCwwLDEsMi42MTYtNy4zNDMsOS4zMjEsOS4zMjEsMCwwLDEsNy4wNDctMi43Miw5LjM0LDkuMzQsMCwwLDEsNy4wNzUsMi43MkExMC4xNjgsMTAuMTY4LDAsMCwxLDMwLDE5LjI3NmE5LjgwOSw5LjgwOSwwLDAsMS0yLjYwNyw3LjE3OCw5LjQ1Niw5LjQ1NiwwLDAsMS03LjA3NSwyLjY1OUE5LjQzNiw5LjQzNiwwLDAsMSwxMy4yNzEsMjYuNDU0Wm0xMC40MzYtMi45NzJhNi43LDYuNywwLDAsMCwxLjE2Ni00LjI1OCw2Ljk0Myw2Ljk0MywwLDAsMC0xLjE2Ni00LjM1NCw0LjA0Nyw0LjA0NywwLDAsMC0zLjM4OS0xLjQ4Niw0LjAyMiw0LjAyMiwwLDAsMC0zLjM4LDEuNDg2LDYuOTkxLDYuOTkxLDAsMCwwLTEuMTU2LDQuMzU0LDYuNzQ0LDYuNzQ0LDAsMCwwLDEuMTU2LDQuMjU4LDQuMDUzLDQuMDUzLDAsMCwwLDMuMzgsMS40NkE0LjA3OCw0LjA3OCwwLDAsMCwyMy43MDcsMjMuNDgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIkphdmFcIjoge1xuXHRcdGNvbG91cjogXCIjNTM4MmExXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuMzI1LDIzLjY1NHMtMS4wNy42MjIuNzYxLjgzM2ExNi4wMjMsMTYuMDIzLDAsMCwwLDUuOC0uMjQ2LDEwLjA4OCwxMC4wODgsMCwwLDAsMS41NDEuNzUyYy01LjQ4MSwyLjM0OS0xMi40MDUtLjEzNi04LjEtMS4zMzlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjU2LDIwLjU4OHMtMS4yLjg4OC42MzMsMS4wNzhhMjIuNjE4LDIyLjYxOCwwLDAsMCw3LjQ4MS0uMzU5LDMuMzIsMy4zMiwwLDAsMCwxLjE1Mi43Yy02LjYyNywxLjkzOC0xNC4wMDkuMTUzLTkuMjY2LTEuNDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMsMTUuMzg4YTIuMDUxLDIuMDUxLDAsMCwxLS4zNTUsMi45NTRzMy40MjktMS43NywxLjg1NC0zLjk4N2MtMS40NzEtMi4wNjctMi42LTMuMDk1LDMuNTA4LTYuNjM2LDAsMC05LjU4NiwyLjM5NC01LjAwNyw3LjY2OVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC41NTIsMjUuOTIxcy43OTIuNjUyLS44NzIsMS4xNTdjLTMuMTY0Ljk1OC0xMy4xNjgsMS4yNDgtMTUuOTQ4LjAzOC0xLS40MzUuODc0LTEuMDM4LDEuNDY0LTEuMTY0YTMuOCwzLjgsMCwwLDEsLjk2Ni0uMTA4Yy0xLjExMS0uNzgzLTcuMTgxLDEuNTM3LTMuMDgzLDIuMiwxMS4xNzYsMS44MTIsMjAuMzcyLS44MTYsMTcuNDczLTIuMTI0XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTEyLjg0LDE3LjQxMnMtNS4wODksMS4yMDktMS44LDEuNjQ4YTM4LjIyNSwzOC4yMjUsMCwwLDAsNi43MzEtLjA3MmMyLjEwNi0uMTc4LDQuMjIxLS41NTUsNC4yMjEtLjU1NWE4LjkzNCw4LjkzNCwwLDAsMC0xLjI4LjY4NWMtNS4xNjgsMS4zNTktMTUuMTUxLjcyNy0xMi4yNzctLjY2M2E5LjYyOSw5LjYyOSwwLDAsMSw0LjQwNy0xLjA0MlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NjksMjIuNTE1YzUuMjUzLTIuNzMsMi44MjQtNS4zNTMsMS4xMjktNWEzLjkzMiwzLjkzMiwwLDAsMC0uNi4xNjEuOTU3Ljk1NywwLDAsMSwuNDQ5LS4zNDZjMy4zNTQtMS4xNzksNS45MzMsMy40NzgtMS4wODMsNS4zMjJhLjQ1OC40NTgsMCwwLDAsLjEwNi0uMTM4XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTE4LjgsMnMyLjkwOSwyLjkxLTIuNzU5LDcuMzg2Yy00LjU0NiwzLjU5LTEuMDM3LDUuNjM3LDAsNy45NzUtMi42NTMtMi4zOTQtNC42LTQuNS0zLjI5NC02LjQ2M0MxNC42NjQsOC4wMTksMTkuOTc2LDYuNjIzLDE4LjgsMlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4zNTYsMjkuOTEyYzUuMDQyLjMyMywxMi43ODYtLjE3OSwxMi45NjktMi41NjUsMCwwLS4zNTMuOS00LjE2NywxLjYyM2E0MS40NTgsNDEuNDU4LDAsMCwxLTEyLjc2LjJzLjY0NS41MzMsMy45NTkuNzQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiSmF2YVNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNWRlMTlcIixcblx0XHRpY29uOiBcIjxyZWN0IHg9XFxcIjJcXFwiIHk9XFxcIjJcXFwiIHdpZHRoPVxcXCIyOFxcXCIgaGVpZ2h0PVxcXCIyOFxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44MDksMjMuODc1YTIuODY2LDIuODY2LDAsMCwwLDIuNiwxLjZjMS4wOSwwLDEuNzg3LS41NDUsMS43ODctMS4zLDAtLjktLjcxNi0xLjIyMi0xLjkxNi0xLjc0N2wtLjY1OC0uMjgyYy0xLjktLjgwOS0zLjE2LTEuODIyLTMuMTYtMy45NjQsMC0xLjk3MywxLjUtMy40NzYsMy44NTMtMy40NzZhMy44ODksMy44ODksMCwwLDEsMy43NDIsMi4xMDdMMjUsMTguMTI4QTEuNzg5LDEuNzg5LDAsMCwwLDIzLjMxMSwxN2ExLjE0NSwxLjE0NSwwLDAsMC0xLjI1OSwxLjEyOGMwLC43ODkuNDg5LDEuMTA5LDEuNjE4LDEuNmwuNjU4LjI4MmMyLjIzNi45NTksMy41LDEuOTM2LDMuNSw0LjEzMywwLDIuMzY5LTEuODYxLDMuNjY3LTQuMzYsMy42NjdhNS4wNTUsNS4wNTUsMCwwLDEtNC43OTUtMi42OTFabS05LjI5NS4yMjhjLjQxMy43MzMuNzg5LDEuMzUzLDEuNjkzLDEuMzUzLjg2NCwwLDEuNDEtLjMzOCwxLjQxLTEuNjUzVjE0Ljg1NmgyLjYzMXY4Ljk4MmMwLDIuNzI0LTEuNiwzLjk2NC0zLjkyOSwzLjk2NGE0LjA4NSw0LjA4NSwwLDAsMS0zLjk0Ny0yLjRaXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiSlNPTlwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNWRlMTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk00LjAxNCwxNC45NzZhMi41MSwyLjUxLDAsMCwwLDEuNTY3LS41MThBMi4zNzcsMi4zNzcsMCwwLDAsNi4zODYsMTMuMSwxNS4yNjEsMTUuMjYxLDAsMCwwLDYuNiwxMC4xNTZxLjAxMi0yLjA4NS4wNzUtMi43NDdhNS4yMzYsNS4yMzYsMCwwLDEsLjQxOC0xLjY4NiwzLjAyNSwzLjAyNSwwLDAsMSwuNzU1LTEuMDE4QTMuMDQ2LDMuMDQ2LDAsMCwxLDksNC4xMjUsNi43NjIsNi43NjIsMCwwLDEsMTAuNTQ0LDRoLjdWNS45NmgtLjM4N2EyLjMzOCwyLjMzOCwwLDAsMC0xLjcyMy40NjhBMy40LDMuNCwwLDAsMCw4LjcwOSw4LjUyYTM2LjA1NCwzNi4wNTQsMCwwLDEtLjEzNyw0LjEzMyw0LjczNCw0LjczNCwwLDAsMS0uNzY4LDIuMDZBNC41NjcsNC41NjcsMCwwLDEsNi4xLDE2YTMuODA5LDMuODA5LDAsMCwxLDEuOTkyLDEuNzU0LDguODYxLDguODYxLDAsMCwxLC42MTgsMy44NjVxMCwyLjQzNS4wNSwyLjlBMS43NTUsMS43NTUsMCwwLDAsOS4yNjQsMjUuN2EyLjYzOSwyLjYzOSwwLDAsMCwxLjU5Mi4zMzdoLjM4N1YyOGgtLjdhNS42NTUsNS42NTUsMCwwLDEtMS43NzMtLjIsMi45NywyLjk3LDAsMCwxLTEuMzI0LS45MywzLjM1MywzLjM1MywwLDAsMS0uNjgxLTEuNjNBMjQuMTc1LDI0LjE3NSwwLDAsMSw2LjYsMjIuMDA2LDE2LjQ2OSwxNi40NjksMCwwLDAsNi4zODYsMTguOWEyLjQwOCwyLjQwOCwwLDAsMC0uODA1LTEuMzYxLDIuNDg5LDIuNDg5LDAsMCwwLTEuNTY3LS41MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjVkZTE5XFxcIi8+PHBhdGggZD1cXFwiTTI3Ljk4NiwxNy4wMTFhMi40ODksMi40ODksMCwwLDAtMS41NjcuNTI0LDIuNDA4LDIuNDA4LDAsMCwwLS44MDUsMS4zNjEsMTYuNDY5LDE2LjQ2OSwwLDAsMC0uMjEyLDMuMTA5LDI0LjE3NSwyNC4xNzUsMCwwLDEtLjE2OSwzLjIzNCwzLjM1MywzLjM1MywwLDAsMS0uNjgxLDEuNjMsMi45NywyLjk3LDAsMCwxLTEuMzI0LjkzLDUuNjU1LDUuNjU1LDAsMCwxLTEuNzczLjJoLS43VjI2LjA0aC4zODdhMi42MzksMi42MzksMCwwLDAsMS41OTItLjMzNywxLjc1NSwxLjc1NSwwLDAsMCwuNTA2LTEuMTg2cS4wNS0uNDYyLjA1LTIuOWE4Ljg2MSw4Ljg2MSwwLDAsMSwuNjE4LTMuODY1QTMuODA5LDMuODA5LDAsMCwxLDI1LjksMTZhNC41NjcsNC41NjcsMCwwLDEtMS43LTEuMjg2LDQuNzM0LDQuNzM0LDAsMCwxLS43NjgtMi4wNiwzNi4wNTQsMzYuMDU0LDAsMCwxLS4xMzctNC4xMzMsMy40LDMuNCwwLDAsMC0uNDI1LTIuMDkyLDIuMzM4LDIuMzM4LDAsMCwwLTEuNzIzLS40NjhoLS4zODdWNGguN0E2Ljc2Miw2Ljc2MiwwLDAsMSwyMyw0LjEyNWEzLjA0NiwzLjA0NiwwLDAsMSwxLjE0OS41ODEsMy4wMjUsMy4wMjUsMCwwLDEsLjc1NSwxLjAxOCw1LjIzNiw1LjIzNiwwLDAsMSwuNDE4LDEuNjg2cS4wNjIuNjYyLjA3NSwyLjc0N2ExNS4yNjEsMTUuMjYxLDAsMCwwLC4yMTIsMi45NDcsMi4zNzcsMi4zNzcsMCwwLDAsLjgwNSwxLjM1NSwyLjUxLDIuNTEsMCwwLDAsMS41NjcuNTE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPlwiLFxuXHR9LFxuXHRcIkpTT041XCI6IHtcblx0XHRjb2xvdXI6IFwiIzkwOTA5MFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEyLjgxNSwxNS4xNjdsLjY4LTUuNjc2aDYuNDg5djJoLTQuNEwxNS4zMjksMTMuN2EyLjQsMi40LDAsMCwxLC4yNTItLjEyMiwyLjk2MiwyLjk2MiwwLDAsMSwuMzc0LS4xMywyLjksMi45LDAsMCwxLC40NTgtLjEwNiwyLjgzNCwyLjgzNCwwLDAsMSwuNTEyLS4wNDYsMy45ODMsMy45ODMsMCwwLDEsMS40NjYuMjUyLDIuNzM2LDIuNzM2LDAsMCwxLDEuMDc2LjcyMywzLjE2NywzLjE2NywwLDAsMSwuNjY0LDEuMTY4LDUsNSwwLDAsMSwuMjI4LDEuNTg4LDQuMTU3LDQuMTU3LDAsMCwxLS4yMzYsMS4zODcsMy4zMDcsMy4zMDcsMCwwLDEtMS45LDIuMDI5LDQuMyw0LjMsMCwwLDEtMS43MTUuMzEyLDQuNzUsNC43NSwwLDAsMS0xLjQ1OC0uMjI4LDQuMDU0LDQuMDU0LDAsMCwxLTEuMjUyLS42NTYsMy4zNTksMy4zNTksMCwwLDEtLjg3OC0xLjA0NiwyLjc4NywyLjc4NywwLDAsMS0uMzItMS4zODJIMTUuMThhMS40NTgsMS40NTgsMCwwLDAsLjM5Ljk3LDEuMzgzLDEuMzgzLDAsMCwwLDEuNTU4LjIwNiwxLjA4OSwxLjA4OSwwLDAsMCwuNC0uNDEyLDEuNzQ5LDEuNzQ5LDAsMCwwLC4yMDYtLjYxOCw0LjMsNC4zLDAsMCwwLC4wNjItLjc0LDIuNzA5LDIuNzA5LDAsMCwwLS4wOTItLjc0LDEuNTA2LDEuNTA2LDAsMCwwLS4yODItLjU1OCwxLjIyOSwxLjIyOSwwLDAsMC0uNS0uMzQ5LDEuNzgsMS43OCwwLDAsMC0uNzE4LS4xMywyLjEyMSwyLjEyMSwwLDAsMC0uNS4wNTQsMS44MDUsMS44MDUsMCwwLDAtLjM4Mi4xMzgsMS4zMTgsMS4zMTgsMCwwLDAtLjI3NC4xOSwxLjI4LDEuMjgsMCwwLDAtLjE5LjJsLTIuMDQ4LS40ODJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNS45ODUsMjMuMzQzYTQuNDUsNC40NSwwLDAsMS0xLjMxMS0uNTgsMy4yLDMuMiwwLDAsMS0uODQ4LS44MjQsMy4wMTIsMy4wMTIsMCwwLDEtLjQ1OC0xLjAwOCw0Ljg3OSw0Ljg3OSwwLDAsMS0uMTMtMS4xNDN2LTEuNTVhMi4zLDIuMywwLDAsMC0uMDc2LS42MTgsMS4xODQsMS4xODQsMCwwLDAtLjIyMi0uNDY2Ljk2OS45NjksMCwwLDAtLjM4Mi0uMzA2QTEuMzI0LDEuMzI0LDAsMCwwLDIsMTYuNzQ0VjE1LjAxMmExLjA3NCwxLjA3NCwwLDAsMCwuOTM3LS40LDEuODQxLDEuODQxLDAsMCwwLC4zLTEuMXYtMS41NWE0Ljg3OSw0Ljg3OSwwLDAsMSwuMTMtMS4xNDMsMy4wMzcsMy4wMzcsMCwwLDEsLjQ1OC0xLjAwOEEzLjE3LDMuMTcsMCwwLDEsNC42NzEsOWE0LjQ4Miw0LjQ4MiwwLDAsMSwxLjMxMS0uNThsLjQ4LDEuMzQ0YTEuMjIyLDEuMjIyLDAsMCwwLS40ODguMzI4LDEuNzQyLDEuNzQyLDAsMCwwLS4zMDYuNSwyLjUyNCwyLjUyNCwwLDAsMC0uMTYuNjM0LDUuODI3LDUuODI3LDAsMCwwLS4wNDYuNzR2MS41NUEyLjg0NCwyLjg0NCwwLDAsMSw1LjEyNiwxNC45YTIuMzcsMi4zNywwLDAsMS0xLjA3Ni45ODMsMi4zNTYsMi4zNTYsMCwwLDEsMS4wNzYuOTkyLDIuODA4LDIuODA4LDAsMCwxLC4zMzYsMS4zNzR2MS41NWE1LjgyNyw1LjgyNywwLDAsMCwuMDQ2Ljc0LDIuNTg2LDIuNTg2LDAsMCwwLC4xNi42MzQsMS42ODQsMS42ODQsMCwwLDAsLjMwNi41QTEuMjIyLDEuMjIyLDAsMCwwLDYuNDYyLDIyYzAtLjAwNS0uNDc3LDEuMzQ0LS40NzcsMS4zNDRcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNOC4yMTUsMTkuMzkzYTEuMjg5LDEuMjg5LDAsMCwxLC4xLS41MTIsMS4yMTIsMS4yMTIsMCwwLDEsLjI5LS40LDEuMzczLDEuMzczLDAsMCwxLC40NS0uMjc0LDEuNjM3LDEuNjM3LDAsMCwxLC41OC0uMSwxLjU1NSwxLjU1NSwwLDAsMSwuNTcyLjEsMS4yNjksMS4yNjksMCwwLDEsLjQ1LjI3NCwxLjA3NywxLjA3NywwLDAsMSwuMjkuNCwxLjI5NCwxLjI5NCwwLDAsMSwwLDEuMDI0LDEuMTUxLDEuMTUxLDAsMCwxLS4yOS40MTIsMS4zODgsMS4zODgsMCwwLDEtLjQ1LjI2OCwxLjYxMywxLjYxMywwLDAsMS0uNTcyLjEsMS41NzgsMS41NzgsMCwwLDEtLjU4LS4xLDEuNDA5LDEuNDA5LDAsMCwxLS40NS0uMjY4LDEuMjI5LDEuMjI5LDAsMCwxLS4zOS0uOTI0bTAtNi4wODhhMS4yODksMS4yODksMCwwLDEsLjEtLjUxMiwxLjIxMiwxLjIxMiwwLDAsMSwuMjktLjQsMS4zNzMsMS4zNzMsMCwwLDEsLjQ1LS4yNzQsMS42MzcsMS42MzcsMCwwLDEsLjU4LS4xLDEuNTU1LDEuNTU1LDAsMCwxLC41NzIuMSwxLjI2OSwxLjI2OSwwLDAsMSwuNDUuMjc0LDEuMDc3LDEuMDc3LDAsMCwxLC4yOS40LDEuMjk0LDEuMjk0LDAsMCwxLDAsMS4wMjQsMS4xNTEsMS4xNTEsMCwwLDEtLjI5LjQxMiwxLjM4OCwxLjM4OCwwLDAsMS0uNDUuMjY4LDEuNjEzLDEuNjEzLDAsMCwxLS41NzIuMSwxLjU3OCwxLjU3OCwwLDAsMS0uNTgtLjEsMS40MDksMS40MDksMCwwLDEtLjQ1LS4yNjgsMS4yMjksMS4yMjksMCwwLDEtLjM5LS45MjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjQuMjQsMjAuMjkzYTMuNjQ4LDMuNjQ4LDAsMCwxLS4xMjIuOTI5LDQuNTM0LDQuNTM0LDAsMCwxLS4zMzYuODkxLDQuNzA2LDQuNzA2LDAsMCwxLS41LjgwNyw0LjAwNSw0LjAwNSwwLDAsMS0uNjEuNjY0bC0xLjMtLjYxYy4wODEtLjE3My4xNjgtLjM0OS4yNi0uNTI2YTQuODQ2LDQuODQ2LDAsMCwwLC4yNjgtLjU1OCw0LjQ0Myw0LjQ0MywwLDAsMCwuMjA2LS42NTYsMy40MDYsMy40MDYsMCwwLDAsLjA4NC0uOFYxOC42NTZoMi4wNTlsLS4wMDgsMS42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTM4LDIxLjk5NGExLjI1MSwxLjI1MSwwLDAsMCwuNDg4LS4zMjgsMS43MDcsMS43MDcsMCwwLDAsLjMwNi0uNSwyLjUyNSwyLjUyNSwwLDAsMCwuMTYtLjYzNCw1LjgyNiw1LjgyNiwwLDAsMCwuMDQ2LS43NHYtMS41NWEyLjg0NCwyLjg0NCwwLDAsMSwuMzM2LTEuMzgyLDIuMzY0LDIuMzY0LDAsMCwxLDEuMDg0LS45ODMsMi4zNjQsMi4zNjQsMCwwLDEtMS4wODQtLjk4MywyLjg0NCwyLjg0NCwwLDAsMS0uMzM2LTEuMzgydi0xLjU1YTUuODI3LDUuODI3LDAsMCwwLS4wNDYtLjc0LDIuNTg2LDIuNTg2LDAsMCwwLS4xNi0uNjM0LDEuNjg0LDEuNjg0LDAsMCwwLS4zMDYtLjUsMS4yMjIsMS4yMjIsMCwwLDAtLjQ4OC0uMzI4bC40OC0xLjMzOEE0LjQ1LDQuNDUsMCwwLDEsMjcuMzI5LDlhMy4wOTIsMy4wOTIsMCwwLDEsLjg0OC44MTUsMi44OTIsMi44OTIsMCwwLDEsLjQ1LDEuMDA4LDQuNjA2LDQuNjA2LDAsMCwxLC4xMzgsMS4xNDN2MS41NWEyLjY1NSwyLjY1NSwwLDAsMCwuMDY4LjYyNiwxLjQ0OCwxLjQ0OCwwLDAsMCwuMjIyLjQ3NCwxLjAzNywxLjAzNywwLDAsMCwuMzgyLjMsMS4zNzYsMS4zNzYsMCwwLDAsLjU2NC4xMDZ2MS43MzFhMS4wNzcsMS4wNzcsMCwwLDAtLjk0Ni40MTIsMS44MjgsMS44MjgsMCwwLDAtLjI5LDEuMDg0djEuNTVhNC42MDYsNC42MDYsMCwwLDEtLjEzOCwxLjE0MywyLjkxNSwyLjkxNSwwLDAsMS0uNDUsMS4wMDgsMy4xNTcsMy4xNTcsMCwwLDEtLjg0OC44MjQsNC40ODIsNC40ODIsMCwwLDEtMS4zMTEuNThsLS40OC0xLjM1MlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPlwiLFxuXHR9LFxuXHRcIkp1bGlhXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQwNjNkOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTcuNDQ4LDIxLjk4M1YxMy43NzVsLTIuNDMyLjY2OXY4LjcyOWEyLjY2LDIuNjYsMCwwLDEtLjEwNi45MjkuMzM2LjMzNiwwLDAsMS0uMzA4LjIzOS40MDUuNDA1LDAsMCwxLS4yMTItLjA3NCwxLjI4MiwxLjI4MiwwLDAsMS0uMjg3LS4zLDIuODEzLDIuODEzLDAsMCwwLS4zNzctLjQwOS44NzQuODc0LDAsMCwwLS42MTEtLjIwNywxLjIyLDEuMjIsMCwwLDAtLjgxMi4yNTUuNzg5Ljc4OSwwLDAsMC0uMy42MjdBLjkwNy45MDcsMCwwLDAsMi41NDIsMjVhMy4xMTUsMy4xMTUsMCwwLDAsMS41NjEuMzE5LDcuMDY1LDcuMDY1LDAsMCwwLDEuMzctLjEyMiwyLjM2MSwyLjM2MSwwLDAsMCwxLjA1Ny0uNDgzLDIuMjkyLDIuMjkyLDAsMCwwLC42OC0xLjAxNCw1LjA5NCw1LjA5NCwwLDAsMCwuMjM5LTEuNzE1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44MjUsMTQuMDA4SDguNHY1LjYxOGEyLjI0MSwyLjI0MSwwLDAsMCwuMjE4Ljk3NywyLjQ4OSwyLjQ4OSwwLDAsMCwuNi44LDIuOSwyLjksMCwwLDAsLjg5Mi41MzYsMy4wNDUsMy4wNDUsMCwwLDAsMS4xLjIsMi41NSwyLjU1LDAsMCwwLDEuMDUxLS4yNDQsNC4zNDcsNC4zNDcsMCwwLDAsMS4wMTktLjY0OHYuNzQzSDE1LjcxVjE0LjAwOEgxMy4yODl2NS43NTZhMi43NjQsMi43NjQsMCwwLDEtLjY0OC43MDYsMS4xMzksMS4xMzksMCwwLDEtLjY0OC4yODEsMS4xNTUsMS4xNTUsMCwwLDEtLjQ1Ny0uMDksMS4yNjMsMS4yNjMsMCwwLDEtLjM3Mi0uMjM5LDEuMDYsMS4wNiwwLDAsMS0uMjUtLjM1NiwxLjA5MSwxLjA5MSwwLDAsMS0uMDktLjQ0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDc0LDIxLjk4M1YxMC4xMzJsLTIuNDExLjY2OVYyMS45ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTIwLjAzOCwxNC40NDR2Ny41NGgyLjQyMVYxMy43NzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2OCwxNy44NjN2Mi4zcS0uMzcyLjI3Ni0uNjc0LjQ1N2ExLjE2NSwxLjE2NSwwLDAsMS0uNi4xODEuNDY4LjQ2OCwwLDAsMS0uMjc2LS4wOSwxLDEsMCwwLDEtLjIzNC0uMjM5LDEuMTM4LDEuMTM4LDAsMCwxLS4xNjUtLjM1NiwxLjU3NiwxLjU3NiwwLDAsMS0uMDU4LS40My45NjguOTY4LDAsMCwxLC4xODEtLjU1MiwyLjMwNiwyLjMwNiwwLDAsMSwuNDczLS41LDQuNTcyLDQuNTcyLDAsMCwxLC42NDgtLjQzLDcuNjEyLDcuNjEyLDAsMCwxLC43MDYtLjM0NVpNMzAsMjEuOTgzVjE2YTIuMDgzLDIuMDgzLDAsMCwwLS4xOTEtLjksMS43NzksMS43NzksMCwwLDAtLjU5NS0uNjksMy4wMDYsMy4wMDYsMCwwLDAtMS4wMjUtLjQ0MSw2LjIyNSw2LjIyNSwwLDAsMC0xLjQ4MS0uMTU0LDUuNzM1LDUuNzM1LDAsMCwwLTEuMzI3LjE0OSw0LjYsNC42LDAsMCwwLTEuMS40LDIuMzczLDIuMzczLDAsMCwwLS43NTkuNjExLDEuMjE2LDEuMjE2LDAsMCwwLS4yODEuNzcuOTU4Ljk1OCwwLDAsMCwuMzE5LjczOCwxLjE3OCwxLjE3OCwwLDAsMCwuODI4LjI5MiwxLjM2NCwxLjM2NCwwLDAsMCwuNTQ3LS4xLjguOCwwLDAsMCwuMzM1LS4yNTUuOTg2Ljk4NiwwLDAsMCwuMTY1LS4zNzIsMS45NzgsMS45NzgsMCwwLDAsLjA0OC0uNDM1LDEuMDMxLDEuMDMxLDAsMCwxLC4yMjMtLjY2OS45NzUuOTc1LDAsMCwxLC44LS4yNzYsMS4wMDgsMS4wMDgsMCwwLDEsLjc4MS4zMTksMS41OTQsMS41OTQsMCwwLDEsLjI5MiwxLjA4M3YuNzg2bC0uMjY1LjA2NHEtLjQ4OC4xNDktLjk4OC4zMTN0LS45NjEuMzYxYTcuODg0LDcuODg0LDAsMCwwLS44NjUuNDMsMy41MTEsMy41MTEsMCwwLDAtLjcwNi41MzEsMi4zMTksMi4zMTksMCwwLDAtLjQ3OC42NjksMS45MTgsMS45MTgsMCwwLDAtLjE3NS44MjgsMi4wMzQsMi4wMzQsMCwwLDAsLjE2NS44MjMsMS44NzYsMS44NzYsMCwwLDAsLjQ3My42NTMsMi4yNTUsMi4yNTUsMCwwLDAsLjc0OS40MzUsMi45MDcsMi45MDcsMCwwLDAsLjk5My4xNTksMy42NzksMy42NzksMCwwLDAsLjctLjA1OCwyLjUwOSwyLjUwOSwwLDAsMCwuNTM2LS4xNjUsMi4yMDksMi4yMDksMCwwLDAsLjQzLS4yNXEuMTkxLS4xNDMuMzkzLS4zMTN2LjYzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48Y2lyY2xlIGN4PVxcXCI2LjIwNFxcXCIgY3k9XFxcIjExLjY3MlxcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojNjY4MmRmXFxcIi8+PHBhdGggZD1cXFwiTTYuMiwxMy4yODdhMS42MTUsMS42MTUsMCwxLDEsMS42MTUtMS42MTVBMS42MTcsMS42MTcsMCwwLDEsNi4yLDEzLjI4N1ptMC0zYTEuMzg1LDEuMzg1LDAsMSwwLDEuMzg1LDEuMzg1QTEuMzg2LDEuMzg2LDAsMCwwLDYuMiwxMC4yODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDA2M2Q4XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjEuNDE3XFxcIiBjeT1cXFwiMTEuNjcyXFxcIiByPVxcXCIxLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNkNTYzNWNcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDE3LDEzLjI4N2ExLjYxNSwxLjYxNSwwLDEsMSwxLjYxNS0xLjYxNUExLjYxNywxLjYxNywwLDAsMSwyMS40MTcsMTMuMjg3Wm0wLTNBMS4zODUsMS4zODUsMCwxLDAsMjIuOCwxMS42NzIsMS4zODYsMS4zODYsMCwwLDAsMjEuNDE3LDEwLjI4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjYjNjMzNcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMy4zODVcXFwiIGN5PVxcXCI4LjI5N1xcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojNjBhZDUxXFxcIi8+PHBhdGggZD1cXFwiTTIzLjM4NSw5LjkxMkExLjYxNSwxLjYxNSwwLDEsMSwyNSw4LjMsMS42MTcsMS42MTcsMCwwLDEsMjMuMzg1LDkuOTEyWm0wLTNBMS4zODUsMS4zODUsMCwxLDAsMjQuNzcsOC4zLDEuMzg2LDEuMzg2LDAsMCwwLDIzLjM4NSw2LjkxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzODk4MjZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyNS4zNTRcXFwiIGN5PVxcXCIxMS42NzJcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2FhNzljMVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS4zNTQsMTMuMjg3YTEuNjE1LDEuNjE1LDAsMSwxLDEuNjE1LTEuNjE1QTEuNjE3LDEuNjE3LDAsMCwxLDI1LjM1NCwxMy4yODdabTAtM2ExLjM4NSwxLjM4NSwwLDEsMCwxLjM4NSwxLjM4NUExLjM4NiwxLjM4NiwwLDAsMCwyNS4zNTQsMTAuMjg3WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk1NThiMlxcXCIvPlwiLFxuXHR9LFxuXHRcIktvdGxpblwiOiB7XG5cdFx0Y29sb3VyOiBcIiM5ZDRiOWRcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjMxMS4zMzZcXFwiIHkxPVxcXCIxNDUyLjA2NFxcXCIgeDI9XFxcIjI4My4zNDJcXFwiIHkyPVxcXCIxNDgwLjA1OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjgxLjQgLTE0NTApXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQ0ODU3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ3XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWQ0YjlkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNmQ1ZmFhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9rb3RsaW48L3RpdGxlPjxwYXRoIGQ9XFxcIk0zMCwzMEgyVjJIMzBMMTYsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiS3VzdG9cIjoge1xuXHRcdGNvbG91cjogXCIjNTliNGQ5XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIwLjU1XFxcIiB5PVxcXCIyMi4zMzlcXFwiIHdpZHRoPVxcXCIxNS40MzNcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE0LjM2MyAxMi43OTcpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2I4ZDQzMlxcXCIvPjxyZWN0IHg9XFxcIjEuMzcyXFxcIiB5PVxcXCIxNi4zODJcXFwiIHdpZHRoPVxcXCI5Ljg1OVxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNDM5XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTAuNzI3IDkuNjYzKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cmVjdCB4PVxcXCI5LjIzMlxcXCIgeT1cXFwiMjQuMzAxXFxcIiB3aWR0aD1cXFwiOS44NTlcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE0LjAyNCAxNy41NDEpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2I4ZDQzMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMiAyIDIgMzAgMjkuOTk5IDMwIDJcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDc4ZDRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEwLjI4MiAxMC4yODIgMjEuNzE4IDIxLjcxOCAzMCAxMy40MzYgMzAgMiAxOC41NjQgMiAxMC4yODIgMTAuMjgyXFxcIiBzdHlsZT1cXFwiZmlsbDojNTliNGQ5XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIzMCAyOS45OTkgMzAgMiAxNiAxNiAzMCAyOS45OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7b3BhY2l0eTowLjIwMDAwMDAwMjk4MDIzMjI0O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHJlY3QgeD1cXFwiMTYuMjI2XFxcIiB5PVxcXCI5LjAwMVxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yLjE5MiAxNS41MDcpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjE4XFxcIiB5PVxcXCI1LjA0OFxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDEuNzYyIDE3LjE0Nikgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMThcXFwiIHk9XFxcIjEyLjk1NVxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjgyOSAxOS40NjEpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjI0LjEzM1xcXCIgeT1cXFwiOS4wMDJcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgwLjEyNCAyMS4wOTkpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxhVGVYXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NmY2ZjZlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTExLjMzMywxMy4xMjJjLS4xMjgtMS41NjItLjI0MS0yLjc1Ni0yLjI4Ny0yLjc1Nkg3LjkxdjguNGgyLjE0NXYuNjExbC0zLjA4My0uMDI5LTMuMDgyLjAyOXYtLjYxMUg2LjAzNHYtOC40SDQuODg0Yy0yLjA0NiwwLTIuMTU5LDEuMjA4LTIuMjg3LDIuNzU2SDJsLjI4NC0zLjM2N2g5LjM2MmwuMjg0LDMuMzY3aC0uNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz48cGF0aCBkPVxcXCJNMTkuMjg5LDIyLjUzSDEwLjQxVjIxLjkyaDEuNTA2VjEzLjQ2N0gxMC40MXYtLjYxMWg4LjYzN2wuNDEyLDMuMzY3aC0uNmMtLjIxMy0xLjgzMy0uNjgyLTIuNzU2LTIuODU1LTIuNzU2SDEzLjc5MVYxNy4yaC44MzhjMS4zNjQsMCwxLjUwNS0uNiwxLjUwNS0xLjY2MmguNnYzLjkzNWgtLjZjMC0xLjA4LS4xNDItMS42NjItMS41MDUtMS42NjJoLS44Mzh2NC4xMDZoMi4yMTZjMi40NzIsMCwzLTEuMTA4LDMuMy0zLjIyNWguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz48cGF0aCBkPVxcXCJNMjcuNzI3LDE5LjE4NmMtLjU0LDAtMS45NiwwLTIuNDE1LjAyOVYxOC42aDEuMTc5bC0yLjU1Ny0zLjU1Mi0yLjUyOSwzLjM4MUE0LjEsNC4xLDAsMCwwLDIyLjcsMTguNnYuNjExYy0uMzU1LS4wMjktMS41NzYtLjAyOS0yLjAxNy0uMDI5LS40LDAtMS41NDgsMC0xLjg3NS4wMjlWMTguNmguMzgzYTcuNDU5LDcuNDU5LDAsMCwwLC44MjQtLjA0M2MuNS0uMDQzLjU0LS4wODUuNjY3LS4yNTZMMjMuNTM2LDE0LjVsLTMuMTUzLTQuNDE4SDE5VjkuNDdjLjM4NC4wMjgsMS43OS4wMjgsMi4yNzMuMDI4LjU4MiwwLDEuOTE4LDAsMi40MjktLjAyOHYuNjExSDIyLjUyOGwyLjExNywyLjk1NSwyLjA3NC0yLjc4NGE0LjEsNC4xLDAsMCwwLTEuMjkzLS4xN1Y5LjQ3Yy4zNTYuMDI4LDEuNTkxLjAyOCwyLjAzMi4wMjguNCwwLDEuNTM0LDAsMS44NjEtLjAyOHYuNjExaC0uMzY5YTUuMjY0LDUuMjY0LDAsMCwwLS44MzguMDQzYy0uNDY5LjA0My0uNTI2LjA3MS0uNjY3LjI1NmwtMi40LDMuMjFMMjguNjM2LDE4LjZIMzB2LjYxMUMyOS42NDUsMTkuMTg2LDI4LjE4MiwxOS4xODYsMjcuNzI3LDE5LjE4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiVcIixcblx0XHRdLFxuXHR9LFxuXHRcIkxlc3NcIjoge1xuXHRcdGNvbG91cjogXCIjMmE0Zjg0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMy42MDlcXFwiIHkxPVxcXCItNDkyLjY4NVxcXCIgeDI9XFxcIi0zLjYwOVxcXCIgeTI9XFxcIi00ODAuMjcxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDE5LjcxMiA1MDIuODkxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4xNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJhNGY4NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zODhcXFwiIHN0b3AtY29sb3I9XFxcIiMyOTRlODJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzJlNGVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2xlc3M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOC41NTksMjAuMjI2YTIuNCwyLjQsMCwwLDEtMi4zOTQsMi4zOTRINi4wNGEyLjQsMi40LDAsMCwxLTIuMzk0LTIuMzk0VjEyLjZBMi40LDIuNCwwLDAsMSw2LjA0LDEwLjIwNkgyNi4xNjVBMi40LDIuNCwwLDAsMSwyOC41NTksMTIuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjQuMzQ5LDE2LjI1YTEuOTcyLDEuOTcyLDAsMCwxLDEuNTc4LDEuODkxLDEuNjksMS42OSwwLDAsMS0uNjUzLDEuNCwyLjkzNCwyLjkzNCwwLDAsMS0xLjg2Mi41NTksNC41NTgsNC41NTgsMCwwLDEtMi4yNDEtLjYxOCwxLjk4NiwxLjk4NiwwLDAsMSwuMTYtLjY2OSwxLjgzLDEuODMsMCwwLDEsLjM1LS41NzYsMy43LDMuNywwLDAsMCwxLjY0OS40OTMuOTY1Ljk2NSwwLDAsMCwuNTEtLjExMi4zMzkuMzM5LDAsMCwwLC4xNzgtLjNxMC0uMzUzLS41NDYtLjUyOWwtLjY1My0uMjQ3cS0xLjQ4Mi0uNTQtMS40ODItMS43NjJhMS43NTMsMS43NTMsMCwwLDEsLjYyMy0xLjQxNiwyLjU4NywyLjU4NywwLDAsMSwxLjY3OC0uNjQ4LDUuMDk0LDUuMDk0LDAsMCwxLDEuMTUuMTQ3LDQuNTU1LDQuNTU1LDAsMCwxLDEuMDMyLjQ3MiwxLjY2OCwxLjY2OCwwLDAsMS0uMTMuNzIyLDEuMjIsMS4yMiwwLDAsMS0uMzguNTU4LDQuMjYxLDQuMjYxLDAsMCwwLTEuNjYtLjQ0Ni41NDQuNTQ0LDAsMCwwLS4zNjIuMTA2LjMzOC4zMzgsMCwwLDAtLjEyNC4yN3EwLC4yODIuNDUxLjQ0NmwuNzM2LjI1OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjZcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4yNWExLjk3MiwxLjk3MiwwLDAsMSwxLjU3NywxLjg5MSwxLjY5MSwxLjY5MSwwLDAsMS0uNjUyLDEuNCwyLjkzNywyLjkzNywwLDAsMS0xLjg2Mi41NTksNC41Niw0LjU2LDAsMCwxLTIuMjQxLS42MTgsMS45ODEsMS45ODEsMCwwLDEsLjE2LS42NjksMS44MjEsMS44MjEsMCwwLDEsLjM1LS41NzYsMy43LDMuNywwLDAsMCwxLjY0OS40OTMuOTYzLjk2MywwLDAsMCwuNTEtLjExMi4zNC4zNCwwLDAsMCwuMTc4LS4zcTAtLjM1My0uNTQ2LS41MjlsLS42NTMtLjI0N3EtMS40ODItLjU0LTEuNDgyLTEuNzYyYTEuNzUyLDEuNzUyLDAsMCwxLC42MjMtMS40MTYsMi41ODUsMi41ODUsMCwwLDEsMS42NzctLjY0OCw1LjA4OCw1LjA4OCwwLDAsMSwxLjE1LjE0Nyw0LjU1Miw0LjU1MiwwLDAsMSwxLjAzMi40NzIsMS42NjgsMS42NjgsMCwwLDEtLjEzLjcyMiwxLjIyLDEuMjIsMCwwLDEtLjM4LjU1OCw0LjI2Myw0LjI2MywwLDAsMC0xLjY2MS0uNDQ2LjU0My41NDMsMCwwLDAtLjM2Mi4xMDYuMzM5LjMzOSwwLDAsMC0uMTI0LjI3cTAsLjI4Mi40NTEuNDQ2bC43MzYuMjU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4yNjQsMTYuMzMzYTIuODIyLDIuODIyLDAsMCwwLS4xNzItMSwyLjIzOSwyLjIzOSwwLDAsMC0uNDkyLS43ODcsMi4yOCwyLjI4LDAsMCwwLS43NzctLjUxNywyLjczNywyLjczNywwLDAsMC0xLjAyNi0uMzE0LDIuOCwyLjgsMCwwLDAtMS4xOC4zNjEsMi4yNTYsMi4yNTYsMCwwLDAtLjgzLjY0NiwyLjc2NSwyLjc2NSwwLDAsMC0uNDg3Ljk2OSw0LjQsNC40LDAsMCwwLS4xNiwxLjIxNiw1LjY4MSw1LjY4MSwwLDAsMCwuMTMsMS4yNTcsMi42MjgsMi42MjgsMCwwLDAsLjQ0NSwxLDIuMTA3LDIuMTA3LDAsMCwwLC44MTguNjU3LDIuOTM1LDIuOTM1LDAsMCwwLDEuMjUxLjI3NywzLjk1MiwzLjk1MiwwLDAsMCwyLjMyNC0uNzEyLDEuODY1LDEuODY1LDAsMCwwLS40ODQtMS4wODEsNi4xODgsNi4xODgsMCwwLDEtLjg1Ny4yNjIsMy4yMDgsMy4yMDgsMCwwLDEtLjY1Ni4wNzksMS4wMTcsMS4wMTcsMCwwLDEtLjgxNS0uMjksMS4xODcsMS4xODcsMCwwLDEtLjI3MS0uNzdoMy4wODNBNC40NDcsNC40NDcsMCwwLDAsMTUuMjY0LDE2LjMzM1ptLTMuMjQ4LjA4MWEyLjQzMywyLjQzMywwLDAsMSwuMjE4LTEsLjYzMi42MzIsMCwwLDEsLjU1OS0uMjY0LjY2LjY2LDAsMCwxLC41ODIuMjgyLDEuNzQ5LDEuNzQ5LDAsMCwxLC4xOTQuODU2di4xM0gxMi4wMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+PHBhdGggZD1cXFwiTTI5LjE4LDE3LjJhMS42MDUsMS42MDUsMCwwLDAtLjUzLDEuMjY1djIuMDUxYTEuODEsMS44MSwwLDAsMS0uNjgzLDEuNTU3LDIuOCwyLjgsMCwwLDEtMS42NTQuNTQ5bC0uMzczLDBWMjEuNTk0YTEuMjQxLDEuMjQxLDAsMCwwLC41OTUtLjMzNCwxLjM2OSwxLjM2OSwwLDAsMCwuNDE5LTEuMDQ3VjE4LjU1NmEyLjU0NSwyLjU0NSwwLDAsMSwuMjU3LTEuMzIzLDIuNSwyLjUsMCwwLDEsMS4yLS44MzgsMi41MjgsMi41MjgsMCwwLDEtMS4zMjQtMS4xNzksMi45NTYsMi45NTYsMCwwLDEtLjEzNS0xLjE2NVYxMi41MzNhMS40NTgsMS40NTgsMCwwLDAtLjM2Ni0xLjA1NCwxLjE1MiwxLjE1MiwwLDAsMC0uNjQ4LS4zMTR2LS45NmMuNDQ1LDAsLjY2OSwwLC45MjgsMGExLjY3NiwxLjY3NiwwLDAsMSwxLjAyMy40NDIsMiwyLDAsMCwxLC42NzMsMS4wMDksMi4zMywyLjMzLDAsMCwxLC4wODYuN3YxLjc1N2ExLjg0NiwxLjg0NiwwLDAsMCwuNSwxLjM4MywyLjExMywyLjExMywwLDAsMCwuODU0LjQ3OXYuNzk0YTEuOTQzLDEuOTQzLDAsMCwwLS44Mi40MjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2O3N0cm9rZTojNDA0MDQwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjI1cHhcXFwiLz48cGF0aCBkPVxcXCJNNS41OTQsMTAuMjA2SDUuMjZhMS42NzMsMS42NzMsMCwwLDAtMS4wMjMuNDQyLDEuNzEsMS43MSwwLDAsMC0uNjczLDEuMDA5LDMuNTMxLDMuNTMxLDAsMCwwLS4wMzguN3YxLjc1N0ExLjg2NywxLjg2NywwLDAsMSwyLjk4MSwxNS41LDIuODQ3LDIuODQ3LDAsMCwxLDIsMTUuOTc3di43OTNhMi41NTIsMi41NTIsMCwwLDEsLjk0Ny40MjYsMS42MzgsMS42MzgsMCwwLDEsLjU3NywxLjI2NXYyLjA1MUExLjc4MSwxLjc4MSwwLDAsMCw0LjE2LDIyLjA3YTIuOCwyLjgsMCwwLDAsMS42NTQuNTVsLjQyMSwwVjIxLjU5NGExLjQ3LDEuNDcsMCwwLDEtLjY0My0uMzM0LDEuMzU1LDEuMzU1LDAsMCwxLS4zNzEtMS4wNDdWMTguNTU3YTIuNTE2LDIuNTE2LDAsMCwwLS4zMDUtMS4zMjMsMi41LDIuNSwwLDAsMC0xLjItLjgzOCwyLjUyOSwyLjUyOSwwLDAsMCwxLjMyNC0xLjE3OCwyLjg1NywyLjg1NywwLDAsMCwuMTgzLTEuMTY1VjEyLjUzNEExLjQ2MiwxLjQ2MiwwLDAsMSw1LjU0LDExLjQ4YTEuMzEzLDEuMzEzLDAsMCwxLC41NzUtLjI3MWwuNDI4LDBWMTAuMjA2SDUuNTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNjtzdHJva2U6IzQwNDA0MDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yNXB4XFxcIi8+PHBhdGggZD1cXFwiTTkuNTM3LDE4LjUyOWgtLjMyYy0uMzQ4LDAtLjQ3OS0uMTgzLS40NzktLjU1MVYxMS4yMTlhMS4yNTYsMS4yNTYsMCwwLDAtLjI2OC0uODU2Yy0uMTUtLjE2NC0uNDExLS4xNjItLjc4My0uMTYySDYuOTY0bC0uMDg1LDB2OC4xMDZhMS44NzUsMS44NzUsMCwwLDAsLjM1MiwxLjI0LDEuNDQxLDEuNDQxLDAsMCwwLDEuMTQ1LjM5Myw3Ljg1OSw3Ljg1OSwwLDAsMCwxLjI2OS0uMTE4LDIuMjMsMi4yMywwLDAsMCwuMDM2LS41MDksMi4yNzgsMi4yNzgsMCwwLDAtLjE0Mi0uNzgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxpcXVpZFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDQ5OTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS45ODgsMjIuMzcybC0uNzQ4LjA0OGE1LjIwOSw1LjIwOSwwLDAsMS0yLjk5LS42NzEsNy44LDcuOCwwLDAsMC03LjgsMCw1LjI3NSw1LjI3NSwwLDAsMS01LjMuMDFBNy4yNjIsNy4yNjIsMCwwLDAsOS4yNjMsMjAuN2E3LjIyOSw3LjIyOSwwLDAsMC0zLjk0LDEuMDYsNC43NTEsNC43NTEsMCwwLDEtMi40Ny43bC0uODM4LDBjMCwuODg5LS4wMDksMS43MzktLjAxNSwyLjUxNWwuODYxLDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0Ljc2Myw0Ljc2MywwLDAsMSwyLjY1OS0uNyw0LjgzNSw0LjgzNSwwLDAsMSwyLjYzNC43MTgsNy43OTQsNy43OTQsMCwwLDAsNy44LDAsNS4yODcsNS4yODcsMCwwLDEsNS4zMTksMCw3LjcwOSw3LjcwOSwwLDAsMCw0LjQuOTg5TDMwLDI0Ljg4OEMyOS45OTUsMjQuMSwyOS45OTEsMjMuMjQ5LDI5Ljk4OCwyMi4zNzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+PHBhdGggZD1cXFwiTTI5Ljk4MywxNS41ODFsLS43NDMuMDQ3YTUuMjI2LDUuMjI2LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc4LDUuMjc4LDAsMCwxLTUuMy4wMUE3LjMxMiw3LjMxMiwwLDAsMCw5LjI2MywxMy45MWE3LjMsNy4zLDAsMCwwLTMuOTQxLDEuMDYsNC43NDIsNC43NDIsMCwwLDEtMi40NjkuN2wtLjgyOCwwYzAsLjg0OSwwLDEuNjkzLDAsMi41MTVsLjg0LDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0LjcsNC43LDAsMCwxLDIuNjU5LS43LDQuOCw0LjgsMCwwLDEsMi42MzQuNzE4LDcuNzk0LDcuNzk0LDAsMCwwLDcuOCwwLDUuMjg3LDUuMjg3LDAsMCwxLDUuMzE5LDAsNy43MDksNy43MDksMCwwLDAsNC40Ljk4OWwuNTY4LS4wMzdDMjkuOTgzLDE3LjI2OSwyOS45ODMsMTYuNDI0LDI5Ljk4MywxNS41ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+PHBhdGggZD1cXFwiTTI5LjI0LDkuMTM3YTUuMjU0LDUuMjU0LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc1LDUuMjc1LDAsMCwxLTUuMy4wMDlBNy4xNiw3LjE2LDAsMCwwLDkuMjYzLDcuNDJhNy4xNTksNy4xNTksMCwwLDAtMy45NCwxLjA1OSw0LjczOCw0LjczOCwwLDAsMS0yLjQ2OS43bC0uODM0LDBjMCwuODIsMCwxLjY2NCwwLDIuNTE3bC44MzYsMGE3LjIzNyw3LjIzNywwLDAsMCwzLjc1LTEuMDUyLDQuNzM4LDQuNzM4LDAsMCwxLDIuNjU5LS43MDYsNC44MTQsNC44MTQsMCwwLDEsMi42MzQuNzE5LDcuNzkxLDcuNzkxLDAsMCwwLDcuOCwwLDUuMjkzLDUuMjkzLDAsMCwxLDUuMzE5LDAsNy43MzIsNy43MzIsMCwwLDAsNC40Ljk4OGwuNTY4LS4wMzdjMC0uODU5LDAtMS43LjAwNy0yLjUxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQ5OTlcXFwiLz5cIixcblx0fSxcblx0XCJMaXNwXCI6IHtcblx0XHRjb2xvdXI6IFwiIzgzODFjNVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTkyNS43ODVcXFwiIHkxPVxcXCItMTM4My4wNzVcXFwiIHgyPVxcXCIyMzAyLjM1MVxcXCIgeTI9XFxcIi0xODY4LjU1N1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjA0OCwgMCwgMCwgLTAuMDQ1LCAtODIuNTM5LCAtNTQuNjUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjODM4MWM1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzdlNTViM1xcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk5NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1MmVjYlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk5MlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjIxNC4xODdcXFwiIHkxPVxcXCItMTc1MC4yMjVcXFwiIHgyPVxcXCIxOTMwLjk3NFxcXCIgeTI9XFxcIi0xNDA4LjM0MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjA1NCwgMCwgMCwgLTAuMDU0LCAtOTUuMTg4LCAtNjguNDg3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQxMWY1ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzViMmE4NVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZW1hY3M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOS4zNjMsMTZBMTMuMzY0LDEzLjM2NCwwLDEsMSwxNiwyLjUsMTMuNDMyLDEzLjQzMiwwLDAsMSwyOS4zNjMsMTZaXFxcIiBzdHlsZT1cXFwic3Ryb2tlLXdpZHRoOjAuNzVweDtmaWxsOnVybCgjYSk7c3Ryb2tlOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDA2LDI1LjQ4M2ExOC4xNTcsMTguMTU3LDAsMCwwLDIuNTg3LS4wNDgsNDEuNzI4LDQxLjcyOCwwLDAsMCw0LjUtLjYzOSwzMC42NzEsMzAuNjcxLDAsMCwwLDMuMTMyLS44MzljMS4xNDItLjQyMSwxLjc2NC0uNzc4LDIuMDQzLTEuMjg0YS42Mi42MiwwLDAsMC0uNDQxLS42OTJjLTEuMzQ3LS41NjUtMi45MDgtLjQ2My02LS41MjgtMy40MjctLjExOC00LjU2Ny0uNjkxLTUuMTc0LTEuMTUzLS41ODItLjQ2OS0uMjktMS43NjUsMi4yMDYtMi45MDdhNTQuMjY2LDU0LjI2NiwwLDAsMSw2LjE4NC0xLjczYy0xLjY1OS0uODItNC43NTMtMi4yNjItNS4zODktMi41NzMtLjU1OC0uMjczLTEuNDUxLS42ODQtMS42NDQtMS4xODItLjIxOS0uNDc4LjUxOC0uODg5LjkzLTEuMDA3YTIwLjMsMjAuMywwLDAsMSw0LjktLjY0Nyw0LjMwOCw0LjMwOCwwLDAsMCwxLS4wNjlBMS43NjcsMS43NjcsMCwwLDAsMjEuODc5LDcuOWEyLjc3NSwyLjc3NSwwLDAsMC0zLjI4Ni0xLjgxQzE3LjIyLDYuMzM4LDEzLjkwOCw3LjMsMTMuOTA4LDcuM2M0LjA5My0uMDM1LDQuNzc5LjAzMyw1LjA4NS40NjEuMTgxLjI1My0uMDgyLjYtMS4xNzQuNzc3LTEuMTg5LjE5NC0zLjY1OS40MjgtMy42NTkuNDI4LTIuMzcuMTQxLTQuMDQuMTUtNC41NCwxLjIxLS4zMjcuNjkzLjM0OSwxLjMuNjQ1LDEuNjg4YTEyLjcyOCwxMi43MjgsMCwwLDAsNC4yMjUsMi43Yy40MzguMjA4LDEuNzIzLjYsMS43MjMuNmExMS41MiwxMS41MiwwLDAsMC04LjEsMi4yODdjLTEuODA3LDEuNjcyLTEuMDA4LDMuNjY1LDIuNjk1LDQuODkxYTEyLjc1NSwxMi43NTUsMCwwLDAsNi41MzQuNzcyYzEuOTIyLS4xLDIuMjI0LS4wNDIsMi4yNDQuMTE2LjAyNy4yMjItMi4xMzQuNzczLTIuNzI0Ljk0NC0xLjUuNDMzLTUuNDM2LDEuMzA3LTUuNDU2LDEuMzEyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxpdmVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjMzE3ZWFjXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuNTA0IDIuMDA3IDguOTg2IDIgOC45ODYgMjEuNzQ2IDEwLjc1OSAxOS45ODcgMTAuNzU5IDMuNzU1IDEyLjQ5NyAzLjc1NSAxMi40OTcgMTguMjQgMTQuMjUzIDE2LjQ4NyAxNC4yNTMgMy43NTUgMTUuOTk3IDMuNzU1IDE1Ljk5NyAxNC43MjkgMTcuNzM1IDEyLjk2MiAxNy43MzUgMy43NTUgMTkuNDYxIDMuNzU1IDE5LjQ2MSAxMS4yMjUgMjEuMjQ1IDkuNDYxIDIxLjI0NSAzLjc1NSAyMi45NzIgMy43NTUgMjIuOTcyIDcuNzIzIDI0LjczOCA1Ljk3NSAyNC43MzkgMy43NTUgMjYuNDgzIDMuNzU1IDI2LjQ4MyA1LjQ4MiAyOC4yMDkgNS40ODIgMjguMjA5IDcuMjY3IDI1LjkxMSA3LjI2OCAyNC4xODQgOC45OTMgMjguMjA5IDguOTkzIDI4LjIwOSAxMC43MTkgMjIuNDM4IDEwLjcxOSAyMC42OTggMTIuNTA0IDI4LjIwOSAxMi41MDQgMjguMjA5IDE0LjIzIDE4Ljk2MSAxNC4yMyAxNy4yMDUgMTYuMDE0IDI4LjIwOSAxNi4wMTQgMjguMjA5IDE3Ljc0MSAxNS40NTUgMTcuNzQxIDEzLjcxNSAxOS40OTYgMjguMjA5IDE5LjQ5NiAyOC4yMDkgMjEuMjUyIDExLjk4IDIxLjI1MiAxMC4yNDIgMjIuOTc4IDI5Ljk4MiAyMi45NzggMjkuOTg5IDI2LjQ4OSA4Ljk4NiAyNi40ODkgOC45ODYgMzAgNS41MDQgMzAgNS41MDQgMjYuNDg5IDIuMDExIDI2LjQ4OSAyLjAxMSAyMi45NzggNS41MDQgMjIuOTc4IDUuNTAzIDIgNS41MDQgMi4wMDdcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTdlYWNcXFwiLz5cIixcblx0fSxcblx0XCJMb2cgZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMGJkMDJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCI5LjVcXFwiIHdpZHRoPVxcXCI4LjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCIxMi41XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjE0Ljc1XFxcIiB3aWR0aD1cXFwiMTAuNjE3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjE3LjU4M1xcXCIgd2lkdGg9XFxcIjE0LjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIyMC41XFxcIiB3aWR0aD1cXFwiOS44MzRcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjVcXFwiIHk9XFxcIjIzLjA4M1xcXCIgd2lkdGg9XFxcIjEyLjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCI5LjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxNC42NjdcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxNy4yNVxcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjIwLjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIyMy4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+XCIsXG5cdH0sXG5cdFwiTE9MQ09ERVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4ZDI3MDFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMS4zLDMuNzNhMy45NCwzLjk0LDAsMCwxLDEuMDQxLS42Miw4LjQzNSw4LjQzNSwwLDAsMSwuNTU2LDMuMzg1LDI0Ljg2NSwyNC44NjUsMCwwLDEtLjY0Myw1LjAxOWMtLjM2OC0uMTgtLjczNi0uMzY0LTEuMS0uNTU0YTExLjc1NCwxMS43NTQsMCwwLDAsLjI3My0zLjc0NywzLjA4LDMuMDgsMCwwLDAtLjI1NS0uODY1LDUuMTQyLDUuMTQyLDAsMCwwLTIuMDE2LDIuMDdjLS4zMTktLjI0LS42NTItLjQ1OS0uOTg1LS42NzZBMTUuNzE2LDE1LjcxNiwwLDAsMSwyMS4zLDMuNzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQ1MSw4LjZhNC41NzQsNC41NzQsMCwwLDEsMS41MDktMS41NjMsNi42ODUsNi42ODUsMCwwLDEsLjA5LDIuNjcxQzIwLjUxNyw5LjM0MywxOS45NzUsOC45ODcsMTkuNDUxLDguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTYuNDYxLDEwLjA3NmMtLjAzOC0xLjEzNC0uMDMxLTIuMjY5LS4wMjYtMy40LS45LjQ5My0xLjc1OCwxLjA3MS0yLjY0OCwxLjU4OS0uNDUzLjI3LS45MDguNTM2LTEuMzYuODA4LjIyNC0uMTYzLjQ1Ny0uMzEyLjY5LS40NjItLjg2MS0xLjIyNC0xLjk3MS0yLjUtMy41My0yLjc0OGExMC45NjQsMTAuOTY0LDAsMCwwLS4zNjUsNS4xNDdjLjMxOC0uMTk1LjYzMy0uNC45NjItLjU3Mi0uNDc0LjMxOS0uOTY0LjYxNS0xLjQ0Ni45Mi0uOTU3LjYtMS45MjIsMS4xOTItMi44OTIsMS43NzdhMS4yMzIsMS4yMzIsMCwwLDAtLjM5MS4zMmMtLjEsMS4zOTUtLjM0LDQuMzkyLS4zNCw0LjM5Mi0uMjU0LDMuNjY4LS41MjIsNy4zMzYtLjgyNiwxMSw0LjA2Mi4zNDMsOC4xMTguNzQyLDEyLjE3OSwxLjA3NkMxNi40NTgsMjMuMywxNi40NzIsMTYuNjksMTYuNDYxLDEwLjA3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMSwyLjk3N0E1Ljg4NCw1Ljg4NCwwLDAsMSwyMi43MDYsMmExMC4wNjQsMTAuMDY0LDAsMCwxLC43NzIsNC42MDYsMjQuNTkxLDI0LjU5MSwwLDAsMS0uNTA4LDQuNDU5YzEuMi44NDYsMi40MzMsMS42NDUsMy42MTgsMi41MDlxLjQ0LDYuMzguOTA3LDEyLjc1OGMuMDY2LjgzOS4wOTQsMS42OC4yMTYsMi41MTMtMy4wMjkuMjc5LTYuMDU3LjU5MS05LjA4NS44ODZhMTkuMTM3LDE5LjEzNywwLDAsMC0yLjE1OC4yN3YtLjA4M2MtLjAxLTYuNjE0LDAtMTMuMjI3LS4wMDctMTkuODQxLS4wMzgtMS4xMzQtLjAzMS0yLjI2OS0uMDI2LTMuNHYtLjFjLjQwNi4yOTIuODI2LjU2MiwxLjI0My44MzlBMTYuMjc0LDE2LjI3NCwwLDAsMSwyMS4xLDIuOTc3Wm0uMi43NTJhMTUuNzE2LDE1LjcxNiwwLDAsMC0zLjEyOCw0LjAxMWMuMzM0LjIxNy42NjYuNDM3Ljk4NS42NzZhNS4xNDIsNS4xNDIsMCwwLDEsMi4wMTYtMi4wNywzLjA4LDMuMDgsMCwwLDEsLjI1NS44NjUsMTEuNzU0LDExLjc1NCwwLDAsMS0uMjczLDMuNzQ3Yy4zNjQuMTkuNzMxLjM3NCwxLjEuNTU0YTI0Ljg2NSwyNC44NjUsMCwwLDAsLjY0My01LjAxOSw4LjQzNSw4LjQzNSwwLDAsMC0uNTU2LTMuMzg1QTMuOTQsMy45NCwwLDAsMCwyMS4zLDMuNzNaTTE5LjQ1MSw4LjZjLjUyNC4zODMsMS4wNjYuNzM5LDEuNiwxLjEwOGE2LjY4NSw2LjY4NSwwLDAsMC0uMDktMi42NzFBNC41NzQsNC41NzQsMCwwLDAsMTkuNDUxLDguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNOS4yMTksNS4wNjJhMy41ODEsMy41ODEsMCwwLDEsMi4yMDUuNzQ4QTEyLjksMTIuOSwwLDAsMSwxMy43ODgsOC4yNmMtLjQ1My4yNy0uOTA4LjUzNi0xLjM2LjgwOC4yMjQtLjE2My40NTctLjMxMi42OS0uNDYyLS44NjEtMS4yMjQtMS45NzEtMi41LTMuNTMtMi43NDhhMTAuOTY0LDEwLjk2NCwwLDAsMC0uMzY1LDUuMTQ3Yy4zMTgtLjE5NS42MzMtLjQuOTYyLS41NzItLjQ3NC4zMTktLjk2NC42MTUtMS40NDYuOTJBMTQuMSwxNC4xLDAsMCwxLDkuMjE5LDUuMDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41MDcsOC40NzZhMi40NTUsMi40NTUsMCwwLDEsMS41MTcuODhsLS4zNi4yQTIuNjksMi42OSwwLDAsMCwxMC43MzksOWEzLjMxOCwzLjMxOCwwLDAsMC0uMTY1LDEuMjgxbC0uMzQ0LjExQTcuMDIxLDcuMDIxLDAsMCwxLDEwLjUwNyw4LjQ3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTM5LDEwLjY5M2EuNDg3LjQ4NywwLDAsMSwuNTQyLjAxLDEuNTUyLDEuNTUyLDAsMCwxLC4wNjIuNmMtLjAzOS43ODQuMDI0LDEuNTczLS4wNzYsMi4zNTRhMS4wMTMsMS4wMTMsMCwwLDEtMS4wMTIuODg2Yy0uMjMzLS4wNS0uMjc4LS4zNDEtLjI3OC0uNTQxLDAtLjY3NS4xLTEuMzQ3LjA2Ni0yLjAyNEExLjMsMS4zLDAsMCwxLDEyLjEzOSwxMC42OTNabS4xNSwxLjA4NGEuODkxLjg5MSwwLDAsMCwuMjUxLS44NjZDMTIuMjE4LDExLjA2MSwxMS45LDExLjUwNywxMi4yODksMTEuNzc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC41LDEzLjcyOGExNy42NzEsMTcuNjcxLDAsMCwxLDEuOTI4LS44MjJjLS4wMjQuMDY0LS4wNjkuMTkxLS4wOTIuMjU1LS42NDkuMzU4LTEuMzYuNi0yLjAyMS45MzhhMTIuMTE4LDEyLjExOCwwLDAsMC0zLjIzOCwyLjI0OEE3LjIsNy4yLDAsMCwxLDEwLDE3LjM4MWE0LjE2Niw0LjE2NiwwLDAsMSwuOTgtMS4yNDZBMTIuNzI3LDEyLjcyNywwLDAsMSwxNC41LDEzLjcyOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNy42MjgsMTMuMjMxYS45ODkuOTg5LDAsMCwxLC41OTQtLjE1MiwxOC4xMTQsMTguMTE0LDAsMCwxLS4xLDIuNjU0LjcxMy43MTMsMCwwLDEtLjg5Mi42NTgsMjEuMSwyMS4xLDAsMCwxLC4wODItMi4yMjZBMS4zODMsMS4zODMsMCwwLDEsNy42MjgsMTMuMjMxWm0uMTc5LjgzMWMuMjY4LS4xMTIuMzE5LS40MTMuNDEyLS42NTRDNy44MiwxMy4zMTIsNy43NzUsMTMuNzgzLDcuODA3LDE0LjA2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTAuODIzLDE3LjA5NGExMy45MzQsMTMuOTM0LDAsMCwxLDQuNjEyLTEuOTY4Yy0uMDEuMDY4LS4wMjkuMjA2LS4wMzkuMjc0YTE0LjI3MywxNC4yNzMsMCwwLDAtNC40NzUsMS45MTQsMi42MjYsMi42MjYsMCwwLDEtLjY4MS4zNDNDMTAuMywxNy4zNTYsMTAuNiwxNy4yNDksMTAuODIzLDE3LjA5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNS4yNjQsMTcuNTlBNS4xNDQsNS4xNDQsMCwwLDEsOCwxNy4xYTEuNSwxLjUsMCwwLDEsMS4xNDIuNjY1QTYuODU0LDYuODU0LDAsMCwwLDcuNiwxNy4yNzhhNi45NjcsNi45NjcsMCwwLDAtMi40ODQuNTY0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NzgsMTcuNzI1YTkuNTksOS41OSwwLDAsMSwzLjYxLS41NjZjLjI0LjAyMS4zMjEuMi4zMTMuNDI0YTMuMjM4LDMuMjM4LDAsMCwwLTEuOTU2LS4wOSwyMS42ODgsMjEuNjg4LDAsMCwwLTIuNTU3LjY1OEM5Ljk5NSwxNy44MjksMTAuMzQ1LDE3LjgwOSwxMC41NzgsMTcuNzI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk05LjI2OCwxNy42NzZjLjE0OS0uMTc2LjUzMy0uMzMyLjY2NC0uMDYyYTEuMywxLjMsMCwwLDEtLjUxNi45OTNDOS4yNjgsMTguMzM3LDguOTczLDE3Ljk1Miw5LjI2OCwxNy42NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTUuNzQ0LDE4LjYyOWE1LjksNS45LDAsMCwxLDMuMTgyLS42MThjLS4xODIuMjM1LS40OTMuMTc4LS43NTEuMjA4YTUuNjYzLDUuNjYzLDAsMCwwLTEuNzIuMzNjLS4zNDQuMTI4LS42NjUuMzEtMS4wMi40MDlBLjYuNiwwLDAsMSw1Ljc0NCwxOC42MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTYuOSwxOS4xMTRhOS42NzYsOS42NzYsMCwwLDEsMi4yLS44NTRjLS4xLjMtLjQ0MS4zMzgtLjcuNDQ0YTcuODM5LDcuODM5LDAsMCwwLTIuNTY0LDEuNDE1QzUuOTM4LDE5LjU4NCw2LjQ4OCwxOS4zNjksNi45LDE5LjExNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjM1LDE5LjdhMy4xMSwzLjExLDAsMCwwLDEuOTEtMS4zODNjLjM0Ny0uMS4yNzMuMjc1LjI2LjQ5NGEyLjA1NiwyLjA1NiwwLDAsMS0uOTUsMS4wMzYsMTIuMzY1LDEyLjM2NSwwLDAsMS0xLjgyNyw2LjQxOUEyLjM0MiwyLjM0MiwwLDAsMSw4Ljg3OSwyNy41YTIuMjUxLDIuMjUxLDAsMCwxLTEuNTM1LTEuNDksMTAuODk0LDEwLjg5NCwwLDAsMS0uNjktNC42NjVjLS4xNTctLjExMi0uMzY5LS4xNzktLjQ2LS4zNjItLjEzLS4yLjAxMS0uNDI1LjA0Ny0uNjMxLjE5LjE1MS4zNDUuMzkyLjYwNi40MmEzLjYxNywzLjYxNywwLDAsMCwxLjg2My0uNCwxLjU4OCwxLjU4OCwwLDAsMCwuNzA5LS42NjIsMy44ODEsMy44ODEsMCwwLDAsLjQzMS4yNjZBNC4yOCw0LjI4LDAsMCwwLDExLjYzNSwxOS43Wm0tMi4yLjgzNWE0LjEzMiw0LjEzMiwwLDAsMS0yLjQ2Mi44MDksMTEuMDQ5LDExLjA0OSwwLDAsMCwuMzU4LDMuNTI2LDMuMjI2LDMuMjI2LDAsMCwxLC45LTEuMjgyLDIuMDU1LDIuMDU1LDAsMCwxLDIuMy0uMiwyLjMsMi4zLDAsMCwxLC44ODQsMS4xNzIsMTQuNjU5LDE0LjY1OSwwLDAsMCwxLjAwNS00LjQ4OUE1LjE2Nyw1LjE2NywwLDAsMSw5LjQzNSwyMC41MzJabS0uMzI5LDMuMjZhMi4yNzMsMi4yNzMsMCwwLDAtMS41LDEuNDM0Yy0uMTIzLjI2OS4xLjUxNy4yMjUuNzM4LjMzMS40NjIuNzk1LDEsMS40MzEuODkzYTIuODY4LDIuODY4LDAsMCwwLDEuNzY5LTEuNkExLjYsMS42LDAsMCwwLDkuMTA2LDIzLjc5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz5cIixcblx0fSxcblx0XCJMdWFcIjoge1xuXHRcdGNvbG91cjogXCIjMDUwMDgwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuNSwzMGwtLjAxMS0uMzIxYy40LS4wMTQuOC0uMDQ1LDEuMTktLjA5NGwuMDM5LjMxOUMxNy4zMTIsMjkuOTUyLDE2LjksMjkuOTg0LDE2LjUsMzBabS0xLjIyMi0uMDExYy0uNC0uMDIxLS44MTQtLjA2MS0xLjIxNi0uMTE4bC4wNDUtLjMxOGMuMzkzLjA1NS43OTMuMDk0LDEuMTg4LjExNVpNMTguOTIsMjkuN2wtLjA2Ny0uMzE0Yy4zODctLjA4My43NzYtLjE4NCwxLjE1NS0uM2wuMDk0LjMwN0MxOS43MTQsMjkuNTExLDE5LjMxNiwyOS42MTUsMTguOTIsMjkuN1ptLTYuMDYzLS4wNTNjLS40LS4wOTEtLjc5MS0uMi0xLjE3Ny0uMzI2bC4xLS4zMDZjLjM3Ny4xMjIuNzY0LjIzLDEuMTUuMzE5Wm04LjQtLjY2NS0uMTIxLS4zYy4zNjQtLjE0OC43MjgtLjMxNCwxLjA4LS40OTNsLjAwNiwwLC4xNDUuMjg2LDAsMEMyMiwyOC42NjEsMjEuNjI2LDI4LjgzMSwyMS4yNTMsMjguOTgyWm0tMTAuNzE4LS4wODhjLS4zNzQtLjE1OC0uNzQ1LS4zMzUtMS4xLS41MjRsLjE1LS4yODRjLjM1LjE4Ni43MTMuMzU4LDEuMDc4LjUxMlptMTIuODkzLTEuMDIxLS4xNy0uMjczYy4zMzctLjIxLjY2OC0uNDM3Ljk4NC0uNjc1bC4xOTMuMjU3QzI0LjExMSwyNy40MjUsMjMuNzcyLDI3LjY1OCwyMy40MjgsMjcuODczWk04LjM3OSwyNy43NTFjLS4zNDEtLjIyLS42NzYtLjQ1OS0xLS43MDhsLjItLjI1M2MuMzEyLjI0My42NC40NzYuOTcyLjY5MVptMTctMS4zNDYtLjIxNS0uMjM5Yy4yOTQtLjI2NS41OC0uNTQ2Ljg1MS0uODM2bC4yMzUuMjE5QzI1Ljk3MiwyNS44NDYsMjUuNjc5LDI2LjEzNCwyNS4zNzgsMjYuNFpNNi40NTQsMjYuMjUyYy0uMy0uMjc2LS41ODUtLjU2OS0uODU2LS44N2wuMjM5LS4yMTVjLjI2NS4yOTQuNTQ3LjU4LjgzNi44NVpNMjcuMDQxLDI0LjYybC0uMjUzLS4yYy4yNDQtLjMxMi40NzYtLjYzOS42OTItLjk3MmwuMjcuMTc1QzI3LjUyOSwyMy45NjYsMjcuMjksMjQuMywyNy4wNDEsMjQuNjJaTTQuODIsMjQuNDM5Yy0uMjQ0LS4zMjQtLjQ3Ni0uNjYyLS42OTItMS4wMDdsLjI3Mi0uMTdjLjIxLjMzNy40MzguNjY4LjY3Ni45ODRabTIzLjU0Ny0xLjg2Ny0uMjg0LS4xNTFjLjE4Ni0uMzUuMzU4LS43MTMuNTEzLTEuMDc4bC4zLjEyNUMyOC43MzUsMjEuODQzLDI4LjU1OCwyMi4yMTQsMjguMzY4LDIyLjU3MlptLTI0Ljg0MS0uMi0uMDA2LS4wMTJjLS4xODMtLjM1OS0uMzUyLS43MjgtLjUtMS4xbC4zLS4xMjFjLjE0Ny4zNjIuMzEyLjcyNC40OTEsMS4wNzRsLjAwNi4wMTJaTTI5LjMyLDIwLjMyNWwtLjMwNi0uMWMuMTIyLS4zNzcuMjMtLjc2NC4zMTktMS4xNWwuMzEzLjA3MkMyOS41NTUsMTkuNTQzLDI5LjQ0NiwxOS45MzksMjkuMzIsMjAuMzI1Wk0yLjYwOCwyMC4xMDdjLS4xMi0uMzg4LS4yMjMtLjc4Ni0uMzA4LTEuMTgybC4zMTQtLjA2N2MuMDgzLjM4Ny4xODQuNzc2LjMsMS4xNTVaTTI5Ljg3LDE3Ljk0NmwtLjMxOC0uMDQ1Yy4wNTYtLjM5My4wOTQtLjc5My4xMTUtMS4xODhsLjMyMS4wMTdDMjkuOTY3LDE3LjEzNSwyOS45MjcsMTcuNTQ0LDI5Ljg3LDE3Ljk0NlpNMi4xLDE3LjcyYy0uMDUtLjQtLjA4Mi0uODEyLS4xLTEuMjE4bC4zMjEtLjAxMWMuMDE0LjQuMDQ2LjguMDk0LDEuMTlabTI3LjU4Mi0yLjJjLS4wMTQtLjQtLjA0NS0uOC0uMDkzLTEuMTlsLjMxOS0uMDM5Yy4wNDkuNC4wODIuODEzLjEsMS4yMThaTTIuMzMxLDE1LjMsMi4wMSwxNS4yOGMuMDIxLS40MDUuMDYxLS44MTQuMTE3LTEuMjE2bC4zMTguMDQ1QzIuMzksMTQuNSwyLjM1MiwxNC45LDIuMzMxLDE1LjNabTI3LjA1Ny0yLjE0NGMtLjA4My0uMzg3LS4xODQtLjc3Ni0uMy0xLjE1NUwyOS40LDExLjljLjExOS4zODguMjIzLjc4Ni4zMDcsMS4xODNaTTIuNjYzLDEyLjkzNGwtLjMxMy0uMDcyYy4wOTEtLjQuMi0uNzkxLjMyNi0xLjE3N2wuMzA2LjFDMi44NTksMTIuMTYxLDIuNzUyLDEyLjU0OCwyLjY2MywxMi45MzRabTI2LjAyNi0yLjA2MmMtLjE0OS0uMzY2LS4zMTUtLjczMi0uNS0xLjA4NmwuMjg2LS4xNDZjLjE4NS4zNjMuMzU1LjczNi41MDcsMS4xMTFaTTMuNCwxMC42NjVsLS4zLS4xMjVjLjE1OC0uMzc0LjMzNC0uNzQ1LjUyNC0xLjFsLjI4NC4xNUMzLjcyNCw5LjkzNywzLjU1MiwxMC4zLDMuNCwxMC42NjVaTTQuNTEzLDguNTU3bC0uMjctLjE3NGMuMjItLjM0MS40NTgtLjY3Ni43MDctMWwuMjU0LjJDNC45NjEsNy45LDQuNzI4LDguMjI0LDQuNTEzLDguNTU3Wk01Ljk3Nyw2LjY3NmwtLjIzNS0uMjE5Yy4yNzYtLjMuNTY5LS41ODUuODctLjg1N2wuMjE1LjIzOUM2LjUzMyw2LjEsNi4yNDcsNi4zODYsNS45NzcsNi42NzZabTEuNzctMS42LS4xOTMtLjI1N2MuMzIzLS4yNDQuNjYyLS40NzcsMS4wMDctLjY5MmwuMTcuMjcyQzguMzk0LDQuNjE0LDguMDYzLDQuODQxLDcuNzQ3LDUuMDc5Wm0xNS43MDUtLjU1OC0uMDE4LS4wMTIuMTc1LS4yNy4wMTguMDExWm0tMS4wNDctLjYxNmMtLjM1LS4xODYtLjcxMy0uMzU4LTEuMDc4LS41MTJsLjEyNS0uM2MuMzc0LjE1OC43NDUuMzM0LDEuMS41MjRaTTkuNzY5LDMuODE1bC0uMTQ2LS4yODYuMDE4LS4wMDljLjM1Ni0uMTgxLjcyNC0uMzQ5LDEuMDkzLS41bC4xMjEuM2MtLjM2MS4xNDctLjcyLjMxMS0xLjA2OC40ODhabTEwLjQ0LS44MzhjLS4zNzctLjEyMi0uNzY0LS4yMjktMS4xNTEtLjMxN2wuMDcyLS4zMTNjLjQuMDkxLjc5Mi4yLDEuMTc4LjMyNVptLTguMjI5LS4wNi0uMDk0LS4zMDdjLjM4OC0uMTE5Ljc4Ni0uMjIzLDEuMTgyLS4zMDhsLjA2Ny4zMTRDMTIuNzQ3LDIuNywxMi4zNTksMi44LDExLjk4LDIuOTE3Wm01LjktLjQ3M2MtLjM5My0uMDU1LS43OTMtLjA5Mi0xLjE4OC0uMTEzbC4wMTYtLjMyMWMuNDA1LjAyMS44MTQuMDU5LDEuMjE2LjExNVptLTMuNTcyLS4wMjYtLjA0LS4zMTljLjQtLjA1LjgxMi0uMDgzLDEuMjE4LS4xbC4wMTIuMzIxQzE1LjEwNiwyLjMzNywxNC43MDUsMi4zNjksMTQuMzEyLDIuNDE4WlxcXCIgc3R5bGU9XFxcImZpbGw6Z3JheVxcXCIvPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTUuOTk4XFxcIiByPVxcXCIxMC43MDhcXFwiIHN0eWxlPVxcXCJmaWxsOm5hdnlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC40MzVcXFwiIGN5PVxcXCIxMS41NjJcXFwiIHI9XFxcIjMuMTM2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjYuNzA4XFxcIiBjeT1cXFwiNS4yOVxcXCIgcj1cXFwiMy4xMzdcXFwiIHN0eWxlPVxcXCJmaWxsOm5hdnlcXFwiLz48cGF0aCBkPVxcXCJNMTMuMSwyMS4zNTJ2LS43OUg5LjYyOVYxNC4zMjZoLS45djcuMDI2SDEzLjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTE2LDIxLjM1MlYxNi4zaC0uOHYyLjc4NWMwLDEuMDMxLS41NCwxLjcwNi0xLjM3OCwxLjcwNkEuOTUuOTUsMCwwLDEsMTQuNywxOS44VjE2LjNoLS44djMuODE3YzAsLjgzOC42MjYsMS4zNzgsMS42MDksMS4zNzhhMS44NjMsMS44NjMsMCwwLDAsMS42ODctLjkyNXYuNzgxaC43MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNzkxLDIxLjMzM3YtLjYwN2EuNjY0LjY2NCwwLDAsMS0uMTczLjAxOWMtLjI3OSwwLS40MzQtLjE0NS0uNDM0LS40VjE3LjUzNmMwLS45LS42NTUtMS4zNzgtMS45LTEuMzc4LTEuMjI0LDAtMS45NzYuNDcyLTIuMDI0LDEuNjM4aC44MWMuMDY3LS42MTcuNDM0LS45LDEuMTg1LS45LjcyMywwLDEuMTI4LjI3LDEuMTI4Ljc1MnYuMjEyYzAsLjMzNy0uMi40ODItLjgzOC41NTlhNS43NjMsNS43NjMsMCwwLDAtMS42MTkuMzA4LDEuMzI3LDEuMzI3LDAsMCwwLS44ODcsMS4zMTFjMCwuOTE2LjYzNiwxLjQ1NSwxLjY1OCwxLjQ1NWEyLjM2MywyLjM2MywwLDAsMCwxLjcxNS0uNzQyLjg1NS44NTUsMCwwLDAsLjgyOS42NjUsMS45NjcsMS45NjcsMCwwLDAsLjU0OS0uMDg3bS0xLjQwNy0xLjcyNWExLjM2NiwxLjM2NiwwLDAsMS0xLjUxMywxLjE4NWMtLjYyNiwwLS45OTMtLjIyMi0uOTkzLS43NzEsMC0uNTMuMzU3LS43NjEsMS4yMTQtLjg4N2E0LDQsMCwwLDAsMS4yOTEtLjI3OXYuNzUyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTWFya2Rvd25cIjoge1xuXHRcdGNvbG91cjogXCIjNzU1ODM4XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjcuOTU1XFxcIiB3aWR0aD1cXFwiMjdcXFwiIGhlaWdodD1cXFwiMTYuMDkxXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojNzU1ODM4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwOSAyMC42MzYgNS45MDkgMTEuMzY0IDguNjM2IDExLjM2NCAxMS4zNjQgMTQuNzczIDE0LjA5MSAxMS4zNjQgMTYuODE4IDExLjM2NCAxNi44MTggMjAuNjM2IDE0LjA5MSAyMC42MzYgMTQuMDkxIDE1LjMxOCAxMS4zNjQgMTguNzI3IDguNjM2IDE1LjMxOCA4LjYzNiAyMC42MzYgNS45MDkgMjAuNjM2XFxcIiBzdHlsZT1cXFwiZmlsbDojNzU1ODM4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi45NTUgMjAuNjM2IDE4Ljg2NCAxNi4xMzYgMjEuNTkxIDE2LjEzNiAyMS41OTEgMTEuMzY0IDI0LjMxOCAxMS4zNjQgMjQuMzE4IDE2LjEzNiAyNy4wNDUgMTYuMTM2IDIyLjk1NSAyMC42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NTU4MzhcXFwiLz5cIixcblx0fSxcblx0XCJNQVRMQUJcIjoge1xuXHRcdGNvbG91cjogXCIjZWY2YzNlXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNi44MDNcXFwiIHkxPVxcXCIxNi42MzFcXFwiIHgyPVxcXCIxNS4wMTNcXFwiIHkyPVxcXCIyMi40MTFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzUxMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzUyM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNlxcXCIgc3RvcC1jb2xvcj1cXFwiIzUzNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY0NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzU2OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI5ZFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjkuNzFcXFwiIHkxPVxcXCIxOC45ODNcXFwiIHgyPVxcXCIxMS43MVxcXCIgeTI9XFxcIjE0LjU2M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wODFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMzNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTg5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGU1MjM5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2YwNmUzZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmYTgwNDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZlODY0M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhN2Y0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNlZjZjM2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODMzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGM0YzM3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjkxNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmMzYzM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF0bGFiPC90aXRsZT48cGF0aCBkPVxcXCJNMiwxNy41NWw3Ljk3LTMuMjJhMjAuNywyMC43LDAsMCwxLDIuNzItMi45NWMuNjYtLjM1LDEuOS0uMTYsNC4xNy0yLjk4LDIuMi0yLjc1LDIuOS01LjEsMy45My01LjEsMS42MywwLDIuODMsMy41Miw0LjY1LDguODVBMTE1LjYyOSwxMTUuNjI5LDAsMCwwLDMwLDI0LjEyYy0xLjktMS43Ny0zLjUyLTMuNjgtNS4zNy0zLjYzLTEuNzIuMDQtMy42MywyLjA4LTUuNzIsNC43LTEuNjYsMi4xLTMuODYsMy41NC00LjcyLDMuNTEsMCwwLTIuMjItNi4yOC00LjA4LTcuM2EyLjY0MSwyLjY0MSwwLDAsMC0yLjM5LjJMMiwxNy41NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM0OWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuOCw0LjAyYy0uNjcuOS0xLjQ4LDIuNTUtMi45NCw0LjM4LTIuMjcsMi44Mi0zLjUsMi42My00LjE3LDIuOThhMTkuNjc0LDE5LjY3NCwwLDAsMC0yLjcyLDIuOTVsMy4zLDIuNDFjMi44LTMuODIsNC4zLTcuOTYsNS40Ny0xMC42NEExMy41NzksMTMuNTc5LDAsMCwxLDE5LjgsNC4wMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjAuOCwzLjNjLTIuMTgsMC0zLjY3LDExLjQ4LTExLjcyLDE3Ljg5LDIuMjYtLjM3LDQuMjIsNS4yNCw1LjEyLDcuNTEsNC0uNjgsNy4yLTguMzMsMTAuNDMtOC4yMSwxLjg1LjA3LDMuNDcsMS44Niw1LjM3LDMuNjNDMjUuNjYsMTUsMjMuNjMsMy4zLDIwLjgsMy4zWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiJVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTUFYU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNjk2YlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE0LjQsNy41NjgsMjAuMjEyLDJINy4yNzNMNC44NDgsNy41MzZsOS41NTcuMDMyWk00Ljg0OCw3LjUzNmw2Ljg0NCwyLjZMMTQuNCw3LjU2OG0tLjAxMywzLjYyMi0yLjctMS4wNTNMNS4yNjMsMTYuMWw2LjI4Niw1LjgyMywyLjgwOC0xLjFMMTQuNCw3LjU2OG0wLDAsMTIuOCw4LjM3NkwyMC4yMTIsMk0yNy4yLDE1Ljk0NCwxNC4zOTEsMTEuMTltLS4wMzUsOS42MzYtLjAzMiwzLjY4NU0yMC4yMjgsMzBsLTguNjc5LTguMDczTDQuOCwyNC40NjQsNy4yNTcsMzBabTAsMEwyNy4yLDE1Ljk0NCwxNC4zMjUsMjQuNTEyTTI3LjIsMTUuOTQ0LDE0LjM1NywyMC44MjZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMxZDFkMWI7c3Ryb2tlLW1pdGVybGltaXQ6MjIuOTI1NTg0NzkzMDkwODI7c3Ryb2tlLXdpZHRoOjAuMDI4MzQ5OTk5MzM4Mzg4NDQzcHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM5MSAxMS4xOSAyNy4yIDE1Ljk0NCAxNC40MDUgNy41NjggMTQuMzkxIDExLjE5IDE0LjM5MSAxMS4xOVxcXCIgc3R5bGU9XFxcImZpbGw6IzE4MWIxNztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMiAxNS45NDQgMTQuMzU3IDIwLjgyNiAxNC4zMjUgMjQuNTA5IDE0LjMyNiAyNC41MTEgMjcuMiAxNS45NDQgMjcuMiAxNS45NDRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTFkMWE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQwNSA3LjU2OCAyNy4yIDE1Ljk0NCAyMC4yMTIgMiAxNC40MDUgNy41NjggMTQuNDA1IDcuNTY4XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1ZjVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNy4yIDE1Ljk0NCAxNC4zMjYgMjQuNTExIDIwLjIyOCAzMCAyNy4yIDE1Ljk0NCAyNy4yIDE1Ljk0NFxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDI0MjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAyNy4yIDE1Ljk0NCAxNC4zOTEgMTEuMTkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTUyO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zNTcgMjAuODI2IDE0LjM5MSAxMS4xOSAxMS42OTIgMTAuMTM3IDUuMjYzIDE2LjEwNCAxMS41NDkgMjEuOTI3IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjk2YjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNjkyIDEwLjEzNyAxNC4zOTEgMTEuMTkgMTQuNDA1IDcuNTY4IDExLjY5MiAxMC4xMzcgMTEuNjkyIDEwLjEzN1xcXCIgc3R5bGU9XFxcImZpbGw6IzFiMjcyNTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAxMS41NDkgMjEuOTI3IDE0LjMyNSAyNC41MDkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMWMyNjI0O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zMjUgMjQuNTEyIDQuOCAyNC40NjQgNy4yNTcgMzAgMjAuMjI4IDMwIDE0LjMyNiAyNC41MTEgMTQuMzI1IDI0LjUxMiAxNC4zMjUgMjQuNTEyXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NDY2O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0Ljg0OCA3LjUzNiAxNC40MDUgNy41NjggMjAuMjEyIDIgNy4yNzMgMiA0Ljg0OCA3LjUzNiA0Ljg0OCA3LjUzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzY3YTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuNDA1IDcuNTY4IDQuODQ4IDcuNTM2IDExLjY5MiAxMC4xMzcgMTQuNDA1IDcuNTY4IDE0LjQwNSA3LjU2OFxcXCIgc3R5bGU9XFxcImZpbGw6IzFlMzkzODtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNTQ5IDIxLjkyNyA0LjggMjQuNDY0IDE0LjMyNSAyNC41MTIgMTQuMzI1IDI0LjUwOSAxMS41NDkgMjEuOTI3IDExLjU0OSAyMS45MjdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDMwMmU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJNRUxcIjoge1xuXHRcdGNvbG91cjogXCIjMDZhMGEyXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjExLjM0OFxcXCIgeTE9XFxcIi02Ny40ODhcXFwiIHgyPVxcXCItNjAwLjI3MlxcXCIgeTI9XFxcIi02NS4zMzVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwZjYwNjdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA1YWJhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzU4YmVjNFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTYwMy41OTRcXFwiIHkxPVxcXCItNzcuNjk5XFxcIiB4Mj1cXFwiLTYwMi4wMTFcXFwiIHkyPVxcXCItNTkuNjA0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTE3YzgzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMyMWI1YjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZWQ0ZDRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02MTIuNzU3XFxcIiB5MT1cXFwiLTU5LjkwNlxcXCIgeDI9XFxcIi02MTYuOTM0XFxcIiB5Mj1cXFwiLTcyLjc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWFjY2QzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM3MmFlYjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzMTdkN2ZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi02MjEuODUxXFxcIiB5MT1cXFwiLTc0LjU3OVxcXCIgeDI9XFxcIi02MTQuODRcXFwiIHkyPVxcXCItNzIuMzAxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjE2MjZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMxNTdjODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwM2EzYTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi02MTYuMzY5XFxcIiB5MT1cXFwiLTY0LjQ2OVxcXCIgeDI9XFxcIi02MjUuMzRcXFwiIHkyPVxcXCItNzIuODM1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGI3YzgxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwNjhkOTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNmIxYjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIi02MDguMDcyXFxcIiB5MT1cXFwiLTc0LjY3OFxcXCIgeDI9XFxcIi02MDMuNDg4XFxcIiB5Mj1cXFwiLTcwLjk2NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzBhOGE4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMGY3YzgyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWE1OTY0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNjAxLjEzNFxcXCIgeTE9XFxcIi03MC4xMTNcXFwiIHgyPVxcXCItNjA2LjAwOFxcXCIgeTI9XFxcIi02Ny4wNjdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyNTZhNzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBkOTQ5OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA2YTBhMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF5YTwvdGl0bGU+PHBhdGggZD1cXFwiTTIxLjYsMy40NjJIMzBMMTguNzY3LDI0LjIxMXMtMS44OTMtNS41LTIuNzA2LTcuNDU5XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY2OSwyOS4xMThIMzBWMy40NjJDMjkuOTk1LDE2Ljg2OSwyNC4zNiwyOS4xMTgsMjMuNjY5LDI5LjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTguNzY3LDI0LjIxMUgxMy41NDFMMiwzLjQ2MmMyLjA0Ny0uMjYsNi4xMzUtLjYxMSw4LjE2LS43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTguNjkzLDE2LjAxOUM2Ljk2LDIyLjg2NiwxLjk5NSwyOS4zMiwyLDI5LjMxNGM1Ljc1MiwwLDYuOTkxLS44MzUsNi45OTEtMS4yNzZWMTYuNTRDOC44OSwxNi4zNyw4Ljc5NCwxNi4xOTQsOC42OTMsMTYuMDE5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDMuNDYyVjI5LjMxNGMzLjE0Ny01LjIsNC45ODEtOC42LDYuNi0xMy40NUM0LjYsOC43OTQsMiwzLjQ2MiwyLDMuNDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjIzLjIzMyAyOC4xMDIgMjMuNjY5IDI5LjExOCAyMy42NjkgMTUuNjQ3IDIzLjIzMyAxNi4zNzVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ3LDE1LjY3M3YxMy40bC4wMTYuMDQzYy40NTIsMCw2LjMzMi0xNC41LDYuMzMyLTI1LjY1NkMyOS45OTUsMy40NjIsMjYuNDA2LDEwLjk0NywyMy42NDcsMTUuNjczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPlwiLFxuXHR9LFxuXHRcIk1vbmdvREJcIjoge1xuXHRcdGNvbG91cjogXCIjNDFhMjQ3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjQ1LjczMlxcXCIgeTE9XFxcIjgzOS4xODhcXFwiIHgyPVxcXCItNjU0LjU5XFxcIiB5Mj1cXFwiODM5LjI1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTk5ODc1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzliOTk3N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42ODNcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDlmN2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzY4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTlhODg5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I3YjY5YVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNjOWM3YjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTQ4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGVkZGNiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y4ZjZlYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiZjllZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTY0NC4yODdcXFwiIHkxPVxcXCI4MjMuNDA1XFxcIiB4Mj1cXFwiLTY1Ny4wMjhcXFwiIHkyPVxcXCI4NDUuNDc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM0OGE1NDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZjkxNDNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02NDMuMzg2XFxcIiB5MT1cXFwiODM5LjQ4NVxcXCIgeDI9XFxcIi02NTIuNDE4XFxcIiB5Mj1cXFwiODMzLjQxN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDFhMjQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzRiYTc0YlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45NTZcXFwiIHN0b3AtY29sb3I9XFxcIiM2N2I1NTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2OWI2NTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX21vbmdvPC90aXRsZT48cGF0aCBkPVxcXCJNMTYuNjIsMzBsLS43NTEtLjI0OXMuMS0zLjgtMS4yNzUtNC4wNjdjLS45LTEuMDQ4LjEzMy00NC43NDEsMy40MjMtLjE0OWEyLjcxMiwyLjcxMiwwLDAsMC0xLjMzMywxLjUyM0ExNC4xLDE0LjEsMCwwLDAsMTYuNjIsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjAyNiwyNi4zMjlhMTMuMjIzLDEzLjIyMywwLDAsMCw1LTEzLjIyNUMyMC41NTYsNi42MTksMTcuMDc1LDQuNDg3LDE2LjcsMy42NzNhOS43OTIsOS43OTIsMCwwLDEtLjgyNS0xLjZsLjI3NywxOC4wNjlTMTUuNTc4LDI1LjY2NCwxNy4wMjYsMjYuMzI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40ODcsMjYuNTY5UzkuMzY2LDIyLjQsOS43MiwxNS4wMjVBMTUuNTQsMTUuNTQsMCwwLDEsMTUuMjM5LDMuMzc3LDEuNzI1LDEuNzI1LDAsMCwwLDE1Ljg0NiwyYy4zODEuODIuMzE5LDEyLjI0My4zNTksMTMuNTc5QzE2LjM2LDIwLjc3NiwxNS45MTYsMjUuNTg4LDE1LjQ4NywyNi41NjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+XCIsXG5cdH0sXG5cdFwibmdpbnhcIjoge1xuXHRcdGNvbG91cjogXCIjMDE5NjM5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTUuOTQ4LDJoLjA2NWExMC40MTgsMTAuNDE4LDAsMCwxLC45NzIuNTI4UTIyLjQxNCw1LjY1LDI3Ljg0Myw4Ljc3NGEuNzkyLjc5MiwwLDAsMSwuNDE0Ljc4OGMtLjAwOCw0LjM4OSwwLDguNzc3LS4wMDUsMTMuMTY0YS44MTMuODEzLDAsMCwxLS4zNTYuNTA3cS01Ljc3MywzLjMyNC0xMS41NDcsNi42NDRhLjU4Ny41ODcsMCwwLDEtLjY1Ny4wMzdROS45MTIsMjYuNiw0LjE0MywyMy4yNzRhLjcuNywwLDAsMS0uNC0uNjY2cTAtNi41ODIsMC0xMy4xNjNhLjY5My42OTMsMCwwLDEsLjM4Ny0uNjdROS41NTIsNS42NTcsMTQuOTc0LDIuNTM1Yy4zMjItLjE4NC42MzgtLjM3OS45NzQtLjUzNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAxOTYzOVxcXCIvPjxwYXRoIGQ9XFxcIk04Ljc2NywxMC41MzhxMCw1LjQyOSwwLDEwLjg1OWExLjUwOSwxLjUwOSwwLDAsMCwuNDI3LDEuMDg3LDEuNjQ3LDEuNjQ3LDAsMCwwLDIuMDYuMjA2LDEuNTY0LDEuNTY0LDAsMCwwLC42ODUtMS4yOTNjMC0yLjYyLS4wMDUtNS4yNCwwLTcuODZxMy41ODMsNC4yOSw3LjE4MSw4LjU2OGEyLjgzMywyLjgzMywwLDAsMCwyLjYuNzgyLDEuNTYxLDEuNTYxLDAsMCwwLDEuMjUxLTEuMzcxcS4wMDgtNS41NDEsMC0xMS4wODFhMS41ODIsMS41ODIsMCwwLDAtMy4xNTIsMGMwLDIuNjYyLS4wMTYsNS4zMjEsMCw3Ljk4Mi0yLjM0Ni0yLjc2Ni00LjY2My01LjU1Ni03LTguMzMyQTIuODE3LDIuODE3LDAsMCwwLDEwLjE3LDkuMDMzLDEuNTc5LDEuNTc5LDAsMCwwLDguNzY3LDEwLjUzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJOaW1cIjoge1xuXHRcdGNvbG91cjogXCIjZmZlOTUzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuMTExLDYuNDA1cy0xLjA3My44NDctMi4xNjcsMS42OWExNS4zNjEsMTUuMzYxLDAsMCwwLTQuNTI3LjY1MWMtMS4xLS43LTIuMDctMS40NjktMi4wNy0xLjQ2OVM2LjUyLDguNyw2LDkuNTM1YTExLjM4MiwxMS4zODIsMCwwLDAtMi4yMzYsMS40ODJDMi45NjEsMTAuNywyLjAzLDEwLjMxLDIsMTAuM2MxLjA2MywyLjE0NSwxLjc3OCw0LjI5MiwzLjcyMiw1LjU4MywzLjEtNC44ODksMTcuNDgtNC40MzksMjAuNjM5LS4wMjhDMjguNCwxNC43ODcsMjkuMiwxMi41LDMwLDEwLjM4Yy0uMDg4LjAyOS0xLjE4MS4zOTUtMS44ODkuNjY1YTExLjQ4OSwxMS40ODksMCwwLDAtMS45ODYtMS41MWMtLjUzNy0uOTg0LTEuMzE5LTIuMzEzLTEuMzE5LTIuMzEzcy0uOTI3LjY4OS0yLDEuNDRhMjEuMjY1LDIxLjI2NSwwLDAsMC00LjY4MS0uNTEyYy0xLS44MjYtMi4wMTQtMS43NDYtMi4wMTQtMS43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTMuMSwxNC44NTRsMi41NTQsNi4xODVjNC40MzUsNS44NSwxNS43NTksNi4yNTcsMjAuNy4xMTMsMS4xNjgtMi42MzMsMi43NDUtNi4zMzMsMi43NDUtNi4zMzNhMTMuMzc5LDEzLjM3OSwwLDAsMS00LjYsMy44NjksMTIuMjE3LDEyLjIxNywwLDAsMS0yLjk4My43OTNsLTUuNDY1LTIuODMyLTUuNSwyLjc3NWExNS42NzksMTUuNjc5LDAsMCwxLTIuOTgzLS43NjRBMTQuMDc2LDE0LjA3NiwwLDAsMSwzLjEsMTQuODU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTk1M1xcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiI1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTml4XCI6IHtcblx0XHRjb2xvdXI6IFwiIzUyNzdjM1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEzLDExLjExNSw2LjE4MywyMy43Niw0LjU5LDIwLjg3bDEuODM5LTMuMzg3LTMuNjUxLS4wMUwyLDE2LjAyOWwuOC0xLjQ3Nyw1LjIuMDE4LDEuODY4LTMuNDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMy41MjcsMjEuMjIzaDEzLjY0bC0xLjU0MSwyLjkyMi0zLjY1OC0uMDExLDEuODE3LDMuMzg5LS43NzksMS40NDktMS41OTMsMC0yLjU4NC00LjgyNS0zLjcyMi0uMDA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS40NjcsMTUuNjgyLDE0LjY0NywzLjAzN2wzLjEzNC0uMDMyTDE5LjYsNi40bDEuODM0LTMuMzc5aDEuNTU3TDIzLjc4Niw0LjUsMjEuMTc0LDkuMzA3bDEuODU0LDMuNDU1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NDIsMTYuMzI0bDYuODIxLDEyLjY0NUwxNC4yMjksMjlsLTEuODIxLTMuNC0xLjgzNCwzLjM4SDkuMDE2bC0uOC0xLjQ3NkwxMC44MzEsMjIuNyw4Ljk3NiwxOS4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE4LjQ2NCwxMC43NTFINC44MjNMNi4zNjUsNy44MjlsMy42NTguMDExTDguMjA3LDQuNDUxLDguOTg2LDNsMS41OTIsMCwyLjU4NCw0LjgyNSwzLjcyMi4wMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LDIwLjg4OCwyNS44MTcsOC4yNDRsMS41OTMsMi44OUwyNS41NzEsMTQuNTJsMy42NTEuMDFMMzAsMTUuOTc5bC0uOCwxLjQ3Ny01LjItLjAxOC0xLjg2OCwzLjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1Mjc3YzM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJOU0lTXCI6IHtcblx0XHRjb2xvdXI6IFwiI2E0MmQyNlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI3LjQzNSwxNi4wMzcsMjIuMDEyLDIxLjQ2bDUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1NzdiXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljg4NCwxNS41SDE2LjA0OGw1LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzlhYVxcXCIvPjxwYXRoIGQ9XFxcIk0yNi44ODQsMTQuNzEyLDIxLjQ2MSw5LjI4OWwtNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDk2ZDNcXFwiLz48cGF0aCBkPVxcXCJNMjAuNTI4LDkuMTMxSDkuNjgzbDUuNDIzLDUuNDIzTTI3LjQzNSwzLjMyNSwyMi4wMTIsOC43NDhsNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMWIwZjBcXFwiLz48cGF0aCBkPVxcXCJNMjAuNTI4LDguMzU2LDE1LjEwNSwyLjkzMyw5LjY4Myw4LjM1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzI3YmNmM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xNzIsMi43NzVIMy4zMjdMOC43NDksOC4yXFxcIiBzdHlsZT1cXFwiZmlsbDojNGZjOWY1XFxcIi8+PHBhdGggZD1cXFwiTTQuNTY4LDE1Ljk2Myw5Ljk5MSwxMC41NCw0LjU2OCw1LjExN1xcXCIgc3R5bGU9XFxcImZpbGw6Izc5MjAxYlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NDEsMTEuMDkxLDUuMTE5LDE2LjUxM0gxNS45NjRcXFwiIHN0eWxlPVxcXCJmaWxsOiNhNDJkMjZcXFwiLz48cGF0aCBkPVxcXCJNNS4xMTksMTcuMjg4bDUuNDIzLDUuNDIzLDUuNDIzLTUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojY2MzODJmXFxcIi8+PHBhdGggZD1cXFwiTTQuNTY4LDE3LjgyOVYyOC42NzVsNS40MjMtNS40MjNMOC40LDIxLjY2NW0xMy45MTYsMS4yTDE2LjksMTcuNDQ3bC01LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2YwNDUzZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS40NzUsMjMuNjQ0LDE2LjksMjkuMDY3bDUuNDIzLTUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZjI2MjVkXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljg0LDI5LjIyNUgyOC42ODVMMjMuMjYzLDIzLjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNDdmN2RcXFwiLz48cGF0aCBkPVxcXCJNMjkuODg5LDI5LjMzN2wtMS42OC0xLjY4VjIuMzkyYS4zNzQuMzc0LDAsMCwwLS4yNDMtLjM1NUEuMjYzLjI2MywwLDAsMCwyNy44MjcsMmEuMzU5LjM1OSwwLDAsMC0uMjcxLjExMkwyMS40NzEsOC4yLDE1LjM4NSwyLjExMiwxNS4zLDIuMDM3aC0uMDM3QS4zMDcuMzA3LDAsMCwwLDE1LjEwNSwySDIuNGEuNDM0LjQzNCwwLDAsMC0uMjg5LjExMkEuMzguMzgsMCwwLDAsMiwyLjM5MmEuMzU5LjM1OSwwLDAsMCwuMTEyLjI3MWwxLjY4LDEuNjhWMjkuNjE3YS4zNzQuMzc0LDAsMCwwLC4yNDMuMzU1QS4zODcuMzg3LDAsMCwwLDQuMTg1LDMwYS4zNTkuMzU5LDAsMCwwLC4yNzEtLjExMkwxMC41NDEsMjMuOGw2LjA4NSw2LjA4NS4wODQuMDc1aC4wMzdBLjI1NC4yNTQsMCwwLDAsMTYuOSwzMEgyOS42MDlhLjM5NS4zOTUsMCwwLDAsLjI4LS42NjNaTTI3LjQzNSwzLjMyNVYxNC4xNzFMMjIuMDEyLDguNzQ4bDUuNDIzLTUuNDIzWk05Ljk5MSwxMC41NCw0LjU2OCwxNS45NjNWNS4xMTdMOS45OTEsMTAuNTRaTTkuNjgzLDkuMTMxSDIwLjUyOGwtNS40MjMsNS40MjNMOS42ODMsOS4xMzFabS44NTksMS45Niw1LjQyMyw1LjQyM0g1LjExOWw1LjQyMy01LjQyM1pNMTYuOSwxNy40NDdsNS40MjMsNS40MjNIMTEuNDc1TDE2LjksMTcuNDQ3Wk0xNi4wNDgsMTUuNUgyNi44OTNsLTUuNDIzLDUuNDIzTDE2LjA0OCwxNS41Wm01Ljk2NCw1Ljk2NCw1LjQyMy01LjQyM1YyNi44ODNMMjIuMDEyLDIxLjQ2Wm00Ljg3Mi02Ljc0OEgxNi4wNDhsNS40MjMtNS40MjMsNS40MTMsNS40MjNaTTIwLjUyOCw4LjM1Nkg5LjY4M2w1LjQyMy01LjQyMyw1LjQyMyw1LjQyM1pNMy4zMjcsMi43NzVIMTQuMTcyTDguNzQ5LDguMlptMS4yNDEsMjUuOVYxNy44MjlMOC40LDIxLjY2NWwxLjU4NywxLjU4N0w0LjU2OCwyOC42NzVabS41NTEtMTEuMzg3SDE1Ljk2NGwtNS40MjMsNS40MjNMNS4xMTksMTcuMjg4Wk0xNi45LDI5LjA2N2wtNS40MjMtNS40MjNIMjIuMzJMMTYuOSwyOS4wNjdabS45NDMuMTU5TDIzLjI2MywyMy44bDUuNDIzLDUuNDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ2NDA0OVxcXCIvPlwiLFxuXHR9LFxuXHRcIk9iamVjdCBQYXNjYWxcIjoge1xuXHRcdGNvbG91cjogXCIjRkY2MzQ0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIi0wLjQ0M1xcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMjIuMDQyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAyMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmMGMxNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzlhMGMwZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZGVscGhpPC90aXRsZT48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NDUsMTYuMjQzSDQuOTI0YS45MTQuOTE0LDAsMCwwLTEuMDkyLjgycS4wMzMuNDI5LjEuODQ5YTEyLjQsMTIuNCwwLDAsMCwyNC41MzIsMHEuMDc1LS41LjEwOC0xLjAyMUMyOC40NzgsMTYuNTIzLDI4LjIxMSwxNi4yMDcsMjcuNTQ1LDE2LjI0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjY0NDNcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxOC40OCAxMS42NCAyMy43MDcgNy4yNjYgMTkuNzg3IDUuODggMTYgMTEuMDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTUuNjggMTEuMDI2IDE4LjY0IDUuODggMTQuODUzIDUuODggMTMuMzA3IDExLjI5M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEzLjA0IDExLjM3MyAxMy42IDYuNzA2IDEwLjU4NyA3Ljk2IDExLjAxMyAxMi43NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEwLjc0NyAxMyA5Ljc4NyA4Ljc2IDcuNzA3IDEwLjg0IDkuNjUzIDE0LjY4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4zODcgMTUuMDUzIDcuNDkzIDEyLjM3NiA2LjY0IDE0LjQ2NiA5LjA0IDE2LjUxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMDQgMTYuNzU3IDYuNjQgMTUuMjEzIDYuNDggMTcuNCA5LjIgMTguMzMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4yMjcgMTguODQ2IDYuNjQgMTguMDQgNy4yMjcgMTkuOCA5LjU0NyAxOS44XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS43MDcgMjAuMDkzIDcuNzA3IDIwLjM4NiA4LjYyNyAyMS43NDYgMTAuMjY3IDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTIwLjAyMywxMy4wODlhNi42MSw2LjYxLDAsMCwwLTQuNTMtMkE2LjI5Myw2LjI5MywwLDAsMCwxMS4zLDIyLjA3bDQuOTQxLjEyOS0yLjA4LTQuMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjUsMjIuMzY2bC01LjI2Ny0uMTM4LS4wNDQtLjAzOWE2LjQ1Myw2LjQ1MywwLDAsMSw0LjMtMTEuMjY0LDYuNzg3LDYuNzg3LDAsMCwxLDQuNjQzLDIuMDVsLjEyMy4xMjMtNS45LDQuOTgyWm0tNS4xNC0uNDU1LDQuNjE2LjEyMUwxMy45NjEsMThsNS44MjUtNC45MTlhNi40Myw2LjQzLDAsMCwwLTQuMjkyLTEuODM1LDYuMTMzLDYuMTMzLDAsMCwwLTQuMTMxLDEwLjY2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDEzLDIwLjQ5M2MtNC4xNzMtNS44MTMsMi4xMDktOC4xNzIsMi40NzgtOC40NTMuNDUxLS4zNDQtNy41OSwxLjc4NS0zLjIyNiw4Ljg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwNGUzMTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzIgMTIuNiAxMy41MiAxNy41NjcgMTMuNzMzIDE4LjU3MyAyMS40NjcgMTcuMDI2IDIwLjcyIDEyLjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjEsMTguNzYxLDEzLjM0MSwxNy41bDcuNDk1LTUuMTcuODE0LDQuODI4Wm0uMDg5LTEuMTIzLjE1OC43NDdMMjEuMjgzLDE2LjksMjAuNiwxMi44NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcyMywyMS4zMTljLTMuOTMtLjY2OC00LjI4My40MjgtNC4yODMuNDI4TDEwLjI2NywyNC40NHMxLjEyLS45MDcsNS40OTMsMGwuNzYtMS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGQwYzEzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE0LjEyMiwyMS42Yy0uMDItLjItMS4xLS4zMTktMS42NzctLjEyMy0uNzMyLjI0OS0xLjIxOSwxLjE0Mi0xLjA0NSwxLjIxM2ExLjk3NSwxLjk3NSwwLDAsMSwxLjEyNS0uOTg2QzEzLjQ0NywyMS40OTMsMTQuMTQyLDIxLjgsMTQuMTIyLDIxLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2ZTRmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE1LjUyLDE4LjYwNmExMS4xLDExLjEsMCwwLDAsMS41NDcsMS40ODcsNi45LDYuOSwwLDAsMSwyLjcyLDQuMTA3Yy0uMTA3LDEuMDY3LTEuOTczLDEuNzYtMS45NzMsMS43NmwtMy4zMDctNy4xOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE3LjczLDI2LjE2MWwtMy40NTctNy41MjEsMS4zMi0uMjA4LjA1Ny4wODFhMTAuODY5LDEwLjg2OSwwLDAsMCwxLjUxMiwxLjQ1MSw3LDcsMCwwLDEsMi43ODIsNC4yMDdsMCwuMDIyLDAsLjAyMmMtLjExNSwxLjE1My0yLDEuODY0LTIuMDc3LDEuODk0Wm0tMi45OS03LjI3LDMuMTU1LDYuODYzYy40MTQtLjE3OCwxLjYzLS43NjMsMS43My0xLjU0OGE2Ljc5Myw2Ljc5MywwLDAsMC0yLjY0OC0zLjk4MWwtLjAxLS4wMDdhMTEuOTQsMTEuOTQsMCwwLDEtMS41MTctMS40MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTI4LDEyLjc0MmMuMDI1LjM5NC4wMzQuNzkyLjAyNSwxLjE5NGExMy45NDYsMTMuOTQ2LDAsMCwxLTE5LjksMTIuM0ExMi44NiwxMi44NiwwLDAsMCwyOCwxMi43NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO2ZpbGwtcnVsZTpldmVub2RkO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTIuMzgzLDEzLjg5M0ExMy45NDEsMTMuOTQxLDAsMCwxLDI1LjcsNS44M3MtNS4wMDksNS45NzktMTAuNTg0LDcuOTA3UzIuMzgzLDEzLjg5MywyLjM4MywxMy44OTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTMuNjE4LDE4LjY5NGMtLjA0NC0uMzkyLS4wNzItLjc5LS4wODMtMS4xOTFDMy4zMjksOS44MDcsMTAuMDEyLDQuMiwxNy43MDgsMy45OTFhMTQuMiwxNC4yLDAsMCwxLDUuNzE5LDEuNDU4LDEzLjEyOCwxMy4xMjgsMCwwLDAtNy4xODgtMi4zNjljLTcuMS4xOS0xMy4zMDYsNS4zLTEzLjExNiwxMi40QTEyLjg3MywxMi44NzMsMCwwLDAsMy42MTgsMTguNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPlwiLFxuXHR9LFxuXHRcIk9iamVjdGl2ZS1DXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MyYzJjMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTExLjI5LDE1Ljk3NmE4Ljg5Miw4Ljg5MiwwLDAsMCwxLjAzOSw0LjU1Nyw0LjgxOCw0LjgxOCwwLDAsMCw1LjU3OSwyLjEzLDMuNzg5LDMuNzg5LDAsMCwwLDIuNzM0LTMuMTgxYy4wOTUtLjUzNS4xLS41NC4xLS41NCwxLjUzNy4yMjIsNC4wMTQuNTgyLDUuNTUuOGwtLjEuMzg5QTkuOTU4LDkuOTU4LDAsMCwxLDIzLjgsMjQuOWE4LjM1LDguMzUsMCwwLDEtNC43NDcsMi4zNzgsMTIuOTI1LDEyLjkyNSwwLDAsMS03LjMyMi0uNzI1LDguOTgsOC45OCwwLDAsMS01LjEwNi01LjUyNEExNC4zNTMsMTQuMzUzLDAsMCwxLDYuNjQyLDEwLjlhOS4zMjMsOS4zMjMsMCwwLDEsNy45MjktNi4yNCwxMS44MTIsMTEuODEyLDAsMCwxLDUuOS40OTEsOC40NjcsOC40NjcsMCwwLDEsNS40NTYsNi4xYy4wODMuMzExLjEuMzY5LjEuMzY5LTEuNzA5LjMxMS0zLjgyMS43MDUtNS41MTgsMS4wNzVDMjAuMTg2LDExLDE5LjM4Nyw5LjY2NiwxNy42NzgsOS4yNWE0LjY1Niw0LjY1NiwwLDAsMC01Ljg1MywzLjE1OCw5LjI4LDkuMjgsMCwwLDAtLjM0MSwxLjI3M0ExMC44OSwxMC44OSwwLDAsMCwxMS4yOSwxNS45NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjAzMyAzMCAyLjAzMyAyIDcuOTY3IDIgNy45NjcgNC4yMjcgNC43MjMgNC4yMjcgNC43MjMgMjcuNzczIDcuOTY3IDI3Ljc3MyA3Ljk2NyAzMCAyLjAzMyAzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuOTY3IDI5Ljk5OSAyNC4wMzMgMjkuOTk5IDI0LjAzMyAyNy43NzEgMjcuMjc3IDI3Ljc3MSAyNy4yNzcgNC4yMjYgMjQuMDMzIDQuMjI2IDI0LjAzMyAxLjk5OSAyOS45NjcgMS45OTkgMjkuOTY3IDI5Ljk5OVxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIk9DYW1sXCI6IHtcblx0XHRjb2xvdXI6IFwiI2YyOTEwNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTc0NS42MjNcXFwiIHkxPVxcXCItOTIuNzZcXFwiIHgyPVxcXCItNzQ1LjYyM1xcXCIgeTI9XFxcIi04NS4xMDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNzU4IDExMy4yOClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmMjkxMDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlYzY4MTNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi03NDEuOTlcXFwiIHkxPVxcXCItMTA5LjQ3N1xcXCIgeDI9XFxcIi03NDEuOTlcXFwiIHkyPVxcXCItODUuMDk5XFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi03NTIuMTExXFxcIiB5MT1cXFwiLTkzLjkxOFxcXCIgeDI9XFxcIi03NTIuMTExXFxcIiB5Mj1cXFwiLTg1LjI4NFxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9vY2FtbDwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LjU3MSwyNS4yNDZhNC4yOCw0LjI4LDAsMCwwLS4wMzktLjcwOWMtLjA1OS0uMi0uMi0uMjE3LS4zLS4zNzRhMy41MDcsMy41MDcsMCwwLDEtLjUzMi0xLjQ3N2MtLjAyLS40NTMtLjItLjg4Ni0uMjE3LTEuMzM5LS4wMi0uMjE3LjAyLS40NTMsMC0uNjY5YTEuOTYzLDEuOTYzLDAsMCwwLS4wMzktLjMxNSwxLjEzMywxLjEzMywwLDAsMC0uMDM5LS4ybC4wNTktLjEzOGEyLjcyLDIuNzIsMCwwLDEsLjY1LS4wMzljLjI1NiwwLC41MTIuMDIuNzY4LjAyYTcuOTYxLDcuOTYxLDAsMCwwLDEuNTM2LS4wNTksMy43MjIsMy43MjIsMCwwLDAsMS45NDktLjg0Nyw0Ljk0Niw0Ljk0NiwwLDAsMCwxLjUzNi0yLjAwOGMuMTc3LS4zOTQuMTc3LTEuMDgzLjU1MS0xLjQuNDMzLS4zNzQsMS4xODEtLjMzNSwxLjY5My0uNTcxYTEuMTg3LDEuMTg3LDAsMCwxLC44MDctLjEzOGMuMjE3LjAzOS42My4zMTUuNzI5LS4wNTktLjA3OS0uMDM5LS4xLS4xMzgtLjEzOC0uMTc3LjQxNC0uMDM5LDAtMS0uMTU4LTEuMkEyLjIyNSwyLjIyNSwwLDAsMCwyNC4yNSwxM2EzLjUwOSwzLjUwOSwwLDAsMC0xLjUzNi0uMjE3Yy0uODg2LjE3Ny0uODI3LS4zMzUtMS4zMzktLjMzNS0uNjMsMC0xLjczMy4wMzktMS45My42M2ExLjU0LDEuNTQsMCwwLDEtLjMzNS41MTJjLS4xMzguMTc3LjAyLjM1NC0uMDM5LjU3MS0uMDc5LjIxNy0uMTc3Ljk4NS0uMjc2LDEuMjYtLjE3Ny40NTMtLjM5NCwxLjAyNC0uNzg4LDEuMDI0YTMuMTUyLDMuMTUyLDAsMCwxLTEuNDM3LS4wNzljLS4yNzYtLjEtLjcyOS0uMjU2LS45NDUtLjMzNS0xLjAyNC0uNDMzLTEuMi0uOTA2LTEuMi0uOTA2YTMuMDI2LDMuMDI2LDAsMCwxLS41MTItLjg2NmMtLjExOC0uNDE0LS4zMTUtLjc2OC0uMzk0LTFzLS4zLS41OTEtLjQ1My0uOTg1YTIuNjY3LDIuNjY3LDAsMCwwLS43MDktMS4wNjNjLS4zMTUtLjI3Ni0uNjEtLjcyOS0xLjI2LS41OTFhMS42NDEsMS42NDEsMCwwLDAtLjg2Ni4zMTVjLS4yMTcuMTc3LS4zLjU3MS0uNDkyLjg4Ni0uMTE4LjE3Ny0uMzE1LjcwOS0uNTEyLDEuMTYyYTEuOTI5LDEuOTI5LDAsMCwxLS4zMzUuNjVjLS4xMTguMDc5LS4yNTYuMi0uNDE0LjEzOGEuOTI0LjkyNCwwLDAsMS0uMzE1LS4yLDUuMzM0LDUuMzM0LDAsMCwxLS43MDktMS4xMjIsMTEuMSwxMS4xLDAsMCwwLS43ODgtMS4yNDEsMS4wMTYsMS4wMTYsMCwwLDAtLjk4NS0uNTUxYy0xLjAyNCwwLTEuMS41NzEtMS41NTYsMS40MThhNS41NzQsNS41NzQsMCwwLDEtLjY2OSwxLjRjLS4yMzYuMjU2LS45NDUsMS4zMzktMS40NTcsMS41MTZIMnY3LjYyYy4wMzktLjEuMDU5LS4yLjEtLjI3Ni4yLS40MTQuNjUtLjgwNy45MDYtMS4yMjFhMy41LDMuNSwwLDAsMCwuMzc0LS43MDksMy43NDMsMy43NDMsMCwwLDEsLjIzNi0uNzA5Ljc5NC43OTQsMCwwLDEsLjU3MS0uMzM1Yy4zNTQtLjA1OS42NS40OTIsMS4wODMuNzA5LjIuMDc5LDEuMDYzLjM5NCwxLjMxOS40NTMuNDMzLjEuOTA2LjIsMS4zMzkuMjc2LjIzNi4wMzkuNDUzLjA3OS43MDkuMWE3LjMsNy4zLDAsMCwxLDEuMDgzLjEsMi4yNzcsMi4yNzcsMCwwLDAtLjgwNywxLjIyMWMtLjE1OC40MzMtLjI3Ni45MjUtLjQ3MywxLjMzOS0uMjE3LjQ3My0uNjY5LjY2OS0uNjEsMS4yMjFhMi42NjgsMi42NjgsMCwwLDEsLjAyLjY4OSw0LjAwOSw0LjAwOSwwLDAsMS0uMjE3LjY4OWMtLjEuMzE1LS4yMTcsMS4zNTktLjM1NCwxLjY3NGwuOTA2LS4xMThoMEExMC42OTIsMTAuNjkyLDAsMCwwLDguNCwyNi4zODhhMy43MzcsMy43MzcsMCwwLDEsLjcyOS0xLjI4Yy4zMzUtLjM3NC4zMTUtLjg0Ny41MTItMS4zYTEyLjQ4OCwxMi40ODgsMCwwLDEsLjc2OC0xLjNjLjQ5Mi0uODA3LjgwNy0xLjgxMiwxLjg1MS0yLjAyOGEzLjMsMy4zLDAsMCwxLDEuMDI0LjcwOSw0LjQ1Miw0LjQ1MiwwLDAsMSwuODg2LDEuMSwxMi44NTEsMTIuODUxLDAsMCwxLC44ODYsMi42NzgsMS4yMjcsMS4yMjcsMCwwLDAsLjM5NC43MDksNS40NjIsNS40NjIsMCwwLDEsLjQzMy43MjljLjA3OS4xNzcuMi41NzEuMy43ODhhNi4yNjcsNi4yNjcsMCwwLDEsLjMxNS44MjdsLjg0Ny0uMDJoLjAydi0uMDJBOS43NTQsOS43NTQsMCwwLDEsMTYuNTcxLDI1LjI0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYuMjE3LDI3LjIzNWMtLjEtLjItLjIxNy0uNjEtLjMtLjc4OGE1LjQ2Miw1LjQ2MiwwLDAsMC0uNDMzLS43MjksMS4xMTksMS4xMTksMCwwLDEtLjM5NC0uNzA5LDEyLjQ4NywxMi40ODcsMCwwLDAtLjg4Ni0yLjY3OCw0LjQ1Miw0LjQ1MiwwLDAsMC0uODg2LTEuMSwzLjMsMy4zLDAsMCwwLTEuMDI0LS43MDljLTEuMDQ0LjItMS4zNTksMS4yMjEtMS44NTEsMi4wMjhhMTIuNDg4LDEyLjQ4OCwwLDAsMC0uNzY4LDEuM2MtLjIuNDMzLS4xNzcuOTI1LS41MTIsMS4zYTMuNDQzLDMuNDQzLDAsMCwwLS43MjksMS4yOGMtLjAzOS4xLS4xMTgsMS4wODMtLjIxNywxLjMxOWgwbDEuNTM2LS4xYzEuNDM3LjEsMS4wMjQuNjUsMy4yNDkuNTMybDMuNTI1LS4xMThoMEE2LjI2Nyw2LjI2NywwLDAsMCwxNi4yMTcsMjcuMjM1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNi40NTYsMy44SDUuNTQ0QTMuNTIxLDMuNTIxLDAsMCwwLDIuMDIsNy4zMjh2Ny42NzloMGMuNTEyLS4xNzcsMS4yMjEtMS4yNiwxLjQ1Ny0xLjUxNmE1LjkxMyw1LjkxMywwLDAsMCwuNjY5LTEuNGMuNDUzLS44MjcuNTMyLTEuNDE4LDEuNTU2LTEuNDE4YTEuMDE2LDEuMDE2LDAsMCwxLC45ODUuNTUxLDkuNTQ3LDkuNTQ3LDAsMCwxLC43ODgsMS4yNDEsNC44NDksNC44NDksMCwwLDAsLjcwOSwxLjEyMiwyLDIsMCwwLDAsLjMxNS4yYy4xNTguMDU5LjMtLjA1OS40MTQtLjEzOEExLjkyOSwxLjkyOSwwLDAsMCw5LjI0NiwxM2MuMi0uNDUzLjM5NC0uOTY1LjUxMi0xLjE2Mi4yLS4zMTUuMjc2LS43MDkuNDkyLS44ODZhMS41OSwxLjU5LDAsMCwxLC44NjYtLjMxNWMuNjUtLjEzOC45NDUuMzE1LDEuMjYuNTkxYTMuMjg1LDMuMjg1LDAsMCwxLC43MDksMS4wNjNjLjE1OC4zOTQuMzU0Ljc2OC40NTMuOTg1YTguOTQ2LDguOTQ2LDAsMCwxLC4zOTQsMSwzLjcxMywzLjcxMywwLDAsMCwuNTEyLjg2NnMuMTc3LjQ3MywxLjIuOTA2YTguNzQ5LDguNzQ5LDAsMCwwLC45NDUuMzM1LDMuMTUyLDMuMTUyLDAsMCwwLDEuNDM3LjA3OWMuMzk0LDAsLjYxLS41NzEuNzg4LTEuMDI0LjEtLjI3Ni4yMTctMS4wNDQuMjc2LTEuMjZzLS4xLS4zNzQuMDM5LS41NzFjLjE1OC0uMjE3LjI1Ni0uMjM2LjMzNS0uNTEyLjItLjYxLDEuMy0uNjMsMS45My0uNjMuNTMyLDAsLjQ1My41MTIsMS4zMzkuMzM1YTMuMjQzLDMuMjQzLDAsMCwxLDEuNTM2LjIxNywyLjIyNSwyLjIyNSwwLDAsMSwxLjE0Mi41NTFjLjE1OC4yLjU3MSwxLjE2Mi4xNTgsMS4yLjAzOS4wMzkuMDc5LjEzOC4xMzguMTc3LS4xLjM3NC0uNDkyLjEtLjcyOS4wNTlhMS4xODcsMS4xODcsMCwwLDAtLjgwNy4xMzhjLS41MTIuMjE3LTEuMjQxLjItMS42OTMuNTcxLS4zNzQuMzE1LS4zNzQsMS0uNTUxLDEuNGE1LjE2Nyw1LjE2NywwLDAsMS0xLjUzNiwyLjAwOCwzLjksMy45LDAsMCwxLTEuOTQ5Ljg0Nyw3Ljk2MSw3Ljk2MSwwLDAsMS0xLjUzNi4wNTljLS4yNTYtLjAyLS41MTItLjAyLS43NjgtLjAyLS4xNTgsMC0uNjY5LS4wMi0uNjUuMDM5bC0uMDU5LjEzOGEuNy43LDAsMCwwLC4wMzkuMmMuMDIuMTE4LjAyLjIxNy4wMzkuMzE1LDAsLjIxNy0uMDIuNDUzLDAsLjY2OS4wMi40NTMuMi44NjYuMjE3LDEuMzM5YTMuMjYsMy4yNiwwLDAsMCwuNTMyLDEuNDc3Yy4xLjE1OC4yMzYuMTc3LjMuMzc0YTQuMTYzLDQuMTYzLDAsMCwxLC4wMzkuNzA5LDkuNjg1LDkuNjg1LDAsMCwwLC44MjcsMi43NTd2LjAyaDBjLjUxMi0uMDc5LDEuMDQ0LS4yNzYsMS43MTMtLjM3NCwxLjI0MS0uMTc3LDIuOTU0LS4xLDQuMDU2LS4yLDIuOC0uMjU2LDQuMzEyLDEuMTQyLDYuODEzLjU3MVY3LjMyOEEzLjU1MSwzLjU1MSwwLDAsMCwyNi40NTYsMy44Wk0xNi4wMiwyMC4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTguNDc4LDIzLjU3M2MuMi0uNDMzLjMxNS0uOTA2LjQ3My0xLjMzOWEyLjI3NywyLjI3NywwLDAsMSwuODA3LTEuMjIxLDcuMyw3LjMsMCwwLDAtMS4wODMtLjFjLS4yMzYtLjAyLS40NzMtLjA1OS0uNzA5LS4xLS40MzMtLjA3OS0uOTI1LS4xNzctMS4zMzktLjI3Ni0uMjU2LS4wNTktMS4xNDItLjM3NC0xLjMxOS0uNDUzLS40NTMtLjItLjc0OC0uNzY4LTEuMDgzLS43MDlhLjc5NC43OTQsMCwwLDAtLjU3MS4zMzUsMy43NDMsMy43NDMsMCwwLDAtLjIzNi43MDljLS4xLjIzNi0uMjU2LjQ3My0uMzc0LjcwOWExMi4yODksMTIuMjg5LDAsMCwwLS45MjUsMS4yYy0uMDM5LjEtLjA1OS4yLS4xLjN2NC43NDVhNS40LDUuNCwwLDAsMSwuNzI5LjE1OCw4Ljc3LDguNzcsMCwwLDAsNC4zNzEuMzU0bC4xNzctLjAyaDBjLjEzOC0uMzE1LjI1Ni0xLjM1OS4zNTQtMS42NzRhNS40OTQsNS40OTQsMCwwLDAsLjIxNy0uNjg5LDIuNjY4LDIuNjY4LDAsMCwwLS4wMi0uNjg5QzcuODA5LDI0LjI0Miw4LjI2MiwyNC4wNDUsOC40NzgsMjMuNTczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHR9LFxuXHRcIk9jdGF2ZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM3N2NjZTFcIixcblx0XHRpY29uOiBcIjxkZWZzIGlkPVxcXCJkZWZzMjg3NFxcXCI+IDxyYWRpYWxHcmFkaWVudCBjeD1cXFwiMTgyLjk4MzdcXFwiIGN5PVxcXCIzOTUuMDQ4NzFcXFwiIHI9XFxcIjE0OC45NTMwOVxcXCIgZng9XFxcIjE4Mi45ODM3XFxcIiBmeT1cXFwiMzk1LjA0ODcxXFxcIiBpZD1cXFwicmFkaWFsR3JhZGllbnQzMDMzXFxcIiB4bGluazpocmVmPVxcXCIjbGluZWFyR3JhZGllbnQzNzU1XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjIyOTE0MzM0LC0wLjI0OTAxNDc5LDAuNzY0MzU3MiwwLjgzMDY0MjY4LC0yNzIuODUzMzcsLTE1OS42OTQ4MilcXFwiIC8+IDxsaW5lYXJHcmFkaWVudCBpZD1cXFwibGluZWFyR3JhZGllbnQzNzU1XFxcIj4gPHN0b3AgaWQ9XFxcInN0b3AzNzU3XFxcIiBzdHlsZT1cXFwic3RvcC1jb2xvcjojMDA4Y2JlO3N0b3Atb3BhY2l0eToxXFxcIiBvZmZzZXQ9XFxcIjBcXFwiIC8+IDxzdG9wIGlkPVxcXCJzdG9wMzc1OVxcXCIgc3R5bGU9XFxcInN0b3AtY29sb3I6I2IyZmZmZjtzdG9wLW9wYWNpdHk6MVxcXCIgb2Zmc2V0PVxcXCIxXFxcIiAvPiA8L2xpbmVhckdyYWRpZW50PiA8L2RlZnM+IDxnIGlkPVxcXCJsYXllcjFcXFwiIHRyYW5zZm9ybT1cXFwic2NhbGUoMC4xMTI5NikgdHJhbnNsYXRlKC0yMzMuMzU1NDQsLTM5MC43MTgwMilcXFwiPiA8ZyB0cmFuc2Zvcm09XFxcIm1hdHJpeCg4LjQ1MTk3MjMsMCwwLDguNDUxOTcyMywtMjc4LjQ1MDEyLC00MDMuODI5NzUpXFxcIiBpZD1cXFwiZzMwMjVcXFwiPiA8cGF0aCBkPVxcXCJtIDY2LjQzMjEwMyw5Ny40ODg2NzkgYyAtNS4xOTU4NCw1LjY0NjQzMSAtMy45MzY2MSwxNi4xNjkwMzEgMi44MTEwNywyMy41MDE4NzEgNi43NDc2OCw3LjMzMjg1IDE2LjQyODk4LDguNjk5NTUgMjEuNjI0ODMsMy4wNTMxMiA1LjE5NTg1LC01LjY0NjQzIDMuOTQwMiwtMTYuMTY5NDYgLTIuODA3NDksLTIzLjUwMjMgLTYuNzQ3NjgsLTcuMzMyODYxIC0xNi40MzI1NiwtOC42OTkxMzEgLTIxLjYyODQxLC0zLjA1MjY5MSB6IG0gNC43MTE0OSwyLjM0NTUzIGMgNC4wODI1NiwtNC40MzY1OSAxMS41ODksLTMuNDcxNTIgMTYuNzY3NDEsMi4xNTU5NjEgNS4xNzg0Miw1LjYyNzUgNi4wNjY0NywxMy43ODQ5MSAxLjk4MzkxLDE4LjIyMTUgLTQuMDgyNTYsNC40MzY1OCAtMTEuNTkwOTcsMy40NzM2OSAtMTYuNzY5MzksLTIuMTUzODEgLTUuMTc4NDIsLTUuNjI3NSAtNi4wNjQ0OSwtMTMuNzg3MDQgLTEuOTgxOTMsLTE4LjIyMzY1MSB6XFxcIiBpZD1cXFwicGF0aDU4NzRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQzMDMzKTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZVxcXCIgLz4gPHJlY3Qgd2lkdGg9XFxcIjQuMzQ5ODU0XFxcIiBoZWlnaHQ9XFxcIjQuMzQ5ODU0XFxcIiByeD1cXFwiMC43Njk1ODk2NlxcXCIgcnk9XFxcIjAuNzY5NTg5NjZcXFwiIHg9XFxcIjg1LjM4MTU2MVxcXCIgeT1cXFwiOTkuNDkzODgxXFxcIiBpZD1cXFwicmVjdDU4NzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCIxMC4yNDU0MzZcXFwiIGhlaWdodD1cXFwiMTAuMjQ1NDM2XFxcIiByeD1cXFwiMS44MTI2NTQ1XFxcIiByeT1cXFwiMS44MTI2NTQ1XFxcIiB4PVxcXCI2MC45MjY1OVxcXCIgeT1cXFwiMTA1LjIyNDVcXFwiIGlkPVxcXCJyZWN0NTg3OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmN2YyYTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6I2Q0NTUwMDtzdHJva2Utd2lkdGg6MC43NDQwMzc5OTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZVxcXCIgLz4gPHJlY3Qgd2lkdGg9XFxcIjYuMTg5NzUzMVxcXCIgaGVpZ2h0PVxcXCI2LjE4OTc1MzFcXFwiIHJ4PVxcXCIxLjA5NTExMDJcXFwiIHJ5PVxcXCIxLjA5NTExMDJcXFwiIHg9XFxcIjg3LjQwNDczOVxcXCIgeT1cXFwiMTE4LjYzNzA1XFxcIiBpZD1cXFwicmVjdDU4ODBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDwvZz4gPC9nPlwiLFxuXHR9LFxuXHRcIk9wZW5DTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNGRjFDMUFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjI5LjY2MlxcXCIgeTE9XFxcIjE4LjAyNlxcXCIgeDI9XFxcIjIxLjQxOVxcXCIgeTI9XFxcIjIwLjIzNFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwicmVkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmY2YTZhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIyNC41ODhcXFwiIHkxPVxcXCI5Ljc0OFxcXCIgeDI9XFxcIjE4Ljc3NlxcXCIgeTI9XFxcIjE1LjU2XFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIjE4LjQ2NlxcXCIgeTE9XFxcIjYuNjE5XFxcIiB4Mj1cXFwiMTUuOTI0XFxcIiB5Mj1cXFwiMTMuNjAzXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2ZhNDBjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWRkNDgwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCIxMy4xN1xcXCIgeTE9XFxcIjYuNTFcXFwiIHgyPVxcXCIxMy4xN1xcXCIgeTI9XFxcIjEyLjk5N1xcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCI4LjgwOFxcXCIgeTE9XFxcIjguNDg2XFxcIiB4Mj1cXFwiMTAuOTg4XFxcIiB5Mj1cXFwiMTMuMTYxXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIjUuNTA1XFxcIiB5MT1cXFwiMTEuNDc3XFxcIiB4Mj1cXFwiOC41NDZcXFwiIHkyPVxcXCIxNC41MTlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMxMWExMTlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzN2FlM2RcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIjMuNjM5XFxcIiB5MT1cXFwiMTQuMjg1XFxcIiB4Mj1cXFwiNi44ODNcXFwiIHkyPVxcXCIxNi4xNThcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiMi4yNjVcXFwiIHkxPVxcXCIxNy43OTlcXFwiIHgyPVxcXCI1LjM3OVxcXCIgeTI9XFxcIjE4LjkzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2ZcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCIyXFxcIiB5MT1cXFwiMjEuNjE0XFxcIiB4Mj1cXFwiNC44MzNcXFwiIHkyPVxcXCIyMS42MTRcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiMjAuNjYyXFxcIiB5MT1cXFwiMTguOTQ5XFxcIiB4Mj1cXFwiMTguMDI2XFxcIiB5Mj1cXFwiMTcuNDI4XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM2NDY0NjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNjYmNiY2JcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwia1xcXCIgeDE9XFxcIjE2LjAyMVxcXCIgeTE9XFxcIjI1LjI2NFxcXCIgeDI9XFxcIjE2LjAyMVxcXCIgeTI9XFxcIjIyLjY5MVxcXCIgeGxpbms6aHJlZj1cXFwiI2pcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9vcGVuY2w8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yNy44MjgsMTMuNTc0YTE0LjY3NiwxNC42NzYsMCwwLDEsLjgzNSwxLjU0MkExNC45NjQsMTQuOTY0LDAsMCwxLDI5LjkyLDIyLjlIMjIuMTMzYTEwLjM3NywxMC4zNzcsMCwwLDAtLjk2Ny00LjQyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNzUzLDE0LjQzYTEwLjA3NCwxMC4wNzQsMCwwLDEsMi43NzIsMi44NzhsNi4yNzMtNS4yYTE1LjU0LDE1LjU0LDAsMCwwLTQuOTg4LTQuMTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE0Ljc4MSwxMy4wODZhOC44MjcsOC44MjcsMCwwLDEsMi4zNzYuOTY2TDIwLjY2Niw3LjQzYTEyLjcsMTIuNywwLDAsMC00LjY0NS0uOTUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zNjQsMTNsLjYxMi02LjQ4OGExMi40NiwxMi40NiwwLDAsMC0zLjYxMS44MTNsLjUwNyw1LjYzOEE3LjIxOSw3LjIxOSwwLDAsMSwxNC4zNjQsMTNcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMTAuOTQ4LDEzLjE3OWwtLjY4My01LjM3M0ExNC41ODgsMTQuNTg4LDAsMCwwLDcuNzczLDkuMzc5bDEuNzQsNC40MmE3LjUxOCw3LjUxOCwwLDAsMSwxLjQzNS0uNjE5XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTguODYsMTQuMjA2LDYuNDc0LDEwLjUxMWMtLjQ1My40NC0uNzkuODItMS4wMDYsMS4wNzRxLS4yMjcuMjY3LS40MzYuNTM4TDcuNDgsMTUuMzg3YTguODcsOC44NywwLDAsMSwxLjM4LTEuMTgyXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTcuMDQ2LDE1Ljg3NSw0LjMzNSwxMy4xMTJhMTQuMjU5LDE0LjI1OSwwLDAsMC0xLjI1LDIuNDI5bDMuMDA3LDEuNzFhOS44MjYsOS44MjYsMCwwLDEsLjk1NC0xLjM3NlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk01LjUyNywxOC4zOTNsLTIuNzctMS45NDVhMTUuNDUyLDE1LjQ1MiwwLDAsMC0uNjMsMi44M2wyLjkwNi42MDdhMTAuMzQzLDEwLjM0MywwLDAsMSwuNDk0LTEuNDkyXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTQuODMzLDIwLjlhMTAuNjg0LDEwLjY4NCwwLDAsMC0uMSwySDIuMDkzYTE0LjMzMywxNC4zMzMsMCwwLDEtLjA2NC0yLjU3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTUxLDEyLjQ3OCwxNC43NTEsMjMuMUExLjU0NCwxLjU0NCwwLDAsMSwxNy41LDI0LjQyOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDIxLDI1LjUyMmExLjU0NCwxLjU0NCwwLDEsMSwxLjA5Mi0uNDUyQTEuNTMzLDEuNTMzLDAsMCwxLDE2LjAyMSwyNS41MjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ2NDY0XFxcIi8+PHBhdGggZD1cXFwiTTE3LjMwOCwyMy45NzhhMS4yODcsMS4yODcsMCwxLDEtLjM3Ny0uOTFBMS4yODMsMS4yODMsMCwwLDEsMTcuMzA4LDIzLjk3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz5cIixcblx0fSxcblx0XCJQYXNjYWxcIjoge1xuXHRcdGNvbG91cjogXCIjRkY2MzQ0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIi0wLjQ0M1xcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMjIuMDQyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAyMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmMGMxNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzlhMGMwZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZGVscGhpPC90aXRsZT48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NDUsMTYuMjQzSDQuOTI0YS45MTQuOTE0LDAsMCwwLTEuMDkyLjgycS4wMzMuNDI5LjEuODQ5YTEyLjQsMTIuNCwwLDAsMCwyNC41MzIsMHEuMDc1LS41LjEwOC0xLjAyMUMyOC40NzgsMTYuNTIzLDI4LjIxMSwxNi4yMDcsMjcuNTQ1LDE2LjI0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjY0NDNcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxOC40OCAxMS42NCAyMy43MDcgNy4yNjYgMTkuNzg3IDUuODggMTYgMTEuMDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTUuNjggMTEuMDI2IDE4LjY0IDUuODggMTQuODUzIDUuODggMTMuMzA3IDExLjI5M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEzLjA0IDExLjM3MyAxMy42IDYuNzA2IDEwLjU4NyA3Ljk2IDExLjAxMyAxMi43NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEwLjc0NyAxMyA5Ljc4NyA4Ljc2IDcuNzA3IDEwLjg0IDkuNjUzIDE0LjY4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4zODcgMTUuMDUzIDcuNDkzIDEyLjM3NiA2LjY0IDE0LjQ2NiA5LjA0IDE2LjUxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMDQgMTYuNzU3IDYuNjQgMTUuMjEzIDYuNDggMTcuNCA5LjIgMTguMzMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4yMjcgMTguODQ2IDYuNjQgMTguMDQgNy4yMjcgMTkuOCA5LjU0NyAxOS44XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS43MDcgMjAuMDkzIDcuNzA3IDIwLjM4NiA4LjYyNyAyMS43NDYgMTAuMjY3IDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTIwLjAyMywxMy4wODlhNi42MSw2LjYxLDAsMCwwLTQuNTMtMkE2LjI5Myw2LjI5MywwLDAsMCwxMS4zLDIyLjA3bDQuOTQxLjEyOS0yLjA4LTQuMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjUsMjIuMzY2bC01LjI2Ny0uMTM4LS4wNDQtLjAzOWE2LjQ1Myw2LjQ1MywwLDAsMSw0LjMtMTEuMjY0LDYuNzg3LDYuNzg3LDAsMCwxLDQuNjQzLDIuMDVsLjEyMy4xMjMtNS45LDQuOTgyWm0tNS4xNC0uNDU1LDQuNjE2LjEyMUwxMy45NjEsMThsNS44MjUtNC45MTlhNi40Myw2LjQzLDAsMCwwLTQuMjkyLTEuODM1LDYuMTMzLDYuMTMzLDAsMCwwLTQuMTMxLDEwLjY2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDEzLDIwLjQ5M2MtNC4xNzMtNS44MTMsMi4xMDktOC4xNzIsMi40NzgtOC40NTMuNDUxLS4zNDQtNy41OSwxLjc4NS0zLjIyNiw4Ljg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwNGUzMTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzIgMTIuNiAxMy41MiAxNy41NjcgMTMuNzMzIDE4LjU3MyAyMS40NjcgMTcuMDI2IDIwLjcyIDEyLjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjEsMTguNzYxLDEzLjM0MSwxNy41bDcuNDk1LTUuMTcuODE0LDQuODI4Wm0uMDg5LTEuMTIzLjE1OC43NDdMMjEuMjgzLDE2LjksMjAuNiwxMi44NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcyMywyMS4zMTljLTMuOTMtLjY2OC00LjI4My40MjgtNC4yODMuNDI4TDEwLjI2NywyNC40NHMxLjEyLS45MDcsNS40OTMsMGwuNzYtMS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGQwYzEzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE0LjEyMiwyMS42Yy0uMDItLjItMS4xLS4zMTktMS42NzctLjEyMy0uNzMyLjI0OS0xLjIxOSwxLjE0Mi0xLjA0NSwxLjIxM2ExLjk3NSwxLjk3NSwwLDAsMSwxLjEyNS0uOTg2QzEzLjQ0NywyMS40OTMsMTQuMTQyLDIxLjgsMTQuMTIyLDIxLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2ZTRmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE1LjUyLDE4LjYwNmExMS4xLDExLjEsMCwwLDAsMS41NDcsMS40ODcsNi45LDYuOSwwLDAsMSwyLjcyLDQuMTA3Yy0uMTA3LDEuMDY3LTEuOTczLDEuNzYtMS45NzMsMS43NmwtMy4zMDctNy4xOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE3LjczLDI2LjE2MWwtMy40NTctNy41MjEsMS4zMi0uMjA4LjA1Ny4wODFhMTAuODY5LDEwLjg2OSwwLDAsMCwxLjUxMiwxLjQ1MSw3LDcsMCwwLDEsMi43ODIsNC4yMDdsMCwuMDIyLDAsLjAyMmMtLjExNSwxLjE1My0yLDEuODY0LTIuMDc3LDEuODk0Wm0tMi45OS03LjI3LDMuMTU1LDYuODYzYy40MTQtLjE3OCwxLjYzLS43NjMsMS43My0xLjU0OGE2Ljc5Myw2Ljc5MywwLDAsMC0yLjY0OC0zLjk4MWwtLjAxLS4wMDdhMTEuOTQsMTEuOTQsMCwwLDEtMS41MTctMS40MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTI4LDEyLjc0MmMuMDI1LjM5NC4wMzQuNzkyLjAyNSwxLjE5NGExMy45NDYsMTMuOTQ2LDAsMCwxLTE5LjksMTIuM0ExMi44NiwxMi44NiwwLDAsMCwyOCwxMi43NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO2ZpbGwtcnVsZTpldmVub2RkO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTIuMzgzLDEzLjg5M0ExMy45NDEsMTMuOTQxLDAsMCwxLDI1LjcsNS44M3MtNS4wMDksNS45NzktMTAuNTg0LDcuOTA3UzIuMzgzLDEzLjg5MywyLjM4MywxMy44OTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTMuNjE4LDE4LjY5NGMtLjA0NC0uMzkyLS4wNzItLjc5LS4wODMtMS4xOTFDMy4zMjksOS44MDcsMTAuMDEyLDQuMiwxNy43MDgsMy45OTFhMTQuMiwxNC4yLDAsMCwxLDUuNzE5LDEuNDU4LDEzLjEyOCwxMy4xMjgsMCwwLDAtNy4xODgtMi4zNjljLTcuMS4xOS0xMy4zMDYsNS4zLTEzLjExNiwxMi40QTEyLjg3MywxMi44NzMsMCwwLDAsMy42MTgsMTguNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlBlcmxcIjoge1xuXHRcdGNvbG91cjogXCIjM2EzYzViXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuMjUsMTMuOGE2Ljg4OCw2Ljg4OCwwLDAsMC0uNzQyLTIuMjY4LDEuMDExLDEuMDExLDAsMCwwLS4xNzItLjIzMyw5LjQ3MSw5LjQ3MSwwLDAsMS0xLjcyNS0yLjQsOC42MzIsOC42MzIsMCwwLDAtMS4zOTUtMi4zODJBNi45MDYsNi45MDYsMCwwLDEsMjQuMSw0LjY0NCw0LjU3Miw0LjU3MiwwLDAsMCwyMS45OSwxLjcyN2ExLjAwOSwxLjAwOSwwLDAsMC0uMS0uMDU0LDguODg2LDguODg2LDAsMCwwLTEuMy0uNDY4LDEuMDIyLDEuMDIyLDAsMCwwLS4yNjMtLjAzNSwxLjAwOSwxLjAwOSwwLDAsMC0uMi4wMjEsNS42MDcsNS42MDcsMCwwLDEtLjgwNy4xMDdjLS4wNSwwLS4xLS4wMDYtLjE0OS0uMDA2YTIuODQyLDIuODQyLDAsMCwwLTEuNDE2LjQ1M2MtLjA5NC4wNTItLjE4OC4xMDYtLjI4NC4xNDlxLS4wNDEuMDE4LS4wNzguMDM5QTEuNjM3LDEuNjM3LDAsMCwxLDE3LjA2NiwyYTMuMTA5LDMuMTA5LDAsMCwwLS43NzIuMTk0LDEsMSwwLDAsMC0uNTA4LjQ4MywyLjE4NCwyLjE4NCwwLDAsMS0uNDY5LjVBNC4zODIsNC4zODIsMCwwLDAsMTQuNTU1LDRhLjk2NC45NjQsMCwwLDAtLjExNi4yMzQsNC42ODcsNC42ODcsMCwwLDEtMS41NzQsMi4yLDYuNDcxLDYuNDcxLDAsMCwwLS44LjYxMywyLjczNCwyLjczNCwwLDAsMC0uNjI3LTEuNjM0Yy0uMDE3LS4wMTktLjAzNS0uMDM4LS4wNTMtLjA1NmwwLS4wMTRhMi4zNzgsMi4zNzgsMCwwLDAtLjEzNS0uNTg2LDEsMSwwLDAsMC0uMTMyLS4yMzZBNS4xNjcsNS4xNjcsMCwwLDAsOS41MTEsMy4xMTNhLjk4OC45ODgsMCwwLDAtLjM0Ni0uMTE5LDEuNSwxLjUsMCwwLDEtLjE0OC0uMDc3LDIuMDYsMi4wNiwwLDAsMC0xLS4zMTEsMS40NzYsMS40NzYsMCwwLDAtLjY4MS4xNjYuOTg3Ljk4NywwLDAsMC0uMjc0LjIwNiwxLjMyOCwxLjMyOCwwLDAsMS0uMTI1LjA2MywxLjksMS45LDAsMCwwLS45MDguNzc4LDIuNTM5LDIuNTM5LDAsMCwwLS41NDEuMTA2LDEuNjU2LDEuNjU2LDAsMCwxLS4zODMuMDU3LDIuMywyLjMsMCwwLDAtMS41LjU0NWwtLjEwNi4xYTIuNTMzLDIuNTMzLDAsMCwwLTEsMi41MjUsMS4wOCwxLjA4LDAsMCwwLC4wNjguMTY1QTIuMjk0LDIuMjk0LDAsMCwwLDQuNDQ2LDguNDc4Yy0uMS4yMzgtLjIuNDczLS4zMTQuN2ExLjAwOSwxLjAwOSwwLDAsMC0uMDg3LjI5M0ExMS4wNTIsMTEuMDUyLDAsMCwwLDQsMTIuMDM5YzAsLjAyLDAsLjA0LjAwNy4wNmE1LjI3OCw1LjI3OCwwLDAsMSwuMDQxLjU0NywyLjkyNiwyLjkyNiwwLDAsMCwuOTMxLDIuNGMuMDE3LjAxNC4wMzQuMDI2LjA1Mi4wMzlsLjAwOC4wMzFhMi44LDIuOCwwLDAsMCwuMTUxLjQ0NywxLjE4NSwxLjE4NSwwLDAsMCwuNjMyLjYxNywxLjI4OSwxLjI4OSwwLDAsMCwuMjQ4LjU3MSwxLDEsMCwwLDAsLjMzMi4yNzksMi40NTMsMi40NTMsMCwwLDAsLjQ2NS4xNzZsLjA2NC4wMThhLjk3Ni45NzYsMCwwLDAsLjE5Mi4xNzFBNS44NzksNS44NzksMCwwLDEsNy44NzMsMThhMS4xMywxLjEzLDAsMCwwLDEuMzUxLjQyNywxLjUsMS41LDAsMCwwLC43NjUuMjE1LDEuNDIxLDEuNDIxLDAsMCwwLC42MjQtLjE0NWwuMTE0LS4wMjZjLjAyNC40MDguMDMzLjgxNy4wMjgsMS4yMjNhMS4wNDMsMS4wNDMsMCwwLDAsLjAyNi4yNDIsMTAuNzQ0LDEwLjc0NCwwLDAsMSwuMjY2LDEuODI4LjkzMS45MzEsMCwwLDAsLjAzMS4yLDguNDkyLDguNDkyLDAsMCwxLC4yNjgsMS44MTVjMCwuMDMxLDAsLjA2My4wMDguMDk0YTYuMDgzLDYuMDgzLDAsMCwxLS42MSwzLjU3NS45OTQuOTk0LDAsMCwwLS4wODkuMjYxLDEuMDkzLDEuMDkzLDAsMCwwLS4yMzQuMDc5bC0uMDUuMDIyYTIuMDEzLDIuMDEzLDAsMCwwLTEuMiwxLjA2NSwxLjMyMiwxLjMyMiwwLDAsMCwuMDc0LDEuMDU0LDEsMSwwLDAsMCwuMzI0LjM3MSwzLjU0NywzLjU0NywwLDAsMCwzLjUwOS4zLDEuNTQ2LDEuNTQ2LDAsMCwwLC44MjktMS42NTNsLS4wMDUtLjA2N2EuOTg5Ljk4OSwwLDAsMCwuMDU2LS4xNTgsMTEuMTg2LDExLjE4NiwwLDAsMCwuMjg4LTIuMDY4LDguOTM5LDguOTM5LDAsMCwxLC4yNTktMS44MjIsNC43MjcsNC43MjcsMCwwLDAsLjM4OS0xLjU4OGwuMDQyLjA0OGExMi42NjEsMTIuNjYxLDAsMCwwLDEuMjU1LDEuMTI5LDEwLjMsMTAuMywwLDAsMSwxLjEuOTg5bC0uMDExLjAzOGEuNTMyLjUzMiwwLDAsMS0uMzQyLjM1OWwtLjA0OS4wMTdhMS45MjEsMS45MjEsMCwwLDAtMS4xODQsMS4zMzQsMS4zMTMsMS4zMTMsMCwwLDAsLjQ1MiwxLjIzNCwxLDEsMCwwLDAsLjQ0MS4yMjIsNC45MDgsNC45MDgsMCwwLDAsMi43MzUtLjE4MSwxLjU1NiwxLjU1NiwwLDAsMCwuMjY2LS4xMjQsMS40MTEsMS40MTEsMCwwLDAsLjk3LjM3MiwyLjMyNiwyLjMyNiwwLDAsMCwxLS4yNzRjLjA0OS0uMDIzLjEtLjA0NS4xNC0uMDYyYTEsMSwwLDAsMCwuNjM3LS44NjQsNC41NTMsNC41NTMsMCwwLDAtLjQ2OC0yLjM0MywxLjU2LDEuNTYsMCwwLDAtLjUxLS42LDEwLjgsMTAuOCwwLDAsMSwxLjMtMi4xNSwyLjE5MywyLjE5MywwLDAsMCwuNDUxLTIuMDI2LDIuNTE5LDIuNTE5LDAsMCwxLS4wNDMtLjM5NCwxLjA0NiwxLjA0NiwwLDAsMCwwLS4xNDgsNS43NTYsNS43NTYsMCwwLDEsLjAxMi0xLjI3OSw3LjE2MSw3LjE2MSwwLDAsMCwuOTUxLDEuNzkzLDcuODkyLDcuODkyLDAsMCwxLC4xMzMsMS4xLDEwLjczMywxMC43MzMsMCwwLDAsLjEzMywxLjE4Niw5LjM2LDkuMzYsMCwwLDEtLjIyNCwzLjksMSwxLDAsMCwwLS4wMzIuMzRoMGEuOTguOTgsMCwwLDAtLjEuMTc5LDIuMjM4LDIuMjM4LDAsMCwwLS4zMTIsMS4yMzUsMS4wMDcsMS4wMDcsMCwwLDAsLjAzOS4yLDEuMzE1LDEuMzE1LDAsMCwwLDEuMzI4Ljk2M2MuMDg2LDAsLjE3Ny0uMDA2LjI2OC0uMDE0bC4wMTksMCwuMDM4LjAxM2EyLjEwOSwyLjEwOSwwLDAsMCwyLjUxNy0xLjA4OCwxLDEsMCwwLDAsLjA1OC0uNzM1LDUuMjg1LDUuMjg1LDAsMCwxLS4yMDgtMS4wMjcsMS4wMTEsMS4wMTEsMCwwLDAtLjA0Ni0uMjE3LDYuNDcsNi40NywwLDAsMS0uMjIxLTMuMjIsMS4xMTIsMS4xMTIsMCwwLDAsLjAxNS0uMTE0LDMuOTA3LDMuOTA3LDAsMCwxLC4wNzQtLjQ0MywyLjczOCwyLjczOCwwLDAsMC0uMTkzLTIuMSw0LjMzOSw0LjMzOSwwLDAsMSwuMDIxLS40NzZjLjAxMS0uMTQ3LjAyMy0uMy4wMjctLjQ2M2ExLjU5LDEuNTksMCwwLDAsLjg2Mi0uODUxLDEyLjgzLDEyLjgzLDAsMCwwLC45NDctMi4yMywxLjcxOSwxLjcxOSwwLDAsMCwuMTcyLTEuMTg1LDEuMjM0LDEuMjM0LDAsMCwwLC4xMTEtLjI1MUExLjQ2NywxLjQ2NywwLDAsMCwyOS4yNSwxMy44Wk0xOC44NjMsMjIuNzY4Yy0uMDI2LDAtLjA1My0uMDA4LS4wOC0uMDFsLS4wMjQsMGEyLjc0OCwyLjc0OCwwLDAsMS0uMjM2LS4zMjNjLS4wNTktLjA4OC0uMTE4LS4xNzUtLjE3OC0uMjU4YTIuMjUzLDIuMjUzLDAsMCwwLC4yMDgtLjIzNCwxLjI1NSwxLjI1NSwwLDAsMCwuNjI5LS4zMjFBMy4xODYsMy4xODYsMCwwLDEsMTguODYzLDIyLjc2OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMjg5LDIuM2MtLjU0OC0uMDY1LS45NjEuMy0xLjQxOS41MDYtLjM2OC4yMDYtLjgxNS4xNTItMS4xODUuMzA5LS4yODIuNTc5LS45NDEuOTA4LTEuMywxLjQ0M2E1LjcsNS43LDAsMCwxLTEuOTQyLDIuNjk0LDUuNDY0LDUuNDY0LDAsMCwwLTIuMzY4LDMuMzk0Yy0uMTQ1LjMtLjEyMi43NDYtLjI3NywxLS41MTEuMTQzLS4yMzktLjUxNi0uMy0uODI1LS4wNzQtLjQ3LjM0MS0uNzcuMzczLTEuMjI2YTEuODM0LDEuODM0LDAsMCwwLC4yMDktMS4wNTNjLS4wNTYtLjgxNC4xODktMS44MDctLjM5My0yLjQ3Ny0uMzQ5LS4yLS4yMzktLjYyMy0uMzY2LS45NDdhNC4yMTQsNC4yMTQsMCwwLDAtMS4zLTEuMTM5Yy0uNDE5LS4wNDEtLjgwNi0uNTQyLTEuMjMyLS4zMjMtLjI2Ni4zMDktLjc2My4zMDUtLjkyMi43MTMtLjEuNTE2LS42ODguMzc0LTEuMDY4LjUtLjQ4OC4xODUtMS4xMTguMDA2LTEuNTE4LjM4Mi0uNDExLjQxLTEuMDM0Ljk2MS0uODM1LDEuNjA2LjQ1Ny44ODIsMS42NDUuNDM4LDIuMzE3Ljk3NEExNy45OSwxNy45OSwwLDAsMSw1LjAzNiw5LjYxYTEwLjA1MSwxMC4wNTEsMCwwLDAtLjA0NCwyLjMzMmMuMTIzLjc3My0uMDgzLDEuNzcyLjYwNiwyLjMxOS4zOC4xMzcuMzU3LjU3Mi41Ljg4Ny4xMzQuMjkuNDI3LS4xMTMuNTQzLjE5My4zMzguMTg0LjAzNy41NjEuMjIuOC4yNjMuMTM3LjYzOS4xMjguODIyLjQyNmE2Ljg0NCw2Ljg0NCwwLDAsMSwuOTc1LjgwNmMuMjMuNDY3LjUzMS0uNDU0Ljc4My0uMTA5LjE3LjI4NS41MDYuNTIyLjgxOS4yODVhMi45OTMsMi45OTMsMCwwLDAsMS4zMjQtLjU1NiwxOC4wMzMsMTguMDMzLDAsMCwxLC4xNzEsMi43MTgsMTEuNzMzLDExLjczMywwLDAsMSwuMjksMiw5LjQwOSw5LjQwOSwwLDAsMSwuMywyLjAzLDcuMTExLDcuMTExLDAsMCwxLS43MDksNC4xNiwxLjAxMiwxLjAxMiwwLDAsMS0uODA3LjhjLS4yOTEuMTMtLjkuMzY2LS42OTIuNzc2YTIuNTQ5LDIuNTQ5LDAsMCwwLDIuNTIuMjE0Yy41MS0uMjQzLjA3My0uODU4LjMzNC0xLjIyNi4zNDMtMS4zLjE3NC0yLjY5MS41NzUtMy45ODVhMy43NjIsMy43NjIsMCwwLDAsLjMtMi4xYy4wNzktLjQ0LS4xMDUtLjk2OS4xODctMS4zMjlhMS44MTMsMS44MTMsMCwwLDEsLjQ4My0xLjIsMTQuNzYyLDE0Ljc2MiwwLDAsMCwuMTQ0LTIuMDI2LDMuMjE0LDMuMjE0LDAsMCwxLDEuMjY3LS4xMjdjLjAxOC4zNzUtLjI3Mi44MTItLjE5LDEuMjM0QTEuOTQ4LDEuOTQ4LDAsMCwxLDE1LjUsMjAuM2EyLjg0OSwyLjg0OSwwLDAsMCwuMTY4LDIuMzA4Yy43ODIuODM5LDEuOCwxLjQzMiwyLjUzNiwyLjMyNy4zMTQuMjA1LjIuNTE3LjAzOC43ODRhMS41MjgsMS41MjgsMCwwLDEtLjk4NywxLjAzNGMtLjMwOC4xMjEtLjgwNi41NjYtLjQ0Mi44ODJhMy45MDYsMy45MDYsMCwwLDAsMi4xNzgtLjE0NGMuNDc2LS4xNzEuMy0uNzM4LjQ4OC0xLjA4OC4zLjIzMy40MjMuNzY1LjcxMSwxLjA2OS4zLjQzMy44MDcuMDczLDEuMTU2LS4wNjJhMy41NDksMy41NDksMCwwLDAtLjM3Mi0xLjg0MmMtLjE2Ny0uMzc4LS44LS4zODUtLjc3LS44NTJhMTEuNzYxLDExLjc2MSwwLDAsMSwxLjcxMi0zYy41MS0uNDc5LjEzLTEuMTkxLjE1OC0xLjhBNi43NjUsNi43NjUsMCwwLDEsMjMuMTU4LDE1LjVhMTUuODg5LDE1Ljg4OSwwLDAsMCwuNjkyLDIuMTQsNi4yMyw2LjIzLDAsMCwwLDEuMSwyLjI0NmMuMjM3LjgxMS4xNzYsMS43MS4zMzEsMi41NTFhMTAuNDQsMTAuNDQsMCwwLDEtLjI0Miw0LjM0N2MuMDQuNTE4LS40NTcuOS0uNDE1LDEuNDA4LjE0LjQ2OS43LjA5My45OS4yOWExLjExLDEuMTEsMCwwLDAsMS4zMjQtLjU3Miw2LjIxMiw2LjIxMiwwLDAsMS0uMjQ3LTEuMjIzLDcuNDU0LDcuNDU0LDAsMCwxLS4yNTUtMy43MTljLjA0Ni0uNjY5LjQ1Ny0xLjUtLjA3My0yLjA3Mi0uMTQ4LS42MTkuMS0xLjI4NS0uMDQ5LTEuOTE1YTEyLjg3NywxMi44NzcsMCwwLDEtLjEyMi00LjkzM2MuMDkzLS4yMjcuMDEzLS42NDkuMjQ3LS43NzVhMS44NTEsMS44NTEsMCwwLDEsLjMxNSwxLjIzMiwzLjcsMy43LDAsMCwxLC4wNzksMi4wODFjLS40MjQuNTMxLS4xNjMsMS4yNDgtLjEwOSwxLjg1LjA2OC40MjIuNTE2LjExOC41ODktLjE0NGExMS44NTEsMTEuODUxLDAsMCwwLC45NDQtMi4yNDFjLjI2OS0uMzU2LjAxNC0uNzcsMC0xLjE0Mi40MTMtLjA0OS4yNTYtLjUwNi4wMzUtLjdhNS45Myw1LjkzLDAsMCwwLS42NjctMi4yLDEwLjQ2NCwxMC40NjQsMCwwLDEtMS45NDEtMi43MjNjLS41MjgtMS42MzktMi4wNDItMi43MjYtMi41NTYtNC4zNzlhMy41NTYsMy41NTYsMCwwLDAtMS42NTItMi4zMTdBNy44ODEsNy44ODEsMCwwLDAsMjAuMzIsMi4xNyw2LjUsNi41LDAsMCwxLDE5LjI4OSwyLjNabS40LDE0LjY2YTM4LjkwNywzOC45MDcsMCwwLDEsLjUsNC4yOTEsNC4xNzUsNC4xNzUsMCwwLDEtLjc2LDIuNTE3Yy0uMTIuNDI1LS40ODYuMDEyLS43NTEtLjAxNi0uNjQzLS4wMTgtLjg4Mi0uNjgzLTEuMjMyLTEuMTA3LS4zNi0uMzQ0LS4xLS44LjEzMy0xLjEzMS4yNTItLjE3OS4zNS0uNTc5LjcwOC0uNTQ4LjQtLjAwNy4zMTYtLjQ4Ny4yNi0uNzQzLjIzOC0uMzYyLjA5Mi0uODkyLjMyOC0xLjI4My40MTktLjE4Mi4yOTQtLjgyLjQ0Mi0xLjE4LjExNS0uMjU2LjAxNy0uNzQ5LjMzNC0uODU0LjAzNy0uMDA2LjA0OS4wMTIuMDQyLjA1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYTNjNWJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlBIUFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0YzZiOTZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIi0xNi4xMTRcXFwiIGN5PVxcXCIyMC41MzJcXFwiIHI9XFxcIjE4LjM4NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNi41MiAtOS4zMDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM0YzZiOTZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyMzFmMjBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3BocDwvdGl0bGU+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHJ4PVxcXCIxNFxcXCIgcnk9XFxcIjcuMzY1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHJ4PVxcXCIxMy40NTNcXFwiIHJ5PVxcXCI2LjgxOFxcXCIgc3R5bGU9XFxcImZpbGw6IzYyODBiNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43MjUsMTguMmwuNjY3LTMuNDM0YTEuNzUyLDEuNzUyLDAsMCwwLS4zNzItMS43MTksMi45MjksMi45MjksMCwwLDAtMi0uNTI1SDE1Ljg2N2wuMzMxLTEuN2EuMjE5LjIxOSwwLDAsMC0uMjE1LS4yNmgtMS42YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0uNzA5LDMuNjQ2YTIuMDUxLDIuMDUxLDAsMCwwLS40NzctMS4wNTQsMi43ODMsMi43ODMsMCwwLDAtMi4yLS44MDdINy43YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0xLjQzNCw3LjM4YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZINy44NjlhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC4zNDctMS43ODVoMS4yYTUuMTY3LDUuMTY3LDAsMCwwLDEuNTY4LS4yLDMuMDY4LDMuMDY4LDAsMCwwLDEuMTUtLjY4OSwzLjUzOCwzLjUzOCwwLDAsMCwuNjgtLjg0NGwtLjI4NywxLjQ3NWEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNmEuMjE5LjIxOSwwLDAsMCwuMjE1LS4xNzdsLjc4Ny00LjA1MWgxLjA5NGMuNDY2LDAsLjYuMDkzLjY0LjEzM3MuMS4xNjUuMDI1LjU2OWwtLjYzNSwzLjI2NWEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNjJBLjIxOS4yMTksMCwwLDAsMTguNzI1LDE4LjJaTTExLjMzLDE1LjM2NmExLjc0OSwxLjc0OSwwLDAsMS0uNTYxLDEuMDkyLDIuMTcxLDIuMTcxLDAsMCwxLTEuMzE1LjMyMUg4Ljc0MmwuNTE1LTIuNjUxaC45MjFjLjY3NywwLC45NDkuMTQ1LDEuMDU5LjI2NkExLjE4MSwxLjE4MSwwLDAsMSwxMS4zMywxNS4zNjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI1LjU0NiwxMy4zMzJhMi43ODMsMi43ODMsMCwwLDAtMi4yLS44MDdIMjAuMjU1YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0xLjQzNCw3LjM4YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZoMS42MDhhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC4zNDctMS43ODVoMS4yYTUuMTY3LDUuMTY3LDAsMCwwLDEuNTY4LS4yLDMuMDY4LDMuMDY4LDAsMCwwLDEuMTUtLjY4OSwzLjQyNSwzLjQyNSwwLDAsMCwxLjA3Ni0xLjkyN0EyLjUxMiwyLjUxMiwwLDAsMCwyNS41NDYsMTMuMzMyWm0tMS42NjcsMi4wMzRhMS43NDksMS43NDksMCwwLDEtLjU2MSwxLjA5MkEyLjE3MSwyLjE3MSwwLDAsMSwyMiwxNi43NzhIMjEuMjlsLjUxNS0yLjY1MWguOTIxYy42NzcsMCwuOTQ5LjE0NSwxLjA1OS4yNjZBMS4xODEsMS4xODEsMCwwLDEsMjMuODc5LDE1LjM2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMTc4LDEzLjkwOGExLjY0NSwxLjY0NSwwLDAsMSwxLjIyMS4zMzgsMS4zNCwxLjM0LDAsMCwxLC4xNDUsMS4xNjEsMS45NDUsMS45NDUsMCwwLDEtLjY0MiwxLjIyM0EyLjM2MSwyLjM2MSwwLDAsMSw5LjQ1NCwxN0g4LjQ3NmwuNi0zLjA4OVpNNi4yNjEsMjAuMTI0SDcuODY5bC4zODEtMS45NjJIOS42MjdhNC45MzEsNC45MzEsMCwwLDAsMS41LS4xOTEsMi44NCwyLjg0LDAsMCwwLDEuMDctLjY0MiwzLjIwNywzLjIwNywwLDAsMCwxLjAxLTEuODA4LDIuMywyLjMsMCwwLDAtLjM4NS0yLjA0NCwyLjU2OCwyLjU2OCwwLDAsMC0yLjAzNS0uNzMySDcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzg3LDEwLjc4MmgxLjZMMTUuNiwxMi43NDRoMS40MjFhMi43NjcsMi43NjcsMCwwLDEsMS44NS40NjgsMS41NDgsMS41NDgsMCwwLDEsLjMwNSwxLjUxNmwtLjY2NywzLjQzNEgxNi44OWwuNjM1LTMuMjY1YS44ODYuODg2LDAsMCwwLS4wOC0uNzYsMS4xMjEsMS4xMjEsMCwwLDAtLjgtLjJIMTUuMzdsLS44MjIsNC4yMjhoLTEuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz48cGF0aCBkPVxcXCJNMjIuNzI3LDEzLjkwOGExLjY0NSwxLjY0NSwwLDAsMSwxLjIyMS4zMzgsMS4zNCwxLjM0LDAsMCwxLC4xNDUsMS4xNjEsMS45NDUsMS45NDUsMCwwLDEtLjY0MiwxLjIyM0EyLjM2MSwyLjM2MSwwLDAsMSwyMiwxN2gtLjk3OGwuNi0zLjA4OVpNMTguODEsMjAuMTI0aDEuNjA4bC4zODEtMS45NjJoMS4zNzdhNC45MzEsNC45MzEsMCwwLDAsMS41LS4xOTEsMi44NCwyLjg0LDAsMCwwLDEuMDctLjY0MiwzLjIwNywzLjIwNywwLDAsMCwxLjAxLTEuODA4LDIuMywyLjMsMCwwLDAtLjM4NS0yLjA0NCwyLjU2OCwyLjU2OCwwLDAsMC0yLjAzNS0uNzMySDIwLjI0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIlBML1NRTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZjAwMDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04LjU2MiwxNS4yNTZBMjEuMTU5LDIxLjE1OSwwLDAsMCwxNiwxNi40NDlhMjEuMTU5LDIxLjE1OSwwLDAsMCw3LjQzOC0xLjE5NGMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJWOS43YTEwLjM1NywxMC4zNTcsMCwwLDEtMi4wODQsMS4wNzZBMjIuMjkzLDIyLjI5MywwLDAsMSwxNiwxMi4wNzhhMjIuMzYsMjIuMzYsMCwwLDEtNy44NzktMS4zQTEwLjI4LDEwLjI4LDAsMCwxLDYuMDM3LDkuN3YzLjU1QzYuMDM3LDEzLjcyNCw2LjcsMTQuNTI4LDguNTYyLDE1LjI1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGM1LjUsMCw5Ljk2My0xLjc0NCw5Ljk2My0zLjg5NFYyMy4yNjlhMTAuNSwxMC41LDAsMCwxLTEuNTM1Ljc2MmwtLjE1Ny4wNjNBMjMuNDg3LDIzLjQ4NywwLDAsMSwxNiwyNS40NDVhMjMuNDIyLDIzLjQyMiwwLDAsMS04LjI3MS0xLjM1MWMtLjA1NC0uMDItLjEwNi0uMDQzLS4xNTctLjA2M2ExMC41LDEwLjUsMCwwLDEtMS41MzUtLjc2MnYyLjgzN0M2LjAzNywyOC4yNTYsMTAuNSwzMCwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjUuODk0XFxcIiByeD1cXFwiOS45NjNcXFwiIHJ5PVxcXCIzLjg5NFxcXCIgc3R5bGU9XFxcImZpbGw6cmVkXFxcIi8+XCIsXG5cdH0sXG5cdFwiUGxhaW4gdGV4dFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMi4wMzgsMkg2LjM3NWExLjc1NSwxLjc1NSwwLDAsMC0xLjc1LDEuNzV2MjQuNUExLjc1NSwxLjc1NSwwLDAsMCw2LjM3NSwzMGgxOS4yNWExLjc1NSwxLjc1NSwwLDAsMCwxLjc1LTEuNzVWNi44NTZabS41MjUsMi44NDQsMS42NjMsMS41MzFIMjIuNTYzWk02LjM3NSwyOC4yNVYzLjc1SDIwLjgxM1Y4LjEyNWg0LjgxM1YyOC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTUuMDk3XFxcIiB3aWR0aD1cXFwiMTMuMDc2XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMjQuNDM5XFxcIiB3aWR0aD1cXFwiOS43NjJcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxOS43NjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjEwLjIzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlBsYW50VU1MXCI6IHtcblx0XHRjb2xvdXI6IFwiI0ExMUY0MVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTMzLjQyM1xcXCIgeTE9XFxcIi0yNTAuOTExXFxcIiB4Mj1cXFwiLTMzLjM1M1xcXCIgeTI9XFxcIi0yNTAuODU4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDM3LjEzNCwgMjYuMDAxLCAxMy41NzUsIC0xOS4zODcsIDQ2NzMuNDczLCAtMzk4Mi4wMTkpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzY3Njc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMzIuMTA3XFxcIiB5MT1cXFwiLTI0Mi41NjNcXFwiIHgyPVxcXCItMzIuMDI4XFxcIiB5Mj1cXFwiLTI0Mi41ODZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODEuMDgxLCA1Ni43NzQsIDE3LjMwNiwgLTI0LjcxNSwgNjgwNC4wMjEsIC00MTQ5LjY0NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwMDc5YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0zMy4yODJcXFwiIHkxPVxcXCItMjQzLjQyM1xcXCIgeDI9XFxcIi0zMy4yMjRcXFwiIHkyPVxcXCItMjQzLjQ1NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg2MC4wMDMsIDQyLjAxNSwgMzQuMTg0LCAtNDguODIsIDEwMzQzLjAwNSwgLTEwNDY5LjA4NClcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTIuMzU2XFxcIiB5MT1cXFwiMjYuMjY4XFxcIiB4Mj1cXFwiMTQuMDExXFxcIiB5Mj1cXFwiMjYuMjY4XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTk1OTU5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzZlNmU2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNDJcXFwiIHN0b3AtY29sb3I9XFxcIiM4YzhjOGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTRhNGE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3N1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I1YjViNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NjVcXFwiIHN0b3AtY29sb3I9XFxcIiNiZmJmYmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMmMyYzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIjE4LjI5MVxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjE5Ljk0NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCIyNC40NFxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjI2LjA5NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wbGFudHVtbDwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC4zMDUgMTcuODcyIDI3LjE2IDIyLjQxOCAyMS43MiAyNS40OTMgMTQuODYxIDIwLjk5OSAyMC4zMDUgMTcuODcyXFxcIiBzdHlsZT1cXFwiZmlsbDojMWMwYTQyXFxcIi8+PHBhdGggZD1cXFwiTTIxLjcxNiwyNS42MTlsLS4wNTUtLjAzNi03LjAwNS00LjU5LDUuNjUzLTMuMjQ3LDcuMDU2LDQuNjhabS02LjY1LTQuNjEzLDYuNjU4LDQuMzYyLDUuMjMxLTIuOTU3TDIwLjMsMThaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi40MDEgMTEuOTA5IDI5LjQxOCAxMy41OTIgMjcuMDcgMTUuMDg4IDI0LjIxMyAxMy4yNDcgMjYuNDAxIDExLjkwOVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNjksMTUuMjE1bC0zLjA1OC0xLjk3LDIuMzg3LTEuNDYsMy4yMjgsMS44Wm0tMi42NTQtMS45NjZMMjcuMDcsMTQuOTYsMjkuMjA4LDEzLjZsLTIuOC0xLjU2NVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQ5OCAxNy44MDcgMjEuMzU0IDIyLjM1NCAxNS45MTQgMjUuNDI5IDkuMDU1IDIwLjkzNSAxNC40OTggMTcuODA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiZDNmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjkxLDI1LjU1NGwtLjA1NS0uMDM2TDguODUsMjAuOTI5LDE0LjUsMTcuNjgxbDcuMDU2LDQuNjhaTTkuMjYsMjAuOTQxLDE1LjkxOCwyNS4zbDUuMjMxLTIuOTU3LTYuNjU0LTQuNDEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNy45OSAxNy45NjYgMTQuOTU0IDIyLjM2NiA5LjU3NyAyNS41MDQgMi4yMTggMjAuODQ5IDcuOTkgMTcuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDojYTExZjQwXFxcIi8+PHBhdGggZD1cXFwiTTkuNTc1LDI1LjYyOSwyLDIwLjgzOGw2LTMsNy4xNjQsNC41MjdaTTIuNDM2LDIwLjg2LDkuNTgsMjUuMzc4bDUuMTY4LTMuMDE2TDcuOTg0LDE4LjA4OVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuMTExIDIxLjAyMSA5LjQ0MyAyNS41MTUgOS40NDMgMjkuMDYzIDIuMTExIDI0LjMzMiAyLjExMSAyMS4wMjFcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNOS41NSwyOS4yNiwyLDI0LjM5MVYyMC44MjlMOS41NSwyNS40NTVaTTIuMjE4LDI0LjI3NGw3LjExOCw0LjU5MlYyNS41NzVMMi4yMTgsMjEuMjEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjQuMDcxIDEzLjM0MyAyNy4wMDkgMTUuMjIyIDI3LjAwOSAyMi4xMzEgMjQuMDcxIDIwLjI0NyAyNC4wNzEgMTMuMzQzXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTI3LjA2MywyMi4yMjlsLTMuMDQ1LTEuOTUzVjEzLjI0NWwzLjA0NSwxLjk0N1ptLTIuOTM4LTIuMDEyLDIuODMxLDEuODE1VjE1LjI1MWwtMi44MzEtMS44MVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjE0OSAyMi41MjYgMjcuMTQ5IDE1LjE5NCAyOS41MTQgMTMuNzc1IDI5LjUxNCAyOS4xNDkgMjguMzMxIDI5LjE0OSA5LjY0NiAyOS4xNDkgOS42NDYgMjUuNjAxIDE1LjA4NiAyMi41MjYgMTUuNzg1IDI1LjYwMSAxNS43OTYgMjUuNjAxIDIxLjQ3MiAyMi41MjYgMjEuODkxIDI1LjYwMSAyMS45NDUgMjUuNjAxIDI3LjE0OSAyMi41MjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjIxLDI5LjI1Nkg5LjUzOVYyNS41MzhsNS42Mi0zLjE3Ny43LDMuMDgzLDUuNy0zLjA4Ny40MjIsMy4xLDUuMDYxLTIuOTkxVjE1LjEzM2wyLjU4LTEuNTQ4Wk05Ljc1MywyOS4wNDFIMjkuNDA3VjEzLjk2NGwtMi4xNTEsMS4yOXY3LjMzMmwtLjA1My4wMzEtNS4yMjksMy4wOUgyMS44bC0uNDExLTMuMDE0LTUuNTY0LDMuMDE0SDE1LjdsLS42ODYtMy4wMTgtNS4yNiwyLjk3M1pcXFwiLz48cmVjdCB4PVxcXCIxMi4zNTZcXFwiIHk9XFxcIjI1LjQ0XFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEzLjgsMjcuMkgxMi41N2EuMzIyLjMyMiwwLDAsMS0uMzIyLS4zMjJWMjUuNjU1YS4zMjIuMzIyLDAsMCwxLC4zMjItLjMyMkgxMy44YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDEzLjgsMjcuMlpNMTIuNTcsMjUuNTQ3YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3SDEzLjhhLjEwOC4xMDgsMCwwLDAsLjEwNy0uMTA3VjI1LjY1NWEuMTA4LjEwOCwwLDAsMC0uMTA3LS4xMDdaXFxcIi8+PHJlY3QgeD1cXFwiMTguMjkxXFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNzMyLDI3LjEwNkgxOC41MDVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMTkuNzMyLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxyZWN0IHg9XFxcIjI0LjQ0XFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjUuODgxLDI3LjEwNkgyNC42NTVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMjUuODgxLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4yMTUsMTEuMjNjLS4wNTIuMDY5LS40MTctLjI2Mi0uNjUzLS41MjZhNC40MDgsNC40MDgsMCwwLDEtLjUxNi0uNzNBMi42LDIuNiwwLDAsMSwyNS43LDkuMmEyLjM1OCwyLjM1OCwwLDAsMS0uMDUyLS42ODIsMi45NTksMi45NTksMCwwLDEsLjEyOS0uNzQ5LDMuMTQyLDMuMTQyLDAsMCwxLC43ODctMS4yMDcsMTUuNTMyLDE1LjUzMiwwLDAsMCwxLjI4My0xLjQsMy4wNjIsMy4wNjIsMCwwLDAsLjQ3OS0uOTI3LDMuOTc5LDMuOTc5LDAsMCwwLC4xNTEtLjg1NWMuMDE5LS4zNjQtLjAyNS0uNTkzLjAyMy0uNjEzcy4yMTUuMjc0LjI4Ny41NjRhMy4xNjcsMy4xNjcsMCwwLDEtLjQ1OCwyLjEsNi45LDYuOSwwLDAsMS0xLjA5NCwxLjQ0OCwyLjgsMi44LDAsMCwwLS44NDksMS4yMzRBMi40NjYsMi40NjYsMCwwLDAsMjYuMyw4LjhhMy40NjUsMy40NjUsMCwwLDAsLjQ3NiwxLjU0MkMyNy4wNjQsMTAuOTE0LDI3LjI1NiwxMS4xNzUsMjcuMjE1LDExLjIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhMmQyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4xOTMsMTEuMjY2Yy0uMTI0LDAtLjQ5Mi0uMzY1LS42NTEtLjU0NGE0LjQ3OCw0LjQ3OCwwLDAsMS0uNTItLjczNCwyLjYyOCwyLjYyOCwwLDAsMS0uMzQ2LS43ODEsMi4zNzUsMi4zNzUsMCwwLDEtLjA1My0uNjksMi45NzgsMi45NzgsMCwwLDEsLjEzLS43NTYsMy4yMDgsMy4yMDgsMCwwLDEsLjc5My0xLjIxNmMuMjk0LS4zMzEuNS0uNTI4LjY1OS0uNjg2YTQuMzkzLDQuMzkzLDAsMCwwLC42MjItLjcxMSwzLjA1MiwzLjA1MiwwLDAsMCwuNDc2LS45MTksMy45NTEsMy45NTEsMCwwLDAsLjE1LS44NDljLjAwOC0uMTU5LDAtLjI5NCwwLS4zOTMsMC0uMTU5LS4wMDYtLjIyNS4wMzgtLjI0M2EuMDUuMDUsMCwwLDEsLjA0MywwLDEuMjI2LDEuMjI2LDAsMCwxLC4yOC41NzksMy4xNjcsMy4xNjcsMCwwLDEtLjQ2LDIuMTIxLDYuOTI4LDYuOTI4LDAsMCwxLTEuMSwxLjQ1M2MtLjA1NS4wNi0uMTA5LjExNi0uMTYyLjE3MWEyLjMsMi4zLDAsMCwwLS42ODEsMS4wNTIsMi40NywyLjQ3LDAsMCwwLS4wODIuNjczLDMuNDU4LDMuNDU4LDAsMCwwLC40NzMsMS41M2MuMTE0LjIzMS4yMTUuNDE1LjI4OS41NDkuMTI5LjIzNS4xNzguMzIzLjE0Mi4zNjloMGEuMDUxLjA1MSwwLDAsMS0uMDQuMDJaTTI4LjUxMiwyLjhhLjg2My44NjMsMCwwLDAsMCwuMTljMCwuMS4wMDcuMjM2LDAsLjRhNC4wMjEsNC4wMjEsMCwwLDEtLjE1Mi44NjEsMy4xMDYsMy4xMDYsMCwwLDEtLjQ4My45MzQsNC40MzcsNC40MzcsMCwwLDEtLjYyOS43MTljLS4xNjIuMTU4LS4zNjQuMzU0LS42NTcuNjgzYTMuMTY4LDMuMTY4LDAsMCwwLS43ODIsMS4yLDIuOTMzLDIuOTMzLDAsMCwwLS4xMjguNzQzLDIuMzI1LDIuMzI1LDAsMCwwLC4wNTIuNjc1LDIuNTksMi41OSwwLDAsMCwuMzQxLjc2Nyw0LjQyMiw0LjQyMiwwLDAsMCwuNTEzLjcyNSwyLjAzNSwyLjAzNSwwLDAsMCwuNjExLjUyNiwxLjE4MywxLjE4MywwLDAsMC0uMTQ3LS4zMWMtLjA3NC0uMTM0LS4xNzUtLjMxOC0uMjktLjU1MUEzLjUsMy41LDAsMCwxLDI2LjI3OCw4LjhhMi41MywyLjUzLDAsMCwxLC4wODQtLjY4OCwyLjM3NSwyLjM3NSwwLDAsMSwuNjk0LTEuMDc1Yy4wNTItLjA1NS4xMDYtLjExMS4xNjEtLjE3MWE2Ljg3OSw2Ljg3OSwwLDAsMCwxLjA5LTEuNDQyLDMuMTE5LDMuMTE5LDAsMCwwLC40NTYtMi4wODNBMS4yODEsMS4yODEsMCwwLDAsMjguNTEyLDIuOFpcXFwiLz48cGF0aCBkPVxcXCJNMjkuOTcyLDYuMDg3Yy0uMDE5LS4wODgtLjQzMi0uMDQtLjc2Ni4wNzNhMi42LDIuNiwwLDAsMC0xLjA1OS43MjIsMi44LDIuOCwwLDAsMC0uOTE2LDEuODU1LDIuOTcyLDIuOTcyLDAsMCwwLC4yNTgsMS4wNmMuMjIxLjU3Mi40NTUuNzczLjQ0NCwxLjIyNS0uMDA3LjMtLjExNC40ODQtLjA0OC41NDlzLjMxNC0uMS40NjItLjMxM2ExLjgsMS44LDAsMCwwLC4yNTktMS4wMjJjLS4wNDYtLjgxNS0uNi0xLjAxNS0uNjA4LTEuOGExLjg1OCwxLjg1OCwwLDAsMSwuMTI5LS42NzZDMjguNTcsNi41MDksMzAuMDA4LDYuMjUyLDI5Ljk3Miw2LjA4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYTJkMmVcXFwiLz48cGF0aCBkPVxcXCJNMjcuOTM0LDExLjYxN2EuMDk0LjA5NCwwLDAsMS0uMDY5LS4wMjZjLS4wNDYtLjA0Ni0uMDMtLjEyMi0uMDA1LS4yMzdhMS43MTgsMS43MTgsMCwwLDAsLjA0NS0uMzMxLDEuMzc0LDEuMzc0LDAsMCwwLS4yMTQtLjcyLDUsNSwwLDAsMS0uMjI4LS40OTUsMi45OCwyLjk4LDAsMCwxLS4yNTktMS4wNywyLjgxLDIuODEsMCwwLDEsLjkyMy0xLjg3NCwyLjY0LDIuNjQsMCwwLDEsMS4wNy0uNzI5LDEuNDgyLDEuNDgyLDAsMCwxLC43NjYtLjFBLjA2NS4wNjUsMCwwLDEsMzAsNi4wODFoMGMuMDE1LjA3LS4wOTIuMTIxLS4zMDYuMjI0YTIuNzMsMi43MywwLDAsMC0xLjU0MiwxLjQ2MywxLjgyNywxLjgyNywwLDAsMC0uMTI3LjY2NywxLjY0NSwxLjY0NSwwLDAsMCwuMjkxLjg4NSwxLjg4OSwxLjg4OSwwLDAsMSwuMzE3LjkxNCwxLjgxNCwxLjgxNCwwLDAsMS0uMjY0LDEuMDM5LjgwOS44MDksMCwwLDEtLjQyMS4zNDJabTEuODg5LTUuNTQ5YTIuMTE3LDIuMTE3LDAsMCwwLS42MDguMTE3LDIuNTg4LDIuNTg4LDAsMCwwLTEuMDQ4LjcxNSwyLjc2NCwyLjc2NCwwLDAsMC0uOTA5LDEuODM3LDIuOTM1LDIuOTM1LDAsMCwwLC4yNTYsMS4wNSw0Ljk1NSw0Ljk1NSwwLDAsMCwuMjI1LjQ5LDEuNDMzLDEuNDMzLDAsMCwxLC4yMi43NDUsMS43NjUsMS43NjUsMCwwLDEtLjA0Ny4zNDFjLS4wMTkuMDkxLS4wMzUuMTYzLS4wMDkuMTg4YS4wNDYuMDQ2LDAsMCwwLC4wMzguMDEuNzY5Ljc2OSwwLDAsMCwuMzgyLS4zMiwxLjc5MywxLjc5MywwLDAsMCwuMjU0LTEuMDA1LDEuODQ0LDEuODQ0LDAsMCwwLS4zMS0uODksMS43MTEsMS43MTEsMCwwLDEtLjMtLjkxMSwxLjg3NywxLjg3NywwLDAsMSwuMTMtLjY4NkEyLjc3NiwyLjc3NiwwLDAsMSwyOS42Nyw2LjI1N2MuMTI2LS4wNjEuMjgzLS4xMzYuMjc3LS4xNjRsLS4wMDgtLjAwN0EuMjY0LjI2NCwwLDAsMCwyOS44MjMsNi4wNjhaXFxcIi8+XCIsXG5cdH0sXG5cdFwiUG93ZXJRdWVyeVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZmNmY2ZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0zMCwyNS41ODNIMjUuNzU3VjE1LjM3OGE4LjI3MSw4LjI3MSwwLDAsMC0uODMyLTQuMjYxQTMuMDYxLDMuMDYxLDAsMCwwLDIyLjExOCw5LjhhMy4zODMsMy4zODMsMCwwLDAtMi44MjYsMS42NjQsNi43OTEsNi43OTEsMCwwLDAtMS4xNjEsMy45ODdWMjUuNTgzSDEzLjg2OVYxNS4wMzFxMC01LjIzMS0zLjY5NC01LjIzMWEzLjMzMiwzLjMzMiwwLDAsMC0yLjgyNiwxLjU3Myw2LjkzNSw2LjkzNSwwLDAsMC0xLjEwNiw0LjA3OFYyNS41ODNIMlY2Ljg1Nkg2LjI0M1Y5LjgxOGguMDczYTYuNDg4LDYuNDg4LDAsMCwxLDUuOTA3LTMuNCw1LjU2OSw1LjU2OSwwLDAsMSwzLjM5MywxLjA3QTUuMzI4LDUuMzI4LDAsMCwxLDE3LjYsMTAuMjk0YTYuNjgzLDYuNjgzLDAsMCwxLDYuMjE4LTMuODc3UTMwLDYuNDE3LDMwLDE0LjA0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz5cIixcblx0fSxcblx0XCJQb3dlclNoZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiIzUzOTFmZVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMjMuMzI1XFxcIiB5MT1cXFwiLTExOC41NDNcXFwiIHgyPVxcXCI3LjI2XFxcIiB5Mj1cXFwiLTEwNC4xOTNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC05NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1MzkxZmVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZTZkYmZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjcuMVxcXCIgeTE9XFxcIi0xMDQuMDAyXFxcIiB4Mj1cXFwiMjMuMDAxXFxcIiB5Mj1cXFwiLTExOC4yOTJcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcG93ZXJzaGVsbDwvdGl0bGU+PHBhdGggZD1cXFwiTTMuMTc0LDI2LjU4OWExLjE1NCwxLjE1NCwwLDAsMS0uOTI4LS40MjMsMS4yMzQsMS4yMzQsMCwwLDEtLjIxLTEuMDUyTDYuMjMzLDYuNzhBMS44LDEuOCwwLDAsMSw3LjkxNCw1LjQxSDI4LjgyNmExLjE1NywxLjE1NywwLDAsMSwuOTI4LjQyMywxLjIzNSwxLjIzNSwwLDAsMSwuMjEsMS4wNTJsLTQuMiwxOC4zMzVhMS44LDEuOCwwLDAsMS0xLjY4MSwxLjM3SDMuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjkxNCw1LjY0NkgyOC44MjZhLjkxMy45MTMsMCwwLDEsLjkwOCwxLjE4N2wtNC4yLDE4LjMzNGExLjU3NSwxLjU3NSwwLDAsMS0xLjQ1MSwxLjE4N0gzLjE3NGEuOTEzLjkxMywwLDAsMS0uOTA4LTEuMTg3bDQuMi0xOC4zMzRBMS41NzQsMS41NzQsMCwwLDEsNy45MTQsNS42NDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA0LDIxLjU0NGg1LjA4NmExLjExOCwxLjExOCwwLDAsMSwwLDIuMjM0SDE2LjA0YTEuMTE4LDEuMTE4LDAsMCwxLDAtMi4yMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmM1NTkxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjMzOSwxNi41NzhhMS43NjIsMS43NjIsMCwwLDEtLjU5MS42TDkuMzA5LDIzLjk1M2ExLjIyNCwxLjIyNCwwLDAsMS0xLjQzOC0xLjk3N2w4LjUxMi02LjE2NHYtLjEyNkwxMS4wMzUsMTBhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODItMS42NzJsNi40MTgsNi44MjdBMS4xNjYsMS4xNjYsMCwwLDEsMTkuMzM5LDE2LjU3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyYzU1OTE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4zNDJhMS43NDksMS43NDksMCwwLDEtLjU5LjZMOS4wNzQsMjMuNzE4YTEuMjI1LDEuMjI1LDAsMCwxLTEuNDM5LTEuOTc3bDguNTEzLTYuMTY0VjE1LjQ1TDEwLjgsOS43NjFhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODMtMS42NzJMMTksMTQuOTE2QTEuMTYyLDEuMTYyLDAsMCwxLDE5LjEsMTYuMzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45LDIxLjQxMmg1LjA4NmExLjA1OSwxLjA1OSwwLDEsMSwwLDIuMTE4SDE1LjlhMS4wNTksMS4wNTksMCwxLDEsMC0yLjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlByb2Nlc3NpbmdcIjoge1xuXHRcdGNvbG91cjogXCIjMWM0YzcwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIjNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjI5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWM0YzcwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGMyYjQyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wcm9jZXNzaW5nbGFuZzwvdGl0bGU+PHBhdGggZD1cXFwiTTE1LjkyMiwxOS45NjJhMTMsMTMsMCwwLDEtMS42NDctLjA3N3Y1LjU1MmEyNy43NiwyNy43NiwwLDAsMSwzLjMzMi40NjFWMjlINS45NjhWMjUuOUEyNy45ODgsMjcuOTg4LDAsMCwxLDkuMywyNS40MzhWNi43MTVhMjguMjE1LDI4LjIxNSwwLDAsMS0zLjMzMS0uNDZ2LTMuMUg4Ljk1NUMxMC4xOCwzLjE1MywxMy41NDksMywxNi4yMywzYzYuMzE4LDAsOS44LDIuOTQ4LDkuOCw4QzI2LjAzMSwxNi4wMTgsMjIuMiwxOS45NjIsMTUuOTIyLDE5Ljk2MlpNMTYsNy4wNThjLS42MTMsMC0xLjE0OSwwLTEuNzIzLjAzOHY4LjYxNWE5LjY5NCw5LjY5NCwwLDAsMCwxLjQ1NS4xMTVjMy4wMjUtLjAzOCw1LjEzLTEuNzIzLDUuMTMtNC41MTlDMjAuODYyLDguNywxOS40MDcsNy4wNTgsMTYsNy4wNThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiUHJvbG9nXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VjMWMyNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTM0MS4yNVxcXCIgY3k9XFxcIi0zMzk2Ljg2NlxcXCIgcj1cXFwiMTguMjk5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xMzI3LjA3NyAzNDA1LjkzNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTgxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmJmYmZiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM2NVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VmZWZmMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NTJcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmViZmMyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgyNFxcXCIgc3RvcC1jb2xvcj1cXFwiI2FlYjBiM1xcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJiXFxcIiBjeD1cXFwiNi42NzhcXFwiIGN5PVxcXCI4NC43NFxcXCIgcj1cXFwiMTUuNTU0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xLjg4NCAtODYuMTU0KSBzY2FsZSgxLjA3MiAxLjE2NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYWZkZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDc5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWVmNWZhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIyXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2ZkZmVjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwN1xcXCIgc3RvcC1jb2xvcj1cXFwiIzlkYmJkNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzFcXFwiIHN0b3AtY29sb3I9XFxcIiM1ODhhYjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzQ1XFxcIiBzdG9wLWNvbG9yPVxcXCIjMzI2ZmE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc5OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJiNjY5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTdcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzRlNzhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTk0XFxcIiBzdG9wLWNvbG9yPVxcXCIjMDAzMTUyXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImNcXFwiIGN4PVxcXCIxMS4yNDFcXFwiIGN5PVxcXCItOS44OTdcXFwiIHI9XFxcIjE2LjU5NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgwIDIyLjYzMSkgc2NhbGUoMSAxLjA2MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ1NDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWMxYzI0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc2MDAwMFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJkXFxcIiBjeD1cXFwiMTIuMjg2XFxcIiBjeT1cXFwiMjYuMTI3XFxcIiByPVxcXCIyLjA4M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZGZlMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNzRcXFwiIHN0b3AtY29sb3I9XFxcIiNkOWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2RjZmQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2I4YmFiYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YzllOWZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODkxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzg3OTdiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNWU1ZjYxXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImVcXFwiIGN4PVxcXCIxOS4wNjRcXFwiIGN5PVxcXCIyNi4xMjdcXFwiIHI9XFxcIjIuMDgzXFxcIiB4bGluazpocmVmPVxcXCIjZFxcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZlxcXCIgY3g9XFxcIjE1LjQzNFxcXCIgY3k9XFxcIjE2LjE5MVxcXCIgcj1cXFwiMi42ODdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMCAwLjQ2MSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcHJvbG9nPC90aXRsZT48ZyBzdHlsZT1cXFwiaXNvbGF0aW9uOmlzb2xhdGVcXFwiPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNi42MDIgMTQuOTIpIHJvdGF0ZSgtNDIuMjY1KVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45MzgsNi4zMDlhOS43ODUsOS43ODUsMCwwLDAtNi41LTIuMzM5QzguNTY0LDMuOTcsMy43NzQsNy43LDMuNDA1LDE0Ljk2MWMtLjQsNy44LDQuNzUsMTIuODYyLDEyLDEyLjg2MiwxMC43MzMsMCwxNi42NzItOS43OCwxMC4wMjctMjAuMzg4LDQuNjcxLDEwLjYtLjUyNywxNy4yNzktNy4yMzYsMTcuMjc5LTUuNDQxLDAtOS42MS0zLjY1MS05LjYxLTEwLjM0NUM4LjU4Miw0LjcwOSwxNS44MjMsNC4wMzksMTkuOTM4LDYuMzA5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi43LDEwLjQxNWMtLjI5My0uOTQtLjY0NS0yLjc4OC42MzQtMy44NmEzLjcyOSwzLjcyOSwwLDAsMC0zLjg0NCwxLjUzNEE5LjE2NSw5LjE2NSwwLDAsMCwxMiw4LjEsMy43MjksMy43MjksMCwwLDAsOC4xNTIsNi41NTVjMS4zMDksMS4xLjkxLDMuMDA1LjYxNCwzLjkyM0ExMC41MTcsMTAuNTE3LDAsMCwwLDYuMSwxNy41MjRjMCwyLjE3NCwxLjQsNC42NDUsMS42NzUsNy45NTVsMS43NjgtMS41MzJhMTEuNzQzLDExLjc0MywwLDAsMCw2LjIxMiwxLjQzMywxMS43NDEsMTEuNzQxLDAsMCwwLDYuMjEyLTEuNDMzbDEuNzY5LDEuNTMyYy4yOC0zLjMxLDEuNjc1LTUuNzgxLDEuNjc1LTcuOTU1QTEwLjUxMiwxMC41MTIsMCwwLDAsMjIuNywxMC40MTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjcyMiwyNy44NjdhMS42MjEsMS42MjEsMCwxLDEsMy4yNCwwYzAsLjAxOCwwLC4wMzUsMCwuMDUzYTIuMjM0LDIuMjM0LDAsMSwwLTMuMjI4LjEyNkMxMC43MjUsMjcuOTg3LDEwLjcyMiwyNy45MjcsMTAuNzIyLDI3Ljg2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMjAuNjI5LDI3Ljg2N2ExLjYyMSwxLjYyMSwwLDEsMC0zLjI0LDBjMCwuMDE4LDAsLjAzNSwwLC4wNTNhMi4yMzQsMi4yMzQsMCwxLDEsMy4yMjguMTI2QTEuNjc4LDEuNjc4LDAsMCwwLDIwLjYyOSwyNy44NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC41MzttaXgtYmxlbmQtbW9kZTptdWx0aXBseVxcXCI+PHBhdGggZD1cXFwiTTguMzQ2LDE4LjRjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3QTEuMzU5LDEuMzU5LDAsMCwxLDYuODA5LDE4LjFhMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCw4LjM0NiwxOC40WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4wMDgsMTguNzM3Yy0uMTMyLjY2Ny0uOTcyLjg3Ny0uOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDEtLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMCwuNDQ0LDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwwLDEwLjAwOCwxOC43MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTguODMzLDIwLjI0OWMtLjEzMi42NjctLjk3MS44NzctLjk3MS44NzdBMS4zNTksMS4zNTksMCwwLDEsNy4zLDE5Ljk0NGEyLjkyOSwyLjkyOSwwLDAsMCwuNDQzLDEuNzkzQTIuOTI1LDIuOTI1LDAsMCwwLDguODMzLDIwLjI0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTAuNSwyMC41ODNjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3YTEuMzYsMS4zNiwwLDAsMS0uNTY2LTEuMTgyQTIuOTI5LDIuOTI5LDAsMCwwLDkuNCwyMi4wNzIsMi45MjcsMi45MjcsMCwwLDAsMTAuNSwyMC41ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTkuMzI4LDIyLjEyMWMtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNiwxLjM2LDAsMCwxLS41NjUtMS4xODIsMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMCw5LjMyOCwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTExLjY2NCwxOS4wN2MtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDEtLjU2NS0xLjE4MiwyLjkzLDIuOTMsMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCwxMS42NjQsMTkuMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNTM7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHlcXFwiPjxwYXRoIGQ9XFxcIk0yMy4xNTcsMTguNGMuMTMyLjY2Ny45NzEuODc3Ljk3MS44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2Ni0xLjE4MiwyLjkzLDIuOTMsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMy4xNTcsMTguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDk1LDE4LjczN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjUtMS4xODIsMi45MzEsMi45MzEsMCwwLDEtLjQ0NCwxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMSwyMS40OTUsMTguNzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi42NjksMjAuMjQ5Yy4xMzIuNjY3Ljk3MS44NzcuOTcxLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMS0uNDQzLDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwxLDIyLjY2OSwyMC4yNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjAwOCwyMC41ODNjLjEzMi42NjcuOTcxLjg3Ny45NzEuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMS4wMDgsMjAuNTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4xNzUsMjIuMTIxYy4xMzIuNjY3Ljk3Mi44NzcuOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQ0LDEuNzkzQTIuOTI3LDIuOTI3LDAsMCwxLDIyLjE3NSwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTE5LjgzOCwxOS4wN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQzLDEuNzkzQTIuOTI4LDIuOTI4LDAsMCwxLDE5LjgzOCwxOS4wN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48L2c+PGNpcmNsZSBjeD1cXFwiMTEuMzM5XFxcIiBjeT1cXFwiMTQuMDc0XFxcIiByPVxcXCIzLjgxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxjaXJjbGUgY3g9XFxcIjExLjYwM1xcXCIgY3k9XFxcIjE0LjAyN1xcXCIgcj1cXFwiMC4zNTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4xMTJcXFwiIGN5PVxcXCIxNC4wNzRcXFwiIHI9XFxcIjMuODE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuOTAzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjkwM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4zNzVcXFwiIGN5PVxcXCIxNC4wMjdcXFwiIHI9XFxcIjAuMzU3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcwNiwyMS41MmMwLTEuNDEyLDIuMTU3LTMuNDEzLDIuMTU3LTQuODg3YTIuMTU3LDIuMTU3LDAsMCwwLTQuMzEzLDBDMTMuNTUsMTguMTA3LDE1LjcwNiwyMC4xMDgsMTUuNzA2LDIxLjUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjwvZz5cIixcblx0fSxcblx0XCJQcm90b2NvbCBCdWZmZXJzXCI6IHtcblx0XHRjb2xvdXI6IFwiIzk3ZmYyN1wiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIxNS45OTYgMy4yMiAyNi45NjYgOS43IDI2Ljk1NCAyMi4zIDE2IDI4Ljc4IDUuMDM4IDIyLjQwOCA1LjAzNCA5LjYyOCAxNS45OTYgMy4yMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyLDMuOTg3LDkuMDJsMCwxNEwxNiwzMGwxMi03LjEuMDEzLTEzLjhaTTI2Ljk1NCwyMi4zLDE2LDI4Ljc4LDUuMDM4LDIyLjQwOGwwLTEyLjc4TDE2LDMuMjIsMjYuOTY2LDkuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxNzFjMWVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjU2OSAxMy42NTQgMTkuOTQ2IDE2Ljk2NCAxOS45NDMgMjQuODkgMjUuNTkgMjEuNTY1IDI1LjU2OSAxMy42NTRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZWE4ZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjI4MiAxMi4zMDMgMjUuNTY5IDEzLjY1NCAxOS45NDYgMTYuOTY0IDE5Ljk0MyAyNC44OSAxNy4zMjcgMjMuMzcgMTcuMzQ4IDE1Ljg3NSAyMy4yODIgMTIuMzAzXFxcIiBzdHlsZT1cXFwiZmlsbDojNTBiZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi41MTIgMTAuMzUgMjIuNTE0IDExLjgxNiAxNi40MTEgMTUuNDk4IDE2LjQxOCAyMy41OTcgMTQuOTk4IDI0LjQzMSAxNC45OTQgMTQuODU2IDIyLjUxMiAxMC4zNVxcXCIgc3R5bGU9XFxcImZpbGw6Izk3ZmYyN1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuMDA4IDguODcxIDIyLjUxMiAxMC4zNSAxNC45OTQgMTQuODU2IDE0Ljk5OCAyNC40MzEgMTIuMTk0IDIyLjgwMSAxMi4xODkgMTMuNDEzIDIwLjAwOCA4Ljg3MVxcXCIgc3R5bGU9XFxcImZpbGw6I2MyZmY3MlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuMjI2IDYuNjA2IDE5LjIyNiA4LjM3NCAxMS4yMSAxMy4wNzQgMTEuMjEgMjMuMTcyIDkuODA4IDIzLjk4OCA5LjgzNSAxMi4yNzcgMTkuMjI2IDYuNjA2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmYyNzRiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi4xNiA0Ljc4NCA2LjUzIDEwLjM5NCA2LjUyOSAyMi4wNzEgOS44MjcgMjMuOTg4IDkuODM1IDEyLjI3NyAxOS4yMzUgNi42MDYgMTYuMTYgNC43ODRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjVjNzdcXFwiLz5cIixcblx0fSxcblx0XCJQdWdcIjoge1xuXHRcdGNvbG91cjogXCIjNDQyODIzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUuNTE0LDEyLjg0NmMtLjA1Mi0uOTM4LjIwOS0xLjgyNS0uMjA5LTIuNTU0LTEuMDQzLTEuODI1LTMuNjQ5LTIuODY3LTguODYzLTIuODY3VjcuMzcyaDB2LjA1MmMtNS43MzUsMC04LjE4NSwxLjA0My05LjIyNywyLjg2N2E1LjYsNS42LDAsMCwwLS40NjksMi41NTQsOS41NDYsOS41NDYsMCwwLDAtLjI2MSwyLjQ1Yy4xNTYsMS4xNDcuMjYxLDIuMjk0LjQxNywzLjMzNi4xNTYuODg2LDEuNDA4LDEuNTY0LDEuNTY0LDIuNC4zMTMsMi4yNDIsMi4yOTQsMy4yODQsOC4wMjgsMy4yODR2LjI2MWgtLjF2LS4yNjFjNS4yMTMsMCw3LjQtMS4wNDMsNy43MTYtMy4yODQuMS0uODM0LDEuMTQ3LTEuNTEyLDEuMy0yLjQuMTU2LTEuMDQzLjIwOS0yLjE5LjM2NS0zLjMzNkExMS43NzQsMTEuNzc0LDAsMCwwLDI1LjUxNCwxMi44NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxMy42OGEzLjI0MSwzLjI0MSwwLDAsMSwyLjE5LDEuMTQ3Yy43My42MjYsMS45MjksMS4wNDMsMi40NSwxLjYxNmE0LjcxNSw0LjcxNSwwLDAsMSwxLjQwOCwxLjk4MSw4LjksOC45LDAsMCwxLC4zMTMsMi4yNDJjMCwuMjYxLjE1Ni4yMDkuNTczLDBhOS4wMiw5LjAyLDAsMCwwLDIuMTktMS44NzdjLS4xNTYuODg2LTEuMjUxLDEuNjY4LTEuMzU1LDIuNS0uMzEzLDIuMjQyLTIuNSwzLjMzNi03Ljg3MiwzLjMzNmguMzEzXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjUxOSwxMS45MDhjLjIwOS42NzguODg2LDMuMDI0LS40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDEsLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMCwxLjMsMS40MDgsMy40NzksMy40NzksMCwwLDAsMi41NTQtLjYyNiwyLjk1NiwyLjk1NiwwLDAsMCwuNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMC0yLjEzNy0xLjYxNkMyMS40LDExLjMzNCwxOS4zMSwxMS4xMjYsMTkuNTE5LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMi4xNzhcXFwiIGN5PVxcXCIxNC40MVxcXCIgcj1cXFwiMS45MjlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMS42NTZcXFwiIGN5PVxcXCIxMy41MjRcXFwiIHI9XFxcIjAuNTIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjIwNiwxNC4zMDZhMTcuNjgsMTcuNjgsMCwwLDEsMi43MTEsMi4zNDZjLjkzOCwxLjIuOTM4LDEuNDA4LjkzOCwxLjQwOGwtLjY3OC4zMTNhNy4xLDcuMSwwLDAsMC0yLjEzNy0yLjVjLTEuMi0uNjc4LTEuMzU1LTEuMjUxLTEuMzU1LTEuMjUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yMzUsMTMuNjhhMy42MDUsMy42MDUsMCwwLDAtMi4zNDYsMS4xNDdjLS43My42MjYtMi4wMzMsMS4wNDMtMi41LDEuNjE2YTQuODA2LDQuODA2LDAsMCwwLTEuNDYsMS45ODEsOC45LDguOSwwLDAsMC0uMzEzLDIuMjQyYzAsLjI2MS4wNTIuMzEzLS42MjYsMEE3Ljk3Miw3Ljk3MiwwLDAsMSw2LjgsMTguNzg5Yy4xNTYuODg2LDEuMjUxLDEuNjY4LDEuMzU1LDIuNS4zMTMsMi4xOSwyLjUsMy4yODQsNy44NzIsMy4yODRoLjM2NVxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4yMzksMTcuMjc3YTYuNTUyLDYuNTUyLDAsMCwwLTUuMTA5LTIuNjA3aDBhNi42MzgsNi42MzgsMCwwLDAtNS4xMDksMi42MDcsMy44NjEsMy44NjEsMCwwLDAtMS4wNDMsMy4xOGMwLDQuNjQsMS42MTYsMy4yMzIsMi43MTEsMy44MDZhNy40NjYsNy40NjYsMCwwLDAsMy4zODkuMzEzaDBhNy40LDcuNCwwLDAsMCwzLjM4OS0uMzEzYzEuMDk1LS41NzMsMi43MTEuODM0LDIuNzExLTMuODA2QTMuMzg2LDMuMzg2LDAsMCwwLDIxLjIzOSwxNy4yNzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyNiwxNS45NzRhOS41NDksOS41NDksMCwwLDEtLjQ2OSwyLjU1NGwuNTczLS4xNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRhOS41NDksOS41NDksMCwwLDAsLjQ2OSwyLjU1NGwtLjU3My0uMTU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zNTgsMTUuNDUzYy0uMjA5LS41MjEuNTczLTEuMzU1LDEuODI1LTEuMzU1czIuMDMzLjgzNCwxLjgyNSwxLjM1NS0xLjA0My42NzgtMS44MjUuNjc4QzE1LjM0OCwxNi4xMywxNC41NjYsMTUuOTc0LDE0LjM1OCwxNS40NTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRjMC0uMS43My0uMSwxLjE0Ny0uMzY1LDAsMC0uODM0LjI2MS0uOTkxLjE1NmEuNjU2LjY1NiwwLDAsMS0uMjA5LS4zNjUuNjU2LjY1NiwwLDAsMS0uMjA5LjM2NWMtLjE1Ni4xLTEuMDk1LS4xNTYtMS4wOTUtLjE1NmE4LjA1OCw4LjA1OCwwLDAsMSwxLjIuMzY1di40MTdhMTAuNDkyLDEwLjQ5MiwwLDAsMCwuMSwyLjAzM2MuMTU2LjIwOS4xLTEuNDYuMS0yLjAzM0ExLjMsMS4zLDAsMCwxLDE2LjE4MiwxNS45NzRaXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxOC45NDVhMy4zNSwzLjM1LDAsMCwxLDEuNjE2LjY3OCwzLjEyMSwzLjEyMSwwLDAsMC0xLjYxNi0xLjA5NSwzLjAzNiwzLjAzNiwwLDAsMC0xLjgyNSwxLjJBMy4zMTIsMy4zMTIsMCwwLDEsMTYuMTgyLDE4Ljk0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjRhNDFcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDc4LDIyLjhhOC45LDguOSwwLDAsMS0yLjQtLjQ2OWMtLjE1Ni0uMDUyLS4zMTMuMDUyLS40NjksMGE2LjE3Miw2LjE3MiwwLDAsMS0zLjE4LTIuMTM3di4yMDljMCw0LjY0LDEuNjE2LDMuMjMyLDIuNzExLDMuODA2YTcuNDY2LDcuNDY2LDAsMCwwLDMuMzg5LjMxM2gwYTcuNCw3LjQsMCwwLDAsMy4zODktLjMxM2MxLjA5NS0uNTczLDIuNzExLjgzNCwyLjcxMS0zLjgwNnYtLjQ2OUE1LjkxNCw1LjkxNCwwLDAsMSwxOSwyMi4yODJjLS4xNTYuMDUyLS40MTctLjA1Mi0uNTczLS4wNTJBNy4wNDUsNy4wNDUsMCwwLDEsMTYuMDc4LDIyLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTEzLjk0MSwyMC4zcy0uNTczLDEuNjY4LS4xNTYsMi40bC0uNTIxLS4yMDlBMTUuNDMzLDE1LjQzMywwLDAsMSwxMy45NDEsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTguMzIsMjAuM3MuNTczLDEuNjY4LjE1NiwyLjRMMTksMjIuNDkxQTEwLjYyOSwxMC42MjksMCwwLDAsMTguMzIsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTIuNTg1LDExLjkwOGMtLjIwOS42NzgtLjg4NiwzLjAyNC40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDAtLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMS0xLjMsMS40MDhBMy40NzksMy40NzksMCwwLDEsOC4yNTgsMTYuNWEyLjk1NiwyLjk1NiwwLDAsMS0uNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMSwyLjEzNy0xLjYxNkMxMC43MDksMTEuMzM0LDEyLjc5NCwxMS4xMjYsMTIuNTg1LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTMsMTguNTI4YTMuMzkzLDMuMzkzLDAsMCwxLDIuNDUsMi44Njd2LS4xYTMuMDUxLDMuMDUxLDAsMCwwLTIuNDUtMi45MTksMywzLDAsMCwwLTIuNDUsMi45MTl2LjFBMy40NjMsMy40NjMsMCwwLDEsMTYuMTMsMTguNTI4WlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNi41NDZcXFwiIGN5PVxcXCIxNS4xMzhcXFwiIHJ4PVxcXCIwLjE1NlxcXCIgcnk9XFxcIjAuMzEzXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy4yNTYgNC42MTEpIHJvdGF0ZSgtMTQuNDYpXFxcIiBzdHlsZT1cXFwiZmlsbDojMzMxNzEyXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE1LjYwOVxcXCIgY3k9XFxcIjE1LjE0NlxcXCIgcng9XFxcIjAuMzEzXFxcIiByeT1cXFwiMC4xNTZcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjQ4MiAyNS41NjcpIHJvdGF0ZSgtNzIuNzY1KVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzMTcxMlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjAzMVxcXCIgY3k9XFxcIjE0LjQxXFxcIiByPVxcXCIxLjkyOVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjU1MlxcXCIgY3k9XFxcIjEzLjUyNFxcXCIgcj1cXFwiMC41MjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYuNywxNC40MXMtLjUyMS4yMDktLjYyNi4yNjFhMi40OTIsMi40OTIsMCwwLDEtLjYyNi0uMjYxSDE2LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y0YTQxXFxcIi8+PHBhdGggZD1cXFwiTTEyLjksMTQuMzA2YTE3LjY4LDE3LjY4LDAsMCwwLTIuNzExLDIuMzQ2Yy0uOTM4LDEuMi0uOTM4LDEuNDA4LS45MzgsMS40MDhsLjY3OC4zMTNhNy4xLDcuMSwwLDAsMSwyLjEzNy0yLjVjMS4yLS42NzgsMS4zNTUtMS4yNTEsMS4zNTUtMS4yNTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTkuMDkyLDEwLjgxM2E0LjUxOSw0LjUxOSwwLDAsMS0xLjkyOSwyLjI5NEEyLjE5LDIuMTksMCwwLDAsOS4wOTIsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi45MDgsMTAuODEzYTQuNTE5LDQuNTE5LDAsMCwwLDEuOTI5LDIuMjk0QTIuMTksMi4xOSwwLDAsMSwyMi45MDgsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zMSwxMy44MzZhNS4xNiw1LjE2LDAsMCwwLTMuMDc2LTEuNDA4aC4xNTZhMy44NTIsMy44NTIsMCwwLDAtMy4wMjQsMS40MDgsNC44MzIsNC44MzIsMCwwLDEsMy4wMjQtMS4wNDNoMEE1Ljc4NSw1Ljc4NSwwLDAsMSwxOS4zMSwxMy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljc0NiwxMC45NjlhMi40NTUsMi40NTUsMCwwLDAtMS41NjQtLjkzOGguMTU2YTEuNzg2LDEuNzg2LDAsMCwwLTEuNTEyLjkzOCwyLjE4NywyLjE4NywwLDAsMSwxLjUxMi0uNjc4aDBBMS44OTQsMS44OTQsMCwwLDEsMTcuNzQ2LDEwLjk2OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTAuMDMxLDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMS0xLjc3My4yMDlIOC4wNWEzLjY4LDMuNjgsMCwwLDEtLjg4Ni0xLjUxMkEyLjI3LDIuMjcsMCwwLDAsMTAuMDMxLDE3Ljc0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjIuMTI2LDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMCwxLjc3My4yMDlIMjMuNjlhMS43NDksMS43NDksMCwwLDAsMS4wOTUtMS41MTJBMi4wMiwyLjAyLDAsMCwxLDIyLjEyNiwxNy43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTExLjIzLDEwLjcwOWE0Ljc1LDQuNzUsMCwwLDEsMi4yNDIuMWMuOTM4LjMxMy4yMDksMS41NjQuMzY1LDEuNjE2YTIuODY1LDIuODY1LDAsMCwxLDIuMjQyLS43M2MxLjc3My4xLDEuOTgxLjg4NiwyLjI0Mi43My4yNjEtLjEtLjI2MS0yLjE5LDIuNDUtMS43MiwwLDAtMi43NjMtLjczLTIuNjU5LDEuMjUxYTMuNjc1LDMuNjc1LDAsMCwwLTMuODU4LS4xUzE0LjgyNyw5LjkyNywxMS4yMywxMC43MDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUsOHMtMi40LDIuOTcyLTIuNzExLDQuMTE4Yy0uMzY1LDEuMTQ3LS42MjYsNS45NDMtLjkzOCw2LjYyMUw1Ljc1NiwxNC4wNDVsMi4wMzMtNC45WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NTYsOHMyLjQsMi45NzIsMi43MTEsNC4xMThjLjM2NSwxLjE0Ny42MjYsNS45NDMuOTM4LDYuNjIxTDI2LjQsMTQuMDQ1bC0yLjAzMy00LjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTIxLjUsOGExMS42MTcsMTEuNjE3LDAsMCwxLDMuMjg0LDQuNTg4Yy43MywyLjQ1LjQxNyw1LjQ3NC45OTEsNS44MzkuODM0LjUyMSwxLjcyLTIuNjA3LDIuMDMzLTIuOTE5LjQ2OS0uNTIxLDIuMDg1LTEuODc3LDIuMTktMi4xMzdzLTMuMjMyLTMuOTEtNC43NDQtNC42NEMyMy41ODUsNy44OTMsMjEuNCw3Ljc4OSwyMS41LDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY5LDkuM2ExNS4zNzksMTUuMzc5LDAsMCwxLDIuOTcyLDguNjU0bDEuMi0yLjQ1QTE2LjU2NCwxNi41NjQsMCwwLDAsMjMuNjksOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC41LDhhMTEuNjE3LDExLjYxNywwLDAsMC0zLjI4NCw0LjU4OGMtLjczLDIuNDUtLjQxNyw1LjQ3NC0uOTkxLDUuODM5LS44MzQuNTIxLTEuNzItMi42MDctMi4wMzMtMi45MTktLjQ2OS0uNTIxLTIuMDg1LTEuODc3LTIuMTktMi4xMzdzMy4yMzItMy45MSw0Ljc0NC00LjY0QzguNDE1LDcuODkzLDEwLjYsNy43ODksMTAuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk04LjMxLDkuM2ExNS4zNzksMTUuMzc5LDAsMCwwLTIuOTcyLDguNjU0TDQuMTQsMTUuNUExNi41NjQsMTYuNTY0LDAsMCwxLDguMzEsOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk02LjY0MiwxOC4wMDdhNC4xMTgsNC4xMTgsMCwwLDAsLjU3MywxLjU2NGMuMzY1LjM2NS4xLS4zMTMuMS0uMzEzcy0uMzY1LS4yMDktLjMxMy0xLjcyUzYuNjQyLDE4LjAwNyw2LjY0MiwxOC4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTI1LjQxLDE4LjAwN2E0LjExOCw0LjExOCwwLDAsMS0uNTczLDEuNTY0Yy0uMzY1LjM2NS0uMS0uMzEzLS4xLS4zMTNzLjM2NS0uMjA5LjMxMy0xLjcyQzI0Ljk5MywxNi4wNzgsMjUuNDEsMTguMDA3LDI1LjQxLDE4LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMy44ODlcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTIuODQ2XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjUzM1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxOC4xNjRcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTkuMTU0XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjE5LjQ2N1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz5cIixcblx0fSxcblx0XCJQdXBwZXRcIjoge1xuXHRcdGNvbG91cjogXCIjZmZhZTFhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUuMDg5LDExLjgyMkgxOC43TDE1LjI2Nyw4LjM4OFYySDYuOTExdjguMzU3SDEzLjNsMy40MjIsMy40MjJoMHY0LjQzMWgwbC0zLjQzNCwzLjQzNEg2LjkxMVYzMGg4LjM1N1YyMy42MTJoMEwxOC43LDIwLjE3OGg2LjM4OFpNOS43LDQuNzg2aDIuNzg2VjcuNTcxSDkuN1pNMTIuNDgyLDI3LjJIOS43VjI0LjQxN2gyLjc4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmFlMWFcXFwiLz5cIixcblx0fSxcblx0XCJQdXJlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzE2MTcxYlwiLFxuXHRcdGljb246IFwiPHJlY3Qgd2lkdGg9XFxcIjMyXFxcIiBoZWlnaHQ9XFxcIjMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMTYxNzFiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS44OTIgMjIuMTM2IDE5LjcwNiAyMC4wOTUgMTAuMTA3IDIwLjA5NSAxMi4yOTMgMjIuMTM2IDIxLjg5MiAyMi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjI5MyAxNC45OCAxMC4xMDcgMTcuMDIxIDE5LjcwNiAxNy4wMjEgMjEuODkyIDE0Ljk4IDEyLjI5MyAxNC45OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuODkxIDExLjkwNiAxOS43MDYgOS44NjQgMTAuMTA3IDkuODY0IDEyLjI5MyAxMS45MDYgMjEuODkxIDExLjkwNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjEsMTMuOTI2LDcuNjUyLDEyLjQ4MiwyLjMsMTcuODM2YTEuMDIzLDEuMDIzLDAsMCwwLDAsMS40NDNsNS4zNTQsNS4zNTRMOS4xLDIzLjE5LDQuNDY0LDE4LjU1OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNywxMi43MjEsMjQuMzQ4LDcuMzY2LDIyLjksOC44MWw0LjYzLDQuNjMyTDIyLjksMTguMDc1bDEuNDQzLDEuNDQzTDI5LjcsMTQuMTY1YTEuMDIxLDEuMDIxLDAsMCwwLDAtMS40NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiUHl0aG9uXCI6IHtcblx0XHRjb2xvdXI6IFwiIzM2NzFBMVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzMy4yNjhcXFwiIHkxPVxcXCItMjAyLjkxXFxcIiB4Mj1cXFwiLTEzMy4xOThcXFwiIHkyPVxcXCItMjAyLjg0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MjQzLjA2MSAzODUxOS4xNykgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMzODdlYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzNjY5OTRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0xMzMuNTc1XFxcIiB5MT1cXFwiLTIwMy4yMDNcXFwiIHgyPVxcXCItMTMzLjQ5NVxcXCIgeTI9XFxcIi0yMDMuMTMzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MzA5LjA2MSAzODU4My40Mikgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmUwNTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmMzMzFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3B5dGhvbjwvdGl0bGU+PHBhdGggZD1cXFwiTTE1Ljg4NSwyLjFjLTcuMSwwLTYuNjUxLDMuMDctNi42NTEsMy4wN1Y4LjM2aDYuNzUydjFINi41NDVTMiw4LjgsMiwxNi4wMDVzNC4wMTMsNi45MTIsNC4wMTMsNi45MTJIOC4zM1YxOS41NTZzLS4xMy00LjAxMywzLjktNC4wMTNoNi43NjJzMy43NzIuMDYsMy43NzItMy42NTJWNS44cy41NzItMy43MTItNi44NDItMy43MTJoMFpNMTIuMTUzLDQuMjM3YTEuMjE0LDEuMjE0LDAsMSwxLTEuMTgzLDEuMjQ0di0uMDJhMS4yMTQsMS4yMTQsMCwwLDEsMS4yMTQtMS4yMTRoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDg1LDI5LjkxYzcuMSwwLDYuNjUxLTMuMDgsNi42NTEtMy4wOFYyMy42NUgxNS45ODV2LTFoOS40N1MzMCwyMy4xNTgsMzAsMTUuOTk1cy00LjAxMy02LjkxMi00LjAxMy02LjkxMkgyMy42NFYxMi40cy4xMyw0LjAxMy0zLjksNC4wMTNIMTIuOTc1UzkuMiwxNi4zNTYsOS4yLDIwLjA2OFYyNi4ycy0uNTcyLDMuNzEyLDYuODQyLDMuNzEyaC4wNFptMy43MzItMi4xNDdBMS4yMTQsMS4yMTQsMCwxLDEsMjEsMjYuNTE5di4wM2ExLjIxNCwxLjIxNCwwLDAsMS0xLjIxNCwxLjIxNGguMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJRIChrZGIrIGRhdGFiYXNlKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMxZTc4YjNcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC4wOTIsMjlWMTkuNjgyQTYuOTUzLDYuOTUzLDAsMCwxLDE3LjcsMjEuNjQ1YTYuNzQzLDYuNzQzLDAsMCwxLTMuMDg5LjcyNEE2LjU1Nyw2LjU1NywwLDAsMSw5LjQxMywyMCwxMS4wODEsMTEuMDgxLDAsMCwxLDcsMTIuNDc1LDEwLjAzMywxMC4wMzMsMCwwLDEsOS4yNjQsNS41LDcuMjUxLDcuMjUxLDAsMCwxLDE0Ljg3NCwzYTYuMjY2LDYuMjY2LDAsMCwxLDMuMi43ODUsNy4zMjksNy4zMjksMCwwLDEsMi40LDIuMzczVjMuNDE5SDI1VjI5Wm0uMTU3LTE2LjU0MmE2LjQ5Miw2LjQ5MiwwLDAsMC0xLjE2LTQuMjMyLDMuNjM0LDMuNjM0LDAsMCwwLTIuOTA1LTEuMzg3LDMuNzQyLDMuNzQyLDAsMCwwLTIuOTc1LDEuNDEzLDYuODgxLDYuODgxLDAsMCwwLTEuMiw0LjQ4NSw2Ljc2Nyw2Ljc2NywwLDAsMCwxLjE1Miw0LjQwNkEzLjU5MywzLjU5MywwLDAsMCwxNi4wMDksMTguNWEzLjc4NiwzLjc4NiwwLDAsMCwyLjk2Ni0xLjUxOEE2Ljg4OSw2Ljg4OSwwLDAsMCwyMC4yNDksMTIuNDU4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlNzhiM1xcXCIvPlwiLFxuXHR9LFxuXHRcIlEjXCI6IHtcblx0XHRjb2xvdXI6IFwiIzMzMzNjY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE5LjQ1MSw2LjIxOGgyLjYzOFY4Ljg1NmgyLjYzN1Y2LjIxOGgyLjYzN1Y4Ljg1NkgzMFYxMS41SDI3LjM2NHYyLjYzNkgzMFYxNi43N0gyNy4zNjR2Mi42MzdIMjQuNzI3VjE2Ljc2OUgyMi4wOTFsMCwyLjYzN0gxOS40NTNWMTYuNzY4SDE2LjgxNVYxNC4xMjdoMi42MzhWMTEuNUgxNi44MTVWOC44NTNoMi42MzlabTIuNjM4LDcuOTE0aDIuNjM3VjExLjVIMjIuMDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4wMTgsMjEuNTI0YTExLjQzNiwxMS40MzYsMCwwLDAsMS41NzItNi4xOTIsMTAuODc3LDEwLjg3NywwLDAsMC0xLjg1OC02LjZBNS44ODksNS44ODksMCwwLDAsOC44MDgsNi4xNTNhNS45MjEsNS45MjEsMCwwLDAtNC45NCwyLjU4MUExMC44NDIsMTAuODQyLDAsMCwwLDIsMTUuMzMzYTEwLjg1MywxMC44NTMsMCwwLDAsMS44NjgsNi41OTIsNS45MTgsNS45MTgsMCwwLDAsNC45NDEsMi41ODgsNS43NDMsNS43NDMsMCwwLDAsMy4yNi0uOTg3bDIuMzA2LDIuMzIxLDEuNTc3LTIuNFptLTUuMTctMS4yMTgsMS4xMTcsMS4xMjFhMy4yMjksMy4yMjksMCwwLDEtMS4xNzQuMjE3LDMuMzM1LDMuMzM1LDAsMCwxLTIuODM3LTEuNTkzLDguMTI1LDguMTI1LDAsMCwxLTEuMTgtNC43MTksOC4xLDguMSwwLDAsMSwxLjE4NC00LjcyNCwzLjM3MiwzLjM3MiwwLDAsMSwyLjg3LTEuNTg4LDMuMzEsMy4zMSwwLDAsMSwyLjgxOSwxLjU4NSw4LjE3OCw4LjE3OCwwLDAsMSwxLjE3Miw0LjcyNiw5LjExMyw5LjExMywwLDAsMS0uODMzLDQuMTVsLTEuNTYtMS41NzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNjXFxcIi8+XCIsXG5cdH0sXG5cdFwiUU1MXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQxY2Q1MlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI3LjMsNUg1Ljg4NkwyLDguOTU4VjI2SDI2LjExNEwzMCwyMi4wNDJWNVpNMTYuOSwyMy4wN2wtMS44MjguODUyTDEzLjUsMjEuMzMxYTMuOTY4LDMuOTY4LDAsMCwxLTEuMDgyLjEwNmMtMS44NDUsMC0zLjEyMy0uNS0zLjg1LTEuNDlhOC4wMyw4LjAzLDAsMCwxLTEuMDgyLTQuNyw4LjM1MSw4LjM1MSwwLDAsMSwxLjEtNC43NzMsNC4zNzksNC4zNzksMCwwLDEsMy44MzMtMS41NjFjMS44MjgsMCwzLjA4Ny41MTUsMy44MzMsMS41NDRhOC4zNTEsOC4zNTEsMCwwLDEsMS4xLDQuNzczLDEwLjgwOSwxMC44MDksMCwwLDEtLjQ1MiwzLjQ0LDMuOSwzLjksMCwwLDEtMS40NzMsMlptNS44NDgtMS42N2EyLjczNSwyLjczNSwwLDAsMS0yLjE2OC0uNjkyQTQuMTkyLDQuMTkyLDAsMCwxLDIwLDE4LjFWMTRIMTlWMTJoMVY5aDJ2M2gydjJIMjJ2My45YTMuOTA3LDMuOTA3LDAsMCwwLC4xNjgsMS40MzdjLjExMi4yMzEuMzkzLjM1NS44Ni4zNTVsMS41MzMtLjA1My4wOTMsMS41NDRBMTIuNTE5LDEyLjUxOSwwLDAsMSwyMi43NDgsMjEuNFpNMTIuNDE2LDEwLjYxNGEyLjQsMi40LDAsMCwwLTIuMjg5LDEuMSw3LjY1Nyw3LjY1NywwLDAsMC0uNiwzLjUxMyw3LjEzMSw3LjEzMSwwLDAsMCwuNiwzLjQ0MkEyLjQ0LDIuNDQsMCwwLDAsMTIuNDMzLDE5LjdhMi40MTcsMi40MTcsMCwwLDAsMi4yODktMS4wMTEsNy4zNDMsNy4zNDMsMCwwLDAsLjU4Ni0zLjQ0Miw3LjY5Miw3LjY5MiwwLDAsMC0uNi0zLjUzMUEyLjQsMi40LDAsMCwwLDEyLjQxNiwxMC42MTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDFjZDUyXFxcIi8+XCIsXG5cdH0sXG5cdFwiUlwiOiB7XG5cdFx0Y29sb3VyOiBcIiMyNzZkYzNcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzQuODExXFxcIiB5MT1cXFwiLTEwMy4yODRcXFwiIHgyPVxcXCItMTM0Ljc3MlxcXCIgeTI9XFxcIi0xMDMuMzIzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDcyMS4wOTQsIDAsIDAsIC00ODIuOTM3LCA5NzIxMy41OTUsIC00OTg3NC41MTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2JjZWQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjODQ4MzhiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMTM1LjM3OFxcXCIgeTE9XFxcIi0xMDIuOTg1XFxcIiB4Mj1cXFwiLTEzNS4zMzlcXFwiIHkyPVxcXCItMTAzLjAyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgzOTgsIDAsIDAsIC00MDYuMTI0LCA1Mzg5MywgLTQxODEyLjgzNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyNzZkYzNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNjVjYWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3I8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyMy45NTZjLTcuNzMyLDAtMTQtNC4yLTE0LTkuMzc2UzguMjY4LDUuMiwxNiw1LjIsMzAsOS40LDMwLDE0LjU4LDIzLjczMiwyMy45NTYsMTYsMjMuOTU2Wk0xOC4xNDMsOC44N0MxMi4yNjYsOC44Nyw3LjUsMTEuNzQsNy41LDE1LjI4czQuNzY0LDYuNDEsMTAuNjQxLDYuNDEsMTAuMjE0LTEuOTYyLDEwLjIxNC02LjQxUzI0LjAyLDguODcsMTguMTQzLDguODdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjMyMSwxOS43MjZhMTAuNTQ1LDEwLjU0NSwwLDAsMSwxLjM0LjUsMi41OTEsMi41OTEsMCwwLDEsLjY4LjQ4NSwxLjgzNSwxLjgzNSwwLDAsMSwuMzExLjQ0N2wzLjMzOSw1LjYzLTUuNCwwLTIuNTI0LTQuNzRhNi4xLDYuMSwwLDAsMC0uODM1LTEuMTQ1Ljg3OS44NzksMCwwLDAtLjY0MS0uMjkxSDE4LjMxMXY2LjE3M2wtNC43NzYsMFYxMS4wMjZoOS41OTFTMjcuNSwxMS4xLDI3LjUsMTUuMjYxLDIzLjMyMSwxOS43MjYsMjMuMzIxLDE5LjcyNlptLTIuMDc3LTUuMjgtMi44OTEsMHYyLjY4MWgyLjg5M2ExLjMyMywxLjMyMywwLDAsMCwxLjM0LTEuMzY0QTEuMjQ3LDEuMjQ3LDAsMCwwLDIxLjI0NCwxNC40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJSYWNrZXRcIjoge1xuXHRcdGNvbG91cjogXCIjOWYxZDIwXCIsXG5cdFx0aWNvbjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wMTYsMjQuNjQxYTE0LDE0LDAsMCwwLTE1LjgtMjEuOEMxNi45LDUuODIyLDI0LjQxMywxNS41NDksMjcuMDE2LDI0LjY0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzZTViYTlcXFwiLz48cGF0aCBkPVxcXCJNMTMuOTk1LDEwLjkzYTI0LjMsMjQuMywwLDAsMC03LjIyLTUuNDZBMTQsMTQsMCwwLDAsNS40NjMsMjUuMjE3LDM5LjU2LDM5LjU2LDAsMCwxLDEzLjk5NSwxMC45M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ZjFkMjBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTc1LDE0LjFBMzIuNjQ1LDMyLjY0NSwwLDAsMCw5LjQzLDI4LjM2NWExNC4wMTYsMTQuMDE2LDAsMCwwLDEzLjMtLjA4OUEzOC42NDIsMzguNjQyLDAsMCwwLDE2LjU3NSwxNC4xWlxcXCIgc3R5bGU9XFxcImZpbGw6IzlmMWQyMFxcXCIvPlwiLFxuXHR9LFxuXHRcIlJhem9yIEMjXCI6IHtcblx0XHRjb2xvdXI6IFwiIzM2ODgzMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIzLjg0NCwyNy42OTJhMTYuMzMyLDE2LjMzMiwwLDAsMS02LjY0NSwxLjNxLTYuMzY0LDAtMTAuMDEzLTMuMjQzYTExLjMsMTEuMywwLDAsMS0zLjY0OS04LjlBMTMuNzE2LDEzLjcxNiwwLDAsMSw3LjMyMiw2Ljk1MSwxMi43MTYsMTIuNzE2LDAsMCwxLDE2LjksMy4wMDhhMTEuNjc2LDExLjY3NiwwLDAsMSw4LjQyNSwzLjAwNiw5Ljk5NCw5Ljk5NCwwLDAsMSwzLjE0Miw3LjUzMywxMC4xODcsMTAuMTg3LDAsMCwxLTIuMzE4LDcuMTE0LDcuNTMyLDcuNTMyLDAsMCwxLTUuODE3LDIuNTQ3LDIuNjEzLDIuNjEzLDAsMCwxLTEuODQ1LS42NDIsMi4zMjMsMi4zMjMsMCwwLDEtLjc2NC0xLjYsNC45LDQuOSwwLDAsMS00LjE0OCwyLjI0Myw0LjYsNC42LDAsMCwxLTMuNTA3LTEuNDc5LDUuNzA2LDUuNzA2LDAsMCwxLTEuMzg0LTQuMDYzLDkuOTEzLDkuOTEzLDAsMCwxLDIuMi02LjM1N3EyLjItMi43NjMsNC44LTIuNzYzYTUuMDYzLDUuMDYzLDAsMCwxLDQuMjU2LDEuNzE2bC4zMTEtMS4zMzhoMi40MDVsLTIuMDgxLDkuMDhhMTAuNzE2LDEwLjcxNiwwLDAsMC0uMzUyLDIuMjQzcTAsLjk3Mi43NDQuOTcyYTQuODE5LDQuODE5LDAsMCwwLDMuODc3LTIuMDQ3LDguOTMsOC45MywwLDAsMCwxLjYyMS01LjY4MSw3Ljk4LDcuOTgsMCwwLDAtMi42NzUtNi4xNzUsOS44ODcsOS44ODcsMCwwLDAtNi45MTktMi40MzJBMTAuNiwxMC42LDAsMCwwLDguNzEzLDguMzUyYTEyLjA2NiwxMi4wNjYsMCwwLDAtMy4yLDguNDk1LDkuNTYxLDkuNTYxLDAsMCwwLDMuMDYsNy41NzNxMy4wNiwyLjcsOC41ODYsMi43YTEzLjc1NywxMy43NTcsMCwwLDAsNS42NzUtMS4wNTRaTTE5LjQ2NiwxMi4yNWEzLjk3NywzLjk3NywwLDAsMC0zLjYtMS43MTZxLTEuODI0LDAtMy4yNjMsMi4yM2E4LjcyNiw4LjcyNiwwLDAsMC0xLjQzOSw0LjgyNHEwLDMuNjM1LDIuOTA1LDMuNjM1QTMuNzcxLDMuNzcxLDAsMCwwLDE2LjcyLDIwLjA0YTYuMzA5LDYuMzA5LDAsMCwwLDEuNy0zLjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzY4ODMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhY3QgSlNYXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwZDhmZlwiLFxuXHRcdGljb246IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45NzRcXFwiIHI9XFxcIjIuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyMS43MDZhMjguMzg1LDI4LjM4NSwwLDAsMS04Ljg4LTEuMiwxMS4zLDExLjMsMCwwLDEtMy42NTctMS45NThBMy41NDMsMy41NDMsMCwwLDEsMiwxNS45NzRjMC0xLjY1MywxLjgxNi0zLjI3Myw0Ljg1OC00LjMzM0EyOC43NTUsMjguNzU1LDAsMCwxLDE2LDEwLjI5M2EyOC42NzQsMjguNjc0LDAsMCwxLDkuMDIyLDEuMzI0LDExLjM3NiwxMS4zNzYsMCwwLDEsMy41MzgsMS44NjZBMy4zOTEsMy4zOTEsMCwwLDEsMzAsMTUuOTc0YzAsMS43MTgtMi4wMywzLjQ1OS01LjMsNC41NDFBMjguOCwyOC44LDAsMCwxLDE2LDIxLjcwNlptMC0xMC4yMTdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC04Ljc0OSwxLjI4MmMtMi44Ljk3Ny00LjA1NSwyLjMxMy00LjA1NSwzLjIsMCwuOTI4LDEuMzQ5LDIuMzg3LDQuMzExLDMuNEEyNy4yMSwyNy4yMSwwLDAsMCwxNiwyMC41MWEyNy42LDI3LjYsMCwwLDAsOC4zMjUtMS4xM0MyNy40LDE4LjM2MSwyOC44LDE2LjksMjguOCwxNS45NzRhMi4zMjcsMi4zMjcsMCwwLDAtMS4wMS0xLjU3MywxMC4xOTQsMTAuMTk0LDAsMCwwLTMuMTYxLTEuNjU0QTI3LjQ2MiwyNy40NjIsMCwwLDAsMTYsMTEuNDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMiwyOC40NDNhMi42MzksMi42MzksMCwwLDEtMS4zMzYtLjMyOGMtMS40MzItLjgyNi0xLjkyOC0zLjIwOC0xLjMyNy02LjM3M2EyOC43NTUsMjguNzU1LDAsMCwxLDMuNC04LjU5M2gwQTI4LjY3NiwyOC42NzYsMCwwLDEsMTYuNzEsNS45OTVhMTEuMzc2LDExLjM3NiwwLDAsMSwzLjM4NC0yLjEzMywzLjM5MSwzLjM5MSwwLDAsMSwyLjg3OCwwYzEuNDg5Ljg1OCwxLjk4MiwzLjQ4NiwxLjI4Nyw2Ljg1OWEyOC44MDYsMjguODA2LDAsMCwxLTMuMzE2LDguMTMzLDI4LjM4NSwyOC4zODUsMCwwLDEtNS40NzYsNy4wOTMsMTEuMywxMS4zLDAsMCwxLTMuNTIzLDIuMTg5QTQuOTI2LDQuOTI2LDAsMCwxLDEwLjMyLDI4LjQ0M1ptMS43NzMtMTQuN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTMuMjYsOC4yMTljLS41NTMsMi45MTUtLjAyMiw0LjY2OC43NSw1LjExNC44LjQ2MywyLjc0Mi4wMjQsNS4xLTIuMDM2YTI3LjIwOSwyNy4yMDksMCwwLDAsNS4yMjctNi43OSwyNy42LDI3LjYsMCwwLDAsMy4xODEtNy43NzZjLjY1NC0zLjE3NS4wODktNS4xMTktLjcxMy01LjU4MWEyLjMyNywyLjMyNywwLDAsMC0xLjg2OC4wODlBMTAuMTk0LDEwLjE5NCwwLDAsMCwxNy41LDYuOWEyNy40NjQsMjcuNDY0LDAsMCwwLTUuNCw2Ljg0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGQ4ZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjc3LDI4LjQ1NmMtMS4zNTUsMC0zLjA3Ni0uODItNC44NjgtMi4zNjFhMjguNzU2LDI4Ljc1NiwwLDAsMS01Ljc0Ny03LjIzN2gwYTI4LjY3NiwyOC42NzYsMCwwLDEtMy4zNzQtOC40NzEsMTEuMzc2LDExLjM3NiwwLDAsMS0uMTU4LTRBMy4zOTEsMy4zOTEsMCwwLDEsOC45NjQsMy45YzEuNDg3LS44NjEsNC4wMS4wMjQsNi41ODUsMi4zMWEyOC44LDI4LjgsMCwwLDEsNS4zOSw2LjkzNCwyOC4zODQsMjguMzg0LDAsMCwxLDMuNDEsOC4yODcsMTEuMywxMS4zLDAsMCwxLC4xMzcsNC4xNDYsMy41NDMsMy41NDMsMCwwLDEtMS40OTQsMi41NTVBMi41OSwyLjU5LDAsMCwxLDIxLjY3NywyOC40NTZabS05LjU4LTEwLjJhMjcuOTQ5LDI3Ljk0OSwwLDAsMCw1LjQ5Miw2LjkyOWMyLjI0OSwxLjkzNSw0LjAzMywyLjM1MSw0LjgsMS45LjgtLjQ2NSwxLjM5LTIuMzYzLjc4Mi01LjQzNEEyNy4yMTIsMjcuMjEyLDAsMCwwLDE5LjksMTMuNzQsMjcuNiwyNy42LDAsMCwwLDE0Ljc1NSw3LjFjLTIuNDI0LTIuMTUyLTQuMzktMi42MzMtNS4xOTEtMi4xNjlhMi4zMjcsMi4zMjcsMCwwLDAtLjg1NSwxLjY2MiwxMC4xOTQsMTAuMTk0LDAsMCwwLC4xNTMsMy41NjUsMjcuNDY1LDI3LjQ2NSwwLDAsMCwzLjIzNiw4LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhY3QgVFNYXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwN2FjY1wiLFxuXHRcdGljb246IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45NzRcXFwiIHI9XFxcIjIuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyMS43MDZhMjguMzg1LDI4LjM4NSwwLDAsMS04Ljg4LTEuMiwxMS4zLDExLjMsMCwwLDEtMy42NTctMS45NThBMy41NDMsMy41NDMsMCwwLDEsMiwxNS45NzRjMC0xLjY1MywxLjgxNi0zLjI3Myw0Ljg1OC00LjMzM0EyOC43NTUsMjguNzU1LDAsMCwxLDE2LDEwLjI5M2EyOC42NzQsMjguNjc0LDAsMCwxLDkuMDIyLDEuMzI0LDExLjM3NiwxMS4zNzYsMCwwLDEsMy41MzgsMS44NjZBMy4zOTEsMy4zOTEsMCwwLDEsMzAsMTUuOTc0YzAsMS43MTgtMi4wMywzLjQ1OS01LjMsNC41NDFBMjguOCwyOC44LDAsMCwxLDE2LDIxLjcwNlptMC0xMC4yMTdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC04Ljc0OSwxLjI4MmMtMi44Ljk3Ny00LjA1NSwyLjMxMy00LjA1NSwzLjIsMCwuOTI4LDEuMzQ5LDIuMzg3LDQuMzExLDMuNEEyNy4yMSwyNy4yMSwwLDAsMCwxNiwyMC41MWEyNy42LDI3LjYsMCwwLDAsOC4zMjUtMS4xM0MyNy40LDE4LjM2MSwyOC44LDE2LjksMjguOCwxNS45NzRhMi4zMjcsMi4zMjcsMCwwLDAtMS4wMS0xLjU3MywxMC4xOTQsMTAuMTk0LDAsMCwwLTMuMTYxLTEuNjU0QTI3LjQ2MiwyNy40NjIsMCwwLDAsMTYsMTEuNDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMiwyOC40NDNhMi42MzksMi42MzksMCwwLDEtMS4zMzYtLjMyOGMtMS40MzItLjgyNi0xLjkyOC0zLjIwOC0xLjMyNy02LjM3M2EyOC43NTUsMjguNzU1LDAsMCwxLDMuNC04LjU5M2gwQTI4LjY3NiwyOC42NzYsMCwwLDEsMTYuNzEsNS45OTVhMTEuMzc2LDExLjM3NiwwLDAsMSwzLjM4NC0yLjEzMywzLjM5MSwzLjM5MSwwLDAsMSwyLjg3OCwwYzEuNDg5Ljg1OCwxLjk4MiwzLjQ4NiwxLjI4Nyw2Ljg1OWEyOC44MDYsMjguODA2LDAsMCwxLTMuMzE2LDguMTMzLDI4LjM4NSwyOC4zODUsMCwwLDEtNS40NzYsNy4wOTMsMTEuMywxMS4zLDAsMCwxLTMuNTIzLDIuMTg5QTQuOTI2LDQuOTI2LDAsMCwxLDEwLjMyLDI4LjQ0M1ptMS43NzMtMTQuN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTMuMjYsOC4yMTljLS41NTMsMi45MTUtLjAyMiw0LjY2OC43NSw1LjExNC44LjQ2MywyLjc0Mi4wMjQsNS4xLTIuMDM2YTI3LjIwOSwyNy4yMDksMCwwLDAsNS4yMjctNi43OSwyNy42LDI3LjYsMCwwLDAsMy4xODEtNy43NzZjLjY1NC0zLjE3NS4wODktNS4xMTktLjcxMy01LjU4MWEyLjMyNywyLjMyNywwLDAsMC0xLjg2OC4wODlBMTAuMTk0LDEwLjE5NCwwLDAsMCwxNy41LDYuOWEyNy40NjQsMjcuNDY0LDAsMCwwLTUuNCw2Ljg0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjc3LDI4LjQ1NmMtMS4zNTUsMC0zLjA3Ni0uODItNC44NjgtMi4zNjFhMjguNzU2LDI4Ljc1NiwwLDAsMS01Ljc0Ny03LjIzN2gwYTI4LjY3NiwyOC42NzYsMCwwLDEtMy4zNzQtOC40NzEsMTEuMzc2LDExLjM3NiwwLDAsMS0uMTU4LTRBMy4zOTEsMy4zOTEsMCwwLDEsOC45NjQsMy45YzEuNDg3LS44NjEsNC4wMS4wMjQsNi41ODUsMi4zMWEyOC44LDI4LjgsMCwwLDEsNS4zOSw2LjkzNCwyOC4zODQsMjguMzg0LDAsMCwxLDMuNDEsOC4yODcsMTEuMywxMS4zLDAsMCwxLC4xMzcsNC4xNDYsMy41NDMsMy41NDMsMCwwLDEtMS40OTQsMi41NTVBMi41OSwyLjU5LDAsMCwxLDIxLjY3NywyOC40NTZabS05LjU4LTEwLjJhMjcuOTQ5LDI3Ljk0OSwwLDAsMCw1LjQ5Miw2LjkyOWMyLjI0OSwxLjkzNSw0LjAzMywyLjM1MSw0LjgsMS45LjgtLjQ2NSwxLjM5LTIuMzYzLjc4Mi01LjQzNEEyNy4yMTIsMjcuMjEyLDAsMCwwLDE5LjksMTMuNzQsMjcuNiwyNy42LDAsMCwwLDE0Ljc1NSw3LjFjLTIuNDI0LTIuMTUyLTQuMzktMi42MzMtNS4xOTEtMi4xNjlhMi4zMjcsMi4zMjcsMCwwLDAtLjg1NSwxLjY2MiwxMC4xOTQsMTAuMTk0LDAsMCwwLC4xNTMsMy41NjUsMjcuNDY1LDI3LjQ2NSwwLDAsMCwzLjIzNiw4LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhc29uXCI6IHtcblx0XHRjb2xvdXI6IFwiI2RkNGIzOVwiLFxuXHRcdGljb246IFwiPHBvbHlsaW5lIHBvaW50cz1cXFwiMiAyIDMwIDIgMzAgMzAgMiAzMCAyIDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRiMzlcXFwiLz48cGF0aCBkPVxcXCJNOS4wNTEsMTcuNTI3cTIuNTM3LDAsNS4wNzIsMEE0Ljk0Nyw0Ljk0NywwLDAsMSwxNy4xLDE4LjVhMy4yOSwzLjI5LDAsMCwxLDEuMTI4LDIuMjY3LDQuMTE3LDQuMTE3LDAsMCwxLS43NzgsMy4wMjIsMy42LDMuNiwwLDAsMS0xLjEzNy45MDVsMi4yNDcsMy41NDktMy4wNjEsMC0xLjYtMy4wNDMtMi4xNTQsMCwwLDMuMDMySDkuMDUxVjE3LjUyN20yLjY5LDIuMTI4LDAsMy40MzgsMS45ODksMGEyLjE4NCwyLjE4NCwwLDAsMCwxLjQ2OC0uNDUyLDEuODE0LDEuODE0LDAsMCwwLC40ODItMS41NDQsMS40NjksMS40NjksMCwwLDAtLjcwNS0xLjE4LDIuNzY4LDIuNzY4LDAsMCwwLTEuNDM3LS4yNjlDMTIuOTQsMTkuNjU0LDExLjc0MSwxOS42NTUsMTEuNzQxLDE5LjY1NVptOC4zODQtMi4xM2g4LjM1djIuMTNoLTUuNjZWMjEuOGw1LjExLDB2Mi4xMTlIMjIuODJWMjYuMWg1LjgyNHYyLjE0MkgyMC4xMjVWMTcuNTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJlZ29cIjoge1xuXHRcdGNvbG91cjogXCIjNzg5MjlhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48Y2xpcFBhdGggaWQ9XFxcImFcXFwiPjxwYXRoIGQ9XFxcIk03LjA1NSwxNi4yNDFjMy40MTUtMTAuMjIsMTQuNzU5LTkuNDczLDE3LjkyNCwwbC4xLDUuODkzYTE1LjU2MiwxNS41NjIsMCwwLDAtOS4wMzYsNy4yNDZBMTcuNjQxLDE3LjY0MSwwLDAsMCw3LjAzLDIyLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48L2NsaXBQYXRoPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3JlZ288L3RpdGxlPjxwYXRoIGQ9XFxcIk03LjAzLDE2LjI0MWwyLjYtNC41NTljLTIuNDE4LS4zMTItMi42MDYtMy40MzEtLjgtOS4wNjJDMy44MDksOC44NTMsMi40MiwxMC4yMjgsNy4wMywxNi4yNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTI0Ljk3LDE2LjI0MWwtMi41OTUtNC41NTljMi40MTgtLjMxMiwyLjYwNi0zLjQzMS44LTkuMDYyQzI4LjE5MSw4Ljg1MywyOS41OCwxMC4yMjgsMjQuOTcsMTYuMjQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjA1NSwxNi4yNDFjMy40MTUtMTAuMjIsMTQuNzU5LTkuNDczLDE3LjkyNCwwbC4xLDUuODkzYTE1LjU2MiwxNS41NjIsMCwwLDAtOS4wMzYsNy4yNDZBMTcuNjQxLDE3LjY0MSwwLDAsMCw3LjAzLDIyLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48ZyBzdHlsZT1cXFwiY2xpcC1wYXRoOnVybCgjYSlcXFwiPjxyZWN0IHg9XFxcIjE2LjA1M1xcXCIgeT1cXFwiNy45NjJcXFwiIHdpZHRoPVxcXCI5LjU0OVxcXCIgaGVpZ2h0PVxcXCIyMS44OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzYzNjdcXFwiLz48cmVjdCB4PVxcXCI1LjMyMlxcXCIgeT1cXFwiNy45NjJcXFwiIHdpZHRoPVxcXCIxMC43MzJcXFwiIGhlaWdodD1cXFwiMjEuODk5XFxcIiBzdHlsZT1cXFwiZmlsbDojNzg5MjlhXFxcIi8+PC9nPjxjaXJjbGUgY3g9XFxcIjE2LjA0XFxcIiBjeT1cXFwiMTYuMjQxXFxcIiByPVxcXCIxLjE2NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2U4NGY0ZlwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTEuNDIxXFxcIiB5MT1cXFwiLTIyMS43MDVcXFwiIHgyPVxcXCIyMS41MDlcXFwiIHkyPVxcXCItMjQ4Ljc5MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgLTIxOClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlODRmNGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGI0NjQ2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NiMzkzOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcmVzY3JpcHQ8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDEwLjk3YzAtMy43MzgsMC01LjYuOTUyLTYuOTE2YTQuOTkyLDQuOTkyLDAsMCwxLDEuMS0xLjFDNS4zNjQsMiw3LjIzMywyLDEwLjk2OSwySDIxLjAzYzMuNzM4LDAsNS42MDUsMCw2LjkxNi45NTFhNC45OTIsNC45OTIsMCwwLDEsMS4xLDEuMUMzMCw1LjM2NCwzMCw3LjIzMiwzMCwxMC45N1YyMS4wM2MwLDMuNzM3LDAsNS42MDUtLjk1Miw2LjkxNmE0Ljk2Niw0Ljk2NiwwLDAsMS0xLjEsMS4xQzI2LjYzNiwzMCwyNC43NjgsMzAsMjEuMDMsMzBIMTAuOTY5Yy0zLjczNiwwLTUuNiwwLTYuOTE1LS45NTJhNC45NjYsNC45NjYsMCwwLDEtMS4xLTEuMUMyLDI2LjYzNiwyLDI0Ljc2NywyLDIxLjAzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45NzQsMTUuNTU0YTMuMzI1LDMuMzI1LDAsMSwwLTMuMzI0LTMuMzI1QTMuMzI1LDMuMzI1LDAsMCwwLDIwLjk3NCwxNS41NTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTkuMzE2LDExLjgwOWE0LjY3Niw0LjY3NiwwLDAsMSwuMjA2LTEuOTg3QTEuODg2LDEuODg2LDAsMCwxLDEwLjM0NSw5YTQuNyw0LjcsMCwwLDEsMS45ODctLjIwNWgyLjY0VjIxLjA0NWE0LjY4Niw0LjY4NiwwLDAsMS0uMTQ0LDEuNjY0LDEuODkyLDEuODkyLDAsMCwxLTEuMDIsMS4wMiw0LjcyLDQuNzIsMCwwLDEtMS42NjQuMTQzLDQuNzE3LDQuNzE3LDAsMCwxLTEuNjY0LS4xNDMsMS44OTIsMS44OTIsMCwwLDEtMS4wMi0xLjAyLDQuNzIsNC43MiwwLDAsMS0uMTQzLTEuNjY0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NlM2YzMVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LDMwQTEzLjg1OSwxMy44NTksMCwwLDEsMi4yODYsMTYsMTQuMTQ5LDE0LjE0OSwwLDAsMSw2LjMsNi4xLDEzLjUxNywxMy41MTcsMCwwLDEsMjUuNyw2LjEsMTQuMTQ5LDE0LjE0OSwwLDAsMSwyOS43MTQsMTYsMTMuODU5LDEzLjg1OSwwLDAsMSwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTNmMzFcXFwiLz48cGF0aCBkPVxcXCJNMTEuODY5LDIzLjAxNWgtLjRhNC4yNjMsNC4yNjMsMCwwLDEtMS4wNDgtLjExMywxLjM4NywxLjM4NywwLDAsMS0uNzY3LS41NDgsMi4yLDIuMiwwLDAsMS0uNDA5LTEuMDI2QTEzLjI4LDEzLjI4LDAsMCwxLDkuMTU5LDE5LjZhMTIuNzgsMTIuNzgsMCwwLDAtLjA4LTEuNjg3LDEuNzczLDEuNzczLDAsMCwwLS40MDUtLjkyNCwxLjMyNSwxLjMyNSwwLDAsMC0xLjAyNi0uMzkxVjE1LjRhMS4zMjUsMS4zMjUsMCwwLDAsMS4wMjYtLjM5MSwxLjc3MywxLjc3MywwLDAsMCwuNDA1LS45MjQsMTIuNzgsMTIuNzgsMCwwLDAsLjA4LTEuNjg3LDEzLjI4LDEzLjI4LDAsMCwxLC4wODQtMS43MzEsMi4yLDIuMiwwLDAsMSwuNDA5LTEuMDI2LDEuMzg3LDEuMzg3LDAsMCwxLC43NjctLjU0OCw0LjI2Myw0LjI2MywwLDAsMSwxLjA0OC0uMTEzaC40djEuMTRoLS4yMjZxLS43NiwwLS45MzEuNGE3LjcyLDcuNzIsMCwwLDAtLjE3MiwyLjE3LDQuODc2LDQuODc2LDAsMCwxLS40MTYsMi4zMTZBMi4xMTcsMi4xMTcsMCwwLDEsOC44NTksMTZhMi4wODksMi4wODksMCwwLDEsMS4yNjQuOTg2QTQuODc2LDQuODc2LDAsMCwxLDEwLjU0LDE5LjNhNy43Miw3LjcyLDAsMCwwLC4xNzIsMi4xN3EuMTcyLjQuOTMxLjRoLjIyNlptMS42LTMuMTQxaDEuMDM1VjE2LjQyaDEuNDU5bDEuOTcsMy40NTRoMS4xODRMMTcuMDQsMTYuMzA4YTIuMjQzLDIuMjQzLDAsMCwwLDEuODMzLTIuMzE5YzAtMS43LTEuMi0yLjI5NC0yLjg1NS0yLjI5NEgxMy40NzRabTEuMDM1LTQuM1YxMi41M2gxLjM1OWMxLjI3MiwwLDEuOTcuMzg2LDEuOTcsMS40NTlzLS43LDEuNTgzLTEuOTcsMS41ODNabTUuNTU3LTYuNTkxaC40YTQuMjYzLDQuMjYzLDAsMCwxLDEuMDQ4LjExMywxLjM4NywxLjM4NywwLDAsMSwuNzY3LjU0OCwyLjIsMi4yLDAsMCwxLC40MDksMS4wMjYsMTMuMjgsMTMuMjgsMCwwLDEsLjA4NCwxLjczMSwxMi43OCwxMi43OCwwLDAsMCwuMDgsMS42ODcsMS43NzMsMS43NzMsMCwwLDAsLjQwNS45MjQsMS4zMjUsMS4zMjUsMCwwLDAsMS4wMjYuMzkxdjEuMTkxYTEuMzI1LDEuMzI1LDAsMCwwLTEuMDI2LjM5MSwxLjc3MywxLjc3MywwLDAsMC0uNDA1LjkyNCwxMi43OCwxMi43OCwwLDAsMC0uMDgsMS42ODcsMTMuMjgsMTMuMjgsMCwwLDEtLjA4NCwxLjczMSwyLjIsMi4yLDAsMCwxLS40MDksMS4wMjYsMS4zODcsMS4zODcsMCwwLDEtLjc2Ny41NDgsNC4yNjMsNC4yNjMsMCwwLDEtMS4wNDguMTEzaC0uNHYtMS4xNGguMjI2cS43NiwwLC45MzEtLjRBNy43Miw3LjcyLDAsMCwwLDIxLjQsMTkuM2E0Ljg3Niw0Ljg3NiwwLDAsMSwuNDE2LTIuMzE2QTIuMDg5LDIuMDg5LDAsMCwxLDIzLjA3NSwxNmEyLjExNywyLjExNywwLDAsMS0xLjI2NC0uOTk0LDQuODc2LDQuODc2LDAsMCwxLS40MTYtMi4zMTYsNy43Miw3LjcyLDAsMCwwLS4xNzItMi4xN3EtLjE3Mi0uNC0uOTMxLS40aC0uMjI2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJvYm90IEZyYW1ld29ya1wiOiB7XG5cdFx0aWNvbjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zODcsMTQuNmEyLjcyNywyLjcyNywwLDAsMSw1LjQ1MywwLC45OS45OSwwLDEsMS0xLjk4LDAsLjc0Ni43NDYsMCwwLDAtMS40OTIsMCwuOTkuOTksMCwxLDEtMS45OCwwbTExLjMsNC41ODZhLjk5MS45OTEsMCwwLDEtLjk5Mi45OTJIMTEuNTA4YS45OTIuOTkyLDAsMCwxLDAtMS45ODRoOS4xODRhLjk5NC45OTQsMCwwLDEsLjk5Mi45OTJNMTcuMzkxLDE1LjE2YS45OTIuOTkyLDAsMCwxLC4yNy0xLjM3NWwyLjI5My0xLjU1MWEuOTg5Ljk4OSwwLDEsMSwxLjEwOSwxLjYzN2wtMi4zLDEuNTUxYS45NjUuOTY1LDAsMCwxLS41NTEuMTcyLjk5NC45OTQsMCwwLDEtLjgyNC0uNDM0bTYuMjg5LDYuMDk0YS43MDcuNzA3LDAsMCwxLS4yMDcuNWwtMS43MDcsMS43MDdhLjcwNy43MDcsMCwwLDEtLjUuMjA3SDEwLjhhLjcwNy43MDcsMCwwLDEtLjUtLjIwN0w4LjYsMjEuNzU0YS43MDcuNzA3LDAsMCwxLS4yMDctLjVWMTAuOGEuNzA3LjcwNywwLDAsMSwuMjA3LS41TDEwLjMsOC41OTRhLjcwNy43MDcsMCwwLDEsLjUtLjIwN0gyMS4yNjZhLjcwNy43MDcsMCwwLDEsLjUuMjA3TDIzLjQ3MywxMC4zYS43MDcuNzA3LDAsMCwxLC4yMDcuNVpNMjUuMTI5LDkuMTYsMjIuOSw2LjkzQTEuODA3LDEuODA3LDAsMCwwLDIxLjYyOSw2LjRIMTAuNDM4YTEuODA3LDEuODA3LDAsMCwwLTEuMjczLjUyN0w2LjkzOCw5LjE2YTEuOCwxLjgsMCwwLDAtLjUyNywxLjI3VjIxLjYyMWExLjgsMS44LDAsMCwwLC41MjcsMS4yNzNsMi4yMjcsMi4yM2ExLjgxLDEuODEsMCwwLDAsMS4yNzMuNTIzSDIxLjYyOWExLjgsMS44LDAsMCwwLDEuMjczLS41MjNsMi4yMjctMi4yM2ExLjc4NCwxLjc4NCwwLDAsMCwuNTI3LTEuMjczVjEwLjQzNGExLjc4NCwxLjc4NCwwLDAsMC0uNTI3LTEuMjczXFxcIi8+XCIsXG5cdH0sXG5cdFwiUnVieVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNiMzEzMDFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0yMzUuOTU3XFxcIiB5MT1cXFwiLTMwOC41NzlcXFwiIHgyPVxcXCItMjM1Ljk4NlxcXCIgeTI9XFxcIi0zMDguNTI3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDIwMi45MzUsIDAsIDAsIC0yMDIuNzgsIDQ3OTEwLjQ2MSwgLTYyNTQxLjE2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiNzY1NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U0MmIxZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTIzNS41NzFcXFwiIHkxPVxcXCItMzA5LjA4N1xcXCIgeDI9XFxcIi0yMzUuNjk3XFxcIiB5Mj1cXFwiLTMwOS4wNDFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNjAuMzA4LCAwLCAwLCAtMTExLjc3OCwgMTQyMzYuMzUxLCAtMzQ1MjUuMzk1KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzg3MTEwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxMTIwOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxMTIwOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTIzNS44OTZcXFwiIHkxPVxcXCItMzEzLjM2MlxcXCIgeDI9XFxcIi0yMzUuOTM3XFxcIiB5Mj1cXFwiLTMxMy4xMjlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTg4LjMyLCAwLCAwLCAtMjEuOTg2LCA0NDQ0Ny4zMDIsIC02ODU2Ljg4MilcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTIzMy41MTVcXFwiIHkxPVxcXCItMzA5LjA4MlxcXCIgeDI9XFxcIi0yMzMuNDk3XFxcIiB5Mj1cXFwiLTMwOS4xNjFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNjUuMjIyLCAwLCAwLCAtOTcuMSwgMTUyMzcuODAyLCAtMjk5OTEuODE0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2U1NzI1MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlM2IyMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E2MDAwM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E2MDAwM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiLTIzNS4zMTRcXFwiIHkxPVxcXCItMzA5LjUzNFxcXCIgeDI9XFxcIi0yMzUuMzFcXFwiIHkyPVxcXCItMzA5LjYwN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxMDUuMzIsIDAsIDAsIC0xMDYuODI1LCAyNDc5OC45MjUsIC0zMzA1My4xNTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQ3MTRlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmUxYTBkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCItMjM1Ljg4MlxcXCIgeTE9XFxcIi0zMTEuODUxXFxcIiB4Mj1cXFwiLTIzNS44NjlcXFwiIHkyPVxcXCItMzExLjkzNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5NC4zMjEsIDAsIDAsIC02Ni40MTgsIDIyMjcxLjQ5OSwgLTIwNzA3LjAwNClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMThcXFwiIHN0b3AtY29sb3I9XFxcIiNlNDYzNDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNFxcXCIgc3RvcC1jb2xvcj1cXFwiI2M4MjQxMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiLTIzNS40MTJcXFwiIHkxPVxcXCItMzIxLjA3NFxcXCIgeDI9XFxcIi0yMzUuMzMzXFxcIiB5Mj1cXFwiLTMyMC45NThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNzAuNzY3LCAwLCAwLCAtMjQuMzAxLCAxNjY3OC4xMTYsIC03Nzk4LjY0NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTRcXFwiIHN0b3AtY29sb3I9XFxcIiNjODFmMTFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjA5MDVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjA5MDVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIi0yMjMuODIxXFxcIiB5MT1cXFwiLTMxMC4xMTZcXFwiIHgyPVxcXCItMjIzLjc5NlxcXCIgeTI9XFxcIi0zMTAuMThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTguMTc3LCAwLCAwLCAtNzIuNjQ1LCA0MDcxLjAxNywgLTIyNTEwLjIzMylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzFcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTQwMjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjE5MGJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjE5MGJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaVxcXCIgeDE9XFxcIi0yMzUuNTYxXFxcIiB5MT1cXFwiLTMwOS4yNThcXFwiIHgyPVxcXCItMjM1LjQyNFxcXCIgeTI9XFxcIi0zMDkuMTE2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1OC4xNjIsIDAsIDAsIC0xNTcuOTM3LCAzNzI1Ni4zMTMsIC00ODgxOS4zODIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYmQwMDEyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjI3XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzgyZjFjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMzXFxcIiBzdG9wLWNvbG9yPVxcXCIjODIwYzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTMxNjAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcyXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjMxMzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTgyNjA5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTgyNjA5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItMjM1LjQyNFxcXCIgeTE9XFxcIi0zMDkuMTQzXFxcIiB4Mj1cXFwiLTIzNS40NzZcXFwiIHkyPVxcXCItMzA5LjEyNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxMjcuMDc0LCAwLCAwLCAtOTcuNDA5LCAyOTkzMi4yMjksIC0zMDA4Ni45NDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGMwYzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTkwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDBlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDBlXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCItMjM1LjgzOVxcXCIgeTE9XFxcIi0zMDkuNjA0XFxcIiB4Mj1cXFwiLTIzNS45MDFcXFwiIHkyPVxcXCItMzA5LjU1NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5NC4wMTEsIDAsIDAsIC0xMDUuNjAzLCAyMjE5OC43NDMsIC0zMjY3Ni44NTYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2UxMTBiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUwYzAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImxcXFwiIHgxPVxcXCItMjM1Ljg1NFxcXCIgeTE9XFxcIi0zMTEuMjRcXFwiIHgyPVxcXCItMjM1Ljg5MVxcXCIgeTI9XFxcIi0zMTEuMjAyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDc5LjcwMiwgMCwgMCwgLTgxLjc5MSwgMTg4MjcuMzk3LCAtMjU0NDcuOTA1KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc5MTMwZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTIwYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTIwYlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJtXFxcIiBjeD1cXFwiLTIzNS44ODJcXFwiIGN5PVxcXCItMzEyLjU0M1xcXCIgcj1cXFwiMC4wNzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoOTMuMTEzLCAwLCAwLCAtNDguNjU1LCAyMTk4Ni4wNzMsIC0xNTE5My42MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTBlMDhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTBlMDhcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiblxcXCIgY3g9XFxcIi0yMzUuMjgyXFxcIiBjeT1cXFwiLTMwOS43MDRcXFwiIHI9XFxcIjAuMDk3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDk3LjQzNCwgMCwgMCwgLTc1Ljg0OCwgMjI5MzcuMDU3LCAtMjM0NjcuODQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTMwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjODAwZTA4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjODAwZTA4XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm9cXFwiIHgxPVxcXCItMjMxLjI0MVxcXCIgeTE9XFxcIi0zMDkuNDM1XFxcIiB4Mj1cXFwiLTIzMS4yOTlcXFwiIHkyPVxcXCItMzA5LjMzN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg0MC4xMzcsIDAsIDAsIC04MS4xNDMsIDkyODYuOTk4LCAtMjUwNzguNTg5KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzhiMjExNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTAwYVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTAwY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTAwY1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJwXFxcIiB4MT1cXFwiLTIzNS44OThcXFwiIHkxPVxcXCItMzE3LjQ2NlxcXCIgeDI9XFxcIi0yMzUuODMxXFxcIiB5Mj1cXFwiLTMxNy41MzdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNzguMDk5LCAwLCAwLCAtMzIuNjI0LCAxODQ0Ny4zNjEsIC0xMDM1My41NTMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjMxMDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTEwZjA4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzkxYzEyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzkxYzEyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9ydWJ5PC90aXRsZT48cGF0aCBkPVxcXCJNMjMuNjkzLDIwLjQ2OSw3LjcwNywyOS45NjFsMjAuNy0xLjRMMzAsNy42ODVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI4LjQ0LDI4LjU0MiwyNi42NjEsMTYuMjYzbC00Ljg0Niw2LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTI4LjQ2NCwyOC41NDIsMTUuNDMsMjcuNTE5LDcuNzc2LDI5LjkzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNNy43OTQsMjkuOTM3LDExLjA1LDE5LjI3LDMuODg1LDIwLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTIxLjgxMywyMi43bC0zLTExLjczNUwxMC4yNDMsMTlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTI5LjMyLDExLjEyN2wtOC4xLTYuNjE5LTIuMjU3LDcuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTMsMi4xNDgsMjAuNzYzLDQuNzgybC0zLjAwNy0yLjY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDI0LjM4bDItMy42NDJMMi4zODIsMTYuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMi4yNzQsMTYuMjYzLDMuOSwyMC44NzNsNy4wNjItMS41ODRMMTkuMDI0LDExLjgsMjEuMyw0LjU2OWwtMy41ODMtMi41My02LjA5MSwyLjI4QzkuNzA2LDYuMSw1Ljk4Miw5LjYzNSw1Ljg0OCw5LjdzLTIuNDU5LDQuNDY0LTMuNTc0LDYuNTYyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk03Ljk4MSw3Ljk4MUMxMi4xNCwzLjg1OCwxNy41LDEuNDIxLDE5LjU1OSwzLjVzLS4xMjQsNy4xMjEtNC4yODMsMTEuMjQ0UzUuODIxLDIxLjQzNCwzLjc2NSwxOS4zNTgsMy44MjIsMTIuMSw3Ljk4MSw3Ljk4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNNy43OTQsMjkuOTMzbDMuMjMxLTEwLjcsMTAuNzI5LDMuNDQ3Yy0zLjg3OSwzLjYzOC04LjE5NCw2LjcxMy0xMy45Niw3LjI1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDM4LDExLjc3NGwyLjc1NCwxMC45MWMzLjI0LTMuNDA3LDYuMTQ5LTcuMDcsNy41NzMtMTEuNmwtMTAuMzI4LjY5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz48cGF0aCBkPVxcXCJNMjkuMzM3LDExLjEzOWMxLjEtMy4zMjcsMS4zNTctOC4xLTMuODQxLTguOTg1TDIxLjIzMSw0LjUwOWw4LjEwNiw2LjYyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbClcXFwiLz48cGF0aCBkPVxcXCJNMiwyNC4zMzJjLjE1Myw1LjQ5LDQuMTE0LDUuNTcyLDUuOCw1LjYybC0zLjktOS4xTDIsMjQuMzMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzllMTIwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNTMsMTEuNzkxYzIuNDksMS41MzEsNy41MDksNC42LDcuNjEsNC42NjFhMTcuNTUyLDE3LjU1MiwwLDAsMCwyLjYxOS01LjM0M2wtMTAuMjI5LjY4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbSlcXFwiLz48cGF0aCBkPVxcXCJNMTEuMDIxLDE5LjIzMmw0LjMxOSw4LjMzMmEyNy45MjQsMjcuOTI0LDAsMCwwLDYuMzg1LTQuODhsLTEwLjctMy40NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI24pXFxcIi8+PHBhdGggZD1cXFwiTTMuODg3LDIwLjg2MWwtLjYxMiw3LjI4N2MxLjE1NSwxLjU3NywyLjc0MywxLjcxNCw0LjQwOSwxLjU5MS0xLjIwNS0zLTMuNjE0LTktMy44LTguODc4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNvKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4yMDYsNC41MjhsOC41OCwxLjJjLS40NTgtMS45NC0xLjg2NC0zLjE5Mi00LjI2MS0zLjU4NGwtNC4zMTksMi4zOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcClcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlJ1c3RcIjoge1xuXHRcdGNvbG91cjogXCIjYTA0ZjEyXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCItNDkyLjAzNVxcXCIgY3k9XFxcIi04ODMuMzdcXFwiIHI9XFxcIjEzLjk5OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjg2NiwgLTAuNSwgLTAuMywgLTAuNTIsIDE3Ny4xMDYsIC02ODkuMDMzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzdkN2Q3ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNjdcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTdjN2FcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDVcXFwiIHN0b3AtY29sb3I9XFxcIiM4MTc4NzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjA4XFxcIiBzdG9wLWNvbG9yPVxcXCIjODY3MTYyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc1M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzhkNjg0Y1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44ODZcXFwiIHN0b3AtY29sb3I9XFxcIiM5NjVjMzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDRmMTJcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3J1c3Q8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNS4xMjQsNS4zYS44MzIuODMyLDAsMSwxLC44MzIuODMyaDBhLjgzMS44MzEsMCwwLDEtLjgzMi0uODMyTTUuMiwxMi44MzRhLjgzMi44MzIsMCwxLDEsLjgzMi44MzJoMGEuODMyLjgzMiwwLDAsMS0uODMyLS44MzJtMTkuODU2LjAzOWEuODMyLjgzMiwwLDEsMSwuODMyLjgzMi44MzEuODMxLDAsMCwxLS44MzItLjgzMmgwTTcuNjA1LDE0LjAxM2EuNzYuNzYsMCwwLDAsLjM4Ni0xbC0uMzY5LS44MzVIOS4wNzR2Ni41NDVINi4xNDRhMTAuMjQ3LDEwLjI0NywwLDAsMS0uMzMyLTMuOTExWm02LjA3NC4xNjFWMTIuMjQ1aDMuNDU4Yy4xNzksMCwxLjI2MS4yMDYsMS4yNjEsMS4wMTYsMCwuNjcyLS44My45MTMtMS41MTMuOTEzWk04Ljk1OCwyNC41NjFhLjgzMi44MzIsMCwxLDEsLjgzMi44MzIuODMxLjgzMSwwLDAsMS0uODMyLS44MzJoMG0xMi4zMzEuMDM5YS44MzIuODMyLDAsMSwxLC44MzIuODMyLjgzMi44MzIsMCwwLDEtLjgzMi0uODMyaDBtLjI1Ny0xLjg4N2EuNzU4Ljc1OCwwLDAsMC0uOS41ODRsLS40MTgsMS45NDlhMTAuMjQ5LDEwLjI0OSwwLDAsMS04LjU0NS0uMDQxbC0uNDE3LTEuOTQ5YS43NTkuNzU5LDAsMCwwLS45LS41ODNoMGwtMS43MjEuMzdhMTAuMjMzLDEwLjIzMywwLDAsMS0uODktMS4wNDloOC4zNzRjLjA5NSwwLC4xNTgtLjAxNy4xNTgtLjFWMTguOTI4YzAtLjA4Ni0uMDYzLS4xLS4xNTgtLjFoLTIuNDVWMTYuOTQ3aDIuNjQ5YTEuNjY1LDEuNjY1LDAsMCwxLDEuNjI5LDEuNDEyYy4xMDUuNDEzLjMzNiwxLjc1Ny40OTQsMi4xODcuMTU3LjQ4My44LDEuNDQ3LDEuNDgyLDEuNDQ3aDQuMzIzYTEwLjI0MywxMC4yNDMsMCwwLDEtLjk0OSwxLjFabTQuNjUtNy44MjFhMTAuMjYxLDEwLjI2MSwwLDAsMSwuMDIyLDEuNzc5SDI1LjE2N2MtLjEwNSwwLS4xNDguMDY5LS4xNDguMTcydi40ODNjMCwxLjEzNi0uNjQxLDEuMzg0LTEuMiwxLjQ0Ny0uNTM1LjA2LTEuMTI4LS4yMjQtMS4yLS41NTFhMy42MTYsMy42MTYsMCwwLDAtMS42NzEtMi44MDhjMS4wMy0uNjU0LDIuMS0xLjYxOSwyLjEtMi45MTFBMy4yOTIsMy4yOTIsMCwwLDAsMjEuNDQsOS44YTQuNTU5LDQuNTU5LDAsMCwwLTIuMi0uNzI0SDguMzY3QTEwLjI0NiwxMC4yNDYsMCwwLDEsMTQuMSw1Ljg0bDEuMjgyLDEuMzQ0YS43NTguNzU4LDAsMCwwLDEuMDcyLjAyNmgwbDEuNDM0LTEuMzcyYTEwLjI0OCwxMC4yNDgsMCwwLDEsNy4wMTUsNWwtLjk4MiwyLjIxN2EuNzYxLjc2MSwwLDAsMCwuMzg2LDFabTIuNDQ4LjAzNi0uMDMzLS4zNDMsMS4wMTEtLjk0M2EuNDIuNDIsMCwwLDAtLjAxMy0uNTk1LjQyOC40MjgsMCwwLDAtLjEyMS0uMDgxTDI4LjIsMTIuNDgzbC0uMS0uMzM0LjgwNi0xLjEyYS40MjIuNDIyLDAsMCwwLS4xMy0uNTgxLjQzLjQzLDAsMCwwLS4xMzMtLjA1NWwtMS4zNjMtLjIyMi0uMTY0LS4zMDYuNTczLTEuMjU3YS40MTkuNDE5LDAsMCwwLS4yMzYtLjU0NC40MjYuNDI2LDAsMCwwLS4xNDYtLjAyOWwtMS4zODMuMDQ4TDI1LjcsNy44MTlsLjMxOC0xLjM0N2EuNDIxLjQyMSwwLDAsMC0uMzQzLS40ODcuNDM1LjQzNSwwLDAsMC0uMTQ0LDBMMjQuMTgzLDYuM2wtLjI2Ni0uMjE5TDIzLjk2Niw0LjdhLjQyMS40MjEsMCwwLDAtLjQzMS0uNDExLjQyNi40MjYsMCwwLDAtLjE0MS4wMjhsLTEuMjU3LjU3My0uMzA2LS4xNjQtLjIyMi0xLjM2M2EuNDIxLjQyMSwwLDAsMC0uNS0uMzE4LjQzLjQzLDAsMCwwLS4xMzMuMDU1bC0xLjEyMS44MDYtLjMzMy0uMS0uNDgzLTEuMjkzYS40MjEuNDIxLDAsMCwwLS41NTUtLjIxNS40NDIuNDQyLDAsMCwwLS4xMi4wOEwxNy40MTgsMy4zOWwtLjM0My0uMDMzTDE2LjM0NywyLjE4YS40MjEuNDIxLDAsMCwwLS42ODgsMGwtLjcyOCwxLjE3Ny0uMzQzLjAzMy0uOTQzLTEuMDEyYS40MjEuNDIxLDAsMCwwLS41OTUuMDE1LjQ0Mi40NDIsMCwwLDAtLjA4LjEyTDEyLjQ4MywzLjhsLS4zMzMuMS0xLjEyLS44YS40MjIuNDIyLDAsMCwwLS41ODEuMTMuNDMuNDMsMCwwLDAtLjA1NS4xMzNsLS4yMjIsMS4zNjMtLjMwNi4xNjRMOC42MDgsNC4zMTdhLjQyMS40MjEsMCwwLDAtLjU0NC4yMzkuNDQ0LjQ0NCwwLDAsMC0uMDI4LjE0NGwuMDQ4LDEuMzgzTDcuODE4LDYuMyw2LjQ3MSw1Ljk4NGEuNDIxLjQyMSwwLDAsMC0uNDg3LjM0My40MzUuNDM1LDAsMCwwLDAsLjE0NEw2LjMsNy44MTlsLS4yMTguMjY1TDQuNyw4LjAzNmEuNDIyLjQyMiwwLDAsMC0uMzgzLjU3M0w0Ljg5LDkuODY2bC0uMTY0LjMwNi0xLjM2My4yMjJhLjQyLjQyLDAsMCwwLS4zMTguNS40My40MywwLDAsMCwuMDU1LjEzM2wuODA2LDEuMTItLjEuMzM0LTEuMjkzLjQ4M2EuNDIxLjQyMSwwLDAsMC0uMjE1LjU1NS40MTQuNDE0LDAsMCwwLC4wODEuMTIxbDEuMDExLjk0My0uMDMzLjM0My0xLjE3Ny43MjhhLjQyMS40MjEsMCwwLDAsMCwuNjg4bDEuMTc3LjcyOC4wMzMuMzQzLTEuMDExLjk0M2EuNDIxLjQyMSwwLDAsMCwuMDE1LjU5NS40MzYuNDM2LDAsMCwwLC4xMTkuMDhsMS4yOTMuNDgzLjEuMzM0TDMuMSwyMC45NzJhLjQyMS40MjEsMCwwLDAsLjEzMS41ODEuNDMuNDMsMCwwLDAsLjEzMy4wNTVsMS4zNjMuMjIyLjE2NC4zMDctLjU3MywxLjI1N2EuNDIyLjQyMiwwLDAsMCwuMjQuNTQ1LjQzOC40MzgsMCwwLDAsLjE0My4wMjhsMS4zODMtLjA0OC4yMTkuMjY2LS4zMTcsMS4zNDhhLjQyLjQyLDAsMCwwLC4zNDEuNDg2LjQuNCwwLDAsMCwuMTQ2LDBMNy44MTgsMjUuN2wuMjY2LjIxOEw4LjAzNSwyNy4zYS40MTkuNDE5LDAsMCwwLC40MjkuNDEuNDEzLjQxMywwLDAsMCwuMTQzLS4wMjhsMS4yNTctLjU3My4zMDYuMTY0LjIyMiwxLjM2MmEuNDIxLjQyMSwwLDAsMCwuNS4zMTkuNDA3LjQwNywwLDAsMCwuMTMzLS4wNTVsMS4xMi0uODA3LjMzNC4xLjQ4MywxLjI5MmEuNDIyLjQyMiwwLDAsMCwuNTU2LjIxNC40MzYuNDM2LDAsMCwwLC4xMTktLjA4bC45NDMtMS4wMTEuMzQzLjAzNC43MjgsMS4xNzdhLjQyMi40MjIsMCwwLDAsLjU4OC4xLjQxMy40MTMsMCwwLDAsLjEtLjFsLjcyOC0xLjE3Ny4zNDMtLjAzNC45NDMsMS4wMTFhLjQyMS40MjEsMCwwLDAsLjU5NS0uMDE1LjQzNi40MzYsMCwwLDAsLjA4LS4xMTlsLjQ4My0xLjI5Mi4zMzQtLjEsMS4xMi44MDdhLjQyMS40MjEsMCwwLDAsLjU4MS0uMTMxLjQzLjQzLDAsMCwwLC4wNTUtLjEzM2wuMjIyLTEuMzYyLjMwNi0uMTY0LDEuMjU3LjU3M2EuNDIxLjQyMSwwLDAsMCwuNTQ0LS4yMzkuNDM4LjQzOCwwLDAsMCwuMDI4LS4xNDNsLS4wNDgtMS4zODQuMjY1LS4yMTgsMS4zNDcuMzE3YS40MjEuNDIxLDAsMCwwLC40ODctLjM0LjQ0Ny40NDcsMCwwLDAsMC0uMTQ2TDI1LjcsMjQuMTgzbC4yMTgtLjI2NiwxLjM4My4wNDhhLjQyMS40MjEsMCwwLDAsLjQxLS40MzEuNC40LDAsMCwwLS4wMjgtLjE0MmwtLjU3My0xLjI1Ny4xNjQtLjMwNywxLjM2My0uMjIyYS40MjEuNDIxLDAsMCwwLC4zMTktLjUuNDM0LjQzNCwwLDAsMC0uMDU2LS4xMzVsLS44MDYtMS4xMi4xLS4zMzQsMS4yOTMtLjQ4M2EuNDIuNDIsMCwwLDAsLjIxNS0uNTU0LjQxNC40MTQsMCwwLDAtLjA4MS0uMTIxbC0xLjAxMS0uOTQzLjAzMy0uMzQzLDEuMTc3LS43MjhhLjQyMS40MjEsMCwwLDAsMC0uNjg4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNBU1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDJiYjVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNi4wMTgsMzBBMTQsMTQsMCwxLDEsMzAsMTYuMiwxNCwxNCwwLDAsMSwxNi4wMTgsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAyYmI1XFxcIi8+PHBhdGggZD1cXFwiTTkuMTcsMjIuNjNjLjAyNi4wNjEuMDQ2LjEyNC4wNzcuMTgzLDIuMjE1LDQuMjA2LDcuNzM4LDQuNjE2LDEwLjc1NiwyLjQ1NGE2LjAxNyw2LjAxNywwLDAsMCwxLjczMS04LjU4MywxNS43LDE1LjcsMCwwLDAtMS4zMTgtMS43MzFjLS44ODEtMS4wNjctMS43NTUtMi4xNC0yLjYzNi0zLjIwNy0uMzY2LS40NDMtLjc2Ny0uODM1LTEuNDE2LS42ODNhMS4zOTMsMS4zOTMsMCwwLDAtLjgxNiwyLjMxMWMuODg4LDEuMTA2LDEuODE5LDIuMTc3LDIuNywzLjI4NmEzLjg3NCwzLjg3NCwwLDAsMSwuNTg5LDQuNCw1LjQyMyw1LjQyMywwLDAsMS01LDMuMTM0QTYuNiw2LjYsMCwwLDEsOS4xNywyMi42M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjIuNDk0LDkuNjA5Yy4wOC0uMjQ4LS4wNjYtLjM3LS4xNDEtLjUwOUE3LjQ3Nyw3LjQ3NywwLDAsMCwxMi42LDYuMjM3Yy0zLjMsMS42My01LjEsNS4zNTItMi42MzcsOS4xNDdhNTYuNTMsNTYuNTMsMCwwLDAsNC4xMzUsNS4xMiwxLjAxMiwxLjAxMiwwLDAsMCwuNzA5LjM0NSwxLjM4NCwxLjM4NCwwLDAsMCwxLjQyOC0uNzY1LDEuMjQ3LDEuMjQ3LDAsMCwwLS4xNzMtMS41MDdjLS44NzYtMS4wNTEtMS43NjktMi4wODgtMi42MTUtMy4xNjJhNC4xMyw0LjEzLDAsMCwxLC4zMjMtNS43NzFBNi4wNTQsNi4wNTQsMCwwLDEsMTkuOTg0LDguMTMsNS4xOSw1LjE5LDAsMCwxLDIyLjQ5NCw5LjYwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJTYXNzIChTYXNzKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZDY3OTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNi4xMSwxNy41NzJhNS44LDUuOCwwLDAsMC0yLjUzNy41ODgsNS4zNDUsNS4zNDUsMCwwLDEtLjU2OC0xLjMxNCwzLjUzLDMuNTMsMCwwLDEtLjA1MS0xLjEsOS44MTEsOS44MTEsMCwwLDEsLjMzMi0xLjE5MmMtLjAwNS0uMDUxLS4wNjEtLjI5Mi0uNjI0LS4zcy0xLjA0OC4xMDctMS4xLjI1NmE2LjE3MSw2LjE3MSwwLDAsMC0uMjM1LjgzNCwxOS42ODYsMTkuNjg2LDAsMCwxLTEuNzEzLDMuMjk0LDMuMTg2LDMuMTg2LDAsMCwxLS40NC0yLjA2Niw5LjgxMSw5LjgxMSwwLDAsMSwuMzMyLTEuMTkyYy0uMDA1LS4wNTEtLjA2MS0uMjkyLS42MjQtLjNzLTEuMDQ4LjEwNy0xLjEuMjU2LS4xMTguNS0uMjM1LjgzNC0xLjQ4MywzLjM4Ni0xLjg0MSw0LjE3M2MtLjE4NC40LS4zNDMuNzI2LS40NTUuOTQ2aDBhLjIzMy4yMzMsMCwwLDEtLjAyLjA0MWMtLjEuMTg5LS4xNTMuMjkyLS4xNTMuMjkydi4wMDVjLS4wNzcuMTM4LS4xNTkuMjY2LS4yLjI2NmExLjcxMSwxLjcxMSwwLDAsMSwuMDEtLjg2OWMuMi0xLjA1OS42OS0yLjcwNS42ODUtMi43NjIsMC0uMDMxLjA5Mi0uMzE3LS4zMTctLjQ2NWEuNTA4LjUwOCwwLDAsMC0uNTc4LjFjLS4wMzYsMC0uMDYxLjA4Ny0uMDYxLjA4N3MuNDQ1LTEuODUxLS44NDktMS44NTFhMy44NTUsMy44NTUsMCwwLDAtMi40NzUsMS42ODNjLS4zNDguMTg5LTEuMDg5LjU5My0xLjg4MiwxLjAyOC0uMy4xNjktLjYxNC4zMzgtLjkwNS41LS4wMi0uMDItLjA0MS0uMDQ2LS4wNjEtLjA2NkM2Ljg3LDE3LjYsMy45NzUsMTYuNDE2LDQuMSwxNC4xNzFjLjA0Ni0uODE4LjMyNy0yLjk2Niw1LjU1OS01LjU3NSw0LjMwNi0yLjEyMiw3LjczMy0xLjUzNCw4LjMyNi0uMjMuODQ5LDEuODYyLTEuODM2LDUuMzE5LTYuMjg1LDUuODJhMy4zNTEsMy4zNTEsMCwwLDEtMi44MTMtLjcxMWMtLjIzNS0uMjU2LS4yNzEtLjI3MS0uMzU4LS4yMi0uMTQzLjA3Ny0uMDUxLjMwNywwLC40NGEyLjYyNiwyLjYyNiwwLDAsMCwxLjYwNiwxLjI2Myw4LjU1LDguNTUsMCwwLDAsNS4yMTctLjUxN2MyLjctMS4wNDMsNC44LTMuOTQzLDQuMTg0LTYuMzcyLS42MTktMi40NjUtNC43MS0zLjI3OC04LjU4Mi0xLjlBMTkuNSwxOS41LDAsMCwwLDQuMzU5LDkuOTUyYy0yLjEzMywxLjk5NS0yLjQ3LDMuNzI4LTIuMzMyLDQuNDU1LjUsMi41NzgsNC4wNTEsNC4yNTUsNS40NzIsNS41LS4wNzIuMDQxLS4xMzguMDc3LS4xOTQuMTA3LS43MTEuMzUzLTMuNDIxLDEuNzctNC4xLDMuMjY4LS43NjcsMS43LjEyMywyLjkxNS43MTEsMy4wNzlhNC4zNzQsNC4zNzQsMCwwLDAsNC43MS0xLjkwOEE0LjcyNSw0LjcyNSwwLDAsMCw5LjA0OSwyMC4xYS4xMDcuMTA3LDAsMCwwLS4wMi0uMDMxbC41NTctLjMyN2MuMzYzLS4yMTUuNzIxLS40MTQsMS4wMjgtLjU3OGE2Ljc0LDYuNzQsMCwwLDAtLjM2MywxLjg2MiwzLjg4NiwzLjg4NiwwLDAsMCwuODM0LDIuNy45MjEuOTIxLDAsMCwwLC42NzUuMjJjLjYsMCwuODc1LS41LDEuMTc2LTEuMDk0LjM2OC0uNzI2LjctMS41Ny43LTEuNTdzLS40MTQsMi4yODEuNzExLDIuMjgxYy40MDksMCwuODIzLS41MzIsMS4wMDgtLjh2LjAwNXMuMDEtLjAxNS4wMzEtLjA1MWwuMDY2LS4xMDd2LS4wMWMuMTY0LS4yODYuNTMyLS45MzYsMS4wNzktMi4wMTUuNzA2LTEuMzkxLDEuMzg2LTMuMTMsMS4zODYtMy4xM2E4Ljg4OCw4Ljg4OCwwLDAsMCwuMjcxLDEuMTMsMTAuNjQzLDEwLjY0MywwLDAsMCwuNTgzLDEuMzA5Yy0uMTY0LjIzLS4yNjYuMzU4LS4yNjYuMzU4bC4wMDUuMDA1Yy0uMTMzLjE3NC0uMjc2LjM2My0uNDM1LjU0N2ExNi4zLDE2LjMsMCwwLDAtMS4zMTQsMS42NDcuNDQ3LjQ0NywwLDAsMCwuMTIzLjYsMS4xMTYsMS4xMTYsMCwwLDAsLjY4NS4xMTMsMy4xNDcsMy4xNDcsMCwwLDAsMS4wMjgtLjIzNSwzLjQ1LDMuNDUsMCwwLDAsLjg4NS0uNDY1LDEuOTgsMS45OCwwLDAsMCwuODQ5LTEuNzQ0LDMuNTIxLDMuNTIxLDAsMCwwLS4zMjItMS4yMzNjLjA1MS0uMDcyLjEtLjE0My4xNDgtLjIxNWEyMy40MjgsMjMuNDI4LDAsMCwwLDEuNTM0LTIuNjQ5LDguODg4LDguODg4LDAsMCwwLC4yNzEsMS4xMyw3LjU3LDcuNTcsMCwwLDAsLjUsMS4xMjVBNC44NjEsNC44NjEsMCwwLDAsMjAuOTY1LDIwLjhjLS4zMjIuOTMxLS4wNzIsMS4zNS40LDEuNDQ3YTEuNDI1LDEuNDI1LDAsMCwwLC43NDctLjE1MywzLjQsMy40LDAsMCwwLC45NDYtLjQ4NiwyLjEyNiwyLjEyNiwwLDAsMCwxLjA0My0xLjcyOSwzLjI2OCwzLjI2OCwwLDAsMC0uMjM1LTEuMDIzLDUuMzU2LDUuMzU2LDAsMCwxLDIuNzE2LS4zMTJjMi40MzQuMjg2LDIuOTE1LDEuODA1LDIuODIzLDIuNDQ1YTEuNjE4LDEuNjE4LDAsMCwxLS43NzIsMS4wOTRjLS4xNjkuMTA3LS4yMjUuMTQzLS4yMS4yMi4wMi4xMTMuMS4xMDcuMjQ1LjA4N0ExLjksMS45LDAsMCwwLDMwLDIwLjdjLjA3Ny0xLjUtMS4zNTUtMy4xNDUtMy44ODctMy4xM1pNNy4zMywyMy45Yy0uODA4Ljg4LTEuOTMzLDEuMjEyLTIuNDE5LjkzMS0uNTIyLS4zLS4zMTctMS42LjY3NS0yLjUzMmExMi44ODQsMTIuODg0LDAsMCwxLDEuOS0xLjQxN2MuMTE4LS4wNzIuMjkyLS4xNzQuNS0uM2wuMDU2LS4wMzFoMGwuMTIzLS4wNzdBMy40OTMsMy40OTMsMCwwLDEsNy4zMywyMy45Wm01Ljg4MS00Yy0uMjgxLjY4NS0uODY5LDIuNDQtMS4yMjcsMi4zNDItLjMwNy0uMDgyLS41LTEuNDEyLS4wNjEtMi43MjZhNi4xOTMsNi4xOTMsMCwwLDEsLjk1Ni0xLjc1NGMuNDQtLjQ5MS45MjYtLjY1NSwxLjA0My0uNDU1YTkuMDYyLDkuMDYyLDAsMCwxLS43MTEsMi41OTNabTQuODUzLDIuMzIyYy0uMTE4LjA2MS0uMjMuMS0uMjgxLjA3Mi0uMDM2LS4wMi4wNTEtLjEuMDUxLS4xcy42MDktLjY1NS44NDktLjk1MWMuMTM4LS4xNzQuMy0uMzc4LjQ3Ni0uNjA5VjIwLjdjMCwuNzgyLS43NTcsMS4zMDktMS4wOTQsMS41MjRabTMuNzQ0LS44NTRjLS4wODctLjA2MS0uMDcyLS4yNjYuMjItLjkwNWEzLjQwOCwzLjQwOCwwLDAsMSwuODM0LTEuMDc0LDEuNDQ4LDEuNDQ4LDAsMCwxLC4wODIuNDcxLDEuNTQ3LDEuNTQ3LDAsMCwxLTEuMTM1LDEuNTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NkNjc5OVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNhc3MgKFNDU1MpXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NkNjc5OVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjE3MSwxOC43Yy0uNDgxLjIyMS0xLjAwOC41MDktMi4wNjMsMS4wODgtLjQuMjI1LS44MTguNDUtMS4yMDcuNjYyLS4wMjctLjAyNy0uMDU1LS4wNjEtLjA4Mi0uMDg5LTIuMDg3LTIuMjMtNS45NDctMy44MDUtNS43ODMtNi44LjA2MS0xLjA5MS40MzYtMy45NTUsNy40MTMtNy40MzMsNS43NDItMi44MywxMC4zMTEtMi4wNDYsMTEuMS0uMzA3QzI2LjY4Myw4LjMsMjMuMSwxMi45MTMsMTcuMTcsMTMuNTgyYTQuNDY5LDQuNDY5LDAsMCwxLTMuNzUxLS45NDhjLS4zMTQtLjM0MS0uMzYxLS4zNjEtLjQ3Ny0uMjkzLS4xOTEuMS0uMDY4LjQwOSwwLC41ODZhMy41LDMuNSwwLDAsMCwyLjE0MSwxLjY4NCwxMS40LDExLjQsMCwwLDAsNi45NTYtLjY4OWMzLjU5NC0xLjM5MSw2LjQtNS4yNTgsNS41NzgtOC41LS44MjUtMy4yODctNi4yODEtNC4zNzEtMTEuNDQzLTIuNTM3YTI2LDI2LDAsMCwwLTguNzksNS4wNDdjLTIuODQ0LDIuNjYtMy4yOTQsNC45NzItMy4xMSw1Ljk0LjY2MiwzLjQzNyw1LjQsNS42NzQsNy4zLDcuMzMxLS4xLjA1NS0uMTg0LjEtLjI1OS4xNDMtLjk0OC40NzEtNC41NjIsMi4zNi01LjQ2Myw0LjM1OC0xLjAyMywyLjI2NC4xNjQsMy44ODcuOTQ4LDQuMTA1YTUuODMyLDUuODMyLDAsMCwwLDYuMjgxLTIuNTQ0LDYuMyw2LjMsMCwwLDAsLjU1OS01LjgsNS4wMyw1LjAzLDAsMCwxLC43MTYtLjQ3N2MuNDg0LS4yODYuOTQ1LS41NjgsMS4zNTQtLjc4NmwwLDBhMTAuNDc1LDEwLjQ3NSwwLDAsMSw0LjQ3NS0uOTg5YzMuMjQ2LjM4MiwzLjg4NywyLjQwNywzLjc2NCwzLjI2YTIuMTU3LDIuMTU3LDAsMCwxLTEuMDMsMS40NTljLS4yMjUuMTQzLS4zLjE5MS0uMjguMjkzLjAyNy4xNS4xMzYuMTQzLjMyNy4xMTZhMi41MzUsMi41MzUsMCwwLDAsMS43NjYtMi4yNTdjLjEtMi0xLjgwNy00LjE5NC01LjE4My00LjE3NGE3Ljc1Myw3Ljc1MywwLDAsMC0yLjk0Ni41ODdxLS4yMjUuMDkzLS40MzcuMlptLTQuODI1LDcuODM5Yy0xLjA3OCwxLjE3My0yLjU3OCwxLjYxNi0zLjIyNiwxLjI0MS0uNy0uNC0uNDIzLTIuMTM1LjktMy4zNzZhMTcuMTgsMTcuMTgsMCwwLDEsMi41My0xLjg4OWMuMTU3LS4xLjM4OS0uMjMyLjY2OC0uNC4wNDgtLjAyNy4wNzUtLjA0MS4wNzUtLjA0MWwuMTY0LS4xQTQuNjU4LDQuNjU4LDAsMCwxLDExLjM0NiwyNi41MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2Q2Nzk5XFxcIi8+XCIsXG5cdH0sXG5cdFwiU2NhbGFcIjoge1xuXHRcdGNvbG91cjogXCIjZTYyZDJhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwNC41NzJcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwNC41NzJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTY2NjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTYyZDJhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjZcXFwiIHN0b3AtY29sb3I9XFxcIiNkZjNmM2RcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RmM2YzZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U2MmQyYVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTEzNC45MDdcXFwiIHkxPVxcXCIyMDMuNzgxXFxcIiB4Mj1cXFwiLTEzNC44OTZcXFwiIHkyPVxcXCIyMDMuNzgxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1MzgsIDAsIDAsIC05NjEuMjUsIDIwNzQ5NSwgMTk1ODkyKVxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwNS4zNjNcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwNS4zNjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTc0MzApXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3NjYWxhPC90aXRsZT48cGF0aCBkPVxcXCJNNy4zODQsMTkuMjMxdjIuMTU0YzAsLjM2Myw3LjgzMy45NzEsMTIuOTM3LDIuMTU0LDIuNDY1LS41NzEsNC4yOTUtMS4yNzcsNC4yOTUtMi4xNTRWMTkuMjMxYzAtLjg3Ny0xLjgzLTEuNTgyLTQuMjk1LTIuMTU0LTUuMSwxLjE4My0xMi45MzcsMS43OTEtMTIuOTM3LDIuMTU0XFxcIiBzdHlsZT1cXFwiZmlsbDojN2YwYzFkXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDEwLjYxNXYyLjE1NGMwLC4zNjMsNy44MzMuOTcxLDEyLjkzNywyLjE1NCwyLjQ2NS0uNTcxLDQuMjk1LTEuMjc3LDQuMjk1LTIuMTU0VjEwLjYxNWMwLS44NzctMS44My0xLjU4Mi00LjI5NS0yLjE1NC01LjEsMS4xODMtMTIuOTM3LDEuNzkxLTEyLjkzNywyLjE1NFxcXCIgc3R5bGU9XFxcImZpbGw6IzdmMGMxZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwxNC45MjN2Ni40NjJjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMTAuNjE1YzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCw2LjMwOFYxMi43N2MwLS41MzgsMTcuMjMyLTEuNjE1LDE3LjIzMi00LjMwOFYyYzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwyMy41MzhWMzBjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMTkuMjMxYzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNoZWxsIHNlc3Npb25cIjoge1xuXHRcdGNvbG91cjogXCIjZDliNDAwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIlNoZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2Q5YjQwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5LjQsMjcuNkgyLjVWNC41SDI5LjRabS0yNS45LTFIMjguNFY1LjVIMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi4wNzcgMTkuMzE2IDUuNTIyIDE4LjQ4NCAxMC4zNjYgMTUuMjU1IDUuNDc5IDExLjE4NCA2LjEyIDEwLjQxNiAxMi4wMzUgMTUuMzQ0IDYuMDc3IDE5LjMxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjEyLjdcXFwiIHk9XFxcIjE4LjJcXFwiIHdpZHRoPVxcXCI3LjhcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNS41XFxcIiB3aWR0aD1cXFwiMjYuOVxcXCIgaGVpZ2h0PVxcXCIxLjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz5cIixcblx0fSxcblx0XCJTbWFydHlcIjoge1xuXHRcdGNvbG91cjogXCIjZjZlMjAwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxMy44NTlcXFwiIHkxPVxcXCIyOS4yMTlcXFwiIHgyPVxcXCIxOC4xMDZcXFwiIHkyPVxcXCIyOS4yMTlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2MzYxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE3OFxcXCIgc3RvcC1jb2xvcj1cXFwiIzZjNmQ3MFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZjcxNzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjE2MzY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNjM2QzZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTZcXFwiIHN0b3AtY29sb3I9XFxcIiMwMTAxMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2YTZlXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNS4xNzhcXFwiIHkxPVxcXCIyOS43MzRcXFwiIHgyPVxcXCIxNi43ODdcXFwiIHkyPVxcXCIyOS43MzRcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiMTUuMjc3XFxcIiB5MT1cXFwiMjkuODgxXFxcIiB4Mj1cXFwiMTYuNjg4XFxcIiB5Mj1cXFwiMjkuODgxXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzliOWI5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMzFcXFwiIHN0b3AtY29sb3I9XFxcIiNhNGE1YTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWViMWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmYTRhYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDVcXFwiIHN0b3AtY29sb3I9XFxcIiM3ODgxODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU3MDc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5NDlhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImRcXFwiIGN4PVxcXCItOC40NTZcXFwiIGN5PVxcXCItMTYuNjE2XFxcIiByPVxcXCIxOS4zODNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMzQuMDQyIDM3LjA2Mykgc2NhbGUoMS4wNTQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzcwNzA2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2MTYyNjFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY0NzRhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwOFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ4NDk0Y1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40ODdcXFwiIHN0b3AtY29sb3I9XFxcIiM0ZTUwNTNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTQ0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNWE1YzVmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU5MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzZhNmU3MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzNcXFwiIHN0b3AtY29sb3I9XFxcIiM3Zjg1ODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTc5ZWExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNkNDQ0N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY1NmM3MFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiMTYuMTI2XFxcIiB5MT1cXFwiMjguMTA4XFxcIiB4Mj1cXFwiMTYuMDVcXFwiIHkyPVxcXCIyNi44OTNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWI5Yjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEwOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1YTZhN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiYWJjYzRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzExXFxcIiBzdG9wLWNvbG9yPVxcXCIjYWJhZWI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODk4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiM0ODUwNTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM4Yjk0OWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIjE2LjAxM1xcXCIgeTE9XFxcIjI2LjU0MlxcXCIgeDI9XFxcIjE1Ljg5NVxcXCIgeTI9XFxcIjI0LjYzNVxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCIxNi4wMjNcXFwiIHkxPVxcXCIyNS41NDZcXFwiIHgyPVxcXCIxNS44ODdcXFwiIHkyPVxcXCIyMy4zNTVcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiMTYuMDEzXFxcIiB5MT1cXFwiMjcuNjI3XFxcIiB4Mj1cXFwiMTUuODk1XFxcIiB5Mj1cXFwiMjUuNzJcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiMTMuNjhcXFwiIHkxPVxcXCIyOC44MDVcXFwiIHgyPVxcXCIxOC4yODRcXFwiIHkyPVxcXCIyOC44MDVcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNTQ1NDUzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzYxNjI2MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNDNcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDg1ODlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWViMWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmYTRhYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDVcXFwiIHN0b3AtY29sb3I9XFxcIiM3ODgxODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU3MDc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTA1NjU5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNS44MTNcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNS44MTNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNWUxZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGRhZDZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2VjY2M5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjExMlxcXCIgc3RvcC1jb2xvcj1cXFwiI2E3YTlhOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2OTcwNzJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmM2ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zOThcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWFhYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDVkN2Q5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2YzZjRmNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzNcXFwiIHN0b3AtY29sb3I9XFxcIiNmZWZlZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNGY1ZjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkY2RmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNiMGI0YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODc2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5Mjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDFkM2Q0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWFjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImxcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNC43MjhcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNC43MjhcXFwiIHhsaW5rOmhyZWY9XFxcIiNrXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJtXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjMuNTQ4XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjMuNTQ4XFxcIiB4bGluazpocmVmPVxcXCIja1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiblxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI2Ljg5OFxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI2Ljg5OFxcXCIgeGxpbms6aHJlZj1cXFwiI2tcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm9cXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNS45NjdcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNS45NjdcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNWUxZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGU4ZDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkMmYzYmFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDM2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzVlNGIxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEwNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E0YmQ5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZTdmNzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmM2ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zOThcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWFhYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDVkN2Q5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2YzZjRmNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzNcXFwiIHN0b3AtY29sb3I9XFxcIiNmZWZlZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNGY1ZjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkY2RmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNiMGI0YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODc2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5Mjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDFkM2Q0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWFjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcInBcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNC44ODNcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNC44ODNcXFwiIHhsaW5rOmhyZWY9XFxcIiNvXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJxXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjcuMDVcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNy4wNVxcXCIgeGxpbms6aHJlZj1cXFwiI29cXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcInJcXFwiIHgxPVxcXCIxMS45MDJcXFwiIHkxPVxcXCIyMy4yMDFcXFwiIHgyPVxcXCIxOS44ODRcXFwiIHkyPVxcXCIyMy4yMDFcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJzXFxcIiBjeD1cXFwiLTE2Ljk4M1xcXCIgY3k9XFxcIi0yMi45NDhcXFwiIHI9XFxcIjEwLjcxOFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzNC4wNDIgMzcuMDYzKSBzY2FsZSgxLjA1NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZmZDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmYwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZkZjcwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NjRcXFwiIHN0b3AtY29sb3I9XFxcIiNmNmUyMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzgyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWJiZjAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjkwNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlOTIwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RhOTgxOVxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfc21hcnR5PC90aXRsZT48cGF0aCBkPVxcXCJNMTMuODU5LDI4Ljc3NmEuMjQyLjI0MiwwLDAsMCwuMTI4LjE5MSwxMiwxMiwwLDAsMCwxLjM5Mi42MjIsNC4zLDQuMywwLDAsMCwuNTc4LjA3MmguMDUyYTQuMyw0LjMsMCwwLDAsLjU3OC0uMDcyLDEyLjAxNCwxMi4wMTQsMCwwLDAsMS4zOTItLjYyMi4yNDMuMjQzLDAsMCwwLC4xMjgtLjE5MWwtMi4xMzcuMTkyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMTQsMzBhMS4xMjMsMS4xMjMsMCwwLDAsLjY4OC0uMjQ3LjE3NS4xNzUsMCwwLDAsLjA4NS0uMTI2di0uMTA1YTMuMjM1LDMuMjM1LDAsMCwwLS43NzMtLjA1M2gtLjA2M2EzLjIzNywzLjIzNywwLDAsMC0uNzczLjA1M3YuMTA1YS4xNzUuMTc1LDAsMCwwLC4wODUuMTI2LDEuMTIyLDEuMTIyLDAsMCwwLC42ODguMjQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45NTEsMjkuODA3YTQuNzMyLDQuNzMyLDAsMCwxLS42NzQtLjA0NCwxLjEwNSwxLjEwNSwwLDAsMCwuNjc0LjIzN2guMDYzYTEuMTA2LDEuMTA2LDAsMCwwLC42NzUtLjIzNyw0LjczMyw0LjczMywwLDAsMS0uNjc1LjA0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTkuODA5LDI2LjgzOGExLDEsMCwwLDAtLjIzNC4zODljLS4wMzYuMTgxLS4xLjU4NS0xLjMyNiwxLjQwNmwtLjAyNS4wMTdhLjQzNS40MzUsMCwwLDEtLjA4Ni4wMzcsOS45NjgsOS45NjgsMCwwLDEtMi4xNTUuMjA5LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU2LS4yMDkuNDM2LjQzNiwwLDAsMS0uMDg1LS4wMzZsLS4wMjUtLjAxN2E0LjU3OSw0LjU3OSwwLDAsMS0xLjEyLS45NTdjLS4xNjQtLjIxOS0uMzczLS4yNTctLjM5LS4zNDVhMjEuMDU1LDIxLjA1NSwwLDAsMCwzLjg1NS4wNTcsMTMuMDQ5LDEzLjA0OSwwLDAsMCwzLjc2MS0uNjU0QS42OTIuNjkyLDAsMCwxLDE5LjgwOSwyNi44MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljc3MiwyNi44OGEuOTg1Ljk4NSwwLDAsMS0uMjQ2LjEyOWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUsMjUuMTUsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNjIsMS4wNjIsMCwwLDEtLjE0LS4wMjgsMS4wMTYsMS4wMTYsMCwwLDEsLjE0LjEwN2MuMTYuMDEzLjMxOS4wMTkuMzE5LjAxOWEyNi44NjQsMjYuODY0LDAsMCwwLDYuNzQzLS4zMjNsLjAwOS0uMDQyQS44ODUuODg1LDAsMCwxLDE5Ljc3MiwyNi44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI1LjM4MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTE0LjExNCwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM3LjQzNywwLDAsMSwuMTE5LS4yNywxLjA2OSwxLjA2OSwwLDAsMS0uMi4xYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNTEsMjUuMTUxLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4YTEuMDU1LDEuMDU1LDAsMCwxLS4xODEtLjA0MS4zNzcuMzc3LDAsMCwxLC4wNzguMjE3LjcxNi43MTYsMCwwLDEtLjI1NC40MzIuNjczLjY3MywwLDAsMSwuMzY4LS4wNzlBMjYuMiwyNi4yLDAsMCwwLDE5LjQzOSwyNS4zODJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNC4yMjlzLjI0NS0uMDc4LjI0NS0uMTgyYS4xNDMuMTQzLDAsMCwwLS4wMTMtLjA3My4yNTQuMjU0LDAsMCwxLS4wNjEtLjE2Mi41MTQuNTE0LDAsMCwxLC4xMTktLjMsMS4wMjYsMS4wMjYsMCwwLDEtLjIuMTExYy0uMDc2LjAzMi0uMjQ1LjA4OC0uMjQ1LjA4OGEyMi41MDcsMjIuNTA3LDAsMCwxLTYuNDU4LjQ4OWMtLjEzNi0uMDEtLjMyLS4wMzItLjMyLS4wMzJhLjk1My45NTMsMCwwLDEtLjE4MS0uMDQ2LjQ1NS40NTUsMCwwLDEsLjA3OC4yNDMuODI1LjgyNSwwLDAsMS0uMjU0LjQ4NC42MTQuNjE0LDAsMCwxLC4zNjgtLjA4OUMxMy4wMTQsMjQuNzU4LDE2LjkzNSwyNS4wNDEsMTkuNDM5LDI0LjIyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI2LjQ2N3MuMjQ1LS4wNy4yNDUtLjE2M2EuMTE1LjExNSwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM1LjQzNSwwLDAsMSwuMTE5LS4yNywxLjA3LDEuMDcsMCwwLDEtLjIuMWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTYyLDI1LjE2MiwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA0MiwxLjA0MiwwLDAsMS0uMTgxLS4wNDEuMzc3LjM3NywwLDAsMSwuMDc4LjIxNy43MTcuNzE3LDAsMCwxLS4yNTQuNDMyLjY3LjY3LDAsMCwxLC4zNjgtLjA3OUEyNi4yMDcsMjYuMjA3LDAsMCwwLDE5LjQzOSwyNi40NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNi40NjdzLjI0NS0uMDcuMjQ1LS4xNjNhLjExNS4xMTUsMCwwLDAtLjAxMy0uMDY1LjIxNC4yMTQsMCwwLDEtLjA2MS0uMTQ0LjQzNS40MzUsMCwwLDEsLjExOS0uMjcsMS4wNywxLjA3LDAsMCwxLS4yLjFjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE2OCwyNS4xNjgsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNDIsMS4wNDIsMCwwLDEtLjE4MS0uMDQxLjM3Ni4zNzYsMCwwLDEsLjA3OC4yMTcuNzE3LjcxNywwLDAsMS0uMjU0LjQzMi42Ny42NywwLDAsMSwuMzY4LS4wNzlBMjYuMjA3LDI2LjIwNywwLDAsMCwxOS40MzksMjYuNDY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4yMjQsMjguNjVhLjQzNS40MzUsMCwwLDEtLjA4Ni4wMzcsOS45NjgsOS45NjgsMCwwLDEtMi4xNTUuMjA5LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU2LS4yMDkuNDM2LjQzNiwwLDAsMS0uMDg1LS4wMzZsLS4wMjUtLjAxNy0uMDI5LS4wMTlhLjExMi4xMTIsMCwwLDAsMCwuMDczYy4wMjQuMDczLjE0Ny4xLjE0Ny4xYTkuOTQzLDkuOTQzLDAsMCwwLDIuMTUuMjA5LDkuOTQyLDkuOTQyLDAsMCwwLDIuMTUtLjIwOXMuMTI2LS4wMjkuMTQ3LS4xYS4xMTguMTE4LDAsMCwwLDAtLjA3M2wtLjAyOS4wMTlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNS41cy4wNDEuMjUyLS40MTguNDIzYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNjIsMjUuMTYyLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OS40NjYtLjI0OWEyNi4yLDI2LjIsMCwwLDAsNi45MjUtLjQ3MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTExLjExMSwwLDAsMC0uMDEzLS4wNjZTMTkuOTQ0LDI1LjMxMiwxOS45NDQsMjUuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDI0LjQxNnMuMDQxLjI1Mi0uNDE4LjQyM2MtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUxLDI1LjE1MSwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOC0uMjc2LS4wMzgtLjQ2Ny0uMTYtLjQ1NS0uMzA4LDAsMC0uMDMzLS4yNDguNDY2LS4yNDhhMjYuMTkzLDI2LjE5MywwLDAsMCw2LjkyNS0uNDcycy4yNDUtLjA3LjI0NS0uMTYyYS4xMS4xMSwwLDAsMC0uMDEzLS4wNjVTMTkuOTQ0LDI0LjIyNywxOS45NDQsMjQuNDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNsKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44OTMsMjQuNDA2di0uMDIxYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNi0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTU1LDIyLjE1NSwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI0LjY0MywxOS44OTMsMjQuNDA2LDE5Ljg5MywyNC40MDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNS40OTFWMjUuNDdjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI3LS4yNDUuMDczLS4yNDUuMDczYTIyLjM4LDIyLjM4LDAsMCwxLTUuMS41aDBhMjIuMTcxLDIyLjE3MSwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI1LjcyOCwxOS44OTMsMjUuNDkxLDE5Ljg5MywyNS40OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyMy4wMzRzLjA0MS4zMjktLjQxOC41NTJjLS4wNzYuMDM3LS4yNDUuMS0uMjQ1LjFhMTkuNDA5LDE5LjQwOSwwLDAsMS02LjQ1OC41NjljLS4xMzYtLjAxMi0uMzItLjAzNy0uMzItLjAzNy0uMjc2LS4wNS0uNDY3LS4yMDktLjQ1NS0uNCwwLDAtLjAzMy0uMzI0LjQ2Ni0uMzI0YTE4LjI4MywxOC4yODMsMCwwLDAsNi45MjUtLjQ2MSwxLjAxNCwxLjAxNCwwLDAsMCwuNDQ0LS4yMzhBLjUzLjUzLDAsMCwxLDE5Ljk0NCwyMy4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI20pXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNi41ODZzLjA0MS4yNTItLjQxOC40MjNjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE1LDI1LjE1LDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OC40NjYtLjI0OGEyNi4yMDcsMjYuMjA3LDAsMCwwLDYuOTI1LS40NzJzLjI0NS0uMDcuMjQ1LS4xNjNhLjExMS4xMTEsMCwwLDAtLjAxMy0uMDY1UzE5Ljk0NCwyNi40LDE5Ljk0NCwyNi41ODZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI24pXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNi41NzZ2LS4wMjFjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI2LS4yNDUuMDczLS4yNDUuMDczYTIyLjM3MiwyMi4zNzIsMCwwLDEtNS4xLjVoMGEyMi4xNjMsMjIuMTYzLDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjYuODEzLDE5Ljg5MywyNi41NzYsMTkuODkzLDI2LjU3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDIzLjMyMVYyMy4zYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNy0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTU2LDIyLjE1NiwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDIzLjU1OCwxOS44OTMsMjMuMzIxLDE5Ljg5MywyMy4zMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQxNywyNS44ODFzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEzLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjUuOTU4LDEyLjcyMywyNS44ODMsMTIuNDE3LDI1Ljg4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbylcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDE3LDI0LjhzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEyLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjQuODc0LDEyLjcyMywyNC44LDEyLjQxNywyNC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNwKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MTcsMjYuOTY1cy0uMjM2LDAtLjI0MS4wOC4yNDYuMDg1LjI0Ni4wODUuMTc1LDAsLjMuMDA1Yy42MTktLjAxMiwxLjk5My0uMDM4LDMuNDM3LS4xNjZDMTQuMzg0LDI3LjA0MiwxMi43MjMsMjYuOTY2LDEyLjQxNywyNi45NjVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3EpXFxcIi8+PHBhdGggZD1cXFwiTTExLjk2NSwyMi43NzlzLS4yNzQuMzE1LjMxOS43MTFjMCwwLDUuNzc1LjU4Nyw3LjYtLjY5NUMxOS44ODQsMjIuNzk1LDEzLjYyMywyMy4zMiwxMS45NjUsMjIuNzc5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNyKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMzUsMjIuNzc5YTQuNDQ5LDQuNDQ5LDAsMCwwLC44MS0xLjE1NSwzLjM4NiwzLjM4NiwwLDAsMCwuMi0xLjExNSw2LjczMyw2LjczMywwLDAsMSwuNjMyLTIuOTFjLjUzNC0xLjAxNCwyLjgxLTQuNDQ3LDIuODEtNy40NjJBOC4wMTIsOC4wMTIsMCwwLDAsMTYsMmE4LjAxMiw4LjAxMiwwLDAsMC04LjQ4Myw4LjEzNmMwLDMuMDE1LDIuMjc2LDYuNDQ4LDIuODEsNy40NjJhNi43MzEsNi43MzEsMCwwLDEsLjYzMiwyLjkxLDMuMzg0LDMuMzg0LDAsMCwwLC4yLDEuMTE1LDQuNDUzLDQuNDUzLDAsMCwwLC44MSwxLjE1NSwxMy44NjYsMTMuODY2LDAsMCwwLDMuOTg3LjM3QTE1LjE1MSwxNS4xNTEsMCwwLDAsMjAuMDM1LDIyLjc3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcylcXFwiLz5cIixcblx0fSxcblx0XCJTb2xpZGl0eSAoRXRoZXJldW0pXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MxYzFjMVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIwLjQ3NywybC00LjUsOGgtOWw0LjUtOGg5XFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC40NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS41MiwzMGw0LjUtOGg5bC00LjUsOGgtOVxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNDU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTUuOTc1LDEwaDlsLTQuNS04aC05WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNjtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMjIsMjJoLTlsNC41LDhoOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjY7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDc3LDE4bDQuNS04LTQuNS04LTQuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuODtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41MiwxNGwtNC41LDgsNC41LDgsNC41LThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC44O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+XCIsXG5cdH0sXG5cdFwiU29sdXRpb24gZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4NTRjYzdcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiLTE4Mi4wNzJcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIi0yMDkuOTI4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMTgwKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zbG48L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjA0NSwyMy45OTFhMS4xNjYsMS4xNjYsMCwwLDEtMS4yMDguMTkxTDIuNzE4LDIzLjNBMS4xNjgsMS4xNjgsMCwwLDEsMiwyMi4yMjJWOS43NzhBMS4xNjUsMS4xNjUsMCwwLDEsMi43MTgsOC43bDIuMTE5LS44ODNhMS4xNjksMS4xNjksMCwwLDEsMS4yMDguMTkxbC40NzYuNDA4QS42NDYuNjQ2LDAsMCwwLDUuNSw4Ljk0MlYyMy4wNThhLjY0Ni42NDYsMCwwLDAsMS4wMjEuNTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyMjE4YVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjcxOCwyMy4zQTEuMTY5LDEuMTY5LDAsMCwxLDIsMjIuMjIydi0uMWEuNjc0LjY3NCwwLDAsMCwxLjE3NC40NTJMMjEuMjUsMi41ODNhMS43NDMsMS43NDMsMCwwLDEsMS45OS0uMzM4bDUuNzY5LDIuNzc4QTEuNzQ5LDEuNzQ5LDAsMCwxLDMwLDYuNnYuMDY3YTEuMSwxLjEsMCwwLDAtMS44LS44NTRMNi41MjEsMjMuNTgzbC0uNDc2LjQwOGExLjE2NiwxLjE2NiwwLDAsMS0xLjIwOC4xOTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNmMzM2FmXFxcIi8+PHBhdGggZD1cXFwiTTIuNzE4LDguN0ExLjE2OCwxLjE2OCwwLDAsMCwyLDkuNzc4di4xYS42NzQuNjc0LDAsMCwxLDEuMTc0LS40NTJMMjEuMjUsMjkuNDE2YTEuNzQzLDEuNzQzLDAsMCwwLDEuOTkuMzM4bDUuNzY5LTIuNzc4QTEuNzQ3LDEuNzQ3LDAsMCwwLDMwLDI1LjR2LS4wNjhhMS4xLDEuMSwwLDAsMS0xLjguODU1TDYuNTIxLDguNDE3bC0uNDc2LS40MDhhMS4xNjYsMS4xNjYsMCwwLDAtMS4yMDgtLjE5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4NTRjYzdcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjQsMjkuNzU1YTEuNzQzLDEuNzQzLDAsMCwxLTEuOTktLjMzOEExLjAyNSwxLjAyNSwwLDAsMCwyMywyOC42OTJWMy4zMDhhMS4wMjUsMS4wMjUsMCwwLDAtMS43NS0uNzI1LDEuNzQzLDEuNzQzLDAsMCwxLDEuOTktLjMzOGw1Ljc2OCwyLjc3NEExLjc0OSwxLjc0OSwwLDAsMSwzMCw2LjZWMjUuNDA1YTEuNzUxLDEuNzUxLDAsMCwxLS45OTEsMS41NzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjE3OWYxXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC4yNVxcXCI+PHBhdGggZD1cXFwiTTIyLjA5MywyOS44ODNhMS43NCwxLjc0LDAsMCwwLDEuMTQ3LS4xMjhsNS43NjgtMi43NzRBMS43NDksMS43NDksMCwwLDAsMzAsMjUuNFY2LjZhMS43NSwxLjc1LDAsMCwwLS45OTItMS41NzdMMjMuMjQsMi4yNDVhMS43NDIsMS43NDIsMCwwLDAtMS45OS4zMzlsLTkuMywxMC4yODRMNi41MjEsOC40MTZsLS40NzYtLjQwOGExLjE2OCwxLjE2OCwwLDAsMC0xLjIwNy0uMTkxTDIuNzE5LDguN0ExLjE2NywxLjE2NywwLDAsMCwyLDkuNjg5YzAsLjAyOSwwLC4wNTksMCwuMDg4VjIyLjIyMWMwLC4wMywwLC4wNTksMCwuMDg4YTEuMTY3LDEuMTY3LDAsMCwwLC43MTUuOTg5bDIuMTE5Ljg4M2ExLjIyNiwxLjIyNiwwLDAsMCwuMTU1LjA1MiwxLjE2NSwxLjE2NSwwLDAsMCwxLjA1Mi0uMjQzbC40NzYtLjQwOCw1LjQzLTQuNDUyLDkuMywxMC4yODVBMS43MzMsMS43MzMsMCwwLDAsMjIuMDkzLDI5Ljg4M1pNMjMsMTAuMDcyLDE1Ljc3LDE2LDIzLDIxLjkyN1pNNS41LDEybDMuNjE5LDRMNS41LDIwWlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjwvZz5cIixcblx0fSxcblx0XCJTUEFSUUxcIjoge1xuXHRcdGNvbG91cjogXCIjMGM0NzljXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjYuMjg0LDIwLjM2MWMtLjE2NS0uMDg0LS4zNTktLjE2NC0uNTIzLS4yNDhIMjUuOXMtMS4xNTgtLjUtMS4yNC00LjE3NmMtLjExMS0zLjY1NSwxLjEtNC4yODksMS4xLTQuMjg5YTQuOTYsNC45NiwwLDAsMCwyLjE3Ni0yLjE0Myw1LjEyMiw1LjEyMiwwLDAsMC0yLjEyMi02LjkyNyw1LjM0Miw1LjM0MiwwLDAsMC03LjEzOCwyLjE0Niw1LjA2Nyw1LjA2NywwLDAsMC0uNTIzLDMuMjE0TDE4LjEsNy44NTVzLjMsMS4zMTktMi44MzksMy4yNzJjLTMuMTE1LDEuOTUtNC41NDkuOTYyLTQuNTQ5Ljk2MmwuMDgyLjEzOGEyLjEzMSwyLjEzMSwwLDAsMC0uMjczLS4xNjcsNS4xMTcsNS4xMTcsMCwxLDAsLjgyNSw4LjUybC0uMDI1LjA1NXMxLjEyOS0uOTMzLDQuNDA3LjgyN2MyLjU5MiwxLjM3NCwyLjk3OSwyLjc0OCwzLjAzMywzLjI0YTUuMSw1LjEsMCwwLDAsMi43LDQuNyw1LjEyNCw1LjEyNCwwLDEsMCw0LjgyNS05LjA0MVptLTUuNzkuNjg1Yy0uNDEyLjEzOC0xLjYuMy00LjA3Ny0xLjAxNy0yLjctMS40NTQtMy4xMTUtMi42NjQtMy4xNjktMy4wMjFhNS40MDYsNS40MDYsMCwwLDAtLjA1Ny0xLjMxOWwuMDI5LjAyNlMxMywxNC41MzQsMTYuMDg0LDEyLjYzOWMyLjc1Ny0xLjcwNSw0LjAyNi0xLjM3NCw0LjI0NS0xLjI5M2EyLjgzLDIuODMsMCwwLDAsLjQ3LjI3Nyw0LjA4Miw0LjA4MiwwLDAsMCwuOTY0LjM4M2MuMzg3LjM1NywxLjA3NiwxLjM3NCwxLjE1OCw0LjFzLS43MTcsMy43NjQtMS4xNTgsNC4xMjFBNS4wNCw1LjA0LDAsMCwwLDIwLjQ5NCwyMS4wNDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGM0NzljXFxcIi8+PHBhdGggZD1cXFwiTTIwLjEzNSw0LjIyOWEzLjg2MSwzLjg2MSwwLDAsMC0uMDgyLDUuMzg2Yy0uNzE3LS42ODUtLjY4OC0yLjExNy4wMjktMy40NjJhLjY3My42NzMsMCwwLDEsLjc0Ni0uMjc3Yy4wMjUsMCwuMDU0LjAyOS4wODIuMDI5YS45OTMuOTkzLDAsMCwwLC4yNzYuMDI2QTEuMDU2LDEuMDU2LDAsMCwwLDIyLjIsNC44MDVhLjkzNC45MzQsMCwwLDAtLjMtLjY4NWMxLjM4LS45MDcsMi45NS0xLjAxNywzLjYxLS40MTJoLjAyOUEzLjgyNiwzLjgyNiwwLDAsMCwyMC4xMzUsNC4yMjlaTTUuMTQ1LDEzLjg0NmEzLjg1OSwzLjg1OSwwLDAsMC0uMDgyLDUuMzg5Yy0uNzE3LS42ODktLjY5Mi0yLjExNy4wMjUtMy40NjVhLjY2OC42NjgsMCwwLDEsLjc0Ni0uMjczYy4wMjUsMCwuMDU0LjAyOS4wODIuMDI5YTEsMSwwLDAsMCwuMjc2LjAyNkExLjA1NiwxLjA1NiwwLDAsMCw3LjIxLDE0LjQyNWEuOTQ1Ljk0NSwwLDAsMC0uMy0uNjg5YzEuMzc3LS45MDcsMi45NDctMS4wMTcsMy42MS0uNDEyaC4wMjVBMy44NTIsMy44NTIsMCwwLDAsNS4xNDUsMTMuODQ2Wm0xNS44NzIsOC4xNjNhMy44NjUsMy44NjUsMCwwLDAtLjA4Miw1LjM4OWMtLjcxNy0uNjg5LS42ODgtMi4xMTcuMDI5LTMuNDY1YS42NjguNjY4LDAsMCwxLC43NDYtLjI3M2MuMDI1LDAsLjA1NC4wMjYuMDgyLjAyNmEuODg3Ljg4NywwLDAsMCwuMjc2LjAyOSwxLjA1NywxLjA1NywwLDAsMCwxLjAxOC0xLjEyNi45MzYuOTM2LDAsMCwwLS4zLS42ODljMS4zOC0uOTA3LDIuOTUtMS4wMTcsMy42MS0uNDEyaC4wMjlBMy44MjksMy44MjksMCwwLDAsMjEuMDE3LDIyLjAwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJTUUZcIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUsMjMuNUg3YTUuMDE1LDUuMDE1LDAsMCwxLTUtNXYtNmE1LjAxNSw1LjAxNSwwLDAsMSw1LTVIMjVhNS4wMTUsNS4wMTUsMCwwLDEsNSw1djZhNS4wMTUsNS4wMTUsMCwwLDEtNSw1WlxcXCIvPjxwYXRoIGQ9XFxcIk03LDE5LjQ2MWE0LjgxLDQuODEsMCwwLDEtMS40MTQtLjIsNS4wNTIsNS4wNTIsMCwwLDEtMS4xMTEtLjQ3MmwtLjQuNDMyaC0uNUwzLjUsMTYuMDUySDRhOC40NjIsOC40NjIsMCwwLDAsLjQzMS45NTMsNC42MzgsNC42MzgsMCwwLDAsLjYwNi45LDMuMTc3LDMuMTc3LDAsMCwwLC44LjY3NSwxLjk4NSwxLjk4NSwwLDAsMCwxLjAyOS4yNiwxLjY3MiwxLjY3MiwwLDAsMCwxLjIxNi0uNDExQTEuMzgyLDEuMzgyLDAsMCwwLDguNSwxNy4zOTFhMS4xNTYsMS4xNTYsMCwwLDAtLjM1OS0uODYyLDIuOTQ1LDIuOTQ1LDAsMCwwLTEuMTExLS42cS0uNDktLjE2Ny0uOS0uMzF0LS43NzMtLjI5MmEyLjU4LDIuNTgsMCwwLDEtMS4yMzktMS4wMDcsMi43MywyLjczLDAsMCwxLS40MDUtMS40NjUsMi40MDYsMi40MDYsMCwwLDEsLjIxLS45ODYsMi42MDgsMi42MDgsMCwwLDEsLjYxMi0uODUsMi45NjcsMi45NjcsMCwwLDEsLjk4NS0uNTc1LDMuNzIyLDMuNzIyLDAsMCwxLDEuMzA2LS4yMjMsMy45ODQsMy45ODQsMCwwLDEsMS4yODguMiw1LjE1MSw1LjE1MSwwLDAsMSwuOTQ0LjQwOGwuMzU2LS4zN2guNTA3bC4wNDcsMi45ODhoLS41cS0uMTc1LS40ODMtLjQxMS0uOTg3YTQuMzMyLDQuMzMyLDAsMCwwLS41LS44MzksMi4zLDIuMywwLDAsMC0uNjU5LS41NzMsMS43MjksMS43MjksMCwwLDAtLjg3NS0uMjE0QTEuNDM3LDEuNDM3LDAsMCwwLDYsMTEuMjEyYTEuMjMzLDEuMjMzLDAsMCwwLS40LjkzNCwxLjE0MSwxLjE0MSwwLDAsMCwuMzQ3Ljg2LDIuOTUxLDIuOTUxLDAsMCwwLDEuMDgyLjU4OHEuNDMxLjE1NC44OC4zMDl0LjguM2EyLjg4NSwyLjg4NSwwLDAsMSwxLjI4Ni45NTUsMi41MTIsMi41MTIsMCwwLDEsLjQ0LDEuNTEyLDIuNjMyLDIuNjMyLDAsMCwxLS45MjcsMS45ODUsMy4zNjcsMy4zNjcsMCwwLDEtMS4wNzkuNkE0LjM5MSw0LjM5MSwwLDAsMSw3LDE5LjQ2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTguOTIxLDExLjQzNGE0LjMzOCw0LjMzOCwwLDAsMSwuOTcxLDEuNDMyLDQuODM0LDQuODM0LDAsMCwxLC4zNTksMS45MTQsNC45NTgsNC45NTgsMCwwLDEtLjcyLDIuNjgsNC4wMzYsNC4wMzYsMCwwLDEtMi4wMzgsMS42NjEsMi4xNTEsMi4xNTEsMCwwLDAsLjQyLDEuMjcyLDEuMTY4LDEuMTY4LDAsMCwwLC45NS41MzcsMy41NjMsMy41NjMsMCwwLDAsLjU5Mi0uMDQzcS4yNTQtLjA0My40NTgtLjF2LjU0M2E1Ljc1Myw1Ljc1MywwLDAsMS0uOTg1LjMsNi4wNTQsNi4wNTQsMCwwLDEtMS4zNy4xNTEsMi4yMDYsMi4yMDYsMCwwLDEtMS42MTItLjYyMSwyLjU3NCwyLjU3NCwwLDAsMS0uNzA4LTEuNzMyQTQuNTc5LDQuNTc5LDAsMCwxLDEzLjcsMTlhNC4xODYsNC4xODYsMCwwLDEtMS4yNTMtLjkzMiw0LjM4OCw0LjM4OCwwLDAsMS0uODQyLTEuMzc3LDQuNzY5LDQuNzY5LDAsMCwxLS4zMTItMS43NTMsNS4yMzcsNS4yMzcsMCwwLDEsLjM0Ny0xLjk0OCw0LjUsNC41LDAsMCwxLC45NTMtMS41LDQuMTE5LDQuMTE5LDAsMCwxLDEuNDI1LS45NDIsNC44Niw0Ljg2LDAsMCwxLDMuNS0uMDA5QTQuMjQ3LDQuMjQ3LDAsMCwxLDE4LjkyMSwxMS40MzRabS0xLjUsNi4yNjZhNC44NTcsNC44NTcsMCwwLDAsLjM3OS0xLjI3Myw5Ljk4MSw5Ljk4MSwwLDAsMCwuMTE3LTEuNjA2LDEwLjUzNCwxMC41MzQsMCwwLDAtLjEtMS40OCw0LjkzNiw0LjkzNiwwLDAsMC0uMzQ3LTEuMjgyLDIuNDEsMi40MSwwLDAsMC0uNjY1LS45LDEuNTcxLDEuNTcxLDAsMCwwLTEuMDMyLS4zNCwxLjczLDEuNzMsMCwwLDAtMS42LDEuMDYsNi42MzQsNi42MzQsMCwwLDAtLjU0OCwyLjk5Myw5LjU4Myw5LjU4MywwLDAsMCwuMTIsMS41NTEsNC44LDQuOCwwLDAsMCwuMzc2LDEuMjczLDIuMjg2LDIuMjg2LDAsMCwwLC42NjUuODU2LDEuNTkxLDEuNTkxLDAsMCwwLC45OTEuMzA2LDEuNjExLDEuNjExLDAsMCwwLC45OTEtLjMwOUEyLjEzNSwyLjEzNSwwLDAsMCwxNy40MjMsMTcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMjguNSwxMi44aC0uNDU1YTMuOTMsMy45MywwLDAsMC0uNi0xLjA4NiwxLjM4NSwxLjM4NSwwLDAsMC0uODEyLS42M2MtLjExNi0uMDE2LS4yNzItLjAzMS0uNDY1LS4wNDNzLS4zNzMtLjAxOS0uNTM1LS4wMTlIMjQuMzQ5djMuNDMzaC44MjJhMS45NjksMS45NjksMCwwLDAsLjYwNi0uMDgzLDEuMDU0LDEuMDU0LDAsMCwwLC40NTUtLjMsMS41OTEsMS41OTEsMCwwLDAsLjI4My0uNTE2LDIuNjM1LDIuNjM1LDAsMCwwLC4xNjYtLjYyMWguNDQzdjMuNjg2aC0uNDQzYTIuNDcxLDIuNDcxLDAsMCwwLS4xODEtLjY3NiwyLjA5NCwyLjA5NCwwLDAsMC0uMjY4LS41MjgsMS4wMTIsMS4wMTIsMCwwLDAtLjQzMS0uMjkzLDEuODQyLDEuODQyLDAsMCwwLS42My0uMWgtLjgyMnYyLjlhLjg0Mi44NDIsMCwwLDAsLjA3OS4zOC41OC41OCwwLDAsMCwuMy4yNTYsMS44NywxLjg3LDAsMCwwLC4zNTMuMXEuMjI0LjA0Ni40NDYuMDcxdi40ODJoLTQuNDZ2LS40ODJsLjQ0OS0uMDUyYTEuNTI1LDEuNTI1LDAsMCwwLC4zOTEtLjA4My41NDcuNTQ3LDAsMCwwLC4yOTItLjI0MS44NDIuODQyLDAsMCwwLC4wODItLjR2LTYuMThhLjg2Ny44NjcsMCwwLDAtLjA3My0uMzY3LjU3NS41NzUsMCwwLDAtLjMtLjI2MiwyLjM0MSwyLjM0MSwwLDAsMC0uNDMxLS4xMzZxLS4yNjgtLjA2Mi0uNDA4LS4wOHYtLjQ4MkgyOC41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNSwyMy41SDdhNS4wMTUsNS4wMTUsMCwwLDEtNS01di02YTUuMDE1LDUuMDE1LDAsMCwxLDUtNUgyNWE1LjAxNSw1LjAxNSwwLDAsMSw1LDV2NmE1LjAxNSw1LjAxNSwwLDAsMS01LDVaXFxcIi8+PHBhdGggZD1cXFwiTTcsMTkuNDYxYTQuODEsNC44MSwwLDAsMS0xLjQxNC0uMiw1LjA1Miw1LjA1MiwwLDAsMS0xLjExMS0uNDcybC0uNC40MzJoLS41TDMuNSwxNi4wNTJINGE4LjQ2Miw4LjQ2MiwwLDAsMCwuNDMxLjk1Myw0LjYzOCw0LjYzOCwwLDAsMCwuNjA2LjksMy4xNzcsMy4xNzcsMCwwLDAsLjguNjc1LDEuOTg1LDEuOTg1LDAsMCwwLDEuMDI5LjI2LDEuNjcyLDEuNjcyLDAsMCwwLDEuMjE2LS40MTFBMS4zODIsMS4zODIsMCwwLDAsOC41LDE3LjM5MWExLjE1NiwxLjE1NiwwLDAsMC0uMzU5LS44NjIsMi45NDUsMi45NDUsMCwwLDAtMS4xMTEtLjZxLS40OS0uMTY3LS45LS4zMXQtLjc3My0uMjkyYTIuNTgsMi41OCwwLDAsMS0xLjIzOS0xLjAwNywyLjczLDIuNzMsMCwwLDEtLjQwNS0xLjQ2NSwyLjQwNiwyLjQwNiwwLDAsMSwuMjEtLjk4NiwyLjYwOCwyLjYwOCwwLDAsMSwuNjEyLS44NSwyLjk2NywyLjk2NywwLDAsMSwuOTg1LS41NzUsMy43MjIsMy43MjIsMCwwLDEsMS4zMDYtLjIyMywzLjk4NCwzLjk4NCwwLDAsMSwxLjI4OC4yLDUuMTUxLDUuMTUxLDAsMCwxLC45NDQuNDA4bC4zNTYtLjM3aC41MDdsLjA0NywyLjk4OGgtLjVxLS4xNzUtLjQ4My0uNDExLS45ODdhNC4zMzIsNC4zMzIsMCwwLDAtLjUtLjgzOSwyLjMsMi4zLDAsMCwwLS42NTktLjU3MywxLjcyOSwxLjcyOSwwLDAsMC0uODc1LS4yMTRBMS40MzcsMS40MzcsMCwwLDAsNiwxMS4yMTJhMS4yMzMsMS4yMzMsMCwwLDAtLjQuOTM0LDEuMTQxLDEuMTQxLDAsMCwwLC4zNDcuODYsMi45NTEsMi45NTEsMCwwLDAsMS4wODIuNTg4cS40MzEuMTU0Ljg4LjMwOXQuOC4zYTIuODg1LDIuODg1LDAsMCwxLDEuMjg2Ljk1NSwyLjUxMiwyLjUxMiwwLDAsMSwuNDQsMS41MTIsMi42MzIsMi42MzIsMCwwLDEtLjkyNywxLjk4NSwzLjM2NywzLjM2NywwLDAsMS0xLjA3OS42QTQuMzkxLDQuMzkxLDAsMCwxLDcsMTkuNDYxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45MjEsMTEuNDM0YTQuMzM4LDQuMzM4LDAsMCwxLC45NzEsMS40MzIsNC44MzQsNC44MzQsMCwwLDEsLjM1OSwxLjkxNCw0Ljk1OCw0Ljk1OCwwLDAsMS0uNzIsMi42OCw0LjAzNiw0LjAzNiwwLDAsMS0yLjAzOCwxLjY2MSwyLjE1MSwyLjE1MSwwLDAsMCwuNDIsMS4yNzIsMS4xNjgsMS4xNjgsMCwwLDAsLjk1LjUzNywzLjU2MywzLjU2MywwLDAsMCwuNTkyLS4wNDNxLjI1NC0uMDQzLjQ1OC0uMXYuNTQzYTUuNzUzLDUuNzUzLDAsMCwxLS45ODUuMyw2LjA1NCw2LjA1NCwwLDAsMS0xLjM3LjE1MSwyLjIwNiwyLjIwNiwwLDAsMS0xLjYxMi0uNjIxLDIuNTc0LDIuNTc0LDAsMCwxLS43MDgtMS43MzJBNC41NzksNC41NzksMCwwLDEsMTMuNywxOWE0LjE4Niw0LjE4NiwwLDAsMS0xLjI1My0uOTMyLDQuMzg4LDQuMzg4LDAsMCwxLS44NDItMS4zNzcsNC43NjksNC43NjksMCwwLDEtLjMxMi0xLjc1Myw1LjIzNyw1LjIzNywwLDAsMSwuMzQ3LTEuOTQ4LDQuNSw0LjUsMCwwLDEsLjk1My0xLjUsNC4xMTksNC4xMTksMCwwLDEsMS40MjUtLjk0Miw0Ljg2LDQuODYsMCwwLDEsMy41LS4wMDlBNC4yNDcsNC4yNDcsMCwwLDEsMTguOTIxLDExLjQzNFptLTEuNSw2LjI2NmE0Ljg1Nyw0Ljg1NywwLDAsMCwuMzc5LTEuMjczLDkuOTgxLDkuOTgxLDAsMCwwLC4xMTctMS42MDYsMTAuNTM0LDEwLjUzNCwwLDAsMC0uMS0xLjQ4LDQuOTM2LDQuOTM2LDAsMCwwLS4zNDctMS4yODIsMi40MSwyLjQxLDAsMCwwLS42NjUtLjksMS41NzEsMS41NzEsMCwwLDAtMS4wMzItLjM0LDEuNzMsMS43MywwLDAsMC0xLjYsMS4wNiw2LjYzNCw2LjYzNCwwLDAsMC0uNTQ4LDIuOTkzLDkuNTgzLDkuNTgzLDAsMCwwLC4xMiwxLjU1MSw0LjgsNC44LDAsMCwwLC4zNzYsMS4yNzMsMi4yODYsMi4yODYsMCwwLDAsLjY2NS44NTYsMS41OTEsMS41OTEsMCwwLDAsLjk5MS4zMDYsMS42MTEsMS42MTEsMCwwLDAsLjk5MS0uMzA5QTIuMTM1LDIuMTM1LDAsMCwwLDE3LjQyMywxNy43WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC41LDEyLjhoLS40NTVhMy45MywzLjkzLDAsMCwwLS42LTEuMDg2LDEuMzg1LDEuMzg1LDAsMCwwLS44MTItLjYzYy0uMTE2LS4wMTYtLjI3Mi0uMDMxLS40NjUtLjA0M3MtLjM3My0uMDE5LS41MzUtLjAxOUgyNC4zNDl2My40MzNoLjgyMmExLjk2OSwxLjk2OSwwLDAsMCwuNjA2LS4wODMsMS4wNTQsMS4wNTQsMCwwLDAsLjQ1NS0uMywxLjU5MSwxLjU5MSwwLDAsMCwuMjgzLS41MTYsMi42MzUsMi42MzUsMCwwLDAsLjE2Ni0uNjIxaC40NDN2My42ODZoLS40NDNhMi40NzEsMi40NzEsMCwwLDAtLjE4MS0uNjc2LDIuMDk0LDIuMDk0LDAsMCwwLS4yNjgtLjUyOCwxLjAxMiwxLjAxMiwwLDAsMC0uNDMxLS4yOTMsMS44NDIsMS44NDIsMCwwLDAtLjYzLS4xaC0uODIydjIuOWEuODQyLjg0MiwwLDAsMCwuMDc5LjM4LjU4LjU4LDAsMCwwLC4zLjI1NiwxLjg3LDEuODcsMCwwLDAsLjM1My4xcS4yMjQuMDQ2LjQ0Ni4wNzF2LjQ4MmgtNC40NnYtLjQ4MmwuNDQ5LS4wNTJhMS41MjUsMS41MjUsMCwwLDAsLjM5MS0uMDgzLjU0Ny41NDcsMCwwLDAsLjI5Mi0uMjQxLjg0Mi44NDIsMCwwLDAsLjA4Mi0uNHYtNi4xOGEuODY3Ljg2NywwLDAsMC0uMDczLS4zNjcuNTc1LjU3NSwwLDAsMC0uMy0uMjYyLDIuMzQxLDIuMzQxLDAsMCwwLS40MzEtLjEzNnEtLjI2OC0uMDYyLS40MDgtLjA4di0uNDgySDI4LjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiU1FMXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmZGE0NFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguNTYyLDE1LjI1NkEyMS4xNTksMjEuMTU5LDAsMCwwLDE2LDE2LjQ0OWEyMS4xNTksMjEuMTU5LDAsMCwwLDcuNDM4LTEuMTk0YzEuODY0LS43MjcsMi41MjUtMS41MzUsMi41MjUtMlY5LjdhMTAuMzU3LDEwLjM1NywwLDAsMS0yLjA4NCwxLjA3NkEyMi4yOTMsMjIuMjkzLDAsMCwxLDE2LDEyLjA3OGEyMi4zNiwyMi4zNiwwLDAsMS03Ljg3OS0xLjNBMTAuMjgsMTAuMjgsMCwwLDEsNi4wMzcsOS43djMuNTVDNi4wMzcsMTMuNzI0LDYuNywxNC41MjgsOC41NjIsMTUuMjU2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGE0NFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBjNS41LDAsOS45NjMtMS43NDQsOS45NjMtMy44OTRWMjMuMjY5YTEwLjUsMTAuNSwwLDAsMS0xLjUzNS43NjJsLS4xNTcuMDYzQTIzLjQ4NywyMy40ODcsMCwwLDEsMTYsMjUuNDQ1YTIzLjQyMiwyMy40MjIsMCwwLDEtOC4yNzEtMS4zNTFjLS4wNTQtLjAyLS4xMDYtLjA0My0uMTU3LS4wNjNhMTAuNSwxMC41LDAsMCwxLTEuNTM1LS43NjJ2Mi44MzdDNi4wMzcsMjguMjU2LDEwLjUsMzAsMTYsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiNS44OTRcXFwiIHJ4PVxcXCI5Ljk2M1xcXCIgcnk9XFxcIjMuODk0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiU3F1aXJyZWxcIjoge1xuXHRcdGNvbG91cjogXCIjYTA1YTJjXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuOTY2LDI3LjNhMTguOTI2LDE4LjkyNiwwLDAsMS01LjcwNy0uOTE1Yy0xLjgzMi0uNTkyLTQuMDQ0LTEuNTQtNC45MzEtMy42NDVhLjU1Ny41NTcsMCwwLDEtLjAyNS0uMDczLDEyLjIxNCwxMi4yMTQsMCwwLDEsLjc2My03LjUzMWMxLjUyMi00LjAwOCwzLjcxLTYuNzM5LDYuNS04LjExNmExMC40MjIsMTAuNDIyLDAsMCwxLDcuNi0uNTUsMTAuNDI2LDEwLjQyNiwwLDAsMSw2LjA0LDQuNjM5LDExLjA1NywxMS4wNTcsMCwwLDEsMS4wNTgsMi4zMjYsMTAuNjYsMTAuNjYsMCwwLDEtNS4zNzgsMTIuNjg5bC0uMDIuMDA5QTE0LjgzMiwxNC44MzIsMCwwLDEsMTIuOTY2LDI3LjNaXFxcIi8+PHBhdGggZD1cXFwiTTIyLjcyLDExLjM5M2ExMC4xNDQsMTAuMTQ0LDAsMCwwLTEyLjktMy44NjlDNi43LDkuMDYxLDQuNzg0LDEyLjIsMy41OTMsMTUuMzM0YTExLjksMTEuOSwwLDAsMC0uNzQ2LDcuMTg3Yy43ODMsMS44NiwyLjc3OSwyLjc0NCw0LjU4MiwzLjMyN2ExNi4yMDYsMTYuMjA2LDAsMCwwLDExLjIxMy0uMjMyQTEwLjExLDEwLjExLDAsMCwwLDIzLjcyNywxMy42LDEwLjQ4OCwxMC40ODgsMCwwLDAsMjIuNzIsMTEuMzkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2EwNWEyY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNS43ODIsNi43MkE4LjI2Myw4LjI2MywwLDAsMSwxNy42NCw4LjA4NCw5LjY1LDkuNjUsMCwwLDEsMTkuMDgsOS44YTkuMzE3LDkuMzE3LDAsMCwxLTEuNTMxLDExLjkyMUExNC45MzMsMTQuOTMzLDAsMCwxLDcuNjU2LDI0LjdhNy41ODEsNy41ODEsMCwwLDEtNC4xMzUtMS4xLDguNDU0LDguNDU0LDAsMCwwLDMuOTA3LDIuMjQxLDE2LjIwOCwxNi4yMDgsMCwwLDAsMTEuMjE0LS4yMzNBMTAuMTEyLDEwLjExMiwwLDAsMCwyMy43MjcsMTMuNmExMC40ODcsMTAuNDg3LDAsMCwwLTEuMDA3LTIuMjExQTkuOTczLDkuOTczLDAsMCwwLDE1Ljc4Miw2LjcyWlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz48cGF0aCBkPVxcXCJNMjMuNDc2LDEzLjM4OWwtMS4wNjItMi44OTUuMTUyLS4yMzZBNi44NzUsNi44NzUsMCwwLDEsMjcuNTA5LDcuN2EyLjE3NywyLjE3NywwLDAsMSwxLjg3OS41ODgsMy4zNzYsMy4zNzYsMCwwLDEsLjEsMy43MjljLS4zNDMuMjkyLS43NTEuMTI0LTEuMjIyLS4wN2EyLjgyMSwyLjgyMSwwLDAsMC0yLjEzMy0uMjcsMTAuMiwxMC4yLDAsMCwwLTIuMDQ3LDEuMjA5WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4wMzksMTAuNTYzYzEuMjIzLTEuOSw1LjEwNy0yLjkxNSw1LjkxMi0xLjkyM2EyLjk3LDIuOTcsMCwwLDEsLjE3NywyLjk0NWMtLjI0NS4yMDctMS44MzctMS4wNTktMy4yMjUtLjQyM0ExMC41NzQsMTAuNTc0LDAsMCwwLDIzLjczLDEyLjQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUwMmQxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS40LDkuNzI3YS44LjgsMCwwLDEtLjIuNDY5Yy0uMjI5LjE2Mi0xLjktLjUwNi0zLjIzOC4wNTZhMTIuNDM5LDEyLjQzOSwwLDAsMC0yLjA3MSwxLjA3TDIzLjIsMTAuMzRjLS4wNTcuMDc0LS4xMTYuMTQ3LS4xNjUuMjIzbC42OTIsMS44ODZBMTAuNTc3LDEwLjU3NywwLDAsMSwyNS45LDExLjE2MmMxLjM4OC0uNjM2LDIuOTguNjMxLDMuMjI1LjQyM0EyLjg0NiwyLjg0NiwwLDAsMCwyOS40LDkuNzI3WlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMzgyLDI1LjE4YTIuMjM2LDIuMjM2LDAsMCwxLTEuMTQ3LS4zMjMuNTYzLjU2MywwLDAsMS0uMDgyLS44ODhjLjczNy0uNjg0LjYwNy0yLjE3My0uNDEtNC42ODlhMzYuNTI2LDM2LjUyNiwwLDAsMC01LjEyMy04LjgyNWwtLjM1LS40M2MtMS41MTItMS44NjUtMi4zNTgtMi44MTUtMy41NTQtMi4zYS41NjIuNTYyLDAsMCwxLS40MTMuMDE2LjU3MS41NzEsMCwwLDEtLjM3Ny0uNTkyLDIuMTE5LDIuMTE5LDAsMCwxLDEuNDYxLTJjNC43MTYtMS40ODEsMTAuMjYuODE0LDEyLjkwNSw1LjM0NGExMS4yLDExLjIsMCwwLDEtMS40MzEsMTMuOTkxQTEuOTE5LDEuOTE5LDAsMCwxLDIxLjM4MiwyNS4xOFpcXFwiLz48cGF0aCBkPVxcXCJNMjMuODEyLDEwLjc4M2MtMi40NDQtNC4xOTItNy43My02LjUyOC0xMi4yNy01LjA5My0xLjAwNy4yNDgtMS4wNjUsMS41MzUtMS4wNTIsMS41MTcsMS43NzYtLjc2NywyLjk1My45MTksNC41NjYsMi44OWEzNi45LDM2LjksMCwwLDEsNS4yMDksOC45NzFjLjg5LDIuMiwxLjQsNC4yNjcuMjcsNS4zMTJhMS41LDEuNSwwLDAsMCwxLjkwOS0uMjc0QTEwLjY0NiwxMC42NDYsMCwwLDAsMjMuODEyLDEwLjc4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MDJkMTZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ5LDEwLjM0NmE5LjMxNCw5LjMxNCwwLDAsMS0yLjUxOCw3LjcyNWMtLjQ1NS40ODYtLjg3My4xNzctMS4yNjMuMDYzLjEzOC4zMTMuMjcxLjYyNi40LjkzNi44OSwyLjIsMS40LDQuMjY2LjI3MSw1LjMxMmExLjUsMS41LDAsMCwwLDEuOTA5LS4yNzRDMjYuMDg5LDIwLjE4MywyNi4zNTcsMTQuOTE5LDIzLjY0OSwxMC4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuMzEzNzI1NTAxMjk4OTA0NFxcXCIvPlwiLFxuXHR9LFxuXHRcIlN0YW5cIjoge1xuXHRcdGNvbG91cjogXCIjYjIwMDFkXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX3N0YW48L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyQTE0LDE0LDAsMCwwLDUuNjg4LDI1LjQ2OWMxLjctLjUxNCwzLjQxMS0uOTkyLDQuODA2LTEuMzU3LDQuMDM3LTEuMDU0LDEwLjk0OC0yLjgzNiwxMS45NDYtNS4wODItLjI4Ljc4LTEuMjE4LDIuODctMS4yMTgsMi44Ny0xLjI3OSwxLjI0Ny03LjA5LDIuNjMxLTEwLjkxNywzLjM2Ny0xLjIyLjIzNS0yLjYxNC41MDctNC4wMjYuODA2QTE0LDE0LDAsMCwwLDI4LjQ2Nyw5LjYyOGMtMi41MjYuNDA4LTEwLjUsMS44NTQtMTIuNTM5LDIuMzE1LTIuMjU1LjUwOS02Ljc4OSwxLjQzMy03LjY5NCwyLjk5M0M4LjgsMTMuNSwxMC40OTIsOS43NDQsMTAuNDkyLDkuNzQ0YzEuMjE2LTIsNi42LTMuNDI1LDEwLjM1OC00LjQ2My44NzYtLjI0MiwxLjkyMi0uNTM5LDMuMDIzLS44NThBMTMuOTM0LDEzLjkzNCwwLDAsMCwxNiwyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2IyMDAxZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjIyMywxNC45ODdjLS4yNTIsMS4xNzUsMy41MiwyLjMxMyw2LjkyMSwzLjM4OWEyNi4zNjIsMjYuMzYyLDAsMCwxLDUuNjY3LDIuMTkyLDMuMDg1LDMuMDg1LDAsMCwwLDEuNjYyLTEuNjE0Yy4zNzctMS40ODktMy4wMTMtMy4zOTMtNS4yNzQtNC4yMjlhMzMuMzM3LDMzLjMzNywwLDAsMS00LjQwNy0yLjA0MmMtNC4zMTYsMS4xNDMtNC41NjksMi4zLTQuNTY5LDIuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OTA4MTVcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlN0YXRhIEFkb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMzYzZlOGZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiMlxcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMzBcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4YWE3YzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYzZlOGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N0YXRhPC90aXRsZT48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHJ4PVxcXCIxLjU1NlxcXCIgcnk9XFxcIjEuNTU2XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHJlY3QgeD1cXFwiMTMuMTcxXFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCIxMy4xNzFcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjEzLjE3MVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMjAuMzI2XFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIxMy4xNzFcXFwiIHk9XFxcIjIwLjMyNlxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiU3R5bHVzXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MyYzJjMlwiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9zdHlsdXM8L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjMxNSwyMC43NzZjLjcyNi0uODY5LjgxMi0xLjc2Ni4yNDktMy40MzItLjM1Ni0xLjA1NC0uOTQ3LTEuODY1LS41MTMtMi41MjEuNDYzLS43LDEuNDQ1LS4wMjEuNjI3LjkxMWwuMTY0LjExNGMuOTgzLjExNCwxLjQ2Ny0xLjIzMi43MzMtMS42MTYtMS45MzctMS4wMTEtMy42MzEuOTMzLTIuODg0LDMuMTgzLjMyLjk1NC43NjksMS45NjUuNDA2LDIuNzdBMS43OTQsMS43OTQsMCwwLDEsMy43NzMsMjEuM2MtLjg0Ny4wNDMtLjI4NS0xLjkuNjkxLTIuMzg1LjA4NS0uMDQzLjIwNi0uMS4wOTMtLjI0MmEyLjEzNCwyLjEzNCwwLDAsMC0yLjMxNCwxLjJDMS4wNjEsMjIuMTIxLDQuNDg1LDIyLjk1NCw2LjMxNSwyMC43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTI3LjQ2MiwxNC4xNGMuMjc4LjY4NC43LDEuMzYuNDQ5LDEuOTU4LS4yMDYuNTEzLS40NzcuNzI2LS43NzYuNzc2LS40Mi4wNzEtLjMwNi0xLjI0Ni40MTMtMS42MzguMDY0LS4wMzYuMTU3LS4yMDYuMDcxLS4zMDZhMS42MzYsMS42MzYsMCwwLDAtMS43Ljk2MWMtLjgsMS42ODcsMS44MjMsMi4xNSwzLjExMi40OTEuNTEzLS42NjIuNTM0LTEuMzE3LjA0My0yLjUwNi0uMzEzLS43NTUtLjc5LTEuMzE3LS40OTEtMS44MTYuMzItLjUyNywxLjA4OS0uMDcxLjUxMy42MzRsLjEyOC4wNzFjLjc0OC4wNDMsMS4wNTQtLjk1NC40ODQtMS4yQTEuODM0LDEuODM0LDAsMCwwLDI3LjQ2MiwxNC4xNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUsMTIuMzM4Yy0uNTItLjQxMy0xLjk3OS4yNzgtMi4zOTIsMS4zYTE2LjIxMywxNi4yMTMsMCwwLDEtMi4wNDMsNC4wMzdjLS44Ljg3Ni0uODc2LjItLjgtLjMwNkExNS4zMjcsMTUuMzI3LDAsMCwxLDE0LjcsMTIuNjUyYy0uMjM1LS4zNDktMS43NzMtLjMtMi44NDEsMS4zNi0uNC42MjctMS4zMSwyLjcxMy0yLjMyMSw0LjM1OC0uMjIxLjM1Ni0uNS4xMDctLjI4NS0uNzI2YTM5LjgsMzkuOCwwLDAsMSwxLjg3My01LjY4MiwzOS4wNzIsMzkuMDcyLDAsMCwxLDYuOTIxLS44MTljLjI2My0uMDcxLjQ0MS0uMzA2LDAtLjMyYTQ2Ljc3OCw0Ni43NzgsMCwwLDAtNi41OTMuNDQxLDQuOTIzLDQuOTIzLDAsMCwxLDEuNDQ1LTEuOTQ0LDEuNzg3LDEuNzg3LDAsMCwwLTIuMjY0LjcxOSwxMi4yODcsMTIuMjg3LDAsMCwwLS44MTksMS40NTMsMjQuMTk0LDI0LjE5NCwwLDAsMC0zLjk4Ljg2MmMtLjc4My4zLS43LDEuMjQ2LS4yMjEsMS4wNjhhMzEuNjMxLDMxLjYzMSwwLDAsMSwzLjgxNi0xLjEsMzAuMjkyLDMwLjI5MiwwLDAsMC0xLjg2NSw1LjY4MmMtLjQ0MSwyLjQ5MiwxLjEsMi40NzgsMS44NTgsMS41LjgxOS0xLjA3NSwyLjUyOC00Ljg1NiwyLjc5MS01LjI1NS4wNzgtLjEzNS4xODUtLjA2NC4xMjguMDU3LTEuOTA4LDMuODA5LTEuNzQ0LDUuMjgzLS4yLDQuOTU2YTQuOTI5LDQuOTI5LDAsMCwwLDIuMjE0LTEuOTY1Yy4wNjQtLjE1LjItLjEzNS4xNzEtLjA3MS0xLjIxLDMuMTQtMi43NDgsNS42ODItMy43ODEsNi40NzktLjk0LjcxOS0xLjYzOC0uODQsMS42ODctMy4wNzYuNDkxLS4zMzUuMjYzLS43OS0uMjkyLS42MzRoMGEyOS43OTMsMjkuNzkzLDAsMCwwLTguNzg2LDMuMzI1Yy0uMTY0LjExNC0uMzEzLjIwNi0uMzA2LjQ0MS4wMDcuMTM1LjI0Mi4wODUuMzU2LjAxNEEyMi43NzEsMjIuNzcxLDAsMCwxLDExLjEsMjAuOWEuMTU4LjE1OCwwLDAsMCwuMTE0LjAwN2MuMTIxLS4wMjguMTE0LjAzNi4wMzYuMDg1LS4xNzguMS0uMzU2LjE5Mi0uNC4yMDYtMS43NjYuNjkxLTIuODM0LDIuMjE0LTIuNDU2LDIuOTkuMzIuNjY5LDIuMDUxLjQyNywyLjg2OS0uMDE0LDIuMDA4LTEuMDg5LDMuNDY4LTMuMjI1LDQuNDY0LTYuMTczQzE2LjYsMTUuMzg2LDE3LjY5MywxMi40MjQsMTcuOTUsMTIuMzM4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42MiwxOC4zNjlhNDguMTQ1LDQ4LjE0NSwwLDAsMC0xMy40MjkuOTY4Yy0uOTI2LjI0Mi0uNjY5LjczMy0uMi42NDEuMDA3LDAsLjIwNi0uMDUuMjE0LS4wNWE0Mi4yNzksNDIuMjc5LDAsMCwxLDEyLjM3NS0uMjQyQzI5LjAxNCwxOS43NjUsMzAuMzE3LDE4LjQ2MiwyOS42MiwxOC4zNjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljg2MSwxNy45ODVjLjkxMS0uNDU2LDIuMjY0LTMuMjc1LDMuMTU0LTQuODIuMDY0LS4xMTQuMTc4LS4wMjEuMTE0LjA1Ny0yLjI1LDMuODczLTEuMyw0LjMyMi0uNDA2LDQuMjY1LDEuMTg5LS4wNzEsMi4yODYtMS43OCwyLjUyOC0yLjE2NS4xLS4xNS4xNTctLjAyOC4xLjA3OC0uMDU3LjE3OC0uMjYzLjQ5MS0uNDU2LjkxOS0uMjcxLjYwNS4wMTQuODQuMjQ5Ljk0Ny4zNy4xNzgsMS4zODEuMDY0LDEuNTM4LS41NTUtMS4wMTEtLjAyMSwxLjQxLTQuNzkyLDEuNjU5LTUuMDg0YTEuNzE4LDEuNzE4LDAsMCwwLTIuMi45NzVjLTEuMDE4LDIuMDE1LTEuODczLDMuNjM4LTIuNDA3LDMuNjY3LTEuMDQuMDU3LDEuMi00LjQ5MywxLjU1OS00LjYzNS0uMjIxLS4zMi0xLjYzOC0uMTg1LTIuNDI4LDEuMDQtLjI4NS40NDEtMi4wMjIsMy41MTctMi40NDksNC4wMjMtLjc1NS45LS44MTIuMTI4LS42LS43NjlhMTAuNTY5LDEwLjU2OSwwLDAsMSwuMzQ5LTEuMTMyLDUuMzI0LDUuMzI0LDAsMCwxLDEuMzYtMS44NDRjMi4yLTIuNDQyLDMuNDYtNC40MjIsMi45NjItNS4yLS40NDEtLjY5MS0xLjkxNS0uMzg0LTIuODYyLDEuMDQtMS43NDQsMi42MTMtMy4zNTQsNi4xOTUtMy41Niw3LjgzMlMxOC4wNTYsMTguMzgzLDE4Ljg2MSwxNy45ODVabS45MjYtNC43OTJjLjA3OC0uMTc4LjEyOC0uMjI4LjI2My0uNTI3aDBBMjQuOTM0LDI0LjkzNCwwLDAsMSwyMi40OTIsOC4yOGMuNDItLjQ0MSwxLjAxMS4xNTctLjA1NywxLjc5NGExNi40NjIsMTYuNDYyLDAsMCwxLTIuMTE1LDIuNjQydi4wMDdjLS4yLjIyMS0uMzc3LjQwNi0uNDU2LjUxM0MxOS44MDgsMTMuMzA3LDE5Ljc0NCwxMy4yOTIsMTkuNzg3LDEzLjE5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0fSxcblx0XCJTVkdcIjoge1xuXHRcdGNvbG91cjogXCIjZmZiMTNiXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTEuMjIyLDkuMDZBMi4yMTgsMi4yMTgsMCwxLDAsOSwxMS4yNzhMMjAuNzc4LDIzLjA1MkEyLjIxOCwyLjIxOCwwLDEsMCwyMywyMC44MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTY4LDcuNzNhMi4yMTgsMi4yMTgsMCwxLDAtMy4xMzcsMFYyNC4zODJhMi4yMTgsMi4yMTgsMCwxLDAsMy4xMzcsMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2I7c3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjMuNzMwMDAwMDE5MDczNDlweFxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTExLjIyMiw5LjA2QTIuMjE4LDIuMjE4LDAsMSwwLDksMTEuMjc4TDIwLjc3OCwyMy4wNTJBMi4yMTgsMi4yMTgsMCwxLDAsMjMsMjAuODM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NjgsNy43M2EyLjIxOCwyLjIxOCwwLDEsMC0zLjEzNywwVjI0LjM4MmEyLjIxOCwyLjIxOCwwLDEsMCwzLjEzNywwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTIsMTYuMDU2SDMwVjI1Ljk1YTQuMDM1LDQuMDM1LDAsMCwxLTQuMTA2LDQuMTA2SDYuMTA2QTQuMDM1LDQuMDM1LDAsMCwxLDIsMjUuOTVaXFxcIi8+PHBhdGggZD1cXFwiTTYuMiwyMy4wNDVBMy42MjgsMy42MjgsMCwxLDEsMTIuNCwyMC40OEgxMC4yN0ExLjUsMS41LDAsMSwwLDcuNywyMS41NDFoMGExLjYsMS42LDAsMCwwLDEuMDYyLjQ0MWgwYTQuMTE4LDQuMTE4LDAsMCwxLDIuNTY2LDEuMDYzaDBhMy42MjgsMy42MjgsMCwxLDEtNi4xOTQsMi41NjVINy4yNjRBMS41LDEuNSwwLDEsMCw5LjgzLDI0LjU1aDBhMS45NDgsMS45NDgsMCwwLDAtMS4wNjMtLjQ0aDBBNC40NjUsNC40NjUsMCwwLDEsNi4yLDIzLjA0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuNjUxLDE2Ljg1MiwxNy4wODUsMjkuMjRIMTQuOTZMMTIuNCwxNi44NTJIMTQuNTJsMS41LDcuMjU1LDEuNS03LjI1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjgsMjEuOTgzaDMuNjI4djMuNjI4aDBhMy42MjgsMy42MjgsMCwxLDEtNy4yNTcsMGgwVjIwLjQ4aDBhMy42MjgsMy42MjgsMCwwLDEsNy4yNTcsMEgyNC43ODNhMS41LDEuNSwwLDEsMC0zLjAwNSwwdjUuMTNoMGExLjUsMS41LDAsMCwwLDMuMDA1LDBoMHYtMS41aC0xLjVWMjEuOTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlN3aWZ0XCI6IHtcblx0XHRjb2xvdXI6IFwiI0ZBNUQyRFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzNC40OTRcXFwiIHkxPVxcXCItMTcxLjgyXFxcIiB4Mj1cXFwiLTEzNC40OTdcXFwiIHkyPVxcXCItMTcxLjg5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDI0MCwgMCwgMCwgLTIwNS42LCAzMjI5NSwgLTM1MzEyLjU4NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmODg1MzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZDIyMjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N3aWZ0PC90aXRsZT48cGF0aCBkPVxcXCJNMTkuNDIyLDQuMDA3czYuMjE3LDMuNTU0LDcuODQ0LDkuMmMxLjQ2Niw1LjEuMjkyLDcuNTM0LjI5Miw3LjUzNGE4LjkxNSw4LjkxNSwwLDAsMSwxLjc0MiwyLjgsNC44MjUsNC44MjUsMCwwLDEsLjI5LDQuNDUzcy0uMS0yLjA4LTMuMi0yLjUxMWMtMi44NDEtLjQtMy44NzQsMi4zNjYtOS4zLDIuMjMyQTE4LjQzNSwxOC40MzUsMCwwLDEsMiwxOS4zNTRDNC42NTEsMjAuOCw4LjEyNCwyMy4wNDUsMTIuNDQ5LDIyLjdzNS4yMjgtMS42NzQsNS4yMjgtMS42NzRBNjYuOSw2Ni45LDAsMCwxLDQuODkxLDcuNjQzYzMuNCwyLjg0NSwxMS44MjIsOC41MDcsMTEuNjI2LDguMzYzQTc1LjgyNiw3NS44MjYsMCwwLDEsOC4wOTIsNi4yNFMyMC43MjgsMTYuNjI5LDIxLjc0NSwxNi41NjNjLjQxOC0uODYxLDIuNTc5LTUuMzE4LTIuMzI0LTEyLjU1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzMGQ0NzVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDEydjhINS4yNTZWMTguNzY5SDMuM1YxMy4yMzFINS4yNTZWMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljc0NCwxMnYxLjIzMUgyOC43djUuNTM4SDI2Ljc0NFYyMEgzMFYxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTcuNjI4LDE2bDUuMjEtMi43Njl2NS41MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjEyLjA5M1xcXCIgY3k9XFxcIjE2XFxcIiByeD1cXFwiMi45M1xcXCIgcnk9XFxcIjIuNzY5XFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+XCIsXG5cdH0sXG5cdFwiVDQgdGVtcGxhdGluZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMxZTg4ZTVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xOS41NDUsNi4wMzVIMTMuMjdWMjRIOC4zVjYuMDM1SDIuMDU1VjJoMTcuNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2NywxMFYyMi42MDhoMi40VjI1LjloLTIuNFYzMEgyMy41NTFWMjUuOUgxNC44MzRWMjIuNDU1cTEuMTU4LTEuMywyLjQtMi44Mzh0Mi40LTMuMTczcTEuMTU4LTEuNjMyLDIuMTU1LTMuMjg1QTMyLjkyNSwzMi45MjUsMCwwLDAsMjMuNDgxLDEwWk0xOC43ODEsMjIuNjA4aDQuNzdWMTUuNjIxcS0uNDg4LjkwNy0xLjA2LDEuODM0dC0xLjIsMS44MjdxLS42MjguOS0xLjI2OSwxLjc0M1QxOC43ODEsMjIuNjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPlwiLFxuXHR9LFxuXHRcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIjoge1xuXHRcdGNvbG91cjogXCIjMWU4OGU1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTkuNTQ1LDYuMDM1SDEzLjI3VjI0SDguM1Y2LjAzNUgyLjA1NVYyaDE3LjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjcsMTBWMjIuNjA4aDIuNFYyNS45aC0yLjRWMzBIMjMuNTUxVjI1LjlIMTQuODM0VjIyLjQ1NXExLjE1OC0xLjMsMi40LTIuODM4dDIuNC0zLjE3M3ExLjE1OC0xLjYzMiwyLjE1NS0zLjI4NUEzMi45MjUsMzIuOTI1LDAsMCwwLDIzLjQ4MSwxMFpNMTguNzgxLDIyLjYwOGg0Ljc3VjE1LjYyMXEtLjQ4OC45MDctMS4wNiwxLjgzNHQtMS4yLDEuODI3cS0uNjI4LjktMS4yNjksMS43NDNUMTguNzgxLDIyLjYwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz5cIixcblx0fSxcblx0XCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCI6IHtcblx0XHRjb2xvdXI6IFwiIzFlODhlNVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE5LjU0NSw2LjAzNUgxMy4yN1YyNEg4LjNWNi4wMzVIMi4wNTVWMmgxNy40OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTY3LDEwVjIyLjYwOGgyLjRWMjUuOWgtMi40VjMwSDIzLjU1MVYyNS45SDE0LjgzNFYyMi40NTVxMS4xNTgtMS4zLDIuNC0yLjgzOHQyLjQtMy4xNzNxMS4xNTgtMS42MzIsMi4xNTUtMy4yODVBMzIuOTI1LDMyLjkyNSwwLDAsMCwyMy40ODEsMTBaTTE4Ljc4MSwyMi42MDhoNC43N1YxNS42MjFxLS40ODguOTA3LTEuMDYsMS44MzR0LTEuMiwxLjgyN3EtLjYyOC45LTEuMjY5LDEuNzQzVDE4Ljc4MSwyMi42MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+XCIsXG5cdH0sXG5cdFwiVGNsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VmZjFjYlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIxLjk0MiwyLjg3NmMuMDQsMi40NjgtLjAzMyw0LjkxLTIuMTY5LDcuMjNsLS4wNzkuMDg5aC4xMTlsLjg3My4wMTNjLTEuNDE4LDIuOTUtMi4zNDEsNS44OTItNC4zOCw4LjgzbC0uMDczLjEwNi4xMjYtLjAyMywxLjA3OC0uMmE1Ljg1MSw1Ljg1MSwwLDAsMS0zLjQ4NCwzLjY1Yy0uMzktNS40NTUsMi4zMzMtMTAuMjcsNC42NDUtMTUuMDcxbC4wMDctLjAxMy0uMDg2LS4wNmMtMy43ODYsNC4yMzMtNS40OTEsMTAuMi02LjEzNiwxNS4xMjdhNC41ODIsNC41ODIsMCwwLDEtMi4xNDUtMi45ODhsLjkuMzc3LjA5My4wNC0uMDItLjFjLS42ODEtMy4wMjguMzc2LTUuMiwxLjQtOC4wNTZsLjczNy40OTMuMDg2LjA2LDAtLjFjLS4wNTgtMi4zMiwxLjUtNC42NDksMy41NzctNi43MjdsLjI4OC43Ny4wNC4xLjA1Ni0uMS42MzEtMS4wNTEsMC0uMDA3QTYuMSw2LjEsMCwwLDEsMjEuOTQyLDIuODc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MzYjE1ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NDgsMi44NzVhNi4xMzEsNi4xMzEsMCwwLDAtMy45MjYsMi4zODhsMCwuMDA3LS42MzEsMS4wNTEtLjA1Ni4xLS4wNC0uMUwxNyw1LjU0NGMtMi4wNzIsMi4wNzgtMy42MzUsNC40MDctMy41NzcsNi43MjdsMCwuMS0uMDg2LS4wNi0uNzM3LS40OTNjLTEuMDI1LDIuODU2LTIuMDgzLDUuMDI5LTEuNCw4LjA1NmwuMDIuMS0uMDkzLS4wNC0uODg2LS4zNzRjMCwuMDE4LjAwNy4wMzUuMDEuMDUzYTQuNTMzLDQuNTMzLDAsMCwwLDIuMTI2LDIuOTMyYy4wNS0uMzgxLjEwNS0uNzcxLjE2OS0xLjE2NC0xLjU0My0zLjYxNC0uMi02LjI3MS40MDctOC42NjFsLjkzOS41NDJjLS4xMy0yLjIzOCwxLjE4NC00LjY1MSwyLjg5My02Ljc1N2wuNS44NzNDMTguNTU1LDQuNzY5LDE5LjU2LDMuNzIsMjEuOTQ4LDIuODc1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmZjFjYjtzdHJva2U6I2VmZjFjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MTgsMmwtLjA1Ni4wMWMtMi4wODIuMzYzLTQuMTIxLDEuMTI4LTUuMDE1LDIuOTU5bC0uMzc3LS42NTgtLjAzMy0uMDYtLjA1LjA1YTIwLjg1LDIwLjg1LDAsMCwwLTIuOTM5LDMuNUE1LjkzOSw1LjkzOSwwLDAsMCwxMi44MzUsMTFsLS41MzItLjY2NC0uMDUzLS4wNjYtLjAzNi4wNzZhMjcuNTM1LDI3LjUzNSwwLDAsMC0xLjY5Myw0LjcsNi43Myw2LjczLDAsMCwwLS4xNTksMy43MTlsLS44NzYtLjUwOS0uMDczLS4wNDMtLjAwNy4wODZhNS41MjksNS41MjksMCwwLDAsMi4wMTcsNC44NDNsLS45NzIuMjQxLS4yLjA1LjIuMDUzYTQuMjU4LDQuMjU4LDAsMCwxLDEuNDU1LjYsMS4zMjUsMS4zMjUsMCwwLDEsLjUxNiwxLjNWMjguMWwuMDEuMDEzLDEuMjE3LDEuNzQ1LjEuMTM5VjI1LjcxOWEzLjQ2NiwzLjQ2NiwwLDAsMSwuNjIxLTEuNDg0QTEuNjM5LDEuNjM5LDAsMCwxLDE1LjUsMjMuN2wuMTgyLS4wMjMtLjE2NS0uMDc2LS42NDEtLjNhOS4xMTIsOS4xMTIsMCwwLDAsMy42OTMtNS4zMjJsLjAyLS4wODYtLjA4My4wMjMtLjc5My4yMTVhMTEuNjY5LDExLjY2OSwwLDAsMCwyLjA4OS0zLjVDMjAuNTEyLDEzLDIxLjE4LDExLjE2NiwyMS43MjgsOS43bC4wMy0uMDc5LS4wODMuMDA3LS42MTIuMDQzYTYuNjU1LDYuNjU1LDAsMCwwLDEuMzgyLTMuNTI3LDE3LjAzOSwxNy4wMzksMCwwLDAsLjA3OS00LjA4NlptLS41NzUuODc2Yy4wNCwyLjQ2OC0uMDMzLDQuOTEtMi4xNjksNy4yM2wtLjA3OS4wODloLjExOWwuODczLjAxM2MtMS40MTgsMi45NS0yLjM0MSw1Ljg5Mi00LjM4LDguODNsLS4wNzMuMTA2LjEyNi0uMDIzLDEuMDc4LS4yYTUuODUxLDUuODUxLDAsMCwxLTMuNDg0LDMuNjVjLS4zOS01LjQ1NSwyLjMzMy0xMC4yNyw0LjY0NS0xNS4wNzFsLjAwNy0uMDEzLS4wODYtLjA2Yy0zLjc4Niw0LjIzMy01LjQ5MSwxMC4yLTYuMTM2LDE1LjEyN2E0LjU4Miw0LjU4MiwwLDAsMS0yLjE0NS0yLjk4OGwuOS4zNzcuMDkzLjA0LS4wMi0uMWMtLjY4MS0zLjAyOC4zNzYtNS4yLDEuNC04LjA1NmwuNzM3LjQ5My4wODYuMDYsMC0uMWMtLjA1OC0yLjMyLDEuNS00LjY0OSwzLjU3Ny02LjcyN2wuMjg4Ljc3LjA0LjEuMDU2LS4xLjYzMS0xLjA1MSwwLS4wMDdBNi4xLDYuMSwwLDAsMSwyMS45NDIsMi44NzZaXFxcIi8+XCIsXG5cdH0sXG5cdFwiVGVtcGxhdGUgVG9vbGtpdCAyXCI6IHtcblx0XHRjb2xvdXI6IFwiIzNiY2VmY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguOTA3LDIzLjAyMUg4Ljg3OGEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxQTIuNTYxLDIuNTYxLDAsMCwxLDUuODMsMjAuMzM0VjE2LjFINC4yODhhMy4wNSwzLjA1LDAsMCwxLTIuNzM4LTEuNjksMy4zLDMuMywwLDAsMSwuNDQxLTMuNTMsMi4yNjUsMi4yNjUsMCwwLDEsMS44MTUtLjloOS42NWEzLjA1LDMuMDUsMCwwLDEsMi43MzgsMS42OSwzLjMsMy4zLDAsMCwxLS40NDEsMy41MywyLjI2NSwyLjI2NSwwLDAsMS0xLjgxNS45SDExLjk1NXY0LjIzMWEyLjU2MSwyLjU2MSwwLDAsMS0xLjAzNywyLjAyNkEzLjMwNSwzLjMwNSwwLDAsMSw4LjkwNywyMy4wMjFaTTQuMjY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhINy40ODd2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMTAuMzd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFIOC44MDZhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDQuMTkyQTEuNTMzLDEuNTMzLDAsMCwxLDIuNjYsMTIuOTg2di0uMDMzQTEuNTMzLDEuNTMzLDAsMCwxLDQuMTkyLDExLjQyaDkuMjU3QTEuNTMzLDEuNTMzLDAsMCwxLDE0Ljk4MSwxMi45NTNabS00LjIyMyw5LjIyMmEyLjQxOCwyLjQxOCwwLDAsMCwuOTgtMS45MTJWMTUuODg4aDIuMTI3YTIuMTE0LDIuMTE0LDAsMCwwLDEuNy0uODQ2LDIuOTkyLDIuOTkyLDAsMCwwLTIuMTgtNC45OUgzLjczNWEyLjExNCwyLjExNCwwLDAsMC0xLjcuODQ2LDIuOTkyLDIuOTkyLDAsMCwwLDIuMTgsNC45OUg1Ljl2NC4zNzVhMi40MTgsMi40MTgsMCwwLDAsLjk4LDEuOTEyLDMuMTYsMy4xNiwwLDAsMCwxLjkyMy42MzFoLjAyOUEzLjE2LDMuMTYsMCwwLDAsMTAuNzU4LDIyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYmNlZmNcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjA3LDIzLjAyMWgtLjAyOWEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxLDIuNTYxLDIuNTYxLDAsMCwxLTEuMDM3LTIuMDI2VjE2LjFIMTguOTg4YTMuMDUsMy4wNSwwLDAsMS0yLjczOC0xLjY5LDMuMywzLjMsMCwwLDEsLjQ0MS0zLjUzLDIuMjY1LDIuMjY1LDAsMCwxLDEuODE1LS45aDkuNjVhMy4wNSwzLjA1LDAsMCwxLDIuNzM4LDEuNjksMy4zLDMuMywwLDAsMS0uNDQxLDMuNTMsMi4yNjUsMi4yNjUsMCwwLDEtMS44MTUuOUgyNi42NTV2NC4yMzFhMi41NjEsMi41NjEsMCwwLDEtMS4wMzcsMi4wMjZBMy4zMDUsMy4zMDUsMCwwLDEsMjMuNjA3LDIzLjAyMVpNMTguOTY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhoMy4yMjN2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMjUuMDd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFoLS4wMjlhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDE4Ljg5MmExLjUzMywxLjUzMywwLDAsMS0xLjUzMy0xLjUzM3YtLjAzM2ExLjUzMywxLjUzMywwLDAsMSwxLjUzMy0xLjUzM2g5LjI1N0ExLjUzMywxLjUzMywwLDAsMSwyOS42ODEsMTIuOTUzWm0tNC4yMjMsOS4yMjJhMi40MTgsMi40MTgsMCwwLDAsLjk4LTEuOTEyVjE1Ljg4OGgyLjEyN2EyLjExNCwyLjExNCwwLDAsMCwxLjctLjg0NiwyLjk5MiwyLjk5MiwwLDAsMC0yLjE4LTQuOTloLTkuNjVhMi4xMTQsMi4xMTQsMCwwLDAtMS43Ljg0NiwyLjk5MiwyLjk5MiwwLDAsMCwyLjE4LDQuOTlIMjAuNnY0LjM3NWEyLjQxOCwyLjQxOCwwLDAsMCwuOTgsMS45MTIsMy4xNiwzLjE2LDAsMCwwLDEuOTIzLjYzMWguMDI5QTMuMTYsMy4xNiwwLDAsMCwyNS40NTgsMjIuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzNiY2VmY1xcXCIvPlwiLFxuXHR9LFxuXHRcIlRlWFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZmNmY2ZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMS4zMzMsMTMuMTIyYy0uMTI4LTEuNTYyLS4yNDEtMi43NTYtMi4yODctMi43NTZINy45MXY4LjRoMi4xNDV2LjYxMWwtMy4wODMtLjAyOS0zLjA4Mi4wMjl2LS42MTFINi4wMzR2LTguNEg0Ljg4NGMtMi4wNDYsMC0yLjE1OSwxLjIwOC0yLjI4NywyLjc1NkgybC4yODQtMy4zNjdoOS4zNjJsLjI4NCwzLjM2N2gtLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyMi41M0gxMC40MVYyMS45MmgxLjUwNlYxMy40NjdIMTAuNDF2LS42MTFoOC42MzdsLjQxMiwzLjM2N2gtLjZjLS4yMTMtMS44MzMtLjY4Mi0yLjc1Ni0yLjg1NS0yLjc1NkgxMy43OTFWMTcuMmguODM4YzEuMzY0LDAsMS41MDUtLjYsMS41MDUtMS42NjJoLjZ2My45MzVoLS42YzAtMS4wOC0uMTQyLTEuNjYyLTEuNTA1LTEuNjYyaC0uODM4djQuMTA2aDIuMjE2YzIuNDcyLDAsMy0xLjEwOCwzLjMtMy4yMjVoLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjcyNywxOS4xODZjLS41NCwwLTEuOTYsMC0yLjQxNS4wMjlWMTguNmgxLjE3OWwtMi41NTctMy41NTItMi41MjksMy4zODFBNC4xLDQuMSwwLDAsMCwyMi43LDE4LjZ2LjYxMWMtLjM1NS0uMDI5LTEuNTc2LS4wMjktMi4wMTctLjAyOS0uNCwwLTEuNTQ4LDAtMS44NzUuMDI5VjE4LjZoLjM4M2E3LjQ1OSw3LjQ1OSwwLDAsMCwuODI0LS4wNDNjLjUtLjA0My41NC0uMDg1LjY2Ny0uMjU2TDIzLjUzNiwxNC41bC0zLjE1My00LjQxOEgxOVY5LjQ3Yy4zODQuMDI4LDEuNzkuMDI4LDIuMjczLjAyOC41ODIsMCwxLjkxOCwwLDIuNDI5LS4wMjh2LjYxMUgyMi41MjhsMi4xMTcsMi45NTUsMi4wNzQtMi43ODRhNC4xLDQuMSwwLDAsMC0xLjI5My0uMTdWOS40N2MuMzU2LjAyOCwxLjU5MS4wMjgsMi4wMzIuMDI4LjQsMCwxLjUzNCwwLDEuODYxLS4wMjh2LjYxMWgtLjM2OWE1LjI2NCw1LjI2NCwwLDAsMC0uODM4LjA0M2MtLjQ2OS4wNDMtLjUyNi4wNzEtLjY2Ny4yNTZsLTIuNCwzLjIxTDI4LjYzNiwxOC42SDMwdi42MTFDMjkuNjQ1LDE5LjE4NiwyOC4xODIsMTkuMTg2LDI3LjcyNywxOS4xODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIlXCIsXG5cdFx0XSxcblx0fSxcblx0XCJUZXh0aWxlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmZTdhY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI4LjY4MSwyNi4wNzVIMy4zMTlBMS4zMTcsMS4zMTcsMCwwLDEsMiwyNC43NTZWNy4yNDRBMS4zMTcsMS4zMTcsMCwwLDEsMy4zMTksNS45MjVIMjguNjgxQTEuMzE3LDEuMzE3LDAsMCwxLDMwLDcuMjQ0VjI0Ljc2QTEuMzE2LDEuMzE2LDAsMCwxLDI4LjY4MSwyNi4wNzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlN2FjXFxcIi8+PHBhdGggZD1cXFwiTTYuMDY2LDEyLjg0OGE0Ljk4Nyw0Ljk4NywwLDAsMSwxLjUwOC0uNjU5VjEwLjY2NGEzLjcsMy43LDAsMCwxLC43NDMtLjMzLDcuODY5LDcuODY5LDAsMCwxLDEuMzI3LS4zNDdoLjY0MnYyLjM5MWgyLjQ4NFYxMy42SDEwLjI4NnY0Ljg0OGEzLjE3MiwzLjE3MiwwLDAsMCwuMjksMS42MDksMS4wNywxLjA3LDAsMCwwLC45NzEuNDQ4LDcuMTI3LDcuMTI3LDAsMCwwLC43Ni0uMDQ4LDMuMzM4LDMuMzM4LDAsMCwwLC43ODItLjE4bC4xMzIuNjJhMi4zODgsMi4zODgsMCwwLDEtLjUuMzU2LDUuNDU3LDUuNDU3LDAsMCwxLS43NTIuMzU2LDUuODM3LDUuODM3LDAsMCwxLS45MjMuMjgxQTQuNzY5LDQuNzY5LDAsMCwxLDEwLDIyYTIuMzg1LDIuMzg1LDAsMCwxLTEuODI0LS42MzcsMi45NDcsMi45NDcsMCwwLDEtLjYtMi4wNjJWMTMuNTkxSDYuMDY2WlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC42MDcsMjAuNDUzYTEuNDQ3LDEuNDQ3LDAsMCwxLC40MzEtMS4wOSwxLjU5MSwxLjU5MSwwLDAsMSwxLjE0Ny0uNDEzLDEuNjQ5LDEuNjQ5LDAsMCwxLDEuMTY1LjQxMywxLjQyMiwxLjQyMiwwLDAsMSwuNDUzLDEuMDksMS4zNjksMS4zNjksMCwwLDEtLjQ1MywxLjA4MSwxLjY5MiwxLjY5MiwwLDAsMS0xLjE2NS40LDEuNjEsMS42MSwwLDAsMS0xLjE0Ny0uNEExLjQyNywxLjQyNywwLDAsMSwxNC42MDcsMjAuNDUzWlxcXCIvPlwiLFxuXHR9LFxuXHRcIlRPTUxcIjoge1xuXHRcdGNvbG91cjogXCIjYmZiZmJmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjIuNzYsNi44M3YzLjI1aC01VjI1LjE3SDE0LjI2VjEwLjA4aC01VjYuODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y3ZjdmXFxcIi8+PHBhdGggZD1cXFwiTTIsMkg4LjJWNS4wOUg1LjM0djIxLjhIOC4yVjMwSDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PHBhdGggZD1cXFwiTTMwLDMwSDIzLjhWMjYuOTFoMi44NlY1LjExSDIzLjhWMkgzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmZcXFwiLz5cIixcblx0fSxcblx0XCJUU0NvbmZpZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDdhY2NcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMy44MjcsOC4yNDNBNC40MjQsNC40MjQsMCwwLDEsMjYuMDUsOS41MjRhNS44NTMsNS44NTMsMCwwLDEsLjg1MiwxLjE0M2MuMDExLjA0NS0xLjUzNCwxLjA4My0yLjQ3MSwxLjY2Mi0uMDM0LjAyMy0uMTY5LS4xMjQtLjMyMi0uMzVhMi4wMTQsMi4wMTQsMCwwLDAtMS42Ny0xYy0xLjA3Ny0uMDc0LTEuNzcxLjQ5LTEuNzY2LDEuNDMzYTEuMywxLjMsMCwwLDAsLjE1My42NjZjLjIzNy40OS42NzcuNzg0LDIuMDU5LDEuMzgzLDIuNTQ0LDEuMSwzLjYzNiwxLjgxNyw0LjMxLDIuODQzYTUuMTU4LDUuMTU4LDAsMCwxLC40MTYsNC4zMzMsNC43NjQsNC43NjQsMCwwLDEtMy45MzIsMi44MTUsMTAuOSwxMC45LDAsMCwxLTIuNzA4LS4wMjgsNi41MzEsNi41MzEsMCwwLDEtMy42MTYtMS44ODQsNi4yNzgsNi4yNzgsMCwwLDEtLjkyNi0xLjM3MSwyLjY1NSwyLjY1NSwwLDAsMSwuMzI3LS4yMDhjLjE1OC0uMDkuNzU2LS40MzQsMS4zMi0uNzYxbDEuMDI0LS42LjIxNC4zMTJhNC43NzEsNC43NzEsMCwwLDAsMS4zNSwxLjI5MiwzLjMsMy4zLDAsMCwwLDMuNDU4LS4xNzUsMS41NDUsMS41NDUsMCwwLDAsLjItMS45NzRjLS4yNzYtLjQtLjg0LS43MjctMi40NDMtMS40MjJhOC44LDguOCwwLDAsMS0zLjM0OS0yLjA1NSw0LjY4Nyw0LjY4NywwLDAsMS0uOTc2LTEuNzc3LDcuMTE2LDcuMTE2LDAsMCwxLS4wNjItMi4yNjgsNC4zMzIsNC4zMzIsMCwwLDEsMy42NDQtMy4zNzRBOSw5LDAsMCwxLDIzLjgyNyw4LjI0M1pNMTUuNDg0LDkuNzI2bC4wMTEsMS40NTRoLTQuNjNWMjQuMzI4SDcuNlYxMS4xODNIMi45N1Y5Ljc1NWExMy45ODYsMTMuOTg2LDAsMCwxLC4wNC0xLjQ2NmMuMDE3LS4wMjMsMi44MzItLjAzNCw2LjI0NS0uMDI4bDYuMjExLjAxN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDc1LDI1LjEwN2wuMzYzLS4zNjFjMS42OC4wNTUsMS43MDYsMCwxLjc4LS4xNzdsLjQ2Mi0xLjEyNC4wMzQtLjEwNy0uMDM4LS4wOTNjLS4wMi0uMDQ5LS4wODEtLjItMS4xMy0xLjJ2LS41MjZjMS4yMTEtMS4xNjYsMS4xODUtMS4yMjYsMS4xMTYtMS40bC0uNDYtMS4xMzZjLS4wNjktLjE3LS4xLS4yMzctMS43NjMtLjE5MWwtLjM2NC0uMzY3YTguMTM4LDguMTM4LDAsMCwwLS4wNTctMS42NTdsLS4wNDctLjEwNi0xLjItLjUyNWMtLjE3Ny0uMDgxLS4yMzktLjExLTEuMzcyLDEuMTI0bC0uNTA5LS4wMDhjLTEuMTY3LTEuMjQ1LTEuMjIyLTEuMjIzLTEuNC0xLjE1MmwtMS4xMTUuNDUyYy0uMTc1LjA3MS0uMjM2LjEtLjE2OSwxLjc5bC0uMzYuMzU5Yy0xLjY4LS4wNTUtMS43LDAtMS43NzguMTc3TDE4LjYwNiwyMGwtLjAzNi4xMDguMDM4LjA5NGMuMDIuMDQ4LjA3OC4xOTQsMS4xMywxLjJ2LjUyNWMtMS4yMTEsMS4xNjYtMS4xODQsMS4yMjYtMS4xMTUsMS40bC40NTksMS4xMzdjLjA3LjE3NC4xLjIzNiwxLjc2My4xOTJsLjM2My4zNzdhOC4xNjksOC4xNjksMCwwLDAsLjA1NSwxLjY1NGwuMDQ3LjEwNywxLjIwOC41MjhjLjE3Ni4wNzMuMjM2LjEsMS4zNjYtMS4xM2wuNTA5LjAwNmMxLjE2OCwxLjI0NywxLjIyOCwxLjIyMywxLjQsMS4xNTRsMS4xMTMtLjQ1QzI3LjA4MiwyNi44MjcsMjcuMTQzLDI2LjgsMjcuMDc1LDI1LjEwN1ptLTQuNzg4LTIuNjMyYTIsMiwwLDEsMSwyLjYxOCwxLjE0QTIuMDIzLDIuMDIzLDAsMCwxLDIyLjI4NywyMi40NzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdH0sXG5cdFwiVHdpZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiM3OGRjNTBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk00LjU3NCw1LjQ2M2MuMjYyLjQsMi41LTEuNjA4LDQuNDU0LTEuMTYxLDIuMDYxLjQ3Miw0LjAxNCwzLjcyNCw0Ljg0OCwxMy43YTQwLjE4LDQwLjE4LDAsMCwxLDMuNTQxLDMuNjFxLjUzLjYxNCwxLjAxMywxLjIyYTExLjg0NywxMS44NDcsMCwwLDEsLjIyOS0xLjQsMTIuMywxMi4zLDAsMCwxLDEuOTgxLTQuNEExOS4xNTEsMTkuMTUxLDAsMCwwLDE3LjI3Miw3LjljLTEuMDMtMS40NDUtNC42LTYuNDc4LTguNTQ2LTUuODQzQzYuMTgyLDIuNDY1LDQuMyw1LjA1NCw0LjU3NCw1LjQ2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2M2JmNmFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNCwzMGMtLjMyLTIuNTY3LS40NDgtNC43Ni0uNS02LjQ0OS0uMDk0LTMuMjMyLjEtNC41NDEuOS01Ljc1Ni4xOTMtLjI5NSwxLjI4OC0xLjk3NSwyLjU4LTEuODYzLDEuNDY2LjEyOCwyLjIxMywyLjQxNCwyLjM2MiwyLjMzNy4xNzUtLjA5LS4zNi0zLjU0My0yLjUzMi00LjQzMS0yLjYtMS4wNjMtNi4zMTIsMi4wNy03LjgsNS4xNTRhMTIuMjIzLDEyLjIyMywwLDAsMC0uODU3LDIuODEsMzIuNTU1LDMyLjU1NSwwLDAsMC0uNzEsOC4yWlxcXCIgc3R5bGU9XFxcImZpbGw6Izc0ZDc0ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yLjIzOCwxMy45MzVjLjE0NS0uNDQ3LDIuNDY4LS4yNTksNC41NC4yOTMsMi41LjY2Niw3LDIuMzQ0LDExLjY1MSw4LjYwNkExMi41NDQsMTIuNTQ0LDAsMCwxLDIwLjI3OSwzMEgxMC4zODZhMjEuODc1LDIxLjg3NSwwLDAsMC0uMTc1LTQuNjIsMTQuOSwxNC45LDAsMCwwLTIuNDU5LTcuMTU4QzUuNDQxLDE1LjE1OSwyLjA1NSwxNC41LDIuMjM4LDEzLjkzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3OGRjNTBcXFwiLz48cGF0aCBkPVxcXCJNMTcuMywyMS4zMjNhMS43NTMsMS43NTMsMCwxLDEtLjUxMy0xLjI0QTEuNzQ4LDEuNzQ4LDAsMCwxLDE3LjMsMjEuMzIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NzUsMjEuMzIzYTEuNzUzLDEuNzUzLDAsMSwxLS41MTMtMS4yNEExLjc0OCwxLjc0OCwwLDAsMSwyMS45NzUsMjEuMzIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlR5cGVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjMzE3OGM2XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHJ4PVxcXCIxLjMxMlxcXCIgc3R5bGU9XFxcImZpbGw6IzMxNzhjNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4yNDUsMjMuNzU5djMuMDY4YTYuNDkyLDYuNDkyLDAsMCwwLDEuNzY0LjU3NSwxMS41NiwxMS41NiwwLDAsMCwyLjE0Ni4xOTIsOS45NjgsOS45NjgsMCwwLDAsMi4wODgtLjIxMSw1LjExLDUuMTEsMCwwLDAsMS43MzUtLjcsMy41NDIsMy41NDIsMCwwLDAsMS4xODEtMS4yNjYsNC40NjksNC40NjksMCwwLDAsLjE4Ni0zLjM5NCwzLjQwOSwzLjQwOSwwLDAsMC0uNzE3LTEuMTE3LDUuMjM2LDUuMjM2LDAsMCwwLTEuMTIzLS44NzcsMTIuMDI3LDEyLjAyNywwLDAsMC0xLjQ3Ny0uNzM0cS0uNi0uMjQ5LTEuMDgtLjQ4NGE1LjUsNS41LDAsMCwxLS44MTMtLjQ3OSwyLjA4OSwyLjA4OSwwLDAsMS0uNTE2LS41MTgsMS4wOTEsMS4wOTEsMCwwLDEtLjE4MS0uNjE4LDEuMDM5LDEuMDM5LDAsMCwxLC4xNjItLjU3MSwxLjQsMS40LDAsMCwxLC40NTktLjQzNiwyLjQzOSwyLjQzOSwwLDAsMSwuNzI2LS4yODMsNC4yMTEsNC4yMTEsMCwwLDEsLjk1Ni0uMSw1Ljk0Miw1Ljk0MiwwLDAsMSwuODA4LjA1OCw2LjI5Miw2LjI5MiwwLDAsMSwuODU2LjE3Nyw1Ljk5NCw1Ljk5NCwwLDAsMSwuODM2LjMsNC42NTcsNC42NTcsMCwwLDEsLjc1MS40MjJWMTMuOWE3LjUwOSw3LjUwOSwwLDAsMC0xLjUyNS0uNCwxMi40MjYsMTIuNDI2LDAsMCwwLTEuOS0uMTI5LDguNzY3LDguNzY3LDAsMCwwLTIuMDY0LjIzNSw1LjIzOSw1LjIzOSwwLDAsMC0xLjcxNi43MzMsMy42NTUsMy42NTUsMCwwLDAtMS4xNzEsMS4yNzEsMy43MzEsMy43MzEsMCwwLDAtLjQzMSwxLjg0NSwzLjU4OCwzLjU4OCwwLDAsMCwuNzg5LDIuMzQsNiw2LDAsMCwwLDIuMzk1LDEuNjM5cS42My4yNiwxLjE3NS41MDlhNi40NTgsNi40NTgsMCwwLDEsLjk0Mi41MTcsMi40NjMsMi40NjMsMCwwLDEsLjYyNi41ODUsMS4yLDEuMiwwLDAsMSwuMjMuNzE5LDEuMSwxLjEsMCwwLDEtLjE0NC41NTIsMS4yNjksMS4yNjksMCwwLDEtLjQzNS40NDEsMi4zODEsMi4zODEsMCwwLDEtLjcyNi4yOTIsNC4zNzcsNC4zNzcsMCwwLDEtMS4wMTguMTA1LDUuNzczLDUuNzczLDAsMCwxLTEuOTY5LS4zNUE1Ljg3NCw1Ljg3NCwwLDAsMSwxOC4yNDUsMjMuNzU5Wm0tNS4xNTQtNy42MzhoNFYxMy41OTRINS45Mzh2Mi41MjdIOS45MlYyNy4zNzVoMy4xNzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiVHlwb1NjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZjg3MDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMy4wOTMsMjEuM2EzLjg0NywzLjg0NywwLDAsMS0xLjE4LjE2NWMtMy41NTUsMC04Ljc3OC0xMi40MjQtOC43NzgtMTYuNTU5LDAtMS41MjMuMzYyLTIuMDMxLjg3LTIuNDY2QzkuNjUzLDIuOTQzLDQuNDMsNC41MzksMi43NjEsNi41N2E0LjA0OCw0LjA0OCwwLDAsMC0uNTgsMi4zMjFDMi4xODEsMTUuMzQ4LDkuMDcyLDMwLDEzLjkzMywzMGMyLjI0OCwwLDYuMDQxLTMuNyw5LjE2LTguN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODcwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44MjMsMmM0LjUsMCw5LC43MjUsOSwzLjI2NCwwLDUuMTUxLTMuMjY0LDExLjM4OS00LjkzMywxMS4zODktMi45NzQsMC02LjY3My04LjI2OS02LjY3My0xMi40LDAtMS44ODYuNzI1LTIuMjQ5LDIuNjExLTIuMjQ5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4NzAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiVlwiOiB7XG5cdFx0Y29sb3VyOiBcIiM1ZDg3YmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC40NjcsMjkuMjg4LDI5Ljk1MiwyLjkxM2EuNS41LDAsMCwwLS41NjYtLjcyOEwyMS45MjcsMi45YTEuNDY0LDEuNDY0LDAsMCwwLTEuMTQxLjlMMTIuMDA3LDI5LjAwNmEuNTczLjU3MywwLDAsMCwuNTc4LjgxM2g3LjI2YS42NTcuNjU3LDAsMCwwLC41NzctLjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTM2YjhhXFxcIi8+PHBhdGggZD1cXFwiTTIuNjE0LDIuMTg1bDcuNDU5LjcxOWExLjQ2NiwxLjQ2NiwwLDAsMSwxLjE0Mi45TDIwLjE4LDI5LjQxM2EuMjg2LjI4NiwwLDAsMS0uMjg5LjQwNkgxMi41ODVhMS4zMTEsMS4zMTEsMCwwLDEtMS4xNTItLjgxTDIuMDQ4LDIuOTEzQS41LjUsMCwwLDEsMi42MTQsMi4xODVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNWQ4N2JmXFxcIi8+XCIsXG5cdH0sXG5cdFwiVmFsYVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0MDM3NTdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMi41MDksMTcuMTkzYy0uMTY1LTYuODM2LS4zMjUtMTIuNDU1LS4zNTctMTIuNDg3QTcuOTE2LDcuOTE2LDAsMCwwLDkuODc5LDUuODc0LDcuNjA2LDcuNjA2LDAsMCwwLDcuMzI0LDkuMTg4YTguNDIyLDguNDIyLDAsMCwwLS41ODcsMy41NDMsNC42NjUsNC42NjUsMCwwLDAsLjIsMS45NjIsMy40MTcsMy40MTcsMCwwLDEsLjE4Mi41NmMtLjAxMi4wMDktLjMzOC0uMDE4LS43MjQtLjA2MS0xLjg2OC0uMjA3LTIuNzg2LTEuMDUtMy0yLjc1N0E2LjMxMiw2LjMxMiwwLDAsMSw0Ljg1LDcuNzE5YTE1LjEzNCwxNS4xMzQsMCwwLDEsOC40MTQtNS4xNjMsMTIuODkxLDEyLjg5MSwwLDAsMSwyLjU0Mi0uMjM1bDEuNzQ4LS4wNS4wNTksMi41MDZjLjAzMiwxLjM3OC4xLDYuMzU4LjE2MSwxMS4wNjdzLS4yNTIsOC4yOS0uMjE5LDguNEMxOS41LDE3Ljg3OSwyMiwxMy4wNzMsMjQuMzY3LDYuMjUzbDEuNDI3LTMuOTgzSDI4LjU0Yy0uMDIyLjA2My0yLjc1MSw2LjUtNS41MTQsMTMuOTE2bC01LjQ3MywxMy41NUgxMi45NzZDMTIuOTc2LDI3LjkwNiwxMi41MzUsMTguNDg2LDEyLjUwOSwxNy4xOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDAzNzU3XFxcIi8+PHBhdGggZD1cXFwiTTE3LjczMiwzMEgxMi43MTN2LS4yNjNjMC0xLjEzNy0uMTctNS4xOTItLjMwNy04LjQ1Mi0uMDgxLTEuOTI5LS4xNS0zLjYtLjE2MS00LjA4Ny0uMTU2LTYuNDc5LS4yODYtMTEtLjMzNi0xMi4xNjNhMTEuNjc0LDExLjY3NCwwLDAsMC0xLjg3NCwxLjA0OSw3LjM0OCw3LjM0OCwwLDAsMC0yLjQ2NiwzLjJBOC4xNDYsOC4xNDYsMCwwLDAsNywxMi43MzEsNC4zNyw0LjM3LDAsMCwwLDcuMTg1LDE0LjZjLjIxNS41NjkuMjczLjcyMy4xLjg1OS0uMDkzLjA3My0uMTA3LjA4NC0uOTE2LS4wMDctMS45NzYtLjIxOS0zLTEuMTY3LTMuMjM0LTIuOTg2QTYuNTY4LDYuNTY4LDAsMCwxLDQuNjQsNy41NjEsMTUuNDM5LDE1LjQzOSwwLDAsMSwxMy4yLDIuMywxMy4xNzYsMTMuMTc2LDAsMCwxLDE1LjgsMi4wNThMMTcuODExLDJsLjA2NSwyLjc3Yy4wMzIsMS4zOTIuMTA2LDYuNDYxLjE2MSwxMS4wNy4wMzEsMi42MTYtLjA1Miw0LjkxNS0uMTI0LDYuNDMuOTMxLTIuNzYzLDEuOTU4LTUuMjcsMy4wMzMtNy45LDEuMDQzLTIuNTQ3LDIuMTIyLTUuMTgsMy4xNzMtOC4yMDdsMS40OTEtNC4xNmgzLjNsLS4xMjUuMzUxYzAsLjAwNy0uMDMxLjA3Ni0uMDg0LjItMS4xLDIuNjIyLTMuMjU5LDcuODg5LTUuNDMsMTMuNzE3Wm0tNC40OTUtLjUyNmg0LjE0bDUuNDA3LTEzLjM4NmMyLjEyNC01LjcsNC4yNDMtMTAuODc2LDUuMzYyLTEzLjU1NUgyNS45NzlMMjQuNjE0LDYuMzQyYy0xLjA1NSwzLjAzOC0yLjEzNyw1LjY3OC0zLjE4Myw4LjIzMS0xLjMxMSwzLjItMi41NSw2LjIyNi0zLjYyNiw5Ljc0N2wtLjI1NS44MzEtLjI0OC0uODMzYTMuMjc0LDMuMjc0LDAsMCwxLC4wMjEtLjgzOWMuMDc0LTEuMzUuMjI5LTQuMTU4LjE4OC03LjYzMy0uMDU1LTQuNjA3LS4xMjktOS42NzQtLjE2MS0xMS4wNjRMMTcuMywyLjU0MWwtMS40ODQuMDQzYTEyLjcyOSwxMi43MjksMCwwLDAtMi40OS4yMjhBMTQuODg3LDE0Ljg4NywwLDAsMCw1LjA2LDcuODc3YTYuMDcxLDYuMDcxLDAsMCwwLTEuNCw0LjUyNGMuMiwxLjU4LDEuMDI4LDIuMzM2LDIuNzcsMi41MjlsLjMzMy4wMzVjLS4wMTktLjA1NC0uMDQxLS4xMTQtLjA2Ni0uMTc5YTQuODkzLDQuODkzLDAsMCwxLS4yMTktMi4wNTUsOC43LDguNywwLDAsMSwuNi0zLjYzOCw3Ljg4Myw3Ljg4MywwLDAsMSwyLjY0NC0zLjQzYy4wMjItLjAxNiwyLjIzMi0xLjUyNSwyLjYxNS0xLjE0Mi4wOTIuMDkyLjEzMS4xMzEuNDMzLDEyLjY2NmgwYy4wMS40ODUuMDgsMi4xNDkuMTYsNC4wNzZDMTMuMDYsMjQuMzEzLDEzLjIxNywyOC4wNiwxMy4yMzcsMjkuNDc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M4YzhjOFxcXCIvPlwiLFxuXHR9LFxuXHRcIlZCLk5ldFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDUxOWFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk02LjY3LDcuODM2LDksMTguOTE1LDExLjMzNiw3LjgzNkgxNkwxMS4zMzYsMjQuMTY0SDYuNjcyTDIsNy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+PHBhdGggZD1cXFwiTTE4LjMzMSw3LjgzNmg3LjZhNC4wOCw0LjA4LDAsMCwxLDIuOSwxLjc0OSwzLjc4LDMuNzgsMCwwLDEsLjU3MSwyLjA0LDMuOTg1LDMuOTg1LDAsMCwxLS41NzEsMi4wMzQsNC4xMDgsNC4xMDgsMCwwLDEtMi4zNDEsMS43NjMsNC4xLDQuMSwwLDAsMSwyLjkyOSwxLjc1NiwzLjgsMy44LDAsMCwxLC41OCwyLjEsNC42NjMsNC42NjMsMCwwLDEtLjU3OSwyLjU0Niw1LjA0Nyw1LjA0NywwLDAsMS0zLjUsMi4zMzhIMTguMzMxWk0yMywxNC4yNTJoMS4xNjZhMS43NTQsMS43NTQsMCwwLDAsMC0zLjVIMjNabTAsN0gyNC4zOWEyLjA0NywyLjA0NywwLDAsMCwwLTQuMDg5SDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPlwiLFxuXHR9LFxuXHRcIlZCQVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkODdiMzBcIixcblx0XHRpY29uOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuNDU3IDExLjA5MiAxNi4wMTQgMTMuODM5IDE2LjAxNCAxOC4zMDcgMTAuNDU3IDE1LjM4MiAxMC40NTcgMTEuMDkyXFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIsMTguNjEzbC01LjkyNi0zLjEyVjEwLjhMMTYuMiwxMy43MjRaTTEwLjY0MiwxNS4yNywxNS44MywxOFYxMy45NTNsLTUuMTg4LTIuNTY0WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMzcxIDEzLjgzOSAxNi4zNzEgMTguMzA3IDIxLjMxNSAxNS44MTQgMjEuMzE1IDExLjM1NCAxNi4zNzEgMTMuODM5XFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4NiwxOC42MDdWMTMuNzI1bDUuMzEzLTIuNjd2NC44NzNabS4zNjktNC42NTV2NC4wNTVMMjEuMTMsMTUuN1YxMS42NTNaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMC43MDMgMTAuNzk3IDE2LjE4NiAxMy41OCAyMS4wODIgMTEuMDY0IDE1Ljc3NyA4LjM4OSAxMC43MDMgMTAuNzk3XFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4NywxMy43ODhsLTUuOS0zLDUuNS0yLjYwOCw1LjcwOSwyLjg3OVpNMTEuMTIyLDEwLjhsNS4wNjQsMi41Nyw0LjQ5LTIuMzA4LTQuOS0yLjQ3MVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4Ljk1NyAxNS44MjkgMjQuNTE1IDE4LjU3NSAyNC41MTUgMjMuMDQzIDE4Ljk1NyAyMC4xMTggMTguOTU3IDE1LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC43LDIzLjM0OWwtNS45MjYtMy4xMnYtNC43TDI0LjcsMTguNDZabS01LjU1Ny0zLjM0Myw1LjE4OCwyLjczMVYxOC42ODlsLTUuMTg4LTIuNTY0WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjQuODcxIDE4LjU3NSAyNC44NzEgMjMuMDQzIDI5LjgxNSAyMC41NSAyOS44MTUgMTYuMDkgMjQuODcxIDE4LjU3NVxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC42ODcsMjMuMzQzVjE4LjQ2MUwzMCwxNS43OTF2NC44NzNabS4zNjktNC42NTV2NC4wNTVsNC41NzUtMi4zMDhWMTYuMzg5WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuMjAzIDE1LjU0NiAyNC42ODcgMTguMzI5IDI5LjU4MyAxNS44MTIgMjQuMzY0IDEzLjM0NiAxOS4yMDMgMTUuNTQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTUyNzgxXFxcIi8+PHBhdGggZD1cXFwiTTI0LjY4NywxOC41MzZsLTUuOTItMy4wMDUsNS42LTIuMzg3TDMwLDE1LjgwNVpNMTkuNjQsMTUuNTZsNS4wNDYsMi41NjEsNC40NzktMi4zLTQuODA2LTIuMjdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjE5IDE1LjQ5NiA3Ljc0OCAxOC4yNDMgNy43NDggMjIuNzExIDIuMTkgMTkuNzg2IDIuMTkgMTUuNDk2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDg3YjMwXFxcIi8+PHBhdGggZD1cXFwiTTcuOTMyLDIzLjAxNywyLjAwNiwxOS45VjE1LjJsNS45MjYsMi45MjlaTTIuMzc1LDE5LjY3NGw1LjE4OCwyLjczMVYxOC4zNTdMMi4zNzUsMTUuNzkzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiOC4xMDQgMTguMjQzIDguMTA0IDIyLjcxMSAxMy4wNDggMjAuMjE4IDEzLjA0OCAxNS43NTggOC4xMDQgMTguMjQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZDg3YjMwXFxcIi8+PHBhdGggZD1cXFwiTTcuOTIsMjMuMDExVjE4LjEyOWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDEyLjg2NCwyMC4xVjE2LjA1N1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNDM2IDE1LjIxMyA3LjkyIDE3Ljk5NyAxMi44MTYgMTUuNDggNy41OTcgMTMuMDE0IDIuNDM2IDE1LjIxM1xcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkyLDE4LjIsMiwxNS4ybDUuNi0yLjM4Nyw1LjYzMiwyLjY2MVpNMi44NzMsMTUuMjI4bDUuMDQ2LDIuNTYxLDQuNDc5LTIuMy00LjgwNi0yLjI3WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuODc1IDE2LjI5NiAxNi40MzIgMTkuMDQyIDE2LjQzMiAyMy41MTEgMTAuODc1IDIwLjU4NSAxMC44NzUgMTYuMjk2XFxcIiBzdHlsZT1cXFwiZmlsbDojZTBkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjYxNywyMy44MTYsMTAuNjkxLDIwLjdWMTZsNS45MjYsMi45MjlaTTExLjA2LDIwLjQ3NGw1LjE4OCwyLjczMVYxOS4xNTdMMTEuMDYsMTYuNTkzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuNzg5IDE5LjA0MiAxNi43ODkgMjMuNTExIDIxLjczMyAyMS4wMTcgMjEuNzMzIDE2LjU1NyAxNi43ODkgMTkuMDQyXFxcIiBzdHlsZT1cXFwiZmlsbDojZTBkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjYsMjMuODExVjE4LjkyOWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDIxLjU0OSwyMC45VjE2Ljg1N1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjEyMSAxNi4wMDEgMTYuNjA1IDE4Ljc4NCAyMS41MDEgMTYuMjY3IDE2LjE5NiAxMy41OTMgMTEuMTIxIDE2LjAwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42MDUsMTguOTkxbC01LjktMyw1LjUtMi42MDgsNS43MDksMi44NzlaTTExLjU0LDE2LjAwNmw1LjA2NCwyLjU3LDQuNDktMi4zMDgtNC45LTIuNDcxWlxcXCIvPlwiLFxuXHR9LFxuXHRcIlZlbG9jaXR5XCI6IHtcblx0XHRjb2xvdXI6IFwiIzI2MjY5MlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjI0NSwyNC4xODdBOC4zNTIsOC4zNTIsMCwxLDEsMjQuNiwxNS44MzUsOC4zNjIsOC4zNjIsMCwwLDEsMTYuMjQ1LDI0LjE4N1ptMC0xNC43NjJhNi40MSw2LjQxLDAsMSwwLDYuNDEsNi40MUE2LjQxNyw2LjQxNywwLDAsMCwxNi4yNDUsOS40MjVaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOS4xMzIgOC41NTEgMjUuNDUxIDYuNTMxIDI1LjQ1MSA3LjQ3NCAxNS44MjEgNy40NzQgMTUuODIxIDkuNDI0IDI1LjQ1MSA5LjQyNCAyNS40NTEgMTAuNTcxIDI5LjEzMiA4LjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5MlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiOC45ODQgMiA2Ljk2NCA1LjY4NyA3LjkwNiA1LjY4NyA3LjkwNiAxNS4zMjggOS44NTcgMTUuMzI4IDkuODU3IDUuNjg3IDExLjAwNCA1LjY4NyA4Ljk4NCAyXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkzXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy43MDUgMzAgMjEuNjg1IDI2LjI0MyAyMi42MjggMjYuMjQzIDIyLjYyOCAxNi40MTcgMjQuNTc4IDE2LjQxNyAyNC41NzggMjYuMjQzIDI1LjcyNSAyNi4yNDMgMjMuNzA1IDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkzXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjg2OCAyMy4zMiA2LjYzNCAyMS4zIDYuNjM0IDIyLjI0MiAxNi40ODQgMjIuMjQyIDE2LjQ4NCAyNC4xOTIgNi42MzQgMjQuMTkyIDYuNjM0IDI1LjM0IDIuODY4IDIzLjMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkyXFxcIi8+XCIsXG5cdH0sXG5cdFwiVmVyaWxvZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMxYTM0OGZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS4wMDcsMTcuNGguMDM3YTEuNDQ5LDEuNDQ5LDAsMCwwLC45MzgtLjMxNiwxLjQ3MywxLjQ3MywwLDAsMCwuNTE5LTEuMDMxVjE1LjlhMS40MTMsMS40MTMsMCwwLDAtMS4zNzYtMS4zaC0uMDA5Yy0uNjg3LDAtMS4zNzQsMC0yLjA2MiwwSDI1LjVWMTEuOTU2bDMuNTEzLDBoLjAzNEExLjQxMSwxLjQxMSwwLDAsMCwzMC41LDEwLjZsMC0uMDksMC0uMDMyYTEuNDEyLDEuNDEyLDAsMCwwLS42NDYtMS4xLDEuNDU1LDEuNDU1LDAsMCwwLS44MzUtLjIyNUgyNS40NTZhMi45NiwyLjk2LDAsMCwwLS4yNzgtMS4wMzQsMi45MDksMi45MDksMCwwLDAtMS43LTEuNDYxLDIuNjg0LDIuNjg0LDAsMCwwLS42MjktLjEzVjQuOTQ3YzAtLjY5LDAtMS4zOCwwLTIuMDYzQTEuNDE0LDEuNDE0LDAsMCwwLDIxLjQ4MSwxLjVoLS4xMTZhMS40LDEuNCwwLDAsMC0xLjMxOSwxLjM4OHEwLDEuMTU0LDAsMi4zMDZWNi41SDE3LjRWNC45ODFjMC0uNywwLTEuNCwwLTIuMDg3QTEuNDEsMS40MSwwLDAsMCwxNi4wNTMsMS41SDE1LjlhMS40MDgsMS40MDgsMCwwLDAtMS4zLDEuMzgzYzAsLjY4OCwwLDEuMzc2LDAsMi4wNjRWNi41MDhxLTEuMzE5LDAtMi42MzksMFY0Ljg4OGMwLS42NjYsMC0xLjMzMiwwLTEuOTg5YTEuMzY2LDEuMzY2LDAsMCwwLS40LS45NzUsMS40LDEuNCwwLDAsMC0uOTg0LS40MjRIMTAuNUExLjQxLDEuNDEsMCwwLDAsOS4xNTksMi44ODFjMCwuNjgzLDAsMS4zNjYsMCwyLjA0OXYxLjZhMi45MzMsMi45MzMsMCwwLDAtMi40NjYsMS45LDIuODc4LDIuODc4LDAsMCwwLS4xNjEuNzI2SDQuOTU3Yy0uNjkzLDAtMS4zODYsMC0yLjA3MywwSDIuODc2QTEuNDEzLDEuNDEzLDAsMCwwLDEuNSwxMC41di4wOTVhMS40MTcsMS40MTcsMCwwLDAsLjU3NSwxLjA5MSwxLjQ2MywxLjQ2MywwLDAsMCwuODg3LjI3M2guMDE3bDMuNTIyLDBWMTQuNkg0Ljk0OGMtLjY4NiwwLTEuMzc1LDAtMi4wNTcsMEExLjQyOCwxLjQyOCwwLDAsMCwxLjUsMTUuOTEzVjE2LjFhMS40LDEuNCwwLDAsMCwxLjM4NiwxLjNjLjcxMSwwLDEuNDIzLDAsMi4xMzUsMEg2LjVWMjAuMDVsLS4yOTIsMGMtLjYxMy0uMDA3LTEuMjI2LDAtMS44MzgsMEgzLjA4N2ExLjYzMywxLjYzMywwLDAsMC0uOTE4LjIxMUExLjQzNywxLjQzNywwLDAsMCwxLjUsMjEuNFYyMS41YTEuNDE3LDEuNDE3LDAsMCwwLDEuMzc1LDEuMzM3aC4wMDVxLjY0NSwwLDEuMjksMEg2LjU0NmEyLjgzMiwyLjgzMiwwLDAsMCwxLjk3OCwyLjUsMi43MTIsMi43MTIsMCwwLDAsLjYzMS4xMjh2MS42MmMwLC42NzgsMCwxLjM1NCwwLDIuMDI1YTEuNCwxLjQsMCwxLDAsMi44LS4wOTJsMC0zLjUyN0gxNC42djMuNTE2QTEuNDE0LDEuNDE0LDAsMCwwLDE1Ljk0NywzMC41SDE2LjFhMS40MTEsMS40MTEsMCwwLDAsMS4zLTEuMzg1cS4wMDYtMS4wNjYsMC0yLjEzMVYyNS41aDIuNjQ0VjI5LjFBMS40MjMsMS40MjMsMCwwLDAsMjEuNCwzMC41aC4xMTlhMS40MDgsMS40MDgsMCwwLDAsMS4xNi0uNzQxLDEuNjQzLDEuNjQzLDAsMCwwLC4xNjctLjgzM1YyNS40NzRhMi42NzEsMi42NzEsMCwwLDAsLjYyLS4xMjgsMi45MjgsMi45MjgsMCwwLDAsMS44ODYtMS44ODgsMi44MzQsMi44MzQsMCwwLDAsLjEyMy0uNjEzaDEuNTgxYy42ODcsMCwxLjM3NSwwLDIuMDU3LDBoLjAwOEExLjQyMiwxLjQyMiwwLDAsMCwzMC41LDIxLjQ4MXYtLjExOGExLjQwOSwxLjQwOSwwLDAsMC0xLjM4Mi0xLjMxOGgwYy0uNzE4LDAtMS40MzYsMC0yLjE1NCwwSDI1LjVWMTcuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWM1YzU7b3BhY2l0eTowLjNcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTE1LDJoLjA1NmEuOTEuOTEsMCwwLDEsLjg4Ni44OTNjLjAwNiwxLjEwOCwwLDIuMjE2LDAsMy4zMjQtLjYsMC0xLjIsMC0xLjgsMCwwLTEuMTExLDAtMi4yMjIsMC0zLjMzM0EuOTA3LjkwNywwLDAsMSwxMC41MTUsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMTUuOTM3LDJoLjExNmEuOTEyLjkxMiwwLDAsMSwuODQ2Ljg4OWMuMDA2LDEuMTA5LDAsMi4yMTksMCwzLjMyOUgxNS4xYzAtMS4xMSwwLTIuMjIsMC0zLjMzQS45MTEuOTExLDAsMCwxLDE1LjkzNywyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4zOTIsMmguMDg5YS45MDcuOTA3LDAsMCwxLC44NTkuODgxYy4wMDcsMS4xMTIsMCwyLjIyNSwwLDMuMzM3aC0xLjhjMC0xLjEwOSwwLTIuMjE3LDAtMy4zMjZBLjkxMi45MTIsMCwwLDEsMjEuMzkyLDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIsMTAuNTE4YS45MDguOTA4LDAsMCwxLC44ODItLjg1OWMxLjExMi0uMDA3LDIuMjIzLDAsMy4zMzQsMHEwLC45LDAsMS44Yy0xLjA3OSwwLTIuMTU4LDAtMy4yMzcsMGEuOTgzLjk4MywwLDAsMS0uNi0uMTczQS45MjQuOTI0LDAsMCwxLDIsMTAuNTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsOS42NTVoMy4yMzNhMSwxLDAsMCwxLC41NjEuMTQzLjkyNC45MjQsMCwwLDEsLjQyLjcxNnYuMDU4YS45MzMuOTMzLDAsMCwxLS4zLjY1MS45NTcuOTU3LDAsMCwxLS42NzcuMjM0Yy0xLjA3OSwwLTIuMTU4LDAtMy4yMzcsMFEyNS43ODYsMTAuNTU2LDI1Ljc4Niw5LjY1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMiwxNS45NDRhLjkxMy45MTMsMCwwLDEsLjg4OC0uODQyYzEuMTA5LS4wMDcsMi4yMTksMCwzLjMyOCwwcTAsLjksMCwxLjhjLTEuMTA5LDAtMi4yMTcsMC0zLjMyNiwwQS45MTUuOTE1LDAsMCwxLDIsMTYuMDYzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsMTUuMWMxLjEwOSwwLDIuMjE4LDAsMy4zMjYsMGEuOTE0LjkxNCwwLDAsMSwuODg5LjgzNXYuMTE3YS45NDYuOTQ2LDAsMCwxLS4zMzEuNjQxLjk3My45NzMsMCwwLDEtLjY1MS4yMDdIMjUuNzg2UTI1Ljc4NSwxNiwyNS43ODYsMTUuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMi40MzMsMjAuNjc4YTEuMTIxLDEuMTIxLDAsMCwxLC42NDMtLjEzNmMxLjA0My4wMDYsMi4wODYtLjAwNiwzLjEyOS4wMDYuMDI4LjYsMCwxLjIuMDEyLDEuOC0xLjExLDAtMi4yMjEsMC0zLjMzMSwwQS45MTEuOTExLDAsMCwxLDIsMjEuNDgzVjIxLjRBLjkyNS45MjUsMCwwLDEsMi40MzMsMjAuNjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsMjAuNTQzYzEuMTA4LDAsMi4yMTYsMCwzLjMyNCwwYS45MTQuOTE0LDAsMCwxLC44OS44NDd2LjA5YS45MTEuOTExLDAsMCwxLS44ODguODU5Yy0xLjEwOS4wMDctMi4yMTgsMC0zLjMyNiwwQzI1Ljc4NiwyMS43NDMsMjUuNzg1LDIxLjE0MywyNS43ODYsMjAuNTQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjY1NiwyNS43ODFoMS44YzAsMS4wODEsMCwyLjE2MiwwLDMuMjQzYS45NTcuOTU3LDAsMCwxLS4yMzUuNjc3LjkzMS45MzEsMCwwLDEtLjY1My4zaC0uMDUyYS45MDcuOTA3LDAsMCwxLS44Ni0uODgyQzkuNjUxLDI4LjAwNiw5LjY1OCwyNi44OTQsOS42NTYsMjUuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4xLDI1Ljc4MWgxLjhjMCwxLjExLDAsMi4yMiwwLDMuMzNhLjkxNC45MTQsMCwwLDEtLjgzNi44ODloLS4xMTZhLjk0Ljk0LDAsMCwxLS42MTktLjMwNi45NjIuOTYyLDAsMCwxLS4yMjgtLjY3M1ExNS4xLDI3LjQsMTUuMSwyNS43ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIwLjU0NywyOS4xMDZjMC0xLjEwOCwwLTIuMjE3LDAtMy4zMjVoMS44YzAsMS4wNDgsMCwyLjEsMCwzLjE0NGExLjE3OCwxLjE3OCwwLDAsMS0uMTA1LjU5LjkyLjkyLDAsMCwxLS43NTYuNDg0SDIxLjRBLjkxMS45MTEsMCwwLDEsMjAuNTQ3LDI5LjEwNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjQuNzMyLDguMzQ5QTIuNDI5LDIuNDI5LDAsMCwwLDIzLjMxLDcuMTMxLDMuMjQ1LDMuMjQ1LDAsMCwwLDIyLjI1NCw3Yy00LjMuMDA4LTguNi0uMDExLTEyLjkwNS4wMUEyLjQzNiwyLjQzNiwwLDAsMCw3LjE1Nyw4LjYwNiwzLjYxMSwzLjYxMSwwLDAsMCw3LDkuOTM0cTAsNi4yNSwwLDEyLjVhMi42NzMsMi42NzMsMCwwLDAsLjI2OCwxLjIxOUEyLjQzMSwyLjQzMSwwLDAsMCw4LjY4OCwyNC44NywzLjc1NiwzLjc1NiwwLDAsMCw5LjkyNywyNUgyMi4wN2EzLjc2MiwzLjc2MiwwLDAsMCwxLjI0My0uMTI3QTIuNDI5LDIuNDI5LDAsMCwwLDI0Ljg3NSwyMy4zLDMuOCwzLjgsMCwwLDAsMjUsMjIuMDcxcTAtNi4yNSwwLTEyLjVBMi42ODYsMi42ODYsMCwwLDAsMjQuNzMyLDguMzQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjUsOC4zMDdsLjA4NC0uMnEuOTY4LDAsMS45MzUuMDI0aC4zOTRxLjE3OSwwLC4zOTQtLjAxMi43NzYtLjAzNiwyLjgwNy0uMDM2LjQwNiwwLC43ODguMDA2dC43NDEuMDE4YS4yMzQuMjM0LDAsMCwxLC4xMDguMTA4bC0uMDI0LjE5MXEtLjA3Mi4xMTktLjM1OC4xMTloLS4xYTEwLjMsMTAuMywwLDAsMC0xLjEuMDU0LDIuMTc5LDIuMTc5LDAsMCwwLTEsLjI0NS40MzIuNDMyLDAsMCwwLS4xNTUuMzQ2LDQuMDUsNC4wNSwwLDAsMCwuMzk0LDEuNGwxLjgxOCw0LjIxNy42MzQsMS40cS45MjEsMi4yMjIsMS44MTksNC41MzkuMS4yNTEuMTc5LjQ1NGwuOC0xLjk1OXEuNjItMS40ODEsMS4yNTItMy4xNTRsLjgyMy0yLjI0NnEuMDI0LS4wNzIuMTMxLS40NzhhMTcuMDI2LDE3LjAyNiwwLDAsMCwxLjE1Ny00LC41NjEuNTYxLDAsMCwwLS4xNjEtLjM2NCwxLjE2NSwxLjE2NSwwLDAsMC0uNTItLjMsNy43MjMsNy43MjMsMCwwLDAtLjkzMi0uMTQzbC0uODg0LS4xMDhhLjMzNy4zMzcsMCwwLDEtLjEwOC0uMmwuMDM2LS4xLDMuODctLjAzNkgyMy42YTMuMSwzLjEsMCwwLDEsLjg4NS4wODRsLjAxMi4xYS42NDEuNjQxLDAsMCwxLS4wNzIuMjUxLDIuNDQ5LDIuNDQ5LDAsMCwxLS41MjYuMTE5LDMuNiwzLjYsMCwwLDAtMS4yNDQuMjgxLDEuODE1LDEuODE1LDAsMCwwLS41LjY4N2wtMy4xMzQsNy43NjVxLTEuNDY2LDMuNS0yLjA4Niw1LjQyM2wtLjM0NSwxLjAzOWEuNTMxLjUzMSwwLDAsMS0uMjYzLjEsMS4zODMsMS4zODMsMCwwLDEtLjMtLjAzNnEtMS40MjItMy42NzYtMi4zMTgtNS42ODFMMTAuMDU1LDkuOTJhMy4yNDcsMy4yNDcsMCwwLDAtLjU5MS0uODksNS40NjMsNS40NjMsMCwwLDAtMS4zNzktLjQyNCw0LjM0Nyw0LjM0NywwLDAsMS0uNDY2LS4xMTlBLjMyNi4zMjYsMCwwLDEsNy41LDguMzA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M1YzJmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlZIRExcIjoge1xuXHRcdGNvbG91cjogXCIjMGQ5YjM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwySDMwVjMwSDJabTEuNjg5LjA2N0ExLjYyNCwxLjYyNCwwLDAsMCwyLjA2MywzLjY5MlYyOC4zMTRBMS42MjUsMS42MjUsMCwwLDAsMy42ODksMjkuOTRIMjguMzE2YTEuNjI1LDEuNjI1LDAsMCwwLDEuNjI2LTEuNjI2VjMuNjkyYTEuNjI0LDEuNjI0LDAsMCwwLTEuNjI2LTEuNjI1Wk0zLjAwOCwyOC4wNzlhLjkxMS45MTEsMCwwLDAsLjkxMS45MTJIMjguMDgzYS45MTEuOTExLDAsMCwwLC45MTEtLjkxMlYzLjkxOWEuOTEuOTEsMCwwLDAtLjkxMS0uOTExSDMuOTE5YS45MS45MSwwLDAsMC0uOTExLjkxMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZDliMzVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjUyIDUuNTAyIDE4Ljg1OCAyNi40OTEgMTMuMTU0IDI2LjQ5MSA2LjQ5MiA1LjUwMiAxMC41MDggNS41MDIgMTYuMDI5IDIyLjc5NSAyMS41MDQgNS41MDIgMjUuNTIgNS41MDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJ2aW1cIjoge1xuXHRcdGNvbG91cjogXCIjNDNiNTRhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48Y2xpcFBhdGggaWQ9XFxcImFcXFwiPjxwb2x5Z29uIHBvaW50cz1cXFwiMiAyIDMwIDIgMzAgMzAgMiAzMCAyIDIgMiAyXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO2NsaXAtcnVsZTpldmVub2RkXFxcIi8+PC9jbGlwUGF0aD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV92aW08L3RpdGxlPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuOTg5IDE1Ljg1NiAxNS44NTYgMi4wMTEgMi4wMTEgMTYuMTM2IDE1Ljg1NiAyOS45ODkgMjkuOTg5IDE1Ljg1NiAyOS45ODkgMTUuODU2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PGcgc3R5bGU9XFxcImNsaXAtcGF0aDp1cmwoI2EpXFxcIj48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk4OSAxNS44NTYgMTUuODU2IDIuMDExIDIuMDExIDE2LjEzNiAxNS44NTYgMjkuOTg5IDI5Ljk4OSAxNS44NTYgMjkuOTg5IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjwvZz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMjkuNDIyIDE1Ljg1NiAyOC41NzUgMjguNTc1IDE1Ljg1NiAyOC41NzUgMTUuODU2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjk2OTVkO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDI5LjQyMiAxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMjguNTc1IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOS40MjIgMi41NzggMTYuMTM2IDIuNTc4IDE2LjEzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzMxNzM2NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOS40MjIgMi41NzggMTYuMTM2IDIuNTc4IDE2LjEzNlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDMuNDE4IDE1Ljg1NiAyLjU3OCAyLjU3OCAxNi4xMzYgMy40MjUgMTYuMTM2IDE1Ljg1NiAzLjQxOCAxNS44NTYgMy40MThcXFwiIHN0eWxlPVxcXCJmaWxsOiM2MGMyYWM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAzLjQxOCAxNS44NTYgMi41NzggMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMy40MTggMTUuODU2IDMuNDE4XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMi41NzggMTUuODU2IDMuNDE4IDI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMi41NzggMTUuODU2IDIuNTc4XFxcIiBzdHlsZT1cXFwiZmlsbDojNDNiNTRhO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMi41NzggMTUuODU2IDMuNDE4IDI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMi41NzggMTUuODU2IDIuNTc4XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMTUuODU2IDMuNDE4IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYzgzNzY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAyOC41NzUgMjguNTc1IDE1Ljg1NiAxNS44NTYgMy40MTggMy40MjUgMTYuMTM2IDE1Ljg1NiAyOC41NzUgMTUuODU2IDI4LjU3NVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguNDk4IDYuMjQ2IDE5LjM0NSA3LjEgMTMuNTAyIDEzLjAyOCAxMy41MDIgNy4xIDE0LjA2OSA3LjEgMTQuOTE2IDYuMjQ2IDE0LjkxNiAzLjk5MiAxNC4wNjkgMy4xMzggNC42NTIgMy4xMzggMy44MDUgMy45OTIgMy44MDUgNi4yNDYgNC42NTIgNy4xIDUuMzEyIDcuMSA1LjMxMiAyNi4zMTQgNi4zNDYgMjcuMTYxIDkuMjY3IDI3LjE2MSAyOS41MTYgNi4yNDYgMjkuNTE2IDMuOTkyIDI4LjY2OSAzLjEzOCAxOS40MzggMy4xMzggMTguNDk4IDMuOTkyIDE4LjQ5OCA2LjI0NiAxOC40OTggNi4yNDZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4LjQ5OCA2LjI0NiAxOS4zNDUgNy4xIDEzLjUwMiAxMy4wMjggMTMuNTAyIDcuMSAxNC4wNjkgNy4xIDE0LjkxNiA2LjI0NiAxNC45MTYgMy45OTIgMTQuMDY5IDMuMTM4IDQuNjUyIDMuMTM4IDMuODA1IDMuOTkyIDMuODA1IDYuMjQ2IDQuNjUyIDcuMSA1LjMxMiA3LjEgNS4zMTIgMjYuMzE0IDYuMzQ2IDI3LjE2MSA5LjI2NyAyNy4xNjEgMjkuNTE2IDYuMjQ2IDI5LjUxNiAzLjk5MiAyOC42NjkgMy4xMzggMTkuNDM4IDMuMTM4IDE4LjQ5OCAzLjk5MiAxOC40OTggNi4yNDYgMTguNDk4IDYuMjQ2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0LjkzMiA2LjUzMyA0LjM2NSA1Ljk2NiA0LjM2NSA0LjI3MiA0LjkzMiAzLjcwNSAxMy43ODkgMy42OTggMTQuMzQ5IDQuMjcyIDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNzIgNC45MzIgNS42NzkgNC45MzIgNi41MzMgNC45MzIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjQuOTMyIDYuNTMzIDQuMzY1IDUuOTY2IDQuMzY1IDQuMjcyIDQuOTMyIDMuNzA1IDEzLjc4OSAzLjY5OCAxNC4zNDkgNC4yNzIgMTMuNzg5IDQuNTQ0IDEzLjUwMiA0LjI3MiA0LjkzMiA1LjY3OSA0LjkzMiA2LjUzMyA0LjkzMiA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi42MjYgMjYuNTk0IDUuOTY2IDI2LjAyNyA1Ljk2NiA2LjUyNiA2LjYyNiA1Ljk2NiA2LjYyNiAyNi41OTQgNi42MjYgMjYuNTk0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjYyNiAyNi41OTQgNS45NjYgMjYuMDI3IDUuOTY2IDYuNTI2IDYuNjI2IDUuOTY2IDYuNjI2IDI2LjU5NCA2LjYyNiAyNi41OTRcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjc1OSA2LjUzMyAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNzAzIDEyLjk0MiAxNC40NDIgMjAuNzU5IDYuNTMzIDIwLjc1OSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzU5IDYuNTMzIDIxLjMyNiA1Ljk2NiAyMS4zMjYgNy4xIDExLjkwMiAxNi43MDMgMTIuOTQyIDE0LjQ0MiAyMC43NTkgNi41MzMgMjAuNzU5IDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjgyIDUuNjg2IDYuNjI2IDUuOTY2IDUuOTY2IDYuNTMzIDQuOTMyIDYuNTMzIDQuOTMyIDUuMzk5IDYuODIgNS42ODYgNi44MiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi44MiA1LjY4NiA2LjYyNiA1Ljk2NiA1Ljk2NiA2LjUzMyA0LjkzMiA2LjUzMyA0LjkzMiA1LjM5OSA2LjgyIDUuNjg2IDYuODIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjk0MiA2LjUzMyAxMi45NDIgMTQuNDQyIDExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzggMTMuNTAyIDQuMjcyIDE0LjM0OSA0LjI3MiAxNC4zNDkgNS45NjYgMTMuNzg5IDYuNTMzIDEyLjk0MiA2LjUzMyAxMi45NDIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjk0MiA2LjUzMyAxMi45NDIgMTQuNDQyIDExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzggMTMuNTAyIDQuMjcyIDE0LjM0OSA0LjI3MiAxNC4zNDkgNS45NjYgMTMuNzg5IDYuNTMzIDEyLjk0MiA2LjUzMyAxMi45NDIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjYyNSA2LjUzMyAxOS4wNjUgNS45NjYgMTkuMDY1IDQuMjcyIDE5LjcxOCAzLjcwNSAyOC4yOTUgMy43MDUgMjguOTU2IDQuMjcyIDI4LjAwOCA1LjExOSAxOS42MjUgNS42NzkgMTkuNjI1IDYuNTMzIDE5LjYyNSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuNjI1IDYuNTMzIDE5LjA2NSA1Ljk2NiAxOS4wNjUgNC4yNzIgMTkuNzE4IDMuNzA1IDI4LjI5NSAzLjcwNSAyOC45NTYgNC4yNzIgMjguMDA4IDUuMTE5IDE5LjYyNSA1LjY3OSAxOS42MjUgNi41MzMgMTkuNjI1IDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC45NTYgNS45NjYgOS4wNzQgMjYuNTk0IDYuNjI2IDI2LjU5NCA2LjYyNiAyNS43NDcgOC40MiAyNS43NDcgMjguMjk1IDUuMzk5IDI4LjAwOCA0LjI3MiAyOC45NTYgNC4yNzIgMjguOTU2IDUuOTY2IDI4Ljk1NiA1Ljk2NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguOTU2IDUuOTY2IDkuMDc0IDI2LjU5NCA2LjYyNiAyNi41OTQgNi42MjYgMjUuNzQ3IDguNDIgMjUuNzQ3IDI4LjI5NSA1LjM5OSAyOC4wMDggNC4yNzIgMjguOTU2IDQuMjcyIDI4Ljk1NiA1Ljk2NiAyOC45NTYgNS45NjZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjUxMiA1LjY4NiAyMS4zMTkgNS45NjYgMjAuNzU5IDYuNTMzIDE5LjYyNSA2LjUzMyAxOS42MjUgNS4zOTkgMjEuNTEyIDUuNjg2IDIxLjUxMiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuNTEyIDUuNjg2IDIxLjMxOSA1Ljk2NiAyMC43NTkgNi41MzMgMTkuNjI1IDYuNTMzIDE5LjYyNSA1LjM5OSAyMS41MTIgNS42ODYgMjEuNTEyIDUuNjg2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc5IDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNjUgNS4yMTIgNC4yNjUgNC45MzIgNC41NDQgNC45MzIgNS42NzkgNS4yMTIgNS45NTggNi42MjYgNS45NTggNi42MjYgMjUuNzQ3IDYuOTkyIDI2LjAyNyA4LjYwNyAyNi4wMjcgMjguMzg5IDUuMzk5IDI4LjM4OSA0LjU4OCAyOC4xMDIgNC4yNjUgMTkuOTEyIDQuMjY1IDE5LjYyNSA0LjU0NCAxOS42MjUgNS42ODYgMTkuOTEyIDUuOTY2IDIxLjMyNiA1Ljk2NiAyMS4zMjYgNy4xIDExLjkwMiAxNi42OTYgMTEuOTAyIDE2LjY5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuOTAyIDE2LjY5NiAxMS45MDIgNS45NTggMTMuNTAyIDUuOTU4IDEzLjc4OSA1LjY3OSAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjY1IDUuMjEyIDQuMjY1IDQuOTMyIDQuNTQ0IDQuOTMyIDUuNjc5IDUuMjEyIDUuOTU4IDYuNjI2IDUuOTU4IDYuNjI2IDI1Ljc0NyA2Ljk5MiAyNi4wMjcgOC42MDcgMjYuMDI3IDI4LjM4OSA1LjM5OSAyOC4zODkgNC41ODggMjguMTAyIDQuMjY1IDE5LjkxMiA0LjI2NSAxOS42MjUgNC41NDQgMTkuNjI1IDUuNjg2IDE5LjkxMiA1Ljk2NiAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNjk2IDExLjkwMiAxNi42OTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjA0MSAxNi43MTEgMTcuNzAxIDE2LjE0NCAxOS4zOTUgMTYuMTQ0IDE5Ljg2OSAxNi43MTEgMTkuMzAyIDE4LjQwNSAxOC42NDkgMTguOTcyIDE2Ljk1NSAxOC45NzIgMTYuNDc0IDE4LjQwNSAxNy4wNDEgMTYuNzExIDE3LjA0MSAxNi43MTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjA0MSAxNi43MTEgMTcuNzAxIDE2LjE0NCAxOS4zOTUgMTYuMTQ0IDE5Ljg2OSAxNi43MTEgMTkuMzAyIDE4LjQwNSAxOC42NDkgMTguOTcyIDE2Ljk1NSAxOC45NzIgMTYuNDc0IDE4LjQwNSAxNy4wNDEgMTYuNzExIDE3LjA0MSAxNi43MTFcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjYwOCAyNi4wMzQgMTkuMzA5IDIwLjk1MyAxOC43NDIgMjAuOTUzIDE5LjMwOSAxOS4yNTEgMjEuODQzIDE5LjI1MSAyMi40MSAxOS44MTkgMjIuNzkgMTkuODE5IDIzLjM1IDE5LjI1MSAyNS4yMzggMTkuMjUxIDI1LjgwNSAxOS44MTkgMjYuMTc4IDE5LjgxOSAyNi43NDUgMTkuMjUxIDI4LjgxMiAxOS4yNTEgMjkuNTY2IDIwLjM4NiAyOC4zMzEgMjQuNDA1IDI4Ljg5MSAyNC40MDUgMjguMzQ2IDI2LjAzNCAyNC45NTEgMjYuMDM0IDI2LjI3OCAyMi4wNzkgMjUuNDMxIDIyLjA3OSAyNC42NDkgMjQuMzkxIDI1LjIwOSAyNC4zOTEgMjQuNjc4IDI2LjAzNCAyMS4yODMgMjYuMDM0IDIyLjYwMyAyMi4wNzkgMjEuNzU2IDIyLjA3OSAyMC45NjcgMjQuNDA1IDIxLjUzNCAyNC40MDUgMjEuMDAzIDI2LjAzNCAxNy42MDggMjYuMDM0IDE3LjYwOCAyNi4wMzRcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjYwOCAyNi4wMzQgMTkuMzA5IDIwLjk1MyAxOC43NDIgMjAuOTUzIDE5LjMwOSAxOS4yNTEgMjEuODQzIDE5LjI1MSAyMi40MSAxOS44MTkgMjIuNzkgMTkuODE5IDIzLjM1IDE5LjI1MSAyNS4yMzggMTkuMjUxIDI1LjgwNSAxOS44MTkgMjYuMTc4IDE5LjgxOSAyNi43NDUgMTkuMjUxIDI4LjgxMiAxOS4yNTEgMjkuNTY2IDIwLjM4NiAyOC4zMzEgMjQuNDA1IDI4Ljg5MSAyNC40MDUgMjguMzQ2IDI2LjAzNCAyNC45NTEgMjYuMDM0IDI2LjI3OCAyMi4wNzkgMjUuNDMxIDIyLjA3OSAyNC42NDkgMjQuMzkxIDI1LjIwOSAyNC4zOTEgMjQuNjc4IDI2LjAzNCAyMS4yODMgMjYuMDM0IDIyLjYwMyAyMi4wNzkgMjEuNzU2IDIyLjA3OSAyMC45NjcgMjQuNDA1IDIxLjUzNCAyNC40MDUgMjEuMDAzIDI2LjAzNCAxNy42MDggMjYuMDM0IDE3LjYwOCAyNi4wMzRcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU1NCAxOS44MTkgMjguOTkyIDIwLjQ0MyAyNy41OTkgMjQuOTA3IDI4LjE1OSAyNC45MDcgMjcuOTcyIDI1LjQ2NyAyNS43MTEgMjUuNDY3IDI3LjAzMiAyMS41MTIgMjUuMDUxIDIxLjUxMiAyMy45MjQgMjQuOTA3IDI0LjQ4NCAyNC45MDcgMjQuMjk3IDI1LjQ2NyAyMi4wMzYgMjUuNDY3IDIzLjM1NyAyMS41MTIgMjEuMzc2IDIxLjUxMiAyMC4yNDkgMjQuOTA3IDIwLjgxNiAyNC45MDcgMjAuNjIyIDI1LjQ2NyAxOC4zNjEgMjUuNDY3IDIwLjA2MyAyMC4zODYgMTkuNDk1IDIwLjM4NiAxOS42ODIgMTkuODE5IDIxLjc1NiAxOS44MTkgMjIuMzIzIDIwLjM4NiAyMi44ODMgMjAuMzg2IDIzLjQ1IDE5LjgxOSAyNS4xNDQgMTkuODE5IDI1LjcxMSAyMC4zODYgMjYuMjc4IDIwLjM4NiAyNi44NDUgMTkuODE5IDI4LjU1NCAxOS44MTkgMjguNTU0IDE5LjgxOVxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNTU0IDE5LjgxOSAyOC45OTIgMjAuNDQzIDI3LjU5OSAyNC45MDcgMjguMTU5IDI0LjkwNyAyNy45NzIgMjUuNDY3IDI1LjcxMSAyNS40NjcgMjcuMDMyIDIxLjUxMiAyNS4wNTEgMjEuNTEyIDIzLjkyNCAyNC45MDcgMjQuNDg0IDI0LjkwNyAyNC4yOTcgMjUuNDY3IDIyLjAzNiAyNS40NjcgMjMuMzU3IDIxLjUxMiAyMS4zNzYgMjEuNTEyIDIwLjI0OSAyNC45MDcgMjAuODE2IDI0LjkwNyAyMC42MjIgMjUuNDY3IDE4LjM2MSAyNS40NjcgMjAuMDYzIDIwLjM4NiAxOS40OTUgMjAuMzg2IDE5LjY4MiAxOS44MTkgMjEuNzU2IDE5LjgxOSAyMi4zMjMgMjAuMzg2IDIyLjg4MyAyMC4zODYgMjMuNDUgMTkuODE5IDI1LjE0NCAxOS44MTkgMjUuNzExIDIwLjM4NiAyNi4yNzggMjAuMzg2IDI2Ljg0NSAxOS44MTkgMjguNTU0IDE5LjgxOSAyOC41NTQgMTkuODE5XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBhdGggZD1cXFwiTTE5LjAyMiwxOS4yNTEsMTcuMjkyLDI0LjRoLjU4OWwtLjU2LDEuNjM3SDEzLjkzM2wxLjY5NC01LjA4MkgxNS4wNmwzLjk2Mi0xLjdabS0zLjk2MiwxLjcuNTY3LTEuN2gzLjRsLTMuOTYyLDEuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDIyLDE5LjI1MSwxNy4yOTIsMjQuNGguNTg5bC0uNTYsMS42MzdIMTMuOTMzbDEuNjk0LTUuMDgySDE1LjA2bDMuOTYyLTEuN1ptLTMuOTYyLDEuNy41NjctMS43aDMuNGwtMy45NjIsMS43WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuOTQ3IDI1LjQ2NyAxNy4xMzQgMjQuOTA3IDE2LjU2NyAyNC45MDcgMTguMjY4IDE5LjgxOSAxNS45MTQgMTkuODE5IDE1LjcyIDIwLjM4NiAxNi4zOCAyMC4zODYgMTQuNjg2IDI1LjQ2NyAxNi45NDcgMjUuNDY3IDE2Ljk0NyAyNS40NjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljk0NyAyNS40NjcgMTcuMTM0IDI0LjkwNyAxNi41NjcgMjQuOTA3IDE4LjI2OCAxOS44MTkgMTUuOTE0IDE5LjgxOSAxNS43MiAyMC4zODYgMTYuMzggMjAuMzg2IDE0LjY4NiAyNS40NjcgMTYuOTQ3IDI1LjQ2NyAxNi45NDcgMjUuNDY3XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC44MjggMTguMTI1IDE5LjIwOCAxNi45OTEgMTkuMDIyIDE2LjcxMSAxNy44ODggMTYuNzExIDE3LjUxNCAxNi45OTEgMTcuMTM0IDE4LjEyNSAxNy4zMjggMTguNDA1IDE4LjQ2MiAxOC40MDUgMTguODI4IDE4LjEyNSAxOC44MjggMTguMTI1XFxcIiBzdHlsZT1cXFwiZmlsbDojZDBkMmQzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC44MjggMTguMTI1IDE5LjIwOCAxNi45OTEgMTkuMDIyIDE2LjcxMSAxNy44ODggMTYuNzExIDE3LjUxNCAxNi45OTEgMTcuMTM0IDE4LjEyNSAxNy4zMjggMTguNDA1IDE4LjQ2MiAxOC40MDUgMTguODI4IDE4LjEyNSAxOC44MjggMTguMTI1XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+XCIsXG5cdH0sXG5cdFwiVmlzdWFsIEJhc2ljXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNTE5YVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTYuNjcsNy44MzYsOSwxOC45MTUsMTEuMzM2LDcuODM2SDE2TDExLjMzNiwyNC4xNjRINi42NzJMMiw3LjgzNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUxOWFcXFwiLz48cGF0aCBkPVxcXCJNMTguMzMxLDcuODM2aDcuNmE0LjA4LDQuMDgsMCwwLDEsMi45LDEuNzQ5LDMuNzgsMy43OCwwLDAsMSwuNTcxLDIuMDQsMy45ODUsMy45ODUsMCwwLDEtLjU3MSwyLjAzNCw0LjEwOCw0LjEwOCwwLDAsMS0yLjM0MSwxLjc2Myw0LjEsNC4xLDAsMCwxLDIuOTI5LDEuNzU2LDMuOCwzLjgsMCwwLDEsLjU4LDIuMSw0LjY2Myw0LjY2MywwLDAsMS0uNTc5LDIuNTQ2LDUuMDQ3LDUuMDQ3LDAsMCwxLTMuNSwyLjMzOEgxOC4zMzFaTTIzLDE0LjI1MmgxLjE2NmExLjc1NCwxLjc1NCwwLDAsMCwwLTMuNUgyM1ptMCw3SDI0LjM5YTIuMDQ3LDIuMDQ3LDAsMCwwLDAtNC4wODlIMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+XCIsXG5cdH0sXG5cdFwiV2ViQXNzZW1ibHlcIjoge1xuXHRcdGNvbG91cjogXCIjNjU0ZmYwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTkuMTUzLDIuMzVWMi41YTMuMiwzLjIsMCwxLDEtNi40LDBoMFYyLjM1SDJWMzAuMjY5SDI5LjkxOVYyLjM1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NGZmMFxcXCIvPjxwYXRoIGQ9XFxcIk04LjQ4NSwxNy40aDEuODVMMTEuNiwyNC4xMjNoLjAyM0wxMy4xNCwxNy40aDEuNzMxbDEuMzcxLDYuODFoLjAyN2wxLjQ0LTYuODFoMS44MTVsLTIuMzU4LDkuODg1SDE1LjMyOWwtMS4zNi02LjcyOGgtLjAzNmwtMS40NTYsNi43MjhoLTEuODdabTEzLjEyNCwwaDIuOTE3bDIuOSw5Ljg4NUgyNS41MTVsLS42My0yLjJIMjEuNTYybC0uNDg2LDIuMkgxOS4yMTdabTEuMTEsMi40MzctLjgwNywzLjYyN2gyLjUxMkwyMy41LDE5LjgzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJXb2xmcmFtIGxhbmd1YWdlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2QwMTAwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTMwLDIwLjU1LDI1Ljk0LDE2LDMwLDExLjQ1bC01Ljk0OC0xLjI5NC41OTUtNi4wNjdMMTkuMDcxLDYuNTQzLDE1Ljk5MywxLjI3OSwxMi45MjksNi41NDMsNy4zNTMsNC4wODlsLjU5NSw2LjA2N0wyLDExLjQ1LDYuMDU5LDE2LDIsMjAuNTVsNS45NDgsMS4yOTQtLjU5NSw2LjA2Nyw1LjU3Ni0yLjQ1NCwzLjA3OCw1LjI2NCwzLjA2My01LjI2NCw1LjU5MSwyLjQ1NC0uNjEtNi4wNjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDEwXFxcIi8+PHBhdGggZD1cXFwiTTE5LjM1MywxMS40NWE2Ljk2OCw2Ljk2OCwwLDAsMS0zLjQyLjg2Miw1LjQ0Niw1LjQ0NiwwLDAsMS0zLjIxMi0uODYyQTcuMSw3LjEsMCwwLDEsMTIuNSwxNC44YTYuMjI1LDYuMjI1LDAsMCwxLTEuODc0LDIuOTE0LDcuNDU0LDcuNDU0LDAsMCwxLDMuMTM4LDEuMTksOS42NTksOS42NTksMCwwLDEsMi4yMTYsMi43MjEsOC4xOTQsOC4xOTQsMCwwLDEsMi4xNDEtMi42OTEsNy42MDUsNy42MDUsMCwwLDEsMy4yNDItMS4yLDEyLjU2MiwxMi41NjIsMCwwLDEtMS45MzMtMi45NDRBNi43MTgsNi43MTgsMCwwLDEsMTkuMzUzLDExLjQ1Wm0tMS45LDYuNTQzYTUuMjMzLDUuMjMzLDAsMCwwLTEuNDU3LDEuNjM2LDYuMjM2LDYuMjM2LDAsMCwwLTEuNS0xLjYyMSw1LjE5MSw1LjE5MSwwLDAsMC0xLjk0OC0uODQ4LDYuODM5LDYuODM5LDAsMCwwLDEuMTE1LTIuMDA3LDYuMTgsNi4xOCwwLDAsMCwuMjIzLTIuMDgyLDYuMzE3LDYuMzE3LDAsMCwwLDIuMDgyLjQ0Niw2LjU1Miw2LjU1MiwwLDAsMCwyLjE3MS0uNDYxLDQuNTIxLDQuNTIxLDAsMCwwLC4wNzQsMi4xNTYsNi43MSw2LjcxLDAsMCwwLDEuMjQ5LDEuOTMzQTcuMDMxLDcuMDMxLDAsMCwwLDE3LjQ1LDE3Ljk5M1ptNC4yMzgtNC4wMTVjLS4zNTctMS4xNzUuNjU0LTYuNzA2LjY1NC02LjcwNlMxOC41NSw5Ljg0NCwxNS44ODgsOS44NDRzLTYuMjMtMi41NzItNi4yMy0yLjU3MiwxLjE3NSw0LjAxNS40NjEsNi41ODctNC4zODcsNS40NzItNC4zODcsNS40NzIsNC43ODguMjgzLDYuNiwxLjUsMy42NTgsNS45NDgsMy42NTgsNS45NDgsMi40NTQtNS4yLDMuNDgtNS45NDgsNi44LTEuNSw2LjgtMS41LTQuMjIzLTQuMTc4LTQuNTgtNS4zNTNabS0yLjg0LDUuOTYzYTkuNDQ0LDkuNDQ0LDAsMCwwLTIuODQsNC4xNzhzLTEuNDEzLTMuMTUyLTIuOTc0LTQuMjIzUzguMywxOC41NDMsOC4zLDE4LjU0M3MyLjQ1NC0yLjE3MSwzLjA0OC00LjFhMTEuOTIzLDExLjkyMywwLDAsMC0uMS00Ljk1MiwxMS4zLDExLjMsMCwwLDAsNC42NjksMS42MjFjMi4wMzcsMCw0Ljg0OC0xLjYyMSw0Ljg0OC0xLjYyMXMtLjgxOCwzLjAzMy0uMTY0LDQuOTIyLDMuMTA4LDQuMTM0LDMuMTA4LDQuMTM0YTEwLjU1NywxMC41NTcsMCwwLDAtNC44NjIsMS40WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlhNTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmMTY2MmFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC40MiwyMS4xNTdsMi4yMTEsMi4yMTFMMzAsMTYsMjIuNjMxLDguNjMxLDIwLjQyLDEwLjg0MywyNS41OCwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNTgsMTAuODQzLDkuMzY5LDguNjMxLDIsMTZsNy4zNjksNy4zNjksMi4yMTEtMi4yMTFMNi40MiwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMTcuNDExLDcuNjc3bDEuNi40MzctNC40MiwxNi4yMDktMS42LS40MzcsNC40Mi0xNi4yMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+XCIsXG5cdH0sXG5cdFwiWFF1ZXJ5XCI6IHtcblx0XHRjb2xvdXI6IFwiI2YxNjYyYVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIwLjQyLDIxLjE1N2wyLjIxMSwyLjIxMUwzMCwxNiwyMi42MzEsOC42MzEsMjAuNDIsMTAuODQzLDI1LjU4LDE2Wk0xMS41OCwxMC44NDMsOS4zNjksOC42MzEsMiwxNmw3LjM2OSw3LjM2OSwyLjIxMS0yLjIxMUw2LjQyLDE2Wm01LjgzMS0zLjE2NiwxLjYuNDM3LTQuNDIsMTYuMjA5LTEuNi0uNDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4zMzIsMTguNDYyYTMuMzU0LDMuMzU0LDAsMCwxLC45NzUtMS40MjMsNC4wMTQsNC4wMTQsMCwwLDEsMS42MTctLjhBOS4xMTgsOS4xMTgsMCwwLDEsMjUuMTM4LDE2YTUuNDcyLDUuNDcyLDAsMCwxLDMuNjgxLDEuMDM5QTMuNSwzLjUsMCwwLDEsMzAsMTkuODA4YTQuNDcsNC40NywwLDAsMS0uMjQsMS40OTEsMy4xMjQsMy4xMjQsMCwwLDEtLjgzOCwxLjIzOWwtMS42NzUsMS42YTEuNTEyLDEuNTEyLDAsMCwwLS40MjQuNzg5LDUuMzA3LDUuMzA3LDAsMCwwLS4xLDEuMUgyM3YtLjU0YTYuMzIsNi4zMiwwLDAsMSwuMjA3LTEuNzc4LDIuODg2LDIuODg2LDAsMCwxLC43OC0xLjI0bDEuMzUyLTEuMjg5YTEuODQsMS44NCwwLDAsMCwuNTYzLS44OTQsMy42ODIsMy42ODIsMCwwLDAsLjEtLjgsMS41LDEuNSwwLDAsMC0uMjUyLS45LjkuOSwwLDAsMC0uNzc5LS4zNDYsMS4yNTUsMS4yNTUsMCwwLDAtLjQ4My4wODYuNzI0LjcyNCwwLDAsMC0uMzQ0LjMzNywyLjM0NywyLjM0NywwLDAsMC0uMjE3LjcyMSw3LjYxNCw3LjYxNCwwLDAsMC0uMDgxLDEuMjRIMjBBNi4xNTUsNi4xNTUsMCwwLDEsMjAuMzMyLDE4LjQ2MlptNi40NTcsOC41VjMwSDIyLjkzNlYyNi45NjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmNiYTAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiWUFNTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZmU4ODVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDEyLjIxOGMuNzU1LDAsMS41MS0uMDA4LDIuMjY0LDBsLjA1My4wMzhRNS43LDEzLjYzOCw3LjA3OCwxNS4wMTRjLjg5MS0uOTA2LDEuOC0xLjc5NCwyLjctMi43LjA1My0uMDUyLjExLS4xMTMuMTkyLS4xLjYwOCwwLDEuMjE1LDAsMS44MjMsMGExLjQsMS40LDAsMCwxLC4zNTMuMDE5Yy0uNy42Ny0xLjM3NywxLjM2OS0yLjA2OSwyLjA1TDUuNTQ1LDE4LjhjLS4zMzEuMzI0LS42NDguNjYzLS45ODkuOTc1LS43NTQuMDIyLTEuNTExLjAwNy0yLjI2Ni4wMDcsMS4yMjMtMS4yMDksMi40MzEtMi40MzMsMy42NTgtMy42MzdDNC42MjcsMTQuODQxLDMuMzE4LDEzLjUyNSwyLDEyLjIxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU4ODVcXFwiLz48cGF0aCBkPVxcXCJNMTIuNywxMi4yMThjLjYxMywwLDEuMjI2LDAsMS44MzksMHEwLDMuNzgzLDAsNy41NjZjLS42MTEsMC0xLjIyMi4wMTItMS44MzItLjAwOCwwLTEuNjY0LDAtMy4zMjksMC00Ljk5NC0xLjYsMS42MDctMy4yMDksMy4yLTQuODExLDQuOC0uMDg5LjA4LS4xNjYuMjE3LS4zMDUuMTk0LS44MjQtLjAwNi0xLjY0OSwwLTIuNDc0LDBROC45MTYsMTYsMTIuNywxMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTE0Ljk1OCwxMi4yMmMuNDctLjAwOS45MzksMCwxLjQwOSwwLC44MzYuODUzLDEuNjksMS42ODksMi41MzYsMi41MzJxMS4yNjgtMS4yNjcsMi41MzktMi41MzIuNywwLDEuNCwwLS4wMDgsMy43ODQsMCw3LjU2N2MtLjQ3MSwwLS45NDMuMDA2LTEuNDE0LDBxLjAwOC0yLjM4NywwLTQuNzczYy0uODQ0Ljg0My0xLjY3NiwxLjctMi41MjYsMi41MzYtLjg1Ni0uODM1LTEuNjg3LTEuNjk1LTIuNTMyLTIuNTQxLDAsMS41OTQtLjAwNiwzLjE4OC4wMDYsNC43ODEtLjQ3MiwwLS45NDMuMDA1LTEuNDE1LDBRMTQuOTU4LDE2LDE0Ljk1OCwxMi4yMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU4ODVcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjU5LDEyLjIxN2MuNDcyLDAsLjk0NC0uMDA3LDEuNDE2LDBxLS4wMDcsMy4wODMsMCw2LjE2NmMxLjI2LDAsMi41MjEsMCwzLjc4MiwwLC4wNjMuMDA2LjE0NC0uMDEyLjE5MS4wNDUuNDQ4LjQ1NC45MDcuOSwxLjM1MywxLjM1NHEtMy4zNzEuMDA3LTYuNzQxLDBRMjMuMjY3LDE2LDIzLjI1OSwxMi4yMTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+XCIsXG5cdH0sXG5cdFwiWUFOR1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMyMzFmMjBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04Ljg3NywyMy4xNTljMC01LjUzNSwzLjk5Mi03LjE2OCw3Ljg5NC03LjE2OCwzLjM1NywwLDUuOTg4LTMuODExLDUuOTg4LTYuNjI0LDAtMy42MjEtMi40ODctNS44MzEtNC44ODItNy4xMkExMy44ODEsMTMuODgxLDAsMSwwLDE0LjUsMjkuOEMxMC40OTEsMjguMjQ4LDguODc3LDI1LjMyNCw4Ljg3NywyMy4xNTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE0LjQ4MiwyOS45MTdBMTQsMTQsMCwwLDEsMTYsMmExNC4xNTQsMTQuMTU0LDAsMCwxLDEuODkzLjEzMWwuMDQuMDEzYzIuMjU1LDEuMjEzLDQuOTQ0LDMuNDUyLDQuOTQ0LDcuMjIzLDAsMi43MTUtMi41NjQsNi43NDEtNi4xMDYsNi43NDEtMi45LDAtNy43NzYuOTE2LTcuNzc2LDcuMDUsMCwyLjAyMiwxLjQ1MSw0Ljk0Niw1LjU0Miw2LjUzMVpNMTYsMi4yMzZBMTMuNzY1LDEzLjc2NSwwLDAsMCwxMy42MzcsMjkuNTZjLTMuNTgxLTEuNjg0LTQuODc3LTQuNDQ3LTQuODc3LTYuNCwwLTYuNTc2LDUuNi03LjI4Niw4LjAxMi03LjI4NiwzLjQwNiwwLDUuODctMy44ODYsNS44Ny02LjUwNiwwLTMuNjQ1LTIuNjA2LTUuODItNC44LTcuMDA2QTEzLjkyOCwxMy45MjgsMCwwLDAsMTYsMi4yMzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljg4MiwxNmExMy44ODIsMTMuODgyLDAsMCwwLTEyLTEzLjc1MmMyLjQsMS4yODksNC44ODIsMy41LDQuODgyLDcuMTIsMCwyLjgxMy0yLjYzMSw2LjYyNC01Ljk4OCw2LjYyNC0zLjksMC03Ljg5NCwxLjYzMy03Ljg5NCw3LjE2OCwwLDIuMTY2LDEuNjEzLDUuMDg5LDUuNjE4LDYuNjQxQTEzLjg3NSwxMy44NzUsMCwwLDAsMjkuODgyLDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGExNC4yLDE0LjIsMCwwLDEtMS41MTgtLjA4M2wtLjAzLS4wMDdjLTQuMi0xLjYyOC01LjY5My00LjY1NC01LjY5My02Ljc1LDAtNi41NzYsNS42LTcuMjg2LDguMDEyLTcuMjg2LDMuNDA2LDAsNS44Ny0zLjg4Niw1Ljg3LTYuNTA2LDAtMy42NTUtMi42MjEtNS44MzMtNC44Mi03LjAxNmwuMDcyLS4yMjFBMTQsMTQsMCwwLDEsMTYsMzBabS0xLjQ3Ny0uMzE2QTEzLjc1NiwxMy43NTYsMCwwLDAsMjkuNzY0LDE2LDEzLjgwNywxMy44MDcsMCwwLDAsMTguNSwyLjQ2NmMyLjExNSwxLjI3Miw0LjM3NywzLjQ0MSw0LjM3Nyw2LjksMCwyLjcxNS0yLjU2NCw2Ljc0MS02LjEwNiw2Ljc0MS0yLjksMC03Ljc3Ni45MTYtNy43NzYsNy4wNUM5LDI1LjE3OCwxMC40NDMsMjguMSwxNC41MjMsMjkuNjg0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxjaXJjbGUgY3g9XFxcIjE1Ljk0M1xcXCIgY3k9XFxcIjIyLjc4N1xcXCIgcj1cXFwiMS41MDZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIxNi4wMDdcXFwiIGN5PVxcXCI5LjE0MlxcXCIgcj1cXFwiMS41MDZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz5cIixcblx0fSxcblx0XCJaaWdcIjoge1xuXHRcdGNvbG91cjogXCIjZjdhNDFkXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuNzMzIDE5LjczMSA1LjczMyAxMi4yNjQgOC41MzMgMTIuMjY0IDguNTMzIDguNTMxIDIgOC41MzEgMiAyMy40NjQgNS41NDcgMjMuNDY0IDguOTA3IDE5LjczMSA1LjczMyAxOS43MzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI2LjQ1MyA4LjUzMSAyMy4wOTMgMTIuMjY0IDI2LjI2NyAxMi4yNjQgMjYuMjY3IDE5LjczMSAyMy40NjcgMTkuNzMxIDIzLjQ2NyAyMy40NjQgMzAgMjMuNDY0IDMwIDguNTMxIDI2LjQ1MyA4LjUzMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y3YTQxZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjYuODc1IDYuNzA3IDIwLjUxMyA4LjUzMSA5LjQ2NyA4LjUzMSA5LjQ2NyAxMi4yNjQgMTYuODQ3IDEyLjI2NCA1LjExNSAyNS4yOTMgMTEuNDk3IDIzLjQ2NCAyMi41MzMgMjMuNDY0IDIyLjUzMyAxOS43MzEgMTUuMTQ4IDE5LjczMSAyNi44NzUgNi43MDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz5cIixcblx0fVxufTtcblxuY29uc3QgRVhFQ1VURV9DT0RFX0xBTkdVQUdFX0FMSUFTRVM6IEFycmF5PHN0cmluZz4gPSBbXCJqYXZhc2NyaXB0XCIsXCJ0eXBlc2NyaXB0XCIsXCJiYXNoXCIsXCJjc2hhcnBcIixcIndvbGZyYW1cIixcIm5iXCIsXCJ3bFwiLFwiaHNcIixcInB5XCIsXCJzY3B0XCJdO1xuY29uc3QgRVhFQ1VURV9DT0RFX0NBTk9OSUNBTF9MQU5HVUFHRVM6IEFycmF5PHN0cmluZz4gPSBbXCJqc1wiLFwidHNcIixcImNzXCIsXCJsZWFuXCIsXCJsdWFcIixcInB5dGhvblwiLFwiY3BwXCIsXCJwcm9sb2dcIixcInNoZWxsXCIsXCJncm9vdnlcIixcInJcIixcImdvXCIsXCJydXN0XCIsXCJqYXZhXCIsXCJwb3dlcnNoZWxsXCIsXCJrb3RsaW5cIixcIm1hdGhlbWF0aWNhXCIsXCJoYXNrZWxsXCIsXCJzY2FsYVwiLFwicmFja2V0XCIsXCJmc2hhcnBcIixcImNcIixcImRhcnRcIixcInJ1YnlcIixcImJhdGNoXCIsXCJzcWxcIixcIm9jdGF2ZVwiLFwibWF4aW1hXCIsXCJhcHBsZXNjcmlwdFwiXTtcblxuZXhwb3J0IGNvbnN0IEVYRUNVVEVfQ09ERV9TVVBQT1JURURfTEFOR1VBR0VTID0gWy4uLkVYRUNVVEVfQ09ERV9MQU5HVUFHRV9BTElBU0VTLC4uLkVYRUNVVEVfQ09ERV9DQU5PTklDQUxfTEFOR1VBR0VTXTtcbiIsICJpbXBvcnQgeyBBcHAsIFBsdWdpblNldHRpbmdUYWIsIFNldHRpbmcsIE5vdGljZSwgVGV4dENvbXBvbmVudCwgRHJvcGRvd25Db21wb25lbnQsIFNsaWRlckNvbXBvbmVudCwgVG9nZ2xlQ29tcG9uZW50LCBFeHRyYUJ1dHRvbkNvbXBvbmVudCwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IFBpY2tyIGZyb20gXCJAc2ltb253ZXAvcGlja3JcIjtcbmltcG9ydCB7IENvbG9yVHJhbnNsYXRvciB9IGZyb20gXCJjb2xvcnRyYW5zbGF0b3JcIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuaW1wb3J0IHsgQ29sb3VyLCBDU1MsIEhFWCwgRGlzcGxheSwgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBGT0xEX1BMQUNFSE9MREVSLCBQQVJBTUVURVJTLCBERUZBVUxUX1NFVFRJTkdTLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VTLCBTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCwgRVhBTVBMRV9JTkxJTkVfQ09ERSwgRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUywgRVhBTVBMRV9DT0RFQkxPQ0tfQ09OVEVOVCwgRVhDTFVERURfTEFOR1VBR0VTLCBXSElURUxJU1RfQ09ERUJMT0NLUywgSU5CVUlMVF9USEVNRVMsIENvZGVTdHlsZXJUaGVtZSB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5cbmNvbnN0IFNFVFRJTkdTX1BBR0VTOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4gPSB7XG5cdFwibWFpblwiOiBcIkNvcmUgU2V0dGluZ3NcIixcblx0XCJjb2RlYmxvY2tcIjogXCJDb2RlYmxvY2sgU3R5bGluZ1wiLFxuXHRcImlubGluZVwiOiBcIklubGluZSBDb2RlIFN0eWxpbmdcIixcbn07XG5jb25zdCBDT0RFQkxPQ0tfUEFHRVM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiA9IHtcblx0XCJib2R5XCI6IFwiQ29kZWJsb2NrIEJvZHlcIixcblx0XCJndXR0ZXJcIjogXCJDb2RlYmxvY2sgR3V0dGVyXCIsXG5cdFwiaGVhZGVyXCI6IFwiQ29kZWJsb2NrIEhlYWRlclwiLFxuXHRcImhpZ2hsaWdodFwiOiBcIkNvZGVibG9jayBIaWdobGlnaHRpbmdcIixcblx0XCJsYW5ndWFnZXNcIjogXCJDb2RlYmxvY2sgTGFuZ3VhZ2VzXCIsXG5cdC8vIFwicGx1Z2luc1wiOiBcIlBsdWdpbiBDb21wYXRpYmlsaXR5XCIsXG5cdFwiZXhhbXBsZVwiOiBcIkV4YW1wbGUgQ29kZWJsb2NrIENvbnRlbnRcIixcbn07XG5jb25zdCBESVNQTEFZX09QVElPTlM6IFJlY29yZDxEaXNwbGF5LHN0cmluZz4gPSB7XG5cdFwibm9uZVwiOiBcIk5ldmVyXCIsXG5cdFwiaWZfaGVhZGVyX3Nob3duXCI6IFwiSWYgSGVhZGVyIFNob3duXCIsXG5cdFwiYWx3YXlzXCI6IFwiQWx3YXlzXCIsXG59O1xuXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcblx0cGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luO1xuXHRwaWNrcnM6IFJlY29yZDxzdHJpbmcsUGlja3JSZXNldHRhYmxlPjtcblx0cGFnZTogc3RyaW5nO1xuXHRjb2RlYmxvY2tQYWdlOiBzdHJpbmc7XG5cdGhpZGVBZHZhbmNlZDogYm9vbGVhbjtcblx0Y29kZWJsb2NrU2V0dGluZ0VsOiBIVE1MRWxlbWVudDtcblx0YWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGFsdGVybmF0aXZlSGlnaGxpZ2h0c0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGV4YW1wbGVDb2RlYmxvY2tDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRleGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdHdyYXBMaW5lc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGxpbmVOdW1iZXJzQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0aGVhZGVyVGFnc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGhlYWRlckljb25zQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0aW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGRpc2FibGVhYmxlQ29tcG9uZW50czogUmVjb3JkPHN0cmluZyxBcnJheTxUb2dnbGVDb21wb25lbnQgfCBTbGlkZXJDb21wb25lbnQgfCBUZXh0Q29tcG9uZW50IHwgRXh0cmFCdXR0b25Db21wb25lbnQ+PjtcblxuXHRjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdFx0c3VwZXIoYXBwLCBwbHVnaW4pO1xuXHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xuXHRcdHRoaXMucGlja3JzID0ge307XG5cdFx0dGhpcy5wYWdlID0gXCJtYWluXCI7XG5cdFx0dGhpcy5jb2RlYmxvY2tQYWdlID0gXCJib2R5XCI7XG5cdFx0dGhpcy5oaWRlQWR2YW5jZWQgPSB0cnVlO1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzID0ge307XG5cdH1cblxuXHQvKipcblx0ICogIEJ1aWxkcyB0aGUgaHRtbCBwYWdlIHRoYXQgaXMgc2hvd2VkIGluIHRoZSBzZXR0aW5ncy5cblx0ICovXG5cdGRpc3BsYXkoKSB7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHMgPSB7XG5cdFx0XHRcImVkaXRvckFjdGl2ZUxpbmVIaWdobGlnaHRcIjogW10sXG5cdFx0XHRcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIjogW10sXG5cdFx0XHRcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCI6IFtdLFxuXHRcdFx0XCJsYW5ndWFnZUJvcmRlckNvbG91clwiOiBbXSxcblx0XHR9O1xuXHRcdHRoaXMuaGlkZUFkdmFuY2VkID0gdHJ1ZTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3ModGhpcy5jb250YWluZXJFbCk7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3MgUGFnZXNcblx0ZGlzcGxheU1haW5TZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLmVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlVGhlbWVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvcmVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkSGVhZGluZyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKTtcblx0XHR0aGlzLmdlbmVyYXRlRG9uYXRpb25Gb290ZXIoY29udGFpbmVyRWwpO1xuXHR9XG5cdGRpc3BsYXlDb2RlYmxvY2tTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLmVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlVGhlbWVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoclwiKTtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tTdHlsaW5nU3dpdGNoZXIoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja1NldHRpbmcoKTtcblxuXHR9XG5cdGRpc3BsYXlJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaHJcIik7XG5cdFx0dGhpcy5leGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpO1xuXHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0fVxuXG5cdC8vIENyZWF0ZSBTZXR0aW5ncyBHcm91cHNcblx0ZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5lbXB0eSgpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDFcIiwge3RleHQ6IFwiU2V0dGluZ3MgZm9yIHRoZSBDb2RlIFN0eWxlciBQbHVnaW4uXCJ9KTtcblx0fVxuXHRnZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNob29zZSBTZXR0aW5ncyBQYWdlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNoYW5nZSBkcm9wZG93biB0byBtb2RpZnkgZGlmZmVyZW50IGdyb3VwcyBvZiBzZXR0aW5nc1wiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoU0VUVElOR1NfUEFHRVMpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBhZ2UpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWU6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGFnZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgPT09IFwibWFpblwiKVxuXHRcdFx0dGhpcy5kaXNwbGF5TWFpblNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiY29kZWJsb2NrXCIpXG5cdFx0XHR0aGlzLmRpc3BsYXlDb2RlYmxvY2tTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5wYWdlID09PSBcImlubGluZVwiKVxuXHRcdFx0dGhpcy5kaXNwbGF5SW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja1N0eWxpbmdTd2l0Y2hlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ2hvb3NlIENvZGVibG9jayBTZXR0aW5nc1wiKVxuXHRcdFx0LnNldERlc2MoXCJDaGFuZ2UgZHJvcGRvd24gdG8gbW9kaWZ5IHN0eWxlcyBhbmQgc2V0dGluZ3Mgb2YgZGlmZmVyZW50IGNvZGVibG9jayBzZWN0aW9uc1wiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoQ09ERUJMT0NLX1BBR0VTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5jb2RlYmxvY2tQYWdlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhZ2UgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrU2V0dGluZygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tTZXR0aW5nKCkge1xuXHRcdHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJib2R5XCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrQm9keVNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiZ3V0dGVyXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrR3V0dGVyU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJoZWFkZXJcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tIZWFkZXJTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0hpZ2hsaWdodFNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwibGFuZ3VhZ2VzXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGFuZ3VhZ2VTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcInBsdWdpbnNcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVQbHVnaW5Db21wYXRpYmlsaXR5U2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJleGFtcGxlXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9ja1NldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0fVxuXHRnZW5lcmF0ZUNvcmVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU3R5bGUgQ29kZSBvbiBFeHBvcnRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgc3R5bGluZyB3aWxsIGJlIGFwcGxpZWQgd2hlbiBleHBvcnRpbmcgdG8gUERGLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5kZWNvcmF0ZVByaW50KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgICAgICAgXG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7dGV4dDogXCJUaGVtZSBTZXR0aW5nc1wifSk7XG5cdFx0bGV0IHRoZW1lRHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50O1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTZWxlY3QgVGhlbWVcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IHtcblx0XHRcdFx0dGhlbWVEcm9wZG93biA9IGRyb3Bkb3duO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHR0aGVtZURyb3Bkb3duLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkRXh0cmFCdXR0b24oYnV0dG9uID0+IHtcblx0XHRcdFx0YnV0dG9uLnNldFRvb2x0aXAoXCJVcGRhdGUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwic2F2ZVwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCk7XG5cdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBzYXZlZCBzdWNjZXNzZnVsbHkhYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRFeHRyYUJ1dHRvbihidXR0b24gPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0VG9vbHRpcChcIkRlbGV0ZSB0aGVtZVwiKTtcblx0XHRcdFx0YnV0dG9uLnNldEljb24oXCJ0cmFzaFwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lLnRyaW0oKS5sZW5ndGggPT09IDApXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2VsZWN0IGEgdGhlbWUgZmlyc3QgdG8gZGVsZXRlXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lIGluIERFRkFVTFRfU0VUVElOR1MudGhlbWVzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIllvdSBjYW5ub3QgZGVsZXRlIHRoZSBkZWZhdWx0IHRoZW1lc1wiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdO1xuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBkZWxldGVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gXCJEZWZhdWx0XCI7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlRHJvcGRvd24odGhlbWVEcm9wZG93bix0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdGxldCBuZXdUaGVtZU5hbWU6IFRleHRDb21wb25lbnQ7XG5cdFx0bGV0IG5ld1RoZW1lRGVmYXVsdDogVG9nZ2xlQ29tcG9uZW50O1xuXHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gXCJcIjtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIE5ldyBUaGVtZVwiKVxuXHRcdFx0LnNldERlc2MoXCJDcmVhdGUgYSBuZXcgdGhlbWUgZnJvbSB0aGUgY3VycmVudCBzZXR0aW5ncy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4ge25ld1RoZW1lTmFtZSA9IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiTmV3IHRoZW1lIG5hbWVcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEV4dHJhQnV0dG9uKGJ1dHRvbiA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRUb29sdGlwKFwiU2F2ZSB0aGVtZVwiKTtcblx0XHRcdFx0YnV0dG9uLnNldEljb24oXCJwbHVzXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lLnRyaW0oKS5sZW5ndGggPT09IDApXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2V0IGEgbmFtZSBmb3IgeW91ciB0aGVtZVwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgaW4gREVGQVVMVF9TRVRUSU5HUy50aGVtZXMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiWW91IGNhbid0IG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCB0aGVtZXNcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lIGluIHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lcykge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWVdID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWV9IHRoZW1lIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZV0gPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZX0gdGhlbWUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlRHJvcGRvd24odGhlbWVEcm9wZG93bix0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgPSBcIlwiO1xuXHRcdFx0XHRcdFx0bmV3VGhlbWVOYW1lLnNldFZhbHVlKFwiXCIpO1xuXHRcdFx0XHRcdFx0bmV3VGhlbWVEZWZhdWx0LnNldFZhbHVlKGZhbHNlKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrQm9keVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiQ29kZWJsb2NrIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJjb2RlYmxvY2tfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCB0aGUgY29kZWJsb2NrcyBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMjUsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY3VydmF0dXJlXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgQ29sb3VyZWQgQm9yZGVyc1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBsYW5ndWFnZXMgd2l0aCBpY29ucyBkaXNwbGF5IGEgbGVmdCBib3JkZXIgd2l0aCB0aGUgY29sb3VyIG9mIHRoZSBpY29uLiBUaGUgc2xpZGVyIHNldHMgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91ciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCghdmFsdWUpO30pO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMjAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGgpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXIpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0ucHVzaChyZXNldHRhYmxlU2xpZGVyKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGxldCByZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge3Jlc2V0QnV0dG9uID0gYnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGNvbG91ciBzdG9wXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGggPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGgpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJsYW5ndWFnZUJvcmRlckNvbG91clwiXS5wdXNoKHJlc2V0QnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiVW53cmFwIGNvZGVibG9jayBsaW5lc1wiKVxuXHRcdFx0LnNldERlc2MoXCJDaG9vc2Ugd2hldGhlciB0byB1bndyYXAgbGluZXMgaW4gcmVhZGluZyBtb2RlXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZVdyYXBMaW5lU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTsgIFxuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy53cmFwTGluZXNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlV3JhcExpbmVTZXR0aW5ncygpO1xuXHR9XG5cdGdlbmVyYXRlV3JhcExpbmVTZXR0aW5ncygpIHtcblx0XHR0aGlzLndyYXBMaW5lc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcylcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLndyYXBMaW5lc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiV3JhcCBMaW5lcyBvbiBDbGlja1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbiByZWFkaW5nIG1vZGUsIGhvbGRpbmcgY2xpY2sgb24gYSBjb2RlYmxvY2sgd2lsbCB3cmFwIHRoZSBsaW5lcyBmb3IgYmV0dGVyIHZpc2liaWxpdHkuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sud3JhcExpbmVzQWN0aXZlKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpOyBcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrR3V0dGVyU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoM1wiLCB7dGV4dDogXCJHdXR0ZXIgQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkVuYWJsZSBMaW5lIE51bWJlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZGlzYWJsZWQsIHRoZSBiZWxvdyBzZXR0aW5ncyBhcmUgZGlzYWJsZWQgdG9vLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tMaW5lTnVtYmVyU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTsgICAgICAgICBcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMubGluZU51bWJlcnNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tMaW5lTnVtYmVyU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJHdXR0ZXIgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImd1dHRlcl9iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkxpbmUgTnVtYmVyIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwibGluZV9udW1iZXJcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSGlnaGxpZ2h0IExpbmUgTnVtYmVyc1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHdpbGwgYWxzbyBoaWdobGlnaHQgdGhlIGxpbmUgbnVtYmVycy5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmd1dHRlci5oaWdobGlnaHQpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkluZGljYXRlIEN1cnJlbnQgTGluZSBOdW1iZXJcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgdGhlIGN1cnJlbnQgbGluZSBudW1iZXIgaW4gY29kZWJsb2NrcyB3aWxsIGJlIGluZGljYXRlZCB3aXRoIGEgc2VwYXJhdGUgY29sb3VyLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc3BhY2VkXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuYWN0aXZlTGluZSlcblx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmd1dHRlci5hY3RpdmVMaW5lID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSlcblx0XHRcdClcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImFjdGl2ZV9saW5lX251bWJlclwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5hY3RpdmVUZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0hlYWRlclNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiSGVhZGVyIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIEZvbnQgU2l6ZVwiKVxuXHRcdFx0LnNldERlc2MoXCJTZXQgdGhlIGZvbnQgc2l6ZSBmb3IgaGVhZGVyIGxhbmd1YWdlIHRhZ3MgYW5kIHRpdGxlcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cyg2LDMyLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHNpemVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgVGl0bGUgVGV4dCBTdHlsaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlN0eWxlIHRoZSBoZWFkZXIgdGl0bGUgdGV4dCB1c2luZyBib2xkIGFuZCBpdGFsaWMgdG9nZ2xlcywgYnkgc2V0dGluZyBhIGZvbnQgb3IgYnkgc2V0dGluZyBhIHRleHQgY29sb3VyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBib2xkIHRpdGxlIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEJvbGQpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBpdGFsaWMgdGl0bGUgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB7dGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJGb250XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRGb250KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Rm9udCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfdGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgZm9sZFBsYWNlaG9sZGVyVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkZvbGQgUGxhY2Vob2xkZXIgVGV4dFwiKVxuXHRcdFx0LnNldERlc2MoXCJUaXRsZSBwbGFjZWhvbGRlciB0ZXh0IGZvciBmb2xkZWQgY29kZSB3aGVuIG5vIHRpdGxlIHBhcmFtZXRlciBpcyBzZXQuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKEZPTERfUExBQ0VIT0xERVIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlcilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoZm9sZFBsYWNlaG9sZGVyVGltZW91dCk7XG5cdFx0XHRcdFx0Zm9sZFBsYWNlaG9sZGVyVGltZW91dCA9IHNldFRpbWVvdXQoKCk9PnRoaXMucmVyZW5kZXIoKSwxMDAwKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgU2VwYXJhdG9yIENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJDb2xvdXIgb2YgdGhlIGxpbmUgc2VwYXJhdGluZyB0aGUgY29kZWJsb2NrIGhlYWRlciBhbmQgdGhlIGNvZGVibG9jay5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfc2VwYXJhdG9yXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdFx0XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoNVwiLCB7dGV4dDogXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IEhlYWRlciBMYW5ndWFnZSBUYWdzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZSB3aGVuIHRvIHNob3cgbGFuZ3VhZ2UgdGFncyBpbiB0aGUgaGVhZGVyLiBcXFwiVGl0bGUgT25seVxcXCIgd2lsbCBvbmx5IHNob3cgbGFuZ3VhZ2UgdGFncyB3aGVuIHRoZSB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoRElTUExBWV9PUFRJT05TKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBEaXNwbGF5KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmhlYWRlclRhZ3NDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlSGVhZGVyVGFnU2V0dGluZ3MoKTtcblx0XHRcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImg1XCIsIHt0ZXh0OiBcIkhlYWRlciBMYW5ndWFnZSBJY29uIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IEhlYWRlciBMYW5ndWFnZSBJY29uc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmUgd2hlbiB0byBzaG93IGxhbmd1YWdlIGljb25zIHdoZXJlIGF2YWlsYWJsZS4gXFxcIlRpdGxlIE9ubHlcXFwiIHdpbGwgb25seSBzaG93IGxhbmd1YWdlIHRhZ3Mgd2hlbiB0aGUgdGl0bGUgcGFyYW1ldGVyIGlzIHNldC5cIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKERJU1BMQVlfT1BUSU9OUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWU6IERpc3BsYXkpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUhlYWRlckljb25TZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVIZWFkZXJJY29uU2V0dGluZ3MoKTtcblx0fVxuXHRnZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCkge1xuXHRcdHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwibm9uZVwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIExhbmd1YWdlIFRhZyBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmhlYWRlclRhZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfbGFuZ3VhZ2VfdGFnX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIFRleHQgU3R5bGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJTdHlsZSB0aGUgaGVhZGVyIGxhbmd1YWdlIHRhZyB0ZXh0IHVzaW5nIGJvbGQgYW5kIGl0YWxpYyB0b2dnbGVzLCBieSBzZXR0aW5nIGEgZm9udCBvciBieSBzZXR0aW5nIGEgdGV4dCBjb2xvdXIuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgYm9sZCBsYW5ndWFnZSB0YWcgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZClcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGl0YWxpYyBsYW5ndWFnZSB0YWcgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRJdGFsaWMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJGb250XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250KVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImhlYWRlcl9sYW5ndWFnZV90YWdfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0fVxuXHRnZW5lcmF0ZUhlYWRlckljb25TZXR0aW5ncygpIHtcblx0XHR0aGlzLmhlYWRlckljb25zQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IFwibm9uZVwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkxhbmd1YWdlIEljb25zIENvbG91cmVkXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGRpc2FibGVkLCBsYW5ndWFnZSBpY29ucyB3aWxsIGJlIGJsYWNrIGFuZCB3aGl0ZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheUNvbG91cilcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXlDb2xvdXIgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgSWNvbiBTaXplXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlNldCB0aGUgc2l6ZSBvZiB0aGUgZGlzcGxheWVkIGxhbmd1YWdlIGljb25zLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEwLDQwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSlcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4gYnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgaWNvbiBzaXplXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0hpZ2hsaWdodFNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiSGlnaGxpZ2h0aW5nIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQWN0aXZlIExpbmUgSGlnaGxpZ2h0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGhpZ2hsaWdodHMgdGhlIGFjdGl2ZSBsaW5lIGluc2lkZSBjb2RlYmxvY2tzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc3BhY2VkXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB7cmV0dXJuIHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUgPSB2YWx1ZTsgXG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2FjdGl2ZV9saW5lX2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lLFxuXHRcdFx0KTt9KTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIl0ucHVzaCh0aGlzLnBpY2tyc1tcImNvZGVibG9ja19hY3RpdmVfbGluZV9oaWdobGlnaHRcIl0ucmVzZXRCdXR0b24pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEZWZhdWx0IEhpZ2hsaWdodCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBieSB0aGUgJ2hsJyBwYXJhbWV0ZXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiZGVmYXVsdF9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmRlZmF1bHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgbmV3SGlnaGxpZ2h0VGV4dDogVGV4dENvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIEFsdGVybmF0aXZlIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgYSBuZXcgYWx0ZXJuYXRpdmUgaGlnaGxpZ2h0IG5hbWUuIFRoZSBjb2xvdXIgY2FuIGJlIG1vZGlmaWVkIGFmdGVyIGl0IGlzIGFkZGVkLlwiKVxuXHRcdFx0LmFkZFRleHQodmFsdWUgPT4ge25ld0hpZ2hsaWdodFRleHQgPSB2YWx1ZVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJlLmcuIGVycm9yLCB3YXJuXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRCdXR0b25UZXh0KFwiQWRkXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkgPT09IFwiXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiUGxlYXNlIGVudGVyIGEgY29sb3VyIG5hbWUuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICghL15bXlxcZF1cXHcqJC8udGVzdCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQpKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgXCIke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodH1cIiBpcyBub3QgYSB2YWxpZCBjb2xvdXIgbmFtZS5gKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0LnRyaW0oKS50b0xvd2VyQ2FzZSgpID09PSBcImhsXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGhpZ2hsaWdodCBwYXJhbWV0ZXIuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmIChQQVJBTUVURVJTLmluY2x1ZGVzKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkudG9Mb3dlckNhc2UoKSkpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IHVzZSBvdGhlciBkZWZhdWx0IHBhcmFtZXRlcnMuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgaW4gdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBBIGhpZ2hsaWdodCB3aXRoIHRoZSBuYW1lIFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIgYWxyZWFkeSBleGlzdHMuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBGdXR1cmU6IEZvY3VzIG9uIGV4aXN0aW5nIGhpZ2hsaWdodGVyIC0gYHJlbmRlck1hdGNoZXNgXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBuZXdDb2xvdXIgPSBnZXRSYW5kb21Db2xvdXIoKTtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5kYXJrLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgQWRkZWQgaGlnaGxpZ2h0IFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0ID0gXCJcIjtcblx0XHRcdFx0XHRcdG5ld0hpZ2hsaWdodFRleHQuc2V0VmFsdWUoXCJcIik7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0dGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJHcmFkaWVudCBIaWdobGlnaHRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyBmYWRlIGF3YXkgdG8gdGhlIHJpZ2h0LiBUaGUgc2xpZGVyIHNldHMgdGhlIGdyYWRpZW50IGNvbG91ciBzdG9wIGFzIGEgcGVyY2VudGFnZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSgrdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3Auc2xpY2UoMCwtMSkpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3AgPSBgJHt2YWx1ZX0lYDtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY29sb3VyIHN0b3BcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSgrdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3Auc2xpY2UoMCwtMSkpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5wdXNoKHJlc2V0QnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0xhbmd1YWdlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bGV0IGV4Y2x1ZGVUaW1lb3V0OiBOb2RlSlMuVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pnt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRXhjbHVkZSBMYW5ndWFnZXNcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGxhbmd1YWdlcyBpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IHdoaWNoIHRoZSBwbHVnaW4gc2hvdWxkIG5vdCBkZWNvcmF0ZS4gWW91IGNhbiB1c2UgYSB3aWxkY2FyZCAoKikgZWl0aGVyIGF0IHRoZSBiZWdpbm5pbmcsIG9yIGF0IHRoZSBlbmQuIEZvciBleGFtcGxlOiBhZC0qIHdpbGwgZXhjbHVkZSBjb2RlYmxvY2tzIHdoZXJlIHRoZSBsYW5ndWFnZSBzdGFydHMgd2l0aCBhZC0gZS5nLjogYWQtaW5mbywgYWQtZXJyb3IgZXRjLlwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihgZS5nLiAke0VYQ0xVREVEX0xBTkdVQUdFU30gZXRjLmApXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoZXhjbHVkZVRpbWVvdXQpO1xuXHRcdFx0XHRcdGV4Y2x1ZGVUaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+dGhpcy5yZXJlbmRlcigpLDEwMDApO1xuXHRcdFx0XHR9KSk7XG5cdFx0bGV0IHdoaXRlbGlzdFRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJXaGl0ZWxpc3RlZCBQcm9jZXNzZWQgQ29kZWJsb2Nrc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgbGFuZ3VhZ2VzIGluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgd2hpY2ggdGhlIHBsdWdpbiBzaG91bGQgc3R5bGUgZGVzcGl0ZSBiZWluZyBwcm9jZXNzZWQgYnkgYW5vdGhlciBwbHVnaW4uIFlvdSBjYW4gdXNlIGEgd2lsZGNhcmQgKCopIGVpdGhlciBhdCB0aGUgYmVnaW5uaW5nLCBvciBhdCB0aGUgZW5kLiBGb3IgZXhhbXBsZTogYWQtKiB3aWxsIGV4Y2x1ZGUgY29kZWJsb2NrcyB3aGVyZSB0aGUgbGFuZ3VhZ2Ugc3RhcnRzIHdpdGggYWQtIGUuZy46IGFkLWluZm8sIGFkLWVycm9yIGV0Yy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoYGUuZy4gJHtXSElURUxJU1RfQ09ERUJMT0NLU30gZXRjLmApXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHdoaXRlbGlzdFRpbWVvdXQpO1xuXHRcdFx0XHRcdHdoaXRlbGlzdFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnJlcmVuZGVyKCksMTAwMCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiUmVkaXJlY3QgTGFuZ3VhZ2UgU2V0dGluZ3NcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlIHRoaXMgdGV4dGJveCB0byByZWRpcmVjdCBzcGVjaWZpYyBsYW5ndWFnZSBjb2xvdXJzIGFuZCBpY29ucyBhcyBhIEpTT04gd2l0aCBsYW5ndWFnZSBuYW1lcyBhcyBrZXlzIGFuZCBlaXRoZXIgYSBjb2xvdXIga2V5LCBhbiBpY29uIGtleSBvciBib3RoIGFzIHRoZSB2YWx1ZSBmb3IgYSBnaXZlbiBsYW5ndWFnZS4gQ29sb3VycyBzaG91bGQgYmUgcGFzc2VkIGFzIENTUyBjb2xvdXJzIGFuZCBpY29ucyBzaG91bGQgYmUgcGFzc2VkIGFzIGEgc3RyaW5nIG9mIHRoZSBpbnNpZGUgb2YgYW4gc3ZnIGVsZW1lbnQuIFRoaXMgc2V0dGluZyBpcyB0aGVtZSBpbmRlcGVuZGVudC5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhXCIpXG5cdFx0XHQuYWRkVGV4dEFyZWEodGV4dEFyZWEgPT4gdGV4dEFyZWFcblx0XHRcdFx0LnNldFZhbHVlKEpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzKT09PVwie31cIj9cIlwiOkpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzLG51bGwsNCkpXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihKU09OLnN0cmluZ2lmeSh7dG9tbDoge2NvbG91cjogXCIjMDEyMzQ1XCIsIGljb246IExBTkdVQUdFU1tcIkFQTFwiXS5jb2xvdXJ9fSxudWxsLDQpKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKT0+e1xuXHRcdFx0XHRcdGlmICh2YWx1ZSA9PT0gXCJcIikge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSB7fTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMucmVkaXJlY3RMYW5ndWFnZXMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiSW52YWxpZCBKU09OXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBSZS1yZW5kZXIgKFRlc3QpXG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIklubGluZSBDb2RlIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTeW50YXggSGlnaGxpZ2h0IElubGluZSBDb2RlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGluIHJlYWRpbmcgbW9kZSwgaW5saW5lIGNvZGUgd2lsbCBiZSBzeW50YXggaGlnaGxpZ2h0ZWQgYmFzZWQgb24gYSBsYW5ndWFnZSBzZXQgd2l0aCBge2xhbmd1YWdlfSBoaWdobGlnaHRlZF9pbmxpbmVfY29kZWAuIFNlZSB0aGUgUkVBRE1FIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7ICAgIFxuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlN0eWxlIElubGluZSBDb2RlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGlubGluZSBjb2RlIHdpbGwgYmUgc3R5bGVkLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN0eWxlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVJbmxpbmVDb2RlU3R5bGVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUlubGluZUNvZGVTdHlsZVNldHRpbmdzKCk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUaXRsZSBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVGhlIHRleHQgY29sb3VyIG9mIGlubGluZSBjb2RlIHRpdGxlcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwidGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50aXRsZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRpdGxlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUaXRsZSBGb250IFdlaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBib2xkIGlubGluZSBjb2RlIHRpdGxlcyBhcHBlYXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMSw5LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0KVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGZvbnQgd2VpZ2h0XCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUlubGluZUNvZGVTdHlsZVNldHRpbmdzKCkge1xuXHRcdHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSlcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV9iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGV4dCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaW5saW5lX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBBY3RpdmUgVGV4dCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVGhlIHRleHQgY29sb3VyIHdoZW4gZWRpdGluZyBpbmxpbmUgY29kZS5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaW5saW5lX2FjdGl2ZV90ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgRm9udCBXZWlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgYm9sZCBpbmxpbmUgY29kZSBhcHBlYXJzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEsOSwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGZvbnQgd2VpZ2h0XCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0O1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEN1cnZhdHVyZVwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyByb3VuZGVkIGlubGluZSBjb2RlIGFwcGVhciBpbiBwaXhlbHMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMiwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSlcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjdXJ2YXR1cmVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVmVydGljYWwgUGFkZGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIHZlcnRpY2FsIGlubmVyIHBhZGRpbmcgaW4gcGl4ZWxzIGlubGluZSBjb2RlIGhhcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IHZlcnRpY2FsIHBhZGRpbmdcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgSG9yaXpvbnRhbCBQYWRkaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IG11Y2ggaG9yaXpvbnRhbCBpbm5lciBwYWRkaW5nIGluIHBpeGVscyBpbmxpbmUgY29kZSBoYXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgaG9yaXpvbnRhbCBwYWRkaW5nXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWw7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEhvcml6b250YWwgTWFyZ2luXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IG11Y2ggaG9yaXpvbnRhbCBvdXRlciBtYXJnaW4gaXMgYWRkZWQgdG8gdGhlIGlubGluZSBjb2RlIGluIHBpeGVscy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDgsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBob3Jpem9udGFsIG1hcmdpblwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVBZHZhbmNlZEhlYWRpbmcoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29uc3QgYWR2YW5jZWRTZXR0aW5nc0hlYWRpbmcgPSBjb250YWluZXJFbC5jcmVhdGVFbChcImgyXCIsIHt0ZXh0OiBcIkFkdmFuY2VkIFNldHRpbmdzXCIsIGNsczogYGFkdmFuY2VkLXNldHRpbmdzLWhlYWRlciR7dGhpcy5oaWRlQWR2YW5jZWQ/XCIgaGVhZGVyLWZvbGRlZFwiOlwiXCJ9YH0pO1xuXHRcdGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCgpPT57XG5cdFx0XHR0aGlzLmhpZGVBZHZhbmNlZCA9ICF0aGlzLmhpZGVBZHZhbmNlZDtcblx0XHRcdGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nLmNsYXNzTGlzdC50b2dnbGUoXCJoZWFkZXItZm9sZGVkXCIsdGhpcy5oaWRlQWR2YW5jZWQpO1xuXHRcdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKTtcblx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMuaGlkZUFkdmFuY2VkKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuZ2VuZXJhdGVJbnRlcmZhY2VTZXR0aW5ncyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiRWRpdG9yIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBvdXRzaWRlIGNvZGVibG9ja3MuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zcGFjZWRcIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBlZGl0b3IgYWN0aXZlIGxpbmUgaGlnaGxpZ2h0aW5nXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZWRpdG9yQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImVkaXRvcl9hY3RpdmVfbGluZV9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSxcblx0XHRcdCk7fSk7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJlZGl0b3JBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLnB1c2godGhpcy5waWNrcnNbXCJlZGl0b3JfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIlJlc2V0IGluYnVpbHQgdGhlbWVzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoaXMgd2lsbCByZXR1cm4gYWxsIGluYnVpbHQgdGhlbWVzIHRvIHRoZSBwbHVnaW4gZGVmYXVsdHNcIilcblx0XHRcdC5hZGRCdXR0b24oYnV0dG9uID0+IGJ1dHRvblxuXHRcdFx0XHQuc2V0QnV0dG9uVGV4dChcIlJlc2V0XCIpXG5cdFx0XHRcdC5vbkNsaWNrKCgpPT57XG5cdFx0XHRcdFx0T2JqZWN0LmVudHJpZXMoSU5CVUlMVF9USEVNRVMpLmZvckVhY2goKFt0aGVtZU5hbWUsdGhlbWVdOiBbc3RyaW5nLENvZGVTdHlsZXJUaGVtZV0pID0+IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGVtZU5hbWVdID0gc3RydWN0dXJlZENsb25lKHRoZW1lKSk7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgaW4gSU5CVUlMVF9USEVNRVMpXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlSW50ZXJmYWNlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBmb3IgVUkgYnV0dG9ucyBsaWtlIHRoZSBjb3B5IGNvZGUgYnV0dG9uLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImRlZmF1bHRfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uYWR2YW5jZWQuYnV0dG9uQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBBY3RpdmUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbG91ciBidXR0b25zIHVzZSB3aGVuIGFjdGl2YXRlZC5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJkZWZhdWx0X2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHR9XG5cdGdlbmVyYXRlUGx1Z2luQ29tcGF0aWJpbGl0eVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZVNwYW4oXCJOZWVkcyBjb21wbGV0aW5nXCIpOyAvL1RPRE8gKEBtYXl1cmFua3YpIENvbXBsZXRlXG5cdFx0Ly8gRXhlY3V0ZSBDb2RlIFNldHRpbmdzXG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkV4YW1wbGUgQ29kZWJsb2NrIFBhcmFtZXRlciBTdHJpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiUGFyYW1ldGVycyBhbmQgbGFuZ3VhZ2Ugd2hpY2ggd291bGQgZm9sbG93IGNvZGVibG9jayBkZWxpbWl0ZXIuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtd2lkZVwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0NPREVCTE9DS19QQVJBTUVURVJTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVycyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGFtcGxlIENvZGVibG9jayBQYXJhbWV0ZXIgU3RyaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbnRlbnQgZm9yIGV4YW1wbGUgY29kZWJsb2NrLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LWFyZWFcIilcblx0XHRcdC5hZGRUZXh0QXJlYSh0ZXh0QXJlYSA9PiB0ZXh0QXJlYVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQpXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0NPREVCTE9DS19DT05URU5UKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKT0+e1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrKCkge1xuXHRcdHRoaXMuZXhhbXBsZUNvZGVibG9ja0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGNvbnN0IGNvZGVibG9ja1N0cmluZyA9IFwiYGBgYGBgYFwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tQYXJhbWV0ZXJzK1wiXFxuXCIrdGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQrXCJcXG5gYGBgYGBgXCI7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIodGhpcy5wbHVnaW4uYXBwLGNvZGVibG9ja1N0cmluZyx0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIsU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgrY29kZWJsb2NrU3RyaW5nLHRoaXMucGx1Z2luKTtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIucXVlcnlTZWxlY3RvcihcInByZSA+IGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uXCIpPy5jbGFzc0xpc3Q/LmFkZChcImNvZGUtc3R5bGVyLXNldHRpbmdzLWJ1dHRvblwiKTtcblx0fVxuXHRnZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEV4YW1wbGVcIilcblx0XHRcdC5zZXREZXNjKFwiVGV4dCB0byByZW5kZXIgYXMgZXhhbXBsZSBpbnNpZGUgY29kZSBkZWxpbWl0ZXJzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LXdpZGVcIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9JTkxJTkVfQ09ERSlcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUlubGluZUNvZGUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpIHtcblx0XHR0aGlzLmV4YW1wbGVJbmxpbmVDb2RlQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIodGhpcy5wbHVnaW4uYXBwLFwiYFwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlK1wiYFwiLHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIsU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsdGhpcy5wbHVnaW4pO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIucXVlcnlTZWxlY3RvcihcImNvZGVcIik/LmNsYXNzTGlzdD8uYWRkKFwiY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGVcIik7XG5cdH1cblx0Z2VuZXJhdGVEb25hdGlvbkZvb3Rlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdGNvbnN0IGRvbmF0aW9uRGl2ID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJkaXZcIiwgeyBjbHM6IFwiY29kZS1zdHlsZXItZG9uYXRpb25cIiwgfSk7ICAgIFxuXHRcdGNvbnN0IGRvbmF0aW9uVGV4dCA9IGNyZWF0ZUVsKFwicFwiLCB7dGV4dDogXCJJZiB5b3UgbGlrZSB0aGlzIHBsdWdpbiwgYW5kIHdvdWxkIGxpa2UgdG8gaGVscCBzdXBwb3J0IGNvbnRpbnVlZCBkZXZlbG9wbWVudCwgdXNlIHRoZSBidXR0b24gYmVsb3chXCJ9KTtcblx0XHRkb25hdGlvbkRpdi5hcHBlbmRDaGlsZChkb25hdGlvblRleHQpO1xuXHRcdGNvbnN0IGRvbmF0aW9uQnV0dG9uID0gY3JlYXRlRWwoXCJhXCIsIHsgaHJlZjogXCJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL21heXVyYW5rdjJcIn0pO1xuXHRcdGRvbmF0aW9uQnV0dG9uLmlubmVySFRNTCA9IFwiPGltZyBzcmM9XFxcImh0dHBzOi8vaW1nLmJ1eW1lYWNvZmZlZS5jb20vYnV0dG9uLWFwaS8/dGV4dD1CdXkgbWUgYSBjb2ZmZWUmZW1vamk9JnNsdWc9bWF5dXJhbmt2MiZidXR0b25fY29sb3VyPWUzZTdlZmEwJmZvbnRfY29sb3VyPTI2MjYyNiZmb250X2ZhbWlseT1JbnRlciZvdXRsaW5lX2NvbG91cj0yNjI2MjYmY29mZmVlX2NvbG91cj1hMDUyMmRcXFwiIGhlaWdodD1cXFwiNDJweFxcXCI+XCI7XG5cdFx0ZG9uYXRpb25EaXYuYXBwZW5kQ2hpbGQoZG9uYXRpb25CdXR0b24pO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNldHRpbmdzXG5cdGNyZWF0ZVBpY2tyKHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50LCBzZXR0aW5nOiBTZXR0aW5nLCBpZDogc3RyaW5nLCBnZXRSZWxldmFudFRoZW1lQ29sb3VyOiAocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpPT5Db2xvdXIsIHNhdmVSZWxldmFudFRoZW1lQ29sb3VyOiAocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cik9PnZvaWQsIGRpc2FibGVkPzogKCk9PmJvb2xlYW4pIHtcblx0XHRjb25zdCBwaWNrcjogUGlja3JSZXNldHRhYmxlID0gbmV3IFBpY2tyUmVzZXR0YWJsZShwbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxnZXRSZWxldmFudFRoZW1lQ29sb3VyLHNhdmVSZWxldmFudFRoZW1lQ29sb3VyKTtcblx0XHRwaWNrclxuXHRcdFx0Lm9uKFwic2hvd1wiLCAoY29sb3VyOiBQaWNrci5IU1ZhQ29sb3IsIGluc3RhbmNlOiBQaWNrcikgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIGRpc2FibGVkICE9PSBcInVuZGVmaW5lZFwiICYmIGRpc2FibGVkKCkpXG5cdFx0XHRcdFx0aW5zdGFuY2UuaGlkZSgpO1xuXHRcdFx0XHQvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IChpbnN0YW5jZS5nZXRSb290KCkgYXMgYW55KS5pbnRlcmFjdGlvbi5yZXN1bHQuc2VsZWN0KCkpKVxuXHRcdFx0fSlcblx0XHRcdC5vbihcInNhdmVcIiwgKGNvbG91cjogUGlja3IuSFNWYUNvbG9yLCBpbnN0YW5jZTogUGlja3JSZXNldHRhYmxlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNhdmVkQ29sb3VyOiBDb2xvdXIgPSBgIyR7Y29sb3VyLnRvSEVYQSgpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDEpfWA7XG5cdFx0XHRcdGluc3RhbmNlLmhpZGUoKTtcblx0XHRcdFx0aW5zdGFuY2UuYWRkU3dhdGNoKHNhdmVkQ29sb3VyKTtcblx0XHRcdFx0aW5zdGFuY2Uuc2F2ZUNvbG91cihzYXZlZENvbG91cik7XG5cdFx0XHR9KVxuXHRcdFx0Lm9uKFwiY2FuY2VsXCIsIChpbnN0YW5jZTogUGlja3JSZXNldHRhYmxlKSA9PiB7aW5zdGFuY2UuaGlkZSgpO30pO1xuXHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge3BpY2tyLnJlc2V0QnV0dG9uID0gYnV0dG9uXG5cdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHQuc2V0RGlzYWJsZWQodHlwZW9mIGRpc2FibGVkICE9PSBcInVuZGVmaW5lZFwiICYmIGRpc2FibGVkKCkpXG5cdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXJcIilcblx0XHRcdC5vbkNsaWNrKCgpID0+IHtwaWNrci5yZXNldENvbG91cigpO30pO1xuXHRcdH0pO1xuXHRcdHRoaXMucGlja3JzW2lkXT1waWNrcjtcblx0fVxuXHRcblx0Ly8gVXBkYXRlIFNldHRpbmdzXG5cdHNhdmVTZXR0aW5ncyhyZXJlbmRlcjogYm9vbGVhbj1mYWxzZSkge1xuXHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRpZiAocmVyZW5kZXIpXG5cdFx0XHR0aGlzLnJlcmVuZGVyKCk7XG5cdH1cblx0cmVyZW5kZXIoKSB7XG5cdFx0dGhpcy5wbHVnaW4ucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiaW5saW5lXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0fVxuXHR1cGRhdGVEcm9wZG93bihkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsIHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpIHtcblx0XHRkcm9wZG93bi5zZWxlY3RFbC5lbXB0eSgpO1xuXHRcdE9iamVjdC5rZXlzKHNldHRpbmdzLnRoZW1lcykuZm9yRWFjaCgodGhlbWVfbmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRkcm9wZG93bi5hZGRPcHRpb24odGhlbWVfbmFtZSwgdGhlbWVfbmFtZSk7ICAgICAgICAgICAgXG5cdFx0fSk7XG5cdFx0ZHJvcGRvd24uc2V0VmFsdWUoc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSk7XG5cdH1cblx0dXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgIT09IFwiY29kZWJsb2NrXCIgfHwgdGhpcy5jb2RlYmxvY2tQYWdlICE9PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLmZvckVhY2goKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSkgPT4ge1xuXHRcdFx0bmV3IFNldHRpbmcodGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIpXG5cdFx0XHRcdC5zZXROYW1lKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSlcblx0XHRcdFx0LnNldERlc2MoYFRvIGhpZ2hsaWdodCBsaW5lcyB3aXRoIHRoaXMgaGlnaGxpZ2h0LCB1c2UgdGhlICR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfSBwYXJhbWV0ZXIuYClcblx0XHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XHRcdGBhbHRlcm5hdGl2ZV9oaWdobGlnaHRfJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9YCxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lIGluIHJlbGV2YW50VGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzP3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV06dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdFx0LnNldEljb24oXCJ0cmFzaFwiKVxuXHRcdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJEZWxldGUgaGlnaGxpZ2h0XCIpXG5cdFx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBSZW1vdmVkIGhpZ2hsaWdodCBcIiR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXHRyZWRpcmVjdExhbmd1YWdlcygpIHtcblx0XHRPYmplY3QuZW50cmllcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcykuZm9yRWFjaCgoW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VTZXR0aW5nc106IFtzdHJpbmcsIHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9XSk9Pntcblx0XHRcdGlmIChcImljb25cIiBpbiBsYW5ndWFnZVNldHRpbmdzKSB7XG5cdFx0XHRcdGlmIChMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdIGluIHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zW0xBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV1dKTtcblx0XHRcdFx0dGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29uc1tMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdXSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtsYW5ndWFnZVNldHRpbmdzLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG5cbi8vIEV4dGVuZCBQaWNrciBDbGFzc1xuY2xhc3MgUGlja3JSZXNldHRhYmxlIGV4dGVuZHMgUGlja3Ige1xuXHRzYXZlQ29sb3VyOiAoc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZDtcblx0cmVzZXRDb2xvdXI6ICgpPT52b2lkO1xuXHRnZXRDdXJyZW50Q29sb3VyOiAoYWNjZXNzVGhlbWU6IGJvb2xlYW4pPT52b2lkO1xuXHRyZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cblx0Y29uc3RydWN0b3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgdG9vbHRpcD86IHN0cmluZykge1xuXHRcdGNvbnN0IHNldHRpbmdzOiBQaWNrci5PcHRpb25zID0ge1xuXHRcdFx0ZWw6IHNldHRpbmcuY29udHJvbEVsLmNyZWF0ZURpdih7Y2xzOiBcInBpY2tlclwifSksXG5cdFx0XHR0aGVtZTogXCJuYW5vXCIsXG5cdFx0XHRkZWZhdWx0OiBnZXRDb2xvdXIoZ2V0UmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpKSxcblx0XHRcdHBvc2l0aW9uOiBcImxlZnQtbWlkZGxlXCIsXG5cdFx0XHRsb2NrT3BhY2l0eTogZmFsc2UsXG5cdFx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHRcdHByZXZpZXc6IHRydWUsXG5cdFx0XHRcdGh1ZTogdHJ1ZSxcblx0XHRcdFx0b3BhY2l0eTogdHJ1ZSxcblx0XHRcdFx0aW50ZXJhY3Rpb246IHtcblx0XHRcdFx0XHRoZXg6IHRydWUsXG5cdFx0XHRcdFx0cmdiYTogdHJ1ZSxcblx0XHRcdFx0XHRoc2xhOiBmYWxzZSxcblx0XHRcdFx0XHRpbnB1dDogdHJ1ZSxcblx0XHRcdFx0XHRjYW5jZWw6IHRydWUsXG5cdFx0XHRcdFx0c2F2ZTogdHJ1ZSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0XHRpMThuOiB7XG5cdFx0XHRcdFwidWk6ZGlhbG9nXCI6IFwiQ29sb3VyIHBpY2tlciBkaWFsb2dcIixcblx0XHRcdFx0XCJidG46dG9nZ2xlXCI6ICh0eXBlb2YgdG9vbHRpcCAhPT0gXCJ1bmRlZmluZWRcIik/dG9vbHRpcDpcIlNlbGVjdCBjb2xvdXJcIixcblx0XHRcdFx0XCJidG46c3dhdGNoXCI6IFwiQ29sb3VyIHN3YXRjaFwiLFxuXHRcdFx0XHRcImJ0bjpsYXN0LWNvbG9yXCI6IFwiVXNlIHByZXZpb3VzIGNvbG91clwiLFxuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYgKGNvbnRhaW5lckVsLnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG5cdFx0XHRzZXR0aW5ncy5jb250YWluZXIgPSBjb250YWluZXJFbC5wYXJlbnRFbGVtZW50O1xuXHRcdHN1cGVyKHNldHRpbmdzKTtcblx0XHR0aGlzLnNhdmVDb2xvdXIgPSAoc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7XG5cdFx0XHRzYXZlUmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMsc2F2ZUNvbG91cik7XG5cdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdH07XG5cdFx0dGhpcy5yZXNldENvbG91ciA9ICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc2V0Q29sb3VyOiBDb2xvdXIgPSBnZXRSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy50aGVtZXNbcGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLmNvbG91cnMpO1xuXHRcdFx0dGhpcy5zZXRDb2xvcihnZXRDb2xvdXIocmVzZXRDb2xvdXIpKTtcblx0XHRcdHRoaXMuc2F2ZUNvbG91cihyZXNldENvbG91cik7XG5cdFx0fTtcblx0fVxufVxuXG4vLyBDb2xvdXIgTWFuYWdlbWVudFxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3VyKCk6IENvbG91ciB7XG5cdGNvbnN0IGxldHRlcnMgPSBcIjAxMjM0NTY3ODlBQkNERUZcIjtcblx0bGV0IGNvbG91ciA9IFwiXCI7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKVxuXHRcdGNvbG91ciArPSBsZXR0ZXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KV07XG5cdHJldHVybiBgIyR7Y29sb3VyfUZGYDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvdXIodGhlbWVDb2xvdXI6IENvbG91cik6IENvbG91ciB7XG5cdHJldHVybiBpc0Nzcyh0aGVtZUNvbG91cik/Z2V0Q3NzVmFyaWFibGUodGhlbWVDb2xvdXIpOnRoZW1lQ29sb3VyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3NzKHBvc3NpYmxlQ3NzOiBzdHJpbmcpOiBwb3NzaWJsZUNzcyBpcyBDU1Mge1xuXHRyZXR1cm4gcG9zc2libGVDc3Muc3RhcnRzV2l0aChcIi0tXCIpICYmIHR5cGVvZiBwb3NzaWJsZUNzcyA9PT0gXCJzdHJpbmdcIjtcbn1cbmZ1bmN0aW9uIGdldENzc1ZhcmlhYmxlKGNzc1ZhcmlhYmxlOiBDU1MpOiBIRVgge1xuXHRjb25zdCB2YXJpYWJsZVZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShjc3NWYXJpYWJsZSkudHJpbSgpO1xuXHRpZiAodHlwZW9mIHZhcmlhYmxlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFyaWFibGVWYWx1ZS5zdGFydHNXaXRoKFwiI1wiKSlcblx0XHRyZXR1cm4gYCMke3ZhcmlhYmxlVmFsdWUudHJpbSgpLnN1YnN0cmluZygxKX1gO1xuXHRlbHNlIGlmICh2YXJpYWJsZVZhbHVlLnN0YXJ0c1dpdGgoXCJyZ2JcIikpXG5cdFx0cmV0dXJuIGAjJHtDb2xvclRyYW5zbGF0b3IudG9IRVhBKHZhcmlhYmxlVmFsdWUucmVwbGFjZSgvY2FsY1xcKCguKj8pXFwpL2csKG1hdGNoLGNhcHR1cmUpPT5jYWxjKGNhcHR1cmUpKSkuc3Vic3RyaW5nKDEpfWA7XG5cdGVsc2UgaWYgKHZhcmlhYmxlVmFsdWUuc3RhcnRzV2l0aChcImhzbFwiKSlcblx0XHRyZXR1cm4gYCMke0NvbG9yVHJhbnNsYXRvci50b0hFWEEodmFyaWFibGVWYWx1ZS5yZXBsYWNlKC9jYWxjXFwoKC4qPylcXCkvZywobWF0Y2gsY2FwdHVyZSk9PmNhbGMoY2FwdHVyZSkpKS5zdWJzdHJpbmcoMSl9YDtcblx0ZWxzZVxuXHRcdGNvbnNvbGUud2FybihgV2FybmluZzogQ291bGRuJ3QgZGV0ZXJtaW5lIGNvbG91ciBmb3JtYXQgLSAke3ZhcmlhYmxlVmFsdWV9YCk7XG5cdHJldHVybiBgIyR7Q29sb3JUcmFuc2xhdG9yLnRvSEVYQSh2YXJpYWJsZVZhbHVlKS5zdWJzdHJpbmcoMSl9YDtcbn1cbmZ1bmN0aW9uIGNhbGMoY2FsY1N0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgc3BsaXRTdHJpbmcgPSBjYWxjU3RyaW5nLnRyaW0oKS5yZXBsYWNlKC8oXFxkKiklL2csXCIkMVwiKS5zcGxpdChcIiBcIik7XG5cdGNvbnN0IG9wZXJhdG9yczoge1trZXk6IHN0cmluZ106IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpID0+IG51bWJlcn0gPSB7XG5cdFx0XCIrXCI6IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xK251bTIsMCksXG5cdFx0XCItXCI6IChudW0xOm51bWJlciAsbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xLW51bTIsMCksXG5cdH07XG5cdGlmIChzcGxpdFN0cmluZy5sZW5ndGggPT09IDMpXG5cdFx0aWYgKHNwbGl0U3RyaW5nWzFdIGluIG9wZXJhdG9ycylcblx0XHRcdHJldHVybiBgJHtvcGVyYXRvcnNbc3BsaXRTdHJpbmdbMV1dKHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMF0pLHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMl0pKX0lYDtcblx0XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IHBhcnNlIGNhbGMgc3RyaW5nXCIpO1xuXHRyZXR1cm4gY2FsY1N0cmluZztcbn1cblxuLy8gRmV0Y2ggU2V0dGluZ3NcbmZ1bmN0aW9uIGdldEN1cnJlbnRNb2RlKCkge1xuXHRjb25zdCBib2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIik7XG5cdGlmIChib2R5ICE9PSBudWxsKXtcblx0XHRpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1saWdodFwiKSlcblx0XHRcdHJldHVybiBcImxpZ2h0XCI7XG5cdFx0ZWxzZSBpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1kYXJrXCIpKVxuXHRcdFx0cmV0dXJuIFwiZGFya1wiO1xuXHR9XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IGdldCBjdXJyZW50IHRoZW1lXCIpO1xuXHRyZXR1cm4gXCJsaWdodFwiO1xufVxuIiwgInZhciB0PWZ1bmN0aW9uKCl7cmV0dXJuIHQ9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZSh0LGUsbil7aWYobnx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciByLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspIXImJmkgaW4gZXx8KHJ8fChyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMCxpKSkscltpXT1lW2ldKTtyZXR1cm4gdC5jb25jYXQocnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfXZhciBuLHIsaSxvOyFmdW5jdGlvbih0KXt0LkhFWD1cIkhFWFwiLHQuUkdCPVwiUkdCXCIsdC5IU0w9XCJIU0xcIix0LkNNWUs9XCJDTVlLXCJ9KG58fChuPXt9KSksZnVuY3Rpb24odCl7dC5BTkFMT0dPVVM9XCJBTkFMT0dPVVNcIix0LkNPTVBMRU1FTlRBUlk9XCJDT01QTEVNRU5UQVJZXCIsdC5TUExJVF9DT01QTEVNRU5UQVJZPVwiU1BMSVRfQ09NUExFTUVOVEFSWVwiLHQuVFJJQURJQz1cIlRSSUFESUNcIix0LlRFVFJBRElDPVwiVEVUUkFESUNcIix0LlNRVUFSRT1cIlNRVUFSRVwifShyfHwocj17fSkpLGZ1bmN0aW9uKHQpe3QuQURESVRJVkU9XCJBRERJVElWRVwiLHQuU1VCVFJBQ1RJVkU9XCJTVUJUUkFDVElWRVwifShpfHwoaT17fSkpLGZ1bmN0aW9uKHQpe3QuYmxhY2s9XCIjMDAwMDAwXCIsdC5zaWx2ZXI9XCIjQzBDMEMwXCIsdC5ncmF5PVwiIzgwODA4MFwiLHQud2hpdGU9XCIjRkZGRkZGXCIsdC5tYXJvb249XCIjODAwMDAwXCIsdC5yZWQ9XCIjRkYwMDAwXCIsdC5wdXJwbGU9XCIjODAwMDgwXCIsdC5mdWNoc2lhPVwiI0ZGMDBGRlwiLHQuZ3JlZW49XCIjMDA4MDAwXCIsdC5saW1lPVwiIzAwRkYwMFwiLHQub2xpdmU9XCIjODA4MDAwXCIsdC55ZWxsb3c9XCIjRkZGRjAwXCIsdC5uYXZ5PVwiIzAwMDA4MFwiLHQuYmx1ZT1cIiMwMDAwRkZcIix0LnRlYWw9XCIjMDA4MDgwXCIsdC5hcXVhPVwiIzAwRkZGRlwiLHQub3JhbmdlPVwiI0ZGQTUwMFwiLHQuYWxpY2VibHVlPVwiI0YwRjhGRlwiLHQuYW50aXF1ZXdoaXRlPVwiI0ZBRUJEN1wiLHQuYXF1YW1hcmluZT1cIiM3RkZGRDRcIix0LmF6dXJlPVwiI0YwRkZGRlwiLHQuYmVpZ2U9XCIjRjVGNURDXCIsdC5iaXNxdWU9XCIjRkZFNEM0XCIsdC5ibGFuY2hlZGFsbW9uZD1cIiNGRkVCQ0RcIix0LmJsdWV2aW9sZXQ9XCIjOEEyQkUyXCIsdC5icm93bj1cIiNBNTJBMkFcIix0LmJ1cmx5d29vZD1cIiNERUI4ODdcIix0LmNhZGV0Ymx1ZT1cIiM1RjlFQTBcIix0LmNoYXJ0cmV1c2U9XCIjN0ZGRjAwXCIsdC5jaG9jb2xhdGU9XCIjRDI2OTFFXCIsdC5jb3JhbD1cIiNGRjdGNTBcIix0LmNvcm5mbG93ZXJibHVlPVwiIzY0OTVFRFwiLHQuY29ybnNpbGs9XCIjRkZGOERDXCIsdC5jcmltc29uPVwiI0RDMTQzQ1wiLHQuY3lhbj1cIiMwMEZGRkZcIix0LmRhcmtibHVlPVwiIzAwMDA4QlwiLHQuZGFya2N5YW49XCIjMDA4QjhCXCIsdC5kYXJrZ29sZGVucm9kPVwiI0I4ODYwQlwiLHQuZGFya2dyYXk9XCIjQTlBOUE5XCIsdC5kYXJrZ3JlZW49XCIjMDA2NDAwXCIsdC5kYXJrZ3JleT1cIiNBOUE5QTlcIix0LmRhcmtraGFraT1cIiNCREI3NkJcIix0LmRhcmttYWdlbnRhPVwiIzhCMDA4QlwiLHQuZGFya29saXZlZ3JlZW49XCIjNTU2QjJGXCIsdC5kYXJrb3JhbmdlPVwiI0ZGOEMwMFwiLHQuZGFya29yY2hpZD1cIiM5OTMyQ0NcIix0LmRhcmtyZWQ9XCIjOEIwMDAwXCIsdC5kYXJrc2FsbW9uPVwiI0U5OTY3QVwiLHQuZGFya3NlYWdyZWVuPVwiIzhGQkM4RlwiLHQuZGFya3NsYXRlYmx1ZT1cIiM0ODNEOEJcIix0LmRhcmtzbGF0ZWdyYXk9XCIjMkY0RjRGXCIsdC5kYXJrc2xhdGVncmV5PVwiIzJGNEY0RlwiLHQuZGFya3R1cnF1b2lzZT1cIiMwMENFRDFcIix0LmRhcmt2aW9sZXQ9XCIjOTQwMEQzXCIsdC5kZWVwcGluaz1cIiNGRjE0OTNcIix0LmRlZXBza3libHVlPVwiIzAwQkZGRlwiLHQuZGltZ3JheT1cIiM2OTY5NjlcIix0LmRpbWdyZXk9XCIjNjk2OTY5XCIsdC5kb2RnZXJibHVlPVwiIzFFOTBGRlwiLHQuZmlyZWJyaWNrPVwiI0IyMjIyMlwiLHQuZmxvcmFsd2hpdGU9XCIjRkZGQUYwXCIsdC5mb3Jlc3RncmVlbj1cIiMyMjhCMjJcIix0LmdhaW5zYm9ybz1cIiNEQ0RDRENcIix0Lmdob3N0d2hpdGU9XCIjRjhGOEZGXCIsdC5nb2xkPVwiI0ZGRDcwMFwiLHQuZ29sZGVucm9kPVwiI0RBQTUyMFwiLHQuZ3JlZW55ZWxsb3c9XCIjQURGRjJGXCIsdC5ncmV5PVwiIzgwODA4MFwiLHQuaG9uZXlkZXc9XCIjRjBGRkYwXCIsdC5ob3RwaW5rPVwiI0ZGNjlCNFwiLHQuaW5kaWFucmVkPVwiI0NENUM1Q1wiLHQuaW5kaWdvPVwiIzRCMDA4MlwiLHQuaXZvcnk9XCIjRkZGRkYwXCIsdC5raGFraT1cIiNGMEU2OENcIix0LmxhdmVuZGVyPVwiI0U2RTZGQVwiLHQubGF2ZW5kZXJibHVzaD1cIiNGRkYwRjVcIix0Lmxhd25ncmVlbj1cIiM3Q0ZDMDBcIix0LmxlbW9uY2hpZmZvbj1cIiNGRkZBQ0RcIix0LmxpZ2h0Ymx1ZT1cIiNBREQ4RTZcIix0LmxpZ2h0Y29yYWw9XCIjRjA4MDgwXCIsdC5saWdodGN5YW49XCIjRTBGRkZGXCIsdC5saWdodGdvbGRlbnJvZHllbGxvdz1cIiNGQUZBRDJcIix0LmxpZ2h0Z3JheT1cIiNEM0QzRDNcIix0LmxpZ2h0Z3JlZW49XCIjOTBFRTkwXCIsdC5saWdodGdyZXk9XCIjRDNEM0QzXCIsdC5saWdodHBpbms9XCIjRkZCNkMxXCIsdC5saWdodHNhbG1vbj1cIiNGRkEwN0FcIix0LmxpZ2h0c2VhZ3JlZW49XCIjMjBCMkFBXCIsdC5saWdodHNreWJsdWU9XCIjODdDRUZBXCIsdC5saWdodHNsYXRlZ3JheT1cIiM3Nzg4OTlcIix0LmxpZ2h0c2xhdGVncmV5PVwiIzc3ODg5OVwiLHQubGlnaHRzdGVlbGJsdWU9XCIjQjBDNERFXCIsdC5saWdodHllbGxvdz1cIiNGRkZGRTBcIix0LmxpbWVncmVlbj1cIiMzMkNEMzJcIix0LmxpbmVuPVwiI0ZBRjBFNlwiLHQubWFnZW50YT1cIiNGRjAwRkZcIix0Lm1lZGl1bWFxdWFtYXJpbmU9XCIjNjZDREFBXCIsdC5tZWRpdW1ibHVlPVwiIzAwMDBDRFwiLHQubWVkaXVtb3JjaGlkPVwiI0JBNTVEM1wiLHQubWVkaXVtcHVycGxlPVwiIzkzNzBEQlwiLHQubWVkaXVtc2VhZ3JlZW49XCIjM0NCMzcxXCIsdC5tZWRpdW1zbGF0ZWJsdWU9XCIjN0I2OEVFXCIsdC5tZWRpdW1zcHJpbmdncmVlbj1cIiMwMEZBOUFcIix0Lm1lZGl1bXR1cnF1b2lzZT1cIiM0OEQxQ0NcIix0Lm1lZGl1bXZpb2xldHJlZD1cIiNDNzE1ODVcIix0Lm1pZG5pZ2h0Ymx1ZT1cIiMxOTE5NzBcIix0Lm1pbnRjcmVhbT1cIiNGNUZGRkFcIix0Lm1pc3R5cm9zZT1cIiNGRkU0RTFcIix0Lm1vY2Nhc2luPVwiI0ZGRTRCNVwiLHQubmF2YWpvd2hpdGU9XCIjRkZERUFEXCIsdC5vbGRsYWNlPVwiI0ZERjVFNlwiLHQub2xpdmVkcmFiPVwiIzZCOEUyM1wiLHQub3JhbmdlcmVkPVwiI0ZGNDUwMFwiLHQub3JjaGlkPVwiI0RBNzBENlwiLHQucGFsZWdvbGRlbnJvZD1cIiNFRUU4QUFcIix0LnBhbGVncmVlbj1cIiM5OEZCOThcIix0LnBhbGV0dXJxdW9pc2U9XCIjQUZFRUVFXCIsdC5wYWxldmlvbGV0cmVkPVwiI0RCNzA5M1wiLHQucGFwYXlhd2hpcD1cIiNGRkVGRDVcIix0LnBlYWNocHVmZj1cIiNGRkRBQjlcIix0LnBlcnU9XCIjQ0Q4NTNGXCIsdC5waW5rPVwiI0ZGQzBDQlwiLHQucGx1bT1cIiNEREEwRERcIix0LnBvd2RlcmJsdWU9XCIjQjBFMEU2XCIsdC5yb3N5YnJvd249XCIjQkM4RjhGXCIsdC5yb3lhbGJsdWU9XCIjNDE2OUUxXCIsdC5zYWRkbGVicm93bj1cIiM4QjQ1MTNcIix0LnNhbG1vbj1cIiNGQTgwNzJcIix0LnNhbmR5YnJvd249XCIjRjRBNDYwXCIsdC5zZWFncmVlbj1cIiMyRThCNTdcIix0LnNlYXNoZWxsPVwiI0ZGRjVFRVwiLHQuc2llbm5hPVwiI0EwNTIyRFwiLHQuc2t5Ymx1ZT1cIiM4N0NFRUJcIix0LnNsYXRlYmx1ZT1cIiM2QTVBQ0RcIix0LnNsYXRlZ3JheT1cIiM3MDgwOTBcIix0LnNsYXRlZ3JleT1cIiM3MDgwOTBcIix0LnNub3c9XCIjRkZGQUZBXCIsdC5zcHJpbmdncmVlbj1cIiMwMEZGN0ZcIix0LnN0ZWVsYmx1ZT1cIiM0NjgyQjRcIix0LnRhbj1cIiNEMkI0OENcIix0LnRoaXN0bGU9XCIjRDhCRkQ4XCIsdC50b21hdG89XCIjRkY2MzQ3XCIsdC50dXJxdW9pc2U9XCIjNDBFMEQwXCIsdC52aW9sZXQ9XCIjRUU4MkVFXCIsdC53aGVhdD1cIiNGNURFQjNcIix0LndoaXRlc21va2U9XCIjRjVGNUY1XCIsdC55ZWxsb3dncmVlbj1cIiM5QUNEMzJcIix0LnJlYmVjY2FwdXJwbGU9XCIjNjYzMzk5XCJ9KG98fChvPXt9KSk7dmFyIGEsYyx1PU9iamVjdC5rZXlzKG8pLHM9e0hFWDpbXCJyXCIsXCJnXCIsXCJiXCIsXCJhXCJdLFJHQjpbXCJyXCIsXCJnXCIsXCJiXCIsXCJhXCJdLEhTTDpbXCJoXCIsXCJzXCIsXCJsXCIsXCJhXCJdLENNWUs6W1wiY1wiLFwibVwiLFwieVwiLFwia1wiLFwiYVwiXX0sZD17QkdSOm4uUkdCLEFCR1I6bi5SR0IsSExTOm4uSFNMLEFITFM6bi5IU0wsQ0tNWTpuLkNNWUssQUNLTVk6bi5DTVlLfTshZnVuY3Rpb24odCl7dC5OVU1CRVI9XCJudW1iZXJcIix0LkJPT0xFQU49XCJib29sZWFuXCJ9KGF8fChhPXt9KSk7dmFyIGwsZixoLHA9KChjPXt9KVtuLkhFWF09L14jKD86KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKT98KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KT8pJC9pLGNbbi5SR0JdPS9ecmdiYT9cXHMqXFwoXFxzKig/OigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjW24uSFNMXT0vXmhzbGE/XFxzKlxcKFxccyooPzooLT8oPzpcXGQqXFwuKT9cXGQrKD86ZGVnfGdyYWR8cmFkfHR1cm4pPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspJSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgtPyg/OlxcZCpcXC4pP1xcZCsoPzpkZWd8Z3JhZHxyYWR8dHVybik/KVxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKigoPzpcXGQqXFwuKT9cXGQrKSUoPzpcXHMqXFwvXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKT8pXFxzKlxcKSQvLGNbbi5DTVlLXT0vXig/OmRldmljZS1jbXlrfGNteWspXFxzKlxcKFxccyooPzooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjKSxnPS9eKC0/KD86XFxkKlxcLik/XFxkKykoKD86ZGVnfGdyYWR8cmFkfHR1cm4pPykkLyxtPS9eKFxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyklJC8sYj0vXjB4KFthLWZcXGRdezEsMn0pJC9pLEE9L1xceyhcXGQrKVxcfS9nLHk9LywoICt8XFxkKykvZyxFPS8gKy8sRj1cIlRoZSBwcm92aWRlZCBzdHJpbmcgY29sb3IgZG9lc24ndCBoYXZlIGEgY29ycmVjdCBmb3JtYXRcIix2PVwiVGhlIHByb3ZpZGVkIGNvbG9yIG9iamVjdCBkb2Vzbid0IGhhdmUgdGhlIHByb3BlciBrZXlzIG9yIGZvcm1hdFwiOyFmdW5jdGlvbih0KXt0Lk5PTkU9XCJub25lXCIsdC5ERUdSRUVTPVwiZGVnXCIsdC5HUkFESUFOUz1cImdyYWRcIix0LlJBRElBTlM9XCJyYWRcIix0LlRVUk5TPVwidHVyblwifShsfHwobD17fSkpLGZ1bmN0aW9uKHQpe3QuTk9ORT1cIm5vbmVcIix0LlBFUkNFTlQ9XCJwZXJjZW50XCJ9KGZ8fChmPXt9KSksZnVuY3Rpb24odCl7dC5ERVZJQ0VfQ01ZSz1cImRldmljZS1jbXlrXCIsdC5DTVlLPVwiY215a1wifShofHwoaD17fSkpO3ZhciBILEIsQyxTLFIsTSxEPXtkZWNpbWFsczo2LGxlZ2FjeUNTUzohMSxzcGFjZXNBZnRlckNvbW1hczohMSxhbmdsZXNVbml0OmwuTk9ORSxyZ2JVbml0OmYuTk9ORSxjbXlrVW5pdDpmLlBFUkNFTlQsYWxwaGFVbml0OmYuTk9ORSxjbXlrRnVuY3Rpb246aC5ERVZJQ0VfQ01ZS30sTz1mdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX0sTD1mdW5jdGlvbih0KXtyZXR1cm4rXCJcIi5jb25jYXQodCkucmVwbGFjZShtLFwiJDFcIil9LEc9ZnVuY3Rpb24odCl7cmV0dXJuIG0udGVzdChcIlwiLmNvbmNhdCh0KSk/TCh0KTpNYXRoLm1pbigrdCwxMDApfSxrPWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0Kz10KSxwYXJzZUludCh0LDE2KX0saj1mdW5jdGlvbih0KXt2YXIgZT1LKHQsMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIDE9PT1lLmxlbmd0aD9cIjB4MFwiLmNvbmNhdChlKTpcIjB4XCIuY29uY2F0KGUpfSxYPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSwhZSYmbS50ZXN0KHQpP01hdGgubWluKDI1NSpMKHQpLzEwMCwyNTUpOmIudGVzdCh0KT8oMz09PXQubGVuZ3RoJiYodCs9dC5zbGljZSgtMSkpLGU/Syh0KS8yNTU6Syh0KSk6TWF0aC5taW4oK3QsZT8xOjI1NSl9LEk9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKG0udGVzdCh0KT9MKHQpLzEwMDordCwxKX0sWT1mdW5jdGlvbih0KXtyZXR1cm4gZShbXSx0LCEwKS5zb3J0KCkuam9pbihcIlwiKS50b1VwcGVyQ2FzZSgpfSxLPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9Nik7dmFyIG49TWF0aC5wb3coMTAsZSk7cmV0dXJuIE1hdGgucm91bmQoK3Qqbikvbn0sTj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWF4KGUsTWF0aC5taW4odCxuKSl9LFQ9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpe3ZhciBlPXQubWF0Y2goZyksbj0rZVsxXTtzd2l0Y2goZVsyXSl7Y2FzZSBsLlJBRElBTlM6dD1LKDE4MCpuL01hdGguUEkpO2JyZWFrO2Nhc2UgbC5UVVJOUzp0PUsoMzYwKm4pO2JyZWFrO2Nhc2UgbC5HUkFESUFOUzp0PUsoLjkqbik7YnJlYWs7Y2FzZSBsLkRFR1JFRVM6ZGVmYXVsdDp0PW59fXJldHVybih0PjM2MHx8dDwwKSYmKHQtPTM2MCpNYXRoLmZsb29yKHQvMzYwKSksdH0sUD1mdW5jdGlvbih0LGUpe3ZhciBuO3N3aXRjaChlKXtjYXNlIGwuUkFESUFOUzpuPUsoZnVuY3Rpb24odCl7cmV0dXJuIHQqTWF0aC5QSS8xODB9KHQpKTticmVhaztjYXNlIGwuVFVSTlM6bj1LKHQvMzYwKTticmVhaztjYXNlIGwuR1JBRElBTlM6bj1LKDEwLzkqdCk7YnJlYWs7Y2FzZSBsLkRFR1JFRVM6Y2FzZSBsLk5PTkU6ZGVmYXVsdDpuPXR9cmV0dXJuIG59LFU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07Zm9yKHZhciByPVtdLGk9W10sbz1bXSxjPVtdLHU9W10scz1PYmplY3QudmFsdWVzKGwpLGQ9T2JqZWN0LnZhbHVlcyhmKSxiPU9iamVjdC52YWx1ZXMoaCksQT17bGVnYWN5Q1NTOjAsc3BhY2VzQWZ0ZXJDb21tYXM6MCxjbXlrRnVuY3Rpb246MH0sRj0wLHY9ZTtGPHYubGVuZ3RoO0YrKyl7dmFyIEg9dltGXTtpZihcInN0cmluZ1wiPT10eXBlb2YgSCl7aWYoci5wdXNoKEgpLEguaW5jbHVkZXMoXCIsXCIpKXtBLmxlZ2FjeUNTUysrO3ZhciBCPUgubWF0Y2goeSk7MT09PW5ldyBTZXQoQikuc2l6ZSYmRS50ZXN0KEJbMF0uc2xpY2UoMSkpJiZBLnNwYWNlc0FmdGVyQ29tbWFzKyt9aWYoSC5tYXRjaChwLkhTTCkpe3ZhciBDPShrPUgubWF0Y2gocC5IU0wpKVsxXXx8a1s1XSxTPWtbOF0sUj1DLm1hdGNoKGcpWzJdO2kucHVzaChcIlwiPT09Uj9sLk5PTkU6UiksdS5wdXNoKG0udGVzdChTKSk7Y29udGludWV9aWYocC5SR0IudGVzdChIKSl7dmFyIE09KGs9SC5tYXRjaChwLlJHQikpWzFdfHxrWzVdLE89a1syXXx8a1s2XSxMPWtbM118fGtbN10sRz1rWzhdO28ucHVzaChtLnRlc3QoTSkmJm0udGVzdChPKSYmbS50ZXN0KEwpKSx1LnB1c2gobS50ZXN0KEcpKTtjb250aW51ZX1pZihILm1hdGNoKHAuQ01ZSykpe3ZhciBrLGo9KGs9SC5tYXRjaChwLkNNWUspKVsxXXx8a1s2XSxYPWtbMl18fGtbN10sST1rWzNdfHxrWzhdLFk9a1s0XXx8a1s5XTtHPWtbMTBdO2MucHVzaChtLnRlc3QoaikmJm0udGVzdChYKSYmbS50ZXN0KEkpJiZtLnRlc3QoWSkpLEguc3RhcnRzV2l0aChcImNteWtcIikmJkEuY215a0Z1bmN0aW9uKyssdS5wdXNoKG0udGVzdChHKSl9fX1yZXR1cm57ZGVjaW1hbHM6dHlwZW9mIHQuZGVjaW1hbHM9PT1hLk5VTUJFUj90LmRlY2ltYWxzOkQuZGVjaW1hbHMsbGVnYWN5Q1NTOnR5cGVvZiB0LmxlZ2FjeUNTUz09PWEuQk9PTEVBTj90LmxlZ2FjeUNTUzpCb29sZWFuKHIubGVuZ3RoJiZBLmxlZ2FjeUNTUz09PXIubGVuZ3RoKXx8RC5sZWdhY3lDU1Msc3BhY2VzQWZ0ZXJDb21tYXM6dHlwZW9mIHQuc3BhY2VzQWZ0ZXJDb21tYXM9PT1hLkJPT0xFQU4/dC5zcGFjZXNBZnRlckNvbW1hczpCb29sZWFuKHIubGVuZ3RoJiZBLnNwYWNlc0FmdGVyQ29tbWFzPT09ci5sZW5ndGgpfHxELnNwYWNlc0FmdGVyQ29tbWFzLGFuZ2xlc1VuaXQ6dC5hbmdsZXNVbml0JiZzLmluY2x1ZGVzKHQuYW5nbGVzVW5pdCk/dC5hbmdsZXNVbml0OjE9PT1uZXcgU2V0KGkpLnNpemU/aVswXTpELmFuZ2xlc1VuaXQscmdiVW5pdDp0LnJnYlVuaXQmJmQuaW5jbHVkZXModC5yZ2JVbml0KT90LnJnYlVuaXQ6MT09PW5ldyBTZXQobykuc2l6ZSYmb1swXT9mLlBFUkNFTlQ6RC5yZ2JVbml0LGNteWtVbml0OnQuY215a1VuaXQmJmQuaW5jbHVkZXModC5jbXlrVW5pdCk/dC5jbXlrVW5pdDoxIT09bmV3IFNldChjKS5zaXplfHxjWzBdP0QuY215a1VuaXQ6Zi5OT05FLGFscGhhVW5pdDp0LmFscGhhVW5pdCYmZC5pbmNsdWRlcyh0LmFscGhhVW5pdCk/dC5hbHBoYVVuaXQ6MT09PW5ldyBTZXQodSkuc2l6ZSYmdVswXT9mLlBFUkNFTlQ6RC5hbHBoYVVuaXQsY215a0Z1bmN0aW9uOnQuY215a0Z1bmN0aW9uJiZiLmluY2x1ZGVzKHQuY215a0Z1bmN0aW9uKT90LmNteWtGdW5jdGlvbjpjLmxlbmd0aCYmYy5sZW5ndGg9PT1BLmNteWtGdW5jdGlvbj9oLkNNWUs6RC5jbXlrRnVuY3Rpb259fSx3PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbjwwJiYobis9Niksbj49NiYmKG4tPTYpLEsobjwxPzI1NSooKGUtdCkqbit0KTpuPDM/MjU1KmU6bjw0PzI1NSooKGUtdCkqKDQtbikrdCk6MjU1KnQpfSx4PWZ1bmN0aW9uKHQsZSxuKXtlLz0xMDA7dmFyIHI9KG4vPTEwMCk8PS41P24qKGUrMSk6bitlLW4qZSxpPTIqbi1yO3JldHVybntyOncoaSxyLCh0Lz02MCkrMiksZzp3KGkscix0KSxiOncoaSxyLHQtMil9fSxWPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybntyOksoMjU1KigxLXQpKihyPTEtcikpLGc6SygyNTUqKDEtZSkqciksYjpLKDI1NSooMS1uKSpyKX19LHE9ZnVuY3Rpb24odCxlLG4pe3QvPTI1NSxlLz0yNTUsbi89MjU1O3ZhciByPTEtTWF0aC5tYXgodCxlLG4pLGk9MS1yLG89aSYmKGktZSkvaSxhPWkmJihpLW4pL2k7cmV0dXJue2M6SygxMDAqKGkmJihpLXQpL2kpKSxtOksoMTAwKm8pLHk6SygxMDAqYSksazpLKDEwMCpyKX19LF89ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwPT09ciYmKHI9MSksdC89MjU1LGUvPTI1NSxuLz0yNTUscj1NYXRoLm1pbihyLDEpO3ZhciBpPU1hdGgubWF4KHQsZSxuKSxvPU1hdGgubWluKHQsZSxuKSxhPWktbyxjPTAsdT0wLHM9KGkrbykvMjtpZigwIT09YSl7c3dpdGNoKGkpe2Nhc2UgdDpjPShlLW4pL2ElNjticmVhaztjYXNlIGU6Yz0obi10KS9hKzI7YnJlYWs7Y2FzZSBuOmM9KHQtZSkvYSs0fShjPUsoNjAqYykpPDAmJihjKz0zNjApLHU9YS8oMS1NYXRoLmFicygyKnMtMSkpfXJldHVybntoOmMsczpLKDEwMCp1KSxsOksoMTAwKnMpLGE6cn19LCQ9ZnVuY3Rpb24odCxlKXtpZih0PDAmJih0Kz0zNjApLHQ+MzYwJiYodC09MzYwKSwzNjA9PT10fHwwPT09dClyZXR1cm4gdDt2YXIgbj1bWzAsMTIwXSxbMTIwLDE4MF0sWzE4MCwyNDBdLFsyNDAsMzYwXV0scj1bWzAsNjBdLFs2MCwxMjBdLFsxMjAsMjQwXSxbMjQwLDM2MF1dLGk9ZT9yOm4sbz0wLGE9MCxjPTAsdT0wO3JldHVybihlP246cikuZmluZCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD49ZVswXSYmdDxlWzFdJiYobz1lWzBdLGE9ZVsxXSxjPWlbbl1bMF0sdT1pW25dWzFdLCEwKX0pKSxjKyh1LWMpLyhhLW8pKih0LW8pfSx6PWZ1bmN0aW9uKHQpe3JldHVybiB0P1wiLCBcIjpcIixcIn0sUT1mdW5jdGlvbih0LGUpe3ZhciBuPVkoT2JqZWN0LmtleXModCkpO3JldHVybiBzW2Rbbl1dLnJlZHVjZSgoZnVuY3Rpb24obixyLGkpe3ZhciBvPXRbcl07cmV0dXJuIHZvaWQgMCE9PW8mJm4ucHVzaChlKG8saSkpLG59KSxbXSl9LFc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5yZXBsYWNlKEEsKGZ1bmN0aW9uKHQsbil7cmV0dXJuXCJcIi5jb25jYXQoZVsrbi0xXSl9KSl9LEo9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmFscGhhVW5pdCxyPWUubGVnYWN5Q1NTLGk9ZS5kZWNpbWFscztyZXR1cm4gbiE9PWYuUEVSQ0VOVHx8cj9LKHQsaSk6XCJcIi5jb25jYXQoSygxMDAqdCxpKSxcIiVcIil9LFo9KChIPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7dmFyIGU9USh0LChmdW5jdGlvbih0KXtyZXR1cm4gZT1LKHQpLDE9PT0obj1LKGUsMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkpLmxlbmd0aCYmKG49XCIwXCIuY29uY2F0KG4pKSxuO3ZhciBlLG59KSksbj00PT09ZS5sZW5ndGg/XCIjezF9ezJ9ezN9ezR9XCI6XCIjezF9ezJ9ezN9XCI7cmV0dXJuIFcobixlKX0sSFtuLlJHQl09ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmRlY2ltYWxzLHI9ZS5sZWdhY3lDU1MsaT1lLnNwYWNlc0FmdGVyQ29tbWFzLG89ZS5yZ2JVbml0LGE9eihpKSxjPVEodCwoZnVuY3Rpb24odCxyKXtyZXR1cm4gbz09PWYuUEVSQ0VOVCYmcjwzP1wiXCIuY29uY2F0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEsodC8yNTUqMTAwLGUpfSh0LG4pLFwiJVwiKTozPT09cj9KKHQsZSk6Syh0LG4pfSkpLHU9cj80PT09Yy5sZW5ndGg/XCJyZ2JhKHsxfVwiLmNvbmNhdChhLFwiezJ9XCIpLmNvbmNhdChhLFwiezN9XCIpLmNvbmNhdChhLFwiezR9KVwiKTpcInJnYih7MX1cIi5jb25jYXQoYSxcInsyfVwiKS5jb25jYXQoYSxcInszfSlcIik6ND09PWMubGVuZ3RoP1wicmdiKHsxfSB7Mn0gezN9IC8gezR9KVwiOlwicmdiKHsxfSB7Mn0gezN9KVwiO3JldHVybiBXKHUsYyl9LEhbbi5IU0xdPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kZWNpbWFscyxyPWUubGVnYWN5Q1NTLGk9ZS5zcGFjZXNBZnRlckNvbW1hcyxvPWUuYW5nbGVzVW5pdCxhPXooaSksYz1RKHQsKGZ1bmN0aW9uKHQscil7aWYoMD09PXImJm8hPT1sLk5PTkUpe3ZhciBpPUsoUCh0LG8pLG4pO3JldHVyblwiXCIuY29uY2F0KGkpLmNvbmNhdChvKX1yZXR1cm4gMz09PXI/Sih0LGUpOksodCxuKX0pKSx1PXI/ND09PWMubGVuZ3RoP1wiaHNsYSh7MX1cIi5jb25jYXQoYSxcInsyfSVcIikuY29uY2F0KGEsXCJ7M30lXCIpLmNvbmNhdChhLFwiezR9KVwiKTpcImhzbCh7MX1cIi5jb25jYXQoYSxcInsyfSVcIikuY29uY2F0KGEsXCJ7M30lKVwiKTo0PT09Yy5sZW5ndGg/XCJoc2woezF9IHsyfSUgezN9JSAvIHs0fSlcIjpcImhzbCh7MX0gezJ9JSB7M30lKVwiO3JldHVybiBXKHUsYyl9LEhbbi5DTVlLXT1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZGVjaW1hbHMscj1lLmxlZ2FjeUNTUyxpPWUuc3BhY2VzQWZ0ZXJDb21tYXMsbz1lLmNteWtVbml0LGE9ZS5jbXlrRnVuY3Rpb24sYz16KGkpLHU9USh0LChmdW5jdGlvbih0LHIpe3JldHVybiBvPT09Zi5QRVJDRU5UJiZyPDQ/XCJcIi5jb25jYXQoSyh0LG4pLFwiJVwiKTo0PT09cj9KKHQsZSk6Syh0LzEwMCxuKX0pKSxzPXI/NT09PXUubGVuZ3RoP1wiXCIuY29uY2F0KGEsXCIoezF9XCIpLmNvbmNhdChjLFwiezJ9XCIpLmNvbmNhdChjLFwiezN9XCIpLmNvbmNhdChjLFwiezR9XCIpLmNvbmNhdChjLFwiezV9KVwiKTpcIlwiLmNvbmNhdChhLFwiKHsxfVwiKS5jb25jYXQoYyxcInsyfVwiKS5jb25jYXQoYyxcInszfVwiKS5jb25jYXQoYyxcIns0fSlcIik6NT09PXUubGVuZ3RoP1wiXCIuY29uY2F0KGEsXCIoezF9IHsyfSB7M30gezR9IC8gezV9KVwiKTpcIlwiLmNvbmNhdChhLFwiKHsxfSB7Mn0gezN9IHs0fSlcIik7cmV0dXJuIFcocyx1KX0sSCksdHQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PW0udGVzdCh0KT9MKHQpLzEwMDordCksaXNOYU4oK3QpfHx0PjE/MTpLKHQpfSxldD1mdW5jdGlvbihuLHIsbyl7cmV0dXJuIHIucmVkdWNlKChmdW5jdGlvbihyLGEpe3JldHVybiBlKGUoW10sciwhMCksW3QodCh7fSxuKSx7aDpvPT09aS5BRERJVElWRT9UKG4uaCthKTpUKCQoJChuLmgsITEpK2EsITApKX0pXSwhMSl9KSxbdCh7fSxuKV0pfSxudD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFszMCwtMzBdLGUpfSxydD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxODBdLGUpfSxpdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxNTAsLTE1MF0sZSl9LG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzEyMCwtMTIwXSxlKX0sYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbNjAsLTEyMCwxODBdLGUpfSxjdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFs5MCwtOTAsMTgwXSxlKX0sdXQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7dmFyIGU7aWYoT2JqZWN0LmtleXMobikuc29tZSgoZnVuY3Rpb24obil7aWYocFtuXS50ZXN0KHQpKXJldHVybiBlPW4sITB9KSksIWUmJn51LmluZGV4T2YodCkmJihlPW4uSEVYKSwhZSl0aHJvdyBuZXcgRXJyb3IoRik7cmV0dXJuIGV9KHQpOmZ1bmN0aW9uKHQpe3ZhciBlLHI9ITEsaT1ZKE9iamVjdC5rZXlzKHQpKTtpZihkW2ldJiYoZT1kW2ldKSxlJiZlPT09bi5SR0Ipe3ZhciBvPU9iamVjdC5lbnRyaWVzKHQpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiFiLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpfSkpLGE9T2JqZWN0LmVudHJpZXModCkuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIShtLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpfHwhYi50ZXN0KFwiXCIuY29uY2F0KHRbMV0pKSYmIWlzTmFOKCt0WzFdKSYmK3RbMV08PTI1NSl9KSk7byYmYSYmKHI9ITApLG98fChlPW4uSEVYKX1pZighZXx8cil0aHJvdyBuZXcgRXJyb3Iodik7cmV0dXJuIGV9KHQpfSxzdD0oKEI9e30pW24uSEVYXT1mdW5jdGlvbih0KXt2YXIgZT0ofnUuaW5kZXhPZih0KT9vW3RdOnQpLm1hdGNoKHAuSEVYKSxuPXtyOmsoZVsxXXx8ZVs1XSksZzprKGVbMl18fGVbNl0pLGI6ayhlWzNdfHxlWzddKX0scj1lWzRdfHxlWzhdO3JldHVybiB2b2lkIDAhPT1yJiYobi5hPWsocikvMjU1KSxufSxCW24uUkdCXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuUkdCKSxuPVgoZVsxXXx8ZVs1XSkscj1YKGVbMl18fGVbNl0pLGk9WChlWzNdfHxlWzddKSxvPWVbNF18fGVbOF0sYT17cjpNYXRoLm1pbihuLDI1NSksZzpNYXRoLm1pbihyLDI1NSksYjpNYXRoLm1pbihpLDI1NSl9O3JldHVybiB2b2lkIDAhPT1vJiYoYS5hPXR0KG8pKSxhfSxCW24uSFNMXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuSFNMKSxuPVQoZVsxXXx8ZVs1XSkscj1HKGVbMl18fGVbNl0pLGk9RyhlWzNdfHxlWzddKSxvPWVbNF18fGVbOF0sYT14KG4scixpKTtyZXR1cm4gdm9pZCAwIT09byYmKGEuYT10dChvKSksYX0sQltuLkNNWUtdPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2gocC5DTVlLKSxuPUkoZVsxXXx8ZVs2XSkscj1JKGVbMl18fGVbN10pLGk9SShlWzNdfHxlWzhdKSxvPUkoZVs0XXx8ZVs5XSksYT1lWzVdfHxlWzEwXSxjPVYobixyLGksbyk7cmV0dXJuIHZvaWQgMCE9PWEmJihjLmE9dHQoYSkpLGN9LEIpLGR0PSgoQz17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3ZhciBlPXtyOlgoXCJcIi5jb25jYXQodC5yKSksZzpYKFwiXCIuY29uY2F0KHQuZykpLGI6WChcIlwiLmNvbmNhdCh0LmIpKX07cmV0dXJuIE8odCxcImFcIikmJihlLmE9TWF0aC5taW4oWChcIlwiLmNvbmNhdCh0LmEpLCEwKSwxKSksZX0sQ1tuLlJHQl09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSEVYKHQpfSxDW24uSFNMXT1mdW5jdGlvbih0KXt2YXIgZT1HKFwiXCIuY29uY2F0KHQucykpLG49RyhcIlwiLmNvbmNhdCh0LmwpKSxyPXgoVCh0LmgpLGUsbik7cmV0dXJuIE8odCxcImFcIikmJihyLmE9dHQodC5hKSkscn0sQ1tuLkNNWUtdPWZ1bmN0aW9uKHQpe3ZhciBlPUkoXCJcIi5jb25jYXQodC5jKSksbj1JKFwiXCIuY29uY2F0KHQubSkpLHI9SShcIlwiLmNvbmNhdCh0LnkpKSxpPUkoXCJcIi5jb25jYXQodC5rKSksbz1WKGUsbixyLGkpO3JldHVybiBPKHQsXCJhXCIpJiYoby5hPXR0KHQuYSkpLG99LEMpLGx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXV0KHQpKSxcInN0cmluZ1wiPT10eXBlb2YgdD9zdFtlXSh0KTpkdFtlXSh0KX0sZnQ9KChTPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7cmV0dXJue3I6aih0LnIpLGc6aih0LmcpLGI6aih0LmIpfX0sUy5IRVhBPWZ1bmN0aW9uKHQpe3ZhciBlPWZ0LkhFWCh0KTtyZXR1cm4gZS5hPU8odCxcImFcIik/aigyNTUqdC5hKTpcIjB4RkZcIixlfSxTW24uUkdCXT1mdW5jdGlvbih0LGUpe3ZhciBuPW10KHQsZSk7cmV0dXJuIE8obixcImFcIikmJmRlbGV0ZSBuLmEsbn0sUy5SR0JBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuUkdCKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hKToxLG59LFNbbi5IU0xdPWZ1bmN0aW9uKHQsZSl7dmFyIG49Xyh0LnIsdC5nLHQuYik7cmV0dXJuIGRlbGV0ZSBuLmEsYnQobixlKX0sUy5IU0xBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuSFNMKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hLGUpOjEsbn0sU1tuLkNNWUtdPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEF0KHEodC5yLHQuZyx0LmIpLGUpfSxTLkNNWUtBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuQ01ZSyh0LGUpO3JldHVybiBuLmE9Tyh0LFwiYVwiKT9LKHQuYSxlKToxLG59LFMpLGh0PWZ1bmN0aW9uKGUscixpLG8pe3ZhciBhPXV0KGUpLGM9XCJzdHJpbmdcIj09dHlwZW9mIGUsdT1sdChlLGEpLHM9XCJzdHJpbmdcIj09dHlwZW9mIGUmJk8odSxcImFcIil8fFwic3RyaW5nXCIhPXR5cGVvZiBlJiZPKGUsXCJhXCIpLGQ9Xyh1LnIsdS5nLHUuYix1LmEpO3N8fGRlbGV0ZSBkLmE7dmFyIGw9aT9kLmwvKHIrMSk6KDEwMC1kLmwpLyhyKzEpLGY9QXJyYXkocikuZmlsbChudWxsKS5tYXAoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQodCh7fSxkKSx7bDpkLmwrbCoobisxKSooMS0yKitpKX0pfSkpO3N3aXRjaChhKXtjYXNlIG4uSEVYOmRlZmF1bHQ6cmV0dXJuIGYubWFwKChmdW5jdGlvbihlKXt2YXIgbj14KGUuaCxlLnMsZS5sKTtyZXR1cm4gcyYmKG4uYT1lLmEpLGM/cz9aLkhFWCh0KHQoe30sbikse2E6SygyNTUqbi5hKX0pKTpaLkhFWChuKTpzP2Z0LkhFWEEobik6ZnQuSEVYKG4pfSkpO2Nhc2Ugbi5SR0I6cmV0dXJuIGYubWFwKChmdW5jdGlvbih0KXt2YXIgZT14KHQuaCx0LnMsdC5sKTtyZXR1cm4gcyYmKGUuYT10LmEpLGM/Wi5SR0IoZSxvKTpzP2Z0LlJHQkEoZSxvLmRlY2ltYWxzKTpmdC5SR0IoZSxvLmRlY2ltYWxzKX0pKTtjYXNlIG4uSFNMOnJldHVybiBmLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGM/Wi5IU0woZSxvKTpzP2Z0LkhTTEEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTplLmF9KSxvLmRlY2ltYWxzKTpmdC5IU0woeChlLmgsZS5zLGUubCksby5kZWNpbWFscyl9KSl9fSxwdD0oKFI9e2J1aWxkSGFybW9ueTpmdW5jdGlvbih0LGUscixpKXt2YXIgbz11dCh0KSxhPWx0KHQsbyksYz1fKGEucixhLmcsYS5iLGEuYSksdT1cInN0cmluZ1wiPT10eXBlb2YgdCYmTyhhLFwiYVwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIHQmJk8odCxcImFcIikscz1cInN0cmluZ1wiPT10eXBlb2YgdDtzd2l0Y2gobyl7Y2FzZSBuLkhFWDpkZWZhdWx0OnJldHVybiB1P3RoaXMuSEVYQShidChjLDApLGUscixzKTp0aGlzLkhFWChidChjLDApLGUscixzKTtjYXNlIG4uSFNMOnJldHVybiB1P3RoaXMuSFNMQShjLGUscixzLGkpOnRoaXMuSFNMKGMsZSxyLHMsaSk7Y2FzZSBuLlJHQjpyZXR1cm4gdT90aGlzLlJHQkEoYyxlLHIscyxpKTp0aGlzLlJHQihjLGUscixzLGkpfX19KVtuLkhFWF09ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouSEVYKHgodC5oLHQucyx0LmwpKTpmdC5IRVgoeCh0LmgsdC5zLHQubCkpfSkpfSxSLkhFWEE9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouSEVYKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6MjU1KnR0KGUuYSl9KSk6ZnQuSEVYQSh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSl9KSl9LFJbbi5SR0JdPWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouUkdCKHgodC5oLHQucyx0LmwpLGkpOmZ0LlJHQih4KHQuaCx0LnMsdC5sKSxpLmRlY2ltYWxzKX0pKX0sUi5SR0JBPWZ1bmN0aW9uKGUsbixyLGksbyl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouUkdCKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8pOmZ0LlJHQkEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTp0dChlLmEpfSksby5kZWNpbWFscyl9KSl9LFJbbi5IU0xdPWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouSFNMKHtoOnQuaCxzOnQucyxsOnQubH0saSk6ZnQuSFNMKHgodC5oLHQucyx0LmwpLGkuZGVjaW1hbHMpfSkpfSxSLkhTTEE9ZnVuY3Rpb24oZSxuLHIsaSxvKXtyZXR1cm4gbihlLHIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGk/Wi5IU0wodCh0KHt9LGUpLHthOnR0KGUuYSl9KSxvKTpmdC5IU0xBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8uZGVjaW1hbHMpfSkpfSxSKSxndD0oKE09e21peDpmdW5jdGlvbihlLG4pe3ZhciByLG8sYSxjLHUscyxkLGwsZixoLHAsZyxtLGIsQSx5PWUubWFwKChmdW5jdGlvbih0KXt2YXIgZT11dCh0KTtyZXR1cm4gbHQodCxlKX0pKSxFPW49PT1pLlNVQlRSQUNUSVZFP3kubWFwKChmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEsYyx1LHMsZCxsLGYsaCxwLGc9KGU9dC5yLG49dC5nLHI9dC5iLGk9TWF0aC5taW4oZSxuLHIpLG89TWF0aC5taW4oMjU1LWUsMjU1LW4sMjU1LXIpLGE9ZS1pLGM9bi1pLHU9ci1pLHM9TWF0aC5taW4oYSxjKSxkPWEtcyxsPShjK3MpLzIsZj0odStjLXMpLzIsaD1NYXRoLm1heChkLGwsZikvTWF0aC5tYXgoYSxjLHUpLHA9aXNOYU4oaCl8fGg9PT0xLzB8fGg8PTA/MTpoLHtyOmQvcCtvLHk6bC9wK28sYjpmL3Arb30pO3JldHVybiBPKHQsXCJhXCIpJiYoZy5hPXQuYSksZ30pKTpudWxsO2Z1bmN0aW9uIEYoZSl7dmFyIHI9bj09PWkuQURESVRJVkU/e3I6MCxnOjAsYjowLGE6MH06e3I6MCx5OjAsYjowLGE6MH07cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLHIpe3ZhciBvPU8ocixcImFcIik/ci5hOjEsYT17cjpNYXRoLm1pbihlLnIrci5yKm8sMjU1KSxiOk1hdGgubWluKGUuYityLmIqbywyNTUpLGE6MS0oMS1vKSooMS1lLmEpfSxjPVwiZ1wiaW4gZT9lLmc6ZS55LHU9XCJnXCJpbiByP3IuZzpyLnk7cmV0dXJuIHQodCh7fSxhKSxuPT09aS5BRERJVElWRT97ZzpNYXRoLm1pbihjK3UqbywyNTUpfTp7eTpNYXRoLm1pbihjK3UqbywyNTUpfSl9KSxyKX1pZihuPT09aS5BRERJVElWRSlyPUYoeSk7ZWxzZXt2YXIgdj1GKEUpO289di5yLGE9di55LGM9di5iLHU9TWF0aC5taW4obyxhLGMpLHM9TWF0aC5taW4oMjU1LW8sMjU1LWEsMjU1LWMpLGQ9by11LGw9YS11LGY9Yy11LGg9TWF0aC5taW4obCxmKSxwPWQrbC1oLGc9bCtoLG09MiooZi1oKSxiPU1hdGgubWF4KHAsZyxtKS9NYXRoLm1heChkLGwsZiksQT1pc05hTihiKXx8Yj09PTEvMHx8Yjw9MD8xOmIsKHI9e3I6cC9BK3MsZzpnL0ErcyxiOm0vQStzfSkuYT12LmF9cmV0dXJue3I6SyhyLnIpLGc6SyhyLmcpLGI6SyhyLmIpLGE6TihyLmEsMCwxKX19fSlbbi5IRVhdPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgci5hLG4/Wi5IRVgocik6ZnQuSEVYKHIpfSxNLkhFWEE9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMubWl4KHQsZSk7cmV0dXJuIHIuYT1uPzI1NSp0dChyLmEpOnR0KHIuYSksbj9aLkhFWChyKTpmdC5IRVhBKHIpfSxNW24uUkdCXT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgaS5hLG4/Wi5SR0IoaSxyKTpmdC5SR0IoaSxyLmRlY2ltYWxzKX0sTS5SR0JBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSk7cmV0dXJuIG4/Wi5SR0IoaSxyKTpmdC5SR0JBKGksci5kZWNpbWFscyl9LE1bbi5IU0xdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSksbz1fKGkucixpLmcsaS5iKTtyZXR1cm4gZGVsZXRlIGkuYSxkZWxldGUgby5hLG4/Wi5IU0wobyxyKTpmdC5IU0woaSxyLmRlY2ltYWxzKX0sTS5IU0xBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSksbz1fKGkucixpLmcsaS5iLGkuYSk7cmV0dXJuIG4/Wi5IU0wobyxyKTpmdC5IU0xBKGksci5kZWNpbWFscyl9LE0pLG10PWZ1bmN0aW9uKGUsbil7dmFyIHI9SyhlLnIsbiksaT1LKGUuZyxuKSxvPUsoZS5iLG4pO3JldHVybiB0KHtyOnIsZzppLGI6b30sTyhlLFwiYVwiKT97YTpLKGUuYSxuKX06e30pfSxidD1mdW5jdGlvbihlLG4pe3JldHVybiB0KHtoOksoZS5oLG4pLHM6SyhlLnMsbiksbDpLKGUubCxuKX0sTyhlLFwiYVwiKT97YTpLKGUuYSxuKX06e30pfSxBdD1mdW5jdGlvbih0LGUpe3JldHVybntjOksodC5jLGUpLG06Syh0Lm0sZSkseTpLKHQueSxlKSxrOksodC5rLGUpfX0seXQ9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHIobHQodCxlKSxuKX0sRXQ9ZnVuY3Rpb24odCxlLG4scixpKXtuPDEmJihuPTUpO3ZhciBvPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uLTEsaT0oZS5yLXQucikvcixvPShlLmctdC5nKS9yLGE9KGUuYi10LmIpL3IsYz10dCh0LmEpLHU9KHR0KGUuYSktYykvcjtyZXR1cm4gQXJyYXkobikuZmlsbChudWxsKS5tYXAoKGZ1bmN0aW9uKG4scyl7cmV0dXJuIDA9PT1zP3Q6cz09PXI/ZTp7cjpLKHQucitpKnMpLGc6Syh0LmcrbypzKSxiOksodC5iK2EqcyksYTpLKGMrdSpzKX19KSl9KGx0KHQpLGx0KGUpLG4pO3JldHVybiBvLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxyKX0pKX0sRnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX29wdGlvbnM9VShlLHQpLHRoaXMucmdiPWx0KHQpLHRoaXMudXBkYXRlSFNMKCksdGhpcy51cGRhdGVDTVlLKCl9cmV0dXJuIG4ucHJvdG90eXBlLnVwZGF0ZVJHQj1mdW5jdGlvbigpe3RoaXMucmdiPXQodCh7fSx4KHRoaXMuaHNsLmgsdGhpcy5oc2wucyx0aGlzLmhzbC5sKSkse2E6dGhpcy5oc2wuYX0pfSxuLnByb3RvdHlwZS51cGRhdGVSR0JGcm9tQ01ZSz1mdW5jdGlvbigpe3RoaXMucmdiPXQodCh7fSxWKHRoaXMuY215ay5jLHRoaXMuY215ay5tLHRoaXMuY215ay55LHRoaXMuY215ay5rKSkse2E6dGhpcy5yZ2IuYX0pfSxuLnByb3RvdHlwZS51cGRhdGVIU0w9ZnVuY3Rpb24oKXt0aGlzLmhzbD1fKHRoaXMucmdiLnIsdGhpcy5yZ2IuZyx0aGlzLnJnYi5iLHRoaXMucmdiLmEpfSxuLnByb3RvdHlwZS51cGRhdGVDTVlLPWZ1bmN0aW9uKCl7dGhpcy5jbXlrPXEodGhpcy5yZ2Iucix0aGlzLnJnYi5nLHRoaXMucmdiLmIpfSxuLnByb3RvdHlwZS51cGRhdGVSR0JBbmRDTVlLPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlUkdCKCksdGhpcy51cGRhdGVDTVlLKCksdGhpc30sbi5wcm90b3R5cGUudXBkYXRlSFNMQW5kQ01ZSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZUhTTCgpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9LG4ucHJvdG90eXBlLnVwZGF0ZVJHQkFuZEhTTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZVJHQkZyb21DTVlLKCksdGhpcy51cGRhdGVIU0woKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRPcHRpb25zPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5fb3B0aW9ucz10KHQoe30sdGhpcy5fb3B0aW9ucyksZSksdGhpc30sbi5wcm90b3R5cGUuc2V0SD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wuaD1UKHQpLHRoaXMudXBkYXRlUkdCQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRTPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhzbC5zPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLmw9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Uj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZ2Iucj1OKHQsMCwyNTUpLHRoaXMudXBkYXRlSFNMQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRHPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJnYi5nPU4odCwwLDI1NSksdGhpcy51cGRhdGVIU0xBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmdiLmI9Tih0LDAsMjU1KSx0aGlzLnVwZGF0ZUhTTEFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0QT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wuYT10aGlzLnJnYi5hPU4odCwwLDEpLHRoaXN9LG4ucHJvdG90eXBlLnNldEM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5jPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sbi5wcm90b3R5cGUuc2V0TT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXlrLm09Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZEhTTCgpfSxuLnByb3RvdHlwZS5zZXRZPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsueT1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LG4ucHJvdG90eXBlLnNldEs9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5rPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwib3B0aW9uc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3B0aW9uc30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmgsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJTXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLnMsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJMXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmwsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLnIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJHXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLmcsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJCXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLmIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmEsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5jLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiTVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsubSx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIllcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5jbXlrLnksdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJLXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5rLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdC5IRVgodGhpcy5yZ2IpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWEFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ0LkhFWEEodGhpcy5yZ2IpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQk9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkJ9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQkFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLlJHQk9iamVjdCkse2E6dGhpcy5BfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTH19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMQU9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCh0KHt9LHRoaXMuSFNMT2JqZWN0KSx7YTp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuS319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS0FPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLkNNWUtPYmplY3QpLHthOnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IRVgoe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IRVgoe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CLGE6MjU1KnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5SR0Ioe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQkFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouUkdCKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQixhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSFNMKHtoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTH0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkhTTCh7aDp0aGlzLkgsczp0aGlzLlMsbDp0aGlzLkwsYTp0aGlzLkF9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5DTVlLKHtjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuS30sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5DTVlLKHtjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuSyxhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuLnRvSEVYT2JqZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPXV0KHQpO3JldHVybiB5dCh0LGUsMCxmdC5IRVgpfSxuLnRvSEVYPWZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWChuLnRvSEVYT2JqZWN0KHQpKX0sbi50b0hFWEFPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dXQodCk7cmV0dXJuIHl0KHQsZSwwLGZ0LkhFWEEpfSxuLnRvSEVYQT1mdW5jdGlvbih0KXtyZXR1cm4gWi5IRVgobi50b0hFWEFPYmplY3QodCkpfSxuLnRvUkdCT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5SR0IpfSxuLnRvUkdCPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuUkdCKTtyZXR1cm4gWi5SR0IoaSxyKX0sbi50b1JHQkFPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LlJHQkEpfSxuLnRvUkdCQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LlJHQkEpO3JldHVybiBaLlJHQihpLHIpfSxuLnRvSFNMT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5IU0wpfSxuLnRvSFNMPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuSFNMKTtyZXR1cm4gWi5IU0woaSxyKX0sbi50b0hTTEFPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkhTTEEpfSxuLnRvSFNMQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkhTTEEpO3JldHVybiBaLkhTTChpLHIpfSxuLnRvQ01ZS09iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuQ01ZSyl9LG4udG9DTVlLPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuQ01ZSyk7cmV0dXJuIFouQ01ZSyhpLHIpfSxuLnRvQ01ZS0FPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkNNWUtBKX0sbi50b0NNWUtBPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuQ01ZS0EpO3JldHVybiBaLkNNWUsoaSxyKX0sbi5nZXRCbGVuZEhFWE9iamVjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLEV0KHQsZSxuLDAsZnQuSEVYKX0sbi5nZXRCbGVuZEhFWD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPTUpLG4uZ2V0QmxlbmRIRVhPYmplY3QodCxlLHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKHQpfSkpfSxuLmdldEJsZW5kSEVYQU9iamVjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLEV0KHQsZSxuLDAsZnQuSEVYQSl9LG4uZ2V0QmxlbmRIRVhBPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9NSksbi5nZXRCbGVuZEhFWEFPYmplY3QodCxlLHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKHQpfSkpfSxuLmdldEJsZW5kUkdCT2JqZWN0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sci5kZWNpbWFscyxmdC5SR0IpfSxuLmdldEJsZW5kUkdCPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sNixmdC5SR0IpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIFouUkdCKG4sVShyLHQsZSkpfSkpfSxuLmdldEJsZW5kUkdCQU9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuUkdCQSl9LG4uZ2V0QmxlbmRSR0JBPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sNixmdC5SR0JBKS5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBaLlJHQihuLFUocix0LGUpKX0pKX0sbi5nZXRCbGVuZEhTTE9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuSFNMKX0sbi5nZXRCbGVuZEhTTD1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSk7dmFyIGk9VShyLHQsZSk7cmV0dXJuIEV0KHQsZSxuLDYsZnQuSFNMKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhTTCh0LGkpfSkpfSxuLmdldEJsZW5kSFNMQU9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuSFNMQSl9LG4uZ2V0QmxlbmRIU0xBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KTt2YXIgaT1VKHIsdCxlKTtyZXR1cm4gRXQodCxlLG4sNixmdC5IU0xBKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhTTCh0LGkpfSkpfSxuLmdldE1peEhFWE9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVgodCxlLCExKX0sbi5nZXRNaXhIRVg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYKHQsZSwhMCl9LG4uZ2V0TWl4SEVYQU9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVhBKHQsZSwhMSl9LG4uZ2V0TWl4SEVYQT1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVhBKHQsZSwhMCl9LG4uZ2V0TWl4UkdCT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQih0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0I9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peFJHQkFPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCQSh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0JBPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQkEodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTCh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0w9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peEhTTEFPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMQSh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0xBPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTEEodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0U2hhZGVzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLGh0KHQsZSwhMCxVKG4sdCkpfSxuLmdldFRpbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLGh0KHQsZSwhMSxVKG4sdCkpfSxuLmdldEhhcm1vbnk9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXIuQ09NUExFTUVOVEFSWSksdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09byYmKG89e30pLGZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBvO3JldHVybihvPXt9LG9bci5BTkFMT0dPVVNdPXB0LmJ1aWxkSGFybW9ueShlLG50LG4saSksb1tyLkNPTVBMRU1FTlRBUlldPXB0LmJ1aWxkSGFybW9ueShlLHJ0LG4saSksb1tyLlNQTElUX0NPTVBMRU1FTlRBUlldPXB0LmJ1aWxkSGFybW9ueShlLGl0LG4saSksb1tyLlRSSUFESUNdPXB0LmJ1aWxkSGFybW9ueShlLG90LG4saSksb1tyLlRFVFJBRElDXT1wdC5idWlsZEhhcm1vbnkoZSxhdCxuLGkpLG9bci5TUVVBUkVdPXB0LmJ1aWxkSGFybW9ueShlLGN0LG4saSksbylbdF19KGUsdCxuLFUobyx0KSl9LG59KCk7ZXhwb3J0e0Z0IGFzIENvbG9yVHJhbnNsYXRvcixyIGFzIEhhcm1vbnksaSBhcyBNaXh9O1xuIiwgImltcG9ydCB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgQ29sb3VyLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VTIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IGlzQ3NzIH0gZnJvbSBcIi4vU2V0dGluZ3NUYWJcIjtcblxuaW50ZXJmYWNlIFRoZW1lU3R5bGUge1xuXHRib3JkZXI/OiB7XG5cdFx0c2l6ZTogbnVtYmVyO1xuXHRcdHN0eWxlOiBzdHJpbmc7XG5cdH0sXG5cdHNjcm9sbGJhcj86IGJvb2xlYW47XG5cdGV4dHJhPzogc3RyaW5nO1xufVxuXG5jb25zdCBTVFlMRV9JRCA9IFwiY29kZS1zdHlsZXItc3R5bGVzXCI7XG5jb25zdCBUSEVNRV9TVFlMRVM6IFJlY29yZDxzdHJpbmcsVGhlbWVTdHlsZT4gPSB7XG5cdFwiUHJpc21cIjoge1xuXHRcdGJvcmRlcjoge1xuXHRcdFx0c2l6ZTogMSxcblx0XHRcdHN0eWxlOiBcIjFweCBzb2xpZCB2YXIoLS13aW5kb3ctYm9yZGVyLWNvbG9yKVwiLFxuXHRcdH0sXG5cdH0sXG5cdFwiU2hpbW1lcmluZyBGb2N1c1wiOiB7XG5cdFx0Ym9yZGVyOiB7XG5cdFx0XHRzaXplOiAxLFxuXHRcdFx0c3R5bGU6IFwidmFyKC0tdGhpbi1tdXRlZC1ib3JkZXIpXCIsXG5cdFx0fSxcblx0fSxcblx0XCJNaW5pbWFsXCI6IHtcblx0XHRleHRyYTogYFxuXHRcdFx0Lm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYuaXMtcmVhZGFibGUtbGluZS13aWR0aCA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0fVxuXHRcdGAsXG5cdH0sXG5cdFwiT2JzaWRpYW5pdGVcIjoge1xuXHRcdHNjcm9sbGJhcjogdHJ1ZSxcblx0fVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN0eWxpbmcoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncywgYXBwOiBBcHApOiB2b2lkIHtcblx0Y29uc3QgY3VycmVudFRoZW1lID0gZ2V0Q3VycmVudFRoZW1lKGFwcCk7XG5cdGxldCBzdHlsZVRhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNUWUxFX0lEKTtcblx0aWYgKCFzdHlsZVRhZykge1xuXHRcdHN0eWxlVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuXHRcdHN0eWxlVGFnLmlkID0gU1RZTEVfSUQ7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcblx0fVxuXHRzdHlsZVRhZy5pbm5lclRleHQgPSAoc3R5bGVUaGVtZUNvbG91cnMoc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpK3N0eWxlVGhlbWVTZXR0aW5ncyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MsY3VycmVudFRoZW1lKStzdHlsZUxhbmd1YWdlQ29sb3VycyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3Msc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMsY3VycmVudFRoZW1lKSkudHJpbSgpLnJlcGxhY2UoL1xccysvZyxcIiBcIik7XG5cdGFkZFRoZW1lU2V0dGluZ3NDbGFzc2VzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncyk7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVGhlbWVDb2xvdXJzICh0aGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmtleXModGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKS5yZWR1Y2UoKHJlc3VsdDogc3RyaW5nLCBhbHRlcm5hdGl2ZUhpZ2hsaWdodDogc3RyaW5nKSA9PiB7XG5cdFx0cmV0dXJuIHJlc3VsdCArIGBcblx0XHRcdGJvZHkuY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQtJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9IHtcblx0XHRcdFx0LS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1zdHlsZXItJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9LWhpZ2hsaWdodC1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0YDtcblx0fSxgXG5cdFx0Ym9keS5jb2RlLXN0eWxlci50aGVtZS1saWdodCB7XG5cdFx0XHQke2dldFRoZW1lQ29sb3Vycyh0aGVtZUNvbG91cnMubGlnaHQpfVxuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyLnRoZW1lLWRhcmsge1xuXHRcdFx0JHtnZXRUaGVtZUNvbG91cnModGhlbWVDb2xvdXJzLmRhcmspfVxuXHRcdH1cblx0YCk7XG59XG5cbmZ1bmN0aW9uIGdldFRoZW1lQ29sb3VycyAodGhlbWVNb2RlQ29sb3VyczogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoe1xuXHRcdFwiY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuY29kZWJsb2NrLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJjb2RlYmxvY2stdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcImd1dHRlci1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiZ3V0dGVyLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XCJndXR0ZXItYWN0aXZlLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuZ3V0dGVyLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XCJoZWFkZXItYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcImhlYWRlci10aXRsZS10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLWxhbmd1YWdlLXRhZy1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5sYW5ndWFnZVRhZy5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLXNlcGFyYXRvci1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGluZUNvbG91cixcblx0XHRcImFjdGl2ZS1jb2RlYmxvY2stbGluZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIsXG5cdFx0XCJhY3RpdmUtZWRpdG9yLWxpbmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyLFxuXHRcdFwiZGVmYXVsdC1oaWdobGlnaHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyLFxuXHRcdFwiYnV0dG9uLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmFkdmFuY2VkLmJ1dHRvbkNvbG91cixcblx0XHRcImJ1dHRvbi1hY3RpdmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuYWR2YW5jZWQuYnV0dG9uQWN0aXZlQ29sb3VyLFxuXHRcdFwiaW5saW5lLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS50ZXh0Q29sb3VyLFxuXHRcdFwiaW5saW5lLWNvbG91ci1hY3RpdmVcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUuYWN0aXZlVGV4dENvbG91cixcblx0XHRcImlubGluZS1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiaW5saW5lLXRpdGxlLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS50aXRsZVRleHRDb2xvdXIsXG5cdFx0Li4uT2JqZWN0LmVudHJpZXModGhlbWVNb2RlQ29sb3Vycy5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cykucmVkdWNlKChyZXN1bHQ6IFJlY29yZDxzdHJpbmcsQ29sb3VyPixbYWx0ZXJuYXRpdmVIaWdobGlnaHQsY29sb3VyXTogW3N0cmluZyxDb2xvdXJdKTogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0+IHtcblx0XHRcdHJlc3VsdFtgJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9LWhpZ2hsaWdodC1jb2xvdXJgXSA9IGNvbG91cjtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSx7fSlcblx0fSkucmVkdWNlKChyZXN1bHQ6IHN0cmluZywgW2Nzc1ZhcmlhYmxlLGNvbG91cl06IFtzdHJpbmcsQ29sb3VyXSk6IHN0cmluZyA9PiB7XG5cdFx0Y29uc3Qgc3R5bGVDb2xvdXIgPSBpc0Nzcyhjb2xvdXIpP2B2YXIoJHtjb2xvdXJ9KWA6Y29sb3VyO1xuXHRcdHJldHVybiByZXN1bHQgKyBgLS1jb2RlLXN0eWxlci0ke2Nzc1ZhcmlhYmxlfTogJHtzdHlsZUNvbG91cn07YDtcblx0fSxcIlwiKTtcbn1cblxuZnVuY3Rpb24gc3R5bGVUaGVtZVNldHRpbmdzICh0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgY3VycmVudFRoZW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYFxuXHRcdGJvZHkuY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcge1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtYm9sZDogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZD9cImJvbGRcIjpcIm5vcm1hbFwifTtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWl0YWxpYzogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljP1wiaXRhbGljXCI6XCJub3JtYWxcIn07XG5cdFx0XHRmb250LWZhbWlseTogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCE9PVwiXCI/dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQ6XCJ2YXIoLS1mb250LXRleHQpXCJ9O1xuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1oZWFkZXItdGV4dCB7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWJvbGQ6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEJvbGQ/XCJib2xkXCI6XCJub3JtYWxcIn07XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWl0YWxpYzogJHt0aGVtZVNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljP1wiaXRhbGljXCI6XCJub3JtYWxcIn07XG5cdFx0XHRmb250LWZhbWlseTogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCE9PVwiXCI/dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQ6XCJ2YXIoLS1mb250LXRleHQpXCJ9O1xuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyIHtcblx0XHRcdC0tYm9yZGVyLXJhZGl1czogJHt0aGVtZVNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmV9cHg7XG5cdFx0XHQtLWxhbmd1YWdlLWljb24tc2l6ZTogJHt0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplfXB4O1xuXHRcdFx0LS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wOiAke3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzP3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDpcIjEwMCVcIn07XG5cdFx0XHQtLWhlYWRlci1mb250LXNpemU6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9udFNpemV9cHg7XG5cdFx0XHQtLWxpbmUtd3JhcHBpbmc6ICR7dGhlbWVTZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXM/XCJwcmVcIjpcInByZS13cmFwXCJ9O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtZm9udC13ZWlnaHQ6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodH0wMDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXM6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy12ZXJ0aWNhbDogJHt0aGVtZVNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWx9cHg7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWx9cHg7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbDogJHt0aGVtZVNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUtZm9udC13ZWlnaHQ6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0fTAwO1xuXHRcdFx0JHshdGhlbWVTZXR0aW5ncy5jb2RlYmxvY2sud3JhcExpbmVzQWN0aXZlP1wiXCI6XCItLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmUtd3JhcDtcIn1cblx0XHRcdCR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXlDb2xvdXI/XCJcIjpcIi0taWNvbi1maWx0ZXI6IGdyYXlzY2FsZSgxKTtcIn1cblx0XHR9XG5cdFx0JHtUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5ib3JkZXI/YFxuXHRcdFx0Lm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdFx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcjpgKyAvL0B0cy1leHBlY3QtZXJyb3IgRG9lcyBFeGlzdFxuXHRcdFx0XHRcdFRIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zdHlsZStgO1xuXHRcdFx0XHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgtcGFkZGluZzogY2FsYyh2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSAtIGArIC8vQHRzLWV4cGVjdC1lcnJvciBEb2VzIEV4aXN0XG5cdFx0XHRcdFx0VEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uYm9yZGVyLnNpemUrYHB4KTtcblx0XHRcdFx0LS1mb2xkZWQtYm90dG9tLWJvcmRlcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdFx0XHR9XG5cdFx0YDpcIlwifVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uc2Nyb2xsYmFyP2Bcblx0XHRcdHByZS5jb2RlLXN0eWxlci1wcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuXHRcdFx0cHJlLmNvZGUtc3R5bGVyLXByZSA+IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdFx0d2lkdGg6IHZhcigtLWNvZGUtcGFkZGluZyk7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY29kZS1wYWRkaW5nKTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKTtcblx0XHRcdH1cblx0XHRgOlwiXCJ9XG5cdFx0JHtUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5leHRyYT9USEVNRV9TVFlMRVNbY3VycmVudFRoZW1lXS5leHRyYTpcIlwifVxuXHRgO1xufVxuXG5mdW5jdGlvbiBzdHlsZUxhbmd1YWdlQ29sb3VycyAodGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIHJlZGlyZWN0TGFuZ3VhZ2VzOiBSZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9PiwgY3VycmVudFRoZW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoTEFOR1VBR0VfTkFNRVMpLnJlZHVjZSgocmVzdWx0OiBzdHJpbmcsW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VEaXNwbGF5TmFtZV06IFtzdHJpbmcsc3RyaW5nXSk6IHN0cmluZyA9PiB7XG5cdFx0aWYgKExBTkdVQUdFUz8uW2xhbmd1YWdlRGlzcGxheU5hbWVdPy5jb2xvdXIgfHwgKGxhbmd1YWdlTmFtZSBpbiByZWRpcmVjdExhbmd1YWdlcyAmJiBcImNvbG91clwiIGluIHJlZGlyZWN0TGFuZ3VhZ2VzW2xhbmd1YWdlTmFtZV0pKSB7XG5cdFx0XHRyZXN1bHQgKz0gYFxuXHRcdFx0XHQubGFuZ3VhZ2UtJHtsYW5ndWFnZU5hbWV9IHtcblx0XHRcdFx0XHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6ICR7cmVkaXJlY3RMYW5ndWFnZXM/LltsYW5ndWFnZU5hbWVdPy5bXCJjb2xvdXJcIl0gPz8gTEFOR1VBR0VTW2xhbmd1YWdlRGlzcGxheU5hbWVdLmNvbG91cn07XG5cdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6ICR7dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cj90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg6MH1weDtcblx0XHRcdFx0fVxuXHRcdFx0YDtcblx0XHRcdGlmIChUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5ib3JkZXIpIHtcblx0XHRcdFx0cmVzdWx0ICs9IGBcblx0XHRcdFx0XHQubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmxhbmd1YWdlLSR7bGFuZ3VhZ2VOYW1lfSAge1xuXHRcdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6ICR7IC8vQHRzLWV4cGVjdC1lcnJvciBEb2VzIGV4aXN0XG5cdHRoZW1lU2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXI/dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoK1RIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zaXplOjB9cHg7XG5cdFx0XHRcdFx0fWA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sXCJcIik7XG59XG5cbmZ1bmN0aW9uIGFkZFRoZW1lU2V0dGluZ3NDbGFzc2VzICh0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyk6IHZvaWQge1xuXHR0aGVtZVNldHRpbmdzLmlubGluZS5zdHlsZSA/IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLXN0eWxlLWlubGluZVwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXN0eWxlLWlubGluZVwiKTtcblx0dGhlbWVTZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0ID8gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodFwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIik7XG5cdHRoZW1lU2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUgPyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIikgOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIik7XG5cblx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0XCIsXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtY29kZWJsb2NrXCIsXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtZWRpdG9yXCIpOyAvL1RPRE8gKEBtYXl1cmFua3YpIElzIHRoaXMgc2VjdGlvbiBuZWNlc3Nhcnk/IElzIHRoaXMgZnVuY3Rpb24gbmVjZXNzYXJ5P1xuXHRpZiAodGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgJiYgdGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpIC8vIEluc2lkZSBhbmQgb3V0c2lkZSBvZiBjb2RlYmxvY2tzIHdpdGggZGlmZmVyZW50IGNvbG91cnNcblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHRcIik7XG5cdGVsc2UgaWYgKHRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lICYmICF0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gT25seSBvdXRzaWRlIGNvZGVibG9ja3Ncblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtZWRpdG9yXCIpO1xuXHRlbHNlIGlmICghdGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgJiYgdGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpIC8vIE9ubHkgaW5zaWRlIGNvZGVibG9ja3Ncblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtY29kZWJsb2NrXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlU3R5bGVzQW5kQ2xhc3NlcygpOiB2b2lkIHtcblx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU1RZTEVfSUQpPy5yZW1vdmUoKTtcblx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFxuXHRcdFwiY29kZS1zdHlsZXJcIixcblx0XHRcImNvZGUtc3R5bGVyLXNob3ctbGluZS1udW1iZXJzXCIsXG5cdFx0XCJjb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0XCIsXG5cdFx0XCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIixcblx0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudFRoZW1lKGFwcDogQXBwKTogc3RyaW5nIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0cmV0dXJuIGFwcC52YXVsdC5nZXRDb25maWcoXCJjc3NUaGVtZVwiKTtcbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blJlbmRlcmVyLCBlZGl0b3JFZGl0b3JGaWVsZCwgZWRpdG9ySW5mb0ZpZWxkLCBlZGl0b3JMaXZlUHJldmlld0ZpZWxkIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBFZGl0b3JWaWV3LCBWaWV3VXBkYXRlLCBEZWNvcmF0aW9uLCBEZWNvcmF0aW9uU2V0LCBXaWRnZXRUeXBlLCBWaWV3UGx1Z2luLCBQbHVnaW5WYWx1ZSB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5pbXBvcnQgeyBFeHRlbnNpb24sIEVkaXRvclN0YXRlLCBTdGF0ZUZpZWxkLCBTdGF0ZUVmZmVjdCwgU3RhdGVFZmZlY3RUeXBlLCBSYW5nZSwgUmFuZ2VTZXRCdWlsZGVyLCBUcmFuc2FjdGlvbiwgTGluZSwgU2VsZWN0aW9uUmFuZ2UsIENvbXBhcnRtZW50IH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBzeW50YXhUcmVlLCB0b2tlbkNsYXNzTm9kZVByb3AgfSBmcm9tIFwiQGNvZGVtaXJyb3IvbGFuZ3VhZ2VcIjtcbmltcG9ydCB7IFN5bnRheE5vZGVSZWYgfSBmcm9tIFwiQGxlemVyL2NvbW1vblwiO1xuXG5pbXBvcnQgeyBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBTUEVDSUFMX0xBTkdVQUdFUyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnMsIHRlc3RPcGVuaW5nTGluZSwgdHJpbVBhcmFtZXRlckxpbmUsIGlzQ29kZWJsb2NrSWdub3JlZCwgaXNMYW5ndWFnZUlnbm9yZWQgfSBmcm9tIFwiLi9QYXJzaW5nL0NvZGVibG9ja1BhcnNpbmdcIjtcbmltcG9ydCB7IElubGluZUNvZGVQYXJhbWV0ZXJzLCBwYXJzZUlubGluZUNvZGUgfSBmcm9tIFwiLi9QYXJzaW5nL0lubGluZUNvZGVQYXJzaW5nXCI7XG5pbXBvcnQgeyBjcmVhdGVIZWFkZXIsIGNyZWF0ZUlubGluZU9wZW5lciwgZ2V0TGFuZ3VhZ2VJY29uLCBnZXRMaW5lQ2xhc3MsIGlzSGVhZGVySGlkZGVuIH0gZnJvbSBcIi4vQ29kZWJsb2NrRGVjb3JhdGluZ1wiO1xuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuXG5pbnRlcmZhY2UgU2V0dGluZ3NTdGF0ZSB7XG5cdGV4Y2x1ZGVkTGFuZ3VhZ2VzOiBzdHJpbmc7XG5cdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvZGVibG9ja0NvZGVNaXJyb3JFeHRlbnNpb25zKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBsaXZlUHJldmlld0NvbXBhcnRtZW50ID0gbmV3IENvbXBhcnRtZW50O1xuXHRjb25zdCBpZ25vcmVDb21wYXJ0bWVudCA9IG5ldyBDb21wYXJ0bWVudDtcblxuXHRjb25zdCBpbnRlcmFjdGlvbiA9IFZpZXdQbHVnaW4uZnJvbUNsYXNzKFxuXHRcdGNsYXNzIEV4YW1wbGVQbHVnaW4gaW1wbGVtZW50cyBQbHVnaW5WYWx1ZSB7XG5cdFx0XHRjb25zdHJ1Y3RvcigpIHtcblx0XHRcdFx0YWRkUmVmZXJlbmNlU3ludGF4SGlnaGxpZ2h0KCk7XG5cdFx0XHRcdGFkZFlhbWxGcm9udG1hdHRlclN5bnRheEhpZ2hsaWdodGluZygpO1xuXHRcdFx0fSAvLyB2aWV3OiBFZGl0b3JWaWV3XG5cdFx0XHR1cGRhdGUoKSB7fSAvLyB1cGRhdGU6IFZpZXdVcGRhdGVcblx0XHRcdGRlc3Ryb3koKSB7fVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZXZlbnRIYW5kbGVyczoge1xuXHRcdFx0XHRjbGljazogZnVuY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQsIHZpZXc6IEVkaXRvclZpZXcpIHtcblx0XHRcdFx0XHRpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmNvbnRhaW5zKFwiY29kZS1zdHlsZXItc291cmNlLWxpbmtcIikgJiYgZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0Y29uc3Qgc291cmNlUGF0aCA9IHZpZXcuc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aCA/PyBcIlwiO1xuXHRcdFx0XHRcdFx0Y29uc3QgZGVzdGluYXRpb24gPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRBdHRyaWJ1dGUoXCJkZXN0aW5hdGlvblwiKTtcblx0XHRcdFx0XHRcdGlmIChkZXN0aW5hdGlvbilcblx0XHRcdFx0XHRcdFx0cGx1Z2luLmFwcC53b3Jrc3BhY2Uub3BlbkxpbmtUZXh0KGRlc3RpbmF0aW9uLCBzb3VyY2VQYXRoLCB0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdCk7XG5cblx0Y29uc3QgaWdub3JlTGlzdGVuZXIgPSBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGU6IFZpZXdVcGRhdGUpID0+IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBtYWtlIHRoaXMgc3RhcnRTdGF0ZSBvbmx5PyBEb2VzIGl0IG5lZWQgdG8gYmU/XG5cdFx0Y29uc3QgbGl2ZVByZXZpZXdFeHRlbnNpb25zID0gbGl2ZVByZXZpZXdDb21wYXJ0bWVudC5nZXQodXBkYXRlLnN0YXRlKTtcblx0XHRjb25zdCB0b0lnbm9yZSA9IGlzU291cmNlTW9kZSh1cGRhdGUuc3RhdGUpO1xuXHRcdGNvbnN0IGZpbGVJZ25vcmUgPSBpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgIShBcnJheS5pc0FycmF5KGxpdmVQcmV2aWV3RXh0ZW5zaW9ucykgJiYgbGl2ZVByZXZpZXdFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCk7XG5cdFx0Y29uc3QgZmlsZVVuaWdub3JlID0gIXRvSWdub3JlICYmICFpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgKEFycmF5LmlzQXJyYXkobGl2ZVByZXZpZXdFeHRlbnNpb25zKSAmJiBsaXZlUHJldmlld0V4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRpZiAoaXNTb3VyY2VNb2RlKHVwZGF0ZS5zdGFydFN0YXRlKSAhPT0gdG9JZ25vcmUgfHwgZmlsZUlnbm9yZSB8fCBmaWxlVW5pZ25vcmUpIHtcblx0XHRcdHVwZGF0ZS52aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBsaXZlUHJldmlld0NvbXBhcnRtZW50LnJlY29uZmlndXJlKCh0b0lnbm9yZXx8ZmlsZUlnbm9yZSk/W106W2hlYWRlckRlY29yYXRpb25zLGxpbmVEZWNvcmF0aW9ucyxmb2xkRGVjb3JhdGlvbnMsaGlkZGVuRGVjb3JhdGlvbnNdKX0pO1xuXHRcdFx0aWYgKCF0b0lnbm9yZSAmJiAhZmlsZUlnbm9yZSlcblx0XHRcdFx0dXBkYXRlLnZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGZvbGRBbGwub2Yoe30pfSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaWdub3JlRmlsZUxpc3RlbmVyID0gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlOiBWaWV3VXBkYXRlKSA9PiB7XG5cdFx0Y29uc3QgaWdub3JlRXh0ZW5zaW9ucyA9IGlnbm9yZUNvbXBhcnRtZW50LmdldCh1cGRhdGUuc3RhdGUpO1xuXHRcdGNvbnN0IGZpbGVJZ25vcmUgPSBpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgIShBcnJheS5pc0FycmF5KGlnbm9yZUV4dGVuc2lvbnMpICYmIGlnbm9yZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRjb25zdCBmaWxlVW5pZ25vcmUgPSAhaXNGaWxlSWdub3JlZCh1cGRhdGUuc3RhdGUpICYmIChBcnJheS5pc0FycmF5KGlnbm9yZUV4dGVuc2lvbnMpICYmIGlnbm9yZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRpZiAoZmlsZUlnbm9yZSB8fCBmaWxlVW5pZ25vcmUpXG5cdFx0XHR1cGRhdGUudmlldy5kaXNwYXRjaCh7ZWZmZWN0czogaWdub3JlQ29tcGFydG1lbnQucmVjb25maWd1cmUoZmlsZUlnbm9yZT9bXTppbmxpbmVEZWNvcmF0aW9ucyl9KTtcblx0fSk7XG5cblx0Y29uc3Qgc2V0dGluZ3NTdGF0ZSA9IFN0YXRlRmllbGQuZGVmaW5lPFNldHRpbmdzU3RhdGU+KHtcblx0XHRjcmVhdGUoKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRleGNsdWRlZExhbmd1YWdlczogc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMsXG5cdFx0XHRcdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QsXG5cdFx0XHR9O1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBTZXR0aW5nc1N0YXRlKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRpZiAodmFsdWUucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCAhPT0gc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCB8fCB2YWx1ZS5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpXG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0ZXhjbHVkZWRMYW5ndWFnZXM6IHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLFxuXHRcdFx0XHRcdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QsXG5cdFx0XHRcdH07XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgY2hhcldpZHRoU3RhdGUgPSBTdGF0ZUZpZWxkLmRlZmluZTxudW1iZXI+KHsgLy9UT0RPIChAbWF5dXJhbmt2KSBJbXByb3ZlIGltcGxlbWVudGF0aW9uXG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IG51bWJlciB7XG5cdFx0XHRyZXR1cm4oc3RhdGUuZmllbGQoZWRpdG9yRWRpdG9yRmllbGQpLmRlZmF1bHRDaGFyYWN0ZXJXaWR0aCAqIDEuMTA1KTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBudW1iZXIge1xuXHRcdFx0cmV0dXJuKHRyYW5zYWN0aW9uLnN0YXRlLmZpZWxkKGVkaXRvckVkaXRvckZpZWxkKS5kZWZhdWx0Q2hhcmFjdGVyV2lkdGggKiAxLjEwNSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaGVhZGVyRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7IC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlIChkb2VzIHRoaXMgbmVlZCB0byBiZSB1cGRhdGVkIGluIHRoaXMgbWFubmVyPylcblx0XHRjcmVhdGUoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRyZXR1cm4gYnVpbGRIZWFkZXJEZWNvcmF0aW9ucyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSGVhZGVyRGVjb3JhdGlvbnModHJhbnNhY3Rpb24uc3RhdGUsKHBvc2l0aW9uKT0+aXNGb2xkZWQodHJhbnNhY3Rpb24uc3RhdGUscG9zaXRpb24pKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgbGluZURlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oeyAvL1RPRE8gKEBtYXl1cmFua3YpIERlYWwgd2l0aCBzb3VyY2UgbW9kZSAtIG1ha2UgYXBwbHkgc3R5bGluZyBpbiBzb3VyY2UgbW9kZVxuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZExpbmVEZWNvcmF0aW9ucyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkTGluZURlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgZm9sZERlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oe1xuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBjaGFuZ2UgdGhpcz9cblx0XHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdFx0aWYgKCFpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKVxuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkRW5kLnRvLGZvbGREZWNvcmF0aW9uKChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKS51cGRhdGUoe2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlcik9PmZyb20hPT10b30pO1xuXHRcdFx0dmFsdWUgPSB2YWx1ZS51cGRhdGUoe2FkZDogdHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT4oZWZmZWN0LmlzKGZvbGQpfHxlZmZlY3QuaXModW5oaWRlRm9sZCkpKS5tYXAoZWZmZWN0PT5mb2xkUmVnaW9uKGVmZmVjdC52YWx1ZSkpfSk7IC8vVE9ETyAoQG1heXVyYW5rdikgQ2FuIEkgcmVtb3ZlIGAsIHNvcnQ6IHRydWVgXG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PihlZmZlY3QuaXModW5mb2xkKXx8ZWZmZWN0LmlzKGhpZGVGb2xkKSkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUodW5mb2xkUmVnaW9uKGVmZmVjdC52YWx1ZSkpKTtcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHJlbW92ZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHJlbW92ZUZvbGRMYW5ndWFnZXMoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdFx0cHJvdmlkZShmaWVsZDogU3RhdGVGaWVsZDxEZWNvcmF0aW9uU2V0Pik6IEV4dGVuc2lvbiB7XG5cdFx0XHRyZXR1cm4gRWRpdG9yVmlldy5kZWNvcmF0aW9ucy5mcm9tKGZpZWxkKTtcblx0XHR9LFxuXHR9KTtcblx0Y29uc3QgaGlkZGVuRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7XG5cdFx0Y3JlYXRlKCk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRpZiAodHJhbnNhY3Rpb24uZWZmZWN0cy5zb21lKGVmZmVjdD0+ZWZmZWN0LmlzKGZvbGRBbGwpKSlcblx0XHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHRcdHZhbHVlID0gdmFsdWUubWFwKHRyYW5zYWN0aW9uLmNoYW5nZXMpLnVwZGF0ZSh7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKT0+ZnJvbSE9PXRvfSk7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLnVwZGF0ZSh7YWRkOiB0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhoaWRlRm9sZCkpLm1hcChlZmZlY3Q9PmVmZmVjdC52YWx1ZSl9KTsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSByZW1vdmUgYCwgc29ydDogdHJ1ZWBcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHVuaGlkZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHVuaGlkZUZvbGRVcGRhdGUoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXMocmVtb3ZlRm9sZCkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUocmVtb3ZlRm9sZExhbmd1YWdlcyhlZmZlY3QudmFsdWUpKSk7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaW5saW5lRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7XG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUpO1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBEZWNvcmF0aW9uU2V0LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZElubGluZURlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblxuXHRmdW5jdGlvbiBzZXR0aW5nc0NoYW5nZUV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbikgPT4ge1xuXHRcdFx0bGV0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgaW5pdGlhbFNldHRpbmdzID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChzZXR0aW5nc1N0YXRlKTtcblx0XHRcdGxldCByZWFkZEZvbGRMYW5ndWFnZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0XHRcdGxldCByZW1vdmVGb2xkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cdFx0XHRpZiAoaW5pdGlhbFNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QgIT09IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpIHtcblx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0Y29uc3QgY29kZWJsb2NrUHJvY2Vzc29ycyA9IE9iamVjdC5rZXlzKE1hcmtkb3duUHJldmlld1JlbmRlcmVyLmNvZGVCbG9ja1Bvc3RQcm9jZXNzb3JzKTtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcyA9IGNvZGVibG9ja1Byb2Nlc3NvcnMuZmlsdGVyKGxhbmc9PiFpbml0aWFsU2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdC5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKS5pbmNsdWRlcyhsYW5nKSk7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MgPSBjb2RlYmxvY2tQcm9jZXNzb3JzLmZpbHRlcihsYW5nPT4hc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdC5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKS5pbmNsdWRlcyhsYW5nKSk7XG5cdFx0XHRcdHJlbW92ZUZvbGRMYW5ndWFnZXMgPSByZW1vdmVGb2xkTGFuZ3VhZ2VzLmNvbmNhdChzZXREaWZmZXJlbmNlKGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MsaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRDb2RlYmxvY2tzLGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MpIGFzIEFycmF5PHN0cmluZz4pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGluaXRpYWxTZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpIHtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkTGFuZ3VhZ2VzID0gaW5pdGlhbFNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLnNwbGl0KFwiLFwiKS5tYXAobGFuZz0+bGFuZy50cmltKCkpO1xuXHRcdFx0XHRjb25zdCBjdXJyZW50RXhjbHVkZWRMYW5ndWFnZXMgPSBzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcy5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKTtcblx0XHRcdFx0cmVtb3ZlRm9sZExhbmd1YWdlcyA9IHJlbW92ZUZvbGRMYW5ndWFnZXMuY29uY2F0KHNldERpZmZlcmVuY2UoY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzLGluaXRpYWxFeGNsdWRlZExhbmd1YWdlcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRMYW5ndWFnZXMsY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzKSBhcyBBcnJheTxzdHJpbmc+KTtcblx0XHRcdH1cblx0XHRcdGlmIChyZW1vdmVGb2xkTGFuZ3VhZ2VzLmxlbmd0aCAhPT0gMClcblx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKHJlbW92ZUZvbGQub2YocmVtb3ZlRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0aWYgKHJlYWRkRm9sZExhbmd1YWdlcy5sZW5ndGggIT09IDApXG5cdFx0XHRcdGFkZEVmZmVjdHMgPSBhZGRFZmZlY3RzLmNvbmNhdChjb252ZXJ0UmVhZGRGb2xkKHRyYW5zYWN0aW9uLHJlYWRkRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0ZnVuY3Rpb24gY3Vyc29yRm9sZEV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcblx0XHRcdGNvbnN0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgZm9sZERlY29yYXRpb25zU3RhdGUgPSB0cmFuc2FjdGlvbi5zdGFydFN0YXRlLmZpZWxkKGZvbGREZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRjb25zdCBoaWRkZW5EZWNvcmF0aW9uc1N0YXRlID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChoaWRkZW5EZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHR0cmFuc2FjdGlvbi5uZXdTZWxlY3Rpb24ucmFuZ2VzLmZvckVhY2goKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9Pntcblx0XHRcdFx0Zm9sZERlY29yYXRpb25zU3RhdGUuYmV0d2VlbihyYW5nZS5mcm9tLCByYW5nZS50bywgKGZvbGRGcm9tLCBmb2xkVG8sIGRlY29yYXRpb25WYWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGlmIChyYW5nZUludGVyYWN0aW9uKGZvbGRGcm9tLGZvbGRUbyxyYW5nZSkpXG5cdFx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2goaGlkZUZvbGQub2Yoe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvLCB2YWx1ZTogZGVjb3JhdGlvblZhbHVlfSkpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Zm9yIChsZXQgaXRlciA9IGhpZGRlbkRlY29yYXRpb25zU3RhdGUuaXRlcigpOyBpdGVyLnZhbHVlICE9PSBudWxsOyBpdGVyLm5leHQoKSkge1xuXHRcdFx0XHRcdGlmICghcmFuZ2VJbnRlcmFjdGlvbihpdGVyLmZyb20saXRlci50byxyYW5nZSkpXG5cdFx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2godW5oaWRlRm9sZC5vZih7ZnJvbTogaXRlci5mcm9tLCB0bzogaXRlci50bywgdmFsdWU6IGl0ZXIudmFsdWV9KSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0ZnVuY3Rpb24gZG9jdW1lbnRGb2xkRXh0ZW5kZXIoKSB7XG5cdFx0cmV0dXJuIEVkaXRvclN0YXRlLnRyYW5zYWN0aW9uRXh0ZW5kZXIub2YoKHRyYW5zYWN0aW9uKSA9PiB7XG5cdFx0XHRsZXQgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhmb2xkQWxsKSkuZm9yRWFjaChlZmZlY3Q9Pntcblx0XHRcdFx0aWYgKHR5cGVvZiBlZmZlY3QudmFsdWU/LnRvRm9sZCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoZG9jdW1lbnRGb2xkKHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUsZWZmZWN0LnZhbHVlLnRvRm9sZCkpOyAvL1RPRE8gKEBtYXl1cmFua3YpIERvZXMgdGhpcyBuZWVkIHRvIGJlIHN0YXRlXG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoZG9jdW1lbnRGb2xkKHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUpKTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBVcmdlbnQ6IEF1dG8gYWRkIHRlbXAgdW5mb2xkIG9uIHR5cGUgb2YgZm9sZCBhbmQgcmVtb3ZlIGJvdGggZm9sZCBhbmQgdGVtcCB1bmZvbGQgZm9yIHJlbW92YWxcblxuXHRjbGFzcyBMaW5lTnVtYmVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGluZU51bWJlcjogbnVtYmVyO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0bWF4TGluZU51bTogbnVtYmVyO1xuXHRcdGVtcHR5OiBib29sZWFuO1xuXG5cdFx0Y29uc3RydWN0b3IobGluZU51bWJlcjogbnVtYmVyLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBtYXhMaW5lTnVtOiBudW1iZXIsIGVtcHR5OiBib29sZWFuID0gZmFsc2UpIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuXHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzID0gY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdHRoaXMubWF4TGluZU51bSA9IG1heExpbmVOdW07XG5cdFx0XHR0aGlzLmVtcHR5ID0gZW1wdHk7XG5cdFx0fVxuXG5cdFx0ZXEob3RoZXI6IExpbmVOdW1iZXJXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiB0aGlzLmxpbmVOdW1iZXIgPT09IG90aGVyLmxpbmVOdW1iZXIgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCAmJiB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgJiYgdGhpcy5tYXhMaW5lTnVtID09PSBvdGhlci5tYXhMaW5lTnVtICYmIHRoaXMuZW1wdHkgPT09IG90aGVyLmVtcHR5O1xuXHRcdH1cblxuXHRcdHRvRE9NKCk6IEhUTUxFbGVtZW50IHtcblx0XHRcdHJldHVybiBjcmVhdGVTcGFuKHthdHRyOiB7c3R5bGU6IHRoaXMubWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCA+ICh0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpLmxlbmd0aD9cIndpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1wiOlwiXCJ9LCBjbHM6IFwiY29kZS1zdHlsZXItbGluZS1udW1iZXJcIiwgdGV4dDogdGhpcy5lbXB0eT9cIlwiOih0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSk7XG5cdFx0fVxuXHR9XG5cdGNsYXNzIENvbW1lbnRMaW5rV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGlua1RleHQ6IHN0cmluZztcblx0XHRzb3VyY2VQYXRoOiBzdHJpbmc7XG5cblx0XHRjb25zdHJ1Y3RvcihsaW5rVGV4dDogc3RyaW5nLCBzb3VyY2VQYXRoOiBzdHJpbmcpIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmxpbmtUZXh0ID0gbGlua1RleHQ7XG5cdFx0XHR0aGlzLnNvdXJjZVBhdGggPSBzb3VyY2VQYXRoO1xuXHRcdH1cblxuXHRcdGVxKG90aGVyOiBDb21tZW50TGlua1dpZGdldCk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIHRoaXMubGlua1RleHQgPT09IG90aGVyLmxpbmtUZXh0ICYmIHRoaXMuc291cmNlUGF0aCA9PT0gb3RoZXIuc291cmNlUGF0aDtcblx0XHR9XG5cblx0XHR0b0RPTSgpOiBIVE1MRWxlbWVudCB7XG5cdFx0XHRjb25zdCBsaW5rUGFyZW50RWxlbWVudCA9IGNyZWF0ZURpdih7YXR0cjoge2NsYXNzOiBcImNvZGUtc3R5bGVyLWNvbW1lbnQtbGlua1wifX0pO1xuXHRcdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCx0aGlzLmxpbmtUZXh0LGxpbmtQYXJlbnRFbGVtZW50LHRoaXMuc291cmNlUGF0aCxwbHVnaW4pO1xuXHRcdFx0cmV0dXJuIGxpbmtQYXJlbnRFbGVtZW50O1xuXHRcdH1cblx0fVxuXHRjbGFzcyBIZWFkZXJXaWRnZXQgZXh0ZW5kcyBXaWRnZXRUeXBlIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzO1xuXHRcdHNvdXJjZVBhdGg6IHN0cmluZztcblx0XHRwbHVnaW46IENvZGVTdHlsZXJQbHVnaW47XG5cdFx0aWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGZvbGRlZDogYm9vbGVhbjtcblx0XHRoaWRkZW46IGJvb2xlYW47XG5cblx0XHRjb25zdHJ1Y3Rvcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBmb2xkZWQ6IGJvb2xlYW4sIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRcdFx0c3VwZXIoKTtcblx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyA9IHN0cnVjdHVyZWRDbG9uZShjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncyA9IHN0cnVjdHVyZWRDbG9uZSh0aGVtZVNldHRpbmdzKTtcblx0XHRcdHRoaXMuc291cmNlUGF0aCA9IHNvdXJjZVBhdGg7XG5cdFx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblx0XHRcdHRoaXMuaWNvblVSTCA9IGdldExhbmd1YWdlSWNvbih0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UsdGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29ucyk7XG5cdFx0XHR0aGlzLmZvbGRlZCA9IGZvbGRlZDtcblx0XHRcdHRoaXMuaGlkZGVuID0gaXNIZWFkZXJIaWRkZW4odGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLHRoaXMudGhlbWVTZXR0aW5ncyx0aGlzLmljb25VUkwpO1xuXHRcdH1cblxuXHRcdGVxKG90aGVyOiBIZWFkZXJXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSAmJlxuXHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5wbGFjZWhvbGRlciAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciA9PT0gb3RoZXIudGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyICYmXG5cdFx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ICYmXG5cdFx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gb3RoZXIudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSAmJlxuXHRcdFx0XHR0aGlzLmZvbGRlZCA9PT0gb3RoZXIuZm9sZGVkICYmXG5cdFx0XHRcdHRoaXMuaWNvblVSTCA9PT0gb3RoZXIuaWNvblVSTFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHR0b0RPTSh2aWV3OiBFZGl0b3JWaWV3KTogSFRNTEVsZW1lbnQge1xuXHRcdFx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlSGVhZGVyKHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyx0aGlzLnRoZW1lU2V0dGluZ3MsdGhpcy5zb3VyY2VQYXRoLHRoaXMucGx1Z2luKTtcblx0XHRcdGlmICh0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UhPT1cIlwiKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChgbGFuZ3VhZ2UtJHt0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCk7XG5cdFx0XHRpZiAodGhpcy5mb2xkZWQpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaGVhZGVyLWZvbGRlZFwiKTtcblx0XHRcdGhlYWRlckNvbnRhaW5lci5vbmNsaWNrID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGlmICghKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk/LmNsYXNzTGlzdD8uY29udGFpbnMoXCJpbnRlcm5hbC1saW5rXCIpICYmICEoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8uY2xhc3NMaXN0Py5jb250YWlucyhcImV4dGVybmFsLWxpbmtcIikpXG5cdFx0XHRcdFx0Zm9sZE9uQ2xpY2sodmlldyxoZWFkZXJDb250YWluZXIsdGhpcy5mb2xkZWQsdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKTtcblx0XHRcdH07XG5cdFx0XHRyZXR1cm4gaGVhZGVyQ29udGFpbmVyO1xuXHRcdH1cblx0fVxuXHRjbGFzcyBPcGVuZXJXaWRnZXQgZXh0ZW5kcyBXaWRnZXRUeXBlIHtcblx0XHRpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdFx0cGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luO1xuXG5cdFx0Y29uc3RydWN0b3IgKGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdFx0XHRzdXBlcigpO1xuXHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycyA9IGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRcdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XG5cdFx0fVxuXG5cdFx0ZXEob3RoZXI6IE9wZW5lcldpZGdldCk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSAmJlxuXHRcdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlID09IG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlICYmXG5cdFx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbiA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uICYmXG5cdFx0XHRcdGdldExhbmd1YWdlSWNvbih0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpID09IGdldExhbmd1YWdlSWNvbihvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSxvdGhlci5wbHVnaW4ubGFuZ3VhZ2VJY29ucylcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dG9ET00oKTogSFRNTEVsZW1lbnQge1xuXHRcdFx0cmV0dXJuIGNyZWF0ZUlubGluZU9wZW5lcih0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMsW1wiY29kZS1zdHlsZXItaW5saW5lLW9wZW5lclwiLFwiY20taW5saW5lLWNvZGVcIl0pO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIGJ1aWxkSGVhZGVyRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlLCBmb2xkVmFsdWU6IChwb3NpdGlvbjogbnVtYmVyLCBkZWZhdWx0Rm9sZDogYm9vbGVhbik9PmJvb2xlYW4gPSAocG9zaXRpb24sZGVmYXVsdEZvbGQpPT5kZWZhdWx0Rm9sZCkge1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlUGF0aCA9IHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGggPz8gXCJcIjtcblx0XHRsZXQgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRzeW50YXhUcmVlKHN0YXRlKS5pdGVyYXRlKHtcblx0XHRcdGVudGVyOiAoc3ludGF4Tm9kZSkgPT4ge1xuXHRcdFx0XHRpZiAoc3ludGF4Tm9kZS50eXBlLm5hbWUuaW5jbHVkZXMoXCJIeXBlck1ELWNvZGVibG9jay1iZWdpblwiKSkge1xuXHRcdFx0XHRcdGNvbnN0IHN0YXJ0TGluZSA9IHN0YXRlLmRvYy5saW5lQXQoc3ludGF4Tm9kZS5mcm9tKTtcblx0XHRcdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzKHRyaW1QYXJhbWV0ZXJMaW5lKHN0YXJ0TGluZS50ZXh0LnRvU3RyaW5nKCkpLHNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0aWYgKCFpc0xhbmd1YWdlSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKSAmJiAhaXNDb2RlYmxvY2tJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Usc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCkgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlKSB7XG5cdFx0XHRcdFx0XHRpZiAoIVNQRUNJQUxfTEFOR1VBR0VTLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSlcblx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoc3RhcnRMaW5lLmZyb20sc3RhcnRMaW5lLmZyb20sRGVjb3JhdGlvbi53aWRnZXQoe3dpZGdldDogbmV3IEhlYWRlcldpZGdldChjb2RlYmxvY2tQYXJhbWV0ZXJzLGZvbGRWYWx1ZShzdGFydExpbmUuZnJvbSxjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCksc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLHNvdXJjZVBhdGgscGx1Z2luKSwgYmxvY2s6IHRydWUsIHNpZGU6IC0xfSkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGJ1aWxkTGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlUGF0aCA9IHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGggPz8gXCJcIjtcblx0XHRjb25zdCBzb3VyY2VNb2RlID0gaXNTb3VyY2VNb2RlKHN0YXRlKTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdGNvbnN0IGZvbGRTdGFydCA9IHN0YXRlLmRvYy5saW5lQXQoaXRlci5mcm9tKTtcblx0XHRcdGNvbnN0IHN0YXJ0RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGZvbGRTdGFydC50ZXh0LnRvU3RyaW5nKCkpO1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdGNvbnN0IHNob3dMaW5lTnVtYmVycyA9IChzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQ7XG5cdFx0XHRsZXQgZm9sZEVuZDogTGluZSB8IG51bGwgPSBudWxsO1xuXHRcdFx0bGV0IG1heExpbmVOdW06IG51bWJlciA9IDA7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0bWF4TGluZU51bSA9IGZvbGRFbmQudG8tZm9sZFN0YXJ0LmZyb20tMStjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldDtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgbGluZU51bWJlck1hcmdpbiA9IChtYXhMaW5lTnVtLnRvU3RyaW5nKCkubGVuZ3RoID4gMik/bWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCAqIHN0YXRlLmZpZWxkKGNoYXJXaWR0aFN0YXRlKTp1bmRlZmluZWQ7XG5cdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkU3RhcnQuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe2F0dHJpYnV0ZXM6IHtzdHlsZTogYC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoOiAke2xpbmVOdW1iZXJNYXJnaW4/bGluZU51bWJlck1hcmdpbitcInB4XCI6XCJjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweClcIn07YCwgY2xhc3M6IFwiY29kZS1zdHlsZXItbGluZVwiKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdGlmIChzaG93TGluZU51bWJlcnMpXG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGZvbGRTdGFydC5mcm9tLGZvbGRTdGFydC5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KDAsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHRydWUpfSkpO1xuXHRcdFx0Zm9yIChsZXQgaSA9IGZvbGRTdGFydC5udW1iZXIrMTsgaSA8PSBzdGF0ZS5kb2MubGluZXM7IGkrKykge1xuXHRcdFx0XHRjb25zdCBsaW5lID0gc3RhdGUuZG9jPy5saW5lKGkpO1xuXHRcdFx0XHRpZiAoIWxpbmUpXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0XHRcdGlmICh0ZXN0T3BlbmluZ0xpbmUobGluZVRleHQpID09PSBzdGFydERlbGltaXRlcikge1xuXHRcdFx0XHRcdGZvbGRFbmQgPSBsaW5lO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGxpbmUuZnJvbSxsaW5lLmZyb20sRGVjb3JhdGlvbi5saW5lKHthdHRyaWJ1dGVzOiB7c3R5bGU6IGAtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aDogJHtsaW5lTnVtYmVyTWFyZ2luP2xpbmVOdW1iZXJNYXJnaW4rXCJweFwiOlwiY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpXCJ9O2AsIGNsYXNzOiAoKFNQRUNJQUxfTEFOR1VBR0VTLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSk/XCJjb2RlLXN0eWxlci1saW5lXCI6Z2V0TGluZUNsYXNzKGNvZGVibG9ja1BhcmFtZXRlcnMsaS1mb2xkU3RhcnQubnVtYmVyLGxpbmUudGV4dCkuam9pbihcIiBcIikpKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdFx0aWYgKHNob3dMaW5lTnVtYmVycylcblx0XHRcdFx0XHRidWlsZGVyLmFkZChsaW5lLmZyb20sbGluZS5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KGkgLSBmb2xkU3RhcnQubnVtYmVyLCBjb2RlYmxvY2tQYXJhbWV0ZXJzLCBtYXhMaW5lTnVtKX0pKTtcblx0XHRcdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwibWFya2Rvd25cIilcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0Y29udmVydENvbW1lbnRMaW5rcyhzdGF0ZSwgbGluZSwgc291cmNlUGF0aCwgYnVpbGRlciwgc291cmNlTW9kZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZm9sZEVuZCAhPT0gbnVsbCkge1xuXHRcdFx0XHRidWlsZGVyLmFkZChmb2xkRW5kLmZyb20sZm9sZEVuZC5mcm9tLERlY29yYXRpb24ubGluZSh7YXR0cmlidXRlczoge3N0eWxlOiBgLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGg6ICR7bGluZU51bWJlck1hcmdpbj9saW5lTnVtYmVyTWFyZ2luK1wicHhcIjpcImNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLW1pbi13aWR0aCkgLSAxMnB4KVwifTtgLCBjbGFzczogXCJjb2RlLXN0eWxlci1saW5lXCIrKFtcIl4kXCJdLmNvbmNhdChTUEVDSUFMX0xBTkdVQUdFUykuc29tZShyZWdFeHAgPT4gbmV3IFJlZ0V4cChyZWdFeHApLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpP1wiXCI6YCBsYW5ndWFnZS0ke2NvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCl9fSkpO1xuXHRcdFx0XHRpZiAoc2hvd0xpbmVOdW1iZXJzKVxuXHRcdFx0XHRcdGJ1aWxkZXIuYWRkKGZvbGRFbmQuZnJvbSxmb2xkRW5kLmZyb20sRGVjb3JhdGlvbi53aWRnZXQoe3dpZGdldDogbmV3IExpbmVOdW1iZXJXaWRnZXQoMCxjb2RlYmxvY2tQYXJhbWV0ZXJzLG1heExpbmVOdW0sdHJ1ZSl9KSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGNvbnZlcnRDb21tZW50TGlua3Moc3RhdGU6IEVkaXRvclN0YXRlLCBsaW5lOiBMaW5lLCBzb3VyY2VQYXRoOiBzdHJpbmcsIGJ1aWxkZXI6IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPiwgc291cmNlTW9kZTogYm9vbGVhbikge1xuXHRcdHN5bnRheFRyZWUoc3RhdGUpLml0ZXJhdGUoe1xuXHRcdFx0ZW50ZXI6IChzeW50YXhOb2RlKSA9PiB7XG5cdFx0XHRcdGlmIChzeW50YXhOb2RlLnR5cGUubmFtZS5pbmNsdWRlcyhcImNvbW1lbnRfaG1kLWNvZGVibG9ja1wiKSkge1xuXHRcdFx0XHRcdGNvbnN0IGNvbW1lbnRUZXh0ID0gc3RhdGUuc2xpY2VEb2Moc3ludGF4Tm9kZS5mcm9tLHN5bnRheE5vZGUudG8pO1xuXHRcdFx0XHRcdGNvbnN0IGxpbmtNYXRjaGVzID0gWy4uLmNvbW1lbnRUZXh0Lm1hdGNoQWxsKC8oPzpcXFtcXFtbXlxcXXxcXHJcXG5dKz8oPzpcXHxbXlxcXXxcXHJcXG5dKz8pP1xcXVxcXXxcXFsuKj9cXF1cXCguK1xcKSkvZyldO1xuXHRcdFx0XHRcdGxpbmtNYXRjaGVzLmZvckVhY2goKGxpbmtNYXRjaDogUmVnRXhwTWF0Y2hBcnJheSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBsaW5rTWF0Y2g/LmluZGV4ID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRjb25zdCBmcm9tID0gc3ludGF4Tm9kZS5mcm9tICsgbGlua01hdGNoLmluZGV4O1xuXHRcdFx0XHRcdFx0Y29uc3QgdG8gPSBmcm9tICsgbGlua01hdGNoWzBdLmxlbmd0aDtcblx0XHRcdFx0XHRcdGlmIChzb3VyY2VNb2RlIHx8IHN0YXRlLnNlbGVjdGlvbi5yYW5nZXMuc29tZSgocmFuZ2U6IFNlbGVjdGlvblJhbmdlKT0+cmFuZ2VJbnRlcmFjdGlvbihmcm9tLHRvLHJhbmdlKSkpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbWRCcmVhayA9IGxpbmtNYXRjaFswXS5pbmRleE9mKFwiXShcIik7XG5cdFx0XHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgQWRkIGVkaXRvciB3aWRlIHZpZXdlciB0byBhbGxvdyBjbGlja2luZyBvbiBmaWxlcyB3aXRoIGN1cnNvciBpbnNpZGVcblx0XHRcdFx0XHRcdFx0aWYgKG1kQnJlYWsgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgd2lraWxpbmtTZXBhcmF0b3IgPSBsaW5rTWF0Y2hbMF0uaW5kZXhPZihcInxcIik7XG5cdFx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoZnJvbSsyLHRvLTIsRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogXCJjbS1obWQtaW50ZXJuYWwtbGluayBjb2RlLXN0eWxlci1zb3VyY2UtbGlua1wiLCBhdHRyaWJ1dGVzOiB7ZGVzdGluYXRpb246IGxpbmtNYXRjaFswXS5zbGljZSgyLHdpa2lsaW5rU2VwYXJhdG9yIT09LTE/d2lraWxpbmtTZXBhcmF0b3I6LTIpfX0pKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChmcm9tKzEsZnJvbSttZEJyZWFrLERlY29yYXRpb24ubWFyayh7Y2xhc3M6IFwiY20tbGluayBjb2RlLXN0eWxlci1zb3VyY2UtbGlua1wiLCBhdHRyaWJ1dGVzOiB7ZGVzdGluYXRpb246IGxpbmtNYXRjaFswXS5zbGljZShtZEJyZWFrKzIsLTEpfX0pKTtcblx0XHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChmcm9tK21kQnJlYWsrMix0by0xLERlY29yYXRpb24ubWFyayh7Y2xhc3M6IFwiY20tc3RyaW5nIGNtLXVybFwifSkpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoZnJvbSx0byxEZWNvcmF0aW9uLnJlcGxhY2Uoe3dpZGdldDogbmV3IENvbW1lbnRMaW5rV2lkZ2V0KGxpbmtNYXRjaFswXSwgc291cmNlUGF0aCl9KSk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRmcm9tOiBsaW5lLmZyb20sXG5cdFx0XHR0bzogbGluZS50b1xuXHRcdH0pO1xuXHR9XG5cdGZ1bmN0aW9uIGJ1aWxkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0aWYgKCFzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodClcblx0XHRcdHJldHVybiBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0Y29uc3QgYnVpbGRlciA9IG5ldyBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4oKTtcblx0XHRjb25zdCBzb3VyY2VNb2RlID0gaXNTb3VyY2VNb2RlKHN0YXRlKTtcblx0XHRzeW50YXhUcmVlKHN0YXRlKS5pdGVyYXRlKHtcblx0XHRcdGVudGVyOiAoc3ludGF4Tm9kZSk9Pntcblx0XHRcdFx0Y29uc3QgcmFuZ2VzID0gZ2V0SW5saW5lQ29kZVJhbmdlcyhzdGF0ZSxzeW50YXhOb2RlKTtcblx0XHRcdFx0aWYgKHJhbmdlcyA9PT0gbnVsbClcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdGNvbnN0IHtwYXJhbWV0ZXJzLHRleHQsc2VjdGlvbn0gPSByYW5nZXM7XG5cdFx0XHRcdGlmIChwYXJhbWV0ZXJzLnZhbHVlID09PSBudWxsKVxuXHRcdFx0XHRcdGFkZFVuc3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUsYnVpbGRlcixwYXJhbWV0ZXJzIGFzIHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBudWxsfSx0ZXh0LHNlY3Rpb24sc291cmNlTW9kZSk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRhZGRTdHlsZWRJbmxpbmVEZWNvcmF0aW9ucyhzdGF0ZSxidWlsZGVyLHBhcmFtZXRlcnMgYXMge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IElubGluZUNvZGVQYXJhbWV0ZXJzfSx0ZXh0LHNlY3Rpb24sc291cmNlTW9kZSk7XG5cdFx0XHR9LFxuXHRcdH0pO1xuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGFkZFN0eWxlZElubGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSwgYnVpbGRlcjogUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+LCBwYXJhbWV0ZXJzOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogSW5saW5lQ29kZVBhcmFtZXRlcnN9LCB0ZXh0OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogc3RyaW5nfSwgc2VjdGlvbjoge2Zyb206IG51bWJlciwgdG86IG51bWJlcn0sIHNvdXJjZU1vZGU6IGJvb2xlYW4pIHtcblx0XHRpZiAoc291cmNlTW9kZSB8fCBzdGF0ZS5zZWxlY3Rpb24ucmFuZ2VzLnNvbWUoKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9PnJhbmdlSW50ZXJhY3Rpb24oc2VjdGlvbi5mcm9tLHNlY3Rpb24udG8scmFuZ2UpKSlcblx0XHRcdGJ1aWxkZXIuYWRkKHBhcmFtZXRlcnMuZnJvbSwgcGFyYW1ldGVycy50bywgRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogXCJjb2RlLXN0eWxlci1pbmxpbmUtcGFyYW1ldGVyc1wifSkpO1xuXHRcdGVsc2Uge1xuXHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLnRvLCBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pKTtcblx0XHRcdGlmIChwYXJhbWV0ZXJzLnZhbHVlPy50aXRsZSB8fCAocGFyYW1ldGVycy52YWx1ZT8uaWNvbiAmJiBnZXRMYW5ndWFnZUljb24ocGFyYW1ldGVycy52YWx1ZS5sYW5ndWFnZSxwbHVnaW4ubGFuZ3VhZ2VJY29ucykpKVxuXHRcdFx0XHRidWlsZGVyLmFkZChwYXJhbWV0ZXJzLmZyb20sIHBhcmFtZXRlcnMuZnJvbSwgRGVjb3JhdGlvbi5yZXBsYWNlKHt3aWRnZXQ6IG5ldyBPcGVuZXJXaWRnZXQocGFyYW1ldGVycy52YWx1ZSxwbHVnaW4pfSkpO1xuXHRcdH1cblx0XHRtb2RlSGlnaGxpZ2h0KHtzdGFydDogcGFyYW1ldGVycy50bywgdGV4dDogdGV4dC52YWx1ZSwgbGFuZ3VhZ2U6IHBhcmFtZXRlcnMudmFsdWUubGFuZ3VhZ2V9LGJ1aWxkZXIpO1xuXHR9XG5cblx0ZnVuY3Rpb24gY29udmVydFJlYWRkRm9sZCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sIHJlYWRkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0Y29uc3QgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0Zm9yIChsZXQgaXRlciA9ICh0cmFuc2FjdGlvbi5zdGF0ZS5maWVsZChoZWFkZXJEZWNvcmF0aW9ucyxmYWxzZSkgPz8gRGVjb3JhdGlvbi5ub25lKS5pdGVyKCk7IGl0ZXIudmFsdWUgIT09IG51bGw7IGl0ZXIubmV4dCgpKSB7IC8vVE9ETyAoQG1heXVyYW5rdikgUmVmYWN0b3I6IFRyeSBhbmQgbWFrZSB0aGlzIHN0YXJ0U3RhdGVcblx0XHRcdGlmICghaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCB8fCAhcmVhZGRMYW5ndWFnZXMuaW5jbHVkZXMoaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSlcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHRyYW5zYWN0aW9uLnN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKGZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLHRvOiBmb2xkRW5kLnRvLHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiAoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfX19KSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFkZEVmZmVjdHM7XG5cdH1cblx0ZnVuY3Rpb24gaXNGb2xkZWQoc3RhdGU6IEVkaXRvclN0YXRlLCBwb3NpdGlvbjogbnVtYmVyKTogYm9vbGVhbiB7XG5cdFx0bGV0IGZvbGRlZCA9IGZhbHNlO1xuXHRcdHN0YXRlLmZpZWxkKGZvbGREZWNvcmF0aW9ucyxmYWxzZSk/LmJldHdlZW4ocG9zaXRpb24scG9zaXRpb24sKCk9Pntcblx0XHRcdGZvbGRlZCA9IHRydWU7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGZvbGRlZDtcblx0fVxuXHRmdW5jdGlvbiBkb2N1bWVudEZvbGQoc3RhdGU6IEVkaXRvclN0YXRlLCB0b0ZvbGQ/OiBib29sZWFuKTogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+IHtcblx0XHRjb25zdCBhZGRFZmZlY3RzOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4gPSBbXTtcblx0XHRjb25zdCByZXNldCA9ICh0eXBlb2YgdG9Gb2xkID09PSBcInVuZGVmaW5lZFwiKTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdGlmIChpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmhpZGRlbilcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRjb25zdCBmb2xkZWQgPSBpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmZvbGRlZDtcblx0XHRcdGNvbnN0IGRlZmF1bHRGb2xkID0gaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZDtcblx0XHRcdGNvZGVibG9ja0ZvbGRDYWxsYmFjayhpdGVyLmZyb20sc3RhdGUsKGZvbGRTdGFydCxmb2xkRW5kKT0+e1xuXHRcdFx0XHRpZiAoKCFyZXNldCAmJiB0b0ZvbGQgJiYgIWZvbGRlZCkgfHwgKHJlc2V0ICYmICFmb2xkZWQgJiYgZGVmYXVsdEZvbGQpKVxuXHRcdFx0XHRcdGFkZEVmZmVjdHMucHVzaChmb2xkLm9mKHtmcm9tOiBmb2xkU3RhcnQuZnJvbSwgdG86IGZvbGRFbmQudG8sIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiAoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfX19KSk7XG5cdFx0XHRcdGVsc2UgaWYgKCghcmVzZXQgJiYgIXRvRm9sZCAmJiBmb2xkZWQpIHx8IChyZXNldCAmJiBmb2xkZWQgJiYgIWRlZmF1bHRGb2xkKSlcblx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2godW5mb2xkLm9mKHtmcm9tOiBmb2xkU3RhcnQuZnJvbSwgdG86IGZvbGRFbmQudG99KSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFkZEVmZmVjdHM7XG5cdH1cblxuXHRyZXR1cm4gW1xuXHRcdGludGVyYWN0aW9uLFxuXHRcdGlnbm9yZUxpc3RlbmVyLGlnbm9yZUZpbGVMaXN0ZW5lcixcblx0XHRjdXJzb3JGb2xkRXh0ZW5kZXIoKSxkb2N1bWVudEZvbGRFeHRlbmRlcigpLHNldHRpbmdzQ2hhbmdlRXh0ZW5kZXIoKSxcblx0XHRzZXR0aW5nc1N0YXRlLGNoYXJXaWR0aFN0YXRlLGxpdmVQcmV2aWV3Q29tcGFydG1lbnQub2YoW10pLGlnbm9yZUNvbXBhcnRtZW50Lm9mKFtdKSxcblx0XTtcbn1cblxuY29uc3QgZm9sZDogU3RhdGVFZmZlY3RUeXBlPHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBzdHJpbmd9fX0+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCB1bmZvbGQ6IFN0YXRlRWZmZWN0VHlwZTx7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfT4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IGhpZGVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8UmFuZ2U8RGVjb3JhdGlvbj4+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCB1bmhpZGVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8UmFuZ2U8RGVjb3JhdGlvbj4+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCByZW1vdmVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8QXJyYXk8c3RyaW5nPj4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IGZvbGRBbGw6IFN0YXRlRWZmZWN0VHlwZTx7dG9Gb2xkPzogYm9vbGVhbn0+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5cbmZ1bmN0aW9uIGNvZGVibG9ja0ZvbGRDYWxsYmFjayhzdGFydFBvc2l0aW9uOiBudW1iZXIsIHN0YXRlOiBFZGl0b3JTdGF0ZSwgZm9sZENhbGxiYWNrOiAoZm9sZFN0YXJ0OiBMaW5lLCBmb2xkRW5kOiBMaW5lKT0+dm9pZCkge1xuXHRjb25zdCBmb2xkU3RhcnQgPSBzdGF0ZS5kb2MubGluZUF0KHN0YXJ0UG9zaXRpb24pO1xuXHRjb25zdCBzdGFydERlbGltaXRlciA9IHRlc3RPcGVuaW5nTGluZShmb2xkU3RhcnQudGV4dC50b1N0cmluZygpKTtcblx0bGV0IGZvbGRFbmQ6IExpbmUgfCBudWxsID0gbnVsbDtcblx0Zm9yIChsZXQgaSA9IGZvbGRTdGFydC5udW1iZXIrMTsgaSA8PSBzdGF0ZS5kb2MubGluZXM7IGkrKykge1xuXHRcdGNvbnN0IGxpbmUgPSBzdGF0ZS5kb2MubGluZShpKTtcblx0XHRjb25zdCBsaW5lVGV4dCA9IGxpbmUudGV4dC50b1N0cmluZygpO1xuXHRcdGlmICh0ZXN0T3BlbmluZ0xpbmUobGluZVRleHQpID09PSBzdGFydERlbGltaXRlcikge1xuXHRcdFx0Zm9sZEVuZCA9IGxpbmU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0aWYgKGZvbGRFbmQgIT09IG51bGwpXG5cdFx0Zm9sZENhbGxiYWNrKGZvbGRTdGFydCxmb2xkRW5kKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5saW5lQ29kZVJhbmdlcyhzdGF0ZTogRWRpdG9yU3RhdGUsIHN5bnRheE5vZGU6IFN5bnRheE5vZGVSZWYpOiB7cGFyYW1ldGVyczoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IElubGluZUNvZGVQYXJhbWV0ZXJzIHwgbnVsbH0sIHRleHQ6IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBzdHJpbmd9LCBzZWN0aW9uOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfX0gfCBudWxsIHtcblx0Y29uc3QgZGVsaW1pdGVyU2l6ZSA9IGdldElubGluZURlbGltaXRlclNpemUoc3ludGF4Tm9kZSk7XG5cdGlmIChkZWxpbWl0ZXJTaXplID09PSBudWxsKVxuXHRcdHJldHVybiBudWxsO1xuXHRjb25zdCBpbmxpbmVDb2RlVGV4dCA9IHN0YXRlLmRvYy5zbGljZVN0cmluZyhzeW50YXhOb2RlLmZyb20sIHN5bnRheE5vZGUudG8pO1xuXHRjb25zdCB7cGFyYW1ldGVycyx0ZXh0fSA9IHBhcnNlSW5saW5lQ29kZShpbmxpbmVDb2RlVGV4dCk7XG5cdGNvbnN0IHBhcmFtZXRlcnNMZW5ndGggPSBpbmxpbmVDb2RlVGV4dC5sYXN0SW5kZXhPZih0ZXh0KTtcblx0cmV0dXJuIHtwYXJhbWV0ZXJzOiB7ZnJvbTogc3ludGF4Tm9kZS5mcm9tLCB0bzogc3ludGF4Tm9kZS5mcm9tK3BhcmFtZXRlcnNMZW5ndGgsIHZhbHVlOiBwYXJhbWV0ZXJzfSwgdGV4dDoge2Zyb206IHN5bnRheE5vZGUuZnJvbStwYXJhbWV0ZXJzTGVuZ3RoKzEsdG86IHN5bnRheE5vZGUudG8gLHZhbHVlOiB0ZXh0fSwgc2VjdGlvbjoge2Zyb206IHN5bnRheE5vZGUuZnJvbS1kZWxpbWl0ZXJTaXplLCB0bzogc3ludGF4Tm9kZS50bytkZWxpbWl0ZXJTaXplfX07XG59XG5mdW5jdGlvbiBnZXRJbmxpbmVEZWxpbWl0ZXJTaXplKHN5bnRheE5vZGU6IFN5bnRheE5vZGVSZWYpOiBudW1iZXIgfCBudWxsIHtcblx0Y29uc3QgcHJvcGVydGllcyA9IG5ldyBTZXQoc3ludGF4Tm9kZS5ub2RlLnR5cGUucHJvcDxzdHJpbmc+KHRva2VuQ2xhc3NOb2RlUHJvcCk/LnNwbGl0KFwiIFwiKSk7XG5cdGlmICghKHByb3BlcnRpZXMuaGFzKFwiaW5saW5lLWNvZGVcIikgJiYgIXByb3BlcnRpZXMuaGFzKFwiZm9ybWF0dGluZ1wiKSkpXG5cdFx0cmV0dXJuIG51bGw7XG5cdGNvbnN0IHByZXZpb3VzU2libGluZyA9IHN5bnRheE5vZGUubm9kZS5wcmV2U2libGluZztcblx0aWYgKCFwcmV2aW91c1NpYmxpbmcpXG5cdFx0cmV0dXJuIG51bGw7XG5cdHJldHVybiBwcmV2aW91c1NpYmxpbmcudG8tcHJldmlvdXNTaWJsaW5nLmZyb207XG59XG5mdW5jdGlvbiBhZGRVbnN0eWxlZElubGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSwgYnVpbGRlcjogUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+LCBwYXJhbWV0ZXJzOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogbnVsbH0sIHRleHQ6IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBzdHJpbmd9LCBzZWN0aW9uOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfSwgc291cmNlTW9kZTogYm9vbGVhbikge1xuXHRpZiAodGV4dC52YWx1ZSkge1xuXHRcdGlmICghc3RhdGUuc2VsZWN0aW9uLnJhbmdlcy5zb21lKChyYW5nZTogU2VsZWN0aW9uUmFuZ2UpPT5yYW5nZS50byA+PSBzZWN0aW9uLmZyb20gJiYgcmFuZ2UuZnJvbSA8PSBzZWN0aW9uLnRvKSAmJiAhc291cmNlTW9kZSlcblx0XHRcdGJ1aWxkZXIuYWRkKHBhcmFtZXRlcnMuZnJvbSwgcGFyYW1ldGVycy50bywgRGVjb3JhdGlvbi5yZXBsYWNlKHt9KSk7XG5cdH1cbn1cbmZ1bmN0aW9uIG1vZGVIaWdobGlnaHQoe3N0YXJ0LHRleHQsbGFuZ3VhZ2V9OiB7c3RhcnQ6IG51bWJlciwgdGV4dDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nfSwgYnVpbGRlcjogUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KSB7XG5cdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdGNvbnN0IG1vZGUgPSB3aW5kb3cuQ29kZU1pcnJvci5nZXRNb2RlKHdpbmRvdy5Db2RlTWlycm9yLmRlZmF1bHRzLHdpbmRvdy5Db2RlTWlycm9yLmZpbmRNb2RlQnlOYW1lKGxhbmd1YWdlKT8ubWltZSk7XG5cdGNvbnN0IHN0YXRlID0gd2luZG93LkNvZGVNaXJyb3Iuc3RhcnRTdGF0ZShtb2RlKTtcblx0aWYgKG1vZGU/LnRva2VuKSB7XG5cdFx0Y29uc3Qgc3RyZWFtID0gbmV3IHdpbmRvdy5Db2RlTWlycm9yLlN0cmluZ1N0cmVhbSh0ZXh0KTtcblx0XHR3aGlsZSAoIXN0cmVhbS5lb2woKSkge1xuXHRcdFx0Y29uc3Qgc3R5bGUgPSBtb2RlLnRva2VuKHN0cmVhbSxzdGF0ZSk7XG5cdFx0XHRpZiAoc3R5bGUpXG5cdFx0XHRcdGJ1aWxkZXIuYWRkKHN0YXJ0K3N0cmVhbS5zdGFydCwgc3RhcnQrc3RyZWFtLnBvcywgRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogYGNtLSR7c3R5bGV9YH0pKTtcblx0XHRcdHN0cmVhbS5zdGFydCA9IHN0cmVhbS5wb3M7XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBhZGRSZWZlcmVuY2VTeW50YXhIaWdobGlnaHQoKSB7XG5cdHdpbmRvdy5Db2RlTWlycm9yLmRlZmluZU1vZGUoXCJyZWZlcmVuY2VcIiwgZnVuY3Rpb24gKGNvbmZpZywgcGFyc2VyQ29uZmlnKSB7XG5cdFx0Y29uc3Qga2V5UGF0dGVybiA9IC9eKFthLXpBLVowLTlfLV0rKVxccyooPz06KS87XG5cdFx0Y29uc3QgdmFsdWVQYXR0ZXJuID0gL14oOj8oXFxzKig/OlwiKD86XFxcXC58W15cIl0pKlwifFxcUyspKT8pLztcblx0XHRyZXR1cm4ge1xuXHRcdFx0c3RhcnRTdGF0ZTogKCkgPT4geyByZXR1cm4geyBpbkJsb2NrOiBmYWxzZSwgaW5kZW50OiAwIH07IH0sXG5cdFx0XHRpbmRlbnQ6IChzdGF0ZSwgdGV4dEFmdGVyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGluZGVudFVuaXQgPSBjb25maWcuaW5kZW50VW5pdDtcblx0XHRcdFx0Y29uc3QgaW5kZW50ID0gc3RhdGUuaW5kZW50IHx8IDA7XG5cdFx0XHRcdGlmICh0ZXh0QWZ0ZXIgJiYgdGV4dEFmdGVyLmNoYXJBdCgwKSA9PT0gXCItXCIpIHJldHVybiBpbmRlbnQgKyBpbmRlbnRVbml0O1xuXHRcdFx0XHRlbHNlIHJldHVybiBpbmRlbnQ7XG5cdFx0XHR9LFxuXHRcdFx0dG9rZW46IChzdHJlYW0sIHN0YXRlKSA9PiB7XG5cdFx0XHRcdGlmIChzdHJlYW0uZWF0U3BhY2UoKSkgcmV0dXJuIG51bGw7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL14jLiovKSkgcmV0dXJuIFwiY29tbWVudFwiO1xuXHRcdFx0XHRpZiAoc3RyZWFtLm1hdGNoKC9eaHR0cHM/OlxcL1xcLy4qLykpIHJldHVybiBcInZhcmlhYmxlXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL1xcW1xcWy4rXFxdXFxdLykpIHJldHVybiBcInZhcmlhYmxlXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goa2V5UGF0dGVybikpIHJldHVybiBcInN0cmluZ1wiO1xuXHRcdFx0XHRpZiAoc3RyZWFtLm1hdGNoKC86LykpIHJldHVybiBcIm1ldGFcIjtcblx0XHRcdFx0Y29uc3QgdmFsdWVNYXRjaCA9IHN0cmVhbS5tYXRjaCh2YWx1ZVBhdHRlcm4pO1xuXHRcdFx0XHRpZiAodmFsdWVNYXRjaCkge1xuXHRcdFx0XHRcdGlmICh2YWx1ZU1hdGNoWzJdLm1hdGNoKC8oXCI/KVxcLy4qXFwvXFwxLykpIHJldHVybiBcIm9wZXJhdG9yXCI7XG5cdFx0XHRcdFx0aWYgKHZhbHVlTWF0Y2hbMl0uc3RhcnRzV2l0aChcIlxcXCJcIikpIHtcblx0XHRcdFx0XHRcdHN0cmVhbS5za2lwVG9FbmQoKTsgLy8gQ29uc3VtZSB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nXG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJwcm9wZXJ0eVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoL15cXGQrKFxcLlxcZCspP1xcYi8udGVzdCh2YWx1ZU1hdGNoWzJdKSkgcmV0dXJuIFwibnVtYmVyXCI7XG5cdFx0XHRcdFx0ZWxzZSBpZiAoL14odHJ1ZXxmYWxzZXxudWxsKVxcYi8udGVzdCh2YWx1ZU1hdGNoWzJdKSkgcmV0dXJuIFwiYXRvbVwiO1xuXHRcdFx0XHRcdGVsc2UgcmV0dXJuIG51bGw7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoc3RyZWFtLnNvbCgpKSB7XG5cdFx0XHRcdFx0Y29uc3QgaW5kZW50ID0gc3RyZWFtLmluZGVudGF0aW9uKCk7XG5cdFx0XHRcdFx0aWYgKGluZGVudCA+IHN0YXRlLmluZGVudCkge1xuXHRcdFx0XHRcdFx0c3RhdGUuaW5kZW50ID0gaW5kZW50O1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiaW5kZW50XCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChpbmRlbnQgPCBzdGF0ZS5pbmRlbnQpIHtcblx0XHRcdFx0XHRcdHN0YXRlLmluZGVudCA9IGluZGVudDtcblx0XHRcdFx0XHRcdHJldHVybiBcImRlZGVudFwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHN0cmVhbS5uZXh0KCk7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXHRcdH07XG5cdH0pO1xuXHR3aW5kb3cuQ29kZU1pcnJvci5kZWZpbmVNSU1FKFwidGV4dC9yZWZlcmVuY2VcIiwgXCJyZWZlcmVuY2VcIik7XG59XG5mdW5jdGlvbiBhZGRZYW1sRnJvbnRtYXR0ZXJTeW50YXhIaWdobGlnaHRpbmcoKSB7XG5cdGNvbnN0IFNUQVJUID0gMCwgRlJPTlRNQVRURVIgPSAxLCBCT0RZID0gMjtcblx0d2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShcInlhbWwtZnJvbnRtYXR0ZXJcIiwgZnVuY3Rpb24oY29uZmlnLCBwYXJzZXJDb25maWcpIHtcblx0XHRjb25zdCB5YW1sTW9kZSA9IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCBcInlhbWxcIik7XG5cdFx0Y29uc3QgaW5uZXJNb2RlID0gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIHBhcnNlckNvbmZpZyAmJiBwYXJzZXJDb25maWcuYmFzZSB8fCBcImdmbVwiKTtcblxuXHRcdGZ1bmN0aW9uIGN1ck1vZGUoc3RhdGUpIHtcblx0XHRcdHJldHVybiBzdGF0ZS5zdGF0ZSA9PSBCT0RZID8gaW5uZXJNb2RlIDogeWFtbE1vZGU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHN0YXJ0U3RhdGU6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRzdGF0ZTogU1RBUlQsXG5cdFx0XHRcdFx0aW5uZXI6IHdpbmRvdy5Db2RlTWlycm9yLnN0YXJ0U3RhdGUoeWFtbE1vZGUpXG5cdFx0XHRcdH07XG5cdFx0XHR9LFxuXHRcdFx0Y29weVN0YXRlOiBmdW5jdGlvbiAoc3RhdGUpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRzdGF0ZTogc3RhdGUuc3RhdGUsXG5cdFx0XHRcdFx0aW5uZXI6IHdpbmRvdy5Db2RlTWlycm9yLmNvcHlTdGF0ZShjdXJNb2RlKHN0YXRlKSwgc3RhdGUuaW5uZXIpXG5cdFx0XHRcdH07XG5cdFx0XHR9LFxuXHRcdFx0dG9rZW46IGZ1bmN0aW9uIChzdHJlYW0sIHN0YXRlKSB7XG5cdFx0XHRcdGlmIChzdGF0ZS5zdGF0ZSA9PSBTVEFSVCkge1xuXHRcdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goLy0tLS8sIGZhbHNlKSkge1xuXHRcdFx0XHRcdFx0c3RhdGUuc3RhdGUgPSBGUk9OVE1BVFRFUjtcblx0XHRcdFx0XHRcdHJldHVybiB5YW1sTW9kZS50b2tlbihzdHJlYW0sIHN0YXRlLmlubmVyKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0c3RhdGUuc3RhdGUgPSBCT0RZO1xuXHRcdFx0XHRcdFx0c3RhdGUuaW5uZXIgPSB3aW5kb3cuQ29kZU1pcnJvci5zdGFydFN0YXRlKGlubmVyTW9kZSk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gaW5uZXJNb2RlLnRva2VuKHN0cmVhbSwgc3RhdGUuaW5uZXIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChzdGF0ZS5zdGF0ZSA9PSBGUk9OVE1BVFRFUikge1xuXHRcdFx0XHRcdGNvbnN0IGVuZCA9IHN0cmVhbS5zb2woKSAmJiBzdHJlYW0ubWF0Y2goLygtLS18XFwuXFwuXFwuKS8sIGZhbHNlKTtcblx0XHRcdFx0XHRjb25zdCBzdHlsZSA9IHlhbWxNb2RlLnRva2VuKHN0cmVhbSwgc3RhdGUuaW5uZXIpO1xuXHRcdFx0XHRcdGlmIChlbmQpIHtcblx0XHRcdFx0XHRcdHN0YXRlLnN0YXRlID0gQk9EWTtcblx0XHRcdFx0XHRcdHN0YXRlLmlubmVyID0gd2luZG93LkNvZGVNaXJyb3Iuc3RhcnRTdGF0ZShpbm5lck1vZGUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gc3R5bGU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGlubmVyTW9kZS50b2tlbihzdHJlYW0sIHN0YXRlLmlubmVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGlubmVyTW9kZTogZnVuY3Rpb24gKHN0YXRlKSB7XG5cdFx0XHRcdHJldHVybiB7bW9kZTogY3VyTW9kZShzdGF0ZSksIHN0YXRlOiBzdGF0ZS5pbm5lcn07XG5cdFx0XHR9LFxuXHRcdFx0YmxhbmtMaW5lOiBmdW5jdGlvbiAoc3RhdGUpIHtcblx0XHRcdFx0Y29uc3QgbW9kZSA9IGN1ck1vZGUoc3RhdGUpO1xuXHRcdFx0XHRpZiAobW9kZS5ibGFua0xpbmUpIHJldHVybiBtb2RlLmJsYW5rTGluZShzdGF0ZS5pbm5lcik7XG5cdFx0XHR9XG5cdFx0fTtcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0aW5nRG9jdW1lbnRGb2xkKHZpZXc6IEVkaXRvclZpZXcsIHRvRm9sZD86IGJvb2xlYW4pIHtcblx0dmlldy5kaXNwYXRjaCh7ZWZmZWN0czogZm9sZEFsbC5vZigodHlwZW9mIHRvRm9sZCAhPT0gXCJ1bmRlZmluZWRcIik/e3RvRm9sZDogdG9Gb2xkfTp7fSl9KTtcblx0dmlldy5yZXF1ZXN0TWVhc3VyZSgpO1xufVxuZnVuY3Rpb24gZm9sZE9uQ2xpY2sodmlldzogRWRpdG9yVmlldywgdGFyZ2V0OiBIVE1MRWxlbWVudCwgZm9sZGVkOiBib29sZWFuLCBsYW5ndWFnZTogc3RyaW5nKSB7XG5cdGNvZGVibG9ja0ZvbGRDYWxsYmFjayh2aWV3LnBvc0F0RE9NKHRhcmdldCksdmlldy5zdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0dmlldy5kaXNwYXRjaCh7ZWZmZWN0czogZm9sZExpbmVzKCFmb2xkZWQse2Zyb206IGZvbGRTdGFydC5mcm9tLCB0bzogZm9sZEVuZC50bywgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IGxhbmd1YWdlfX19KX0pO1xuXHRcdHZpZXcucmVxdWVzdE1lYXN1cmUoKTtcblx0fSk7XG59XG5mdW5jdGlvbiBmb2xkTGluZXModG9Gb2xkOiBib29sZWFuLCBmb2xkSW5mbzoge2Zyb206IG51bWJlciwgdG86IG51bWJlcix2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogc3RyaW5nfX19KTogU3RhdGVFZmZlY3Q8dW5rbm93bj4ge1xuXHRyZXR1cm4gdG9Gb2xkP2ZvbGQub2YoZm9sZEluZm8pOnVuZm9sZC5vZih7ZnJvbTogZm9sZEluZm8uZnJvbSwgdG86IGZvbGRJbmZvLnRvfSk7XG59XG5mdW5jdGlvbiBmb2xkUmVnaW9uKHtmcm9tOiBmb2xkRnJvbSwgdG86IGZvbGRUbywgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2V9fX06IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IHN0cmluZ319fSk6IFJhbmdlPERlY29yYXRpb24+IHtcblx0cmV0dXJuIGZvbGREZWNvcmF0aW9uKGxhbmd1YWdlKS5yYW5nZShmb2xkRnJvbSxmb2xkVG8pO1xufVxuZnVuY3Rpb24gdW5mb2xkUmVnaW9uKHtmcm9tOiBmb2xkRnJvbSwgdG86IGZvbGRUb306IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9KSB7XG5cdHJldHVybiB7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKSA9PiAodG8gPD0gZm9sZEZyb20gfHwgZnJvbSA+PSBmb2xkVG8pLCBmaWx0ZXJGcm9tOiBmb2xkRnJvbSwgZmlsdGVyVG86IGZvbGRUb307XG59XG5mdW5jdGlvbiByZW1vdmVGb2xkTGFuZ3VhZ2VzKGxhbmd1YWdlczogQXJyYXk8c3RyaW5nPikge1xuXHRyZXR1cm4ge2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IERlY29yYXRpb24pID0+ICFsYW5ndWFnZXMuaW5jbHVkZXModmFsdWU/LnNwZWM/Lmxhbmd1YWdlKX07XG59XG5mdW5jdGlvbiB1bmhpZGVGb2xkVXBkYXRlKHJhbmdlOiBSYW5nZTxEZWNvcmF0aW9uPikge1xuXHRyZXR1cm4ge2ZpbHRlckZyb206IHJhbmdlLmZyb20sIGZpbHRlclRvOiByYW5nZS50bywgZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKT0+IShmcm9tID09PSByYW5nZS5mcm9tICYmIHRvID09PSByYW5nZS50byl9O1xufVxuZnVuY3Rpb24gZm9sZERlY29yYXRpb24obGFuZ3VhZ2U6IHN0cmluZyk6IERlY29yYXRpb24ge1xuXHRyZXR1cm4gRGVjb3JhdGlvbi5yZXBsYWNlKHtibG9jazogdHJ1ZSwgbGFuZ3VhZ2U6IGxhbmd1YWdlfSk7XG59XG5mdW5jdGlvbiByYW5nZUludGVyYWN0aW9uKGZyb206IG51bWJlciwgdG86IG51bWJlciwgcmFuZ2U6IFNlbGVjdGlvblJhbmdlKTogYm9vbGVhbiB7XG5cdHJldHVybiAoZnJvbSA8PSByYW5nZS5oZWFkICYmIHJhbmdlLmhlYWQgPD0gdG8pIHx8IChmcm9tIDw9IHJhbmdlLmFuY2hvciAmJiByYW5nZS5hbmNob3IgPD0gdG8pO1xufVxuXG5mdW5jdGlvbiBpc0ZpbGVJZ25vcmVkKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuXHRjb25zdCBmaWxlUGF0aCA9IHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGg7XG5cdGlmICh0eXBlb2YgZmlsZVBhdGggIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0cmV0dXJuIHRoaXMuYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUoZmlsZVBhdGgpPy5mcm9udG1hdHRlcj8uW1wiY29kZS1zdHlsZXItaWdub3JlXCJdPy50b1N0cmluZygpID09PSBcInRydWVcIjtcblx0cmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNTb3VyY2VNb2RlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gIXN0YXRlLmZpZWxkKGVkaXRvckxpdmVQcmV2aWV3RmllbGQpO1xufVxuZnVuY3Rpb24gc2V0RGlmZmVyZW5jZShhcnJheTE6IEFycmF5PHVua25vd24+LCBhcnJheTI6IEFycmF5PHVua25vd24+KSB7XG5cdHJldHVybiBhcnJheTEuZmlsdGVyKGVsZW1lbnQgPT4gIWFycmF5Mi5pbmNsdWRlcyhlbGVtZW50KSk7XG59XG4iLCAiaW1wb3J0IHsgTWFya2Rvd25QcmV2aWV3UmVuZGVyZXIsIFBsdWdpbiwgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcbmltcG9ydCB7IENvZGVTdHlsZXJUaGVtZSwgRVhFQ1VURV9DT0RFX1NVUFBPUlRFRF9MQU5HVUFHRVMgfSBmcm9tIFwiLi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVCbG9ja0FyZ3MsIGdldEFyZ3MgfSBmcm9tIFwiLi4vRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJnc1wiO1xuaW1wb3J0IHsgZ2V0UmVmZXJlbmNlIH0gZnJvbSBcInNyYy9SZWZlcmVuY2luZ1wiO1xuaW1wb3J0IHsgRXh0ZXJuYWxSZWZlcmVuY2VJbmZvIH0gZnJvbSBcIi4vUmVmZXJlbmNlUGFyc2luZ1wiO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVibG9ja1BhcmFtZXRlcnMge1xuXHRsYW5ndWFnZTogc3RyaW5nO1xuXHR0aXRsZTogc3RyaW5nO1xuXHRyZWZlcmVuY2U6IHN0cmluZztcblx0Zm9sZDoge1xuXHRcdGVuYWJsZWQ6IGJvb2xlYW47XG5cdFx0cGxhY2Vob2xkZXI6IHN0cmluZztcblx0fVxuXHRsaW5lTnVtYmVyczoge1xuXHRcdGFsd2F5c0VuYWJsZWQ6IGJvb2xlYW47XG5cdFx0YWx3YXlzRGlzYWJsZWQ6IGJvb2xlYW47XG5cdFx0b2Zmc2V0OiBudW1iZXI7XG5cdH0sXG5cdGxpbmVVbndyYXA6IHtcblx0XHRhbHdheXNFbmFibGVkOiBib29sZWFuO1xuXHRcdGFsd2F5c0Rpc2FibGVkOiBib29sZWFuO1xuXHRcdGFjdGl2ZVdyYXA6IGJvb2xlYW47XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRkZWZhdWx0OiBIaWdobGlnaHRzO1xuXHRcdGFsdGVybmF0aXZlOiBSZWNvcmQ8c3RyaW5nLEhpZ2hsaWdodHM+XG5cdH0sXG5cdGlnbm9yZTogYm9vbGVhbjtcblx0ZXh0ZXJuYWxSZWZlcmVuY2U/OiBFeHRlcm5hbFJlZmVyZW5jZUluZm87XG59XG5leHBvcnQgaW50ZXJmYWNlIEhpZ2hsaWdodHMge1xuXHRsaW5lTnVtYmVyczogQXJyYXk8bnVtYmVyPjtcblx0cGxhaW5UZXh0OiBBcnJheTxzdHJpbmc+O1xuXHRyZWd1bGFyRXhwcmVzc2lvbnM6IEFycmF5PFJlZ0V4cD47XG59XG5pbnRlcmZhY2UgRXh0ZXJuYWxQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuXHRzdXBwb3J0ZWRMYW5ndWFnZXM/OiBBcnJheTxzdHJpbmc+O1xuXHRjb2RlPzogKHNvdXJjZTogc3RyaW5nLCBzb3VyY2VQYXRoPzogc3RyaW5nKT0+UHJvbWlzZTx7XG5cdFx0c3RhcnQ6IG51bWJlcjtcblx0XHRjb2RlOiBzdHJpbmc7XG5cdFx0bGFuZ3VhZ2U6IHN0cmluZztcblx0XHRoaWdobGlnaHQ6IHN0cmluZztcblx0XHRsaW5lczogQXJyYXk8c3RyaW5nPjtcblx0XHRmaWxlUGF0aDogc3RyaW5nO1xuXHRcdGxpbmVudW1iZXI6IG51bWJlcjtcblx0fT47XG5cdGFuYWx5emVIaWdoTGlnaHRMaW5lcz86IChsaW5lczogc3RyaW5nW10sIHNvdXJjZTogc3RyaW5nIHwgc3RyaW5nW10pPT5NYXA8bnVtYmVyLGJvb2xlYW4+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2tTb3VyY2UoY29kZVNlY3Rpb246IEFycmF5PHN0cmluZz4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8e2NvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiwgbmVzdGVkOiBib29sZWFufT4ge1xuXHQvLyBAdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4gPSBwbHVnaW4uYXBwLnBsdWdpbnMucGx1Z2lucztcblx0Y29uc3QgYWRtb25pdGlvbnM6IGJvb2xlYW4gPSAoXCJvYnNpZGlhbi1hZG1vbml0aW9uXCIgaW4gcGx1Z2lucyk7XG5cdGNvbnN0IGNvZGVibG9ja3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG5cdGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbjogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuXHRcdGlmIChjb2RlU2VjdGlvbi5sZW5ndGggPT09IDApXG5cdFx0XHRyZXR1cm47XG5cblx0XHRjb25zdCBvcGVuaW5nQ29kZWJsb2NrTGluZSA9IGdldE9wZW5pbmdMaW5lKGNvZGVTZWN0aW9uKTtcblx0XHRpZiAoIW9wZW5pbmdDb2RlYmxvY2tMaW5lKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlciA9IC9eXFxzKig/Oj5cXHMqKSooKD86YGBgK3x+fn4rKSkuKiQvLmV4ZWMob3BlbmluZ0NvZGVibG9ja0xpbmUpPy5bMV07XG5cdFx0aWYgKCFvcGVuRGVsaW1pdGVyKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlckluZGV4ID0gY29kZVNlY3Rpb24uaW5kZXhPZihvcGVuaW5nQ29kZWJsb2NrTGluZSk7XG5cdFx0Y29uc3QgY2xvc2VEZWxpbWl0ZXJJbmRleCA9IGNvZGVTZWN0aW9uLnNsaWNlKG9wZW5EZWxpbWl0ZXJJbmRleCsxKS5maW5kSW5kZXgoKGxpbmUpPT5uZXcgUmVnRXhwKGBeXFxcXHMqKD86PlxcXFxzKikqJHtvcGVuRGVsaW1pdGVyfSg/ISR7b3BlbkRlbGltaXRlclswXX0pJGApLnRlc3QobGluZSkpO1xuXHRcdGlmICghYWRtb25pdGlvbnMgfHwgIS9eXFxzKig/Oj5cXHMqKSooPzpgYGArfH5+fispICphZC0uKiQvLnRlc3Qob3BlbmluZ0NvZGVibG9ja0xpbmUpKVxuXHRcdFx0Y29kZWJsb2Nrcy5wdXNoKGNvZGVTZWN0aW9uLnNsaWNlKDAsb3BlbkRlbGltaXRlckluZGV4KzIrY2xvc2VEZWxpbWl0ZXJJbmRleCkpO1xuXHRcdGVsc2Vcblx0XHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMSxvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KSk7XG5cblx0XHRwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb24uc2xpY2Uob3BlbkRlbGltaXRlckluZGV4KzErY2xvc2VEZWxpbWl0ZXJJbmRleCsxKSk7XG5cdH1cblx0cGFyc2VDb2RlYmxvY2tTZWN0aW9uKGNvZGVTZWN0aW9uKTtcblx0cmV0dXJuIHtjb2RlYmxvY2tzUGFyYW1ldGVyczogYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzLHBsdWdpbixwbHVnaW5zLHNvdXJjZVBhdGgpOnBhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzLHBsdWdpbixwbHVnaW5zKSksIG5lc3RlZDogY29kZWJsb2Nrc1swXT8hYXJyYXlzRXF1YWwoY29kZVNlY3Rpb24sY29kZWJsb2Nrc1swXSk6dHJ1ZX07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzOiBBcnJheTxBcnJheTxzdHJpbmc+PiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8QXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4+IHtcblx0Y29uc3QgY29kZWJsb2Nrc1BhcmFtZXRlcnM6IEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+ID0gW107XG5cdGZvciAoY29uc3QgY29kZWJsb2NrTGluZXMgb2YgY29kZWJsb2Nrcykge1xuXHRcdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXMscGx1Z2luLHBsdWdpbnMsc291cmNlUGF0aCk6cGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXMscGx1Z2luLHBsdWdpbnMpKTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycyAhPT0gbnVsbClcblx0XHRcdGNvZGVibG9ja3NQYXJhbWV0ZXJzLnB1c2goY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja3NQYXJhbWV0ZXJzO1xufVxuYXN5bmMgZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPENvZGVibG9ja1BhcmFtZXRlcnMgfCBudWxsPiB7XG5cdGNvbnN0IHBhcmFtZXRlckxpbmUgPSBnZXRQYXJhbWV0ZXJMaW5lKGNvZGVibG9ja0xpbmVzKTtcblx0aWYgKCFwYXJhbWV0ZXJMaW5lKVxuXHRcdHJldHVybiBudWxsO1xuXHRjb25zdCBjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzKHBhcmFtZXRlckxpbmUscGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cblx0aWYgKGlzQ29kZWJsb2NrSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSAmJiBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlICE9PSBcInJlZmVyZW5jZVwiKVxuXHRcdHJldHVybiBudWxsO1xuXG5cdHJldHVybiBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGx1Z2luQWRqdXN0UGFyYW1ldGVycyhjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbixwbHVnaW5zLGNvZGVibG9ja0xpbmVzLHNvdXJjZVBhdGgpOnBsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW4scGx1Z2lucyxjb2RlYmxvY2tMaW5lcykpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycyhwYXJhbWV0ZXJMaW5lOiBzdHJpbmcsIHRoZW1lOiBDb2RlU3R5bGVyVGhlbWUpOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycyA9IHtcblx0XHRsYW5ndWFnZTogXCJcIixcblx0XHR0aXRsZTogXCJcIixcblx0XHRyZWZlcmVuY2U6IFwiXCIsXG5cdFx0Zm9sZDoge1xuXHRcdFx0ZW5hYmxlZDogZmFsc2UsXG5cdFx0XHRwbGFjZWhvbGRlcjogXCJcIixcblx0XHR9LFxuXHRcdGxpbmVOdW1iZXJzOiB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdG9mZnNldDogMCxcblx0XHR9LFxuXHRcdGxpbmVVbndyYXA6IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWN0aXZlV3JhcDogZmFsc2UsXG5cdFx0fSxcblx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdGxpbmVOdW1iZXJzOiBbXSxcblx0XHRcdFx0cGxhaW5UZXh0OiBbXSxcblx0XHRcdFx0cmVndWxhckV4cHJlc3Npb25zOiBbXSxcblx0XHRcdH0sXG5cdFx0XHRhbHRlcm5hdGl2ZToge30sXG5cdFx0fSxcblx0XHRpZ25vcmU6IGZhbHNlLFxuXHR9O1xuXG5cdGlmIChwYXJhbWV0ZXJMaW5lLnN0YXJ0c1dpdGgoXCJgYGBcIikpXG5cdFx0cGFyYW1ldGVyTGluZSA9IHBhcmFtZXRlckxpbmUucmVwbGFjZSgvXmBgYCsoPz1bXmBdfCQpLyxcIlwiKTtcblx0ZWxzZSBpZiAocGFyYW1ldGVyTGluZS5zdGFydHNXaXRoKFwifn5+XCIpKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnJlcGxhY2UoL15+fn4rKD89W15+XXwkKS8sXCJcIik7XG5cdGVsc2Vcblx0XHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcblxuXHRjb25zdCBybWRNYXRjaCA9IC9eXFx7KC4rKVxcfSAqJC8uZXhlYyhwYXJhbWV0ZXJMaW5lKTtcblx0aWYgKHJtZE1hdGNoKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBybWRNYXRjaFsxXTtcblxuXHRjb25zdCBsYW5ndWFnZUJyZWFrID0gcGFyYW1ldGVyTGluZS5pbmRleE9mKFwiIFwiKTtcblx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UoMCwobGFuZ3VhZ2VCcmVhayAhPT0gLTEpP2xhbmd1YWdlQnJlYWs6cGFyYW1ldGVyTGluZS5sZW5ndGgpLnRvTG93ZXJDYXNlKCk7XG5cdGlmIChsYW5ndWFnZUJyZWFrID09PSAtMSlcblx0XHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcblx0cGFyYW1ldGVyTGluZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UobGFuZ3VhZ2VCcmVhaysxKTtcblx0aWYgKHJtZE1hdGNoKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBcInRpdGxlOlwiICsgcGFyYW1ldGVyTGluZTtcblxuXHRjb25zdCBwYXJhbWV0ZXJTdHJpbmdzID0gcGFyYW1ldGVyTGluZS5tYXRjaCgvKD86KD86cmVmfHJlZmVyZW5jZXx0aXRsZSk6KD86XFxbXFxbLio/XFxdXFxdfFxcWy4qP1xcXVxcKC4rXFwpKXxbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrL2cpO1xuXHRpZiAoIXBhcmFtZXRlclN0cmluZ3MpXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cblx0cGFyYW1ldGVyU3RyaW5ncy5mb3JFYWNoKChwYXJhbWV0ZXJTdHJpbmcpID0+IHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZy5yZXBsYWNlKC8oPzpeLHwsJCkvZywgXCJcIiksY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZSkpO1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmFzeW5jIGZ1bmN0aW9uIHBsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPENvZGVibG9ja1BhcmFtZXRlcnM+IHtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwicmVmZXJlbmNlXCIpIHtcblx0XHRpZiAodHlwZW9mIHNvdXJjZVBhdGggPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHR0aHJvdyBFcnJvcihcIlJlZmVyZW5jZSBibG9jayBoYXMgdW5kZWZpbmVkIHNvdXJjZVBhdGhcIik7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IGF3YWl0IGFkanVzdFJlZmVyZW5jZShjb2RlYmxvY2tQYXJhbWV0ZXJzLCBjb2RlYmxvY2tMaW5lcywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0fSAgZWxzZSBpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IGF3YWl0ICh0eXBlb2Ygc291cmNlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIj9wbHVnaW5BZGp1c3RQcmV2aWV3Q29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMsc291cmNlUGF0aCk6cGx1Z2luQWRqdXN0UHJldmlld0NvZGUoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW5zLGNvZGVibG9ja0xpbmVzKSk7XG5cdGVsc2UgaWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwiaW5jbHVkZVwiKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwbHVnaW5BZGp1c3RGaWxlSW5jbHVkZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpO1xuXHRlbHNlIGlmICgvcnVuLVxcdyovLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlUnVuKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2luLHBsdWdpbnMpO1xuXHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGUoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW5zLGNvZGVibG9ja0xpbmVzKTtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBhZGp1c3RSZWZlcmVuY2UoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiB7XG5cdGNvbnN0IHJlZmVyZW5jZSA9IGF3YWl0IGdldFJlZmVyZW5jZShjb2RlYmxvY2tMaW5lcywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0aWYgKCFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCA9IHJlZmVyZW5jZS5zdGFydExpbmUgLSAxO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCA9IEJvb2xlYW4ocmVmZXJlbmNlLnN0YXJ0TGluZSAhPT0gMSk7XG5cdH1cblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IFwiXCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IHJlZmVyZW5jZS5leHRlcm5hbD8uaW5mbz8udGl0bGUgPz8gYmFzZW5hbWUocmVmZXJlbmNlLnBhdGgpO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPT09IFwiXCIpXG5cdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZS5leHRlcm5hbD8uaW5mbz8uZGlzcGxheVVybCA/PyByZWZlcmVuY2UuZXh0ZXJuYWw/LmluZm8/LnVybCA/PyBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIuZ2V0RmlsZVBhdGgocmVmZXJlbmNlLnBhdGgpO1xuXHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gcmVmZXJlbmNlLmxhbmd1YWdlO1xuXHRpZiAocmVmZXJlbmNlLmV4dGVybmFsKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZXh0ZXJuYWxSZWZlcmVuY2UgPSByZWZlcmVuY2UuZXh0ZXJuYWwuaW5mbztcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBwbHVnaW5BZGp1c3RQcmV2aWV3Q29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPENvZGVibG9ja1BhcmFtZXRlcnM+IHtcblx0aWYgKHBsdWdpbnM/LltcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXT8uY29kZSAmJiBwbHVnaW5zPy5bXCJvYnNpZGlhbi1jb2RlLXByZXZpZXdcIl0/LmFuYWx5emVIaWdoTGlnaHRMaW5lcykge1xuXHRcdGNvbnN0IGNvZGVQcmV2aWV3UGFyYW1zID0gYXdhaXQgcGx1Z2luc1tcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXS5jb2RlKGNvZGVibG9ja0xpbmVzLnNsaWNlKDEsLTEpLmpvaW4oXCJcXG5cIiksc291cmNlUGF0aCk7XG5cdFx0aWYgKCFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQpIHtcblx0XHRcdGlmICh0eXBlb2YgY29kZVByZXZpZXdQYXJhbXMuc3RhcnQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0ID0gY29kZVByZXZpZXdQYXJhbXMuc3RhcnQgLSAxO1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkID0gQm9vbGVhbihjb2RlUHJldmlld1BhcmFtcy5saW5lbnVtYmVyKTtcblx0XHR9XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQubGluZU51bWJlcnMgPSBbLi4ubmV3IFNldChjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5saW5lTnVtYmVycy5jb25jYXQoQXJyYXkuZnJvbShwbHVnaW5zW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdLmFuYWx5emVIaWdoTGlnaHRMaW5lcyhjb2RlUHJldmlld1BhcmFtcy5saW5lcyxjb2RlUHJldmlld1BhcmFtcy5oaWdobGlnaHQpLChwYWlyOiBbbnVtYmVyLGJvb2xlYW5dKT0+KHBhaXJbMF0pKSkpXTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9PT0gXCJcIilcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSBjb2RlUHJldmlld1BhcmFtcy5maWxlUGF0aC5zcGxpdChcIlxcXFxcIikucG9wKCk/LnNwbGl0KFwiL1wiKS5wb3AoKSA/PyBcIlwiO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBjb2RlUHJldmlld1BhcmFtcy5sYW5ndWFnZTtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBsdWdpbkFkanVzdEZpbGVJbmNsdWRlKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPik6IENvZGVibG9ja1BhcmFtZXRlcnMge1xuXHRpZiAoXCJmaWxlLWluY2x1ZGVcIiBpbiBwbHVnaW5zKSB7XG5cdFx0Y29uc3QgZmlsZUluY2x1ZGVMYW5ndWFnZSA9IC9pbmNsdWRlIChcXHcrKS8uZXhlYyhjb2RlYmxvY2tMaW5lc1swXSk/LlsxXTtcblx0XHRpZiAodHlwZW9mIGZpbGVJbmNsdWRlTGFuZ3VhZ2UgIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gZmlsZUluY2x1ZGVMYW5ndWFnZTtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPik6IENvZGVibG9ja1BhcmFtZXRlcnMge1xuXHRpZiAoXCJleGVjdXRlLWNvZGVcIiBpbiBwbHVnaW5zKSB7XG5cdFx0Y29uc3QgY29kZWJsb2NrQXJnczogQ29kZUJsb2NrQXJncyA9IGdldEFyZ3MoY29kZWJsb2NrTGluZXNbMF0pO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID8/IGNvZGVibG9ja0FyZ3M/LmxhYmVsID8/IFwiXCI7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwbHVnaW5BZGp1c3RFeGVjdXRlQ29kZVJ1bihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+KTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGlmIChcImV4ZWN1dGUtY29kZVwiIGluIHBsdWdpbnMpIHtcblx0XHRpZiAoRVhFQ1VURV9DT0RFX1NVUFBPUlRFRF9MQU5HVUFHRVMuaW5jbHVkZXMoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZS5zbGljZSg0KSkgJiYgIWlzQ29kZWJsb2NrSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSlcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLnNsaWNlKDQpO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWU6IENvZGVTdHlsZXJUaGVtZSk6IHZvaWQge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImlnbm9yZVwiKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlID0gdHJ1ZTtcblx0ZWxzZSBpZiAoL150aXRsZVs6PV0vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VUaXRsZShwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2UgaWYgKC9ecmVmWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpIHx8IC9ecmVmZXJlbmNlWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdG1hbmFnZVJlZmVyZW5jZShwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2UgaWYgKC9eZm9sZFs6PV0/Ly50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0bWFuYWdlRm9sZGluZyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2UgaWYgKC9ebG5bOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0bWFuYWdlTGluZU51bWJlcmluZyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2UgaWYgKC9edW53cmFwWzo9XT8vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSB8fCBwYXJhbWV0ZXJTdHJpbmcgPT09IFwid3JhcFwiKVxuXHRcdG1hbmFnZVdyYXBwaW5nKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZVxuXHRcdGFkZEhpZ2hsaWdodHMocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWUpO1xufVxuZnVuY3Rpb24gbWFuYWdlVGl0bGUocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0Y29uc3QgdGl0bGVNYXRjaCA9IC8oW1wiJ10/KShbXlxcMV0rKVxcMS8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJ0aXRsZTpcIi5sZW5ndGgpKTtcblx0aWYgKHRpdGxlTWF0Y2gpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IHRpdGxlTWF0Y2hbMl0udHJpbSgpO1xuXHRwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJ0aXRsZTpcIi5sZW5ndGgpO1xuXHRjb25zdCBsaW5rSW5mbyA9IG1hbmFnZUxpbmsocGFyYW1ldGVyU3RyaW5nKTtcblx0aWYgKGxpbmtJbmZvKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGxpbmtJbmZvLnRpdGxlO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gbGlua0luZm8ucmVmZXJlbmNlO1xuXHR9XG59XG5mdW5jdGlvbiBtYW5hZ2VSZWZlcmVuY2UocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0cGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyU3RyaW5nLnNsaWNlKCgoL15yZWZbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykpP1wicmVmOlwiOlwicmVmZXJlbmNlOlwiKS5sZW5ndGgpO1xuXHRjb25zdCBsaW5rSW5mbyA9IG1hbmFnZUxpbmsocGFyYW1ldGVyU3RyaW5nKTtcblx0aWYgKGxpbmtJbmZvKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPSBsaW5rSW5mby5yZWZlcmVuY2U7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IFwiXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID0gbGlua0luZm8udGl0bGU7XG5cdH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBtYW5hZ2VMaW5rKHBhcmFtZXRlclN0cmluZzogc3RyaW5nKToge3RpdGxlOiBzdHJpbmcsIHJlZmVyZW5jZTogc3RyaW5nfSB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHJlZldpa2lNYXRjaCA9IC9cXFtcXFsoW15cXF18XFxyXFxuXSs/KSg/OlxcfChbXlxcXXxcXHJcXG5dKz8pKT9cXF1cXF0vLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0Y29uc3QgcmVmTWRNYXRjaCA9IC9cXFsoLio/KVxcXVxcKCguKylcXCkvLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0Y29uc3QgdXJsTWF0Y2ggPSAvXihbXCInXT8pKGh0dHBzPzpcXC9cXC8uKilcXDEkLy5leGVjKHBhcmFtZXRlclN0cmluZyk7XG5cdGxldCB0aXRsZSA9IFwiXCI7XG5cdGxldCByZWZlcmVuY2UgPSBcIlwiO1xuXHRpZiAocmVmV2lraU1hdGNoKSB7XG5cdFx0dGl0bGUgPSByZWZXaWtpTWF0Y2hbMl0/cmVmV2lraU1hdGNoWzJdLnRyaW0oKTpyZWZXaWtpTWF0Y2hbMV0udHJpbSgpO1xuXHRcdHJlZmVyZW5jZSA9IHJlZldpa2lNYXRjaFsxXS50cmltKCk7XG5cdH0gZWxzZSBpZiAocmVmTWRNYXRjaCkge1xuXHRcdHRpdGxlID0gcmVmTWRNYXRjaFsxXS50cmltKCk7XG5cdFx0cmVmZXJlbmNlID0gcmVmTWRNYXRjaFsyXS50cmltKCk7XG5cdH0gZWxzZSBpZiAodXJsTWF0Y2gpIHtcblx0XHR0aXRsZSA9IFwiVVJMXCI7XG5cdFx0cmVmZXJlbmNlID0gdXJsTWF0Y2hbMl0udHJpbSgpO1xuXHR9ICBlbHNlXG5cdFx0cmV0dXJuO1xuXHRyZXR1cm4ge3RpdGxlOiB0aXRsZSwgcmVmZXJlbmNlOiByZWZlcmVuY2V9O1xufVxuZnVuY3Rpb24gbWFuYWdlRm9sZGluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImZvbGRcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZCA9IHtcblx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRwbGFjZWhvbGRlcjogXCJcIixcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IGZvbGRQbGFjZWhvbGRlck1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcImZvbGQ6XCIubGVuZ3RoKSk7XG5cdFx0aWYgKGZvbGRQbGFjZWhvbGRlck1hdGNoKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQgPSB7XG5cdFx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdHBsYWNlaG9sZGVyOiBmb2xkUGxhY2Vob2xkZXJNYXRjaFsyXS50cmltKCksXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuZnVuY3Rpb24gbWFuYWdlTGluZU51bWJlcmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJsbjpcIi5sZW5ndGgpO1xuXHRpZiAoL15cXGQrJC8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycyA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRvZmZzZXQ6IHBhcnNlSW50KHBhcmFtZXRlclN0cmluZyktMSxcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwiZmFsc2VcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH07XG5cdH1cbn1cbmZ1bmN0aW9uIG1hbmFnZVdyYXBwaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKSB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwid3JhcFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogdHJ1ZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcInVud3JhcFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0cGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidW53cmFwOlwiLmxlbmd0aCk7XG5cdFx0aWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImluYWN0aXZlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiB0cnVlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImZhbHNlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBhZGRIaWdobGlnaHRzKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKSB7XG5cdGNvbnN0IGhpZ2hsaWdodE1hdGNoID0gL14oXFx3KylbOj1dKC4rKSQvLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0aWYgKGhpZ2hsaWdodE1hdGNoKSB7XG5cdFx0aWYgKGhpZ2hsaWdodE1hdGNoWzFdID09PSBcImhsXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhoaWdobGlnaHRNYXRjaFsyXSk7XG5cdFx0ZWxzZSBpZiAoaGlnaGxpZ2h0TWF0Y2hbMV0gaW4gdGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cylcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZVtoaWdobGlnaHRNYXRjaFsxXV0gPSBwYXJzZUhpZ2hsaWdodGVkTGluZXMoaGlnaGxpZ2h0TWF0Y2hbMl0pO1xuXHR9IGVsc2UgaWYgKC9ee1tcXGQtLF0rfSQvLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoMSwtMSkpO1xufVxuZnVuY3Rpb24gcGFyc2VIaWdobGlnaHRlZExpbmVzKGhpZ2hsaWdodGVkTGluZXNTdHJpbmc6IHN0cmluZyk6IEhpZ2hsaWdodHMge1xuXHRjb25zdCBoaWdobGlnaHRSdWxlcyA9IGhpZ2hsaWdodGVkTGluZXNTdHJpbmcuc3BsaXQoXCIsXCIpO1xuXHRjb25zdCBsaW5lTnVtYmVyczogU2V0PG51bWJlcj4gPSBuZXcgU2V0KCk7XG5cdGNvbnN0IHBsYWluVGV4dDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdGNvbnN0IHJlZ3VsYXJFeHByZXNzaW9uczogU2V0PFJlZ0V4cD4gPSBuZXcgU2V0KCk7XG5cdGhpZ2hsaWdodFJ1bGVzLmZvckVhY2goaGlnaGxpZ2h0UnVsZSA9PiB7XG5cdFx0aWYgKC9cXGQrLVxcZCsvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gTnVtYmVyIFJhbmdlXG5cdFx0XHRjb25zdCBbc3RhcnQsZW5kXSA9IGhpZ2hsaWdodFJ1bGUuc3BsaXQoXCItXCIpLm1hcChudW0gPT4gcGFyc2VJbnQobnVtKSk7XG5cdFx0XHRpZiAoc3RhcnQgJiYgZW5kICYmIHN0YXJ0IDw9IGVuZClcblx0XHRcdFx0QXJyYXkuZnJvbSh7bGVuZ3RoOmVuZC1zdGFydCsxfSwgKF8sbnVtKSA9PiBudW0gKyBzdGFydCkuZm9yRWFjaChsaW5lTnVtYmVyID0+IGxpbmVOdW1iZXJzLmFkZChsaW5lTnVtYmVyKSk7XG5cdFx0fSBlbHNlIGlmICgvXlxcLyguKilcXC8kLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFJlZ2V4XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZWd1bGFyRXhwcmVzc2lvbnMuYWRkKG5ldyBSZWdFeHAoaGlnaGxpZ2h0UnVsZS5yZXBsYWNlKC9eXFwvKC4qKVxcLyQvLCBcIiQxXCIpKSk7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0Ly9wYXNzXG5cdFx0XHR9XG5cdFx0fSAgZWxzZSBpZiAoL1wiLipcIi8udGVzdChoaWdobGlnaHRSdWxlKSkgLy8gUGxhaW4gVGV4dFxuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlLnN1YnN0cmluZygxLGhpZ2hsaWdodFJ1bGUubGVuZ3RoLTEpKTtcblx0XHRlbHNlIGlmICgvJy4qJy8udGVzdChoaWdobGlnaHRSdWxlKSkgLy8gUGxhaW4gVGV4dFxuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlLnN1YnN0cmluZygxLGhpZ2hsaWdodFJ1bGUubGVuZ3RoLTEpKTtcblx0XHRlbHNlIGlmICgvXFxELy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSAvLyBQbGFpbiBUZXh0IC8vVE9ETyAoQG1heXVyYW5rdikgU2hvdWxkIHRoaXMgYmUgXFxEKyA/P1xuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlKTtcblx0XHRlbHNlIGlmICgvXFxkKy8udGVzdChoaWdobGlnaHRSdWxlKSkgLy8gUGxhaW4gTnVtYmVyXG5cdFx0XHRsaW5lTnVtYmVycy5hZGQocGFyc2VJbnQoaGlnaGxpZ2h0UnVsZSkpO1xuXHR9KTtcblx0cmV0dXJuIHtcblx0XHRsaW5lTnVtYmVyczogWy4uLmxpbmVOdW1iZXJzXSxcblx0XHRwbGFpblRleHQ6IFsuLi5wbGFpblRleHRdLFxuXHRcdHJlZ3VsYXJFeHByZXNzaW9uczogWy4uLnJlZ3VsYXJFeHByZXNzaW9uc10sXG5cdH07XG59XG5leHBvcnQgZnVuY3Rpb24gaXNMYW5ndWFnZUlnbm9yZWQobGFuZ3VhZ2U6IHN0cmluZywgZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nKS5zb21lKHJlZ2V4RXhjbHVkZWRMYW5ndWFnZT0+cmVnZXhFeGNsdWRlZExhbmd1YWdlLnRlc3QobGFuZ3VhZ2UpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0NvZGVibG9ja0lnbm9yZWQobGFuZ3VhZ2U6IHN0cmluZywgd2hpdGVsaXN0ZWRDb2RlYmxvY2tzU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0cmV0dXJuIChsYW5ndWFnZSBpbiBNYXJrZG93blByZXZpZXdSZW5kZXJlci5jb2RlQmxvY2tQb3N0UHJvY2Vzc29ycykgJiYgIXBhcnNlUmVnZXhFeGNsdWRlZExhbmd1YWdlcyh3aGl0ZWxpc3RlZENvZGVibG9ja3NTdHJpbmcpLnNvbWUocmVnZXhFeGNsdWRlZExhbmd1YWdlPT5yZWdleEV4Y2x1ZGVkTGFuZ3VhZ2UudGVzdChsYW5ndWFnZSkpO1xufVxuZnVuY3Rpb24gcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nOiBzdHJpbmcpOiBBcnJheTxSZWdFeHA+IHtcblx0cmV0dXJuIGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nLnNwbGl0KFwiLFwiKS5tYXAocmVnZXhMYW5ndWFnZSA9PiBuZXcgUmVnRXhwKGBeJHtyZWdleExhbmd1YWdlLnRyaW0oKS5yZXBsYWNlKC9cXCovZyxcIi4rXCIpfSRgLFwiaVwiKSk7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtZXRlckxpbmUoY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRsZXQgb3BlbmluZ0NvZGVibG9ja0xpbmUgPSBnZXRPcGVuaW5nTGluZShjb2RlYmxvY2tMaW5lcyk7XG5cdGlmIChvcGVuaW5nQ29kZWJsb2NrTGluZSAmJiAob3BlbmluZ0NvZGVibG9ja0xpbmUgIT09IGNvZGVibG9ja0xpbmVzWzBdIHx8IC8+XFxzKig/Oltgfl0pLy50ZXN0KG9wZW5pbmdDb2RlYmxvY2tMaW5lKSkpXG5cdFx0b3BlbmluZ0NvZGVibG9ja0xpbmUgPSBjbGVhblBhcmFtZXRlckxpbmUob3BlbmluZ0NvZGVibG9ja0xpbmUpO1xuXHRyZXR1cm4gb3BlbmluZ0NvZGVibG9ja0xpbmU7XG59XG5mdW5jdGlvbiBnZXRPcGVuaW5nTGluZShjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBjb2RlYmxvY2tMaW5lcy5maW5kKChsaW5lOiBzdHJpbmcpPT5Cb29sZWFuKHRlc3RPcGVuaW5nTGluZShsaW5lKSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRlc3RPcGVuaW5nTGluZShjb2RlYmxvY2tMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBsaW5lTWF0Y2ggPSAvXihcXHMqKD86PlxccyopKikoYGBgK3x+fn4rKS8uZXhlYyhjb2RlYmxvY2tMaW5lKTtcblx0aWYgKCFsaW5lTWF0Y2gpXG5cdFx0cmV0dXJuIFwiXCI7XG5cdGlmIChjb2RlYmxvY2tMaW5lLmluZGV4T2YobGluZU1hdGNoWzJdLGxpbmVNYXRjaFsxXS5sZW5ndGgrbGluZU1hdGNoWzJdLmxlbmd0aCsxKT09PS0xKVxuXHRcdHJldHVybiBsaW5lTWF0Y2hbMl07XG5cdHJldHVybiBcIlwiO1xufVxuZnVuY3Rpb24gY2xlYW5QYXJhbWV0ZXJMaW5lKHBhcmFtZXRlckxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiB0cmltUGFyYW1ldGVyTGluZShwYXJhbWV0ZXJMaW5lKS5yZXBsYWNlKC9eKD86PlxccyopKihgYGArfH5+fispLyxcIiQxXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRyaW1QYXJhbWV0ZXJMaW5lKHBhcmFtZXRlckxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBwYXJhbWV0ZXJMaW5lLnRyaW0oKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZpbGVDb250ZW50TGluZXMoc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPEFycmF5PHN0cmluZz4gfCB1bmRlZmluZWQ+IHtcblx0Y29uc3QgZmlsZSA9IHBsdWdpbi5hcHAudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKHNvdXJjZVBhdGgpO1xuXHRpZiAoIWZpbGUpIHtcblx0XHRjb25zb2xlLmVycm9yKGBGaWxlIG5vdCBmb3VuZDogJHtzb3VyY2VQYXRofWApO1xuXHRcdHJldHVybjtcblx0fVxuXHRjb25zdCBmaWxlQ29udGVudCA9IGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuY2FjaGVkUmVhZCg8VEZpbGU+IGZpbGUpLmNhdGNoKChlcnJvcikgPT4ge1xuXHRcdGNvbnNvbGUuZXJyb3IoYEVycm9yIHJlYWRpbmcgZmlsZTogJHtlcnJvci5tZXNzYWdlfWApO1xuXHRcdHJldHVybiBcIlwiO1xuXHR9KTtcblx0aWYgKCFmaWxlQ29udGVudClcblx0XHRyZXR1cm47XG5cdHJldHVybiBmaWxlQ29udGVudC5zcGxpdCgvXFxuL2cpO1xufVxuXG5mdW5jdGlvbiBhcnJheXNFcXVhbChhcnJheTE6IEFycmF5PHVua25vd24+LGFycmF5MjogQXJyYXk8dW5rbm93bj4pOiBib29sZWFuIHtcblx0cmV0dXJuIGFycmF5MS5sZW5ndGggPT09IGFycmF5Mi5sZW5ndGggJiYgYXJyYXkxLmV2ZXJ5KChlbCkgPT4gYXJyYXkyLmluY2x1ZGVzKGVsKSk7XG59XG4iLCAiaW1wb3J0IHtOb3RpY2V9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0ICogYXMgSlNPTjUgZnJvbSBcImpzb241XCI7XG5cbmV4cG9ydCB0eXBlIEV4cG9ydFR5cGUgPSBcInByZVwiIHwgXCJwb3N0XCI7XG5cbi8qKlxuICogQXJndW1lbnRzIGZvciBjb2RlIGJsb2Nrcywgc3BlY2lmaWVkIG5leHQgdG8gdGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgYXMgSlNPTlxuICogQGV4YW1wbGUgYGBgcHl0aG9uIHtcImV4cG9ydFwiOiBcInByZVwifVxuICogQGV4YW1wbGUgYGBgY3BwIHtcImlnbm9yZUV4cG9ydFwiOiBbXCJwb3N0XCJdfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVCbG9ja0FyZ3Mge1xuXHRsYWJlbD86IHN0cmluZztcblx0aW1wb3J0Pzogc3RyaW5nIHwgc3RyaW5nW107XG5cdGV4cG9ydD86IEV4cG9ydFR5cGUgfCBFeHBvcnRUeXBlW107XG5cdGlnbm9yZT86IChFeHBvcnRUeXBlIHwgXCJnbG9iYWxcIilbXSB8IEV4cG9ydFR5cGUgfCBcImdsb2JhbFwiIHwgXCJhbGxcIjtcbn1cblxuLyoqXG4gKiBHZXQgY29kZSBibG9jayBhcmdzIGdpdmVuIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBjb2RlIGJsb2NrLlxuICpcbiAqIEBwYXJhbSBmaXJzdExpbmVPZkNvZGUgVGhlIGZpcnN0IGxpbmUgb2YgYSBjb2RlIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlIGxhbmd1YWdlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYXJndW1lbnRzIGZyb20gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGNvZGUgYmxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcmdzKGZpcnN0TGluZU9mQ29kZTogc3RyaW5nKTogQ29kZUJsb2NrQXJncyB7XG5cdC8vIE5vIGFyZ3Mgc3BlY2lmaWVkXG5cdGlmICghZmlyc3RMaW5lT2ZDb2RlLmNvbnRhaW5zKFwie1wiKSAmJiAhZmlyc3RMaW5lT2ZDb2RlLmNvbnRhaW5zKFwifVwiKSlcblx0XHRyZXR1cm4ge307XG5cdHRyeSB7XG5cdFx0bGV0IGFyZ3MgPSBmaXJzdExpbmVPZkNvZGUuc3Vic3RyaW5nKGZpcnN0TGluZU9mQ29kZS5pbmRleE9mKFwie1wiKSArIDEpLnRyaW0oKTtcblx0XHQvLyBUcmFuc2Zvcm0gY3VzdG9tIHN5bnRheCB0byBKU09ONVxuXHRcdGFyZ3MgPSBhcmdzLnJlcGxhY2UoLz0vZywgXCI6XCIpO1xuXHRcdC8vIEhhbmRsZSB1bm5hbWVkIGV4cG9ydCBhcmcgLSBwcmUgLyBwb3N0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFyZ3Mgd2l0aG91dCBhbnkgYXJnIG5hbWVcblx0XHRjb25zdCBleHBvcnRzOiBFeHBvcnRUeXBlW10gPSBbXTtcblx0XHRjb25zdCBoYW5kbGVVbm5hbWVkRXhwb3J0ID0gKGV4cG9ydE5hbWU6IEV4cG9ydFR5cGUpID0+IHtcblx0XHRcdGxldCBpID0gYXJncy5pbmRleE9mKGV4cG9ydE5hbWUpO1xuXHRcdFx0d2hpbGUgKGkgIT09IC0xKSB7XG5cdFx0XHRcdGNvbnN0IG5leHRDaGFyID0gYXJnc1tpICsgZXhwb3J0TmFtZS5sZW5ndGhdO1xuXHRcdFx0XHRpZiAobmV4dENoYXIgIT09IFwiXFxcIlwiICYmIG5leHRDaGFyICE9PSBcIidcIikge1xuXHRcdFx0XHRcdC8vIFJlbW92ZSBmcm9tIGFyZ3Mgc3RyaW5nXG5cdFx0XHRcdFx0YXJncyA9IGFyZ3Muc3Vic3RyaW5nKDAsIGkpICsgYXJncy5zdWJzdHJpbmcoaSArIGV4cG9ydE5hbWUubGVuZ3RoICsgKG5leHRDaGFyID09PSBcIn1cIiA/IDAgOiAxKSk7XG5cdFx0XHRcdFx0ZXhwb3J0cy5wdXNoKGV4cG9ydE5hbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGkgPSBhcmdzLmluZGV4T2YoZXhwb3J0TmFtZSwgaSArIDEpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0aGFuZGxlVW5uYW1lZEV4cG9ydChcInByZVwiKTtcblx0XHRoYW5kbGVVbm5hbWVkRXhwb3J0KFwicG9zdFwiKTtcblx0XHRhcmdzID0gYHtleHBvcnQ6IFsnJHtleHBvcnRzLmpvaW4oXCInLCAnXCIpfSddLCAke2FyZ3N9YDtcblx0XHRyZXR1cm4gSlNPTjUucGFyc2UoYXJncyk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdG5ldyBOb3RpY2UoYEZhaWxlZCB0byBwYXJzZSBjb2RlIGJsb2NrIGFyZ3VtZW50cyBmcm9tIGxpbmU6XFxuJHtmaXJzdExpbmVPZkNvZGV9XFxuXFxuRmFpbGVkIHdpdGggZXJyb3I6XFxuJHtlcnJ9YCk7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG59XG4iLCAiaW1wb3J0IHsgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCwgTWFya2Rvd25SZW5kZXJlciwgTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24sIG5vcm1hbGl6ZVBhdGgsIHJlcXVlc3QgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IFJlZmVyZW5jZSwgZ2V0TGluZUxpbWl0cywgcGFyc2VFeHRlcm5hbFJlZmVyZW5jZSwgcGFyc2VSZWZlcmVuY2VQYXJhbWV0ZXJzIH0gZnJvbSBcInNyYy9QYXJzaW5nL1JlZmVyZW5jZVBhcnNpbmdcIjtcbmltcG9ydCB7IEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRILCBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVgsIExPQ0FMX1BSRUZJWCwgUkVGRVJFTkNFX0NPREVCTE9DSyB9IGZyb20gXCJzcmMvU2V0dGluZ3NcIjtcbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCJzcmMvbWFpblwiO1xuaW1wb3J0IHsgcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbiB9IGZyb20gXCIuL1JlYWRpbmdWaWV3XCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWZlcmVuY2VDb2RlYmxvY2tQcm9jZXNzb3Ioc291cmNlOiBzdHJpbmcsIGNvZGVibG9ja0VsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgY29kZWJsb2NrU2VjdGlvbkluZm86IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCA9IGNvbnRleHQuZ2V0U2VjdGlvbkluZm8oY29kZWJsb2NrRWxlbWVudCk7XG5cdGlmIChjb2RlYmxvY2tTZWN0aW9uSW5mbyA9PT0gbnVsbClcblx0XHR0aHJvdyBFcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjb2RlYmxvY2sgaW5mb3JtYXRpb25cIik7XG5cblx0Y29uc3QgY29kZWJsb2NrTGluZXMgPSBbY29kZWJsb2NrU2VjdGlvbkluZm8udGV4dC5zcGxpdChcIlxcblwiKVtjb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lU3RhcnRdLCAuLi5zb3VyY2Uuc3BsaXQoXCJcXG5cIildO1xuXHRpZiAoY29kZWJsb2NrTGluZXNbY29kZWJsb2NrTGluZXMubGVuZ3RoIC0gMV0gIT09IFwiXCIpXG5cdFx0Y29kZWJsb2NrTGluZXMucHVzaChcIlwiKTtcblx0Y29uc3QgcmVmZXJlbmNlID0gYXdhaXQgZ2V0UmVmZXJlbmNlKGNvZGVibG9ja0xpbmVzLCBjb250ZXh0LnNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdHJlbmRlckZpbGUocmVmZXJlbmNlLCBjb2RlYmxvY2tFbGVtZW50LCBjb250ZXh0LCBwbHVnaW4pO1xuXHRyZW5kZXJTcGVjaWZpY1JlYWRpbmdTZWN0aW9uKEFycmF5LmZyb20oY29kZWJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKSwgY29udGV4dC5zb3VyY2VQYXRoLCBjb2RlYmxvY2tTZWN0aW9uSW5mbywgcGx1Z2luKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyRmlsZShyZWZlcmVuY2U6IFJlZmVyZW5jZSwgY29kZWJsb2NrRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ6IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwbHVnaW4uYXBwLCByZWZlcmVuY2UuY29kZSwgY29kZWJsb2NrRWxlbWVudCwgY29udGV4dC5zb3VyY2VQYXRoLCBwbHVnaW4pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVmZXJlbmNlKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8UmVmZXJlbmNlPiB7XG5cdGNvbnN0IHJlZmVyZW5jZTogUmVmZXJlbmNlID0ge1xuXHRcdGNvZGU6IFwiXCIsXG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0c3RhcnRMaW5lOiAxLFxuXHRcdHBhdGg6IFwiXCIsXG5cdH07XG5cblx0dHJ5IHtcblx0XHRjb25zdCByZWZlcmVuY2VQYXJhbWV0ZXJzID0gcGFyc2VSZWZlcmVuY2VQYXJhbWV0ZXJzKGNvZGVibG9ja0xpbmVzLnNsaWNlKDEsIC0xKS5qb2luKFwiXFxuXCIpKTtcblx0XHRyZWZlcmVuY2UubGFuZ3VhZ2UgPSByZWZlcmVuY2VQYXJhbWV0ZXJzLmxhbmd1YWdlO1xuXHRcdHJlZmVyZW5jZS5wYXRoID0gcmVmZXJlbmNlUGFyYW1ldGVycy5maWxlUGF0aDtcblx0XHRpZiAoL15odHRwcz86XFwvXFwvLy50ZXN0KHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGgpKSB7XG5cdFx0XHRjb25zdCBleHRlcm5hbFJlZmVyZW5jZUlkID0gaWRFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2UucGF0aCk7XG5cdFx0XHRyZWZlcmVuY2UuZXh0ZXJuYWwgPSB7XG5cdFx0XHRcdHdlYnNpdGU6IGV4dGVybmFsUmVmZXJlbmNlSWQud2Vic2l0ZSxcblx0XHRcdFx0c3RvcmVQYXRoOiBwbHVnaW4uYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIICsgZXh0ZXJuYWxSZWZlcmVuY2VJZC5pZCxcblx0XHRcdFx0aW5mbzoge3RpdGxlOiBcIlwiLCB1cmw6IHJlZmVyZW5jZS5wYXRoLCBzaXRlOiBleHRlcm5hbFJlZmVyZW5jZUlkLndlYnNpdGUsIGRhdGV0aW1lOiBcIlwiLCByYXdVcmw6IHJlZmVyZW5jZS5wYXRofSxcblx0XHRcdH07XG5cdFx0XHRyZWZlcmVuY2VQYXJhbWV0ZXJzLmZpbGVQYXRoID0gYXdhaXQgYWNjZXNzRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlLCBwbHVnaW4pO1xuXHRcdFx0cmVmZXJlbmNlLmV4dGVybmFsLmluZm8gPSB7IC4uLnJlZmVyZW5jZS5leHRlcm5hbC5pbmZvLCAuLi5KU09OLnBhcnNlKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5yZWFkKHJlZmVyZW5jZS5leHRlcm5hbC5zdG9yZVBhdGggKyBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVgpKSB9O1xuXHRcdH1cblx0XHRjb25zdCB2YXVsdFBhdGggPSBnZXRQYXRoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGgsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdFx0aWYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGguc3RhcnRzV2l0aChcIltbXCIpICYmIHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGguZW5kc1dpdGgoXCJdXVwiKSlcblx0XHRcdHJlZmVyZW5jZS5wYXRoID0gdmF1bHRQYXRoO1xuXHRcdGlmICghKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5leGlzdHModmF1bHRQYXRoKSkpXG5cdFx0XHR0aHJvdyBFcnJvcihgTG9jYWwgRmlsZSBkb2VzIG5vdCBleGlzdCBhdCAke3ZhdWx0UGF0aH1gKTtcblx0XHRjb25zdCBjb2RlQ29udGVudCA9IChhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIucmVhZCh2YXVsdFBhdGgpKS50cmltKCk7XG5cdFx0Y29uc3QgY29kZVNlY3Rpb25JbmZvID0gZ2V0TGluZUxpbWl0cyhjb2RlQ29udGVudCwgcmVmZXJlbmNlUGFyYW1ldGVycyk7XG5cdFx0cmVmZXJlbmNlLnN0YXJ0TGluZSA9IGNvZGVTZWN0aW9uSW5mby5zdGFydExpbmU7XG5cdFx0cmVmZXJlbmNlLmNvZGUgPSBbXCJgYGBcIiwgcmVmZXJlbmNlUGFyYW1ldGVycy5sYW5ndWFnZSxcIiBcIixjb2RlYmxvY2tMaW5lc1swXS5zdWJzdHJpbmcoUkVGRVJFTkNFX0NPREVCTE9DSy5sZW5ndGgpLnRyaW0oKSwgXCJcXG5cIiwgY29kZVNlY3Rpb25JbmZvLmNvZGVTZWN0aW9uLCBcIlxcblwiLCBcImBgYFwiXS5qb2luKFwiXCIpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHJlZmVyZW5jZS5jb2RlID0gYD4gWyFlcnJvcl0gJHsoKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcikpLnJlcGxhY2UoL1xcbi9nLFwiXFxuPlwiKX1gO1xuXHR9XG5cdHJldHVybiByZWZlcmVuY2U7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFjY2Vzc0V4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHN0cmluZz4ge1xuXHR0cnkge1xuXHRcdGlmICghKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5leGlzdHMocmVmZXJlbmNlPy5leHRlcm5hbD8uc3RvcmVQYXRoIGFzIHN0cmluZykpKVxuXHRcdFx0YXdhaXQgdXBkYXRlRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlLCBwbHVnaW4pO1xuXHRcdHJldHVybiByZWZlcmVuY2U/LmV4dGVybmFsPy5zdG9yZVBhdGggYXMgc3RyaW5nO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHRocm93IEVycm9yKGVycm9yKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGRhdGVFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2U6IFJlZmVyZW5jZSwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdHRyeSB7XG5cdFx0Y29uc3Qgc291cmNlSW5mbyA9IGF3YWl0IHBhcnNlRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlKTtcblx0XHRjb25zdCBjb250ZW50ID0gYXdhaXQgcmVxdWVzdChzb3VyY2VJbmZvLnJhd1VybCA/PyByZWZlcmVuY2UucGF0aCk7XG5cdFx0YXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLndyaXRlKHJlZmVyZW5jZT8uZXh0ZXJuYWw/LnN0b3JlUGF0aCBhcyBzdHJpbmcsIGNvbnRlbnQpO1xuXHRcdGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci53cml0ZShyZWZlcmVuY2U/LmV4dGVybmFsPy5zdG9yZVBhdGggYXMgc3RyaW5nICsgRVhURVJOQUxfUkVGRVJFTkNFX0lORk9fU1VGRklYLCBKU09OLnN0cmluZ2lmeShzb3VyY2VJbmZvKSk7XG5cdH0gY2F0Y2goZXJyb3IpIHtcblx0XHR0aHJvdyBFcnJvcihgQ291bGQgbm90IGRvd25sb2FkIGZpbGU6ICR7ZXJyb3J9YCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gaWRFeHRlcm5hbFJlZmVyZW5jZShmaWxlTGluazogc3RyaW5nKToge2lkOiBzdHJpbmcsIHdlYnNpdGU6IHN0cmluZ30ge1xuXHRjb25zdCBsaW5rSW5mbyA9IC9eaHR0cHM/OlxcL1xcLyguKylcXC5jb21cXC8oLispJC8uZXhlYyhmaWxlTGluayk7XG5cdGlmICghbGlua0luZm8/LlsxXSB8fCAhbGlua0luZm8/LlsyXSlcblx0XHR0aHJvdyBFcnJvcihcIk5vIHN1Y2ggcmVwb3NpdG9yeSBjb3VsZCBiZSBmb3VuZFwiKTtcblx0cmV0dXJuIHtpZDogW2xpbmtJbmZvWzFdLCAuLi5saW5rSW5mb1syXS5zcGxpdChcIi9cIildLmpvaW4oXCItXCIpLCB3ZWJzaXRlOiBsaW5rSW5mb1sxXX07XG59XG5cbmZ1bmN0aW9uIGdldFBhdGgoZmlsZVBhdGg6IHN0cmluZywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBzdHJpbmcge1xuXHRmaWxlUGF0aCA9IGZpbGVQYXRoLnRyaW0oKTtcblx0aWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCJbW1wiKSAmJiBmaWxlUGF0aC5lbmRzV2l0aChcIl1dXCIpKVxuXHRcdHJldHVybiBwbHVnaW4uYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZmlsZVBhdGguc2xpY2UoMiwtMiksIHNvdXJjZVBhdGgpPy5wYXRoID8/IGZpbGVQYXRoO1xuXHRmaWxlUGF0aCA9IGZpbGVQYXRoLnJlcGxhY2UoXCJcXFxcXCIsIFwiL1wiKTtcblx0aWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoTE9DQUxfUFJFRklYKSlcblx0XHRyZXR1cm4gZmlsZVBhdGguc3Vic3RyaW5nKDIpO1xuXHRlbHNlIGlmIChmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi9cIikgfHwgL15bXjw6XCIvXFxcXD4/fCpdLy50ZXN0KGZpbGVQYXRoKSkge1xuXHRcdGlmICghc291cmNlUGF0aClcblx0XHRcdHRocm93IEVycm9yKFwiQ2Fubm90IHJlc29sdmUgcmVsYXRpdmUgcGF0aCBiZWNhdXNlIHRoZSBzb3VyY2UgcGF0aCBpcyBtaXNzaW5nXCIpO1xuXHRcdHJldHVybiBnZXRSZWxhdGl2ZVBhdGgoZmlsZVBhdGgsIHNvdXJjZVBhdGgudHJpbSgpKTtcblx0fSAgZWxzZSBpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChcIi9cIikpXG5cdFx0dGhyb3cgRXJyb3IoYFBhdGggc2hvdWxkIG5vdCBzdGFydCB3aXRoIFwiL1wiLCB1c2UgXCIke0xPQ0FMX1BSRUZJWH1cIiB0byByZWZlcmVuY2UgYSBwYXRoIHJlbGF0aXZlIHRvIHRoZSB2YXVsdCByb290IGZvbGRlcmApO1xuXHRlbHNlXG5cdFx0dGhyb3cgRXJyb3IoXCJDYW5ub3QgcmVzb2x2ZSBwYXRoXCIpO1xufVxuXG5mdW5jdGlvbiBnZXRSZWxhdGl2ZVBhdGgoZmlsZVBhdGg6IHN0cmluZywgc291cmNlUGF0aDogc3RyaW5nKSB7XG5cdGlmIChmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi9cIikpXG5cdFx0ZmlsZVBhdGggPSBmaWxlUGF0aC5zdWJzdHJpbmcoMik7XG5cdGNvbnN0IHZhdWx0RGlycyA9IHNvdXJjZVBhdGguc3BsaXQoXCIvXCIpO1xuXHR2YXVsdERpcnMucG9wKCk7XG5cdHdoaWxlIChmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi4vXCIpKVxuXHRcdGlmICh2YXVsdERpcnMucG9wKCkgIT09IHVuZGVmaW5lZClcblx0XHRcdGZpbGVQYXRoID0gZmlsZVBhdGguc3Vic3RyaW5nKDMpO1xuXHRcdGVsc2Vcblx0XHRcdHRocm93IEVycm9yKFwiUGF0aCByZWZlcmVuY2VzIG91dHNpZGUgdmF1bHQsIHRvbyBtYW55IFxcXCIuLi9cXFwicyB1c2VkXCIpO1xuXHRyZXR1cm4gbm9ybWFsaXplUGF0aChbLi4udmF1bHREaXJzLCBmaWxlUGF0aF0uam9pbihcIi9cIikpO1xufVxuIiwgImltcG9ydCB7IHBhcnNlWWFtbCwgcmVxdWVzdFVybCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZSB7XG5cdHN0YXJ0TGluZTogbnVtYmVyO1xuXHRjb2RlOiBzdHJpbmc7XG5cdGxhbmd1YWdlOiBzdHJpbmc7XG5cdHBhdGg6IHN0cmluZztcblx0ZXh0ZXJuYWw/OiB7XG5cdFx0c3RvcmVQYXRoOiBzdHJpbmcsXG5cdFx0d2Vic2l0ZTogc3RyaW5nLFxuXHRcdGluZm86IEV4dGVybmFsUmVmZXJlbmNlSW5mbztcblx0fVxufVxuXG50eXBlIExpbmVJZGVudGlmaWVyID0gbnVsbCB8IHN0cmluZyB8IG51bWJlciB8IFJlZ0V4cDtcblxuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VQYXJhbWV0ZXJzIHtcblx0ZmlsZVBhdGg6IHN0cmluZztcblx0bGFuZ3VhZ2U6IHN0cmluZztcblx0c3RhcnQ6IExpbmVJZGVudGlmaWVyO1xuXHRlbmQ6IExpbmVJZGVudGlmaWVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsUmVmZXJlbmNlSW5mbyB7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdHVybDogc3RyaW5nO1xuXHRzaXRlOiBzdHJpbmc7XG5cdGRhdGV0aW1lOiBzdHJpbmc7XG5cdHJhd1VybDogc3RyaW5nO1xuXHRkaXNwbGF5VXJsPzogc3RyaW5nO1xuXHRhdXRob3I/OiBzdHJpbmc7XG5cdHJlcG9zaXRvcnk/OiBzdHJpbmc7XG5cdHBhdGg/OiBzdHJpbmc7XG5cdGZpbGVOYW1lPzogc3RyaW5nO1xuXHRyZWZJbmZvPzoge1xuXHRcdHJlZjogc3RyaW5nO1xuXHRcdHR5cGU6IHN0cmluZztcblx0XHRoYXNoOiBzdHJpbmc7XG5cdH1cbn1cblxuaW50ZXJmYWNlIFBhc3NlZFBhcmFtZXRlcnMge1xuXHRmaWxlUGF0aD86IHN0cmluZztcblx0ZmlsZT86IHN0cmluZztcblx0cGF0aD86IHN0cmluZztcblx0bGluaz86IHN0cmluZztcblx0bGFuZ3VhZ2U/OiBzdHJpbmc7XG5cdGxhbmc/OiBzdHJpbmc7XG5cdHN0YXJ0Pzogc3RyaW5nIHwgbnVtYmVyO1xuXHRlbmQ/OiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlZmVyZW5jZVBhcmFtZXRlcnMoc291cmNlOiBzdHJpbmcpOiBSZWZlcmVuY2VQYXJhbWV0ZXJzIHtcblx0c291cmNlID0gc291cmNlLnJlcGxhY2UoL14oW146XSspOiguKylcXG4vLCBcIiQxOiAkMlxcblwiKS5yZXBsYWNlKC8oPzwhXCIpXFxbXFxbKC4qPylcXF1cXF0oPyFcIikvLCBcIlxcXCJbWyQxXV1cXFwiXCIpO1xuXHRsZXQgcGFzc2VkUGFyYW1ldGVyczogUGFzc2VkUGFyYW1ldGVycyB8IHN0cmluZyB8IG51bGwgPSBwYXJzZVlhbWwoc291cmNlKTtcblx0aWYgKHBhc3NlZFBhcmFtZXRlcnMgYXMgc3RyaW5nID09PSBzb3VyY2UgfHwgcGFzc2VkUGFyYW1ldGVycyA9PT0gbnVsbClcblx0XHR0aHJvdyBFcnJvcihcIllBTUwgUGFyc2UgRXJyb3JcIik7XG5cdHBhc3NlZFBhcmFtZXRlcnMgPSBwYXNzZWRQYXJhbWV0ZXJzIGFzIFBhc3NlZFBhcmFtZXRlcnM7XG5cdGNvbnN0IGZpbGVQYXRoID0gcGFzc2VkUGFyYW1ldGVycz8uZmlsZVBhdGggPz8gcGFzc2VkUGFyYW1ldGVycz8uZmlsZSA/PyBwYXNzZWRQYXJhbWV0ZXJzPy5wYXRoID8/IHBhc3NlZFBhcmFtZXRlcnM/Lmxpbms7XG5cdGlmICh0eXBlb2YgZmlsZVBhdGggPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0dGhyb3cgRXJyb3IoXCJObyBmaWxlIHNwZWNpZmllZFwiKTtcblx0Y29uc3QgcmVmZXJlbmNlUGFyYW1ldGVyczogUmVmZXJlbmNlUGFyYW1ldGVycyA9IHtmaWxlUGF0aDogZmlsZVBhdGgsIGxhbmd1YWdlOiBwYXNzZWRQYXJhbWV0ZXJzPy5sYW5ndWFnZSA/PyBwYXNzZWRQYXJhbWV0ZXJzPy5sYW5nID8/IGdldExhbmd1YWdlKGZpbGVQYXRoKSwgc3RhcnQ6IG51bGwsIGVuZDogbnVsbH07XG5cdHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgPSBnZXRMaW5lSWRlbnRpZmllcihwYXNzZWRQYXJhbWV0ZXJzLnN0YXJ0KTtcblx0cmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgPSBnZXRMaW5lSWRlbnRpZmllcihwYXNzZWRQYXJhbWV0ZXJzLmVuZCk7XG5cdHJldHVybiByZWZlcmVuY2VQYXJhbWV0ZXJzO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IFByb21pc2U8UGFydGlhbDxFeHRlcm5hbFJlZmVyZW5jZUluZm8+PiB7XG5cdGNvbnN0IEhFQURFUlMgPSB7IFwiQWNjZXB0XCI6IFwiYXBwbGljYXRpb24vanNvblwiLCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9O1xuXHR0cnkge1xuXHRcdGlmIChyZWZlcmVuY2UuZXh0ZXJuYWw/LndlYnNpdGUgPT09IFwiZ2l0aHViXCIpIHtcblx0XHRcdHJlZmVyZW5jZS5wYXRoID0gKHJlZmVyZW5jZS5wYXRoLnNwbGl0KFwiP1wiKVswXSkucmVwbGFjZSgvKD88PWdpdGh1Yi5jb21cXC8uKlxcLy4qXFwvKXJhdyg/PVxcLykvLFwiYmxvYlwiKTtcblx0XHRcdGNvbnN0IGluZm8gPSAoYXdhaXQgcmVxdWVzdFVybCh7dXJsOiByZWZlcmVuY2UucGF0aCwgbWV0aG9kOiBcIkdFVFwiLCBoZWFkZXJzOiBIRUFERVJTfSkpLmpzb247XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogaW5mby5wYXlsb2FkLmJsb2IuZGlzcGxheU5hbWUsIC8vIHRpdGxlOiBpbmZvLnRpdGxlLFxuXHRcdFx0XHRyYXdVcmw6IGluZm8ucGF5bG9hZC5ibG9iLnJhd0Jsb2JVcmwsXG5cdFx0XHRcdGRhdGV0aW1lOiB0aW1lU3RhbXAoKSxcblx0XHRcdFx0ZGlzcGxheVVybDogcmVmZXJlbmNlLnBhdGgsXG5cdFx0XHRcdGF1dGhvcjogaW5mby5wYXlsb2FkLnJlcG8ub3duZXJMb2dpbixcblx0XHRcdFx0cmVwb3NpdG9yeTogaW5mby5wYXlsb2FkLnJlcG8ubmFtZSxcblx0XHRcdFx0cGF0aDogaW5mby5wYXlsb2FkLnBhdGgsXG5cdFx0XHRcdGZpbGVOYW1lOiBpbmZvLnBheWxvYWQuYmxvYi5kaXNwbGF5TmFtZSxcblx0XHRcdFx0cmVmSW5mbzoge1xuXHRcdFx0XHRcdHJlZjogaW5mby5wYXlsb2FkLnJlZkluZm8ubmFtZSxcblx0XHRcdFx0XHR0eXBlOiBpbmZvLnBheWxvYWQucmVmSW5mby5yZWZUeXBlLFxuXHRcdFx0XHRcdGhhc2g6IGluZm8ucGF5bG9hZC5yZWZJbmZvLmN1cnJlbnRPaWRcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHJlZmVyZW5jZS5leHRlcm5hbD8ud2Vic2l0ZSA9PT0gXCJnaXRsYWJcIikge1xuXHRcdFx0cmVmZXJlbmNlLnBhdGggPSAocmVmZXJlbmNlLnBhdGguc3BsaXQoXCI/XCIpWzBdKS5yZXBsYWNlKC8oPzw9Z2l0bGFiLmNvbVxcLy4qXFwvLipcXC8pcmF3KD89XFwvKS8sIFwiYmxvYlwiKTtcblx0XHRcdGNvbnN0IGluZm8gPSAoYXdhaXQgcmVxdWVzdFVybCh7IHVybDogcmVmZXJlbmNlLnBhdGgsIG1ldGhvZDogXCJHRVRcIiwgaGVhZGVyczogSEVBREVSUyB9KSkuanNvbjtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogaW5mby5uYW1lLFxuXHRcdFx0XHRyYXdVcmw6IFwiaHR0cHM6Ly9naXRsYWIuY29tXCIgKyBpbmZvLnJhd19wYXRoLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHRcdGRpc3BsYXlVcmw6IHJlZmVyZW5jZS5wYXRoLFxuXHRcdFx0XHRhdXRob3I6IHJlZmVyZW5jZS5wYXRoLm1hdGNoKC8oPzw9Xmh0dHBzPzpcXC9cXC9naXRsYWIuY29tXFwvKS4qPyg/PVxcLykvKT8uWzBdID8/IFwiXCIsXG5cdFx0XHRcdHJlcG9zaXRvcnk6IHJlZmVyZW5jZS5wYXRoLm1hdGNoKC8oPzw9Xmh0dHBzPzpcXC9cXC9naXRsYWIuY29tXFwvLio/XFwvKS4qPyg/PVxcLykvKT8uWzBdID8/IFwiXCIsXG5cdFx0XHRcdHBhdGg6IGluZm8ucGF0aCxcblx0XHRcdFx0ZmlsZU5hbWU6IGluZm8ubmFtZSxcblx0XHRcdFx0cmVmSW5mbzoge1xuXHRcdFx0XHRcdHJlZjogXCJcIiwgLy9UT0RPIChAbWF5dXJhbmt2KSBQYXJzZSBmcm9tIHVybFxuXHRcdFx0XHRcdHR5cGU6IFwiXCIsICAvL1RPRE8gKEBtYXl1cmFua3YpIFBhcnNlIGZyb20gdXJsXG5cdFx0XHRcdFx0aGFzaDogaW5mby5sYXN0X2NvbW1pdF9zaGFcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9ICBlbHNlIGlmIChyZWZlcmVuY2UuZXh0ZXJuYWw/LndlYnNpdGUgPT09IFwiYml0YnVja2V0XCIpIHtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0cmF3VXJsOiBcIlwiLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAocmVmZXJlbmNlLmV4dGVybmFsPy53ZWJzaXRlID09PSBcInNvdXJjZWZvcmdlXCIpIHtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0cmF3VXJsOiBcIlwiLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFVwZGF0ZVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6IFwiXCIsXG5cdFx0XHRcdHJhd1VybDogcmVmZXJlbmNlLnBhdGgsXG5cdFx0XHRcdGRhdGV0aW1lOiB0aW1lU3RhbXAoKSxcblx0XHRcdH07XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHRocm93IEVycm9yKGBDb3VsZCBub3QgcGFyc2UgZXh0ZXJuYWwgVVJMOiAke2Vycm9yfWApO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGdldExhbmd1YWdlKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChcIltbXCIpICYmIGZpbGVQYXRoLmVuZHNXaXRoKFwiXV1cIikpXG5cdFx0ZmlsZVBhdGggPSBmaWxlUGF0aC5zbGljZSgyLCAtMik7XG5cdHJldHVybiBmaWxlUGF0aC5zbGljZSgoZmlsZVBhdGgubGFzdEluZGV4T2YoXCIuXCIpIC0gMSA+Pj4gMCkgKyAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmVMaW1pdHMoY29kZUNvbnRlbnQ6IHN0cmluZywgcmVmZXJlbmNlUGFyYW1ldGVyczogUmVmZXJlbmNlUGFyYW1ldGVycyk6IHsgY29kZVNlY3Rpb246IHN0cmluZywgc3RhcnRMaW5lOiBudW1iZXIgfSB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgbGluZXMgPSBjb2RlQ29udGVudC5zcGxpdChcIlxcblwiKTtcblx0XHRsZXQgc3RhcnRJbmRleDogbnVtYmVyO1xuXHRcdGxldCBlbmRJbmRleDogbnVtYmVyO1xuXHRcdGlmIChyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0ID09PSBudWxsKVxuXHRcdFx0c3RhcnRJbmRleCA9IDA7XG5cdFx0ZWxzZSBpZiAodHlwZW9mIHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRzdGFydEluZGV4ID0gcmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCAtIDE7XG5cdFx0ZWxzZSBpZiAoKHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgYXMgc3RyaW5nKT8uc3RhcnRzV2l0aChcIi9cIikgJiYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgYXMgc3RyaW5nKT8uZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRjb25zdCBzdGFydFJlZ2V4ID0gbmV3IFJlZ0V4cCgocmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCBhcyBzdHJpbmcpLnJlcGxhY2UoL15cXC8oLiopXFwvJC8sIFwiJDFcIikpO1xuXHRcdFx0c3RhcnRJbmRleCA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gc3RhcnRSZWdleC50ZXN0KGxpbmUpKTtcblx0XHR9IGVsc2Vcblx0XHRcdHN0YXJ0SW5kZXggPSBsaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IGxpbmUuaW5kZXhPZihyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0IGFzIHN0cmluZykgPiAtMSk7XG5cdFx0aWYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kID09PSBudWxsKVxuXHRcdFx0ZW5kSW5kZXggPSBsaW5lcy5sZW5ndGggLSAxO1xuXHRcdGVsc2UgaWYgKHR5cGVvZiByZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCA9PT0gXCJudW1iZXJcIilcblx0XHRcdGVuZEluZGV4ID0gcmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgLSAxO1xuXHRcdGVsc2UgaWYgKChyZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCBhcyBzdHJpbmcpPy5zdGFydHNXaXRoKFwiL1wiKSAmJiAocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKT8uZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRjb25zdCBlbmRSZWdleCA9IG5ldyBSZWdFeHAoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZykucmVwbGFjZSgvXlxcLyguKilcXC8kLywgXCIkMVwiKSk7XG5cdFx0XHRlbmRJbmRleCA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gZW5kUmVnZXgudGVzdChsaW5lKSk7XG5cdFx0fSBlbHNlIGlmICgocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKT8uc3RhcnRzV2l0aChcIitcIikpXG5cdFx0XHRlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyBOdW1iZXIoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZykuc2xpY2UoMSkpO1xuXHRcdGVsc2Vcblx0XHRcdGVuZEluZGV4ID0gbGluZXMuZmluZEluZGV4KChsaW5lKSA9PiBsaW5lLmluZGV4T2YocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKSA+IC0xKTtcblx0XHRpZiAoc3RhcnRJbmRleCA+IGVuZEluZGV4KVxuXHRcdFx0dGhyb3cgRXJyb3IoXCJTcGVjaWZpZWQgU3RhcnQgbGluZSBpcyBhZnRlcnRoZSBzcGVjaWZpZWQgRW5kIGxpbmVcIik7XG5cdFx0ZWxzZSBpZiAoc3RhcnRJbmRleCA9PT0gLTEpXG5cdFx0XHR0aHJvdyBFcnJvcihcIlN0YXJ0IGxpbmUgY291bGQgbm90IGJlIGZvdW5kXCIpO1xuXHRcdGVsc2UgaWYgKGVuZEluZGV4ID09PSAtMSlcblx0XHRcdHRocm93IEVycm9yKFwiRW5kIGxpbmUgY291bGQgbm90IGJlIGZvdW5kXCIpO1xuXHRcdHJldHVybiB7IGNvZGVTZWN0aW9uOiBsaW5lcy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCArIDEpLmpvaW4oXCJcXG5cIiksIHN0YXJ0TGluZTogc3RhcnRJbmRleCArIDEgfTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHR0aHJvdyBFcnJvcihlcnJvcik7XG5cdH1cbn1cblxuZnVuY3Rpb24gZ2V0TGluZUlkZW50aWZpZXIobGluZUlkZW50aWZpZXI6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCk6IExpbmVJZGVudGlmaWVyIHtcblx0aWYgKHR5cGVvZiBsaW5lSWRlbnRpZmllciA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gbnVsbDtcblx0ZWxzZSBpZiAodHlwZW9mIGxpbmVJZGVudGlmaWVyID09PSBcIm51bWJlclwiKVxuXHRcdHJldHVybiBsaW5lSWRlbnRpZmllcjtcblx0ZWxzZSBpZiAoL15cXC8oLiopXFwvJC8udGVzdChsaW5lSWRlbnRpZmllcikpIHsgLy8gUmVnZXhcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIG5ldyBSZWdFeHAobGluZUlkZW50aWZpZXIucmVwbGFjZSgvXlxcLyguKilcXC8kLywgXCIkMVwiKSk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHR0aHJvdyBFcnJvcihcIkludmFsaWQgUmVndWxhciBFeHByZXNzaW9uXCIpO1xuXHRcdH1cblx0fSAgZWxzZSBpZiAoL1wiLipcIi8udGVzdChsaW5lSWRlbnRpZmllcikpIC8vIFBsYWluIFRleHRcblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXIuc3Vic3RyaW5nKDEsbGluZUlkZW50aWZpZXIubGVuZ3RoLTEpO1xuXHRlbHNlIGlmICgvJy4qJy8udGVzdChsaW5lSWRlbnRpZmllcikpIC8vIFBsYWluIFRleHRcblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXIuc3Vic3RyaW5nKDEsbGluZUlkZW50aWZpZXIubGVuZ3RoLTEpO1xuXHRlbHNlIGlmICgvXFxELy50ZXN0KGxpbmVJZGVudGlmaWVyKSkgLy8gUGxhaW4gVGV4dCAvL1RPRE8gKEBtYXl1cmFua3YpIFNob3VsZCB0aGlzIGJlIFxcRCsgPz9cblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXI7XG5cdGVsc2UgaWYgKC9cXGQrLy50ZXN0KGxpbmVJZGVudGlmaWVyKSkgLy8gUGxhaW4gTnVtYmVyXG5cdFx0cmV0dXJuIHBhcnNlSW50KGxpbmVJZGVudGlmaWVyKTtcblx0cmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lU3RhbXAoKTogc3RyaW5nIHtcblx0Y29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5cdGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG5cdGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblx0Y29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cdGNvbnN0IGhvdXIgPSBTdHJpbmcoZGF0ZS5nZXRIb3VycygpKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cdGNvbnN0IG1pbnV0ZSA9IFN0cmluZyhkYXRlLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgXCIwXCIpO1xuXHQvLyBjb25zdCBzZWNvbmQgPSBTdHJpbmcoZGF0ZS5nZXRTZWNvbmRzKCkpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblxuXHRyZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9ICR7aG91cn06JHttaW51dGV9YDtcbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiwgQ2FjaGVkTWV0YWRhdGEsIHNhbml0aXplSFRNTFRvRG9tLCBGcm9udE1hdHRlckNhY2hlLCBNYXJrZG93blJlbmRlcmVyIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyB2aXNpdFBhcmVudHMgfSBmcm9tIFwidW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzXCI7XG5pbXBvcnQgeyBmcm9tSHRtbCB9IGZyb20gXCJoYXN0LXV0aWwtZnJvbS1odG1sXCI7XG5pbXBvcnQgeyB0b0h0bWwgfSBmcm9tIFwiaGFzdC11dGlsLXRvLWh0bWxcIjtcbmltcG9ydCB7IEVsZW1lbnRDb250ZW50LCBFbGVtZW50IH0gZnJvbSBcImhhc3RcIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuaW1wb3J0IHsgU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsIFRSQU5TSVRJT05fTEVOR1RIIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIGdldEZpbGVDb250ZW50TGluZXMsIGlzQ29kZWJsb2NrSWdub3JlZCwgaXNMYW5ndWFnZUlnbm9yZWQsIHBhcnNlQ29kZWJsb2NrU291cmNlIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGFyc2VJbmxpbmVDb2RlIH0gZnJvbSBcIi4vUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZ1wiO1xuaW1wb3J0IHsgY3JlYXRlSGVhZGVyLCBjcmVhdGVJbmxpbmVPcGVuZXIsIGdldExpbmVDbGFzcyBhcyBnZXRMaW5lQ2xhc3NlcyB9IGZyb20gXCIuL0NvZGVibG9ja0RlY29yYXRpbmdcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHtzb3VyY2VQYXRoLGdldFNlY3Rpb25JbmZvLGZyb250bWF0dGVyfToge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZWRpdGluZ0VtYmVkcyA9IGZhbHNlKSB7XG5cdGNvbnN0IGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IG51bGwgPSBwbHVnaW4uYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUoc291cmNlUGF0aCk7XG5cdGlmICghc291cmNlUGF0aCB8fCAhZWxlbWVudCB8fCAoZnJvbnRtYXR0ZXIgPz8gY2FjaGU/LmZyb250bWF0dGVyKT8uW1wiY29kZS1zdHlsZXItaWdub3JlXCJdID09PSB0cnVlKVxuXHRcdHJldHVybjtcblxuXHRlZGl0aW5nRW1iZWRzID0gZWRpdGluZ0VtYmVkcyB8fCBCb29sZWFuKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCIuY20tZW1iZWQtYmxvY2tcIikpO1xuXHRjb25zdCBzcGVjaWZpYyA9ICFlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIudmlldy1jb250ZW50ID4gKlwiKTtcblx0Y29uc3QgcHJpbnRpbmcgPSBCb29sZWFuKGVsZW1lbnQucXVlcnlTZWxlY3RvcihcImRpdi5wcmludCA+ICpcIikpIHx8IEJvb2xlYW4oZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2LnNsaWRlcyA+ICpcIikpO1xuXHRpZiAocHJpbnRpbmcgJiYgIXBsdWdpbi5zZXR0aW5ncy5kZWNvcmF0ZVByaW50KVxuXHRcdHJldHVybjtcblxuXHRjb25zdCBjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gYXdhaXQgZ2V0Q29kZWJsb2NrUHJlRWxlbWVudHMoZWxlbWVudCxzcGVjaWZpYyxlZGl0aW5nRW1iZWRzKTtcblx0aWYgKGNvZGVibG9ja1ByZUVsZW1lbnRzLmxlbmd0aCA9PT0gMCAmJiAhKGVkaXRpbmdFbWJlZHMgJiYgc3BlY2lmaWMpKVxuXHRcdHJldHVybjtcblxuXHRjb25zdCBjb2RlYmxvY2tTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsID0gZ2V0U2VjdGlvbkluZm8oY29kZWJsb2NrUHJlRWxlbWVudHNbMF0pO1xuXHRpZiAoY29kZWJsb2NrU2VjdGlvbkluZm8gJiYgc3BlY2lmaWMgJiYgIWVkaXRpbmdFbWJlZHMpXG5cdFx0YXdhaXQgcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbihjb2RlYmxvY2tQcmVFbGVtZW50cyxzb3VyY2VQYXRoLGNvZGVibG9ja1NlY3Rpb25JbmZvLHBsdWdpbik7XG5cdGVsc2UgaWYgKHNwZWNpZmljICYmIHNvdXJjZVBhdGguc3RhcnRzV2l0aChTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCkpXG5cdFx0YXdhaXQgcmVuZGVyU2V0dGluZ3MoY29kZWJsb2NrUHJlRWxlbWVudHMsc291cmNlUGF0aCxwbHVnaW4pO1xuXHRlbHNlIGlmIChzcGVjaWZpYyAmJiAhcHJpbnRpbmcpXG5cdFx0YXdhaXQgcmV0cmlnZ2VyUHJvY2Vzc29yKGVsZW1lbnQse3NvdXJjZVBhdGgsZ2V0U2VjdGlvbkluZm8sZnJvbnRtYXR0ZXJ9LHBsdWdpbixlZGl0aW5nRW1iZWRzKTtcblx0ZWxzZVxuXHRcdGF3YWl0IHJlbmRlckRvY3VtZW50KGNvZGVibG9ja1ByZUVsZW1lbnRzLHNvdXJjZVBhdGgsY2FjaGUsZWRpdGluZ0VtYmVkcyxwcmludGluZyxwbHVnaW4pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHtzb3VyY2VQYXRofToge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRpZiAoIXNvdXJjZVBhdGggfHwgIWVsZW1lbnQpXG5cdFx0cmV0dXJuO1xuXHRmb3IgKGNvbnN0IGlubGluZUNvZGVFbGVtZW50IG9mIEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZVwiKSkpIHtcblx0XHRhd2FpdCByZW1ha2VJbmxpbmVDb2RlKGlubGluZUNvZGVFbGVtZW50IGFzIEhUTUxFbGVtZW50LHBsdWdpbik7XG5cdH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cygpOiB2b2lkIHtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5jb2RlLXN0eWxlci1wcmUtcGFyZW50XCIpLmZvckVhY2goY29kZWJsb2NrUHJlUGFyZW50ID0+IHtcblx0XHRjb2RlYmxvY2tQcmVQYXJlbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXByZS1wYXJlbnRcIik7XG5cdH0pO1xuXHRbXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZSBkaXZbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ11cIikpLFxuXHRcdC4uLkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmUgZGl2W2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXVwiKSksXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZSBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIikpLFxuXHRdLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LnJlbW92ZSgpKTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmVcIikuZm9yRWFjaCgoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1wcmVcIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRydWUtaGVpZ2h0XCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtbnVtYmVyLW1hcmdpblwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwid2hpdGUtc3BhY2VcIik7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0XCIpLmZvckVhY2goKGV4ZWN1dGVDb2RlT3V0cHV0OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LmNsYXNzTGlzdC5yZW1vdmUoXCJleGVjdXRlLWNvZGUtb3V0cHV0XCIpO1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS10cnVlLWhlaWdodFwiKTtcblx0XHRleGVjdXRlQ29kZU91dHB1dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIik7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZTpudGgtb2YtdHlwZSgxKVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tdHJ1ZS1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtd3JhcHBpbmdcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtYWN0aXZlLXdyYXBwaW5nXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIndoaXRlLXNwYWNlXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTCA9IEFycmF5LmZyb20oY29kZWJsb2NrQ29kZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcImNvZGUgPiBbY2xhc3MqPVxcXCJjb2RlLXN0eWxlci1saW5lXFxcIl1cIikpLnJlZHVjZSgocmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBjb2RlYmxvY2tMaW5lOiBIVE1MRWxlbWVudCk6IEFycmF5PHN0cmluZz4gPT4ge1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrTGluZVRleHQgPSAoY29kZWJsb2NrTGluZS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KTtcblx0XHRcdGlmIChjb2RlYmxvY2tMaW5lVGV4dClcblx0XHRcdFx0cmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzLnB1c2goY29kZWJsb2NrTGluZVRleHQuaW5uZXJIVE1MKTtcblx0XHRcdHJldHVybiByZWNvbnN0cnVjdGVkQ29kZWJsb2NrTGluZXM7XG5cdFx0fSxbXSkuam9pbihcIlxcblwiKStcIlxcblwiO1xuXHR9KTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIjpub3QocHJlKSA+IGNvZGVcIikuZm9yRWFjaCgoaW5saW5lQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWhpZ2hsaWdodGVkXCIpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1oaWdobGlnaHQtaWdub3JlXCIpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dCA9IGlubGluZUNvZGVFbGVtZW50LmdldEF0dHJpYnV0ZShcInBhcmFtZXRlcnNcIikgKyBpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQ7XG5cdH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbihjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIGNvZGVibG9ja1NlY3Rpb25JbmZvOiBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzID0gKGF3YWl0IHBhcnNlQ29kZWJsb2NrU291cmNlKEFycmF5LmZyb20oe2xlbmd0aDogY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZUVuZC1jb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lU3RhcnQrMX0sIChfLG51bSkgPT4gbnVtICsgY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZVN0YXJ0KS5tYXAoKGxpbmVOdW1iZXIpPT5jb2RlYmxvY2tTZWN0aW9uSW5mby50ZXh0LnNwbGl0KFwiXFxuXCIpW2xpbmVOdW1iZXJdKSxwbHVnaW4sc291cmNlUGF0aCkpLmNvZGVibG9ja3NQYXJhbWV0ZXJzO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLCBjb2RlYmxvY2tzUGFyYW1ldGVycywgc291cmNlUGF0aCwgdHJ1ZSwgZmFsc2UsIHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJTZXR0aW5ncyhjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVycyA9IChhd2FpdCBwYXJzZUNvZGVibG9ja1NvdXJjZShzb3VyY2VQYXRoLnN1YnN0cmluZyhTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWC5sZW5ndGgpLnNwbGl0KFwiXFxuXCIpLHBsdWdpbikpLmNvZGVibG9ja3NQYXJhbWV0ZXJzO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLGNvZGVibG9ja3NQYXJhbWV0ZXJzLHNvdXJjZVBhdGgsdHJ1ZSxmYWxzZSxwbHVnaW4pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyRG9jdW1lbnQoY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Piwgc291cmNlUGF0aDogc3RyaW5nLCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsLCBlZGl0aW5nRW1iZWRzOiBib29sZWFuLCBwcmludGluZzogYm9vbGVhbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiA9IGF3YWl0IGdldENvZGVibG9ja3NQYXJhbWV0ZXJzKHNvdXJjZVBhdGgsY2FjaGUscGx1Z2luLGVkaXRpbmdFbWJlZHMpO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLGNvZGVibG9ja3NQYXJhbWV0ZXJzLHNvdXJjZVBhdGgsIXByaW50aW5nLHRydWUscGx1Z2luKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZ2dlclByb2Nlc3NvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dDoge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZWRpdGluZ0VtYmVkczogYm9vbGVhbikge1xuXHRpZiAoZWxlbWVudC5tYXRjaFBhcmVudChcImRpdi5ibG9jay1sYW5ndWFnZS1kYXRhdmlld2pzXCIpICYmIGlzQ29kZWJsb2NrSWdub3JlZChcImRhdGF2aWV3anNcIixwbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCkpXG5cdFx0cmV0dXJuO1xuXHRhd2FpdCBzbGVlcCg1MCk7XG5cdGVkaXRpbmdFbWJlZHMgPSBlZGl0aW5nRW1iZWRzIHx8IEJvb2xlYW4oZWxlbWVudC5tYXRjaFBhcmVudChcIi5jbS1lbWJlZC1ibG9ja1wiKSk7XG5cdGlmIChlZGl0aW5nRW1iZWRzIHx8ICFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImFkbW9uaXRpb24tY29udGVudFwiKSkge1xuXHRcdGNvbnN0IGNvbnRlbnRFbCA9IGVsZW1lbnQubWF0Y2hQYXJlbnQoXCIudmlldy1jb250ZW50XCIpID8/IGVsZW1lbnQubWF0Y2hQYXJlbnQoXCJkaXYucHJpbnRcIik7XG5cdFx0aWYgKGNvbnRlbnRFbCAhPT0gbnVsbClcblx0XHRcdGF3YWl0IHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoY29udGVudEVsIGFzIEhUTUxFbGVtZW50LGNvbnRleHQscGx1Z2luLGVkaXRpbmdFbWJlZHMpOyAvLyBSZS1yZW5kZXIgd2hvbGUgZG9jdW1lbnRcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4sIGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiwgc291cmNlUGF0aDogc3RyaW5nLCBkeW5hbWljOiBib29sZWFuLCBza2lwU3R5bGVkOiBib29sZWFuLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKGNvZGVibG9ja1ByZUVsZW1lbnRzLmxlbmd0aCAhPT0gY29kZWJsb2Nrc1BhcmFtZXRlcnMubGVuZ3RoKVxuXHRcdHJldHVybjtcblx0Zm9yIChjb25zdCBba2V5LGNvZGVibG9ja1ByZUVsZW1lbnRdIG9mIEFycmF5LmZyb20oY29kZWJsb2NrUHJlRWxlbWVudHMpLmVudHJpZXMoKSkge1xuXHRcdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBjb2RlYmxvY2tzUGFyYW1ldGVyc1trZXldO1xuXHRcdGNvbnN0IGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJwcmUgPiBjb2RlXCIpO1xuXHRcdGlmICghY29kZWJsb2NrQ29kZUVsZW1lbnQpXG5cdFx0XHRyZXR1cm47XG5cdFx0aWYgKEFycmF5LmZyb20oY29kZWJsb2NrQ29kZUVsZW1lbnQuY2xhc3NMaXN0KS5zb21lKGNsYXNzTmFtZSA9PiAvXmxhbmd1YWdlLVxcUysvLnRlc3QoY2xhc3NOYW1lKSkpXG5cdFx0XHR3aGlsZSghY29kZWJsb2NrQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXMtbG9hZGVkXCIpKVxuXHRcdFx0XHRhd2FpdCBzbGVlcCgyKTtcblx0XHRpZiAoc2tpcFN0eWxlZCAmJiBjb2RlYmxvY2tDb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiY29kZSBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ11cIikpXG5cdFx0XHRjb250aW51ZTtcblx0XHRpZiAoaXNMYW5ndWFnZUlnbm9yZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxwbHVnaW4uc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlKVxuXHRcdFx0Y29udGludWU7XG5cdFx0YXdhaXQgcmVtYWtlQ29kZWJsb2NrKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1ByZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLGR5bmFtaWMscGx1Z2luKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1ha2VDb2RlYmxvY2soY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgc291cmNlUGF0aDogc3RyaW5nLCBkeW5hbWljOiBib29sZWFuLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKGR5bmFtaWMpXG5cdFx0cGx1Z2luLmV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGNvZGVibG9ja1ByZUVsZW1lbnQse2NoaWxkTGlzdDogdHJ1ZSxzdWJ0cmVlOiB0cnVlLGF0dHJpYnV0ZXM6IHRydWUsY2hhcmFjdGVyRGF0YTogdHJ1ZX0pOyAvLyBBZGQgRXhlY3V0ZSBDb2RlIE9ic2VydmVyXG5cblx0aW5zZXJ0SGVhZGVyKGNvZGVibG9ja1ByZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLHBsdWdpbixkeW5hbWljKTtcblxuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4uZ2V0UHJlQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGR5bmFtaWMpKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkZWZhdWx0Rm9sZFwiLGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkLnRvU3RyaW5nKCkpO1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudC5wYXJlbnRFbGVtZW50KVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItcHJlLXBhcmVudFwiKTtcblxuXHRpZiAoIWNvZGVibG9ja0NvZGVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjb2RlIFtjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVwiKSkgLy8gSWdub3JlIHN0eWxlZCBsaW5lc1xuXHRcdGRlY29yYXRlQ29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZW1ha2VJbmxpbmVDb2RlKGlubGluZUNvZGVFbGVtZW50OiBIVE1MRWxlbWVudCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmICghcGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0IHx8IGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImNvZGUtc3R5bGVyLWlubGluZVwiKSlcblx0XHRyZXR1cm47XG5cdGNvbnN0IGlubGluZUNvZGVUZXh0ID0gaW5saW5lQ29kZUVsZW1lbnQuaW5uZXJUZXh0O1xuXHRjb25zdCB7cGFyYW1ldGVycyx0ZXh0fSA9IHBhcnNlSW5saW5lQ29kZShpbmxpbmVDb2RlVGV4dCk7XG5cdGlmIChwYXJhbWV0ZXJzKSB7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuaW5uZXJIVE1MID0gYXdhaXQgZ2V0SGlnaGxpZ2h0ZWRIVE1MKHBhcmFtZXRlcnMsdGV4dCxwbHVnaW4pO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCA9IGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCArIFwiJlplcm9XaWR0aFNwYWNlO1wiO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1pbmxpbmVcIik7XG5cdFx0Y29uc3QgcGFyYW1ldGVyU3RyaW5nID0gaW5saW5lQ29kZVRleHQuc3Vic3RyaW5nKDAsaW5saW5lQ29kZVRleHQubGFzdEluZGV4T2YodGV4dCkpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LnNldEF0dHJpYnV0ZShcInBhcmFtZXRlcnNcIixwYXJhbWV0ZXJTdHJpbmcpOyAvLyBTdG9yZSBwYXJhbWV0ZXIgc3RyaW5nIGFzIGF0dHJpYnV0ZSBzbyBvcmlnaW5hbCB0ZXh0IGNhbiBiZSByZXN0b3JlZCBvbiBwbHVnaW4gcmVtb3ZhbFxuXHRcdGlmIChwYXJhbWV0ZXJzLmljb24gfHwgcGFyYW1ldGVycy50aXRsZSlcblx0XHRcdGlubGluZUNvZGVFbGVtZW50Lmluc2VydEJlZm9yZShjcmVhdGVJbmxpbmVPcGVuZXIocGFyYW1ldGVycyxwbHVnaW4ubGFuZ3VhZ2VJY29ucyksaW5saW5lQ29kZUVsZW1lbnQuY2hpbGROb2Rlc1swXSk7XG5cdH0gZWxzZSBpZiAoIXBhcmFtZXRlcnMgJiYgdGV4dCkge1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dCA9IHRleHQ7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWlubGluZVwiKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb2RlYmxvY2tQcmVFbGVtZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCwgc3BlY2lmaWM6IGJvb2xlYW4sZWRpdGluZ0VtYmVkczogYm9vbGVhbik6IFByb21pc2U8QXJyYXk8SFRNTEVsZW1lbnQ+PiB7XG5cdGxldCBjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+O1xuXHRpZiAoIWVkaXRpbmdFbWJlZHMgJiYgIXNwZWNpZmljKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWFya2Rvd24tcmVhZGluZy12aWV3IHByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdGVsc2UgaWYgKGVkaXRpbmdFbWJlZHMgJiYgIXNwZWNpZmljKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWFya2Rvd24tc291cmNlLXZpZXcgLmNtLWVtYmVkLWJsb2NrIHByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdGVsc2UgaWYgKCFlZGl0aW5nRW1iZWRzICYmIHNwZWNpZmljKSB7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdFx0Y29uc3QgYWRtb25pdGlvbkNvZGVFbGVtZW50ID0gY29kZWJsb2NrUHJlRWxlbWVudHM/LlswXT8ucXVlcnlTZWxlY3RvcihcInByZTpub3QoW2NsYXNzXSkgPiBjb2RlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtYWQtXFxcIl1cIik7XG5cdFx0aWYgKGFkbW9uaXRpb25Db2RlRWxlbWVudCkge1xuXHRcdFx0YXdhaXQgc2xlZXAoNTApOyAvL1RPRE9cblx0XHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRcdH1cblx0fSBlbHNlXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBbXTtcblx0cmV0dXJuIGNvZGVibG9ja1ByZUVsZW1lbnRzO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29kZWJsb2Nrc1BhcmFtZXRlcnMoc291cmNlUGF0aDogc3RyaW5nLCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+PiB7XG5cdGxldCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4gPSBbXTtcblx0Y29uc3QgZmlsZUNvbnRlbnRMaW5lcyA9IGF3YWl0IGdldEZpbGVDb250ZW50TGluZXMoc291cmNlUGF0aCxwbHVnaW4pO1xuXHRpZiAoIWZpbGVDb250ZW50TGluZXMpXG5cdFx0cmV0dXJuIFtdO1xuXG5cdGlmICh0eXBlb2YgY2FjaGU/LnNlY3Rpb25zICE9PSBcInVuZGVmaW5lZFwiKSB7XG5cdFx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIGNhY2hlLnNlY3Rpb25zKSB7XG5cdFx0XHRpZiAoIWVkaXRpbmdFbWJlZHMgfHwgc2VjdGlvbi50eXBlID09PSBcImNvZGVcIiB8fCBzZWN0aW9uLnR5cGUgPT09IFwiY2FsbG91dFwiKSB7XG5cdFx0XHRcdGNvbnN0IHBhcnNlZENvZGVibG9ja3NQYXJhbWV0ZXJzID0gYXdhaXQgcGFyc2VDb2RlYmxvY2tTb3VyY2UoZmlsZUNvbnRlbnRMaW5lcy5zbGljZShzZWN0aW9uLnBvc2l0aW9uLnN0YXJ0LmxpbmUsc2VjdGlvbi5wb3NpdGlvbi5lbmQubGluZSsxKSxwbHVnaW4sc291cmNlUGF0aCk7XG5cdFx0XHRcdGlmICghZWRpdGluZ0VtYmVkcyB8fCBwYXJzZWRDb2RlYmxvY2tzUGFyYW1ldGVycy5uZXN0ZWQpXG5cdFx0XHRcdFx0Y29kZWJsb2Nrc1BhcmFtZXRlcnMgPSBjb2RlYmxvY2tzUGFyYW1ldGVycy5jb25jYXQocGFyc2VkQ29kZWJsb2Nrc1BhcmFtZXRlcnMuY29kZWJsb2Nrc1BhcmFtZXRlcnMpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlXG5cdFx0Y29uc29sZS5lcnJvcihgTWV0YWRhdGEgY2FjaGUgbm90IGZvdW5kIGZvciBmaWxlOiAke3NvdXJjZVBhdGh9YCk7XG5cdHJldHVybiBjb2RlYmxvY2tzUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIGluc2VydEhlYWRlcihjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGR5bmFtaWM6IGJvb2xlYW4pOiB2b2lkIHtcblx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlSGVhZGVyKGNvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdGlmIChkeW5hbWljKVxuXHRcdGhlYWRlckNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoKT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCk7fSk7IC8vIEFkZCBsaXN0ZW5lciBmb3IgaGVhZGVyIGZvbGRpbmcgb24gY2xpY2tcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5pbnNlcnRCZWZvcmUoaGVhZGVyQ29udGFpbmVyLGNvZGVibG9ja1ByZUVsZW1lbnQuY2hpbGROb2Rlc1swXSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVhZGluZ0RvY3VtZW50Rm9sZChjb250ZW50RWw6IEhUTUxFbGVtZW50LCBmb2xkPzogYm9vbGVhbikge1xuXHRjb25zdCBjb2RlYmxvY2tQcmVFbGVtZW50cyA9IGNvbnRlbnRFbC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZVwiKTtcblx0aWYgKHR5cGVvZiBmb2xkID09PSBcInVuZGVmaW5lZFwiKSAvL1JldHVybiBhbGwgYmxvY2tzIHRvIG9yaWdpbmFsIHN0YXRlXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMuZm9yRWFjaCgoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQpPT57dG9nZ2xlRm9sZChjb2RlYmxvY2tQcmVFbGVtZW50LChjb2RlYmxvY2tQcmVFbGVtZW50LmdldEF0dHJpYnV0ZShcImRlZmF1bHRGb2xkXCIpPz9cImZhbHNlXCIpPT09XCJ0cnVlXCIpO30pO1xuXHRlbHNlIC8vRm9sZCBvciB1bmZvbGQgYWxsIGJsb2Nrc1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzLmZvckVhY2goKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50KT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCxmb2xkKTt9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHRvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQsIGZvbGQ/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKFwiY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW5cIikpXG5cdFx0cmV0dXJuO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgPiBjb2RlXCIpLmZvckVhY2goKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCk9PmNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwibWF4LWhlaWdodFwiLGBjYWxjKCR7TWF0aC5jZWlsKGNvZGVibG9ja0NvZGVFbGVtZW50LnNjcm9sbEhlaWdodCswLjAxKX1weCArIHZhcigtLWNvZGUtcGFkZGluZykgKiAke2NvZGVibG9ja0NvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImV4ZWN1dGUtY29kZS1vdXRwdXRcIik/XCIzLjUgKyB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKVwiOlwiMlwifSlgKSk7XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhpZGUtc2Nyb2xsXCIpO1xuXHRhd2FpdCBzbGVlcCgxKTtcblx0aWYgKHR5cGVvZiBmb2xkID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0ZWxzZVxuXHRcdGZvbGQ/Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpOmNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0YXdhaXQgc2xlZXAoVFJBTlNJVElPTl9MRU5HVEgpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgPiBjb2RlXCIpLmZvckVhY2goKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCk9PmNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKSk7XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImhpZGUtc2Nyb2xsXCIpO1xufVxuZnVuY3Rpb24gZ2V0UHJlQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBkeW5hbWljOiBib29sZWFuKTogQXJyYXk8c3RyaW5nPiB7XG5cdGNvbnN0IHByZUNsYXNzTGlzdCA9IFtcImNvZGUtc3R5bGVyLXByZVwiXTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpXG5cdFx0cHJlQ2xhc3NMaXN0LnB1c2goYGxhbmd1YWdlLSR7Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX1gKTtcblx0aWYgKGR5bmFtaWMpIHtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwLmFsd2F5c0VuYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAuYWN0aXZlV3JhcD9cInVud3JhcHBlZC1pbmFjdGl2ZVwiOlwidW53cmFwcGVkXCIpO1xuXHRcdGVsc2UgaWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcC5hbHdheXNEaXNhYmxlZClcblx0XHRcdHByZUNsYXNzTGlzdC5wdXNoKFwid3JhcHBlZFwiKTtcblx0fVxuXHRyZXR1cm4gcHJlQ2xhc3NMaXN0O1xufVxuZnVuY3Rpb24gZGVjb3JhdGVDb2RlYmxvY2tMaW5lcyhjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogdm9pZCB7XG5cdGxldCBpbmRlbnRhdGlvbiA9IDA7XG5cdGdldENvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50LHNvdXJjZVBhdGgscGx1Z2luKS5mb3JFYWNoKChsaW5lLGluZGV4LGNvZGVibG9ja0xpbmVzKSA9PiB7XG5cdFx0Y29uc3QgY3VycmVudEluZGVudGF0aW9uID0gY291bnRUYWJzKGxpbmUpO1xuXHRcdGlmIChjdXJyZW50SW5kZW50YXRpb24gPiBpbmRlbnRhdGlvbikge1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBBZGQgZm9sZCB0byBwcmV2aW91cyBwb2ludFxuXHRcdFx0aW5kZW50YXRpb24gPSBjdXJyZW50SW5kZW50YXRpb247XG5cdFx0fSBlbHNlIGlmIChjdXJyZW50SW5kZW50YXRpb24gPCBpbmRlbnRhdGlvbikge1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBDbG9zZSBhbGwgZm9sZHMgdG8gbGV2ZWwgb2YgY3VycmVudCBpbmRlbnRhdGlvblxuXHRcdFx0aW5kZW50YXRpb24gPSBjdXJyZW50SW5kZW50YXRpb247XG5cdFx0fVxuXHRcdGlmIChjdXJyZW50SW5kZW50YXRpb24gPiAwKSB7XG5cdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCBpbmRlbnRhdGlvbiBsaW5lXG5cdFx0fVxuXHRcdGlmIChpbmRleCAhPT0gY29kZWJsb2NrTGluZXMubGVuZ3RoLTEpXG5cdFx0XHRpbnNlcnRMaW5lV3JhcHBlcihjb2RlYmxvY2tDb2RlRWxlbWVudCxjb2RlYmxvY2tQYXJhbWV0ZXJzLGluZGV4KzEsbGluZSxwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycyk7XG5cdH0pO1xufVxuZnVuY3Rpb24gZ2V0Q29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEFycmF5PHN0cmluZz4ge1xuXHRjb25zdCBodG1sVHJlZSA9IGZyb21IdG1sKGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKC9cXG4vZyxcIjxicj5cIikse2ZyYWdtZW50OiB0cnVlfSk7XG5cdGxldCBjb2RlYmxvY2tIVE1MID0gY29kZWJsb2NrQ29kZUVsZW1lbnQuaW5uZXJIVE1MO1xuXHR2aXNpdFBhcmVudHMoaHRtbFRyZWUsW1widGV4dFwiLFwiZWxlbWVudFwiXSwobm9kZSxhbmNlc3RvcnMpPT57XG5cdFx0aWYgKG5vZGUudHlwZSA9PT0gXCJlbGVtZW50XCIgJiYgbm9kZS50YWdOYW1lID09PSBcImJyXCIpIHtcblx0XHRcdGlmIChhbmNlc3RvcnMubGVuZ3RoID49IDIpIHtcblx0XHRcdFx0Y29kZWJsb2NrSFRNTCA9IGNvZGVibG9ja0hUTUwucmVwbGFjZSgvXFxuLyxhbmNlc3RvcnMuc2xpY2UoMSkucmVkdWNlKChyZXN1bHQsZWxlbWVudCk9Pntcblx0XHRcdFx0XHRjb25zdCBlbGVtZW50Q29weSA9IHN0cnVjdHVyZWRDbG9uZShlbGVtZW50KTtcblx0XHRcdFx0XHRlbGVtZW50Q29weS5jaGlsZHJlbiA9IFtdO1xuXHRcdFx0XHRcdGNvbnN0IHNwbGl0VGFnID0gdG9IdG1sKGVsZW1lbnRDb3B5KS5zcGxpdCgvKD88PT4pKD89PFxcLykvKTtcblx0XHRcdFx0XHRyZXR1cm4gc3BsaXRUYWcuc3BsaWNlKC0xKStyZXN1bHQrc3BsaXRUYWcuam9pbihcIlwiKTtcblx0XHRcdFx0fSxcIjxicj5cIikpO1xuXHRcdFx0fSBlbHNlXG5cdFx0XHRcdGNvZGVibG9ja0hUTUwgPSBjb2RlYmxvY2tIVE1MLnJlcGxhY2UoL1xcbi8sXCI8YnI+XCIpO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IHNwbGl0SHRtbFRyZWUgPSBmcm9tSHRtbChjb2RlYmxvY2tIVE1MLHtmcmFnbWVudDogdHJ1ZX0pO1xuXHR2aXNpdFBhcmVudHMoc3BsaXRIdG1sVHJlZSxbXCJlbGVtZW50XCJdLChub2RlKT0+e1xuXHRcdGlmIChub2RlLnR5cGUgPT09IFwiZWxlbWVudFwiICYmIEFycmF5LmlzQXJyYXkobm9kZS5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkgJiYgbm9kZS5wcm9wZXJ0aWVzPy5jbGFzc05hbWU/LmluY2x1ZGVzKFwiY29tbWVudFwiKSkge1xuXHRcdFx0bm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4ucmVkdWNlKChyZXN1bHQ6IEFycmF5PEVsZW1lbnRDb250ZW50PiwgY2hpbGQ6IEVsZW1lbnRDb250ZW50KTogQXJyYXk8RWxlbWVudENvbnRlbnQ+ID0+IHtcblx0XHRcdFx0aWYgKGNoaWxkLnR5cGUgIT09IFwidGV4dFwiKVxuXHRcdFx0XHRcdHJlc3VsdC5wdXNoKGNoaWxkKTtcblx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdHJlc3VsdCA9IGNvbnZlcnRDb21tZW50TGlua3MocmVzdWx0LGNoaWxkLnZhbHVlLHNvdXJjZVBhdGgscGx1Z2luKTtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH0sW10pO1xuXHRcdH1cblx0fSk7XG5cdGNvZGVibG9ja0hUTUwgPSB0b0h0bWwoc3BsaXRIdG1sVHJlZSk7XG5cdGxldCBjb2RlYmxvY2tMaW5lcyA9IGNvZGVibG9ja0hUTUwuc3BsaXQoXCI8YnI+XCIpO1xuXHRpZiAoY29kZWJsb2NrTGluZXMubGVuZ3RoID09PSAxKVxuXHRcdGNvZGVibG9ja0xpbmVzID0gW1wiXCIsXCJcIl07XG5cdGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTCA9IFwiXCI7XG5cdHJldHVybiBjb2RlYmxvY2tMaW5lcztcbn1cbmZ1bmN0aW9uIGNvbnZlcnRDb21tZW50TGlua3MocmVzdWx0OiBBcnJheTxFbGVtZW50Q29udGVudD4sIGNvbW1lbnRUZXh0OiBzdHJpbmcsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogQXJyYXk8RWxlbWVudENvbnRlbnQ+IHtcblx0Y29uc3QgbGlua01hdGNoZXMgPSBbLi4uY29tbWVudFRleHQubWF0Y2hBbGwoLyg/OlxcW1xcW1teXFxdfFxcclxcbl0rPyg/OlxcfFteXFxdfFxcclxcbl0rPyk/XFxdXFxdfFxcWy4qP1xcXVxcKC4rXFwpKS9nKV0ucmV2ZXJzZSgpO1xuXHRjb25zdCBuZXdDaGlsZHJlbiA9IGxpbmtNYXRjaGVzLnJlZHVjZSgocmVzdWx0OiBBcnJheTxFbGVtZW50Q29udGVudD4sIGxpbmtNYXRjaDogUmVnRXhwTWF0Y2hBcnJheSk6IEFycmF5PEVsZW1lbnRDb250ZW50PiA9PiB7XG5cdFx0aWYgKHR5cGVvZiBsaW5rTWF0Y2g/LmluZGV4ID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRjb25zdCBlbmRpbmcgPSBjb21tZW50VGV4dC5zbGljZShsaW5rTWF0Y2guaW5kZXggKyBsaW5rTWF0Y2hbMF0ubGVuZ3RoKTtcblx0XHRyZXN1bHQucHVzaCh7dHlwZTogXCJ0ZXh0XCIsdmFsdWU6IGVuZGluZ30pO1xuXHRcdGNvbnN0IGxpbmtUZXh0ID0gY29tbWVudFRleHQuc2xpY2UobGlua01hdGNoLmluZGV4LCBsaW5rTWF0Y2guaW5kZXggKyBsaW5rTWF0Y2hbMF0ubGVuZ3RoKTtcblx0XHRjb25zdCBsaW5rQ29udGFpbmVyID0gY3JlYXRlRGl2KCk7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCwgbGlua1RleHQsIGxpbmtDb250YWluZXIsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdFx0Y29uc3QgbGlua0NoaWxkID0gKGZyb21IdG1sKGxpbmtDb250YWluZXIuaW5uZXJIVE1MLHtmcmFnbWVudDogdHJ1ZX0pPy5jaGlsZHJlbj8uWzBdIGFzIEVsZW1lbnQpPy5jaGlsZHJlbj8uWzBdO1xuXHRcdHJlc3VsdC5wdXNoKGxpbmtDaGlsZCk7XG5cdFx0Y29tbWVudFRleHQgPSBjb21tZW50VGV4dC5zbGljZSgwLCBsaW5rTWF0Y2guaW5kZXgpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sW10pLnJldmVyc2UoKTtcblx0cmV0dXJuIFsuLi5yZXN1bHQsIC4uLlt7dHlwZTogXCJ0ZXh0XCIsdmFsdWU6IGNvbW1lbnRUZXh0fSBhcyBFbGVtZW50Q29udGVudCwuLi5uZXdDaGlsZHJlbl1dO1xufVxuZnVuY3Rpb24gaW5zZXJ0TGluZVdyYXBwZXIoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBsaW5lTnVtYmVyOiBudW1iZXIsIGxpbmU6IHN0cmluZywgc2hvd0xpbmVOdW1iZXJzOiBib29sZWFuKTogdm9pZCB7XG5cdGNvbnN0IGxpbmVXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZVdyYXBwZXIpO1xuXHRnZXRMaW5lQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGxpbmVOdW1iZXIsbGluZSkuZm9yRWFjaCgobGluZUNsYXNzKSA9PiBsaW5lV3JhcHBlci5jbGFzc0xpc3QuYWRkKGxpbmVDbGFzcykpO1xuXHRpZiAoKHNob3dMaW5lTnVtYmVycyAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkKVxuXHRcdGxpbmVXcmFwcGVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyXCIsIHRleHQ6IChsaW5lTnVtYmVyK2NvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSkpO1xuXHRsaW5lV3JhcHBlci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1saW5lLXRleHRcIiwgdGV4dDogc2FuaXRpemVIVE1MVG9Eb20obGluZSAhPT0gXCJcIiA/IGxpbmUgOiBcIjxicj5cIil9KSk7XG59XG5mdW5jdGlvbiBjb3VudFRhYnModGV4dDogc3RyaW5nKTogbnVtYmVyIHtcblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBNYWtlIHdvcmsgd2l0aCBzcGFjZSBpbmRlbnRhdGlvbiB0b29cblx0bGV0IGNvdW50ID0gMDtcblx0bGV0IGluZGV4ID0gMDtcblx0d2hpbGUgKHRleHQuY2hhckF0KGluZGV4KyspID09PSBcIlxcdFwiKVxuXHRcdGNvdW50Kys7XG5cdHJldHVybiBjb3VudDtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldEhpZ2hsaWdodGVkSFRNTChwYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgdGV4dDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHN0cmluZz4ge1xuXHRjb25zdCB0ZW1wb3JhcnlSZW5kZXJpbmdDb250YWluZXIgPSBjcmVhdGVEaXYoKTtcblx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxbXCJgYGBcIixwYXJhbWV0ZXJzLmxhbmd1YWdlLFwiXFxuXCIsdGV4dCxcIlxcblwiLFwiYGBgXCJdLmpvaW4oXCJcIiksdGVtcG9yYXJ5UmVuZGVyaW5nQ29udGFpbmVyLFwiXCIscGx1Z2luKTtcblx0Y29uc3QgcmVuZGVyZWRDb2RlRWxlbWVudCA9IHRlbXBvcmFyeVJlbmRlcmluZ0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiY29kZVwiKTtcblx0aWYgKCFyZW5kZXJlZENvZGVFbGVtZW50KVxuXHRcdHJldHVybiBcIkVSUk9SOiBDb3VsZCBub3QgcmVuZGVyIGhpZ2hsaWdodGVkIGNvZGVcIjtcblx0d2hpbGUocGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0ICYmICFyZW5kZXJlZENvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImlzLWxvYWRlZFwiKSlcblx0XHRhd2FpdCBzbGVlcCgyKTtcblx0cmV0dXJuIHJlbmRlcmVkQ29kZUVsZW1lbnQuaW5uZXJIVE1MO1xufVxuXG5leHBvcnQgY29uc3QgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuXHRtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSA9PiB7XG5cdFx0aWYgKG11dGF0aW9uLnR5cGUgPT09IFwiY2hpbGRMaXN0XCIgJiYgKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZSA9PT0gXCJQUkVcIikgeyAvLyBBZGQgZXhlY3V0ZSBjb2RlIG91dHB1dFxuXHRcdFx0Y29uc3QgZXhlY3V0ZUNvZGVPdXRwdXQgPSAobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKFwicHJlID4gY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0XCIpIGFzIEhUTUxFbGVtZW50O1xuXHRcdFx0aWYgKGV4ZWN1dGVDb2RlT3V0cHV0KVxuXHRcdFx0XHRleGVjdXRlQ29kZU91dHB1dC5jbGFzc0xpc3QuYWRkKFwiZXhlY3V0ZS1jb2RlLW91dHB1dFwiKTtcblx0XHR9XG5cdH0pO1xufSk7XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUGFyZW50fSBQYXJlbnRcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBGblxuICogQHRlbXBsYXRlIEZhbGxiYWNrXG4gKiBAdHlwZWRlZiB7Rm4gZXh0ZW5kcyAodmFsdWU6IGFueSkgPT4gdmFsdWUgaXMgaW5mZXIgVGhpbmcgPyBUaGluZyA6IEZhbGxiYWNrfSBQcmVkaWNhdGVcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBDaGVja1xuICogICBDaGVjayB0aGF0IGFuIGFyYml0cmFyeSB2YWx1ZSBpcyBhIG5vZGUuXG4gKiBAcGFyYW0ge3Vua25vd259IHRoaXNcbiAqICAgVGhlIGdpdmVuIGNvbnRleHQuXG4gKiBAcGFyYW0ge3Vua25vd259IFtub2RlXVxuICogICBBbnl0aGluZyAodHlwaWNhbGx5IGEgbm9kZSkuXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtpbmRleF1cbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBvc2l0aW9uIGluIGl0cyBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwYXJlbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGlzIGlzIGEgbm9kZSBhbmQgcGFzc2VzIGEgdGVzdC5cbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBOb2RlfSBQcm9wc1xuICogICBPYmplY3QgdG8gY2hlY2sgZm9yIGVxdWl2YWxlbmNlLlxuICpcbiAqICAgTm90ZTogYE5vZGVgIGlzIGluY2x1ZGVkIGFzIGl0IGlzIGNvbW1vbiBidXQgaXMgbm90IGluZGV4YWJsZS5cbiAqXG4gKiBAdHlwZWRlZiB7QXJyYXk8UHJvcHMgfCBUZXN0RnVuY3Rpb24gfCBzdHJpbmc+IHwgUHJvcHMgfCBUZXN0RnVuY3Rpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBUZXN0XG4gKiAgIENoZWNrIGZvciBhbiBhcmJpdHJhcnkgbm9kZS5cbiAqXG4gKiBAY2FsbGJhY2sgVGVzdEZ1bmN0aW9uXG4gKiAgIENoZWNrIGlmIGEgbm9kZSBwYXNzZXMgYSB0ZXN0LlxuICogQHBhcmFtIHt1bmtub3dufSB0aGlzXG4gKiAgIFRoZSBnaXZlbiBjb250ZXh0LlxuICogQHBhcmFtIHtOb2RlfSBub2RlXG4gKiAgIEEgbm9kZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBbaW5kZXhdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnQgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwYXJlbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZCB8IHZvaWR9XG4gKiAgIFdoZXRoZXIgdGhpcyBub2RlIHBhc3NlcyB0aGUgdGVzdC5cbiAqXG4gKiAgIE5vdGU6IGB2b2lkYCBpcyBpbmNsdWRlZCB1bnRpbCBUUyBzZWVzIG5vIHJldHVybiBhcyBgdW5kZWZpbmVkYC5cbiAqL1xuXG4vKipcbiAqIENoZWNrIGlmIGBub2RlYCBpcyBhIGBOb2RlYCBhbmQgd2hldGhlciBpdCBwYXNzZXMgdGhlIGdpdmVuIHRlc3QuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlXG4gKiAgIFRoaW5nIHRvIGNoZWNrLCB0eXBpY2FsbHkgYE5vZGVgLlxuICogQHBhcmFtIHtUZXN0fSB0ZXN0XG4gKiAgIEEgY2hlY2sgZm9yIGEgc3BlY2lmaWMgbm9kZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBvc2l0aW9uIGluIGl0cyBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBUaGUgbm9kZVx1MjAxOXMgcGFyZW50LlxuICogQHBhcmFtIHt1bmtub3dufSBjb250ZXh0XG4gKiAgIENvbnRleHQgb2JqZWN0IChgdGhpc2ApIHRvIHBhc3MgdG8gYHRlc3RgIGZ1bmN0aW9ucy5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGBub2RlYCBpcyBhIG5vZGUgYW5kIHBhc3NlcyBhIHRlc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBpcyA9XG4gIC8vIE5vdGU6IG92ZXJsb2FkcyBpbiBKU0RvYyBjYW5cdTIwMTl0IHlldCB1c2UgZGlmZmVyZW50IGBAdGVtcGxhdGVgcy5cbiAgLyoqXG4gICAqIEB0eXBlIHsoXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBzdHJpbmc+KG5vZGU6IHVua25vd24sIHRlc3Q6IENvbmRpdGlvbiwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYge3R5cGU6IENvbmRpdGlvbn0pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFByb3BzPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIENvbmRpdGlvbikgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgVGVzdEZ1bmN0aW9uPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIFByZWRpY2F0ZTxDb25kaXRpb24sIE5vZGU+KSAmXG4gICAqICAgKChub2RlPzogbnVsbCB8IHVuZGVmaW5lZCkgPT4gZmFsc2UpICZcbiAgICogICAoKG5vZGU6IHVua25vd24sIHRlc3Q/OiBudWxsIHwgdW5kZWZpbmVkLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUpICZcbiAgICogICAoKG5vZGU6IHVua25vd24sIHRlc3Q/OiBUZXN0LCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBib29sZWFuKVxuICAgKiApfVxuICAgKi9cbiAgKFxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7dW5rbm93bn0gW25vZGVdXG4gICAgICogQHBhcmFtIHtUZXN0fSBbdGVzdF1cbiAgICAgKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtpbmRleF1cbiAgICAgKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gICAgICogQHBhcmFtIHt1bmtub3dufSBbY29udGV4dF1cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXBhcmFtc1xuICAgIGZ1bmN0aW9uIChub2RlLCB0ZXN0LCBpbmRleCwgcGFyZW50LCBjb250ZXh0KSB7XG4gICAgICBjb25zdCBjaGVjayA9IGNvbnZlcnQodGVzdClcblxuICAgICAgaWYgKFxuICAgICAgICBpbmRleCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICh0eXBlb2YgaW5kZXggIT09ICdudW1iZXInIHx8XG4gICAgICAgICAgaW5kZXggPCAwIHx8XG4gICAgICAgICAgaW5kZXggPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHBvc2l0aXZlIGZpbml0ZSBpbmRleCcpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgcGFyZW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgcGFyZW50ICE9PSBudWxsICYmXG4gICAgICAgICghaXMocGFyZW50KSB8fCAhcGFyZW50LmNoaWxkcmVuKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcGFyZW50IG5vZGUnKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIChwYXJlbnQgPT09IHVuZGVmaW5lZCB8fCBwYXJlbnQgPT09IG51bGwpICE9PVxuICAgICAgICAoaW5kZXggPT09IHVuZGVmaW5lZCB8fCBpbmRleCA9PT0gbnVsbClcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGJvdGggcGFyZW50IGFuZCBpbmRleCcpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsb29rc0xpa2VBTm9kZShub2RlKVxuICAgICAgICA/IGNoZWNrLmNhbGwoY29udGV4dCwgbm9kZSwgaW5kZXgsIHBhcmVudClcbiAgICAgICAgOiBmYWxzZVxuICAgIH1cbiAgKVxuXG4vKipcbiAqIEdlbmVyYXRlIGFuIGFzc2VydGlvbiBmcm9tIGEgdGVzdC5cbiAqXG4gKiBVc2VmdWwgaWYgeW91XHUyMDE5cmUgZ29pbmcgdG8gdGVzdCBtYW55IG5vZGVzLCBmb3IgZXhhbXBsZSB3aGVuIGNyZWF0aW5nIGFcbiAqIHV0aWxpdHkgd2hlcmUgc29tZXRoaW5nIGVsc2UgcGFzc2VzIGEgY29tcGF0aWJsZSB0ZXN0LlxuICpcbiAqIFRoZSBjcmVhdGVkIGZ1bmN0aW9uIGlzIGEgYml0IGZhc3RlciBiZWNhdXNlIGl0IGV4cGVjdHMgdmFsaWQgaW5wdXQgb25seTpcbiAqIGEgYG5vZGVgLCBgaW5kZXhgLCBhbmQgYHBhcmVudGAuXG4gKlxuICogQHBhcmFtIHtUZXN0fSB0ZXN0XG4gKiAgICogICB3aGVuIG51bGxpc2gsIGNoZWNrcyBpZiBgbm9kZWAgaXMgYSBgTm9kZWAuXG4gKiAgICogICB3aGVuIGBzdHJpbmdgLCB3b3JrcyBsaWtlIHBhc3NpbmcgYChub2RlKSA9PiBub2RlLnR5cGUgPT09IHRlc3RgLlxuICogICAqICAgd2hlbiBgZnVuY3Rpb25gIGNoZWNrcyBpZiBmdW5jdGlvbiBwYXNzZWQgdGhlIG5vZGUgaXMgdHJ1ZS5cbiAqICAgKiAgIHdoZW4gYG9iamVjdGAsIGNoZWNrcyB0aGF0IGFsbCBrZXlzIGluIHRlc3QgYXJlIGluIG5vZGUsIGFuZCB0aGF0IHRoZXkgaGF2ZSAoc3RyaWN0bHkpIGVxdWFsIHZhbHVlcy5cbiAqICAgKiAgIHdoZW4gYGFycmF5YCwgY2hlY2tzIGlmIGFueSBvbmUgb2YgdGhlIHN1YnRlc3RzIHBhc3MuXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKiAgIEFuIGFzc2VydGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnQgPVxuICAvLyBOb3RlOiBvdmVybG9hZHMgaW4gSlNEb2MgY2FuXHUyMDE5dCB5ZXQgdXNlIGRpZmZlcmVudCBgQHRlbXBsYXRlYHMuXG4gIC8qKlxuICAgKiBAdHlwZSB7KFxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgc3RyaW5nPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiB7dHlwZTogQ29uZGl0aW9ufSkgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgUHJvcHM+KHRlc3Q6IENvbmRpdGlvbikgPT4gKG5vZGU6IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIENvbmRpdGlvbikgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgVGVzdEZ1bmN0aW9uPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBQcmVkaWNhdGU8Q29uZGl0aW9uLCBOb2RlPikgJlxuICAgKiAgICgodGVzdD86IG51bGwgfCB1bmRlZmluZWQpID0+IChub2RlPzogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlKSAmXG4gICAqICAgKCh0ZXN0PzogVGVzdCkgPT4gQ2hlY2spXG4gICAqICl9XG4gICAqL1xuICAoXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtUZXN0fSBbdGVzdF1cbiAgICAgKiBAcmV0dXJucyB7Q2hlY2t9XG4gICAgICovXG4gICAgZnVuY3Rpb24gKHRlc3QpIHtcbiAgICAgIGlmICh0ZXN0ID09PSBudWxsIHx8IHRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gb2tcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjYXN0RmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRlc3QgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRlc3QpID8gYW55RmFjdG9yeSh0ZXN0KSA6IHByb3BzRmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRlc3QgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0eXBlRmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0JylcbiAgICB9XG4gIClcblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nPn0gdGVzdHNcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gYW55RmFjdG9yeSh0ZXN0cykge1xuICAvKiogQHR5cGUge0FycmF5PENoZWNrPn0gKi9cbiAgY29uc3QgY2hlY2tzID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHRlc3RzLmxlbmd0aCkge1xuICAgIGNoZWNrc1tpbmRleF0gPSBjb252ZXJ0KHRlc3RzW2luZGV4XSlcbiAgfVxuXG4gIHJldHVybiBjYXN0RmFjdG9yeShhbnkpXG5cbiAgLyoqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiBAdHlwZSB7VGVzdEZ1bmN0aW9ufVxuICAgKi9cbiAgZnVuY3Rpb24gYW55KC4uLnBhcmFtZXRlcnMpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGVja3MubGVuZ3RoKSB7XG4gICAgICBpZiAoY2hlY2tzW2luZGV4XS5hcHBseSh0aGlzLCBwYXJhbWV0ZXJzKSkgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYW4gb2JqZWN0IGludG8gYSB0ZXN0IGZvciBhIG5vZGUgd2l0aCBhIGNlcnRhaW4gZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7UHJvcHN9IGNoZWNrXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIHByb3BzRmFjdG9yeShjaGVjaykge1xuICBjb25zdCBjaGVja0FzUmVjb3JkID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKGNoZWNrKVxuXG4gIHJldHVybiBjYXN0RmFjdG9yeShhbGwpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGZ1bmN0aW9uIGFsbChub2RlKSB7XG4gICAgY29uc3Qgbm9kZUFzUmVjb3JkID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKFxuICAgICAgLyoqIEB0eXBlIHt1bmtub3dufSAqLyAobm9kZSlcbiAgICApXG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQga2V5XG5cbiAgICBmb3IgKGtleSBpbiBjaGVjaykge1xuICAgICAgaWYgKG5vZGVBc1JlY29yZFtrZXldICE9PSBjaGVja0FzUmVjb3JkW2tleV0pIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgc3RyaW5nIGludG8gYSB0ZXN0IGZvciBhIG5vZGUgd2l0aCBhIGNlcnRhaW4gdHlwZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hlY2tcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gdHlwZUZhY3RvcnkoY2hlY2spIHtcbiAgcmV0dXJuIGNhc3RGYWN0b3J5KHR5cGUpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKi9cbiAgZnVuY3Rpb24gdHlwZShub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS50eXBlID09PSBjaGVja1xuICB9XG59XG5cbi8qKlxuICogVHVybiBhIGN1c3RvbSB0ZXN0IGludG8gYSB0ZXN0IGZvciBhIG5vZGUgdGhhdCBwYXNzZXMgdGhhdCB0ZXN0LlxuICpcbiAqIEBwYXJhbSB7VGVzdEZ1bmN0aW9ufSB0ZXN0RnVuY3Rpb25cbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gY2FzdEZhY3RvcnkodGVzdEZ1bmN0aW9uKSB7XG4gIHJldHVybiBjaGVja1xuXG4gIC8qKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogQHR5cGUge0NoZWNrfVxuICAgKi9cbiAgZnVuY3Rpb24gY2hlY2sodmFsdWUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgIGxvb2tzTGlrZUFOb2RlKHZhbHVlKSAmJlxuICAgICAgICB0ZXN0RnVuY3Rpb24uY2FsbChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicgPyBpbmRleCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBwYXJlbnQgfHwgdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICApXG4gIH1cbn1cblxuZnVuY3Rpb24gb2soKSB7XG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge3ZhbHVlIGlzIE5vZGV9XG4gKi9cbmZ1bmN0aW9uIGxvb2tzTGlrZUFOb2RlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiB2YWx1ZVxufVxuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2xvcihkKSB7XG4gIHJldHVybiBkXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IFVuaXN0Tm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5QYXJlbnR9IFVuaXN0UGFyZW50XG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7RXhjbHVkZTxpbXBvcnQoJ3VuaXN0LXV0aWwtaXMnKS5UZXN0LCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkfSBUZXN0XG4gKiAgIFRlc3QgZnJvbSBgdW5pc3QtdXRpbC1pc2AuXG4gKlxuICogICBOb3RlOiB3ZSBoYXZlIHJlbW92ZSBhbmQgYWRkIGB1bmRlZmluZWRgLCBiZWNhdXNlIG90aGVyd2lzZSB3aGVuIGdlbmVyYXRpbmdcbiAqICAgYXV0b21hdGljIGAuZC50c2AgZmlsZXMsIFRTIHRyaWVzIHRvIGZsYXR0ZW4gcGF0aHMgZnJvbSBhIGxvY2FsIHBlcnNwZWN0aXZlLFxuICogICB3aGljaCBkb2Vzblx1MjAxOXQgd29yayB3aGVuIHB1Ymxpc2hpbmcgb24gbnBtLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRm4gZXh0ZW5kcyAodmFsdWU6IGFueSkgPT4gdmFsdWUgaXMgaW5mZXIgVGhpbmdcbiAqICAgPyBUaGluZ1xuICogICA6IEZhbGxiYWNrXG4gKiApfSBQcmVkaWNhdGVcbiAqICAgR2V0IHRoZSB2YWx1ZSBvZiBhIHR5cGUgZ3VhcmQgYEZuYC5cbiAqIEB0ZW1wbGF0ZSBGblxuICogICBWYWx1ZTsgdHlwaWNhbGx5IGZ1bmN0aW9uIHRoYXQgaXMgYSB0eXBlIGd1YXJkIChzdWNoIGFzIGAoeCk6IHggaXMgWWApLlxuICogQHRlbXBsYXRlIEZhbGxiYWNrXG4gKiAgIFZhbHVlIHRvIHlpZWxkIGlmIGBGbmAgaXMgbm90IGEgdHlwZSBndWFyZC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIENoZWNrIGV4dGVuZHMgbnVsbCB8IHVuZGVmaW5lZCAvLyBObyB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogVmFsdWUgZXh0ZW5kcyB7dHlwZTogQ2hlY2t9IC8vIFN0cmluZyAodHlwZSkgdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IFZhbHVlIGV4dGVuZHMgQ2hlY2sgLy8gUGFydGlhbCB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogQ2hlY2sgZXh0ZW5kcyBGdW5jdGlvbiAvLyBGdW5jdGlvbiB0ZXN0LlxuICogICA/IFByZWRpY2F0ZTxDaGVjaywgVmFsdWU+IGV4dGVuZHMgVmFsdWVcbiAqICAgICA/IFByZWRpY2F0ZTxDaGVjaywgVmFsdWU+XG4gKiAgICAgOiBuZXZlclxuICogICA6IG5ldmVyIC8vIFNvbWUgb3RoZXIgdGVzdD9cbiAqICl9IE1hdGNoZXNPbmVcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIHByaW1pdGl2ZSBjaGVjayBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUgVmFsdWVcbiAqICAgVmFsdWU7IHR5cGljYWxseSB1bmlzdCBgTm9kZWAuXG4gKiBAdGVtcGxhdGUgQ2hlY2tcbiAqICAgVmFsdWU7IHR5cGljYWxseSBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LCBidXQgbm90IGFycmF5cy5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIENoZWNrIGV4dGVuZHMgQXJyYXk8YW55PlxuICogICA/IE1hdGNoZXNPbmU8VmFsdWUsIENoZWNrW2tleW9mIENoZWNrXT5cbiAqICAgOiBNYXRjaGVzT25lPFZhbHVlLCBDaGVjaz5cbiAqICl9IE1hdGNoZXNcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIGNoZWNrIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSBWYWx1ZVxuICogICBWYWx1ZTsgdHlwaWNhbGx5IHVuaXN0IGBOb2RlYC5cbiAqIEB0ZW1wbGF0ZSBDaGVja1xuICogICBWYWx1ZTsgdHlwaWNhbGx5IGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7MCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDcgfCA4IHwgOSB8IDEwfSBVaW50XG4gKiAgIE51bWJlcjsgY2FwcGVkIHJlYXNvbmFibHkuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SSBleHRlbmRzIDAgPyAxIDogSSBleHRlbmRzIDEgPyAyIDogSSBleHRlbmRzIDIgPyAzIDogSSBleHRlbmRzIDMgPyA0IDogSSBleHRlbmRzIDQgPyA1IDogSSBleHRlbmRzIDUgPyA2IDogSSBleHRlbmRzIDYgPyA3IDogSSBleHRlbmRzIDcgPyA4IDogSSBleHRlbmRzIDggPyA5IDogMTB9IEluY3JlbWVudFxuICogICBJbmNyZW1lbnQgYSBudW1iZXIgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIHtVaW50fSBbST0wXVxuICogICBJbmRleC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIE5vZGUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICA/IE5vZGUgZXh0ZW5kcyB7Y2hpbGRyZW46IEFycmF5PGluZmVyIENoaWxkcmVuPn1cbiAqICAgICA/IENoaWxkIGV4dGVuZHMgQ2hpbGRyZW4gPyBOb2RlIDogbmV2ZXJcbiAqICAgICA6IG5ldmVyXG4gKiAgIDogbmV2ZXJcbiAqICl9IEludGVybmFsUGFyZW50XG4gKiAgIENvbGxlY3Qgbm9kZXMgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbFBhcmVudDxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGlsZD59IFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBwYXJlbnRzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgPyBuZXZlclxuICogICA6XG4gKiAgICAgfCBJbnRlcm5hbFBhcmVudDxOb2RlLCBDaGlsZD5cbiAqICAgICB8IEludGVybmFsQW5jZXN0b3I8Tm9kZSwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+LCBNYXgsIEluY3JlbWVudDxEZXB0aD4+XG4gKiApfSBJbnRlcm5hbEFuY2VzdG9yXG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIGFuY2VzdG9ycyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbEFuY2VzdG9yPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoaWxkPn0gQW5jZXN0b3JcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgYW5jZXN0b3JzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgVHJlZSBleHRlbmRzIFVuaXN0UGFyZW50XG4gKiAgICAgPyBEZXB0aCBleHRlbmRzIE1heFxuICogICAgICAgPyBUcmVlXG4gKiAgICAgICA6IFRyZWUgfCBJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWVbJ2NoaWxkcmVuJ11bbnVtYmVyXSwgTWF4LCBJbmNyZW1lbnQ8RGVwdGg+PlxuICogICAgIDogVHJlZVxuICogKX0gSW5jbHVzaXZlRGVzY2VuZGFudFxuICogICBDb2xsZWN0IGFsbCAoaW5jbHVzaXZlKSBkZXNjZW5kYW50cyBvZiBgVHJlZWAuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgc2VlbXMgdG8gYmUgdGhlIGZhc3Rlc3Qgd2F5IHRvXG4gKiAgID4gcmVjdXJzZSB3aXRob3V0IGFjdHVhbGx5IHJ1bm5pbmcgaW50byBhbiBpbmZpbml0ZSBsb29wLCB3aGljaCB0aGVcbiAqICAgPiBwcmV2aW91cyB2ZXJzaW9uIGRpZC5cbiAqICAgPlxuICogICA+IFByYWN0aWNhbGx5LCBhIG1heCBvZiBgMmAgaXMgdHlwaWNhbGx5IGVub3VnaCBhc3N1bWluZyBhIGBSb290YCBpc1xuICogICA+IHBhc3NlZCwgYnV0IGl0IGRvZXNuXHUyMDE5dCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxuICogICA+IEl0IGdldHMgaGlnaGVyIHdpdGggYExpc3QgPiBMaXN0SXRlbSA+IFRhYmxlID4gVGFibGVSb3cgPiBUYWJsZUNlbGxgLlxuICogICA+IFVzaW5nIHVwIHRvIGAxMGAgZG9lc25cdTIwMTl0IGh1cnQgb3IgaGVscCBlaXRoZXIuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBUcmVlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtNYXg9MTBdXG4gKiAgIE1heDsgc2VhcmNoZXMgdXAgdG8gdGhpcyBkZXB0aC5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0RlcHRoPTBdXG4gKiAgIEN1cnJlbnQgZGVwdGguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7J3NraXAnIHwgYm9vbGVhbn0gQWN0aW9uXG4gKiAgIFVuaW9uIG9mIHRoZSBhY3Rpb24gdHlwZXMuXG4gKlxuICogQHR5cGVkZWYge251bWJlcn0gSW5kZXhcbiAqICAgTW92ZSB0byB0aGUgc2libGluZyBhdCBgaW5kZXhgIG5leHQgKGFmdGVyIG5vZGUgaXRzZWxmIGlzIGNvbXBsZXRlbHlcbiAqICAgdHJhdmVyc2VkKS5cbiAqXG4gKiAgIFVzZWZ1bCBpZiBtdXRhdGluZyB0aGUgdHJlZSwgc3VjaCBhcyByZW1vdmluZyB0aGUgbm9kZSB0aGUgdmlzaXRvciBpc1xuICogICBjdXJyZW50bHkgb24sIG9yIGFueSBvZiBpdHMgcHJldmlvdXMgc2libGluZ3MuXG4gKiAgIFJlc3VsdHMgbGVzcyB0aGFuIDAgb3IgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBjaGlsZHJlbi5sZW5ndGhgIHN0b3BcbiAqICAgdHJhdmVyc2luZyB0aGUgcGFyZW50LlxuICpcbiAqIEB0eXBlZGVmIHtbKEFjdGlvbiB8IG51bGwgfCB1bmRlZmluZWQgfCB2b2lkKT8sIChJbmRleCB8IG51bGwgfCB1bmRlZmluZWQpP119IEFjdGlvblR1cGxlXG4gKiAgIExpc3Qgd2l0aCBvbmUgb3IgdHdvIHZhbHVlcywgdGhlIGZpcnN0IGFuIGFjdGlvbiwgdGhlIHNlY29uZCBhbiBpbmRleC5cbiAqXG4gKiBAdHlwZWRlZiB7QWN0aW9uIHwgQWN0aW9uVHVwbGUgfCBJbmRleCB8IG51bGwgfCB1bmRlZmluZWQgfCB2b2lkfSBWaXNpdG9yUmVzdWx0XG4gKiAgIEFueSB2YWx1ZSB0aGF0IGNhbiBiZSByZXR1cm5lZCBmcm9tIGEgdmlzaXRvci5cbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBWaXNpdG9yXG4gKiAgIEhhbmRsZSBhIG5vZGUgKG1hdGNoaW5nIGB0ZXN0YCwgaWYgZ2l2ZW4pLlxuICpcbiAqICAgVmlzaXRvcnMgYXJlIGZyZWUgdG8gdHJhbnNmb3JtIGBub2RlYC5cbiAqICAgVGhleSBjYW4gYWxzbyB0cmFuc2Zvcm0gdGhlIHBhcmVudCBvZiBub2RlICh0aGUgbGFzdCBvZiBgYW5jZXN0b3JzYCkuXG4gKlxuICogICBSZXBsYWNpbmcgYG5vZGVgIGl0c2VsZiwgaWYgYFNLSVBgIGlzIG5vdCByZXR1cm5lZCwgc3RpbGwgY2F1c2VzIGl0c1xuICogICBkZXNjZW5kYW50cyB0byBiZSB3YWxrZWQgKHdoaWNoIGlzIGEgYnVnKS5cbiAqXG4gKiAgIFdoZW4gYWRkaW5nIG9yIHJlbW92aW5nIHByZXZpb3VzIHNpYmxpbmdzIG9mIGBub2RlYCAob3IgbmV4dCBzaWJsaW5ncywgaW5cbiAqICAgY2FzZSBvZiByZXZlcnNlKSwgdGhlIGBWaXNpdG9yYCBzaG91bGQgcmV0dXJuIGEgbmV3IGBJbmRleGAgdG8gc3BlY2lmeSB0aGVcbiAqICAgc2libGluZyB0byB0cmF2ZXJzZSBhZnRlciBgbm9kZWAgaXMgdHJhdmVyc2VkLlxuICogICBBZGRpbmcgb3IgcmVtb3ZpbmcgbmV4dCBzaWJsaW5ncyBvZiBgbm9kZWAgKG9yIHByZXZpb3VzIHNpYmxpbmdzLCBpbiBjYXNlXG4gKiAgIG9mIHJldmVyc2UpIGlzIGhhbmRsZWQgYXMgZXhwZWN0ZWQgd2l0aG91dCBuZWVkaW5nIHRvIHJldHVybiBhIG5ldyBgSW5kZXhgLlxuICpcbiAqICAgUmVtb3ZpbmcgdGhlIGNoaWxkcmVuIHByb3BlcnR5IG9mIGFuIGFuY2VzdG9yIHN0aWxsIHJlc3VsdHMgaW4gdGhlbSBiZWluZ1xuICogICB0cmF2ZXJzZWQuXG4gKiBAcGFyYW0ge1Zpc2l0ZWR9IG5vZGVcbiAqICAgRm91bmQgbm9kZS5cbiAqIEBwYXJhbSB7QXJyYXk8VmlzaXRlZFBhcmVudHM+fSBhbmNlc3RvcnNcbiAqICAgQW5jZXN0b3JzIG9mIGBub2RlYC5cbiAqIEByZXR1cm5zIHtWaXNpdG9yUmVzdWx0fVxuICogICBXaGF0IHRvIGRvIG5leHQuXG4gKlxuICogICBBbiBgSW5kZXhgIGlzIHRyZWF0ZWQgYXMgYSB0dXBsZSBvZiBgW0NPTlRJTlVFLCBJbmRleF1gLlxuICogICBBbiBgQWN0aW9uYCBpcyB0cmVhdGVkIGFzIGEgdHVwbGUgb2YgYFtBY3Rpb25dYC5cbiAqXG4gKiAgIFBhc3NpbmcgYSB0dXBsZSBiYWNrIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIGBBY3Rpb25gIGlzIGBTS0lQYC5cbiAqICAgV2hlbiB0aGUgYEFjdGlvbmAgaXMgYEVYSVRgLCB0aGF0IGFjdGlvbiBjYW4gYmUgcmV0dXJuZWQuXG4gKiAgIFdoZW4gdGhlIGBBY3Rpb25gIGlzIGBDT05USU5VRWAsIGBJbmRleGAgY2FuIGJlIHJldHVybmVkLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtWaXNpdGVkPVVuaXN0Tm9kZV1cbiAqICAgVmlzaXRlZCBub2RlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VuaXN0UGFyZW50fSBbVmlzaXRlZFBhcmVudHM9VW5pc3RQYXJlbnRdXG4gKiAgIEFuY2VzdG9yIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VmlzaXRvcjxNYXRjaGVzPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoZWNrPiwgQW5jZXN0b3I8VHJlZSwgTWF0Y2hlczxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGVjaz4+Pn0gQnVpbGRWaXNpdG9yXG4gKiAgIEJ1aWxkIGEgdHlwZWQgYFZpc2l0b3JgIGZ1bmN0aW9uIGZyb20gYSB0cmVlIGFuZCBhIHRlc3QuXG4gKlxuICogICBJdCB3aWxsIGluZmVyIHdoaWNoIHZhbHVlcyBhcmUgcGFzc2VkIGFzIGBub2RlYCBhbmQgd2hpY2ggYXMgYHBhcmVudHNgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtUcmVlPVVuaXN0Tm9kZV1cbiAqICAgVHJlZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBbQ2hlY2s9VGVzdF1cbiAqICAgVGVzdCB0eXBlLlxuICovXG5cbmltcG9ydCB7Y29udmVydH0gZnJvbSAndW5pc3QtdXRpbC1pcydcbmltcG9ydCB7Y29sb3J9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cy9kby1ub3QtdXNlLWNvbG9yJ1xuXG4vKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbmNvbnN0IGVtcHR5ID0gW11cblxuLyoqXG4gKiBDb250aW51ZSB0cmF2ZXJzaW5nIGFzIG5vcm1hbC5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTlRJTlVFID0gdHJ1ZVxuXG4vKipcbiAqIFN0b3AgdHJhdmVyc2luZyBpbW1lZGlhdGVseS5cbiAqL1xuZXhwb3J0IGNvbnN0IEVYSVQgPSBmYWxzZVxuXG4vKipcbiAqIERvIG5vdCB0cmF2ZXJzZSB0aGlzIG5vZGVcdTIwMTlzIGNoaWxkcmVuLlxuICovXG5leHBvcnQgY29uc3QgU0tJUCA9ICdza2lwJ1xuXG4vKipcbiAqIFZpc2l0IG5vZGVzLCB3aXRoIGFuY2VzdHJhbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBUaGlzIGFsZ29yaXRobSBwZXJmb3JtcyAqZGVwdGgtZmlyc3QqICp0cmVlIHRyYXZlcnNhbCogaW4gKnByZW9yZGVyKlxuICogKCoqTkxSKiopIG9yIGlmIGByZXZlcnNlYCBpcyBnaXZlbiwgaW4gKnJldmVyc2UgcHJlb3JkZXIqICgqKk5STCoqKS5cbiAqXG4gKiBZb3UgY2FuIGNob29zZSBmb3Igd2hpY2ggbm9kZXMgYHZpc2l0b3JgIGlzIGNhbGxlZCBieSBwYXNzaW5nIGEgYHRlc3RgLlxuICogRm9yIGNvbXBsZXggdGVzdHMsIHlvdSBzaG91bGQgdGVzdCB5b3Vyc2VsZiBpbiBgdmlzaXRvcmAsIGFzIGl0IHdpbGwgYmVcbiAqIGZhc3RlciBhbmQgd2lsbCBoYXZlIGltcHJvdmVkIHR5cGUgaW5mb3JtYXRpb24uXG4gKlxuICogV2Fsa2luZyB0aGUgdHJlZSBpcyBhbiBpbnRlbnNpdmUgdGFzay5cbiAqIE1ha2UgdXNlIG9mIHRoZSByZXR1cm4gdmFsdWVzIG9mIHRoZSB2aXNpdG9yIHdoZW4gcG9zc2libGUuXG4gKiBJbnN0ZWFkIG9mIHdhbGtpbmcgYSB0cmVlIG11bHRpcGxlIHRpbWVzLCB3YWxrIGl0IG9uY2UsIHVzZSBgdW5pc3QtdXRpbC1pc2BcbiAqIHRvIGNoZWNrIGlmIGEgbm9kZSBtYXRjaGVzLCBhbmQgdGhlbiBwZXJmb3JtIGRpZmZlcmVudCBvcGVyYXRpb25zLlxuICpcbiAqIFlvdSBjYW4gY2hhbmdlIHRoZSB0cmVlLlxuICogU2VlIGBWaXNpdG9yYCBmb3IgbW9yZSBpbmZvLlxuICpcbiAqIEBvdmVybG9hZFxuICogQHBhcmFtIHtUcmVlfSB0cmVlXG4gKiBAcGFyYW0ge0NoZWNrfSBjaGVja1xuICogQHBhcmFtIHtCdWlsZFZpc2l0b3I8VHJlZSwgQ2hlY2s+fSB2aXNpdG9yXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1RyZWV9IHRyZWVcbiAqIEBwYXJhbSB7QnVpbGRWaXNpdG9yPFRyZWU+fSB2aXNpdG9yXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKlxuICogQHBhcmFtIHtVbmlzdE5vZGV9IHRyZWVcbiAqICAgVHJlZSB0byB0cmF2ZXJzZS5cbiAqIEBwYXJhbSB7VmlzaXRvciB8IFRlc3R9IHRlc3RcbiAqICAgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdFxuICogQHBhcmFtIHtWaXNpdG9yIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt2aXNpdG9yXVxuICogICBIYW5kbGUgZWFjaCBub2RlLlxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiAgIFRyYXZlcnNlIGluIHJldmVyc2UgcHJlb3JkZXIgKE5STCkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwcmVvcmRlciAoTkxSKS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgTm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBDaGVja1xuICogICBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmlzaXRQYXJlbnRzKHRyZWUsIHRlc3QsIHZpc2l0b3IsIHJldmVyc2UpIHtcbiAgLyoqIEB0eXBlIHtUZXN0fSAqL1xuICBsZXQgY2hlY2tcblxuICBpZiAodHlwZW9mIHRlc3QgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZpc2l0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXZlcnNlID0gdmlzaXRvclxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igbm8gdmlzaXRvciBnaXZlbiwgc28gYHZpc2l0b3JgIGlzIHRlc3QuXG4gICAgdmlzaXRvciA9IHRlc3RcbiAgfSBlbHNlIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHZpc2l0b3IgZ2l2ZW4sIHNvIGB0ZXN0YCBpc25cdTIwMTl0IGEgdmlzaXRvci5cbiAgICBjaGVjayA9IHRlc3RcbiAgfVxuXG4gIGNvbnN0IGlzID0gY29udmVydChjaGVjaylcbiAgY29uc3Qgc3RlcCA9IHJldmVyc2UgPyAtMSA6IDFcblxuICBmYWN0b3J5KHRyZWUsIHVuZGVmaW5lZCwgW10pKClcblxuICAvKipcbiAgICogQHBhcmFtIHtVbmlzdE5vZGV9IG5vZGVcbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gICAqIEBwYXJhbSB7QXJyYXk8VW5pc3RQYXJlbnQ+fSBwYXJlbnRzXG4gICAqL1xuICBmdW5jdGlvbiBmYWN0b3J5KG5vZGUsIGluZGV4LCBwYXJlbnRzKSB7XG4gICAgY29uc3QgdmFsdWUgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAoXG4gICAgICBub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyA/IG5vZGUgOiB7fVxuICAgIClcblxuICAgIGlmICh0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IG5hbWUgPVxuICAgICAgICAvLyBgaGFzdGBcbiAgICAgICAgdHlwZW9mIHZhbHVlLnRhZ05hbWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyB2YWx1ZS50YWdOYW1lXG4gICAgICAgICAgOiAvLyBgeGFzdGBcbiAgICAgICAgICB0eXBlb2YgdmFsdWUubmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IHZhbHVlLm5hbWVcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmlzaXQsICduYW1lJywge1xuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAnbm9kZSAoJyArIGNvbG9yKG5vZGUudHlwZSArIChuYW1lID8gJzwnICsgbmFtZSArICc+JyA6ICcnKSkgKyAnKSdcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0XG5cbiAgICBmdW5jdGlvbiB2aXNpdCgpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fSAqL1xuICAgICAgbGV0IHJlc3VsdCA9IGVtcHR5XG4gICAgICAvKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbiAgICAgIGxldCBzdWJyZXN1bHRcbiAgICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgICAgbGV0IG9mZnNldFxuICAgICAgLyoqIEB0eXBlIHtBcnJheTxVbmlzdFBhcmVudD59ICovXG4gICAgICBsZXQgZ3JhbmRwYXJlbnRzXG5cbiAgICAgIGlmICghdGVzdCB8fCBpcyhub2RlLCBpbmRleCwgcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdIHx8IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYHZpc2l0b3JgIGlzIG5vdyBhIHZpc2l0b3IuXG4gICAgICAgIHJlc3VsdCA9IHRvUmVzdWx0KHZpc2l0b3Iobm9kZSwgcGFyZW50cykpXG5cbiAgICAgICAgaWYgKHJlc3VsdFswXSA9PT0gRVhJVCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoJ2NoaWxkcmVuJyBpbiBub2RlICYmIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3Qgbm9kZUFzUGFyZW50ID0gLyoqIEB0eXBlIHtVbmlzdFBhcmVudH0gKi8gKG5vZGUpXG5cbiAgICAgICAgaWYgKG5vZGVBc1BhcmVudC5jaGlsZHJlbiAmJiByZXN1bHRbMF0gIT09IFNLSVApIHtcbiAgICAgICAgICBvZmZzZXQgPSAocmV2ZXJzZSA/IG5vZGVBc1BhcmVudC5jaGlsZHJlbi5sZW5ndGggOiAtMSkgKyBzdGVwXG4gICAgICAgICAgZ3JhbmRwYXJlbnRzID0gcGFyZW50cy5jb25jYXQobm9kZUFzUGFyZW50KVxuXG4gICAgICAgICAgd2hpbGUgKG9mZnNldCA+IC0xICYmIG9mZnNldCA8IG5vZGVBc1BhcmVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZUFzUGFyZW50LmNoaWxkcmVuW29mZnNldF1cblxuICAgICAgICAgICAgc3VicmVzdWx0ID0gZmFjdG9yeShjaGlsZCwgb2Zmc2V0LCBncmFuZHBhcmVudHMpKClcblxuICAgICAgICAgICAgaWYgKHN1YnJlc3VsdFswXSA9PT0gRVhJVCkge1xuICAgICAgICAgICAgICByZXR1cm4gc3VicmVzdWx0XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9mZnNldCA9XG4gICAgICAgICAgICAgIHR5cGVvZiBzdWJyZXN1bHRbMV0gPT09ICdudW1iZXInID8gc3VicmVzdWx0WzFdIDogb2Zmc2V0ICsgc3RlcFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHVybiBhIHJldHVybiB2YWx1ZSBpbnRvIGEgY2xlYW4gcmVzdWx0LlxuICpcbiAqIEBwYXJhbSB7VmlzaXRvclJlc3VsdH0gdmFsdWVcbiAqICAgVmFsaWQgcmV0dXJuIHZhbHVlcyBmcm9tIHZpc2l0b3JzLlxuICogQHJldHVybnMge1JlYWRvbmx5PEFjdGlvblR1cGxlPn1cbiAqICAgQ2xlYW4gcmVzdWx0LlxuICovXG5mdW5jdGlvbiB0b1Jlc3VsdCh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIFtDT05USU5VRSwgdmFsdWVdXG4gIH1cblxuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/IGVtcHR5IDogW3ZhbHVlXVxufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBkZXByZWNhdGUoZm4pIHtcbiAgcmV0dXJuIGZuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcXVhbCgpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBvaygpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlYWNoYWJsZSgpIHt9XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2luZm8uanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgSW5mbz59IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBOb3JtYWxcbiAqL1xuXG5leHBvcnQgY2xhc3MgU2NoZW1hIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnR5XG4gICAqIEBwYXJhbSB7Tm9ybWFsfSBub3JtYWxcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzcGFjZV1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5LCBub3JtYWwsIHNwYWNlKSB7XG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5XG4gICAgdGhpcy5ub3JtYWwgPSBub3JtYWxcbiAgICBpZiAoc3BhY2UpIHtcbiAgICAgIHRoaXMuc3BhY2UgPSBzcGFjZVxuICAgIH1cbiAgfVxufVxuXG4vKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG5TY2hlbWEucHJvdG90eXBlLnByb3BlcnR5ID0ge31cbi8qKiBAdHlwZSB7Tm9ybWFsfSAqL1xuU2NoZW1hLnByb3RvdHlwZS5ub3JtYWwgPSB7fVxuLyoqIEB0eXBlIHtzdHJpbmd8bnVsbH0gKi9cblNjaGVtYS5wcm90b3R5cGUuc3BhY2UgPSBudWxsXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuTm9ybWFsfSBOb3JtYWxcbiAqL1xuXG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi9zY2hlbWEuanMnXG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWFbXX0gZGVmaW5pdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc3BhY2VdXG4gKiBAcmV0dXJucyB7U2NoZW1hfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2UoZGVmaW5pdGlvbnMsIHNwYWNlKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydHkgPSB7fVxuICAvKiogQHR5cGUge05vcm1hbH0gKi9cbiAgY29uc3Qgbm9ybWFsID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGRlZmluaXRpb25zLmxlbmd0aCkge1xuICAgIE9iamVjdC5hc3NpZ24ocHJvcGVydHksIGRlZmluaXRpb25zW2luZGV4XS5wcm9wZXJ0eSlcbiAgICBPYmplY3QuYXNzaWduKG5vcm1hbCwgZGVmaW5pdGlvbnNbaW5kZXhdLm5vcm1hbClcbiAgfVxuXG4gIHJldHVybiBuZXcgU2NoZW1hKHByb3BlcnR5LCBub3JtYWwsIHNwYWNlKVxufVxuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpXG59XG4iLCAiZXhwb3J0IGNsYXNzIEluZm8ge1xuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgYXR0cmlidXRlKSB7XG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5XG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgdGhpcy5hdHRyaWJ1dGUgPSBhdHRyaWJ1dGVcbiAgfVxufVxuXG4vKiogQHR5cGUge3N0cmluZ3xudWxsfSAqL1xuSW5mby5wcm90b3R5cGUuc3BhY2UgPSBudWxsXG5JbmZvLnByb3RvdHlwZS5ib29sZWFuID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmJvb2xlYW5pc2ggPSBmYWxzZVxuSW5mby5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW4gPSBmYWxzZVxuSW5mby5wcm90b3R5cGUubnVtYmVyID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLnNwYWNlU2VwYXJhdGVkID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHkgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUuZGVmaW5lZCA9IGZhbHNlXG4iLCAibGV0IHBvd2VycyA9IDBcblxuZXhwb3J0IGNvbnN0IGJvb2xlYW4gPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IGJvb2xlYW5pc2ggPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IG92ZXJsb2FkZWRCb29sZWFuID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBudW1iZXIgPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IHNwYWNlU2VwYXJhdGVkID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBjb21tYVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgY29tbWFPclNwYWNlU2VwYXJhdGVkID0gaW5jcmVtZW50KClcblxuZnVuY3Rpb24gaW5jcmVtZW50KCkge1xuICByZXR1cm4gMiAqKiArK3Bvd2Vyc1xufVxuIiwgImltcG9ydCB7SW5mb30gZnJvbSAnLi9pbmZvLmpzJ1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlcy5qcydcblxuLyoqIEB0eXBlIHtBcnJheTxrZXlvZiB0eXBlcz59ICovXG4vLyBAdHMtZXhwZWN0LWVycm9yOiBodXNoLlxuY29uc3QgY2hlY2tzID0gT2JqZWN0LmtleXModHlwZXMpXG5cbmV4cG9ydCBjbGFzcyBEZWZpbmVkSW5mbyBleHRlbmRzIEluZm8ge1xuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfG51bGx9IFttYXNrXVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3NwYWNlXVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydHksIGF0dHJpYnV0ZSwgbWFzaywgc3BhY2UpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgc3VwZXIocHJvcGVydHksIGF0dHJpYnV0ZSlcblxuICAgIG1hcmsodGhpcywgJ3NwYWNlJywgc3BhY2UpXG5cbiAgICBpZiAodHlwZW9mIG1hc2sgPT09ICdudW1iZXInKSB7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGNoZWNrcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hlY2sgPSBjaGVja3NbaW5kZXhdXG4gICAgICAgIG1hcmsodGhpcywgY2hlY2tzW2luZGV4XSwgKG1hc2sgJiB0eXBlc1tjaGVja10pID09PSB0eXBlc1tjaGVja10pXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkRlZmluZWRJbmZvLnByb3RvdHlwZS5kZWZpbmVkID0gdHJ1ZVxuXG4vKipcbiAqIEBwYXJhbSB7RGVmaW5lZEluZm99IHZhbHVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICovXG5mdW5jdGlvbiBtYXJrKHZhbHVlcywga2V5LCB2YWx1ZSkge1xuICBpZiAodmFsdWUpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBhc3N1bWUgYHZhbHVlYCBtYXRjaGVzIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiBga2V5YC5cbiAgICB2YWx1ZXNba2V5XSA9IHZhbHVlXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEuanMnKS5Ob3JtYWx9IE5vcm1hbFxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBBdHRyaWJ1dGVzXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gRGVmaW5pdGlvblxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBudW1iZXJ8bnVsbD59IHByb3BlcnRpZXNcbiAqIEBwcm9wZXJ0eSB7KGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZXMsIHByb3BlcnR5OiBzdHJpbmcpID0+IHN0cmluZ30gdHJhbnNmb3JtXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3NwYWNlXVxuICogQHByb3BlcnR5IHtBdHRyaWJ1dGVzfSBbYXR0cmlidXRlc11cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gW211c3RVc2VQcm9wZXJ0eV1cbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZX0gZnJvbSAnLi4vbm9ybWFsaXplLmpzJ1xuaW1wb3J0IHtTY2hlbWF9IGZyb20gJy4vc2NoZW1hLmpzJ1xuaW1wb3J0IHtEZWZpbmVkSW5mb30gZnJvbSAnLi9kZWZpbmVkLWluZm8uanMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogQHBhcmFtIHtEZWZpbml0aW9ufSBkZWZpbml0aW9uXG4gKiBAcmV0dXJucyB7U2NoZW1hfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKGRlZmluaXRpb24pIHtcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wZXJ0eSA9IHt9XG4gIC8qKiBAdHlwZSB7Tm9ybWFsfSAqL1xuICBjb25zdCBub3JtYWwgPSB7fVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IHByb3BcblxuICBmb3IgKHByb3AgaW4gZGVmaW5pdGlvbi5wcm9wZXJ0aWVzKSB7XG4gICAgaWYgKG93bi5jYWxsKGRlZmluaXRpb24ucHJvcGVydGllcywgcHJvcCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGVmaW5pdGlvbi5wcm9wZXJ0aWVzW3Byb3BdXG4gICAgICBjb25zdCBpbmZvID0gbmV3IERlZmluZWRJbmZvKFxuICAgICAgICBwcm9wLFxuICAgICAgICBkZWZpbml0aW9uLnRyYW5zZm9ybShkZWZpbml0aW9uLmF0dHJpYnV0ZXMgfHwge30sIHByb3ApLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgZGVmaW5pdGlvbi5zcGFjZVxuICAgICAgKVxuXG4gICAgICBpZiAoXG4gICAgICAgIGRlZmluaXRpb24ubXVzdFVzZVByb3BlcnR5ICYmXG4gICAgICAgIGRlZmluaXRpb24ubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKHByb3ApXG4gICAgICApIHtcbiAgICAgICAgaW5mby5tdXN0VXNlUHJvcGVydHkgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5W3Byb3BdID0gaW5mb1xuXG4gICAgICBub3JtYWxbbm9ybWFsaXplKHByb3ApXSA9IHByb3BcbiAgICAgIG5vcm1hbFtub3JtYWxpemUoaW5mby5hdHRyaWJ1dGUpXSA9IHByb3BcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYShwcm9wZXJ0eSwgbm9ybWFsLCBkZWZpbml0aW9uLnNwYWNlKVxufVxuIiwgImltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuXG5leHBvcnQgY29uc3QgeGxpbmsgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3hsaW5rJyxcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gJ3hsaW5rOicgKyBwcm9wLnNsaWNlKDUpLnRvTG93ZXJDYXNlKClcbiAgfSxcbiAgcHJvcGVydGllczoge1xuICAgIHhMaW5rQWN0dWF0ZTogbnVsbCxcbiAgICB4TGlua0FyY1JvbGU6IG51bGwsXG4gICAgeExpbmtIcmVmOiBudWxsLFxuICAgIHhMaW5rUm9sZTogbnVsbCxcbiAgICB4TGlua1Nob3c6IG51bGwsXG4gICAgeExpbmtUaXRsZTogbnVsbCxcbiAgICB4TGlua1R5cGU6IG51bGxcbiAgfVxufSlcbiIsICJpbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IHhtbCA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneG1sJyxcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gJ3htbDonICsgcHJvcC5zbGljZSgzKS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHt4bWxMYW5nOiBudWxsLCB4bWxCYXNlOiBudWxsLCB4bWxTcGFjZTogbnVsbH1cbn0pXG4iLCAiLyoqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIGF0dHJpYnV0ZSkge1xuICByZXR1cm4gYXR0cmlidXRlIGluIGF0dHJpYnV0ZXMgPyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZV0gOiBhdHRyaWJ1dGVcbn1cbiIsICJpbXBvcnQge2Nhc2VTZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gYXR0cmlidXRlc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3BlcnR5KSB7XG4gIHJldHVybiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3BlcnR5LnRvTG93ZXJDYXNlKCkpXG59XG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Nhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG5leHBvcnQgY29uc3QgeG1sbnMgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3htbG5zJyxcbiAgYXR0cmlidXRlczoge3htbG5zeGxpbms6ICd4bWxuczp4bGluayd9LFxuICB0cmFuc2Zvcm06IGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSxcbiAgcHJvcGVydGllczoge3htbG5zOiBudWxsLCB4bWxuc1hMaW5rOiBudWxsfVxufSlcbiIsICJpbXBvcnQge2Jvb2xlYW5pc2gsIG51bWJlciwgc3BhY2VTZXBhcmF0ZWR9IGZyb20gJy4vdXRpbC90eXBlcy5qcydcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuXG5leHBvcnQgY29uc3QgYXJpYSA9IGNyZWF0ZSh7XG4gIHRyYW5zZm9ybShfLCBwcm9wKSB7XG4gICAgcmV0dXJuIHByb3AgPT09ICdyb2xlJyA/IHByb3AgOiAnYXJpYS0nICsgcHJvcC5zbGljZSg0KS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudDogbnVsbCxcbiAgICBhcmlhQXRvbWljOiBib29sZWFuaXNoLFxuICAgIGFyaWFBdXRvQ29tcGxldGU6IG51bGwsXG4gICAgYXJpYUJ1c3k6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNoZWNrZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNvbENvdW50OiBudW1iZXIsXG4gICAgYXJpYUNvbEluZGV4OiBudW1iZXIsXG4gICAgYXJpYUNvbFNwYW46IG51bWJlcixcbiAgICBhcmlhQ29udHJvbHM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFDdXJyZW50OiBudWxsLFxuICAgIGFyaWFEZXNjcmliZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYURldGFpbHM6IG51bGwsXG4gICAgYXJpYURpc2FibGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFEcm9wRWZmZWN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhRXJyb3JNZXNzYWdlOiBudWxsLFxuICAgIGFyaWFFeHBhbmRlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRmxvd1RvOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhR3JhYmJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhSGFzUG9wdXA6IG51bGwsXG4gICAgYXJpYUhpZGRlbjogYm9vbGVhbmlzaCxcbiAgICBhcmlhSW52YWxpZDogbnVsbCxcbiAgICBhcmlhS2V5U2hvcnRjdXRzOiBudWxsLFxuICAgIGFyaWFMYWJlbDogbnVsbCxcbiAgICBhcmlhTGFiZWxsZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUxldmVsOiBudW1iZXIsXG4gICAgYXJpYUxpdmU6IG51bGwsXG4gICAgYXJpYU1vZGFsOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aUxpbmU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU11bHRpU2VsZWN0YWJsZTogYm9vbGVhbmlzaCxcbiAgICBhcmlhT3JpZW50YXRpb246IG51bGwsXG4gICAgYXJpYU93bnM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFQbGFjZWhvbGRlcjogbnVsbCxcbiAgICBhcmlhUG9zSW5TZXQ6IG51bWJlcixcbiAgICBhcmlhUHJlc3NlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUmVhZE9ubHk6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlbGV2YW50OiBudWxsLFxuICAgIGFyaWFSZXF1aXJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUm93Q291bnQ6IG51bWJlcixcbiAgICBhcmlhUm93SW5kZXg6IG51bWJlcixcbiAgICBhcmlhUm93U3BhbjogbnVtYmVyLFxuICAgIGFyaWFTZWxlY3RlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhU2V0U2l6ZTogbnVtYmVyLFxuICAgIGFyaWFTb3J0OiBudWxsLFxuICAgIGFyaWFWYWx1ZU1heDogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU1pbjogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU5vdzogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZVRleHQ6IG51bGwsXG4gICAgcm9sZTogbnVsbFxuICB9XG59KVxuIiwgImltcG9ydCB7XG4gIGJvb2xlYW4sXG4gIG92ZXJsb2FkZWRCb29sZWFuLFxuICBib29sZWFuaXNoLFxuICBudW1iZXIsXG4gIHNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCBodG1sID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdodG1sJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NuYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxmb3I6ICdmb3InLFxuICAgIGh0dHBlcXVpdjogJ2h0dHAtZXF1aXYnXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBtdXN0VXNlUHJvcGVydHk6IFsnY2hlY2tlZCcsICdtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLy8gU3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhYmJyOiBudWxsLFxuICAgIGFjY2VwdDogY29tbWFTZXBhcmF0ZWQsXG4gICAgYWNjZXB0Q2hhcnNldDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZXNzS2V5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3c6IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBib29sZWFuLFxuICAgIGFsbG93UGF5bWVudFJlcXVlc3Q6IGJvb2xlYW4sXG4gICAgYWxsb3dVc2VyTWVkaWE6IGJvb2xlYW4sXG4gICAgYWx0OiBudWxsLFxuICAgIGFzOiBudWxsLFxuICAgIGFzeW5jOiBib29sZWFuLFxuICAgIGF1dG9DYXBpdGFsaXplOiBudWxsLFxuICAgIGF1dG9Db21wbGV0ZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXV0b0ZvY3VzOiBib29sZWFuLFxuICAgIGF1dG9QbGF5OiBib29sZWFuLFxuICAgIGJsb2NraW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjYXB0dXJlOiBudWxsLFxuICAgIGNoYXJTZXQ6IG51bGwsXG4gICAgY2hlY2tlZDogYm9vbGVhbixcbiAgICBjaXRlOiBudWxsLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29sczogbnVtYmVyLFxuICAgIGNvbFNwYW46IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50RWRpdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgY29udHJvbHM6IGJvb2xlYW4sXG4gICAgY29udHJvbHNMaXN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb29yZHM6IG51bWJlciB8IGNvbW1hU2VwYXJhdGVkLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGRhdGE6IG51bGwsXG4gICAgZGF0ZVRpbWU6IG51bGwsXG4gICAgZGVjb2Rpbmc6IG51bGwsXG4gICAgZGVmYXVsdDogYm9vbGVhbixcbiAgICBkZWZlcjogYm9vbGVhbixcbiAgICBkaXI6IG51bGwsXG4gICAgZGlyTmFtZTogbnVsbCxcbiAgICBkaXNhYmxlZDogYm9vbGVhbixcbiAgICBkb3dubG9hZDogb3ZlcmxvYWRlZEJvb2xlYW4sXG4gICAgZHJhZ2dhYmxlOiBib29sZWFuaXNoLFxuICAgIGVuY1R5cGU6IG51bGwsXG4gICAgZW50ZXJLZXlIaW50OiBudWxsLFxuICAgIGZldGNoUHJpb3JpdHk6IG51bGwsXG4gICAgZm9ybTogbnVsbCxcbiAgICBmb3JtQWN0aW9uOiBudWxsLFxuICAgIGZvcm1FbmNUeXBlOiBudWxsLFxuICAgIGZvcm1NZXRob2Q6IG51bGwsXG4gICAgZm9ybU5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgZm9ybVRhcmdldDogbnVsbCxcbiAgICBoZWFkZXJzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBoaWRkZW46IGJvb2xlYW4sXG4gICAgaGlnaDogbnVtYmVyLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaHRtbEZvcjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaHR0cEVxdWl2OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpZDogbnVsbCxcbiAgICBpbWFnZVNpemVzOiBudWxsLFxuICAgIGltYWdlU3JjU2V0OiBudWxsLFxuICAgIGluZXJ0OiBib29sZWFuLFxuICAgIGlucHV0TW9kZTogbnVsbCxcbiAgICBpbnRlZ3JpdHk6IG51bGwsXG4gICAgaXM6IG51bGwsXG4gICAgaXNNYXA6IGJvb2xlYW4sXG4gICAgaXRlbUlkOiBudWxsLFxuICAgIGl0ZW1Qcm9wOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtUmVmOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtU2NvcGU6IGJvb2xlYW4sXG4gICAgaXRlbVR5cGU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGtpbmQ6IG51bGwsXG4gICAgbGFiZWw6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsYW5ndWFnZTogbnVsbCxcbiAgICBsaXN0OiBudWxsLFxuICAgIGxvYWRpbmc6IG51bGwsXG4gICAgbG9vcDogYm9vbGVhbixcbiAgICBsb3c6IG51bWJlcixcbiAgICBtYW5pZmVzdDogbnVsbCxcbiAgICBtYXg6IG51bGwsXG4gICAgbWF4TGVuZ3RoOiBudW1iZXIsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtaW5MZW5ndGg6IG51bWJlcixcbiAgICBtdWx0aXBsZTogYm9vbGVhbixcbiAgICBtdXRlZDogYm9vbGVhbixcbiAgICBuYW1lOiBudWxsLFxuICAgIG5vbmNlOiBudWxsLFxuICAgIG5vTW9kdWxlOiBib29sZWFuLFxuICAgIG5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgb25BYm9ydDogbnVsbCxcbiAgICBvbkFmdGVyUHJpbnQ6IG51bGwsXG4gICAgb25BdXhDbGljazogbnVsbCxcbiAgICBvbkJlZm9yZU1hdGNoOiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWZvcmVUb2dnbGU6IG51bGwsXG4gICAgb25CZWZvcmVVbmxvYWQ6IG51bGwsXG4gICAgb25CbHVyOiBudWxsLFxuICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgIG9uQ2FuUGxheTogbnVsbCxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgb25DbG9zZTogbnVsbCxcbiAgICBvbkNvbnRleHRMb3N0OiBudWxsLFxuICAgIG9uQ29udGV4dE1lbnU6IG51bGwsXG4gICAgb25Db250ZXh0UmVzdG9yZWQ6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9ybURhdGE6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25MYW5ndWFnZUNoYW5nZTogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkRW5kOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1lc3NhZ2VFcnJvcjogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlamVjdGlvbkhhbmRsZWQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNjcm9sbEVuZDogbnVsbCxcbiAgICBvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNsb3RDaGFuZ2U6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5oYW5kbGVkUmVqZWN0aW9uOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvbldoZWVsOiBudWxsLFxuICAgIG9wZW46IGJvb2xlYW4sXG4gICAgb3B0aW11bTogbnVtYmVyLFxuICAgIHBhdHRlcm46IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGxhY2Vob2xkZXI6IG51bGwsXG4gICAgcGxheXNJbmxpbmU6IGJvb2xlYW4sXG4gICAgcG9wb3ZlcjogbnVsbCxcbiAgICBwb3BvdmVyVGFyZ2V0OiBudWxsLFxuICAgIHBvcG92ZXJUYXJnZXRBY3Rpb246IG51bGwsXG4gICAgcG9zdGVyOiBudWxsLFxuICAgIHByZWxvYWQ6IG51bGwsXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVsOiBzcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZDogYm9vbGVhbixcbiAgICByZXZlcnNlZDogYm9vbGVhbixcbiAgICByb3dzOiBudW1iZXIsXG4gICAgcm93U3BhbjogbnVtYmVyLFxuICAgIHNhbmRib3g6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHNjb3BlOiBudWxsLFxuICAgIHNjb3BlZDogYm9vbGVhbixcbiAgICBzZWFtbGVzczogYm9vbGVhbixcbiAgICBzZWxlY3RlZDogYm9vbGVhbixcbiAgICBzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6IGJvb2xlYW4sXG4gICAgc2hhZG93Um9vdE1vZGU6IG51bGwsXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNpemVzOiBudWxsLFxuICAgIHNsb3Q6IG51bGwsXG4gICAgc3BhbjogbnVtYmVyLFxuICAgIHNwZWxsQ2hlY2s6IGJvb2xlYW5pc2gsXG4gICAgc3JjOiBudWxsLFxuICAgIHNyY0RvYzogbnVsbCxcbiAgICBzcmNMYW5nOiBudWxsLFxuICAgIHNyY1NldDogbnVsbCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIHN0ZXA6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNsYXRlOiBudWxsLFxuICAgIHR5cGU6IG51bGwsXG4gICAgdHlwZU11c3RNYXRjaDogYm9vbGVhbixcbiAgICB1c2VNYXA6IG51bGwsXG4gICAgdmFsdWU6IGJvb2xlYW5pc2gsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICB3cmFwOiBudWxsLFxuXG4gICAgLy8gTGVnYWN5LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jb3RoZXItZWxlbWVudHMsLWF0dHJpYnV0ZXMtYW5kLWFwaXNcbiAgICBhbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdGV4dC1hbGlnbmAgaW5zdGVhZCxcbiAgICBhTGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6YWN0aXZlIHtjb2xvcn1gIGluc3RlYWRcbiAgICBhcmNoaXZlOiBzcGFjZVNlcGFyYXRlZCwgLy8gYDxvYmplY3Q+YC4gTGlzdCBvZiBVUklzIHRvIGFyY2hpdmVzXG4gICAgYXhpczogbnVsbCwgLy8gYDx0ZD5gIGFuZCBgPHRoPmAuIFVzZSBgc2NvcGVgIG9uIGA8dGg+YFxuICAgIGJhY2tncm91bmQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWltYWdlYCBpbnN0ZWFkXG4gICAgYmdDb2xvcjogbnVsbCwgLy8gYDxib2R5PmAgYW5kIHRhYmxlIGVsZW1lbnRzLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWNvbG9yYCBpbnN0ZWFkXG4gICAgYm9yZGVyOiBudW1iZXIsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLXdpZHRoYCBpbnN0ZWFkLFxuICAgIGJvcmRlckNvbG9yOiBudWxsLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci1jb2xvcmAgaW5zdGVhZCxcbiAgICBib3R0b21NYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBjZWxsUGFkZGluZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2VsbFNwYWNpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNoYXI6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGFsaWduPWNoYXJgLCBzZXRzIHRoZSBjaGFyYWN0ZXIgdG8gYWxpZ24gb25cbiAgICBjaGFyT2ZmOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBjaGFyYCwgb2Zmc2V0cyB0aGUgYWxpZ25tZW50XG4gICAgY2xhc3NJZDogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNsZWFyOiBudWxsLCAvLyBgPGJyPmAuIFVzZSBDU1MgYGNsZWFyYCBpbnN0ZWFkXG4gICAgY29kZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVCYXNlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZVR5cGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2xvcjogbnVsbCwgLy8gYDxmb250PmAgYW5kIGA8aHI+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgY29tcGFjdDogYm9vbGVhbiwgLy8gTGlzdHMuIFVzZSBDU1MgdG8gcmVkdWNlIHNwYWNlIGJldHdlZW4gaXRlbXMgaW5zdGVhZFxuICAgIGRlY2xhcmU6IGJvb2xlYW4sIC8vIGA8b2JqZWN0PmBcbiAgICBldmVudDogbnVsbCwgLy8gYDxzY3JpcHQ+YFxuICAgIGZhY2U6IG51bGwsIC8vIGA8Zm9udD5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBmcmFtZTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgZnJhbWVCb3JkZXI6IG51bGwsIC8vIGA8aWZyYW1lPmAuIFVzZSBDU1MgYGJvcmRlcmAgaW5zdGVhZFxuICAgIGhTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG4gICAgbGVmdE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmxpbmsge2NvbG9yOiAqfWAgaW5zdGVhZFxuICAgIGxvbmdEZXNjOiBudWxsLCAvLyBgPGZyYW1lPmAsIGA8aWZyYW1lPmAsIGFuZCBgPGltZz5gLiBVc2UgYW4gYDxhPmBcbiAgICBsb3dTcmM6IG51bGwsIC8vIGA8aW1nPmAuIFVzZSBhIGA8cGljdHVyZT5gXG4gICAgbWFyZ2luSGVpZ2h0OiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbWFyZ2luV2lkdGg6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBub1Jlc2l6ZTogYm9vbGVhbiwgLy8gYDxmcmFtZT5gXG4gICAgbm9IcmVmOiBib29sZWFuLCAvLyBgPGFyZWE+YC4gVXNlIG5vIGhyZWYgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBgbm9ocmVmYFxuICAgIG5vU2hhZGU6IGJvb2xlYW4sIC8vIGA8aHI+YC4gVXNlIGJhY2tncm91bmQtY29sb3IgYW5kIGhlaWdodCBpbnN0ZWFkIG9mIGJvcmRlcnNcbiAgICBub1dyYXA6IGJvb2xlYW4sIC8vIGA8dGQ+YCBhbmQgYDx0aD5gXG4gICAgb2JqZWN0OiBudWxsLCAvLyBgPGFwcGxldD5gXG4gICAgcHJvZmlsZTogbnVsbCwgLy8gYDxoZWFkPmBcbiAgICBwcm9tcHQ6IG51bGwsIC8vIGA8aXNpbmRleD5gXG4gICAgcmV2OiBudWxsLCAvLyBgPGxpbms+YFxuICAgIHJpZ2h0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgcnVsZXM6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHNjaGVtZTogbnVsbCwgLy8gYDxtZXRhPmBcbiAgICBzY3JvbGxpbmc6IGJvb2xlYW5pc2gsIC8vIGA8ZnJhbWU+YC4gVXNlIG92ZXJmbG93IGluIHRoZSBjaGlsZCBjb250ZXh0XG4gICAgc3RhbmRieTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIHN1bW1hcnk6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHRleHQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBjb2xvcmAgaW5zdGVhZFxuICAgIHRvcE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHZhbHVlVHlwZTogbnVsbCwgLy8gYDxwYXJhbT5gXG4gICAgdmVyc2lvbjogbnVsbCwgLy8gYDxodG1sPmAuIFVzZSBhIGRvY3R5cGUuXG4gICAgdkFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB2ZXJ0aWNhbC1hbGlnbmAgaW5zdGVhZFxuICAgIHZMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTp2aXNpdGVkIHtjb2xvcn1gIGluc3RlYWRcbiAgICB2U3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuXG4gICAgLy8gTm9uLXN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWxsb3dUcmFuc3BhcmVuY3k6IG51bGwsXG4gICAgYXV0b0NvcnJlY3Q6IG51bGwsXG4gICAgYXV0b1NhdmU6IG51bGwsXG4gICAgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6IGJvb2xlYW4sXG4gICAgZGlzYWJsZVJlbW90ZVBsYXliYWNrOiBib29sZWFuLFxuICAgIHByZWZpeDogbnVsbCxcbiAgICBwcm9wZXJ0eTogbnVsbCxcbiAgICByZXN1bHRzOiBudW1iZXIsXG4gICAgc2VjdXJpdHk6IG51bGwsXG4gICAgdW5zZWxlY3RhYmxlOiBudWxsXG4gIH1cbn0pXG4iLCAiaW1wb3J0IHtcbiAgYm9vbGVhbixcbiAgbnVtYmVyLFxuICBzcGFjZVNlcGFyYXRlZCxcbiAgY29tbWFTZXBhcmF0ZWQsXG4gIGNvbW1hT3JTcGFjZVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZVNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IHN2ZyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAnc3ZnJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VudEhlaWdodDogJ2FjY2VudC1oZWlnaHQnLFxuICAgIGFsaWdubWVudEJhc2VsaW5lOiAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgICBhcmFiaWNGb3JtOiAnYXJhYmljLWZvcm0nLFxuICAgIGJhc2VsaW5lU2hpZnQ6ICdiYXNlbGluZS1zaGlmdCcsXG4gICAgY2FwSGVpZ2h0OiAnY2FwLWhlaWdodCcsXG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGNsaXBQYXRoOiAnY2xpcC1wYXRoJyxcbiAgICBjbGlwUnVsZTogJ2NsaXAtcnVsZScsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uOiAnY29sb3ItaW50ZXJwb2xhdGlvbicsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczogJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICAgY29sb3JQcm9maWxlOiAnY29sb3ItcHJvZmlsZScsXG4gICAgY29sb3JSZW5kZXJpbmc6ICdjb2xvci1yZW5kZXJpbmcnLFxuICAgIGNyb3NzT3JpZ2luOiAnY3Jvc3NvcmlnaW4nLFxuICAgIGRhdGFUeXBlOiAnZGF0YXR5cGUnLFxuICAgIGRvbWluYW50QmFzZWxpbmU6ICdkb21pbmFudC1iYXNlbGluZScsXG4gICAgZW5hYmxlQmFja2dyb3VuZDogJ2VuYWJsZS1iYWNrZ3JvdW5kJyxcbiAgICBmaWxsT3BhY2l0eTogJ2ZpbGwtb3BhY2l0eScsXG4gICAgZmlsbFJ1bGU6ICdmaWxsLXJ1bGUnLFxuICAgIGZsb29kQ29sb3I6ICdmbG9vZC1jb2xvcicsXG4gICAgZmxvb2RPcGFjaXR5OiAnZmxvb2Qtb3BhY2l0eScsXG4gICAgZm9udEZhbWlseTogJ2ZvbnQtZmFtaWx5JyxcbiAgICBmb250U2l6ZTogJ2ZvbnQtc2l6ZScsXG4gICAgZm9udFNpemVBZGp1c3Q6ICdmb250LXNpemUtYWRqdXN0JyxcbiAgICBmb250U3RyZXRjaDogJ2ZvbnQtc3RyZXRjaCcsXG4gICAgZm9udFN0eWxlOiAnZm9udC1zdHlsZScsXG4gICAgZm9udFZhcmlhbnQ6ICdmb250LXZhcmlhbnQnLFxuICAgIGZvbnRXZWlnaHQ6ICdmb250LXdlaWdodCcsXG4gICAgZ2x5cGhOYW1lOiAnZ2x5cGgtbmFtZScsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6ICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJyxcbiAgICBnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICAgaHJlZkxhbmc6ICdocmVmbGFuZycsXG4gICAgaG9yaXpBZHZYOiAnaG9yaXotYWR2LXgnLFxuICAgIGhvcml6T3JpZ2luWDogJ2hvcml6LW9yaWdpbi14JyxcbiAgICBob3Jpek9yaWdpblk6ICdob3Jpei1vcmlnaW4teScsXG4gICAgaW1hZ2VSZW5kZXJpbmc6ICdpbWFnZS1yZW5kZXJpbmcnLFxuICAgIGxldHRlclNwYWNpbmc6ICdsZXR0ZXItc3BhY2luZycsXG4gICAgbGlnaHRpbmdDb2xvcjogJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgICBtYXJrZXJFbmQ6ICdtYXJrZXItZW5kJyxcbiAgICBtYXJrZXJNaWQ6ICdtYXJrZXItbWlkJyxcbiAgICBtYXJrZXJTdGFydDogJ21hcmtlci1zdGFydCcsXG4gICAgbmF2RG93bjogJ25hdi1kb3duJyxcbiAgICBuYXZEb3duTGVmdDogJ25hdi1kb3duLWxlZnQnLFxuICAgIG5hdkRvd25SaWdodDogJ25hdi1kb3duLXJpZ2h0JyxcbiAgICBuYXZMZWZ0OiAnbmF2LWxlZnQnLFxuICAgIG5hdk5leHQ6ICduYXYtbmV4dCcsXG4gICAgbmF2UHJldjogJ25hdi1wcmV2JyxcbiAgICBuYXZSaWdodDogJ25hdi1yaWdodCcsXG4gICAgbmF2VXA6ICduYXYtdXAnLFxuICAgIG5hdlVwTGVmdDogJ25hdi11cC1sZWZ0JyxcbiAgICBuYXZVcFJpZ2h0OiAnbmF2LXVwLXJpZ2h0JyxcbiAgICBvbkFib3J0OiAnb25hYm9ydCcsXG4gICAgb25BY3RpdmF0ZTogJ29uYWN0aXZhdGUnLFxuICAgIG9uQWZ0ZXJQcmludDogJ29uYWZ0ZXJwcmludCcsXG4gICAgb25CZWZvcmVQcmludDogJ29uYmVmb3JlcHJpbnQnLFxuICAgIG9uQmVnaW46ICdvbmJlZ2luJyxcbiAgICBvbkNhbmNlbDogJ29uY2FuY2VsJyxcbiAgICBvbkNhblBsYXk6ICdvbmNhbnBsYXknLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6ICdvbmNhbnBsYXl0aHJvdWdoJyxcbiAgICBvbkNoYW5nZTogJ29uY2hhbmdlJyxcbiAgICBvbkNsaWNrOiAnb25jbGljaycsXG4gICAgb25DbG9zZTogJ29uY2xvc2UnLFxuICAgIG9uQ29weTogJ29uY29weScsXG4gICAgb25DdWVDaGFuZ2U6ICdvbmN1ZWNoYW5nZScsXG4gICAgb25DdXQ6ICdvbmN1dCcsXG4gICAgb25EYmxDbGljazogJ29uZGJsY2xpY2snLFxuICAgIG9uRHJhZzogJ29uZHJhZycsXG4gICAgb25EcmFnRW5kOiAnb25kcmFnZW5kJyxcbiAgICBvbkRyYWdFbnRlcjogJ29uZHJhZ2VudGVyJyxcbiAgICBvbkRyYWdFeGl0OiAnb25kcmFnZXhpdCcsXG4gICAgb25EcmFnTGVhdmU6ICdvbmRyYWdsZWF2ZScsXG4gICAgb25EcmFnT3ZlcjogJ29uZHJhZ292ZXInLFxuICAgIG9uRHJhZ1N0YXJ0OiAnb25kcmFnc3RhcnQnLFxuICAgIG9uRHJvcDogJ29uZHJvcCcsXG4gICAgb25EdXJhdGlvbkNoYW5nZTogJ29uZHVyYXRpb25jaGFuZ2UnLFxuICAgIG9uRW1wdGllZDogJ29uZW1wdGllZCcsXG4gICAgb25FbmQ6ICdvbmVuZCcsXG4gICAgb25FbmRlZDogJ29uZW5kZWQnLFxuICAgIG9uRXJyb3I6ICdvbmVycm9yJyxcbiAgICBvbkZvY3VzOiAnb25mb2N1cycsXG4gICAgb25Gb2N1c0luOiAnb25mb2N1c2luJyxcbiAgICBvbkZvY3VzT3V0OiAnb25mb2N1c291dCcsXG4gICAgb25IYXNoQ2hhbmdlOiAnb25oYXNoY2hhbmdlJyxcbiAgICBvbklucHV0OiAnb25pbnB1dCcsXG4gICAgb25JbnZhbGlkOiAnb25pbnZhbGlkJyxcbiAgICBvbktleURvd246ICdvbmtleWRvd24nLFxuICAgIG9uS2V5UHJlc3M6ICdvbmtleXByZXNzJyxcbiAgICBvbktleVVwOiAnb25rZXl1cCcsXG4gICAgb25Mb2FkOiAnb25sb2FkJyxcbiAgICBvbkxvYWRlZERhdGE6ICdvbmxvYWRlZGRhdGEnLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6ICdvbmxvYWRlZG1ldGFkYXRhJyxcbiAgICBvbkxvYWRTdGFydDogJ29ubG9hZHN0YXJ0JyxcbiAgICBvbk1lc3NhZ2U6ICdvbm1lc3NhZ2UnLFxuICAgIG9uTW91c2VEb3duOiAnb25tb3VzZWRvd24nLFxuICAgIG9uTW91c2VFbnRlcjogJ29ubW91c2VlbnRlcicsXG4gICAgb25Nb3VzZUxlYXZlOiAnb25tb3VzZWxlYXZlJyxcbiAgICBvbk1vdXNlTW92ZTogJ29ubW91c2Vtb3ZlJyxcbiAgICBvbk1vdXNlT3V0OiAnb25tb3VzZW91dCcsXG4gICAgb25Nb3VzZU92ZXI6ICdvbm1vdXNlb3ZlcicsXG4gICAgb25Nb3VzZVVwOiAnb25tb3VzZXVwJyxcbiAgICBvbk1vdXNlV2hlZWw6ICdvbm1vdXNld2hlZWwnLFxuICAgIG9uT2ZmbGluZTogJ29ub2ZmbGluZScsXG4gICAgb25PbmxpbmU6ICdvbm9ubGluZScsXG4gICAgb25QYWdlSGlkZTogJ29ucGFnZWhpZGUnLFxuICAgIG9uUGFnZVNob3c6ICdvbnBhZ2VzaG93JyxcbiAgICBvblBhc3RlOiAnb25wYXN0ZScsXG4gICAgb25QYXVzZTogJ29ucGF1c2UnLFxuICAgIG9uUGxheTogJ29ucGxheScsXG4gICAgb25QbGF5aW5nOiAnb25wbGF5aW5nJyxcbiAgICBvblBvcFN0YXRlOiAnb25wb3BzdGF0ZScsXG4gICAgb25Qcm9ncmVzczogJ29ucHJvZ3Jlc3MnLFxuICAgIG9uUmF0ZUNoYW5nZTogJ29ucmF0ZWNoYW5nZScsXG4gICAgb25SZXBlYXQ6ICdvbnJlcGVhdCcsXG4gICAgb25SZXNldDogJ29ucmVzZXQnLFxuICAgIG9uUmVzaXplOiAnb25yZXNpemUnLFxuICAgIG9uU2Nyb2xsOiAnb25zY3JvbGwnLFxuICAgIG9uU2Vla2VkOiAnb25zZWVrZWQnLFxuICAgIG9uU2Vla2luZzogJ29uc2Vla2luZycsXG4gICAgb25TZWxlY3Q6ICdvbnNlbGVjdCcsXG4gICAgb25TaG93OiAnb25zaG93JyxcbiAgICBvblN0YWxsZWQ6ICdvbnN0YWxsZWQnLFxuICAgIG9uU3RvcmFnZTogJ29uc3RvcmFnZScsXG4gICAgb25TdWJtaXQ6ICdvbnN1Ym1pdCcsXG4gICAgb25TdXNwZW5kOiAnb25zdXNwZW5kJyxcbiAgICBvblRpbWVVcGRhdGU6ICdvbnRpbWV1cGRhdGUnLFxuICAgIG9uVG9nZ2xlOiAnb250b2dnbGUnLFxuICAgIG9uVW5sb2FkOiAnb251bmxvYWQnLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiAnb252b2x1bWVjaGFuZ2UnLFxuICAgIG9uV2FpdGluZzogJ29ud2FpdGluZycsXG4gICAgb25ab29tOiAnb256b29tJyxcbiAgICBvdmVybGluZVBvc2l0aW9uOiAnb3ZlcmxpbmUtcG9zaXRpb24nLFxuICAgIG92ZXJsaW5lVGhpY2tuZXNzOiAnb3ZlcmxpbmUtdGhpY2tuZXNzJyxcbiAgICBwYWludE9yZGVyOiAncGFpbnQtb3JkZXInLFxuICAgIHBhbm9zZTE6ICdwYW5vc2UtMScsXG4gICAgcG9pbnRlckV2ZW50czogJ3BvaW50ZXItZXZlbnRzJyxcbiAgICByZWZlcnJlclBvbGljeTogJ3JlZmVycmVycG9saWN5JyxcbiAgICByZW5kZXJpbmdJbnRlbnQ6ICdyZW5kZXJpbmctaW50ZW50JyxcbiAgICBzaGFwZVJlbmRlcmluZzogJ3NoYXBlLXJlbmRlcmluZycsXG4gICAgc3RvcENvbG9yOiAnc3RvcC1jb2xvcicsXG4gICAgc3RvcE9wYWNpdHk6ICdzdG9wLW9wYWNpdHknLFxuICAgIHN0cmlrZXRocm91Z2hQb3NpdGlvbjogJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nLFxuICAgIHN0cmlrZXRocm91Z2hUaGlja25lc3M6ICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcycsXG4gICAgc3Ryb2tlRGFzaEFycmF5OiAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICAgc3Ryb2tlRGFzaE9mZnNldDogJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgICBzdHJva2VMaW5lQ2FwOiAnc3Ryb2tlLWxpbmVjYXAnLFxuICAgIHN0cm9rZUxpbmVKb2luOiAnc3Ryb2tlLWxpbmVqb2luJyxcbiAgICBzdHJva2VNaXRlckxpbWl0OiAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAgIHN0cm9rZU9wYWNpdHk6ICdzdHJva2Utb3BhY2l0eScsXG4gICAgc3Ryb2tlV2lkdGg6ICdzdHJva2Utd2lkdGgnLFxuICAgIHRhYkluZGV4OiAndGFiaW5kZXgnLFxuICAgIHRleHRBbmNob3I6ICd0ZXh0LWFuY2hvcicsXG4gICAgdGV4dERlY29yYXRpb246ICd0ZXh0LWRlY29yYXRpb24nLFxuICAgIHRleHRSZW5kZXJpbmc6ICd0ZXh0LXJlbmRlcmluZycsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiAndHJhbnNmb3JtLW9yaWdpbicsXG4gICAgdHlwZU9mOiAndHlwZW9mJyxcbiAgICB1bmRlcmxpbmVQb3NpdGlvbjogJ3VuZGVybGluZS1wb3NpdGlvbicsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiAndW5kZXJsaW5lLXRoaWNrbmVzcycsXG4gICAgdW5pY29kZUJpZGk6ICd1bmljb2RlLWJpZGknLFxuICAgIHVuaWNvZGVSYW5nZTogJ3VuaWNvZGUtcmFuZ2UnLFxuICAgIHVuaXRzUGVyRW06ICd1bml0cy1wZXItZW0nLFxuICAgIHZBbHBoYWJldGljOiAndi1hbHBoYWJldGljJyxcbiAgICB2SGFuZ2luZzogJ3YtaGFuZ2luZycsXG4gICAgdklkZW9ncmFwaGljOiAndi1pZGVvZ3JhcGhpYycsXG4gICAgdk1hdGhlbWF0aWNhbDogJ3YtbWF0aGVtYXRpY2FsJyxcbiAgICB2ZWN0b3JFZmZlY3Q6ICd2ZWN0b3ItZWZmZWN0JyxcbiAgICB2ZXJ0QWR2WTogJ3ZlcnQtYWR2LXknLFxuICAgIHZlcnRPcmlnaW5YOiAndmVydC1vcmlnaW4teCcsXG4gICAgdmVydE9yaWdpblk6ICd2ZXJ0LW9yaWdpbi15JyxcbiAgICB3b3JkU3BhY2luZzogJ3dvcmQtc3BhY2luZycsXG4gICAgd3JpdGluZ01vZGU6ICd3cml0aW5nLW1vZGUnLFxuICAgIHhIZWlnaHQ6ICd4LWhlaWdodCcsXG4gICAgLy8gVGhlc2Ugd2VyZSBjYW1lbGNhc2VkIGluIFRpbnkuIE5vdyBsb3dlcmNhc2VkIGluIFNWRyAyXG4gICAgcGxheWJhY2tPcmRlcjogJ3BsYXliYWNrb3JkZXInLFxuICAgIHRpbWVsaW5lQmVnaW46ICd0aW1lbGluZWJlZ2luJ1xuICB9LFxuICB0cmFuc2Zvcm06IGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhYm91dDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIGFjY2VudEhlaWdodDogbnVtYmVyLFxuICAgIGFjY3VtdWxhdGU6IG51bGwsXG4gICAgYWRkaXRpdmU6IG51bGwsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6IG51bGwsXG4gICAgYWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIGFtcGxpdHVkZTogbnVtYmVyLFxuICAgIGFyYWJpY0Zvcm06IG51bGwsXG4gICAgYXNjZW50OiBudW1iZXIsXG4gICAgYXR0cmlidXRlTmFtZTogbnVsbCxcbiAgICBhdHRyaWJ1dGVUeXBlOiBudWxsLFxuICAgIGF6aW11dGg6IG51bWJlcixcbiAgICBiYW5kd2lkdGg6IG51bGwsXG4gICAgYmFzZWxpbmVTaGlmdDogbnVsbCxcbiAgICBiYXNlRnJlcXVlbmN5OiBudWxsLFxuICAgIGJhc2VQcm9maWxlOiBudWxsLFxuICAgIGJib3g6IG51bGwsXG4gICAgYmVnaW46IG51bGwsXG4gICAgYmlhczogbnVtYmVyLFxuICAgIGJ5OiBudWxsLFxuICAgIGNhbGNNb2RlOiBudWxsLFxuICAgIGNhcEhlaWdodDogbnVtYmVyLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY2xpcDogbnVsbCxcbiAgICBjbGlwUGF0aDogbnVsbCxcbiAgICBjbGlwUGF0aFVuaXRzOiBudWxsLFxuICAgIGNsaXBSdWxlOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbjogbnVsbCxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiBudWxsLFxuICAgIGNvbG9yUHJvZmlsZTogbnVsbCxcbiAgICBjb2xvclJlbmRlcmluZzogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGNvbnRlbnRTY3JpcHRUeXBlOiBudWxsLFxuICAgIGNvbnRlbnRTdHlsZVR5cGU6IG51bGwsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgY3Vyc29yOiBudWxsLFxuICAgIGN4OiBudWxsLFxuICAgIGN5OiBudWxsLFxuICAgIGQ6IG51bGwsXG4gICAgZGF0YVR5cGU6IG51bGwsXG4gICAgZGVmYXVsdEFjdGlvbjogbnVsbCxcbiAgICBkZXNjZW50OiBudW1iZXIsXG4gICAgZGlmZnVzZUNvbnN0YW50OiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGRpc3BsYXk6IG51bGwsXG4gICAgZHVyOiBudWxsLFxuICAgIGRpdmlzb3I6IG51bWJlcixcbiAgICBkb21pbmFudEJhc2VsaW5lOiBudWxsLFxuICAgIGRvd25sb2FkOiBib29sZWFuLFxuICAgIGR4OiBudWxsLFxuICAgIGR5OiBudWxsLFxuICAgIGVkZ2VNb2RlOiBudWxsLFxuICAgIGVkaXRhYmxlOiBudWxsLFxuICAgIGVsZXZhdGlvbjogbnVtYmVyLFxuICAgIGVuYWJsZUJhY2tncm91bmQ6IG51bGwsXG4gICAgZW5kOiBudWxsLFxuICAgIGV2ZW50OiBudWxsLFxuICAgIGV4cG9uZW50OiBudW1iZXIsXG4gICAgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDogbnVsbCxcbiAgICBmaWxsOiBudWxsLFxuICAgIGZpbGxPcGFjaXR5OiBudW1iZXIsXG4gICAgZmlsbFJ1bGU6IG51bGwsXG4gICAgZmlsdGVyOiBudWxsLFxuICAgIGZpbHRlclJlczogbnVsbCxcbiAgICBmaWx0ZXJVbml0czogbnVsbCxcbiAgICBmbG9vZENvbG9yOiBudWxsLFxuICAgIGZsb29kT3BhY2l0eTogbnVsbCxcbiAgICBmb2N1c2FibGU6IG51bGwsXG4gICAgZm9jdXNIaWdobGlnaHQ6IG51bGwsXG4gICAgZm9udEZhbWlseTogbnVsbCxcbiAgICBmb250U2l6ZTogbnVsbCxcbiAgICBmb250U2l6ZUFkanVzdDogbnVsbCxcbiAgICBmb250U3RyZXRjaDogbnVsbCxcbiAgICBmb250U3R5bGU6IG51bGwsXG4gICAgZm9udFZhcmlhbnQ6IG51bGwsXG4gICAgZm9udFdlaWdodDogbnVsbCxcbiAgICBmb3JtYXQ6IG51bGwsXG4gICAgZnI6IG51bGwsXG4gICAgZnJvbTogbnVsbCxcbiAgICBmeDogbnVsbCxcbiAgICBmeTogbnVsbCxcbiAgICBnMTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZzI6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGdseXBoTmFtZTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6IG51bGwsXG4gICAgZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiBudWxsLFxuICAgIGdseXBoUmVmOiBudWxsLFxuICAgIGdyYWRpZW50VHJhbnNmb3JtOiBudWxsLFxuICAgIGdyYWRpZW50VW5pdHM6IG51bGwsXG4gICAgaGFuZGxlcjogbnVsbCxcbiAgICBoYW5naW5nOiBudW1iZXIsXG4gICAgaGF0Y2hDb250ZW50VW5pdHM6IG51bGwsXG4gICAgaGF0Y2hVbml0czogbnVsbCxcbiAgICBoZWlnaHQ6IG51bGwsXG4gICAgaHJlZjogbnVsbCxcbiAgICBocmVmTGFuZzogbnVsbCxcbiAgICBob3JpekFkdlg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblk6IG51bWJlcixcbiAgICBpZDogbnVsbCxcbiAgICBpZGVvZ3JhcGhpYzogbnVtYmVyLFxuICAgIGltYWdlUmVuZGVyaW5nOiBudWxsLFxuICAgIGluaXRpYWxWaXNpYmlsaXR5OiBudWxsLFxuICAgIGluOiBudWxsLFxuICAgIGluMjogbnVsbCxcbiAgICBpbnRlcmNlcHQ6IG51bWJlcixcbiAgICBrOiBudW1iZXIsXG4gICAgazE6IG51bWJlcixcbiAgICBrMjogbnVtYmVyLFxuICAgIGszOiBudW1iZXIsXG4gICAgazQ6IG51bWJlcixcbiAgICBrZXJuZWxNYXRyaXg6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBrZXJuZWxVbml0TGVuZ3RoOiBudWxsLFxuICAgIGtleVBvaW50czogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXlTcGxpbmVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtleVRpbWVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtlcm5pbmc6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsZW5ndGhBZGp1c3Q6IG51bGwsXG4gICAgbGV0dGVyU3BhY2luZzogbnVsbCxcbiAgICBsaWdodGluZ0NvbG9yOiBudWxsLFxuICAgIGxpbWl0aW5nQ29uZUFuZ2xlOiBudW1iZXIsXG4gICAgbG9jYWw6IG51bGwsXG4gICAgbWFya2VyRW5kOiBudWxsLFxuICAgIG1hcmtlck1pZDogbnVsbCxcbiAgICBtYXJrZXJTdGFydDogbnVsbCxcbiAgICBtYXJrZXJIZWlnaHQ6IG51bGwsXG4gICAgbWFya2VyVW5pdHM6IG51bGwsXG4gICAgbWFya2VyV2lkdGg6IG51bGwsXG4gICAgbWFzazogbnVsbCxcbiAgICBtYXNrQ29udGVudFVuaXRzOiBudWxsLFxuICAgIG1hc2tVbml0czogbnVsbCxcbiAgICBtYXRoZW1hdGljYWw6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6IG51bGwsXG4gICAgbWVkaWFDb250ZW50RW5jb2RpbmdzOiBudWxsLFxuICAgIG1lZGlhU2l6ZTogbnVtYmVyLFxuICAgIG1lZGlhVGltZTogbnVsbCxcbiAgICBtZXRob2Q6IG51bGwsXG4gICAgbWluOiBudWxsLFxuICAgIG1vZGU6IG51bGwsXG4gICAgbmFtZTogbnVsbCxcbiAgICBuYXZEb3duOiBudWxsLFxuICAgIG5hdkRvd25MZWZ0OiBudWxsLFxuICAgIG5hdkRvd25SaWdodDogbnVsbCxcbiAgICBuYXZMZWZ0OiBudWxsLFxuICAgIG5hdk5leHQ6IG51bGwsXG4gICAgbmF2UHJldjogbnVsbCxcbiAgICBuYXZSaWdodDogbnVsbCxcbiAgICBuYXZVcDogbnVsbCxcbiAgICBuYXZVcExlZnQ6IG51bGwsXG4gICAgbmF2VXBSaWdodDogbnVsbCxcbiAgICBudW1PY3RhdmVzOiBudWxsLFxuICAgIG9ic2VydmVyOiBudWxsLFxuICAgIG9mZnNldDogbnVsbCxcbiAgICBvbkFib3J0OiBudWxsLFxuICAgIG9uQWN0aXZhdGU6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWdpbjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9jdXNJbjogbnVsbCxcbiAgICBvbkZvY3VzT3V0OiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTG9hZDogbnVsbCxcbiAgICBvbkxvYWRlZERhdGE6IG51bGwsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk1vdXNlV2hlZWw6IG51bGwsXG4gICAgb25PZmZsaW5lOiBudWxsLFxuICAgIG9uT25saW5lOiBudWxsLFxuICAgIG9uUGFnZUhpZGU6IG51bGwsXG4gICAgb25QYWdlU2hvdzogbnVsbCxcbiAgICBvblBhc3RlOiBudWxsLFxuICAgIG9uUGF1c2U6IG51bGwsXG4gICAgb25QbGF5OiBudWxsLFxuICAgIG9uUGxheWluZzogbnVsbCxcbiAgICBvblBvcFN0YXRlOiBudWxsLFxuICAgIG9uUHJvZ3Jlc3M6IG51bGwsXG4gICAgb25SYXRlQ2hhbmdlOiBudWxsLFxuICAgIG9uUmVwZWF0OiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TZWVrZWQ6IG51bGwsXG4gICAgb25TZWVraW5nOiBudWxsLFxuICAgIG9uU2VsZWN0OiBudWxsLFxuICAgIG9uU2hvdzogbnVsbCxcbiAgICBvblN0YWxsZWQ6IG51bGwsXG4gICAgb25TdG9yYWdlOiBudWxsLFxuICAgIG9uU3VibWl0OiBudWxsLFxuICAgIG9uU3VzcGVuZDogbnVsbCxcbiAgICBvblRpbWVVcGRhdGU6IG51bGwsXG4gICAgb25Ub2dnbGU6IG51bGwsXG4gICAgb25VbmxvYWQ6IG51bGwsXG4gICAgb25Wb2x1bWVDaGFuZ2U6IG51bGwsXG4gICAgb25XYWl0aW5nOiBudWxsLFxuICAgIG9uWm9vbTogbnVsbCxcbiAgICBvcGFjaXR5OiBudWxsLFxuICAgIG9wZXJhdG9yOiBudWxsLFxuICAgIG9yZGVyOiBudWxsLFxuICAgIG9yaWVudDogbnVsbCxcbiAgICBvcmllbnRhdGlvbjogbnVsbCxcbiAgICBvcmlnaW46IG51bGwsXG4gICAgb3ZlcmZsb3c6IG51bGwsXG4gICAgb3ZlcmxheTogbnVsbCxcbiAgICBvdmVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6IG51bWJlcixcbiAgICBwYWludE9yZGVyOiBudWxsLFxuICAgIHBhbm9zZTE6IG51bGwsXG4gICAgcGF0aDogbnVsbCxcbiAgICBwYXRoTGVuZ3RoOiBudW1iZXIsXG4gICAgcGF0dGVybkNvbnRlbnRVbml0czogbnVsbCxcbiAgICBwYXR0ZXJuVHJhbnNmb3JtOiBudWxsLFxuICAgIHBhdHRlcm5Vbml0czogbnVsbCxcbiAgICBwaGFzZTogbnVsbCxcbiAgICBwaW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBwaXRjaDogbnVsbCxcbiAgICBwbGF5YmFja09yZGVyOiBudWxsLFxuICAgIHBvaW50ZXJFdmVudHM6IG51bGwsXG4gICAgcG9pbnRzOiBudWxsLFxuICAgIHBvaW50c0F0WDogbnVtYmVyLFxuICAgIHBvaW50c0F0WTogbnVtYmVyLFxuICAgIHBvaW50c0F0WjogbnVtYmVyLFxuICAgIHByZXNlcnZlQWxwaGE6IG51bGwsXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbzogbnVsbCxcbiAgICBwcmltaXRpdmVVbml0czogbnVsbCxcbiAgICBwcm9wYWdhdGU6IG51bGwsXG4gICAgcHJvcGVydHk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByOiBudWxsLFxuICAgIHJhZGl1czogbnVsbCxcbiAgICByZWZlcnJlclBvbGljeTogbnVsbCxcbiAgICByZWZYOiBudWxsLFxuICAgIHJlZlk6IG51bGwsXG4gICAgcmVsOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmV2OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVuZGVyaW5nSW50ZW50OiBudWxsLFxuICAgIHJlcGVhdENvdW50OiBudWxsLFxuICAgIHJlcGVhdER1cjogbnVsbCxcbiAgICByZXF1aXJlZEV4dGVuc2lvbnM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZlYXR1cmVzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGb250czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRm9ybWF0czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlc291cmNlOiBudWxsLFxuICAgIHJlc3RhcnQ6IG51bGwsXG4gICAgcmVzdWx0OiBudWxsLFxuICAgIHJvdGF0ZTogbnVsbCxcbiAgICByeDogbnVsbCxcbiAgICByeTogbnVsbCxcbiAgICBzY2FsZTogbnVsbCxcbiAgICBzZWVkOiBudWxsLFxuICAgIHNoYXBlUmVuZGVyaW5nOiBudWxsLFxuICAgIHNpZGU6IG51bGwsXG4gICAgc2xvcGU6IG51bGwsXG4gICAgc25hcHNob3RUaW1lOiBudWxsLFxuICAgIHNwZWN1bGFyQ29uc3RhbnQ6IG51bWJlcixcbiAgICBzcGVjdWxhckV4cG9uZW50OiBudW1iZXIsXG4gICAgc3ByZWFkTWV0aG9kOiBudWxsLFxuICAgIHNwYWNpbmc6IG51bGwsXG4gICAgc3RhcnRPZmZzZXQ6IG51bGwsXG4gICAgc3RkRGV2aWF0aW9uOiBudWxsLFxuICAgIHN0ZW1oOiBudWxsLFxuICAgIHN0ZW12OiBudWxsLFxuICAgIHN0aXRjaFRpbGVzOiBudWxsLFxuICAgIHN0b3BDb2xvcjogbnVsbCxcbiAgICBzdG9wT3BhY2l0eTogbnVsbCxcbiAgICBzdHJpa2V0aHJvdWdoUG9zaXRpb246IG51bWJlcixcbiAgICBzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgc3RyaW5nOiBudWxsLFxuICAgIHN0cm9rZTogbnVsbCxcbiAgICBzdHJva2VEYXNoQXJyYXk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiBudWxsLFxuICAgIHN0cm9rZUxpbmVDYXA6IG51bGwsXG4gICAgc3Ryb2tlTGluZUpvaW46IG51bGwsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogbnVtYmVyLFxuICAgIHN0cm9rZU9wYWNpdHk6IG51bWJlcixcbiAgICBzdHJva2VXaWR0aDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBzdXJmYWNlU2NhbGU6IG51bWJlcixcbiAgICBzeW5jQmVoYXZpb3I6IG51bGwsXG4gICAgc3luY0JlaGF2aW9yRGVmYXVsdDogbnVsbCxcbiAgICBzeW5jTWFzdGVyOiBudWxsLFxuICAgIHN5bmNUb2xlcmFuY2U6IG51bGwsXG4gICAgc3luY1RvbGVyYW5jZURlZmF1bHQ6IG51bGwsXG4gICAgc3lzdGVtTGFuZ3VhZ2U6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICAgIHRhYmxlVmFsdWVzOiBudWxsLFxuICAgIHRhcmdldDogbnVsbCxcbiAgICB0YXJnZXRYOiBudW1iZXIsXG4gICAgdGFyZ2V0WTogbnVtYmVyLFxuICAgIHRleHRBbmNob3I6IG51bGwsXG4gICAgdGV4dERlY29yYXRpb246IG51bGwsXG4gICAgdGV4dFJlbmRlcmluZzogbnVsbCxcbiAgICB0ZXh0TGVuZ3RoOiBudWxsLFxuICAgIHRpbWVsaW5lQmVnaW46IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNmb3JtQmVoYXZpb3I6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB0eXBlT2Y6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0bzogbnVsbCxcbiAgICB0cmFuc2Zvcm06IG51bGwsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiBudWxsLFxuICAgIHUxOiBudWxsLFxuICAgIHUyOiBudWxsLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgdW5pY29kZTogbnVsbCxcbiAgICB1bmljb2RlQmlkaTogbnVsbCxcbiAgICB1bmljb2RlUmFuZ2U6IG51bGwsXG4gICAgdW5pdHNQZXJFbTogbnVtYmVyLFxuICAgIHZhbHVlczogbnVsbCxcbiAgICB2QWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIHZNYXRoZW1hdGljYWw6IG51bWJlcixcbiAgICB2ZWN0b3JFZmZlY3Q6IG51bGwsXG4gICAgdkhhbmdpbmc6IG51bWJlcixcbiAgICB2SWRlb2dyYXBoaWM6IG51bWJlcixcbiAgICB2ZXJzaW9uOiBudWxsLFxuICAgIHZlcnRBZHZZOiBudW1iZXIsXG4gICAgdmVydE9yaWdpblg6IG51bWJlcixcbiAgICB2ZXJ0T3JpZ2luWTogbnVtYmVyLFxuICAgIHZpZXdCb3g6IG51bGwsXG4gICAgdmlld1RhcmdldDogbnVsbCxcbiAgICB2aXNpYmlsaXR5OiBudWxsLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHdpZHRoczogbnVsbCxcbiAgICB3b3JkU3BhY2luZzogbnVsbCxcbiAgICB3cml0aW5nTW9kZTogbnVsbCxcbiAgICB4OiBudWxsLFxuICAgIHgxOiBudWxsLFxuICAgIHgyOiBudWxsLFxuICAgIHhDaGFubmVsU2VsZWN0b3I6IG51bGwsXG4gICAgeEhlaWdodDogbnVtYmVyLFxuICAgIHk6IG51bGwsXG4gICAgeTE6IG51bGwsXG4gICAgeTI6IG51bGwsXG4gICAgeUNoYW5uZWxTZWxlY3RvcjogbnVsbCxcbiAgICB6OiBudWxsLFxuICAgIHpvb21BbmRQYW46IG51bGxcbiAgfVxufSlcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL25vcm1hbGl6ZS5qcydcbmltcG9ydCB7RGVmaW5lZEluZm99IGZyb20gJy4vdXRpbC9kZWZpbmVkLWluZm8uanMnXG5pbXBvcnQge0luZm99IGZyb20gJy4vdXRpbC9pbmZvLmpzJ1xuXG5jb25zdCB2YWxpZCA9IC9eZGF0YVstXFx3LjpdKyQvaVxuY29uc3QgZGFzaCA9IC8tW2Etel0vZ1xuY29uc3QgY2FwID0gL1tBLVpdL2dcblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtJbmZvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZChzY2hlbWEsIHZhbHVlKSB7XG4gIGNvbnN0IG5vcm1hbCA9IG5vcm1hbGl6ZSh2YWx1ZSlcbiAgbGV0IHByb3AgPSB2YWx1ZVxuICBsZXQgVHlwZSA9IEluZm9cblxuICBpZiAobm9ybWFsIGluIHNjaGVtYS5ub3JtYWwpIHtcbiAgICByZXR1cm4gc2NoZW1hLnByb3BlcnR5W3NjaGVtYS5ub3JtYWxbbm9ybWFsXV1cbiAgfVxuXG4gIGlmIChub3JtYWwubGVuZ3RoID4gNCAmJiBub3JtYWwuc2xpY2UoMCwgNCkgPT09ICdkYXRhJyAmJiB2YWxpZC50ZXN0KHZhbHVlKSkge1xuICAgIC8vIEF0dHJpYnV0ZSBvciBwcm9wZXJ0eS5cbiAgICBpZiAodmFsdWUuY2hhckF0KDQpID09PSAnLScpIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhIHByb3BlcnR5LlxuICAgICAgY29uc3QgcmVzdCA9IHZhbHVlLnNsaWNlKDUpLnJlcGxhY2UoZGFzaCwgY2FtZWxjYXNlKVxuICAgICAgcHJvcCA9ICdkYXRhJyArIHJlc3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyByZXN0LnNsaWNlKDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhbiBhdHRyaWJ1dGUuXG4gICAgICBjb25zdCByZXN0ID0gdmFsdWUuc2xpY2UoNClcblxuICAgICAgaWYgKCFkYXNoLnRlc3QocmVzdCkpIHtcbiAgICAgICAgbGV0IGRhc2hlcyA9IHJlc3QucmVwbGFjZShjYXAsIGtlYmFiKVxuXG4gICAgICAgIGlmIChkYXNoZXMuY2hhckF0KDApICE9PSAnLScpIHtcbiAgICAgICAgICBkYXNoZXMgPSAnLScgKyBkYXNoZXNcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlID0gJ2RhdGEnICsgZGFzaGVzXG4gICAgICB9XG4gICAgfVxuXG4gICAgVHlwZSA9IERlZmluZWRJbmZvXG4gIH1cblxuICByZXR1cm4gbmV3IFR5cGUocHJvcCwgdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBrZWJhYigkMCkge1xuICByZXR1cm4gJy0nICsgJDAudG9Mb3dlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdXRpbC9pbmZvLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bWVyZ2V9IGZyb20gJy4vbGliL3V0aWwvbWVyZ2UuanMnXG5pbXBvcnQge3hsaW5rfSBmcm9tICcuL2xpYi94bGluay5qcydcbmltcG9ydCB7eG1sfSBmcm9tICcuL2xpYi94bWwuanMnXG5pbXBvcnQge3htbG5zfSBmcm9tICcuL2xpYi94bWxucy5qcydcbmltcG9ydCB7YXJpYX0gZnJvbSAnLi9saWIvYXJpYS5qcydcbmltcG9ydCB7aHRtbCBhcyBodG1sQmFzZX0gZnJvbSAnLi9saWIvaHRtbC5qcydcbmltcG9ydCB7c3ZnIGFzIHN2Z0Jhc2V9IGZyb20gJy4vbGliL3N2Zy5qcydcblxuZXhwb3J0IHtmaW5kfSBmcm9tICcuL2xpYi9maW5kLmpzJ1xuZXhwb3J0IHtoYXN0VG9SZWFjdH0gZnJvbSAnLi9saWIvaGFzdC10by1yZWFjdC5qcydcbmV4cG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL2xpYi9ub3JtYWxpemUuanMnXG5leHBvcnQgY29uc3QgaHRtbCA9IG1lcmdlKFt4bWwsIHhsaW5rLCB4bWxucywgYXJpYSwgaHRtbEJhc2VdLCAnaHRtbCcpXG5leHBvcnQgY29uc3Qgc3ZnID0gbWVyZ2UoW3htbCwgeGxpbmssIHhtbG5zLCBhcmlhLCBzdmdCYXNlXSwgJ3N2ZycpXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkTGVmdD10cnVlXVxuICogICBXaGV0aGVyIHRvIHBhZCBhIHNwYWNlIGJlZm9yZSBhIHRva2VuLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkUmlnaHQ9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gcGFkIGEgc3BhY2UgYWZ0ZXIgYSB0b2tlbi5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPcHRpb25zfSBTdHJpbmdpZnlPcHRpb25zXG4gKiAgIFBsZWFzZSB1c2UgYFN0cmluZ2lmeU9wdGlvbnNgIGluc3RlYWQuXG4gKi9cblxuLyoqXG4gKiBQYXJzZSBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59XG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB0b2tlbnMgPSBbXVxuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJylcbiAgbGV0IGluZGV4ID0gaW5wdXQuaW5kZXhPZignLCcpXG4gIGxldCBzdGFydCA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZW5kID0gZmFsc2VcblxuICB3aGlsZSAoIWVuZCkge1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoXG4gICAgICBlbmQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBpbnB1dC5zbGljZShzdGFydCwgaW5kZXgpLnRyaW0oKVxuXG4gICAgaWYgKHRva2VuIHx8ICFlbmQpIHtcbiAgICAgIHRva2Vucy5wdXNoKHRva2VuKVxuICAgIH1cblxuICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgaW5kZXggPSBpbnB1dC5pbmRleE9mKCcsJywgc3RhcnQpXG4gIH1cblxuICByZXR1cm4gdG9rZW5zXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGFycmF5IG9mIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcywgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICAvLyBFbnN1cmUgdGhlIGxhc3QgZW1wdHkgZW50cnkgaXMgc2Vlbi5cbiAgY29uc3QgaW5wdXQgPSB2YWx1ZXNbdmFsdWVzLmxlbmd0aCAtIDFdID09PSAnJyA/IFsuLi52YWx1ZXMsICcnXSA6IHZhbHVlc1xuXG4gIHJldHVybiBpbnB1dFxuICAgIC5qb2luKFxuICAgICAgKHNldHRpbmdzLnBhZFJpZ2h0ID8gJyAnIDogJycpICtcbiAgICAgICAgJywnICtcbiAgICAgICAgKHNldHRpbmdzLnBhZExlZnQgPT09IGZhbHNlID8gJycgOiAnICcpXG4gICAgKVxuICAgIC50cmltKClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFNpbXBsZVNlbGVjdG9yXG4gKiAgIFNlbGVjdG9yIHR5cGUuXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gRGVmYXVsdFRhZ05hbWVcbiAqICAgRGVmYXVsdCB0YWcgbmFtZS5cbiAqIEB0eXBlZGVmIHsoXG4gKiAgIFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgJydcbiAqICAgICA/IERlZmF1bHRUYWdOYW1lXG4gKiAgICAgOiBTaW1wbGVTZWxlY3RvciBleHRlbmRzIGAke2luZmVyIFRhZ05hbWV9LiR7aW5mZXIgUmVzdH1gXG4gKiAgICAgPyBFeHRyYWN0VGFnTmFtZTxUYWdOYW1lLCBEZWZhdWx0VGFnTmFtZT5cbiAqICAgICA6IFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgYCR7aW5mZXIgVGFnTmFtZX0jJHtpbmZlciBSZXN0fWBcbiAqICAgICA/IEV4dHJhY3RUYWdOYW1lPFRhZ05hbWUsIERlZmF1bHRUYWdOYW1lPlxuICogICAgIDogU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyBzdHJpbmdcbiAqICAgICA/IFNpbXBsZVNlbGVjdG9yXG4gKiAgICAgOiBEZWZhdWx0VGFnTmFtZVxuICogKX0gRXh0cmFjdFRhZ05hbWVcbiAqICAgRXh0cmFjdCB0YWcgbmFtZSBmcm9tIGEgc2ltcGxlIHNlbGVjdG9yLlxuICovXG5cbmNvbnN0IHNlYXJjaCA9IC9bIy5dL2dcblxuLyoqXG4gKiBDcmVhdGUgYSBoYXN0IGVsZW1lbnQgZnJvbSBhIHNpbXBsZSBDU1Mgc2VsZWN0b3IuXG4gKlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFNlbGVjdG9yXG4gKiAgIFR5cGUgb2Ygc2VsZWN0b3IuXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gW0RlZmF1bHRUYWdOYW1lPSdkaXYnXVxuICogICBUeXBlIG9mIGRlZmF1bHQgdGFnIG5hbWUgKGRlZmF1bHQ6IGAnZGl2J2ApLlxuICogQHBhcmFtIHtTZWxlY3RvciB8IG51bGwgfCB1bmRlZmluZWR9IFtzZWxlY3Rvcl1cbiAqICAgU2ltcGxlIENTUyBzZWxlY3RvciAob3B0aW9uYWwpLlxuICpcbiAqICAgQ2FuIGNvbnRhaW4gYSB0YWcgbmFtZSAoYGZvb2ApLCBjbGFzc2VzIChgLmJhcmApLCBhbmQgYW4gSUQgKGAjYmF6YCkuXG4gKiAgIE11bHRpcGxlIGNsYXNzZXMgYXJlIGFsbG93ZWQuXG4gKiAgIFVzZXMgdGhlIGxhc3QgSUQgaWYgbXVsdGlwbGUgSURzIGFyZSBmb3VuZC5cbiAqIEBwYXJhbSB7RGVmYXVsdFRhZ05hbWUgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGVmYXVsdFRhZ05hbWU9J2RpdiddXG4gKiAgIFRhZyBuYW1lIHRvIHVzZSBpZiBgc2VsZWN0b3JgIGRvZXMgbm90IHNwZWNpZnkgb25lIChkZWZhdWx0OiBgJ2RpdidgKS5cbiAqIEByZXR1cm5zIHtFbGVtZW50ICYge3RhZ05hbWU6IEV4dHJhY3RUYWdOYW1lPFNlbGVjdG9yLCBEZWZhdWx0VGFnTmFtZT59fVxuICogICBCdWlsdCBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTZWxlY3RvcihzZWxlY3RvciwgZGVmYXVsdFRhZ05hbWUpIHtcbiAgY29uc3QgdmFsdWUgPSBzZWxlY3RvciB8fCAnJ1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BzID0ge31cbiAgbGV0IHN0YXJ0ID0gMFxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHByZXZpb3VzXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdGFnTmFtZVxuXG4gIHdoaWxlIChzdGFydCA8IHZhbHVlLmxlbmd0aCkge1xuICAgIHNlYXJjaC5sYXN0SW5kZXggPSBzdGFydFxuICAgIGNvbnN0IG1hdGNoID0gc2VhcmNoLmV4ZWModmFsdWUpXG4gICAgY29uc3Qgc3VidmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydCwgbWF0Y2ggPyBtYXRjaC5pbmRleCA6IHZhbHVlLmxlbmd0aClcblxuICAgIGlmIChzdWJ2YWx1ZSkge1xuICAgICAgaWYgKCFwcmV2aW91cykge1xuICAgICAgICB0YWdOYW1lID0gc3VidmFsdWVcbiAgICAgIH0gZWxzZSBpZiAocHJldmlvdXMgPT09ICcjJykge1xuICAgICAgICBwcm9wcy5pZCA9IHN1YnZhbHVlXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuY2xhc3NOYW1lKSkge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUucHVzaChzdWJ2YWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLmNsYXNzTmFtZSA9IFtzdWJ2YWx1ZV1cbiAgICAgIH1cblxuICAgICAgc3RhcnQgKz0gc3VidmFsdWUubGVuZ3RoXG4gICAgfVxuXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICBwcmV2aW91cyA9IG1hdGNoWzBdXG4gICAgICBzdGFydCsrXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGFnIG5hbWUgaXMgcGFyc2VkLlxuICAgIHRhZ05hbWU6IHRhZ05hbWUgfHwgZGVmYXVsdFRhZ05hbWUgfHwgJ2RpdicsXG4gICAgcHJvcGVydGllczogcHJvcHMsXG4gICAgY2hpbGRyZW46IFtdXG4gIH1cbn1cbiIsICIvKipcbiAqIFBhcnNlIHNwYWNlLXNlcGFyYXRlZCB0b2tlbnMgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fVxuICogICBMaXN0IG9mIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIGNvbnN0IGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8ICcnKS50cmltKClcbiAgcmV0dXJuIGlucHV0ID8gaW5wdXQuc3BsaXQoL1sgXFx0XFxuXFxyXFxmXSsvZykgOiBbXVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBzdHJpbmdzIGFzIHNwYWNlIHNlcGFyYXRlZC10b2tlbnMuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmd8bnVtYmVyPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMpIHtcbiAgcmV0dXJuIHZhbHVlcy5qb2luKCcgJykudHJpbSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290Q29udGVudH0gUm9vdENvbnRlbnRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtFbGVtZW50IHwgUm9vdH0gUmVzdWx0XG4gKiAgIFJlc3VsdCBmcm9tIGEgYGhgIChvciBgc2ApIGNhbGwuXG4gKlxuICogQHR5cGVkZWYge251bWJlciB8IHN0cmluZ30gU3R5bGVWYWx1ZVxuICogICBWYWx1ZSBmb3IgYSBDU1Mgc3R5bGUgZmllbGQuXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgU3R5bGVWYWx1ZT59IFN0eWxlXG4gKiAgIFN1cHBvcnRlZCB2YWx1ZSBvZiBhIGBzdHlsZWAgcHJvcC5cbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gUHJpbWl0aXZlVmFsdWVcbiAqICAgUHJpbWl0aXZlIHByb3BlcnR5IHZhbHVlLlxuICogQHR5cGVkZWYge0FycmF5PG51bWJlciB8IHN0cmluZz59IEFycmF5VmFsdWVcbiAqICAgTGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgZm9yIHNwYWNlLSBvciBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzIChzdWNoIGFzIGBjbGFzc05hbWVgKS5cbiAqIEB0eXBlZGVmIHtBcnJheVZhbHVlIHwgUHJpbWl0aXZlVmFsdWV9IFByb3BlcnR5VmFsdWVcbiAqICAgUHJpbWl0aXZlIHZhbHVlIG9yIGxpc3QgdmFsdWUuXG4gKiBAdHlwZWRlZiB7e1twcm9wZXJ0eTogc3RyaW5nXTogUHJvcGVydHlWYWx1ZSB8IFN0eWxlfX0gUHJvcGVydGllc1xuICogICBBY2NlcHRhYmxlIHZhbHVlIGZvciBlbGVtZW50IHByb3BlcnRpZXMuXG4gKlxuICogQHR5cGVkZWYge251bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFByaW1pdGl2ZUNoaWxkXG4gKiAgIFByaW1pdGl2ZSBjaGlsZHJlbiwgZWl0aGVyIGlnbm9yZWQgKG51bGxpc2gpLCBvciB0dXJuZWQgaW50byB0ZXh0IG5vZGVzLlxuICogQHR5cGVkZWYge0FycmF5PEFycmF5Q2hpbGROZXN0ZWQgfCBOb2RlcyB8IFByaW1pdGl2ZUNoaWxkPn0gQXJyYXlDaGlsZFxuICogICBMaXN0IG9mIGNoaWxkcmVuLlxuICogQHR5cGVkZWYge0FycmF5PE5vZGVzIHwgUHJpbWl0aXZlQ2hpbGQ+fSBBcnJheUNoaWxkTmVzdGVkXG4gKiAgIExpc3Qgb2YgY2hpbGRyZW4gKGRlZXApLlxuICogQHR5cGVkZWYge0FycmF5Q2hpbGQgfCBOb2RlcyB8IFByaW1pdGl2ZUNoaWxkfSBDaGlsZFxuICogICBBY2NlcHRhYmxlIGNoaWxkIHZhbHVlLlxuICovXG5cbmltcG9ydCB7cGFyc2UgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtwYXJzZVNlbGVjdG9yfSBmcm9tICdoYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3InXG5pbXBvcnQge2ZpbmQsIG5vcm1hbGl6ZX0gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge3BhcnNlIGFzIHNwYWNlc30gZnJvbSAnc3BhY2Utc2VwYXJhdGVkLXRva2VucydcblxuY29uc3QgYnV0dG9uVHlwZXMgPSBuZXcgU2V0KFsnYnV0dG9uJywgJ21lbnUnLCAncmVzZXQnLCAnc3VibWl0J10pXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWEgdG8gdXNlLlxuICogQHBhcmFtIHtzdHJpbmd9IGRlZmF1bHRUYWdOYW1lXG4gKiAgIERlZmF1bHQgdGFnIG5hbWUuXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9IFtjYXNlU2Vuc2l0aXZlXVxuICogICBDYXNlLXNlbnNpdGl2ZSB0YWcgbmFtZXMgKGRlZmF1bHQ6IGB1bmRlZmluZWRgKS5cbiAqIEByZXR1cm5zXG4gKiAgIGBoYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUgoc2NoZW1hLCBkZWZhdWx0VGFnTmFtZSwgY2FzZVNlbnNpdGl2ZSkge1xuICBjb25zdCBhZGp1c3QgPSBjYXNlU2Vuc2l0aXZlICYmIGNyZWF0ZUFkanVzdE1hcChjYXNlU2Vuc2l0aXZlKVxuXG4gIC8qKlxuICAgKiBIeXBlcnNjcmlwdCBjb21wYXRpYmxlIERTTCBmb3IgY3JlYXRpbmcgdmlydHVhbCBoYXN0IHRyZWVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqIEByZXR1cm5zIHtSb290fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7UHJvcGVydGllc30gcHJvcGVydGllc1xuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7RWxlbWVudH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7RWxlbWVudH1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gICAqICAgU2VsZWN0b3IuXG4gICAqIEBwYXJhbSB7Q2hpbGQgfCBQcm9wZXJ0aWVzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Byb3BlcnRpZXNdXG4gICAqICAgUHJvcGVydGllcyAob3IgZmlyc3QgY2hpbGQpIChkZWZhdWx0OiBgdW5kZWZpbmVkYCkuXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqICAgQ2hpbGRyZW4uXG4gICAqIEByZXR1cm5zIHtSZXN1bHR9XG4gICAqICAgUmVzdWx0LlxuICAgKi9cbiAgZnVuY3Rpb24gaChzZWxlY3RvciwgcHJvcGVydGllcywgLi4uY2hpbGRyZW4pIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7UmVzdWx0fSAqL1xuICAgIGxldCBub2RlXG5cbiAgICBpZiAoc2VsZWN0b3IgPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RvciA9PT0gbnVsbCkge1xuICAgICAgbm9kZSA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBbXX1cbiAgICAgIC8vIFByb3BlcnRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHJvb3RzLlxuICAgICAgY29uc3QgY2hpbGQgPSAvKiogQHR5cGUge0NoaWxkfSAqLyAocHJvcGVydGllcylcbiAgICAgIGNoaWxkcmVuLnVuc2hpZnQoY2hpbGQpXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSBwYXJzZVNlbGVjdG9yKHNlbGVjdG9yLCBkZWZhdWx0VGFnTmFtZSlcbiAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgbmFtZS5cbiAgICAgIG5vZGUudGFnTmFtZSA9IG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICBpZiAoYWRqdXN0ICYmIG93bi5jYWxsKGFkanVzdCwgbm9kZS50YWdOYW1lKSkge1xuICAgICAgICBub2RlLnRhZ05hbWUgPSBhZGp1c3Rbbm9kZS50YWdOYW1lXVxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgcHJvcHMuXG4gICAgICBpZiAoaXNQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIG5vZGUudGFnTmFtZSkpIHtcbiAgICAgICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgICAgIGxldCBrZXlcblxuICAgICAgICBmb3IgKGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgaWYgKG93bi5jYWxsKHByb3BlcnRpZXMsIGtleSkpIHtcbiAgICAgICAgICAgIGFkZFByb3BlcnR5KHNjaGVtYSwgbm9kZS5wcm9wZXJ0aWVzLCBrZXksIHByb3BlcnRpZXNba2V5XSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkcmVuLnVuc2hpZnQocHJvcGVydGllcylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgY2hpbGRyZW4uXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGFkZENoaWxkKG5vZGUuY2hpbGRyZW4sIGNoaWxkcmVuW2luZGV4XSlcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnZWxlbWVudCcgJiYgbm9kZS50YWdOYW1lID09PSAndGVtcGxhdGUnKSB7XG4gICAgICBub2RlLmNvbnRlbnQgPSB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogbm9kZS5jaGlsZHJlbn1cbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBbXVxuICAgIH1cblxuICAgIHJldHVybiBub2RlXG4gIH1cblxuICByZXR1cm4gaFxufVxuXG4vKipcbiAqIENoZWNrIGlmIHNvbWV0aGluZyBpcyBwcm9wZXJ0aWVzIG9yIGEgY2hpbGQuXG4gKlxuICogQHBhcmFtIHtDaGlsZCB8IFByb3BlcnRpZXN9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgVGFnIG5hbWUuXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgUHJvcGVydGllc31cbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIGEgcHJvcGVydGllcyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvcGVydGllcyh2YWx1ZSwgbmFtZSkge1xuICBpZiAoXG4gICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fFxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG5hbWUgPT09ICdpbnB1dCcgfHwgIXZhbHVlLnR5cGUgfHwgdHlwZW9mIHZhbHVlLnR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICgnY2hpbGRyZW4nIGluIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAobmFtZSA9PT0gJ2J1dHRvbicpIHtcbiAgICByZXR1cm4gYnV0dG9uVHlwZXMuaGFzKHZhbHVlLnR5cGUudG9Mb3dlckNhc2UoKSlcbiAgfVxuXG4gIHJldHVybiAhKCd2YWx1ZScgaW4gdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWEuXG4gKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnRpZXNcbiAqICAgUHJvcGVydGllcyBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIFByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge1Byb3BlcnR5VmFsdWUgfCBTdHlsZX0gdmFsdWVcbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhZGRQcm9wZXJ0eShzY2hlbWEsIHByb3BlcnRpZXMsIGtleSwgdmFsdWUpIHtcbiAgY29uc3QgaW5mbyA9IGZpbmQoc2NoZW1hLCBrZXkpXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7UHJvcGVydHlWYWx1ZX0gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIC8vIElnbm9yZSBudWxsaXNoIGFuZCBOYU4gdmFsdWVzLlxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuXG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAvLyBJZ25vcmUgTmFOLlxuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSByZXR1cm5cblxuICAgIHJlc3VsdCA9IHZhbHVlXG4gIH1cbiAgLy8gQm9vbGVhbnMuXG4gIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmVzdWx0ID0gdmFsdWVcbiAgfVxuICAvLyBIYW5kbGUgbGlzdCB2YWx1ZXMuXG4gIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoaW5mby5zcGFjZVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gc3BhY2VzKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gY29tbWFzKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYU9yU3BhY2VTZXBhcmF0ZWQpIHtcbiAgICAgIHJlc3VsdCA9IHNwYWNlcyhjb21tYXModmFsdWUpLmpvaW4oJyAnKSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gcGFyc2VQcmltaXRpdmUoaW5mbywgaW5mby5wcm9wZXJ0eSwgdmFsdWUpXG4gICAgfVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmVzdWx0ID0gdmFsdWUuY29uY2F0KClcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBpbmZvLnByb3BlcnR5ID09PSAnc3R5bGUnID8gc3R5bGUodmFsdWUpIDogU3RyaW5nKHZhbHVlKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgIC8qKiBAdHlwZSB7QXJyYXk8bnVtYmVyIHwgc3RyaW5nPn0gKi9cbiAgICBjb25zdCBmaW5hbFJlc3VsdCA9IFtdXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgIC8vIEFzc3VtZSBubyBib29sZWFucyBpbiBhcnJheS5cbiAgICAgIGNvbnN0IHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXIgfCBzdHJpbmd9ICovIChcbiAgICAgICAgcGFyc2VQcmltaXRpdmUoaW5mbywgaW5mby5wcm9wZXJ0eSwgcmVzdWx0W2luZGV4XSlcbiAgICAgIClcbiAgICAgIGZpbmFsUmVzdWx0W2luZGV4XSA9IHZhbHVlXG4gICAgfVxuXG4gICAgcmVzdWx0ID0gZmluYWxSZXN1bHRcbiAgfVxuXG4gIC8vIENsYXNzIG5hbWVzICh3aGljaCBjYW4gYmUgYWRkZWQgYm90aCBvbiB0aGUgYHNlbGVjdG9yYCBhbmQgaGVyZSkuXG4gIGlmIChpbmZvLnByb3BlcnR5ID09PSAnY2xhc3NOYW1lJyAmJiBBcnJheS5pc0FycmF5KHByb3BlcnRpZXMuY2xhc3NOYW1lKSkge1xuICAgIC8vIEFzc3VtZSBubyBib29sZWFucyBpbiBgY2xhc3NOYW1lYC5cbiAgICBjb25zdCB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyIHwgc3RyaW5nfSAqLyAocmVzdWx0KVxuICAgIHJlc3VsdCA9IHByb3BlcnRpZXMuY2xhc3NOYW1lLmNvbmNhdCh2YWx1ZSlcbiAgfVxuXG4gIHByb3BlcnRpZXNbaW5mby5wcm9wZXJ0eV0gPSByZXN1bHRcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50Pn0gbm9kZXNcbiAqICAgQ2hpbGRyZW4uXG4gKiBAcGFyYW0ge0NoaWxkfSB2YWx1ZVxuICogICBDaGlsZC5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFkZENoaWxkKG5vZGVzLCB2YWx1ZSkge1xuICBsZXQgaW5kZXggPSAtMVxuXG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgLy8gRW1wdHkuXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgbm9kZXMucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogU3RyaW5nKHZhbHVlKX0pXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICB3aGlsZSAoKytpbmRleCA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgYWRkQ2hpbGQobm9kZXMsIHZhbHVlW2luZGV4XSlcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gdmFsdWUpIHtcbiAgICBpZiAodmFsdWUudHlwZSA9PT0gJ3Jvb3QnKSB7XG4gICAgICBhZGRDaGlsZChub2RlcywgdmFsdWUuY2hpbGRyZW4pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVzLnB1c2godmFsdWUpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm9kZSwgbm9kZXMsIG9yIHN0cmluZywgZ290IGAnICsgdmFsdWUgKyAnYCcpXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhIHNpbmdsZSBwcmltaXRpdmVzLlxuICpcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogICBQcm9wZXJ0eSBpbmZvcm1hdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge1ByaW1pdGl2ZVZhbHVlfSB2YWx1ZVxuICogICBQcm9wZXJ0eSB2YWx1ZS5cbiAqIEByZXR1cm5zIHtQcmltaXRpdmVWYWx1ZX1cbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUHJpbWl0aXZlKGluZm8sIG5hbWUsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGluZm8ubnVtYmVyICYmIHZhbHVlICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgKGluZm8uYm9vbGVhbiB8fCBpbmZvLm92ZXJsb2FkZWRCb29sZWFuKSAmJlxuICAgICAgKHZhbHVlID09PSAnJyB8fCBub3JtYWxpemUodmFsdWUpID09PSBub3JtYWxpemUobmFtZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGBzdHlsZWAgb2JqZWN0IGFzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7U3R5bGV9IHZhbHVlXG4gKiAgIFN0eWxlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENTUyBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHN0eWxlKHZhbHVlKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBrZXlcblxuICBmb3IgKGtleSBpbiB2YWx1ZSkge1xuICAgIGlmIChvd24uY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgcmVzdWx0LnB1c2goW2tleSwgdmFsdWVba2V5XV0uam9pbignOiAnKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0LmpvaW4oJzsgJylcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtYXAgdG8gYWRqdXN0IGNhc2luZy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHZhbHVlc1xuICogICBMaXN0IG9mIHByb3Blcmx5IGNhc2VkIGtleXMuXG4gKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqICAgTWFwIG9mIGxvd2VyY2FzZSBrZXlzIHRvIHVwcGVyY2FzZSBrZXlzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVBZGp1c3RNYXAodmFsdWVzKSB7XG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICByZXN1bHRbdmFsdWVzW2luZGV4XS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlc1tpbmRleF1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiIsICJleHBvcnQgY29uc3Qgc3ZnQ2FzZVNlbnNpdGl2ZVRhZ05hbWVzID0gW1xuICAnYWx0R2x5cGgnLFxuICAnYWx0R2x5cGhEZWYnLFxuICAnYWx0R2x5cGhJdGVtJyxcbiAgJ2FuaW1hdGVDb2xvcicsXG4gICdhbmltYXRlTW90aW9uJyxcbiAgJ2FuaW1hdGVUcmFuc2Zvcm0nLFxuICAnY2xpcFBhdGgnLFxuICAnZmVCbGVuZCcsXG4gICdmZUNvbG9yTWF0cml4JyxcbiAgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAnZmVDb21wb3NpdGUnLFxuICAnZmVDb252b2x2ZU1hdHJpeCcsXG4gICdmZURpZmZ1c2VMaWdodGluZycsXG4gICdmZURpc3BsYWNlbWVudE1hcCcsXG4gICdmZURpc3RhbnRMaWdodCcsXG4gICdmZURyb3BTaGFkb3cnLFxuICAnZmVGbG9vZCcsXG4gICdmZUZ1bmNBJyxcbiAgJ2ZlRnVuY0InLFxuICAnZmVGdW5jRycsXG4gICdmZUZ1bmNSJyxcbiAgJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgJ2ZlSW1hZ2UnLFxuICAnZmVNZXJnZScsXG4gICdmZU1lcmdlTm9kZScsXG4gICdmZU1vcnBob2xvZ3knLFxuICAnZmVPZmZzZXQnLFxuICAnZmVQb2ludExpZ2h0JyxcbiAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICdmZVNwb3RMaWdodCcsXG4gICdmZVRpbGUnLFxuICAnZmVUdXJidWxlbmNlJyxcbiAgJ2ZvcmVpZ25PYmplY3QnLFxuICAnZ2x5cGhSZWYnLFxuICAnbGluZWFyR3JhZGllbnQnLFxuICAncmFkaWFsR3JhZGllbnQnLFxuICAnc29saWRDb2xvcicsXG4gICd0ZXh0QXJlYScsXG4gICd0ZXh0UGF0aCdcbl1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5DaGlsZH0gQ2hpbGRcbiAqICAgQWNjZXB0YWJsZSBjaGlsZCB2YWx1ZS5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiAgIEFjY2VwdGFibGUgdmFsdWUgZm9yIGVsZW1lbnQgcHJvcGVydGllcy5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5SZXN1bHR9IFJlc3VsdFxuICogICBSZXN1bHQgZnJvbSBhIGBoYCAob3IgYHNgKSBjYWxsLlxuICovXG5cbi8vIFJlZ2lzdGVyIHRoZSBKU1ggbmFtZXNwYWNlIG9uIGBoYC5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnR9IGguSlNYLkVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGV9IGguSlNYLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0F0dHJpYnV0ZXN9IGguSlNYLkludHJpbnNpY0F0dHJpYnV0ZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNFbGVtZW50c30gaC5KU1guSW50cmluc2ljRWxlbWVudHNcbiAqL1xuXG4vLyBSZWdpc3RlciB0aGUgSlNYIG5hbWVzcGFjZSBvbiBgc2AuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50fSBzLkpTWC5FbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudENoaWxkcmVuQXR0cmlidXRlfSBzLkpTWC5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNBdHRyaWJ1dGVzfSBzLkpTWC5JbnRyaW5zaWNBdHRyaWJ1dGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljRWxlbWVudHN9IHMuSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gKi9cblxuaW1wb3J0IHtodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtjcmVhdGVIfSBmcm9tICcuL2NyZWF0ZS1oLmpzJ1xuaW1wb3J0IHtzdmdDYXNlU2Vuc2l0aXZlVGFnTmFtZXN9IGZyb20gJy4vc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcydcblxuLy8gTm90ZTogdGhpcyBleHBsaWNpdCB0eXBlIGlzIG5lZWRlZCwgb3RoZXJ3aXNlIFRTIGNyZWF0ZXMgYnJva2VuIHR5cGVzLlxuLyoqIEB0eXBlIHtSZXR1cm5UeXBlPGNyZWF0ZUg+fSAqL1xuZXhwb3J0IGNvbnN0IGggPSBjcmVhdGVIKGh0bWwsICdkaXYnKVxuXG4vLyBOb3RlOiB0aGlzIGV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkLCBvdGhlcndpc2UgVFMgY3JlYXRlcyBicm9rZW4gdHlwZXMuXG4vKiogQHR5cGUge1JldHVyblR5cGU8Y3JlYXRlSD59ICovXG5leHBvcnQgY29uc3QgcyA9IGNyZWF0ZUgoc3ZnLCAnZycsIHN2Z0Nhc2VTZW5zaXRpdmVUYWdOYW1lcylcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuVkZpbGV9IFZGaWxlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gVW5pc3RQb2ludFxuICovXG5cbi8qKlxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogICB1bmlzdCBwb2ludCwgYWxsb3dlZCBhcyBpbnB1dC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2xpbmVdXG4gKiAgIExpbmUuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2x1bW5dXG4gKiAgIENvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqICAgT2Zmc2V0LlxuICpcbiAqIEBjYWxsYmFjayBUb1BvaW50XG4gKiAgIEdldCB0aGUgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBmb3IgYG9mZnNldGAgaW4gdGhlIGJvdW5kIGluZGljZXMuXG4gKlxuICogICBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gZ2l2ZW4gb3V0IG9mIGJvdW5kcyBpbnB1dC5cbiAqXG4gKiAgIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiAgIFttYXJrZG93bi1yc106IGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vbWFya2Rvd24tcnMvYmxvYi9tYWluL3NyYy91dGlsL2xvY2F0aW9uLnJzXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtvZmZzZXRdXG4gKiAgIFNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBhbiBgb2Zmc2V0LlxuICogQHJldHVybnMge1VuaXN0UG9pbnQgfCB1bmRlZmluZWR9XG4gKiAgIFBvaW50LCBpZiBgb2Zmc2V0YCBpcyB2YWxpZCBhbmQgaW4tYm91bmRzIGlucHV0LlxuICpcbiAqIEBjYWxsYmFjayBUb09mZnNldFxuICogICBHZXQgdGhlIGBvZmZzZXRgIGZyb20gYSBsaW5lL2NvbHVtbiBiYXNlZCBgUG9pbnRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICogQHBhcmFtIHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9pbnRdXG4gKiAgIFNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBhIGBwb2ludC5cbiAqIEByZXR1cm5zIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gKiAgIE9mZnNldCAoYG51bWJlcmApIG9yIGB1bmRlZmluZWRgIGZvciBpbnZhbGlkIG9yIG91dCBvZiBib3VuZHMgaW5wdXQuXG4gKlxuICogQHR5cGVkZWYgTG9jYXRpb25cbiAqICAgQWNjZXNzb3JzIGZvciBpbmRleC5cbiAqIEBwcm9wZXJ0eSB7VG9Qb2ludH0gdG9Qb2ludFxuICogICBHZXQgdGhlIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgZm9yIGBvZmZzZXRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICogQHByb3BlcnR5IHtUb09mZnNldH0gdG9PZmZzZXRcbiAqICAgR2V0IHRoZSBgb2Zmc2V0YCBmcm9tIGEgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqL1xuXG5jb25zdCBzZWFyY2ggPSAvXFxyP1xcbnxcXHIvZ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbmRleCBvZiB0aGUgZ2l2ZW4gZG9jdW1lbnQgdG8gdHJhbnNsYXRlIGJldHdlZW4gbGluZS9jb2x1bW4gYW5kXG4gKiBvZmZzZXQgYmFzZWQgcG9zaXRpb25hbCBpbmZvLlxuICpcbiAqIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiBbbWFya2Rvd24tcnNdOiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL21hcmtkb3duLXJzL2Jsb2IvbWFpbi9zcmMvdXRpbC9sb2NhdGlvbi5yc1xuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gZmlsZVxuICogICBGaWxlIHRvIGluZGV4LlxuICogQHJldHVybnMge0xvY2F0aW9ufVxuICogICBBY2Nlc3NvcnMgZm9yIGluZGV4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9jYXRpb24oZmlsZSkge1xuICBjb25zdCB2YWx1ZSA9IFN0cmluZyhmaWxlKVxuICAvKipcbiAgICogTGlzdCwgd2hlcmUgZWFjaCBpbmRleCBpcyBhIGxpbmUgbnVtYmVyICgwLWJhc2VkKSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gICAqIGJ5dGUgaW5kZXggKmFmdGVyKiB3aGVyZSB0aGUgbGluZSBlbmRzLlxuICAgKlxuICAgKiBAdHlwZSB7QXJyYXk8bnVtYmVyPn1cbiAgICovXG4gIGNvbnN0IGluZGljZXMgPSBbXVxuXG4gIHNlYXJjaC5sYXN0SW5kZXggPSAwXG5cbiAgd2hpbGUgKHNlYXJjaC50ZXN0KHZhbHVlKSkge1xuICAgIGluZGljZXMucHVzaChzZWFyY2gubGFzdEluZGV4KVxuICB9XG5cbiAgaW5kaWNlcy5wdXNoKHZhbHVlLmxlbmd0aCArIDEpXG5cbiAgcmV0dXJuIHt0b1BvaW50LCB0b09mZnNldH1cblxuICAvKiogQHR5cGUge1RvUG9pbnR9ICovXG4gIGZ1bmN0aW9uIHRvUG9pbnQob2Zmc2V0KSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBvZmZzZXQgPT09ICdudW1iZXInICYmXG4gICAgICBvZmZzZXQgPiAtMSAmJlxuICAgICAgb2Zmc2V0IDwgaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdXG4gICAgKSB7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGluZGljZXMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChpbmRpY2VzW2luZGV4XSA+IG9mZnNldCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaW5lOiBpbmRleCArIDEsXG4gICAgICAgICAgICBjb2x1bW46IG9mZnNldCAtIChpbmRleCA+IDAgPyBpbmRpY2VzW2luZGV4IC0gMV0gOiAwKSArIDEsXG4gICAgICAgICAgICBvZmZzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQHR5cGUge1RvT2Zmc2V0fSAqL1xuICBmdW5jdGlvbiB0b09mZnNldChwb2ludCkge1xuICAgIGNvbnN0IGxpbmUgPSBwb2ludCAmJiBwb2ludC5saW5lXG4gICAgY29uc3QgY29sdW1uID0gcG9pbnQgJiYgcG9pbnQuY29sdW1uXG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbGluZSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBjb2x1bW4gPT09ICdudW1iZXInICYmXG4gICAgICAhTnVtYmVyLmlzTmFOKGxpbmUpICYmXG4gICAgICAhTnVtYmVyLmlzTmFOKGNvbHVtbikgJiZcbiAgICAgIGxpbmUgLSAxIGluIGluZGljZXNcbiAgICApIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IChpbmRpY2VzW2xpbmUgLSAyXSB8fCAwKSArIGNvbHVtbiAtIDEgfHwgMFxuXG4gICAgICBpZiAob2Zmc2V0ID4gLTEgJiYgb2Zmc2V0IDwgaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgIHJldHVybiBvZmZzZXRcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsICIvKipcbiAqIE1hcCBvZiB3ZWIgbmFtZXNwYWNlcy5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IHdlYk5hbWVzcGFjZXMgPSB7XG4gIGh0bWw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgbWF0aG1sOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcsXG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgeGxpbms6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyxcbiAgeG1sOiAnaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlJyxcbiAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudERhdGF9IEVsZW1lbnREYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLkRlZmF1bHRUcmVlQWRhcHRlck1hcH0gRGVmYXVsdFRyZWVBZGFwdGVyTWFwXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5Ub2tlbi5FbGVtZW50TG9jYXRpb259IFA1RWxlbWVudExvY2F0aW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5Ub2tlbi5Mb2NhdGlvbn0gUDVMb2NhdGlvblxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZGaWxlfSBWRmlsZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnQnXX0gUDVEb2N1bWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnRGcmFnbWVudCddfSBQNURvY3VtZW50RnJhZ21lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2RvY3VtZW50VHlwZSddfSBQNURvY3VtZW50VHlwZVxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnY29tbWVudE5vZGUnXX0gUDVDb21tZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWyd0ZXh0Tm9kZSddfSBQNVRleHRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2VsZW1lbnQnXX0gUDVFbGVtZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydub2RlJ119IFA1Tm9kZVxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsndGVtcGxhdGUnXX0gUDVUZW1wbGF0ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtTcGFjZSB8IG51bGwgfCB1bmRlZmluZWR9IFtzcGFjZT0naHRtbCddXG4gKiAgIFdoaWNoIHNwYWNlIHRoZSBkb2N1bWVudCBpcyBpbiAoZGVmYXVsdDogYCdodG1sJ2ApLlxuICpcbiAqICAgV2hlbiBhbiBgPHN2Zz5gIGVsZW1lbnQgaXMgZm91bmQgaW4gdGhlIEhUTUwgc3BhY2UsIHRoaXMgcGFja2FnZSBhbHJlYWR5XG4gKiAgIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gYW5kIGZyb20gdGhlIFNWRyBzcGFjZSB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nXG4gKiAgIGl0LlxuICogQHByb3BlcnR5IHtWRmlsZSB8IG51bGwgfCB1bmRlZmluZWR9IFtmaWxlXVxuICogICBGaWxlIHVzZWQgdG8gYWRkIHBvc2l0aW9uYWwgaW5mbyB0byBub2RlcyAob3B0aW9uYWwpLlxuICpcbiAqICAgSWYgZ2l2ZW4sIHRoZSBmaWxlIHNob3VsZCByZXByZXNlbnQgdGhlIG9yaWdpbmFsIEhUTUwgc291cmNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZlcmJvc2U9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gYWRkIGV4dHJhIHBvc2l0aW9uYWwgaW5mbyBhYm91dCBzdGFydGluZyB0YWdzLCBjbG9zaW5nIHRhZ3MsXG4gKiAgIGFuZCBhdHRyaWJ1dGVzIHRvIGVsZW1lbnRzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBvbmx5IHVzZWQgd2hlbiBgZmlsZWAgaXMgZ2l2ZW4uXG4gKlxuICogQHR5cGVkZWYgeydodG1sJyB8ICdzdmcnfSBTcGFjZVxuICogICBOYW1lc3BhY2UuXG4gKlxuICogQHR5cGVkZWYgU3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHByb3BlcnR5IHtWRmlsZSB8IHVuZGVmaW5lZH0gZmlsZVxuICogICBDb3JyZXNwb25kaW5nIGZpbGUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxvY2F0aW9uXG4gKiAgIFdoZXRoZXIgbG9jYXRpb24gaW5mbyB3YXMgZm91bmQuXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgdW5kZWZpbmVkfSB2ZXJib3NlXG4gKiAgIEFkZCBleHRyYSBwb3NpdGlvbmFsIGluZm8uXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7aCwgc30gZnJvbSAnaGFzdHNjcmlwdCdcbmltcG9ydCB7ZmluZCwgaHRtbCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7bG9jYXRpb259IGZyb20gJ3ZmaWxlLWxvY2F0aW9uJ1xuaW1wb3J0IHt3ZWJOYW1lc3BhY2VzfSBmcm9tICd3ZWItbmFtZXNwYWNlcydcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcbi8qKiBAdHlwZSB7dW5rbm93bn0gKi9cbi8vIHR5cGUtY292ZXJhZ2U6aWdub3JlLW5leHQtbGluZVxuY29uc3QgcHJvdG8gPSBPYmplY3QucHJvdG90eXBlXG5cbi8qKlxuICogVHJhbnNmb3JtIGEgYHBhcnNlNWAgQVNUIHRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtQNU5vZGV9IHRyZWVcbiAqICAgYHBhcnNlNWAgdHJlZSB0byB0cmFuc2Zvcm0uXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge05vZGVzfVxuICogICBoYXN0IHRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tUGFyc2U1KHRyZWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgcmV0dXJuIG9uZShcbiAgICB7XG4gICAgICBmaWxlOiBzZXR0aW5ncy5maWxlIHx8IHVuZGVmaW5lZCxcbiAgICAgIGxvY2F0aW9uOiBmYWxzZSxcbiAgICAgIHNjaGVtYTogc2V0dGluZ3Muc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICAgIHZlcmJvc2U6IHNldHRpbmdzLnZlcmJvc2UgfHwgZmFsc2VcbiAgICB9LFxuICAgIHRyZWVcbiAgKVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIG5vZGUuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNU5vZGV9IG5vZGVcbiAqICAgcDUgbm9kZS5cbiAqIEByZXR1cm5zIHtOb2Rlc31cbiAqICAgaGFzdCBub2RlLlxuICovXG5mdW5jdGlvbiBvbmUoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtOb2Rlc30gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIHN3aXRjaCAobm9kZS5ub2RlTmFtZSkge1xuICAgIGNhc2UgJyNjb21tZW50Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNUNvbW1lbnR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICdjb21tZW50JywgdmFsdWU6IHJlZmVyZW5jZS5kYXRhfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyNkb2N1bWVudCc6XG4gICAgY2FzZSAnI2RvY3VtZW50LWZyYWdtZW50Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNURvY3VtZW50IHwgUDVEb2N1bWVudEZyYWdtZW50fSAqLyAobm9kZSlcbiAgICAgIGNvbnN0IHF1aXJrc01vZGUgPVxuICAgICAgICAnbW9kZScgaW4gcmVmZXJlbmNlXG4gICAgICAgICAgPyByZWZlcmVuY2UubW9kZSA9PT0gJ3F1aXJrcycgfHwgcmVmZXJlbmNlLm1vZGUgPT09ICdsaW1pdGVkLXF1aXJrcydcbiAgICAgICAgICA6IGZhbHNlXG5cbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgdHlwZTogJ3Jvb3QnLFxuICAgICAgICBjaGlsZHJlbjogYWxsKHN0YXRlLCBub2RlLmNoaWxkTm9kZXMpLFxuICAgICAgICBkYXRhOiB7cXVpcmtzTW9kZX1cbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlLmZpbGUgJiYgc3RhdGUubG9jYXRpb24pIHtcbiAgICAgICAgY29uc3QgZG9jID0gU3RyaW5nKHN0YXRlLmZpbGUpXG4gICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0aW9uKGRvYylcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBsb2MudG9Qb2ludCgwKVxuICAgICAgICBjb25zdCBlbmQgPSBsb2MudG9Qb2ludChkb2MubGVuZ3RoKVxuICAgICAgICAvLyBBbHdheXMgZGVmaW5lZCBhcyB3ZSBnaXZlIHZhbGlkIGlucHV0LlxuICAgICAgICBhc3NlcnQoc3RhcnQsICdleHBlY3RlZCBgc3RhcnRgJylcbiAgICAgICAgYXNzZXJ0KGVuZCwgJ2V4cGVjdGVkIGBlbmRgJylcbiAgICAgICAgcmVzdWx0LnBvc2l0aW9uID0ge3N0YXJ0LCBlbmR9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBjYXNlICcjZG9jdW1lbnRUeXBlJzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNURvY3VtZW50VHlwZX0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSB7dHlwZTogJ2RvY3R5cGUnfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyN0ZXh0Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNVRleHR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICd0ZXh0JywgdmFsdWU6IHJlZmVyZW5jZS52YWx1ZX1cbiAgICAgIHBhdGNoKHN0YXRlLCByZWZlcmVuY2UsIHJlc3VsdClcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICAvLyBFbGVtZW50LlxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVFbGVtZW50fSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IGVsZW1lbnQoc3RhdGUsIHJlZmVyZW5jZSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtBcnJheTxQNU5vZGU+fSBub2Rlc1xuICogICBOb2Rlcy5cbiAqIEByZXR1cm5zIHtBcnJheTxSb290Q29udGVudD59XG4gKiAgIGhhc3Qgbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGFsbChzdGF0ZSwgbm9kZXMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTxSb290Q29udGVudD59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuXG4gIHdoaWxlICgrK2luZGV4IDwgbm9kZXMubGVuZ3RoKSB7XG4gICAgLy8gQXNzdW1lIG5vIHJvb3RzIGluIGBub2Rlc2AuXG4gICAgY29uc3QgcmVzdWx0ID0gLyoqIEB0eXBlIHtSb290Q29udGVudH0gKi8gKG9uZShzdGF0ZSwgbm9kZXNbaW5kZXhdKSlcbiAgICByZXN1bHRzLnB1c2gocmVzdWx0KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1A1RWxlbWVudH0gbm9kZVxuICogICBgcGFyc2U1YCBub2RlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmZ1bmN0aW9uIGVsZW1lbnQoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3Qgc2NoZW1hID0gc3RhdGUuc2NoZW1hXG5cbiAgc3RhdGUuc2NoZW1hID0gbm9kZS5uYW1lc3BhY2VVUkkgPT09IHdlYk5hbWVzcGFjZXMuc3ZnID8gc3ZnIDogaHRtbFxuXG4gIC8vIFByb3BzLlxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IHByb3BzID0ge31cblxuICB3aGlsZSAoKytpbmRleCA8IG5vZGUuYXR0cnMubGVuZ3RoKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gbm9kZS5hdHRyc1tpbmRleF1cbiAgICBjb25zdCBuYW1lID1cbiAgICAgIChhdHRyaWJ1dGUucHJlZml4ID8gYXR0cmlidXRlLnByZWZpeCArICc6JyA6ICcnKSArIGF0dHJpYnV0ZS5uYW1lXG4gICAgaWYgKCFvd24uY2FsbChwcm90bywgbmFtZSkpIHtcbiAgICAgIHByb3BzW25hbWVdID0gYXR0cmlidXRlLnZhbHVlXG4gICAgfVxuICB9XG5cbiAgLy8gQnVpbGQuXG4gIGNvbnN0IGZuID0gc3RhdGUuc2NoZW1hLnNwYWNlID09PSAnc3ZnJyA/IHMgOiBoXG4gIGNvbnN0IHJlc3VsdCA9IGZuKG5vZGUudGFnTmFtZSwgcHJvcHMsIGFsbChzdGF0ZSwgbm9kZS5jaGlsZE5vZGVzKSlcbiAgcGF0Y2goc3RhdGUsIG5vZGUsIHJlc3VsdClcblxuICAvLyBTd2l0Y2ggY29udGVudC5cbiAgaWYgKHJlc3VsdC50YWdOYW1lID09PSAndGVtcGxhdGUnKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNVRlbXBsYXRlfSAqLyAobm9kZSlcbiAgICBjb25zdCBwb3MgPSByZWZlcmVuY2Uuc291cmNlQ29kZUxvY2F0aW9uXG4gICAgY29uc3Qgc3RhcnRUYWcgPSBwb3MgJiYgcG9zLnN0YXJ0VGFnICYmIHBvc2l0aW9uKHBvcy5zdGFydFRhZylcbiAgICBjb25zdCBlbmRUYWcgPSBwb3MgJiYgcG9zLmVuZFRhZyAmJiBwb3NpdGlvbihwb3MuZW5kVGFnKVxuXG4gICAgLy8gUm9vdCBpbiwgcm9vdCBvdXQuXG4gICAgY29uc3QgY29udGVudCA9IC8qKiBAdHlwZSB7Um9vdH0gKi8gKG9uZShzdGF0ZSwgcmVmZXJlbmNlLmNvbnRlbnQpKVxuXG4gICAgaWYgKHN0YXJ0VGFnICYmIGVuZFRhZyAmJiBzdGF0ZS5maWxlKSB7XG4gICAgICBjb250ZW50LnBvc2l0aW9uID0ge3N0YXJ0OiBzdGFydFRhZy5lbmQsIGVuZDogZW5kVGFnLnN0YXJ0fVxuICAgIH1cblxuICAgIHJlc3VsdC5jb250ZW50ID0gY29udGVudFxuICB9XG5cbiAgc3RhdGUuc2NoZW1hID0gc2NoZW1hXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFBhdGNoIHBvc2l0aW9uYWwgaW5mbyBmcm9tIGBmcm9tYCBvbnRvIGB0b2AuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNU5vZGV9IGZyb21cbiAqICAgcDUgbm9kZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IHRvXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBhdGNoKHN0YXRlLCBmcm9tLCB0bykge1xuICBpZiAoJ3NvdXJjZUNvZGVMb2NhdGlvbicgaW4gZnJvbSAmJiBmcm9tLnNvdXJjZUNvZGVMb2NhdGlvbiAmJiBzdGF0ZS5maWxlKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBjcmVhdGVMb2NhdGlvbihzdGF0ZSwgdG8sIGZyb20uc291cmNlQ29kZUxvY2F0aW9uKVxuXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICBzdGF0ZS5sb2NhdGlvbiA9IHRydWVcbiAgICAgIHRvLnBvc2l0aW9uID0gcG9zaXRpb25cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgY2xlYW4gcG9zaXRpb25hbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge05vZGVzfSBub2RlXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEBwYXJhbSB7UDVFbGVtZW50TG9jYXRpb259IGxvY2F0aW9uXG4gKiAgIHA1IGxvY2F0aW9uIGluZm8uXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uLCBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2NhdGlvbihzdGF0ZSwgbm9kZSwgbG9jYXRpb24pIHtcbiAgY29uc3QgcmVzdWx0ID0gcG9zaXRpb24obG9jYXRpb24pXG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgY29uc3QgdGFpbCA9IG5vZGUuY2hpbGRyZW5bbm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXVxuXG4gICAgLy8gQnVnIGZvciB1bmNsb3NlZCB3aXRoIGNoaWxkcmVuLlxuICAgIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvaXNzdWVzLzEwOT4uXG4gICAgaWYgKFxuICAgICAgcmVzdWx0ICYmXG4gICAgICAhbG9jYXRpb24uZW5kVGFnICYmXG4gICAgICB0YWlsICYmXG4gICAgICB0YWlsLnBvc2l0aW9uICYmXG4gICAgICB0YWlsLnBvc2l0aW9uLmVuZFxuICAgICkge1xuICAgICAgcmVzdWx0LmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHRhaWwucG9zaXRpb24uZW5kKVxuICAgIH1cblxuICAgIGlmIChzdGF0ZS52ZXJib3NlKSB7XG4gICAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIFBvc2l0aW9uIHwgdW5kZWZpbmVkPn0gKi9cbiAgICAgIGNvbnN0IHByb3BzID0ge31cbiAgICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgICAgbGV0IGtleVxuXG4gICAgICBpZiAobG9jYXRpb24uYXR0cnMpIHtcbiAgICAgICAgZm9yIChrZXkgaW4gbG9jYXRpb24uYXR0cnMpIHtcbiAgICAgICAgICBpZiAob3duLmNhbGwobG9jYXRpb24uYXR0cnMsIGtleSkpIHtcbiAgICAgICAgICAgIHByb3BzW2ZpbmQoc3RhdGUuc2NoZW1hLCBrZXkpLnByb3BlcnR5XSA9IHBvc2l0aW9uKFxuICAgICAgICAgICAgICBsb2NhdGlvbi5hdHRyc1trZXldXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFzc2VydChsb2NhdGlvbi5zdGFydFRhZywgJ2Egc3RhcnQgdGFnIHNob3VsZCBleGlzdCcpXG4gICAgICBjb25zdCBvcGVuaW5nID0gcG9zaXRpb24obG9jYXRpb24uc3RhcnRUYWcpXG4gICAgICBjb25zdCBjbG9zaW5nID0gbG9jYXRpb24uZW5kVGFnID8gcG9zaXRpb24obG9jYXRpb24uZW5kVGFnKSA6IHVuZGVmaW5lZFxuICAgICAgLyoqIEB0eXBlIHtFbGVtZW50RGF0YVsncG9zaXRpb24nXX0gKi9cbiAgICAgIGNvbnN0IGRhdGEgPSB7b3BlbmluZ31cbiAgICAgIGlmIChjbG9zaW5nKSBkYXRhLmNsb3NpbmcgPSBjbG9zaW5nXG4gICAgICBkYXRhLnByb3BlcnRpZXMgPSBwcm9wc1xuXG4gICAgICBub2RlLmRhdGEgPSB7cG9zaXRpb246IGRhdGF9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFR1cm4gYSBwNSBsb2NhdGlvbiBpbnRvIGEgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHtQNUxvY2F0aW9ufSBsb2NcbiAqICAgTG9jYXRpb24uXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uIG9yIG5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKGxvYykge1xuICBjb25zdCBzdGFydCA9IHBvaW50KHtcbiAgICBsaW5lOiBsb2Muc3RhcnRMaW5lLFxuICAgIGNvbHVtbjogbG9jLnN0YXJ0Q29sLFxuICAgIG9mZnNldDogbG9jLnN0YXJ0T2Zmc2V0XG4gIH0pXG4gIGNvbnN0IGVuZCA9IHBvaW50KHtcbiAgICBsaW5lOiBsb2MuZW5kTGluZSxcbiAgICBjb2x1bW46IGxvYy5lbmRDb2wsXG4gICAgb2Zmc2V0OiBsb2MuZW5kT2Zmc2V0XG4gIH0pXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogd2UgZG8gdXNlIGB1bmRlZmluZWRgIGZvciBwb2ludHMgaWYgb25lIG9yIHRoZSBvdGhlclxuICAvLyBleGlzdHMuXG4gIHJldHVybiBzdGFydCB8fCBlbmQgPyB7c3RhcnQsIGVuZH0gOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBGaWx0ZXIgb3V0IGludmFsaWQgcG9pbnRzLlxuICpcbiAqIEBwYXJhbSB7UG9pbnR9IHBvaW50XG4gKiAgIFBvaW50IHdpdGggcG90ZW50aWFsbHkgYHVuZGVmaW5lZGAgdmFsdWVzLlxuICogQHJldHVybnMge1BvaW50IHwgdW5kZWZpbmVkfVxuICogICBQb2ludCBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBwb2ludChwb2ludCkge1xuICByZXR1cm4gcG9pbnQubGluZSAmJiBwb2ludC5jb2x1bW4gPyBwb2ludCA6IHVuZGVmaW5lZFxufVxuIiwgImNvbnN0IFVOREVGSU5FRF9DT0RFX1BPSU5UUyA9IG5ldyBTZXQoW1xuICAgIDY1NTM0LCA2NTUzNSwgMTMxMDcwLCAxMzEwNzEsIDE5NjYwNiwgMTk2NjA3LCAyNjIxNDIsIDI2MjE0MywgMzI3Njc4LCAzMjc2NzksIDM5MzIxNCxcbiAgICAzOTMyMTUsIDQ1ODc1MCwgNDU4NzUxLCA1MjQyODYsIDUyNDI4NywgNTg5ODIyLCA1ODk4MjMsIDY1NTM1OCwgNjU1MzU5LCA3MjA4OTQsXG4gICAgNzIwODk1LCA3ODY0MzAsIDc4NjQzMSwgODUxOTY2LCA4NTE5NjcsIDkxNzUwMiwgOTE3NTAzLCA5ODMwMzgsIDk4MzAzOSwgMTA0ODU3NCxcbiAgICAxMDQ4NTc1LCAxMTE0MTEwLCAxMTE0MTExLFxuXSk7XG5leHBvcnQgY29uc3QgUkVQTEFDRU1FTlRfQ0hBUkFDVEVSID0gJ1xcdUZGRkQnO1xuZXhwb3J0IHZhciBDT0RFX1BPSU5UUztcbihmdW5jdGlvbiAoQ09ERV9QT0lOVFMpIHtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkVPRlwiXSA9IC0xXSA9IFwiRU9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJOVUxMXCJdID0gMF0gPSBcIk5VTExcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlRBQlVMQVRJT05cIl0gPSA5XSA9IFwiVEFCVUxBVElPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQ0FSUklBR0VfUkVUVVJOXCJdID0gMTNdID0gXCJDQVJSSUFHRV9SRVRVUk5cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxJTkVfRkVFRFwiXSA9IDEwXSA9IFwiTElORV9GRUVEXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJGT1JNX0ZFRURcIl0gPSAxMl0gPSBcIkZPUk1fRkVFRFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiU1BBQ0VcIl0gPSAzMl0gPSBcIlNQQUNFXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFWENMQU1BVElPTl9NQVJLXCJdID0gMzNdID0gXCJFWENMQU1BVElPTl9NQVJLXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJRVU9UQVRJT05fTUFSS1wiXSA9IDM0XSA9IFwiUVVPVEFUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIk5VTUJFUl9TSUdOXCJdID0gMzVdID0gXCJOVU1CRVJfU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQU1QRVJTQU5EXCJdID0gMzhdID0gXCJBTVBFUlNBTkRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkFQT1NUUk9QSEVcIl0gPSAzOV0gPSBcIkFQT1NUUk9QSEVcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkhZUEhFTl9NSU5VU1wiXSA9IDQ1XSA9IFwiSFlQSEVOX01JTlVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTT0xJRFVTXCJdID0gNDddID0gXCJTT0xJRFVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF8wXCJdID0gNDhdID0gXCJESUdJVF8wXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF85XCJdID0gNTddID0gXCJESUdJVF85XCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTRU1JQ09MT05cIl0gPSA1OV0gPSBcIlNFTUlDT0xPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEVTU19USEFOX1NJR05cIl0gPSA2MF0gPSBcIkxFU1NfVEhBTl9TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFUVVBTFNfU0lHTlwiXSA9IDYxXSA9IFwiRVFVQUxTX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSRUFURVJfVEhBTl9TSUdOXCJdID0gNjJdID0gXCJHUkVBVEVSX1RIQU5fU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUVVFU1RJT05fTUFSS1wiXSA9IDYzXSA9IFwiUVVFU1RJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9BXCJdID0gNjVdID0gXCJMQVRJTl9DQVBJVEFMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfRlwiXSA9IDcwXSA9IFwiTEFUSU5fQ0FQSVRBTF9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9DQVBJVEFMX1hcIl0gPSA4OF0gPSBcIkxBVElOX0NBUElUQUxfWFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9aXCJdID0gOTBdID0gXCJMQVRJTl9DQVBJVEFMX1pcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlJJR0hUX1NRVUFSRV9CUkFDS0VUXCJdID0gOTNdID0gXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiR1JBVkVfQUNDRU5UXCJdID0gOTZdID0gXCJHUkFWRV9BQ0NFTlRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX0FcIl0gPSA5N10gPSBcIkxBVElOX1NNQUxMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX0ZcIl0gPSAxMDJdID0gXCJMQVRJTl9TTUFMTF9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9YXCJdID0gMTIwXSA9IFwiTEFUSU5fU01BTExfWFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fU01BTExfWlwiXSA9IDEyMl0gPSBcIkxBVElOX1NNQUxMX1pcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlJFUExBQ0VNRU5UX0NIQVJBQ1RFUlwiXSA9IDY1NTMzXSA9IFwiUkVQTEFDRU1FTlRfQ0hBUkFDVEVSXCI7XG59KShDT0RFX1BPSU5UUyA9IENPREVfUE9JTlRTIHx8IChDT0RFX1BPSU5UUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgU0VRVUVOQ0VTID0ge1xuICAgIERBU0hfREFTSDogJy0tJyxcbiAgICBDREFUQV9TVEFSVDogJ1tDREFUQVsnLFxuICAgIERPQ1RZUEU6ICdkb2N0eXBlJyxcbiAgICBTQ1JJUFQ6ICdzY3JpcHQnLFxuICAgIFBVQkxJQzogJ3B1YmxpYycsXG4gICAgU1lTVEVNOiAnc3lzdGVtJyxcbn07XG4vL1N1cnJvZ2F0ZXNcbmV4cG9ydCBmdW5jdGlvbiBpc1N1cnJvZ2F0ZShjcCkge1xuICAgIHJldHVybiBjcCA+PSA1NTI5NiAmJiBjcCA8PSA1NzM0Mztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cnJvZ2F0ZVBhaXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gNTYzMjAgJiYgY3AgPD0gNTczNDM7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcDEsIGNwMikge1xuICAgIHJldHVybiAoY3AxIC0gNTUyOTYpICogMTAyNCArIDkyMTYgKyBjcDI7XG59XG4vL05PVEU6IGV4Y2x1ZGluZyBOVUxMIGFuZCBBU0NJSSB3aGl0ZXNwYWNlXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sQ29kZVBvaW50KGNwKSB7XG4gICAgcmV0dXJuICgoY3AgIT09IDB4MjAgJiYgY3AgIT09IDB4MGEgJiYgY3AgIT09IDB4MGQgJiYgY3AgIT09IDB4MDkgJiYgY3AgIT09IDB4MGMgJiYgY3AgPj0gMHgwMSAmJiBjcCA8PSAweDFmKSB8fFxuICAgICAgICAoY3AgPj0gMHg3ZiAmJiBjcCA8PSAweDlmKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gKGNwID49IDY0OTc2ICYmIGNwIDw9IDY1MDA3KSB8fCBVTkRFRklORURfQ09ERV9QT0lOVFMuaGFzKGNwKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaWNvZGUuanMubWFwIiwgImV4cG9ydCB2YXIgRVJSO1xuKGZ1bmN0aW9uIChFUlIpIHtcbiAgICBFUlJbXCJjb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwiY29udHJvbC1jaGFyYWN0ZXItaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wibm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwibm9uY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUluSW5wdXRTdHJlYW1cIl0gPSBcInN1cnJvZ2F0ZS1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXNcIl0gPSBcIm5vbi12b2lkLWh0bWwtZWxlbWVudC1zdGFydC10YWctd2l0aC10cmFpbGluZy1zb2xpZHVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aEF0dHJpYnV0ZXNcIl0gPSBcImVuZC10YWctd2l0aC1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1c1wiXSA9IFwiZW5kLXRhZy13aXRoLXRyYWlsaW5nLXNvbGlkdXNcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkU29saWR1c0luVGFnXCJdID0gXCJ1bmV4cGVjdGVkLXNvbGlkdXMtaW4tdGFnXCI7XG4gICAgRVJSW1widW5leHBlY3RlZE51bGxDaGFyYWN0ZXJcIl0gPSBcInVuZXhwZWN0ZWQtbnVsbC1jaGFyYWN0ZXJcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZVwiXSA9IFwidW5leHBlY3RlZC1xdWVzdGlvbi1tYXJrLWluc3RlYWQtb2YtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWVcIl0gPSBcImludmFsaWQtZmlyc3QtY2hhcmFjdGVyLW9mLXRhZy1uYW1lXCI7XG4gICAgRVJSW1widW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLWVxdWFscy1zaWduLWJlZm9yZS1hdHRyaWJ1dGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdFbmRUYWdOYW1lXCJdID0gXCJtaXNzaW5nLWVuZC10YWctbmFtZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLWF0dHJpYnV0ZS1uYW1lXCI7XG4gICAgRVJSW1widW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJ1bmtub3duLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm1pc3Npbmctc2VtaWNvbG9uLWFmdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwidW5leHBlY3RlZC1jaGFyYWN0ZXItYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLXVucXVvdGVkLWF0dHJpYnV0ZS12YWx1ZVwiO1xuICAgIEVSUltcImVvZkJlZm9yZVRhZ05hbWVcIl0gPSBcImVvZi1iZWZvcmUtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJlb2ZJblRhZ1wiXSA9IFwiZW9mLWluLXRhZ1wiO1xuICAgIEVSUltcIm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZVwiXSA9IFwibWlzc2luZy1hdHRyaWJ1dGUtdmFsdWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZFwiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1wiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVyc1wiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZFwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmRcIjtcbiAgICBFUlJbXCJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLXF1b3RlLWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImNkYXRhSW5IdG1sQ29udGVudFwiXSA9IFwiY2RhdGEtaW4taHRtbC1jb250ZW50XCI7XG4gICAgRVJSW1wiaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50XCJdID0gXCJpbmNvcnJlY3RseS1vcGVuZWQtY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dFwiXSA9IFwiZW9mLWluLXNjcmlwdC1odG1sLWNvbW1lbnQtbGlrZS10ZXh0XCI7XG4gICAgRVJSW1wiZW9mSW5Eb2N0eXBlXCJdID0gXCJlb2YtaW4tZG9jdHlwZVwiO1xuICAgIEVSUltcIm5lc3RlZENvbW1lbnRcIl0gPSBcIm5lc3RlZC1jb21tZW50XCI7XG4gICAgRVJSW1wiYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50XCJdID0gXCJhYnJ1cHQtY2xvc2luZy1vZi1lbXB0eS1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5Db21tZW50XCJdID0gXCJlb2YtaW4tY29tbWVudFwiO1xuICAgIEVSUltcImluY29ycmVjdGx5Q2xvc2VkQ29tbWVudFwiXSA9IFwiaW5jb3JyZWN0bHktY2xvc2VkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJbkNkYXRhXCJdID0gXCJlb2YtaW4tY2RhdGFcIjtcbiAgICBFUlJbXCJhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImFic2VuY2Utb2YtZGlnaXRzLWluLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm51bGxDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm51bGwtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwic3Vycm9nYXRlLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJjaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlXCJdID0gXCJjaGFyYWN0ZXItcmVmZXJlbmNlLW91dHNpZGUtdW5pY29kZS1yYW5nZVwiO1xuICAgIEVSUltcImNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImNvbnRyb2wtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwibm9uY2hhcmFjdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmVmb3JlLWRvY3R5cGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlTmFtZVwiXSA9IFwibWlzc2luZy1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lXCJdID0gXCJpbnZhbGlkLWNoYXJhY3Rlci1zZXF1ZW5jZS1hZnRlci1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJkdXBsaWNhdGVBdHRyaWJ1dGVcIl0gPSBcImR1cGxpY2F0ZS1hdHRyaWJ1dGVcIjtcbiAgICBFUlJbXCJub25Db25mb3JtaW5nRG9jdHlwZVwiXSA9IFwibm9uLWNvbmZvcm1pbmctZG9jdHlwZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlXCJdID0gXCJtaXNzaW5nLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJtaXNwbGFjZWREb2N0eXBlXCJdID0gXCJtaXNwbGFjZWQtZG9jdHlwZVwiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50XCJdID0gXCJlbmQtdGFnLXdpdGhvdXQtbWF0Y2hpbmctb3Blbi1lbGVtZW50XCI7XG4gICAgRVJSW1wiY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50c1wiXSA9IFwiY2xvc2luZy1vZi1lbGVtZW50LXdpdGgtb3Blbi1jaGlsZC1lbGVtZW50c1wiO1xuICAgIEVSUltcImRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZFwiXSA9IFwiZGlzYWxsb3dlZC1jb250ZW50LWluLW5vc2NyaXB0LWluLWhlYWRcIjtcbiAgICBFUlJbXCJvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2ZcIl0gPSBcIm9wZW4tZWxlbWVudHMtbGVmdC1hZnRlci1lb2ZcIjtcbiAgICBFUlJbXCJhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkXCJdID0gXCJhYmFuZG9uZWQtaGVhZC1lbGVtZW50LWNoaWxkXCI7XG4gICAgRVJSW1wibWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudFwiXSA9IFwibWlzcGxhY2VkLXN0YXJ0LXRhZy1mb3ItaGVhZC1lbGVtZW50XCI7XG4gICAgRVJSW1wibmVzdGVkTm9zY3JpcHRJbkhlYWRcIl0gPSBcIm5lc3RlZC1ub3NjcmlwdC1pbi1oZWFkXCI7XG4gICAgRVJSW1wiZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dFwiXSA9IFwiZW9mLWluLWVsZW1lbnQtdGhhdC1jYW4tY29udGFpbi1vbmx5LXRleHRcIjtcbn0pKEVSUiA9IEVSUiB8fCAoRVJSID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLWNvZGVzLmpzLm1hcCIsICJpbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIGlzU3Vycm9nYXRlLCBpc1N1cnJvZ2F0ZVBhaXIsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCB9IGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vL0NvbnN0XG5jb25zdCBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkUgPSAxIDw8IDE2O1xuLy9QcmVwcm9jZXNzb3Jcbi8vTk9URTogSFRNTCBpbnB1dCBwcmVwcm9jZXNzaW5nXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0pXG5leHBvcnQgY2xhc3MgUHJlcHJvY2Vzc29yIHtcbiAgICBjb25zdHJ1Y3RvcihoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaHRtbCA9ICcnO1xuICAgICAgICB0aGlzLnBvcyA9IC0xO1xuICAgICAgICAvLyBOT1RFOiBJbml0aWFsIGBsYXN0R2FwUG9zYCBpcyAtMiwgdG8gZW5zdXJlIGBjb2xgIG9uIGluaXRpYWxpc2F0aW9uIGlzIDBcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1ZmZlcldhdGVybGluZSA9IERFRkFVTFRfQlVGRkVSX1dBVEVSTElORTtcbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyA9IDA7XG4gICAgICAgIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgPSAwO1xuICAgICAgICB0aGlzLmxpbmUgPSAxO1xuICAgICAgICAvL05PVEU6IGF2b2lkIHJlcG9ydGluZyBlcnJvcnMgdHdpY2Ugb24gYWR2YW5jZS9yZXRyZWF0XG4gICAgICAgIHRoaXMubGFzdEVyck9mZnNldCA9IC0xO1xuICAgIH1cbiAgICAvKiogVGhlIGNvbHVtbiBvbiB0aGUgY3VycmVudCBsaW5lLiBJZiB3ZSBqdXN0IHNhdyBhIGdhcCAoZWcuIGEgc3Vycm9nYXRlIHBhaXIpLCByZXR1cm4gdGhlIGluZGV4IGJlZm9yZS4gKi9cbiAgICBnZXQgY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgLSB0aGlzLmxpbmVTdGFydFBvcyArIE51bWJlcih0aGlzLmxhc3RHYXBQb3MgIT09IHRoaXMucG9zKTtcbiAgICB9XG4gICAgZ2V0IG9mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgKyB0aGlzLnBvcztcbiAgICB9XG4gICAgZ2V0RXJyb3IoY29kZSkge1xuICAgICAgICBjb25zdCB7IGxpbmUsIGNvbCwgb2Zmc2V0IH0gPSB0aGlzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIHN0YXJ0TGluZTogbGluZSxcbiAgICAgICAgICAgIGVuZExpbmU6IGxpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogY29sLFxuICAgICAgICAgICAgZW5kQ29sOiBjb2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgZW5kT2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9lcnIoY29kZSkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvciAmJiB0aGlzLmxhc3RFcnJPZmZzZXQgIT09IHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RFcnJPZmZzZXQgPSB0aGlzLm9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IodGhpcy5nZXRFcnJvcihjb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2FkZEdhcCgpIHtcbiAgICAgICAgdGhpcy5nYXBTdGFjay5wdXNoKHRoaXMubGFzdEdhcFBvcyk7XG4gICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IHRoaXMucG9zO1xuICAgIH1cbiAgICBfcHJvY2Vzc1N1cnJvZ2F0ZShjcCkge1xuICAgICAgICAvL05PVEU6IHRyeSB0byBwZWVrIGEgc3Vycm9nYXRlIHBhaXJcbiAgICAgICAgaWYgKHRoaXMucG9zICE9PSB0aGlzLmh0bWwubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dENwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyAxKTtcbiAgICAgICAgICAgIGlmIChpc1N1cnJvZ2F0ZVBhaXIobmV4dENwKSkge1xuICAgICAgICAgICAgICAgIC8vTk9URTogd2UgaGF2ZSBhIHN1cnJvZ2F0ZSBwYWlyLiBQZWVrIHBhaXIgY2hhcmFjdGVyIGFuZCByZWNhbGN1bGF0ZSBjb2RlIHBvaW50LlxuICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICAgICAgLy9OT1RFOiBhZGQgYSBnYXAgdGhhdCBzaG91bGQgYmUgYXZvaWRlZCBkdXJpbmcgcmV0cmVhdFxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwLCBuZXh0Q3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogd2UgYXJlIGF0IHRoZSBlbmQgb2YgYSBjaHVuaywgdGhlcmVmb3JlIHdlIGNhbid0IGluZmVyIHRoZSBzdXJyb2dhdGUgcGFpciB5ZXQuXG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLmxhc3RDaHVua1dyaXR0ZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBpc29sYXRlZCBzdXJyb2dhdGVcbiAgICAgICAgdGhpcy5fZXJyKEVSUi5zdXJyb2dhdGVJbklucHV0U3RyZWFtKTtcbiAgICAgICAgcmV0dXJuIGNwO1xuICAgIH1cbiAgICB3aWxsRHJvcFBhcnNlZENodW5rKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgPiB0aGlzLmJ1ZmZlcldhdGVybGluZTtcbiAgICB9XG4gICAgZHJvcFBhcnNlZENodW5rKCkge1xuICAgICAgICBpZiAodGhpcy53aWxsRHJvcFBhcnNlZENodW5rKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MpO1xuICAgICAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgLT0gdGhpcy5wb3M7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRCdWZmZXJTaXplICs9IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5wb3MgPSAwO1xuICAgICAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgICAgICB0aGlzLmdhcFN0YWNrLmxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGUoY2h1bmssIGlzTGFzdENodW5rKSB7XG4gICAgICAgIGlmICh0aGlzLmh0bWwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5odG1sICs9IGNodW5rO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5odG1sID0gY2h1bms7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdENodW5rV3JpdHRlbiA9IGlzTGFzdENodW5rO1xuICAgIH1cbiAgICBpbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKSB7XG4gICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuaHRtbC5zdWJzdHJpbmcoMCwgdGhpcy5wb3MgKyAxKSArIGNodW5rICsgdGhpcy5odG1sLnN1YnN0cmluZyh0aGlzLnBvcyArIDEpO1xuICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSBmYWxzZTtcbiAgICB9XG4gICAgc3RhcnRzV2l0aChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIG91ciBidWZmZXIgaGFzIGVub3VnaCBjaGFyYWN0ZXJzXG4gICAgICAgIGlmICh0aGlzLnBvcyArIHBhdHRlcm4ubGVuZ3RoID4gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHRtbC5zdGFydHNXaXRoKHBhdHRlcm4sIHRoaXMucG9zKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdHRlcm4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyBpKSB8IDB4MjA7XG4gICAgICAgICAgICBpZiAoY3AgIT09IHBhdHRlcm4uY2hhckNvZGVBdChpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcGVlayhvZmZzZXQpIHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3MgKyBvZmZzZXQ7XG4gICAgICAgIGlmIChwb3MgPj0gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2RlID0gdGhpcy5odG1sLmNoYXJDb2RlQXQocG9zKTtcbiAgICAgICAgcmV0dXJuIGNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOID8gJC5MSU5FX0ZFRUQgOiBjb2RlO1xuICAgIH1cbiAgICBhZHZhbmNlKCkge1xuICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAvL05PVEU6IExGIHNob3VsZCBiZSBpbiB0aGUgbGFzdCBjb2x1bW4gb2YgdGhlIGxpbmVcbiAgICAgICAgaWYgKHRoaXMuaXNFb2wpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGluZSsrO1xuICAgICAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgPSB0aGlzLnBvcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3MgPj0gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyk7XG4gICAgICAgIC8vTk9URTogYWxsIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJzIG11c3QgYmUgY29udmVydGVkIHRvIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzXG4gICAgICAgIGlmIChjcCA9PT0gJC5DQVJSSUFHRV9SRVRVUk4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICQuTElORV9GRUVEO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogYW55IFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzIHRoYXQgaW1tZWRpYXRlbHkgZm9sbG93IGEgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlclxuICAgICAgICAvL211c3QgYmUgaWdub3JlZC5cbiAgICAgICAgaWYgKGNwID09PSAkLkxJTkVfRkVFRCkge1xuICAgICAgICAgICAgdGhpcy5pc0VvbCA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5za2lwTmV4dE5ld0xpbmUpIHtcbiAgICAgICAgICAgICAgICAvLyBgbGluZWAgd2lsbCBiZSBidW1wZWQgYWdhaW4gaW4gdGhlIHJlY3Vyc2l2ZSBjYWxsLlxuICAgICAgICAgICAgICAgIHRoaXMubGluZS0tO1xuICAgICAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkR2FwKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWR2YW5jZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmIChpc1N1cnJvZ2F0ZShjcCkpIHtcbiAgICAgICAgICAgIGNwID0gdGhpcy5fcHJvY2Vzc1N1cnJvZ2F0ZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgLy9PUFRJTUlaQVRJT046IGZpcnN0IGNoZWNrIGlmIGNvZGUgcG9pbnQgaXMgaW4gdGhlIGNvbW1vbiBhbGxvd2VkXG4gICAgICAgIC8vcmFuZ2UgKEFTQ0lJIGFscGhhbnVtZXJpYywgd2hpdGVzcGFjZXMsIGJpZyBjaHVuayBvZiBCTVApXG4gICAgICAgIC8vYmVmb3JlIGdvaW5nIGludG8gZGV0YWlsZWQgcGVyZm9ybWFuY2UgY29zdCB2YWxpZGF0aW9uLlxuICAgICAgICBjb25zdCBpc0NvbW1vblZhbGlkUmFuZ2UgPSB0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yID09PSBudWxsIHx8XG4gICAgICAgICAgICAoY3AgPiAweDFmICYmIGNwIDwgMHg3ZikgfHxcbiAgICAgICAgICAgIGNwID09PSAkLkxJTkVfRkVFRCB8fFxuICAgICAgICAgICAgY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOIHx8XG4gICAgICAgICAgICAoY3AgPiAweDlmICYmIGNwIDwgNjQ5NzYpO1xuICAgICAgICBpZiAoIWlzQ29tbW9uVmFsaWRSYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tGb3JQcm9ibGVtYXRpY0NoYXJhY3RlcnMoY3ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9XG4gICAgX2NoZWNrRm9yUHJvYmxlbWF0aWNDaGFyYWN0ZXJzKGNwKSB7XG4gICAgICAgIGlmIChpc0NvbnRyb2xDb2RlUG9pbnQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNvbnRyb2xDaGFyYWN0ZXJJbklucHV0U3RyZWFtKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1VuZGVmaW5lZENvZGVQb2ludChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0cmVhdChjb3VudCkge1xuICAgICAgICB0aGlzLnBvcyAtPSBjb3VudDtcbiAgICAgICAgd2hpbGUgKHRoaXMucG9zIDwgdGhpcy5sYXN0R2FwUG9zKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLmdhcFN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgdGhpcy5wb3MtLTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlcHJvY2Vzc29yLmpzLm1hcCIsICJleHBvcnQgdmFyIFRva2VuVHlwZTtcbihmdW5jdGlvbiAoVG9rZW5UeXBlKSB7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNIQVJBQ1RFUlwiXSA9IDBdID0gXCJDSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiTlVMTF9DSEFSQUNURVJcIl0gPSAxXSA9IFwiTlVMTF9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiV0hJVEVTUEFDRV9DSEFSQUNURVJcIl0gPSAyXSA9IFwiV0hJVEVTUEFDRV9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiU1RBUlRfVEFHXCJdID0gM10gPSBcIlNUQVJUX1RBR1wiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFTkRfVEFHXCJdID0gNF0gPSBcIkVORF9UQUdcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiQ09NTUVOVFwiXSA9IDVdID0gXCJDT01NRU5UXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRPQ1RZUEVcIl0gPSA2XSA9IFwiRE9DVFlQRVwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFT0ZcIl0gPSA3XSA9IFwiRU9GXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkhJQkVSTkFUSU9OXCJdID0gOF0gPSBcIkhJQkVSTkFUSU9OXCI7XG59KShUb2tlblR5cGUgPSBUb2tlblR5cGUgfHwgKFRva2VuVHlwZSA9IHt9KSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW5BdHRyKHRva2VuLCBhdHRyTmFtZSkge1xuICAgIGZvciAobGV0IGkgPSB0b2tlbi5hdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gYXR0ck5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbi5hdHRyc1tpXS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRva2VuLmpzLm1hcCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIvKiogQWxsIHZhbGlkIG5hbWVzcGFjZXMgaW4gSFRNTC4gKi9cbmV4cG9ydCB2YXIgTlM7XG4oZnVuY3Rpb24gKE5TKSB7XG4gICAgTlNbXCJIVE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI7XG4gICAgTlNbXCJNQVRITUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtcbiAgICBOU1tcIlNWR1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICBOU1tcIlhMSU5LXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI7XG4gICAgTlNbXCJYTUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiO1xuICAgIE5TW1wiWE1MTlNcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCI7XG59KShOUyA9IE5TIHx8IChOUyA9IHt9KSk7XG5leHBvcnQgdmFyIEFUVFJTO1xuKGZ1bmN0aW9uIChBVFRSUykge1xuICAgIEFUVFJTW1wiVFlQRVwiXSA9IFwidHlwZVwiO1xuICAgIEFUVFJTW1wiQUNUSU9OXCJdID0gXCJhY3Rpb25cIjtcbiAgICBBVFRSU1tcIkVOQ09ESU5HXCJdID0gXCJlbmNvZGluZ1wiO1xuICAgIEFUVFJTW1wiUFJPTVBUXCJdID0gXCJwcm9tcHRcIjtcbiAgICBBVFRSU1tcIk5BTUVcIl0gPSBcIm5hbWVcIjtcbiAgICBBVFRSU1tcIkNPTE9SXCJdID0gXCJjb2xvclwiO1xuICAgIEFUVFJTW1wiRkFDRVwiXSA9IFwiZmFjZVwiO1xuICAgIEFUVFJTW1wiU0laRVwiXSA9IFwic2l6ZVwiO1xufSkoQVRUUlMgPSBBVFRSUyB8fCAoQVRUUlMgPSB7fSkpO1xuLyoqXG4gKiBUaGUgbW9kZSBvZiB0aGUgZG9jdW1lbnQuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWRvY3VtZW50LWxpbWl0ZWQtcXVpcmtzfVxuICovXG5leHBvcnQgdmFyIERPQ1VNRU5UX01PREU7XG4oZnVuY3Rpb24gKERPQ1VNRU5UX01PREUpIHtcbiAgICBET0NVTUVOVF9NT0RFW1wiTk9fUVVJUktTXCJdID0gXCJuby1xdWlya3NcIjtcbiAgICBET0NVTUVOVF9NT0RFW1wiUVVJUktTXCJdID0gXCJxdWlya3NcIjtcbiAgICBET0NVTUVOVF9NT0RFW1wiTElNSVRFRF9RVUlSS1NcIl0gPSBcImxpbWl0ZWQtcXVpcmtzXCI7XG59KShET0NVTUVOVF9NT0RFID0gRE9DVU1FTlRfTU9ERSB8fCAoRE9DVU1FTlRfTU9ERSA9IHt9KSk7XG5leHBvcnQgdmFyIFRBR19OQU1FUztcbihmdW5jdGlvbiAoVEFHX05BTUVTKSB7XG4gICAgVEFHX05BTUVTW1wiQVwiXSA9IFwiYVwiO1xuICAgIFRBR19OQU1FU1tcIkFERFJFU1NcIl0gPSBcImFkZHJlc3NcIjtcbiAgICBUQUdfTkFNRVNbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IFwiYW5ub3RhdGlvbi14bWxcIjtcbiAgICBUQUdfTkFNRVNbXCJBUFBMRVRcIl0gPSBcImFwcGxldFwiO1xuICAgIFRBR19OQU1FU1tcIkFSRUFcIl0gPSBcImFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJBUlRJQ0xFXCJdID0gXCJhcnRpY2xlXCI7XG4gICAgVEFHX05BTUVTW1wiQVNJREVcIl0gPSBcImFzaWRlXCI7XG4gICAgVEFHX05BTUVTW1wiQlwiXSA9IFwiYlwiO1xuICAgIFRBR19OQU1FU1tcIkJBU0VcIl0gPSBcImJhc2VcIjtcbiAgICBUQUdfTkFNRVNbXCJCQVNFRk9OVFwiXSA9IFwiYmFzZWZvbnRcIjtcbiAgICBUQUdfTkFNRVNbXCJCR1NPVU5EXCJdID0gXCJiZ3NvdW5kXCI7XG4gICAgVEFHX05BTUVTW1wiQklHXCJdID0gXCJiaWdcIjtcbiAgICBUQUdfTkFNRVNbXCJCTE9DS1FVT1RFXCJdID0gXCJibG9ja3F1b3RlXCI7XG4gICAgVEFHX05BTUVTW1wiQk9EWVwiXSA9IFwiYm9keVwiO1xuICAgIFRBR19OQU1FU1tcIkJSXCJdID0gXCJiclwiO1xuICAgIFRBR19OQU1FU1tcIkJVVFRPTlwiXSA9IFwiYnV0dG9uXCI7XG4gICAgVEFHX05BTUVTW1wiQ0FQVElPTlwiXSA9IFwiY2FwdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIkNFTlRFUlwiXSA9IFwiY2VudGVyXCI7XG4gICAgVEFHX05BTUVTW1wiQ09ERVwiXSA9IFwiY29kZVwiO1xuICAgIFRBR19OQU1FU1tcIkNPTFwiXSA9IFwiY29sXCI7XG4gICAgVEFHX05BTUVTW1wiQ09MR1JPVVBcIl0gPSBcImNvbGdyb3VwXCI7XG4gICAgVEFHX05BTUVTW1wiRERcIl0gPSBcImRkXCI7XG4gICAgVEFHX05BTUVTW1wiREVTQ1wiXSA9IFwiZGVzY1wiO1xuICAgIFRBR19OQU1FU1tcIkRFVEFJTFNcIl0gPSBcImRldGFpbHNcIjtcbiAgICBUQUdfTkFNRVNbXCJESUFMT0dcIl0gPSBcImRpYWxvZ1wiO1xuICAgIFRBR19OQU1FU1tcIkRJUlwiXSA9IFwiZGlyXCI7XG4gICAgVEFHX05BTUVTW1wiRElWXCJdID0gXCJkaXZcIjtcbiAgICBUQUdfTkFNRVNbXCJETFwiXSA9IFwiZGxcIjtcbiAgICBUQUdfTkFNRVNbXCJEVFwiXSA9IFwiZHRcIjtcbiAgICBUQUdfTkFNRVNbXCJFTVwiXSA9IFwiZW1cIjtcbiAgICBUQUdfTkFNRVNbXCJFTUJFRFwiXSA9IFwiZW1iZWRcIjtcbiAgICBUQUdfTkFNRVNbXCJGSUVMRFNFVFwiXSA9IFwiZmllbGRzZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJGSUdDQVBUSU9OXCJdID0gXCJmaWdjYXB0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiRklHVVJFXCJdID0gXCJmaWd1cmVcIjtcbiAgICBUQUdfTkFNRVNbXCJGT05UXCJdID0gXCJmb250XCI7XG4gICAgVEFHX05BTUVTW1wiRk9PVEVSXCJdID0gXCJmb290ZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJGT1JFSUdOX09CSkVDVFwiXSA9IFwiZm9yZWlnbk9iamVjdFwiO1xuICAgIFRBR19OQU1FU1tcIkZPUk1cIl0gPSBcImZvcm1cIjtcbiAgICBUQUdfTkFNRVNbXCJGUkFNRVwiXSA9IFwiZnJhbWVcIjtcbiAgICBUQUdfTkFNRVNbXCJGUkFNRVNFVFwiXSA9IFwiZnJhbWVzZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJIMVwiXSA9IFwiaDFcIjtcbiAgICBUQUdfTkFNRVNbXCJIMlwiXSA9IFwiaDJcIjtcbiAgICBUQUdfTkFNRVNbXCJIM1wiXSA9IFwiaDNcIjtcbiAgICBUQUdfTkFNRVNbXCJINFwiXSA9IFwiaDRcIjtcbiAgICBUQUdfTkFNRVNbXCJINVwiXSA9IFwiaDVcIjtcbiAgICBUQUdfTkFNRVNbXCJINlwiXSA9IFwiaDZcIjtcbiAgICBUQUdfTkFNRVNbXCJIRUFEXCJdID0gXCJoZWFkXCI7XG4gICAgVEFHX05BTUVTW1wiSEVBREVSXCJdID0gXCJoZWFkZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJIR1JPVVBcIl0gPSBcImhncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIkhSXCJdID0gXCJoclwiO1xuICAgIFRBR19OQU1FU1tcIkhUTUxcIl0gPSBcImh0bWxcIjtcbiAgICBUQUdfTkFNRVNbXCJJXCJdID0gXCJpXCI7XG4gICAgVEFHX05BTUVTW1wiSU1HXCJdID0gXCJpbWdcIjtcbiAgICBUQUdfTkFNRVNbXCJJTUFHRVwiXSA9IFwiaW1hZ2VcIjtcbiAgICBUQUdfTkFNRVNbXCJJTlBVVFwiXSA9IFwiaW5wdXRcIjtcbiAgICBUQUdfTkFNRVNbXCJJRlJBTUVcIl0gPSBcImlmcmFtZVwiO1xuICAgIFRBR19OQU1FU1tcIktFWUdFTlwiXSA9IFwia2V5Z2VuXCI7XG4gICAgVEFHX05BTUVTW1wiTEFCRUxcIl0gPSBcImxhYmVsXCI7XG4gICAgVEFHX05BTUVTW1wiTElcIl0gPSBcImxpXCI7XG4gICAgVEFHX05BTUVTW1wiTElOS1wiXSA9IFwibGlua1wiO1xuICAgIFRBR19OQU1FU1tcIkxJU1RJTkdcIl0gPSBcImxpc3RpbmdcIjtcbiAgICBUQUdfTkFNRVNbXCJNQUlOXCJdID0gXCJtYWluXCI7XG4gICAgVEFHX05BTUVTW1wiTUFMSUdOTUFSS1wiXSA9IFwibWFsaWdubWFya1wiO1xuICAgIFRBR19OQU1FU1tcIk1BUlFVRUVcIl0gPSBcIm1hcnF1ZWVcIjtcbiAgICBUQUdfTkFNRVNbXCJNQVRIXCJdID0gXCJtYXRoXCI7XG4gICAgVEFHX05BTUVTW1wiTUVOVVwiXSA9IFwibWVudVwiO1xuICAgIFRBR19OQU1FU1tcIk1FVEFcIl0gPSBcIm1ldGFcIjtcbiAgICBUQUdfTkFNRVNbXCJNR0xZUEhcIl0gPSBcIm1nbHlwaFwiO1xuICAgIFRBR19OQU1FU1tcIk1JXCJdID0gXCJtaVwiO1xuICAgIFRBR19OQU1FU1tcIk1PXCJdID0gXCJtb1wiO1xuICAgIFRBR19OQU1FU1tcIk1OXCJdID0gXCJtblwiO1xuICAgIFRBR19OQU1FU1tcIk1TXCJdID0gXCJtc1wiO1xuICAgIFRBR19OQU1FU1tcIk1URVhUXCJdID0gXCJtdGV4dFwiO1xuICAgIFRBR19OQU1FU1tcIk5BVlwiXSA9IFwibmF2XCI7XG4gICAgVEFHX05BTUVTW1wiTk9CUlwiXSA9IFwibm9iclwiO1xuICAgIFRBR19OQU1FU1tcIk5PRlJBTUVTXCJdID0gXCJub2ZyYW1lc1wiO1xuICAgIFRBR19OQU1FU1tcIk5PRU1CRURcIl0gPSBcIm5vZW1iZWRcIjtcbiAgICBUQUdfTkFNRVNbXCJOT1NDUklQVFwiXSA9IFwibm9zY3JpcHRcIjtcbiAgICBUQUdfTkFNRVNbXCJPQkpFQ1RcIl0gPSBcIm9iamVjdFwiO1xuICAgIFRBR19OQU1FU1tcIk9MXCJdID0gXCJvbFwiO1xuICAgIFRBR19OQU1FU1tcIk9QVEdST1VQXCJdID0gXCJvcHRncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIk9QVElPTlwiXSA9IFwib3B0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiUFwiXSA9IFwicFwiO1xuICAgIFRBR19OQU1FU1tcIlBBUkFNXCJdID0gXCJwYXJhbVwiO1xuICAgIFRBR19OQU1FU1tcIlBMQUlOVEVYVFwiXSA9IFwicGxhaW50ZXh0XCI7XG4gICAgVEFHX05BTUVTW1wiUFJFXCJdID0gXCJwcmVcIjtcbiAgICBUQUdfTkFNRVNbXCJSQlwiXSA9IFwicmJcIjtcbiAgICBUQUdfTkFNRVNbXCJSUFwiXSA9IFwicnBcIjtcbiAgICBUQUdfTkFNRVNbXCJSVFwiXSA9IFwicnRcIjtcbiAgICBUQUdfTkFNRVNbXCJSVENcIl0gPSBcInJ0Y1wiO1xuICAgIFRBR19OQU1FU1tcIlJVQllcIl0gPSBcInJ1YnlcIjtcbiAgICBUQUdfTkFNRVNbXCJTXCJdID0gXCJzXCI7XG4gICAgVEFHX05BTUVTW1wiU0NSSVBUXCJdID0gXCJzY3JpcHRcIjtcbiAgICBUQUdfTkFNRVNbXCJTRUNUSU9OXCJdID0gXCJzZWN0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiU0VMRUNUXCJdID0gXCJzZWxlY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJTT1VSQ0VcIl0gPSBcInNvdXJjZVwiO1xuICAgIFRBR19OQU1FU1tcIlNNQUxMXCJdID0gXCJzbWFsbFwiO1xuICAgIFRBR19OQU1FU1tcIlNQQU5cIl0gPSBcInNwYW5cIjtcbiAgICBUQUdfTkFNRVNbXCJTVFJJS0VcIl0gPSBcInN0cmlrZVwiO1xuICAgIFRBR19OQU1FU1tcIlNUUk9OR1wiXSA9IFwic3Ryb25nXCI7XG4gICAgVEFHX05BTUVTW1wiU1RZTEVcIl0gPSBcInN0eWxlXCI7XG4gICAgVEFHX05BTUVTW1wiU1VCXCJdID0gXCJzdWJcIjtcbiAgICBUQUdfTkFNRVNbXCJTVU1NQVJZXCJdID0gXCJzdW1tYXJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1VQXCJdID0gXCJzdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJUQUJMRVwiXSA9IFwidGFibGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUQk9EWVwiXSA9IFwidGJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJURU1QTEFURVwiXSA9IFwidGVtcGxhdGVcIjtcbiAgICBUQUdfTkFNRVNbXCJURVhUQVJFQVwiXSA9IFwidGV4dGFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJURk9PVFwiXSA9IFwidGZvb3RcIjtcbiAgICBUQUdfTkFNRVNbXCJURFwiXSA9IFwidGRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSFwiXSA9IFwidGhcIjtcbiAgICBUQUdfTkFNRVNbXCJUSEVBRFwiXSA9IFwidGhlYWRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSVRMRVwiXSA9IFwidGl0bGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUUlwiXSA9IFwidHJcIjtcbiAgICBUQUdfTkFNRVNbXCJUUkFDS1wiXSA9IFwidHJhY2tcIjtcbiAgICBUQUdfTkFNRVNbXCJUVFwiXSA9IFwidHRcIjtcbiAgICBUQUdfTkFNRVNbXCJVXCJdID0gXCJ1XCI7XG4gICAgVEFHX05BTUVTW1wiVUxcIl0gPSBcInVsXCI7XG4gICAgVEFHX05BTUVTW1wiU1ZHXCJdID0gXCJzdmdcIjtcbiAgICBUQUdfTkFNRVNbXCJWQVJcIl0gPSBcInZhclwiO1xuICAgIFRBR19OQU1FU1tcIldCUlwiXSA9IFwid2JyXCI7XG4gICAgVEFHX05BTUVTW1wiWE1QXCJdID0gXCJ4bXBcIjtcbn0pKFRBR19OQU1FUyA9IFRBR19OQU1FUyB8fCAoVEFHX05BTUVTID0ge30pKTtcbi8qKlxuICogVGFnIElEcyBhcmUgbnVtZXJpYyBJRHMgZm9yIGtub3duIHRhZyBuYW1lcy5cbiAqXG4gKiBXZSB1c2UgdGFnIElEcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0YWcgbmFtZSBjb21wYXJpc29ucy5cbiAqL1xuZXhwb3J0IHZhciBUQUdfSUQ7XG4oZnVuY3Rpb24gKFRBR19JRCkge1xuICAgIFRBR19JRFtUQUdfSURbXCJVTktOT1dOXCJdID0gMF0gPSBcIlVOS05PV05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVwiXSA9IDFdID0gXCJBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFERFJFU1NcIl0gPSAyXSA9IFwiQUREUkVTU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IDNdID0gXCJBTk5PVEFUSU9OX1hNTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUFBMRVRcIl0gPSA0XSA9IFwiQVBQTEVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFSRUFcIl0gPSA1XSA9IFwiQVJFQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUlRJQ0xFXCJdID0gNl0gPSBcIkFSVElDTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVNJREVcIl0gPSA3XSA9IFwiQVNJREVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlwiXSA9IDhdID0gXCJCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJBU0VcIl0gPSA5XSA9IFwiQkFTRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCQVNFRk9OVFwiXSA9IDEwXSA9IFwiQkFTRUZPTlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkdTT1VORFwiXSA9IDExXSA9IFwiQkdTT1VORFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCSUdcIl0gPSAxMl0gPSBcIkJJR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCTE9DS1FVT1RFXCJdID0gMTNdID0gXCJCTE9DS1FVT1RFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJPRFlcIl0gPSAxNF0gPSBcIkJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlJcIl0gPSAxNV0gPSBcIkJSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJVVFRPTlwiXSA9IDE2XSA9IFwiQlVUVE9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNBUFRJT05cIl0gPSAxN10gPSBcIkNBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ0VOVEVSXCJdID0gMThdID0gXCJDRU5URVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09ERVwiXSA9IDE5XSA9IFwiQ09ERVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xcIl0gPSAyMF0gPSBcIkNPTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xHUk9VUFwiXSA9IDIxXSA9IFwiQ09MR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRERcIl0gPSAyMl0gPSBcIkREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRFU0NcIl0gPSAyM10gPSBcIkRFU0NcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiREVUQUlMU1wiXSA9IDI0XSA9IFwiREVUQUlMU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESUFMT0dcIl0gPSAyNV0gPSBcIkRJQUxPR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVJcIl0gPSAyNl0gPSBcIkRJUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVZcIl0gPSAyN10gPSBcIkRJVlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJETFwiXSA9IDI4XSA9IFwiRExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRFRcIl0gPSAyOV0gPSBcIkRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkVNXCJdID0gMzBdID0gXCJFTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJFTUJFRFwiXSA9IDMxXSA9IFwiRU1CRURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklFTERTRVRcIl0gPSAzMl0gPSBcIkZJRUxEU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJR0NBUFRJT05cIl0gPSAzM10gPSBcIkZJR0NBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklHVVJFXCJdID0gMzRdID0gXCJGSUdVUkVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9OVFwiXSA9IDM1XSA9IFwiRk9OVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT09URVJcIl0gPSAzNl0gPSBcIkZPT1RFUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT1JFSUdOX09CSkVDVFwiXSA9IDM3XSA9IFwiRk9SRUlHTl9PQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9STVwiXSA9IDM4XSA9IFwiRk9STVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGUkFNRVwiXSA9IDM5XSA9IFwiRlJBTUVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRlJBTUVTRVRcIl0gPSA0MF0gPSBcIkZSQU1FU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgxXCJdID0gNDFdID0gXCJIMVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIMlwiXSA9IDQyXSA9IFwiSDJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDNcIl0gPSA0M10gPSBcIkgzXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg0XCJdID0gNDRdID0gXCJINFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINVwiXSA9IDQ1XSA9IFwiSDVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDZcIl0gPSA0Nl0gPSBcIkg2XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhFQURcIl0gPSA0N10gPSBcIkhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEVBREVSXCJdID0gNDhdID0gXCJIRUFERVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEdST1VQXCJdID0gNDldID0gXCJIR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSFJcIl0gPSA1MF0gPSBcIkhSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhUTUxcIl0gPSA1MV0gPSBcIkhUTUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSVwiXSA9IDUyXSA9IFwiSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUdcIl0gPSA1M10gPSBcIklNR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUFHRVwiXSA9IDU0XSA9IFwiSU1BR0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU5QVVRcIl0gPSA1NV0gPSBcIklOUFVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklGUkFNRVwiXSA9IDU2XSA9IFwiSUZSQU1FXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIktFWUdFTlwiXSA9IDU3XSA9IFwiS0VZR0VOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxBQkVMXCJdID0gNThdID0gXCJMQUJFTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVwiXSA9IDU5XSA9IFwiTElcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElOS1wiXSA9IDYwXSA9IFwiTElOS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVNUSU5HXCJdID0gNjFdID0gXCJMSVNUSU5HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BSU5cIl0gPSA2Ml0gPSBcIk1BSU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFMSUdOTUFSS1wiXSA9IDYzXSA9IFwiTUFMSUdOTUFSS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQVJRVUVFXCJdID0gNjRdID0gXCJNQVJRVUVFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BVEhcIl0gPSA2NV0gPSBcIk1BVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUVOVVwiXSA9IDY2XSA9IFwiTUVOVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNRVRBXCJdID0gNjddID0gXCJNRVRBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1HTFlQSFwiXSA9IDY4XSA9IFwiTUdMWVBIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1JXCJdID0gNjldID0gXCJNSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNT1wiXSA9IDcwXSA9IFwiTU9cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTU5cIl0gPSA3MV0gPSBcIk1OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1TXCJdID0gNzJdID0gXCJNU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNVEVYVFwiXSA9IDczXSA9IFwiTVRFWFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTkFWXCJdID0gNzRdID0gXCJOQVZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9CUlwiXSA9IDc1XSA9IFwiTk9CUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT0ZSQU1FU1wiXSA9IDc2XSA9IFwiTk9GUkFNRVNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9FTUJFRFwiXSA9IDc3XSA9IFwiTk9FTUJFRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT1NDUklQVFwiXSA9IDc4XSA9IFwiTk9TQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0JKRUNUXCJdID0gNzldID0gXCJPQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0xcIl0gPSA4MF0gPSBcIk9MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9QVEdST1VQXCJdID0gODFdID0gXCJPUFRHUk9VUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPUFRJT05cIl0gPSA4Ml0gPSBcIk9QVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQXCJdID0gODNdID0gXCJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBBUkFNXCJdID0gODRdID0gXCJQQVJBTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQTEFJTlRFWFRcIl0gPSA4NV0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQUkVcIl0gPSA4Nl0gPSBcIlBSRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSQlwiXSA9IDg3XSA9IFwiUkJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlBcIl0gPSA4OF0gPSBcIlJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJUXCJdID0gODldID0gXCJSVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVENcIl0gPSA5MF0gPSBcIlJUQ1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVUJZXCJdID0gOTFdID0gXCJSVUJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNcIl0gPSA5Ml0gPSBcIlNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0NSSVBUXCJdID0gOTNdID0gXCJTQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VDVElPTlwiXSA9IDk0XSA9IFwiU0VDVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTRUxFQ1RcIl0gPSA5NV0gPSBcIlNFTEVDVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTT1VSQ0VcIl0gPSA5Nl0gPSBcIlNPVVJDRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTTUFMTFwiXSA9IDk3XSA9IFwiU01BTExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1BBTlwiXSA9IDk4XSA9IFwiU1BBTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJJS0VcIl0gPSA5OV0gPSBcIlNUUklLRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJPTkdcIl0gPSAxMDBdID0gXCJTVFJPTkdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RZTEVcIl0gPSAxMDFdID0gXCJTVFlMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVUJcIl0gPSAxMDJdID0gXCJTVUJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VNTUFSWVwiXSA9IDEwM10gPSBcIlNVTU1BUllcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VQXCJdID0gMTA0XSA9IFwiU1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRBQkxFXCJdID0gMTA1XSA9IFwiVEFCTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEJPRFlcIl0gPSAxMDZdID0gXCJUQk9EWVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURU1QTEFURVwiXSA9IDEwN10gPSBcIlRFTVBMQVRFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRFWFRBUkVBXCJdID0gMTA4XSA9IFwiVEVYVEFSRUFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEZPT1RcIl0gPSAxMDldID0gXCJURk9PVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURFwiXSA9IDExMF0gPSBcIlREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRIXCJdID0gMTExXSA9IFwiVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEhFQURcIl0gPSAxMTJdID0gXCJUSEVBRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSVRMRVwiXSA9IDExM10gPSBcIlRJVExFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRSXCJdID0gMTE0XSA9IFwiVFJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFJBQ0tcIl0gPSAxMTVdID0gXCJUUkFDS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUVFwiXSA9IDExNl0gPSBcIlRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVcIl0gPSAxMTddID0gXCJVXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVMXCJdID0gMTE4XSA9IFwiVUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1ZHXCJdID0gMTE5XSA9IFwiU1ZHXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlZBUlwiXSA9IDEyMF0gPSBcIlZBUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJXQlJcIl0gPSAxMjFdID0gXCJXQlJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiWE1QXCJdID0gMTIyXSA9IFwiWE1QXCI7XG59KShUQUdfSUQgPSBUQUdfSUQgfHwgKFRBR19JRCA9IHt9KSk7XG5jb25zdCBUQUdfTkFNRV9UT19JRCA9IG5ldyBNYXAoW1xuICAgIFtUQUdfTkFNRVMuQSwgVEFHX0lELkFdLFxuICAgIFtUQUdfTkFNRVMuQUREUkVTUywgVEFHX0lELkFERFJFU1NdLFxuICAgIFtUQUdfTkFNRVMuQU5OT1RBVElPTl9YTUwsIFRBR19JRC5BTk5PVEFUSU9OX1hNTF0sXG4gICAgW1RBR19OQU1FUy5BUFBMRVQsIFRBR19JRC5BUFBMRVRdLFxuICAgIFtUQUdfTkFNRVMuQVJFQSwgVEFHX0lELkFSRUFdLFxuICAgIFtUQUdfTkFNRVMuQVJUSUNMRSwgVEFHX0lELkFSVElDTEVdLFxuICAgIFtUQUdfTkFNRVMuQVNJREUsIFRBR19JRC5BU0lERV0sXG4gICAgW1RBR19OQU1FUy5CLCBUQUdfSUQuQl0sXG4gICAgW1RBR19OQU1FUy5CQVNFLCBUQUdfSUQuQkFTRV0sXG4gICAgW1RBR19OQU1FUy5CQVNFRk9OVCwgVEFHX0lELkJBU0VGT05UXSxcbiAgICBbVEFHX05BTUVTLkJHU09VTkQsIFRBR19JRC5CR1NPVU5EXSxcbiAgICBbVEFHX05BTUVTLkJJRywgVEFHX0lELkJJR10sXG4gICAgW1RBR19OQU1FUy5CTE9DS1FVT1RFLCBUQUdfSUQuQkxPQ0tRVU9URV0sXG4gICAgW1RBR19OQU1FUy5CT0RZLCBUQUdfSUQuQk9EWV0sXG4gICAgW1RBR19OQU1FUy5CUiwgVEFHX0lELkJSXSxcbiAgICBbVEFHX05BTUVTLkJVVFRPTiwgVEFHX0lELkJVVFRPTl0sXG4gICAgW1RBR19OQU1FUy5DQVBUSU9OLCBUQUdfSUQuQ0FQVElPTl0sXG4gICAgW1RBR19OQU1FUy5DRU5URVIsIFRBR19JRC5DRU5URVJdLFxuICAgIFtUQUdfTkFNRVMuQ09ERSwgVEFHX0lELkNPREVdLFxuICAgIFtUQUdfTkFNRVMuQ09MLCBUQUdfSUQuQ09MXSxcbiAgICBbVEFHX05BTUVTLkNPTEdST1VQLCBUQUdfSUQuQ09MR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuREQsIFRBR19JRC5ERF0sXG4gICAgW1RBR19OQU1FUy5ERVNDLCBUQUdfSUQuREVTQ10sXG4gICAgW1RBR19OQU1FUy5ERVRBSUxTLCBUQUdfSUQuREVUQUlMU10sXG4gICAgW1RBR19OQU1FUy5ESUFMT0csIFRBR19JRC5ESUFMT0ddLFxuICAgIFtUQUdfTkFNRVMuRElSLCBUQUdfSUQuRElSXSxcbiAgICBbVEFHX05BTUVTLkRJViwgVEFHX0lELkRJVl0sXG4gICAgW1RBR19OQU1FUy5ETCwgVEFHX0lELkRMXSxcbiAgICBbVEFHX05BTUVTLkRULCBUQUdfSUQuRFRdLFxuICAgIFtUQUdfTkFNRVMuRU0sIFRBR19JRC5FTV0sXG4gICAgW1RBR19OQU1FUy5FTUJFRCwgVEFHX0lELkVNQkVEXSxcbiAgICBbVEFHX05BTUVTLkZJRUxEU0VULCBUQUdfSUQuRklFTERTRVRdLFxuICAgIFtUQUdfTkFNRVMuRklHQ0FQVElPTiwgVEFHX0lELkZJR0NBUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuRklHVVJFLCBUQUdfSUQuRklHVVJFXSxcbiAgICBbVEFHX05BTUVTLkZPTlQsIFRBR19JRC5GT05UXSxcbiAgICBbVEFHX05BTUVTLkZPT1RFUiwgVEFHX0lELkZPT1RFUl0sXG4gICAgW1RBR19OQU1FUy5GT1JFSUdOX09CSkVDVCwgVEFHX0lELkZPUkVJR05fT0JKRUNUXSxcbiAgICBbVEFHX05BTUVTLkZPUk0sIFRBR19JRC5GT1JNXSxcbiAgICBbVEFHX05BTUVTLkZSQU1FLCBUQUdfSUQuRlJBTUVdLFxuICAgIFtUQUdfTkFNRVMuRlJBTUVTRVQsIFRBR19JRC5GUkFNRVNFVF0sXG4gICAgW1RBR19OQU1FUy5IMSwgVEFHX0lELkgxXSxcbiAgICBbVEFHX05BTUVTLkgyLCBUQUdfSUQuSDJdLFxuICAgIFtUQUdfTkFNRVMuSDMsIFRBR19JRC5IM10sXG4gICAgW1RBR19OQU1FUy5INCwgVEFHX0lELkg0XSxcbiAgICBbVEFHX05BTUVTLkg1LCBUQUdfSUQuSDVdLFxuICAgIFtUQUdfTkFNRVMuSDYsIFRBR19JRC5INl0sXG4gICAgW1RBR19OQU1FUy5IRUFELCBUQUdfSUQuSEVBRF0sXG4gICAgW1RBR19OQU1FUy5IRUFERVIsIFRBR19JRC5IRUFERVJdLFxuICAgIFtUQUdfTkFNRVMuSEdST1VQLCBUQUdfSUQuSEdST1VQXSxcbiAgICBbVEFHX05BTUVTLkhSLCBUQUdfSUQuSFJdLFxuICAgIFtUQUdfTkFNRVMuSFRNTCwgVEFHX0lELkhUTUxdLFxuICAgIFtUQUdfTkFNRVMuSSwgVEFHX0lELkldLFxuICAgIFtUQUdfTkFNRVMuSU1HLCBUQUdfSUQuSU1HXSxcbiAgICBbVEFHX05BTUVTLklNQUdFLCBUQUdfSUQuSU1BR0VdLFxuICAgIFtUQUdfTkFNRVMuSU5QVVQsIFRBR19JRC5JTlBVVF0sXG4gICAgW1RBR19OQU1FUy5JRlJBTUUsIFRBR19JRC5JRlJBTUVdLFxuICAgIFtUQUdfTkFNRVMuS0VZR0VOLCBUQUdfSUQuS0VZR0VOXSxcbiAgICBbVEFHX05BTUVTLkxBQkVMLCBUQUdfSUQuTEFCRUxdLFxuICAgIFtUQUdfTkFNRVMuTEksIFRBR19JRC5MSV0sXG4gICAgW1RBR19OQU1FUy5MSU5LLCBUQUdfSUQuTElOS10sXG4gICAgW1RBR19OQU1FUy5MSVNUSU5HLCBUQUdfSUQuTElTVElOR10sXG4gICAgW1RBR19OQU1FUy5NQUlOLCBUQUdfSUQuTUFJTl0sXG4gICAgW1RBR19OQU1FUy5NQUxJR05NQVJLLCBUQUdfSUQuTUFMSUdOTUFSS10sXG4gICAgW1RBR19OQU1FUy5NQVJRVUVFLCBUQUdfSUQuTUFSUVVFRV0sXG4gICAgW1RBR19OQU1FUy5NQVRILCBUQUdfSUQuTUFUSF0sXG4gICAgW1RBR19OQU1FUy5NRU5VLCBUQUdfSUQuTUVOVV0sXG4gICAgW1RBR19OQU1FUy5NRVRBLCBUQUdfSUQuTUVUQV0sXG4gICAgW1RBR19OQU1FUy5NR0xZUEgsIFRBR19JRC5NR0xZUEhdLFxuICAgIFtUQUdfTkFNRVMuTUksIFRBR19JRC5NSV0sXG4gICAgW1RBR19OQU1FUy5NTywgVEFHX0lELk1PXSxcbiAgICBbVEFHX05BTUVTLk1OLCBUQUdfSUQuTU5dLFxuICAgIFtUQUdfTkFNRVMuTVMsIFRBR19JRC5NU10sXG4gICAgW1RBR19OQU1FUy5NVEVYVCwgVEFHX0lELk1URVhUXSxcbiAgICBbVEFHX05BTUVTLk5BViwgVEFHX0lELk5BVl0sXG4gICAgW1RBR19OQU1FUy5OT0JSLCBUQUdfSUQuTk9CUl0sXG4gICAgW1RBR19OQU1FUy5OT0ZSQU1FUywgVEFHX0lELk5PRlJBTUVTXSxcbiAgICBbVEFHX05BTUVTLk5PRU1CRUQsIFRBR19JRC5OT0VNQkVEXSxcbiAgICBbVEFHX05BTUVTLk5PU0NSSVBULCBUQUdfSUQuTk9TQ1JJUFRdLFxuICAgIFtUQUdfTkFNRVMuT0JKRUNULCBUQUdfSUQuT0JKRUNUXSxcbiAgICBbVEFHX05BTUVTLk9MLCBUQUdfSUQuT0xdLFxuICAgIFtUQUdfTkFNRVMuT1BUR1JPVVAsIFRBR19JRC5PUFRHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5PUFRJT04sIFRBR19JRC5PUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuUCwgVEFHX0lELlBdLFxuICAgIFtUQUdfTkFNRVMuUEFSQU0sIFRBR19JRC5QQVJBTV0sXG4gICAgW1RBR19OQU1FUy5QTEFJTlRFWFQsIFRBR19JRC5QTEFJTlRFWFRdLFxuICAgIFtUQUdfTkFNRVMuUFJFLCBUQUdfSUQuUFJFXSxcbiAgICBbVEFHX05BTUVTLlJCLCBUQUdfSUQuUkJdLFxuICAgIFtUQUdfTkFNRVMuUlAsIFRBR19JRC5SUF0sXG4gICAgW1RBR19OQU1FUy5SVCwgVEFHX0lELlJUXSxcbiAgICBbVEFHX05BTUVTLlJUQywgVEFHX0lELlJUQ10sXG4gICAgW1RBR19OQU1FUy5SVUJZLCBUQUdfSUQuUlVCWV0sXG4gICAgW1RBR19OQU1FUy5TLCBUQUdfSUQuU10sXG4gICAgW1RBR19OQU1FUy5TQ1JJUFQsIFRBR19JRC5TQ1JJUFRdLFxuICAgIFtUQUdfTkFNRVMuU0VDVElPTiwgVEFHX0lELlNFQ1RJT05dLFxuICAgIFtUQUdfTkFNRVMuU0VMRUNULCBUQUdfSUQuU0VMRUNUXSxcbiAgICBbVEFHX05BTUVTLlNPVVJDRSwgVEFHX0lELlNPVVJDRV0sXG4gICAgW1RBR19OQU1FUy5TTUFMTCwgVEFHX0lELlNNQUxMXSxcbiAgICBbVEFHX05BTUVTLlNQQU4sIFRBR19JRC5TUEFOXSxcbiAgICBbVEFHX05BTUVTLlNUUklLRSwgVEFHX0lELlNUUklLRV0sXG4gICAgW1RBR19OQU1FUy5TVFJPTkcsIFRBR19JRC5TVFJPTkddLFxuICAgIFtUQUdfTkFNRVMuU1RZTEUsIFRBR19JRC5TVFlMRV0sXG4gICAgW1RBR19OQU1FUy5TVUIsIFRBR19JRC5TVUJdLFxuICAgIFtUQUdfTkFNRVMuU1VNTUFSWSwgVEFHX0lELlNVTU1BUlldLFxuICAgIFtUQUdfTkFNRVMuU1VQLCBUQUdfSUQuU1VQXSxcbiAgICBbVEFHX05BTUVTLlRBQkxFLCBUQUdfSUQuVEFCTEVdLFxuICAgIFtUQUdfTkFNRVMuVEJPRFksIFRBR19JRC5UQk9EWV0sXG4gICAgW1RBR19OQU1FUy5URU1QTEFURSwgVEFHX0lELlRFTVBMQVRFXSxcbiAgICBbVEFHX05BTUVTLlRFWFRBUkVBLCBUQUdfSUQuVEVYVEFSRUFdLFxuICAgIFtUQUdfTkFNRVMuVEZPT1QsIFRBR19JRC5URk9PVF0sXG4gICAgW1RBR19OQU1FUy5URCwgVEFHX0lELlREXSxcbiAgICBbVEFHX05BTUVTLlRILCBUQUdfSUQuVEhdLFxuICAgIFtUQUdfTkFNRVMuVEhFQUQsIFRBR19JRC5USEVBRF0sXG4gICAgW1RBR19OQU1FUy5USVRMRSwgVEFHX0lELlRJVExFXSxcbiAgICBbVEFHX05BTUVTLlRSLCBUQUdfSUQuVFJdLFxuICAgIFtUQUdfTkFNRVMuVFJBQ0ssIFRBR19JRC5UUkFDS10sXG4gICAgW1RBR19OQU1FUy5UVCwgVEFHX0lELlRUXSxcbiAgICBbVEFHX05BTUVTLlUsIFRBR19JRC5VXSxcbiAgICBbVEFHX05BTUVTLlVMLCBUQUdfSUQuVUxdLFxuICAgIFtUQUdfTkFNRVMuU1ZHLCBUQUdfSUQuU1ZHXSxcbiAgICBbVEFHX05BTUVTLlZBUiwgVEFHX0lELlZBUl0sXG4gICAgW1RBR19OQU1FUy5XQlIsIFRBR19JRC5XQlJdLFxuICAgIFtUQUdfTkFNRVMuWE1QLCBUQUdfSUQuWE1QXSxcbl0pO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRhZ0lEKHRhZ05hbWUpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IFRBR19OQU1FX1RPX0lELmdldCh0YWdOYW1lKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogVEFHX0lELlVOS05PV047XG59XG5jb25zdCAkID0gVEFHX0lEO1xuZXhwb3J0IGNvbnN0IFNQRUNJQUxfRUxFTUVOVFMgPSB7XG4gICAgW05TLkhUTUxdOiBuZXcgU2V0KFtcbiAgICAgICAgJC5BRERSRVNTLFxuICAgICAgICAkLkFQUExFVCxcbiAgICAgICAgJC5BUkVBLFxuICAgICAgICAkLkFSVElDTEUsXG4gICAgICAgICQuQVNJREUsXG4gICAgICAgICQuQkFTRSxcbiAgICAgICAgJC5CQVNFRk9OVCxcbiAgICAgICAgJC5CR1NPVU5ELFxuICAgICAgICAkLkJMT0NLUVVPVEUsXG4gICAgICAgICQuQk9EWSxcbiAgICAgICAgJC5CUixcbiAgICAgICAgJC5CVVRUT04sXG4gICAgICAgICQuQ0FQVElPTixcbiAgICAgICAgJC5DRU5URVIsXG4gICAgICAgICQuQ09MLFxuICAgICAgICAkLkNPTEdST1VQLFxuICAgICAgICAkLkRELFxuICAgICAgICAkLkRFVEFJTFMsXG4gICAgICAgICQuRElSLFxuICAgICAgICAkLkRJVixcbiAgICAgICAgJC5ETCxcbiAgICAgICAgJC5EVCxcbiAgICAgICAgJC5FTUJFRCxcbiAgICAgICAgJC5GSUVMRFNFVCxcbiAgICAgICAgJC5GSUdDQVBUSU9OLFxuICAgICAgICAkLkZJR1VSRSxcbiAgICAgICAgJC5GT09URVIsXG4gICAgICAgICQuRk9STSxcbiAgICAgICAgJC5GUkFNRSxcbiAgICAgICAgJC5GUkFNRVNFVCxcbiAgICAgICAgJC5IMSxcbiAgICAgICAgJC5IMixcbiAgICAgICAgJC5IMyxcbiAgICAgICAgJC5INCxcbiAgICAgICAgJC5INSxcbiAgICAgICAgJC5INixcbiAgICAgICAgJC5IRUFELFxuICAgICAgICAkLkhFQURFUixcbiAgICAgICAgJC5IR1JPVVAsXG4gICAgICAgICQuSFIsXG4gICAgICAgICQuSFRNTCxcbiAgICAgICAgJC5JRlJBTUUsXG4gICAgICAgICQuSU1HLFxuICAgICAgICAkLklOUFVULFxuICAgICAgICAkLkxJLFxuICAgICAgICAkLkxJTkssXG4gICAgICAgICQuTElTVElORyxcbiAgICAgICAgJC5NQUlOLFxuICAgICAgICAkLk1BUlFVRUUsXG4gICAgICAgICQuTUVOVSxcbiAgICAgICAgJC5NRVRBLFxuICAgICAgICAkLk5BVixcbiAgICAgICAgJC5OT0VNQkVELFxuICAgICAgICAkLk5PRlJBTUVTLFxuICAgICAgICAkLk5PU0NSSVBULFxuICAgICAgICAkLk9CSkVDVCxcbiAgICAgICAgJC5PTCxcbiAgICAgICAgJC5QLFxuICAgICAgICAkLlBBUkFNLFxuICAgICAgICAkLlBMQUlOVEVYVCxcbiAgICAgICAgJC5QUkUsXG4gICAgICAgICQuU0NSSVBULFxuICAgICAgICAkLlNFQ1RJT04sXG4gICAgICAgICQuU0VMRUNULFxuICAgICAgICAkLlNPVVJDRSxcbiAgICAgICAgJC5TVFlMRSxcbiAgICAgICAgJC5TVU1NQVJZLFxuICAgICAgICAkLlRBQkxFLFxuICAgICAgICAkLlRCT0RZLFxuICAgICAgICAkLlRELFxuICAgICAgICAkLlRFTVBMQVRFLFxuICAgICAgICAkLlRFWFRBUkVBLFxuICAgICAgICAkLlRGT09ULFxuICAgICAgICAkLlRILFxuICAgICAgICAkLlRIRUFELFxuICAgICAgICAkLlRJVExFLFxuICAgICAgICAkLlRSLFxuICAgICAgICAkLlRSQUNLLFxuICAgICAgICAkLlVMLFxuICAgICAgICAkLldCUixcbiAgICAgICAgJC5YTVAsXG4gICAgXSksXG4gICAgW05TLk1BVEhNTF06IG5ldyBTZXQoWyQuTUksICQuTU8sICQuTU4sICQuTVMsICQuTVRFWFQsICQuQU5OT1RBVElPTl9YTUxdKSxcbiAgICBbTlMuU1ZHXTogbmV3IFNldChbJC5USVRMRSwgJC5GT1JFSUdOX09CSkVDVCwgJC5ERVNDXSksXG4gICAgW05TLlhMSU5LXTogbmV3IFNldCgpLFxuICAgIFtOUy5YTUxdOiBuZXcgU2V0KCksXG4gICAgW05TLlhNTE5TXTogbmV3IFNldCgpLFxufTtcbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcmVkSGVhZGVyKHRuKSB7XG4gICAgcmV0dXJuIHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2O1xufVxuY29uc3QgVU5FU0NBUEVEX1RFWFQgPSBuZXcgU2V0KFtcbiAgICBUQUdfTkFNRVMuU1RZTEUsXG4gICAgVEFHX05BTUVTLlNDUklQVCxcbiAgICBUQUdfTkFNRVMuWE1QLFxuICAgIFRBR19OQU1FUy5JRlJBTUUsXG4gICAgVEFHX05BTUVTLk5PRU1CRUQsXG4gICAgVEFHX05BTUVTLk5PRlJBTUVTLFxuICAgIFRBR19OQU1FUy5QTEFJTlRFWFQsXG5dKTtcbmV4cG9ydCBmdW5jdGlvbiBoYXNVbmVzY2FwZWRUZXh0KHRuLCBzY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgcmV0dXJuIFVORVNDQVBFRF9URVhULmhhcyh0bikgfHwgKHNjcmlwdGluZ0VuYWJsZWQgJiYgdG4gPT09IFRBR19OQU1FUy5OT1NDUklQVCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sLmpzLm1hcCIsICJpbXBvcnQgeyBQcmVwcm9jZXNzb3IgfSBmcm9tICcuL3ByZXByb2Nlc3Nvci5qcyc7XG5pbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBTRVFVRU5DRVMgYXMgJCQsIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiwgaXNTdXJyb2dhdGUsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIH0gZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVG9rZW5UeXBlLCBnZXRUb2tlbkF0dHIsIH0gZnJvbSAnLi4vY29tbW9uL3Rva2VuLmpzJztcbmltcG9ydCB7IGh0bWxEZWNvZGVUcmVlLCBCaW5UcmllRmxhZ3MsIGRldGVybWluZUJyYW5jaCB9IGZyb20gJ2VudGl0aWVzL2xpYi9kZWNvZGUuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCB7IFRBR19JRCwgZ2V0VGFnSUQgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG4vL0MxIFVuaWNvZGUgY29udHJvbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHJlcGxhY2VtZW50c1xuY29uc3QgQzFfQ09OVFJPTFNfUkVGRVJFTkNFX1JFUExBQ0VNRU5UUyA9IG5ldyBNYXAoW1xuICAgIFsweDgwLCA4MzY0XSxcbiAgICBbMHg4MiwgODIxOF0sXG4gICAgWzB4ODMsIDQwMl0sXG4gICAgWzB4ODQsIDgyMjJdLFxuICAgIFsweDg1LCA4MjMwXSxcbiAgICBbMHg4NiwgODIyNF0sXG4gICAgWzB4ODcsIDgyMjVdLFxuICAgIFsweDg4LCA3MTBdLFxuICAgIFsweDg5LCA4MjQwXSxcbiAgICBbMHg4YSwgMzUyXSxcbiAgICBbMHg4YiwgODI0OV0sXG4gICAgWzB4OGMsIDMzOF0sXG4gICAgWzB4OGUsIDM4MV0sXG4gICAgWzB4OTEsIDgyMTZdLFxuICAgIFsweDkyLCA4MjE3XSxcbiAgICBbMHg5MywgODIyMF0sXG4gICAgWzB4OTQsIDgyMjFdLFxuICAgIFsweDk1LCA4MjI2XSxcbiAgICBbMHg5NiwgODIxMV0sXG4gICAgWzB4OTcsIDgyMTJdLFxuICAgIFsweDk4LCA3MzJdLFxuICAgIFsweDk5LCA4NDgyXSxcbiAgICBbMHg5YSwgMzUzXSxcbiAgICBbMHg5YiwgODI1MF0sXG4gICAgWzB4OWMsIDMzOV0sXG4gICAgWzB4OWUsIDM4Ml0sXG4gICAgWzB4OWYsIDM3Nl0sXG5dKTtcbi8vU3RhdGVzXG52YXIgU3RhdGU7XG4oZnVuY3Rpb24gKFN0YXRlKSB7XG4gICAgU3RhdGVbU3RhdGVbXCJEQVRBXCJdID0gMF0gPSBcIkRBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQVwiXSA9IDFdID0gXCJSQ0RBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRcIl0gPSAyXSA9IFwiUkFXVEVYVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFcIl0gPSAzXSA9IFwiU0NSSVBUX0RBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlBMQUlOVEVYVFwiXSA9IDRdID0gXCJQTEFJTlRFWFRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlRBR19PUEVOXCJdID0gNV0gPSBcIlRBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJFTkRfVEFHX09QRU5cIl0gPSA2XSA9IFwiRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJUQUdfTkFNRVwiXSA9IDddID0gXCJUQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0xFU1NfVEhBTl9TSUdOXCJdID0gOF0gPSBcIlJDREFUQV9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0VORF9UQUdfT1BFTlwiXSA9IDldID0gXCJSQ0RBVEFfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfRU5EX1RBR19OQU1FXCJdID0gMTBdID0gXCJSQ0RBVEFfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0xFU1NfVEhBTl9TSUdOXCJdID0gMTFdID0gXCJSQVdURVhUX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0VORF9UQUdfT1BFTlwiXSA9IDEyXSA9IFwiUkFXVEVYVF9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfRU5EX1RBR19OQU1FXCJdID0gMTNdID0gXCJSQVdURVhUX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05cIl0gPSAxNF0gPSBcIlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5cIl0gPSAxNV0gPSBcIlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FXCJdID0gMTZdID0gXCJTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVFwiXSA9IDE3XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSFwiXSA9IDE4XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURcIl0gPSAxOV0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSFwiXSA9IDIwXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSFwiXSA9IDIxXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIl0gPSAyMl0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOXCJdID0gMjNdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVcIl0gPSAyNF0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUXCJdID0gMjVdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRFwiXSA9IDI2XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hcIl0gPSAyN10gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSFwiXSA9IDI4XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiXSA9IDI5XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EXCJdID0gMzBdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0FUVFJJQlVURV9OQU1FXCJdID0gMzFdID0gXCJCRUZPUkVfQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9OQU1FXCJdID0gMzJdID0gXCJBVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfQVRUUklCVVRFX05BTUVcIl0gPSAzM10gPSBcIkFGVEVSX0FUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfQVRUUklCVVRFX1ZBTFVFXCJdID0gMzRdID0gXCJCRUZPUkVfQVRUUklCVVRFX1ZBTFVFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRFwiXSA9IDM1XSA9IFwiQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEXCJdID0gMzZdID0gXCJBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEXCJdID0gMzddID0gXCJBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURcIl0gPSAzOF0gPSBcIkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNFTEZfQ0xPU0lOR19TVEFSVF9UQUdcIl0gPSAzOV0gPSBcIlNFTEZfQ0xPU0lOR19TVEFSVF9UQUdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJPR1VTX0NPTU1FTlRcIl0gPSA0MF0gPSBcIkJPR1VTX0NPTU1FTlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk1BUktVUF9ERUNMQVJBVElPTl9PUEVOXCJdID0gNDFdID0gXCJNQVJLVVBfREVDTEFSQVRJT05fT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9TVEFSVFwiXSA9IDQyXSA9IFwiQ09NTUVOVF9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9TVEFSVF9EQVNIXCJdID0gNDNdID0gXCJDT01NRU5UX1NUQVJUX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRcIl0gPSA0NF0gPSBcIkNPTU1FTlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05cIl0gPSA0NV0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR1wiXSA9IDQ2XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSFwiXSA9IDQ3XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0hcIl0gPSA0OF0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EX0RBU0hcIl0gPSA0OV0gPSBcIkNPTU1FTlRfRU5EX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EXCJdID0gNTBdID0gXCJDT01NRU5UX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRfQkFOR1wiXSA9IDUxXSA9IFwiQ09NTUVOVF9FTkRfQkFOR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRVwiXSA9IDUyXSA9IFwiRE9DVFlQRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfTkFNRVwiXSA9IDUzXSA9IFwiQkVGT1JFX0RPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9OQU1FXCJdID0gNTRdID0gXCJET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfTkFNRVwiXSA9IDU1XSA9IFwiQUZURVJfRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEXCJdID0gNTZdID0gXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiXSA9IDU3XSA9IFwiQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiXSA9IDU4XSA9IFwiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIl0gPSA1OV0gPSBcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiXSA9IDYwXSA9IFwiQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTXCJdID0gNjFdID0gXCJCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRcIl0gPSA2Ml0gPSBcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCJdID0gNjNdID0gXCJCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCJdID0gNjRdID0gXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiXSA9IDY1XSA9IFwiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCJdID0gNjZdID0gXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCT0dVU19ET0NUWVBFXCJdID0gNjddID0gXCJCT0dVU19ET0NUWVBFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OXCJdID0gNjhdID0gXCJDREFUQV9TRUNUSU9OXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OX0JSQUNLRVRcIl0gPSA2OV0gPSBcIkNEQVRBX1NFQ1RJT05fQlJBQ0tFVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0RBVEFfU0VDVElPTl9FTkRcIl0gPSA3MF0gPSBcIkNEQVRBX1NFQ1RJT05fRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzFdID0gXCJDSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzJdID0gXCJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBTUJJR1VPVVNfQU1QRVJTQU5EXCJdID0gNzNdID0gXCJBTUJJR1VPVVNfQU1QRVJTQU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3NF0gPSBcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVFwiXSA9IDc1XSA9IFwiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDc2XSA9IFwiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzddID0gXCJERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkRcIl0gPSA3OF0gPSBcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkRcIjtcbn0pKFN0YXRlIHx8IChTdGF0ZSA9IHt9KSk7XG4vL1Rva2VuaXplciBpbml0aWFsIHN0YXRlcyBmb3IgZGlmZmVyZW50IG1vZGVzXG5leHBvcnQgY29uc3QgVG9rZW5pemVyTW9kZSA9IHtcbiAgICBEQVRBOiBTdGF0ZS5EQVRBLFxuICAgIFJDREFUQTogU3RhdGUuUkNEQVRBLFxuICAgIFJBV1RFWFQ6IFN0YXRlLlJBV1RFWFQsXG4gICAgU0NSSVBUX0RBVEE6IFN0YXRlLlNDUklQVF9EQVRBLFxuICAgIFBMQUlOVEVYVDogU3RhdGUuUExBSU5URVhULFxuICAgIENEQVRBX1NFQ1RJT046IFN0YXRlLkNEQVRBX1NFQ1RJT04sXG59O1xuLy9VdGlsc1xuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlVcHBlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfWjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9aO1xufVxuZnVuY3Rpb24gaXNBc2NpaUxldHRlcihjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTG93ZXIoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlMZXR0ZXIoY3ApIHx8IGlzQXNjaWlEaWdpdChjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfRjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlckhleERpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fU01BTExfQSAmJiBjcCA8PSAkLkxBVElOX1NNQUxMX0Y7XG59XG5mdW5jdGlvbiBpc0FzY2lpSGV4RGlnaXQoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaURpZ2l0KGNwKSB8fCBpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkgfHwgaXNBc2NpaUxvd2VySGV4RGlnaXQoY3ApO1xufVxuZnVuY3Rpb24gdG9Bc2NpaUxvd2VyKGNwKSB7XG4gICAgcmV0dXJuIGNwICsgMzI7XG59XG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY3ApIHtcbiAgICByZXR1cm4gY3AgPT09ICQuU1BBQ0UgfHwgY3AgPT09ICQuTElORV9GRUVEIHx8IGNwID09PSAkLlRBQlVMQVRJT04gfHwgY3AgPT09ICQuRk9STV9GRUVEO1xufVxuZnVuY3Rpb24gaXNFbnRpdHlJbkF0dHJpYnV0ZUludmFsaWRFbmQobmV4dENwKSB7XG4gICAgcmV0dXJuIG5leHRDcCA9PT0gJC5FUVVBTFNfU0lHTiB8fCBpc0FzY2lpQWxwaGFOdW1lcmljKG5leHRDcCk7XG59XG5mdW5jdGlvbiBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZChjcCkge1xuICAgIHJldHVybiBpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR047XG59XG4vL1Rva2VuaXplclxuZXhwb3J0IGNsYXNzIFRva2VuaXplciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgaGFuZGxlcikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvKiogRW5zdXJlcyB0aGF0IHRoZSBwYXJzaW5nIGxvb3AgaXNuJ3QgcnVuIG11bHRpcGxlIHRpbWVzIGF0IG9uY2UuICovXG4gICAgICAgIHRoaXMuaW5Mb29wID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBhZGp1c3RlZCBub2RlIGV4aXN0cywgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlLFxuICAgICAgICAgKiBhbmQgdGhhdCBpdCBpcyBub3QgYW4gaW50ZWdyYXRpb24gcG9pbnQgZm9yIGVpdGhlciBNYXRoTUwgb3IgSFRNTC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3RyZWUtY29uc3RydWN0aW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbkZvcmVpZ25Ob2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9ICcnO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAtMTtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAtMTtcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIgPSB7IG5hbWU6ICcnLCB2YWx1ZTogJycgfTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IgPSBuZXcgUHJlcHJvY2Vzc29yKGhhbmRsZXIpO1xuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKC0xKTtcbiAgICB9XG4gICAgLy9FcnJvcnNcbiAgICBfZXJyKGNvZGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5oYW5kbGVyKS5vblBhcnNlRXJyb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB0aGlzLnByZXByb2Nlc3Nvci5nZXRFcnJvcihjb2RlKSk7XG4gICAgfVxuICAgIC8vIE5PVEU6IGBvZmZzZXRgIG1heSBuZXZlciBydW4gYWNyb3NzIGxpbmUgYm91bmRhcmllcy5cbiAgICBnZXRDdXJyZW50TG9jYXRpb24ob2Zmc2V0KSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFydExpbmU6IHRoaXMucHJlcHJvY2Vzc29yLmxpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogdGhpcy5wcmVwcm9jZXNzb3IuY29sIC0gb2Zmc2V0LFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldCAtIG9mZnNldCxcbiAgICAgICAgICAgIGVuZExpbmU6IC0xLFxuICAgICAgICAgICAgZW5kQ29sOiAtMSxcbiAgICAgICAgICAgIGVuZE9mZnNldDogLTEsXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9ydW5QYXJzaW5nTG9vcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5Mb29wKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmluTG9vcCA9IHRydWU7XG4gICAgICAgIHdoaWxlICh0aGlzLmFjdGl2ZSAmJiAhdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ID0gMDtcbiAgICAgICAgICAgIGNvbnN0IGNwID0gdGhpcy5fY29uc3VtZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluTG9vcCA9IGZhbHNlO1xuICAgIH1cbiAgICAvL0FQSVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfVxuICAgIHJlc3VtZSh3cml0ZUNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGFyc2VyIHdhcyBhbHJlYWR5IHJlc3VtZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvLyBOZWNlc3NhcnkgZm9yIHN5bmNocm9ub3VzIHJlc3VtZS5cbiAgICAgICAgaWYgKHRoaXMuaW5Mb29wKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB3cml0ZUNhbGxiYWNrID09PSBudWxsIHx8IHdyaXRlQ2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdyaXRlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZShjaHVuaywgaXNMYXN0Q2h1bmssIHdyaXRlQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci53cml0ZShjaHVuaywgaXNMYXN0Q2h1bmspO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB3cml0ZUNhbGxiYWNrID09PSBudWxsIHx8IHdyaXRlQ2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdyaXRlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuayk7XG4gICAgICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKCk7XG4gICAgfVxuICAgIC8vSGliZXJuYXRpb25cbiAgICBfZW5zdXJlSGliZXJuYXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5lbmRPZkNodW5rSGl0KSB7XG4gICAgICAgICAgICB0aGlzLl91bmNvbnN1bWUodGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy9Db25zdW1wdGlvblxuICAgIF9jb25zdW1lKCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCsrO1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZSgpO1xuICAgIH1cbiAgICBfdW5jb25zdW1lKGNvdW50KSB7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90IC09IGNvdW50O1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5yZXRyZWF0KGNvdW50KTtcbiAgICB9XG4gICAgX3JlY29uc3VtZUluU3RhdGUoc3RhdGUsIGNwKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICB9XG4gICAgX2FkdmFuY2VCeShjb3VudCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCArPSBjb3VudDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2gocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSkge1xuICAgICAgICAgICAgLy8gV2Ugd2lsbCBhbHJlYWR5IGhhdmUgY29uc3VtZWQgb25lIGNoYXJhY3RlciBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC5cbiAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeShwYXR0ZXJuLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL1Rva2VuIGNyZWF0aW9uXG4gICAgX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLlNUQVJUX1RBRyxcbiAgICAgICAgICAgIHRhZ05hbWU6ICcnLFxuICAgICAgICAgICAgdGFnSUQ6IFRBR19JRC5VTktOT1dOLFxuICAgICAgICAgICAgc2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYWNrU2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYXR0cnM6IFtdLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDEpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlRW5kVGFnVG9rZW4oKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkVORF9UQUcsXG4gICAgICAgICAgICB0YWdOYW1lOiAnJyxcbiAgICAgICAgICAgIHRhZ0lEOiBUQUdfSUQuVU5LTk9XTixcbiAgICAgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFja1NlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGF0dHJzOiBbXSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigyKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUNvbW1lbnRUb2tlbihvZmZzZXQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuQ09NTUVOVCxcbiAgICAgICAgICAgIGRhdGE6ICcnLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKG9mZnNldCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVEb2N0eXBlVG9rZW4oaW5pdGlhbE5hbWUpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuRE9DVFlQRSxcbiAgICAgICAgICAgIG5hbWU6IGluaXRpYWxOYW1lLFxuICAgICAgICAgICAgZm9yY2VRdWlya3M6IGZhbHNlLFxuICAgICAgICAgICAgcHVibGljSWQ6IG51bGwsXG4gICAgICAgICAgICBzeXN0ZW1JZDogbnVsbCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoYXJzKSB7XG4gICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGNoYXJzLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuY3VycmVudExvY2F0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvL1RhZyBhdHRyaWJ1dGVzXG4gICAgX2NyZWF0ZUF0dHIoYXR0ck5hbWVGaXJzdENoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIgPSB7XG4gICAgICAgICAgICBuYW1lOiBhdHRyTmFtZUZpcnN0Q2gsXG4gICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgfVxuICAgIF9sZWF2ZUF0dHJOYW1lKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHZhciBfYjtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgaWYgKGdldFRva2VuQXR0cih0b2tlbiwgdGhpcy5jdXJyZW50QXR0ci5uYW1lKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnMucHVzaCh0aGlzLmN1cnJlbnRBdHRyKTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5sb2NhdGlvbiAmJiB0aGlzLmN1cnJlbnRMb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJMb2NhdGlvbnMgPSAoKF9hID0gKF9iID0gdG9rZW4ubG9jYXRpb24pLmF0dHJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAoX2IuYXR0cnMgPSBPYmplY3QuY3JlYXRlKG51bGwpKSk7XG4gICAgICAgICAgICAgICAgYXR0ckxvY2F0aW9uc1t0aGlzLmN1cnJlbnRBdHRyLm5hbWVdID0gdGhpcy5jdXJyZW50TG9jYXRpb247XG4gICAgICAgICAgICAgICAgLy8gU2V0IGVuZCBsb2NhdGlvblxuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmR1cGxpY2F0ZUF0dHJpYnV0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2xlYXZlQXR0clZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZExpbmUgPSB0aGlzLnByZXByb2Nlc3Nvci5saW5lO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kQ29sID0gdGhpcy5wcmVwcm9jZXNzb3IuY29sO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vVG9rZW4gZW1pc3Npb25cbiAgICBwcmVwYXJlVG9rZW4oY3QpIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihjdC5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgaWYgKGN0LmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRMaW5lID0gdGhpcy5wcmVwcm9jZXNzb3IubGluZTtcbiAgICAgICAgICAgIGN0LmxvY2F0aW9uLmVuZENvbCA9IHRoaXMucHJlcHJvY2Vzc29yLmNvbCArIDE7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRPZmZzZXQgPSB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQgKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oLTEpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCkge1xuICAgICAgICBjb25zdCBjdCA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIGN0LnRhZ0lEID0gZ2V0VGFnSUQoY3QudGFnTmFtZSk7XG4gICAgICAgIGlmIChjdC50eXBlID09PSBUb2tlblR5cGUuU1RBUlRfVEFHKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSBjdC50YWdOYW1lO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uU3RhcnRUYWcoY3QpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN0LmF0dHJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVuZFRhZ1dpdGhBdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdC5zZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25FbmRUYWcoY3QpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudENvbW1lbnQoY3QpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Db21tZW50KGN0KTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIGVtaXRDdXJyZW50RG9jdHlwZShjdCkge1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkRvY3R5cGUoY3QpO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4obmV4dExvY2F0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGEgcGVuZGluZyBjaGFyYWN0ZXIgdG9rZW4sIG1ha2UgaXQncyBlbmQgbG9jYXRpb24gZXF1YWwgdG8gdGhlXG4gICAgICAgICAgICAvL2N1cnJlbnQgdG9rZW4ncyBzdGFydCBsb2NhdGlvbi5cbiAgICAgICAgICAgIGlmIChuZXh0TG9jYXRpb24gJiYgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRMaW5lID0gbmV4dExvY2F0aW9uLnN0YXJ0TGluZTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRDb2wgPSBuZXh0TG9jYXRpb24uc3RhcnRDb2w7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kT2Zmc2V0ID0gbmV4dExvY2F0aW9uLnN0YXJ0T2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkNoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25OdWxsQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbldoaXRlc3BhY2VDaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2VtaXRFT0ZUb2tlbigpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRMaW5lID0gbG9jYXRpb24uc3RhcnRMaW5lO1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kQ29sID0gbG9jYXRpb24uc3RhcnRDb2w7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRPZmZzZXQgPSBsb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uRW9mKHsgdHlwZTogVG9rZW5UeXBlLkVPRiwgbG9jYXRpb24gfSk7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIC8vQ2hhcmFjdGVycyBlbWlzc2lvblxuICAgIC8vT1BUSU1JWkFUSU9OOiBzcGVjaWZpY2F0aW9uIHVzZXMgb25seSBvbmUgdHlwZSBvZiBjaGFyYWN0ZXIgdG9rZW5zIChvbmUgdG9rZW4gcGVyIGNoYXJhY3RlcikuXG4gICAgLy9UaGlzIGNhdXNlcyBhIGh1Z2UgbWVtb3J5IG92ZXJoZWFkIGFuZCBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBwYXJzZXIgbG9vcHMuIHBhcnNlNSB1c2VzIDMgZ3JvdXBzIG9mIGNoYXJhY3RlcnMuXG4gICAgLy9JZiB3ZSBoYXZlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGJlbG9uZyB0byB0aGUgc2FtZSBncm91cCwgdGhlIHBhcnNlciBjYW4gcHJvY2VzcyBpdFxuICAgIC8vYXMgYSBzaW5nbGUgc29saWQgY2hhcmFjdGVyIHRva2VuLlxuICAgIC8vU28sIHRoZXJlIGFyZSAzIHR5cGVzIG9mIGNoYXJhY3RlciB0b2tlbnMgaW4gcGFyc2U1OlxuICAgIC8vMSlUb2tlblR5cGUuTlVMTF9DSEFSQUNURVIgLSBcXHUwMDAwLWNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcdTAwMDBcXHUwMDAwXFx1MDAwMCcpXG4gICAgLy8yKVRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUiAtIGFueSB3aGl0ZXNwYWNlL25ldy1saW5lIGNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcbiAgXFxyXFx0ICAgXFxmJylcbiAgICAvLzMpVG9rZW5UeXBlLkNIQVJBQ1RFUiAtIGFueSBjaGFyYWN0ZXIgc2VxdWVuY2Ugd2hpY2ggZG9uJ3QgYmVsb25nIHRvIGdyb3VwcyAxIGFuZCAyIChlLmcuICdhYmNkZWYxMjM0QEAjJCVeJylcbiAgICBfYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIGNoKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLnR5cGUgIT09IHR5cGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4odGhpcy5jdXJyZW50TG9jYXRpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2hhcnMgKz0gY2g7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoKTtcbiAgICB9XG4gICAgX2VtaXRDb2RlUG9pbnQoY3ApIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IGlzV2hpdGVzcGFjZShjcClcbiAgICAgICAgICAgID8gVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSXG4gICAgICAgICAgICA6IGNwID09PSAkLk5VTExcbiAgICAgICAgICAgICAgICA/IFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUlxuICAgICAgICAgICAgICAgIDogVG9rZW5UeXBlLkNIQVJBQ1RFUjtcbiAgICAgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKSk7XG4gICAgfVxuICAgIC8vTk9URTogdXNlZCB3aGVuIHdlIGVtaXQgY2hhcmFjdGVycyBleHBsaWNpdGx5LlxuICAgIC8vVGhpcyBpcyBhbHdheXMgZm9yIG5vbi13aGl0ZXNwYWNlIGFuZCBub24tbnVsbCBjaGFyYWN0ZXJzLCB3aGljaCBhbGxvd3MgdXMgdG8gYXZvaWQgYWRkaXRpb25hbCBjaGVja3MuXG4gICAgX2VtaXRDaGFycyhjaCkge1xuICAgICAgICB0aGlzLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4oVG9rZW5UeXBlLkNIQVJBQ1RFUiwgY2gpO1xuICAgIH1cbiAgICAvLyBDaGFyYWN0ZXIgcmVmZXJlbmNlIGhlbHBlcnNcbiAgICBfbWF0Y2hOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgbGV0IGV4Y2VzcyA9IDA7XG4gICAgICAgIGxldCB3aXRob3V0U2VtaWNvbG9uID0gZmFsc2U7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBjdXJyZW50ID0gaHRtbERlY29kZVRyZWVbMF07IGkgPj0gMDsgY3AgPSB0aGlzLl9jb25zdW1lKCkpIHtcbiAgICAgICAgICAgIGkgPSBkZXRlcm1pbmVCcmFuY2goaHRtbERlY29kZVRyZWUsIGN1cnJlbnQsIGkgKyAxLCBjcCk7XG4gICAgICAgICAgICBpZiAoaSA8IDApXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBleGNlc3MgKz0gMTtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBodG1sRGVjb2RlVHJlZVtpXTtcbiAgICAgICAgICAgIGNvbnN0IG1hc2tlZCA9IGN1cnJlbnQgJiBCaW5UcmllRmxhZ3MuVkFMVUVfTEVOR1RIO1xuICAgICAgICAgICAgLy8gSWYgdGhlIGJyYW5jaCBpcyBhIHZhbHVlLCBzdG9yZSBpdCBhbmQgY29udGludWVcbiAgICAgICAgICAgIGlmIChtYXNrZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgbWFzayBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSB2YWx1ZSwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGJ5dGUuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVMZW5ndGggPSAobWFza2VkID4+IDE0KSAtIDE7XG4gICAgICAgICAgICAgICAgLy8gQXR0cmlidXRlIHZhbHVlcyB0aGF0IGFyZW4ndCB0ZXJtaW5hdGVkIHByb3Blcmx5IGFyZW4ndCBwYXJzZWQsIGFuZCBzaG91bGRuJ3QgbGVhZCB0byBhIHBhcnNlciBlcnJvci5cbiAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGV4YW1wbGUgaW4gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2Utc3RhdGVcbiAgICAgICAgICAgICAgICBpZiAoY3AgIT09ICQuU0VNSUNPTE9OICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSAmJlxuICAgICAgICAgICAgICAgICAgICBpc0VudGl0eUluQXR0cmlidXRlSW52YWxpZEVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKDEpKSkge1xuICAgICAgICAgICAgICAgICAgICAvL05PVEU6IHdlIGRvbid0IGZsdXNoIGFsbCBjb25zdW1lZCBjb2RlIHBvaW50cyBoZXJlLCBhbmQgaW5zdGVhZCBzd2l0Y2ggYmFjayB0byB0aGUgb3JpZ2luYWwgc3RhdGUgYWZ0ZXJcbiAgICAgICAgICAgICAgICAgICAgLy9lbWl0dGluZyBhbiBhbXBlcnNhbmQuIFRoaXMgaXMgZmluZSwgYXMgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgd29uJ3QgYmUgcGFyc2VkIGRpZmZlcmVudGx5IGluIGF0dHJpYnV0ZXMuXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFskLkFNUEVSU0FORF07XG4gICAgICAgICAgICAgICAgICAgIC8vIFNraXAgb3ZlciB0aGUgdmFsdWUuXG4gICAgICAgICAgICAgICAgICAgIGkgKz0gdmFsdWVMZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgc3Vycm9nYXRlIHBhaXIsIGNvbnN1bWUgdGhlIG5leHQgdHdvIGJ5dGVzLlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVMZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtodG1sRGVjb2RlVHJlZVtpXSAmIH5CaW5UcmllRmxhZ3MuVkFMVUVfTEVOR1RIXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVMZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbaHRtbERlY29kZVRyZWVbKytpXV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbaHRtbERlY29kZVRyZWVbKytpXSwgaHRtbERlY29kZVRyZWVbKytpXV07XG4gICAgICAgICAgICAgICAgICAgIGV4Y2VzcyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpdGhvdXRTZW1pY29sb24gPSBjcCAhPT0gJC5TRU1JQ09MT047XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgemVyby1sZW5ndGgsIHdlJ3JlIGRvbmUuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VuY29uc3VtZShleGNlc3MpO1xuICAgICAgICBpZiAod2l0aG91dFNlbWljb2xvbiAmJiAhdGhpcy5wcmVwcm9jZXNzb3IuZW5kT2ZDaHVua0hpdCkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gZW1pdCB0aGUgZXJyb3IgYWJvdmUgb24gdGhlIGNvZGUgcG9pbnQgYWZ0ZXIgdGhlIGVudGl0eS5cbiAgICAgICAgLy8gV2UgYWx3YXlzIGNvbnN1bWUgb25lIGNvZGUgcG9pbnQgdG9vIG1hbnkgaW4gdGhlIGxvb3AsIGFuZCB3ZSB3YWl0IHRvXG4gICAgICAgIC8vIHVuY29uc3VtZSBpdCB1bnRpbCBhZnRlciB0aGUgZXJyb3IgaXMgZW1pdHRlZC5cbiAgICAgICAgdGhpcy5fdW5jb25zdW1lKDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBfaXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZSgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRCB8fFxuICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQgfHxcbiAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRCk7XG4gICAgfVxuICAgIF9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDYWxsaW5nIHN0YXRlcyB0aGlzIHdheSB0dXJucyBvdXQgdG8gYmUgbXVjaCBmYXN0ZXIgdGhhbiBhbnkgb3RoZXIgYXBwcm9hY2guXG4gICAgX2NhbGxTdGF0ZShjcCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgU3RhdGUuREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRGF0YShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUExBSU5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVQbGFpbnRleHQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkVORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlRBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUxlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZVZhbHVlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CT0dVU19DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5NQVJLVVBfREVDTEFSQVRJT05fT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudFN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9TVEFSVF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50U3RhcnREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkRfQkFORzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZEJhbmcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CT0dVU19ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbkJyYWNrZXQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BTUJJR1VPVVNfQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBbWJpZ3VvdXNBbXBlcnNhbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZVN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gc3RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTdGF0ZSBtYWNoaW5lXG4gICAgLy8gRGF0YSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vICBSQ0RBVEEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUExBSU5URVhUIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVQbGFpbnRleHQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBUYWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5NQVJLVVBfREVDTEFSQVRJT05fT1BFTjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5FTkRfVEFHX09QRU47XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuUVVFU1RJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRRdWVzdGlvbk1hcmtJbnN0ZWFkT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkJlZm9yZVRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURhdGEoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gRW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdFbmRUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mQmVmb3JlVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gVGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVRhZ05hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhhbmRsZVNwZWNpYWxFbmRUYWcoX2NwKSB7XG4gICAgICAgIGlmICghdGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCh0aGlzLmxhc3RTdGFydFRhZ05hbWUsIGZhbHNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHRva2VuLnRhZ05hbWUgPSB0aGlzLmxhc3RTdGFydFRhZ05hbWU7XG4gICAgICAgIGNvbnN0IGNwID0gdGhpcy5wcmVwcm9jZXNzb3IucGVlayh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCEnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPicpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCgkJC5TQ1JJUFQsIGZhbHNlKSAmJlxuICAgICAgICAgICAgaXNTY3JpcHREYXRhRG91YmxlRXNjYXBlU2VxdWVuY2VFbmQodGhpcy5wcmVwcm9jZXNzb3IucGVlaygkJC5TQ1JJUFQubGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAkJC5TQ1JJUFQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KHRoaXMuX2NvbnN1bWUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJz4nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy8nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKCQkLlNDUklQVCwgZmFsc2UpICYmXG4gICAgICAgICAgICBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKCQkLlNDUklQVC5sZW5ndGgpKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICQkLlNDUklQVC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQodGhpcy5fY29uc3VtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzpcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJz0nKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOlxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX1ZBTFVFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOlxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGlzQXNjaWlVcHBlcihjcCkgPyB0b0FzY2lpTG93ZXIoY3ApIDogY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIGF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgYXR0cmlidXRlIHZhbHVlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nQXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKHVucXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzpcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOlxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkdSQVZFX0FDQ0VOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckluVW5xdW90ZWRBdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuQXR0cmlidXRlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbi5zZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkU29saWR1c0luVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQm9ndXMgY29tbWVudCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQm9ndXNDb21tZW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE1hcmt1cCBkZWNsYXJhdGlvbiBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVNYXJrdXBEZWNsYXJhdGlvbk9wZW4oY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuREFTSF9EQVNILCB0cnVlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCQkLkRBU0hfREFTSC5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX1NUQVJUO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuRE9DVFlQRSwgZmFsc2UpKSB7XG4gICAgICAgICAgICAvLyBOT1RFOiBEb2N0eXBlcyB0b2tlbnMgYXJlIGNyZWF0ZWQgd2l0aG91dCBmaXhlZCBvZmZzZXRzLiBXZSBrZWVwIHRyYWNrIG9mIHRoZSBtb21lbnQgYSBkb2N0eXBlICptaWdodCogc3RhcnQgaGVyZS5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oJCQuRE9DVFlQRS5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuQ0RBVEFfU1RBUlQsIHRydWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNkYXRhSW5IdG1sQ29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCQkLkNEQVRBX1NUQVJULmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgPSAnW0NEQVRBWyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBTZXF1ZW5jZSBsb29rdXBzIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlLCBsb29rdXBcbiAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbmNvcnJlY3RseU9wZW5lZENvbW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDIpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudFN0YXJ0KGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9TVEFSVF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGFydCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50U3RhcnREYXNoKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJzwnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICchJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnPCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmREYXNoKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2hEYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCAhPT0gJC5HUkVBVEVSX1RIQU5fU0lHTiAmJiBjcCAhPT0gJC5FT0YpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubmVzdGVkQ29tbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmQoY3ApO1xuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50RW5kRGFzaChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9CQU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgYmFuZyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZEJhbmcoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmluY29ycmVjdGx5Q2xvc2VkQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0hJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKFN0cmluZy5mcm9tQ2hhckNvZGUodG9Bc2NpaUxvd2VyKGNwKSkpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihTdHJpbmcuZnJvbUNvZGVQb2ludChjcCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ubmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuUFVCTElDLCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuU1lTVEVNLCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vTk9URTogc2VxdWVuY2UgbG9va3VwIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlIGxvb2t1cFxuICAgICAgICAgICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgcHVibGljIGtleXdvcmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJldHdlZW4gRE9DVFlQRSBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyhjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBzeXN0ZW0ga2V5d29yZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJvZ3VzIERPQ1RZUEUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJvZ3VzRG9jdHlwZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OX0JSQUNLRVQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNkYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIGJyYWNrZXQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbkJyYWNrZXQoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTl9FTkQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ10nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb25FbmQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUklHSFRfU1FVQVJFX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ10nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ11dJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuTlVNQkVSX1NJR04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgY29uc3QgbWF0Y2hSZXN1bHQgPSB0aGlzLl9tYXRjaE5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgLy9OT1RFOiBNYXRjaGluZyBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSwgbWF0Y2hcbiAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICBpZiAodGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgLy8gU3RheSBpbiB0aGUgc3RhdGUsIHRyeSBhZ2Fpbi5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChtYXRjaFJlc3VsdCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXRjaFJlc3VsdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShtYXRjaFJlc3VsdFtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5yZXR1cm5TdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLkFNUEVSU0FORCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQU1CSUdVT1VTX0FNUEVSU0FORDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBbWJpZ3VvcyBhbXBlcnNhbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFtYmlndW91c0FtcGVyc2FuZChjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmtub3duTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAwO1xuICAgICAgICBpZiAoY3AgPT09ICQuTEFUSU5fU01BTExfWCB8fCBjcCA9PT0gJC5MQVRJTl9DQVBJVEFMX1gpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUO1xuICAgICAgICB9XG4gICAgICAgIC8vIElubGluZWQgZGVjaW1hbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXJ0IHN0YXRlXG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLk5VTUJFUl9TSUdOKTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEhleGFkZW1pY2FsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFic2VuY2VPZkRpZ2l0c0luTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuTlVNQkVSX1NJR04pO1xuICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lKDIpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSGV4YWRlbWljYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlVcHBlckhleERpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHgzNztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXJIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTYgKyBjcCAtIDB4NTc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHgzMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERlY2ltYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGVjaW1hbENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxMCArIGNwIC0gMHgzMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZSBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuY2hhclJlZkNvZGUgPT09ICQuTlVMTCkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5udWxsQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmNoYXJSZWZDb2RlID4gMTExNDExMSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1N1cnJvZ2F0ZSh0aGlzLmNoYXJSZWZDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5zdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9ICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVW5kZWZpbmVkQ29kZVBvaW50KHRoaXMuY2hhclJlZkNvZGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNDb250cm9sQ29kZVBvaW50KHRoaXMuY2hhclJlZkNvZGUpIHx8IHRoaXMuY2hhclJlZkNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSBDMV9DT05UUk9MU19SRUZFUkVOQ0VfUkVQTEFDRU1FTlRTLmdldCh0aGlzLmNoYXJSZWZDb2RlKTtcbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHJlcGxhY2VtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSh0aGlzLmNoYXJSZWZDb2RlKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgImltcG9ydCB7IFRBR19JRCBhcyAkLCBOUywgaXNOdW1iZXJlZEhlYWRlciB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbi8vRWxlbWVudCB1dGlsc1xuY29uc3QgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRCA9IG5ldyBTZXQoWyQuREQsICQuRFQsICQuTEksICQuT1BUR1JPVVAsICQuT1BUSU9OLCAkLlAsICQuUkIsICQuUlAsICQuUlQsICQuUlRDXSk7XG5jb25zdCBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkgPSBuZXcgU2V0KFtcbiAgICAuLi5JTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVELFxuICAgICQuQ0FQVElPTixcbiAgICAkLkNPTEdST1VQLFxuICAgICQuVEJPRFksXG4gICAgJC5URCxcbiAgICAkLlRGT09ULFxuICAgICQuVEgsXG4gICAgJC5USEVBRCxcbiAgICAkLlRSLFxuXSk7XG5jb25zdCBTQ09QSU5HX0VMRU1FTlRfTlMgPSBuZXcgTWFwKFtcbiAgICBbJC5BUFBMRVQsIE5TLkhUTUxdLFxuICAgIFskLkNBUFRJT04sIE5TLkhUTUxdLFxuICAgIFskLkhUTUwsIE5TLkhUTUxdLFxuICAgIFskLk1BUlFVRUUsIE5TLkhUTUxdLFxuICAgIFskLk9CSkVDVCwgTlMuSFRNTF0sXG4gICAgWyQuVEFCTEUsIE5TLkhUTUxdLFxuICAgIFskLlRELCBOUy5IVE1MXSxcbiAgICBbJC5URU1QTEFURSwgTlMuSFRNTF0sXG4gICAgWyQuVEgsIE5TLkhUTUxdLFxuICAgIFskLkFOTk9UQVRJT05fWE1MLCBOUy5NQVRITUxdLFxuICAgIFskLk1JLCBOUy5NQVRITUxdLFxuICAgIFskLk1OLCBOUy5NQVRITUxdLFxuICAgIFskLk1PLCBOUy5NQVRITUxdLFxuICAgIFskLk1TLCBOUy5NQVRITUxdLFxuICAgIFskLk1URVhULCBOUy5NQVRITUxdLFxuICAgIFskLkRFU0MsIE5TLlNWR10sXG4gICAgWyQuRk9SRUlHTl9PQkpFQ1QsIE5TLlNWR10sXG4gICAgWyQuVElUTEUsIE5TLlNWR10sXG5dKTtcbmNvbnN0IE5BTUVEX0hFQURFUlMgPSBbJC5IMSwgJC5IMiwgJC5IMywgJC5INCwgJC5INSwgJC5INl07XG5jb25zdCBUQUJMRV9ST1dfQ09OVEVYVCA9IFskLlRSLCAkLlRFTVBMQVRFLCAkLkhUTUxdO1xuY29uc3QgVEFCTEVfQk9EWV9DT05URVhUID0gWyQuVEJPRFksICQuVEZPT1QsICQuVEhFQUQsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9DT05URVhUID0gWyQuVEFCTEUsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9DRUxMUyA9IFskLlRELCAkLlRIXTtcbi8vU3RhY2sgb2Ygb3BlbiBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIE9wZW5FbGVtZW50U3RhY2sge1xuICAgIGdldCBjdXJyZW50VG1wbENvbnRlbnRPck5vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0luVGVtcGxhdGUoKSA/IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHRoaXMuY3VycmVudCkgOiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50LCB0cmVlQWRhcHRlciwgaGFuZGxlcikge1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy50YWdJRHMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGFja1RvcCA9IC0xO1xuICAgICAgICB0aGlzLnRtcGxDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gJC5VTktOT1dOO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDtcbiAgICB9XG4gICAgLy9JbmRleCBvZiBlbGVtZW50XG4gICAgX2luZGV4T2YoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sYXN0SW5kZXhPZihlbGVtZW50LCB0aGlzLnN0YWNrVG9wKTtcbiAgICB9XG4gICAgLy9VcGRhdGUgY3VycmVudCBlbGVtZW50XG4gICAgX2lzSW5UZW1wbGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFRhZ0lkID09PSAkLlRFTVBMQVRFICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCkgPT09IE5TLkhUTUw7XG4gICAgfVxuICAgIF91cGRhdGVDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWQgPSB0aGlzLnRhZ0lEc1t0aGlzLnN0YWNrVG9wXTtcbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBwdXNoKGVsZW1lbnQsIHRhZ0lEKSB7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXSA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMudGFnSURzW3RoaXMuc3RhY2tUb3BdID0gdGFnSUQ7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gdGFnSUQ7XG4gICAgICAgIGlmICh0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50bXBsQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaChlbGVtZW50LCB0YWdJRCwgdHJ1ZSk7XG4gICAgfVxuICAgIHBvcCgpIHtcbiAgICAgICAgY29uc3QgcG9wcGVkID0gdGhpcy5jdXJyZW50O1xuICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnRtcGxDb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChwb3BwZWQsIHRydWUpO1xuICAgIH1cbiAgICByZXBsYWNlKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5pdGVtc1tpZHhdID0gbmV3RWxlbWVudDtcbiAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gbmV3RWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRBZnRlcihyZWZlcmVuY2VFbGVtZW50LCBuZXdFbGVtZW50LCBuZXdFbGVtZW50SUQpIHtcbiAgICAgICAgY29uc3QgaW5zZXJ0aW9uSWR4ID0gdGhpcy5faW5kZXhPZihyZWZlcmVuY2VFbGVtZW50KSArIDE7XG4gICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudCk7XG4gICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnRJRCk7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgaWYgKGluc2VydGlvbklkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaCh0aGlzLmN1cnJlbnQsIHRoaXMuY3VycmVudFRhZ0lkLCBpbnNlcnRpb25JZHggPT09IHRoaXMuc3RhY2tUb3ApO1xuICAgIH1cbiAgICBwb3BVbnRpbFRhZ05hbWVQb3BwZWQodGFnTmFtZSkge1xuICAgICAgICBsZXQgdGFyZ2V0SWR4ID0gdGhpcy5zdGFja1RvcCArIDE7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRhcmdldElkeCA9IHRoaXMudGFnSURzLmxhc3RJbmRleE9mKHRhZ05hbWUsIHRhcmdldElkeCAtIDEpO1xuICAgICAgICB9IHdoaWxlICh0YXJnZXRJZHggPiAwICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbdGFyZ2V0SWR4XSkgIT09IE5TLkhUTUwpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCh0YXJnZXRJZHggPCAwID8gMCA6IHRhcmdldElkeCk7XG4gICAgfVxuICAgIHNob3J0ZW5Ub0xlbmd0aChpZHgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPj0gaWR4KSB7XG4gICAgICAgICAgICBjb25zdCBwb3BwZWQgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXBsQ291bnQgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUG9wKHBvcHBlZCwgdGhpcy5zdGFja1RvcCA8IGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoaWR4IDwgMCA/IDAgOiBpZHgpO1xuICAgIH1cbiAgICBwb3BVbnRpbFBvcHBlZCh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICB9XG4gICAgcG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCgpIHtcbiAgICAgICAgdGhpcy5wb3BVbnRpbFBvcHBlZChOQU1FRF9IRUFERVJTLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKSB7XG4gICAgICAgIHRoaXMucG9wVW50aWxQb3BwZWQoVEFCTEVfQ0VMTFMsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBwb3BBbGxVcFRvSHRtbEVsZW1lbnQoKSB7XG4gICAgICAgIC8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB0aGUgcm9vdCA8aHRtbD4gZWxlbWVudCBpcyBhbHdheXMgZmlyc3QgaW4gdGhlIG9wZW4gZWxlbWVudCBzdGFjaywgc29cbiAgICAgICAgLy93ZSBwZXJmb3JtIHRoaXMgZmFzdCBzdGFjayBjbGVhbiB1cC5cbiAgICAgICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCgxKTtcbiAgICB9XG4gICAgX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgbmFtZXNwYWNlKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHRhZ05hbWVzLmluY2x1ZGVzKHRoaXMudGFnSURzW2ldKSAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKSA9PT0gbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBjbGVhckJhY2tUbyh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCArIDEpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX0JPRFlfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX1JPV19DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcmVtb3ZlKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICBpZiAoaWR4ID09PSB0aGlzLnN0YWNrVG9wKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdJRHMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFja1RvcC0tO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChlbGVtZW50LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TZWFyY2hcbiAgICB0cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpIHtcbiAgICAgICAgLy9Qcm9wZXJseSBuZXN0ZWQgPGJvZHk+IGVsZW1lbnQgKHNob3VsZCBiZSBzZWNvbmQgZWxlbWVudCBpbiBzdGFjaykuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID49IDEgJiYgdGhpcy50YWdJRHNbMV0gPT09ICQuQk9EWSA/IHRoaXMuaXRlbXNbMV0gOiBudWxsO1xuICAgIH1cbiAgICBjb250YWlucyhlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmRleE9mKGVsZW1lbnQpID4gLTE7XG4gICAgfVxuICAgIGdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudElkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCkgLSAxO1xuICAgICAgICByZXR1cm4gZWxlbWVudElkeCA+PSAwID8gdGhpcy5pdGVtc1tlbGVtZW50SWR4XSA6IG51bGw7XG4gICAgfVxuICAgIGlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy50YWdJRHNbMF0gPT09ICQuSFRNTDtcbiAgICB9XG4gICAgLy9FbGVtZW50IGluIHNjb3BlXG4gICAgaGFzSW5TY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc051bWJlcmVkSGVhZGVySW5TY29wZSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChpc051bWJlcmVkSGVhZGVyKHRuKSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVF9OUy5nZXQodG4pID09PSBucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5MaXN0SXRlbVNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCgodG4gPT09ICQuVUwgfHwgdG4gPT09ICQuT0wpICYmIG5zID09PSBOUy5IVE1MKSB8fCBTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luQnV0dG9uU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKHRuID09PSAkLkJVVFRPTiAmJiBucyA9PT0gTlMuSFRNTCkgfHwgU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblRhYmxlU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5URU1QTEFURSB8fCB0biA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVEZPT1QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblNlbGVjdFNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChucyAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gIT09ICQuT1BUSU9OICYmIHRuICE9PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvL0ltcGxpZWQgZW5kIHRhZ3NcbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkge1xuICAgICAgICB3aGlsZSAoSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRC5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3NUaG9yb3VnaGx5KCkge1xuICAgICAgICB3aGlsZSAoSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZLmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oZXhjbHVzaW9uSWQpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuY3VycmVudFRhZ0lkICE9PSBleGNsdXNpb25JZCAmJiBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9wZW4tZWxlbWVudC1zdGFjay5qcy5tYXAiLCAiLy9Db25zdFxuY29uc3QgTk9BSF9BUktfQ0FQQUNJVFkgPSAzO1xuZXhwb3J0IHZhciBFbnRyeVR5cGU7XG4oZnVuY3Rpb24gKEVudHJ5VHlwZSkge1xuICAgIEVudHJ5VHlwZVtFbnRyeVR5cGVbXCJNYXJrZXJcIl0gPSAwXSA9IFwiTWFya2VyXCI7XG4gICAgRW50cnlUeXBlW0VudHJ5VHlwZVtcIkVsZW1lbnRcIl0gPSAxXSA9IFwiRWxlbWVudFwiO1xufSkoRW50cnlUeXBlID0gRW50cnlUeXBlIHx8IChFbnRyeVR5cGUgPSB7fSkpO1xuY29uc3QgTUFSS0VSID0geyB0eXBlOiBFbnRyeVR5cGUuTWFya2VyIH07XG4vL0xpc3Qgb2YgZm9ybWF0dGluZyBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIEZvcm1hdHRpbmdFbGVtZW50TGlzdCB7XG4gICAgY29uc3RydWN0b3IodHJlZUFkYXB0ZXIpIHtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5ib29rbWFyayA9IG51bGw7XG4gICAgfVxuICAgIC8vTm9haCBBcmsncyBjb25kaXRpb25cbiAgICAvL09QVElNSVpBVElPTjogYXQgZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgcG9zc2libGUgY2FuZGlkYXRlcyBmb3IgZXhjbHVzaW9uIHVzaW5nXG4gICAgLy9saWdodHdlaWdodCBoZXVyaXN0aWNzIHdpdGhvdXQgdGhvcm91Z2ggYXR0cmlidXRlcyBjaGVjay5cbiAgICBfZ2V0Tm9haEFya0NvbmRpdGlvbkNhbmRpZGF0ZXMobmV3RWxlbWVudCwgbmVBdHRycykge1xuICAgICAgICBjb25zdCBjYW5kaWRhdGVzID0gW107XG4gICAgICAgIGNvbnN0IG5lQXR0cnNMZW5ndGggPSBuZUF0dHJzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbmVUYWdOYW1lID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5ld0VsZW1lbnQpO1xuICAgICAgICBjb25zdCBuZU5hbWVzcGFjZVVSSSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5ld0VsZW1lbnQpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmVudHJpZXNbaV07XG4gICAgICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLk1hcmtlcikge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBlbGVtZW50IH0gPSBlbnRyeTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IG5lVGFnTmFtZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBuZU5hbWVzcGFjZVVSSSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRBdHRycy5sZW5ndGggPT09IG5lQXR0cnNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5wdXNoKHsgaWR4OiBpLCBhdHRyczogZWxlbWVudEF0dHJzIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FuZGlkYXRlcztcbiAgICB9XG4gICAgX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24obmV3RWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5lbnRyaWVzLmxlbmd0aCA8IE5PQUhfQVJLX0NBUEFDSVRZKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZUF0dHJzID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChuZXdFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IHRoaXMuX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQsIG5lQXR0cnMpO1xuICAgICAgICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy9OT1RFOiBidWlsZCBhdHRycyBtYXAgZm9yIHRoZSBuZXcgZWxlbWVudCwgc28gd2UgY2FuIHBlcmZvcm0gZmFzdCBsb29rdXBzXG4gICAgICAgIGNvbnN0IG5lQXR0cnNNYXAgPSBuZXcgTWFwKG5lQXR0cnMubWFwKChuZUF0dHIpID0+IFtuZUF0dHIubmFtZSwgbmVBdHRyLnZhbHVlXSkpO1xuICAgICAgICBsZXQgdmFsaWRDYW5kaWRhdGVzID0gMDtcbiAgICAgICAgLy9OT1RFOiByZW1vdmUgYm90dG9tbW9zdCBjYW5kaWRhdGVzLCB1bnRpbCBOb2FoJ3MgQXJrIGNvbmRpdGlvbiB3aWxsIG5vdCBiZSBtZXRcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYW5kaWRhdGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSBjYW5kaWRhdGVzW2ldO1xuICAgICAgICAgICAgLy8gV2Uga25vdyB0aGF0IGBjYW5kaWRhdGUuYXR0cnMubGVuZ3RoID09PSBuZUF0dHJzLmxlbmd0aGBcbiAgICAgICAgICAgIGlmIChjYW5kaWRhdGUuYXR0cnMuZXZlcnkoKGNBdHRyKSA9PiBuZUF0dHJzTWFwLmdldChjQXR0ci5uYW1lKSA9PT0gY0F0dHIudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRDYW5kaWRhdGVzICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkQ2FuZGlkYXRlcyA+PSBOT0FIX0FSS19DQVBBQ0lUWSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGNhbmRpZGF0ZS5pZHgsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL011dGF0aW9uc1xuICAgIGluc2VydE1hcmtlcigpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVuc2hpZnQoTUFSS0VSKTtcbiAgICB9XG4gICAgcHVzaEVsZW1lbnQoZWxlbWVudCwgdG9rZW4pIHtcbiAgICAgICAgdGhpcy5fZW5zdXJlTm9haEFya0NvbmRpdGlvbihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVuc2hpZnQoe1xuICAgICAgICAgICAgdHlwZTogRW50cnlUeXBlLkVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhlbGVtZW50LCB0b2tlbikge1xuICAgICAgICBjb25zdCBib29rbWFya0lkeCA9IHRoaXMuZW50cmllcy5pbmRleE9mKHRoaXMuYm9va21hcmspO1xuICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGJvb2ttYXJrSWR4LCAwLCB7XG4gICAgICAgICAgICB0eXBlOiBFbnRyeVR5cGUuRWxlbWVudCxcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbW92ZUVudHJ5KGVudHJ5KSB7XG4gICAgICAgIGNvbnN0IGVudHJ5SW5kZXggPSB0aGlzLmVudHJpZXMuaW5kZXhPZihlbnRyeSk7XG4gICAgICAgIGlmIChlbnRyeUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoZW50cnlJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBsaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHMgdXAgdG8gdGhlIGxhc3QgbWFya2VyLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjY2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyXG4gICAgICovXG4gICAgY2xlYXJUb0xhc3RNYXJrZXIoKSB7XG4gICAgICAgIGNvbnN0IG1hcmtlcklkeCA9IHRoaXMuZW50cmllcy5pbmRleE9mKE1BUktFUik7XG4gICAgICAgIGlmIChtYXJrZXJJZHggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZSgwLCBtYXJrZXJJZHggKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5sZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vU2VhcmNoXG4gICAgZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKHRhZ05hbWUpIHtcbiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIgfHwgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVudHJ5LmVsZW1lbnQpID09PSB0YWdOYW1lKTtcbiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5FbGVtZW50ID8gZW50cnkgOiBudWxsO1xuICAgIH1cbiAgICBnZXRFbGVtZW50RW50cnkoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuRWxlbWVudCAmJiBlbnRyeS5lbGVtZW50ID09PSBlbGVtZW50KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcy5tYXAiLCAiaW1wb3J0IHsgRE9DVU1FTlRfTU9ERSB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbm9kZU5hbWU6ICcjdGV4dCcsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgZGVmYXVsdFRyZWVBZGFwdGVyID0ge1xuICAgIC8vTm9kZSBjb25zdHJ1Y3Rpb25cbiAgICBjcmVhdGVEb2N1bWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50JyxcbiAgICAgICAgICAgIG1vZGU6IERPQ1VNRU5UX01PREUuTk9fUVVJUktTLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQtZnJhZ21lbnQnLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgYXR0cnMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiB0YWdOYW1lLFxuICAgICAgICAgICAgdGFnTmFtZSxcbiAgICAgICAgICAgIGF0dHJzLFxuICAgICAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlQ29tbWVudE5vZGUoZGF0YSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjY29tbWVudCcsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIC8vVHJlZSBtdXRhdGlvblxuICAgIGFwcGVuZENoaWxkKHBhcmVudE5vZGUsIG5ld05vZGUpIHtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnB1c2gobmV3Tm9kZSk7XG4gICAgICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBpbnNlcnRpb25JZHggPSBwYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld05vZGUpO1xuICAgICAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgc2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlRWxlbWVudCwgY29udGVudEVsZW1lbnQpIHtcbiAgICAgICAgdGVtcGxhdGVFbGVtZW50LmNvbnRlbnQgPSBjb250ZW50RWxlbWVudDtcbiAgICB9LFxuICAgIGdldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlRWxlbWVudC5jb250ZW50O1xuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRUeXBlKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICAgICAgY29uc3QgZG9jdHlwZU5vZGUgPSBkb2N1bWVudC5jaGlsZE5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJyk7XG4gICAgICAgIGlmIChkb2N0eXBlTm9kZSkge1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUubmFtZSA9IG5hbWU7XG4gICAgICAgICAgICBkb2N0eXBlTm9kZS5wdWJsaWNJZCA9IHB1YmxpY0lkO1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUuc3lzdGVtSWQgPSBzeXN0ZW1JZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHB1YmxpY0lkLFxuICAgICAgICAgICAgICAgIHN5c3RlbUlkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LCBub2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50LCBtb2RlKSB7XG4gICAgICAgIGRvY3VtZW50Lm1vZGUgPSBtb2RlO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5tb2RlO1xuICAgIH0sXG4gICAgZGV0YWNoTm9kZShub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2Yobm9kZSk7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGluc2VydFRleHQocGFyZW50Tm9kZSwgdGV4dCkge1xuICAgICAgICBpZiAocGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50Tm9kZSwgY3JlYXRlVGV4dE5vZGUodGV4dCkpO1xuICAgIH0sXG4gICAgaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnROb2RlLCB0ZXh0LCByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpIC0gMV07XG4gICAgICAgIGlmIChwcmV2Tm9kZSAmJiBkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgIHByZXZOb2RlLnZhbHVlICs9IHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpLCByZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRvcHRBdHRyaWJ1dGVzKHJlY2lwaWVudCwgYXR0cnMpIHtcbiAgICAgICAgY29uc3QgcmVjaXBpZW50QXR0cnNNYXAgPSBuZXcgU2V0KHJlY2lwaWVudC5hdHRycy5tYXAoKGF0dHIpID0+IGF0dHIubmFtZSkpO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBpZiAoIXJlY2lwaWVudEF0dHJzTWFwLmhhcyhhdHRyc1tqXS5uYW1lKSkge1xuICAgICAgICAgICAgICAgIHJlY2lwaWVudC5hdHRycy5wdXNoKGF0dHJzW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy9UcmVlIHRyYXZlcnNpbmdcbiAgICBnZXRGaXJzdENoaWxkKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGROb2Rlc1swXTtcbiAgICB9LFxuICAgIGdldENoaWxkTm9kZXMobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzO1xuICAgIH0sXG4gICAgZ2V0UGFyZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLnBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBnZXRBdHRyTGlzdChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmF0dHJzO1xuICAgIH0sXG4gICAgLy9Ob2RlIGRhdGFcbiAgICBnZXRUYWdOYW1lKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQudGFnTmFtZTtcbiAgICB9LFxuICAgIGdldE5hbWVzcGFjZVVSSShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50Lm5hbWVzcGFjZVVSSTtcbiAgICB9LFxuICAgIGdldFRleHROb2RlQ29udGVudCh0ZXh0Tm9kZSkge1xuICAgICAgICByZXR1cm4gdGV4dE5vZGUudmFsdWU7XG4gICAgfSxcbiAgICBnZXRDb21tZW50Tm9kZUNvbnRlbnQoY29tbWVudE5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGNvbW1lbnROb2RlLmRhdGE7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlTmFtZShkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUubmFtZTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVQdWJsaWNJZChkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUucHVibGljSWQ7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnN5c3RlbUlkO1xuICAgIH0sXG4gICAgLy9Ob2RlIHR5cGVzXG4gICAgaXNUZXh0Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI3RleHQnO1xuICAgIH0sXG4gICAgaXNDb21tZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2NvbW1lbnQnO1xuICAgIH0sXG4gICAgaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJztcbiAgICB9LFxuICAgIGlzRWxlbWVudE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUsICd0YWdOYW1lJyk7XG4gICAgfSxcbiAgICAvLyBTb3VyY2UgY29kZSBsb2NhdGlvblxuICAgIHNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSwgbG9jYXRpb24pIHtcbiAgICAgICAgbm9kZS5zb3VyY2VDb2RlTG9jYXRpb24gPSBsb2NhdGlvbjtcbiAgICB9LFxuICAgIGdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5zb3VyY2VDb2RlTG9jYXRpb247XG4gICAgfSxcbiAgICB1cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUsIGVuZExvY2F0aW9uKSB7XG4gICAgICAgIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uID0geyAuLi5ub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiwgLi4uZW5kTG9jYXRpb24gfTtcbiAgICB9LFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQuanMubWFwIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9Db25zdFxuY29uc3QgVkFMSURfRE9DVFlQRV9OQU1FID0gJ2h0bWwnO1xuY29uc3QgVkFMSURfU1lTVEVNX0lEID0gJ2Fib3V0OmxlZ2FjeS1jb21wYXQnO1xuY29uc3QgUVVJUktTX01PREVfU1lTVEVNX0lEID0gJ2h0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQnO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgICcrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy8nLFxuICAgICctLy9hcy8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy8nLFxuICAgICctLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMiBmaW5hbC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbWV0cml1cy8vZHRkIG1ldHJpdXMgcHJlc2VudGF0aW9uYWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCB0YWJsZXMvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCB0YWJsZXMvLycsXG4gICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBzdHJpY3QgaHRtbC8vJyxcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCAyLjAvL1wiLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIGV4dGVuZGVkIDEuMC8vXCIsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgcmVsYXhlZCAxLjAvL1wiLFxuICAgICctLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vc29mdHF1YWQgc29mdHdhcmUvL2R0ZCBob3RtZXRhbCBwcm8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc29mdHF1YWQvL2R0ZCBob3RtZXRhbCBwcm8gNC4wOjoxOTk3MTAxMDo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc3B5Z2xhc3MvL2R0ZCBodG1sIDIuMCBleHRlbmRlZC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgaHRtbC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgc3RyaWN0IGh0bWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMyAxOTk1LTAzLTI0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMiBkcmFmdC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIgZmluYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMnMgZHJhZnQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDE5OTYwNzEyLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCA5NzA0MjEvLycsXG4gICAgJy0vL3czYy8vZHRkIHczIGh0bWwvLycsXG4gICAgJy0vL3czby8vZHRkIHczIGh0bWwgMy4wLy8nLFxuICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbCAyLjAvLycsXG4gICAgJy0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sLy8nLFxuXTtcbmNvbnN0IFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEUyA9IG5ldyBTZXQoW1xuICAgICctLy93M28vL2R0ZCB3MyBodG1sIHN0cmljdCAzLjAvL2VuLy8nLFxuICAgICctL3czYy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsL2VuJyxcbiAgICAnaHRtbCcsXG5dKTtcbmNvbnN0IExJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFsnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIGZyYW1lc2V0Ly8nLCAnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIHRyYW5zaXRpb25hbC8vJ107XG5jb25zdCBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuLy9VdGlsc1xuZnVuY3Rpb24gaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykge1xuICAgIHJldHVybiBwcmVmaXhlcy5zb21lKChwcmVmaXgpID0+IHB1YmxpY0lkLnN0YXJ0c1dpdGgocHJlZml4KSk7XG59XG4vL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZm9ybWluZyh0b2tlbikge1xuICAgIHJldHVybiAodG9rZW4ubmFtZSA9PT0gVkFMSURfRE9DVFlQRV9OQU1FICYmXG4gICAgICAgIHRva2VuLnB1YmxpY0lkID09PSBudWxsICYmXG4gICAgICAgICh0b2tlbi5zeXN0ZW1JZCA9PT0gbnVsbCB8fCB0b2tlbi5zeXN0ZW1JZCA9PT0gVkFMSURfU1lTVEVNX0lEKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRNb2RlKHRva2VuKSB7XG4gICAgaWYgKHRva2VuLm5hbWUgIT09IFZBTElEX0RPQ1RZUEVfTkFNRSkge1xuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgfVxuICAgIGNvbnN0IHsgc3lzdGVtSWQgfSA9IHRva2VuO1xuICAgIGlmIChzeXN0ZW1JZCAmJiBzeXN0ZW1JZC50b0xvd2VyQ2FzZSgpID09PSBRVUlSS1NfTU9ERV9TWVNURU1fSUQpIHtcbiAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgIH1cbiAgICBsZXQgeyBwdWJsaWNJZCB9ID0gdG9rZW47XG4gICAgaWYgKHB1YmxpY0lkICE9PSBudWxsKSB7XG4gICAgICAgIHB1YmxpY0lkID0gcHVibGljSWQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFFVSVJLU19NT0RFX1BVQkxJQ19JRFMuaGFzKHB1YmxpY0lkKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVmaXhlcyA9IHN5c3RlbUlkID09PSBudWxsID8gUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA6IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUztcbiAgICAgICAgaWYgKGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgICAgIH1cbiAgICAgICAgcHJlZml4ZXMgPVxuICAgICAgICAgICAgc3lzdGVtSWQgPT09IG51bGwgPyBMSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMgOiBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVM7XG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTElNSVRFRF9RVUlSS1M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTk9fUVVJUktTO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZG9jdHlwZS5qcy5tYXAiLCAiaW1wb3J0IHsgVEFHX0lEIGFzICQsIE5TLCBBVFRSUywgZ2V0VGFnSUQgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9NSU1FIHR5cGVzXG5jb25zdCBNSU1FX1RZUEVTID0ge1xuICAgIFRFWFRfSFRNTDogJ3RleHQvaHRtbCcsXG4gICAgQVBQTElDQVRJT05fWE1MOiAnYXBwbGljYXRpb24veGh0bWwreG1sJyxcbn07XG4vL0F0dHJpYnV0ZXNcbmNvbnN0IERFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvbnVybCc7XG5jb25zdCBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb25VUkwnO1xuY29uc3QgU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgJ2F0dHJpYnV0ZU5hbWUnLFxuICAgICdhdHRyaWJ1dGVUeXBlJyxcbiAgICAnYmFzZUZyZXF1ZW5jeScsXG4gICAgJ2Jhc2VQcm9maWxlJyxcbiAgICAnY2FsY01vZGUnLFxuICAgICdjbGlwUGF0aFVuaXRzJyxcbiAgICAnZGlmZnVzZUNvbnN0YW50JyxcbiAgICAnZWRnZU1vZGUnLFxuICAgICdmaWx0ZXJVbml0cycsXG4gICAgJ2dseXBoUmVmJyxcbiAgICAnZ3JhZGllbnRUcmFuc2Zvcm0nLFxuICAgICdncmFkaWVudFVuaXRzJyxcbiAgICAna2VybmVsTWF0cml4JyxcbiAgICAna2VybmVsVW5pdExlbmd0aCcsXG4gICAgJ2tleVBvaW50cycsXG4gICAgJ2tleVNwbGluZXMnLFxuICAgICdrZXlUaW1lcycsXG4gICAgJ2xlbmd0aEFkanVzdCcsXG4gICAgJ2xpbWl0aW5nQ29uZUFuZ2xlJyxcbiAgICAnbWFya2VySGVpZ2h0JyxcbiAgICAnbWFya2VyVW5pdHMnLFxuICAgICdtYXJrZXJXaWR0aCcsXG4gICAgJ21hc2tDb250ZW50VW5pdHMnLFxuICAgICdtYXNrVW5pdHMnLFxuICAgICdudW1PY3RhdmVzJyxcbiAgICAncGF0aExlbmd0aCcsXG4gICAgJ3BhdHRlcm5Db250ZW50VW5pdHMnLFxuICAgICdwYXR0ZXJuVHJhbnNmb3JtJyxcbiAgICAncGF0dGVyblVuaXRzJyxcbiAgICAncG9pbnRzQXRYJyxcbiAgICAncG9pbnRzQXRZJyxcbiAgICAncG9pbnRzQXRaJyxcbiAgICAncHJlc2VydmVBbHBoYScsXG4gICAgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nLFxuICAgICdwcmltaXRpdmVVbml0cycsXG4gICAgJ3JlZlgnLFxuICAgICdyZWZZJyxcbiAgICAncmVwZWF0Q291bnQnLFxuICAgICdyZXBlYXREdXInLFxuICAgICdyZXF1aXJlZEV4dGVuc2lvbnMnLFxuICAgICdyZXF1aXJlZEZlYXR1cmVzJyxcbiAgICAnc3BlY3VsYXJDb25zdGFudCcsXG4gICAgJ3NwZWN1bGFyRXhwb25lbnQnLFxuICAgICdzcHJlYWRNZXRob2QnLFxuICAgICdzdGFydE9mZnNldCcsXG4gICAgJ3N0ZERldmlhdGlvbicsXG4gICAgJ3N0aXRjaFRpbGVzJyxcbiAgICAnc3VyZmFjZVNjYWxlJyxcbiAgICAnc3lzdGVtTGFuZ3VhZ2UnLFxuICAgICd0YWJsZVZhbHVlcycsXG4gICAgJ3RhcmdldFgnLFxuICAgICd0YXJnZXRZJyxcbiAgICAndGV4dExlbmd0aCcsXG4gICAgJ3ZpZXdCb3gnLFxuICAgICd2aWV3VGFyZ2V0JyxcbiAgICAneENoYW5uZWxTZWxlY3RvcicsXG4gICAgJ3lDaGFubmVsU2VsZWN0b3InLFxuICAgICd6b29tQW5kUGFuJyxcbl0ubWFwKChhdHRyKSA9PiBbYXR0ci50b0xvd2VyQ2FzZSgpLCBhdHRyXSkpO1xuY29uc3QgWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgWyd4bGluazphY3R1YXRlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhY3R1YXRlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOmFyY3JvbGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FyY3JvbGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6aHJlZicsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnaHJlZicsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpyb2xlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnNob3cnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3Nob3cnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6dGl0bGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3RpdGxlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnR5cGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3R5cGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneG1sOmJhc2UnLCB7IHByZWZpeDogJ3htbCcsIG5hbWU6ICdiYXNlJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWw6bGFuZycsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ2xhbmcnLCBuYW1lc3BhY2U6IE5TLlhNTCB9XSxcbiAgICBbJ3htbDpzcGFjZScsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ3NwYWNlJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWxucycsIHsgcHJlZml4OiAnJywgbmFtZTogJ3htbG5zJywgbmFtZXNwYWNlOiBOUy5YTUxOUyB9XSxcbiAgICBbJ3htbG5zOnhsaW5rJywgeyBwcmVmaXg6ICd4bWxucycsIG5hbWU6ICd4bGluaycsIG5hbWVzcGFjZTogTlMuWE1MTlMgfV0sXG5dKTtcbi8vU1ZHIHRhZyBuYW1lcyBhZGp1c3RtZW50IG1hcFxuZXhwb3J0IGNvbnN0IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAgPSBuZXcgTWFwKFtcbiAgICAnYWx0R2x5cGgnLFxuICAgICdhbHRHbHlwaERlZicsXG4gICAgJ2FsdEdseXBoSXRlbScsXG4gICAgJ2FuaW1hdGVDb2xvcicsXG4gICAgJ2FuaW1hdGVNb3Rpb24nLFxuICAgICdhbmltYXRlVHJhbnNmb3JtJyxcbiAgICAnY2xpcFBhdGgnLFxuICAgICdmZUJsZW5kJyxcbiAgICAnZmVDb2xvck1hdHJpeCcsXG4gICAgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAgICdmZUNvbXBvc2l0ZScsXG4gICAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAgICdmZURpZmZ1c2VMaWdodGluZycsXG4gICAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgICAnZmVEaXN0YW50TGlnaHQnLFxuICAgICdmZUZsb29kJyxcbiAgICAnZmVGdW5jQScsXG4gICAgJ2ZlRnVuY0InLFxuICAgICdmZUZ1bmNHJyxcbiAgICAnZmVGdW5jUicsXG4gICAgJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgICAnZmVJbWFnZScsXG4gICAgJ2ZlTWVyZ2UnLFxuICAgICdmZU1lcmdlTm9kZScsXG4gICAgJ2ZlTW9ycGhvbG9neScsXG4gICAgJ2ZlT2Zmc2V0JyxcbiAgICAnZmVQb2ludExpZ2h0JyxcbiAgICAnZmVTcGVjdWxhckxpZ2h0aW5nJyxcbiAgICAnZmVTcG90TGlnaHQnLFxuICAgICdmZVRpbGUnLFxuICAgICdmZVR1cmJ1bGVuY2UnLFxuICAgICdmb3JlaWduT2JqZWN0JyxcbiAgICAnZ2x5cGhSZWYnLFxuICAgICdsaW5lYXJHcmFkaWVudCcsXG4gICAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgICAndGV4dFBhdGgnLFxuXS5tYXAoKHRuKSA9PiBbdG4udG9Mb3dlckNhc2UoKSwgdG5dKSk7XG4vL1RhZ3MgdGhhdCBjYXVzZXMgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudFxuY29uc3QgRVhJVFNfRk9SRUlHTl9DT05URU5UID0gbmV3IFNldChbXG4gICAgJC5CLFxuICAgICQuQklHLFxuICAgICQuQkxPQ0tRVU9URSxcbiAgICAkLkJPRFksXG4gICAgJC5CUixcbiAgICAkLkNFTlRFUixcbiAgICAkLkNPREUsXG4gICAgJC5ERCxcbiAgICAkLkRJVixcbiAgICAkLkRMLFxuICAgICQuRFQsXG4gICAgJC5FTSxcbiAgICAkLkVNQkVELFxuICAgICQuSDEsXG4gICAgJC5IMixcbiAgICAkLkgzLFxuICAgICQuSDQsXG4gICAgJC5INSxcbiAgICAkLkg2LFxuICAgICQuSEVBRCxcbiAgICAkLkhSLFxuICAgICQuSSxcbiAgICAkLklNRyxcbiAgICAkLkxJLFxuICAgICQuTElTVElORyxcbiAgICAkLk1FTlUsXG4gICAgJC5NRVRBLFxuICAgICQuTk9CUixcbiAgICAkLk9MLFxuICAgICQuUCxcbiAgICAkLlBSRSxcbiAgICAkLlJVQlksXG4gICAgJC5TLFxuICAgICQuU01BTEwsXG4gICAgJC5TUEFOLFxuICAgICQuU1RST05HLFxuICAgICQuU1RSSUtFLFxuICAgICQuU1VCLFxuICAgICQuU1VQLFxuICAgICQuVEFCTEUsXG4gICAgJC5UVCxcbiAgICAkLlUsXG4gICAgJC5VTCxcbiAgICAkLlZBUixcbl0pO1xuLy9DaGVjayBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5leHBvcnQgZnVuY3Rpb24gY2F1c2VzRXhpdChzdGFydFRhZ1Rva2VuKSB7XG4gICAgY29uc3QgdG4gPSBzdGFydFRhZ1Rva2VuLnRhZ0lEO1xuICAgIGNvbnN0IGlzRm9udFdpdGhBdHRycyA9IHRuID09PSAkLkZPTlQgJiZcbiAgICAgICAgc3RhcnRUYWdUb2tlbi5hdHRycy5zb21lKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gQVRUUlMuQ09MT1IgfHwgbmFtZSA9PT0gQVRUUlMuU0laRSB8fCBuYW1lID09PSBBVFRSUy5GQUNFKTtcbiAgICByZXR1cm4gaXNGb250V2l0aEF0dHJzIHx8IEVYSVRTX0ZPUkVJR05fQ09OVEVOVC5oYXModG4pO1xufVxuLy9Ub2tlbiBhZGp1c3RtZW50c1xuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0b2tlbi5hdHRyc1tpXS5uYW1lID09PSBERUZJTklUSU9OX1VSTF9BVFRSKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkQXR0ck5hbWUgPSBTVkdfQVRUUlNfQURKVVNUTUVOVF9NQVAuZ2V0KHRva2VuLmF0dHJzW2ldLm5hbWUpO1xuICAgICAgICBpZiAoYWRqdXN0ZWRBdHRyTmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyTmFtZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhZGp1c3RlZEF0dHJFbnRyeSA9IFhNTF9BVFRSU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4uYXR0cnNbaV0ubmFtZSk7XG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJFbnRyeSkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ucHJlZml4ID0gYWRqdXN0ZWRBdHRyRW50cnkucHJlZml4O1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWU7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lc3BhY2UgPSBhZGp1c3RlZEF0dHJFbnRyeS5uYW1lc3BhY2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKSB7XG4gICAgY29uc3QgYWRqdXN0ZWRUYWdOYW1lID0gU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4udGFnTmFtZSk7XG4gICAgaWYgKGFkanVzdGVkVGFnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIHRva2VuLnRhZ05hbWUgPSBhZGp1c3RlZFRhZ05hbWU7XG4gICAgICAgIHRva2VuLnRhZ0lEID0gZ2V0VGFnSUQodG9rZW4udGFnTmFtZSk7XG4gICAgfVxufVxuLy9JbnRlZ3JhdGlvbiBwb2ludHNcbmZ1bmN0aW9uIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSB7XG4gICAgcmV0dXJuIG5zID09PSBOUy5NQVRITUwgJiYgKHRuID09PSAkLk1JIHx8IHRuID09PSAkLk1PIHx8IHRuID09PSAkLk1OIHx8IHRuID09PSAkLk1TIHx8IHRuID09PSAkLk1URVhUKTtcbn1cbmZ1bmN0aW9uIGlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycykge1xuICAgIGlmIChucyA9PT0gTlMuTUFUSE1MICYmIHRuID09PSAkLkFOTk9UQVRJT05fWE1MKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChhdHRyc1tpXS5uYW1lID09PSBBVFRSUy5FTkNPRElORykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXR0cnNbaV0udmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IE1JTUVfVFlQRVMuVEVYVF9IVE1MIHx8IHZhbHVlID09PSBNSU1FX1RZUEVTLkFQUExJQ0FUSU9OX1hNTDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnMgPT09IE5TLlNWRyAmJiAodG4gPT09ICQuRk9SRUlHTl9PQkpFQ1QgfHwgdG4gPT09ICQuREVTQyB8fCB0biA9PT0gJC5USVRMRSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMsIGZvcmVpZ25OUykge1xuICAgIHJldHVybiAoKCghZm9yZWlnbk5TIHx8IGZvcmVpZ25OUyA9PT0gTlMuSFRNTCkgJiYgaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSkgfHxcbiAgICAgICAgKCghZm9yZWlnbk5TIHx8IGZvcmVpZ25OUyA9PT0gTlMuTUFUSE1MKSAmJiBpc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KHRuLCBucykpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcmVpZ24tY29udGVudC5qcy5tYXAiLCAiaW1wb3J0IHsgVG9rZW5pemVyLCBUb2tlbml6ZXJNb2RlIH0gZnJvbSAnLi4vdG9rZW5pemVyL2luZGV4LmpzJztcbmltcG9ydCB7IE9wZW5FbGVtZW50U3RhY2sgfSBmcm9tICcuL29wZW4tZWxlbWVudC1zdGFjay5qcyc7XG5pbXBvcnQgeyBGb3JtYXR0aW5nRWxlbWVudExpc3QsIEVudHJ5VHlwZSB9IGZyb20gJy4vZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbmltcG9ydCAqIGFzIGRvY3R5cGUgZnJvbSAnLi4vY29tbW9uL2RvY3R5cGUuanMnO1xuaW1wb3J0ICogYXMgZm9yZWlnbkNvbnRlbnQgZnJvbSAnLi4vY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyc7XG5pbXBvcnQgeyBFUlIgfSBmcm9tICcuLi9jb21tb24vZXJyb3ItY29kZXMuanMnO1xuaW1wb3J0ICogYXMgdW5pY29kZSBmcm9tICcuLi9jb21tb24vdW5pY29kZS5qcyc7XG5pbXBvcnQgeyBUQUdfSUQgYXMgJCwgVEFHX05BTUVTIGFzIFROLCBOUywgQVRUUlMsIFNQRUNJQUxfRUxFTUVOVFMsIERPQ1VNRU5UX01PREUsIGlzTnVtYmVyZWRIZWFkZXIsIGdldFRhZ0lELCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmltcG9ydCB7IFRva2VuVHlwZSwgZ2V0VG9rZW5BdHRyLCB9IGZyb20gJy4uL2NvbW1vbi90b2tlbi5qcyc7XG4vL01pc2MgY29uc3RhbnRzXG5jb25zdCBISURERU5fSU5QVVRfVFlQRSA9ICdoaWRkZW4nO1xuLy9BZG9wdGlvbiBhZ2VuY3kgbG9vcHMgaXRlcmF0aW9uIGNvdW50XG5jb25zdCBBQV9PVVRFUl9MT09QX0lURVIgPSA4O1xuY29uc3QgQUFfSU5ORVJfTE9PUF9JVEVSID0gMztcbi8vSW5zZXJ0aW9uIG1vZGVzXG52YXIgSW5zZXJ0aW9uTW9kZTtcbihmdW5jdGlvbiAoSW5zZXJ0aW9uTW9kZSkge1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOSVRJQUxcIl0gPSAwXSA9IFwiSU5JVElBTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkJFRk9SRV9IVE1MXCJdID0gMV0gPSBcIkJFRk9SRV9IVE1MXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQkVGT1JFX0hFQURcIl0gPSAyXSA9IFwiQkVGT1JFX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9IRUFEXCJdID0gM10gPSBcIklOX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9IRUFEX05PX1NDUklQVFwiXSA9IDRdID0gXCJJTl9IRUFEX05PX1NDUklQVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0hFQURcIl0gPSA1XSA9IFwiQUZURVJfSEVBRFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0JPRFlcIl0gPSA2XSA9IFwiSU5fQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIlRFWFRcIl0gPSA3XSA9IFwiVEVYVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFXCJdID0gOF0gPSBcIklOX1RBQkxFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVfVEVYVFwiXSA9IDldID0gXCJJTl9UQUJMRV9URVhUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ0FQVElPTlwiXSA9IDEwXSA9IFwiSU5fQ0FQVElPTlwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NPTFVNTl9HUk9VUFwiXSA9IDExXSA9IFwiSU5fQ09MVU1OX0dST1VQXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVfQk9EWVwiXSA9IDEyXSA9IFwiSU5fVEFCTEVfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1JPV1wiXSA9IDEzXSA9IFwiSU5fUk9XXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ0VMTFwiXSA9IDE0XSA9IFwiSU5fQ0VMTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1NFTEVDVFwiXSA9IDE1XSA9IFwiSU5fU0VMRUNUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fU0VMRUNUX0lOX1RBQkxFXCJdID0gMTZdID0gXCJJTl9TRUxFQ1RfSU5fVEFCTEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9URU1QTEFURVwiXSA9IDE3XSA9IFwiSU5fVEVNUExBVEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9CT0RZXCJdID0gMThdID0gXCJBRlRFUl9CT0RZXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fRlJBTUVTRVRcIl0gPSAxOV0gPSBcIklOX0ZSQU1FU0VUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfRlJBTUVTRVRcIl0gPSAyMF0gPSBcIkFGVEVSX0ZSQU1FU0VUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQUZURVJfQk9EWVwiXSA9IDIxXSA9IFwiQUZURVJfQUZURVJfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0FGVEVSX0ZSQU1FU0VUXCJdID0gMjJdID0gXCJBRlRFUl9BRlRFUl9GUkFNRVNFVFwiO1xufSkoSW5zZXJ0aW9uTW9kZSB8fCAoSW5zZXJ0aW9uTW9kZSA9IHt9KSk7XG5jb25zdCBCQVNFX0xPQyA9IHtcbiAgICBzdGFydExpbmU6IC0xLFxuICAgIHN0YXJ0Q29sOiAtMSxcbiAgICBzdGFydE9mZnNldDogLTEsXG4gICAgZW5kTGluZTogLTEsXG4gICAgZW5kQ29sOiAtMSxcbiAgICBlbmRPZmZzZXQ6IC0xLFxufTtcbmNvbnN0IFRBQkxFX1NUUlVDVFVSRV9UQUdTID0gbmV3IFNldChbJC5UQUJMRSwgJC5UQk9EWSwgJC5URk9PVCwgJC5USEVBRCwgJC5UUl0pO1xuY29uc3QgZGVmYXVsdFBhcnNlck9wdGlvbnMgPSB7XG4gICAgc2NyaXB0aW5nRW5hYmxlZDogdHJ1ZSxcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiBmYWxzZSxcbiAgICB0cmVlQWRhcHRlcjogZGVmYXVsdFRyZWVBZGFwdGVyLFxuICAgIG9uUGFyc2VFcnJvcjogbnVsbCxcbn07XG4vL1BhcnNlclxuZXhwb3J0IGNsYXNzIFBhcnNlciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgZG9jdW1lbnQsIGZyYWdtZW50Q29udGV4dCA9IG51bGwsIHNjcmlwdEhhbmRsZXIgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0ID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICB0aGlzLnNjcmlwdEhhbmRsZXIgPSBzY3JpcHRIYW5kbGVyO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOSVRJQUw7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTklUSUFMO1xuICAgICAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IG51bGw7XG4gICAgICAgIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBub2RlIGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSBIVE1MIG5hbWVzcGFjZSAqL1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RJbkhUTUwgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSB0ZW1wbGF0ZSBpbnNlcnRpb24gbW9kZSBzdGFjayBpcyBtYWludGFpbmVkIGZyb20gdGhlIGxlZnQuXG4gICAgICAgICAqIEllLiB0aGUgdG9wbW9zdCBlbGVtZW50IHdpbGwgYWx3YXlzIGhhdmUgaW5kZXggMC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjayA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMgPSBbXTtcbiAgICAgICAgdGhpcy5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJhbWVzZXRPayA9IHRydWU7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UGFyc2VyT3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0aGlzLm9wdGlvbnMudHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMub25QYXJzZUVycm9yID0gdGhpcy5vcHRpb25zLm9uUGFyc2VFcnJvcjtcbiAgICAgICAgLy8gQWx3YXlzIGVuYWJsZSBsb2NhdGlvbiBpbmZvIGlmIHdlIHJlcG9ydCBwYXJzZSBlcnJvcnMuXG4gICAgICAgIGlmICh0aGlzLm9uUGFyc2VFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudCAhPT0gbnVsbCAmJiBkb2N1bWVudCAhPT0gdm9pZCAwID8gZG9jdW1lbnQgOiB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCk7XG4gICAgICAgIHRoaXMudG9rZW5pemVyID0gbmV3IFRva2VuaXplcih0aGlzLm9wdGlvbnMsIHRoaXMpO1xuICAgICAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodGhpcy50cmVlQWRhcHRlcik7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0SUQgPSBmcmFnbWVudENvbnRleHQgPyBnZXRUYWdJRCh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZnJhZ21lbnRDb250ZXh0KSkgOiAkLlVOS05PV047XG4gICAgICAgIHRoaXMuX3NldENvbnRleHRNb2RlcyhmcmFnbWVudENvbnRleHQgIT09IG51bGwgJiYgZnJhZ21lbnRDb250ZXh0ICE9PSB2b2lkIDAgPyBmcmFnbWVudENvbnRleHQgOiB0aGlzLmRvY3VtZW50LCB0aGlzLmZyYWdtZW50Q29udGV4dElEKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0aGlzLmRvY3VtZW50LCB0aGlzLnRyZWVBZGFwdGVyLCB0aGlzKTtcbiAgICB9XG4gICAgLy8gQVBJXG4gICAgc3RhdGljIHBhcnNlKGh0bWwsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IHRoaXMob3B0aW9ucyk7XG4gICAgICAgIHBhcnNlci50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBwYXJzZXIuZG9jdW1lbnQ7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRGcmFnbWVudFBhcnNlcihmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRQYXJzZXJPcHRpb25zLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgLy9OT1RFOiB1c2UgYSA8dGVtcGxhdGU+IGVsZW1lbnQgYXMgdGhlIGZyYWdtZW50IGNvbnRleHQgaWYgbm8gY29udGV4dCBlbGVtZW50IHdhcyBwcm92aWRlZCxcbiAgICAgICAgLy9zbyB3ZSB3aWxsIHBhcnNlIGluIGEgXCJmb3JnaXZpbmdcIiBtYW5uZXJcbiAgICAgICAgZnJhZ21lbnRDb250ZXh0ICE9PSBudWxsICYmIGZyYWdtZW50Q29udGV4dCAhPT0gdm9pZCAwID8gZnJhZ21lbnRDb250ZXh0IDogKGZyYWdtZW50Q29udGV4dCA9IG9wdHMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChUTi5URU1QTEFURSwgTlMuSFRNTCwgW10pKTtcbiAgICAgICAgLy9OT1RFOiBjcmVhdGUgYSBmYWtlIGVsZW1lbnQgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIHRoZSBgZG9jdW1lbnRgIGZvciBmcmFnbWVudCBwYXJzaW5nLlxuICAgICAgICAvL1RoaXMgaXMgaW1wb3J0YW50IGZvciBqc2RvbSwgd2hlcmUgYSBuZXcgYGRvY3VtZW50YCBjYW5ub3QgYmUgY3JlYXRlZC4gVGhpcyBsZWQgdG9cbiAgICAgICAgLy9mcmFnbWVudCBwYXJzaW5nIG1lc3Npbmcgd2l0aCB0aGUgbWFpbiBgZG9jdW1lbnRgLlxuICAgICAgICBjb25zdCBkb2N1bWVudE1vY2sgPSBvcHRzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJ2RvY3VtZW50bW9jaycsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IHRoaXMob3B0cywgZG9jdW1lbnRNb2NrLCBmcmFnbWVudENvbnRleHQpO1xuICAgICAgICBpZiAocGFyc2VyLmZyYWdtZW50Q29udGV4dElEID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICBwYXJzZXIudG1wbEluc2VydGlvbk1vZGVTdGFjay51bnNoaWZ0KEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEUpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlci5faW5pdFRva2VuaXplckZvckZyYWdtZW50UGFyc2luZygpO1xuICAgICAgICBwYXJzZXIuX2luc2VydEZha2VSb290RWxlbWVudCgpO1xuICAgICAgICBwYXJzZXIuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwYXJzZXIuX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQoKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlcjtcbiAgICB9XG4gICAgZ2V0RnJhZ21lbnQoKSB7XG4gICAgICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKHRoaXMuZG9jdW1lbnQpO1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLl9hZG9wdE5vZGVzKHJvb3RFbGVtZW50LCBmcmFnbWVudCk7XG4gICAgICAgIHJldHVybiBmcmFnbWVudDtcbiAgICB9XG4gICAgLy9FcnJvcnNcbiAgICBfZXJyKHRva2VuLCBjb2RlLCBiZWZvcmVUb2tlbikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghdGhpcy5vblBhcnNlRXJyb3IpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxvYyA9IChfYSA9IHRva2VuLmxvY2F0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBCQVNFX0xPQztcbiAgICAgICAgY29uc3QgZXJyID0ge1xuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIHN0YXJ0TGluZTogbG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgIHN0YXJ0Q29sOiBsb2Muc3RhcnRDb2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogbG9jLnN0YXJ0T2Zmc2V0LFxuICAgICAgICAgICAgZW5kTGluZTogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRMaW5lIDogbG9jLmVuZExpbmUsXG4gICAgICAgICAgICBlbmRDb2w6IGJlZm9yZVRva2VuID8gbG9jLnN0YXJ0Q29sIDogbG9jLmVuZENvbCxcbiAgICAgICAgICAgIGVuZE9mZnNldDogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRPZmZzZXQgOiBsb2MuZW5kT2Zmc2V0LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9uUGFyc2VFcnJvcihlcnIpO1xuICAgIH1cbiAgICAvL1N0YWNrIGV2ZW50c1xuICAgIG9uSXRlbVB1c2gobm9kZSwgdGlkLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1QdXNoKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgbm9kZSk7XG4gICAgICAgIGlmIChpc1RvcCAmJiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDApXG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMobm9kZSwgdGlkKTtcbiAgICB9XG4gICAgb25JdGVtUG9wKG5vZGUsIGlzVG9wKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy5fc2V0RW5kTG9jYXRpb24obm9kZSwgdGhpcy5jdXJyZW50VG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMudHJlZUFkYXB0ZXIpLm9uSXRlbVBvcCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIG5vZGUsIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQpO1xuICAgICAgICBpZiAoaXNUb3ApIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRUYWdJZDtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFnSWQgPSB0aGlzLmZyYWdtZW50Q29udGV4dElEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgKHsgY3VycmVudCwgY3VycmVudFRhZ0lkIH0gPSB0aGlzLm9wZW5FbGVtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMoY3VycmVudCwgY3VycmVudFRhZ0lkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc2V0Q29udGV4dE1vZGVzKGN1cnJlbnQsIHRpZCkge1xuICAgICAgICBjb25zdCBpc0hUTUwgPSBjdXJyZW50ID09PSB0aGlzLmRvY3VtZW50IHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpID09PSBOUy5IVE1MO1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RJbkhUTUwgPSAhaXNIVE1MO1xuICAgICAgICB0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlID0gIWlzSFRNTCAmJiAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgY3VycmVudCk7XG4gICAgfVxuICAgIF9zd2l0Y2hUb1RleHRQYXJzaW5nKGN1cnJlbnRUb2tlbiwgbmV4dFRva2VuaXplclN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoY3VycmVudFRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBuZXh0VG9rZW5pemVyU3RhdGU7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gdGhpcy5pbnNlcnRpb25Nb2RlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG4gICAgfVxuICAgIHN3aXRjaFRvUGxhaW50ZXh0UGFyc2luZygpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICB9XG4gICAgLy9GcmFnbWVudCBwYXJzaW5nXG4gICAgX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dFxuICAgICAgICAgICAgPyB0aGlzLmZyYWdtZW50Q29udGV4dFxuICAgICAgICAgICAgOiB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgIH1cbiAgICBfZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCgpIHtcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSkgPT09IFROLkZPUk0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbm9kZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKSB7XG4gICAgICAgIGlmICghdGhpcy5mcmFnbWVudENvbnRleHQgfHwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5mcmFnbWVudENvbnRleHQpICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmZyYWdtZW50Q29udGV4dElEKSB7XG4gICAgICAgICAgICBjYXNlICQuVElUTEU6XG4gICAgICAgICAgICBjYXNlICQuVEVYVEFSRUE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkNEQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICAgICAgY2FzZSAkLlhNUDpcbiAgICAgICAgICAgIGNhc2UgJC5JRlJBTUU6XG4gICAgICAgICAgICBjYXNlICQuTk9FTUJFRDpcbiAgICAgICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5SQVdURVhUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNDUklQVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5QTEFJTlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1RyZWUgbXV0YXRpb25cbiAgICBfc2V0RG9jdW1lbnRUeXBlKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0b2tlbi5uYW1lIHx8ICcnO1xuICAgICAgICBjb25zdCBwdWJsaWNJZCA9IHRva2VuLnB1YmxpY0lkIHx8ICcnO1xuICAgICAgICBjb25zdCBzeXN0ZW1JZCA9IHRva2VuLnN5c3RlbUlkIHx8ICcnO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldERvY3VtZW50VHlwZSh0aGlzLmRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xuICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50Q2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5kb2N1bWVudCk7XG4gICAgICAgICAgICBjb25zdCBkb2NUeXBlTm9kZSA9IGRvY3VtZW50Q2hpbGRyZW4uZmluZCgobm9kZSkgPT4gdGhpcy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpO1xuICAgICAgICAgICAgaWYgKGRvY1R5cGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGRvY1R5cGVOb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbG9jYXRpb24pIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICBjb25zdCBsb2MgPSBsb2NhdGlvbiAmJiB7XG4gICAgICAgICAgICAgICAgLi4ubG9jYXRpb24sXG4gICAgICAgICAgICAgICAgc3RhcnRUYWc6IGxvY2F0aW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBsb2MpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hcHBlbmRFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCB0b2tlbi5sb2NhdGlvbik7XG4gICAgfVxuICAgIF9pbnNlcnRFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdG9rZW4udGFnSUQpO1xuICAgIH1cbiAgICBfaW5zZXJ0RmFrZUVsZW1lbnQodGFnTmFtZSwgdGFnSUQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdGFnSUQpO1xuICAgIH1cbiAgICBfaW5zZXJ0VGVtcGxhdGUodG9rZW4pIHtcbiAgICAgICAgY29uc3QgdG1wbCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBOUy5IVE1MLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXRUZW1wbGF0ZUNvbnRlbnQodG1wbCwgY29udGVudCk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUodG1wbCwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKHRtcGwsIHRva2VuLnRhZ0lEKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKVxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGNvbnRlbnQsIG51bGwpO1xuICAgIH1cbiAgICBfaW5zZXJ0RmFrZVJvb3RFbGVtZW50KCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KFROLkhUTUwsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKVxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIG51bGwpO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsICQuSFRNTCk7XG4gICAgfVxuICAgIF9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnROb2RlID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVDb21tZW50Tm9kZSh0b2tlbi5kYXRhKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGNvbW1lbnROb2RlKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29tbWVudE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfaW5zZXJ0Q2hhcmFjdGVycyh0b2tlbikge1xuICAgICAgICBsZXQgcGFyZW50O1xuICAgICAgICBsZXQgYmVmb3JlRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpIHtcbiAgICAgICAgICAgICh7IHBhcmVudCwgYmVmb3JlRWxlbWVudCB9ID0gdGhpcy5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKGJlZm9yZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHRCZWZvcmUocGFyZW50LCB0b2tlbi5jaGFycywgYmVmb3JlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnRPck5vZGU7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0b2tlbi5sb2NhdGlvbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMocGFyZW50KTtcbiAgICAgICAgY29uc3QgdGV4dE5vZGVJZHggPSBiZWZvcmVFbGVtZW50ID8gc2libGluZ3MubGFzdEluZGV4T2YoYmVmb3JlRWxlbWVudCkgOiBzaWJsaW5ncy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHRleHROb2RlID0gc2libGluZ3NbdGV4dE5vZGVJZHggLSAxXTtcbiAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGEgbG9jYXRpb24gYXNzaWduZWQgYnkgYW5vdGhlciB0b2tlbiwgdGhlbiBqdXN0IHVwZGF0ZSB0aGUgZW5kIHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHRuTG9jID0gdGhpcy50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlKTtcbiAgICAgICAgaWYgKHRuTG9jKSB7XG4gICAgICAgICAgICBjb25zdCB7IGVuZExpbmUsIGVuZENvbCwgZW5kT2Zmc2V0IH0gPSB0b2tlbi5sb2NhdGlvbjtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIudXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXh0Tm9kZSwgeyBlbmRMaW5lLCBlbmRDb2wsIGVuZE9mZnNldCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2Fkb3B0Tm9kZXMoZG9ub3IsIHJlY2lwaWVudCkge1xuICAgICAgICBmb3IgKGxldCBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcik7IGNoaWxkOyBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcikpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShjaGlsZCk7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHJlY2lwaWVudCwgY2hpbGQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9zZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjbG9zaW5nVG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50KSAmJiBjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0TG9jID0gY2xvc2luZ1Rva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBlbmRMb2MgPSBcbiAgICAgICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmdcbiAgICAgICAgICAgIC8vIHRhZyBhbmQgZm9yIGNhc2VzIGxpa2UgPHRkPiA8cD4gPC90ZD4gLSAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nIHRhZy5cbiAgICAgICAgICAgIGNsb3NpbmdUb2tlbi50eXBlID09PSBUb2tlblR5cGUuRU5EX1RBRyAmJiB0biA9PT0gY2xvc2luZ1Rva2VuLnRhZ05hbWVcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kVGFnOiB7IC4uLmN0TG9jIH0sXG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLmVuZExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGVuZENvbDogY3RMb2MuZW5kQ29sLFxuICAgICAgICAgICAgICAgICAgICBlbmRPZmZzZXQ6IGN0TG9jLmVuZE9mZnNldCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kQ29sOiBjdExvYy5zdGFydENvbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0OiBjdExvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGVuZExvYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9Ub2tlbiBwcm9jZXNzaW5nXG4gICAgc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIC8vIENoZWNrIHRoYXQgbmVpdGhlciBjdXJyZW50ID09PSBkb2N1bWVudCwgb3IgbnMgPT09IE5TLkhUTUxcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnROb3RJbkhUTUwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICBsZXQgY3VycmVudFRhZ0lkO1xuICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgIGN1cnJlbnRUYWdJZCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAoeyBjdXJyZW50LCBjdXJyZW50VGFnSWQgfSA9IHRoaXMub3BlbkVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuU1ZHICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY3VycmVudCkgPT09IFROLkFOTk9UQVRJT05fWE1MICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgLy8gQ2hlY2sgdGhhdCBgY3VycmVudGAgaXMgbm90IGFuIGludGVncmF0aW9uIHBvaW50IGZvciBIVE1MIG9yIE1hdGhNTCBlbGVtZW50cy5cbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSB8fFxuICAgICAgICAgICAgLy8gSWYgaXQgX2lzXyBhbiBpbnRlZ3JhdGlvbiBwb2ludCwgdGhlbiB3ZSBtaWdodCBoYXZlIHRvIGNoZWNrIHRoYXQgaXQgaXMgbm90IGFuIEhUTUxcbiAgICAgICAgICAgIC8vIGludGVncmF0aW9uIHBvaW50LlxuICAgICAgICAgICAgKCh0b2tlbi50YWdJRCA9PT0gJC5NR0xZUEggfHwgdG9rZW4udGFnSUQgPT09ICQuTUFMSUdOTUFSSykgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnRUYWdJZCwgY3VycmVudCwgTlMuSFRNTCkpKTtcbiAgICB9XG4gICAgX3Byb2Nlc3NUb2tlbih0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTnVsbENoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuRE9DVFlQRToge1xuICAgICAgICAgICAgICAgIHRoaXMub25Eb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLlNUQVJUX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5FTkRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVuZFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW9mKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbldoaXRlc3BhY2VDaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vSW50ZWdyYXRpb24gcG9pbnRzXG4gICAgX2lzSW50ZWdyYXRpb25Qb2ludCh0aWQsIGVsZW1lbnQsIGZvcmVpZ25OUykge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBhdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBmb3JlaWduQ29udGVudC5pc0ludGVncmF0aW9uUG9pbnQodGlkLCBucywgYXR0cnMsIGZvcmVpZ25OUyk7XG4gICAgfVxuICAgIC8vQWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgcmVjb25zdHJ1Y3Rpb25cbiAgICBfcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IGxpc3RMZW5ndGggPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpc3RMZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKTtcbiAgICAgICAgICAgIGNvbnN0IHVub3BlbklkeCA9IGVuZEluZGV4IDwgMCA/IGxpc3RMZW5ndGggLSAxIDogZW5kSW5kZXggLSAxO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHVub3BlbklkeDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXNbaV07XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0RWxlbWVudChlbnRyeS50b2tlbiwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZW50cnkuZWxlbWVudCkpO1xuICAgICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vQ2xvc2UgZWxlbWVudHNcbiAgICBfY2xvc2VUYWJsZUNlbGwoKSB7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgfVxuICAgIF9jbG9zZVBFbGVtZW50KCkge1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlApO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5QKTtcbiAgICB9XG4gICAgLy9JbnNlcnRpb24gbW9kZXNcbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAvL0luc2VydGlvbiBtb2RlIHJlc2V0IG1hcFxuICAgICAgICAgICAgc3dpdGNoIChpID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0ID8gdGhpcy5mcmFnbWVudENvbnRleHRJRCA6IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5URk9PVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkNBUFRJT046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3QoaSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLmhlYWRFbGVtZW50ID8gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEIDogSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIH1cbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0KHNlbGVjdElkeCkge1xuICAgICAgICBpZiAoc2VsZWN0SWR4ID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHNlbGVjdElkeCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0biA9IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAodG4gPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUO1xuICAgIH1cbiAgICAvL0Zvc3RlciBwYXJlbnRpbmdcbiAgICBfaXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRuKSB7XG4gICAgICAgIHJldHVybiBUQUJMRV9TVFJVQ1RVUkVfVEFHUy5oYXModG4pO1xuICAgIH1cbiAgICBfc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgJiYgdGhpcy5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCk7XG4gICAgfVxuICAgIF9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW5FbGVtZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkob3BlbkVsZW1lbnQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQ6IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KG9wZW5FbGVtZW50KSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG9wZW5FbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50LCBiZWZvcmVFbGVtZW50OiBvcGVuRWxlbWVudCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaSAtIDFdLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICB9XG4gICAgX2Zvc3RlclBhcmVudEVsZW1lbnQoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpO1xuICAgICAgICBpZiAobG9jYXRpb24uYmVmb3JlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRCZWZvcmUobG9jYXRpb24ucGFyZW50LCBlbGVtZW50LCBsb2NhdGlvbi5iZWZvcmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQobG9jYXRpb24ucGFyZW50LCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NwZWNpYWwgZWxlbWVudHNcbiAgICBfaXNTcGVjaWFsRWxlbWVudChlbGVtZW50LCBpZCkge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gU1BFQ0lBTF9FTEVNRU5UU1tuc10uaGFzKGlkKTtcbiAgICB9XG4gICAgb25DaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUpIHtcbiAgICAgICAgICAgIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uTnVsbENoYXJhY3Rlcih0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkNvbW1lbnQodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5vdEluSFRNTCkge1xuICAgICAgICAgICAgYXBwZW5kQ29tbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkRvY3R5cGUodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgZG9jdHlwZUluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZERvY3R5cGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25TdGFydFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICB0aGlzLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcgJiYgIXRva2VuLmFja1NlbGZDbG9zaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIodG9rZW4sIEVSUi5ub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhIGdpdmVuIHN0YXJ0IHRhZy5cbiAgICAgKlxuICAgICAqIGBvblN0YXJ0VGFnYCBjaGVja3MgaWYgYSBzZWxmLWNsb3NpbmcgdGFnIHdhcyByZWNvZ25pemVkLiBXaGVuIGEgdG9rZW5cbiAgICAgKiBpcyBtb3ZlZCBpbmJldHdlZW4gbXVsdGlwbGUgaW5zZXJ0aW9uIG1vZGVzLCB0aGlzIGNoZWNrIGZvciBzZWxmLWNsb3NpbmdcbiAgICAgKiBjb3VsZCBsZWFkIHRvIGZhbHNlIHBvc2l0aXZlcy4gVG8gYXZvaWQgdGhpcywgYF9wcm9jZXNzU3RhcnRUYWdgIGlzIHVzZWRcbiAgICAgKiBmb3IgbmVzdGVkIGNhbGxzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRva2VuIFRoZSB0b2tlbiB0byBwcm9jZXNzLlxuICAgICAqL1xuICAgIF9wcm9jZXNzU3RhcnRUYWcodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSkge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc3RhcnRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0JlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNhcHRpb24odGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3codGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ2VsbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblNlbGVjdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblNlbGVjdEluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRlbXBsYXRlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkVuZFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Tm90SW5IVE1MKSB7XG4gICAgICAgICAgICBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdCZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5DYXB0aW9uKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZUJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luUm93KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5DZWxsKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblNlbGVjdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5TZWxlY3RJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5GcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uRW9mKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVvZkluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIGVvZkluVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW9mSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RvcFBhcnNpbmcodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbldoaXRlc3BhY2VDaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XG4gICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmNoYXJDb2RlQXQoMCkgPT09IHVuaWNvZGUuQ09ERV9QT0lOVFMuTElORV9GRUVEKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRva2VuLmNoYXJzID0gdG9rZW4uY2hhcnMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG59XG4vL0Fkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG1cbi8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNhZG9wdGlvbkFnZW5jeSlcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1N0ZXBzIDUtOCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4pIHtcbiAgICBsZXQgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0b2tlbi50YWdOYW1lKTtcbiAgICBpZiAoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgICAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG9rZW4udGFnSUQpKSB7XG4gICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0aW5nRWxlbWVudEVudHJ5O1xufVxuLy9TdGVwcyA5IGFuZCAxMCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYU9idGFpbkZ1cnRoZXN0QmxvY2socCwgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgIGxldCBmdXJ0aGVzdEJsb2NrID0gbnVsbDtcbiAgICBsZXQgaWR4ID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7XG4gICAgZm9yICg7IGlkeCA+PSAwOyBpZHgtLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaWR4XTtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgcC5vcGVuRWxlbWVudHMudGFnSURzW2lkeF0pKSB7XG4gICAgICAgICAgICBmdXJ0aGVzdEJsb2NrID0gZWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgfVxuICAgIHJldHVybiBmdXJ0aGVzdEJsb2NrO1xufVxuLy9TdGVwIDEzIG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5uZXJMb29wKHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50KSB7XG4gICAgbGV0IGxhc3RFbGVtZW50ID0gZnVydGhlc3RCbG9jaztcbiAgICBsZXQgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihmdXJ0aGVzdEJsb2NrKTtcbiAgICBmb3IgKGxldCBpID0gMCwgZWxlbWVudCA9IG5leHRFbGVtZW50OyBlbGVtZW50ICE9PSBmb3JtYXR0aW5nRWxlbWVudDsgaSsrLCBlbGVtZW50ID0gbmV4dEVsZW1lbnQpIHtcbiAgICAgICAgLy9OT1RFOiBzdG9yZSB0aGUgbmV4dCBlbGVtZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbiAoaXQgbWF5IGJlIGRlbGV0ZWQgZnJvbSB0aGUgc3RhY2sgYnkgc3RlcCA5LjUpXG4gICAgICAgIG5leHRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgY291bnRlck92ZXJmbG93ID0gZWxlbWVudEVudHJ5ICYmIGkgPj0gQUFfSU5ORVJfTE9PUF9JVEVSO1xuICAgICAgICBjb25zdCBzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzID0gIWVsZW1lbnRFbnRyeSB8fCBjb3VudGVyT3ZlcmZsb3c7XG4gICAgICAgIGlmIChzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzKSB7XG4gICAgICAgICAgICBpZiAoY291bnRlck92ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgaWYgKGxhc3RFbGVtZW50ID09PSBmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuYm9va21hcmsgPSBlbGVtZW50RW50cnk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChlbGVtZW50LCBsYXN0RWxlbWVudCk7XG4gICAgICAgICAgICBsYXN0RWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxhc3RFbGVtZW50O1xufVxuLy9TdGVwIDEzLjcgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KSB7XG4gICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChlbGVtZW50RW50cnkudG9rZW4udGFnTmFtZSwgbnMsIGVsZW1lbnRFbnRyeS50b2tlbi5hdHRycyk7XG4gICAgcC5vcGVuRWxlbWVudHMucmVwbGFjZShlbGVtZW50RW50cnkuZWxlbWVudCwgbmV3RWxlbWVudCk7XG4gICAgZWxlbWVudEVudHJ5LmVsZW1lbnQgPSBuZXdFbGVtZW50O1xuICAgIHJldHVybiBuZXdFbGVtZW50O1xufVxuLy9TdGVwIDE0IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCkge1xuICAgIGNvbnN0IHRuID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGNvbW1vbkFuY2VzdG9yKTtcbiAgICBjb25zdCB0aWQgPSBnZXRUYWdJRCh0bik7XG4gICAgaWYgKHAuX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0aWQpKSB7XG4gICAgICAgIHAuX2Zvc3RlclBhcmVudEVsZW1lbnQobGFzdEVsZW1lbnQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjb21tb25BbmNlc3Rvcik7XG4gICAgICAgIGlmICh0aWQgPT09ICQuVEVNUExBVEUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gcC50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQoY29tbW9uQW5jZXN0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoY29tbW9uQW5jZXN0b3IsIGxhc3RFbGVtZW50KTtcbiAgICB9XG59XG4vL1N0ZXBzIDE1LTE5IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICBjb25zdCBucyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgY29uc3QgeyB0b2tlbiB9ID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gcC50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5zLCB0b2tlbi5hdHRycyk7XG4gICAgcC5fYWRvcHROb2RlcyhmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcbiAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrKG5ld0VsZW1lbnQsIHRva2VuKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICBwLm9wZW5FbGVtZW50cy5pbnNlcnRBZnRlcihmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50LCB0b2tlbi50YWdJRCk7XG59XG4vL0FsZ29yaXRobSBlbnRyeSBwb2ludFxuZnVuY3Rpb24gY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBBQV9PVVRFUl9MT09QX0lURVI7IGkrKykge1xuICAgICAgICBjb25zdCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuKTtcbiAgICAgICAgaWYgKCFmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmdXJ0aGVzdEJsb2NrID0gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgICAgICBpZiAoIWZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbiAgICAgICAgY29uc3QgbGFzdEVsZW1lbnQgPSBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb21tb25BbmNlc3RvciA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7XG4gICAgICAgIGlmIChjb21tb25BbmNlc3RvcilcbiAgICAgICAgICAgIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgICAgIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbn1cbi8vR2VuZXJpYyB0b2tlbiBoYW5kbGVyc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlKTtcbn1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnRUb1Jvb3RIdG1sRWxlbWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5pdGVtc1swXSk7XG59XG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Eb2N1bWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLmRvY3VtZW50KTtcbn1cbmZ1bmN0aW9uIHN0b3BQYXJzaW5nKHAsIHRva2VuKSB7XG4gICAgcC5zdG9wcGVkID0gdHJ1ZTtcbiAgICAvLyBOT1RFOiBTZXQgZW5kIGxvY2F0aW9ucyBmb3IgZWxlbWVudHMgdGhhdCByZW1haW4gb24gdGhlIG9wZW4gZWxlbWVudCBzdGFjay5cbiAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgLy8gTk9URTogSWYgd2UgYXJlIG5vdCBpbiBhIGZyYWdtZW50LCBgaHRtbGAgYW5kIGBib2R5YCB3aWxsIHN0YXkgb24gdGhlIHN0YWNrLlxuICAgICAgICAvLyBUaGlzIGlzIGEgcHJvYmxlbSwgYXMgd2UgbWlnaHQgb3ZlcndyaXRlIHRoZWlyIGVuZCBwb3NpdGlvbiBoZXJlLlxuICAgICAgICBjb25zdCB0YXJnZXQgPSBwLmZyYWdtZW50Q29udGV4dCA/IDAgOiAyO1xuICAgICAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gdGFyZ2V0OyBpLS0pIHtcbiAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSGFuZGxlIGBodG1sYCBhbmQgYGJvZHlgXG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQgJiYgcC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1swXTtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxMb2NhdGlvbiA9IHAudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihodG1sRWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaHRtbExvY2F0aW9uICYmICFodG1sTG9jYXRpb24uZW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oaHRtbEVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzFdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5TG9jYXRpb24gPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oYm9keUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYm9keUxvY2F0aW9uICYmICFib2R5TG9jYXRpb24uZW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW5pdGlhbFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZG9jdHlwZUluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9zZXREb2N1bWVudFR5cGUodG9rZW4pO1xuICAgIGNvbnN0IG1vZGUgPSB0b2tlbi5mb3JjZVF1aXJrcyA/IERPQ1VNRU5UX01PREUuUVVJUktTIDogZG9jdHlwZS5nZXREb2N1bWVudE1vZGUodG9rZW4pO1xuICAgIGlmICghZG9jdHlwZS5pc0NvbmZvcm1pbmcodG9rZW4pKSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm5vbkNvbmZvcm1pbmdEb2N0eXBlKTtcbiAgICB9XG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgbW9kZSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDtcbn1cbmZ1bmN0aW9uIHRva2VuSW5Jbml0aWFsTW9kZShwLCB0b2tlbikge1xuICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3NpbmdEb2N0eXBlLCB0cnVlKTtcbiAgICBwLnRyZWVBZGFwdGVyLnNldERvY3VtZW50TW9kZShwLmRvY3VtZW50LCBET0NVTUVOVF9NT0RFLlFVSVJLUyk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYmVmb3JlIGh0bWxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdCZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuQlIpIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJiZWZvcmUgaGVhZFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkhFQUQgfHwgdG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkJSKSB7XG4gICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uSEVBRCwgJC5IRUFEKTtcbiAgICBwLmhlYWRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQToge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkNEQVRBKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TVFlMRToge1xuICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuU0NSSVBUX0RBVEEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRUZW1wbGF0ZSh0b2tlbik7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay51bnNoaWZ0KEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkJSOlxuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NUaG9yb3VnaGx5KCk7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgIT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnNoaWZ0KCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBoZWFkIG5vIHNjcmlwdFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5IRUFEOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNUWUxFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm5lc3RlZE5vc2NyaXB0SW5IZWFkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIGNvbnN0IGVyckNvZGUgPSB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuRU9GID8gRVJSLm9wZW5FbGVtZW50c0xlZnRBZnRlckVvZiA6IEVSUi5kaXNhbGxvd2VkQ29udGVudEluTm9zY3JpcHRJbkhlYWQ7XG4gICAgcC5fZXJyKHRva2VuLCBlcnJDb2RlKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImFmdGVyIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuYWJhbmRvbmVkSGVhZEVsZW1lbnRDaGlsZCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wdXNoKHAuaGVhZEVsZW1lbnQsICQuSEVBRCk7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUocC5oZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIubWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckhlYWQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQk9EWSwgJC5CT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBtb2RlSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgY2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgIGFwcGVuZENvbW1lbnQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5FTkRfVEFHOiB7XG4gICAgICAgICAgICBlbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuRU9GOiB7XG4gICAgICAgICAgICBlb2ZJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMocC5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBib2R5U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XG4gICAgaWYgKGJvZHlFbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMoYm9keUVsZW1lbnQsIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmcmFtZXNldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgIGlmIChwLmZyYW1lc2V0T2sgJiYgYm9keUVsZW1lbnQpIHtcbiAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGJvZHlFbGVtZW50KTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wQWxsVXBUb0h0bWxFbGVtZW50KCk7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyZWRIZWFkZXIocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZVxuICAgIC8vb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIHByZSBibG9ja3MgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5mb3JtRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZCA9IHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgaWYgKCh0biA9PT0gJC5MSSAmJiBlbGVtZW50SWQgPT09ICQuTEkpIHx8XG4gICAgICAgICAgICAoKHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUKSAmJiAoZWxlbWVudElkID09PSAkLkREIHx8IGVsZW1lbnRJZCA9PT0gJC5EVCkpKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihlbGVtZW50SWQpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKGVsZW1lbnRJZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudElkICE9PSAkLkFERFJFU1MgJiZcbiAgICAgICAgICAgIGVsZW1lbnRJZCAhPT0gJC5ESVYgJiZcbiAgICAgICAgICAgIGVsZW1lbnRJZCAhPT0gJC5QICYmXG4gICAgICAgICAgICBwLl9pc1NwZWNpYWxFbGVtZW50KHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLCBlbGVtZW50SWQpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xufVxuZnVuY3Rpb24gYnV0dG9uU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJVVFRPTikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5CVVRUT04pO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYWN0aXZlRWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKFROLkEpO1xuICAgIGlmIChhY3RpdmVFbGVtZW50RW50cnkpIHtcbiAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGFjdGl2ZUVsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoYWN0aXZlRWxlbWVudEVudHJ5KTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIG5vYnJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5OT0JSKSkge1xuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQpICE9PSBET0NVTUVOVF9NT0RFLlFVSVJLUyAmJiBwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xufVxuZnVuY3Rpb24gYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBpc0hpZGRlbklucHV0KHRva2VuKSB7XG4gICAgY29uc3QgaW5wdXRUeXBlID0gZ2V0VG9rZW5BdHRyKHRva2VuLCBBVFRSUy5UWVBFKTtcbiAgICByZXR1cm4gaW5wdXRUeXBlICE9IG51bGwgJiYgaW5wdXRUeXBlLnRvTG93ZXJDYXNlKCkgPT09IEhJRERFTl9JTlBVVF9UWVBFO1xufVxuZnVuY3Rpb24gaW5wdXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgaWYgKCFpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHRva2VuLnRhZ05hbWUgPSBUTi5JTUc7XG4gICAgdG9rZW4udGFnSUQgPSAkLklNRztcbiAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gdGV4dGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgdGV4dGFyZWEgZWxlbWVudHMgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJDREFUQTtcbiAgICBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHAuaW5zZXJ0aW9uTW9kZTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG59XG5mdW5jdGlvbiB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG5mdW5jdGlvbiBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG4vL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgd2UgYWx3YXlzIGFjdCBhcyBhbiB1c2VyIGFnZW50IHdpdGggZW5hYmxlZCBwbHVnaW5zLCBzbyB3ZSBwYXJzZVxuLy88bm9lbWJlZD4gYXMgcmF3dGV4dC5cbmZ1bmN0aW9uIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG5mdW5jdGlvbiBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID1cbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTiB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFkgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9ST1cgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMXG4gICAgICAgICAgICA/IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFXG4gICAgICAgICAgICA6IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUO1xufVxuZnVuY3Rpb24gb3B0Z3JvdXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLlJVQlkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuUlRDKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBtYXRoU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5NQVRITUwpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gc3ZnU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5TVkcpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSTpcbiAgICAgICAgY2FzZSAkLlM6XG4gICAgICAgIGNhc2UgJC5COlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLlNNQUxMOlxuICAgICAgICBjYXNlICQuU1RSSUtFOlxuICAgICAgICBjYXNlICQuU1RST05HOiB7XG4gICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkE6IHtcbiAgICAgICAgICAgIGFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSDE6XG4gICAgICAgIGNhc2UgJC5IMjpcbiAgICAgICAgY2FzZSAkLkgzOlxuICAgICAgICBjYXNlICQuSDQ6XG4gICAgICAgIGNhc2UgJC5INTpcbiAgICAgICAgY2FzZSAkLkg2OiB7XG4gICAgICAgICAgICBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOlxuICAgICAgICBjYXNlICQuREw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLlVMOlxuICAgICAgICBjYXNlICQuRElWOlxuICAgICAgICBjYXNlICQuRElSOlxuICAgICAgICBjYXNlICQuTkFWOlxuICAgICAgICBjYXNlICQuTUFJTjpcbiAgICAgICAgY2FzZSAkLk1FTlU6XG4gICAgICAgIGNhc2UgJC5BU0lERTpcbiAgICAgICAgY2FzZSAkLkNFTlRFUjpcbiAgICAgICAgY2FzZSAkLkZJR1VSRTpcbiAgICAgICAgY2FzZSAkLkZPT1RFUjpcbiAgICAgICAgY2FzZSAkLkhFQURFUjpcbiAgICAgICAgY2FzZSAkLkhHUk9VUDpcbiAgICAgICAgY2FzZSAkLkRJQUxPRzpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLlNFQ1RJT046XG4gICAgICAgIGNhc2UgJC5TVU1NQVJZOlxuICAgICAgICBjYXNlICQuRklFTERTRVQ6XG4gICAgICAgIGNhc2UgJC5CTE9DS1FVT1RFOlxuICAgICAgICBjYXNlICQuRklHQ0FQVElPTjoge1xuICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSTpcbiAgICAgICAgY2FzZSAkLkREOlxuICAgICAgICBjYXNlICQuRFQ6IHtcbiAgICAgICAgICAgIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOlxuICAgICAgICBjYXNlICQuSU1HOlxuICAgICAgICBjYXNlICQuV0JSOlxuICAgICAgICBjYXNlICQuQVJFQTpcbiAgICAgICAgY2FzZSAkLkVNQkVEOlxuICAgICAgICBjYXNlICQuS0VZR0VOOiB7XG4gICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhSOiB7XG4gICAgICAgICAgICBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5SQjpcbiAgICAgICAgY2FzZSAkLlJUQzoge1xuICAgICAgICAgICAgcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUlQ6XG4gICAgICAgIGNhc2UgJC5SUDoge1xuICAgICAgICAgICAgcnRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUFJFOlxuICAgICAgICBjYXNlICQuTElTVElORzoge1xuICAgICAgICAgICAgcHJlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlhNUDoge1xuICAgICAgICAgICAgeG1wU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNWRzoge1xuICAgICAgICAgICAgc3ZnU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5USVRMRTpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PQlI6IHtcbiAgICAgICAgICAgIG5vYnJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTUFUSDoge1xuICAgICAgICAgICAgbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSU5QVVQ6IHtcbiAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBBUkFNOlxuICAgICAgICBjYXNlICQuVFJBQ0s6XG4gICAgICAgIGNhc2UgJC5TT1VSQ0U6IHtcbiAgICAgICAgICAgIHBhcmFtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklNQUdFOiB7XG4gICAgICAgICAgICBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CVVRUT046IHtcbiAgICAgICAgICAgIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BUFBMRVQ6XG4gICAgICAgIGNhc2UgJC5PQkpFQ1Q6XG4gICAgICAgIGNhc2UgJC5NQVJRVUVFOiB7XG4gICAgICAgICAgICBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSUZSQU1FOiB7XG4gICAgICAgICAgICBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOlxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRU1CRUQ6IHtcbiAgICAgICAgICAgIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRSOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkZSQU1FOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIC8vTk9URTogPGJvZHk+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICAgICAgICAgIGlmIChib2R5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIGVuZFRhZ0FmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmb3JtRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBjb25zdCB7IGZvcm1FbGVtZW50IH0gPSBwO1xuICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKChmb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuRk9STSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBpZiAoaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuRk9STSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZm9ybUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5QLCAkLlApO1xuICAgIH1cbiAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG59XG5mdW5jdGlvbiBsaUVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luTGlzdEl0ZW1TY29wZSgkLkxJKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLkxJKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuTEkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJSLCAkLkJSKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ05hbWU7XG4gICAgY29uc3QgdGlkID0gdG9rZW4udGFnSUQ7XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAvLyBDb21wYXJlIHRoZSB0YWcgbmFtZSBoZXJlLCBhcyB0aGUgdGFnIG1pZ2h0IG5vdCBiZSBhIGtub3duIHRhZyB3aXRoIGFuIElELlxuICAgICAgICBpZiAodGlkID09PSBlbGVtZW50SWQgJiYgKHRpZCAhPT0gJC5VTktOT1dOIHx8IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gdG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0aWQpO1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IGkpXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgZWxlbWVudElkKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5BOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLk5PQlI6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOiB7XG4gICAgICAgICAgICBwRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuVUw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5CVVRUT046XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6XG4gICAgICAgIGNhc2UgJC5GSUVMRFNFVDpcbiAgICAgICAgY2FzZSAkLkJMT0NLUVVPVEU6XG4gICAgICAgIGNhc2UgJC5GSUdDQVBUSU9OOiB7XG4gICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSToge1xuICAgICAgICAgICAgbGlFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuREQ6XG4gICAgICAgIGNhc2UgJC5EVDoge1xuICAgICAgICAgICAgZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIGJyRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZPUk06IHtcbiAgICAgICAgICAgIGZvcm1FbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlb2ZJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW9mSW5UZW1wbGF0ZShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwidGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZW5kVGFnSW5UZXh0KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5TQ1JJUFQpIHtcbiAgICAgICAgKF9hID0gcC5zY3JpcHRIYW5kbGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICB9XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG59XG5mdW5jdGlvbiBlb2ZJblRleHQocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5lb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0KTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcbiAgICBwLm9uRW9mKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKFRBQkxFX1NUUlVDVFVSRV9UQUdTLmhhcyhwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGggPSAwO1xuICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZ25vcmUgbnVsbFxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjtcbn1cbmZ1bmN0aW9uIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbn1cbmZ1bmN0aW9uIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQ09MR1JPVVAsICQuQ09MR1JPVVApO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xufVxuZnVuY3Rpb24gdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRCT0RZLCAkLlRCT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICB0ZFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjoge1xuICAgICAgICAgICAgY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5UQUJMRSk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3Qgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgIC8vIFByb2Nlc3MgdG9rZW4gaW4gYEluIEJvZHlgIG1vZGVcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBzYXZlZEZvc3RlclBhcmVudGluZ1N0YXRlO1xufVxuLy8gVGhlIFwiaW4gdGFibGUgdGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgcC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGNhcHRpb25cIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFRBQkxFX1ZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFskLkNBUFRJT04sICQuQ09MLCAkLkNPTEdST1VQLCAkLlRCT0RZLCAkLlRELCAkLlRGT09ULCAkLlRILCAkLlRIRUFELCAkLlRSXSk7XG5mdW5jdGlvbiBzdGFydFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKFRBQkxFX1ZPSURfRUxFTUVOVFMuaGFzKHRuKSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuQ0FQVElPTikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkNBUFRJT04pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5DYXB0aW9uKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRuKSB7XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5DQVBUSU9OKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBjb2x1bW4gZ3JvdXBcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5DT0xHUk9VUCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0YWJsZSBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRSLCAkLlRSKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiByb3dcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NFTEw7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG9rZW4udGFnSUQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBlbmQgdGFnXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIGNlbGxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAoVEFCTEVfVk9JRF9FTEVNRU5UUy5oYXModG4pKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5URCkgfHwgcC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEgpKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkNlbGwocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIHN3aXRjaCAodG4pIHtcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRTpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAuX2Nsb3NlVGFibGVDZWxsKCk7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBzZWxlY3RcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTlBVVDpcbiAgICAgICAgY2FzZSAkLktFWUdFTjpcbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOlxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TZWxlY3RTY29wZSgkLlNFTEVDVCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi50YWdJRCAhPT0gJC5TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPiAwICYmXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTiAmJlxuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1twLm9wZW5FbGVtZW50cy5zdGFja1RvcCAtIDFdID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbi8vIFRoZSBcImluIHNlbGVjdCBpbiB0YWJsZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8XG4gICAgICAgIHRuID09PSAkLlRBQkxFIHx8XG4gICAgICAgIHRuID09PSAkLlRCT0RZIHx8XG4gICAgICAgIHRuID09PSAkLlRGT09UIHx8XG4gICAgICAgIHRuID09PSAkLlRIRUFEIHx8XG4gICAgICAgIHRuID09PSAkLlRSIHx8XG4gICAgICAgIHRuID09PSAkLlREIHx8XG4gICAgICAgIHRuID09PSAkLlRIKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RhcnRUYWdJblNlbGVjdChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fFxuICAgICAgICB0biA9PT0gJC5UQUJMRSB8fFxuICAgICAgICB0biA9PT0gJC5UQk9EWSB8fFxuICAgICAgICB0biA9PT0gJC5URk9PVCB8fFxuICAgICAgICB0biA9PT0gJC5USEVBRCB8fFxuICAgICAgICB0biA9PT0gJC5UUiB8fFxuICAgICAgICB0biA9PT0gJC5URCB8fFxuICAgICAgICB0biA9PT0gJC5USCkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgcC5vbkVuZFRhZyh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0ZW1wbGF0ZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICAvLyBGaXJzdCwgaGFuZGxlIHRhZ3MgdGhhdCBjYW4gc3RhcnQgd2l0aG91dCBhIG1vZGUgY2hhbmdlXG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmUtcHJvY2VzcyB0aGUgdG9rZW4gaW4gdGhlIGFwcHJvcHJpYXRlIG1vZGVcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBzdGFydFRhZ0luUm93KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5zaGlmdCgpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5vbkVvZih0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IDxodG1sPiBpcyBuZXZlciBwb3BwZWQgZnJvbSB0aGUgc3RhY2ssIHNvIHdlIG5lZWQgdG8gdXBkYXRlZFxuICAgICAgICAvL3RoZSBlbmQgbG9jYXRpb24gZXhwbGljaXRseS5cbiAgICAgICAgaWYgKHAub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvICYmIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1swXSA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihwLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgdG9rZW4pO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBib2R5IGVsZW1lbnQsIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhbiBlbmQgdGFnXG4gICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzFdO1xuICAgICAgICAgICAgaWYgKGJvZHlFbGVtZW50ICYmICEoKF9hID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGJvZHlFbGVtZW50KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVuZFRhZykpIHtcbiAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GUkFNRToge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkZSQU1FU0VUICYmICFwLm9wZW5FbGVtZW50cy5pc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgIT09ICQuRlJBTUVTRVQpIHtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ7XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJhZnRlciBhZnRlciBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG4vLyBUaGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIGZvcmVpZ24gY29udGVudFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIG51bGxDaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgdG9rZW4uY2hhcnMgPSB1bmljb2RlLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHBvcFVudGlsSHRtbE9ySW50ZWdyYXRpb25Qb2ludChwKSB7XG4gICAgd2hpbGUgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpICE9PSBOUy5IVE1MICYmXG4gICAgICAgICFwLl9pc0ludGVncmF0aW9uUG9pbnQocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBpZiAoZm9yZWlnbkNvbnRlbnQuY2F1c2VzRXhpdCh0b2tlbikpIHtcbiAgICAgICAgcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApO1xuICAgICAgICBwLl9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gcC5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50TnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTtcbiAgICAgICAgaWYgKGN1cnJlbnROcyA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjdXJyZW50TnMgPT09IE5TLlNWRykge1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKTtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgICAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBjdXJyZW50TnMpO1xuICAgICAgICB9XG4gICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlAgfHwgdG9rZW4udGFnSUQgPT09ICQuQlIpIHtcbiAgICAgICAgcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApO1xuICAgICAgICBwLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+IDA7IGktLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgcC5fZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhZ05hbWUgPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgIGlmICh0YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRva2VuLnRhZ05hbWUpIHtcbiAgICAgICAgICAgIC8vTk9URTogdXBkYXRlIHRoZSB0b2tlbiB0YWcgbmFtZSBmb3IgYF9zZXRFbmRMb2NhdGlvbmAuXG4gICAgICAgICAgICB0b2tlbi50YWdOYW1lID0gdGFnTmFtZTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgbnVsbCwgImltcG9ydCB7IFRBR19OQU1FUyBhcyAkLCBOUywgaGFzVW5lc2NhcGVkVGV4dCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmltcG9ydCB7IGVzY2FwZVRleHQsIGVzY2FwZUF0dHJpYnV0ZSB9IGZyb20gJ2VudGl0aWVzL2xpYi9lc2NhcGUuanMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbi8vIFNldHNcbmNvbnN0IFZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFtcbiAgICAkLkFSRUEsXG4gICAgJC5CQVNFLFxuICAgICQuQkFTRUZPTlQsXG4gICAgJC5CR1NPVU5ELFxuICAgICQuQlIsXG4gICAgJC5DT0wsXG4gICAgJC5FTUJFRCxcbiAgICAkLkZSQU1FLFxuICAgICQuSFIsXG4gICAgJC5JTUcsXG4gICAgJC5JTlBVVCxcbiAgICAkLktFWUdFTixcbiAgICAkLkxJTkssXG4gICAgJC5NRVRBLFxuICAgICQuUEFSQU0sXG4gICAgJC5TT1VSQ0UsXG4gICAgJC5UUkFDSyxcbiAgICAkLldCUixcbl0pO1xuZnVuY3Rpb24gaXNWb2lkRWxlbWVudChub2RlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUobm9kZSkgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkobm9kZSkgPT09IE5TLkhUTUwgJiZcbiAgICAgICAgVk9JRF9FTEVNRU5UUy5oYXMob3B0aW9ucy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpKSk7XG59XG5jb25zdCBkZWZhdWx0T3B0cyA9IHsgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlciwgc2NyaXB0aW5nRW5hYmxlZDogdHJ1ZSB9O1xuLyoqXG4gKiBTZXJpYWxpemVzIGFuIEFTVCBub2RlIHRvIGFuIEhUTUwgc3RyaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIGEgZG9jdW1lbnQuXG4gKiBjb25zdCBodG1sID0gcGFyc2U1LnNlcmlhbGl6ZShkb2N1bWVudCk7XG4gKlxuICogLy8gU2VyaWFsaXplcyB0aGUgPGh0bWw+IGVsZW1lbnQgY29udGVudC5cbiAqIGNvbnN0IHN0ciA9IHBhcnNlNS5zZXJpYWxpemUoZG9jdW1lbnQuY2hpbGROb2Rlc1sxXSk7XG4gKlxuICogY29uc29sZS5sb2coc3RyKTsgLy8+ICc8aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIG9wdGlvbnMgU2VyaWFsaXphdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5kZWZhdWx0T3B0cywgLi4ub3B0aW9ucyB9O1xuICAgIGlmIChpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdHMpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIHNlcmlhbGl6ZUNoaWxkTm9kZXMobm9kZSwgb3B0cyk7XG59XG4vKipcbiAqIFNlcmlhbGl6ZXMgYW4gQVNUIGVsZW1lbnQgbm9kZSB0byBhbiBIVE1MIHN0cmluZywgaW5jbHVkaW5nIHRoZSBlbGVtZW50IG5vZGUuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7XG4gKlxuICogY29uc3QgZG9jdW1lbnQgPSBwYXJzZTUucGFyc2VGcmFnbWVudCgnPGRpdj5IZWxsbywgPGI+d29ybGQ8L2I+ITwvZGl2PicpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgdGhlIDxkaXY+IGVsZW1lbnQuXG4gKiBjb25zdCBodG1sID0gcGFyc2U1LnNlcmlhbGl6ZU91dGVyKGRvY3VtZW50LmNoaWxkTm9kZXNbMF0pO1xuICpcbiAqIGNvbnNvbGUubG9nKHN0cik7IC8vPiAnPGRpdj5IZWxsbywgPGI+d29ybGQ8L2I+ITwvZGl2PidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIG9wdGlvbnMgU2VyaWFsaXphdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplT3V0ZXIobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLmRlZmF1bHRPcHRzLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIHNlcmlhbGl6ZU5vZGUobm9kZSwgb3B0cyk7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVDaGlsZE5vZGVzKHBhcmVudE5vZGUsIG9wdGlvbnMpIHtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIC8vIEdldCBjb250YWluZXIgb2YgdGhlIGNoaWxkIG5vZGVzXG4gICAgY29uc3QgY29udGFpbmVyID0gb3B0aW9ucy50cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKHBhcmVudE5vZGUpICYmXG4gICAgICAgIG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnROb2RlKSA9PT0gJC5URU1QTEFURSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShwYXJlbnROb2RlKSA9PT0gTlMuSFRNTFxuICAgICAgICA/IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHBhcmVudE5vZGUpXG4gICAgICAgIDogcGFyZW50Tm9kZTtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gb3B0aW9ucy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKGNvbnRhaW5lcik7XG4gICAgaWYgKGNoaWxkTm9kZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBjdXJyZW50Tm9kZSBvZiBjaGlsZE5vZGVzKSB7XG4gICAgICAgICAgICBodG1sICs9IHNlcmlhbGl6ZU5vZGUoY3VycmVudE5vZGUsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBodG1sO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplTm9kZShub2RlLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplRWxlbWVudChub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplVGV4dE5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzQ29tbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUNvbW1lbnROb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8vIFJldHVybiBhbiBlbXB0eSBzdHJpbmcgZm9yIHVua25vd24gbm9kZXNcbiAgICByZXR1cm4gJyc7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVFbGVtZW50KG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB0biA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKTtcbiAgICByZXR1cm4gYDwke3RufSR7c2VyaWFsaXplQXR0cmlidXRlcyhub2RlLCBvcHRpb25zKX0+JHtpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdGlvbnMpID8gJycgOiBgJHtzZXJpYWxpemVDaGlsZE5vZGVzKG5vZGUsIG9wdGlvbnMpfTwvJHt0bn0+YH1gO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIGZvciAoY29uc3QgYXR0ciBvZiB0cmVlQWRhcHRlci5nZXRBdHRyTGlzdChub2RlKSkge1xuICAgICAgICBodG1sICs9ICcgJztcbiAgICAgICAgaWYgKCFhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgaHRtbCArPSBhdHRyLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTlMuWE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYHhtbDoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTUxOUzoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAneG1sbnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sICs9ICd4bWxuczonO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTElOSzoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGB4bGluazoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGAke2F0dHIucHJlZml4fToke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgaHRtbCArPSBgPVwiJHtlc2NhcGVBdHRyaWJ1dGUoYXR0ci52YWx1ZSl9XCJgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZVRleHROb2RlKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHRyZWVBZGFwdGVyIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0cmVlQWRhcHRlci5nZXRUZXh0Tm9kZUNvbnRlbnQobm9kZSk7XG4gICAgY29uc3QgcGFyZW50ID0gdHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgICBjb25zdCBwYXJlbnRUbiA9IHBhcmVudCAmJiB0cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKHBhcmVudCkgJiYgdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnQpO1xuICAgIHJldHVybiBwYXJlbnRUbiAmJlxuICAgICAgICB0cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocGFyZW50KSA9PT0gTlMuSFRNTCAmJlxuICAgICAgICBoYXNVbmVzY2FwZWRUZXh0KHBhcmVudFRuLCBvcHRpb25zLnNjcmlwdGluZ0VuYWJsZWQpXG4gICAgICAgID8gY29udGVudFxuICAgICAgICA6IGVzY2FwZVRleHQoY29udGVudCk7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVDb21tZW50Tm9kZShub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICByZXR1cm4gYDwhLS0ke3RyZWVBZGFwdGVyLmdldENvbW1lbnROb2RlQ29udGVudChub2RlKX0tLT5gO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplRG9jdW1lbnRUeXBlTm9kZShub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICByZXR1cm4gYDwhRE9DVFlQRSAke3RyZWVBZGFwdGVyLmdldERvY3VtZW50VHlwZU5vZGVOYW1lKG5vZGUpfT5gO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4vcGFyc2VyL2luZGV4LmpzJztcbmV4cG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbmV4cG9ydCB7IC8qKiBAaW50ZXJuYWwgKi8gUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgc2VyaWFsaXplLCBzZXJpYWxpemVPdXRlciB9IGZyb20gJy4vc2VyaWFsaXplci9pbmRleC5qcyc7XG5leHBvcnQgeyBFUlIgYXMgRXJyb3JDb2RlcyB9IGZyb20gJy4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCAqIGFzIGZvcmVpZ25Db250ZW50IGZyb20gJy4vY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBodG1sIGZyb20gJy4vY29tbW9uL2h0bWwuanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0ICogYXMgVG9rZW4gZnJvbSAnLi9jb21tb24vdG9rZW4uanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IHsgVG9rZW5pemVyLCBUb2tlbml6ZXJNb2RlIH0gZnJvbSAnLi90b2tlbml6ZXIvaW5kZXguanMnO1xuLy8gU2hvcnRoYW5kc1xuLyoqXG4gKiBQYXJzZXMgYW4gSFRNTCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGh0bWwgSW5wdXQgSFRNTCBzdHJpbmcuXG4gKiBAcGFyYW0gb3B0aW9ucyBQYXJzaW5nIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBEb2N1bWVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhkb2N1bWVudC5jaGlsZE5vZGVzWzFdLnRhZ05hbWUpOyAvLz4gJ2h0bWwnXG4gKmBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoaHRtbCwgb3B0aW9ucykge1xuICAgIHJldHVybiBQYXJzZXIucGFyc2UoaHRtbCwgb3B0aW9ucyk7XG59XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcmFnbWVudChmcmFnbWVudENvbnRleHQsIGh0bWwsIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIGZyYWdtZW50Q29udGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0aW9ucyA9IGh0bWw7XG4gICAgICAgIGh0bWwgPSBmcmFnbWVudENvbnRleHQ7XG4gICAgICAgIGZyYWdtZW50Q29udGV4dCA9IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlciA9IFBhcnNlci5nZXRGcmFnbWVudFBhcnNlcihmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpO1xuICAgIHBhcnNlci50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgcmV0dXJuIHBhcnNlci5nZXRGcmFnbWVudCgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE5vZGVMaWtlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdHlwZVxuICogQHByb3BlcnR5IHtQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9zaXRpb25dXG4gKlxuICogQHR5cGVkZWYgUG9pbnRMaWtlXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtsaW5lXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sdW1uXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICpcbiAqIEB0eXBlZGVmIFBvc2l0aW9uTGlrZVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RhcnRdXG4gKiBAcHJvcGVydHkge1BvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmRdXG4gKi9cblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIHBvc2l0aW9uYWwgaW5mbyBvZiBhIHBvaW50LCBwb3NpdGlvbiAoc3RhcnQgYW5kIGVuZCBwb2ludHMpLFxuICogb3Igbm9kZS5cbiAqXG4gKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IFBvaW50IHwgUG9pbnRMaWtlIHwgUG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiAgIE5vZGUsIHBvc2l0aW9uLCBvciBwb2ludC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFByZXR0eSBwcmludGVkIHBvc2l0aW9uYWwgaW5mbyBvZiBhIG5vZGUgKGBzdHJpbmdgKS5cbiAqXG4gKiAgIEluIHRoZSBmb3JtYXQgb2YgYSByYW5nZSBgbHM6Y3MtbGU6Y2VgICh3aGVuIGdpdmVuIGBub2RlYCBvciBgcG9zaXRpb25gKVxuICogICBvciBhIHBvaW50IGBsOmNgICh3aGVuIGdpdmVuIGBwb2ludGApLCB3aGVyZSBgbGAgc3RhbmRzIGZvciBsaW5lLCBgY2AgZm9yXG4gKiAgIGNvbHVtbiwgYHNgIGZvciBgc3RhcnRgLCBhbmQgYGVgIGZvciBlbmQuXG4gKiAgIEFuIGVtcHR5IHN0cmluZyAoYCcnYCkgaXMgcmV0dXJuZWQgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5laXRoZXIgYG5vZGVgLFxuICogICBgcG9zaXRpb25gLCBub3IgYHBvaW50YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVBvc2l0aW9uKHZhbHVlKSB7XG4gIC8vIE5vdGhpbmcuXG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gTm9kZS5cbiAgaWYgKCdwb3NpdGlvbicgaW4gdmFsdWUgfHwgJ3R5cGUnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlLnBvc2l0aW9uKVxuICB9XG5cbiAgLy8gUG9zaXRpb24uXG4gIGlmICgnc3RhcnQnIGluIHZhbHVlIHx8ICdlbmQnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlKVxuICB9XG5cbiAgLy8gUG9pbnQuXG4gIGlmICgnbGluZScgaW4gdmFsdWUgfHwgJ2NvbHVtbicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9pbnQodmFsdWUpXG4gIH1cblxuICAvLyA/XG4gIHJldHVybiAnJ1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9pbnQgfCBQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb2ludFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcG9pbnQocG9pbnQpIHtcbiAgcmV0dXJuIGluZGV4KHBvaW50ICYmIHBvaW50LmxpbmUpICsgJzonICsgaW5kZXgocG9pbnQgJiYgcG9pbnQuY29sdW1uKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKHBvcykge1xuICByZXR1cm4gcG9pbnQocG9zICYmIHBvcy5zdGFydCkgKyAnLScgKyBwb2ludChwb3MgJiYgcG9zLmVuZClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5mdW5jdGlvbiBpbmRleCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogMVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3QgJiB7dHlwZTogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uIHwgdW5kZWZpbmVkfX0gTm9kZUxpa2VcbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge0FycmF5PE5vZGU+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FuY2VzdG9yc11cbiAqICAgU3RhY2sgb2YgKGluY2x1c2l2ZSkgYW5jZXN0b3Igbm9kZXMgc3Vycm91bmRpbmcgdGhlIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7RXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2F1c2VdXG4gKiAgIE9yaWdpbmFsIGVycm9yIGNhdXNlIG9mIHRoZSBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBbcGxhY2VdXG4gKiAgIFBsYWNlIG9mIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3J1bGVJZF1cbiAqICAgQ2F0ZWdvcnkgb2YgbWVzc2FnZSAob3B0aW9uYWwsIGV4YW1wbGU6IGAnbXktcnVsZSdgKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NvdXJjZV1cbiAqICAgTmFtZXNwYWNlIG9mIHdobyBzZW50IHRoZSBtZXNzYWdlIChvcHRpb25hbCwgZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5UG9zaXRpb259IGZyb20gJ3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uJ1xuXG4vKipcbiAqIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBWRmlsZU1lc3NhZ2UgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluc3RhbmNlIG9mIGBWRmlsZU1lc3NhZ2VgLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3RydWN0b3IoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zT3JQYXJlbnRPclBsYWNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3JpZ2luID0gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCByZWFzb24gPSAnJ1xuICAgIC8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbiAgICBsZXQgb3B0aW9ucyA9IHt9XG4gICAgbGV0IGxlZ2FjeUNhdXNlID0gZmFsc2VcblxuICAgIGlmIChvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAvLyBQb2ludC5cbiAgICAgIGlmIChcbiAgICAgICAgJ2xpbmUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2NvbHVtbicgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBQb3NpdGlvbi5cbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICAnc3RhcnQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2VuZCcgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBOb2RlLlxuICAgICAgZWxzZSBpZiAoJ3R5cGUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UpIHtcbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICBhbmNlc3RvcnM6IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXSxcbiAgICAgICAgICBwbGFjZTogb3B0aW9uc09yUGFyZW50T3JQbGFjZS5wb3NpdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBPcHRpb25zLlxuICAgICAgZWxzZSB7XG4gICAgICAgIG9wdGlvbnMgPSB7Li4ub3B0aW9uc09yUGFyZW50T3JQbGFjZX1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNhdXNlT3JSZWFzb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZWFzb24gPSBjYXVzZU9yUmVhc29uXG4gICAgfVxuICAgIC8vIEVycm9yLlxuICAgIGVsc2UgaWYgKCFvcHRpb25zLmNhdXNlICYmIGNhdXNlT3JSZWFzb24pIHtcbiAgICAgIGxlZ2FjeUNhdXNlID0gdHJ1ZVxuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvbi5tZXNzYWdlXG4gICAgICBvcHRpb25zLmNhdXNlID0gY2F1c2VPclJlYXNvblxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5ydWxlSWQgJiYgIW9wdGlvbnMuc291cmNlICYmIHR5cGVvZiBvcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBpbmRleCA9IG9yaWdpbi5pbmRleE9mKCc6JylcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3B0aW9ucy5zb3VyY2UgPSBvcmlnaW4uc2xpY2UoMCwgaW5kZXgpXG4gICAgICAgIG9wdGlvbnMucnVsZUlkID0gb3JpZ2luLnNsaWNlKGluZGV4ICsgMSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucGxhY2UgJiYgb3B0aW9ucy5hbmNlc3RvcnMgJiYgb3B0aW9ucy5hbmNlc3RvcnMpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IG9wdGlvbnMuYW5jZXN0b3JzW29wdGlvbnMuYW5jZXN0b3JzLmxlbmd0aCAtIDFdXG5cbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgb3B0aW9ucy5wbGFjZSA9IHBhcmVudC5wb3NpdGlvblxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0ID1cbiAgICAgIG9wdGlvbnMucGxhY2UgJiYgJ3N0YXJ0JyBpbiBvcHRpb25zLnBsYWNlXG4gICAgICAgID8gb3B0aW9ucy5wbGFjZS5zdGFydFxuICAgICAgICA6IG9wdGlvbnMucGxhY2VcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PE5vZGU+IHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuYW5jZXN0b3JzID0gb3B0aW9ucy5hbmNlc3RvcnMgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtFcnJvciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNhdXNlID0gb3B0aW9ucy5jYXVzZSB8fCB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFN0YXJ0aW5nIGNvbHVtbiBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNvbHVtbiA9IHN0YXJ0ID8gc3RhcnQuY29sdW1uIDogdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGF0ZSBvZiBwcm9ibGVtLlxuICAgICAqXG4gICAgICogKiBgdHJ1ZWAgXHUyMDE0IGVycm9yLCBmaWxlIG5vdCB1c2FibGVcbiAgICAgKiAqIGBmYWxzZWAgXHUyMDE0IHdhcm5pbmcsIGNoYW5nZSBtYXkgYmUgbmVlZGVkXG4gICAgICogKiBgdW5kZWZpbmVkYCBcdTIwMTQgY2hhbmdlIGxpa2VseSBub3QgbmVlZGVkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUGF0aCBvZiBhIGZpbGUgKHVzZWQgdGhyb3VnaG91dCB0aGUgYFZGaWxlYCBlY29zeXN0ZW0pLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmZpbGVcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZSA9IHJlYXNvblxuXG4gICAgLyoqXG4gICAgICogU3RhcnRpbmcgbGluZSBvZiBlcnJvci5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5saW5lID0gc3RhcnQgPyBzdGFydC5saW5lIDogdW5kZWZpbmVkXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplZCBwb3NpdGlvbmFsIGluZm8gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIE9uIG5vcm1hbCBlcnJvcnMsIHRoaXMgd291bGQgYmUgc29tZXRoaW5nIGxpa2UgYFBhcnNlRXJyb3JgLCBidWl0IGluXG4gICAgICogYFZGaWxlYCBtZXNzYWdlcyB3ZSB1c2UgdGhpcyBzcGFjZSB0byBzaG93IHdoZXJlIGFuIGVycm9yIGhhcHBlbmVkLlxuICAgICAqL1xuICAgIHRoaXMubmFtZSA9IHN0cmluZ2lmeVBvc2l0aW9uKG9wdGlvbnMucGxhY2UpIHx8ICcxOjEnXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge1BvaW50IHwgUG9zaXRpb24gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5wbGFjZSA9IG9wdGlvbnMucGxhY2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMucmVhc29uID0gdGhpcy5tZXNzYWdlXG5cbiAgICAvKipcbiAgICAgKiBDYXRlZ29yeSBvZiBtZXNzYWdlIChleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucnVsZUlkID0gb3B0aW9ucy5ydWxlSWQgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBOYW1lc3BhY2Ugb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnNvdXJjZSA9IG9wdGlvbnMuc291cmNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgbm9ybWFsIGVycm9ycyB0byBzaG93IHdoZXJlIHNvbWV0aGluZyBoYXBwZW5lZCBpblxuICAgICAqIHByb2dyYW1taW5nIGNvZGUsIGlycmVsZXZhbnQgZm9yIGBWRmlsZWAgbWVzc2FnZXMsXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuc3RhY2sgPVxuICAgICAgbGVnYWN5Q2F1c2UgJiYgb3B0aW9ucy5jYXVzZSAmJiB0eXBlb2Ygb3B0aW9ucy5jYXVzZS5zdGFjayA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBvcHRpb25zLmNhdXNlLnN0YWNrXG4gICAgICAgIDogJydcblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBcdTIwMUN3ZWxsIGtub3duXHUyMDFELlxuICAgIC8vIE5vdCBzdGFuZGFyZC5cbiAgICAvLyBGZWVsIGZyZWUgdG8gYWRkIG90aGVyIG5vbi1zdGFuZGFyZCBmaWVsZHMgdG8geW91ciBtZXNzYWdlcy5cblxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGhlIHNvdXJjZSB2YWx1ZSB0aGF0XHUyMDE5cyBiZWluZyByZXBvcnRlZCwgd2hpY2ggaXMgZGVlbWVkXG4gICAgICogaW5jb3JyZWN0LlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFjdHVhbFxuXG4gICAgLyoqXG4gICAgICogU3VnZ2VzdCBhY2NlcHRhYmxlIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYGFjdHVhbGAuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmV4cGVjdGVkXG5cbiAgICAvKipcbiAgICAgKiBMb25nIGZvcm0gZGVzY3JpcHRpb24gb2YgdGhlIG1lc3NhZ2UgKHlvdSBzaG91bGQgdXNlIG1hcmtkb3duKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5ub3RlXG5cbiAgICAvKipcbiAgICAgKiBMaW5rIHRvIGRvY3MgZm9yIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHRoaXMgbXVzdCBiZSBhbiBhYnNvbHV0ZSBVUkwgdGhhdCBjYW4gYmUgcGFzc2VkIGFzIGB4YFxuICAgICAqID4gdG8gYG5ldyBVUkwoeClgLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnVybFxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG4gIH1cbn1cblxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5maWxlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubmFtZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnJlYXNvbiA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm1lc3NhZ2UgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5zdGFjayA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmNvbHVtbiA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5saW5lID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmFuY2VzdG9ycyA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jYXVzZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5mYXRhbCA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5wbGFjZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5ydWxlSWQgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc291cmNlID0gdW5kZWZpbmVkXG4iLCAiLy8gQSBkZXJpdmF0aXZlIHdvcmsgYmFzZWQgb246XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2Jyb3dzZXJpZnkvcGF0aC1icm93c2VyaWZ5Pi5cbi8vIFdoaWNoIGlzIGxpY2Vuc2VkOlxuLy9cbi8vIE1JVCBMaWNlbnNlXG4vL1xuLy8gQ29weXJpZ2h0IChjKSAyMDEzIEphbWVzIEhhbGxpZGF5XG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZlxuLy8gdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpblxuLy8gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0b1xuLy8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Zcbi8vIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbyxcbi8vIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuLy8gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTU1xuLy8gRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SXG4vLyBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVJcbi8vIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOXG4vLyBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuLy8gQSBkZXJpdmF0aXZlIHdvcmsgYmFzZWQgb246XG4vL1xuLy8gUGFydHMgb2YgdGhhdCBhcmUgZXh0cmFjdGVkIGZyb20gTm9kZVx1MjAxOXMgaW50ZXJuYWwgYHBhdGhgIG1vZHVsZTpcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi9tYXN0ZXIvbGliL3BhdGguanM+LlxuLy8gV2hpY2ggaXMgbGljZW5zZWQ6XG4vL1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmV4cG9ydCBjb25zdCBwYXRoID0ge2Jhc2VuYW1lLCBkaXJuYW1lLCBleHRuYW1lLCBqb2luLCBzZXA6ICcvJ31cblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWRlcHRoLCBjb21wbGV4aXR5ICovXG5cbi8qKlxuICogR2V0IHRoZSBiYXNlbmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtleHRdXG4gKiAgIEV4dGVuc2lvbiB0byBzdHJpcC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFN0ZW0gb3IgYmFzZW5hbWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VuYW1lKHBhdGgsIGV4dCkge1xuICBpZiAoZXh0ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImV4dFwiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKVxuICB9XG5cbiAgYXNzZXJ0UGF0aChwYXRoKVxuICBsZXQgc3RhcnQgPSAwXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBzZWVuTm9uU2xhc2hcblxuICBpZiAoZXh0ID09PSB1bmRlZmluZWQgfHwgZXh0Lmxlbmd0aCA9PT0gMCB8fCBleHQubGVuZ3RoID4gcGF0aC5sZW5ndGgpIHtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgICBpZiAoc2Vlbk5vblNsYXNoKSB7XG4gICAgICAgICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91clxuICAgICAgICAvLyBwYXRoIGNvbXBvbmVudC5cbiAgICAgICAgc2Vlbk5vblNsYXNoID0gdHJ1ZVxuICAgICAgICBlbmQgPSBpbmRleCArIDFcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5kIDwgMCA/ICcnIDogcGF0aC5zbGljZShzdGFydCwgZW5kKVxuICB9XG5cbiAgaWYgKGV4dCA9PT0gcGF0aCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgbGV0IGZpcnN0Tm9uU2xhc2hFbmQgPSAtMVxuICBsZXQgZXh0SW5kZXggPSBleHQubGVuZ3RoIC0gMVxuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICBpZiAoc2Vlbk5vblNsYXNoKSB7XG4gICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChmaXJzdE5vblNsYXNoRW5kIDwgMCkge1xuICAgICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvciwgcmVtZW1iZXIgdGhpcyBpbmRleCBpbiBjYXNlXG4gICAgICAgIC8vIHdlIG5lZWQgaXQgaWYgdGhlIGV4dGVuc2lvbiBlbmRzIHVwIG5vdCBtYXRjaGluZy5cbiAgICAgICAgc2Vlbk5vblNsYXNoID0gdHJ1ZVxuICAgICAgICBmaXJzdE5vblNsYXNoRW5kID0gaW5kZXggKyAxXG4gICAgICB9XG5cbiAgICAgIGlmIChleHRJbmRleCA+IC0xKSB7XG4gICAgICAgIC8vIFRyeSB0byBtYXRjaCB0aGUgZXhwbGljaXQgZXh0ZW5zaW9uLlxuICAgICAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IGV4dC5jb2RlUG9pbnRBdChleHRJbmRleC0tKSkge1xuICAgICAgICAgIGlmIChleHRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIC8vIFdlIG1hdGNoZWQgdGhlIGV4dGVuc2lvbiwgc28gbWFyayB0aGlzIGFzIHRoZSBlbmQgb2Ygb3VyIHBhdGhcbiAgICAgICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICAgICAgZW5kID0gaW5kZXhcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRXh0ZW5zaW9uIGRvZXMgbm90IG1hdGNoLCBzbyBvdXIgcmVzdWx0IGlzIHRoZSBlbnRpcmUgcGF0aFxuICAgICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICAgIGV4dEluZGV4ID0gLTFcbiAgICAgICAgICBlbmQgPSBmaXJzdE5vblNsYXNoRW5kXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmRcbiAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kID0gcGF0aC5sZW5ndGhcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0LCBlbmQpXG59XG5cbi8qKlxuICogR2V0IHRoZSBkaXJuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZGlybmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJy4nXG4gIH1cblxuICBsZXQgZW5kID0gLTFcbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICAvLyBQcmVmaXggYC0tYCBpcyBpbXBvcnRhbnQgdG8gbm90IHJ1biBvbiBgMGAuXG4gIHdoaWxlICgtLWluZGV4KSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvclxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuZCA8IDBcbiAgICA/IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuICAgICAgPyAnLydcbiAgICAgIDogJy4nXG4gICAgOiBlbmQgPT09IDEgJiYgcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG4gICAgPyAnLy8nXG4gICAgOiBwYXRoLnNsaWNlKDAsIGVuZClcbn1cblxuLyoqXG4gKiBHZXQgYW4gZXh0bmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFeHRuYW1lLlxuICovXG5mdW5jdGlvbiBleHRuYW1lKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG5cbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBzdGFydFBhcnQgPSAwXG4gIGxldCBzdGFydERvdCA9IC0xXG4gIC8vIFRyYWNrIHRoZSBzdGF0ZSBvZiBjaGFyYWN0ZXJzIChpZiBhbnkpIHdlIHNlZSBiZWZvcmUgb3VyIGZpcnN0IGRvdCBhbmRcbiAgLy8gYWZ0ZXIgYW55IHBhdGggc2VwYXJhdG9yIHdlIGZpbmQuXG4gIGxldCBwcmVEb3RTdGF0ZSA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGNvbnN0IGNvZGUgPSBwYXRoLmNvZGVQb2ludEF0KGluZGV4KVxuXG4gICAgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBzdGFydFBhcnQgPSBpbmRleCArIDFcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91clxuICAgICAgLy8gZXh0ZW5zaW9uLlxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgICBlbmQgPSBpbmRleCArIDFcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gNDYgLyogYC5gICovKSB7XG4gICAgICAvLyBJZiB0aGlzIGlzIG91ciBmaXJzdCBkb3QsIG1hcmsgaXQgYXMgdGhlIHN0YXJ0IG9mIG91ciBleHRlbnNpb24uXG4gICAgICBpZiAoc3RhcnREb3QgPCAwKSB7XG4gICAgICAgIHN0YXJ0RG90ID0gaW5kZXhcbiAgICAgIH0gZWxzZSBpZiAocHJlRG90U3RhdGUgIT09IDEpIHtcbiAgICAgICAgcHJlRG90U3RhdGUgPSAxXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGFydERvdCA+IC0xKSB7XG4gICAgICAvLyBXZSBzYXcgYSBub24tZG90IGFuZCBub24tcGF0aCBzZXBhcmF0b3IgYmVmb3JlIG91ciBkb3QsIHNvIHdlIHNob3VsZFxuICAgICAgLy8gaGF2ZSBhIGdvb2QgY2hhbmNlIGF0IGhhdmluZyBhIG5vbi1lbXB0eSBleHRlbnNpb24uXG4gICAgICBwcmVEb3RTdGF0ZSA9IC0xXG4gICAgfVxuICB9XG5cbiAgaWYgKFxuICAgIHN0YXJ0RG90IDwgMCB8fFxuICAgIGVuZCA8IDAgfHxcbiAgICAvLyBXZSBzYXcgYSBub24tZG90IGNoYXJhY3RlciBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGRvdC5cbiAgICBwcmVEb3RTdGF0ZSA9PT0gMCB8fFxuICAgIC8vIFRoZSAocmlnaHQtbW9zdCkgdHJpbW1lZCBwYXRoIGNvbXBvbmVudCBpcyBleGFjdGx5IGAuLmAuXG4gICAgKHByZURvdFN0YXRlID09PSAxICYmIHN0YXJ0RG90ID09PSBlbmQgLSAxICYmIHN0YXJ0RG90ID09PSBzdGFydFBhcnQgKyAxKVxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0RG90LCBlbmQpXG59XG5cbi8qKlxuICogSm9pbiBzZWdtZW50cyBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHNlZ21lbnRzXG4gKiAgIFBhdGggc2VnbWVudHMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGpvaW4oLi4uc2VnbWVudHMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCBqb2luZWRcblxuICB3aGlsZSAoKytpbmRleCA8IHNlZ21lbnRzLmxlbmd0aCkge1xuICAgIGFzc2VydFBhdGgoc2VnbWVudHNbaW5kZXhdKVxuXG4gICAgaWYgKHNlZ21lbnRzW2luZGV4XSkge1xuICAgICAgam9pbmVkID1cbiAgICAgICAgam9pbmVkID09PSB1bmRlZmluZWQgPyBzZWdtZW50c1tpbmRleF0gOiBqb2luZWQgKyAnLycgKyBzZWdtZW50c1tpbmRleF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gam9pbmVkID09PSB1bmRlZmluZWQgPyAnLicgOiBub3JtYWxpemUoam9pbmVkKVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIGJhc2ljIGZpbGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbi8vIE5vdGU6IGBub3JtYWxpemVgIGlzIG5vdCBleHBvc2VkIGFzIGBwYXRoLm5vcm1hbGl6ZWAsIHNvIHNvbWUgY29kZSBpc1xuLy8gbWFudWFsbHkgcmVtb3ZlZCBmcm9tIGl0LlxuZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGNvbnN0IGFic29sdXRlID0gcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG5cbiAgLy8gTm9ybWFsaXplIHRoZSBwYXRoIGFjY29yZGluZyB0byBQT1NJWCBydWxlcy5cbiAgbGV0IHZhbHVlID0gbm9ybWFsaXplU3RyaW5nKHBhdGgsICFhYnNvbHV0ZSlcblxuICBpZiAodmFsdWUubGVuZ3RoID09PSAwICYmICFhYnNvbHV0ZSkge1xuICAgIHZhbHVlID0gJy4nXG4gIH1cblxuICBpZiAodmFsdWUubGVuZ3RoID4gMCAmJiBwYXRoLmNvZGVQb2ludEF0KHBhdGgubGVuZ3RoIC0gMSkgPT09IDQ3IC8qIC8gKi8pIHtcbiAgICB2YWx1ZSArPSAnLydcbiAgfVxuXG4gIHJldHVybiBhYnNvbHV0ZSA/ICcvJyArIHZhbHVlIDogdmFsdWVcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGAuYCBhbmQgYC4uYCBlbGVtZW50cyBpbiBhIHBhdGggd2l0aCBkaXJlY3RvcnkgbmFtZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHBhcmFtIHtib29sZWFufSBhbGxvd0Fib3ZlUm9vdFxuICogICBXaGV0aGVyIGAuLmAgY2FuIG1vdmUgYWJvdmUgcm9vdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplU3RyaW5nKHBhdGgsIGFsbG93QWJvdmVSb290KSB7XG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgbGFzdFNlZ21lbnRMZW5ndGggPSAwXG4gIGxldCBsYXN0U2xhc2ggPSAtMVxuICBsZXQgZG90cyA9IDBcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBjb2RlXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgbGFzdFNsYXNoSW5kZXhcblxuICB3aGlsZSAoKytpbmRleCA8PSBwYXRoLmxlbmd0aCkge1xuICAgIGlmIChpbmRleCA8IHBhdGgubGVuZ3RoKSB7XG4gICAgICBjb2RlID0gcGF0aC5jb2RlUG9pbnRBdChpbmRleClcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgYnJlYWtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZSA9IDQ3IC8qIGAvYCAqL1xuICAgIH1cblxuICAgIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmIChsYXN0U2xhc2ggPT09IGluZGV4IC0gMSB8fCBkb3RzID09PSAxKSB7XG4gICAgICAgIC8vIEVtcHR5LlxuICAgICAgfSBlbHNlIGlmIChsYXN0U2xhc2ggIT09IGluZGV4IC0gMSAmJiBkb3RzID09PSAyKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXN1bHQubGVuZ3RoIDwgMiB8fFxuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoICE9PSAyIHx8XG4gICAgICAgICAgcmVzdWx0LmNvZGVQb2ludEF0KHJlc3VsdC5sZW5ndGggLSAxKSAhPT0gNDYgLyogYC5gICovIHx8XG4gICAgICAgICAgcmVzdWx0LmNvZGVQb2ludEF0KHJlc3VsdC5sZW5ndGggLSAyKSAhPT0gNDYgLyogYC5gICovXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgbGFzdFNsYXNoSW5kZXggPSByZXN1bHQubGFzdEluZGV4T2YoJy8nKVxuXG4gICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggIT09IHJlc3VsdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSAnJ1xuICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCBsYXN0U2xhc2hJbmRleClcbiAgICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IHJlc3VsdC5sZW5ndGggLSAxIC0gcmVzdWx0Lmxhc3RJbmRleE9mKCcvJylcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICAgICAgICAgIGRvdHMgPSAwXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gJydcbiAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICAgICAgICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgICAgICAgIGRvdHMgPSAwXG4gICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhbGxvd0Fib3ZlUm9vdCkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5sZW5ndGggPiAwID8gcmVzdWx0ICsgJy8uLicgOiAnLi4nXG4gICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAyXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3VsdCArPSAnLycgKyBwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaW5kZXgpXG4gICAgICAgIH1cblxuICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IGluZGV4IC0gbGFzdFNsYXNoIC0gMVxuICAgICAgfVxuXG4gICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgZG90cyA9IDBcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ2IC8qIGAuYCAqLyAmJiBkb3RzID4gLTEpIHtcbiAgICAgIGRvdHMrK1xuICAgIH0gZWxzZSB7XG4gICAgICBkb3RzID0gLTFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIGBwYXRoYCBpcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1BhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgJyArIEpTT04uc3RyaW5naWZ5KHBhdGgpXG4gICAgKVxuICB9XG59XG5cbi8qIGVzbGludC1lbmFibGUgbWF4LWRlcHRoLCBjb21wbGV4aXR5ICovXG4iLCAiLy8gU29tZXdoYXQgYmFzZWQgb246XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2RlZnVuY3R6b21iaWUvbm9kZS1wcm9jZXNzL2Jsb2IvbWFzdGVyL2Jyb3dzZXIuanM+LlxuLy8gQnV0IEkgZG9uXHUyMDE5dCB0aGluayBvbmUgdGlueSBsaW5lIG9mIGNvZGUgY2FuIGJlIGNvcHlyaWdodGVkLiBcdUQ4M0RcdURFMDVcbmV4cG9ydCBjb25zdCBwcm9jID0ge2N3ZH1cblxuZnVuY3Rpb24gY3dkKCkge1xuICByZXR1cm4gJy8nXG59XG4iLCAiLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBoYXMgdGhlIHNoYXBlIG9mIGEgV0hBVFdHIFVSTCBvYmplY3QuXG4gKlxuICogVXNpbmcgYSBzeW1ib2wgb3IgaW5zdGFuY2VvZiB3b3VsZCBub3QgYmUgYWJsZSB0byByZWNvZ25pemUgVVJMIG9iamVjdHNcbiAqIGNvbWluZyBmcm9tIG90aGVyIGltcGxlbWVudGF0aW9ucyAoZS5nLiBpbiBFbGVjdHJvbiksIHNvIGluc3RlYWQgd2UgYXJlXG4gKiBjaGVja2luZyBzb21lIHdlbGwga25vd24gcHJvcGVydGllcyBmb3IgYSBsYWNrIG9mIGEgYmV0dGVyIHRlc3QuXG4gKlxuICogV2UgdXNlIGBocmVmYCBhbmQgYHByb3RvY29sYCBhcyB0aGV5IGFyZSB0aGUgb25seSBwcm9wZXJ0aWVzIHRoYXQgYXJlXG4gKiBlYXN5IHRvIHJldHJpZXZlIGFuZCBjYWxjdWxhdGUgZHVlIHRvIHRoZSBsYXp5IG5hdHVyZSBvZiB0aGUgZ2V0dGVycy5cbiAqXG4gKiBXZSBjaGVjayBmb3IgYXV0aCBhdHRyaWJ1dGUgdG8gZGlzdGluZ3Vpc2ggbGVnYWN5IHVybCBpbnN0YW5jZSB3aXRoXG4gKiBXSEFUV0cgVVJMIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gZmlsZVVybE9yUGF0aFxuICogICBGaWxlIHBhdGggb3IgVVJMLlxuICogQHJldHVybnMge2ZpbGVVcmxPclBhdGggaXMgVVJMfVxuICogICBXaGV0aGVyIGl0XHUyMDE5cyBhIFVSTC5cbiAqL1xuLy8gRnJvbTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcyNMNzIwPlxuZXhwb3J0IGZ1bmN0aW9uIGlzVXJsKGZpbGVVcmxPclBhdGgpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgZmlsZVVybE9yUGF0aCAhPT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIGZpbGVVcmxPclBhdGggPT09ICdvYmplY3QnICYmXG4gICAgICAnaHJlZicgaW4gZmlsZVVybE9yUGF0aCAmJlxuICAgICAgZmlsZVVybE9yUGF0aC5ocmVmICYmXG4gICAgICAncHJvdG9jb2wnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGgucHJvdG9jb2wgJiZcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGluZGV4aW5nIGlzIGZpbmUuXG4gICAgICBmaWxlVXJsT3JQYXRoLmF1dGggPT09IHVuZGVmaW5lZFxuICApXG59XG4iLCAiaW1wb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG5leHBvcnQge2lzVXJsfSBmcm9tICcuL21pbnVybC5zaGFyZWQuanMnXG5cbi8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcz5cblxuLyoqXG4gKiBAcGFyYW0ge1VSTCB8IHN0cmluZ30gcGF0aFxuICogICBGaWxlIFVSTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXJsVG9QYXRoKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xuICAgIHBhdGggPSBuZXcgVVJMKHBhdGgpXG4gIH0gZWxzZSBpZiAoIWlzVXJsKHBhdGgpKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1RoZSBcInBhdGhcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFuIGluc3RhbmNlIG9mIFVSTC4gUmVjZWl2ZWQgYCcgK1xuICAgICAgICBwYXRoICtcbiAgICAgICAgJ2AnXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfQVJHX1RZUEUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIGlmIChwYXRoLnByb3RvY29sICE9PSAnZmlsZTonKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKCdUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUnKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfVVJMX1NDSEVNRSdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgcmV0dXJuIGdldFBhdGhGcm9tVVJMUG9zaXgocGF0aClcbn1cblxuLyoqXG4gKiBHZXQgYSBwYXRoIGZyb20gYSBQT1NJWCBVUkwuXG4gKlxuICogQHBhcmFtIHtVUkx9IHVybFxuICogICBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGdldFBhdGhGcm9tVVJMUG9zaXgodXJsKSB7XG4gIGlmICh1cmwuaG9zdG5hbWUgIT09ICcnKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgJ0ZpbGUgVVJMIGhvc3QgbXVzdCBiZSBcImxvY2FsaG9zdFwiIG9yIGVtcHR5IG9uIGRhcndpbidcbiAgICApXG4gICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBjb25zdCBwYXRobmFtZSA9IHVybC5wYXRobmFtZVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgcGF0aG5hbWUubGVuZ3RoKSB7XG4gICAgaWYgKFxuICAgICAgcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXgpID09PSAzNyAvKiBgJWAgKi8gJiZcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4ICsgMSkgPT09IDUwIC8qIGAyYCAqL1xuICAgICkge1xuICAgICAgY29uc3QgdGhpcmQgPSBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDIpXG4gICAgICBpZiAodGhpcmQgPT09IDcwIC8qIGBGYCAqLyB8fCB0aGlyZCA9PT0gMTAyIC8qIGBmYCAqLykge1xuICAgICAgICAvKiogQHR5cGUge05vZGVKUy5FcnJub0V4Y2VwdGlvbn0gKi9cbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICdGaWxlIFVSTCBwYXRoIG11c3Qgbm90IGluY2x1ZGUgZW5jb2RlZCAvIGNoYXJhY3RlcnMnXG4gICAgICAgIClcbiAgICAgICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIJ1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGF0aG5hbWUpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUtbWVzc2FnZScpLk9wdGlvbnN9IE1lc3NhZ2VPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLkRhdGF9IERhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuVmFsdWV9IFZhbHVlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0ICYge3R5cGU6IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHVuZGVmaW5lZH19IE5vZGVMaWtlXG4gKlxuICogQHR5cGVkZWYge09wdGlvbnMgfCBVUkwgfCBWRmlsZSB8IFZhbHVlfSBDb21wYXRpYmxlXG4gKiAgIFRoaW5ncyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICpcbiAqIEB0eXBlZGVmIFZGaWxlQ29yZU9wdGlvbnNcbiAqICAgU2V0IG11bHRpcGxlIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Jhc2VuYW1lXVxuICogICBTZXQgYGJhc2VuYW1lYCAobmFtZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtjd2RdXG4gKiAgIFNldCBgY3dkYCAod29ya2luZyBkaXJlY3RvcnkpLlxuICogQHByb3BlcnR5IHtEYXRhIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RhdGFdXG4gKiAgIFNldCBgZGF0YWAgKGFzc29jaWF0ZWQgaW5mbykuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtkaXJuYW1lXVxuICogICBTZXQgYGRpcm5hbWVgIChwYXRoIHcvbyBiYXNlbmFtZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtleHRuYW1lXVxuICogICBTZXQgYGV4dG5hbWVgIChleHRlbnNpb24gd2l0aCBkb3QpLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2hpc3RvcnldXG4gKiAgIFNldCBgaGlzdG9yeWAgKHBhdGhzIHRoZSBmaWxlIG1vdmVkIGJldHdlZW4pLlxuICogQHByb3BlcnR5IHtVUkwgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGF0aF1cbiAqICAgU2V0IGBwYXRoYCAoY3VycmVudCBwYXRoKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0ZW1dXG4gKiAgIFNldCBgc3RlbWAgKG5hbWUgd2l0aG91dCBleHRlbnNpb24pLlxuICogQHByb3BlcnR5IHtWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAqICAgU2V0IGB2YWx1ZWAgKHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSkuXG4gKlxuICogQHR5cGVkZWYgTWFwXG4gKiAgIFJhdyBzb3VyY2UgbWFwLlxuICpcbiAqICAgU2VlOlxuICogICA8aHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvc291cmNlLW1hcC9ibG9iLzYwYWRjYjAvc291cmNlLW1hcC5kLnRzI0wxNS1MMjM+LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHZlcnNpb25cbiAqICAgV2hpY2ggdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcCBzcGVjIHRoaXMgbWFwIGlzIGZvbGxvd2luZy5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gc291cmNlc1xuICogICBBbiBhcnJheSBvZiBVUkxzIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IG5hbWVzXG4gKiAgIEFuIGFycmF5IG9mIGlkZW50aWZpZXJzIHdoaWNoIGNhbiBiZSByZWZlcmVuY2VkIGJ5IGluZGl2aWR1YWwgbWFwcGluZ3MuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gW3NvdXJjZVJvb3RdXG4gKiAgIFRoZSBVUkwgcm9vdCBmcm9tIHdoaWNoIGFsbCBzb3VyY2VzIGFyZSByZWxhdGl2ZS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH0gW3NvdXJjZXNDb250ZW50XVxuICogICBBbiBhcnJheSBvZiBjb250ZW50cyBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1hcHBpbmdzXG4gKiAgIEEgc3RyaW5nIG9mIGJhc2U2NCBWTFFzIHdoaWNoIGNvbnRhaW4gdGhlIGFjdHVhbCBtYXBwaW5ncy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmaWxlXG4gKiAgIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiAmIFZGaWxlQ29yZU9wdGlvbnN9IE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqXG4gKiAgIEEgYnVuY2ggb2Yga2V5cyB0aGF0IHdpbGwgYmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGUuXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBSZXBvcnRlclNldHRpbmdzXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIHJlcG9ydGVycy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBbU2V0dGluZ3M9UmVwb3J0ZXJTZXR0aW5nc11cbiAqICAgT3B0aW9ucyB0eXBlLlxuICogQGNhbGxiYWNrIFJlcG9ydGVyXG4gKiAgIFR5cGUgZm9yIGEgcmVwb3J0ZXIuXG4gKiBAcGFyYW0ge0FycmF5PFZGaWxlPn0gZmlsZXNcbiAqICAgRmlsZXMgdG8gcmVwb3J0LlxuICogQHBhcmFtIHtTZXR0aW5nc30gb3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUmVwb3J0LlxuICovXG5cbmltcG9ydCB7VkZpbGVNZXNzYWdlfSBmcm9tICd2ZmlsZS1tZXNzYWdlJ1xuaW1wb3J0IHtwYXRofSBmcm9tICd2ZmlsZS9kby1ub3QtdXNlLWNvbmRpdGlvbmFsLW1pbnBhdGgnXG5pbXBvcnQge3Byb2N9IGZyb20gJ3ZmaWxlL2RvLW5vdC11c2UtY29uZGl0aW9uYWwtbWlucHJvYydcbmltcG9ydCB7dXJsVG9QYXRoLCBpc1VybH0gZnJvbSAndmZpbGUvZG8tbm90LXVzZS1jb25kaXRpb25hbC1taW51cmwnXG5cbi8qKlxuICogT3JkZXIgb2Ygc2V0dGluZyAobGVhc3Qgc3BlY2lmaWMgdG8gbW9zdCksIHdlIG5lZWQgdGhpcyBiZWNhdXNlIG90aGVyd2lzZVxuICogYHtzdGVtOiAnYScsIHBhdGg6ICd+L2IuanMnfWAgd291bGQgdGhyb3csIGFzIGEgcGF0aCBpcyBuZWVkZWQgYmVmb3JlIGFcbiAqIHN0ZW0gY2FuIGJlIHNldC5cbiAqL1xuY29uc3Qgb3JkZXIgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoW1xuICAnaGlzdG9yeScsXG4gICdwYXRoJyxcbiAgJ2Jhc2VuYW1lJyxcbiAgJ3N0ZW0nLFxuICAnZXh0bmFtZScsXG4gICdkaXJuYW1lJ1xuXSlcblxuZXhwb3J0IGNsYXNzIFZGaWxlIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB2aXJ0dWFsIGZpbGUuXG4gICAqXG4gICAqIGBvcHRpb25zYCBpcyB0cmVhdGVkIGFzOlxuICAgKlxuICAgKiAqICAgYHN0cmluZ2Agb3IgYFVpbnQ4QXJyYXlgIFx1MjAxNCBge3ZhbHVlOiBvcHRpb25zfWBcbiAgICogKiAgIGBVUkxgIFx1MjAxNCBge3BhdGg6IG9wdGlvbnN9YFxuICAgKiAqICAgYFZGaWxlYCBcdTIwMTQgc2hhbGxvdyBjb3BpZXMgaXRzIGRhdGEgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICogKiAgIGBvYmplY3RgIFx1MjAxNCBhbGwgZmllbGRzIGFyZSBzaGFsbG93IGNvcGllZCBvdmVyIHRvIHRoZSBuZXcgZmlsZVxuICAgKlxuICAgKiBQYXRoIHJlbGF0ZWQgZmllbGRzIGFyZSBzZXQgaW4gdGhlIGZvbGxvd2luZyBvcmRlciAobGVhc3Qgc3BlY2lmaWMgdG9cbiAgICogbW9zdCBzcGVjaWZpYyk6IGBoaXN0b3J5YCwgYHBhdGhgLCBgYmFzZW5hbWVgLCBgc3RlbWAsIGBleHRuYW1lYCxcbiAgICogYGRpcm5hbWVgLlxuICAgKlxuICAgKiBZb3UgY2Fubm90IHNldCBgZGlybmFtZWAgb3IgYGV4dG5hbWVgIHdpdGhvdXQgc2V0dGluZyBlaXRoZXIgYGhpc3RvcnlgLFxuICAgKiBgcGF0aGAsIGBiYXNlbmFtZWAsIG9yIGBzdGVtYCB0b28uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAgICogICBGaWxlIHZhbHVlLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIE5ldyBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgLyoqIEB0eXBlIHtPcHRpb25zIHwgVkZpbGV9ICovXG4gICAgbGV0IG9wdGlvbnNcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgIH0gZWxzZSBpZiAoaXNVcmwodmFsdWUpKSB7XG4gICAgICBvcHRpb25zID0ge3BhdGg6IHZhbHVlfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCBpc1VpbnQ4QXJyYXkodmFsdWUpKSB7XG4gICAgICBvcHRpb25zID0ge3ZhbHVlfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gdmFsdWVcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cblxuICAgIC8qKlxuICAgICAqIEJhc2Ugb2YgYHBhdGhgIChkZWZhdWx0OiBgcHJvY2Vzcy5jd2QoKWAgb3IgYCcvJ2AgaW4gYnJvd3NlcnMpLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLmN3ZCA9IHByb2MuY3dkKClcblxuICAgIC8qKlxuICAgICAqIFBsYWNlIHRvIHN0b3JlIGN1c3RvbSBpbmZvIChkZWZhdWx0OiBge31gKS5cbiAgICAgKlxuICAgICAqIEl0XHUyMDE5cyBPSyB0byBzdG9yZSBjdXN0b20gZGF0YSBkaXJlY3RseSBvbiB0aGUgZmlsZSBidXQgbW92aW5nIGl0IHRvXG4gICAgICogYGRhdGFgIGlzIHJlY29tbWVuZGVkLlxuICAgICAqXG4gICAgICogQHR5cGUge0RhdGF9XG4gICAgICovXG4gICAgdGhpcy5kYXRhID0ge31cblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgZmlsZSBwYXRocyB0aGUgZmlsZSBtb3ZlZCBiZXR3ZWVuLlxuICAgICAqXG4gICAgICogVGhlIGZpcnN0IGlzIHRoZSBvcmlnaW5hbCBwYXRoIGFuZCB0aGUgbGFzdCBpcyB0aGUgY3VycmVudCBwYXRoLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gICAgICovXG4gICAgdGhpcy5oaXN0b3J5ID0gW11cblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgbWVzc2FnZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PFZGaWxlTWVzc2FnZT59XG4gICAgICovXG4gICAgdGhpcy5tZXNzYWdlcyA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBSYXcgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7VmFsdWV9XG4gICAgICovXG4gICAgdGhpcy52YWx1ZVxuXG4gICAgLy8gVGhlIGJlbG93IGFyZSBub24tc3RhbmRhcmQsIHRoZXkgYXJlIFx1MjAxQ3dlbGwta25vd25cdTIwMUQuXG4gICAgLy8gQXMgaW4sIHVzZWQgaW4gc2V2ZXJhbCB0b29scy5cbiAgICAvKipcbiAgICAgKiBTb3VyY2UgbWFwLlxuICAgICAqXG4gICAgICogVGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGBSYXdTb3VyY2VNYXBgIHR5cGUgZnJvbSB0aGUgYHNvdXJjZS1tYXBgXG4gICAgICogbW9kdWxlLlxuICAgICAqXG4gICAgICogQHR5cGUge01hcCB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5tYXBcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSwgbm9uLXN0cmluZywgY29tcGlsZWQsIHJlcHJlc2VudGF0aW9uLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IHVuaWZpZWQgdG8gc3RvcmUgbm9uLXN0cmluZyByZXN1bHRzLlxuICAgICAqIE9uZSBleGFtcGxlIGlzIHdoZW4gdHVybmluZyBtYXJrZG93biBpbnRvIFJlYWN0IG5vZGVzLlxuICAgICAqXG4gICAgICogQHR5cGUge3Vua25vd259XG4gICAgICovXG4gICAgdGhpcy5yZXN1bHRcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgYSBmaWxlIHdhcyBzYXZlZCB0byBkaXNrLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IHZmaWxlIHJlcG9ydGVycy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuc3RvcmVkXG4gICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cblxuICAgIC8vIFNldCBwYXRoIHJlbGF0ZWQgcHJvcGVydGllcyBpbiB0aGUgY29ycmVjdCBvcmRlci5cbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBvcmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHByb3AgPSBvcmRlcltpbmRleF1cblxuICAgICAgLy8gTm90ZTogd2Ugc3BlY2lmaWNhbGx5IHVzZSBgaW5gIGluc3RlYWQgb2YgYGhhc093blByb3BlcnR5YCB0byBhY2NlcHRcbiAgICAgIC8vIGB2ZmlsZWBzIHRvby5cbiAgICAgIGlmIChcbiAgICAgICAgcHJvcCBpbiBvcHRpb25zICYmXG4gICAgICAgIG9wdGlvbnNbcHJvcF0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBvcHRpb25zW3Byb3BdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgZG9lc25cdTIwMTl0IHVuZGVyc3RhbmQgYmFzaWMgcmVhbGl0eS5cbiAgICAgICAgdGhpc1twcm9wXSA9IHByb3AgPT09ICdoaXN0b3J5JyA/IFsuLi5vcHRpb25zW3Byb3BdXSA6IG9wdGlvbnNbcHJvcF1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcHJvcFxuXG4gICAgLy8gU2V0IG5vbi1wYXRoIHJlbGF0ZWQgcHJvcGVydGllcy5cbiAgICBmb3IgKHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgaWYgKCFvcmRlci5pbmNsdWRlcyhwcm9wKSkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBmaW5lIHRvIHNldCBvdGhlciB0aGluZ3MuXG4gICAgICAgIHRoaXNbcHJvcF0gPSBvcHRpb25zW3Byb3BdXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgQmFzZW5hbWUuXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5iYXNlbmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IGJhc2VuYW1lIChpbmNsdWRpbmcgZXh0bmFtZSkgKGAnaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgY29udGFpbiBwYXRoIHNlcGFyYXRvcnMgKGAnLydgIG9uIHVuaXgsIG1hY09TLCBhbmQgYnJvd3NlcnMsIGAnXFwnYFxuICAgKiBvbiB3aW5kb3dzKS5cbiAgICogQ2Fubm90IGJlIG51bGxpZmllZCAodXNlIGBmaWxlLnBhdGggPSBmaWxlLmRpcm5hbWVgIGluc3RlYWQpLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZW5hbWVcbiAgICogICBCYXNlbmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGJhc2VuYW1lKGJhc2VuYW1lKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoYmFzZW5hbWUsICdiYXNlbmFtZScpXG4gICAgYXNzZXJ0UGFydChiYXNlbmFtZSwgJ2Jhc2VuYW1lJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lIHx8ICcnLCBiYXNlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBhcmVudCBwYXRoIChleGFtcGxlOiBgJ34nYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRGlybmFtZS5cbiAgICovXG4gIGdldCBkaXJuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguZGlybmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwYXJlbnQgcGF0aCAoZXhhbXBsZTogYCd+J2ApLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgc2V0IGlmIHRoZXJlXHUyMDE5cyBubyBgcGF0aGAgeWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gZGlybmFtZVxuICAgKiAgIERpcm5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBkaXJuYW1lKGRpcm5hbWUpIHtcbiAgICBhc3NlcnRQYXRoKHRoaXMuYmFzZW5hbWUsICdkaXJuYW1lJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSB8fCAnJywgdGhpcy5iYXNlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBFeHRuYW1lLlxuICAgKi9cbiAgZ2V0IGV4dG5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5leHRuYW1lKHRoaXMucGF0aCkgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBzZXQgaWYgdGhlcmVcdTIwMTlzIG5vIGBwYXRoYCB5ZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBleHRuYW1lXG4gICAqICAgRXh0bmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGV4dG5hbWUoZXh0bmFtZSkge1xuICAgIGFzc2VydFBhcnQoZXh0bmFtZSwgJ2V4dG5hbWUnKVxuICAgIGFzc2VydFBhdGgodGhpcy5kaXJuYW1lLCAnZXh0bmFtZScpXG5cbiAgICBpZiAoZXh0bmFtZSkge1xuICAgICAgaWYgKGV4dG5hbWUuY29kZVBvaW50QXQoMCkgIT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gJylcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dG5hbWUuaW5jbHVkZXMoJy4nLCAxKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLnN0ZW0gKyAoZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgUGF0aC5cbiAgICovXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aCAtIDFdXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQuXG4gICAqIFlvdSBjYW4gc2V0IGEgZmlsZSBVUkwgKGEgYFVSTGAgb2JqZWN0IHdpdGggYSBgZmlsZTpgIHByb3RvY29sKSB3aGljaCB3aWxsXG4gICAqIGJlIHR1cm5lZCBpbnRvIGEgcGF0aCB3aXRoIGB1cmwuZmlsZVVSTFRvUGF0aGAuXG4gICAqXG4gICAqIEBwYXJhbSB7VVJMIHwgc3RyaW5nfSBwYXRoXG4gICAqICAgUGF0aC5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHBhdGgocGF0aCkge1xuICAgIGlmIChpc1VybChwYXRoKSkge1xuICAgICAgcGF0aCA9IHVybFRvUGF0aChwYXRoKVxuICAgIH1cblxuICAgIGFzc2VydE5vbkVtcHR5KHBhdGgsICdwYXRoJylcblxuICAgIGlmICh0aGlzLnBhdGggIT09IHBhdGgpIHtcbiAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKHBhdGgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBTdGVtLlxuICAgKi9cbiAgZ2V0IHN0ZW0oKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IHBhdGguYmFzZW5hbWUodGhpcy5wYXRoLCB0aGlzLmV4dG5hbWUpXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ZW1cbiAgICogICBTdGVtLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgc3RlbShzdGVtKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoc3RlbSwgJ3N0ZW0nKVxuICAgIGFzc2VydFBhcnQoc3RlbSwgJ3N0ZW0nKVxuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIHN0ZW0gKyAodGhpcy5leHRuYW1lIHx8ICcnKSlcbiAgfVxuXG4gIC8vIE5vcm1hbCBwcm90b3R5cGFsIG1ldGhvZHMuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBmYXRhbCBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgdHJ1ZWAgKGVycm9yOyBmaWxlIG5vdCB1c2FibGUpXG4gICAqIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKiAgIE5ldmVyLlxuICAgKiBAdGhyb3dzIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIGZhaWwoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbilcblxuICAgIG1lc3NhZ2UuZmF0YWwgPSB0cnVlXG5cbiAgICB0aHJvdyBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluZm8gbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHVuZGVmaW5lZGAgKGluZm87IGNoYW5nZVxuICAgKiBsaWtlbHkgbm90IG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgaW5mbyhjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgZmFsc2VgICh3YXJuaW5nOyBjaGFuZ2UgbWF5IGJlXG4gICAqIG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFZGaWxlTWVzc2FnZShcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgICBjYXVzZU9yUmVhc29uLFxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSxcbiAgICAgIG9yaWdpblxuICAgIClcblxuICAgIGlmICh0aGlzLnBhdGgpIHtcbiAgICAgIG1lc3NhZ2UubmFtZSA9IHRoaXMucGF0aCArICc6JyArIG1lc3NhZ2UubmFtZVxuICAgICAgbWVzc2FnZS5maWxlID0gdGhpcy5wYXRoXG4gICAgfVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IGZhbHNlXG5cbiAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSlcblxuICAgIHJldHVybiBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSBmaWxlLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiB3aGljaCBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCBkZXBlbmRzIG9uIHRoZSBlbmdpbmUuXG4gICAqID4gRm9yIGluZm8gb24gTm9kZS5qcywgc2VlOlxuICAgKiA+IDxodHRwczovL25vZGVqcy5vcmcvYXBpL3V0aWwuaHRtbCN3aGF0d2ctc3VwcG9ydGVkLWVuY29kaW5ncz4uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nPSd1dGY4J11cbiAgICogICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdW5kZXJzdGFuZCBgdmFsdWVgIGFzIHdoZW4gaXRcdTIwMTlzIGEgYFVpbnQ4QXJyYXlgXG4gICAqICAgKGRlZmF1bHQ6IGAndXRmLTgnYCkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgU2VyaWFsaXplZCBmaWxlLlxuICAgKi9cbiAgdG9TdHJpbmcoZW5jb2RpbmcpIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoZW5jb2RpbmcgfHwgdW5kZWZpbmVkKVxuICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh0aGlzLnZhbHVlKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBhIHBhdGggKGFzIGluLCBkb2VzIG5vdCBjb250YWluIGBwYXRoLnNlcGApLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFydFxuICogICBGaWxlIHBhdGggcGFydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhcnQocGFydCwgbmFtZSkge1xuICBpZiAocGFydCAmJiBwYXJ0LmluY2x1ZGVzKHBhdGguc2VwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdgJyArIG5hbWUgKyAnYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgJyArIHBhdGguc2VwICsgJ2AnXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBlbXB0eS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGFydFxuICogICBUaGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhcnQgaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnROb25FbXB0eShwYXJ0LCBuYW1lKSB7XG4gIGlmICghcGFydCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGVtcHR5JylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBgcGF0aGAgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBwYXRoXG4gKiAgIFBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBEZXBlbmRlbmN5IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoLCBuYW1lKSB7XG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZyBgJyArIG5hbWUgKyAnYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbycpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICB0aGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBVaW50OEFycmF5fVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICovXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgdmFsdWUgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdieXRlTGVuZ3RoJyBpbiB2YWx1ZSAmJlxuICAgICAgJ2J5dGVPZmZzZXQnIGluIHZhbHVlXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEVycm9ySW5mb1xuICogICBJbmZvIG9uIGEgYHBhcnNlNWAgZXJyb3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVhc29uXG4gKiAgIFJlYXNvbiBvZiBlcnJvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZXNjcmlwdGlvblxuICogICBNb3JlIGluZm8gb24gZXJyb3IuXG4gKiBAcHJvcGVydHkge2ZhbHNlfSBbdXJsXVxuICogICBUdXJuIG9mZiBpZiB0aGlzIGlzIG5vdCBkb2N1bWVudGVkIGluIHRoZSBodG1sNSBzcGVjIChvcHRpb25hbCkuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGVycm9ycyA9IHtcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG1ldGFkYXRhIGVsZW1lbnQgYWZ0ZXIgaGVhZCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBlbGVtZW50IGFmdGVyIGhlYWQuIEV4cGVjdGVkIHRoZSBlbGVtZW50IGJlZm9yZSBgPC9oZWFkPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIGVtcHR5IGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgPmAgb3IgYC0+YC4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgY29tbWVudHMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIHB1YmxpYyBpZGVudGlmaWVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGA+YC4gRXhwZWN0ZWQgYSBjbG9zaW5nIGBcImAgb3IgYFxcJ2AgYWZ0ZXIgdGhlIHB1YmxpYyBpZGVudGlmaWVyJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBzeXN0ZW0gaWRlbnRpZmllcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPmAuIEV4cGVjdGVkIGEgY2xvc2luZyBgXCJgIG9yIGBcXCdgIGFmdGVyIHRoZSBpZGVudGlmaWVyIGlkZW50aWZpZXInXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5vbi1kaWdpdCBhdCBzdGFydCBvZiBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFswLTldYCBmb3IgZGVjaW1hbCByZWZlcmVuY2VzIG9yIGBbMC05YS1mQS1GXWAgZm9yIGhleGFkZWNpbWFsIHJlZmVyZW5jZXMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjZGF0YUluSHRtbENvbnRlbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIENEQVRBIHNlY3Rpb24gaW4gSFRNTCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPCFbQ0RBVEFbYCBpbiBIVE1MLiBSZW1vdmUgaXQsIHVzZSBhIGNvbW1lbnQsIG9yIGVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHRvbyBiaWcgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgaGlnaCBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBFeHBlY3RlZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB0byBiZSBhdCBtb3N0IGhleGFkZWNpbWFsIDEwZmZmZiAob3IgZGVjaW1hbCAxMTE0MTExKSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNsb3NpbmcgdGFnIHdpdGggb3BlbiBjaGlsZCBlbGVtZW50cycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNsb3NpbmcgdGFnLiBFeHBlY3RlZCBvdGhlciB0YWdzIHRvIGJlIGNsb3NlZCBmaXJzdCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW06IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIGAleGAuIEV4cGVjdGVkIGEgbm9uLWNvbnRyb2wgY29kZSBwb2ludCwgMHgwMCwgb3IgQVNDSUkgd2hpdGVzcGFjZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNvbnRyb2wgY2hhcmFjdGVyIGluIHJlZmVyZW5jZS4gRXhwZWN0ZWQgYSBub24tY29udHJvbCBjb2RlIHBvaW50LCAweDAwLCBvciBBU0NJSSB3aGl0ZXNwYWNlJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkOiB7XG4gICAgcmVhc29uOiAnRGlzYWxsb3dlZCBjb250ZW50IGluc2lkZSBgPG5vc2NyaXB0PmAgaW4gYDxoZWFkPmAnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgdGV4dCBjaGFyYWN0ZXIgYCVjYC4gT25seSB1c2UgdGV4dCBpbiBgPG5vc2NyaXB0PmBzIGluIGA8Ym9keT5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBkdXBsaWNhdGVBdHRyaWJ1dGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGR1cGxpY2F0ZSBhdHRyaWJ1dGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBkb3VibGUgYXR0cmlidXRlLiBFeHBlY3RlZCBhdHRyaWJ1dGVzIHRvIG9jY3VyIG9ubHkgb25jZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhBdHRyaWJ1dGVzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUgb24gY2xvc2luZyB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggYXQgZW5kIG9mIGNsb3NpbmcgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB1bm9wZW5lZCBlbmQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIHRhZy4gRXhwZWN0ZWQgbm8gZW5kIHRhZyBvciBhbm90aGVyIGVuZCB0YWcnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkJlZm9yZVRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhZyBuYW1lIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNkYXRhOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBDREFUQScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgXV0+YCB0byBjbG9zZSB0aGUgQ0RBVEEnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNvbW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkRvY3R5cGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGEgdmFsaWQgZG9jdHlwZSAoc3VjaCBhcyBgPCFkb2N0eXBlIGh0bWw+YCknXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBlbGVtZW50IHRoYXQgY2FuIG9ubHkgY29udGFpbiB0ZXh0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRleHQgb3IgYSBjbG9zaW5nIHRhZycsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBjb21tZW50IGluc2lkZSBzY3JpcHQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGA+YCB0byBjbG9zZSB0aGUgdGFnJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlDbG9zZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgY2xvc2VkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgb3BlbmVkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgPCEtLWAgdG8gb3BlbiB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdJbnZhbGlkIHNlcXVlbmNlIGFmdGVyIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIHNlcXVlbmNlIGF0IGAlY2AuIEV4cGVjdGVkIGBwdWJsaWNgIG9yIGBzeXN0ZW1gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnSW52YWxpZCBmaXJzdCBjaGFyYWN0ZXIgaW4gdGFnIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZERvY3R5cGU6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUuIEV4cGVjdGVkIGRvY3R5cGUgYmVmb3JlIGhlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQ6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgYDxoZWFkPmAgc3RhcnQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIHN0YXJ0IHRhZyBgPGhlYWQ+YC4gRXhwZWN0ZWQgYDxoZWFkPmAgZGlyZWN0bHkgYWZ0ZXIgZG9jdHlwZScsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0F0dHJpYnV0ZVZhbHVlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBhbiBhdHRyaWJ1dGUgdmFsdWUgb3Igbm8gYCVjLTFgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgZG9jdHlwZSBiZWZvcmUgb3RoZXIgY29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdFeHBlY3RlZCBhIGA8IWRvY3R5cGUgaHRtbD5gIGJlZm9yZSBhbnl0aGluZyBlbHNlJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUgZW5kIGF0IGAlY2AuIEV4cGVjdGVkIGBodG1sYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgaWRlbnRpZmllciBmb3IgYHB1YmxpY2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBgc3lzdGVtYCBpbnN0ZWFkIChzdWdnZXN0ZWQ6IGBcImFib3V0OmxlZ2FjeS1jb21wYXRcImApJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0VuZFRhZ05hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIG5hbWUgaW4gZW5kIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGA7YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGFmdGVyIHB1YmxpYyBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQ6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmVmb3JlRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmVmb3JlIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXM6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmV0d2VlbiBhdHRyaWJ1dGVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ01pc3Npbmcgd2hpdGVzcGFjZSBiZXR3ZWVuIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBuZXN0ZWQgY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGA8IS0tYC4gRXhwZWN0ZWQgYC0tPmAnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWROb3NjcmlwdEluSGVhZDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbmVzdGVkIGA8bm9zY3JpcHQ+YCBpbiBgPGhlYWQ+YCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPG5vc2NyaXB0PmAuIEV4cGVjdGVkIGEgY2xvc2luZyB0YWcgb3IgYSBtZXRhIGVsZW1lbnQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vbkNvbmZvcm1pbmdEb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub24tY29uZm9ybWluZyBkb2N0eXBlIGRlY2xhcmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdFeHBlY3RlZCBgPCFkb2N0eXBlIGh0bWw+YCBvciBgPCFkb2N0eXBlIGh0bWwgc3lzdGVtIFwiYWJvdXQ6bGVnYWN5LWNvbXBhdFwiPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdHJhaWxpbmcgc2xhc2ggb24gc3RhcnQgdGFnIG9mIG5vbi12b2lkIGVsZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgL2AuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uY2hhcmFjdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ1VuZXhwZWN0ZWQgbm9uY2hhcmFjdGVyIGNvZGUgcG9pbnQgcmVmZXJlbmNlZCBieSBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBub25jaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25jaGFyYWN0ZXJJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub25jaGFyYWN0ZXIgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIG5vbmNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG51bGxDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIE5VTEwgY2hhcmFjdGVyIHJlZmVyZW5jZWQgYnkgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2UgTlVMTCBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2Y6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGNsb3NpbmcgdGFnIGluc3RlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc3Vycm9nYXRlIGNoYXJhY3RlciByZWZlcmVuY2VkIGJ5IGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBzdXJyb2dhdGVJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBzdXJyb2dhdGUgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ0ludmFsaWQgY2hhcmFjdGVyIGFmdGVyIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgYXQgYCVjYC4gRXhwZWN0ZWQgYD5gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIGF0dHJpYnV0ZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIHdoaXRlc3BhY2UsIGAvYCwgYD5gLCBgPWAsIG9yIHByb2JhYmx5IGFuIEFTQ0lJIGxldHRlcidcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBRdW90ZSB0aGUgYXR0cmlidXRlIHZhbHVlIHRvIGluY2x1ZGUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVxdWFscyBzaWduIGJlZm9yZSBhdHRyaWJ1dGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEFkZCBhbiBhdHRyaWJ1dGUgbmFtZSBiZWZvcmUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkTnVsbENoYXJhY3Rlcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgTlVMTCBjaGFyYWN0ZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIE5VTEwgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHF1ZXN0aW9uIG1hcmsgaW5zdGVhZCBvZiB0YWcgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFNvbGlkdXNJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgaXQgZm9sbG93ZWQgYnkgYD5gIG9yIGluIGEgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdW5rbm93biBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNoYXJhY3RlciByZWZlcmVuY2UuIEV4cGVjdGVkIGtub3duIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzJ1xuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuUGFyc2VyRXJyb3J9IFBhcnNlckVycm9yXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge2tleW9mIGVycm9yc30gRXJyb3JDb2RlXG4gKiAgIEtub3duIG5hbWVzIG9mIHBhcnNlIGVycm9ycy5cbiAqXG4gKiBAdHlwZWRlZiB7UGFydGlhbDxSZWNvcmQ8RXJyb3JDb2RlLCBFcnJvclNldmVyaXR5IHwgbnVsbCB8IHVuZGVmaW5lZD4+fSBFcnJvck9wdGlvbnNcbiAqICAgT3B0aW9ucyB0aGF0IGRlZmluZSB0aGUgc2V2ZXJpdHkgb2YgZXJyb3JzLlxuICpcbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgMCB8IDEgfCAyfSBFcnJvclNldmVyaXR5XG4gKiAgIEVycm9yIHNldmVyaXR5OlxuICpcbiAqICAgKiBgMGAgb3IgYGZhbHNlYFxuICogICAgIFx1MjAxNCB0dXJuIHRoZSBwYXJzZSBlcnJvciBvZmZcbiAqICAgKiBgMWAgb3IgYHRydWVgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIGludG8gYSB3YXJuaW5nXG4gKiAgICogYDJgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIGludG8gYW4gYWN0dWFsIGVycm9yOiBwcm9jZXNzaW5nIHN0b3BzLlxuICpcbiAqIEB0eXBlZGVmIEV4dHJhT3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgZGVmaW5lIGhvdyB0byBwYXJzZSBIVE1MLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2ZyYWdtZW50PWZhbHNlXVxuICogICBTcGVjaWZ5IHdoZXRoZXIgdG8gcGFyc2UgYSBmcmFnbWVudCwgaW5zdGVhZCBvZiBhIGNvbXBsZXRlIGRvY3VtZW50XG4gKiAgIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEluIGRvY3VtZW50IG1vZGUsIHVub3BlbmVkIGBodG1sYCwgYGhlYWRgLCBhbmQgYGJvZHlgIGVsZW1lbnRzIGFyZSBvcGVuZWRcbiAqICAgaW4ganVzdCB0aGUgcmlnaHQgcGxhY2VzLlxuICogQHByb3BlcnR5IHtPbkVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29uZXJyb3JdXG4gKiAgIENhbGwgYG9uZXJyb3JgIHdpdGggcGFyc2UgZXJyb3JzIHdoaWxlIHBhcnNpbmcgKG9wdGlvbmFsKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBwYXJzZSBlcnJvcnMgYXJlIGN1cnJlbnRseSBiZWluZyBhZGRlZCB0byBIVE1MLlxuICogICA+IE5vdCBhbGwgZXJyb3JzIGVtaXR0ZWQgYnkgcGFyc2U1IChvciB1cykgYXJlIHNwZWNjZWQgeWV0LlxuICogICA+IFNvbWUgZG9jdW1lbnRhdGlvbiBtYXkgc3RpbGwgYmUgbWlzc2luZy5cbiAqXG4gKiAgIFNwZWNpZmljIHJ1bGVzIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHNldHRpbmcgdGhlbSB0byBgZmFsc2VgIChvciBgMGApLlxuICogICBUaGUgZGVmYXVsdCwgd2hlbiBgZW1pdFBhcnNlRXJyb3JzOiB0cnVlYCwgaXMgYHRydWVgIChvciBgMWApLCBhbmQgbWVhbnNcbiAqICAgdGhhdCBydWxlcyBlbWl0IGFzIHdhcm5pbmdzLlxuICogICBSdWxlcyBjYW4gYWxzbyBiZSBjb25maWd1cmVkIHdpdGggYDJgLCB0byB0dXJuIHRoZW0gaW50byBmYXRhbCBlcnJvcnMuXG4gKlxuICogQHR5cGVkZWYge09taXQ8aW1wb3J0KCdoYXN0LXV0aWwtZnJvbS1wYXJzZTUnKS5PcHRpb25zLCAnZmlsZSc+fSBGcm9tUGFyc2U1T3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgY2FuIGJlIHBhc3NlZCB0aHJvdWdoIHRvIGBoYXN0LXV0aWwtZnJvbS1wYXJzZTVgLlxuICpcbiAqIEBjYWxsYmFjayBPbkVycm9yXG4gKiAgIEhhbmRsZSBwYXJzZSBlcnJvcnMuXG4gKiBAcGFyYW0ge1ZGaWxlTWVzc2FnZX0gZXJyb3JcbiAqICAgTWVzc2FnZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWQgfCB2b2lkfVxuICogICBOb3RoaW5nLlxuICpcbiAqICAgTm90ZTogYHZvaWRgIGluY2x1ZGVkIHVudGlsIFRTIGluZmVycyBgdW5kZWZpbmVkYCBuaWNlbHkuXG4gKlxuICogQHR5cGVkZWYge0Zyb21QYXJzZTVPcHRpb25zICYgRXJyb3JPcHRpb25zICYgRXh0cmFPcHRpb25zfSBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7ZnJvbVBhcnNlNX0gZnJvbSAnaGFzdC11dGlsLWZyb20tcGFyc2U1J1xuaW1wb3J0IHtwYXJzZSwgcGFyc2VGcmFnbWVudH0gZnJvbSAncGFyc2U1J1xuaW1wb3J0IHtWRmlsZX0gZnJvbSAndmZpbGUnXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuL2Vycm9ycy5qcydcblxuY29uc3QgYmFzZSA9ICdodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcGFyc2UtZXJyb3ItJ1xuXG5jb25zdCBkYXNoVG9DYW1lbFJlID0gLy1bYS16XS9nXG5jb25zdCBmb3JtYXRDUmUgPSAvJWMoPzooWy0rXSkoXFxkKykpPy9nXG5jb25zdCBmb3JtYXRYUmUgPSAvJXgvZ1xuXG5jb25zdCBmYXRhbGl0aWVzID0gezI6IHRydWUsIDE6IGZhbHNlLCAwOiBudWxsfVxuXG4vKiogQHR5cGUge1JlYWRvbmx5PE9wdGlvbnM+fSAqL1xuY29uc3QgZW1wdHlPcHRpb25zID0ge31cblxuLyoqXG4gKiBUdXJuIHNlcmlhbGl6ZWQgSFRNTCBpbnRvIGEgaGFzdCB0cmVlLlxuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gdmFsdWVcbiAqICAgU2VyaWFsaXplZCBIVE1MIHRvIHBhcnNlLlxuICogQHBhcmFtIHtSZWFkb25seTxPcHRpb25zPiB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7Um9vdH1cbiAqICAgVHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IdG1sKHZhbHVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3Qgb25lcnJvciA9IHNldHRpbmdzLm9uZXJyb3JcbiAgY29uc3QgZmlsZSA9IHZhbHVlIGluc3RhbmNlb2YgVkZpbGUgPyB2YWx1ZSA6IG5ldyBWRmlsZSh2YWx1ZSlcbiAgY29uc3QgZm4gPSBzZXR0aW5ncy5mcmFnbWVudCA/IHBhcnNlRnJhZ21lbnQgOiBwYXJzZVxuICBjb25zdCBkb2MgPSBTdHJpbmcoZmlsZSlcbiAgY29uc3QgcDVkb2MgPSBmbihkb2MsIHtcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiB0cnVlLFxuICAgIC8vIE5vdGUgYHBhcnNlNWAgdHlwZXMgY3VycmVudGx5IGRvIG5vdCBhbGxvdyBgdW5kZWZpbmVkYC5cbiAgICBvblBhcnNlRXJyb3I6IHNldHRpbmdzLm9uZXJyb3IgPyBpbnRlcm5hbE9uZXJyb3IgOiBudWxsLFxuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IGZhbHNlXG4gIH0pXG5cbiAgLy8gYHBhcnNlNWAgcmV0dXJucyBkb2N1bWVudCB3aGljaCBhcmUgYWx3YXlzIG1hcHBlZCB0byByb290cy5cbiAgcmV0dXJuIC8qKiBAdHlwZSB7Um9vdH0gKi8gKFxuICAgIGZyb21QYXJzZTUocDVkb2MsIHtcbiAgICAgIGZpbGUsXG4gICAgICBzcGFjZTogc2V0dGluZ3Muc3BhY2UsXG4gICAgICB2ZXJib3NlOiBzZXR0aW5ncy52ZXJib3NlXG4gICAgfSlcbiAgKVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYSBwYXJzZSBlcnJvci5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJzZXJFcnJvcn0gZXJyb3JcbiAgICogICBQYXJzZTUgZXJyb3IuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIGludGVybmFsT25lcnJvcihlcnJvcikge1xuICAgIGNvbnN0IGNvZGUgPSBlcnJvci5jb2RlXG4gICAgY29uc3QgbmFtZSA9IGNhbWVsY2FzZShjb2RlKVxuICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5nc1tuYW1lXVxuICAgIGNvbnN0IGNvbmZpZyA9IHNldHRpbmcgPT09IG51bGwgfHwgc2V0dGluZyA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHNldHRpbmdcbiAgICBjb25zdCBsZXZlbCA9IHR5cGVvZiBjb25maWcgPT09ICdudW1iZXInID8gY29uZmlnIDogY29uZmlnID8gMSA6IDBcblxuICAgIGlmIChsZXZlbCkge1xuICAgICAgY29uc3QgaW5mbyA9IGVycm9yc1tuYW1lXVxuICAgICAgYXNzZXJ0KGluZm8sICdleHBlY3RlZCBrbm93biBlcnJvciBmcm9tIGBwYXJzZTVgJylcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBWRmlsZU1lc3NhZ2UoZm9ybWF0KGluZm8ucmVhc29uKSwge1xuICAgICAgICBwbGFjZToge1xuICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICBsaW5lOiBlcnJvci5zdGFydExpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGVycm9yLnN0YXJ0Q29sLFxuICAgICAgICAgICAgb2Zmc2V0OiBlcnJvci5zdGFydE9mZnNldFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5kOiB7XG4gICAgICAgICAgICBsaW5lOiBlcnJvci5lbmRMaW5lLFxuICAgICAgICAgICAgY29sdW1uOiBlcnJvci5lbmRDb2wsXG4gICAgICAgICAgICBvZmZzZXQ6IGVycm9yLmVuZE9mZnNldFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcnVsZUlkOiBjb2RlLFxuICAgICAgICBzb3VyY2U6ICdoYXN0LXV0aWwtZnJvbS1odG1sJ1xuICAgICAgfSlcblxuICAgICAgaWYgKGZpbGUucGF0aCkge1xuICAgICAgICBtZXNzYWdlLmZpbGUgPSBmaWxlLnBhdGhcbiAgICAgICAgbWVzc2FnZS5uYW1lID0gZmlsZS5wYXRoICsgJzonICsgbWVzc2FnZS5uYW1lXG4gICAgICB9XG5cbiAgICAgIG1lc3NhZ2UuZmF0YWwgPSBmYXRhbGl0aWVzW2xldmVsXVxuICAgICAgbWVzc2FnZS5ub3RlID0gZm9ybWF0KGluZm8uZGVzY3JpcHRpb24pXG4gICAgICBtZXNzYWdlLnVybCA9IGluZm8udXJsID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IGJhc2UgKyBjb2RlXG5cbiAgICAgIGFzc2VydChvbmVycm9yLCAnYGludGVybmFsT25lcnJvcmAgaXMgbm90IHBhc3NlZCBpZiBgb25lcnJvcmAgaXMgbm90IHNldCcpXG4gICAgICBvbmVycm9yKG1lc3NhZ2UpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybWF0IGEgaHVtYW4gcmVhZGFibGUgc3RyaW5nIGFib3V0IGFuIGVycm9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAgICogICBWYWx1ZSB0byBmb3JtYXQuXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JtYXQodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKGZvcm1hdENSZSwgZm9ybWF0QykucmVwbGFjZShmb3JtYXRYUmUsIGZvcm1hdFgpXG5cbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0IHRoZSBjaGFyYWN0ZXIuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IF9cbiAgICAgICAqICAgTWF0Y2guXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gJDFcbiAgICAgICAqICAgU2lnbiAoYC1gIG9yIGArYCwgb3B0aW9uYWwpLlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9ICQyXG4gICAgICAgKiAgIE9mZnNldC5cbiAgICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gZm9ybWF0QyhfLCAkMSwgJDIpIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgICAgICAoJDIgPyBOdW1iZXIucGFyc2VJbnQoJDIsIDEwKSA6IDApICogKCQxID09PSAnLScgPyAtMSA6IDEpXG4gICAgICAgIGNvbnN0IGNoYXIgPSBkb2MuY2hhckF0KGVycm9yLnN0YXJ0T2Zmc2V0ICsgb2Zmc2V0KVxuICAgICAgICByZXR1cm4gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpXG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0IHRoZSBjaGFyYWN0ZXIgY29kZS5cbiAgICAgICAqXG4gICAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAgICogICBGb3JtYXR0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGZvcm1hdFgoKSB7XG4gICAgICAgIHJldHVybiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGRvYy5jaGFyQ29kZUF0KGVycm9yLnN0YXJ0T2Zmc2V0KSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgRXJyb3IgY29kZSBpbiBkYXNoIGNhc2UuXG4gKiBAcmV0dXJucyB7RXJyb3JDb2RlfVxuICogICBFcnJvciBjb2RlIGluIGNhbWVsY2FzZS5cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKHZhbHVlKSB7XG4gIC8vIFRoaXMgc2hvdWxkIG1hdGNoIGFuIGVycm9yIGNvZGUuXG4gIHJldHVybiAvKiogQHR5cGUge0Vycm9yQ29kZX0gKi8gKHZhbHVlLnJlcGxhY2UoZGFzaFRvQ2FtZWxSZSwgZGFzaFRvQ2FtZWwpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogICBNYXRjaC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENhbWVsY2FzZWQuXG4gKi9cbmZ1bmN0aW9uIGRhc2hUb0NhbWVsKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyXG4gKiAgIENoYXJhY3Rlci5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZvcm1hdHRlZC5cbiAqL1xuZnVuY3Rpb24gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpIHtcbiAgcmV0dXJuIGNoYXIgPT09ICdgJyA/ICdgIGAgYCcgOiBjaGFyXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGNoYXJDb2RlXG4gKiAgIENoYXJhY3RlciBjb2RlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRm9ybWF0dGVkLlxuICovXG5mdW5jdGlvbiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGNoYXJDb2RlKSB7XG4gIHJldHVybiAnMHgnICsgY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgSFRNTCB2b2lkIHRhZyBuYW1lcy5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGh0bWxWb2lkRWxlbWVudHMgPSBbXG4gICdhcmVhJyxcbiAgJ2Jhc2UnLFxuICAnYmFzZWZvbnQnLFxuICAnYmdzb3VuZCcsXG4gICdicicsXG4gICdjb2wnLFxuICAnY29tbWFuZCcsXG4gICdlbWJlZCcsXG4gICdmcmFtZScsXG4gICdocicsXG4gICdpbWFnZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAna2V5Z2VuJyxcbiAgJ2xpbmsnLFxuICAnbWV0YScsXG4gICdwYXJhbScsXG4gICdzb3VyY2UnLFxuICAndHJhY2snLFxuICAnd2JyJ1xuXVxuIiwgIi8qKlxuICogQGNhbGxiYWNrIEhhbmRsZXJcbiAqICAgSGFuZGxlIGEgdmFsdWUsIHdpdGggYSBjZXJ0YWluIElEIGZpZWxkIHNldCB0byBhIGNlcnRhaW4gdmFsdWUuXG4gKiAgIFRoZSBJRCBmaWVsZCBpcyBwYXNzZWQgdG8gYHp3aXRjaGAsIGFuZCBpdFx1MjAxOXMgdmFsdWUgaXMgdGhpcyBmdW5jdGlvblx1MjAxOXNcbiAqICAgcGxhY2Ugb24gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICogQHBhcmFtIHsuLi5hbnl9IHBhcmFtZXRlcnNcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiAgIFRoZSBmaXJzdCB3aWxsIGJlIGFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYSBjZXJ0YWluIHZhbHVlLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVW5rbm93bkhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLCBidXQgaXRcdTIwMTlzIHNldCB0byBhIHZhbHVlXG4gKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIEFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYW4gdW5rbm93biB2YWx1ZS5cbiAqIEBwYXJhbSB7Li4uYW55fSByZXN0XG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgSW52YWxpZEhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIG5vdCBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgQW55IHVua25vd24gdmFsdWUuXG4gKiBAcGFyYW0gey4uLmFueX0gcmVzdFxuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqIEByZXR1cm5zIHt2b2lkfG51bGx8dW5kZWZpbmVkfG5ldmVyfVxuICogICBUaGlzIHNob3VsZCBjcmFzaCBvciByZXR1cm4gbm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gKHJlcXVpcmVkKS5cbiAqIEBwcm9wZXJ0eSB7SW52YWxpZH0gW2ludmFsaWRdXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7VW5rbm93bn0gW3Vua25vd25dXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciB1bmtub3duIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IFtoYW5kbGVyc11cbiAqICAgSGFuZGxlcnMgdG8gdXNlLlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogSGFuZGxlIHZhbHVlcyBiYXNlZCBvbiBhIGZpZWxkLlxuICpcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIEZpZWxkIHRvIHN3aXRjaCBvbi5cbiAqIEBwYXJhbSB7T3B0aW9uczxJbnZhbGlkLCBVbmtub3duLCBIYW5kbGVycz59IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcmV0dXJucyB7e3Vua25vd246IFVua25vd24sIGludmFsaWQ6IEludmFsaWQsIGhhbmRsZXJzOiBIYW5kbGVycywgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPik6IFJldHVyblR5cGU8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPiwgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8VW5rbm93bj4pOiBSZXR1cm5UeXBlPFVua25vd24+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHp3aXRjaChrZXksIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEJhc2VkIG9uIHRoZSBib3VuZCBga2V5YCwgYSByZXNwZWN0aXZlIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQuXG4gICAqIElmIGB2YWx1ZWAgaXMgbm90IGFuIG9iamVjdCwgb3IgZG9lc25cdTIwMTl0IGhhdmUgYSBga2V5YCBwcm9wZXJ0eSwgdGhlIHNwZWNpYWxcbiAgICogXHUyMDFDaW52YWxpZFx1MjAxRCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkLlxuICAgKiBJZiBgdmFsdWVgIGhhcyBhbiB1bmtub3duIGBrZXlgLCB0aGUgc3BlY2lhbCBcdTIwMUN1bmtub3duXHUyMDFEIGhhbmRsZXIgd2lsbCBiZVxuICAgKiBjYWxsZWQuXG4gICAqXG4gICAqIEFsbCBhcmd1bWVudHMsIGFuZCB0aGUgY29udGV4dCBvYmplY3QsIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgaGFuZGxlcixcbiAgICogYW5kIGl0XHUyMDE5cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiAgIEFueSBjb250ZXh0IG9iamVjdC5cbiAgICogQHBhcmFtIHt1bmtub3dufSBbdmFsdWVdXG4gICAqICAgQW55IHZhbHVlLlxuICAgKiBAcGFyYW0gey4uLnVua25vd259IHBhcmFtZXRlcnNcbiAgICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAgICogQHByb3BlcnR5IHtIYW5kbGVyfSBpbnZhbGlkXG4gICAqICAgSGFuZGxlIGZvciB2YWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcn0gdW5rbm93blxuICAgKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZCwgYnV0IGl0XHUyMDE5cyBzZXQgdG8gYSB2YWx1ZVxuICAgKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IGhhbmRsZXJzXG4gICAqICAgUmVjb3JkIG9mIGhhbmRsZXJzLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn1cbiAgICogICBBbnl0aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIG9uZSh2YWx1ZSwgLi4ucGFyYW1ldGVycykge1xuICAgIC8qKiBAdHlwZSB7SGFuZGxlcnx1bmRlZmluZWR9ICovXG4gICAgbGV0IGZuID0gb25lLmludmFsaWRcbiAgICBjb25zdCBoYW5kbGVycyA9IG9uZS5oYW5kbGVyc1xuXG4gICAgaWYgKHZhbHVlICYmIG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGNvbnN0IGlkID0gU3RyaW5nKHZhbHVlW2tleV0pXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGZuID0gb3duLmNhbGwoaGFuZGxlcnMsIGlkKSA/IGhhbmRsZXJzW2lkXSA6IG9uZS51bmtub3duXG4gICAgfVxuXG4gICAgaWYgKGZuKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCB2YWx1ZSwgLi4ucGFyYW1ldGVycylcbiAgICB9XG4gIH1cblxuICBvbmUuaGFuZGxlcnMgPSBzZXR0aW5ncy5oYW5kbGVycyB8fCB7fVxuICBvbmUuaW52YWxpZCA9IHNldHRpbmdzLmludmFsaWRcbiAgb25lLnVua25vd24gPSBzZXR0aW5ncy51bmtub3duXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbWF0Y2hlcyFcbiAgcmV0dXJuIG9uZVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYgQ29yZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gW3N1YnNldD1bXV1cbiAqICAgV2hldGhlciB0byBvbmx5IGVzY2FwZSB0aGUgZ2l2ZW4gc3Vic2V0IG9mIGNoYXJhY3RlcnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtlc2NhcGVPbmx5PWZhbHNlXVxuICogICBXaGV0aGVyIHRvIG9ubHkgZXNjYXBlIHBvc3NpYmx5IGRhbmdlcm91cyBjaGFyYWN0ZXJzLlxuICogICBUaG9zZSBjaGFyYWN0ZXJzIGFyZSBgXCJgLCBgJmAsIGAnYCwgYDxgLCBgPmAsIGFuZCBgYCBgIGBgLlxuICpcbiAqIEB0eXBlZGVmIEZvcm1hdE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7KGNvZGU6IG51bWJlciwgbmV4dDogbnVtYmVyLCBvcHRpb25zOiBDb3JlV2l0aEZvcm1hdE9wdGlvbnMpID0+IHN0cmluZ30gZm9ybWF0XG4gKiAgIEZvcm1hdCBzdHJhdGVneS5cbiAqXG4gKiBAdHlwZWRlZiB7Q29yZU9wdGlvbnMgJiBGb3JtYXRPcHRpb25zICYgaW1wb3J0KCcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJykuRm9ybWF0U21hcnRPcHRpb25zfSBDb3JlV2l0aEZvcm1hdE9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEVuY29kZSBjZXJ0YWluIGNoYXJhY3RlcnMgaW4gYHZhbHVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7Q29yZVdpdGhGb3JtYXRPcHRpb25zfSBvcHRpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29yZSh2YWx1ZSwgb3B0aW9ucykge1xuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoXG4gICAgb3B0aW9ucy5zdWJzZXQgPyBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKG9wdGlvbnMuc3Vic2V0KSA6IC9bXCImJzw+YF0vZyxcbiAgICBiYXNpY1xuICApXG5cbiAgaWYgKG9wdGlvbnMuc3Vic2V0IHx8IG9wdGlvbnMuZXNjYXBlT25seSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICB2YWx1ZVxuICAgICAgLy8gU3Vycm9nYXRlIHBhaXJzLlxuICAgICAgLnJlcGxhY2UoL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vZywgc3Vycm9nYXRlKVxuICAgICAgLy8gQk1QIGNvbnRyb2wgY2hhcmFjdGVycyAoQzAgZXhjZXB0IGZvciBMRiwgQ1IsIFNQOyBERUw7IGFuZCBzb21lIG1vcmVcbiAgICAgIC8vIG5vbi1BU0NJSSBvbmVzKS5cbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleCwgdW5pY29ybi9uby1oZXgtZXNjYXBlXG4gICAgICAgIC9bXFx4MDEtXFx0XFx2XFxmXFx4MEUtXFx4MUZcXHg3RlxceDgxXFx4OERcXHg4RlxceDkwXFx4OURcXHhBMC1cXHVGRkZGXS9nLFxuICAgICAgICBiYXNpY1xuICAgICAgKVxuICApXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYWlyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWxsXG4gICAqL1xuICBmdW5jdGlvbiBzdXJyb2dhdGUocGFpciwgaW5kZXgsIGFsbCkge1xuICAgIHJldHVybiBvcHRpb25zLmZvcm1hdChcbiAgICAgIChwYWlyLmNoYXJDb2RlQXQoMCkgLSAweGQ4MDApICogMHg0MDAgK1xuICAgICAgICBwYWlyLmNoYXJDb2RlQXQoMSkgLVxuICAgICAgICAweGRjMDAgK1xuICAgICAgICAweDEwMDAwLFxuICAgICAgYWxsLmNoYXJDb2RlQXQoaW5kZXggKyAyKSxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXJhY3RlclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFsbFxuICAgKi9cbiAgZnVuY3Rpb24gYmFzaWMoY2hhcmFjdGVyLCBpbmRleCwgYWxsKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZm9ybWF0KFxuICAgICAgY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCksXG4gICAgICBhbGwuY2hhckNvZGVBdChpbmRleCArIDEpLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gc3Vic2V0XG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICovXG5mdW5jdGlvbiBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKHN1YnNldCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IGdyb3VwcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzdWJzZXQubGVuZ3RoKSB7XG4gICAgZ3JvdXBzLnB1c2goc3Vic2V0W2luZGV4XS5yZXBsYWNlKC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZywgJ1xcXFwkJicpKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/OicgKyBncm91cHMuam9pbignfCcpICsgJyknLCAnZycpXG59XG4iLCAiLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBoZXhhZGVjaW1hbCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGV4YWRlY2ltYWwoY29kZSwgbmV4dCwgb21pdCkge1xuICBjb25zdCB2YWx1ZSA9ICcmI3gnICsgY29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKVxuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICEvW1xcZEEtRmEtZl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSlcbiAgICA/IHZhbHVlXG4gICAgOiB2YWx1ZSArICc7J1xufVxuIiwgIi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgZGVjaW1hbCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRGVjaW1hbChjb2RlLCBuZXh0LCBvbWl0KSB7XG4gIGNvbnN0IHZhbHVlID0gJyYjJyArIFN0cmluZyhjb2RlKVxuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICEvXFxkLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgKyAnOydcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgbGVnYWN5IEhUTUwgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgdGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBzZW1pY29sb24uXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeSA9IFtcbiAgJ0FFbGlnJyxcbiAgJ0FNUCcsXG4gICdBYWN1dGUnLFxuICAnQWNpcmMnLFxuICAnQWdyYXZlJyxcbiAgJ0FyaW5nJyxcbiAgJ0F0aWxkZScsXG4gICdBdW1sJyxcbiAgJ0NPUFknLFxuICAnQ2NlZGlsJyxcbiAgJ0VUSCcsXG4gICdFYWN1dGUnLFxuICAnRWNpcmMnLFxuICAnRWdyYXZlJyxcbiAgJ0V1bWwnLFxuICAnR1QnLFxuICAnSWFjdXRlJyxcbiAgJ0ljaXJjJyxcbiAgJ0lncmF2ZScsXG4gICdJdW1sJyxcbiAgJ0xUJyxcbiAgJ050aWxkZScsXG4gICdPYWN1dGUnLFxuICAnT2NpcmMnLFxuICAnT2dyYXZlJyxcbiAgJ09zbGFzaCcsXG4gICdPdGlsZGUnLFxuICAnT3VtbCcsXG4gICdRVU9UJyxcbiAgJ1JFRycsXG4gICdUSE9STicsXG4gICdVYWN1dGUnLFxuICAnVWNpcmMnLFxuICAnVWdyYXZlJyxcbiAgJ1V1bWwnLFxuICAnWWFjdXRlJyxcbiAgJ2FhY3V0ZScsXG4gICdhY2lyYycsXG4gICdhY3V0ZScsXG4gICdhZWxpZycsXG4gICdhZ3JhdmUnLFxuICAnYW1wJyxcbiAgJ2FyaW5nJyxcbiAgJ2F0aWxkZScsXG4gICdhdW1sJyxcbiAgJ2JydmJhcicsXG4gICdjY2VkaWwnLFxuICAnY2VkaWwnLFxuICAnY2VudCcsXG4gICdjb3B5JyxcbiAgJ2N1cnJlbicsXG4gICdkZWcnLFxuICAnZGl2aWRlJyxcbiAgJ2VhY3V0ZScsXG4gICdlY2lyYycsXG4gICdlZ3JhdmUnLFxuICAnZXRoJyxcbiAgJ2V1bWwnLFxuICAnZnJhYzEyJyxcbiAgJ2ZyYWMxNCcsXG4gICdmcmFjMzQnLFxuICAnZ3QnLFxuICAnaWFjdXRlJyxcbiAgJ2ljaXJjJyxcbiAgJ2lleGNsJyxcbiAgJ2lncmF2ZScsXG4gICdpcXVlc3QnLFxuICAnaXVtbCcsXG4gICdsYXF1bycsXG4gICdsdCcsXG4gICdtYWNyJyxcbiAgJ21pY3JvJyxcbiAgJ21pZGRvdCcsXG4gICduYnNwJyxcbiAgJ25vdCcsXG4gICdudGlsZGUnLFxuICAnb2FjdXRlJyxcbiAgJ29jaXJjJyxcbiAgJ29ncmF2ZScsXG4gICdvcmRmJyxcbiAgJ29yZG0nLFxuICAnb3NsYXNoJyxcbiAgJ290aWxkZScsXG4gICdvdW1sJyxcbiAgJ3BhcmEnLFxuICAncGx1c21uJyxcbiAgJ3BvdW5kJyxcbiAgJ3F1b3QnLFxuICAncmFxdW8nLFxuICAncmVnJyxcbiAgJ3NlY3QnLFxuICAnc2h5JyxcbiAgJ3N1cDEnLFxuICAnc3VwMicsXG4gICdzdXAzJyxcbiAgJ3N6bGlnJyxcbiAgJ3Rob3JuJyxcbiAgJ3RpbWVzJyxcbiAgJ3VhY3V0ZScsXG4gICd1Y2lyYycsXG4gICd1Z3JhdmUnLFxuICAndW1sJyxcbiAgJ3V1bWwnLFxuICAneWFjdXRlJyxcbiAgJ3llbicsXG4gICd5dW1sJ1xuXVxuIiwgIi8qKlxuICogTWFwIG9mIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIGZyb20gSFRNTCA0LlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRW50aXRpZXNIdG1sNCA9IHtcbiAgbmJzcDogJ1x1MDBBMCcsXG4gIGlleGNsOiAnXHUwMEExJyxcbiAgY2VudDogJ1x1MDBBMicsXG4gIHBvdW5kOiAnXHUwMEEzJyxcbiAgY3VycmVuOiAnXHUwMEE0JyxcbiAgeWVuOiAnXHUwMEE1JyxcbiAgYnJ2YmFyOiAnXHUwMEE2JyxcbiAgc2VjdDogJ1x1MDBBNycsXG4gIHVtbDogJ1x1MDBBOCcsXG4gIGNvcHk6ICdcdTAwQTknLFxuICBvcmRmOiAnXHUwMEFBJyxcbiAgbGFxdW86ICdcdTAwQUInLFxuICBub3Q6ICdcdTAwQUMnLFxuICBzaHk6ICdcdTAwQUQnLFxuICByZWc6ICdcdTAwQUUnLFxuICBtYWNyOiAnXHUwMEFGJyxcbiAgZGVnOiAnXHUwMEIwJyxcbiAgcGx1c21uOiAnXHUwMEIxJyxcbiAgc3VwMjogJ1x1MDBCMicsXG4gIHN1cDM6ICdcdTAwQjMnLFxuICBhY3V0ZTogJ1x1MDBCNCcsXG4gIG1pY3JvOiAnXHUwMEI1JyxcbiAgcGFyYTogJ1x1MDBCNicsXG4gIG1pZGRvdDogJ1x1MDBCNycsXG4gIGNlZGlsOiAnXHUwMEI4JyxcbiAgc3VwMTogJ1x1MDBCOScsXG4gIG9yZG06ICdcdTAwQkEnLFxuICByYXF1bzogJ1x1MDBCQicsXG4gIGZyYWMxNDogJ1x1MDBCQycsXG4gIGZyYWMxMjogJ1x1MDBCRCcsXG4gIGZyYWMzNDogJ1x1MDBCRScsXG4gIGlxdWVzdDogJ1x1MDBCRicsXG4gIEFncmF2ZTogJ1x1MDBDMCcsXG4gIEFhY3V0ZTogJ1x1MDBDMScsXG4gIEFjaXJjOiAnXHUwMEMyJyxcbiAgQXRpbGRlOiAnXHUwMEMzJyxcbiAgQXVtbDogJ1x1MDBDNCcsXG4gIEFyaW5nOiAnXHUwMEM1JyxcbiAgQUVsaWc6ICdcdTAwQzYnLFxuICBDY2VkaWw6ICdcdTAwQzcnLFxuICBFZ3JhdmU6ICdcdTAwQzgnLFxuICBFYWN1dGU6ICdcdTAwQzknLFxuICBFY2lyYzogJ1x1MDBDQScsXG4gIEV1bWw6ICdcdTAwQ0InLFxuICBJZ3JhdmU6ICdcdTAwQ0MnLFxuICBJYWN1dGU6ICdcdTAwQ0QnLFxuICBJY2lyYzogJ1x1MDBDRScsXG4gIEl1bWw6ICdcdTAwQ0YnLFxuICBFVEg6ICdcdTAwRDAnLFxuICBOdGlsZGU6ICdcdTAwRDEnLFxuICBPZ3JhdmU6ICdcdTAwRDInLFxuICBPYWN1dGU6ICdcdTAwRDMnLFxuICBPY2lyYzogJ1x1MDBENCcsXG4gIE90aWxkZTogJ1x1MDBENScsXG4gIE91bWw6ICdcdTAwRDYnLFxuICB0aW1lczogJ1x1MDBENycsXG4gIE9zbGFzaDogJ1x1MDBEOCcsXG4gIFVncmF2ZTogJ1x1MDBEOScsXG4gIFVhY3V0ZTogJ1x1MDBEQScsXG4gIFVjaXJjOiAnXHUwMERCJyxcbiAgVXVtbDogJ1x1MDBEQycsXG4gIFlhY3V0ZTogJ1x1MDBERCcsXG4gIFRIT1JOOiAnXHUwMERFJyxcbiAgc3psaWc6ICdcdTAwREYnLFxuICBhZ3JhdmU6ICdcdTAwRTAnLFxuICBhYWN1dGU6ICdcdTAwRTEnLFxuICBhY2lyYzogJ1x1MDBFMicsXG4gIGF0aWxkZTogJ1x1MDBFMycsXG4gIGF1bWw6ICdcdTAwRTQnLFxuICBhcmluZzogJ1x1MDBFNScsXG4gIGFlbGlnOiAnXHUwMEU2JyxcbiAgY2NlZGlsOiAnXHUwMEU3JyxcbiAgZWdyYXZlOiAnXHUwMEU4JyxcbiAgZWFjdXRlOiAnXHUwMEU5JyxcbiAgZWNpcmM6ICdcdTAwRUEnLFxuICBldW1sOiAnXHUwMEVCJyxcbiAgaWdyYXZlOiAnXHUwMEVDJyxcbiAgaWFjdXRlOiAnXHUwMEVEJyxcbiAgaWNpcmM6ICdcdTAwRUUnLFxuICBpdW1sOiAnXHUwMEVGJyxcbiAgZXRoOiAnXHUwMEYwJyxcbiAgbnRpbGRlOiAnXHUwMEYxJyxcbiAgb2dyYXZlOiAnXHUwMEYyJyxcbiAgb2FjdXRlOiAnXHUwMEYzJyxcbiAgb2NpcmM6ICdcdTAwRjQnLFxuICBvdGlsZGU6ICdcdTAwRjUnLFxuICBvdW1sOiAnXHUwMEY2JyxcbiAgZGl2aWRlOiAnXHUwMEY3JyxcbiAgb3NsYXNoOiAnXHUwMEY4JyxcbiAgdWdyYXZlOiAnXHUwMEY5JyxcbiAgdWFjdXRlOiAnXHUwMEZBJyxcbiAgdWNpcmM6ICdcdTAwRkInLFxuICB1dW1sOiAnXHUwMEZDJyxcbiAgeWFjdXRlOiAnXHUwMEZEJyxcbiAgdGhvcm46ICdcdTAwRkUnLFxuICB5dW1sOiAnXHUwMEZGJyxcbiAgZm5vZjogJ1x1MDE5MicsXG4gIEFscGhhOiAnXHUwMzkxJyxcbiAgQmV0YTogJ1x1MDM5MicsXG4gIEdhbW1hOiAnXHUwMzkzJyxcbiAgRGVsdGE6ICdcdTAzOTQnLFxuICBFcHNpbG9uOiAnXHUwMzk1JyxcbiAgWmV0YTogJ1x1MDM5NicsXG4gIEV0YTogJ1x1MDM5NycsXG4gIFRoZXRhOiAnXHUwMzk4JyxcbiAgSW90YTogJ1x1MDM5OScsXG4gIEthcHBhOiAnXHUwMzlBJyxcbiAgTGFtYmRhOiAnXHUwMzlCJyxcbiAgTXU6ICdcdTAzOUMnLFxuICBOdTogJ1x1MDM5RCcsXG4gIFhpOiAnXHUwMzlFJyxcbiAgT21pY3JvbjogJ1x1MDM5RicsXG4gIFBpOiAnXHUwM0EwJyxcbiAgUmhvOiAnXHUwM0ExJyxcbiAgU2lnbWE6ICdcdTAzQTMnLFxuICBUYXU6ICdcdTAzQTQnLFxuICBVcHNpbG9uOiAnXHUwM0E1JyxcbiAgUGhpOiAnXHUwM0E2JyxcbiAgQ2hpOiAnXHUwM0E3JyxcbiAgUHNpOiAnXHUwM0E4JyxcbiAgT21lZ2E6ICdcdTAzQTknLFxuICBhbHBoYTogJ1x1MDNCMScsXG4gIGJldGE6ICdcdTAzQjInLFxuICBnYW1tYTogJ1x1MDNCMycsXG4gIGRlbHRhOiAnXHUwM0I0JyxcbiAgZXBzaWxvbjogJ1x1MDNCNScsXG4gIHpldGE6ICdcdTAzQjYnLFxuICBldGE6ICdcdTAzQjcnLFxuICB0aGV0YTogJ1x1MDNCOCcsXG4gIGlvdGE6ICdcdTAzQjknLFxuICBrYXBwYTogJ1x1MDNCQScsXG4gIGxhbWJkYTogJ1x1MDNCQicsXG4gIG11OiAnXHUwM0JDJyxcbiAgbnU6ICdcdTAzQkQnLFxuICB4aTogJ1x1MDNCRScsXG4gIG9taWNyb246ICdcdTAzQkYnLFxuICBwaTogJ1x1MDNDMCcsXG4gIHJobzogJ1x1MDNDMScsXG4gIHNpZ21hZjogJ1x1MDNDMicsXG4gIHNpZ21hOiAnXHUwM0MzJyxcbiAgdGF1OiAnXHUwM0M0JyxcbiAgdXBzaWxvbjogJ1x1MDNDNScsXG4gIHBoaTogJ1x1MDNDNicsXG4gIGNoaTogJ1x1MDNDNycsXG4gIHBzaTogJ1x1MDNDOCcsXG4gIG9tZWdhOiAnXHUwM0M5JyxcbiAgdGhldGFzeW06ICdcdTAzRDEnLFxuICB1cHNpaDogJ1x1MDNEMicsXG4gIHBpdjogJ1x1MDNENicsXG4gIGJ1bGw6ICdcdTIwMjInLFxuICBoZWxsaXA6ICdcdTIwMjYnLFxuICBwcmltZTogJ1x1MjAzMicsXG4gIFByaW1lOiAnXHUyMDMzJyxcbiAgb2xpbmU6ICdcdTIwM0UnLFxuICBmcmFzbDogJ1x1MjA0NCcsXG4gIHdlaWVycDogJ1x1MjExOCcsXG4gIGltYWdlOiAnXHUyMTExJyxcbiAgcmVhbDogJ1x1MjExQycsXG4gIHRyYWRlOiAnXHUyMTIyJyxcbiAgYWxlZnN5bTogJ1x1MjEzNScsXG4gIGxhcnI6ICdcdTIxOTAnLFxuICB1YXJyOiAnXHUyMTkxJyxcbiAgcmFycjogJ1x1MjE5MicsXG4gIGRhcnI6ICdcdTIxOTMnLFxuICBoYXJyOiAnXHUyMTk0JyxcbiAgY3JhcnI6ICdcdTIxQjUnLFxuICBsQXJyOiAnXHUyMUQwJyxcbiAgdUFycjogJ1x1MjFEMScsXG4gIHJBcnI6ICdcdTIxRDInLFxuICBkQXJyOiAnXHUyMUQzJyxcbiAgaEFycjogJ1x1MjFENCcsXG4gIGZvcmFsbDogJ1x1MjIwMCcsXG4gIHBhcnQ6ICdcdTIyMDInLFxuICBleGlzdDogJ1x1MjIwMycsXG4gIGVtcHR5OiAnXHUyMjA1JyxcbiAgbmFibGE6ICdcdTIyMDcnLFxuICBpc2luOiAnXHUyMjA4JyxcbiAgbm90aW46ICdcdTIyMDknLFxuICBuaTogJ1x1MjIwQicsXG4gIHByb2Q6ICdcdTIyMEYnLFxuICBzdW06ICdcdTIyMTEnLFxuICBtaW51czogJ1x1MjIxMicsXG4gIGxvd2FzdDogJ1x1MjIxNycsXG4gIHJhZGljOiAnXHUyMjFBJyxcbiAgcHJvcDogJ1x1MjIxRCcsXG4gIGluZmluOiAnXHUyMjFFJyxcbiAgYW5nOiAnXHUyMjIwJyxcbiAgYW5kOiAnXHUyMjI3JyxcbiAgb3I6ICdcdTIyMjgnLFxuICBjYXA6ICdcdTIyMjknLFxuICBjdXA6ICdcdTIyMkEnLFxuICBpbnQ6ICdcdTIyMkInLFxuICB0aGVyZTQ6ICdcdTIyMzQnLFxuICBzaW06ICdcdTIyM0MnLFxuICBjb25nOiAnXHUyMjQ1JyxcbiAgYXN5bXA6ICdcdTIyNDgnLFxuICBuZTogJ1x1MjI2MCcsXG4gIGVxdWl2OiAnXHUyMjYxJyxcbiAgbGU6ICdcdTIyNjQnLFxuICBnZTogJ1x1MjI2NScsXG4gIHN1YjogJ1x1MjI4MicsXG4gIHN1cDogJ1x1MjI4MycsXG4gIG5zdWI6ICdcdTIyODQnLFxuICBzdWJlOiAnXHUyMjg2JyxcbiAgc3VwZTogJ1x1MjI4NycsXG4gIG9wbHVzOiAnXHUyMjk1JyxcbiAgb3RpbWVzOiAnXHUyMjk3JyxcbiAgcGVycDogJ1x1MjJBNScsXG4gIHNkb3Q6ICdcdTIyQzUnLFxuICBsY2VpbDogJ1x1MjMwOCcsXG4gIHJjZWlsOiAnXHUyMzA5JyxcbiAgbGZsb29yOiAnXHUyMzBBJyxcbiAgcmZsb29yOiAnXHUyMzBCJyxcbiAgbGFuZzogJ1x1MjMyOScsXG4gIHJhbmc6ICdcdTIzMkEnLFxuICBsb3o6ICdcdTI1Q0EnLFxuICBzcGFkZXM6ICdcdTI2NjAnLFxuICBjbHViczogJ1x1MjY2MycsXG4gIGhlYXJ0czogJ1x1MjY2NScsXG4gIGRpYW1zOiAnXHUyNjY2JyxcbiAgcXVvdDogJ1wiJyxcbiAgYW1wOiAnJicsXG4gIGx0OiAnPCcsXG4gIGd0OiAnPicsXG4gIE9FbGlnOiAnXHUwMTUyJyxcbiAgb2VsaWc6ICdcdTAxNTMnLFxuICBTY2Fyb246ICdcdTAxNjAnLFxuICBzY2Fyb246ICdcdTAxNjEnLFxuICBZdW1sOiAnXHUwMTc4JyxcbiAgY2lyYzogJ1x1MDJDNicsXG4gIHRpbGRlOiAnXHUwMkRDJyxcbiAgZW5zcDogJ1x1MjAwMicsXG4gIGVtc3A6ICdcdTIwMDMnLFxuICB0aGluc3A6ICdcdTIwMDknLFxuICB6d25qOiAnXHUyMDBDJyxcbiAgendqOiAnXHUyMDBEJyxcbiAgbHJtOiAnXHUyMDBFJyxcbiAgcmxtOiAnXHUyMDBGJyxcbiAgbmRhc2g6ICdcdTIwMTMnLFxuICBtZGFzaDogJ1x1MjAxNCcsXG4gIGxzcXVvOiAnXHUyMDE4JyxcbiAgcnNxdW86ICdcdTIwMTknLFxuICBzYnF1bzogJ1x1MjAxQScsXG4gIGxkcXVvOiAnXHUyMDFDJyxcbiAgcmRxdW86ICdcdTIwMUQnLFxuICBiZHF1bzogJ1x1MjAxRScsXG4gIGRhZ2dlcjogJ1x1MjAyMCcsXG4gIERhZ2dlcjogJ1x1MjAyMScsXG4gIHBlcm1pbDogJ1x1MjAzMCcsXG4gIGxzYXF1bzogJ1x1MjAzOScsXG4gIHJzYXF1bzogJ1x1MjAzQScsXG4gIGV1cm86ICdcdTIwQUMnXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIGxlZ2FjeSAodGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBgO2ApIG5hbWVkIHJlZmVyZW5jZXMgd2hpY2ggY291bGQsXG4gKiBkZXBlbmRpbmcgb24gd2hhdCBmb2xsb3dzIHRoZW0sIHR1cm4gaW50byBhIGRpZmZlcmVudCBtZWFuaW5nXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBkYW5nZXJvdXMgPSBbXG4gICdjZW50JyxcbiAgJ2NvcHknLFxuICAnZGl2aWRlJyxcbiAgJ2d0JyxcbiAgJ2x0JyxcbiAgJ25vdCcsXG4gICdwYXJhJyxcbiAgJ3RpbWVzJ1xuXVxuIiwgImltcG9ydCB7Y2hhcmFjdGVyRW50aXRpZXNMZWdhY3l9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3knXG5pbXBvcnQge2NoYXJhY3RlckVudGl0aWVzSHRtbDR9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1odG1sNCdcbmltcG9ydCB7ZGFuZ2Vyb3VzfSBmcm9tICcuLi9jb25zdGFudC9kYW5nZXJvdXMuanMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogYGNoYXJhY3RlckVudGl0aWVzSHRtbDRgIGJ1dCBpbnZlcnRlZC5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuY29uc3QgY2hhcmFjdGVycyA9IHt9XG5cbi8qKiBAdHlwZSB7c3RyaW5nfSAqL1xubGV0IGtleVxuXG5mb3IgKGtleSBpbiBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0KSB7XG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJFbnRpdGllc0h0bWw0LCBrZXkpKSB7XG4gICAgY2hhcmFjdGVyc1tjaGFyYWN0ZXJFbnRpdGllc0h0bWw0W2tleV1dID0ga2V5XG4gIH1cbn1cblxuLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBuYW1lZCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9OYW1lZChjb2RlLCBuZXh0LCBvbWl0LCBhdHRyaWJ1dGUpIHtcbiAgY29uc3QgY2hhcmFjdGVyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKVxuXG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXIpKSB7XG4gICAgY29uc3QgbmFtZSA9IGNoYXJhY3RlcnNbY2hhcmFjdGVyXVxuICAgIGNvbnN0IHZhbHVlID0gJyYnICsgbmFtZVxuXG4gICAgaWYgKFxuICAgICAgb21pdCAmJlxuICAgICAgY2hhcmFjdGVyRW50aXRpZXNMZWdhY3kuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgICFkYW5nZXJvdXMuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgICghYXR0cmlidXRlIHx8XG4gICAgICAgIChuZXh0ICYmXG4gICAgICAgICAgbmV4dCAhPT0gNjEgLyogYD1gICovICYmXG4gICAgICAgICAgL1teXFxkYS16XS9pLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlICsgJzsnXG4gIH1cblxuICByZXR1cm4gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEZvcm1hdFNtYXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlTmFtZWRSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKGAmYW1wO2ApIHdoZXJlIHBvc3NpYmxlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlU2hvcnRlc3RSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgdGhlIHNob3J0ZXN0IHBvc3NpYmxlIHJlZmVyZW5jZSwgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMuXG4gKiAgICoqTm90ZSoqOiBgdXNlTmFtZWRSZWZlcmVuY2VzYCBjYW4gYmUgb21pdHRlZCB3aGVuIHVzaW5nIGB1c2VTaG9ydGVzdFJlZmVyZW5jZXNgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbb21pdE9wdGlvbmFsU2VtaWNvbG9ucz1mYWxzZV1cbiAqICAgV2hldGhlciB0byBvbWl0IHNlbWljb2xvbnMgd2hlbiBwb3NzaWJsZS5cbiAqICAgKipOb3RlKio6IFRoaXMgY3JlYXRlcyB3aGF0IEhUTUwgY2FsbHMgXHUyMDFDcGFyc2UgZXJyb3JzXHUyMDFEIGJ1dCBpcyBvdGhlcndpc2Ugc3RpbGwgdmFsaWQgSFRNTCBcdTIwMTQgZG9uXHUyMDE5dCB1c2UgdGhpcyBleGNlcHQgd2hlbiBidWlsZGluZyBhIG1pbmlmaWVyLlxuICogICBPbWl0dGluZyBzZW1pY29sb25zIGlzIHBvc3NpYmxlIGZvciBjZXJ0YWluIG5hbWVkIGFuZCBudW1lcmljIHJlZmVyZW5jZXMgaW4gc29tZSBjYXNlcy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2F0dHJpYnV0ZT1mYWxzZV1cbiAqICAgQ3JlYXRlIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoaWNoIGRvblx1MjAxOXQgZmFpbCBpbiBhdHRyaWJ1dGVzLlxuICogICAqKk5vdGUqKjogYGF0dHJpYnV0ZWAgb25seSBhcHBsaWVzIHdoZW4gb3BlcmF0aW5nIGRhbmdlcm91c2x5IHdpdGhcbiAqICAgYG9taXRPcHRpb25hbFNlbWljb2xvbnM6IHRydWVgLlxuICovXG5cbmltcG9ydCB7dG9IZXhhZGVjaW1hbH0gZnJvbSAnLi90by1oZXhhZGVjaW1hbC5qcydcbmltcG9ydCB7dG9EZWNpbWFsfSBmcm9tICcuL3RvLWRlY2ltYWwuanMnXG5pbXBvcnQge3RvTmFtZWR9IGZyb20gJy4vdG8tbmFtZWQuanMnXG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGEgY2hhcmFjdGVyIHlpZWxkaW5nIHByZXR0eSBvciBzbWFsbCByZXN1bHRzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtGb3JtYXRTbWFydE9wdGlvbnN9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTbWFydChjb2RlLCBuZXh0LCBvcHRpb25zKSB7XG4gIGxldCBudW1lcmljID0gdG9IZXhhZGVjaW1hbChjb2RlLCBuZXh0LCBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMpXG4gIC8qKiBAdHlwZSB7c3RyaW5nfHVuZGVmaW5lZH0gKi9cbiAgbGV0IG5hbWVkXG5cbiAgaWYgKG9wdGlvbnMudXNlTmFtZWRSZWZlcmVuY2VzIHx8IG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSB7XG4gICAgbmFtZWQgPSB0b05hbWVkKFxuICAgICAgY29kZSxcbiAgICAgIG5leHQsXG4gICAgICBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMsXG4gICAgICBvcHRpb25zLmF0dHJpYnV0ZVxuICAgIClcbiAgfVxuXG4gIC8vIFVzZSB0aGUgc2hvcnRlc3QgbnVtZXJpYyByZWZlcmVuY2Ugd2hlbiByZXF1ZXN0ZWQuXG4gIC8vIEEgc2ltcGxlIGFsZ29yaXRobSB3b3VsZCB1c2UgZGVjaW1hbCBmb3IgYWxsIGNvZGUgcG9pbnRzIHVuZGVyIDEwMCwgYXNcbiAgLy8gdGhvc2UgYXJlIHNob3J0ZXIgdGhhbiBoZXhhZGVjaW1hbDpcbiAgLy9cbiAgLy8gKiBgJiM5OTtgIHZzIGAmI3g2MztgIChkZWNpbWFsIHNob3J0ZXIpXG4gIC8vICogYCYjMTAwO2AgdnMgYCYjeDY0O2AgKGVxdWFsKVxuICAvL1xuICAvLyBIb3dldmVyLCBiZWNhdXNlIHdlIHRha2UgYG5leHRgIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIGBvbWl0YCBpcyB1c2VkLFxuICAvLyBBbmQgaXQgd291bGQgYmUgcG9zc2libGUgdGhhdCBkZWNpbWFscyBhcmUgc2hvcnRlciBvbiBiaWdnZXIgdmFsdWVzIGFzXG4gIC8vIHdlbGwgaWYgYG5leHRgIGlzIGhleGFkZWNpbWFsIGJ1dCBub3QgZGVjaW1hbCwgd2UgaW5zdGVhZCBjb21wYXJlIGJvdGguXG4gIGlmIChcbiAgICAob3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMgfHwgIW5hbWVkKSAmJlxuICAgIG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzXG4gICkge1xuICAgIGNvbnN0IGRlY2ltYWwgPSB0b0RlY2ltYWwoY29kZSwgbmV4dCwgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zKVxuXG4gICAgaWYgKGRlY2ltYWwubGVuZ3RoIDwgbnVtZXJpYy5sZW5ndGgpIHtcbiAgICAgIG51bWVyaWMgPSBkZWNpbWFsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5hbWVkICYmXG4gICAgKCFvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcyB8fCBuYW1lZC5sZW5ndGggPCBudW1lcmljLmxlbmd0aClcbiAgICA/IG5hbWVkXG4gICAgOiBudW1lcmljXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NvcmUuanMnKS5Db3JlT3B0aW9ucyAmIGltcG9ydCgnLi91dGlsL2Zvcm1hdC1zbWFydC5qcycpLkZvcm1hdFNtYXJ0T3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jb3JlLmpzJykuQ29yZU9wdGlvbnN9IExpZ2h0T3B0aW9uc1xuICovXG5cbmltcG9ydCB7Y29yZX0gZnJvbSAnLi9jb3JlLmpzJ1xuaW1wb3J0IHtmb3JtYXRTbWFydH0gZnJvbSAnLi91dGlsL2Zvcm1hdC1zbWFydC5qcydcbmltcG9ydCB7Zm9ybWF0QmFzaWN9IGZyb20gJy4vdXRpbC9mb3JtYXQtYmFzaWMuanMnXG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBlbmNvZGUuXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzKHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBjb3JlKHZhbHVlLCBPYmplY3QuYXNzaWduKHtmb3JtYXQ6IGZvcm1hdFNtYXJ0fSwgb3B0aW9ucykpXG59XG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgIGFzIGhleGFkZWNpbWFscy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZW5jb2RlLlxuICogQHBhcmFtIHtMaWdodE9wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzTGlnaHQodmFsdWUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNvcmUodmFsdWUsIE9iamVjdC5hc3NpZ24oe2Zvcm1hdDogZm9ybWF0QmFzaWN9LCBvcHRpb25zKSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Db21tZW50fSBDb21tZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGNvbW1lbnQuXG4gKlxuICogQHBhcmFtIHtDb21tZW50fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8xXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMlxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWVudChub2RlLCBfMSwgXzIsIHN0YXRlKSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2NvbW1lbnRzPlxuICByZXR1cm4gc3RhdGUuc2V0dGluZ3MuYm9ndXNDb21tZW50c1xuICAgID8gJzw/JyArXG4gICAgICAgIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICAgIG5vZGUudmFsdWUsXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge3N1YnNldDogWyc+J119KVxuICAgICAgICApICtcbiAgICAgICAgJz4nXG4gICAgOiAnPCEtLScgKyBub2RlLnZhbHVlLnJlcGxhY2UoL14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZywgZW5jb2RlKSArICctLT4nXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICAgKi9cbiAgZnVuY3Rpb24gZW5jb2RlKCQwKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgJDAsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIHN1YnNldDogWyc8JywgJz4nXVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Eb2N0eXBlfSBEb2N0eXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBjb2RlIHNlZSByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgZG9jdHlwZS5cbiAqXG4gKiBAcGFyYW0ge0RvY3R5cGV9IF8xXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8yXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfM1xuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG9jdHlwZShfMSwgXzIsIF8zLCBzdGF0ZSkge1xuICByZXR1cm4gKFxuICAgICc8IScgK1xuICAgIChzdGF0ZS5zZXR0aW5ncy51cHBlckRvY3R5cGUgPyAnRE9DVFlQRScgOiAnZG9jdHlwZScpICtcbiAgICAoc3RhdGUuc2V0dGluZ3MudGlnaHREb2N0eXBlID8gJycgOiAnICcpICtcbiAgICAnaHRtbD4nXG4gIClcbn1cbiIsICIvKipcbiAqIENvdW50IGhvdyBvZnRlbiBhIGNoYXJhY3RlciAob3Igc3Vic3RyaW5nKSBpcyB1c2VkIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcmFjdGVyXG4gKiAgIENoYXJhY3RlciAob3Igc3Vic3RyaW5nKSB0byBsb29rIGZvci5cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqICAgTnVtYmVyIG9mIHRpbWVzIGBjaGFyYWN0ZXJgIG9jY3VycmVkIGluIGB2YWx1ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjY291bnQodmFsdWUsIGNoYXJhY3Rlcikge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG5cbiAgaWYgKHR5cGVvZiBjaGFyYWN0ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgY2hhcmFjdGVyJylcbiAgfVxuXG4gIGxldCBjb3VudCA9IDBcbiAgbGV0IGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyKVxuXG4gIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICBjb3VudCsrXG4gICAgaW5kZXggPSBzb3VyY2UuaW5kZXhPZihjaGFyYWN0ZXIsIGluZGV4ICsgY2hhcmFjdGVyLmxlbmd0aClcbiAgfVxuXG4gIHJldHVybiBjb3VudFxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICovXG5cbi8vIEhUTUwgd2hpdGVzcGFjZSBleHByZXNzaW9uLlxuLy8gU2VlIDxodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWktd2hpdGVzcGFjZT4uXG5jb25zdCByZSA9IC9bIFxcdFxcblxcZlxccl0vZ1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyAqaW50ZXItZWxlbWVudCB3aGl0ZXNwYWNlKi5cbiAqXG4gKiBAcGFyYW0ge05vZGVzIHwgc3RyaW5nfSB0aGluZ1xuICogICBUaGluZyB0byBjaGVjayAoYE5vZGVgIG9yIGBzdHJpbmdgKS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBgdmFsdWVgIGlzIGludGVyLWVsZW1lbnQgd2hpdGVzcGFjZSAoYGJvb2xlYW5gKTogY29uc2lzdGluZyBvZlxuICogICB6ZXJvIG9yIG1vcmUgb2Ygc3BhY2UsIHRhYiAoYFxcdGApLCBsaW5lIGZlZWQgKGBcXG5gKSwgY2FycmlhZ2UgcmV0dXJuXG4gKiAgIChgXFxyYCksIG9yIGZvcm0gZmVlZCAoYFxcZmApOyBpZiBhIG5vZGUgaXMgcGFzc2VkIGl0IG11c3QgYmUgYSBgVGV4dGAgbm9kZSxcbiAqICAgd2hvc2UgYHZhbHVlYCBmaWVsZCBpcyBjaGVja2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2hpdGVzcGFjZSh0aGluZykge1xuICByZXR1cm4gdHlwZW9mIHRoaW5nID09PSAnb2JqZWN0J1xuICAgID8gdGhpbmcudHlwZSA9PT0gJ3RleHQnXG4gICAgICA/IGVtcHR5KHRoaW5nLnZhbHVlKVxuICAgICAgOiBmYWxzZVxuICAgIDogZW1wdHkodGhpbmcpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UocmUsICcnKSA9PT0gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcblxuZXhwb3J0IGNvbnN0IHNpYmxpbmdBZnRlciA9IHNpYmxpbmdzKDEpXG5leHBvcnQgY29uc3Qgc2libGluZ0JlZm9yZSA9IHNpYmxpbmdzKC0xKVxuXG4vKiogQHR5cGUge0FycmF5PFJvb3RDb250ZW50Pn0gKi9cbmNvbnN0IGVtcHR5Q2hpbGRyZW4gPSBbXVxuXG4vKipcbiAqIEZhY3RvcnkgdG8gY2hlY2sgc2libGluZ3MgaW4gYSBkaXJlY3Rpb24uXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGluY3JlbWVudFxuICovXG5mdW5jdGlvbiBzaWJsaW5ncyhpbmNyZW1lbnQpIHtcbiAgcmV0dXJuIHNpYmxpbmdcblxuICAvKipcbiAgICogRmluZCBhcHBsaWNhYmxlIHNpYmxpbmdzIGluIGEgZGlyZWN0aW9uLlxuICAgKlxuICAgKiBAdGVtcGxhdGUge1BhcmVudHN9IFBhcmVudFxuICAgKiAgIFBhcmVudCB0eXBlLlxuICAgKiBAcGFyYW0ge1BhcmVudCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqICAgUGFyZW50LlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAgICogICBJbmRleCBvZiBjaGlsZCBpbiBgcGFyZW50YC5cbiAgICogQHBhcmFtIHtib29sZWFuIHwgdW5kZWZpbmVkfSBbaW5jbHVkZVdoaXRlc3BhY2U9ZmFsc2VdXG4gICAqICAgV2hldGhlciB0byBpbmNsdWRlIHdoaXRlc3BhY2UgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICAgKiBAcmV0dXJucyB7UGFyZW50IGV4dGVuZHMge2NoaWxkcmVuOiBBcnJheTxpbmZlciBDaGlsZD59ID8gQ2hpbGQgfCB1bmRlZmluZWQgOiBuZXZlcn1cbiAgICogICBDaGlsZCBvZiBwYXJlbnQuXG4gICAqL1xuICBmdW5jdGlvbiBzaWJsaW5nKHBhcmVudCwgaW5kZXgsIGluY2x1ZGVXaGl0ZXNwYWNlKSB7XG4gICAgY29uc3Qgc2libGluZ3MgPSBwYXJlbnQgPyBwYXJlbnQuY2hpbGRyZW4gOiBlbXB0eUNoaWxkcmVuXG4gICAgbGV0IG9mZnNldCA9IChpbmRleCB8fCAwKSArIGluY3JlbWVudFxuICAgIGxldCBuZXh0ID0gc2libGluZ3Nbb2Zmc2V0XVxuXG4gICAgaWYgKCFpbmNsdWRlV2hpdGVzcGFjZSkge1xuICAgICAgd2hpbGUgKG5leHQgJiYgd2hpdGVzcGFjZShuZXh0KSkge1xuICAgICAgICBvZmZzZXQgKz0gaW5jcmVtZW50XG4gICAgICAgIG5leHQgPSBzaWJsaW5nc1tvZmZzZXRdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogaXRcdTIwMTlzIGEgY29ycmVjdCBjaGlsZC5cbiAgICByZXR1cm4gbmV4dFxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBPbWl0SGFuZGxlXG4gKiAgIENoZWNrIGlmIGEgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKiAgIEVsZW1lbnQgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcuXG4gKlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogRmFjdG9yeSB0byBjaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC5cbiAqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIE9taXRIYW5kbGU+fSBoYW5kbGVyc1xuICogICBPbWlzc2lvbiBoYW5kbGVycywgd2hlcmUgZWFjaCBrZXkgaXMgYSB0YWcgbmFtZSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gKiAgIGNvcnJlc3BvbmRpbmcgaGFuZGxlci5cbiAqIEByZXR1cm5zIHtPbWl0SGFuZGxlfVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcgb2YgYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9taXNzaW9uKGhhbmRsZXJzKSB7XG4gIHJldHVybiBvbWl0XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgZ2l2ZW4gbm9kZSBjYW4gaGF2ZSBhIHRhZyBvbWl0dGVkLlxuICAgKlxuICAgKiBAdHlwZSB7T21pdEhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9taXQobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBvd24uY2FsbChoYW5kbGVycywgbm9kZS50YWdOYW1lKSAmJlxuICAgICAgaGFuZGxlcnNbbm9kZS50YWdOYW1lXShub2RlLCBpbmRleCwgcGFyZW50KVxuICAgIClcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcbmltcG9ydCB7c2libGluZ0FmdGVyfSBmcm9tICcuL3V0aWwvc2libGluZ3MuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3QgY2xvc2luZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY2FwdGlvbjogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGNvbGdyb3VwOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgZGQsXG4gIGR0LFxuICBoZWFkOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgaHRtbCxcbiAgbGksXG4gIG9wdGdyb3VwLFxuICBvcHRpb24sXG4gIHAsXG4gIHJwOiBydWJ5RWxlbWVudCxcbiAgcnQ6IHJ1YnlFbGVtZW50LFxuICB0Ym9keSxcbiAgdGQ6IGNlbGxzLFxuICB0Zm9vdCxcbiAgdGg6IGNlbGxzLFxuICB0aGVhZCxcbiAgdHJcbn0pXG5cbi8qKlxuICogTWFjcm8gZm9yIGA8L2hlYWQ+YCwgYDwvY29sZ3JvdXA+YCwgYW5kIGA8L2NhcHRpb24+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleCwgdHJ1ZSlcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgIT09ICdjb21tZW50JyAmJlxuICAgICAgIShuZXh0LnR5cGUgPT09ICd0ZXh0JyAmJiB3aGl0ZXNwYWNlKG5leHQudmFsdWUuY2hhckF0KDApKSkpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvaHRtbD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGh0bWwoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCBuZXh0LnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9ib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gYm9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3A+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBwKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gbmV4dFxuICAgID8gbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2FkZHJlc3MnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYXJ0aWNsZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdhc2lkZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdibG9ja3F1b3RlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RldGFpbHMnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGl2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RsJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZWxkc2V0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZ2NhcHRpb24nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmlndXJlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Zvb3RlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmb3JtJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gxJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g1JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hlYWRlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoZ3JvdXAnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaHInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbWFpbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdtZW51JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ25hdicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdvbCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdwJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3ByZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdzZWN0aW9uJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3RhYmxlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3VsJylcbiAgICA6ICFwYXJlbnQgfHxcbiAgICAgICAgLy8gQ29uZnVzaW5nIHBhcmVudC5cbiAgICAgICAgIShcbiAgICAgICAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgICAgKHBhcmVudC50YWdOYW1lID09PSAnYScgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnYXVkaW8nIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2RlbCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnaW5zJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdtYXAnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ25vc2NyaXB0JyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICd2aWRlbycpXG4gICAgICAgIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvbGk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBsaShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdsaScpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2R0PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gZHQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBCb29sZWFuKFxuICAgIG5leHQgJiZcbiAgICAgIG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJylcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9kZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGRkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvcnQ+YCBvciBgPC9ycD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHJ1YnlFbGVtZW50KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAncnAnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3J0JykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvb3B0Z3JvdXA+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBvcHRncm91cChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdvcHRncm91cCcpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L29wdGlvbj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIG9wdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ29wdGlvbicgfHwgbmV4dC50YWdOYW1lID09PSAnb3B0Z3JvdXAnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90aGVhZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRoZWFkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gQm9vbGVhbihcbiAgICBuZXh0ICYmXG4gICAgICBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0Ym9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3Rmb290PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGZvb3QoXywgaW5kZXgsIHBhcmVudCkge1xuICByZXR1cm4gIXNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90cj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRyKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ3RyJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGQ+YCBvciBgPC90aD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGNlbGxzKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3RoJykpXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5pbXBvcnQge3NpYmxpbmdBZnRlciwgc2libGluZ0JlZm9yZX0gZnJvbSAnLi91dGlsL3NpYmxpbmdzLmpzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuL2Nsb3NpbmcuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3Qgb3BlbmluZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY29sZ3JvdXAsXG4gIGhlYWQsXG4gIGh0bWwsXG4gIHRib2R5XG59KVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGh0bWw+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaHRtbChub2RlKSB7XG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEpXG4gIHJldHVybiAhaGVhZCB8fCBoZWFkLnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGhlYWQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaGVhZChub2RlKSB7XG4gIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlblxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHNlZW4gPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbltpbmRleF1cbiAgICBpZiAoXG4gICAgICBjaGlsZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChjaGlsZC50YWdOYW1lID09PSAndGl0bGUnIHx8IGNoaWxkLnRhZ05hbWUgPT09ICdiYXNlJylcbiAgICApIHtcbiAgICAgIGlmIChzZWVuLmluY2x1ZGVzKGNoaWxkLnRhZ05hbWUpKSByZXR1cm4gZmFsc2VcbiAgICAgIHNlZW4ucHVzaChjaGlsZC50YWdOYW1lKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbi5sZW5ndGggPiAwXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBib2R5KG5vZGUpIHtcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICByZXR1cm4gKFxuICAgICFoZWFkIHx8XG4gICAgKGhlYWQudHlwZSAhPT0gJ2NvbW1lbnQnICYmXG4gICAgICAhKGhlYWQudHlwZSA9PT0gJ3RleHQnICYmIHdoaXRlc3BhY2UoaGVhZC52YWx1ZS5jaGFyQXQoMCkpKSAmJlxuICAgICAgIShcbiAgICAgICAgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKGhlYWQudGFnTmFtZSA9PT0gJ21ldGEnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnbGluaycgfHxcbiAgICAgICAgICBoZWFkLnRhZ05hbWUgPT09ICdzY3JpcHQnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnc3R5bGUnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAndGVtcGxhdGUnKVxuICAgICAgKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGNvbGdyb3VwPmAuXG4gKiBUaGUgc3BlYyBkZXNjcmliZXMgc29tZSBsb2dpYyBmb3IgdGhlIG9wZW5pbmcgdGFnLCBidXQgaXRcdTIwMTlzIGVhc2llciB0b1xuICogaW1wbGVtZW50IGluIHRoZSBjbG9zaW5nIHRhZywgdG8gdGhlIHNhbWUgZWZmZWN0LCBzbyB3ZSBoYW5kbGUgaXQgdGhlcmVcbiAqIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gY29sZ3JvdXAobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICAvLyBQcmV2aW91cyBjb2xncm91cCB3YXMgYWxyZWFkeSBvbWl0dGVkLlxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcHJldmlvdXMgJiZcbiAgICBwcmV2aW91cy50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICBwcmV2aW91cy50YWdOYW1lID09PSAnY29sZ3JvdXAnICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICdjb2wnKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPHRib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGJvZHkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSlcblxuICAvLyBQcmV2aW91cyB0YWJsZSBzZWN0aW9uIHdhcyBhbHJlYWR5IG9taXR0ZWQuXG4gIGlmIChcbiAgICBwYXJlbnQgJiZcbiAgICBwcmV2aW91cyAmJlxuICAgIHByZXZpb3VzLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIChwcmV2aW91cy50YWdOYW1lID09PSAndGhlYWQnIHx8IHByZXZpb3VzLnRhZ05hbWUgPT09ICd0Ym9keScpICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICd0cicpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge2Njb3VudH0gZnJvbSAnY2NvdW50J1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtmaW5kLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgc3BhY2VzfSBmcm9tICdzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9jbG9zaW5nLmpzJ1xuaW1wb3J0IHtvcGVuaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9vcGVuaW5nLmpzJ1xuXG4vKipcbiAqIE1hcHMgb2Ygc3Vic2V0cy5cbiAqXG4gKiBFYWNoIHZhbHVlIGlzIGEgbWF0cml4IG9mIHR1cGxlcy5cbiAqIFRoZSB2YWx1ZSBhdCBgMGAgY2F1c2VzIHBhcnNlIGVycm9ycywgdGhlIHZhbHVlIGF0IGAxYCBpcyB2YWxpZC5cbiAqIE9mIGJvdGgsIHRoZSB2YWx1ZSBhdCBgMGAgaXMgdW5zYWZlLCBhbmQgdGhlIHZhbHVlIGF0IGAxYCBpcyBzYWZlLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8J2RvdWJsZScgfCAnbmFtZScgfCAnc2luZ2xlJyB8ICd1bnF1b3RlZCcsIEFycmF5PFtBcnJheTxzdHJpbmc+LCBBcnJheTxzdHJpbmc+XT4+fVxuICovXG5jb25zdCBjb25zdGFudHMgPSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS1uYW1lLXN0YXRlPi5cbiAgbmFtZTogW1xuICAgIFsnXFx0XFxuXFxmXFxyICYvPT4nLnNwbGl0KCcnKSwgJ1xcdFxcblxcZlxcciBcIiZcXCcvPT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJy88PT4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCcvPD0+YCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZT4uXG4gIHVucXVvdGVkOiBbXG4gICAgWydcXHRcXG5cXGZcXHIgJj4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGU+LlxuICBzaW5nbGU6IFtcbiAgICBbXCImJ1wiLnNwbGl0KCcnKSwgJ1wiJlxcJ2AnLnNwbGl0KCcnKV0sXG4gICAgW1wiXFwwJidcIi5zcGxpdCgnJyksICdcXDBcIiZcXCdgJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGU+LlxuICBkb3VibGU6IFtcbiAgICBbJ1wiJicuc3BsaXQoJycpLCAnXCImXFwnYCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFwiJicuc3BsaXQoJycpLCAnXFwwXCImXFwnYCcuc3BsaXQoJycpXVxuICBdXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWxlbWVudChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSkge1xuICBjb25zdCBzY2hlbWEgPSBzdGF0ZS5zY2hlbWFcbiAgY29uc3Qgb21pdCA9IHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgPyBmYWxzZSA6IHN0YXRlLnNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3NcbiAgbGV0IHNlbGZDbG9zaW5nID1cbiAgICBzY2hlbWEuc3BhY2UgPT09ICdzdmcnXG4gICAgICA/IHN0YXRlLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50c1xuICAgICAgOiBzdGF0ZS5zZXR0aW5ncy52b2lkcy5pbmNsdWRlcyhub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSlcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBwYXJ0cyA9IFtdXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgbGFzdFxuXG4gIGlmIChzY2hlbWEuc3BhY2UgPT09ICdodG1sJyAmJiBub2RlLnRhZ05hbWUgPT09ICdzdmcnKSB7XG4gICAgc3RhdGUuc2NoZW1hID0gc3ZnXG4gIH1cblxuICBjb25zdCBhdHRycyA9IHNlcmlhbGl6ZUF0dHJpYnV0ZXMoc3RhdGUsIG5vZGUucHJvcGVydGllcylcblxuICBjb25zdCBjb250ZW50ID0gc3RhdGUuYWxsKFxuICAgIHNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnICYmIG5vZGUudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJyA/IG5vZGUuY29udGVudCA6IG5vZGVcbiAgKVxuXG4gIHN0YXRlLnNjaGVtYSA9IHNjaGVtYVxuXG4gIC8vIElmIHRoZSBub2RlIGlzIGNhdGVnb3Jpc2VkIGFzIHZvaWQsIGJ1dCBpdCBoYXMgY2hpbGRyZW4sIHJlbW92ZSB0aGVcbiAgLy8gY2F0ZWdvcmlzYXRpb24uXG4gIC8vIFRoaXMgZW5hYmxlcyBmb3IgZXhhbXBsZSBgbWVudWl0ZW1gcywgd2hpY2ggYXJlIHZvaWQgaW4gVzNDIEhUTUwgYnV0IG5vdFxuICAvLyB2b2lkIGluIFdIQVRXRyBIVE1MLCB0byBiZSBzdHJpbmdpZmllZCBwcm9wZXJseS5cbiAgLy8gTm90ZTogYG1lbnVpdGVtYCBoYXMgc2luY2UgYmVlbiByZW1vdmVkIGZyb20gdGhlIEhUTUwgc3BlYywgYW5kIHNvIGlzIG5vXG4gIC8vIGxvbmdlciB2b2lkLlxuICBpZiAoY29udGVudCkgc2VsZkNsb3NpbmcgPSBmYWxzZVxuXG4gIGlmIChhdHRycyB8fCAhb21pdCB8fCAhb3BlbmluZyhub2RlLCBpbmRleCwgcGFyZW50KSkge1xuICAgIHBhcnRzLnB1c2goJzwnLCBub2RlLnRhZ05hbWUsIGF0dHJzID8gJyAnICsgYXR0cnMgOiAnJylcblxuICAgIGlmIChcbiAgICAgIHNlbGZDbG9zaW5nICYmXG4gICAgICAoc2NoZW1hLnNwYWNlID09PSAnc3ZnJyB8fCBzdGF0ZS5zZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nKVxuICAgICkge1xuICAgICAgbGFzdCA9IGF0dHJzLmNoYXJBdChhdHRycy5sZW5ndGggLSAxKVxuICAgICAgaWYgKFxuICAgICAgICAhc3RhdGUuc2V0dGluZ3MudGlnaHRTZWxmQ2xvc2luZyB8fFxuICAgICAgICBsYXN0ID09PSAnLycgfHxcbiAgICAgICAgKGxhc3QgJiYgbGFzdCAhPT0gJ1wiJyAmJiBsYXN0ICE9PSBcIidcIilcbiAgICAgICkge1xuICAgICAgICBwYXJ0cy5wdXNoKCcgJylcbiAgICAgIH1cblxuICAgICAgcGFydHMucHVzaCgnLycpXG4gICAgfVxuXG4gICAgcGFydHMucHVzaCgnPicpXG4gIH1cblxuICBwYXJ0cy5wdXNoKGNvbnRlbnQpXG5cbiAgaWYgKCFzZWxmQ2xvc2luZyAmJiAoIW9taXQgfHwgIWNsb3Npbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpKSB7XG4gICAgcGFydHMucHVzaCgnPC8nICsgbm9kZS50YWdOYW1lICsgJz4nKVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7UHJvcGVydGllcyB8IG51bGwgfCB1bmRlZmluZWR9IHByb3BzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVBdHRyaWJ1dGVzKHN0YXRlLCBwcm9wcykge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHZhbHVlcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQga2V5XG5cbiAgaWYgKHByb3BzKSB7XG4gICAgZm9yIChrZXkgaW4gcHJvcHMpIHtcbiAgICAgIGlmIChwcm9wc1trZXldICE9PSBudWxsICYmIHByb3BzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHNlcmlhbGl6ZUF0dHJpYnV0ZShzdGF0ZSwga2V5LCBwcm9wc1trZXldKVxuICAgICAgICBpZiAodmFsdWUpIHZhbHVlcy5wdXNoKHZhbHVlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgIGNvbnN0IGxhc3QgPSBzdGF0ZS5zZXR0aW5ncy50aWdodEF0dHJpYnV0ZXNcbiAgICAgID8gdmFsdWVzW2luZGV4XS5jaGFyQXQodmFsdWVzW2luZGV4XS5sZW5ndGggLSAxKVxuICAgICAgOiB1bmRlZmluZWRcblxuICAgIC8vIEluIHRpZ2h0IG1vZGUsIGRvblx1MjAxOXQgYWRkIGEgc3BhY2UgYWZ0ZXIgcXVvdGVkIGF0dHJpYnV0ZXMuXG4gICAgaWYgKGluZGV4ICE9PSB2YWx1ZXMubGVuZ3RoIC0gMSAmJiBsYXN0ICE9PSAnXCInICYmIGxhc3QgIT09IFwiJ1wiKSB7XG4gICAgICB2YWx1ZXNbaW5kZXhdICs9ICcgJ1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZXMuam9pbignJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQHBhcmFtIHtQcm9wZXJ0aWVzW2tleW9mIFByb3BlcnRpZXNdfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlKHN0YXRlLCBrZXksIHZhbHVlKSB7XG4gIGNvbnN0IGluZm8gPSBmaW5kKHN0YXRlLnNjaGVtYSwga2V5KVxuICBjb25zdCB4ID1cbiAgICBzdGF0ZS5zZXR0aW5ncy5hbGxvd1BhcnNlRXJyb3JzICYmIHN0YXRlLnNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnID8gMCA6IDFcbiAgY29uc3QgeSA9IHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycyA/IDAgOiAxXG4gIGxldCBxdW90ZSA9IHN0YXRlLnF1b3RlXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgaWYgKGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4gJiYgKHZhbHVlID09PSBpbmZvLmF0dHJpYnV0ZSB8fCB2YWx1ZSA9PT0gJycpKSB7XG4gICAgdmFsdWUgPSB0cnVlXG4gIH0gZWxzZSBpZiAoXG4gICAgaW5mby5ib29sZWFuIHx8XG4gICAgKGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4gJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJylcbiAgKSB7XG4gICAgdmFsdWUgPSBCb29sZWFuKHZhbHVlKVxuICB9XG5cbiAgaWYgKFxuICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIHZhbHVlID09PSBmYWxzZSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIE51bWJlci5pc05hTih2YWx1ZSkpXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgY29uc3QgbmFtZSA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgIGluZm8uYXR0cmlidXRlLFxuICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgIC8vIEFsd2F5cyBlbmNvZGUgd2l0aG91dCBwYXJzZSBlcnJvcnMgaW4gbm9uLUhUTUwuXG4gICAgICBzdWJzZXQ6IGNvbnN0YW50cy5uYW1lW3hdW3ldXG4gICAgfSlcbiAgKVxuXG4gIC8vIE5vIHZhbHVlLlxuICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgb25seSBvbmUgYm9vbGVhbiBwcm9wZXJ0eSBpbiBTVkc6IGBbZG93bmxvYWRdYCBvblxuICAvLyBgPGE+YC5cbiAgLy8gVGhpcyBwcm9wZXJ0eSBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gYnJvd3NlcnMgKEZpcmVmb3gsIFNhZmFyaSwgQ2hyb21lKSxcbiAgLy8gc28gSSBjYW5cdTIwMTl0IHRlc3QgaWYgZHJvcHBpbmcgdGhlIHZhbHVlIHdvcmtzLlxuICAvLyBCdXQgSSBhc3N1bWUgdGhhdCBpdCBzaG91bGQ6XG4gIC8vXG4gIC8vIGBgYGh0bWxcbiAgLy8gPCFkb2N0eXBlIGh0bWw+XG4gIC8vIDxzdmcgdmlld0JveD1cIjAgMCAxMDAgMTAwXCI+XG4gIC8vICAgPGEgaHJlZj1odHRwczovL2V4YW1wbGUuY29tIGRvd25sb2FkPlxuICAvLyAgICAgPGNpcmNsZSBjeD01MCBjeT00MCByPTM1IC8+XG4gIC8vICAgPC9hPlxuICAvLyA8L3N2Zz5cbiAgLy8gYGBgXG4gIC8vXG4gIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vcHJvcGVydHktaW5mb3JtYXRpb24vYmxvYi9tYWluL2xpYi9zdmcuanM+XG4gIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG5hbWVcblxuICAvLyBgc3BhY2VzYCBkb2Vzblx1MjAxOXQgYWNjZXB0IGEgc2Vjb25kIGFyZ3VtZW50LCBidXQgaXRcdTIwMTlzIGdpdmVuIGhlcmUganVzdCB0b1xuICAvLyBrZWVwIHRoZSBjb2RlIGNsZWFuZXIuXG4gIHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICA/IChpbmZvLmNvbW1hU2VwYXJhdGVkID8gY29tbWFzIDogc3BhY2VzKSh2YWx1ZSwge1xuICAgICAgICBwYWRMZWZ0OiAhc3RhdGUuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzXG4gICAgICB9KVxuICAgIDogU3RyaW5nKHZhbHVlKVxuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyAmJiAhdmFsdWUpIHJldHVybiBuYW1lXG5cbiAgLy8gQ2hlY2sgdW5xdW90ZWQgdmFsdWUuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCkge1xuICAgIHJlc3VsdCA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgdmFsdWUsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIGF0dHJpYnV0ZTogdHJ1ZSxcbiAgICAgICAgc3Vic2V0OiBjb25zdGFudHMudW5xdW90ZWRbeF1beV1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLy8gSWYgd2UgZG9uXHUyMDE5dCB3YW50IHVucXVvdGVkLCBvciBpZiBgdmFsdWVgIGNvbnRhaW5zIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoZW5cbiAgLy8gdW5xdW90ZWRcdTIwMjZcbiAgaWYgKHJlc3VsdCAhPT0gdmFsdWUpIHtcbiAgICAvLyBJZiB0aGUgYWx0ZXJuYXRpdmUgaXMgbGVzcyBjb21tb24gdGhhbiBgcXVvdGVgLCBzd2l0Y2guXG4gICAgaWYgKFxuICAgICAgc3RhdGUuc2V0dGluZ3MucXVvdGVTbWFydCAmJlxuICAgICAgY2NvdW50KHZhbHVlLCBxdW90ZSkgPiBjY291bnQodmFsdWUsIHN0YXRlLmFsdGVybmF0aXZlKVxuICAgICkge1xuICAgICAgcXVvdGUgPSBzdGF0ZS5hbHRlcm5hdGl2ZVxuICAgIH1cblxuICAgIHJlc3VsdCA9XG4gICAgICBxdW90ZSArXG4gICAgICBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgICAvLyBBbHdheXMgZW5jb2RlIHdpdGhvdXQgcGFyc2UgZXJyb3JzIGluIG5vbi1IVE1MLlxuICAgICAgICAgIHN1YnNldDogKHF1b3RlID09PSBcIidcIiA/IGNvbnN0YW50cy5zaW5nbGUgOiBjb25zdGFudHMuZG91YmxlKVt4XVt5XSxcbiAgICAgICAgICBhdHRyaWJ1dGU6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICkgK1xuICAgICAgcXVvdGVcbiAgfVxuXG4gIC8vIERvblx1MjAxOXQgYWRkIGEgYD1gIGZvciB1bnF1b3RlZCBlbXB0aWVzLlxuICByZXR1cm4gbmFtZSArIChyZXN1bHQgPyAnPScgKyByZXN1bHQgOiByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlRleHR9IFRleHRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLWhhc3QnKS5SYXd9IFJhd1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHRleHQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1JhdyB8IFRleHR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gX1xuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXh0KG5vZGUsIF8sIHBhcmVudCwgc3RhdGUpIHtcbiAgLy8gQ2hlY2sgaWYgY29udGVudCBvZiBgbm9kZWAgc2hvdWxkIGJlIGVzY2FwZWQuXG4gIHJldHVybiBwYXJlbnQgJiZcbiAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgKHBhcmVudC50YWdOYW1lID09PSAnc2NyaXB0JyB8fCBwYXJlbnQudGFnTmFtZSA9PT0gJ3N0eWxlJylcbiAgICA/IG5vZGUudmFsdWVcbiAgICA6IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICBub2RlLnZhbHVlLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgICAgc3Vic2V0OiBbJzwnLCAnJiddXG4gICAgICAgIH0pXG4gICAgICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8taGFzdCcpLlJhd30gUmF3XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3RleHR9IGZyb20gJy4vdGV4dC5qcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSByYXcgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1Jhd30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXcobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzSHRtbFxuICAgID8gbm9kZS52YWx1ZVxuICAgIDogdGV4dChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBjb2RlIHNlZSByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgcm9vdC5cbiAqXG4gKiBAcGFyYW0ge1Jvb3R9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gXzFcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8yXG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb290KG5vZGUsIF8xLCBfMiwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLmFsbChub2RlKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7endpdGNofSBmcm9tICd6d2l0Y2gnXG5pbXBvcnQge2NvbW1lbnR9IGZyb20gJy4vY29tbWVudC5qcydcbmltcG9ydCB7ZG9jdHlwZX0gZnJvbSAnLi9kb2N0eXBlLmpzJ1xuaW1wb3J0IHtlbGVtZW50fSBmcm9tICcuL2VsZW1lbnQuanMnXG5pbXBvcnQge3Jhd30gZnJvbSAnLi9yYXcuanMnXG5pbXBvcnQge3Jvb3R9IGZyb20gJy4vcm9vdC5qcydcbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuXG4vKipcbiAqIEB0eXBlIHsobm9kZTogTm9kZXMsIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsIHBhcmVudDogUGFyZW50cyB8IHVuZGVmaW5lZCwgc3RhdGU6IFN0YXRlKSA9PiBzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGUgPSB6d2l0Y2goJ3R5cGUnLCB7XG4gIGludmFsaWQsXG4gIHVua25vd24sXG4gIGhhbmRsZXJzOiB7Y29tbWVudCwgZG9jdHlwZSwgZWxlbWVudCwgcmF3LCByb290LCB0ZXh0fVxufSlcblxuLyoqXG4gKiBGYWlsIHdoZW4gYSBub24tbm9kZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqICAgVW5rbm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTmV2ZXIuXG4gKi9cbmZ1bmN0aW9uIGludmFsaWQobm9kZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vZGUsIG5vdCBgJyArIG5vZGUgKyAnYCcpXG59XG5cbi8qKlxuICogRmFpbCB3aGVuIGEgbm9kZSB3aXRoIGFuIHVua25vd24gdHlwZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVfXG4gKiAgVW5rbm93biBub2RlLlxuICogQHJldHVybnMge25ldmVyfVxuICogICBOZXZlci5cbiAqL1xuZnVuY3Rpb24gdW5rbm93bihub2RlXykge1xuICAvLyBgdHlwZWAgaXMgZ3VhcmFudGVlZCBieSBydW50aW1lIEpTLlxuICBjb25zdCBub2RlID0gLyoqIEB0eXBlIHtOb2Rlc30gKi8gKG5vZGVfKVxuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgJyArIG5vZGUudHlwZSArICdgJylcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3N0cmluZ2lmeS1lbnRpdGllcycpLk9wdGlvbnN9IFN0cmluZ2lmeUVudGl0aWVzT3B0aW9uc1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09taXQ8U3RyaW5naWZ5RW50aXRpZXNPcHRpb25zLCAnYXR0cmlidXRlJyB8ICdlc2NhcGVPbmx5JyB8ICdzdWJzZXQnPn0gQ2hhcmFjdGVyUmVmZXJlbmNlc1xuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM9ZmFsc2VdXG4gKiAgIERvIG5vdCBlbmNvZGUgc29tZSBjaGFyYWN0ZXJzIHdoaWNoIGNhdXNlIFhTUyB2dWxuZXJhYmlsaXRpZXMgaW4gb2xkZXJcbiAqICAgYnJvd3NlcnMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0h0bWw9ZmFsc2VdXG4gKiAgIEFsbG93IGByYXdgIG5vZGVzIGFuZCBpbnNlcnQgdGhlbSBhcyByYXcgSFRNTCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBXaGVuIGBmYWxzZWAsIGBSYXdgIG5vZGVzIGFyZSBlbmNvZGVkLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd1BhcnNlRXJyb3JzPWZhbHNlXVxuICogICBEbyBub3QgZW5jb2RlIGNoYXJhY3RlcnMgd2hpY2ggY2F1c2UgcGFyc2UgZXJyb3JzIChldmVuIHRob3VnaCB0aGV5IHdvcmspLFxuICogICB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtib2d1c0NvbW1lbnRzPWZhbHNlXVxuICogICBVc2UgXHUyMDFDYm9ndXMgY29tbWVudHNcdTIwMUQgaW5zdGVhZCBvZiBjb21tZW50cyB0byBzYXZlIGJ5ZXM6IGA8P2NoYXJsaWU+YFxuICogICBpbnN0ZWFkIG9mIGA8IS0tY2hhcmxpZS0tPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge0NoYXJhY3RlclJlZmVyZW5jZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2hhcmFjdGVyUmVmZXJlbmNlc11cbiAqICAgQ29uZmlndXJlIGhvdyB0byBzZXJpYWxpemUgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9zZUVtcHR5RWxlbWVudHM9ZmFsc2VdXG4gKiAgIENsb3NlIFNWRyBlbGVtZW50cyB3aXRob3V0IGFueSBjb250ZW50IHdpdGggc2xhc2ggKGAvYCkgb24gdGhlIG9wZW5pbmcgdGFnXG4gKiAgIGluc3RlYWQgb2YgYW4gZW5kIHRhZzogYDxjaXJjbGUgLz5gIGluc3RlYWQgb2YgYDxjaXJjbGU+PC9jaXJjbGU+YFxuICogICAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBTZWUgYHRpZ2h0U2VsZkNsb3NpbmdgIHRvIGNvbnRyb2wgd2hldGhlciBhIHNwYWNlIGlzIHVzZWQgYmVmb3JlIHRoZVxuICogICBzbGFzaC5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBIVE1MIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Nsb3NlU2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIENsb3NlIHNlbGYtY2xvc2luZyBub2RlcyB3aXRoIGFuIGV4dHJhIHNsYXNoIChgL2ApOiBgPGltZyAvPmAgaW5zdGVhZCBvZlxuICogICBgPGltZz5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFNlZSBgdGlnaHRTZWxmQ2xvc2luZ2AgdG8gY29udHJvbCB3aGV0aGVyIGEgc3BhY2UgaXMgdXNlZCBiZWZvcmUgdGhlXG4gKiAgIHNsYXNoLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2xsYXBzZUVtcHR5QXR0cmlidXRlcz1mYWxzZV1cbiAqICAgQ29sbGFwc2UgZW1wdHkgYXR0cmlidXRlczogZ2V0IGBjbGFzc2AgaW5zdGVhZCBvZiBgY2xhc3M9XCJcImAgKGRlZmF1bHQ6XG4gKiAgIGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBib29sZWFuIGF0dHJpYnV0ZXMgKHN1Y2ggYXMgYGhpZGRlbmApIGFyZSBhbHdheXMgY29sbGFwc2VkLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29taXRPcHRpb25hbFRhZ3M9ZmFsc2VdXG4gKiAgIE9taXQgb3B0aW9uYWwgb3BlbmluZyBhbmQgY2xvc2luZyB0YWdzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEZvciBleGFtcGxlLCBpbiBgPG9sPjxsaT5vbmU8L2xpPjxsaT50d288L2xpPjwvb2w+YCwgYm90aCBgPC9saT5gIGNsb3NpbmdcbiAqICAgdGFncyBjYW4gYmUgb21pdHRlZC5cbiAqICAgVGhlIGZpcnN0IGJlY2F1c2UgaXRcdTIwMTlzIGZvbGxvd2VkIGJ5IGFub3RoZXIgYGxpYCwgdGhlIGxhc3QgYmVjYXVzZSBpdFx1MjAxOXNcbiAqICAgZm9sbG93ZWQgYnkgbm90aGluZy5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJlZmVyVW5xdW90ZWQ9ZmFsc2VdXG4gKiAgIExlYXZlIGF0dHJpYnV0ZXMgdW5xdW90ZWQgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbcXVvdGU9J1wiJ11cbiAqICAgUHJlZmVycmVkIHF1b3RlIHRvIHVzZSAoZGVmYXVsdDogYCdcIidgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtxdW90ZVNtYXJ0PWZhbHNlXVxuICogICBVc2UgdGhlIG90aGVyIHF1b3RlIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3BhY2U9J2h0bWwnXVxuICogICBXaGVuIGFuIGA8c3ZnPmAgZWxlbWVudCBpcyBmb3VuZCBpbiB0aGUgSFRNTCBzcGFjZSwgdGhpcyBwYWNrYWdlIGFscmVhZHlcbiAqICAgYXV0b21hdGljYWxseSBzd2l0Y2hlcyB0byBhbmQgZnJvbSB0aGUgU1ZHIHNwYWNlIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmdcbiAqICAgaXQgKGRlZmF1bHQ6IGAnaHRtbCdgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBoYXN0IGlzIG5vdCBYTUwuXG4gKiAgID4gSXQgc3VwcG9ydHMgU1ZHIGFzIGVtYmVkZGVkIGluIEhUTUwuXG4gKiAgID4gSXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZmVhdHVyZXMgYXZhaWxhYmxlIGluIFhNTC5cbiAqICAgPiBQYXNzaW5nIFNWRyBtaWdodCBicmVhayBidXQgZnJhZ21lbnRzIG9mIG1vZGVybiBTVkcgc2hvdWxkIGJlIGZpbmUuXG4gKiAgID4gVXNlIFtgeGFzdGBdW3hhc3RdIGlmIHlvdSBuZWVkIHRvIHN1cHBvcnQgU1ZHIGFzIFhNTC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodEF0dHJpYnV0ZXM9ZmFsc2VdXG4gKiAgIEpvaW4gYXR0cmlidXRlcyB0b2dldGhlciwgd2l0aG91dCB3aGl0ZXNwYWNlLCBpZiBwb3NzaWJsZTogZ2V0XG4gKiAgIGBjbGFzcz1cImEgYlwidGl0bGU9XCJjIGRcImAgaW5zdGVhZCBvZiBgY2xhc3M9XCJhIGJcIiB0aXRsZT1cImMgZFwiYCB0byBzYXZlXG4gKiAgIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM9ZmFsc2VdXG4gKiAgIEpvaW4ga25vd24gY29tbWEtc2VwYXJhdGVkIGF0dHJpYnV0ZSB2YWx1ZXMgd2l0aCBqdXN0IGEgY29tbWEgKGAsYCksXG4gKiAgIGluc3RlYWQgb2YgcGFkZGluZyB0aGVtIG9uIHRoZSByaWdodCBhcyB3ZWxsIChgLFx1MjQyMGAsIHdoZXJlIGBcdTI0MjBgIHJlcHJlc2VudHMgYVxuICogICBzcGFjZSkgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0RG9jdHlwZT1mYWxzZV1cbiAqICAgRHJvcCB1bm5lZWRlZCBzcGFjZXMgaW4gZG9jdHlwZXM6IGA8IWRvY3R5cGVodG1sPmAgaW5zdGVhZCBvZlxuICogICBgPCFkb2N0eXBlIGh0bWw+YCB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0U2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIERvIG5vdCB1c2UgYW4gZXh0cmEgc3BhY2Ugd2hlbiBjbG9zaW5nIHNlbGYtY2xvc2luZyBlbGVtZW50czogYDxpbWcvPmBcbiAqICAgaW5zdGVhZCBvZiBgPGltZyAvPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IG9ubHkgdXNlZCBpZiBgY2xvc2VTZWxmQ2xvc2luZzogdHJ1ZWAgb3JcbiAqICAgPiBgY2xvc2VFbXB0eUVsZW1lbnRzOiB0cnVlYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt1cHBlckRvY3R5cGU9ZmFsc2VdXG4gKiAgIFVzZSBhIGA8IURPQ1RZUEVcdTIwMjZgIGluc3RlYWQgb2YgYDwhZG9jdHlwZVx1MjAyNmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgVXNlbGVzcyBleGNlcHQgZm9yIFhIVE1MLlxuICogQHByb3BlcnR5IHtSZWFkb25seUFycmF5PHN0cmluZz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdm9pZHNdXG4gKiAgIFRhZyBuYW1lcyBvZiBlbGVtZW50cyB0byBzZXJpYWxpemUgd2l0aG91dCBjbG9zaW5nIHRhZyAoZGVmYXVsdDogYGh0bWwtdm9pZC1lbGVtZW50c2ApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBJdFx1MjAxOXMgaGlnaGx5IHVubGlrZWx5IHRoYXQgeW91IHdhbnQgdG8gcGFzcyB0aGlzLCBiZWNhdXNlXG4gKiAgID4gaGFzdCBpcyBub3QgZm9yIFhNTCwgYW5kIEhUTUwgd2lsbCBub3QgYWRkIG1vcmUgdm9pZCBlbGVtZW50cy5cbiAqXG4gKiBAdHlwZWRlZiB7J1wiJyB8IFwiJ1wifSBRdW90ZVxuICogICBIVE1MIHF1b3RlcyBmb3IgYXR0cmlidXRlIHZhbHVlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T21pdDxSZXF1aXJlZDx7W2tleSBpbiBrZXlvZiBPcHRpb25zXTogRXhjbHVkZTxPcHRpb25zW2tleV0sIG51bGwgfCB1bmRlZmluZWQ+fT4sICdzcGFjZScgfCAncXVvdGUnPn0gU2V0dGluZ3NcbiAqXG4gKiBAdHlwZWRlZiB7J2h0bWwnIHwgJ3N2Zyd9IFNwYWNlXG4gKiAgIE5hbWVzcGFjZS5cbiAqXG4gKiBAdHlwZWRlZiBTdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBOb2RlcywgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCwgcGFyZW50OiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IG9uZVxuICogICBTZXJpYWxpemUgb25lIG5vZGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IGFsbFxuICogICBTZXJpYWxpemUgdGhlIGNoaWxkcmVuIG9mIGEgcGFyZW50IG5vZGUuXG4gKiBAcHJvcGVydHkge1NldHRpbmdzfSBzZXR0aW5nc1xuICogICBVc2VyIGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtRdW90ZX0gcXVvdGVcbiAqICAgUHJlZmVycmVkIHF1b3RlLlxuICogQHByb3BlcnR5IHtRdW90ZX0gYWx0ZXJuYXRpdmVcbiAqICAgQWx0ZXJuYXRpdmUgcXVvdGUuXG4gKi9cblxuaW1wb3J0IHtodG1sVm9pZEVsZW1lbnRzfSBmcm9tICdodG1sLXZvaWQtZWxlbWVudHMnXG5pbXBvcnQge2h0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2hhbmRsZX0gZnJvbSAnLi9oYW5kbGUvaW5kZXguanMnXG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKiBAdHlwZSB7Q2hhcmFjdGVyUmVmZXJlbmNlc30gKi9cbmNvbnN0IGVtcHR5Q2hhcmFjdGVyUmVmZXJlbmNlcyA9IHt9XG5cbi8qKiBAdHlwZSB7QXJyYXk8bmV2ZXI+fSAqL1xuY29uc3QgZW1wdHlDaGlsZHJlbiA9IFtdXG5cbi8qKlxuICogU2VyaWFsaXplIGhhc3QgYXMgSFRNTC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50PiB8IE5vZGVzfSB0cmVlXG4gKiAgIFRyZWUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSHRtbCh0cmVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IG9wdGlvbnNfID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgcXVvdGUgPSBvcHRpb25zXy5xdW90ZSB8fCAnXCInXG4gIGNvbnN0IGFsdGVybmF0aXZlID0gcXVvdGUgPT09ICdcIicgPyBcIidcIiA6ICdcIidcblxuICBpZiAocXVvdGUgIT09ICdcIicgJiYgcXVvdGUgIT09IFwiJ1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHF1b3RlIGAnICsgcXVvdGUgKyAnYCwgZXhwZWN0ZWQgYFxcJ2Agb3IgYFwiYCcpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBvbmUsXG4gICAgYWxsLFxuICAgIHNldHRpbmdzOiB7XG4gICAgICBvbWl0T3B0aW9uYWxUYWdzOiBvcHRpb25zXy5vbWl0T3B0aW9uYWxUYWdzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dQYXJzZUVycm9yczogb3B0aW9uc18uYWxsb3dQYXJzZUVycm9ycyB8fCBmYWxzZSxcbiAgICAgIGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczogb3B0aW9uc18uYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzIHx8IGZhbHNlLFxuICAgICAgcXVvdGVTbWFydDogb3B0aW9uc18ucXVvdGVTbWFydCB8fCBmYWxzZSxcbiAgICAgIHByZWZlclVucXVvdGVkOiBvcHRpb25zXy5wcmVmZXJVbnF1b3RlZCB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0QXR0cmlidXRlczogb3B0aW9uc18udGlnaHRBdHRyaWJ1dGVzIHx8IGZhbHNlLFxuICAgICAgdXBwZXJEb2N0eXBlOiBvcHRpb25zXy51cHBlckRvY3R5cGUgfHwgZmFsc2UsXG4gICAgICB0aWdodERvY3R5cGU6IG9wdGlvbnNfLnRpZ2h0RG9jdHlwZSB8fCBmYWxzZSxcbiAgICAgIGJvZ3VzQ29tbWVudHM6IG9wdGlvbnNfLmJvZ3VzQ29tbWVudHMgfHwgZmFsc2UsXG4gICAgICB0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6IG9wdGlvbnNfLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0cyB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0U2VsZkNsb3Npbmc6IG9wdGlvbnNfLnRpZ2h0U2VsZkNsb3NpbmcgfHwgZmFsc2UsXG4gICAgICBjb2xsYXBzZUVtcHR5QXR0cmlidXRlczogb3B0aW9uc18uY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMgfHwgZmFsc2UsXG4gICAgICBhbGxvd0Rhbmdlcm91c0h0bWw6IG9wdGlvbnNfLmFsbG93RGFuZ2Vyb3VzSHRtbCB8fCBmYWxzZSxcbiAgICAgIHZvaWRzOiBvcHRpb25zXy52b2lkcyB8fCBodG1sVm9pZEVsZW1lbnRzLFxuICAgICAgY2hhcmFjdGVyUmVmZXJlbmNlczpcbiAgICAgICAgb3B0aW9uc18uY2hhcmFjdGVyUmVmZXJlbmNlcyB8fCBlbXB0eUNoYXJhY3RlclJlZmVyZW5jZXMsXG4gICAgICBjbG9zZVNlbGZDbG9zaW5nOiBvcHRpb25zXy5jbG9zZVNlbGZDbG9zaW5nIHx8IGZhbHNlLFxuICAgICAgY2xvc2VFbXB0eUVsZW1lbnRzOiBvcHRpb25zXy5jbG9zZUVtcHR5RWxlbWVudHMgfHwgZmFsc2VcbiAgICB9LFxuICAgIHNjaGVtYTogb3B0aW9uc18uc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICBxdW90ZSxcbiAgICBhbHRlcm5hdGl2ZVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlLm9uZShcbiAgICBBcnJheS5pc0FycmF5KHRyZWUpID8ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IHRyZWV9IDogdHJlZSxcbiAgICB1bmRlZmluZWQsXG4gICAgdW5kZWZpbmVkXG4gIClcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBub2RlLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG9uZShub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHJldHVybiBoYW5kbGUobm9kZSwgaW5kZXgsIHBhcmVudCwgdGhpcylcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYWxsIGNoaWxkcmVuIG9mIGBwYXJlbnRgLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IHdob3NlIGNoaWxkcmVuIHRvIHNlcmlhbGl6ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGwocGFyZW50KSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGNvbnN0IGNoaWxkcmVuID0gKHBhcmVudCAmJiBwYXJlbnQuY2hpbGRyZW4pIHx8IGVtcHR5Q2hpbGRyZW5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIHJlc3VsdHNbaW5kZXhdID0gdGhpcy5vbmUoY2hpbGRyZW5baW5kZXhdLCBpbmRleCwgcGFyZW50KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHMuam9pbignJylcbn1cbiIsICJcbmV4cG9ydCBpbnRlcmZhY2UgSW5saW5lQ29kZVBhcmFtZXRlcnMge1xuXHRsYW5ndWFnZTogc3RyaW5nO1xuXHR0aXRsZTogc3RyaW5nO1xuXHRpY29uOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmxpbmVDb2RlKGNvZGVUZXh0OiBzdHJpbmcpOiB7cGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMgfCBudWxsLCB0ZXh0OiBzdHJpbmd9IHtcblx0Y29uc3QgbWF0Y2ggPSAvXnsoICooPzpcXHcrKD86ICsoPzooPzpbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrKSkqKT8gKil9ICo/KFteIF0uKj8pJC8uZXhlYyhjb2RlVGV4dCk7XG5cblx0aWYgKHR5cGVvZiBtYXRjaD8uWzFdICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBtYXRjaD8uWzJdICE9PSBcInVuZGVmaW5lZFwiKSB7XG5cdFx0aWYgKG1hdGNoWzFdID09PSBcIlwiKVxuXHRcdFx0cmV0dXJuIHtwYXJhbWV0ZXJzOiBudWxsLCB0ZXh0OiBtYXRjaFsyXX07XG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIHtwYXJhbWV0ZXJzOiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJzKG1hdGNoWzFdKSwgdGV4dDogbWF0Y2hbMl19O1xuXHR9IGVsc2UgXG5cdFx0cmV0dXJuIHtwYXJhbWV0ZXJzOiBudWxsLCB0ZXh0OiBjb2RlVGV4dH07XG59XG5mdW5jdGlvbiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJzKHBhcmFtZXRlckxpbmU6IHN0cmluZyk6IElubGluZUNvZGVQYXJhbWV0ZXJzIHtcblx0Y29uc3QgaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzID0ge1xuXHRcdGxhbmd1YWdlOiBcIlwiLFxuXHRcdHRpdGxlOiBcIlwiLFxuXHRcdGljb246IGZhbHNlLFxuXHR9O1xuXHRjb25zdCBsYW5ndWFnZUJyZWFrID0gcGFyYW1ldGVyTGluZS5pbmRleE9mKFwiIFwiKTtcblx0aW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKDAsbGFuZ3VhZ2VCcmVhayAhPT0gLTE/bGFuZ3VhZ2VCcmVhazpwYXJhbWV0ZXJMaW5lLmxlbmd0aCkudG9Mb3dlckNhc2UoKTtcblx0aWYgKGxhbmd1YWdlQnJlYWsgPT09IC0xKVxuXHRcdHJldHVybiBpbmxpbmVDb2RlUGFyYW1ldGVycztcblx0Y29uc3QgcGFyYW1ldGVyU3RyaW5ncyA9IHBhcmFtZXRlckxpbmUuc2xpY2UobGFuZ3VhZ2VCcmVhaysxKS5tYXRjaCgvKD86W15cXHNcIiddK3xcIlteXCJdKlwifCdbXiddKicpKy9nKTtcblx0aWYgKCFwYXJhbWV0ZXJTdHJpbmdzKVxuXHRcdHJldHVybiBpbmxpbmVDb2RlUGFyYW1ldGVycztcblx0cGFyYW1ldGVyU3RyaW5ncy5mb3JFYWNoKChwYXJhbWV0ZXJTdHJpbmcpID0+IHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmcsaW5saW5lQ29kZVBhcmFtZXRlcnMpKTtcblx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gcGFyc2VJbmxpbmVDb2RlUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMpOiB2b2lkIHtcblx0aWYgKHBhcmFtZXRlclN0cmluZy5zdGFydHNXaXRoKFwidGl0bGU6XCIpKSB7XG5cdFx0Y29uc3QgdGl0bGVNYXRjaCA9IC8oW1wiJ10/KShbXlxcMV0rKVxcMS8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJ0aXRsZTpcIi5sZW5ndGgpKTtcblx0XHRpZiAodGl0bGVNYXRjaClcblx0XHRcdGlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlID0gdGl0bGVNYXRjaFsyXS50cmltKCk7XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImljb25cIiB8fCAocGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJpY29uOlwiKSAmJiBwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJpY29uOnRydWVcIikpXG5cdFx0aW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbiA9IHRydWU7XG59XG5cbiIsICJpbXBvcnQgeyBMQU5HVUFHRV9OQU1FUywgQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIEZPTERfUExBQ0VIT0xERVIsIEdJVF9JQ09OUywgU1RBTVBfSUNPTiwgU0lURV9JQ09OUywgVVBEQVRFX0lDT04gfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29kZWJsb2NrUGFyYW1ldGVycywgSGlnaGxpZ2h0cyB9IGZyb20gXCIuL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZ1wiO1xuaW1wb3J0IHsgSW5saW5lQ29kZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi9QYXJzaW5nL0lubGluZUNvZGVQYXJzaW5nXCI7XG5pbXBvcnQgeyBNYXJrZG93blJlbmRlcmVyIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi9tYWluXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIZWFkZXIoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCBoZWFkZXJDb250YWluZXIgPSBjcmVhdGVEaXYoKTtcblx0Y29uc3QgaWNvblVSTCA9IGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2U/Z2V0TGFuZ3VhZ2VJY29uKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLmxhbmd1YWdlSWNvbnMpOnVuZGVmaW5lZDtcblx0aWYgKCFpc0hlYWRlckhpZGRlbihjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lU2V0dGluZ3MsaWNvblVSTCkpIHtcblx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXJcIik7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgIT09IFwiXCIpIHtcblx0XHRcdGlmIChpc0xhbmd1YWdlSWNvblNob3duKGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWVTZXR0aW5ncyxpY29uVVJMKSlcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUltYWdlV3JhcHBlcihpY29uVVJMIGFzIHN0cmluZyxjcmVhdGVEaXYoKSkpO1xuXHRcdFx0aWYgKGlzTGFuZ3VhZ2VUYWdTaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lU2V0dGluZ3MpKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZ1wiLCB0ZXh0OiBnZXRMYW5ndWFnZVRhZyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKX0pKTtcblx0XHR9XG5cdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVRpdGxlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3MsIHNvdXJjZVBhdGgsIHBsdWdpbikpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZSkgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgc2V0dGluZ3MgdG9nZ2xlXG5cdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5ncykpO1xuXHRcdGlmIChmYWxzZSkgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgc2V0dGluZ3MgdG9nZ2xlXG5cdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRXhlY3V0ZUNvZGVDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5ncywgcGx1Z2luKSk7XG5cdH0gZWxzZVxuXHRcdGhlYWRlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW5cIik7XG5cdHJldHVybiBoZWFkZXJDb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVUaXRsZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IHRpdGxlQ29udGFpbmVyID0gY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLXRleHRcIn0pO1xuXHRjb25zdCB0aXRsZSA9IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgfHwgKGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkPyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgfHwgdGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyIHx8IEZPTERfUExBQ0VIT0xERVIpOlwiXCIpO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPT09IFwiXCIpXG5cdFx0dGl0bGVDb250YWluZXIuaW5uZXJUZXh0ID0gdGl0bGU7XG5cdGVsc2UgaWYgKC9eKD86aHR0cHM/fGZpbGUpOlxcL1xcLy8udGVzdChjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSkpXG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxgWyR7dGl0bGV9XSgke2NvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlfSlgLHRpdGxlQ29udGFpbmVyLHNvdXJjZVBhdGgscGx1Z2luKTtcblx0ZWxzZVxuXHRcdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBsdWdpbi5hcHAsYFtbJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZX18JHt0aXRsZX1dXWAsdGl0bGVDb250YWluZXIsc291cmNlUGF0aCxwbHVnaW4pOyAvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCBsaW5rcyB0byBtZXRhZGF0YSBjYWNoZSBwcm9wZXJseVxuXHRyZXR1cm4gdGl0bGVDb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyk6IEhUTUxFbGVtZW50IHtcblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBBZGQgdGhlbWUgc2V0dGluZ3MgdG8gY29uZGl0aW9uYWxseSBzZXQgc2VjdGlvbnNcblx0Y29uc3QgZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIgPSBjcmVhdGVEaXYoeyBjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZVwiIH0pO1xuXHRjb25zdCBzaXRlSWNvbiA9IGNyZWF0ZURpdih7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVwby1pY29uXCIgfSk7XG5cdHNpdGVJY29uLmlubmVySFRNTCA9IFNJVEVfSUNPTlM/Lltjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uc2l0ZSBhcyBzdHJpbmddID8/IFNJVEVfSUNPTlNbXCJnZW5lcmljXCJdO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChzaXRlSWNvbik7XG5cdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVwb1wiLCB0ZXh0OiBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uYXV0aG9yICsgXCIvXCIgKyBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8ucmVwb3NpdG9yeSB9KSk7XG5cdGNvbnN0IHJlZkljb24gPSBjcmVhdGVEaXYoeyBjbHM6IFwiZXh0ZXJuYWwtcmVmZXJlbmNlLXJlZi1pY29uXCIgfSk7XG5cdHJlZkljb24uaW5uZXJIVE1MID0gR0lUX0lDT05TPy5bY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LnJlZkluZm8/LnR5cGUgYXMgc3RyaW5nXSA/PyBHSVRfSUNPTlNbXCJicmFuY2hcIl07XG5cdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlZkljb24pO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVmXCIsIHRleHQ6IGNvZGVibG9ja1BhcmFtZXRlcnM/LmV4dGVybmFsUmVmZXJlbmNlPy5yZWZJbmZvPy5yZWYgYXMgc3RyaW5nfSkpO1xuXHRjb25zdCBzdGFtcEljb24gPSBjcmVhdGVEaXYoeyBjbHM6IFwiZXh0ZXJuYWwtcmVmZXJlbmNlLXRpbWVzdGFtcC1pY29uXCIgfSk7XG5cdHN0YW1wSWNvbi5pbm5lckhUTUwgPSBTVEFNUF9JQ09OO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChzdGFtcEljb24pO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoeyBjbHM6IFwiZXh0ZXJuYWwtcmVmZXJlbmNlLXRpbWVzdGFtcFwiLCB0ZXh0OiBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uZGF0ZXRpbWUgYXMgc3RyaW5nIH0pKTtcblx0Y29uc3QgdXBkYXRlSWNvbiA9IGNyZWF0ZUVsKFwiYnV0dG9uXCIsIHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS11cGRhdGUtaWNvblwifSk7XG5cdHVwZGF0ZUljb24uaW5uZXJIVE1MID0gVVBEQVRFX0lDT047XG5cdHVwZGF0ZUljb24udGl0bGUgPSBcIlVwZGF0ZSBSZWZlcmVuY2VcIjtcblx0dXBkYXRlSWNvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGV2ZW50KSA9PiB7XG5cdFx0Ly8gVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlIGNvZGVibG9ja1xuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHR9KTtcblx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQodXBkYXRlSWNvbik7XG5cdHJldHVybiBleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV4ZWN1dGVDb2RlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IGV4ZWN1dGVDb2RlQ29udGFpbmVyID0gY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLWV4ZWN1dGUtY29kZVwifSk7XG5cdC8vVE9ETyAoQG1heXVyYW5rdikgRmluaXNoXG5cdHJldHVybiBleGVjdXRlQ29kZUNvbnRhaW5lcjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbmxpbmVPcGVuZXIoaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzLCBsYW5ndWFnZUljb25zOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4sIGNvbnRhaW5lckNsYXNzZXM6IEFycmF5PHN0cmluZz4gPSBbXCJjb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyXCJdKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCBvcGVuZXJDb250YWluZXIgPSBjcmVhdGVTcGFuKHtjbHM6IGNvbnRhaW5lckNsYXNzZXMuam9pbihcIiBcIil9KTtcblx0aWYgKGlubGluZUNvZGVQYXJhbWV0ZXJzLmljb24pIHtcblx0XHRjb25zdCBpY29uVVJMID0gZ2V0TGFuZ3VhZ2VJY29uKGlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLGxhbmd1YWdlSWNvbnMpO1xuXHRcdGlmICh0eXBlb2YgaWNvblVSTCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdG9wZW5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTCxjcmVhdGVTcGFuKCksXCJjb2RlLXN0eWxlci1pbmxpbmUtaWNvblwiKSk7XG5cdH1cblx0aWYgKGlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlKVxuXHRcdG9wZW5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuKHtjbHM6IFwiY29kZS1zdHlsZXItaW5saW5lLXRpdGxlXCIsIHRleHQ6IGlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlfSkpO1xuXHRyZXR1cm4gb3BlbmVyQ29udGFpbmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlSW1hZ2VXcmFwcGVyKGljb25VUkw6IHN0cmluZywgaW1hZ2VXcmFwcGVyOiBIVE1MRWxlbWVudCwgaW1nQ2xhc3MgPSBcImNvZGUtc3R5bGVyLWljb25cIik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiKTtcblx0aW1nLmNsYXNzTGlzdC5hZGQoaW1nQ2xhc3MpO1xuXHRpbWcuc3JjID0gaWNvblVSTDtcblx0aW1hZ2VXcmFwcGVyLmFwcGVuZENoaWxkKGltZyk7XG5cdHJldHVybiBpbWFnZVdyYXBwZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZUljb24obGFuZ3VhZ2U6IHN0cmluZywgbGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGxhbmd1YWdlSWNvbnM/LltnZXRMYW5ndWFnZVRhZyhsYW5ndWFnZSldO1xufVxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VUYWcobGFuZ3VhZ2U6IHN0cmluZykge1xuXHRyZXR1cm4gTEFOR1VBR0VfTkFNRVM/LltsYW5ndWFnZV0gPz8gKGxhbmd1YWdlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbGFuZ3VhZ2Uuc2xpY2UoMSkgfHwgXCJcIik7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNIZWFkZXJIaWRkZW4oY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIGljb25VUkw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gIWlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVycykgJiYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwiXCIgfHwgKHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgIT09IFwiYWx3YXlzXCIgJiYgKHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ICE9PSBcImFsd2F5c1wiIHx8ICh0eXBlb2YgaWNvblVSTCA9PSBcInVuZGVmaW5lZFwiKSkpKTtcbn1cbmZ1bmN0aW9uIGlzTGFuZ3VhZ2VJY29uU2hvd24oY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIGljb25VUkw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gKHR5cGVvZiBpY29uVVJMICE9PSBcInVuZGVmaW5lZFwiKSAmJiAodGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IFwiYWx3YXlzXCIgfHwgKGlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVycykgJiYgdGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IFwiaWZfaGVhZGVyX3Nob3duXCIpKTtcbn1cbmZ1bmN0aW9uIGlzTGFuZ3VhZ2VUYWdTaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gdGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gXCJhbHdheXNcIiB8fCAoaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzKSAmJiB0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID09PSBcImlmX2hlYWRlcl9zaG93blwiKTtcbn1cbmZ1bmN0aW9uIGlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgfHwgY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSAhPT0gXCJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmVDbGFzcyhjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBsaW5lTnVtYmVyOiBudW1iZXIsIGxpbmU6IHN0cmluZyk6IEFycmF5PHN0cmluZz4ge1xuXHRsZXQgY2xhc3NMaXN0OiBBcnJheTxzdHJpbmc+ID0gW107XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5saW5lTnVtYmVycy5pbmNsdWRlcyhsaW5lTnVtYmVyK2NvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5wbGFpblRleHQuc29tZSh0ZXh0ID0+IGxpbmUuaW5kZXhPZih0ZXh0KSA+IC0xKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5yZWd1bGFyRXhwcmVzc2lvbnMuc29tZShyZWdFeHAgPT4gcmVnRXhwLnRlc3QobGluZSkpKVxuXHRcdGNsYXNzTGlzdC5wdXNoKFwiY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZFwiKTtcblx0T2JqZWN0LmVudHJpZXMoY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmFsdGVybmF0aXZlKS5mb3JFYWNoKChbYWx0ZXJuYXRpdmVIaWdobGlnaHQsaGlnaGxpZ2h0ZWRMaW5lc106IFtzdHJpbmcsSGlnaGxpZ2h0c10pID0+IHtcblx0XHRpZiAoaGlnaGxpZ2h0ZWRMaW5lcy5saW5lTnVtYmVycy5pbmNsdWRlcyhsaW5lTnVtYmVyK2NvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KSB8fCBoaWdobGlnaHRlZExpbmVzLnBsYWluVGV4dC5zb21lKHRleHQgPT4gbGluZS5pbmRleE9mKHRleHQpID4gLTEpIHx8IGhpZ2hsaWdodGVkTGluZXMucmVndWxhckV4cHJlc3Npb25zLnNvbWUocmVnRXhwID0+IHJlZ0V4cC50ZXN0KGxpbmUpKSlcblx0XHRcdGNsYXNzTGlzdC5wdXNoKGBjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLCBcIi1cIikudG9Mb3dlckNhc2UoKX1gKTtcblx0fSk7XG5cdGlmIChjbGFzc0xpc3QubGVuZ3RoID09PSAwKVxuXHRcdGNsYXNzTGlzdCA9IFtcImNvZGUtc3R5bGVyLWxpbmVcIl07XG5cdHJldHVybiBjbGFzc0xpc3Q7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQUFBLFNBQTJDQSxJQUFNQyxJQUFBQTtBQUMxQixrQkFBQSxPQUFaQyxXQUEwQyxZQUFBLE9BQVhDLFVBQ3hDQSxRQUFPRCxVQUFVRCxHQUFBQSxJQUNRLGNBQUEsT0FBWEcsVUFBeUJBLE9BQU9DLE1BQzlDRCxPQUFPLENBQUEsR0FB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O0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixpQkFBaUI7QUFBQSxFQUNqQixZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDViw0QkFBNEI7QUFBQSxFQUM1QixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxxQkFBcUI7QUFBQSxFQUNyQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixhQUFhO0FBQUEsRUFDYixzQkFBc0I7QUFBQSxFQUN0QixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxlQUFlO0FBQUEsRUFDZixrQkFBa0I7QUFBQSxFQUNsQixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxhQUFhO0FBQUEsRUFDYixRQUFRO0FBQUEsRUFDUixlQUFlO0FBQUEsRUFDZixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxnQkFBZ0I7QUFBQSxFQUNoQixnQkFBZ0I7QUFBQSxFQUNoQixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixxQkFBcUI7QUFBQSxFQUNyQixVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxtQkFBbUI7QUFBQSxFQUNuQixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixrQkFBa0I7QUFBQSxFQUNsQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixjQUFjO0FBQUEsRUFDZCxnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxpQkFBaUI7QUFBQSxFQUNqQixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUI7QUFBQSxFQUNqQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxRQUFRO0FB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QUEsRUFDcEIsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsV0FBVTtBQUFBLEVBQ1YsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsbUJBQWtCO0FBQUEsRUFDbEIsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVBQ1AsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsWUFBVztBQUFBLEVBQ1gsUUFBTztBQUFBLEVBQ1AsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsY0FBYTtBQUFBLEVBQ2IsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsYUFBWTtBQUFBLEVBQ1osWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsTUFBSztBQUFBLEVBQ0wsV0FBVTtBQUFBLEVBQ1YsY0FBYTtBQUFBLEVBQ2IsY0FBYTtBQUFBLEVBQ2IsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsWUFBVztBQUFBLEVBQ1gsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsUUFB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UixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsZUFBZTtBQUFBLElBQ2QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxNQUNBO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxnQkFBZ0I7QUFBQSxJQUNmLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFB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QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLGVBQWU7QUFBQSxNQUNkO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGVBQWU7QUFBQSxJQUNkLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1B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UixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFlBQVk7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxnQkFBZ0I7QUFBQSxJQUNmLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxlQUFlO0FBQUEsSUFDZCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0Esb0JBQW9CO0FBQUEsSUFDbkIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFB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QUFFLFFBQU0sV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FB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SUQsSUFBRUUsRUFBQyxDQUFDO0FBQUM7QUFBMTVCLElBQTQ1QixJQUFFLFNBQVNGLElBQUU7QUFBQyxNQUFHLFlBQVUsT0FBT0EsSUFBRTtBQUFDLFFBQUlDLEtBQUVELEdBQUUsTUFBTSxDQUFDLEdBQUVFLEtBQUUsQ0FBQ0QsR0FBRSxDQUFDO0FBQUUsWUFBT0EsR0FBRSxDQUFDLEdBQUU7QUFBQSxNQUFDLEtBQUssRUFBRTtBQUFRLFFBQUFELEtBQUUsRUFBRSxNQUFJRSxLQUFFLEtBQUssRUFBRTtBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBTSxRQUFBRixLQUFFLEVBQUUsTUFBSUUsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBUyxRQUFBRixLQUFFLEVBQUUsTUFBR0UsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBQSxNQUFRO0FBQVEsUUFBQUYsS0FBRUU7QUFBQSxJQUFDO0FBQUEsRUFBQztBQUFDLFVBQU9GLEtBQUUsT0FBS0EsS0FBRSxPQUFLQSxNQUFHLE1BQUksS0FBSyxNQUFNQSxLQUFFLEdBQUcsSUFBR0E7QUFBQztBQUF6cEMsSUFBMnBDLElBQUUsU0FBU0EsSUFBRUMsSUFBRTtBQUFDLE1BQUlDO0FBQUUsVUFBT0QsSUFBRTtBQUFBLElBQUMsS0FBSyxFQUFFO0FBQVEsTUFBQUMsS0FBRSxFQUFFLFNBQVNGLElBQUU7QUFBQyxlQUFPQSxLQUFFLEtBQUssS0FBRztBQUFBLE1BQUcsRUFBRUEsRUFBQyxDQUFDO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFNLE1BQUFFLEtBQUUsRUFBRUYsS0FBRSxHQUFHO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFTLE1BQUFFLEtBQUUsRUFBRSxLQUFHLElBQUVGLEVBQUM7QUFBRTtBQUFBLElBQU0sS0FBSyxFQUFFO0FBQUEsSUFBUSxLQUFLLEVBQUU7QUFBQSxJQUFLO0FBQVEsTUFBQUUsS0FBRUY7QUFBQSxFQUFDO0FBQUMsU0FBT0U7QUFBQztBQUF6MkMsSUFBMjJDLElBQUUsU0FBU0YsSUFB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LENBQUMsRUFBRSxRQUFRRCxFQUFDLElBQUUsRUFBRUEsRUFBQyxJQUFFQSxJQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUVFLEtBQUUsRUFBQyxHQUFFLEVBQUVELEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEdBQUUsRUFBRUEsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLENBQUMsRUFBQyxHQUFFRSxLQUFFRixHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDO0FBQUUsU0FBTyxXQUFTRSxPQUFJRCxHQUFFLElBQUUsRUFBRUMsRUFBQyxJQUFFLE1BQUtEO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNGLElBQUU7QUFBQyxNQUFJQyxLQUFFRCxHQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUVFLEtBQUUsRUFBRUQsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsRUFBRUYsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRUgsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUVKLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsR0FBRTJCLEtBQUUsRUFBQyxHQUFFLEtBQUssSUFBSTFCLElBQUUsR0FBRyxHQUFFLEdBQUUsS0FBSyxJQUFJQyxJQUFFLEdBQUcsR0FBRSxHQUFFLEtBQUssSUFBSUMsSUFBRSxHQUFHLEVBQUM7QUFBRSxTQUFPLFdBQVNDLE9BQUl1QixHQUFFLElBQUUsR0FBR3ZCLEVBQUMsSUFBR3VCO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVM1QixJQUFFO0FBQUMsTUFBSUMsS0FBRUQsR0FBRSxNQUFNLEVBQUUsR0FBRyxHQUFFRSxLQUFFLEVBQUVELEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFRSxLQUFFLEVBQUVGLEdBQUUsQ0FBQyxLQUFHQSxHQUFF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RUFBRUEsR0FBRSxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsRUFBQztBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNBLElBQUU7QUFBQyxNQUFJQyxLQUFFLEdBQUcsSUFBSUQsRUFBQztBQUFFLFNBQU9DLEdBQUUsSUFBRSxFQUFFRCxJQUFFLEdBQUcsSUFBRSxFQUFFLE1BQUlBLEdBQUUsQ0FBQyxJQUFFLFFBQU9DO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNELElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEdBQUdGLElBQUVDLEVBQUM7QUFBRSxTQUFPLEVBQUVDLElBQUUsR0FBRyxLQUFHLE9BQU9BLEdBQUUsR0FBRUE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLElBQUlGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUU7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRUYsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQztBQUFFLFNBQU8sT0FBT0UsR0FBRSxHQUFFLEdBQUdBLElBQUVELEVBQUM7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLElBQUlGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxHQUFFQyxFQUFDLElBQUUsR0FBRUM7QUFBQyxHQUFFLEVBQUUsRUFBRSxJQUFJLElBQUUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLFNBQU8sR0FBRyxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVDLEVBQUM7QUFBQyxHQUFFLEVBQUUsUUFBTSxTQUFTRCxJQUFFQyxJQUFFO0FB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LEdBQUUsRUFBRUgsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLE1BQUksR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUEsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTRCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0gsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsSUFBSSxFQUFFSixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVJLEdBQUUsUUFBUTtBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxHQUFFSSxFQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsR0FBRUksR0FBRSxRQUFRO0FBQUEsRUFB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TyxPQUFPRyxHQUFFLEdBQUVGLEtBQUUsRUFBRSxJQUFJRSxJQUFFRCxFQUFDLElBQUUsR0FBRyxJQUFJQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxLQUFFLEVBQUUsSUFBSUUsSUFBRUQsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEtBQUssSUFBSUosSUFBRUMsRUFBQyxHQUFFSSxLQUFFLEVBQUVELEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPLE9BQU9BLEdBQUUsR0FBRSxPQUFPQyxHQUFFLEdBQUVILEtBQUUsRUFBRSxJQUFJRyxJQUFFRixFQUFDLElBQUUsR0FBRyxJQUFJQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUMsR0FBRUksS0FBRSxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPRixLQUFFLEVBQUUsSUFBSUcsSUFBRUYsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRTtBQUF6MVksSUFBNDFZLEtBQUcsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRUYsR0FBRSxHQUFFQyxFQUFDLEdBQUVFLEtBQUUsRUFBRUgsR0FBRSxHQUFFQyxFQUFDLEdBQUVHLEtBQUUsRUFBRUosR0FBRSxHQUFFQyxFQUFDO0FBQUUsU0FBTyxFQUFFLEVBQUMsR0FBRUMsSUFBRSxHQUFFQyxJQUFFLEdBQUVDLEdB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LEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsQ0FBQyxHQUFFO0FBQUEsRUFBSSxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFLE9BQU8sZUFBZUUsR0FBRSxXQUFVLFdBQVUsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEtBQUs7QUFBQSxFQUFRLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEdBQUcsSUFBSSxLQUFLLEdBQUc7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sR0FBRyxLQUFLLEtBQUssR0FBRztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxhQUFZLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGNBQWEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxTQUFTLEdBQUUsRUFBQyxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFNLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFNBQVMsR0FBRSxFQUFDLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxlQUFjLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssVUFBVSxHQUFFLEVBQUMsR0FBRSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFFBQU8sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsTUFBSSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxTQUFRLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUU7QUFBQyxRQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUc7QUFBQSxFQUFDLEdBQUVDLEdBQUUsUUFBTSxTQUFTRixJQUFFO0FBQUMsV0FBTyxFQUFFLElBQUlFLEdBQUUsWUFBWUYsRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGVBQWEsU0FBU0YsSUFBRTtBQUFDLFFBQUlDLEtBQUUsR0FBR0QsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxTQUFPLFNBQVNGLElBQUU7QUFBQyxXQUFPLEVBQUUsSUFBSUUsR0FBRSxhQUFhRixFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLEtBQUtFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZ0JBQWMsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsS0FBSztBQUFBLEVBQUMsR0FBRUMsR0FBRSxVQUFRLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsS0FBSztBQUFFLFdBQU8sRUFBRSxLQUFLRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLG9CQUFrQixTQUFTRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUcsR0FBR0YsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsR0FBRztBQUFBLEVBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsSUFBR0QsR0FBRSxrQkFBa0JGLElBQUVDLElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNILElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUUsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxJQUFHLEdBQUdGLElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVBLEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUdELEdBQUUsbUJBQW1CRixJQUFFQyxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTSCxJQUFFO0FBQUMsYUFBTyxFQUFFLElBQUlBLEVBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVFLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUscUJBQW1CLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGVBQWEsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUksRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGVBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEVBQUVELElBQUVILElBQUVDLEVBQUM7QUFBRSxXQUFPLEdBQUdELElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRUksRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUYsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUVDLEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsZUFBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsRUFBRUQsSUFBRUgsSUFBRUMsRUFBQztBQUFFLFdBQU8sR0FBR0QsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSSxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLGFBQU8sRUFBRSxJQUFJQSxJQUFFSSxFQUFDO0FBQUEsSUFBQyxDQUFFO0FBQUEsRUFBQyxHQUFFRixHQUFFLGtCQUFnQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLElBQUlELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxZQUFVLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsSUFBSUQsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLG1CQUFpQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLEtBQUtELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxhQUFXLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsS0FBS0QsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLG1CQUFpQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLEtBQUtILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxhQUFXLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsS0FBS0gsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLG1CQUFpQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLEtBQUtILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxhQUFXLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsS0FBS0gsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FB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QU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQSxJQUNQLEtBQUs7QUFBQSxJQUNMLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLE1BQU07QUFBQSxJQUNOLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGdCQUFnQjtBQUFBLElBQ2hCLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQSxJQUNOLEtBQUs7QUFBQSxJQUNMLFVBQVU7QUFBQSxJQUNWLEtBQUs7QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULGNBQWM7QUFBQSxJQUNkLFlBQVk7QUFBQSxJQUNaLGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLElBQ2hCLGdCQUFnQjtBQUFBLElBQ2hCLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBLElBQ25CLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULGtCQUFrQjtBQUFBLElBQ2xCLFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGdCQUFnQjtBQUFBLElBQ2hCLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFVBQVU7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QUNoQixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixrQkFBa0I7QUFBQSxJQUNsQixrQkFBa0I7QUFBQSxJQUNsQixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixXQUFXO0FBQUEsSUFDWCw0QkFBNEI7QUFBQSxJQUM1QiwwQkFBMEI7QUFBQSxJQUMxQixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxnQkFBZ0I7QUFBQSxJQUNoQixlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixTQUFTO0FBQUEsSUFDVCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxlQUFlO0FBQUEsSUFDZixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxrQkFBa0I7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxZQUFZO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxrQkFBa0I7QUFBQSxJQUNsQixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixtQkFBbUI7QUFBQSxJQUNuQixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixpQkFBaUI7QUFBQSxJQUNqQixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYix1QkFBdUI7QUFBQSxJQUN2Qix3QkFBd0I7QUFBQSxJQUN4QixpQkFBaUI7QUFBQSxJQUNqQixrQkFBa0I7QUFBQSxJQUNsQixlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixrQkFBa0I7QUFBQSxJQUNsQixlQUFlO0FBQUEsSUFDZixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixnQkFBZ0I7QUFBQSxJQUNoQixlQUFlO0FBQUEsSUFDZixpQkFBaUI7QUFBQSxJQUNqQixRQUFRO0FBQUEsSUFDUixtQkFBbUI7QUFBQSxJQUNuQixvQkFBb0I7QUFBQSxJQUNwQixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxlQUFlO0FBQUEsSUFDZixjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixTQUFTO0FBQUE7QUFBQSxJQUVULGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxFQUNqQjtBQUFBLEVBQ0EsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsYUFBYTtBQUFBLElBQ2IsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sSUFBSTtBQUFBLElBQ0osVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsTUFBTTtBQUFBLElBQ04sVUFBVTtBQUFBLElBQ1YsZUFBZTtBQUFBLElBQ2YsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1Asb0JBQW9CO0FBQUEsSUFDcEIsMkJBQTJCO0FBQUEsSUFDM0IsY0FBYztBQUFBLElBQ2QsZ0JBQWdCO0FBQUEsSUFDaEIsU0FBUztBQUFBLElBQ1QsbUJBQW1CO0FBQUEsSUFDbkIsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osR0FBRztBQUFBLElBQ0gsVUFBVTtBQUFBLElBQ1YsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsaUJBQWlCO0FBQUEsSUFDakIsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsS0FBSztBQUFBLElBQ0wsU0FBUztBQUFBLElBQ1Qsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLElBQ1AsVUFBVTtBQUFBLElBQ1YsMkJBQTJCO0FBQUEsSUFDM0IsTUFBTTtBQUFBLElBQ04sYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZ0JBQWdCO0FBQUEsSUFDaEIsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osV0FBVztBQUFBLElBQ1gsNEJBQTRCO0FBQUEsSUFDNUIsMEJBQTBCO0FBQUEsSUFDMUIsVUFBVTtBQUFBLElBQ1YsbUJBQW1CO0FBQUEsSUFDbkIsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsSUFBSTtBQUFBLElBQ0osYUFBYTtBQUFBLElBQ2IsZ0JBQWdCO0FBQUEsSUFDaEIsbUJBQW1CO0FBQUEsSUFDbkIsSUFBSTtBQUFBLElBQ0osS0FBSztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsR0FBRztBQUFBLElBQ0gsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBO0FBQUEsSUFDWCxZQUFZO0FBQUE7QUFBQSxJQUNaLFVBQVU7QUFBQTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsbUJBQW1CO0FBQUEsSUFDbkIsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsYUFBYTtBQUFBLElBQ2IsTUFBTTtBQUFBLElBQ04sa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLElBQ1Asd0JBQXdCO0FBQUEsSUFDeEIsdUJBQXVCO0FBQUEsSUFDdkIsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLElBQ1AsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1Qsa0JBQWtCO0FBQUEsSUFDbEIsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sWUFBWTtBQUFBLElBQ1oscUJBQXFCO0FBQUEsSUFDckIsa0JBQWtCO0FBQUEsSUFDbEIsY0FBYztBQUFBLElBQ2QsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YscUJBQXFCO0FBQUEsSUFDckIsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsR0FBRztBQUFBLElBQ0gsUUFBUTtBQUFBLElBQ1IsZ0JBQWdCO0FBQUEsSUFDaEIsTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLElBQ0wsS0FBSztBQUFBLElBQ0wsaUJBQWlCO0FBQUEsSUFDakIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsb0JBQW9CO0FBQUEsSUFDcEIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsaUJBQWlCO0FBQUEsSUFDakIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sZ0JBQWdCO0FBQUEsSUFDaEIsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsa0JBQWtCO0FBQUEsSUFDbEIsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsT0FBTztBQUFBLElBQ1AsT0FBTztBQUFBLElBQ1AsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsdUJBQXVCO0FBQUEsSUFDdkIsd0JBQXdCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsaUJBQWlCO0FBQUEsSUFDakIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsSUFDaEIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QscUJBQXFCO0FBQUEsSUFDckIsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2Ysc0JBQXNCO0FBQUEsSUFDdEIsZ0JBQWdCO0FBQUEsSUFDaEIsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osZ0JBQWdCO0FBQUEsSUFDaEIsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2YsT0FBTztBQUFBLElBQ1AsbUJBQW1CO0FBQUEsSUFDbkIsTUFBTTtBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osV0FBVztBQUFBLElBQ1gsaUJBQWlCO0FBQUEsSUFDakIsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osbUJBQW1CO0FBQUEsSUFDbkIsb0JBQW9CO0FBQUEsSUFDcEIsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsZUFBZTtBQUFBLElBQ2YsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLElBQ2IsYUFBYTtBQUFBLElBQ2IsU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFB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QUNyQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLGdCQUFnQixJQUFJO0FBQzlCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsWUFBWSxJQUFJO0FBQzFCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsV0FBVyxJQUFJO0FBQ3pCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsVUFBVSxJQUFJ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QUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLEVBQUUsSUFBSTtBQUMzQixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxZQUFZLElBQUksRUFBRSxJQUFJO0FBQ3BDLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sVUFBVSxJQUFJLEVBQUUsSUFBSTtBQUNsQyxFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLEdBQUcsSUFBSSxFQUFFLElBQUk7QUFDM0IsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sV0FBVyxJQUFJLEVBQUUsSUFBSTtBQUNuQyxFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxLQUFLLElBQUksRUFBRSxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLEdBQUcsSUFBSSxFQUFFLElBQUk7QUFDM0IsRUFBQUEsUUFBT0EsUUFBTyxR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QUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsWUFBWSxPQUFPLFVBQVU7QUFBQSxFQUN4QyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsV0FBVyxPQUFPLFNBQVM7QUFBQSxFQUN0QyxDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFDOUIsQ0FBQztBQUNNLFNBQVMsU0FBUyxTQUFTO0FBQzlCLE1BQUlDO0FBQ0osVUFBUUEsTUFBSyxlQUFlLElBQUksT0FBTyxPQUFPLFFBQVFBLFFBQU8sU0FBU0EsTUFBSyxPQUFPO0FBQ3RGO0FBQ0EsSUFBTUMsS0FBSTtBQUNILElBQU0sbUJBQW1CO0FBQUEsRUFDNUIsQ0FBQyxHQUFHLElBQUksR0FBRyxvQkFBSSxJQUFJO0FBQUEsSUFDZkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJ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Q0FBQyxJQUFJO0FBQy9CLEVBQUFBLE9BQU1BLE9BQU0sdUJBQXVCLElBQUksQ0FBQyxJQUFJO0FBQzVDLEVBQUFBLE9BQU1BLE9BQU0scUJBQXFCLElBQUksQ0FBQyxJQUFJO0FBQzFDLEVBQUFBLE9BQU1BLE9BQU0scUJBQXFCLElBQUksRUFBRSxJQUFJO0FBQzNDLEVBQUFBLE9BQU1BLE9BQU0sd0JBQXdCLElBQUksRUFBRSxJQUFJO0FBQzlDLEVBQUFBLE9BQU1BLE9BQU0sc0JBQXNCLElBQUksRUFBRSxJQUFJO0FBQzVDLEVBQUFBLE9BQU1BLE9BQU0sc0JBQXNCLElBQUksRUFBRSxJQUFJO0FBQzVDLEVBQUFBLE9BQU1BLE9BQU0sNEJBQTRCLElBQUksRUFBRSxJQUFJO0FBQ2xELEVBQUFBLE9BQU1BLE9BQU0sMEJBQTBCLElBQUksRUFBRSxJQUFJO0FBQ2hELEVBQUFBLE9BQU1BLE9BQU0sMEJBQTBCLElBQUksRUFBRSxJQUFJO0FBQ2hELEVBQUFBLE9BQU1BLE9BQU0sMEJBQTBCLElBQUksRUFBRSxJQUFJO0FBQ2hELEVBQUFBLE9BQU1BLE9BQU0sK0JBQStCLElBQUksRUFBRSxJQUFJO0FBQ3JELEVBQUFBLE9BQU1BLE9BQU0scUJBQXFCLElBQUksRUFBRSxJQUFJO0FBQzNDLEVBQUFBLE9BQU1BLE9BQU0sMEJBQTBCLElBQUksRUFBRSxJQUFJO0FBQ2hELEVBQUFBLE9BQU1BLE9BQU0sK0JBQStCLElBQUksRUFBRSxJQUFJO0FBQ3JELEVBQUFBLE9BQU1BLE9BQU0sb0NBQW9DLElBQUksRUFBRSxJQUFJO0FBQzFELEVBQUFBLE9BQU1BLE9BQU0sa0NBQWtDLElBQUksRUFBRSxJQUFJO0FBQ3hELEVBQUFBLE9BQU1BLE9BQU0sa0NBQWtDLElBQUksRUFBRSxJQUFJO0FBQ3hELEVBQUFBLE9BQU1BLE9BQU0saUNBQWlDLElBQUksRUFBRSxJQUFJO0FBQ3ZELEVBQUFBLE9BQU1BLE9BQU0sNEJBQTRCLElBQUksRUFBRSxJQUFJO0FBQ2xELEVBQUFBLE9BQU1BLE9BQU0saUNBQWlDLElBQUks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LCtCQUErQixJQUFJLElBQUk7QUFBQSxFQUNoRDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0osRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRXJDLElBQU0sd0JBQXdCLG9CQUFJLElBQUk7QUFBQSxFQUNsQyxPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixP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QUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUUsWUFBWTtBQUNmLDBCQUFvQkEsSUFBRyxLQUFLO0FBQzVCO0FBQUEsSUFDSjtBQUFBLElBQ0EsS0FBSyxPQUFFLElBQUk7QUFDUCxxQkFBZUEsRUFBQztBQUNoQjtBQUFBLElBQ0o7QUFBQSxJQUNBLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFLElBQUk7QUFDUCxxQkFBZUEsSUFBRyxLQUFLO0FBQ3ZCO0FBQUEsSUFDSjtBQUFBLElBQ0EsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRTtBQUFBLElBQ1AsS0FBSyxPQUFFO0FBQUEsSUFDUCxLQUFLLE9BQUU7QUFBQSxJQUNQLEtBQUssT0FBRSxJQUFJO0FBQ1AsaUNBQTJCQSxFQUFDO0FBQzVCO0FBQUEsSUFDSjtBQUFBLElBQ0EsS0FBSyxPQUFFLElBQUk7QUFDUCxxQkFBZUEsRUFBQztBQUNoQjtBQUFBLElBQ0o7QUFBQSxJQUNBLEtBQUss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QUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUErREEsS0FBSyxlQUFlLHdCQUF3QixRQUFRO0FBRWxELFVBQU0sVUFBVSxLQUFLLFFBQVEsZUFBZSx3QkFBd0IsTUFBTTtBQUUxRSxZQUFRLFFBQVE7QUFFaEIsVUFBTTtBQUFBLEVBQ1I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBNERBLEtBQUssZUFBZSx3QkFBd0IsUUFBUTtBQUVsRCxVQUFNLFVBQVUsS0FBSyxRQUFRLGVBQWUsd0JBQXdCLE1BQU07QUFFMUUsWUFBUSxRQUFRO0FBRWhCLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQTREQSxRQUFR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QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwyQkFBMkI7QUFBQSxJQUN6QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxrQ0FBa0M7QUFBQSxJQUNoQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSxrQkFBa0I7QUFBQSxJQUNoQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxZQUFZO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxjQUFjO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxjQUFjO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSxvQ0FBb0M7QUFBQSxJQUNsQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSxnQ0FBZ0M7QUFBQSxJQUM5QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxVQUFVO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwwQkFBMEI7QUFBQSxJQUN4QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwwQkFBMEI7QUFBQSxJQUN4QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwwQ0FBMEM7QUFBQSxJQUN4QyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxnQ0FBZ0M7QUFBQSxJQUM5QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxrQkFBa0I7QUFBQSxJQUNo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RUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjs7O0FDM0dPLElBQU0seUJBQXlCO0FBQUEsRUFDcEMsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osU0FBUztBQUFBLEVBQ1QsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsU0FBUztBQUFBLEVBQ1QsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osU0FBUztBQUFBLEVBQ1QsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsU0FBUztBQUFBLEVBQ1QsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUNSOzs7QUM1UE8sSUFBTSxZ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S0FBSyxTQUFTLEtBQUssUUFBUTtBQUNqQyxTQUFLLElBQUksVUFBVSxjQUFjO0FBQ2pDLGtCQUFjLEtBQUssVUFBUyxLQUFLLEdBQUc7QUFBQSxFQUNyQztBQUFBLEVBRUEsb0JBQW9CO0FBQ25CLFNBQUssSUFBSSxVQUFVLGtCQUFrQixDQUFDLFNBQXdCO0FBQzdELFVBQUksS0FBSyxnQkFBZ0IsaUNBQWdCLEtBQUssS0FBSyxRQUFRLE1BQU07QUFDaEUsYUFBSyxLQUFLLFlBQVksU0FBUyxJQUFJO0FBQUEsSUFDckMsQ0FBQztBQUFBLEVBQ0Y7QUFDRDsiLAogICJuYW1lcyI6IFsicm9vdCIsICJmYWN0b3J5IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImRlZmluZSIsICJhbWQiLCAic2VsZiIsICJfX3dlYnBhY2tfcmVxdWlyZV9fIiwgImRlZmluaXRpb24iLCAia2V5IiwgIm8iLCAiT2JqZWN0IiwgImRlZmluZVByb3BlcnR5IiwgImVudW1lcmFibGUiLCAiZ2V0IiwgIm9iaiIsICJwcm9wIiwgInByb3RvdHlwZSIsICJoYXNPd25Qcm9wZXJ0eSIsICJjYWxsIiwgIlN5bWJvbCIsICJ0b1N0cmluZ1RhZyIsICJ2YWx1ZSIsICJlIiwgInQiLCAiRSIsICJldmVudExpc3RlbmVyIiwgIm1ldGhvZCIsICJlbGVtZW50cyIsICJldmVudHMiLCAiZm4iLCAib3B0aW9ucyIsICJIVE1MQ29sbGVjdGlvbiIsICJOb2RlTGlzdCIsICJBcnJheSIsICJmcm9tIiwgImlzQXJyYXkiLCAiZWwiLCAiZXYiLCAiY2FwdHVyZSIsICJzbGljZSIsICJhcmd1bWVudHMiLCAicCIsICJyIiwgImEiLCAibCIsICJzIiwgImkiLCAiYyIsICJvbiIsICJiaW5kIiwgIm9mZiIsICJjcmVhdGVFbGVtZW50RnJvbVN0cmluZyIsICJodG1sIiwgImRpdiIsICJkb2N1bWVudCIsICJjcmVhdGVFbGVtZW50IiwgImlubmVySFRNTCIsICJ0cmltIiwgImZpcnN0RWxlbWVudENoaWxkIiwgImNyZWF0ZUZyb21UZW1wbGF0ZSIsICJzdHIiLCAicmVtb3ZlQXR0cmlidXRlIiwgIm5hbWUiLCAiZ2V0QXR0cmlidXRlIiwgInJlc29sdmUiLCAiZWxlbWVudCIsICJiYXNlIiwgImNvbiIsICJzdWJ0cmVlIiwgImNoaWxkIiwgImNoaWxkcmVuIiwgImFyciIsICJzdWIiLCAicHVzaCIsICJrZXlzIiwgImxlbmd0aCIsICJldmVudFBhdGgiLCAiZXZ0IiwgInBhdGgiLCAiY29tcG9zZWRQYXRoIiwgInRhcmdldCIsICJwYXJlbnRFbGVtZW50IiwgIndpbmRvdyIsICJyZXNvbHZlRWxlbWVudCIsICJ2YWwiLCAiRWxlbWVudCIsICJzcGxpdCIsICJyZWR1Y2UiLCAicHYiLCAiY3YiLCAiY2kiLCAicXVlcnlTZWxlY3RvciIsICJzaGFkb3dSb290IiwgImFkanVzdGFibGVJbnB1dE51bWJlcnMiLCAibWFwcGVyIiwgInYiLCAiaGFuZGxlU2Nyb2xsIiwgImluYyIsICJOdW1iZXIiLCAic2hpZnRLZXkiLCAiY3RybEtleSIsICJkZWx0YVkiLCAiaW5kZXgiLCAic2VsZWN0aW9uU3RhcnQiLCAicmVwbGFjZSIsICJmb2N1cyIsICJzZXRTZWxlY3Rpb25SYW5nZSIsICJwcmV2ZW50RGVmYXVsdCIsICJkaXNwYXRjaEV2ZW50IiwgIkV2ZW50IiwgInBhc3NpdmUiLCAibWluIiwgIm1heCIsICJmbG9vciIsICJyb3VuZCIsICJNYXRoIiwgImhzdlRvUmdiIiwgImgiLCAiZiIsICJxIiwgIm1vZCIsICJoc3ZUb0hzbCIsICJyZ2JUb0hzdiIsICJnIiwgImIiLCAibWluVmFsIiwgIm1heFZhbCIsICJkZWx0YSIsICJkciIsICJkZyIsICJkYiIsICJjbXlrVG9Ic3YiLCAibSIsICJ5IiwgImsiLCAiaHNsVG9Ic3YiLCAibnMiLCAiaXNOYU4iLCAiaGV4VG9Ic3YiLCAiaGV4IiwgIm1hdGNoIiwgIm1hcCIsICJwYXJzZUludCIsICJwYXJzZVRvSFNWQSIsICJ0b0xvd2VyQ2FzZSIsICJjdHgiLCAiZ2V0Q29udGV4dCIsICJmaWxsU3R5bGUiLCAicmVnZXgiLCAiY215ayIsICJyZ2JhIiwgImhzbGEiLCAiaHN2YSIsICJoZXhhIiwgIm51bWFyaXplIiwgImFycmF5IiwgInRlc3QiLCAidW5kZWZpbmVkIiwgImludmFsaWQiLCAidHlwZSIsICJleGVjIiwgInZhbHVlcyIsICJqb2luIiwgInJhdyIsICJzdWJzdHJpbmciLCAiSFNWYUNvbG9yIiwgIm9yaWdpbmFsIiwgIm5leHQiLCAicHJlY2lzaW9uIiwgInRvRml4ZWQiLCAidGhhdCIsICJ0b0hTVkEiLCAidG9TdHJpbmciLCAidG9IU0xBIiwgInRvUkdCQSIsICJ0b0NNWUsiLCAicmdiIiwgInRvSEVYQSIsICJwYWRTdGFydCIsICJhbHBoYSIsICJ0b1VwcGVyQ2FzZSIsICJjbG9uZSIsICJjbGFtcCIsICJNb3ZlYWJsZSIsICJvcHQiLCAiYXNzaWduIiwgImxvY2siLCAib25jaGFuZ2UiLCAib25zdG9wIiwgIl9rZXlib2FyZCIsICJhY3RpdmVFbGVtZW50IiwgIndyYXBwZXIiLCAidXAiLCAicmlnaHQiLCAiZG93biIsICJsZWZ0IiwgInhtIiwgInltIiwgInVwZGF0ZSIsICJjYWNoZSIsICJ4IiwgInN0YXJ0c1dpdGgiLCAiX3RhcHN0YXJ0IiwgIl8iLCAiX3RhcHN0b3AiLCAiX3RhcG1vdmUiLCAiY2FuY2VsYWJsZSIsICJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCAidG91Y2giLCAidG91Y2hlcyIsICJjbGllbnRYIiwgImNsaWVudFkiLCAid2lkdGgiLCAidG9wIiwgImhlaWdodCIsICJzdHlsZSIsICJvZmZzZXRXaWR0aCIsICJvZmZzZXRIZWlnaHQiLCAiY3giLCAiY3kiLCAidHJpZ2dlciIsICJkZXN0cm95IiwgIlNlbGVjdGFibGUiLCAiY2xhc3NOYW1lIiwgIm9uVGFwIiwgImZvckVhY2giLCAiY2xhc3NMaXN0IiwgInN0b3BQcm9wYWdhdGlvbiIsICJ2YXJpYW50RmxpcE9yZGVyIiwgInN0YXJ0IiwgIm1pZGRsZSIsICJlbmQiLCAicG9zaXRpb25GbGlwT3JkZXIiLCAiYm90dG9tIiwgInBvc2l0aW9uIiwgIm1hcmdpbiIsICJwYWRkaW5nIiwgIkQiLCAiSFRNTEVsZW1lbnQiLCAicmVmZXJlbmNlIiwgInBvcHBlciIsICJFcnJvciIsICJjb250YWluZXIiLCAiYXJyb3ciLCAiQiIsICJNIiwgIkMiLCAiZG9jdW1lbnRFbGVtZW50IiwgIkYiLCAiSyIsICJTIiwgIlYiLCAidnMiLCAidm0iLCAidmUiLCAiaHMiLCAiaG0iLCAiaGUiLCAiJCIsICJSIiwgImoiLCAidSIsICJuIiwgImQiLCAidyIsICJ6IiwgIkwiLCAiUCIsICJUIiwgIk8iLCAiSCIsICJQaWNrciIsICJjb25zdHJ1Y3RvciIsICJfaW5pdGlhbGl6aW5nQWN0aXZlIiwgIl9yZWNhbGMiLCAiX25hbm9wb3AiLCAiX3Jvb3QiLCAiX2NvbG9yIiwgIl9sYXN0Q29sb3IiLCAiX3N3YXRjaENvbG9ycyIsICJfc2V0dXBBbmltYXRpb25GcmFtZSIsICJfZXZlbnRMaXN0ZW5lciIsICJpbml0IiwgInNhdmUiLCAiaGlkZSIsICJzaG93IiwgImNsZWFyIiwgImNoYW5nZSIsICJjaGFuZ2VzdG9wIiwgImNhbmNlbCIsICJzd2F0Y2hzZWxlY3QiLCAidGhpcyIsICJERUZBVUxUX09QVElPTlMiLCAic3dhdGNoZXMiLCAiY29tcG9uZW50cyIsICJ0aGVtZSIsICJzbGlkZXJzIiwgImxvY2tPcGFjaXR5IiwgImluY2x1ZGVzIiwgImludGVyYWN0aW9uIiwgInByZXZpZXciLCAib3BhY2l0eSIsICJodWUiLCAicGFsZXR0ZSIsICJfcHJlQnVpbGQiLCAiX2J1aWxkQ29tcG9uZW50cyIsICJfYmluZEV2ZW50cyIsICJfZmluYWxCdWlsZCIsICJjb2xvciIsICJhZGRTd2F0Y2giLCAiYnV0dG9uIiwgImFwcCIsICJjcmVhdGVQb3BwZXIiLCAic2V0QXR0cmlidXRlIiwgIl90IiwgInJlcXVlc3RBbmltYXRpb25GcmFtZSIsICJjYiIsICJzZXRDb2xvciIsICJkZWZhdWx0IiwgIl9yZVBvc2l0aW9uaW5nUGlja2VyIiwgImRlZmF1bHRSZXByZXNlbnRhdGlvbiIsICJfcmVwcmVzZW50YXRpb24iLCAic2V0Q29sb3JSZXByZXNlbnRhdGlvbiIsICJzaG93QWx3YXlzIiwgIl9lbWl0IiwgImluc3RhbmNlIiwgInVzZUFzQnV0dG9uIiwgImlubGluZSIsICJhcHBDbGFzcyIsICJoaWRkZW4iLCAiaW5wdXQiLCAiaW50IiwgImZpbmQiLCAiYWRkIiwgImNvbnRhaW5zIiwgImFwcGVuZENoaWxkIiwgInJlbW92ZUNoaWxkIiwgInBhcmVudCIsICJuZXh0U2libGluZyIsICJpbnNlcnRCZWZvcmUiLCAicmVtb3ZlIiwgInBhcmVudE5vZGUiLCAicmVwbGFjZUNoaWxkIiwgImRpc2FibGVkIiwgImRpc2FibGUiLCAiY29tcGFyaXNvbiIsICJ0cmFuc2l0aW9uIiwgImxhc3RDb2xvciIsICJpbnN0IiwgImNzIiwgInJlcGVhdCIsICJzbyIsICJzaCIsICJnZXRDb2xvciIsICJwaWNrZXIiLCAiY3VycmVudENvbG9yIiwgIl91cGRhdGVPdXRwdXQiLCAiY3NzUkdCYVN0cmluZyIsICJiYWNrZ3JvdW5kIiwgInNldFByb3BlcnR5IiwgInNsaWRlciIsICJiYWNrZ3JvdW5kQ29sb3IiLCAic2VsZWN0YWJsZSIsICJfY29tcG9uZW50cyIsICJldmVudEJpbmRpbmdzIiwgIl9jbGVhckNvbG9yIiwgInNldEhTVkEiLCAiYXBwbHlDb2xvciIsICJyZXN1bHQiLCAic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwgImNrIiwgImNsb3NlV2l0aEtleSIsICJpc09wZW4iLCAiY29kZSIsICJzb21lIiwgImFkanVzdGFibGVOdW1iZXJzIiwgInJhbmdlcyIsICJzdGVwIiwgInJhbmdlIiwgImdldENvbG9yUmVwcmVzZW50YXRpb24iLCAibnYiLCAidG9QcmVjaXNpb24iLCAiYXV0b1JlcG9zaXRpb24iLCAidGltZW91dCIsICJjbG9zZU9uU2Nyb2xsIiwgInNldFRpbWVvdXQiLCAicnMiLCAiY2xlYXJUaW1lb3V0IiwgIl9ldmVudEJpbmRpbmdzIiwgImJvZHkiLCAiZWIiLCAiaW5uZXJIZWlnaHQiLCAiaW5uZXJXaWR0aCIsICJldmVudFNvdXJjZSIsICJvdXRwdXRQcmVjaXNpb24iLCAic2lsZW50IiwgIl9wYXJzZUxvY2FsQ29sb3IiLCAiYWxwaGFNYWtlc0FDaGFuZ2UiLCAiaTE4biIsICJJMThOX0RFRkFVTFRTIiwgImV2ZW50IiwgImFyZ3MiLCAiY2FsbEJhY2tzIiwgImluZGV4T2YiLCAic3BsaWNlIiwgInJlbW92ZVN3YXRjaCIsICJzd2F0Y2hDb2xvciIsICJjYW5jZWxBbmltYXRpb25GcmFtZSIsICJkZXN0cm95QW5kUmVtb3ZlIiwgInJlY2FsYyIsICJzdHJpbmciLCAidXR5cGUiLCAiY2xpY2siLCAiZ2V0U2VsZWN0ZWRDb2xvciIsICJnZXRSb290IiwgImVuYWJsZSIsICJzdGF0aWMiLCAiVkVSU0lPTiIsICJtb2R1bGUiLCAiY29yZSIsICJpdCIsICJlIiwgImRvY3VtZW50IiwgImlzIiwgIlMiLCAiZiIsICJPIiwgIlAiLCAia2V5IiwgImEiLCAiYiIsICJjIiwgInNvdXJjZSIsICJleHBvcnRzIiwgIm93biIsICJwb3MiLCAicyIsICJpIiwgImwiLCAiY29kZVBvaW50QXQiLCAiaW5kZXgiLCAiZnJvbUNvZGVQb2ludCIsICJ4IiwgInJvb3QiLCAicGFyc2UiLCAidGV4dCIsICJ0b2tlbiIsICJjb21tZW50IiwgInUiLCAicCIsICJidWZmZXIiLCAic3RyaW5naWZ5IiwgInN0YWNrIiwgInYiLCAidmFsdWUiLCAibGlzdCIsICJKU09ONSIsICJpbXBvcnRfb2JzaWRpYW4iLCAic2V0dGluZ3MiLCAiX2EiLCAiaW5kZXgiLCAidCIsICJlIiwgIm4iLCAiciIsICJpIiwgIm8iLCAiYyIsICJ1IiwgInMiLCAiZCIsICJiIiwgIkEiLCAiRiIsICJ2IiwgIkgiLCAiQiIsICJDIiwgImsiLCAiUyIsICJSIiwgIk0iLCAiTyIsICJMIiwgIkciLCAiaiIsICJYIiwgIkkiLCAiWSIsICJhIiwgImwiLCAiZiIsICJoIiwgInAiLCAiZyIsICJtIiwgInkiLCAiRSIsICJ0ZXh0IiwgInZhbHVlIiwgImUiLCAiX2EiLCAiUGlja3IiLCAiaSIsICJib2R5IiwgIl9hIiwgImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaW1wb3J0X29ic2lkaWFuIiwgImkiLCAiaW1wb3J0X29ic2lkaWFuIiwgImltcG9ydF9vYnNpZGlhbiIsICJfYSIsICJlIiwgImltcG9ydF9vYnNpZGlhbiIsICJjaGVja3MiLCAiaW5kZXgiLCAiYWxsIiwgImtleSIsICJkIiwgImlzIiwgImluZGV4IiwgIm9rIiwgImluZGV4IiwgImluZGV4IiwgImtleSIsICJfIiwgIl8iLCAiXyIsICJodG1sIiwgInN2ZyIsICJwYXJzZSIsICJpbmRleCIsICJwYXJzZSIsICJzdHJpbmdpZnkiLCAib3duIiwgImgiLCAiaW5kZXgiLCAia2V5IiwgInBhcnNlIiwgInZhbHVlIiwgImgiLCAiaHRtbCIsICJzIiwgInN2ZyIsICJzZWFyY2giLCAiaW5kZXgiLCAicG9pbnQiLCAib3duIiwgInN2ZyIsICJodG1sIiwgIm9rIiwgImluZGV4IiwgInMiLCAiaCIsICJwb3NpdGlvbiIsICJsb2NhdGlvbiIsICJrZXkiLCAib3BlbmluZyIsICJjbG9zaW5nIiwgInBvaW50IiwgIkNPREVfUE9JTlRTIiwgIkVSUiIsICJpIiwgIlRva2VuVHlwZSIsICJpIiwgImMiLCAiYyIsICJfYSIsICJDaGFyQ29kZXMiLCAiQmluVHJpZUZsYWdzIiwgIkVudGl0eURlY29kZXJTdGF0ZSIsICJEZWNvZGluZ01vZGUiLCAiZXJyb3JzIiwgImJhc2UiLCAiX2EiLCAiTlMiLCAiQVRUUlMiLCAiRE9DVU1FTlRfTU9ERSIsICJUQUdfTkFNRVMiLCAiVEFHX0lEIiwgIl9hIiwgIiQiLCAiU3RhdGUiLCAiaXNBc2NpaUFscGhhTnVtZXJpYyIsICJpc0VudGl0eUluQXR0cmlidXRlSW52YWxpZEVuZCIsICJfYSIsICJpIiwgImN0IiwgImxvY2F0aW9uIiwgImRvY3VtZW50IiwgImVsZW1lbnQiLCAiaSIsICJFbnRyeVR5cGUiLCAiaSIsICJlbGVtZW50IiwgImVudHJ5IiwgImRvY3VtZW50IiwgInRleHQiLCAiaiIsICJlbGVtZW50IiwgImxvY2F0aW9uIiwgImkiLCAiSW5zZXJ0aW9uTW9kZSIsICJkb2N1bWVudCIsICJodG1sIiwgIl9hIiwgImVsZW1lbnQiLCAibG9jYXRpb24iLCAic2libGluZ3MiLCAiaSIsICJwIiwgImluZGV4IiwgImMiLCAicGFyc2UiLCAiaHRtbCIsICJwb3NpdGlvbiIsICJwb2ludCIsICJpbmRleCIsICJwYXRoIiwgImluZGV4IiwgIm5vcm1hbGl6ZSIsICJwYXRoIiwgImluZGV4IiwgImluZGV4IiwgInByb3AiLCAiYmFzZW5hbWUiLCAiZGlybmFtZSIsICJhc3NlcnRQYXRoIiwgImV4dG5hbWUiLCAicGF0aCIsICJwYXJzZSIsICJjYW1lbGNhc2UiLCAib2siLCAidmFsdWUiLCAiXyIsICIkMiIsICJvd24iLCAia2V5IiwgIm9uZSIsICJpbmRleCIsICJhbGwiLCAib3duIiwgImluZGV4IiwgImVtcHR5IiwgImluY3JlbWVudCIsICJpbmRleCIsICJzaWJsaW5ncyIsICJvd24iLCAiaW5kZXgiLCAiZHQiLCAiaHRtbCIsICJwIiwgIl8iLCAiaW5kZXgiLCAiYm9keSIsICJodG1sIiwgInRib2R5IiwgImhlYWQiLCAiaW5kZXgiLCAiZWxlbWVudCIsICJpbmRleCIsICJzdmciLCAia2V5IiwgIngiLCAieSIsICJzdHJpbmdpZnkiLCAiXyIsICJpbmRleCIsICJlbGVtZW50IiwgImVtcHR5T3B0aW9ucyIsICJlbXB0eUNoaWxkcmVuIiwgIm9uZSIsICJhbGwiLCAic3ZnIiwgImh0bWwiLCAiaW5kZXgiLCAiaW1wb3J0X29ic2lkaWFuIiwgIl9hIiwgIl9hIiwgInRleHQiLCAiZWxlbWVudCIsICJfYSIsICJfIiwgImtleSIsICJ0ZXh0IiwgImZvbGQiLCAiaW5kZXgiLCAicmVzdWx0IiwgIl9hIiwgImNvZGVTZWN0aW9uIiwgIl9hIiwgIl8iLCAiZSIsICJfYSIsICJwb3NpdGlvbiIsICJyZW1vdmVGb2xkTGFuZ3VhZ2VzIiwgImxhbmciLCAiZW1wdHkiLCAicGx1Z2luIiwgImZvbGRTdGFydCIsICJmb2xkRW5kIiwgImkiLCAiY29udmVydENvbW1lbnRMaW5rcyIsICJ0ZXh0IiwgInN0eWxlIiwgImVsZW1lbnQiLCAia2V5IiwgIl9hIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3V0aWxzL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdXRpbHMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy91dGlscy9oc3ZhY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9saWJzL21vdmVhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvbGlicy9zZWxlY3RhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdGVtcGxhdGUuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3NyYy9pbmRleC50cyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3BpY2tyLmpzIiwgIm5vZGVfbW9kdWxlcy9qc29uNS9kaXN0L2luZGV4LmpzIiwgInNyYy9tYWluLnRzIiwgInNyYy9TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3NUYWIudHMiLCAibm9kZV9tb2R1bGVzL2NvbG9ydHJhbnNsYXRvci9lc20vaW5kZXguanMiLCAic3JjL0FwcGx5U3R5bGluZy50cyIsICJzcmMvRWRpdGluZ1ZpZXcudHMiLCAic3JjL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZy50cyIsICJzcmMvRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJncy50cyIsICJzcmMvUmVmZXJlbmNpbmcudHMiLCAic3JjL1BhcnNpbmcvUmVmZXJlbmNlUGFyc2luZy50cyIsICJzcmMvUmVhZGluZ1ZpZXcudHMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2NvbG9yLmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kZXZsb3AvbGliL2RlZmF1bHQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3R5cGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9kZWZpbmVkLWluZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3hsaW5rLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3N2Zy5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2xpYi9jcmVhdGUtaC5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlLWxvY2F0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvd2ViLW5hbWVzcGFjZXMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLXBhcnNlNS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi91bmljb2RlLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vZXJyb3ItY29kZXMuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3Rva2VuaXplci9wcmVwcm9jZXNzb3IuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi90b2tlbi5qcyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9nZW5lcmF0ZWQvZ2VuZXJhdGVkL2RlY29kZS1kYXRhLWh0bWwudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS14bWwudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZGVjb2RlX2NvZGVwb2ludC50cyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9kZWNvZGUudHMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC90b2tlbml6ZXIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9vcGVuLWVsZW1lbnQtc3RhY2suanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvcGFyc2VyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2VzY2FwZS50cyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3Qvc2VyaWFsaXplci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvdmZpbGUtbWVzc2FnZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9saWIvZXJyb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaHRtbC12b2lkLWVsZW1lbnRzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy96d2l0Y2gvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvY29yZS5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLWhleGFkZWNpbWFsLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8tZGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWxlZ2FjeS9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWh0bWw0L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvbnN0YW50L2Rhbmdlcm91cy5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLW5hbWVkLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvZm9ybWF0LXNtYXJ0LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2NvbW1lbnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvY2NvdW50L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtd2hpdGVzcGFjZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi91dGlsL3NpYmxpbmdzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb21pc3Npb24uanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi9jbG9zaW5nLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb3BlbmluZy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9lbGVtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3RleHQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvcmF3LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3Jvb3QuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9pbmRleC5qcyIsICJzcmMvUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZy50cyIsICJzcmMvQ29kZWJsb2NrRGVjb3JhdGluZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiUGlja3JcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiUGlja3JcIl0gPSBmYWN0b3J5KCk7XG59KShzZWxmLCAoKSA9PiB7XG5yZXR1cm4gIiwgIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4iLCAiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwgIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCAiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwgIi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1yZXN0LXBhcmFtcyAqL1xuZnVuY3Rpb24gZXZlbnRMaXN0ZW5lcihtZXRob2QsIGVsZW1lbnRzLCBldmVudHMsIGZuLCBvcHRpb25zID0ge30pIHtcblxuICAgIC8vIE5vcm1hbGl6ZSBhcnJheVxuICAgIGlmIChlbGVtZW50cyBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uIHx8IGVsZW1lbnRzIGluc3RhbmNlb2YgTm9kZUxpc3QpIHtcbiAgICAgICAgZWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnRzKTtcbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkge1xuICAgICAgICBlbGVtZW50cyA9IFtlbGVtZW50c107XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV2ZW50cykpIHtcbiAgICAgICAgZXZlbnRzID0gW2V2ZW50c107XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgICBmb3IgKGNvbnN0IGV2IG9mIGV2ZW50cykge1xuICAgICAgICAgICAgZWxbbWV0aG9kXShldiwgZm4sIHtjYXB0dXJlOiBmYWxzZSwgLi4ub3B0aW9uc30pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG59XG5cbi8qKlxuICogQWRkIGV2ZW50KHMpIHRvIGVsZW1lbnQocykuXG4gKiBAcGFyYW0gZWxlbWVudHMgRE9NLUVsZW1lbnRzXG4gKiBAcGFyYW0gZXZlbnRzIEV2ZW50IG5hbWVzXG4gKiBAcGFyYW0gZm4gQ2FsbGJhY2tcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnNcbiAqIEByZXR1cm4gQXJyYXkgcGFzc2VkIGFyZ3VtZW50c1xuICovXG5leHBvcnQgY29uc3Qgb24gPSBldmVudExpc3RlbmVyLmJpbmQobnVsbCwgJ2FkZEV2ZW50TGlzdGVuZXInKTtcblxuLyoqXG4gKiBSZW1vdmUgZXZlbnQocykgZnJvbSBlbGVtZW50KHMpLlxuICogQHBhcmFtIGVsZW1lbnRzIERPTS1FbGVtZW50c1xuICogQHBhcmFtIGV2ZW50cyBFdmVudCBuYW1lc1xuICogQHBhcmFtIGZuIENhbGxiYWNrXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zXG4gKiBAcmV0dXJuIEFycmF5IHBhc3NlZCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IG9mZiA9IGV2ZW50TGlzdGVuZXIuYmluZChudWxsLCAncmVtb3ZlRXZlbnRMaXN0ZW5lcicpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gRE9NLUVsZW1lbnQgb3V0IG9mIGEgc3RyaW5nIChTaW5nbGUgZWxlbWVudCkuXG4gKiBAcGFyYW0gaHRtbCBIVE1MIHJlcHJlc2VudGluZyBhIHNpbmdsZSBlbGVtZW50XG4gKiBAcmV0dXJucyB7RWxlbWVudCB8IG51bGx9IFRoZSBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoaHRtbCkge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi5pbm5lckhUTUwgPSBodG1sLnRyaW0oKTtcbiAgICByZXR1cm4gZGl2LmZpcnN0RWxlbWVudENoaWxkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaHRtbCBlbGVtZW50LCBldmVyeSBlbGVtZW50IHdoaWNoIGhhc1xuICogYSAnOnJlZicgYXR0cmlidXRlIHdpbGwgYmUgc2F2ZWQgaW4gYSBvYmplY3QgKHdoaWNoIHdpbGwgYmUgcmV0dXJuZWQpXG4gKiB3aGVyZSB0aGUgdmFsdWUgb2YgJzpyZWYnIGlzIHRoZSBvYmplY3Qta2V5IGFuZCB0aGUgdmFsdWUgdGhlIEhUTUxFbGVtZW50LlxuICpcbiAqIEl0J3MgcG9zc2libGUgdG8gY3JlYXRlIGEgaGllcmFyY2h5IGlmIHlvdSBhZGQgYSAnOm9iaicgYXR0cmlidXRlLiBFdmVyeVxuICogc2libGluZyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBvYmplY3Qgd2hpY2ggd2lsbCBnZXQgdGhlIG5hbWUgZnJvbSB0aGUgJ2RhdGEtY29uJyBhdHRyaWJ1dGUuXG4gKlxuICogSWYgeW91IHdhbnQgdG8gY3JlYXRlIGFuIEFycmF5IG91dCBvZiBtdWx0aXBsZSBlbGVtZW50cywgeW91IGNhbiB1c2UgdGhlICc6YXJyJyBhdHRyaWJ1dGUsXG4gKiB0aGUgdmFsdWUgZGVmaW5lcyB0aGUga2V5IGFuZCBhbGwgZWxlbWVudHMsIHdoaWNoIGhhcyB0aGUgc2FtZSBwYXJlbnQgYW5kIHRoZSBzYW1lICdkYXRhLWFycicgYXR0cmlidXRlLFxuICogd291bGQgYmUgYWRkZWQgdG8gaXQuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBIVE1MIFN0cmluZy5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJvbVRlbXBsYXRlKHN0cikge1xuXG4gICAgLy8gUmVtb3ZlcyBhbiBhdHRyaWJ1dGUgZnJvbSBhIEhUTUxFbGVtZW50IGFuZCByZXR1cm5zIHRoZSB2YWx1ZS5cbiAgICBjb25zdCByZW1vdmVBdHRyaWJ1dGUgPSAoZWwsIG5hbWUpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbC5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICAvLyBSZWN1cnNpdmUgZnVuY3Rpb24gdG8gcmVzb2x2ZSB0ZW1wbGF0ZVxuICAgIGNvbnN0IHJlc29sdmUgPSAoZWxlbWVudCwgYmFzZSA9IHt9KSA9PiB7XG5cbiAgICAgICAgLy8gQ2hlY2sga2V5IGFuZCBjb250YWluZXIgYXR0cmlidXRlXG4gICAgICAgIGNvbnN0IGNvbiA9IHJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCAnOm9iaicpO1xuICAgICAgICBjb25zdCBrZXkgPSByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgJzpyZWYnKTtcbiAgICAgICAgY29uc3Qgc3VidHJlZSA9IGNvbiA/IChiYXNlW2Nvbl0gPSB7fSkgOiBiYXNlO1xuXG4gICAgICAgIC8vIENoZWNrIGFuZCBzYXZlIGVsZW1lbnRcbiAgICAgICAga2V5ICYmIChiYXNlW2tleV0gPSBlbGVtZW50KTtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBBcnJheS5mcm9tKGVsZW1lbnQuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICBjb25zdCBhcnIgPSByZW1vdmVBdHRyaWJ1dGUoY2hpbGQsICc6YXJyJyk7XG4gICAgICAgICAgICBjb25zdCBzdWIgPSByZXNvbHZlKGNoaWxkLCBhcnIgPyB7fSA6IHN1YnRyZWUpO1xuXG4gICAgICAgICAgICBpZiAoYXJyKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGFycmF5IGFuZCBhZGQgZWxlbWVudFxuICAgICAgICAgICAgICAgIChzdWJ0cmVlW2Fycl0gfHwgKHN1YnRyZWVbYXJyXSA9IFtdKSlcbiAgICAgICAgICAgICAgICAgICAgLnB1c2goT2JqZWN0LmtleXMoc3ViKS5sZW5ndGggPyBzdWIgOiBjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYmFzZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc29sdmUoY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoc3RyKSk7XG59XG5cbi8qKlxuICogUG9seWZpbGwgZm9yIHNhZmFyaSAmIGZpcmVmb3ggZm9yIHRoZSBldmVudFBhdGggZXZlbnQgcHJvcGVydHkuXG4gKiBAcGFyYW0gZXZ0IFRoZSBldmVudCBvYmplY3QuXG4gKiBAcmV0dXJuIFtTdHJpbmddIGV2ZW50IHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVudFBhdGgoZXZ0KSB7XG4gICAgbGV0IHBhdGggPSBldnQucGF0aCB8fCAoZXZ0LmNvbXBvc2VkUGF0aCAmJiBldnQuY29tcG9zZWRQYXRoKCkpO1xuICAgIGlmIChwYXRoKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cblxuICAgIGxldCBlbCA9IGV2dC50YXJnZXQucGFyZW50RWxlbWVudDtcbiAgICBwYXRoID0gW2V2dC50YXJnZXQsIGVsXTtcbiAgICB3aGlsZSAoZWwgPSBlbC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIHBhdGgucHVzaChlbCk7XG4gICAgfVxuXG4gICAgcGF0aC5wdXNoKGRvY3VtZW50LCB3aW5kb3cpO1xuICAgIHJldHVybiBwYXRoO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgSFRNTEVsZW1lbnQgYnkgcXVlcnkuXG4gKiBAcGFyYW0gdmFsXG4gKiBAcmV0dXJucyB7bnVsbHxEb2N1bWVudHxFbGVtZW50fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVsZW1lbnQodmFsKSB7XG4gICAgaWYgKHZhbCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWwuc3BsaXQoLz4+L2cpLnJlZHVjZSgocHYsIGN2LCBjaSwgYSkgPT4ge1xuICAgICAgICAgICAgcHYgPSBwdi5xdWVyeVNlbGVjdG9yKGN2KTtcbiAgICAgICAgICAgIHJldHVybiBjaSA8IGEubGVuZ3RoIC0gMSA/IHB2LnNoYWRvd1Jvb3QgOiBwdjtcbiAgICAgICAgfSwgZG9jdW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIG51bWJlcnMgaW4gYW4gaW5wdXQgZmllbGQgd2l0aCB0aGUgc2Nyb2xsLXdoZWVsLlxuICogQHBhcmFtIGVsXG4gKiBAcGFyYW0gbWFwcGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RhYmxlSW5wdXROdW1iZXJzKGVsLCBtYXBwZXIgPSB2ID0+IHYpIHtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZVNjcm9sbChlKSB7XG4gICAgICAgIGNvbnN0IGluYyA9IChbMC4wMDEsIDAuMDEsIDAuMV0pW051bWJlcihlLnNoaWZ0S2V5IHx8IGUuY3RybEtleSAqIDIpXSAqIChlLmRlbHRhWSA8IDAgPyAxIDogLTEpO1xuXG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGxldCBvZmYgPSBlbC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgZWwudmFsdWUgPSBlbC52YWx1ZS5yZXBsYWNlKC9bXFxkLl0rL2csICh2LCBpKSA9PiB7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIG51bWJlciBpcyBpbiBjdXJzb3IgcmFuZ2UgYW5kIGluY3JlYXNlIGl0XG4gICAgICAgICAgICBpZiAoaSA8PSBvZmYgJiYgaSArIHYubGVuZ3RoID49IG9mZikge1xuICAgICAgICAgICAgICAgIG9mZiA9IGk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcHBlcihOdW1iZXIodiksIGluYywgaW5kZXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgIGVsLnNldFNlbGVjdGlvblJhbmdlKG9mZiwgb2ZmKTtcblxuICAgICAgICAvLyBQcmV2ZW50IGRlZmF1bHQgYW5kIHRyaWdnZXIgaW5wdXQgZXZlbnRcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfVxuXG4gICAgLy8gQmluZCBldmVudHNcbiAgICBvbihlbCwgJ2ZvY3VzJywgKCkgPT4gb24od2luZG93LCAnd2hlZWwnLCBoYW5kbGVTY3JvbGwsIHtwYXNzaXZlOiBmYWxzZX0pKTtcbiAgICBvbihlbCwgJ2JsdXInLCAoKSA9PiBvZmYod2luZG93LCAnd2hlZWwnLCBoYW5kbGVTY3JvbGwpKTtcbn1cbiIsICIvLyBTaG9ydGhhbmRzXG5jb25zdCB7bWluLCBtYXgsIGZsb29yLCByb3VuZH0gPSBNYXRoO1xuXG4vKipcbiAqIFRyaWVzIHRvIGNvbnZlcnQgYSBjb2xvciBuYW1lIHRvIHJnYi9hIGhleCByZXByZXNlbnRhdGlvblxuICogQHBhcmFtIG5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCBDYW52YXNHcmFkaWVudCB8IENhbnZhc1BhdHRlcm59XG4gKi9cbmZ1bmN0aW9uIHN0YW5kYXJkaXplQ29sb3IobmFtZSkge1xuXG4gICAgLy8gU2luY2UgaW52YWxpZCBjb2xvcidzIHdpbGwgYmUgcGFyc2VkIGFzIGJsYWNrLCBmaWx0ZXIgdGhlbSBvdXRcbiAgICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYmxhY2snKSB7XG4gICAgICAgIHJldHVybiAnIzAwMCc7XG4gICAgfVxuXG4gICAgY29uc3QgY3R4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjdHguZmlsbFN0eWxlID0gbmFtZTtcbiAgICByZXR1cm4gY3R4LmZpbGxTdHlsZSA9PT0gJyMwMDAnID8gbnVsbCA6IGN0eC5maWxsU3R5bGU7XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gUkdCLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge251bWJlcltdfSBBcnJheSB3aXRoIHJnYiB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb1JnYihoLCBzLCB2KSB7XG4gICAgaCA9IChoIC8gMzYwKSAqIDY7XG4gICAgcyAvPSAxMDA7XG4gICAgdiAvPSAxMDA7XG5cbiAgICBjb25zdCBpID0gZmxvb3IoaCk7XG5cbiAgICBjb25zdCBmID0gaCAtIGk7XG4gICAgY29uc3QgcCA9IHYgKiAoMSAtIHMpO1xuICAgIGNvbnN0IHEgPSB2ICogKDEgLSBmICogcyk7XG4gICAgY29uc3QgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcblxuICAgIGNvbnN0IG1vZCA9IGkgJSA2O1xuICAgIGNvbnN0IHIgPSBbdiwgcSwgcCwgcCwgdCwgdl1bbW9kXTtcbiAgICBjb25zdCBnID0gW3QsIHYsIHYsIHEsIHAsIHBdW21vZF07XG4gICAgY29uc3QgYiA9IFtwLCBwLCB0LCB2LCB2LCBxXVttb2RdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgciAqIDI1NSxcbiAgICAgICAgZyAqIDI1NSxcbiAgICAgICAgYiAqIDI1NVxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gSGV4LlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge3N0cmluZ1tdfSBIZXggdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb0hleChoLCBzLCB2KSB7XG4gICAgcmV0dXJuIGhzdlRvUmdiKGgsIHMsIHYpLm1hcCh2ID0+XG4gICAgICAgIHJvdW5kKHYpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpXG4gICAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBDTVlLLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge251bWJlcltdfSBDTVlLIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9DbXlrKGgsIHMsIHYpIHtcbiAgICBjb25zdCByZ2IgPSBoc3ZUb1JnYihoLCBzLCB2KTtcbiAgICBjb25zdCByID0gcmdiWzBdIC8gMjU1O1xuICAgIGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgY29uc3QgYiA9IHJnYlsyXSAvIDI1NTtcblxuICAgIGNvbnN0IGsgPSBtaW4oMSAtIHIsIDEgLSBnLCAxIC0gYik7XG4gICAgY29uc3QgYyA9IGsgPT09IDEgPyAwIDogKDEgLSByIC0gaykgLyAoMSAtIGspO1xuICAgIGNvbnN0IG0gPSBrID09PSAxID8gMCA6ICgxIC0gZyAtIGspIC8gKDEgLSBrKTtcbiAgICBjb25zdCB5ID0gayA9PT0gMSA/IDAgOiAoMSAtIGIgLSBrKSAvICgxIC0gayk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgICBjICogMTAwLFxuICAgICAgICBtICogMTAwLFxuICAgICAgICB5ICogMTAwLFxuICAgICAgICBrICogMTAwXG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBIU0wuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IEhTTCB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvSHNsKGgsIHMsIHYpIHtcbiAgICBzIC89IDEwMDtcbiAgICB2IC89IDEwMDtcblxuICAgIGNvbnN0IGwgPSAoMiAtIHMpICogdiAvIDI7XG5cbiAgICBpZiAobCAhPT0gMCkge1xuICAgICAgICBpZiAobCA9PT0gMSkge1xuICAgICAgICAgICAgcyA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAobCA8IDAuNSkge1xuICAgICAgICAgICAgcyA9IHMgKiB2IC8gKGwgKiAyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMgPSBzICogdiAvICgyIC0gbCAqIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgaCxcbiAgICAgICAgcyAqIDEwMCxcbiAgICAgICAgbCAqIDEwMFxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBSR0IgdG8gSFNWLlxuICogQHBhcmFtIHIgUmVkXG4gKiBAcGFyYW0gZyBHcmVlblxuICogQHBhcmFtIGIgQmx1ZVxuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIHJnYlRvSHN2KHIsIGcsIGIpIHtcbiAgICByIC89IDI1NTtcbiAgICBnIC89IDI1NTtcbiAgICBiIC89IDI1NTtcblxuICAgIGNvbnN0IG1pblZhbCA9IG1pbihyLCBnLCBiKTtcbiAgICBjb25zdCBtYXhWYWwgPSBtYXgociwgZywgYik7XG4gICAgY29uc3QgZGVsdGEgPSBtYXhWYWwgLSBtaW5WYWw7XG5cbiAgICBsZXQgaCwgcztcbiAgICBjb25zdCB2ID0gbWF4VmFsO1xuICAgIGlmIChkZWx0YSA9PT0gMCkge1xuICAgICAgICBoID0gcyA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcyA9IGRlbHRhIC8gbWF4VmFsO1xuICAgICAgICBjb25zdCBkciA9ICgoKG1heFZhbCAtIHIpIC8gNikgKyAoZGVsdGEgLyAyKSkgLyBkZWx0YTtcbiAgICAgICAgY29uc3QgZGcgPSAoKChtYXhWYWwgLSBnKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XG4gICAgICAgIGNvbnN0IGRiID0gKCgobWF4VmFsIC0gYikgLyA2KSArIChkZWx0YSAvIDIpKSAvIGRlbHRhO1xuXG4gICAgICAgIGlmIChyID09PSBtYXhWYWwpIHtcbiAgICAgICAgICAgIGggPSBkYiAtIGRnO1xuICAgICAgICB9IGVsc2UgaWYgKGcgPT09IG1heFZhbCkge1xuICAgICAgICAgICAgaCA9ICgxIC8gMykgKyBkciAtIGRiO1xuICAgICAgICB9IGVsc2UgaWYgKGIgPT09IG1heFZhbCkge1xuICAgICAgICAgICAgaCA9ICgyIC8gMykgKyBkZyAtIGRyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGggPCAwKSB7XG4gICAgICAgICAgICBoICs9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoaCA+IDEpIHtcbiAgICAgICAgICAgIGggLT0gMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIGggKiAzNjAsXG4gICAgICAgIHMgKiAxMDAsXG4gICAgICAgIHYgKiAxMDBcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgQ01ZSyB0byBIU1YuXG4gKiBAcGFyYW0gYyBDeWFuXG4gKiBAcGFyYW0gbSBNYWdlbnRhXG4gKiBAcGFyYW0geSBZZWxsb3dcbiAqIEBwYXJhbSBrIEtleSAoQmxhY2spXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gY215a1RvSHN2KGMsIG0sIHksIGspIHtcbiAgICBjIC89IDEwMDtcbiAgICBtIC89IDEwMDtcbiAgICB5IC89IDEwMDtcbiAgICBrIC89IDEwMDtcblxuICAgIGNvbnN0IHIgPSAoMSAtIG1pbigxLCBjICogKDEgLSBrKSArIGspKSAqIDI1NTtcbiAgICBjb25zdCBnID0gKDEgLSBtaW4oMSwgbSAqICgxIC0gaykgKyBrKSkgKiAyNTU7XG4gICAgY29uc3QgYiA9ICgxIC0gbWluKDEsIHkgKiAoMSAtIGspICsgaykpICogMjU1O1xuXG4gICAgcmV0dXJuIFsuLi5yZ2JUb0hzdihyLCBnLCBiKV07XG59XG5cbi8qKlxuICogQ29udmVydCBIU0wgdG8gSFNWLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gbCBMaWdodG5lc3NcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBoc2xUb0hzdihoLCBzLCBsKSB7XG4gICAgcyAvPSAxMDA7XG4gICAgbCAvPSAxMDA7XG4gICAgcyAqPSBsIDwgMC41ID8gbCA6IDEgLSBsO1xuXG4gICAgY29uc3QgbnMgPSAoMiAqIHMgLyAobCArIHMpKSAqIDEwMDtcbiAgICBjb25zdCB2ID0gKGwgKyBzKSAqIDEwMDtcbiAgICByZXR1cm4gW2gsIGlzTmFOKG5zKSA/IDAgOiBucywgdl07XG59XG5cbi8qKlxuICogQ29udmVydCBIRVggdG8gSFNWLlxuICogQHBhcmFtIGhleCBIZXhhZGVjaW1hbCBzdHJpbmcgb2YgcmdiIGNvbG9ycywgY2FuIGhhdmUgbGVuZ3RoIDMgb3IgNi5cbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBoZXhUb0hzdihoZXgpIHtcbiAgICByZXR1cm4gcmdiVG9Ic3YoLi4uaGV4Lm1hdGNoKC8uezJ9L2cpLm1hcCh2ID0+IHBhcnNlSW50KHYsIDE2KSkpO1xufVxuXG4vKipcbiAqIFRyeSdzIHRvIHBhcnNlIGEgc3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBjb2xvciB0byBhIEhTViBhcnJheS5cbiAqIEN1cnJlbnQgc3VwcG9ydGVkIHR5cGVzIGFyZSBjbXlrLCByZ2JhLCBoc2xhIGFuZCBoZXhhZGVjaW1hbC5cbiAqIEBwYXJhbSBzdHJcbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvSFNWQShzdHIpIHtcblxuICAgIC8vIENoZWNrIGlmIHN0cmluZyBpcyBhIGNvbG9yLW5hbWVcbiAgICBzdHIgPSBzdHIubWF0Y2goL15bYS16QS1aXSskLykgPyBzdGFuZGFyZGl6ZUNvbG9yKHN0cikgOiBzdHI7XG5cbiAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb25zIHRvIG1hdGNoIGRpZmZlcmVudCB0eXBlcyBvZiBjb2xvciByZXByZXNlbnRpb25cbiAgICBjb25zdCByZWdleCA9IHtcbiAgICAgICAgY215azogL15jbXlrXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKS9pLFxuICAgICAgICByZ2JhOiAvXnJnYmE/XFxEKyhbXFxkLl0rKSglPylcXEQrKFtcXGQuXSspKCU/KVxcRCsoW1xcZC5dKykoJT8pXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoc2xhOiAvXmhzbGE/XFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoc3ZhOiAvXmhzdmE/XFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoZXhhOiAvXiM/KChbXFxkQS1GYS1mXXszLDR9KXwoW1xcZEEtRmEtZl17Nn0pfChbXFxkQS1GYS1mXXs4fSkpJC9pXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRha2VzIGFuIEFycmF5IG9mIGFueSB0eXBlLCBjb252ZXJ0IHN0cmluZ3Mgd2hpY2ggcmVwcmVzZW50c1xuICAgICAqIGEgbnVtYmVyIHRvIGEgbnVtYmVyIGFuIGFueXRoaW5nIGVsc2UgdG8gdW5kZWZpbmVkLlxuICAgICAqIEBwYXJhbSBhcnJheVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICovXG4gICAgY29uc3QgbnVtYXJpemUgPSBhcnJheSA9PiBhcnJheS5tYXAodiA9PiAvXih8XFxkKylcXC5cXGQrfFxcZCskLy50ZXN0KHYpID8gTnVtYmVyKHYpIDogdW5kZWZpbmVkKTtcblxuICAgIGxldCBtYXRjaDtcbiAgICBpbnZhbGlkOiBmb3IgKGNvbnN0IHR5cGUgaW4gcmVnZXgpIHtcblxuICAgICAgICAvLyBDaGVjayBpZiBjdXJyZW50IHNjaGVtZSBwYXNzZWRcbiAgICAgICAgaWYgKCEobWF0Y2ggPSByZWdleFt0eXBlXS5leGVjKHN0cikpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyeSB0byBjb252ZXJ0XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY215ayc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBjLCBtLCB5LCBrXSA9IG51bWFyaXplKG1hdGNoKTtcblxuICAgICAgICAgICAgICAgIGlmIChjID4gMTAwIHx8IG0gPiAxMDAgfHwgeSA+IDEwMCB8fCBrID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IGNteWtUb0hzdihjLCBtLCB5LCBrKSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdyZ2JhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCByLCAsIGcsICwgYiwgLCAsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xuXG4gICAgICAgICAgICAgICAgciA9IG1hdGNoWzJdID09PSAnJScgPyAociAvIDEwMCkgKiAyNTUgOiByO1xuICAgICAgICAgICAgICAgIGcgPSBtYXRjaFs0XSA9PT0gJyUnID8gKGcgLyAxMDApICogMjU1IDogZztcbiAgICAgICAgICAgICAgICBiID0gbWF0Y2hbNl0gPT09ICclJyA/IChiIC8gMTAwKSAqIDI1NSA6IGI7XG4gICAgICAgICAgICAgICAgYSA9IG1hdGNoWzldID09PSAnJScgPyAoYSAvIDEwMCkgOiBhO1xuXG4gICAgICAgICAgICAgICAgaWYgKHIgPiAyNTUgfHwgZyA+IDI1NSB8fCBiID4gMjU1IHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5yZ2JUb0hzdihyLCBnLCBiKSwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaGV4YSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgaGV4XSA9IG1hdGNoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGhleC5sZW5ndGggPT09IDQgfHwgaGV4Lmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgICAgICAgICBoZXggPSBoZXguc3BsaXQoJycpLm1hcCh2ID0+IHYgKyB2KS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByYXcgPSBoZXguc3Vic3RyaW5nKDAsIDYpO1xuICAgICAgICAgICAgICAgIGxldCBhID0gaGV4LnN1YnN0cmluZyg2KTtcblxuICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgMCAtIDI1NSB0byAwIC0gMSBmb3Igb3BhY2l0eVxuICAgICAgICAgICAgICAgIGEgPSBhID8gKHBhcnNlSW50KGEsIDE2KSAvIDI1NSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogWy4uLmhleFRvSHN2KHJhdyksIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2hzbGEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIGgsIHMsIGwsICwgYV0gPSBudW1hcml6ZShtYXRjaCk7XG4gICAgICAgICAgICAgICAgYSA9IG1hdGNoWzZdID09PSAnJScgPyAoYSAvIDEwMCkgOiBhO1xuXG4gICAgICAgICAgICAgICAgaWYgKGggPiAzNjAgfHwgcyA+IDEwMCB8fCBsID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5oc2xUb0hzdihoLCBzLCBsKSwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaHN2YSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgaCwgcywgdiwgLCBhXSA9IG51bWFyaXplKG1hdGNoKTtcbiAgICAgICAgICAgICAgICBhID0gbWF0Y2hbNl0gPT09ICclJyA/IChhIC8gMTAwKSA6IGE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaCA+IDM2MCB8fCBzID4gMTAwIHx8IHYgPiAxMDAgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogW2gsIHMsIHYsIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7dmFsdWVzOiBudWxsLCB0eXBlOiBudWxsfTtcbn1cbiIsICJpbXBvcnQge2hzdlRvQ215aywgaHN2VG9IZXgsIGhzdlRvSHNsLCBoc3ZUb1JnYn0gZnJvbSAnLi9jb2xvcic7XG5cbi8qKlxuICogU2ltcGxlIGNsYXNzIHdoaWNoIGhvbGRzIHRoZSBwcm9wZXJ0aWVzXG4gKiBvZiB0aGUgY29sb3IgcmVwcmVzZW50aW9uIG1vZGVsIGhzbGEgKGh1ZSBzYXR1cmF0aW9uIGxpZ2h0bmVzcyBhbHBoYSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEhTVmFDb2xvcihoID0gMCwgcyA9IDAsIHYgPSAwLCBhID0gMSkge1xuICAgIGNvbnN0IG1hcHBlciA9IChvcmlnaW5hbCwgbmV4dCkgPT4gKHByZWNpc2lvbiA9IC0xKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KH5wcmVjaXNpb24gPyBvcmlnaW5hbC5tYXAodiA9PiBOdW1iZXIodi50b0ZpeGVkKHByZWNpc2lvbikpKSA6IG9yaWdpbmFsKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdGhhdCA9IHtcbiAgICAgICAgaCwgcywgdiwgYSxcblxuICAgICAgICB0b0hTVkEoKSB7XG4gICAgICAgICAgICBjb25zdCBoc3ZhID0gW3RoYXQuaCwgdGhhdC5zLCB0aGF0LnYsIHRoYXQuYV07XG4gICAgICAgICAgICBoc3ZhLnRvU3RyaW5nID0gbWFwcGVyKGhzdmEsIGFyciA9PiBgaHN2YSgke2FyclswXX0sICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7dGhhdC5hfSlgKTtcbiAgICAgICAgICAgIHJldHVybiBoc3ZhO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvSFNMQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhzbGEgPSBbLi4uaHN2VG9Ic2wodGhhdC5oLCB0aGF0LnMsIHRoYXQudiksIHRoYXQuYV07XG4gICAgICAgICAgICBoc2xhLnRvU3RyaW5nID0gbWFwcGVyKGhzbGEsIGFyciA9PiBgaHNsYSgke2FyclswXX0sICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7dGhhdC5hfSlgKTtcbiAgICAgICAgICAgIHJldHVybiBoc2xhO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvUkdCQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJnYmEgPSBbLi4uaHN2VG9SZ2IodGhhdC5oLCB0aGF0LnMsIHRoYXQudiksIHRoYXQuYV07XG4gICAgICAgICAgICByZ2JhLnRvU3RyaW5nID0gbWFwcGVyKHJnYmEsIGFyciA9PiBgcmdiYSgke2FyclswXX0sICR7YXJyWzFdfSwgJHthcnJbMl19LCAke3RoYXQuYX0pYCk7XG4gICAgICAgICAgICByZXR1cm4gcmdiYTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b0NNWUsoKSB7XG4gICAgICAgICAgICBjb25zdCBjbXlrID0gaHN2VG9DbXlrKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpO1xuICAgICAgICAgICAgY215ay50b1N0cmluZyA9IG1hcHBlcihjbXlrLCBhcnIgPT4gYGNteWsoJHthcnJbMF19JSwgJHthcnJbMV19JSwgJHthcnJbMl19JSwgJHthcnJbM119JSlgKTtcbiAgICAgICAgICAgIHJldHVybiBjbXlrO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvSEVYQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhleCA9IGhzdlRvSGV4KHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBhbHBoYSBjaGFubmVsIG1ha2Ugc2Vuc2UsIGNvbnZlcnQgaXQgdG8gMjU1IG51bWJlciBzcGFjZSwgY29udmVydFxuICAgICAgICAgICAgLy8gVG8gaGV4IGFuZCBwYWQgaXQgd2l0aCB6ZXJvcyBpZiBuZWVkZXQuXG4gICAgICAgICAgICBjb25zdCBhbHBoYSA9IHRoYXQuYSA+PSAxID8gJycgOiBOdW1iZXIoKHRoYXQuYSAqIDI1NSkudG9GaXhlZCgwKSlcbiAgICAgICAgICAgICAgICAudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICAgICAgLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoMiwgJzAnKTtcblxuICAgICAgICAgICAgYWxwaGEgJiYgaGV4LnB1c2goYWxwaGEpO1xuICAgICAgICAgICAgaGV4LnRvU3RyaW5nID0gKCkgPT4gYCMke2hleC5qb2luKCcnKS50b1VwcGVyQ2FzZSgpfWA7XG4gICAgICAgICAgICByZXR1cm4gaGV4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGNsb25lOiAoKSA9PiBIU1ZhQ29sb3IodGhhdC5oLCB0aGF0LnMsIHRoYXQudiwgdGhhdC5hKVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhhdDtcbn1cbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4uL3V0aWxzL3V0aWxzJztcblxuY29uc3QgY2xhbXAgPSB2ID0+IE1hdGgubWF4KE1hdGgubWluKHYsIDEpLCAwKTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1vdmVhYmxlKG9wdCkge1xuXG4gICAgY29uc3QgdGhhdCA9IHtcblxuICAgICAgICAvLyBBc3NpZ24gZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgb3B0aW9uczogT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICBsb2NrOiBudWxsLFxuICAgICAgICAgICAgb25jaGFuZ2U6ICgpID0+IDAsXG4gICAgICAgICAgICBvbnN0b3A6ICgpID0+IDBcbiAgICAgICAgfSwgb3B0KSxcblxuICAgICAgICBfa2V5Ym9hcmQoZSkge1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhhdDtcbiAgICAgICAgICAgIGNvbnN0IHt0eXBlLCBrZXl9ID0gZTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBNb3ZhYmxlIGlzIGZvY3VzZWQgYW5kIHRoZW4gbW92ZSBpdCBiYXNlZCBvbiBhcnJvdyBrZXkgaW5wdXRzXG4gICAgICAgICAgICAvLyBGb3IgaW1wcm92ZWQgYWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IG9wdGlvbnMud3JhcHBlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtsb2NrfSA9IHRoYXQub3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCB1cCA9IGtleSA9PT0gJ0Fycm93VXAnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0ID0ga2V5ID09PSAnQXJyb3dSaWdodCc7XG4gICAgICAgICAgICAgICAgY29uc3QgZG93biA9IGtleSA9PT0gJ0Fycm93RG93bic7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IGtleSA9PT0gJ0Fycm93TGVmdCc7XG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2tleWRvd24nICYmICh1cCB8fCByaWdodCB8fCBkb3duIHx8IGxlZnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB4bSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCB5bSA9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2sgPT09ICd2Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSAodXAgfHwgcmlnaHQpID8gMSA6IC0xO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2sgPT09ICdoJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSAodXAgfHwgcmlnaHQpID8gLTEgOiAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgeW0gPSB1cCA/IC0xIDogKGRvd24gPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB4bSA9IGxlZnQgPyAtMSA6IChyaWdodCA/IDEgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAodGhhdC5jYWNoZS54ICsgKDAuMDEgKiB4bSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAodGhhdC5jYWNoZS55ICsgKDAuMDEgKiB5bSkpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5zdGFydHNXaXRoKCdBcnJvdycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy5vbnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBfdGFwc3RhcnQoZXZ0KSB7XG4gICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ21vdXNldXAnLCAndG91Y2hlbmQnLCAndG91Y2hjYW5jZWwnXSwgdGhhdC5fdGFwc3RvcCk7XG4gICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ21vdXNlbW92ZScsICd0b3VjaG1vdmUnXSwgdGhhdC5fdGFwbW92ZSk7XG5cbiAgICAgICAgICAgIGlmIChldnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUcmlnZ2VyXG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKGV2dCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgX3RhcG1vdmUoZXZ0KSB7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9ucywgY2FjaGV9ID0gdGhhdDtcbiAgICAgICAgICAgIGNvbnN0IHtsb2NrLCBlbGVtZW50LCB3cmFwcGVyfSA9IG9wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBiID0gd3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgbGV0IHggPSAwLCB5ID0gMDtcbiAgICAgICAgICAgIGlmIChldnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b3VjaCA9IGV2dCAmJiBldnQudG91Y2hlcyAmJiBldnQudG91Y2hlc1swXTtcbiAgICAgICAgICAgICAgICB4ID0gZXZ0ID8gKHRvdWNoIHx8IGV2dCkuY2xpZW50WCA6IDA7XG4gICAgICAgICAgICAgICAgeSA9IGV2dCA/ICh0b3VjaCB8fCBldnQpLmNsaWVudFkgOiAwO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdG8gYm91bmRzXG4gICAgICAgICAgICAgICAgaWYgKHggPCBiLmxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgeCA9IGIubGVmdDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHggPiBiLmxlZnQgKyBiLndpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHggPSBiLmxlZnQgKyBiLndpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoeSA8IGIudG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBiLnRvcDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHkgPiBiLnRvcCArIGIuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBiLnRvcCArIGIuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIE5vcm1hbGl6ZVxuICAgICAgICAgICAgICAgIHggLT0gYi5sZWZ0O1xuICAgICAgICAgICAgICAgIHkgLT0gYi50b3A7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICAgICAgeCA9IGNhY2hlLnggKiBiLndpZHRoO1xuICAgICAgICAgICAgICAgIHkgPSBjYWNoZS55ICogYi5oZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsb2NrICE9PSAnaCcpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSBgY2FsYygke3ggLyBiLndpZHRoICogMTAwfSUgLSAke2VsZW1lbnQub2Zmc2V0V2lkdGggLyAyfXB4KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsb2NrICE9PSAndicpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IGBjYWxjKCR7eSAvIGIuaGVpZ2h0ICogMTAwfSUgLSAke2VsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMn1weClgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGF0LmNhY2hlID0ge3g6IHggLyBiLndpZHRoLCB5OiB5IC8gYi5oZWlnaHR9O1xuICAgICAgICAgICAgY29uc3QgY3ggPSBjbGFtcCh4IC8gYi53aWR0aCk7XG4gICAgICAgICAgICBjb25zdCBjeSA9IGNsYW1wKHkgLyBiLmhlaWdodCk7XG5cbiAgICAgICAgICAgIHN3aXRjaCAobG9jaykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3YnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeCk7XG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm9uY2hhbmdlKGN5KTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeCwgY3kpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIF90YXBzdG9wKCkge1xuICAgICAgICAgICAgdGhhdC5vcHRpb25zLm9uc3RvcCgpO1xuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsnbW91c2V1cCcsICd0b3VjaGVuZCcsICd0b3VjaGNhbmNlbCddLCB0aGF0Ll90YXBzdG9wKTtcbiAgICAgICAgICAgIF8ub2ZmKGRvY3VtZW50LCBbJ21vdXNlbW92ZScsICd0b3VjaG1vdmUnXSwgdGhhdC5fdGFwbW92ZSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdHJpZ2dlcigpIHtcbiAgICAgICAgICAgIHRoYXQuX3RhcG1vdmUoKTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGUoeCA9IDAsIHkgPSAwKSB7XG4gICAgICAgICAgICBjb25zdCB7bGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0fSA9IHRoYXQub3B0aW9ucy53cmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmxvY2sgPT09ICdoJykge1xuICAgICAgICAgICAgICAgIHkgPSB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKHtcbiAgICAgICAgICAgICAgICBjbGllbnRYOiBsZWZ0ICsgd2lkdGggKiB4LFxuICAgICAgICAgICAgICAgIGNsaWVudFk6IHRvcCArIGhlaWdodCAqIHlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlc3Ryb3koKSB7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9ucywgX3RhcHN0YXJ0LCBfa2V5Ym9hcmR9ID0gdGhhdDtcbiAgICAgICAgICAgIF8ub2ZmKGRvY3VtZW50LCBbJ2tleWRvd24nLCAna2V5dXAnXSwgX2tleWJvYXJkKTtcbiAgICAgICAgICAgIF8ub2ZmKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICdtb3VzZWRvd24nLCBfdGFwc3RhcnQpO1xuICAgICAgICAgICAgXy5vZmYoW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ3RvdWNoc3RhcnQnLCBfdGFwc3RhcnQsIHtcbiAgICAgICAgICAgICAgICBwYXNzaXZlOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gSW5pdGlsaXplXG4gICAgY29uc3Qge29wdGlvbnMsIF90YXBzdGFydCwgX2tleWJvYXJkfSA9IHRoYXQ7XG4gICAgXy5vbihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAnbW91c2Vkb3duJywgX3RhcHN0YXJ0KTtcbiAgICBfLm9uKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICd0b3VjaHN0YXJ0JywgX3RhcHN0YXJ0LCB7XG4gICAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBfLm9uKGRvY3VtZW50LCBbJ2tleWRvd24nLCAna2V5dXAnXSwgX2tleWJvYXJkKTtcblxuICAgIHJldHVybiB0aGF0O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTZWxlY3RhYmxlKG9wdCA9IHt9KSB7XG4gICAgb3B0ID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIG9uY2hhbmdlOiAoKSA9PiAwLFxuICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICBlbGVtZW50czogW11cbiAgICB9LCBvcHQpO1xuXG4gICAgY29uc3Qgb25UYXAgPSBfLm9uKG9wdC5lbGVtZW50cywgJ2NsaWNrJywgZXZ0ID0+IHtcbiAgICAgICAgb3B0LmVsZW1lbnRzLmZvckVhY2goZSA9PlxuICAgICAgICAgICAgZS5jbGFzc0xpc3RbZXZ0LnRhcmdldCA9PT0gZSA/ICdhZGQnIDogJ3JlbW92ZSddKG9wdC5jbGFzc05hbWUpXG4gICAgICAgICk7XG5cbiAgICAgICAgb3B0Lm9uY2hhbmdlKGV2dCk7XG5cbiAgICAgICAgLy8gRml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvcGlja3IvaXNzdWVzLzI0M1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBkZXN0cm95OiAoKSA9PiBfLm9mZiguLi5vblRhcClcbiAgICB9O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi91dGlscy91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlID0+IHtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgdXNlQXNCdXR0b24sXG4gICAgICAgIGlubGluZSxcbiAgICAgICAgYXBwQ2xhc3MsXG4gICAgICAgIHRoZW1lLFxuICAgICAgICBsb2NrT3BhY2l0eVxuICAgIH0gPSBpbnN0YW5jZS5vcHRpb25zO1xuXG4gICAgLy8gVXRpbHNcbiAgICBjb25zdCBoaWRkZW4gPSBjb24gPT4gY29uID8gJycgOiAnc3R5bGU9XCJkaXNwbGF5Om5vbmVcIiBoaWRkZW4nO1xuICAgIGNvbnN0IHQgPSBzdHIgPT4gaW5zdGFuY2UuX3Qoc3RyKTtcblxuICAgIGNvbnN0IHJvb3QgPSBfLmNyZWF0ZUZyb21UZW1wbGF0ZShgXG4gICAgICA8ZGl2IDpyZWY9XCJyb290XCIgY2xhc3M9XCJwaWNrclwiPlxuXG4gICAgICAgICR7dXNlQXNCdXR0b24gPyAnJyA6ICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiA6cmVmPVwiYnV0dG9uXCIgY2xhc3M9XCJwY3ItYnV0dG9uXCI+PC9idXR0b24+J31cblxuICAgICAgICA8ZGl2IDpyZWY9XCJhcHBcIiBjbGFzcz1cInBjci1hcHAgJHthcHBDbGFzcyB8fCAnJ31cIiBkYXRhLXRoZW1lPVwiJHt0aGVtZX1cIiAke2lubGluZSA/ICdzdHlsZT1cInBvc2l0aW9uOiB1bnNldFwiJyA6ICcnfSBhcmlhLWxhYmVsPVwiJHt0KCd1aTpkaWFsb2cnLCAnY29sb3IgcGlja2VyIGRpYWxvZycpfVwiIHJvbGU9XCJ3aW5kb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGNyLXNlbGVjdGlvblwiICR7aGlkZGVuKGNvbXBvbmVudHMucGFsZXR0ZSl9PlxuICAgICAgICAgICAgPGRpdiA6b2JqPVwicHJldmlld1wiIGNsYXNzPVwicGNyLWNvbG9yLXByZXZpZXdcIiAke2hpZGRlbihjb21wb25lbnRzLnByZXZpZXcpfT5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgOnJlZj1cImxhc3RDb2xvclwiIGNsYXNzPVwicGNyLWxhc3QtY29sb3JcIiBhcmlhLWxhYmVsPVwiJHt0KCdidG46bGFzdC1jb2xvcicpfVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJjdXJyZW50Q29sb3JcIiBjbGFzcz1cInBjci1jdXJyZW50LWNvbG9yXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiA6b2JqPVwicGFsZXR0ZVwiIGNsYXNzPVwicGNyLWNvbG9yLXBhbGV0dGVcIj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBhbGV0dGVcIiBjbGFzcz1cInBjci1wYWxldHRlXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpwYWxldHRlJyl9XCIgcm9sZT1cImxpc3Rib3hcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJodWVcIiBjbGFzcz1cInBjci1jb2xvci1jaG9vc2VyXCIgJHtoaWRkZW4oY29tcG9uZW50cy5odWUpfT5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInNsaWRlclwiIGNsYXNzPVwicGNyLWh1ZSBwY3Itc2xpZGVyXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpodWUnKX1cIiByb2xlPVwic2xpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiA6b2JqPVwib3BhY2l0eVwiIGNsYXNzPVwicGNyLWNvbG9yLW9wYWNpdHlcIiAke2hpZGRlbihjb21wb25lbnRzLm9wYWNpdHkpfT5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInNsaWRlclwiIGNsYXNzPVwicGNyLW9wYWNpdHkgcGNyLXNsaWRlclwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6b3BhY2l0eScsICdvcGFjaXR5IHNlbGVjdGlvbiBzbGlkZXInKX1cIiByb2xlPVwic2xpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwY3Itc3dhdGNoZXMgJHtjb21wb25lbnRzLnBhbGV0dGUgPyAnJyA6ICdwY3ItbGFzdCd9XCIgOnJlZj1cInN3YXRjaGVzXCI+PC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IDpvYmo9XCJpbnRlcmFjdGlvblwiIGNsYXNzPVwicGNyLWludGVyYWN0aW9uXCIgJHtoaWRkZW4oT2JqZWN0LmtleXMoY29tcG9uZW50cy5pbnRlcmFjdGlvbikubGVuZ3RoKX0+XG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cInJlc3VsdFwiIGNsYXNzPVwicGNyLXJlc3VsdFwiIHR5cGU9XCJ0ZXh0XCIgc3BlbGxjaGVjaz1cImZhbHNlXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5pbnB1dCl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6aW5wdXQnLCAnY29sb3IgaW5wdXQgZmllbGQnKX1cIj5cblxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhFWEFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSEVYJyA6ICdIRVhBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oZXgpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJSR0JBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ1JHQicgOiAnUkdCQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24ucmdiYSl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhTTEFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSFNMJyA6ICdIU0xBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oc2xhKX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiSFNWQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdIU1YnIDogJ0hTVkEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmhzdmEpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJDTVlLXCIgdmFsdWU9XCJDTVlLXCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uY215ayl9PlxuXG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cInNhdmVcIiBjbGFzcz1cInBjci1zYXZlXCIgdmFsdWU9XCIke3QoJ2J0bjpzYXZlJyl9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uc2F2ZSl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6YnRuOnNhdmUnKX1cIj5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwiY2FuY2VsXCIgY2xhc3M9XCJwY3ItY2FuY2VsXCIgdmFsdWU9XCIke3QoJ2J0bjpjYW5jZWwnKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jYW5jZWwpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpjYW5jZWwnKX1cIj5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwiY2xlYXJcIiBjbGFzcz1cInBjci1jbGVhclwiIHZhbHVlPVwiJHt0KCdidG46Y2xlYXInKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jbGVhcil9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6YnRuOmNsZWFyJyl9XCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYCk7XG5cbiAgICBjb25zdCBpbnQgPSByb290LmludGVyYWN0aW9uO1xuXG4gICAgLy8gU2VsZWN0IG9wdGlvbiB3aGljaCBpcyBub3QgaGlkZGVuXG4gICAgaW50Lm9wdGlvbnMuZmluZChvID0+ICFvLmhpZGRlbiAmJiAhby5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKSk7XG5cbiAgICAvLyBBcHBlbmQgbWV0aG9kIHRvIGZpbmQgY3VycmVudGx5IGFjdGl2ZSBvcHRpb25cbiAgICBpbnQudHlwZSA9ICgpID0+IGludC5vcHRpb25zLmZpbmQoZSA9PiBlLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpO1xuICAgIHJldHVybiByb290O1xufTtcbiIsICJ0eXBlIERpcmVjdGlvbiA9ICd0b3AnIHwgJ2xlZnQnIHwgJ2JvdHRvbScgfCAncmlnaHQnO1xudHlwZSBBbGlnbm1lbnQgPSAnc3RhcnQnIHwgJ21pZGRsZScgfCAnZW5kJztcblxuZXhwb3J0IHR5cGUgVmFyaWFudEZsaXBPcmRlciA9IHtcbiAgICBzdGFydDogc3RyaW5nO1xuICAgIG1pZGRsZTogc3RyaW5nO1xuICAgIGVuZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUG9zaXRpb25GbGlwT3JkZXIgPSB7XG4gICAgdG9wOiBzdHJpbmc7XG4gICAgcmlnaHQ6IHN0cmluZztcbiAgICBib3R0b206IHN0cmluZztcbiAgICBsZWZ0OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBOYW5vUG9wUG9zaXRpb24gPSBgJHtEaXJlY3Rpb259LSR7QWxpZ25tZW50fWAgfCBEaXJlY3Rpb247XG5cbmV4cG9ydCB0eXBlIE5hbm9Qb3BPcHRpb25zID0ge1xuICAgIGNvbnRhaW5lcjogRE9NUmVjdDtcbiAgICBwb3NpdGlvbjogTmFub1BvcFBvc2l0aW9uO1xuICAgIHZhcmlhbnRGbGlwT3JkZXI6IFZhcmlhbnRGbGlwT3JkZXI7XG4gICAgcG9zaXRpb25GbGlwT3JkZXI6IFBvc2l0aW9uRmxpcE9yZGVyO1xuICAgIG1hcmdpbjogbnVtYmVyO1xuICAgIHJlZmVyZW5jZT86IEhUTUxFbGVtZW50O1xuICAgIHBvcHBlcj86IEhUTUxFbGVtZW50O1xuICAgIGFycm93PzogSFRNTEVsZW1lbnQ7XG4gICAgcGFkZGluZz86IG51bWJlcjtcbn07XG5cbnR5cGUgQXZhaWxhYmxlUG9zaXRpb25zID0ge1xuICAgIHQ6IG51bWJlcjtcbiAgICBiOiBudW1iZXI7XG4gICAgbDogbnVtYmVyO1xuICAgIHI6IG51bWJlcjtcbn07XG5cbnR5cGUgQXZhaWxhYmxlVmFyaWFudHMgPSB7XG4gICAgdnM6IG51bWJlcjtcbiAgICB2bTogbnVtYmVyO1xuICAgIHZlOiBudW1iZXI7XG4gICAgaHM6IG51bWJlcjtcbiAgICBobTogbnVtYmVyO1xuICAgIGhlOiBudW1iZXI7XG59O1xuXG50eXBlIFBvc2l0aW9uUGFpcnMgPSBbRGlyZWN0aW9uLCBEaXJlY3Rpb25dO1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbk1hdGNoID0gJ3RzJyB8ICd0bScgfCAndGUnIHwgJ2JzJyB8ICdibScgfCAnYmUnIHwgJ2xzJyB8ICdsbScgfCAnbGUnIHwgJ3JzJyB8ICdybScgfCAncmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hbm9Qb3Age1xuICAgIHVwZGF0ZSh1cGRhdGVkT3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+KTogUG9zaXRpb25NYXRjaCB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFub1BvcENvbnN0cnVjdG9yIHtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSByZWZlcmVuY2UgUmVmZXJlbmNlIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcG9wcGVyIEFjdHVhbCBwb3BwZXIgZWxlbWVudFxuICAgICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnNcbiAgICAgKi9cbiAgICAocmVmZXJlbmNlOiBIVE1MRWxlbWVudCwgcG9wcGVyOiBIVE1MRWxlbWVudCwgb3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+KTogTmFub1BvcDtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFBhcnRpYWwgb3B0aW9ucyB3aGljaCBnZXQgbWVyZ2VkIHdpdGggdGhlIGN1cnJlbnQgb25lXG4gICAgICovXG4gICAgKG9wdGlvbnM/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPik6IE5hbm9Qb3A7XG59XG5cbi8vIEV4cG9ydCBjdXJyZW50IHZlcnNpb25cbmV4cG9ydCBjb25zdCB2ZXJzaW9uID0gVkVSU0lPTjtcblxuLy8gRXhwb3J0IGRlZmF1bHRcbmV4cG9ydCBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICB2YXJpYW50RmxpcE9yZGVyOiB7c3RhcnQ6ICdzbWUnLCBtaWRkbGU6ICdtc2UnLCBlbmQ6ICdlbXMnfSxcbiAgICBwb3NpdGlvbkZsaXBPcmRlcjoge3RvcDogJ3RicmwnLCByaWdodDogJ3JsdGInLCBib3R0b206ICdidHJsJywgbGVmdDogJ2xyYnQnfSxcbiAgICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgbWFyZ2luOiA4LFxuICAgIHBhZGRpbmc6IDBcbn07XG5cbi8qKlxuICogUmVwb3NpdGlvbnMgYW4gZWxlbWVudCBvbmNlIHVzaW5nIHRoZSBwcm92aWRlZCBvcHRpb25zIGFuZCBlbGVtZW50cy5cbiAqIEBwYXJhbSByZWZlcmVuY2UgUmVmZXJlbmNlIGVsZW1lbnRcbiAqIEBwYXJhbSBwb3BwZXIgUG9wcGVyIGVsZW1lbnRcbiAqIEBwYXJhbSBvcHQgT3B0aW9uYWwsIGFkZGl0aW9uYWwgb3B0aW9uc1xuICovXG5leHBvcnQgY29uc3QgcmVwb3NpdGlvbiA9IChcbiAgICByZWZlcmVuY2U6IEhUTUxFbGVtZW50LFxuICAgIHBvcHBlcjogSFRNTEVsZW1lbnQsXG4gICAgb3B0PzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz5cbik6IFBvc2l0aW9uTWF0Y2ggfCBudWxsID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgYXJyb3csXG4gICAgICAgIG1hcmdpbixcbiAgICAgICAgcGFkZGluZyxcbiAgICAgICAgcG9zaXRpb24sXG4gICAgICAgIHZhcmlhbnRGbGlwT3JkZXIsXG4gICAgICAgIHBvc2l0aW9uRmxpcE9yZGVyXG4gICAgfSA9IHtcbiAgICAgICAgY29udGFpbmVyOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgICAuLi5vcHRcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVzZXQgcG9zaXRpb24gdG8gcmVzb2x2ZSB2aWV3cG9ydFxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvcG9zaXRpb24jZml4ZWRcbiAgICAgKi9cbiAgICBjb25zdCB7bGVmdDogb3JpZ2luYWxMZWZ0LCB0b3A6IG9yaWdpbmFsVG9wfSA9IHBvcHBlci5zdHlsZTtcbiAgICBwb3BwZXIuc3R5bGUubGVmdCA9ICcwJztcbiAgICBwb3BwZXIuc3R5bGUudG9wID0gJzAnO1xuXG4gICAgY29uc3QgcmVmQm94ID0gcmVmZXJlbmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHBvcEJveCA9IHBvcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIC8qKlxuICAgICAqIEhvbGRzIGNvb3JkaW5hdGVzIG9mIHRvcCwgbGVmdCwgYm90dG9tIGFuZCByaWdodCBhbGlnbm1lbnRcbiAgICAgKi9cbiAgICBjb25zdCBwb3NpdGlvblN0b3JlOiBBdmFpbGFibGVQb3NpdGlvbnMgPSB7XG4gICAgICAgIHQ6IHJlZkJveC50b3AgLSBwb3BCb3guaGVpZ2h0IC0gbWFyZ2luLFxuICAgICAgICBiOiByZWZCb3guYm90dG9tICsgbWFyZ2luLFxuICAgICAgICByOiByZWZCb3gucmlnaHQgKyBtYXJnaW4sXG4gICAgICAgIGw6IHJlZkJveC5sZWZ0IC0gcG9wQm94LndpZHRoIC0gbWFyZ2luXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEhvbGRzIGNvcnJlc3BvbmRpbmcgdmFyaWFudHMgKHN0YXJ0LCBtaWRkbGUsIGVuZCkuXG4gICAgICogVGhlIHZhbHVlcyBkZXBlbmQgb24gaG9yaXpvbnRhbCAvIHZlcnRpY2FsIG9yaWVudGF0aW9uXG4gICAgICovXG4gICAgY29uc3QgdmFyaWFudFN0b3JlOiBBdmFpbGFibGVWYXJpYW50cyA9IHtcbiAgICAgICAgdnM6IHJlZkJveC5sZWZ0LFxuICAgICAgICB2bTogcmVmQm94LmxlZnQgKyByZWZCb3gud2lkdGggLyAyIC0gcG9wQm94LndpZHRoIC8gMixcbiAgICAgICAgdmU6IHJlZkJveC5sZWZ0ICsgcmVmQm94LndpZHRoIC0gcG9wQm94LndpZHRoLFxuICAgICAgICBoczogcmVmQm94LnRvcCxcbiAgICAgICAgaG06IHJlZkJveC5ib3R0b20gLSByZWZCb3guaGVpZ2h0IC8gMiAtIHBvcEJveC5oZWlnaHQgLyAyLFxuICAgICAgICBoZTogcmVmQm94LmJvdHRvbSAtIHBvcEJveC5oZWlnaHRcbiAgICB9O1xuXG4gICAgLy8gRXh0cmFjdCBwb3NpdGlvbiBhbmQgdmFyaWFudFxuICAgIC8vIFRvcC1zdGFydCAtPiB0b3AgaXMgXCJwb3NpdGlvblwiIGFuZCBcInN0YXJ0XCIgaXMgdGhlIHZhcmlhbnRcbiAgICBjb25zdCBbcG9zS2V5LCB2YXJLZXkgPSAnbWlkZGxlJ10gPSBwb3NpdGlvbi5zcGxpdCgnLScpO1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IHBvc2l0aW9uRmxpcE9yZGVyW3Bvc0tleSBhcyBrZXlvZiBQb3NpdGlvbkZsaXBPcmRlcl07XG4gICAgY29uc3QgdmFyaWFudHMgPSB2YXJpYW50RmxpcE9yZGVyW3ZhcktleSBhcyBrZXlvZiBWYXJpYW50RmxpcE9yZGVyXTtcblxuICAgIC8vIFRyeSBvdXQgYWxsIHBvc3NpYmxlIGNvbWJpbmF0aW9ucywgc3RhcnRpbmcgd2l0aCB0aGUgcHJlZmVycmVkIG9uZS5cbiAgICBjb25zdCB7dG9wLCBsZWZ0LCBib3R0b20sIHJpZ2h0fSA9IGNvbnRhaW5lcjtcblxuICAgIGZvciAoY29uc3QgcCBvZiBwb3NpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgdmVydGljYWwgPSAocCA9PT0gJ3QnIHx8IHAgPT09ICdiJyk7XG5cbiAgICAgICAgLy8gVGhlIHBvc2l0aW9uLXZhbHVlXG4gICAgICAgIGxldCBwb3NpdGlvblZhbCA9IHBvc2l0aW9uU3RvcmVbcCBhcyBrZXlvZiBBdmFpbGFibGVQb3NpdGlvbnNdO1xuXG4gICAgICAgIC8vIFdoaWNoIHByb3BlcnR5IGhhcyB0byBiZSBjaGFuZ2VzLlxuICAgICAgICBjb25zdCBbcG9zaXRpb25LZXksIHZhcmlhbnRLZXldID0gKHZlcnRpY2FsID8gWyd0b3AnLCAnbGVmdCddIDogWydsZWZ0JywgJ3RvcCddKSBhcyBQb3NpdGlvblBhaXJzO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBib3ggcmVmZXJzIHRvIHRoZSBzaXplIG9mIHRoZSBwb3BwZXIgZWxlbWVudC4gRGVwZW5kaW5nIG9uIHRoZSBvcmllbnRhdGlvbiB0aGlzIGlzIHdpZHRoIG9yIGhlaWdodC5cbiAgICAgICAgICogVGhlIGxpbWl0IGlzIHRoZSBjb3JyZXNwb25kaW5nLCBtYXhpbXVtIHZhbHVlIGZvciB0aGlzIHBvc2l0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgW3Bvc2l0aW9uU2l6ZSwgdmFyaWFudFNpemVdID0gdmVydGljYWwgPyBbcG9wQm94LmhlaWdodCwgcG9wQm94LndpZHRoXSA6IFtwb3BCb3gud2lkdGgsIHBvcEJveC5oZWlnaHRdO1xuXG4gICAgICAgIGNvbnN0IFtwb3NpdGlvbk1heGltdW0sIHZhcmlhbnRNYXhpbXVtXSA9IHZlcnRpY2FsID8gW2JvdHRvbSwgcmlnaHRdIDogW3JpZ2h0LCBib3R0b21dO1xuICAgICAgICBjb25zdCBbcG9zaXRpb25NaW5pbXVtLCB2YXJpYW50TWluaW11bV0gPSB2ZXJ0aWNhbCA/IFt0b3AsIGxlZnRdIDogW2xlZnQsIHRvcF07XG5cbiAgICAgICAgLy8gU2tpcCBwcmUtY2xpcHBlZCB2YWx1ZXNcbiAgICAgICAgaWYgKHBvc2l0aW9uVmFsIDwgcG9zaXRpb25NaW5pbXVtIHx8IChwb3NpdGlvblZhbCArIHBvc2l0aW9uU2l6ZSArIHBhZGRpbmcpID4gcG9zaXRpb25NYXhpbXVtKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgdiBvZiB2YXJpYW50cykge1xuXG4gICAgICAgICAgICAvLyBUaGUgcG9zaXRpb24tdmFsdWUsIHRoZSByZWxhdGVkIHNpemUgdmFsdWUgb2YgdGhlIHBvcHBlciBhbmQgdGhlIGxpbWl0XG4gICAgICAgICAgICBsZXQgdmFyaWFudFZhbCA9IHZhcmlhbnRTdG9yZVsoKHZlcnRpY2FsID8gJ3YnIDogJ2gnKSArIHYpIGFzIGtleW9mIEF2YWlsYWJsZVZhcmlhbnRzXTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhbnRWYWwgPCB2YXJpYW50TWluaW11bSB8fCAodmFyaWFudFZhbCArIHZhcmlhbnRTaXplICsgcGFkZGluZykgPiB2YXJpYW50TWF4aW11bSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTdWJ0cmFjdCBwb3BCb3gncyBpbml0aWFsIHBvc2l0aW9uXG4gICAgICAgICAgICB2YXJpYW50VmFsIC09IHBvcEJveFt2YXJpYW50S2V5XTtcbiAgICAgICAgICAgIHBvc2l0aW9uVmFsIC09IHBvcEJveFtwb3NpdGlvbktleV07XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IHN0eWxlcyBhbmQgbm9ybWFsaXplIHZpZXdwb3J0XG4gICAgICAgICAgICBwb3BwZXIuc3R5bGVbdmFyaWFudEtleV0gPSBgJHt2YXJpYW50VmFsfXB4YDtcbiAgICAgICAgICAgIHBvcHBlci5zdHlsZVtwb3NpdGlvbktleV0gPSBgJHtwb3NpdGlvblZhbH1weGA7XG5cbiAgICAgICAgICAgIGlmIChhcnJvdykge1xuICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSByZWZCb3gncyBjZW50ZXIgb2Zmc2V0IGZyb20gaXRzIHZhcmlhbnQgcG9zaXRpb24gZm9yIGFycm93IHBvc2l0aW9uaW5nXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmQm94Q2VudGVyT2Zmc2V0ID0gdmVydGljYWwgPyByZWZCb3gud2lkdGggLyAyIDogcmVmQm94LmhlaWdodCAvIDI7XG5cbiAgICAgICAgICAgICAgICAvLyBXaGVuIHJlZkJveCBpcyBsYXJnZXIgdGhhbiBwb3BCb3gsIGhhdmUgdGhlIGFycm93J3MgdmFyaWFudCBwb3NpdGlvbiBiZSB0aGUgY2VudGVyIG9mIHBvcEJveCBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgIGNvbnN0IGFycm93VmFyaWFudFZhbCA9IHJlZkJveENlbnRlck9mZnNldCAqIDIgPCB2YXJpYW50U2l6ZSA/XG4gICAgICAgICAgICAgICAgICAgIHJlZkJveFt2YXJpYW50S2V5XSArIHJlZkJveENlbnRlck9mZnNldCA6IHZhcmlhbnRWYWwgKyB2YXJpYW50U2l6ZSAvIDI7XG5cbiAgICAgICAgICAgICAgICAvLyBBcnJvdyBwb3NpdGlvbiBpcyBlaXRoZXIgb24gb25lIHNpZGUgb2YgdGhlIHBvcEJveCBvciB0aGUgb3RoZXIuXG4gICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uVmFsIDwgcmVmQm94W3Bvc2l0aW9uS2V5XSkge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvblZhbCArPSBwb3NpdGlvblNpemU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gQXBwbHkgc3R5bGVzIHRvIGFycm93XG4gICAgICAgICAgICAgICAgYXJyb3cuc3R5bGVbdmFyaWFudEtleV0gPSBgJHthcnJvd1ZhcmlhbnRWYWx9cHhgO1xuICAgICAgICAgICAgICAgIGFycm93LnN0eWxlW3Bvc2l0aW9uS2V5XSA9IGAke3Bvc2l0aW9uVmFsfXB4YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIChwICsgdikgYXMgUG9zaXRpb25NYXRjaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldmVydCBzdHlsZSB2YWx1ZXMgKHdvbid0IHdvcmsgd2l0aCBzdHlsZWQtZWxlbWVudHMgb3Igc2ltaWxhciBzeXN0ZW1zKVxuICAgIC8vIFwiRml4XCIgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9TaW1vbndlcC9uYW5vcG9wL2lzc3Vlcy83XG4gICAgcG9wcGVyLnN0eWxlLmxlZnQgPSBvcmlnaW5hbExlZnQ7XG4gICAgcG9wcGVyLnN0eWxlLnRvcCA9IG9yaWdpbmFsVG9wO1xuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGF0ZWZ1bCBwb3BwZXIuXG4gKiBZb3UgY2FuIGVpdGhlci4uLlxuICogLi4uIHBhc3MgYW4gb3B0aW9ucyBvYmplY3Q6IGNyZWF0ZVBvcHBlcig8b3B0aW9ucz4pXG4gKiAuLi4gcGFzcyBib3RoIHRoZSByZWZlcmVuY2UgYW5kIHBvcHBlcjogY3JlYXRlKDxyZWY+LCA8ZWw+LCA8P29wdGlvbnM+KVxuICogLi4uIHBhc3Mgbm90aGluZywgaW4gdGhpcyBjYXNlIHlvdSdsbCBoYXZlIHRvIHNldCBhdCBsZWFzdCBib3RoIGEgcmVmZXJlbmNlIGFuZCBhIHBvcHBlciBpbiB1cGRhdGUuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSB8IG9wdGlvbnMgUmVmZXJlbmNlIGVsZW1lbnQgb3Igb3B0aW9uc1xuICogQHBhcmFtIHBvcHBlciBQb3BwZXIgZWxlbWVudFxuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgYWRkaXRpb25hbCBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVQb3BwZXI6IE5hbm9Qb3BDb25zdHJ1Y3RvciA9IChcbiAgICByZWZlcmVuY2U/OiBIVE1MRWxlbWVudCB8IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+LFxuICAgIHBvcHBlcj86IEhUTUxFbGVtZW50LFxuICAgIG9wdGlvbnM/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPlxuKTogTmFub1BvcCA9PiB7XG5cbiAgICAvLyBSZXNvbHZlIG9wdGlvbnNcbiAgICBjb25zdCBiYXNlT3B0aW9uczogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4gPSB0eXBlb2YgcmVmZXJlbmNlID09PSAnb2JqZWN0JyAmJiAhKHJlZmVyZW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSA/XG4gICAgICAgIHJlZmVyZW5jZSA6IHtyZWZlcmVuY2UsIHBvcHBlciwgLi4ub3B0aW9uc307XG5cbiAgICByZXR1cm4ge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXBvc2l0aW9ucyB0aGUgY3VycmVudCBwb3BwZXIuXG4gICAgICAgICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnMgd2hpY2ggZ2V0IG1lcmdlZCB3aXRoIHRoZSBjdXJyZW50IG9uZXMuXG4gICAgICAgICAqL1xuICAgICAgICB1cGRhdGUob3B0aW9uczogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4gPSBiYXNlT3B0aW9ucyk6IFBvc2l0aW9uTWF0Y2ggfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IHtyZWZlcmVuY2UsIHBvcHBlcn0gPSBPYmplY3QuYXNzaWduKGJhc2VPcHRpb25zLCBvcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKCFwb3BwZXIgfHwgIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUG9wcGVyLSBvciByZWZlcmVuY2UtZWxlbWVudCBtaXNzaW5nLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVwb3NpdGlvbihyZWZlcmVuY2UsIHBvcHBlciwgYmFzZU9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfTtcbn07XG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7cGFyc2VUb0hTVkF9IGZyb20gJy4vdXRpbHMvY29sb3InO1xuaW1wb3J0IHtIU1ZhQ29sb3J9IGZyb20gJy4vdXRpbHMvaHN2YWNvbG9yJztcbmltcG9ydCBNb3ZlYWJsZSBmcm9tICcuL2xpYnMvbW92ZWFibGUnO1xuaW1wb3J0IFNlbGVjdGFibGUgZnJvbSAnLi9saWJzL3NlbGVjdGFibGUnO1xuaW1wb3J0IGJ1aWxkUGlja3IgZnJvbSAnLi90ZW1wbGF0ZSc7XG5pbXBvcnQge2NyZWF0ZVBvcHBlcn0gZnJvbSAnbmFub3BvcCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBpY2tyIHtcblxuICAgIC8vIEV4cG9zZSBwaWNrciB1dGlsc1xuICAgIHN0YXRpYyB1dGlscyA9IF87XG5cbiAgICAvLyBBc3NpZ24gdmVyc2lvbiBhbmQgZXhwb3J0XG4gICAgc3RhdGljIHZlcnNpb24gPSBWRVJTSU9OO1xuXG4gICAgLy8gRGVmYXVsdCBzdHJpbmdzXG4gICAgc3RhdGljIEkxOE5fREVGQVVMVFMgPSB7XG5cbiAgICAgICAgLy8gU3RyaW5ncyB2aXNpYmxlIGluIHRoZSBVSVxuICAgICAgICAndWk6ZGlhbG9nJzogJ2NvbG9yIHBpY2tlciBkaWFsb2cnLFxuICAgICAgICAnYnRuOnRvZ2dsZSc6ICd0b2dnbGUgY29sb3IgcGlja2VyIGRpYWxvZycsXG4gICAgICAgICdidG46c3dhdGNoJzogJ2NvbG9yIHN3YXRjaCcsXG4gICAgICAgICdidG46bGFzdC1jb2xvcic6ICd1c2UgcHJldmlvdXMgY29sb3InLFxuICAgICAgICAnYnRuOnNhdmUnOiAnU2F2ZScsXG4gICAgICAgICdidG46Y2FuY2VsJzogJ0NhbmNlbCcsXG4gICAgICAgICdidG46Y2xlYXInOiAnQ2xlYXInLFxuXG4gICAgICAgIC8vIFN0cmluZ3MgdXNlZCBmb3IgYXJpYS1sYWJlbHNcbiAgICAgICAgJ2FyaWE6YnRuOnNhdmUnOiAnc2F2ZSBhbmQgY2xvc2UnLFxuICAgICAgICAnYXJpYTpidG46Y2FuY2VsJzogJ2NhbmNlbCBhbmQgY2xvc2UnLFxuICAgICAgICAnYXJpYTpidG46Y2xlYXInOiAnY2xlYXIgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6aW5wdXQnOiAnY29sb3IgaW5wdXQgZmllbGQnLFxuICAgICAgICAnYXJpYTpwYWxldHRlJzogJ2NvbG9yIHNlbGVjdGlvbiBhcmVhJyxcbiAgICAgICAgJ2FyaWE6aHVlJzogJ2h1ZSBzZWxlY3Rpb24gc2xpZGVyJyxcbiAgICAgICAgJ2FyaWE6b3BhY2l0eSc6ICdzZWxlY3Rpb24gc2xpZGVyJ1xuICAgIH07XG5cbiAgICAvLyBEZWZhdWx0IG9wdGlvbnNcbiAgICBzdGF0aWMgREVGQVVMVF9PUFRJT05TID0ge1xuICAgICAgICBhcHBDbGFzczogbnVsbCxcbiAgICAgICAgdGhlbWU6ICdjbGFzc2ljJyxcbiAgICAgICAgdXNlQXNCdXR0b246IGZhbHNlLFxuICAgICAgICBwYWRkaW5nOiA4LFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGNvbXBhcmlzb246IHRydWUsXG4gICAgICAgIGNsb3NlT25TY3JvbGw6IGZhbHNlLFxuICAgICAgICBvdXRwdXRQcmVjaXNpb246IDAsXG4gICAgICAgIGxvY2tPcGFjaXR5OiBmYWxzZSxcbiAgICAgICAgYXV0b1JlcG9zaXRpb246IHRydWUsXG4gICAgICAgIGNvbnRhaW5lcjogJ2JvZHknLFxuXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIGludGVyYWN0aW9uOiB7fVxuICAgICAgICB9LFxuXG4gICAgICAgIGkxOG46IHt9LFxuICAgICAgICBzd2F0Y2hlczogbnVsbCxcbiAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgc2xpZGVyczogbnVsbCxcblxuICAgICAgICBkZWZhdWx0OiAnIzQyNDQ1YScsXG4gICAgICAgIGRlZmF1bHRSZXByZXNlbnRhdGlvbjogbnVsbCxcbiAgICAgICAgcG9zaXRpb246ICdib3R0b20tbWlkZGxlJyxcbiAgICAgICAgYWRqdXN0YWJsZU51bWJlcnM6IHRydWUsXG4gICAgICAgIHNob3dBbHdheXM6IGZhbHNlLFxuXG4gICAgICAgIGNsb3NlV2l0aEtleTogJ0VzY2FwZSdcbiAgICB9O1xuXG4gICAgLy8gV2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgc3BlY2lmaWMgYWN0aW9ucyBkdXJpbmcgaW5pdGlsaXphdGlvblxuICAgIF9pbml0aWFsaXppbmdBY3RpdmUgPSB0cnVlO1xuXG4gICAgLy8gSWYgdGhlIGN1cnJlbnQgY29sb3IgdmFsdWUgc2hvdWxkIGJlIHJlY2FsY3VsYXRlZFxuICAgIF9yZWNhbGMgPSB0cnVlO1xuXG4gICAgLy8gUG9zaXRpb25pbmcgZW5naW5lIGFuZCBET00tVHJlZVxuICAgIF9uYW5vcG9wID0gbnVsbDtcbiAgICBfcm9vdCA9IG51bGw7XG5cbiAgICAvLyBDdXJyZW50IGFuZCBsYXN0IGNvbG9yIGZvciBjb21wYXJpc29uXG4gICAgX2NvbG9yID0gSFNWYUNvbG9yKCk7XG4gICAgX2xhc3RDb2xvciA9IEhTVmFDb2xvcigpO1xuICAgIF9zd2F0Y2hDb2xvcnMgPSBbXTtcblxuICAgIC8vIEFuaW1hdGlvbiBmcmFtZSB1c2VkIGZvciBzZXR1cC5cbiAgICAvLyBXaWxsIGJlIGNhbmNlbGxlZCBpbiBjYXNlIG9mIGRlc3RydWN0aW9uLlxuICAgIF9zZXR1cEFuaW1hdGlvbkZyYW1lID0gbnVsbDtcblxuICAgIC8vIEV2ZW5saXN0ZW5lciBuYW1lOiBbY2FsbGJhY2tzXVxuICAgIF9ldmVudExpc3RlbmVyID0ge1xuICAgICAgICBpbml0OiBbXSxcbiAgICAgICAgc2F2ZTogW10sXG4gICAgICAgIGhpZGU6IFtdLFxuICAgICAgICBzaG93OiBbXSxcbiAgICAgICAgY2xlYXI6IFtdLFxuICAgICAgICBjaGFuZ2U6IFtdLFxuICAgICAgICBjaGFuZ2VzdG9wOiBbXSxcbiAgICAgICAgY2FuY2VsOiBbXSxcbiAgICAgICAgc3dhdGNoc2VsZWN0OiBbXVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihvcHQpIHtcblxuICAgICAgICAvLyBBc3NpZ24gZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0ID0gT2JqZWN0LmFzc2lnbih7Li4uUGlja3IuREVGQVVMVF9PUFRJT05TfSwgb3B0KTtcblxuICAgICAgICBjb25zdCB7c3dhdGNoZXMsIGNvbXBvbmVudHMsIHRoZW1lLCBzbGlkZXJzLCBsb2NrT3BhY2l0eSwgcGFkZGluZ30gPSBvcHQ7XG5cbiAgICAgICAgaWYgKFsnbmFubycsICdtb25vbGl0aCddLmluY2x1ZGVzKHRoZW1lKSAmJiAhc2xpZGVycykge1xuICAgICAgICAgICAgb3B0LnNsaWRlcnMgPSAnaCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpbnRlcmFjdGlvbiBzZWN0aW9uXG4gICAgICAgIGlmICghY29tcG9uZW50cy5pbnRlcmFjdGlvbikge1xuICAgICAgICAgICAgY29tcG9uZW50cy5pbnRlcmFjdGlvbiA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3ZlcndyaXRlIHBhbGV0dGUgaWYgcHJldmlldywgb3BhY2l0eSBvciBodWUgYXJlIHRydWVcbiAgICAgICAgY29uc3Qge3ByZXZpZXcsIG9wYWNpdHksIGh1ZSwgcGFsZXR0ZX0gPSBjb21wb25lbnRzO1xuICAgICAgICBjb21wb25lbnRzLm9wYWNpdHkgPSAoIWxvY2tPcGFjaXR5ICYmIG9wYWNpdHkpO1xuICAgICAgICBjb21wb25lbnRzLnBhbGV0dGUgPSBwYWxldHRlIHx8IHByZXZpZXcgfHwgb3BhY2l0eSB8fCBodWU7XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBwaWNrZXJcbiAgICAgICAgdGhpcy5fcHJlQnVpbGQoKTtcbiAgICAgICAgdGhpcy5fYnVpbGRDb21wb25lbnRzKCk7XG4gICAgICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcbiAgICAgICAgdGhpcy5fZmluYWxCdWlsZCgpO1xuXG4gICAgICAgIC8vIEFwcGVuZCBwcmUtZGVmaW5lZCBzd2F0Y2ggY29sb3JzXG4gICAgICAgIGlmIChzd2F0Y2hlcyAmJiBzd2F0Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHN3YXRjaGVzLmZvckVhY2goY29sb3IgPT4gdGhpcy5hZGRTd2F0Y2goY29sb3IpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgcG9zaXRpb25pbmcgZW5naW5lXG4gICAgICAgIGNvbnN0IHtidXR0b24sIGFwcH0gPSB0aGlzLl9yb290O1xuICAgICAgICB0aGlzLl9uYW5vcG9wID0gY3JlYXRlUG9wcGVyKGJ1dHRvbiwgYXBwLCB7XG4gICAgICAgICAgICBtYXJnaW46IHBhZGRpbmdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBhY2Nlc3NpYmlsaXR5XG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnYnV0dG9uJyk7XG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCB0aGlzLl90KCdidG46dG9nZ2xlJykpO1xuXG4gICAgICAgIC8vIEluaXRpbGl6YXRpb24gaXMgZmluaXNoLCBwaWNrciBpcyB2aXNpYmxlIGFuZCByZWFkeSBmb3IgdXNhZ2VcbiAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgIHRoaXMuX3NldHVwQW5pbWF0aW9uRnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uIGNiKCkge1xuXG4gICAgICAgICAgICAvLyBUT0RPOiBQZXJmb3JtYW5jZSBpc3N1ZSBkdWUgdG8gaGlnaCBjYWxsLXJhdGU/XG4gICAgICAgICAgICBpZiAoIWFwcC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICB0aGF0LnNldENvbG9yKG9wdC5kZWZhdWx0KTtcbiAgICAgICAgICAgIHRoYXQuX3JlUG9zaXRpb25pbmdQaWNrZXIoKTtcblxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb2xvciByZXByZXNlbnRhdGlvblxuICAgICAgICAgICAgaWYgKG9wdC5kZWZhdWx0UmVwcmVzZW50YXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGF0Ll9yZXByZXNlbnRhdGlvbiA9IG9wdC5kZWZhdWx0UmVwcmVzZW50YXRpb247XG4gICAgICAgICAgICAgICAgdGhhdC5zZXRDb2xvclJlcHJlc2VudGF0aW9uKHRoYXQuX3JlcHJlc2VudGF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2hvdyBwaWNrciBpZiBsb2NrZWRcbiAgICAgICAgICAgIGlmIChvcHQuc2hvd0Fsd2F5cykge1xuICAgICAgICAgICAgICAgIHRoYXQuc2hvdygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbml0aWFsaXphdGlvbiBpcyBkb25lIC0gcGlja3IgaXMgdXNhYmxlLCBmaXJlIGluaXQgZXZlbnRcbiAgICAgICAgICAgIHRoYXQuX2luaXRpYWxpemluZ0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhhdC5fZW1pdCgnaW5pdCcpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGluc3RhbmNlIHZpYSBtZXRob2RcbiAgICBzdGF0aWMgY3JlYXRlID0gb3B0aW9ucyA9PiBuZXcgUGlja3Iob3B0aW9ucyk7XG5cbiAgICAvLyBEb2VzIG9ubHkgdGhlIGFic29sdXRseSBiYXNpYyB0aGluZyB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzXG4gICAgX3ByZUJ1aWxkKCkge1xuICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIFJlc29sdmUgZWxlbWVudHNcbiAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIFsnZWwnLCAnY29udGFpbmVyJ10pIHtcbiAgICAgICAgICAgIG9wdGlvbnNbdHlwZV0gPSBfLnJlc29sdmVFbGVtZW50KG9wdGlvbnNbdHlwZV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGVsZW1lbnQgYW5kIGFwcGVuZCBpdCB0byBib2R5IHRvXG4gICAgICAgIC8vIFByZXZlbnQgaW5pdGlhbGl6YXRpb24gZXJyb3JzXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBidWlsZFBpY2tyKHRoaXMpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGEgY3VzdG9tIGJ1dHRvbiBpcyB1c2VkXG4gICAgICAgIGlmIChvcHRpb25zLnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLl9yb290LmJ1dHRvbiA9IG9wdGlvbnMuZWw7IC8vIFJlcGxhY2UgYnV0dG9uIHdpdGggY3VzdG9taXplZCBidXR0b25cbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX3Jvb3Qucm9vdCk7XG4gICAgfVxuXG4gICAgX2ZpbmFsQnVpbGQoKSB7XG4gICAgICAgIGNvbnN0IG9wdCA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZyb20gYm9keVxuICAgICAgICBvcHQuY29udGFpbmVyLnJlbW92ZUNoaWxkKHJvb3Qucm9vdCk7XG5cbiAgICAgICAgaWYgKG9wdC5pbmxpbmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IG9wdC5lbC5wYXJlbnRFbGVtZW50O1xuXG4gICAgICAgICAgICBpZiAob3B0LmVsLm5leHRTaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShyb290LmFwcCwgb3B0LmVsLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHJvb3QuYXBwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdC5jb250YWluZXIuYXBwZW5kQ2hpbGQocm9vdC5hcHApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRG9uJ3QgcmVwbGFjZSB0aGUgdGhlIGVsZW1lbnQgaWYgYSBjdXN0b20gYnV0dG9uIGlzIHVzZWRcbiAgICAgICAgaWYgKCFvcHQudXNlQXNCdXR0b24pIHtcblxuICAgICAgICAgICAgLy8gUmVwbGFjZSBlbGVtZW50IHdpdGggYWN0dWFsIGNvbG9yLXBpY2tlclxuICAgICAgICAgICAgb3B0LmVsLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHJvb3Qucm9vdCwgb3B0LmVsKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHQuaW5saW5lKSB7XG4gICAgICAgICAgICBvcHQuZWwucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBpdCBzaG91bGQgYmUgaW1tZWRpYXRseSBkaXNhYmxlZFxuICAgICAgICBpZiAob3B0LmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGNvbG9yIGNvbXBhcmlzb24gaXMgZGlzYWJsZWQsIGlmIHllcyAtIHJlbW92ZSB0cmFuc2l0aW9ucyBzbyBldmVyeXRoaW5nIGtlZXBzIHNtb290aGx5XG4gICAgICAgIGlmICghb3B0LmNvbXBhcmlzb24pIHtcbiAgICAgICAgICAgIHJvb3QuYnV0dG9uLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG5cbiAgICAgICAgICAgIGlmICghb3B0LnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgcm9vdC5wcmV2aWV3Lmxhc3RDb2xvci5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgX2J1aWxkQ29tcG9uZW50cygpIHtcblxuICAgICAgICAvLyBJbnN0YW5jZSByZWZlcmVuY2VcbiAgICAgICAgY29uc3QgaW5zdCA9IHRoaXM7XG4gICAgICAgIGNvbnN0IGNzID0gdGhpcy5vcHRpb25zLmNvbXBvbmVudHM7XG4gICAgICAgIGNvbnN0IHNsaWRlcnMgPSAoaW5zdC5vcHRpb25zLnNsaWRlcnMgfHwgJ3YnKS5yZXBlYXQoMik7XG4gICAgICAgIGNvbnN0IFtzbywgc2hdID0gc2xpZGVycy5tYXRjaCgvXlt2aF0rJC9nKSA/IHNsaWRlcnMgOiBbXTtcblxuICAgICAgICAvLyBSZS1hc3NpZ24gaWYgbnVsbFxuICAgICAgICBjb25zdCBnZXRDb2xvciA9ICgpID0+XG4gICAgICAgICAgICB0aGlzLl9jb2xvciB8fCAodGhpcy5fY29sb3IgPSB0aGlzLl9sYXN0Q29sb3IuY2xvbmUoKSk7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IHtcblxuICAgICAgICAgICAgcGFsZXR0ZTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGluc3QuX3Jvb3QucGFsZXR0ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgd3JhcHBlcjogaW5zdC5fcm9vdC5wYWxldHRlLnBhbGV0dGUsXG5cbiAgICAgICAgICAgICAgICBvbnN0b3A6ICgpID0+IGluc3QuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnc2xpZGVyJywgaW5zdCksXG4gICAgICAgICAgICAgICAgb25jaGFuZ2UoeCwgeSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IGluc3Q7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtsYXN0Q29sb3IsIGN1cnJlbnRDb2xvcn0gPSBfcm9vdC5wcmV2aWV3O1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgaW5wdXQgZmllbGQgb25seSBpZiB0aGUgdXNlciBpcyBjdXJyZW50bHkgbm90IHR5cGluZ1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBzYXR1cmF0aW9uIGJhc2VkIG9uIHRoZSBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IucyA9IHggKiAxMDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnYgPSAxMDAgLSB5ICogMTAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmV2ZW50IGZhbGxpbmcgdW5kZXIgemVyb1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IudiA8IDAgPyBjb2xvci52ID0gMCA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0Ll91cGRhdGVPdXRwdXQoJ3NsaWRlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHBpY2tlciBhbmQgZ3JhZGllbnQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3NzUkdCYVN0cmluZyA9IGNvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IGNzc1JHQmFTdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlci5zdHlsZS5iYWNrZ3JvdW5kID0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAke2NvbG9yLmF9KSwgdHJhbnNwYXJlbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIGhzbGEoJHtjb2xvci5ofSwgMTAwJSwgNTAlLCAke2NvbG9yLmF9KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAke2NvbG9yLmF9KSlcbiAgICAgICAgICAgICAgICAgICAgYDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBpcyBsb2NrZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmNvbXBhcmlzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9yb290LmJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgY29sb3IsIHJlbW92ZSB0aGUgY2xlYXJlZCBpY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBfcm9vdC5idXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnY2xlYXInKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghb3B0aW9ucy51c2VBc0J1dHRvbiAmJiAhaW5zdC5fbGFzdENvbG9yKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IGNvbG9yIHRvIGJvdGggdGhlIGxhc3QgYW5kIGN1cnJlbnQgY29sb3Igc2luY2UgdGhlIGN1cnJlbnQgc3RhdGUgaXMgY2xlYXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdENvbG9yLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhIHN3YXRjaCB3aGljaCBjb2xvciBtYXRjaGVzIHRoZSBjdXJyZW50IG9uZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZXhhID0gY29sb3IudG9IRVhBKCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB7ZWwsIGNvbG9yfSBvZiBpbnN0Ll9zd2F0Y2hDb2xvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdFtoZXhhID09PSBjb2xvci50b0hFWEEoKS50b1N0cmluZygpID8gJ2FkZCcgOiAncmVtb3ZlJ10oJ3Bjci1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoYW5nZSBjdXJyZW50IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgaHVlOiBNb3ZlYWJsZSh7XG4gICAgICAgICAgICAgICAgbG9jazogc2ggPT09ICd2JyA/ICdoJyA6ICd2JyxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290Lmh1ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgd3JhcHBlcjogaW5zdC5fcm9vdC5odWUuc2xpZGVyLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5odWUgfHwgIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgaHVlXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0Ll9yZWNhbGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLmggPSB2ICogMzYwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBgaHNsKCR7Y29sb3IuaH0sIDEwMCUsIDUwJSlgO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnBhbGV0dGUudHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBvcGFjaXR5OiBNb3ZlYWJsZSh7XG4gICAgICAgICAgICAgICAgbG9jazogc28gPT09ICd2JyA/ICdoJyA6ICd2JyxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290Lm9wYWNpdHkucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3Qub3BhY2l0eS5zbGlkZXIsXG5cbiAgICAgICAgICAgICAgICBvbnN0b3A6ICgpID0+IGluc3QuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnc2xpZGVyJywgaW5zdCksXG4gICAgICAgICAgICAgICAgb25jaGFuZ2Uodikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNzLm9wYWNpdHkgfHwgIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgb3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5hID0gTWF0aC5yb3VuZCh2ICogMWUyKSAvIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IGByZ2JhKDAsIDAsIDAsICR7Y29sb3IuYX0pYDtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wYWxldHRlLnRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgc2VsZWN0YWJsZTogU2VsZWN0YWJsZSh7XG4gICAgICAgICAgICAgICAgZWxlbWVudHM6IGluc3QuX3Jvb3QuaW50ZXJhY3Rpb24ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdhY3RpdmUnLFxuXG4gICAgICAgICAgICAgICAgb25jaGFuZ2UoZSkge1xuICAgICAgICAgICAgICAgICAgICBpbnN0Ll9yZXByZXNlbnRhdGlvbiA9IGUudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zdC5fcmVjYWxjICYmIGluc3QuX3VwZGF0ZU91dHB1dCgnc3dhdGNoJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9jb21wb25lbnRzID0gY29tcG9uZW50cztcbiAgICB9XG5cbiAgICBfYmluZEV2ZW50cygpIHtcbiAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgY29uc3QgZXZlbnRCaW5kaW5ncyA9IFtcblxuICAgICAgICAgICAgLy8gQ2xlYXIgY29sb3JcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24uY2xlYXIsICdjbGljaycsICgpID0+IHRoaXMuX2NsZWFyQ29sb3IoKSksXG5cbiAgICAgICAgICAgIC8vIFNlbGVjdCBsYXN0IGNvbG9yIG9uIGNsaWNrXG4gICAgICAgICAgICBfLm9uKFtcbiAgICAgICAgICAgICAgICBfcm9vdC5pbnRlcmFjdGlvbi5jYW5jZWwsXG4gICAgICAgICAgICAgICAgX3Jvb3QucHJldmlldy5sYXN0Q29sb3JcbiAgICAgICAgICAgIF0sICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEhTVkEoLi4uKHRoaXMuX2xhc3RDb2xvciB8fCB0aGlzLl9jb2xvcikudG9IU1ZBKCksIHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NhbmNlbCcpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIFNhdmUgY29sb3JcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24uc2F2ZSwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICF0aGlzLmFwcGx5Q29sb3IoKSAmJiAhb3B0aW9ucy5zaG93QWx3YXlzICYmIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIFVzZXIgaW5wdXRcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCBbJ2tleXVwJywgJ2lucHV0J10sIGUgPT4ge1xuXG4gICAgICAgICAgICAgICAgLy8gRmlyZSBsaXN0ZW5lciBpZiBpbml0aWFsaXphdGlvbiBpcyBmaW5pc2ggYW5kIGNoYW5nZWQgY29sb3Igd2FzIHZhbGlkXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0Q29sb3IoZS50YXJnZXQudmFsdWUsIHRydWUpICYmICF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlJywgdGhpcy5fY29sb3IsICdpbnB1dCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2VzdG9wJywgJ2lucHV0JywgdGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBEZXRlY3QgdXNlciBpbnB1dCBhbmQgZGlzYWJsZSBhdXRvLXJlY2FsY3VsYXRpb25cbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCBbJ2ZvY3VzJywgJ2JsdXInXSwgZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVjYWxjID0gZS50eXBlID09PSAnYmx1cic7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVjYWxjICYmIHRoaXMuX3VwZGF0ZU91dHB1dChudWxsKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBDYW5jZWwgaW5wdXQgZGV0ZWN0aW9uIG9uIGNvbG9yIGNoYW5nZVxuICAgICAgICAgICAgXy5vbihbXG4gICAgICAgICAgICAgICAgX3Jvb3QucGFsZXR0ZS5wYWxldHRlLFxuICAgICAgICAgICAgICAgIF9yb290LnBhbGV0dGUucGlja2VyLFxuICAgICAgICAgICAgICAgIF9yb290Lmh1ZS5zbGlkZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3QuaHVlLnBpY2tlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5vcGFjaXR5LnNsaWRlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5vcGFjaXR5LnBpY2tlclxuICAgICAgICAgICAgXSwgWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddLCAoKSA9PiB0aGlzLl9yZWNhbGMgPSB0cnVlLCB7cGFzc2l2ZTogdHJ1ZX0pXG4gICAgICAgIF07XG5cbiAgICAgICAgLy8gUHJvdmlkZSBoaWRpbmcgLyBzaG93aW5nIGFiaWxpdGllcyBvbmx5IGlmIHNob3dBbHdheXMgaXMgZmFsc2VcbiAgICAgICAgaWYgKCFvcHRpb25zLnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNrID0gb3B0aW9ucy5jbG9zZVdpdGhLZXk7XG5cbiAgICAgICAgICAgIGV2ZW50QmluZGluZ3MucHVzaChcblxuICAgICAgICAgICAgICAgIC8vIFNhdmUgYW5kIGhpZGUgLyBzaG93IHBpY2tlclxuICAgICAgICAgICAgICAgIF8ub24oX3Jvb3QuYnV0dG9uLCAnY2xpY2snLCAoKSA9PiB0aGlzLmlzT3BlbigpID8gdGhpcy5oaWRlKCkgOiB0aGlzLnNob3coKSksXG5cbiAgICAgICAgICAgICAgICAvLyBDbG9zZSB3aXRoIGVzY2FwZSBrZXlcbiAgICAgICAgICAgICAgICBfLm9uKGRvY3VtZW50LCAna2V5dXAnLCBlID0+IHRoaXMuaXNPcGVuKCkgJiYgKGUua2V5ID09PSBjayB8fCBlLmNvZGUgPT09IGNrKSAmJiB0aGlzLmhpZGUoKSksXG5cbiAgICAgICAgICAgICAgICAvLyBDYW5jZWwgc2VsZWN0aW5nIGlmIHRoZSB1c2VyIHRhcHMgYmVoaW5kIHRoZSBjb2xvciBwaWNrZXJcbiAgICAgICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ3RvdWNoc3RhcnQnLCAnbW91c2Vkb3duJ10sIGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc09wZW4oKSAmJiAhXy5ldmVudFBhdGgoZSkuc29tZShlbCA9PiBlbCA9PT0gX3Jvb3QuYXBwIHx8IGVsID09PSBfcm9vdC5idXR0b24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtjYXB0dXJlOiB0cnVlfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYWtlIGlucHV0IGFkanVzdGFibGUgaWYgZW5hYmxlZFxuICAgICAgICBpZiAob3B0aW9ucy5hZGp1c3RhYmxlTnVtYmVycykge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2VzID0ge1xuICAgICAgICAgICAgICAgIHJnYmE6IFsyNTUsIDI1NSwgMjU1LCAxXSxcbiAgICAgICAgICAgICAgICBoc3ZhOiBbMzYwLCAxMDAsIDEwMCwgMV0sXG4gICAgICAgICAgICAgICAgaHNsYTogWzM2MCwgMTAwLCAxMDAsIDFdLFxuICAgICAgICAgICAgICAgIGNteWs6IFsxMDAsIDEwMCwgMTAwLCAxMDBdXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBfLmFkanVzdGFibGVJbnB1dE51bWJlcnMoX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCAobywgc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IHJhbmdlc1t0aGlzLmdldENvbG9yUmVwcmVzZW50YXRpb24oKS50b0xvd2VyQ2FzZSgpXTtcblxuICAgICAgICAgICAgICAgIGlmIChyYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXggPSByYW5nZVtpbmRleF07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIG5leHQgcmVhc29uYWJsZSBudW1iZXJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnYgPSBvICsgKG1heCA+PSAxMDAgPyBzdGVwICogMTAwMCA6IHN0ZXApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IHJhbmdlIG9mIHplcm8gdXAgdG8gbWF4LCBmaXggZmxvYXRpbmctcG9pbnQgaXNzdWVzXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudiA8PSAwID8gMCA6IE51bWJlcigobnYgPCBtYXggPyBudiA6IG1heCkudG9QcmVjaXNpb24oMykpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5hdXRvUmVwb3NpdGlvbiAmJiAhb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuXG4gICAgICAgICAgICAvLyBSZS1jYWxjIHBvc2l0aW9uIG9uIHdpbmRvdyByZXNpemUsIHNjcm9sbCBhbmQgd2hlZWxcbiAgICAgICAgICAgIGV2ZW50QmluZGluZ3MucHVzaChcbiAgICAgICAgICAgICAgICBfLm9uKHdpbmRvdywgWydzY3JvbGwnLCAncmVzaXplJ10sICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuaXNPcGVuKCkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuY2xvc2VPblNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZW91dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRpbWVvdXQgPSBudWxsLCAxMDApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHBvc2l0aW9uIG9uIGV2ZXJ5IGZyYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIHJzKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9yZVBvc2l0aW9uaW5nUGlja2VyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aW1lb3V0ICE9PSBudWxsKSAmJiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGltZW91dCA9IG51bGwsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7Y2FwdHVyZTogdHJ1ZX0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2F2ZSBiaW5kaW5nc1xuICAgICAgICB0aGlzLl9ldmVudEJpbmRpbmdzID0gZXZlbnRCaW5kaW5ncztcbiAgICB9XG5cbiAgICBfcmVQb3NpdGlvbmluZ1BpY2tlcigpIHtcbiAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBObyByZXBvc2l0aW9uaW5nIG5lZWRlZCBpZiBpbmxpbmVcbiAgICAgICAgaWYgKCFvcHRpb25zLmlubGluZSkge1xuICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IHRoaXMuX25hbm9wb3AudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBjb250YWluZXI6IGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IG9wdGlvbnMucG9zaXRpb25cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuX3Jvb3QuYXBwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGViID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgZWwuc3R5bGUudG9wID0gYCR7KHdpbmRvdy5pbm5lckhlaWdodCAtIGViLmhlaWdodCkgLyAyfXB4YDtcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS5sZWZ0ID0gYCR7KHdpbmRvdy5pbm5lcldpZHRoIC0gZWIud2lkdGgpIC8gMn1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfdXBkYXRlT3V0cHV0KGV2ZW50U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgX2NvbG9yLCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY29tcG9uZW50IGlzIHByZXNlbnRcbiAgICAgICAgaWYgKF9yb290LmludGVyYWN0aW9uLnR5cGUoKSkge1xuXG4gICAgICAgICAgICAvLyBDb25zdHJ1Y3QgZnVuY3Rpb24gbmFtZSBhbmQgY2FsbCBpZiBwcmVzZW50XG4gICAgICAgICAgICBjb25zdCBtZXRob2QgPSBgdG8ke19yb290LmludGVyYWN0aW9uLnR5cGUoKS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpfWA7XG4gICAgICAgICAgICBfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQudmFsdWUgPSB0eXBlb2YgX2NvbG9yW21ldGhvZF0gPT09ICdmdW5jdGlvbicgP1xuICAgICAgICAgICAgICAgIF9jb2xvclttZXRob2RdKCkudG9TdHJpbmcob3B0aW9ucy5vdXRwdXRQcmVjaXNpb24pIDogJyc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaXJlIGxpc3RlbmVyIGlmIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaFxuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiB0aGlzLl9yZWNhbGMpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZScsIF9jb2xvciwgZXZlbnRTb3VyY2UsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2NsZWFyQ29sb3Ioc2lsZW50ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gQ2hhbmdlIG9ubHkgdGhlIGJ1dHRvbiBjb2xvciBpZiBpdCBpc24ndCBjdXN0b21pemVkXG4gICAgICAgIGlmICghb3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgX3Jvb3QuYnV0dG9uLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsICdyZ2JhKDAsIDAsIDAsIDAuMTUpJyk7XG4gICAgICAgIH1cblxuICAgICAgICBfcm9vdC5idXR0b24uY2xhc3NMaXN0LmFkZCgnY2xlYXInKTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMuc2hvd0Fsd2F5cykge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sYXN0Q29sb3IgPSBudWxsO1xuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiAhc2lsZW50KSB7XG5cbiAgICAgICAgICAgIC8vIEZpcmUgbGlzdGVuZXJcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3NhdmUnLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NsZWFyJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfcGFyc2VMb2NhbENvbG9yKHN0cikge1xuICAgICAgICBjb25zdCB7dmFsdWVzLCB0eXBlLCBhfSA9IHBhcnNlVG9IU1ZBKHN0cik7XG4gICAgICAgIGNvbnN0IHtsb2NrT3BhY2l0eX0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGFscGhhTWFrZXNBQ2hhbmdlID0gYSAhPT0gdW5kZWZpbmVkICYmIGEgIT09IDE7XG5cbiAgICAgICAgLy8gSWYgbm8gb3BhY2l0eSBpcyBhcHBsaWVkLCBhZGQgdW5kZWZpbmVkIGF0IHRoZSB2ZXJ5IGVuZCB3aGljaCBnZXRzXG4gICAgICAgIC8vIFNldCB0byAxIGluIHNldEhTVkFcbiAgICAgICAgaWYgKHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB2YWx1ZXNbM10gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWVzOiAoIXZhbHVlcyB8fCAobG9ja09wYWNpdHkgJiYgYWxwaGFNYWtlc0FDaGFuZ2UpKSA/IG51bGwgOiB2YWx1ZXMsXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgX3Qoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaTE4bltrZXldIHx8IFBpY2tyLkkxOE5fREVGQVVMVFNba2V5XTtcbiAgICB9XG5cbiAgICBfZW1pdChldmVudCwgLi4uYXJncykge1xuICAgICAgICB0aGlzLl9ldmVudExpc3RlbmVyW2V2ZW50XS5mb3JFYWNoKGNiID0+IGNiKC4uLmFyZ3MsIHRoaXMpKTtcbiAgICB9XG5cbiAgICBvbihldmVudCwgY2IpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcltldmVudF0ucHVzaChjYik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG9mZihldmVudCwgY2IpIHtcbiAgICAgICAgY29uc3QgY2FsbEJhY2tzID0gKHRoaXMuX2V2ZW50TGlzdGVuZXJbZXZlbnRdIHx8IFtdKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjYWxsQmFja3MuaW5kZXhPZihjYik7XG5cbiAgICAgICAgaWYgKH5pbmRleCkge1xuICAgICAgICAgICAgY2FsbEJhY2tzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBlbmRzIGEgY29sb3IgdG8gdGhlIHN3YXRjaCBwYWxldHRlXG4gICAgICogQHBhcmFtIGNvbG9yXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgYWRkU3dhdGNoKGNvbG9yKSB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZXN9ID0gdGhpcy5fcGFyc2VMb2NhbENvbG9yKGNvbG9yKTtcblxuICAgICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCB7X3N3YXRjaENvbG9ycywgX3Jvb3R9ID0gdGhpcztcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gSFNWYUNvbG9yKC4uLnZhbHVlcyk7XG5cbiAgICAgICAgICAgIC8vIENyZWF0ZSBuZXcgc3dhdGNoIEhUTUxFbGVtZW50XG4gICAgICAgICAgICBjb25zdCBlbCA9IF8uY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoXG4gICAgICAgICAgICAgICAgYDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwiLS1wY3ItY29sb3I6ICR7Y29sb3IudG9SR0JBKCkudG9TdHJpbmcoMCl9XCIgYXJpYS1sYWJlbD1cIiR7dGhpcy5fdCgnYnRuOnN3YXRjaCcpfVwiLz5gXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBBcHBlbmQgZWxlbWVudCBhbmQgc2F2ZSBzd2F0Y2ggZGF0YVxuICAgICAgICAgICAgX3Jvb3Quc3dhdGNoZXMuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgICAgICAgX3N3YXRjaENvbG9ycy5wdXNoKHtlbCwgY29sb3J9KTtcblxuICAgICAgICAgICAgLy8gQmluZCBldmVudFxuICAgICAgICAgICAgdGhpcy5fZXZlbnRCaW5kaW5ncy5wdXNoKFxuICAgICAgICAgICAgICAgIF8ub24oZWwsICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIU1ZBKC4uLmNvbG9yLnRvSFNWQSgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnc3dhdGNoc2VsZWN0JywgY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2UnLCBjb2xvciwgJ3N3YXRjaCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgc3dhdGNoIGNvbG9yIGJ5IGl0J3MgaW5kZXhcbiAgICAgKiBAcGFyYW0gaW5kZXhcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICByZW1vdmVTd2F0Y2goaW5kZXgpIHtcbiAgICAgICAgY29uc3Qgc3dhdGNoQ29sb3IgPSB0aGlzLl9zd2F0Y2hDb2xvcnNbaW5kZXhdO1xuXG4gICAgICAgIC8vIENoZWNrIHN3YXRjaCBkYXRhXG4gICAgICAgIGlmIChzd2F0Y2hDb2xvcikge1xuICAgICAgICAgICAgY29uc3Qge2VsfSA9IHN3YXRjaENvbG9yO1xuXG4gICAgICAgICAgICAvLyBSZW1vdmUgSFRNTCBjaGlsZCBhbmQgc3dhdGNoIGRhdGFcbiAgICAgICAgICAgIHRoaXMuX3Jvb3Quc3dhdGNoZXMucmVtb3ZlQ2hpbGQoZWwpO1xuICAgICAgICAgICAgdGhpcy5fc3dhdGNoQ29sb3JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBhcHBseUNvbG9yKHNpbGVudCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHtwcmV2aWV3LCBidXR0b259ID0gdGhpcy5fcm9vdDtcblxuICAgICAgICAvLyBDaGFuZ2UgcHJldmlldyBhbmQgY3VycmVudCBjb2xvclxuICAgICAgICBjb25zdCBjc3NSR0JhU3RyaW5nID0gdGhpcy5fY29sb3IudG9SR0JBKCkudG9TdHJpbmcoMCk7XG4gICAgICAgIHByZXZpZXcubGFzdENvbG9yLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuXG4gICAgICAgIC8vIENoYW5nZSBvbmx5IHRoZSBidXR0b24gY29sb3IgaWYgaXQgaXNuJ3QgY3VzdG9taXplZFxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgYnV0dG9uLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlciBjaGFuZ2VkIHRoZSBjb2xvciBzbyByZW1vdmUgdGhlIGNsZWFyIGNsYXNcbiAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NsZWFyJyk7XG5cbiAgICAgICAgLy8gU2F2ZSBsYXN0IGNvbG9yXG4gICAgICAgIHRoaXMuX2xhc3RDb2xvciA9IHRoaXMuX2NvbG9yLmNsb25lKCk7XG5cbiAgICAgICAgLy8gRmlyZSBsaXN0ZW5lclxuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiAhc2lsZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdzYXZlJywgdGhpcy5fY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzdHJveSdzIGFsbCBmdW5jdGlvbmFsaXR5c1xuICAgICAqL1xuICAgIGRlc3Ryb3koKSB7XG5cbiAgICAgICAgLy8gQ2FuY2VsIHNldHVwLWZyYW1lIGlmIHNldFxuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zZXR1cEFuaW1hdGlvbkZyYW1lKTtcblxuICAgICAgICAvLyBVbmJpbmQgZXZlbnRzXG4gICAgICAgIHRoaXMuX2V2ZW50QmluZGluZ3MuZm9yRWFjaChhcmdzID0+IF8ub2ZmKC4uLmFyZ3MpKTtcblxuICAgICAgICAvLyBEZXN0cm95IHN1Yi1jb21wb25lbnRzXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuX2NvbXBvbmVudHMpXG4gICAgICAgICAgICAuZm9yRWFjaChrZXkgPT4gdGhpcy5fY29tcG9uZW50c1trZXldLmRlc3Ryb3koKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzdHJveSdzIGFsbCBmdW5jdGlvbmFsaXR5cyBhbmQgcmVtb3Zlc1xuICAgICAqIHRoZSBwaWNrciBlbGVtZW50LlxuICAgICAqL1xuICAgIGRlc3Ryb3lBbmRSZW1vdmUoKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICBjb25zdCB7cm9vdCwgYXBwfSA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGVsZW1lbnRcbiAgICAgICAgaWYgKHJvb3QucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgcm9vdC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHJvb3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIC5wY3ItYXBwXG4gICAgICAgIGFwcC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGFwcCk7XG5cbiAgICAgICAgLy8gVGhlcmUgYXJlIHJlZmVyZW5jZXMgdG8gdmFyaW91cyBET00gZWxlbWVudHMgc3RvcmVkIGluIHRoZSBwaWNrciBpbnN0YW5jZVxuICAgICAgICAvLyBUaGlzIGNsZWFucyBhbGwgb2YgdGhlbSB0byBhdm9pZCBkZXRhY2hlZCBET01zXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMpXG4gICAgICAgICAgICAuZm9yRWFjaChrZXkgPT4gdGhpc1trZXldID0gbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZXMgdGhlIGNvbG9yLXBpY2tlciB1aS5cbiAgICAgKi9cbiAgICBoaWRlKCkge1xuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LnJlbW92ZSgndmlzaWJsZScpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnaGlkZScpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd3MgdGhlIGNvbG9yLXBpY2tlciB1aS5cbiAgICAgKi9cbiAgICBzaG93KCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5kaXNhYmxlZCAmJiAhdGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpO1xuICAgICAgICAgICAgdGhpcy5fcmVQb3NpdGlvbmluZ1BpY2tlcigpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnc2hvdycsIHRoaXMuX2NvbG9yKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIHRoZSBjb2xvciBwaWNrZXIgaXMgY3VycmVudGx5IG9wZW5cbiAgICAgKi9cbiAgICBpc09wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmFwcC5jbGFzc0xpc3QuY29udGFpbnMoJ3Zpc2libGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgYSBzcGVjaWZpYyBjb2xvci5cbiAgICAgKiBAcGFyYW0gaCBIdWVcbiAgICAgKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gICAgICogQHBhcmFtIHYgVmFsdWVcbiAgICAgKiBAcGFyYW0gYSBBbHBoYSBjaGFubmVsICgwIC0gMSlcbiAgICAgKiBAcGFyYW0gc2lsZW50IElmIHRoZSBidXR0b24gc2hvdWxkIG5vdCBjaGFuZ2UgdGhlIGNvbG9yXG4gICAgICogQHJldHVybiBib29sZWFuIGlmIHRoZSBjb2xvciBoYXMgYmVlbiBhY2NlcHRlZFxuICAgICAqL1xuICAgIHNldEhTVkEoaCA9IDM2MCwgcyA9IDAsIHYgPSAwLCBhID0gMSwgc2lsZW50ID0gZmFsc2UpIHtcblxuICAgICAgICAvLyBEZWFjdGl2YXRlIGNvbG9yIGNhbGN1bGF0aW9uXG4gICAgICAgIGNvbnN0IHJlY2FsYyA9IHRoaXMuX3JlY2FsYzsgLy8gU2F2ZSBzdGF0ZVxuICAgICAgICB0aGlzLl9yZWNhbGMgPSBmYWxzZTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSBpbnB1dFxuICAgICAgICBpZiAoaCA8IDAgfHwgaCA+IDM2MCB8fCBzIDwgMCB8fCBzID4gMTAwIHx8IHYgPCAwIHx8IHYgPiAxMDAgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE92ZXJyaWRlIGN1cnJlbnQgY29sb3IgYW5kIHJlLWFjdGl2ZSBjb2xvciBjYWxjdWxhdGlvblxuICAgICAgICB0aGlzLl9jb2xvciA9IEhTVmFDb2xvcihoLCBzLCB2LCBhKTtcblxuICAgICAgICAvLyBVcGRhdGUgc2xpZGVyIGFuZCBwYWxldHRlXG4gICAgICAgIGNvbnN0IHtodWUsIG9wYWNpdHksIHBhbGV0dGV9ID0gdGhpcy5fY29tcG9uZW50cztcbiAgICAgICAgaHVlLnVwZGF0ZSgoaCAvIDM2MCkpO1xuICAgICAgICBvcGFjaXR5LnVwZGF0ZShhKTtcbiAgICAgICAgcGFsZXR0ZS51cGRhdGUocyAvIDEwMCwgMSAtICh2IC8gMTAwKSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY2FsbCBpcyBzaWxlbnRcbiAgICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlDb2xvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXBkYXRlIG91dHB1dCBpZiByZWNhbGN1bGF0aW9uIGlzIGVuYWJsZWRcbiAgICAgICAgaWYgKHJlY2FsYykge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlT3V0cHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXN0b3JlIG9sZCBzdGF0ZVxuICAgICAgICB0aGlzLl9yZWNhbGMgPSByZWNhbGM7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIHBhcnNlIGEgc3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBjb2xvci5cbiAgICAgKiBFeGFtcGxlczogI2ZmZlxuICAgICAqICAgICAgICAgICByZ2IgMTAgMTAgMjAwXG4gICAgICogICAgICAgICAgIGhzdmEgMTAgMjAgNSAwLjVcbiAgICAgKiBAcGFyYW0gc3RyaW5nXG4gICAgICogQHBhcmFtIHNpbGVudFxuICAgICAqL1xuICAgIHNldENvbG9yKHN0cmluZywgc2lsZW50ID0gZmFsc2UpIHtcblxuICAgICAgICAvLyBDaGVjayBpZiBudWxsXG4gICAgICAgIGlmIChzdHJpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyQ29sb3Ioc2lsZW50KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3ZhbHVlcywgdHlwZX0gPSB0aGlzLl9wYXJzZUxvY2FsQ29sb3Ioc3RyaW5nKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBpcyBva1xuICAgICAgICBpZiAodmFsdWVzKSB7XG5cbiAgICAgICAgICAgIC8vIENoYW5nZSBzZWxlY3RlZCBjb2xvciBmb3JtYXRcbiAgICAgICAgICAgIGNvbnN0IHV0eXBlID0gdHlwZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcy5fcm9vdC5pbnRlcmFjdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG9wdGlvbnMuZmluZChlbCA9PiBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpID09PSB1dHlwZSk7XG5cbiAgICAgICAgICAgIC8vIEF1dG8gc2VsZWN0IG9ubHkgaWYgbm90IGhpZGRlblxuICAgICAgICAgICAgaWYgKHRhcmdldCAmJiAhdGFyZ2V0LmhpZGRlbikge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZWwgb2Ygb3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3RbZWwgPT09IHRhcmdldCA/ICdhZGQnIDogJ3JlbW92ZSddKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvciAoZmlyZXMgJ3NhdmUnIGV2ZW50IGlmIHNpbGVudCBpcyAnZmFsc2UnKVxuICAgICAgICAgICAgaWYgKCF0aGlzLnNldEhTVkEoLi4udmFsdWVzLCBzaWxlbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgcmVwcmVzZW50YXRpb24gKGZpcmVzICdjaGFuZ2UnIGV2ZW50KVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q29sb3JSZXByZXNlbnRhdGlvbih1dHlwZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgY29sb3IgX3JlcHJlc2VudGF0aW9uLlxuICAgICAqIEFsbG93ZWQgdmFsdWVzIGFyZSBIRVgsIFJHQiwgSFNWLCBIU0wgYW5kIENNWUtcbiAgICAgKiBAcGFyYW0gdHlwZVxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiB0aGUgc2VsZWN0ZWQgdHlwZSB3YXMgdmFsaWQuXG4gICAgICovXG4gICAgc2V0Q29sb3JSZXByZXNlbnRhdGlvbih0eXBlKSB7XG5cbiAgICAgICAgLy8gRm9yY2UgdXBwZXJjYXNlIHRvIGFsbG93IGEgY2FzZS1zZW5zaXRpdiBjb21wYXJpc29uXG4gICAgICAgIHR5cGUgPSB0eXBlLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgLy8gRmluZCBidXR0b24gd2l0aCBnaXZlbiB0eXBlIGFuZCB0cmlnZ2VyIGNsaWNrIGV2ZW50XG4gICAgICAgIHJldHVybiAhIXRoaXMuX3Jvb3QuaW50ZXJhY3Rpb24ub3B0aW9uc1xuICAgICAgICAgICAgLmZpbmQodiA9PiB2LmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykuc3RhcnRzV2l0aCh0eXBlKSAmJiAhdi5jbGljaygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGNvbG9yIHJlcHJlc2VudGFpb24uIFNlZSBzZXRDb2xvclJlcHJlc2VudGF0aW9uXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgZ2V0Q29sb3JSZXByZXNlbnRhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcHJlc2VudGF0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEhTVmFDb2xvciBDdXJyZW50IEhTVmFDb2xvciBvYmplY3QuXG4gICAgICovXG4gICAgZ2V0Q29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY29sb3IuXG4gICAgICogQHJldHVybnMge3thLCB0b0hTVkEsIHRvSEVYQSwgcywgdiwgaCwgY2xvbmUsIHRvQ01ZSywgdG9IU0xBLCB0b1JHQkF9fVxuICAgICAqL1xuICAgIGdldFNlbGVjdGVkQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0Q29sb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgVGhlIHJvb3QgSFRNTEVsZW1lbnQgd2l0aCBhbGwgaGlzIGNvbXBvbmVudHMuXG4gICAgICovXG4gICAgZ2V0Um9vdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzYWJsZSBwaWNrclxuICAgICAqL1xuICAgIGRpc2FibGUoKSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9yb290LmJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgcGlja3JcbiAgICAgKi9cbiAgICBlbmFibGUoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9yb290LmJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdkaXNhYmxlZCcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4iLCAiKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcblx0dHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuXHR0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuXHQoZ2xvYmFsLkpTT041ID0gZmFjdG9yeSgpKTtcbn0odGhpcywgKGZ1bmN0aW9uICgpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cdGZ1bmN0aW9uIGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZuLCBtb2R1bGUpIHtcblx0XHRyZXR1cm4gbW9kdWxlID0geyBleHBvcnRzOiB7fSB9LCBmbihtb2R1bGUsIG1vZHVsZS5leHBvcnRzKSwgbW9kdWxlLmV4cG9ydHM7XG5cdH1cblxuXHR2YXIgX2dsb2JhbCA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcblx0dmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG5cdCAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGZcblx0ICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcblx0ICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdGlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSB7IF9fZyA9IGdsb2JhbDsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cdH0pO1xuXG5cdHZhciBfY29yZSA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0dmFyIGNvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IHsgdmVyc2lvbjogJzIuNi41JyB9O1xuXHRpZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgeyBfX2UgPSBjb3JlOyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblx0fSk7XG5cdHZhciBfY29yZV8xID0gX2NvcmUudmVyc2lvbjtcblxuXHR2YXIgX2lzT2JqZWN0ID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcblx0fTtcblxuXHR2YXIgX2FuT2JqZWN0ID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgaWYgKCFfaXNPYmplY3QoaXQpKSB7IHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTsgfVxuXHQgIHJldHVybiBpdDtcblx0fTtcblxuXHR2YXIgX2ZhaWxzID0gZnVuY3Rpb24gKGV4ZWMpIHtcblx0ICB0cnkge1xuXHQgICAgcmV0dXJuICEhZXhlYygpO1xuXHQgIH0gY2F0Y2ggKGUpIHtcblx0ICAgIHJldHVybiB0cnVlO1xuXHQgIH1cblx0fTtcblxuXHQvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5cdHZhciBfZGVzY3JpcHRvcnMgPSAhX2ZhaWxzKGZ1bmN0aW9uICgpIHtcblx0ICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcblx0fSk7XG5cblx0dmFyIGRvY3VtZW50ID0gX2dsb2JhbC5kb2N1bWVudDtcblx0Ly8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG5cdHZhciBpcyA9IF9pc09iamVjdChkb2N1bWVudCkgJiYgX2lzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXHR2YXIgX2RvbUNyZWF0ZSA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG5cdH07XG5cblx0dmFyIF9pZThEb21EZWZpbmUgPSAhX2Rlc2NyaXB0b3JzICYmICFfZmFpbHMoZnVuY3Rpb24gKCkge1xuXHQgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoX2RvbUNyZWF0ZSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xuXHR9KTtcblxuXHQvLyA3LjEuMSBUb1ByaW1pdGl2ZShpbnB1dCBbLCBQcmVmZXJyZWRUeXBlXSlcblxuXHQvLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuXHQvLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xuXHR2YXIgX3RvUHJpbWl0aXZlID0gZnVuY3Rpb24gKGl0LCBTKSB7XG5cdCAgaWYgKCFfaXNPYmplY3QoaXQpKSB7IHJldHVybiBpdDsgfVxuXHQgIHZhciBmbiwgdmFsO1xuXHQgIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhX2lzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgeyByZXR1cm4gdmFsOyB9XG5cdCAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFfaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSB7IHJldHVybiB2YWw7IH1cblx0ICBpZiAoIVMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFfaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSB7IHJldHVybiB2YWw7IH1cblx0ICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG5cdH07XG5cblx0dmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5cdHZhciBmID0gX2Rlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuXHQgIF9hbk9iamVjdChPKTtcblx0ICBQID0gX3RvUHJpbWl0aXZlKFAsIHRydWUpO1xuXHQgIF9hbk9iamVjdChBdHRyaWJ1dGVzKTtcblx0ICBpZiAoX2llOERvbURlZmluZSkgeyB0cnkge1xuXHQgICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuXHQgIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfSB9XG5cdCAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgeyB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpOyB9XG5cdCAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgeyBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTsgfVxuXHQgIHJldHVybiBPO1xuXHR9O1xuXG5cdHZhciBfb2JqZWN0RHAgPSB7XG5cdFx0ZjogZlxuXHR9O1xuXG5cdHZhciBfcHJvcGVydHlEZXNjID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcblx0ICByZXR1cm4ge1xuXHQgICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcblx0ICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcblx0ICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuXHQgICAgdmFsdWU6IHZhbHVlXG5cdCAgfTtcblx0fTtcblxuXHR2YXIgX2hpZGUgPSBfZGVzY3JpcHRvcnMgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG5cdCAgcmV0dXJuIF9vYmplY3REcC5mKG9iamVjdCwga2V5LCBfcHJvcGVydHlEZXNjKDEsIHZhbHVlKSk7XG5cdH0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG5cdCAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcblx0ICByZXR1cm4gb2JqZWN0O1xuXHR9O1xuXG5cdHZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xuXHR2YXIgX2hhcyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG5cdCAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG5cdH07XG5cblx0dmFyIGlkID0gMDtcblx0dmFyIHB4ID0gTWF0aC5yYW5kb20oKTtcblx0dmFyIF91aWQgPSBmdW5jdGlvbiAoa2V5KSB7XG5cdCAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcblx0fTtcblxuXHR2YXIgX2xpYnJhcnkgPSBmYWxzZTtcblxuXHR2YXIgX3NoYXJlZCA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0dmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xuXHR2YXIgc3RvcmUgPSBfZ2xvYmFsW1NIQVJFRF0gfHwgKF9nbG9iYWxbU0hBUkVEXSA9IHt9KTtcblxuXHQobW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuXHQgIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xuXHR9KSgndmVyc2lvbnMnLCBbXSkucHVzaCh7XG5cdCAgdmVyc2lvbjogX2NvcmUudmVyc2lvbixcblx0ICBtb2RlOiBfbGlicmFyeSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuXHQgIGNvcHlyaWdodDogJ1x1MDBBOSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xuXHR9KTtcblx0fSk7XG5cblx0dmFyIF9mdW5jdGlvblRvU3RyaW5nID0gX3NoYXJlZCgnbmF0aXZlLWZ1bmN0aW9uLXRvLXN0cmluZycsIEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuXHR2YXIgX3JlZGVmaW5lID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHR2YXIgU1JDID0gX3VpZCgnc3JjJyk7XG5cblx0dmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG5cdHZhciBUUEwgPSAoJycgKyBfZnVuY3Rpb25Ub1N0cmluZykuc3BsaXQoVE9fU1RSSU5HKTtcblxuXHRfY29yZS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIF9mdW5jdGlvblRvU3RyaW5nLmNhbGwoaXQpO1xuXHR9O1xuXG5cdChtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbCwgc2FmZSkge1xuXHQgIHZhciBpc0Z1bmN0aW9uID0gdHlwZW9mIHZhbCA9PSAnZnVuY3Rpb24nO1xuXHQgIGlmIChpc0Z1bmN0aW9uKSB7IF9oYXModmFsLCAnbmFtZScpIHx8IF9oaWRlKHZhbCwgJ25hbWUnLCBrZXkpOyB9XG5cdCAgaWYgKE9ba2V5XSA9PT0gdmFsKSB7IHJldHVybjsgfVxuXHQgIGlmIChpc0Z1bmN0aW9uKSB7IF9oYXModmFsLCBTUkMpIHx8IF9oaWRlKHZhbCwgU1JDLCBPW2tleV0gPyAnJyArIE9ba2V5XSA6IFRQTC5qb2luKFN0cmluZyhrZXkpKSk7IH1cblx0ICBpZiAoTyA9PT0gX2dsb2JhbCkge1xuXHQgICAgT1trZXldID0gdmFsO1xuXHQgIH0gZWxzZSBpZiAoIXNhZmUpIHtcblx0ICAgIGRlbGV0ZSBPW2tleV07XG5cdCAgICBfaGlkZShPLCBrZXksIHZhbCk7XG5cdCAgfSBlbHNlIGlmIChPW2tleV0pIHtcblx0ICAgIE9ba2V5XSA9IHZhbDtcblx0ICB9IGVsc2Uge1xuXHQgICAgX2hpZGUoTywga2V5LCB2YWwpO1xuXHQgIH1cblx0Ly8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG5cdH0pKEZ1bmN0aW9uLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcblx0ICByZXR1cm4gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyAmJiB0aGlzW1NSQ10gfHwgX2Z1bmN0aW9uVG9TdHJpbmcuY2FsbCh0aGlzKTtcblx0fSk7XG5cdH0pO1xuXG5cdHZhciBfYUZ1bmN0aW9uID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB7IHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7IH1cblx0ICByZXR1cm4gaXQ7XG5cdH07XG5cblx0Ly8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG5cblx0dmFyIF9jdHggPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuXHQgIF9hRnVuY3Rpb24oZm4pO1xuXHQgIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIGZuOyB9XG5cdCAgc3dpdGNoIChsZW5ndGgpIHtcblx0ICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuXHQgICAgfTtcblx0ICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuXHQgICAgfTtcblx0ICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuXHQgICAgfTtcblx0ICB9XG5cdCAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG5cdCAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcblx0ICB9O1xuXHR9O1xuXG5cdHZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuXHR2YXIgJGV4cG9ydCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCBzb3VyY2UpIHtcblx0ICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcblx0ICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcblx0ICB2YXIgSVNfU1RBVElDID0gdHlwZSAmICRleHBvcnQuUztcblx0ICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuXHQgIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcblx0ICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gX2dsb2JhbCA6IElTX1NUQVRJQyA/IF9nbG9iYWxbbmFtZV0gfHwgKF9nbG9iYWxbbmFtZV0gPSB7fSkgOiAoX2dsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcblx0ICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IF9jb3JlIDogX2NvcmVbbmFtZV0gfHwgKF9jb3JlW25hbWVdID0ge30pO1xuXHQgIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXSB8fCAoZXhwb3J0c1tQUk9UT1RZUEVdID0ge30pO1xuXHQgIHZhciBrZXksIG93biwgb3V0LCBleHA7XG5cdCAgaWYgKElTX0dMT0JBTCkgeyBzb3VyY2UgPSBuYW1lOyB9XG5cdCAgZm9yIChrZXkgaW4gc291cmNlKSB7XG5cdCAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcblx0ICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG5cdCAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuXHQgICAgb3V0ID0gKG93biA/IHRhcmdldCA6IHNvdXJjZSlba2V5XTtcblx0ICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG5cdCAgICBleHAgPSBJU19CSU5EICYmIG93biA/IF9jdHgob3V0LCBfZ2xvYmFsKSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IF9jdHgoRnVuY3Rpb24uY2FsbCwgb3V0KSA6IG91dDtcblx0ICAgIC8vIGV4dGVuZCBnbG9iYWxcblx0ICAgIGlmICh0YXJnZXQpIHsgX3JlZGVmaW5lKHRhcmdldCwga2V5LCBvdXQsIHR5cGUgJiAkZXhwb3J0LlUpOyB9XG5cdCAgICAvLyBleHBvcnRcblx0ICAgIGlmIChleHBvcnRzW2tleV0gIT0gb3V0KSB7IF9oaWRlKGV4cG9ydHMsIGtleSwgZXhwKTsgfVxuXHQgICAgaWYgKElTX1BST1RPICYmIGV4cFByb3RvW2tleV0gIT0gb3V0KSB7IGV4cFByb3RvW2tleV0gPSBvdXQ7IH1cblx0ICB9XG5cdH07XG5cdF9nbG9iYWwuY29yZSA9IF9jb3JlO1xuXHQvLyB0eXBlIGJpdG1hcFxuXHQkZXhwb3J0LkYgPSAxOyAgIC8vIGZvcmNlZFxuXHQkZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuXHQkZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuXHQkZXhwb3J0LlAgPSA4OyAgIC8vIHByb3RvXG5cdCRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuXHQkZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcblx0JGV4cG9ydC5VID0gNjQ7ICAvLyBzYWZlXG5cdCRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxuXHR2YXIgX2V4cG9ydCA9ICRleHBvcnQ7XG5cblx0Ly8gNy4xLjQgVG9JbnRlZ2VyXG5cdHZhciBjZWlsID0gTWF0aC5jZWlsO1xuXHR2YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXHR2YXIgX3RvSW50ZWdlciA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xuXHR9O1xuXG5cdC8vIDcuMi4xIFJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpXG5cdHZhciBfZGVmaW5lZCA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIGlmIChpdCA9PSB1bmRlZmluZWQpIHsgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpOyB9XG5cdCAgcmV0dXJuIGl0O1xuXHR9O1xuXG5cdC8vIHRydWUgIC0+IFN0cmluZyNhdFxuXHQvLyBmYWxzZSAtPiBTdHJpbmcjY29kZVBvaW50QXRcblx0dmFyIF9zdHJpbmdBdCA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHtcblx0ICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykge1xuXHQgICAgdmFyIHMgPSBTdHJpbmcoX2RlZmluZWQodGhhdCkpO1xuXHQgICAgdmFyIGkgPSBfdG9JbnRlZ2VyKHBvcyk7XG5cdCAgICB2YXIgbCA9IHMubGVuZ3RoO1xuXHQgICAgdmFyIGEsIGI7XG5cdCAgICBpZiAoaSA8IDAgfHwgaSA+PSBsKSB7IHJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDsgfVxuXHQgICAgYSA9IHMuY2hhckNvZGVBdChpKTtcblx0ICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG5cdCAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhXG5cdCAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwO1xuXHQgIH07XG5cdH07XG5cblx0dmFyICRhdCA9IF9zdHJpbmdBdChmYWxzZSk7XG5cdF9leHBvcnQoX2V4cG9ydC5QLCAnU3RyaW5nJywge1xuXHQgIC8vIDIxLjEuMy4zIFN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXQocG9zKVxuXHQgIGNvZGVQb2ludEF0OiBmdW5jdGlvbiBjb2RlUG9pbnRBdChwb3MpIHtcblx0ICAgIHJldHVybiAkYXQodGhpcywgcG9zKTtcblx0ICB9XG5cdH0pO1xuXG5cdHZhciBjb2RlUG9pbnRBdCA9IF9jb3JlLlN0cmluZy5jb2RlUG9pbnRBdDtcblxuXHR2YXIgbWF4ID0gTWF0aC5tYXg7XG5cdHZhciBtaW4gPSBNYXRoLm1pbjtcblx0dmFyIF90b0Fic29sdXRlSW5kZXggPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuXHQgIGluZGV4ID0gX3RvSW50ZWdlcihpbmRleCk7XG5cdCAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG5cdH07XG5cblx0dmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG5cdHZhciAkZnJvbUNvZGVQb2ludCA9IFN0cmluZy5mcm9tQ29kZVBvaW50O1xuXG5cdC8vIGxlbmd0aCBzaG91bGQgYmUgMSwgb2xkIEZGIHByb2JsZW1cblx0X2V4cG9ydChfZXhwb3J0LlMgKyBfZXhwb3J0LkYgKiAoISEkZnJvbUNvZGVQb2ludCAmJiAkZnJvbUNvZGVQb2ludC5sZW5ndGggIT0gMSksICdTdHJpbmcnLCB7XG5cdCAgLy8gMjEuMS4yLjIgU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4uY29kZVBvaW50cylcblx0ICBmcm9tQ29kZVBvaW50OiBmdW5jdGlvbiBmcm9tQ29kZVBvaW50KHgpIHtcblx0ICAgIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcblx0IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcblx0ICAgIHZhciByZXMgPSBbXTtcblx0ICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcblx0ICAgIHZhciBpID0gMDtcblx0ICAgIHZhciBjb2RlO1xuXHQgICAgd2hpbGUgKGFMZW4gPiBpKSB7XG5cdCAgICAgIGNvZGUgPSArYXJndW1lbnRzJDFbaSsrXTtcblx0ICAgICAgaWYgKF90b0Fic29sdXRlSW5kZXgoY29kZSwgMHgxMGZmZmYpICE9PSBjb2RlKSB7IHRocm93IFJhbmdlRXJyb3IoY29kZSArICcgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCcpOyB9XG5cdCAgICAgIHJlcy5wdXNoKGNvZGUgPCAweDEwMDAwXG5cdCAgICAgICAgPyBmcm9tQ2hhckNvZGUoY29kZSlcblx0ICAgICAgICA6IGZyb21DaGFyQ29kZSgoKGNvZGUgLT0gMHgxMDAwMCkgPj4gMTApICsgMHhkODAwLCBjb2RlICUgMHg0MDAgKyAweGRjMDApXG5cdCAgICAgICk7XG5cdCAgICB9IHJldHVybiByZXMuam9pbignJyk7XG5cdCAgfVxuXHR9KTtcblxuXHR2YXIgZnJvbUNvZGVQb2ludCA9IF9jb3JlLlN0cmluZy5mcm9tQ29kZVBvaW50O1xuXG5cdC8vIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gRG8gbm90IGVkaXQuXG5cdHZhciBTcGFjZV9TZXBhcmF0b3IgPSAvW1xcdTE2ODBcXHUyMDAwLVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDBdLztcblx0dmFyIElEX1N0YXJ0ID0gL1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkVFLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0Q3XFx1MTdEQ1xcdTE4MjAtXFx1MTg3N1xcdTE4ODAtXFx1MTg4NFxcdTE4ODctXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQUE3XFx1MUIwNS1cXHUxQjMzXFx1MUI0NS1cXHUxQjRCXFx1MUI4My1cXHUxQkEwXFx1MUJBRVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjFcXHUxQ0Y1XFx1MUNGNlxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMjlcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkVcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUFcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFRlxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdBRVxcdUE3QjAtXFx1QTdCN1xcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2NVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ118XFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURENDAtXFx1REQ3NFxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0QVxcdURGNTAtXFx1REY3NVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRlxcdURGRDEtXFx1REZENV18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwXFx1REUxMC1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTMzXFx1REU2MC1cXHVERTdDXFx1REU4MC1cXHVERTlDXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU0XFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjcyXFx1REY4MC1cXHVERjkxXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdURDODAtXFx1RENCMlxcdURDQzAtXFx1RENGMl18XFx1RDgwNFtcXHVEQzAzLVxcdURDMzdcXHVEQzgzLVxcdURDQUZcXHVEQ0QwLVxcdURDRThcXHVERDAzLVxcdUREMjZcXHVERDUwLVxcdURENzJcXHVERDc2XFx1REQ4My1cXHVEREIyXFx1RERDMS1cXHVEREM0XFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERURFXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0RcXHVERjUwXFx1REY1RC1cXHVERjYxXXxcXHVEODA1W1xcdURDMDAtXFx1REMzNFxcdURDNDctXFx1REM0QVxcdURDODAtXFx1RENBRlxcdURDQzRcXHVEQ0M1XFx1RENDN1xcdUREODAtXFx1RERBRVxcdURERDgtXFx1REREQlxcdURFMDAtXFx1REUyRlxcdURFNDRcXHVERTgwLVxcdURFQUFcXHVERjAwLVxcdURGMTldfFxcdUQ4MDZbXFx1RENBMC1cXHVEQ0RGXFx1RENGRlxcdURFMDBcXHVERTBCLVxcdURFMzJcXHVERTNBXFx1REU1MFxcdURFNUMtXFx1REU4M1xcdURFODYtXFx1REU4OVxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMkVcXHVEQzQwXFx1REM3Mi1cXHVEQzhGXFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzBcXHVERDQ2XXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzAwLVxcdURDNkVcXHVEQzgwLVxcdURENDNdfFtcXHVEODBDXFx1RDgxQy1cXHVEODIwXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERUQwLVxcdURFRURcXHVERjAwLVxcdURGMkZcXHVERjQwLVxcdURGNDNcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REYwMC1cXHVERjQ0XFx1REY1MFxcdURGOTMtXFx1REY5RlxcdURGRTBcXHVERkUxXXxcXHVEODIxW1xcdURDMDAtXFx1REZFQ118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OV18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdUREMDAtXFx1REQ0M118XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXS87XG5cdHZhciBJRF9Db250aW51ZSA9IC9bXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzMDAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4My1cXHUwNDg3XFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjEtXFx1MDU4N1xcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzRcXHUwNUM1XFx1MDVDN1xcdTA1RDAtXFx1MDVFQVxcdTA1RjAtXFx1MDVGMlxcdTA2MTAtXFx1MDYxQVxcdTA2MjAtXFx1MDY2OVxcdTA2NkUtXFx1MDZEM1xcdTA2RDUtXFx1MDZEQ1xcdTA2REYtXFx1MDZFOFxcdTA2RUEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwLVxcdTA3NEFcXHUwNzRELVxcdTA3QjFcXHUwN0MwLVxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODJEXFx1MDg0MC1cXHUwODVCXFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEJEXFx1MDhENC1cXHUwOEUxXFx1MDhFMy1cXHUwOTYzXFx1MDk2Ni1cXHUwOTZGXFx1MDk3MS1cXHUwOTgzXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCQy1cXHUwOUM0XFx1MDlDN1xcdTA5QzhcXHUwOUNCLVxcdTA5Q0VcXHUwOUQ3XFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTNcXHUwOUU2LVxcdTA5RjFcXHUwOUZDXFx1MEEwMS1cXHUwQTAzXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTNDXFx1MEEzRS1cXHUwQTQyXFx1MEE0N1xcdTBBNDhcXHUwQTRCLVxcdTBBNERcXHUwQTUxXFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNjYtXFx1MEE3NVxcdTBBODEtXFx1MEE4M1xcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCQy1cXHUwQUM1XFx1MEFDNy1cXHUwQUM5XFx1MEFDQi1cXHUwQUNEXFx1MEFEMFxcdTBBRTAtXFx1MEFFM1xcdTBBRTYtXFx1MEFFRlxcdTBBRjktXFx1MEFGRlxcdTBCMDEtXFx1MEIwM1xcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNDLVxcdTBCNDRcXHUwQjQ3XFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjNcXHUwQjY2LVxcdTBCNkZcXHUwQjcxXFx1MEI4MlxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEMFxcdTBCRDdcXHUwQkU2LVxcdTBCRUZcXHUwQzAwLVxcdTBDMDNcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNELVxcdTBDNDRcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNTgtXFx1MEM1QVxcdTBDNjAtXFx1MEM2M1xcdTBDNjYtXFx1MEM2RlxcdTBDODAtXFx1MEM4M1xcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkMtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENERVxcdTBDRTAtXFx1MENFM1xcdTBDRTYtXFx1MENFRlxcdTBDRjFcXHUwQ0YyXFx1MEQwMC1cXHUwRDAzXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDRFXFx1MEQ1NC1cXHUwRDU3XFx1MEQ1Ri1cXHUwRDYzXFx1MEQ2Ni1cXHUwRDZGXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4MlxcdTBEODNcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MERDQVxcdTBEQ0YtXFx1MERENFxcdTBERDZcXHUwREQ4LVxcdTBEREZcXHUwREU2LVxcdTBERUZcXHUwREYyXFx1MERGM1xcdTBFMDEtXFx1MEUzQVxcdTBFNDAtXFx1MEU0RVxcdTBFNTAtXFx1MEU1OVxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUI5XFx1MEVCQi1cXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFQzgtXFx1MEVDRFxcdTBFRDAtXFx1MEVEOVxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjE4XFx1MEYxOVxcdTBGMjAtXFx1MEYyOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0UtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGNzEtXFx1MEY4NFxcdTBGODYtXFx1MEY5N1xcdTBGOTktXFx1MEZCQ1xcdTBGQzZcXHUxMDAwLVxcdTEwNDlcXHUxMDUwLVxcdTEwOURcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM1RC1cXHUxMzVGXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzE0XFx1MTcyMC1cXHUxNzM0XFx1MTc0MC1cXHUxNzUzXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc3MlxcdTE3NzNcXHUxNzgwLVxcdTE3RDNcXHUxN0Q3XFx1MTdEQ1xcdTE3RERcXHUxN0UwLVxcdTE3RTlcXHUxODBCLVxcdTE4MERcXHUxODEwLVxcdTE4MTlcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTIwLVxcdTE5MkJcXHUxOTMwLVxcdTE5M0JcXHUxOTQ2LVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxOUQwLVxcdTE5RDlcXHUxQTAwLVxcdTFBMUJcXHUxQTIwLVxcdTFBNUVcXHUxQTYwLVxcdTFBN0NcXHUxQTdGLVxcdTFBODlcXHUxQTkwLVxcdTFBOTlcXHUxQUE3XFx1MUFCMC1cXHUxQUJEXFx1MUIwMC1cXHUxQjRCXFx1MUI1MC1cXHUxQjU5XFx1MUI2Qi1cXHUxQjczXFx1MUI4MC1cXHUxQkYzXFx1MUMwMC1cXHUxQzM3XFx1MUM0MC1cXHUxQzQ5XFx1MUM0RC1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0Y5XFx1MUQwMC1cXHUxREY5XFx1MURGQi1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwM0ZcXHUyMDQwXFx1MjA1NFxcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBGMFxcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDdGLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyREUwLVxcdTJERkZcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDJGXFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5OVxcdTMwOUFcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkVcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUFcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MkJcXHVBNjQwLVxcdUE2NkZcXHVBNjc0LVxcdUE2N0RcXHVBNjdGLVxcdUE2RjFcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3QUVcXHVBN0IwLVxcdUE3QjdcXHVBN0Y3LVxcdUE4MjdcXHVBODQwLVxcdUE4NzNcXHVBODgwLVxcdUE4QzVcXHVBOEQwLVxcdUE4RDlcXHVBOEUwLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE5MDAtXFx1QTkyRFxcdUE5MzAtXFx1QTk1M1xcdUE5NjAtXFx1QTk3Q1xcdUE5ODAtXFx1QTlDMFxcdUE5Q0YtXFx1QTlEOVxcdUE5RTAtXFx1QTlGRVxcdUFBMDAtXFx1QUEzNlxcdUFBNDAtXFx1QUE0RFxcdUFBNTAtXFx1QUE1OVxcdUFBNjAtXFx1QUE3NlxcdUFBN0EtXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFRlxcdUFBRjItXFx1QUFGNlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2NVxcdUFCNzAtXFx1QUJFQVxcdUFCRUNcXHVBQkVEXFx1QUJGMC1cXHVBQkY5XFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRC1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTAwLVxcdUZFMEZcXHVGRTIwLVxcdUZFMkZcXHVGRTMzXFx1RkUzNFxcdUZFNEQtXFx1RkU0RlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMTAtXFx1RkYxOVxcdUZGMjEtXFx1RkYzQVxcdUZGM0ZcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERDQwLVxcdURENzRcXHVEREZEXFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REVFMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0QVxcdURGNTAtXFx1REY3QVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRlxcdURGRDEtXFx1REZENV18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0EwLVxcdURDQTlcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwLVxcdURFMDNcXHVERTA1XFx1REUwNlxcdURFMEMtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzM1xcdURFMzgtXFx1REUzQVxcdURFM0ZcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTZcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA0W1xcdURDMDAtXFx1REM0NlxcdURDNjYtXFx1REM2RlxcdURDN0YtXFx1RENCQVxcdURDRDAtXFx1RENFOFxcdURDRjAtXFx1RENGOVxcdUREMDAtXFx1REQzNFxcdUREMzYtXFx1REQzRlxcdURENTAtXFx1REQ3M1xcdURENzZcXHVERDgwLVxcdUREQzRcXHVERENBLVxcdUREQ0NcXHVEREQwLVxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTM3XFx1REUzRVxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFRUFcXHVERUYwLVxcdURFRjlcXHVERjAwLVxcdURGMDNcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzQy1cXHVERjQ0XFx1REY0N1xcdURGNDhcXHVERjRCLVxcdURGNERcXHVERjUwXFx1REY1N1xcdURGNUQtXFx1REY2M1xcdURGNjYtXFx1REY2Q1xcdURGNzAtXFx1REY3NF18XFx1RDgwNVtcXHVEQzAwLVxcdURDNEFcXHVEQzUwLVxcdURDNTlcXHVEQzgwLVxcdURDQzVcXHVEQ0M3XFx1RENEMC1cXHVEQ0Q5XFx1REQ4MC1cXHVEREI1XFx1RERCOC1cXHVEREMwXFx1REREOC1cXHVEREREXFx1REUwMC1cXHVERTQwXFx1REU0NFxcdURFNTAtXFx1REU1OVxcdURFODAtXFx1REVCN1xcdURFQzAtXFx1REVDOVxcdURGMDAtXFx1REYxOVxcdURGMUQtXFx1REYyQlxcdURGMzAtXFx1REYzOV18XFx1RDgwNltcXHVEQ0EwLVxcdURDRTlcXHVEQ0ZGXFx1REUwMC1cXHVERTNFXFx1REU0N1xcdURFNTAtXFx1REU4M1xcdURFODYtXFx1REU5OVxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMzZcXHVEQzM4LVxcdURDNDBcXHVEQzUwLVxcdURDNTlcXHVEQzcyLVxcdURDOEZcXHVEQzkyLVxcdURDQTdcXHVEQ0E5LVxcdURDQjZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzNlxcdUREM0FcXHVERDNDXFx1REQzRFxcdUREM0YtXFx1REQ0N1xcdURENTAtXFx1REQ1OV18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REMwMC1cXHVEQzZFXFx1REM4MC1cXHVERDQzXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4NDAtXFx1RDg2OFxcdUQ4NkEtXFx1RDg2Q1xcdUQ4NkYtXFx1RDg3MlxcdUQ4NzQtXFx1RDg3OV1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMDAtXFx1REMyRV18XFx1RDgxMVtcXHVEQzAwLVxcdURFNDZdfFxcdUQ4MUFbXFx1REMwMC1cXHVERTM4XFx1REU0MC1cXHVERTVFXFx1REU2MC1cXHVERTY5XFx1REVEMC1cXHVERUVEXFx1REVGMC1cXHVERUY0XFx1REYwMC1cXHVERjM2XFx1REY0MC1cXHVERjQzXFx1REY1MC1cXHVERjU5XFx1REY2My1cXHVERjc3XFx1REY3RC1cXHVERjhGXXxcXHVEODFCW1xcdURGMDAtXFx1REY0NFxcdURGNTAtXFx1REY3RVxcdURGOEYtXFx1REY5RlxcdURGRTBcXHVERkUxXXxcXHVEODIxW1xcdURDMDAtXFx1REZFQ118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OVxcdURDOURcXHVEQzlFXXxcXHVEODM0W1xcdURENjUtXFx1REQ2OVxcdURENkQtXFx1REQ3MlxcdUREN0ItXFx1REQ4MlxcdUREODUtXFx1REQ4QlxcdUREQUEtXFx1RERBRFxcdURFNDItXFx1REU0NF18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXFx1REZDRS1cXHVERkZGXXxcXHVEODM2W1xcdURFMDAtXFx1REUzNlxcdURFM0ItXFx1REU2Q1xcdURFNzVcXHVERTg0XFx1REU5Qi1cXHVERTlGXFx1REVBMS1cXHVERUFGXXxcXHVEODM4W1xcdURDMDAtXFx1REMwNlxcdURDMDgtXFx1REMxOFxcdURDMUItXFx1REMyMVxcdURDMjNcXHVEQzI0XFx1REMyNi1cXHVEQzJBXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdURDRDAtXFx1RENENlxcdUREMDAtXFx1REQ0QVxcdURENTAtXFx1REQ1OV18XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXXxcXHVEQjQwW1xcdUREMDAtXFx1RERFRl0vO1xuXG5cdHZhciB1bmljb2RlID0ge1xuXHRcdFNwYWNlX1NlcGFyYXRvcjogU3BhY2VfU2VwYXJhdG9yLFxuXHRcdElEX1N0YXJ0OiBJRF9TdGFydCxcblx0XHRJRF9Db250aW51ZTogSURfQ29udGludWVcblx0fTtcblxuXHR2YXIgdXRpbCA9IHtcblx0ICAgIGlzU3BhY2VTZXBhcmF0b3I6IGZ1bmN0aW9uIGlzU3BhY2VTZXBhcmF0b3IgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIHVuaWNvZGUuU3BhY2VfU2VwYXJhdG9yLnRlc3QoYylcblx0ICAgIH0sXG5cblx0ICAgIGlzSWRTdGFydENoYXI6IGZ1bmN0aW9uIGlzSWRTdGFydENoYXIgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIChcblx0ICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fFxuXHQgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHxcblx0ICAgICAgICAoYyA9PT0gJyQnKSB8fCAoYyA9PT0gJ18nKSB8fFxuXHQgICAgICAgIHVuaWNvZGUuSURfU3RhcnQudGVzdChjKVxuXHQgICAgICAgIClcblx0ICAgIH0sXG5cblx0ICAgIGlzSWRDb250aW51ZUNoYXI6IGZ1bmN0aW9uIGlzSWRDb250aW51ZUNoYXIgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIChcblx0ICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fFxuXHQgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHxcblx0ICAgICAgICAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8XG5cdCAgICAgICAgKGMgPT09ICckJykgfHwgKGMgPT09ICdfJykgfHxcblx0ICAgICAgICAoYyA9PT0gJ1xcdTIwMEMnKSB8fCAoYyA9PT0gJ1xcdTIwMEQnKSB8fFxuXHQgICAgICAgIHVuaWNvZGUuSURfQ29udGludWUudGVzdChjKVxuXHQgICAgICAgIClcblx0ICAgIH0sXG5cblx0ICAgIGlzRGlnaXQ6IGZ1bmN0aW9uIGlzRGlnaXQgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIC9bMC05XS8udGVzdChjKVxuXHQgICAgfSxcblxuXHQgICAgaXNIZXhEaWdpdDogZnVuY3Rpb24gaXNIZXhEaWdpdCAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgL1swLTlBLUZhLWZdLy50ZXN0KGMpXG5cdCAgICB9LFxuXHR9O1xuXG5cdHZhciBzb3VyY2U7XG5cdHZhciBwYXJzZVN0YXRlO1xuXHR2YXIgc3RhY2s7XG5cdHZhciBwb3M7XG5cdHZhciBsaW5lO1xuXHR2YXIgY29sdW1uO1xuXHR2YXIgdG9rZW47XG5cdHZhciBrZXk7XG5cdHZhciByb290O1xuXG5cdHZhciBwYXJzZSA9IGZ1bmN0aW9uIHBhcnNlICh0ZXh0LCByZXZpdmVyKSB7XG5cdCAgICBzb3VyY2UgPSBTdHJpbmcodGV4dCk7XG5cdCAgICBwYXJzZVN0YXRlID0gJ3N0YXJ0Jztcblx0ICAgIHN0YWNrID0gW107XG5cdCAgICBwb3MgPSAwO1xuXHQgICAgbGluZSA9IDE7XG5cdCAgICBjb2x1bW4gPSAwO1xuXHQgICAgdG9rZW4gPSB1bmRlZmluZWQ7XG5cdCAgICBrZXkgPSB1bmRlZmluZWQ7XG5cdCAgICByb290ID0gdW5kZWZpbmVkO1xuXG5cdCAgICBkbyB7XG5cdCAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgICAgICAvLyBpZiAoIXBhcnNlU3RhdGVzW3BhcnNlU3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRQYXJzZVN0YXRlKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBwYXJzZVN0YXRlc1twYXJzZVN0YXRlXSgpO1xuXHQgICAgfSB3aGlsZSAodG9rZW4udHlwZSAhPT0gJ2VvZicpXG5cblx0ICAgIGlmICh0eXBlb2YgcmV2aXZlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgIHJldHVybiBpbnRlcm5hbGl6ZSh7Jyc6IHJvb3R9LCAnJywgcmV2aXZlcilcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHJvb3Rcblx0fTtcblxuXHRmdW5jdGlvbiBpbnRlcm5hbGl6ZSAoaG9sZGVyLCBuYW1lLCByZXZpdmVyKSB7XG5cdCAgICB2YXIgdmFsdWUgPSBob2xkZXJbbmFtZV07XG5cdCAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdCAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIHZhciBrZXkgPSBTdHJpbmcoaSk7XG5cdCAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQgPSBpbnRlcm5hbGl6ZSh2YWx1ZSwga2V5LCByZXZpdmVyKTtcblx0ICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhbHVlW2tleV07XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwga2V5LCB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZXBsYWNlbWVudCxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICB9KTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGtleSQxIGluIHZhbHVlKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQkMSA9IGludGVybmFsaXplKHZhbHVlLCBrZXkkMSwgcmV2aXZlcik7XG5cdCAgICAgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQkMSA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhbHVlW2tleSQxXTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBrZXkkMSwge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVwbGFjZW1lbnQkMSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICB9KTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHJldml2ZXIuY2FsbChob2xkZXIsIG5hbWUsIHZhbHVlKVxuXHR9XG5cblx0dmFyIGxleFN0YXRlO1xuXHR2YXIgYnVmZmVyO1xuXHR2YXIgZG91YmxlUXVvdGU7XG5cdHZhciBzaWduO1xuXHR2YXIgYztcblxuXHRmdW5jdGlvbiBsZXggKCkge1xuXHQgICAgbGV4U3RhdGUgPSAnZGVmYXVsdCc7XG5cdCAgICBidWZmZXIgPSAnJztcblx0ICAgIGRvdWJsZVF1b3RlID0gZmFsc2U7XG5cdCAgICBzaWduID0gMTtcblxuXHQgICAgZm9yICg7Oykge1xuXHQgICAgICAgIGMgPSBwZWVrKCk7XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAgICAgLy8gaWYgKCFsZXhTdGF0ZXNbbGV4U3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRMZXhTdGF0ZShsZXhTdGF0ZSlcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICB2YXIgdG9rZW4gPSBsZXhTdGF0ZXNbbGV4U3RhdGVdKCk7XG5cdCAgICAgICAgaWYgKHRva2VuKSB7XG5cdCAgICAgICAgICAgIHJldHVybiB0b2tlblxuXHQgICAgICAgIH1cblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIHBlZWsgKCkge1xuXHQgICAgaWYgKHNvdXJjZVtwb3NdKSB7XG5cdCAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHNvdXJjZS5jb2RlUG9pbnRBdChwb3MpKVxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gcmVhZCAoKSB7XG5cdCAgICB2YXIgYyA9IHBlZWsoKTtcblxuXHQgICAgaWYgKGMgPT09ICdcXG4nKSB7XG5cdCAgICAgICAgbGluZSsrO1xuXHQgICAgICAgIGNvbHVtbiA9IDA7XG5cdCAgICB9IGVsc2UgaWYgKGMpIHtcblx0ICAgICAgICBjb2x1bW4gKz0gYy5sZW5ndGg7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIGNvbHVtbisrO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoYykge1xuXHQgICAgICAgIHBvcyArPSBjLmxlbmd0aDtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIGNcblx0fVxuXG5cdHZhciBsZXhTdGF0ZXMgPSB7XG5cdCAgICBkZWZhdWx0OiBmdW5jdGlvbiBkZWZhdWx0JDEgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ1xcdCc6XG5cdCAgICAgICAgY2FzZSAnXFx2Jzpcblx0ICAgICAgICBjYXNlICdcXGYnOlxuXHQgICAgICAgIGNhc2UgJyAnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTAwQTAnOlxuXHQgICAgICAgIGNhc2UgJ1xcdUZFRkYnOlxuXHQgICAgICAgIGNhc2UgJ1xcbic6XG5cdCAgICAgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy8nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2NvbW1lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc1NwYWNlU2VwYXJhdG9yKGMpKSB7XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgICAgIC8vIGlmICghbGV4U3RhdGVzW3BhcnNlU3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRMZXhTdGF0ZShwYXJzZVN0YXRlKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHJldHVybiBsZXhTdGF0ZXNbcGFyc2VTdGF0ZV0oKVxuXHQgICAgfSxcblxuXHQgICAgY29tbWVudDogZnVuY3Rpb24gY29tbWVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnbXVsdGlMaW5lQ29tbWVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLyc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc2luZ2xlTGluZUNvbW1lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBtdWx0aUxpbmVDb21tZW50OiBmdW5jdGlvbiBtdWx0aUxpbmVDb21tZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcqJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdtdWx0aUxpbmVDb21tZW50QXN0ZXJpc2snO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgfSxcblxuXHQgICAgbXVsdGlMaW5lQ29tbWVudEFzdGVyaXNrOiBmdW5jdGlvbiBtdWx0aUxpbmVDb21tZW50QXN0ZXJpc2sgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyonOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLyc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVmYXVsdCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAnbXVsdGlMaW5lQ29tbWVudCc7XG5cdCAgICB9LFxuXG5cdCAgICBzaW5nbGVMaW5lQ29tbWVudDogZnVuY3Rpb24gc2luZ2xlTGluZUNvbW1lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ1xcbic6XG5cdCAgICAgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWZhdWx0Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgfSxcblxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICd7Jzpcblx0ICAgICAgICBjYXNlICdbJzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXG5cdCAgICAgICAgY2FzZSAnbic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgndWxsJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVsbCcsIG51bGwpXG5cblx0ICAgICAgICBjYXNlICd0Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdydWUnKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdib29sZWFuJywgdHJ1ZSlcblxuXHQgICAgICAgIGNhc2UgJ2YnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2Fsc2UnKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdib29sZWFuJywgZmFsc2UpXG5cblx0ICAgICAgICBjYXNlICctJzpcblx0ICAgICAgICBjYXNlICcrJzpcblx0ICAgICAgICAgICAgaWYgKHJlYWQoKSA9PT0gJy0nKSB7XG5cdCAgICAgICAgICAgICAgICBzaWduID0gLTE7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzaWduJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnRMZWFkaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcwJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICd6ZXJvJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcxJzpcblx0ICAgICAgICBjYXNlICcyJzpcblx0ICAgICAgICBjYXNlICczJzpcblx0ICAgICAgICBjYXNlICc0Jzpcblx0ICAgICAgICBjYXNlICc1Jzpcblx0ICAgICAgICBjYXNlICc2Jzpcblx0ICAgICAgICBjYXNlICc3Jzpcblx0ICAgICAgICBjYXNlICc4Jzpcblx0ICAgICAgICBjYXNlICc5Jzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsSW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnSSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnbmZpbml0eScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBJbmZpbml0eSlcblxuXHQgICAgICAgIGNhc2UgJ04nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2FOJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIE5hTilcblxuXHQgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBkb3VibGVRdW90ZSA9IChyZWFkKCkgPT09ICdcIicpO1xuXHQgICAgICAgICAgICBidWZmZXIgPSAnJztcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc3RyaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZTogZnVuY3Rpb24gaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgIT09ICd1Jykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHZhciB1ID0gdW5pY29kZUVzY2FwZSgpO1xuXHQgICAgICAgIHN3aXRjaCAodSkge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgZGVmYXVsdDpcblx0ICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRTdGFydENoYXIodSkpIHtcblx0ICAgICAgICAgICAgICAgIHRocm93IGludmFsaWRJZGVudGlmaWVyKClcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJyZWFrXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHU7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWU6IGZ1bmN0aW9uIGlkZW50aWZpZXJOYW1lICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBDJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBEJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcXFxcJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZUVzY2FwZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzSWRDb250aW51ZUNoYXIoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdpZGVudGlmaWVyJywgYnVmZmVyKVxuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWVFc2NhcGU6IGZ1bmN0aW9uIGlkZW50aWZpZXJOYW1lRXNjYXBlICgpIHtcblx0ICAgICAgICBpZiAoYyAhPT0gJ3UnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgdmFyIHUgPSB1bmljb2RlRXNjYXBlKCk7XG5cdCAgICAgICAgc3dpdGNoICh1KSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwQyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwRCc6XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBkZWZhdWx0OlxuXHQgICAgICAgICAgICBpZiAoIXV0aWwuaXNJZENvbnRpbnVlQ2hhcih1KSkge1xuXHQgICAgICAgICAgICAgICAgdGhyb3cgaW52YWxpZElkZW50aWZpZXIoKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnJlYWtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gdTtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICB9LFxuXG5cdCAgICBzaWduOiBmdW5jdGlvbiBzaWduJDEgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludExlYWRpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzAnOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3plcm8nO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzEnOlxuXHQgICAgICAgIGNhc2UgJzInOlxuXHQgICAgICAgIGNhc2UgJzMnOlxuXHQgICAgICAgIGNhc2UgJzQnOlxuXHQgICAgICAgIGNhc2UgJzUnOlxuXHQgICAgICAgIGNhc2UgJzYnOlxuXHQgICAgICAgIGNhc2UgJzcnOlxuXHQgICAgICAgIGNhc2UgJzgnOlxuXHQgICAgICAgIGNhc2UgJzknOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdJJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCduZmluaXR5Jyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBJbmZpbml0eSlcblxuXHQgICAgICAgIGNhc2UgJ04nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2FOJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIE5hTilcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICB6ZXJvOiBmdW5jdGlvbiB6ZXJvICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICd4Jzpcblx0ICAgICAgICBjYXNlICdYJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaGV4YWRlY2ltYWwnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogMClcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxJbnRlZ2VyOiBmdW5jdGlvbiBkZWNpbWFsSW50ZWdlciAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbFBvaW50TGVhZGluZzogZnVuY3Rpb24gZGVjaW1hbFBvaW50TGVhZGluZyAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRnJhY3Rpb24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsUG9pbnQ6IGZ1bmN0aW9uIGRlY2ltYWxQb2ludCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEZyYWN0aW9uJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEZyYWN0aW9uOiBmdW5jdGlvbiBkZWNpbWFsRnJhY3Rpb24gKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudDogZnVuY3Rpb24gZGVjaW1hbEV4cG9uZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcrJzpcblx0ICAgICAgICBjYXNlICctJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50U2lnbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50SW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudFNpZ246IGZ1bmN0aW9uIGRlY2ltYWxFeHBvbmVudFNpZ24gKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50SW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudEludGVnZXI6IGZ1bmN0aW9uIGRlY2ltYWxFeHBvbmVudEludGVnZXIgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uIGhleGFkZWNpbWFsICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2hleGFkZWNpbWFsSW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGhleGFkZWNpbWFsSW50ZWdlcjogZnVuY3Rpb24gaGV4YWRlY2ltYWxJbnRlZ2VyICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIHN0cmluZzogZnVuY3Rpb24gc3RyaW5nICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdcXFxcJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gZXNjYXBlKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgICAgICBpZiAoZG91YmxlUXVvdGUpIHtcblx0ICAgICAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignc3RyaW5nJywgYnVmZmVyKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBpZiAoIWRvdWJsZVF1b3RlKSB7XG5cdCAgICAgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3N0cmluZycsIGJ1ZmZlcilcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXFxuJzpcblx0ICAgICAgICBjYXNlICdcXHInOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgc2VwYXJhdG9yQ2hhcihjKTtcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgIH0sXG5cblx0ICAgIHN0YXJ0OiBmdW5jdGlvbiBzdGFydCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAneyc6XG5cdCAgICAgICAgY2FzZSAnWyc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSB0aGUgZGVmYXVsdCBsZXhTdGF0ZSBoYW5kbGVzIGVvZi5cblx0ICAgICAgICAvLyBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAvLyAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGxleFN0YXRlID0gJ3ZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5TmFtZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXFxcXCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblxuXHQgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBkb3VibGVRdW90ZSA9IChyZWFkKCkgPT09ICdcIicpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzdHJpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0lkU3RhcnRDaGFyKGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICBpZiAoYyA9PT0gJzonKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICd2YWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVBcnJheVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICBpZiAoYyA9PT0gJ10nKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBsZXhTdGF0ZSA9ICd2YWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBhZnRlckFycmF5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgY2FzZSAnXSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBlbmQ6IGZ1bmN0aW9uIGVuZCAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgZGVmYXVsdCBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAoYyA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgLy8gICAgIHJlYWQoKVxuXHQgICAgICAgIC8vICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblx0fTtcblxuXHRmdW5jdGlvbiBuZXdUb2tlbiAodHlwZSwgdmFsdWUpIHtcblx0ICAgIHJldHVybiB7XG5cdCAgICAgICAgdHlwZTogdHlwZSxcblx0ICAgICAgICB2YWx1ZTogdmFsdWUsXG5cdCAgICAgICAgbGluZTogbGluZSxcblx0ICAgICAgICBjb2x1bW46IGNvbHVtbixcblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGxpdGVyYWwgKHMpIHtcblx0ICAgIGZvciAodmFyIGkgPSAwLCBsaXN0ID0gczsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcblx0ICAgICAgICB2YXIgYyA9IGxpc3RbaV07XG5cblx0ICAgICAgICB2YXIgcCA9IHBlZWsoKTtcblxuXHQgICAgICAgIGlmIChwICE9PSBjKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBlc2NhcGUgKCkge1xuXHQgICAgdmFyIGMgPSBwZWVrKCk7XG5cdCAgICBzd2l0Y2ggKGMpIHtcblx0ICAgIGNhc2UgJ2InOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcYidcblxuXHQgICAgY2FzZSAnZic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxmJ1xuXG5cdCAgICBjYXNlICduJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXG4nXG5cblx0ICAgIGNhc2UgJ3InOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xccidcblxuXHQgICAgY2FzZSAndCc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFx0J1xuXG5cdCAgICBjYXNlICd2Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXHYnXG5cblx0ICAgIGNhc2UgJzAnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KHBlZWsoKSkpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiAnXFwwJ1xuXG5cdCAgICBjYXNlICd4Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuIGhleEVzY2FwZSgpXG5cblx0ICAgIGNhc2UgJ3UnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gdW5pY29kZUVzY2FwZSgpXG5cblx0ICAgIGNhc2UgJ1xcbic6XG5cdCAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJydcblxuXHQgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgaWYgKHBlZWsoKSA9PT0gJ1xcbicpIHtcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiAnJ1xuXG5cdCAgICBjYXNlICcxJzpcblx0ICAgIGNhc2UgJzInOlxuXHQgICAgY2FzZSAnMyc6XG5cdCAgICBjYXNlICc0Jzpcblx0ICAgIGNhc2UgJzUnOlxuXHQgICAgY2FzZSAnNic6XG5cdCAgICBjYXNlICc3Jzpcblx0ICAgIGNhc2UgJzgnOlxuXHQgICAgY2FzZSAnOSc6XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXG5cdCAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiByZWFkKClcblx0fVxuXG5cdGZ1bmN0aW9uIGhleEVzY2FwZSAoKSB7XG5cdCAgICB2YXIgYnVmZmVyID0gJyc7XG5cdCAgICB2YXIgYyA9IHBlZWsoKTtcblxuXHQgICAgaWYgKCF1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9XG5cblx0ICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cblx0ICAgIGMgPSBwZWVrKCk7XG5cdCAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH1cblxuXHQgICAgYnVmZmVyICs9IHJlYWQoKTtcblxuXHQgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGJ1ZmZlciwgMTYpKVxuXHR9XG5cblx0ZnVuY3Rpb24gdW5pY29kZUVzY2FwZSAoKSB7XG5cdCAgICB2YXIgYnVmZmVyID0gJyc7XG5cdCAgICB2YXIgY291bnQgPSA0O1xuXG5cdCAgICB3aGlsZSAoY291bnQtLSA+IDApIHtcblx0ICAgICAgICB2YXIgYyA9IHBlZWsoKTtcblx0ICAgICAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGJ1ZmZlciwgMTYpKVxuXHR9XG5cblx0dmFyIHBhcnNlU3RhdGVzID0ge1xuXHQgICAgc3RhcnQ6IGZ1bmN0aW9uIHN0YXJ0ICgpIHtcblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuXHQgICAgICAgIGNhc2UgJ2lkZW50aWZpZXInOlxuXHQgICAgICAgIGNhc2UgJ3N0cmluZyc6XG5cdCAgICAgICAgICAgIGtleSA9IHRva2VuLnZhbHVlO1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyUHJvcGVydHlOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdwdW5jdHVhdG9yJzpcblx0ICAgICAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgICAgIC8vIGlmICh0b2tlbi52YWx1ZSAhPT0gJ30nKSB7XG5cdCAgICAgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgICAgICAvLyB9XG5cblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnZW9mJzpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdwdW5jdHVhdG9yJyB8fCB0b2tlbi52YWx1ZSAhPT0gJzonKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlUHJvcGVydHlWYWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlQXJyYXlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAncHVuY3R1YXRvcicgJiYgdG9rZW4udmFsdWUgPT09ICddJykge1xuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAncHVuY3R1YXRvcicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZVByb3BlcnR5TmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9LFxuXG5cdCAgICBhZnRlckFycmF5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdwdW5jdHVhdG9yJykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlQXJyYXlWYWx1ZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXSc6XG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9LFxuXG5cdCAgICBlbmQ6IGZ1bmN0aW9uIGVuZCAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdlb2YnKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXHQgICAgfSxcblx0fTtcblxuXHRmdW5jdGlvbiBwdXNoICgpIHtcblx0ICAgIHZhciB2YWx1ZTtcblxuXHQgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG5cdCAgICBjYXNlICdwdW5jdHVhdG9yJzpcblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSAneyc6XG5cdCAgICAgICAgICAgIHZhbHVlID0ge307XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBjYXNlICdbJzpcblx0ICAgICAgICAgICAgdmFsdWUgPSBbXTtcblx0ICAgICAgICAgICAgYnJlYWtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBicmVha1xuXG5cdCAgICBjYXNlICdudWxsJzpcblx0ICAgIGNhc2UgJ2Jvb2xlYW4nOlxuXHQgICAgY2FzZSAnbnVtZXJpYyc6XG5cdCAgICBjYXNlICdzdHJpbmcnOlxuXHQgICAgICAgIHZhbHVlID0gdG9rZW4udmFsdWU7XG5cdCAgICAgICAgYnJlYWtcblxuXHQgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgLy8gZGVmYXVsdDpcblx0ICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfVxuXG5cdCAgICBpZiAocm9vdCA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgcm9vdCA9IHZhbHVlO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICB2YXIgcGFyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG5cdCAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGFyZW50KSkge1xuXHQgICAgICAgICAgICBwYXJlbnQucHVzaCh2YWx1ZSk7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudCwga2V5LCB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG5cdCAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgIH0pO1xuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcblxuXHQgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZUFycmF5VmFsdWUnO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlUHJvcGVydHlOYW1lJztcblx0ICAgICAgICB9XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIHZhciBjdXJyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG5cdCAgICAgICAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2VuZCc7XG5cdCAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnQpKSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJBcnJheVZhbHVlJztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyUHJvcGVydHlWYWx1ZSc7XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gcG9wICgpIHtcblx0ICAgIHN0YWNrLnBvcCgpO1xuXG5cdCAgICB2YXIgY3VycmVudCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuXHQgICAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnZW5kJztcblx0ICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkge1xuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJBcnJheVZhbHVlJztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlclByb3BlcnR5VmFsdWUnO1xuXHQgICAgfVxuXHR9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkUGFyc2VTdGF0ZSAoKSB7XG5cdC8vICAgICByZXR1cm4gbmV3IEVycm9yKGBKU09ONTogaW52YWxpZCBwYXJzZSBzdGF0ZSAnJHtwYXJzZVN0YXRlfSdgKVxuXHQvLyB9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkTGV4U3RhdGUgKHN0YXRlKSB7XG5cdC8vICAgICByZXR1cm4gbmV3IEVycm9yKGBKU09ONTogaW52YWxpZCBsZXggc3RhdGUgJyR7c3RhdGV9J2ApXG5cdC8vIH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkQ2hhciAoYykge1xuXHQgICAgaWYgKGMgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgY2hhcmFjdGVyICdcIiArIChmb3JtYXRDaGFyKGMpKSArIFwiJyBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkRU9GICgpIHtcblx0ICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHR9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkVG9rZW4gKCkge1xuXHQvLyAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdC8vICAgICAgICAgcmV0dXJuIHN5bnRheEVycm9yKGBKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgJHtsaW5lfToke2NvbHVtbn1gKVxuXHQvLyAgICAgfVxuXG5cdC8vICAgICBjb25zdCBjID0gU3RyaW5nLmZyb21Db2RlUG9pbnQodG9rZW4udmFsdWUuY29kZVBvaW50QXQoMCkpXG5cdC8vICAgICByZXR1cm4gc3ludGF4RXJyb3IoYEpTT041OiBpbnZhbGlkIGNoYXJhY3RlciAnJHtmb3JtYXRDaGFyKGMpfScgYXQgJHtsaW5lfToke2NvbHVtbn1gKVxuXHQvLyB9XG5cblx0ZnVuY3Rpb24gaW52YWxpZElkZW50aWZpZXIgKCkge1xuXHQgICAgY29sdW1uIC09IDU7XG5cdCAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgaWRlbnRpZmllciBjaGFyYWN0ZXIgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHR9XG5cblx0ZnVuY3Rpb24gc2VwYXJhdG9yQ2hhciAoYykge1xuXHQgICAgY29uc29sZS53YXJuKChcIkpTT041OiAnXCIgKyAoZm9ybWF0Q2hhcihjKSkgKyBcIicgaW4gc3RyaW5ncyBpcyBub3QgdmFsaWQgRUNNQVNjcmlwdDsgY29uc2lkZXIgZXNjYXBpbmdcIikpO1xuXHR9XG5cblx0ZnVuY3Rpb24gZm9ybWF0Q2hhciAoYykge1xuXHQgICAgdmFyIHJlcGxhY2VtZW50cyA9IHtcblx0ICAgICAgICBcIidcIjogXCJcXFxcJ1wiLFxuXHQgICAgICAgICdcIic6ICdcXFxcXCInLFxuXHQgICAgICAgICdcXFxcJzogJ1xcXFxcXFxcJyxcblx0ICAgICAgICAnXFxiJzogJ1xcXFxiJyxcblx0ICAgICAgICAnXFxmJzogJ1xcXFxmJyxcblx0ICAgICAgICAnXFxuJzogJ1xcXFxuJyxcblx0ICAgICAgICAnXFxyJzogJ1xcXFxyJyxcblx0ICAgICAgICAnXFx0JzogJ1xcXFx0Jyxcblx0ICAgICAgICAnXFx2JzogJ1xcXFx2Jyxcblx0ICAgICAgICAnXFwwJzogJ1xcXFwwJyxcblx0ICAgICAgICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuXHQgICAgICAgICdcXHUyMDI5JzogJ1xcXFx1MjAyOScsXG5cdCAgICB9O1xuXG5cdCAgICBpZiAocmVwbGFjZW1lbnRzW2NdKSB7XG5cdCAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50c1tjXVxuXHQgICAgfVxuXG5cdCAgICBpZiAoYyA8ICcgJykge1xuXHQgICAgICAgIHZhciBoZXhTdHJpbmcgPSBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuXHQgICAgICAgIHJldHVybiAnXFxcXHgnICsgKCcwMCcgKyBoZXhTdHJpbmcpLnN1YnN0cmluZyhoZXhTdHJpbmcubGVuZ3RoKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gY1xuXHR9XG5cblx0ZnVuY3Rpb24gc3ludGF4RXJyb3IgKG1lc3NhZ2UpIHtcblx0ICAgIHZhciBlcnIgPSBuZXcgU3ludGF4RXJyb3IobWVzc2FnZSk7XG5cdCAgICBlcnIubGluZU51bWJlciA9IGxpbmU7XG5cdCAgICBlcnIuY29sdW1uTnVtYmVyID0gY29sdW1uO1xuXHQgICAgcmV0dXJuIGVyclxuXHR9XG5cblx0dmFyIHN0cmluZ2lmeSA9IGZ1bmN0aW9uIHN0cmluZ2lmeSAodmFsdWUsIHJlcGxhY2VyLCBzcGFjZSkge1xuXHQgICAgdmFyIHN0YWNrID0gW107XG5cdCAgICB2YXIgaW5kZW50ID0gJyc7XG5cdCAgICB2YXIgcHJvcGVydHlMaXN0O1xuXHQgICAgdmFyIHJlcGxhY2VyRnVuYztcblx0ICAgIHZhciBnYXAgPSAnJztcblx0ICAgIHZhciBxdW90ZTtcblxuXHQgICAgaWYgKFxuXHQgICAgICAgIHJlcGxhY2VyICE9IG51bGwgJiZcblx0ICAgICAgICB0eXBlb2YgcmVwbGFjZXIgPT09ICdvYmplY3QnICYmXG5cdCAgICAgICAgIUFycmF5LmlzQXJyYXkocmVwbGFjZXIpXG5cdCAgICApIHtcblx0ICAgICAgICBzcGFjZSA9IHJlcGxhY2VyLnNwYWNlO1xuXHQgICAgICAgIHF1b3RlID0gcmVwbGFjZXIucXVvdGU7XG5cdCAgICAgICAgcmVwbGFjZXIgPSByZXBsYWNlci5yZXBsYWNlcjtcblx0ICAgIH1cblxuXHQgICAgaWYgKHR5cGVvZiByZXBsYWNlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgIHJlcGxhY2VyRnVuYyA9IHJlcGxhY2VyO1xuXHQgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlcGxhY2VyKSkge1xuXHQgICAgICAgIHByb3BlcnR5TGlzdCA9IFtdO1xuXHQgICAgICAgIGZvciAodmFyIGkgPSAwLCBsaXN0ID0gcmVwbGFjZXI7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG5cdCAgICAgICAgICAgIHZhciB2ID0gbGlzdFtpXTtcblxuXHQgICAgICAgICAgICB2YXIgaXRlbSA9ICh2b2lkIDApO1xuXG5cdCAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICAgICAgICAgIGl0ZW0gPSB2O1xuXHQgICAgICAgICAgICB9IGVsc2UgaWYgKFxuXHQgICAgICAgICAgICAgICAgdHlwZW9mIHYgPT09ICdudW1iZXInIHx8XG5cdCAgICAgICAgICAgICAgICB2IGluc3RhbmNlb2YgU3RyaW5nIHx8XG5cdCAgICAgICAgICAgICAgICB2IGluc3RhbmNlb2YgTnVtYmVyXG5cdCAgICAgICAgICAgICkge1xuXHQgICAgICAgICAgICAgICAgaXRlbSA9IFN0cmluZyh2KTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChpdGVtICE9PSB1bmRlZmluZWQgJiYgcHJvcGVydHlMaXN0LmluZGV4T2YoaXRlbSkgPCAwKSB7XG5cdCAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3QucHVzaChpdGVtKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgaWYgKHNwYWNlIGluc3RhbmNlb2YgTnVtYmVyKSB7XG5cdCAgICAgICAgc3BhY2UgPSBOdW1iZXIoc3BhY2UpO1xuXHQgICAgfSBlbHNlIGlmIChzcGFjZSBpbnN0YW5jZW9mIFN0cmluZykge1xuXHQgICAgICAgIHNwYWNlID0gU3RyaW5nKHNwYWNlKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKHR5cGVvZiBzcGFjZSA9PT0gJ251bWJlcicpIHtcblx0ICAgICAgICBpZiAoc3BhY2UgPiAwKSB7XG5cdCAgICAgICAgICAgIHNwYWNlID0gTWF0aC5taW4oMTAsIE1hdGguZmxvb3Ioc3BhY2UpKTtcblx0ICAgICAgICAgICAgZ2FwID0gJyAgICAgICAgICAnLnN1YnN0cigwLCBzcGFjZSk7XG5cdCAgICAgICAgfVxuXHQgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3BhY2UgPT09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgZ2FwID0gc3BhY2Uuc3Vic3RyKDAsIDEwKTtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHNlcmlhbGl6ZVByb3BlcnR5KCcnLCB7Jyc6IHZhbHVlfSlcblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplUHJvcGVydHkgKGtleSwgaG9sZGVyKSB7XG5cdCAgICAgICAgdmFyIHZhbHVlID0gaG9sZGVyW2tleV07XG5cdCAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcblx0ICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZS50b0pTT041ID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvSlNPTjUoa2V5KTtcblx0ICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUudG9KU09OID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvSlNPTihrZXkpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHJlcGxhY2VyRnVuYykge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IHJlcGxhY2VyRnVuYy5jYWxsKGhvbGRlciwga2V5LCB2YWx1ZSk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtYmVyKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0ICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcblx0ICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQm9vbGVhbikge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlT2YoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSBudWxsOiByZXR1cm4gJ251bGwnXG5cdCAgICAgICAgY2FzZSB0cnVlOiByZXR1cm4gJ3RydWUnXG5cdCAgICAgICAgY2FzZSBmYWxzZTogcmV0dXJuICdmYWxzZSdcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuXHQgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcodmFsdWUsIGZhbHNlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gc2VyaWFsaXplQXJyYXkodmFsdWUpIDogc2VyaWFsaXplT2JqZWN0KHZhbHVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiB1bmRlZmluZWRcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gcXVvdGVTdHJpbmcgKHZhbHVlKSB7XG5cdCAgICAgICAgdmFyIHF1b3RlcyA9IHtcblx0ICAgICAgICAgICAgXCInXCI6IDAuMSxcblx0ICAgICAgICAgICAgJ1wiJzogMC4yLFxuXHQgICAgICAgIH07XG5cblx0ICAgICAgICB2YXIgcmVwbGFjZW1lbnRzID0ge1xuXHQgICAgICAgICAgICBcIidcIjogXCJcXFxcJ1wiLFxuXHQgICAgICAgICAgICAnXCInOiAnXFxcXFwiJyxcblx0ICAgICAgICAgICAgJ1xcXFwnOiAnXFxcXFxcXFwnLFxuXHQgICAgICAgICAgICAnXFxiJzogJ1xcXFxiJyxcblx0ICAgICAgICAgICAgJ1xcZic6ICdcXFxcZicsXG5cdCAgICAgICAgICAgICdcXG4nOiAnXFxcXG4nLFxuXHQgICAgICAgICAgICAnXFxyJzogJ1xcXFxyJyxcblx0ICAgICAgICAgICAgJ1xcdCc6ICdcXFxcdCcsXG5cdCAgICAgICAgICAgICdcXHYnOiAnXFxcXHYnLFxuXHQgICAgICAgICAgICAnXFwwJzogJ1xcXFwwJyxcblx0ICAgICAgICAgICAgJ1xcdTIwMjgnOiAnXFxcXHUyMDI4Jyxcblx0ICAgICAgICAgICAgJ1xcdTIwMjknOiAnXFxcXHUyMDI5Jyxcblx0ICAgICAgICB9O1xuXG5cdCAgICAgICAgdmFyIHByb2R1Y3QgPSAnJztcblxuXHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgdmFyIGMgPSB2YWx1ZVtpXTtcblx0ICAgICAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICAgICAgICAgIHF1b3Rlc1tjXSsrO1xuXHQgICAgICAgICAgICAgICAgcHJvZHVjdCArPSBjO1xuXHQgICAgICAgICAgICAgICAgY29udGludWVcblxuXHQgICAgICAgICAgICBjYXNlICdcXDAnOlxuXHQgICAgICAgICAgICAgICAgaWYgKHV0aWwuaXNEaWdpdCh2YWx1ZVtpICsgMV0pKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCArPSAnXFxcXHgwMCc7XG5cdCAgICAgICAgICAgICAgICAgICAgY29udGludWVcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudHNbY10pIHtcblx0ICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gcmVwbGFjZW1lbnRzW2NdO1xuXHQgICAgICAgICAgICAgICAgY29udGludWVcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChjIDwgJyAnKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgaGV4U3RyaW5nID0gYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcblx0ICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gJ1xcXFx4JyArICgnMDAnICsgaGV4U3RyaW5nKS5zdWJzdHJpbmcoaGV4U3RyaW5nLmxlbmd0aCk7XG5cdCAgICAgICAgICAgICAgICBjb250aW51ZVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcHJvZHVjdCArPSBjO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBxdW90ZUNoYXIgPSBxdW90ZSB8fCBPYmplY3Qua2V5cyhxdW90ZXMpLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKHF1b3Rlc1thXSA8IHF1b3Rlc1tiXSkgPyBhIDogYjsgfSk7XG5cblx0ICAgICAgICBwcm9kdWN0ID0gcHJvZHVjdC5yZXBsYWNlKG5ldyBSZWdFeHAocXVvdGVDaGFyLCAnZycpLCByZXBsYWNlbWVudHNbcXVvdGVDaGFyXSk7XG5cblx0ICAgICAgICByZXR1cm4gcXVvdGVDaGFyICsgcHJvZHVjdCArIHF1b3RlQ2hhclxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVPYmplY3QgKHZhbHVlKSB7XG5cdCAgICAgICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpID49IDApIHtcblx0ICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09ONScpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cblx0ICAgICAgICB2YXIgc3RlcGJhY2sgPSBpbmRlbnQ7XG5cdCAgICAgICAgaW5kZW50ID0gaW5kZW50ICsgZ2FwO1xuXG5cdCAgICAgICAgdmFyIGtleXMgPSBwcm9wZXJ0eUxpc3QgfHwgT2JqZWN0LmtleXModmFsdWUpO1xuXHQgICAgICAgIHZhciBwYXJ0aWFsID0gW107XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxpc3QgPSBrZXlzOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuXHQgICAgICAgICAgICB2YXIga2V5ID0gbGlzdFtpXTtcblxuXHQgICAgICAgICAgICB2YXIgcHJvcGVydHlTdHJpbmcgPSBzZXJpYWxpemVQcm9wZXJ0eShrZXksIHZhbHVlKTtcblx0ICAgICAgICAgICAgaWYgKHByb3BlcnR5U3RyaW5nICE9PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBtZW1iZXIgPSBzZXJpYWxpemVLZXkoa2V5KSArICc6Jztcblx0ICAgICAgICAgICAgICAgIGlmIChnYXAgIT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgbWVtYmVyICs9ICcgJztcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIG1lbWJlciArPSBwcm9wZXJ0eVN0cmluZztcblx0ICAgICAgICAgICAgICAgIHBhcnRpYWwucHVzaChtZW1iZXIpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIGZpbmFsO1xuXHQgICAgICAgIGlmIChwYXJ0aWFsLmxlbmd0aCA9PT0gMCkge1xuXHQgICAgICAgICAgICBmaW5hbCA9ICd7fSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgdmFyIHByb3BlcnRpZXM7XG5cdCAgICAgICAgICAgIGlmIChnYXAgPT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcGFydGlhbC5qb2luKCcsJyk7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICd7JyArIHByb3BlcnRpZXMgKyAnfSc7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgc2VwYXJhdG9yID0gJyxcXG4nICsgaW5kZW50O1xuXHQgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IHBhcnRpYWwuam9pbihzZXBhcmF0b3IpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAne1xcbicgKyBpbmRlbnQgKyBwcm9wZXJ0aWVzICsgJyxcXG4nICsgc3RlcGJhY2sgKyAnfSc7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wb3AoKTtcblx0ICAgICAgICBpbmRlbnQgPSBzdGVwYmFjaztcblx0ICAgICAgICByZXR1cm4gZmluYWxcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplS2V5IChrZXkpIHtcblx0ICAgICAgICBpZiAoa2V5Lmxlbmd0aCA9PT0gMCkge1xuXHQgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcoa2V5LCB0cnVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBmaXJzdENoYXIgPSBTdHJpbmcuZnJvbUNvZGVQb2ludChrZXkuY29kZVBvaW50QXQoMCkpO1xuXHQgICAgICAgIGlmICghdXRpbC5pc0lkU3RhcnRDaGFyKGZpcnN0Q2hhcikpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKGtleSwgdHJ1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBmb3IgKHZhciBpID0gZmlyc3RDaGFyLmxlbmd0aDsgaSA8IGtleS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICBpZiAoIXV0aWwuaXNJZENvbnRpbnVlQ2hhcihTdHJpbmcuZnJvbUNvZGVQb2ludChrZXkuY29kZVBvaW50QXQoaSkpKSkge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKGtleSwgdHJ1ZSlcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBrZXlcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplQXJyYXkgKHZhbHVlKSB7XG5cdCAgICAgICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpID49IDApIHtcblx0ICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09ONScpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cblx0ICAgICAgICB2YXIgc3RlcGJhY2sgPSBpbmRlbnQ7XG5cdCAgICAgICAgaW5kZW50ID0gaW5kZW50ICsgZ2FwO1xuXG5cdCAgICAgICAgdmFyIHBhcnRpYWwgPSBbXTtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgIHZhciBwcm9wZXJ0eVN0cmluZyA9IHNlcmlhbGl6ZVByb3BlcnR5KFN0cmluZyhpKSwgdmFsdWUpO1xuXHQgICAgICAgICAgICBwYXJ0aWFsLnB1c2goKHByb3BlcnR5U3RyaW5nICE9PSB1bmRlZmluZWQpID8gcHJvcGVydHlTdHJpbmcgOiAnbnVsbCcpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBmaW5hbDtcblx0ICAgICAgICBpZiAocGFydGlhbC5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICAgICAgZmluYWwgPSAnW10nO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIGlmIChnYXAgPT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHBhcnRpYWwuam9pbignLCcpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAnWycgKyBwcm9wZXJ0aWVzICsgJ10nO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgdmFyIHNlcGFyYXRvciA9ICcsXFxuJyArIGluZGVudDtcblx0ICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzJDEgPSBwYXJ0aWFsLmpvaW4oc2VwYXJhdG9yKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ1tcXG4nICsgaW5kZW50ICsgcHJvcGVydGllcyQxICsgJyxcXG4nICsgc3RlcGJhY2sgKyAnXSc7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wb3AoKTtcblx0ICAgICAgICBpbmRlbnQgPSBzdGVwYmFjaztcblx0ICAgICAgICByZXR1cm4gZmluYWxcblx0ICAgIH1cblx0fTtcblxuXHR2YXIgSlNPTjUgPSB7XG5cdCAgICBwYXJzZTogcGFyc2UsXG5cdCAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeSxcblx0fTtcblxuXHR2YXIgbGliID0gSlNPTjU7XG5cblx0dmFyIGVzNSA9IGxpYjtcblxuXHRyZXR1cm4gZXM1O1xuXG59KSkpO1xuIiwgImltcG9ydCB7IFBsdWdpbiwgTWFya2Rvd25WaWV3LCBXb3Jrc3BhY2VMZWFmIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGNvbnZlcnRTZXR0aW5ncywgREVGQVVMVF9TRVRUSU5HUywgTEFOR1VBR0VTLCBDb2RlU3R5bGVyU2V0dGluZ3MsIFJFRkVSRU5DRV9DT0RFQkxPQ0ssIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IFNldHRpbmdzVGFiIH0gZnJvbSBcIi4vU2V0dGluZ3NUYWJcIjtcbmltcG9ydCB7IHJlbW92ZVN0eWxlc0FuZENsYXNzZXMsIHVwZGF0ZVN0eWxpbmcgfSBmcm9tIFwiLi9BcHBseVN0eWxpbmdcIjtcbmltcG9ydCB7IGNyZWF0ZUNvZGVibG9ja0NvZGVNaXJyb3JFeHRlbnNpb25zLCBlZGl0aW5nRG9jdW1lbnRGb2xkIH0gZnJvbSBcIi4vRWRpdGluZ1ZpZXdcIjtcbmltcG9ydCB7IGRlc3Ryb3lSZWFkaW5nTW9kZUVsZW1lbnRzLCByZWFkaW5nRG9jdW1lbnRGb2xkLCBleGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIsIHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IsIHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IgfSBmcm9tIFwiLi9SZWFkaW5nVmlld1wiO1xuaW1wb3J0IHsgcmVmZXJlbmNlQ29kZWJsb2NrUHJvY2Vzc29yIH0gZnJvbSBcIi4vUmVmZXJlbmNpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29kZVN0eWxlclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3M7XG5cdGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblx0bGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+O1xuXHRzaXplczoge1xuXHRcdGZvbnQ6IHN0cmluZztcblx0XHR6b29tOiBzdHJpbmc7XG5cdH07XG5cblx0YXN5bmMgb25sb2FkKCkge1xuXHRcdGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7IC8vIExvYWQgU2V0dGluZ3Ncblx0XHRjb25zdCBzZXR0aW5nc1RhYiA9IG5ldyBTZXR0aW5nc1RhYih0aGlzLmFwcCx0aGlzKTtcblx0XHR0aGlzLmFkZFNldHRpbmdUYWIoc2V0dGluZ3NUYWIpO1xuXG5cdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXJcIik7IC8vIExvYWQgU3R5bGVzXG5cdFx0dXBkYXRlU3R5bGluZyh0aGlzLnNldHRpbmdzLHRoaXMuYXBwKTtcblxuXHRcdHRoaXMubGFuZ3VhZ2VJY29ucyA9IE9iamVjdC5rZXlzKExBTkdVQUdFUykucmVkdWNlKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LCBrZXk6IHN0cmluZykgPT4geyAvLyBMb2FkIEljb25zXG5cdFx0XHRpZiAoTEFOR1VBR0VTW2tleV0/Lmljb24pXG5cdFx0XHRcdHJlc3VsdFtrZXldID0gVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj4ke0xBTkdVQUdFU1trZXldLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LHt9KTtcblx0XHR0aGlzLnNpemVzID0ge1xuXHRcdFx0Zm9udDogZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHQtc2l6ZVwiKSxcblx0XHRcdHpvb206IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tem9vbS1mYWN0b3JcIiksXG5cdFx0fTtcblxuXHRcdGlmICghKGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIKSkpIC8vIENyZWF0ZSBmb2xkZXIgZm9yIGV4dGVybmFsIHJlZmVyZW5jZXNcblx0XHRcdGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIubWtkaXIoRVhURVJOQUxfUkVGRVJFTkNFX1BBVEgpO1xuXG5cdFx0dGhpcy5leGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIgPSBleGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXI7IC8vIEFkZCBleGVjdXRlIGNvZGUgbXV0YXRpb24gb2JzZXJ2ZXJcblxuXHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0d2luZG93LkNvZGVNaXJyb3IubW9kZUluZm8ucHVzaCh7XG5cdFx0XHRuYW1lOiBcInJlZmVyZW5jZVwiLFxuXHRcdFx0bWltZTogXCJ0ZXh0L3JlZmVyZW5jZVwiLFxuXHRcdFx0bW9kZTogXCJyZWZlcmVuY2VcIixcblx0XHRcdGV4dDogW1wicmVmZXJlbmNlXCJdXG5cdFx0fSk7XG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKFJFRkVSRU5DRV9DT0RFQkxPQ0ssIGFzeW5jIChzb3VyY2UsIGVsLCBjdHgpID0+IHsgYXdhaXQgcmVmZXJlbmNlQ29kZWJsb2NrUHJvY2Vzc29yKHNvdXJjZSwgZWwsIGN0eCwgdGhpcyk7fSk7XG5cblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKGFzeW5jIChlbCxjdHgpID0+IHthd2FpdCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsLGN0eCx0aGlzKTt9KTsgLy8gQWRkIGNvZGVibG9jayBkZWNvcmF0aW5nIG1hcmtkb3duUG9zdFByb2Nlc3NvclxuXHRcdHRoaXMucmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3IoYXN5bmMgKGVsLGN0eCkgPT4ge2F3YWl0IHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWwsY3R4LHRoaXMpO30pOyAvLyBBZGQgaW5saW5lIGNvZGUgZGVjb3JhdGluZyBtYXJrZG93blBvc3RQcm9jZXNzb3JcblxuXHRcdHRoaXMucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oY3JlYXRlQ29kZWJsb2NrQ29kZU1pcnJvckV4dGVuc2lvbnModGhpcy5zZXR0aW5ncyx0aGlzKSk7IC8vIEFkZCBjb2RlbWlycm9yIGV4dGVuc2lvbnNcblxuXHRcdGxldCB6b29tVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0dGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbihcImNzcy1jaGFuZ2VcIiwoKT0+e1xuXHRcdFx0dXBkYXRlU3R5bGluZyh0aGlzLnNldHRpbmdzLHRoaXMuYXBwKTsgLy8gVXBkYXRlIHN0eWxpbmcgb24gY3NzIGNoYW5nZXNcblx0XHRcdGNvbnN0IGN1cnJlbnRGb250U2l6ZSA9IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tZm9udC10ZXh0LXNpemVcIik7XG5cdFx0XHRpZiAodGhpcy5zaXplcy5mb250ICE9PSBjdXJyZW50Rm9udFNpemUpIHtcblx0XHRcdFx0dGhpcy5zaXplcy5mb250ID0gY3VycmVudEZvbnRTaXplO1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoem9vbVRpbWVvdXQpO1xuXHRcdFx0XHR6b29tVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0XHR0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7IC8vIFJlLXJlbmRlciBvbiBmb250IHNpemUgY2hhbmdlc1xuXHRcdFx0XHR9LDEwMDApO1xuXHRcdFx0fVxuXHRcdH0sdGhpcykpO1xuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oXCJyZXNpemVcIiwoKT0+e1xuXHRcdFx0Y29uc3QgY3VycmVudFpvb21TaXplID0gZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS16b29tLWZhY3RvclwiKTtcblx0XHRcdGlmICh0aGlzLnNpemVzLnpvb20gIT09IGN1cnJlbnRab29tU2l6ZSkge1xuXHRcdFx0XHR0aGlzLnNpemVzLnpvb20gPSBjdXJyZW50Wm9vbVNpemU7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh6b29tVGltZW91dCk7XG5cdFx0XHRcdHpvb21UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHRcdHRoaXMucmVuZGVyUmVhZGluZ1ZpZXcoKTsgLy8gUmUtcmVuZGVyIG9uIHpvb20gY2hhbmdlc1xuXHRcdFx0XHR9LDEwMDApO1xuXHRcdFx0fVxuXHRcdH0sdGhpcykpO1xuXG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJmb2xkLWFsbFwiLCBuYW1lOiBcIkZvbGQgYWxsIGNvZGVibG9ja3NcIiwgY2FsbGJhY2s6ICgpPT57XG5cdFx0XHRjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcblx0XHRcdGlmIChhY3RpdmVWaWV3KSB7XG5cdFx0XHRcdGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdFx0cmVhZGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmNvbnRlbnRFbCx0cnVlKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyx0cnVlKTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJ1bmZvbGQtYWxsXCIsIG5hbWU6IFwiVW5mb2xkIGFsbCBjb2RlYmxvY2tzXCIsIGNhbGxiYWNrOiAoKT0+e1xuXHRcdFx0Y29uc3QgYWN0aXZlVmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0XHRpZiAoYWN0aXZlVmlldykge1xuXHRcdFx0XHRpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRcdHJlYWRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5jb250ZW50RWwsZmFsc2UpO1xuXHRcdFx0XHRlbHNlIGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJzb3VyY2VcIilcblx0XHRcdFx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdFx0XHRcdGVkaXRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5lZGl0b3IuY20uZG9jVmlldy52aWV3LGZhbHNlKTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJyZXNldC1hbGxcIiwgbmFtZTogXCJSZXNldCBmb2xkIHN0YXRlIGZvciBhbGwgY29kZWJsb2Nrc1wiLCBjYWxsYmFjazogKCk9Pntcblx0XHRcdGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdFx0aWYgKGFjdGl2ZVZpZXcpIHtcblx0XHRcdFx0aWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0XHRyZWFkaW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuY29udGVudEVsKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyk7XG5cdFx0XHR9XG5cdFx0fX0pO1xuXG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoKCk9Pnt0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7fSk7IC8vIEFkZCBkZWNvcmF0aW9uIG9uIGVuYWJsaW5nIG9mIHBsdWdpblxuXG5cdFx0Y29uc29sZS5sb2coXCJMb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXG5cdG9udW5sb2FkKCkge1xuXHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0Y29uc3QgcmVmZXJlbmNlTW9kZUluZGV4ID0gd2luZG93LkNvZGVNaXJyb3IubW9kZUluZm8uZmluZEluZGV4KChtb2RlKSA9PiBtb2RlLm1vZGUgPT09IFwicmVmZXJlbmNlXCIpO1xuXHRcdGlmIChyZWZlcmVuY2VNb2RlSW5kZXggIT09IC0xKVxuXHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdHdpbmRvdy5Db2RlTWlycm9yLm1vZGVJbmZvLnNwbGljZShyZWZlcmVuY2VNb2RlSW5kZXgsIDEpO1xuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRyZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk7XG5cdFx0ZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMoKTtcblx0XHRmb3IgKGNvbnN0IHVybCBvZiBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3VhZ2VJY29ucykpIC8vIFVubG9hZCBpY29uc1xuXHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuXHRcdGNvbnNvbGUubG9nKFwiVW5sb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXG5cdGFzeW5jIGxvYWRTZXR0aW5ncygpIHtcblx0XHR0aGlzLnNldHRpbmdzID0gey4uLnN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1NFVFRJTkdTKSwgLi4uY29udmVydFNldHRpbmdzKGF3YWl0IHRoaXMubG9hZERhdGEoKSl9O1xuXHR9XG5cblx0YXN5bmMgc2F2ZVNldHRpbmdzKCkge1xuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLnVwZGF0ZU9wdGlvbnMoKTtcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXHR9XG5cblx0cmVuZGVyUmVhZGluZ1ZpZXcoKSB7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLml0ZXJhdGVSb290TGVhdmVzKChsZWFmOiBXb3Jrc3BhY2VMZWFmKSA9PiB7XG5cdFx0XHRpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRsZWFmLnZpZXcucHJldmlld01vZGUucmVyZW5kZXIodHJ1ZSk7XG5cdFx0fSk7XG5cdH1cbn1cbiIsICIvLyBUeXBpbmdcbmV4cG9ydCB0eXBlIEhFWCA9IGAjJHtzdHJpbmd9YDtcbmV4cG9ydCB0eXBlIENTUyA9IGAtLSR7c3RyaW5nfWA7XG5leHBvcnQgdHlwZSBDb2xvdXIgPSBIRVggfCBDU1M7XG5leHBvcnQgdHlwZSBQZXJjZW50YWdlID0gYCR7bnVtYmVyfSVgO1xuZXhwb3J0IHR5cGUgRGlzcGxheSA9IFwibm9uZVwiIHwgXCJpZl9oZWFkZXJfc2hvd25cIiB8IFwiYWx3YXlzXCI7XG5cbi8vIEludGVyZmFjZSBDcmVhdGlvblxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3VycyB7XG5cdGNvZGVibG9jazoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlVGV4dENvbG91cjogQ29sb3VyO1xuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0fSxcblx0XHRsaW5lQ29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogQ29sb3VyO1xuXHRcdGRlZmF1bHRDb2xvdXI6IENvbG91cjtcblx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IFJlY29yZDxzdHJpbmcsQ29sb3VyPjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0dGl0bGVUZXh0Q29sb3VyOiBDb2xvdXJcblx0fVxuXHRhZHZhbmNlZDoge1xuXHRcdGJ1dHRvbkNvbG91cjogQ29sb3VyO1xuXHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogQ29sb3VyO1xuXHR9XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzIHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0bGluZU51bWJlcnM6IGJvb2xlYW47XG5cdFx0dW53cmFwTGluZXM6IGJvb2xlYW47XG5cdFx0d3JhcExpbmVzQWN0aXZlOiBib29sZWFuO1xuXHRcdGN1cnZhdHVyZTogbnVtYmVyO1xuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRoaWdobGlnaHQ6IGJvb2xlYW47XG5cdFx0YWN0aXZlTGluZTogYm9vbGVhbjtcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRGb250OiBzdHJpbmc7XG5cdFx0XHR0ZXh0Qm9sZDogYm9vbGVhbjtcblx0XHRcdHRleHRJdGFsaWM6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0ZGlzcGxheTogRGlzcGxheTtcblx0XHRcdHRleHRGb250OiBzdHJpbmc7XG5cdFx0XHR0ZXh0Qm9sZDogYm9vbGVhbjtcblx0XHRcdHRleHRJdGFsaWM6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRsYW5ndWFnZUljb246IHtcblx0XHRcdGRpc3BsYXk6IERpc3BsYXk7XG5cdFx0XHRkaXNwbGF5Q29sb3VyOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0Zm9udFNpemU6IG51bWJlcjtcblx0XHRmb2xkUGxhY2Vob2xkZXI6IHN0cmluZztcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGJvb2xlYW47XG5cdFx0YWN0aXZlRWRpdG9yTGluZTogYm9vbGVhbjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0c3ludGF4SGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdHN0eWxlOiBib29sZWFuO1xuXHRcdGZvbnRXZWlnaHQ6IG51bWJlcjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0XHRwYWRkaW5nVmVydGljYWw6IG51bWJlcjtcblx0XHRwYWRkaW5nSG9yaXpvbnRhbDogbnVtYmVyO1xuXHRcdG1hcmdpbkhvcml6b250YWw6IG51bWJlcjtcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IG51bWJlcjtcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRncmFkaWVudEhpZ2hsaWdodHM6IGJvb2xlYW47XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogUGVyY2VudGFnZTtcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogYm9vbGVhbjtcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiBudW1iZXI7XG5cdFx0aWNvblNpemU6IG51bWJlcjtcblx0fTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lQ29sb3VycyB7XG5cdGxpZ2h0OiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3Vycztcblx0ZGFyazogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnM7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZSB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncztcblx0Y29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclNldHRpbmdzIHtcblx0dGhlbWVzOiBSZWNvcmQ8c3RyaW5nLENvZGVTdHlsZXJUaGVtZT47XG5cdHNlbGVjdGVkVGhlbWU6IHN0cmluZztcblx0Y3VycmVudFRoZW1lOiBDb2RlU3R5bGVyVGhlbWU7XG5cdG5ld1RoZW1lOiBzdHJpbmc7XG5cdG5ld0hpZ2hsaWdodDogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVyczogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGVudDogc3RyaW5nO1xuXHRleGFtcGxlSW5saW5lQ29kZTogc3RyaW5nO1xuXHRkZWNvcmF0ZVByaW50OiBib29sZWFuO1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzdHJpbmc7XG5cdHJlZGlyZWN0TGFuZ3VhZ2VzOiBSZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9Pjtcblx0dmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlIHtcblx0aWNvbj86IHN0cmluZztcblx0Y29sb3VyPzogQ29sb3VyO1xuXHRpbmxpbmVDb21tZW50PzogQXJyYXk8c3RyaW5nPjtcblx0YmxvY2tDb21tZW50PzogQXJyYXk8e1xuXHRcdG9wZW46IHN0cmluZztcblx0XHRjbG9zZTogc3RyaW5nO1xuXHRcdGNvbnRpbnVhdGlvbj86IHN0cmluZzsgLy8gRGVmYXVsdDogTm9uZVxuXHRcdG11bHRpbGluZT86IHN0cmluZzsgLy8gRGVmYXVsdDogdHJ1ZVxuXHR9Pjtcbn1cblxuLy8gVGhlbWUgRGVmYXVsdHNcbmNvbnN0IFRIRU1FX0RFRkFVTFRfU0VUVElOR1M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzID0ge1xuXHRjb2RlYmxvY2s6IHtcblx0XHRsaW5lTnVtYmVyczogdHJ1ZSxcblx0XHR1bndyYXBMaW5lczogdHJ1ZSxcblx0XHR3cmFwTGluZXNBY3RpdmU6IGZhbHNlLFxuXHRcdGN1cnZhdHVyZTogNCxcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0aGlnaGxpZ2h0OiB0cnVlLFxuXHRcdGFjdGl2ZUxpbmU6IGZhbHNlLFxuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dEZvbnQ6IFwiXCIsXG5cdFx0XHR0ZXh0Qm9sZDogZmFsc2UsXG5cdFx0XHR0ZXh0SXRhbGljOiB0cnVlLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGRpc3BsYXk6IFwibm9uZVwiLFxuXHRcdFx0dGV4dEZvbnQ6IFwiXCIsXG5cdFx0XHR0ZXh0Qm9sZDogdHJ1ZSxcblx0XHRcdHRleHRJdGFsaWM6IGZhbHNlLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VJY29uOiB7XG5cdFx0XHRkaXNwbGF5OiBcIm5vbmVcIixcblx0XHRcdGRpc3BsYXlDb2xvdXI6IHRydWUsXG5cdFx0fSxcblx0XHRmb250U2l6ZTogMTQsXG5cdFx0Zm9sZFBsYWNlaG9sZGVyOiBcIlwiLFxuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZTogZmFsc2UsXG5cdFx0YWN0aXZlRWRpdG9yTGluZTogZmFsc2UsXG5cdH0sXG5cdGlubGluZToge1xuXHRcdHN5bnRheEhpZ2hsaWdodDogdHJ1ZSxcblx0XHRzdHlsZTogdHJ1ZSxcblx0XHRmb250V2VpZ2h0OiA0LFxuXHRcdGN1cnZhdHVyZTogNixcblx0XHRwYWRkaW5nVmVydGljYWw6IDUsXG5cdFx0cGFkZGluZ0hvcml6b250YWw6IDUsXG5cdFx0bWFyZ2luSG9yaXpvbnRhbDogMCxcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IDgsXG5cdH0sXG5cdGFkdmFuY2VkOiB7XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzOiBmYWxzZSxcblx0XHRncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wOiBcIjcwJVwiLFxuXHRcdGxhbmd1YWdlQm9yZGVyQ29sb3VyOiBmYWxzZSxcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiA1LFxuXHRcdGljb25TaXplOiAyOCxcblx0fSxcbn07XG5leHBvcnQgY29uc3QgVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUzogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMgPSB7XG5cdGNvZGVibG9jazoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1ub3JtYWxcIixcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRleHRDb2xvdXI6IFwiLS10ZXh0LWZhaW50XCIsXG5cdFx0YWN0aXZlVGV4dENvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1jb21tZW50XCIsXG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdFx0dGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHRcdH0sXG5cdFx0bGluZUNvbG91cjogXCItLWNvbG9yLWJhc2UtMzBcIixcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTMwXCIsXG5cdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCItLWNvbG9yLWJhc2UtMjBcIixcblx0XHRkZWZhdWx0Q29sb3VyOiBcIi0tdGV4dC1oaWdobGlnaHQtYmdcIixcblx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHR9LFxuXHRpbmxpbmU6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdFx0YWN0aXZlVGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdFx0dGl0bGVUZXh0Q29sb3VyOiBcIi0tY29kZS1jb21tZW50XCIsXG5cdH0sXG5cdGFkdmFuY2VkOiB7XG5cdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogXCItLXRleHQtbm9ybWFsXCIsXG5cdH1cbn07XG5cbi8vIENvbG9yIFNjaGVtZXNcbmNvbnN0IFNPTEFSSVpFRDogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuXHRcImJhc2UwM1wiOiBcIiMwMDJiMzZcIixcblx0XCJiYXNlMDJcIjogXCIjMDczNjQyXCIsXG5cdFwiYmFzZTAxXCI6IFwiIzU4NmU3NVwiLFxuXHRcImJhc2UwMFwiOiBcIiM2NTdiODNcIixcblx0XCJiYXNlMFwiOiBcIiM4Mzk0OTZcIixcblx0XCJiYXNlMVwiOiBcIiM5M2ExYTFcIixcblx0XCJiYXNlMlwiOiBcIiNlZWU4ZDVcIixcblx0XCJiYXNlM1wiOiBcIiNmZGY2ZTNcIixcblx0XCJ5ZWxsb3dcIjogXCIjYjU4OTAwXCIsXG5cdFwib3JhbmdlXCI6IFwiI2NiNGIxNlwiLFxuXHRcInJlZFwiOiBcIiNkYzMyMmZcIixcblx0XCJtYWdlbnRhXCI6IFwiI2QzMzY4MlwiLFxuXHRcInZpb2xldFwiOiBcIiM2YzcxYzRcIixcblx0XCJibHVlXCI6IFwiIzI2OGJkMlwiLFxuXHRcImN5YW5cIjogXCIjMmFhMTk4XCIsXG5cdFwiZ3JlZW5cIjogXCIjODU5OTAwXCIsXG59O1xuLy8gY29uc3QgQ0FUUFVDQ0lOOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG4vLyBcdGxhdHRlOiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiNlZmYxZjVcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiIzRjNGY2OVwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiNhY2IwYmVcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZGM4YTc4XCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiI2VmZjFmNVwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzVjNWY3N1wiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjMWU2NmY1XCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2QyMGYzOVwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiIzQwYTAyYlwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNkZjhlMWRcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2VhNzZjYlwiLFxuLy8gXHRcdFx0Y3lhbjogXCIjMTc5Mjk5XCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYWNiMGJlXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM2YzZmODVcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2JjYzBjY1wiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiMxZTY2ZjVcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNkMjBmMzlcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiIzQwYTAyYlwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2RmOGUxZFwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNlYTc2Y2JcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjMTc5Mjk5XCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIFx0ZnJhcHBcdTAwRTk6IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzMwMzQ0NlwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjYzZkMGY1XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiIzYyNjg4MFwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNmMmQ1Y2ZcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjMjMyNjM0XCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNTE1NzZkXCIsXG4vLyBcdFx0XHRibHVlOiBcIiM4Y2FhZWVcIixcbi8vIFx0XHRcdHJlZDogXCIjZTc4Mjg0XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjYTZkMTg5XCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2U1Yzg5MFwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZjRiOGU0XCIsXG4vLyBcdFx0XHRjeWFuOiBcIiM4MWM4YmVcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNiNWJmZTJcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzYyNjg4MFwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYTVhZGNlXCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzhjYWFlZVwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2U3ODI4NFwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjYTZkMTg5XCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZTVjODkwXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2Y0YjhlNFwiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiM4MWM4YmVcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gXHRtYWNjaGlhdG86IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzI0MjczYVwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjY2FkM2Y1XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiIzViNjA3OFwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNmNGRiZDZcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjMTgxOTI2XCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNDk0ZDY0XCIsXG4vLyBcdFx0XHRibHVlOiBcIiM4YWFkZjRcIixcbi8vIFx0XHRcdHJlZDogXCIjZWQ4Nzk2XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjYTZkYTk1XCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2VlZDQ5ZlwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZjViZGU2XCIsXG4vLyBcdFx0XHRjeWFuOiBcIiM4YmQ1Y2E4YmQ1Y2FcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNiOGMwZTBcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzViNjA3OFwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYTVhZGNiXCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzhhYWRmNFwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2VkODc5NlwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjYTZkYTk1XCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZWVkNDlmXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2Y1YmRlNlwiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiM4YmQ1Y2FcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gXHRtb2NoYToge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjMWUxZTJlXCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiNjZGQ2ZjRcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjNTg1YjcwXCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2Y1ZTBkY1wiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiMxMTExMWJcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM0NTQ3NUFcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzg5YjRmYVwiLFxuLy8gXHRcdFx0cmVkOiBcIiNmMzhiYThcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiNhNmUzYTFcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZjllMmFmXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNmNWMyZTdcIixcbi8vIFx0XHRcdGN5YW46IFwiIzk0ZTJkNVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2JhYzJkZVwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNTg1YjcwXCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNhNmFkYzhcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjODliNGZhXCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZjM4YmE4XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiNhNmUzYTFcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNmOWUyYWZcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZjVjMmU3XCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzk0ZTJkNVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyB9O1xuLy8gY29uc3QgR1JVVkJPWDogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuLy8gXHRkYXJrMF9oYXJkOiBcIiMxZDIwMjFcIixcbi8vIFx0ZGFyazA6IFwiIzI4MjgyOFwiLFxuLy8gXHRkYXJrMF9zb2Z0OiBcIiMzMjMwMmZcIixcbi8vIFx0ZGFyazE6IFwiIzNjMzgzNlwiLFxuLy8gXHRkYXJrMjogXCIjNTA0OTQ1XCIsXG4vLyBcdGRhcmszOiBcIiM2NjVjNTRcIixcbi8vIFx0ZGFyazQ6IFwiIzdjNmY2NFwiLFxuXG4vLyBcdGdyYXlfMjQ1OiBcIiM5MjgzNzRcIixcbi8vIFx0Z3JheV8yNDQ6IFwiIzkyODM3NFwiLFxuXG4vLyBcdGxpZ2h0MF9oYXJkOiBcIiNmOWY1ZDdcIixcbi8vIFx0bGlnaHQwOiBcIiNmYmYxYzdcIixcbi8vIFx0bGlnaHQwX3NvZnQ6IFwiI2YyZTViY1wiLFxuLy8gXHRsaWdodDE6IFwiI2ViZGJiMlwiLFxuLy8gXHRsaWdodDI6IFwiI2Q1YzRhMVwiLFxuLy8gXHRsaWdodDM6IFwiI2JkYWU5M1wiLFxuLy8gXHRsaWdodDQ6IFwiI2E4OTk4NFwiLFxuXG4vLyBcdGJyaWdodF9yZWQ6IFwiI2ZiNDkzNFwiLFxuLy8gXHRicmlnaHRfZ3JlZW46IFwiI2I4YmIyNlwiLFxuLy8gXHRicmlnaHRfeWVsbG93OiBcIiNmYWJkMmZcIixcbi8vIFx0YnJpZ2h0X2JsdWU6IFwiIzgzYTU5OFwiLFxuLy8gXHRicmlnaHRfcHVycGxlOiBcIiNkMzg2OWJcIixcbi8vIFx0YnJpZ2h0X2FxdWE6IFwiIzhlYzA3Y1wiLFxuLy8gXHRicmlnaHRfb3JhbmdlOiBcIiNmZTgwMTlcIixcblxuLy8gXHRuZXV0cmFsX3JlZDogXCIjY2MyNDFkXCIsXG4vLyBcdG5ldXRyYWxfZ3JlZW46IFwiIzk4OTcxYVwiLFxuLy8gXHRuZXV0cmFsX3llbGxvdzogXCIjZDc5OTIxXCIsXG4vLyBcdG5ldXRyYWxfYmx1ZTogXCIjNDU4NTg4XCIsXG4vLyBcdG5ldXRyYWxfcHVycGxlOiBcIiNiMTYyODZcIixcbi8vIFx0bmV1dHJhbF9hcXVhOiBcIiM2ODlkNmFcIixcbi8vIFx0bmV1dHJhbF9vcmFuZ2U6IFwiI2Q2NWQwZVwiLFxuXG4vLyBcdGZhZGVkX3JlZDogXCIjOWQwMDA2XCIsXG4vLyBcdGZhZGVkX2dyZWVuOiBcIiM3OTc0MGVcIixcbi8vIFx0ZmFkZWRfeWVsbG93OiBcIiNiNTc2MTRcIixcbi8vIFx0ZmFkZWRfYmx1ZTogXCIjMDc2Njc4XCIsXG4vLyBcdGZhZGVkX3B1cnBsZTogXCIjOGYzZjcxXCIsXG4vLyBcdGZhZGVkX2FxdWE6IFwiIzQyN2I1OFwiLFxuLy8gXHRmYWRlZF9vcmFuZ2U6IFwiI2FmM2EwM1wiLFxuLy8gfTtcbi8vIGNvbnN0IE5PUkQ6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcblxuLy8gfTtcbi8vIGNvbnN0IERSQUNVTEE6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcblxuLy8gfTtcblxuLy8gVGhlbWUgQ3JlYXRpb25cbmNvbnN0IERFRkFVTFRfVEhFTUU6IENvZGVTdHlsZXJUaGVtZSA9IHtcblx0c2V0dGluZ3M6IFRIRU1FX0RFRkFVTFRfU0VUVElOR1MsXG5cdGNvbG91cnM6IHtcblx0XHRsaWdodDogVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUyxcblx0XHRkYXJrOiBUSEVNRV9GQUxMQkFDS19DT0xPVVJTLFxuXHR9LFxufTtcbmNvbnN0IFNPTEFSSVpFRF9USEVNRTogQ29kZVN0eWxlclRoZW1lID0ge1xuXHRzZXR0aW5nczogVEhFTUVfREVGQVVMVF9TRVRUSU5HUyxcblx0Y29sb3Vyczoge1xuXHRcdGxpZ2h0OiB7XG5cdFx0XHRjb2RlYmxvY2s6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdH0sXG5cdFx0XHRndXR0ZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UyLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjOGM4YzhjXCIsXG5cdFx0XHR9LFxuXHRcdFx0aGVhZGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiI0Q1Q0NCNFwiLFxuXHRcdFx0XHR0aXRsZToge1xuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzg2NjcwNFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiI0I4QjVBQVwiLFxuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiNFREQ0ODlcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMixcblx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNjA0NjA2MzNcIixcblx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjRTlERkJBXCIsXG5cdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG5cdFx0XHR9LFxuXHRcdFx0aW5saW5lOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuXHRcdFx0fSxcblx0XHRcdGFkdmFuY2VkOiB7XG5cdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRhcms6IHtcblx0XHRcdGNvZGVibG9jazoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdH0sXG5cdFx0XHRndXR0ZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UwMixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzRjNGM0Y1wiLFxuXHRcdFx0fSxcblx0XHRcdGhlYWRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwYTQ1NTRcIixcblx0XHRcdFx0dGl0bGU6IHtcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNkYWRhZGFcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwMDgwODBcIixcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGluZUNvbG91cjogXCIjNDZjY2VkXCIsXG5cdFx0XHR9LFxuXHRcdFx0aGlnaGxpZ2h0czoge1xuXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAyLFxuXHRcdFx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIiM0NjhlZWIzM1wiLFxuXHRcdFx0XHRkZWZhdWx0Q29sb3VyOiBcIiMwNTRiNWNcIixcblx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcblx0XHRcdH0sXG5cdFx0XHRpbmxpbmU6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UwMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuXHRcdFx0fSxcblx0XHRcdGFkdmFuY2VkOiB7XG5cdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0XHRcdH1cblx0XHR9LFxuXHR9LFxufTtcbi8vIGNvbnN0IE5PUkRfVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBEUkFDVUxBX1RIRU1FID0ge1xuXG4vLyB9O1xuLy8gY29uc3QgQ0FUUFVDQ0lOX1RIRU1FID0ge1xuXG4vLyB9O1xuLy8gY29uc3QgR1JVVkJPWF9USEVNRSA9IHtcbi8vIFx0c2V0dGluZ3M6IFRIRU1FX0RFRkFVTFRfU0VUVElOR1MsXG4vLyBcdGNvbG91cnM6IHtcbi8vIFx0XHRsaWdodDoge1xuLy8gXHRcdFx0Y29kZWJsb2NrOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1gubGlnaHQwLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRndXR0ZXI6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5saWdodDEsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzZjNmM2Y1wiLFxuLy8gXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiM4YzhjOGNcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRoZWFkZXI6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjRDVDQ0I0XCIsXG4vLyBcdFx0XHRcdHRpdGxlOiB7XG4vLyBcdFx0XHRcdFx0dGV4dENvbG91cjogXCIjODY2NzA0XCIsXG4vLyBcdFx0XHRcdH0sXG4vLyBcdFx0XHRcdGxhbmd1YWdlVGFnOiB7XG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjQjhCNUFBXCIsXG4vLyBcdFx0XHRcdFx0dGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG4vLyBcdFx0XHRcdH0sXG4vLyBcdFx0XHRcdGxpbmVDb2xvdXI6IFwiI0VERDQ4OVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhpZ2hsaWdodHM6IHtcbi8vIFx0XHRcdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogR1JVVkJPWC5saWdodDEsXG4vLyBcdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzYwNDYwNjMzXCIsXG4vLyBcdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiI0U5REZCQVwiLFxuLy8gXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGlubGluZToge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MCxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGFkdmFuY2VkOiB7XG4vLyBcdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcbi8vIFx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcbi8vIFx0XHRcdH1cbi8vIFx0XHR9LFxuLy8gXHRcdGRhcms6IHtcbi8vIFx0XHRcdGNvZGVibG9jazoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmswLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRndXR0ZXI6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5kYXJrMSxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzRjNGM0Y1wiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhlYWRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwYTQ1NTRcIixcbi8vIFx0XHRcdFx0dGl0bGU6IHtcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNkYWRhZGFcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwMDgwODBcIixcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGluZUNvbG91cjogXCIjNDZjY2VkXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGlnaGxpZ2h0czoge1xuLy8gXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBHUlVWQk9YLmRhcmsxLFxuLy8gXHRcdFx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIiM0NjhlZWIzM1wiLFxuLy8gXHRcdFx0XHRkZWZhdWx0Q29sb3VyOiBcIiMwNTRiNWNcIixcbi8vIFx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRpbmxpbmU6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5kYXJrMCxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGFkdmFuY2VkOiB7XG4vLyBcdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcbi8vIFx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcbi8vIFx0XHRcdH1cbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gfTtcblxuZXhwb3J0IGNvbnN0IElOQlVJTFRfVEhFTUVTOiBSZWNvcmQ8c3RyaW5nLENvZGVTdHlsZXJUaGVtZT4gPSB7XG5cdFwiRGVmYXVsdFwiOiBERUZBVUxUX1RIRU1FLFxuXHRcIlNvbGFyaXplZFwiOiBTT0xBUklaRURfVEhFTUUsXG59O1xuXG4vLyBEZWZhdWx0IFZhbHVlc1xuZXhwb3J0IGNvbnN0IEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMgPSBcInB5dGhvbiB0aXRsZTpmb29cIjtcbmV4cG9ydCBjb25zdCBFWEFNUExFX0NPREVCTE9DS19DT05URU5UID0gXCJwcmludChcXFwiVGhpcyBsaW5lIGlzIHZlcnkgbG9uZyBhbmQgc2hvdWxkIGJlIHVzZWQgYXMgYW4gZXhhbXBsZSBmb3IgaG93IHRoZSBwbHVnaW4gZGVhbHMgd2l0aCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyB2ZXJ5IGxvbmcgbGluZXMgZ2l2ZW4gdGhlIGNob2ljZSBvZiBjb2RlYmxvY2sgcGFyYW1ldGVycyBhbmQgc2V0dGluZ3MuXFxcIilcXG5wcmludChcXFwiVGhpcyBsaW5lIGlzIGhpZ2hsaWdodGVkLlxcXCIpXCI7XG5leHBvcnQgY29uc3QgRVhBTVBMRV9JTkxJTkVfQ09ERSA9IFwie3B5dGhvbiBpY29uIHRpdGxlOmZvb30gcHJpbnQoXFxcIlRoaXMgaXMgaW5saW5lIGNvZGVcXFwiKVwiO1xuZXhwb3J0IGNvbnN0IEVYQ0xVREVEX0xBTkdVQUdFUyA9IFwiYWQtKiwgcmVmZXJlbmNlXCI7XG5leHBvcnQgY29uc3QgV0hJVEVMSVNUX0NPREVCTE9DS1MgPSBcInJ1bi0qLCBpbmNsdWRlXCI7XG5cbi8vIFBsdWdpbiBkZWZhdWx0IHNldHRpbmdzXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVRUSU5HUzogQ29kZVN0eWxlclNldHRpbmdzID0ge1xuXHR0aGVtZXM6IHN0cnVjdHVyZWRDbG9uZShJTkJVSUxUX1RIRU1FUyksXG5cdHNlbGVjdGVkVGhlbWU6IFwiRGVmYXVsdFwiLFxuXHRjdXJyZW50VGhlbWU6IHN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1RIRU1FKSxcblx0bmV3VGhlbWU6IFwiXCIsXG5cdG5ld0hpZ2hsaWdodDogXCJcIixcblx0ZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnM6IEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMsXG5cdGV4YW1wbGVDb2RlYmxvY2tDb250ZW50OiBFWEFNUExFX0NPREVCTE9DS19DT05URU5ULFxuXHRleGFtcGxlSW5saW5lQ29kZTogRVhBTVBMRV9JTkxJTkVfQ09ERSxcblx0ZGVjb3JhdGVQcmludDogdHJ1ZSxcblx0ZXhjbHVkZWRMYW5ndWFnZXM6IEVYQ0xVREVEX0xBTkdVQUdFUyxcblx0cHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdDogV0hJVEVMSVNUX0NPREVCTE9DS1MsXG5cdHJlZGlyZWN0TGFuZ3VhZ2VzOiB7fSxcblx0dmVyc2lvbjogXCIxLjEuNFwiLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTZXR0aW5ncyhzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0aWYgKHR5cGVvZiBzZXR0aW5ncz8udmVyc2lvbiA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gc2V0dGluZ3NDbGVhcigpO1xuXHR3aGlsZSAoc2VtdmVyTmV3ZXIoREVGQVVMVF9TRVRUSU5HUy52ZXJzaW9uLHNldHRpbmdzLnZlcnNpb24pKSB7XG5cdFx0aWYgKHNldHRpbmdzLnZlcnNpb24gaW4gc2V0dGluZ3NVcGRhdGVycylcblx0XHRcdHNldHRpbmdzID0gc2V0dGluZ3NVcGRhdGVyc1tzZXR0aW5ncy52ZXJzaW9uXShzZXR0aW5ncyk7XG5cdFx0ZWxzZVxuXHRcdFx0c2V0dGluZ3MgPSBzZXR0aW5nc0NsZWFyKCk7XG5cdH1cblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2VtdmVyTmV3ZXIobmV3VmVyc2lvbjogc3RyaW5nLCBvbGRWZXJzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIG5ld1ZlcnNpb24ubG9jYWxlQ29tcGFyZShvbGRWZXJzaW9uLCB1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSB9KSA9PT0gMTtcbn1cbmZ1bmN0aW9uIHNldHRpbmdzVmVyc2lvblVwZGF0ZShzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzLCB0aGVtZVVwZGF0ZXI6ICh0aGVtZTogQ29kZVN0eWxlclRoZW1lKT0+Q29kZVN0eWxlclRoZW1lID0gKHRoZW1lKT0+dGhlbWUsIG90aGVyU2V0dGluZ3NVcGRhdGVyOiAoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk9PkNvZGVTdHlsZXJTZXR0aW5ncyA9IChzZXR0aW5ncyk9PnNldHRpbmdzLCByZWRpcmVjdExhbmd1YWdlc1VwZGF0ZXI6IChyZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4pPT5SZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9PiA9IChyZWRpcmVjdExhbmd1YWdlcyk9PnJlZGlyZWN0TGFuZ3VhZ2VzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0Zm9yIChjb25zdCBbbmFtZSwgdGhlbWVdIG9mIE9iamVjdC5lbnRyaWVzKHNldHRpbmdzLnRoZW1lcykpIHtcblx0XHRzZXR0aW5ncy50aGVtZXNbbmFtZV0gPSB0aGVtZVVwZGF0ZXIodGhlbWUpO1xuXHR9XG5cdHNldHRpbmdzLmN1cnJlbnRUaGVtZSA9IHN0cnVjdHVyZWRDbG9uZShzZXR0aW5ncy50aGVtZXNbc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0pO1xuXHRzZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyA9IHJlZGlyZWN0TGFuZ3VhZ2VzVXBkYXRlcihzZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyk7XG5cdHNldHRpbmdzID0gb3RoZXJTZXR0aW5nc1VwZGF0ZXIoc2V0dGluZ3MpO1xuXHRzZXR0aW5ncy52ZXJzaW9uID0gT2JqZWN0LmtleXMoc2V0dGluZ3NVcGRhdGVycykuZmluZCgodmFsdWUsaW5kZXgsYXJyYXkpPT5hcnJheT8uW2luZGV4LTFdPT09c2V0dGluZ3MudmVyc2lvbikgPz8gXCIxLjAuMFwiO1xuXHRyZXR1cm4gc2V0dGluZ3M7XG59XG5mdW5jdGlvbiBzZXR0aW5nc1ByZXNlcnZlKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpOiBDb2RlU3R5bGVyU2V0dGluZ3Mge1xuXHRzZXR0aW5ncy52ZXJzaW9uID0gT2JqZWN0LmtleXMoc2V0dGluZ3NVcGRhdGVycykuZmluZCgodmFsdWUsaW5kZXgsYXJyYXkpPT5hcnJheT8uW2luZGV4LTFdPT09c2V0dGluZ3MudmVyc2lvbikgPz8gXCIxLjAuMFwiO1xuXHRyZXR1cm4gc2V0dGluZ3M7XG59XG5mdW5jdGlvbiBzZXR0aW5nc0NsZWFyKCk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdHJldHVybiBERUZBVUxUX1NFVFRJTkdTO1xufVxuXG5jb25zdCBzZXR0aW5nc1VwZGF0ZXJzOiBSZWNvcmQ8c3RyaW5nLChzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKT0+Q29kZVN0eWxlclNldHRpbmdzPiA9IHtcblx0XCIxLjAuMFwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC4xXCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjJcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuM1wiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC40XCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjVcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuNlwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC43XCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4wLjhcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjAuOVwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMC4xMFwiOiAoc2V0dGluZ3MpPT5zZXR0aW5nc1ZlcnNpb25VcGRhdGUoc2V0dGluZ3MsKHRoZW1lKT0+e1xuXHRcdHRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSA9IHRydWU7XG5cdFx0cmV0dXJuIHRoZW1lO1xuXHR9LChzZXR0aW5ncyk9PnsvL0B0cy1leHBlY3QtZXJyb3IgT2xkZXIgaW50ZXJmYWNlIHZlcnNpb25zXG5cdFx0ZGVsZXRlIHNldHRpbmdzLnNwZWNpYWxMYW5ndWFnZXM7XG5cdFx0cmV0dXJuIHNldHRpbmdzO1xuXHR9KSxcblx0XCIxLjAuMTFcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuMFwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS4xXCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjJcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuM1wiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS40XCI6IHNldHRpbmdzUHJlc2VydmUsXG59O1xuXG4vLyBDb25zdGFudHNcbmV4cG9ydCBjb25zdCBGT0xEX1BMQUNFSE9MREVSID0gXCJGb2xkZWQgQ29kZVwiO1xuZXhwb3J0IGNvbnN0IFBBUkFNRVRFUlMgPSBbXCJ0aXRsZVwiLFwiZm9sZFwiLFwibG5cIixcIndyYXBcIixcInVud3JhcFwiLFwiaWdub3JlXCJdO1xuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fTEVOR1RIID0gMjQwOyAvLyAyNDBtc1xuZXhwb3J0IGNvbnN0IFNQRUNJQUxfTEFOR1VBR0VTID0gW1wiXnJlZmVyZW5jZSRcIixcIl5mb29mb29cIixcIl5wcmV2aWV3JFwiLFwiXmluY2x1ZGUkXCIsXCJeb3V0cHV0JFwiLFwiXnJ1bi0uKyRcIl07XG5leHBvcnQgY29uc3QgU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVggPSBcIkBDb2RlLVN0eWxlci1TZXR0aW5nczpcIjtcbmV4cG9ydCBjb25zdCBMT0NBTF9QUkVGSVggPSBcIkAvXCI7XG5leHBvcnQgY29uc3QgUkVGRVJFTkNFX0NPREVCTE9DSyA9IFwicmVmZXJlbmNlXCI7XG5leHBvcnQgY29uc3QgRVhURVJOQUxfUkVGRVJFTkNFX1BBVEggPSBcIi9wbHVnaW5zL2NvZGUtc3R5bGVyL3JlZmVyZW5jZS1maWxlcy9cIjtcbmV4cG9ydCBjb25zdCBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVggPSBcIi1pbmZvLmpzb25cIjtcbmV4cG9ydCBjb25zdCBHSVRfSUNPTlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG5cdFwiYnJhbmNoXCI6IFwiJiN4ZTBhMDtcIixcblx0XCJ0cmVlXCI6IFwiJiN4ZWFmYztcIiwgLy8gY29tbWl0XG59O1xuZXhwb3J0IGNvbnN0IFNJVEVfSUNPTlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG5cdFwiZ2l0aHViXCI6IFwiJiN4ZjA5YjtcIixcblx0XCJnaXRsYWJcIjogXCImI3hlNjVjO1wiLFxuXHRcImJpdGJ1Y2tldFwiOiBcIiYjeGU3MDM7XCIsXG5cdFwic291cmNlZm9yZ2VcIjogXCImI3hmMDIzODtcIixcblx0XCJnZW5lcmljXCI6IFwiJiN4ZjA1OWY7XCIsXG59O1xuZXhwb3J0IGNvbnN0IFNUQU1QX0lDT04gPSBcIiYjeGYwMGYwO1wiO1xuZXhwb3J0IGNvbnN0IFVQREFURV9JQ09OID0gXCImI3hlMzQ4O1wiO1xuXG5jb25zdCBQUklTTV9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBQcmlzbSBMYW5ndWFnZXM6IGh0dHBzOi8vcHJpc21qcy5jb20vcGx1Z2lucy9zaG93LWxhbmd1YWdlL1xuXHQvLyBcIm5vbmVcIjogXCJQbGFpbiB0ZXh0XCIsIC8vIE5PVEU6IE9ic2lkaWFuIHVzZXMgdGhpcyBmb3IgY29kZWJsb2NrcyB3aXRob3V0IGxhbmd1YWdlIG5hbWVzXG5cdFwicGxhaW5cIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwicGxhaW50ZXh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInRleHRcIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwidHh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcImh0bWxcIjogXCJIVE1MXCIsXG5cdFwieG1sXCI6IFwiWE1MXCIsXG5cdFwic3ZnXCI6IFwiU1ZHXCIsXG5cdFwibWF0aG1sXCI6IFwiTWF0aE1MXCIsXG5cdFwic3NtbFwiOiBcIlNTTUxcIixcblx0XCJyc3NcIjogXCJSU1NcIixcblx0XCJjc3NcIjogXCJDU1NcIixcblx0XCJjbGlrZVwiOiBcIkMtbGlrZVwiLFxuXHRcImpzXCI6IFwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjogXCJBQkFQXCIsXG5cdFwiYWJuZlwiOiBcIkFCTkZcIixcblx0XCJhbFwiOiBcIkFMXCIsXG5cdFwiYW50bHI0XCI6IFwiQU5UTFI0XCIsXG5cdFwiZzRcIjogXCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6IFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIixcblx0XCJhcGxcIjogXCJBUExcIixcblx0XCJhcWxcIjogXCJBUUxcIixcblx0XCJpbm9cIjogXCJBcmR1aW5vXCIsXG5cdFwiYXJmZlwiOiBcIkFSRkZcIixcblx0XCJhcm1hc21cIjogXCJBUk0gQXNzZW1ibHlcIixcblx0XCJhcm0tYXNtXCI6IFwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJ0XCI6IFwiQXJ0dXJvXCIsXG5cdFwiYXNjaWlkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOiBcIkFTUC5ORVQgKEMjKVwiLFxuXHRcImFzbTY1MDJcIjogXCI2NTAyIEFzc2VtYmx5XCIsXG5cdFwiYXNtYXRtZWxcIjogXCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6IFwiQXV0b0hvdGtleVwiLFxuXHRcImF1dG9pdFwiOiBcIkF1dG9JdFwiLFxuXHRcImF2aXN5bnRoXCI6IFwiQXZpU3ludGhcIixcblx0XCJhdnNcIjogXCJBdmlTeW50aFwiLFxuXHRcImF2cm8taWRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhdmRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhd2tcIjogXCJBV0tcIixcblx0XCJnYXdrXCI6IFwiR0FXS1wiLFxuXHRcInNoXCI6IFwiU2hlbGxcIixcblx0XCJiYXNpY1wiOiBcIkJBU0lDXCIsXG5cdFwiYmJjb2RlXCI6IFwiQkJjb2RlXCIsXG5cdFwiYmJqXCI6IFwiQkJqXCIsXG5cdFwiYm5mXCI6IFwiQk5GXCIsXG5cdFwicmJuZlwiOiBcIlJCTkZcIixcblx0XCJicW5cIjogXCJCUU5cIixcblx0XCJic2xcIjogXCJCU0wgKDFDOkVudGVycHJpc2UpXCIsXG5cdFwib3NjcmlwdFwiOiBcIk9uZVNjcmlwdFwiLFxuXHRcImNzaGFycFwiOiBcIkMjXCIsXG5cdFwiY3NcIjogXCJDI1wiLFxuXHRcImRvdG5ldFwiOiBcIkMjXCIsXG5cdFwiY3BwXCI6IFwiQysrXCIsXG5cdFwiY2ZzY3JpcHRcIjogXCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOiBcIkNGU2NyaXB0XCIsXG5cdFwiY2lsXCI6IFwiQ0lMXCIsXG5cdFwiY2lsa2NcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrLWNcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6IFwiQ2lsay9DKytcIixcblx0XCJjaWxrLWNwcFwiOiBcIkNpbGsvQysrXCIsXG5cdFwiY2lsa1wiOiBcIkNpbGsvQysrXCIsXG5cdFwiY21ha2VcIjogXCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6IFwiQ09CT0xcIixcblx0XCJjb2ZmZWVcIjogXCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jXCI6IFwiQ29uY3VybmFzXCIsXG5cdFwiY3NwXCI6IFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjc3MtZXh0cmFzXCI6IFwiQ1NTIEV4dHJhc1wiLFxuXHRcImNzdlwiOiBcIkNTVlwiLFxuXHRcImN1ZVwiOiBcIkNVRVwiLFxuXHRcImRhdGF3ZWF2ZVwiOiBcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOiBcIkRBWFwiLFxuXHRcImRqYW5nb1wiOiBcIkRqYW5nby9KaW5qYTJcIixcblx0XCJqaW5qYTJcIjogXCJEamFuZ28vSmluamEyXCIsXG5cdFwiZG5zLXpvbmUtZmlsZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkb2NrZXJmaWxlXCI6IFwiRG9ja2VyXCIsXG5cdFwiZG90XCI6IFwiRE9UIChHcmFwaHZpeilcIixcblx0XCJndlwiOiBcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZWJuZlwiOiBcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjogXCJFZGl0b3JDb25maWdcIixcblx0XCJlanNcIjogXCJFSlNcIixcblx0XCJldGx1YVwiOiBcIkVtYmVkZGVkIEx1YSB0ZW1wbGF0aW5nXCIsXG5cdFwiZXJiXCI6IFwiRVJCXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHN4XCI6IFwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc1wiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjogXCJGI1wiLFxuXHRcImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlc1wiOiBcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZ0bFwiOiBcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIixcblx0XCJnbWxcIjogXCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOiBcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhcFwiOiBcIkdBUCAoQ0FTKVwiLFxuXHRcImdjb2RlXCI6IFwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjogXCJHRFNjcmlwdFwiLFxuXHRcImdlZGNvbVwiOiBcIkdFRENPTVwiLFxuXHRcImdldHRleHRcIjogXCJnZXR0ZXh0XCIsXG5cdFwicG9cIjogXCJnZXR0ZXh0XCIsXG5cdFwiZ2xzbFwiOiBcIkdMU0xcIixcblx0XCJnblwiOiBcIkdOXCIsXG5cdFwiZ25pXCI6IFwiR05cIixcblx0XCJsaW5rZXItc2NyaXB0XCI6IFwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJsZFwiOiBcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ28tbW9kdWxlXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ28tbW9kXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ3JhcGhxbFwiOiBcIkdyYXBoUUxcIixcblx0XCJoYnNcIjogXCJIYW5kbGViYXJzXCIsXG5cdFwiaHNcIjogXCJIYXNrZWxsXCIsXG5cdFwiaGNsXCI6IFwiSENMXCIsXG5cdFwiaGxzbFwiOiBcIkhMU0xcIixcblx0XCJodHRwXCI6IFwiSFRUUFwiLFxuXHRcImhwa3BcIjogXCJIVFRQIFB1YmxpYy1LZXktUGluc1wiLFxuXHRcImhzdHNcIjogXCJIVFRQIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIixcblx0XCJpY2hpZ29qYW1cIjogXCJJY2hpZ29KYW1cIixcblx0XCJpY3UtbWVzc2FnZS1mb3JtYXRcIjogXCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJcIjogXCJJZHJpc1wiLFxuXHRcImlnbm9yZVwiOiBcIi5pZ25vcmVcIixcblx0XCJnaXRpZ25vcmVcIjogXCIuZ2l0aWdub3JlXCIsXG5cdFwiaGdpZ25vcmVcIjogXCIuaGdpZ25vcmVcIixcblx0XCJucG1pZ25vcmVcIjogXCIubnBtaWdub3JlXCIsXG5cdFwiaW5mb3JtN1wiOiBcIkluZm9ybSA3XCIsXG5cdFwiamF2YWRvY1wiOiBcIkphdmFEb2NcIixcblx0XCJqYXZhZG9jbGlrZVwiOiBcIkphdmFEb2MtbGlrZVwiLFxuXHRcImphdmFzdGFja3RyYWNlXCI6IFwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpxXCI6IFwiSlFcIixcblx0XCJqc2RvY1wiOiBcIkpTRG9jXCIsXG5cdFwianMtZXh0cmFzXCI6IFwiSlMgRXh0cmFzXCIsXG5cdFwianNvblwiOiBcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOiBcIldlYiBBcHAgTWFuaWZlc3RcIixcblx0XCJqc29uNVwiOiBcIkpTT041XCIsXG5cdFwianNvbnBcIjogXCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOiBcIkpTIHN0YWNrIHRyYWNlXCIsXG5cdFwianMtdGVtcGxhdGVzXCI6IFwiSlMgVGVtcGxhdGVzXCIsXG5cdFwia2VlcGFsaXZlZFwiOiBcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia3RzXCI6IFwiS290bGluIFNjcmlwdFwiLFxuXHRcImt0XCI6IFwiS290bGluXCIsXG5cdFwia3VtaXJcIjogXCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOiBcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwibGF0ZXhcIjogXCJMYVRlWFwiLFxuXHRcInRleFwiOiBcIlRlWFwiLFxuXHRcImNvbnRleHRcIjogXCJDb25UZVh0XCIsXG5cdFwibGlseXBvbmRcIjogXCJMaWx5UG9uZFwiLFxuXHRcImx5XCI6IFwiTGlseVBvbmRcIixcblx0XCJlbWFjc1wiOiBcIkxpc3BcIixcblx0XCJlbGlzcFwiOiBcIkxpc3BcIixcblx0XCJlbWFjcy1saXNwXCI6IFwiTGlzcFwiLFxuXHRcImxsdm1cIjogXCJMTFZNIElSXCIsXG5cdFwibG9nXCI6IFwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6IFwiTE9MQ09ERVwiLFxuXHRcIm1hZ21hXCI6IFwiTWFnbWEgKENBUylcIixcblx0XCJtZFwiOiBcIk1hcmtkb3duXCIsXG5cdFwibWFya3VwLXRlbXBsYXRpbmdcIjogXCJNYXJrdXAgdGVtcGxhdGluZ1wiLFxuXHRcIm1hdGxhYlwiOiBcIk1BVExBQlwiLFxuXHRcIm1heHNjcmlwdFwiOiBcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOiBcIk1FTFwiLFxuXHRcIm1ldGFmb250XCI6IFwiTUVUQUZPTlRcIixcblx0XCJtb25nb2RiXCI6IFwiTW9uZ29EQlwiLFxuXHRcIm1vb25cIjogXCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOiBcIk4xUUxcIixcblx0XCJuNGpzXCI6IFwiTjRKU1wiLFxuXHRcIm40anNkXCI6IFwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOiBcIk5hbmQgVG8gVGV0cmlzIEhETFwiLFxuXHRcIm5hbmlzY3JpcHRcIjogXCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFuaVwiOiBcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6IFwiTkFTTVwiLFxuXHRcIm5lb25cIjogXCJORU9OXCIsXG5cdFwibmdpbnhcIjogXCJuZ2lueFwiLFxuXHRcIm5zaXNcIjogXCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2JqY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2NhbWxcIjogXCJPQ2FtbFwiLFxuXHRcIm9wZW5jbFwiOiBcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJxYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJwYXJpZ3BcIjogXCJQQVJJL0dQXCIsXG5cdFwib2JqZWN0cGFzY2FsXCI6IFwiT2JqZWN0IFBhc2NhbFwiLFxuXHRcInBzbFwiOiBcIlBBVFJPTCBTY3JpcHRpbmcgTGFuZ3VhZ2VcIixcblx0XCJwY2F4aXNcIjogXCJQQy1BeGlzXCIsXG5cdFwicHhcIjogXCJQQy1BeGlzXCIsXG5cdFwicGVvcGxlY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwaHBcIjogXCJQSFBcIixcblx0XCJwaHBkb2NcIjogXCJQSFBEb2NcIixcblx0XCJwaHAtZXh0cmFzXCI6IFwiUEhQIEV4dHJhc1wiLFxuXHRcInBsYW50LXVtbFwiOiBcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjogXCJQbGFudFVNTFwiLFxuXHRcInBsc3FsXCI6IFwiUEwvU1FMXCIsXG5cdFwicG93ZXJxdWVyeVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJtc2NyaXB0XCI6IFwiUG93ZXJRdWVyeVwiLFxuXHRcInBvd2Vyc2hlbGxcIjogXCJQb3dlclNoZWxsXCIsXG5cdFwicHJvbXFsXCI6IFwiUHJvbVFMXCIsXG5cdFwicHJvcGVydGllc1wiOiBcIi5wcm9wZXJ0aWVzXCIsXG5cdFwicHJvdG9idWZcIjogXCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVyZWJhc2ljXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicGJmYXNtXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicHVyc1wiOiBcIlB1cmVTY3JpcHRcIixcblx0XCJweVwiOiBcIlB5dGhvblwiLFxuXHRcInFzaGFycFwiOiBcIlEjXCIsXG5cdFwicXNcIjogXCJRI1wiLFxuXHRcInFcIjogXCJRIChrZGIrIGRhdGFiYXNlKVwiLFxuXHRcInFtbFwiOiBcIlFNTFwiLFxuXHRcInJrdFwiOiBcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOiBcIlJhem9yIEMjXCIsXG5cdFwicmF6b3JcIjogXCJSYXpvciBDI1wiLFxuXHRcImpzeFwiOiBcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOiBcIlJlYWN0IFRTWFwiLFxuXHRcInJlbnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicmVzXCI6IFwiUmVTY3JpcHRcIixcblx0XCJyZXN0XCI6IFwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOiBcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJvYm90XCI6IFwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicmJcIjogXCJSdWJ5XCIsXG5cdFwic2FzXCI6IFwiU0FTXCIsXG5cdFwic2Fzc1wiOiBcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOiBcIlNhc3MgKFNDU1MpXCIsXG5cdFwic2hlbGwtc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6IFwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoZWxsc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzbWxcIjogXCJTTUxcIixcblx0XCJzbWxualwiOiBcIlNNTC9OSlwiLFxuXHRcInNvbGlkaXR5XCI6IFwiU29saWRpdHkgKEV0aGVyZXVtKVwiLFxuXHRcInNvbFwiOiBcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2x1dGlvbi1maWxlXCI6IFwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOiBcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzb3lcIjogXCJTb3kgKENsb3N1cmUgVGVtcGxhdGUpXCIsXG5cdFwic3BhcnFsXCI6IFwiU1BBUlFMXCIsXG5cdFwicnFcIjogXCJTUEFSUUxcIixcblx0XCJzcGx1bmstc3BsXCI6IFwiU3BsdW5rIFNQTFwiLFxuXHRcInNxZlwiOiBcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiLFxuXHRcInNxbFwiOiBcIlNRTFwiLFxuXHRcInN0YXRhXCI6IFwiU3RhdGEgQWRvXCIsXG5cdFwiaWVjc3RcIjogXCJTdHJ1Y3R1cmVkIFRleHQgKElFQyA2MTEzMS0zKVwiLFxuXHRcInN1cGVyY29sbGlkZXJcIjogXCJTdXBlckNvbGxpZGVyXCIsXG5cdFwic2NsYW5nXCI6IFwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInN5c3RlbWRcIjogXCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjogXCJUNCB0ZW1wbGF0aW5nXCIsXG5cdFwidDQtY3NcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDRcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCIsXG5cdFwidGFwXCI6IFwiVEFQXCIsXG5cdFwidHQyXCI6IFwiVGVtcGxhdGUgVG9vbGtpdCAyXCIsXG5cdFwidG9tbFwiOiBcIlRPTUxcIixcblx0XCJ0cmlja2xlXCI6IFwidHJpY2tsZVwiLFxuXHRcInRyb3lcIjogXCJ0cm95XCIsXG5cdFwidHJpZ1wiOiBcIlRyaUdcIixcblx0XCJ0c1wiOiBcIlR5cGVTY3JpcHRcIixcblx0XCJ0c2NvbmZpZ1wiOiBcIlRTQ29uZmlnXCIsXG5cdFwidXNjcmlwdFwiOiBcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVjXCI6IFwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidW9yYXpvclwiOiBcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOiBcIlVSSVwiLFxuXHRcInVybFwiOiBcIlVSTFwiLFxuXHRcInZibmV0XCI6IFwiVkIuTmV0XCIsXG5cdFwidmhkbFwiOiBcIlZIRExcIixcblx0XCJ2aW1cIjogXCJ2aW1cIixcblx0XCJ2aXN1YWwtYmFzaWNcIjogXCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YmFcIjogXCJWQkFcIixcblx0XCJ2YlwiOiBcIlZpc3VhbCBCYXNpY1wiLFxuXHRcIndhc21cIjogXCJXZWJBc3NlbWJseVwiLFxuXHRcIndlYi1pZGxcIjogXCJXZWIgSURMXCIsXG5cdFwid2ViaWRsXCI6IFwiV2ViIElETFwiLFxuXHRcIndnc2xcIjogXCJXR1NMXCIsXG5cdFwid2lraVwiOiBcIldpa2kgbWFya3VwXCIsXG5cdFwid29sZnJhbVwiOiBcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJuYlwiOiBcIk1hdGhlbWF0aWNhIE5vdGVib29rXCIsXG5cdFwid2xcIjogXCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwieGVvcmFjdWJlXCI6IFwiWGVvcmFDdWJlXCIsXG5cdFwieG1sLWRvY1wiOiBcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOiBcIlhvam8gKFJFQUxiYXNpYylcIixcblx0XCJ4cXVlcnlcIjogXCJYUXVlcnlcIixcblx0XCJ5YW1sXCI6IFwiWUFNTFwiLFxuXHRcInltbFwiOiBcIllBTUxcIixcblx0XCJ5YW5nXCI6IFwiWUFOR1wiLFxufTtcbmNvbnN0IE1BTlVBTF9QUklTTV9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBNYW51YWxseSBnZW5lcmF0ZWQgbGlzdCBmcm9tIGh0dHBzOi8vcHJpc21qcy5jb20vICAtICAyOTcgbGFuZ3VhZ2VzXG5cdFwiY3NzXCI6XCJDU1NcIixcblx0XCJjbGlrZVwiOlwiQy1saWtlXCIsXG5cdFwiamF2YXNjcmlwdFwiOlwiSmF2YVNjcmlwdFwiLFxuXHRcImpzXCI6XCJKYXZhU2NyaXB0XCIsXG5cdFwiYWJhcFwiOlwiQUJBUFwiLFxuXHRcImFibmZcIjpcIkFCTkZcIixcblx0XCJhY3Rpb25zY3JpcHRcIjpcIkFjdGlvblNjcmlwdFwiLFxuXHRcImFkYVwiOlwiQWRhXCIsXG5cdFwiYWdkYVwiOlwiQWdkYVwiLFxuXHRcImFsXCI6XCJBTFwiLFxuXHRcImFudGxyNFwiOlwiQU5UTFI0XCIsXG5cdFwiZzRcIjpcIkFOVExSNFwiLFxuXHRcImFwYWNoZWNvbmZcIjpcIkFwYWNoZSBDb25maWd1cmF0aW9uXCIsXG5cdFwiYXBleFwiOlwiQXBleFwiLFxuXHRcImFwbFwiOlwiQVBMXCIsXG5cdFwiYXBwbGVzY3JpcHRcIjpcIkFwcGxlU2NyaXB0XCIsXG5cdFwiYXFsXCI6XCJBUUxcIixcblx0XCJhcmR1aW5vXCI6XCJBcmR1aW5vXCIsXG5cdFwiaW5vXCI6XCJBcmR1aW5vXCIsXG5cdFwiYXJmZlwiOlwiQVJGRlwiLFxuXHRcImFybWFzbVwiOlwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJtLWFzbVwiOlwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJ0dXJvXCI6XCJBcnR1cm9cIixcblx0XCJhcnRcIjpcIkFydHVyb1wiLFxuXHRcImFzY2lpZG9jXCI6XCJBc2NpaURvY1wiLFxuXHRcImFkb2NcIjpcIkFzY2lpRG9jXCIsXG5cdFwiYXNwbmV0XCI6XCJBU1AuTkVUIChDIylcIixcblx0XCJhc202NTAyXCI6XCI2NTAyIEFzc2VtYmx5XCIsXG5cdFwiYXNtYXRtZWxcIjpcIkF0bWVsIEFWUiBBc3NlbWJseVwiLFxuXHRcImF1dG9ob3RrZXlcIjpcIkF1dG9Ib3RrZXlcIixcblx0XCJhdXRvaXRcIjpcIkF1dG9JdFwiLFxuXHRcImF2aXN5bnRoXCI6XCJBdmlTeW50aFwiLFxuXHRcImF2c1wiOlwiQXZpU3ludGhcIixcblx0XCJhdnJvLWlkbFwiOlwiQXZybyBJRExcIixcblx0XCJhdmRsXCI6XCJBdnJvIElETFwiLFxuXHRcImF3a1wiOlwiQVdLXCIsXG5cdFwiZ2F3a1wiOlwiR0FXS1wiLFxuXHRcImJhc2hcIjpcIkJhc2hcIixcblx0XCJzaFwiOlwiU2hlbGxcIixcblx0XCJzaGVsbFwiOlwiU2hlbGxcIixcblx0XCJiYXNpY1wiOlwiQkFTSUNcIixcblx0XCJiYXRjaFwiOlwiQmF0Y2hcIixcblx0XCJiYmNvZGVcIjpcIkJCY29kZVwiLFxuXHRcInNob3J0Y29kZVwiOlwiQkJjb2RlXCIsXG5cdFwiYmJqXCI6XCJCQmpcIixcblx0XCJiaXJiXCI6XCJCaXJiXCIsXG5cdFwiYmlzb25cIjpcIkJpc29uXCIsXG5cdFwiYm5mXCI6XCJCTkZcIixcblx0XCJyYm5mXCI6XCJCTkZcIixcblx0XCJicW5cIjpcIkJRTlwiLFxuXHRcImJyYWluZnVja1wiOlwiQnJhaW5mdWNrXCIsXG5cdFwiYnJpZ2h0c2NyaXB0XCI6XCJCcmlnaHRTY3JpcHRcIixcblx0XCJicm9cIjpcIkJyb1wiLFxuXHRcImJzbFwiOlwiQlNMICgxQylcIixcblx0XCJvc2NyaXB0XCI6XCJCU0wgKDFDKVwiLFxuXHRcImNcIjpcIkNcIixcblx0XCJjc2hhcnBcIjpcIkMjXCIsXG5cdFwiY3NcIjpcIkMjXCIsXG5cdFwiZG90bmV0XCI6XCJDI1wiLFxuXHRcImNwcFwiOlwiQysrXCIsXG5cdFwiY2ZzY3JpcHRcIjpcIkNGU2NyaXB0XCIsXG5cdFwiY2ZjXCI6XCJDRlNjcmlwdFwiLFxuXHRcImNoYWlzY3JpcHRcIjpcIkNoYWlTY3JpcHRcIixcblx0XCJjaWxcIjpcIkNJTFwiLFxuXHRcImNpbGtjXCI6XCJDaWxrL0NcIixcblx0XCJjaWxrLWNcIjpcIkNpbGsvQ1wiLFxuXHRcImNpbGtjcHBcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2lsay1jcHBcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2lsa1wiOlwiQ2lsay9DKytcIixcblx0XCJjbG9qdXJlXCI6XCJDbG9qdXJlXCIsXG5cdFwiY21ha2VcIjpcIkNNYWtlXCIsXG5cdFwiY29ib2xcIjpcIkNPQk9MXCIsXG5cdFwiY29mZmVlc2NyaXB0XCI6XCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb2ZmZWVcIjpcIkNvZmZlZVNjcmlwdFwiLFxuXHRcImNvbmN1cm5hc1wiOlwiQ29uY3VybmFzXCIsXG5cdFwiY29uY1wiOlwiQ29uY3VybmFzXCIsXG5cdFwiY3NwXCI6XCJDb250ZW50LVNlY3VyaXR5LVBvbGljeVwiLFxuXHRcImNvb2tsYW5nXCI6XCJDb29rbGFuZ1wiLFxuXHRcImNvcVwiOlwiQ29xXCIsXG5cdFwiY3J5c3RhbFwiOlwiQ3J5c3RhbFwiLFxuXHRcImNzcy1leHRyYXNcIjpcIkNTUyBFeHRyYXNcIixcblx0XCJjc3ZcIjpcIkNTVlwiLFxuXHRcImN1ZVwiOlwiQ1VFXCIsXG5cdFwiY3lwaGVyXCI6XCJDeXBoZXJcIixcblx0XCJkXCI6XCJEXCIsXG5cdFwiZGFydFwiOlwiRGFydFwiLFxuXHRcImRhdGF3ZWF2ZVwiOlwiRGF0YVdlYXZlXCIsXG5cdFwiZGF4XCI6XCJEQVhcIixcblx0XCJkaGFsbFwiOlwiRGhhbGxcIixcblx0XCJkaWZmXCI6XCJEaWZmXCIsXG5cdFwiZGphbmdvXCI6XCJEamFuZ28vSmluamEyXCIsXG5cdFwiamluamEyXCI6XCJEamFuZ28vSmluamEyXCIsXG5cdFwiZG5zLXpvbmUtZmlsZVwiOlwiRE5TIHpvbmUgZmlsZVwiLFxuXHRcImRucy16b25lXCI6XCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG9ja2VyXCI6XCJEb2NrZXJcIixcblx0XCJkb2NrZXJmaWxlXCI6XCJEb2NrZXJcIixcblx0XCJkb3RcIjpcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZ3ZcIjpcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZWJuZlwiOlwiRUJORlwiLFxuXHRcImVkaXRvcmNvbmZpZ1wiOlwiRWRpdG9yQ29uZmlnXCIsXG5cdFwiZWlmZmVsXCI6XCJFaWZmZWxcIixcblx0XCJlanNcIjpcIkVKU1wiLFxuXHRcImV0YVwiOlwiRUpTXCIsXG5cdFwiZWxpeGlyXCI6XCJFbGl4aXJcIixcblx0XCJlbG1cIjpcIkVsbVwiLFxuXHRcImV0bHVhXCI6XCJFbWJlZGRlZCBMdWEgdGVtcGxhdGluZ1wiLFxuXHRcImVyYlwiOlwiRVJCXCIsXG5cdFwiZXJsYW5nXCI6XCJFcmxhbmdcIixcblx0XCJleGNlbC1mb3JtdWxhXCI6XCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwieGxzeFwiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc1wiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcImZzaGFycFwiOlwiRiNcIixcblx0XCJmYWN0b3JcIjpcIkZhY3RvclwiLFxuXHRcImZhbHNlXCI6XCJGYWxzZVwiLFxuXHRcImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlc1wiOlwiRmlyZXN0b3JlIHNlY3VyaXR5IHJ1bGVzXCIsXG5cdFwiZmxvd1wiOlwiRmxvd1wiLFxuXHRcImZvcnRyYW5cIjpcIkZvcnRyYW5cIixcblx0XCJmdGxcIjpcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIixcblx0XCJnbWxcIjpcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhbWVtYWtlcmxhbmd1YWdlXCI6XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYXBcIjpcIkdBUCAoQ0FTKVwiLFxuXHRcImdjb2RlXCI6XCJHLWNvZGVcIixcblx0XCJnZHNjcmlwdFwiOlwiR0RTY3JpcHRcIixcblx0XCJnZWRjb21cIjpcIkdFRENPTVwiLFxuXHRcImdldHRleHRcIjpcImdldHRleHRcIixcblx0XCJwb1wiOlwiZ2V0dGV4dFwiLFxuXHRcImdoZXJraW5cIjpcIkdoZXJraW5cIixcblx0XCJnaXRcIjpcIkdpdFwiLFxuXHRcImdsc2xcIjpcIkdMU0xcIixcblx0XCJnblwiOlwiR05cIixcblx0XCJnbmlcIjpcIkdOXCIsXG5cdFwibGlua2VyLXNjcmlwdFwiOlwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJsZFwiOlwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJnb1wiOlwiR29cIixcblx0XCJnby1tb2R1bGVcIjpcIkdvIG1vZHVsZVwiLFxuXHRcImdvLW1vZFwiOlwiR28gbW9kdWxlXCIsXG5cdFwiZ3JhZGxlXCI6XCJHcmFkbGVcIixcblx0XCJncmFwaHFsXCI6XCJHcmFwaFFMXCIsXG5cdFwiZ3Jvb3Z5XCI6XCJHcm9vdnlcIixcblx0XCJoYW1sXCI6XCJIYW1sXCIsXG5cdFwiaGFuZGxlYmFyc1wiOlwiSGFuZGxlYmFyc1wiLFxuXHRcImhic1wiOlwiSGFuZGxlYmFyc1wiLFxuXHRcIm11c3RhY2hlXCI6XCJIYW5kbGViYXJzXCIsXG5cdFwiaGFza2VsbFwiOlwiSGFza2VsbFwiLFxuXHRcImhzXCI6XCJIYXNrZWxsXCIsXG5cdFwiaGF4ZVwiOlwiSGF4ZVwiLFxuXHRcImhjbFwiOlwiSENMXCIsXG5cdFwiaGxzbFwiOlwiSExTTFwiLFxuXHRcImhvb25cIjpcIkhvb25cIixcblx0XCJodHRwXCI6XCJIVFRQXCIsXG5cdFwiaHBrcFwiOlwiSFRUUCBQdWJsaWMtS2V5LVBpbnNcIixcblx0XCJoc3RzXCI6XCJIVFRQIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIixcblx0XCJpY2hpZ29qYW1cIjpcIkljaGlnb0phbVwiLFxuXHRcImljb25cIjpcIkljb25cIixcblx0XCJpY3UtbWVzc2FnZS1mb3JtYXRcIjpcIklDVSBNZXNzYWdlIEZvcm1hdFwiLFxuXHRcImlkcmlzXCI6XCJJZHJpc1wiLFxuXHRcImlkclwiOlwiSWRyaXNcIixcblx0XCJpbmZvcm03XCI6XCJJbmZvcm0gN1wiLFxuXHRcImluaVwiOlwiSW5pXCIsXG5cdFwiaW9cIjpcIklvXCIsXG5cdFwialwiOlwiSlwiLFxuXHRcImphdmFcIjpcIkphdmFcIixcblx0XCJqYXZhZG9jXCI6XCJKYXZhRG9jXCIsXG5cdFwiamF2YWRvY2xpa2VcIjpcIkphdmFEb2MtbGlrZVwiLFxuXHRcImphdmFzdGFja3RyYWNlXCI6XCJKYXZhIHN0YWNrIHRyYWNlXCIsXG5cdFwiamV4bFwiOlwiSmV4bFwiLFxuXHRcImpvbGllXCI6XCJKb2xpZVwiLFxuXHRcImpxXCI6XCJKUVwiLFxuXHRcImpzZG9jXCI6XCJKU0RvY1wiLFxuXHRcImpzLWV4dHJhc1wiOlwiSlMgRXh0cmFzXCIsXG5cdFwianNvblwiOlwiSlNPTlwiLFxuXHRcIndlYm1hbmlmZXN0XCI6XCJKU09OXCIsXG5cdFwianNvbjVcIjpcIkpTT041XCIsXG5cdFwianNvbnBcIjpcIkpTT05QXCIsXG5cdFwianNzdGFja3RyYWNlXCI6XCJKUyBzdGFjayB0cmFjZVwiLFxuXHRcImpzLXRlbXBsYXRlc1wiOlwiSlMgVGVtcGxhdGVzXCIsXG5cdFwianVsaWFcIjpcIkp1bGlhXCIsXG5cdFwia2VlcGFsaXZlZFwiOlwiS2VlcGFsaXZlZCBDb25maWd1cmVcIixcblx0XCJrZXltYW5cIjpcIktleW1hblwiLFxuXHRcImtvdGxpblwiOlwiS290bGluXCIsXG5cdFwia3RcIjpcIktvdGxpblwiLFxuXHRcImt0c1wiOlwiS290bGluXCIsXG5cdFwia3VtaXJcIjpcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwia3VtXCI6XCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1c3RvXCI6XCJLdXN0b1wiLFxuXHRcImxhdGV4XCI6XCJMYVRlWFwiLFxuXHRcInRleFwiOlwiTGFUZVhcIixcblx0XCJjb250ZXh0XCI6XCJMYVRlWFwiLFxuXHRcImxhdHRlXCI6XCJMYXR0ZVwiLFxuXHRcImxlc3NcIjpcIkxlc3NcIixcblx0XCJsaWx5cG9uZFwiOlwiTGlseVBvbmRcIixcblx0XCJseVwiOlwiTGlseVBvbmRcIixcblx0XCJsaXF1aWRcIjpcIkxpcXVpZFwiLFxuXHRcImxpc3BcIjpcIkxpc3BcIixcblx0XCJlbWFjc1wiOlwiTGlzcFwiLFxuXHRcImVsaXNwXCI6XCJMaXNwXCIsXG5cdFwiZW1hY3MtbGlzcFwiOlwiTGlzcFwiLFxuXHRcImxpdmVzY3JpcHRcIjpcIkxpdmVTY3JpcHRcIixcblx0XCJsbHZtXCI6XCJMTFZNIElSXCIsXG5cdFwibG9nXCI6XCJMb2cgZmlsZVwiLFxuXHRcImxvbGNvZGVcIjpcIkxPTENPREVcIixcblx0XCJsdWFcIjpcIkx1YVwiLFxuXHRcIm1hZ21hXCI6XCJNYWdtYSAoQ0FTKVwiLFxuXHRcIm1ha2VmaWxlXCI6XCJNYWtlZmlsZVwiLFxuXHRcIm1hcmtkb3duXCI6XCJNYXJrZG93blwiLFxuXHRcIm1kXCI6XCJNYXJrZG93blwiLFxuXHRcIm1hcmt1cC10ZW1wbGF0aW5nXCI6XCJNYXJrdXAgdGVtcGxhdGluZ1wiLFxuXHRcIm1hdGFcIjpcIk1hdGFcIixcblx0XCJtYXRsYWJcIjpcIk1BVExBQlwiLFxuXHRcIm1heHNjcmlwdFwiOlwiTUFYU2NyaXB0XCIsXG5cdFwibWVsXCI6XCJNRUxcIixcblx0XCJtZXJtYWlkXCI6XCJNZXJtYWlkXCIsXG5cdFwibWV0YWZvbnRcIjpcIk1FVEFGT05UXCIsXG5cdFwibWl6YXJcIjpcIk1pemFyXCIsXG5cdFwibW9uZ29kYlwiOlwiTW9uZ29EQlwiLFxuXHRcIm1vbmtleVwiOlwiTW9ua2V5XCIsXG5cdFwibW9vbnNjcmlwdFwiOlwiTW9vblNjcmlwdFwiLFxuXHRcIm1vb25cIjpcIk1vb25TY3JpcHRcIixcblx0XCJuMXFsXCI6XCJOMVFMXCIsXG5cdFwibjRqc1wiOlwiTjRKU1wiLFxuXHRcIm40anNkXCI6XCJONEpTXCIsXG5cdFwibmFuZDJ0ZXRyaXMtaGRsXCI6XCJOYW5kIFRvIFRldHJpcyBIRExcIixcblx0XCJuYW5pc2NyaXB0XCI6XCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFuaVwiOlwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hc21cIjpcIk5BU01cIixcblx0XCJuZW9uXCI6XCJORU9OXCIsXG5cdFwibmV2b2RcIjpcIk5ldm9kXCIsXG5cdFwibmdpbnhcIjpcIm5naW54XCIsXG5cdFwibmltXCI6XCJOaW1cIixcblx0XCJuaXhcIjpcIk5peFwiLFxuXHRcIm5zaXNcIjpcIk5TSVNcIixcblx0XCJvYmplY3RpdmVjXCI6XCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9iamNcIjpcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2NhbWxcIjpcIk9DYW1sXCIsXG5cdFwib2RpblwiOlwiT2RpblwiLFxuXHRcIm9wZW5jbFwiOlwiT3BlbkNMXCIsXG5cdFwib3BlbnFhc21cIjpcIk9wZW5RYXNtXCIsXG5cdFwicWFzbVwiOlwiT3BlblFhc21cIixcblx0XCJvelwiOlwiT3pcIixcblx0XCJwYXJpZ3BcIjpcIlBBUkkvR1BcIixcblx0XCJwYXJzZXJcIjpcIlBhcnNlclwiLFxuXHRcInBhc2NhbFwiOlwiUGFzY2FsXCIsXG5cdFwicGFzY2FsaWdvXCI6XCJQYXNjYWxpZ29cIixcblx0XCJwc2xcIjpcIlBBVFJPTCBTY3JpcHRpbmcgTGFuZ3VhZ2VcIixcblx0XCJwY2F4aXNcIjpcIlBDLUF4aXNcIixcblx0XCJweFwiOlwiUEMtQXhpc1wiLFxuXHRcInBlb3BsZWNvZGVcIjpcIlBlb3BsZUNvZGVcIixcblx0XCJwY29kZVwiOlwiUGVvcGxlQ29kZVwiLFxuXHRcInBlcmxcIjpcIlBlcmxcIixcblx0XCJwaHBcIjpcIlBIUFwiLFxuXHRcInBocGRvY1wiOlwiUEhQRG9jXCIsXG5cdFwicGhwLWV4dHJhc1wiOlwiUEhQIEV4dHJhc1wiLFxuXHRcInBsYW50LXVtbFwiOlwiUGxhbnRVTUxcIixcblx0XCJwbGFudHVtbFwiOlwiUGxhbnRVTUxcIixcblx0XCJwbHNxbFwiOlwiUEwvU1FMXCIsXG5cdFwicG93ZXJxdWVyeVwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcInBxXCI6XCJQb3dlclF1ZXJ5XCIsXG5cdFwibXNjcmlwdFwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcInBvd2Vyc2hlbGxcIjpcIlBvd2VyU2hlbGxcIixcblx0XCJwcm9jZXNzaW5nXCI6XCJQcm9jZXNzaW5nXCIsXG5cdFwicHJvbG9nXCI6XCJQcm9sb2dcIixcblx0XCJwcm9tcWxcIjpcIlByb21RTFwiLFxuXHRcInByb3BlcnRpZXNcIjpcIi5wcm9wZXJ0aWVzXCIsXG5cdFwicHJvdG9idWZcIjpcIlByb3RvY29sIEJ1ZmZlcnNcIixcblx0XCJwdWdcIjpcIlB1Z1wiLFxuXHRcInB1cHBldFwiOlwiUHVwcGV0XCIsXG5cdFwicHVyZVwiOlwiUHVyZVwiLFxuXHRcInB1cmViYXNpY1wiOlwiUHVyZUJhc2ljXCIsXG5cdFwicGJmYXNtXCI6XCJQdXJlQmFzaWNcIixcblx0XCJwdXJlc2NyaXB0XCI6XCJQdXJlU2NyaXB0XCIsXG5cdFwicHVyc1wiOlwiUHVyZVNjcmlwdFwiLFxuXHRcInB5dGhvblwiOlwiUHl0aG9uXCIsXG5cdFwicHlcIjpcIlB5dGhvblwiLFxuXHRcInFzaGFycFwiOlwiUSNcIixcblx0XCJxc1wiOlwiUSNcIixcblx0XCJxXCI6XCJRIChrZGIrIGRhdGFiYXNlKVwiLFxuXHRcInFtbFwiOlwiUU1MXCIsXG5cdFwicW9yZVwiOlwiUW9yZVwiLFxuXHRcInJcIjpcIlJcIixcblx0XCJyYWNrZXRcIjpcIlJhY2tldFwiLFxuXHRcInJrdFwiOlwiUmFja2V0XCIsXG5cdFwiY3NodG1sXCI6XCJSYXpvciBDI1wiLFxuXHRcImpzeFwiOlwiUmVhY3QgSlNYXCIsXG5cdFwidHN4XCI6XCJSZWFjdCBUU1hcIixcblx0XCJyZWFzb25cIjpcIlJlYXNvblwiLFxuXHRcInJlZ2V4XCI6XCJSZWdleFwiLFxuXHRcInJlZ29cIjpcIlJlZ29cIixcblx0XCJyZW5weVwiOlwiUmVuJ3B5XCIsXG5cdFwicnB5XCI6XCJSZW4ncHlcIixcblx0XCJyZXNjcmlwdFwiOlwiUmVTY3JpcHRcIixcblx0XCJyZXNcIjpcIlJlU2NyaXB0XCIsXG5cdFwicmVzdFwiOlwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIixcblx0XCJyaXBcIjpcIlJpcFwiLFxuXHRcInJvYm9jb25mXCI6XCJSb2JvY29uZlwiLFxuXHRcInJvYm90ZnJhbWV3b3JrXCI6XCJSb2JvdCBGcmFtZXdvcmtcIixcblx0XCJyb2JvdFwiOlwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicnVieVwiOlwiUnVieVwiLFxuXHRcInJiXCI6XCJSdWJ5XCIsXG5cdFwicnVzdFwiOlwiUnVzdFwiLFxuXHRcInNhc1wiOlwiU0FTXCIsXG5cdFwic2Fzc1wiOlwiU2FzcyAoU2FzcylcIixcblx0XCJzY3NzXCI6XCJTYXNzIChTQ1NTKVwiLFxuXHRcInNjYWxhXCI6XCJTY2FsYVwiLFxuXHRcInNjaGVtZVwiOlwiU2NoZW1lXCIsXG5cdFwic2hlbGwtc2Vzc2lvblwiOlwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoLXNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaGVsbHNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzbWFsaVwiOlwiU21hbGlcIixcblx0XCJzbWFsbHRhbGtcIjpcIlNtYWxsdGFsa1wiLFxuXHRcInNtYXJ0eVwiOlwiU21hcnR5XCIsXG5cdFwic21sXCI6XCJTTUxcIixcblx0XCJzbWxualwiOlwiU01MXCIsXG5cdFwic29saWRpdHlcIjpcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2xcIjpcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2x1dGlvbi1maWxlXCI6XCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic2xuXCI6XCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic295XCI6XCJTb3kgKENsb3N1cmUgVGVtcGxhdGUpXCIsXG5cdFwic3BhcnFsXCI6XCJTUEFSUUxcIixcblx0XCJycVwiOlwiU1BBUlFMXCIsXG5cdFwic3BsdW5rLXNwbFwiOlwiU3BsdW5rIFNQTFwiLFxuXHRcInNxZlwiOlwiU1FGXCIsXG5cdFwic3FsXCI6XCJTUUxcIixcblx0XCJzcXVpcnJlbFwiOlwiU3F1aXJyZWxcIixcblx0XCJzdGFuXCI6XCJTdGFuXCIsXG5cdFwic3RhdGFcIjpcIlN0YXRhIEFkb1wiLFxuXHRcImllY3N0XCI6XCJTdHJ1Y3R1cmVkIFRleHQgKElFQyA2MTEzMS0zKVwiLFxuXHRcInN0eWx1c1wiOlwiU3R5bHVzXCIsXG5cdFwic3VwZXJjb2xsaWRlclwiOlwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInNjbGFuZ1wiOlwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInN3aWZ0XCI6XCJTd2lmdFwiLFxuXHRcInN5c3RlbWRcIjpcIlN5c3RlbWQgY29uZmlndXJhdGlvbiBmaWxlXCIsXG5cdFwidDQtdGVtcGxhdGluZ1wiOlwiVDQgdGVtcGxhdGluZ1wiLFxuXHRcInQ0LWNzXCI6XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDRcIjpcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIixcblx0XCJ0NC12YlwiOlwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiLFxuXHRcInRhcFwiOlwiVEFQXCIsXG5cdFwidGNsXCI6XCJUY2xcIixcblx0XCJ0dDJcIjpcIlRlbXBsYXRlIFRvb2xraXQgMlwiLFxuXHRcInRleHRpbGVcIjpcIlRleHRpbGVcIixcblx0XCJ0b21sXCI6XCJUT01MXCIsXG5cdFwidHJlbW9yXCI6XCJUcmVtb3JcIixcblx0XCJ0cmlja2xlXCI6XCJUcmVtb3JcIixcblx0XCJ0cm95XCI6XCJUcmVtb3JcIixcblx0XCJ0dXJ0bGVcIjpcIlR1cnRsZVwiLFxuXHRcInRyaWdcIjpcIlR1cnRsZVwiLFxuXHRcInR3aWdcIjpcIlR3aWdcIixcblx0XCJ0eXBlc2NyaXB0XCI6XCJUeXBlU2NyaXB0XCIsXG5cdFwidHNcIjpcIlR5cGVTY3JpcHRcIixcblx0XCJ0eXBvc2NyaXB0XCI6XCJUeXBvU2NyaXB0XCIsXG5cdFwidHNjb25maWdcIjpcIlRTQ29uZmlnXCIsXG5cdFwidW5yZWFsc2NyaXB0XCI6XCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1c2NyaXB0XCI6XCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1Y1wiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidW9yYXpvclwiOlwiVU8gUmF6b3IgU2NyaXB0XCIsXG5cdFwidXJpXCI6XCJVUklcIixcblx0XCJ1cmxcIjpcIlVSSVwiLFxuXHRcInZcIjpcIlZcIixcblx0XCJ2YWxhXCI6XCJWYWxhXCIsXG5cdFwidmJuZXRcIjpcIlZCLk5ldFwiLFxuXHRcInZlbG9jaXR5XCI6XCJWZWxvY2l0eVwiLFxuXHRcInZlcmlsb2dcIjpcIlZlcmlsb2dcIixcblx0XCJ2aGRsXCI6XCJWSERMXCIsXG5cdFwidmltXCI6XCJ2aW1cIixcblx0XCJ2aXN1YWwtYmFzaWNcIjpcIlZpc3VhbCBCYXNpY1wiLFxuXHRcInZiXCI6XCJWaXN1YWwgQmFzaWNcIixcblx0XCJ3YXJwc2NyaXB0XCI6XCJXYXJwU2NyaXB0XCIsXG5cdFwid2FzbVwiOlwiV2ViQXNzZW1ibHlcIixcblx0XCJ3ZWItaWRsXCI6XCJXZWIgSURMXCIsXG5cdFwid2ViaWRsXCI6XCJXZWIgSURMXCIsXG5cdFwid2dzbFwiOlwiV0dTTFwiLFxuXHRcIndpa2lcIjpcIldpa2kgbWFya3VwXCIsXG5cdFwid29sZnJhbVwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIm1hdGhlbWF0aWNhXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwibmJcIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJ3bFwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIndyZW5cIjpcIldyZW5cIixcblx0XCJ4ZW9yYVwiOlwiWGVvcmFcIixcblx0XCJ4ZW9yYWN1YmVcIjpcIlhlb3JhXCIsXG5cdFwieG1sLWRvY1wiOlwiWE1MIGRvYyAoLm5ldClcIixcblx0XCJ4b2pvXCI6XCJYb2pvIChSRUFMYmFzaWMpXCIsXG5cdFwieHF1ZXJ5XCI6XCJYUXVlcnlcIixcblx0XCJ5YW1sXCI6XCJZQU1MXCIsXG5cdFwieW1sXCI6XCJZQU1MXCIsXG5cdFwieWFuZ1wiOlwiWUFOR1wiLFxuXHRcInppZ1wiOlwiWmlnXCJcbn07XG5jb25zdCBNQU5VQUxfTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gTWFudWFsbHkgY3JlYXRlZCBsaXN0XG5cdFwiZmlzaFwiOlwiRmlzaFwiLFxuXHRcIm9jdGF2ZVwiOlwiT2N0YXZlXCIsXG5cdFwibWF4aW1hXCI6XCJNYXhpbWFcIixcblx0XCJteXNxbFwiOlwiU1FMXCIsXG5cdFwicG9zdGdyZXNxbFwiOlwiU1FMXCIsXG5cdFwicnNjcmlwdFwiOlwiUlwiLFxuXHRcInNoZWxsc2NyaXB0XCI6XCJTaGVsbFwiLFxuXHRcInNxbGl0ZVwiOlwiU1FMXCIsXG5cdFwienNoXCI6XCJac2hcIixcbn07XG5leHBvcnQgY29uc3QgTEFOR1VBR0VfTkFNRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0gey4uLlBSSVNNX0xBTkdVQUdFUywuLi5NQU5VQUxfUFJJU01fTEFOR1VBR0VTLC4uLk1BTlVBTF9MQU5HVUFHRVN9O1xuXG5leHBvcnQgY29uc3QgTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogTGFuZ3VhZ2V9ID0ge1xuXHRcIi5naXRpZ25vcmVcIjoge1xuXHRcdGNvbG91cjogXCIjZGQ0YzM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNDcyLDE0Ljc1MywxNy4yNDcsMi41MjhhMS44LDEuOCwwLDAsMC0yLjU1LDBMMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNCwyLjUyOCwxNC43YTEuOCwxLjgsMCwwLDAsMCwyLjU1MUwxNC43NTMsMjkuNDcyYTEuOCwxLjgsMCwwLDAsMi41NSwwTDI5LjQ3MiwxNy4zYTEuOCwxLjgsMCwwLDAsMC0yLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGMzNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCIuaGdpZ25vcmVcIjoge1xuXHRcdGNvbG91cjogXCIjYmZiZmJmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjguMDQyLDIzLjE3MmM0Ljk4OS04LjMtMS4wNTQtMjEuNzUxLTEyLjEtMjAuMzg0QzUuOTU1LDQuMDIyLDUuNzk0LDE0LjUzLDE0LjU5MywxNy4wMjZjNy42MTQsMi4xNjIsMS41NzMsNi45OTIsMS43NDksMTAuMjA4czYuNjIsNC4zODIsMTEuNy00LjA2M1xcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxjaXJjbGUgY3g9XFxcIjkuNzg0XFxcIiBjeT1cXFwiMjQuMjU3XFxcIiByPVxcXCI0LjMzMlxcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxjaXJjbGUgY3g9XFxcIjQuODM1XFxcIiBjeT1cXFwiMTUuMDk5XFxcIiByPVxcXCIyLjgzNVxcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4yMzEsMjIuODM1YzQuOTg5LTguMy0xLjA1NC0yMS43NTEtMTIuMS0yMC4zODRDNi4xNDQsMy42ODYsNS45ODMsMTQuMTk0LDE0Ljc4MSwxNi42OWM3LjYxNCwyLjE2MiwxLjU3Myw2Ljk5MiwxLjc0OSwxMC4yMDhzNi42Miw0LjM4MiwxMS43LTQuMDYzXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PGNpcmNsZSBjeD1cXFwiOS45NzJcXFwiIGN5PVxcXCIyMy45MjFcXFwiIHI9XFxcIjQuMzMyXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PGNpcmNsZSBjeD1cXFwiNS4wMjNcXFwiIGN5PVxcXCIxNC43NjJcXFwiIHI9XFxcIjIuODM1XFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PHBhdGggZD1cXFwiTTE3LjgxMSwyOC4xNjhhLjY2OS42NjksMCwwLDEsLjYzNS0uOTk0LDcsNywwLDAsMCwzLjctLjc0NmMzLjI0Ny0xLjg0MSw4LjI0NC0xMC43LDUuNzMxLTE2LjI4NUExMi43NywxMi43NywwLDAsMCwyNS4wNDksNS43Yy0uMjM2LS4yNDktLjEtLjIzNi4wNTktLjE1MmExMC4wOCwxMC4wOCwwLDAsMSwyLjg1NywzLjY3NiwxNC41NzgsMTQuNTc4LDAsMCwxLDEuMSwxMC4yNzljLS40OTQsMS44MTctMi4yLDUuOTI4LTQuNjkxLDcuNzA2cy01LjQyNCwyLjgtNi41NjMuOTU1TTE1LjU0OCwxNi42NzNjLTEuNy0uNS0zLjg5NC0xLjIwOC01LjE2My0yLjg2N0E4LjA4OCw4LjA4OCwwLDAsMSw4Ljg1NCwxMC40OWMtLjA0My0uMjctLjA4LS41LDAtLjU1OGEyMS44ODIsMjEuODgyLDAsMCwwLDEuNjg4LDIuNzIzLDYuNDg3LDYuNDg3LDAsMCwwLDMuNTI2LDIuMjU2LDEyLjM4MywxMi4zODMsMCwwLDEsMy44NjcsMS4zN2MuNzM5LjYyOS44LDEuOTg5LjU1MiwyLjE0MnMtLjc1OS0xLjEtMi45MzgtMS43NDltLTguMTU1LDEwLjRjMy4zNjksMy4xMjEsOC40MzktMS4xNjYsNi4yMDctNC45NTQtLjI1MS0uNDI1LS41NzYtLjc0OS0uNDY5LS40MjMuNzE0LDIuMTc4LjA1NCwzLjktMS4xNzYsNC43ODhhNC4wNjMsNC4wNjMsMCwwLDEtNC4xOTIuMzI4Yy0uMzktLjItLjU1MS4wOTItLjM3LjI2MW0tMy45My0xMC4xNmMuMDE4LjIuMjkyLjQ1OC43MjIuNTc2YTIuOTY5LDIuOTY5LDAsMCwwLDIuNTUtLjQxMywyLjc1OSwyLjc1OSwwLDAsMCwuODEtMy40NTJjLS4xNzItLjMwOC0uNC0uNTMzLS4yMTgtLjA0MUEyLjY4LDIuNjgsMCwwLDEsNi4xNDgsMTYuNTNhMi40MzksMi40MzksMCwwLDEtMi4xLjE2NGMtLjM5MS0uMTE5LS42LjAxNi0uNTguMjIzXFxcIi8+PHBhdGggZD1cXFwiTTE5LjA1NiwyOC40MDdjLS4wMzMuMzg5LjQxNC40NjYsMS4wMTYuMzc2YTYuNzU1LDYuNzU1LDAsMCwwLDIuMzEzLS42NDgsOS41NCw5LjU0LDAsMCwwLDMuMzE0LTIuNjNjMi42NjItMy40NzMsMy42LTcuNTgyLDMuNDYtOC4xNzNBMTYuMTcyLDE2LjE3MiwwLDAsMSwyNywyMi42OTJjLTEuODg4LDIuOTY4LTMuMjU2LDQuNTQ4LTYuNDEzLDUuMzE0LS44NzkuMjEzLTEuNDg1LS4xMTItMS41MjkuNG0tNy0xMy41QTcuOTY3LDcuOTY3LDAsMCwwLDE0LjYsMTYuMDg5YTEyLjIsMTIuMiwwLDAsMSwyLjk2LDEuMzFjLjM3OC4yNTMuNjE4LjgxOS42NDIuMzE3cy0uMjg1LS45MzQtLjk3Ni0xLjE2NGExNS4yNzQsMTUuMjc0LDAsMCwwLTIuMDA5LS42NzRjLS40ODUtLjEtMS4yNzMtLjI4NS0xLjk0OS0uNDkzLS4zNzEtLjExNC0uNzQ4LS4zMTMtMS4yMTQtLjQ4M00xMC4wMzcsMjcuNzE4Yy40MjktLjA5LDIuOTI0LS43MzYsMy41MS0yLjc4OC4xODMtLjY0LjIxNS0uNTExLjE2NC0uMTY1YTMuOCwzLjgsMCwwLDEtMy4zNTgsMy4xMjNjLS4yODkuMDMtLjY2OC0uMS0uMzE1LS4xN001LjA0NiwxNy4yYTcuOTkxLDcuOTkxLDAsMCwwLDEuMTk1LS4zMzYsMi4zODMsMi4zODMsMCwwLDAsMS4yMzItMS43NDFjLjA2NC0uNTA1LjA4My0uMzc4LjEwOS0uMWEyLjYyNywyLjYyNywwLDAsMS0yLjE0NywyLjMyNGMtLjIuMDI4LS41Ni4wMTEtLjM4OS0uMTQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjU0LDE3LjQ0NmMyLjEyNC02LjEyMy0yLjMyMS0xNS4zNy0xMS4zMTUtMTQuMjU4LTguMTI2LDEtOC4yNTcsOS41NTctMS4xLDExLjU5LDguMTEyLDEuMjI4LDMuMjI3LDcuMzQ3LDIuNTM1LDEwLjQzMy0uNjIxLDIuNzY2LDYuNTU1LDMuMjIxLDkuODc2LTcuNzY1TTcuMjE5LDI2LjJhMi4wMjgsMi4wMjgsMCwwLDEsMS4zMzIuNDQyLDMuNTI1LDMuNTI1LDAsMCwwLDMuNzU1LS45ODNBNC4xNTQsNC4xNTQsMCwwLDAsMTIuODY5LDIyYy0uODA2LTIuMzE5LTQuMjI5LTIuMjc4LTUuNzU4LS4zNTMtMS42NTQsMi4xNS0uNCw0LjUzOS4xMDgsNC41NDhNMi42NzYsMTUuNDUxYTEuMTY2LDEuMTY2LDAsMCwwLC45MDguODYzYy43MzEuMS44OC40MzQsMS43NDMuMjYzQTIuNDY0LDIuNDY0LDAsMCwwLDcuMSwxNC45MTZhMS43NzEsMS43NzEsMCwwLDAtLjgyNC0yLjE0LDIuNjg5LDIuNjg5LDAsMCwwLTMuMDQ3LjM2MywyLjI2MywyLjI2MywwLDAsMC0uNTU4LDIuMzEyXFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTIxLjk4MSwyMi4yMjhjLTIuMi0uMjcyLTUuMzYsNC42OS0yLjM3OCw0LjEwOWgwYTUuNjQ1LDUuNjQ1LDAsMCwwLDMuNjgzLTEuOTMyLDIzLjEzNiwyMy4xMzYsMCwwLDAsNC4wNTUtNy4yYy41LTEuODYxLjI1MS00Ljc0NS0uMjY5LTIuMDM2LS41MzMsMi43ODEtMi44OTMsNy4zMzYtNS4wOTEsNy4wNjRNMTAuNTIzLDI2LjM2MkEyLjc3OCwyLjc3OCwwLDAsMCwxMi41LDIyLjk5Yy0uMTY1LTEuMjc2LS44NjEsMS41ODQtMi4xNSwyLjAxMi0xLjk1My42NDgtMS43MzMsMS44NjEuMTc2LDEuMzYxbS00Ljk3OC0xMC4yYy42NjMtLjE3MywxLjU0LTEuMDc3LDEuMS0xLjc2Ny0uNTM3LS44NS0yLjAzMy0uMTIyLTIuMDg0LjgyNHMuMjc3LDEuMTI3Ljk3OS45NDNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmM2YzZjNcXFwiLz5cIixcblx0fSxcblx0XCIubnBtaWdub3JlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NiMzgzN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIsMTAuNTU1SDMwdjkuMzM1SDE2djEuNTU2SDkuNzc4VjE5Ljg4OUgyWm0xLjU1Niw3Ljc3OUg2LjY2N1YxMy42NjZIOC4yMjJ2NC42NjdIOS43NzhWMTIuMTExSDMuNTU2Wm03Ljc3OC02LjIyM3Y3Ljc3OWgzLjExMVYxOC4zMzRoMy4xMTFWMTIuMTExWm0zLjExMSwxLjU1NkgxNnYzLjExMkgxNC40NDRabTQuNjY3LTEuNTU2djYuMjIzaDMuMTExVjEzLjY2NmgxLjU1NnY0LjY2N2gxLjU1NlYxMy42NjZoMS41NTZ2NC42NjdoMS41NTZWMTIuMTExWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NiMzgzN1xcXCIvPlwiLFxuXHR9LFxuXHRcIi5wcm9wZXJ0aWVzXCI6IHtcblx0XHRjb2xvdXI6IFwiIzk5YjhjNFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIzLjI2NSwyNC4zODFsLjktLjg5NGM0LjE2NC4xMzYsNC4yMjgtLjAxLDQuNDExLS40MzhsMS4xNDQtMi43ODVMMjkuODA1LDIwbC0uMDkzLS4yMzFjLS4wNDktLjEyMi0uMi0uNDg2LTIuOC0yLjk2NVYxNS41YzMtMi44OSwyLjkzNi0zLjAzOCwyLjc2NS0zLjQ2MUwyOC41MzgsOS4yMjVjLS4xNzEtLjQyMi0uMjM2LS41ODctNC4zNy0uNDc0bC0uOS0uOTNhMjAuMTY2LDIwLjE2NiwwLDAsMC0uMTQxLTQuMTA2bC0uMTE2LS4yNjMtMi45NzQtMS4zYy0uNDM4LS4yLS41OTItLjI3Mi0zLjQsMi43ODZsLTEuMjYyLS4wMTljLTIuODkxLTMuMDg2LTMuMDI4LTMuMDMtMy40NjEtMi44NTVMOS4xNDksMy4xODJjLS40MzMuMTc1LS41ODYuMjM3LS40MTgsNC40MzdsLS44OTMuODljLTQuMTYyLS4xMzYtNC4yMjYuMDEyLTQuNDA3LjQzOEwyLjI4NSwxMS43MzMsMi4xOTUsMTJsLjA5NC4yMzJjLjA0OS4xMi4xOTQuNDgsMi44LDIuOTYybDAsMS4zYy0zLDIuODktMi45MzUsMy4wMzgtMi43NjMsMy40NjJsMS4xMzgsMi44MTdjLjE3NC40MzEuMjM2LjU4NCw0LjM2OS40NzZsLjkuOTM1YTIwLjI0MywyMC4yNDMsMCwwLDAsLjEzNyw0LjFsLjExNi4yNjUsMi45OTMsMS4zMDhjLjQzNS4xODIuNTg2LjI0NywzLjM4Ni0yLjhsMS4yNjIuMDE2YzIuODk1LDMuMDksMy4wNDMsMy4wMywzLjQ2NiwyLjg1OWwyLjc1OS0xLjExNUMyMy4yODgsMjguNjQ0LDIzLjQ0LDI4LjU4MywyMy4yNjUsMjQuMzgxWk0xMS40MDcsMTcuODU3YTQuOTU3LDQuOTU3LDAsMSwxLDYuNDg4LDIuODI0QTUuMDE0LDUuMDE0LDAsMCwxLDExLjQwNywxNy44NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdH0sXG5cdFwiNjUwMiBBc3NlbWJseVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDAwYmZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjgzNi42M1xcXCIgeTE9XFxcIjM2LjIwNVxcXCIgeDI9XFxcIjg0My44MDJcXFwiIHkyPVxcXCIxNC40OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSg1MjUuOTIyIDMwLjI0OSkgcm90YXRlKDE4MCkgc2NhbGUoMC42MDcgMC42MDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4yNzVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2Fzc2VtYmx5PC90aXRsZT48cGF0aCBkPVxcXCJNMTYsMmMtMS4yNDYsMy4wNTYtMiw1LjA1Ny0zLjM5MSw4LjAyMkEyMS44ODQsMjEuODg0LDAsMCwwLDE2LjIsMTMuMTU2YTE0Ljg1OCwxNC44NTgsMCwwLDEtNC0yLjI4M0MxMC40MywxNC41NzksNy42NDYsMTkuODU1LDIsMzBjNS4xODYtMi45OTQsOS4wMTItNC42NDgsMTIuNjkxLTQuOTY2VjI0LjJoLS44MzR2LS44MzdoLjgzNFYyNC4yaDEuNjc1VjIyLjUyMUgxNC42OTF2LS44MzRoLS44MzRWMjAuMDEzaC44MzR2LS44MzRoMS42NzV2LjgzNEgxNy4ydi44MzdoLS44Mzd2LS44MzdIMTQuNjkxdjEuNjc1aDEuNjc1di44MzRIMTcuMlYyNC4yaC0uODM3di43ODNjMy45OC4xLDguMDA2LDEuNzcyLDEzLjYzNCw1LjAyMS0uODYzLTEuNTg5LTEuNjM2LTMuMDIxLTIuMzcyLTQuMzg1YTI1LjUyNiwyNS41MjYsMCwwLDAtNC44MzMtMy4zMzNBMTQuNDM2LDE0LjQzNiwwLDAsMSwyNi42NSwyMy44QzE5LjE3LDkuODcyLDE4LjU2NSw4LjAyLDE2LDJaTTEwLjUxMSwxOS4xNzloMS42NzF2LjgzNGguODM3djUuMDIxaC0uODM3VjIyLjUyMUgxMC41MTF2Mi41MTJIOS42NzNWMjAuMDEzaC44MzdabTAsLjgzNHYxLjY3NWgxLjY3MVYyMC4wMTNabTcuNTI2LS44MzRoLjgzN3YuODM0aC44Mzd2LjgzN2guODM0di0uODM3aC44Mzd2LS44MzRoLjgzN3Y1Ljg1NWgtLjgzN1YyMC44NWgtLjgzN3YuODM3aC0uODM0VjIwLjg1aC0uODM3djQuMTg0aC0uODM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDBiZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44ODEsMTguNjQyYy02LjA2OS04LjIzNy03LjQ3Ni0xNC44NzYtNy44MzItMTYuNDYxQTE3NS4yMTcsMTc1LjIxNywwLDAsMCwyMy44ODEsMTguNjQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLW9wYWNpdHk6MC4xNjU2ODA0NjgwODI0MjhcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDUxLDIuMTIsMTUuNiwzLjIyN2MtLjE1OS4zOTEtLjMxMS43NjUtLjQ2MSwxLjEzMXMtLjMuNzI0LS40NDgsMS4wNzctLjMuNy0uNDQ4LDEuMDUzLS4zLjcwNi0uNDY1LDEuMDY2LS4zMjkuNzI5LS41MDYsMS4xMTEtLjM2Mi43NzgtLjU2MSwxLjE5M2MtLjAyOC4wNTctLjA2MS4xMjMtLjA4OS4xODFBMjEuODcyLDIxLjg3MiwwLDAsMCwxNi4yLDEzLjE1NmExNC44NzksMTQuODc5LDAsMCwxLTMuOTg5LTIuMjc2bC0uMTQuMjg3Yy0uMDY1LjEzMy0uMTQ0LjI4My0uMjEyLjQybC0uMTA2LjIxOWMtLjg3OCwxLjc5My0yLjAwNiwzLjk4NC0zLjUyNCw2LjgyMiwzLjU1MS0yLDcuMzgxLTQuODg3LDE0LjMzOC0yLjQtLjM0OS0uNjYxLS42Ny0xLjI4LS45NzEtMS44NjNzLS41ODEtMS4xMjgtLjg0MS0xLjY0NC0uNS0xLS43MjUtMS40NjMtLjQzMy0uOS0uNjI5LTEuMzEzLS4zOC0uODE4LS41NTQtMS4yLS4zMzktLjc1NC0uNS0xLjExOFMxOC4wNDcsNi45LDE3LjksNi41NDZzLS4yOTEtLjcwOS0uNDM0LTEuMDY2Yy0uMDM2LS4wOTEtLjA3My0uMTg2LS4xMDktLjI3N0MxNi45NDksNC4yNDcsMTYuNTM2LDMuMjU4LDE2LjA1MSwyLjEyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIkFjdGlvblNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjNDE3MThcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDE1LjI4MWMxLjkxOCwwLDIuMTEtMS4wNTUsMi4xMS0xLjkxOGExNy4xMTksMTcuMTE5LDAsMCwwLS4xOTItMi4yMDUsMTguNzIzLDE4LjcyMywwLDAsMS0uMTkyLTIuMjA1YzAtMi40LDEuNjMtMy40NTIsMy44MzYtMy40NTJoLjU3NVY2LjkzOEg3LjY1OGMtMS41MzQsMC0yLjExLjc2Ny0yLjExLDIuMjA1YTE0LjQxMiwxNC40MTIsMCwwLDAsLjE5MiwxLjkxOCwxNC4zMDYsMTQuMzA2LDAsMCwxLC4xOTIsMi4wMTRjMCwxLjcyNi0uNjcxLDIuNDkzLTEuOTE4LDIuODc3di4xYzEuMTUxLjI4OCwxLjkxOCwxLjE1MSwxLjkxOCwyLjg3N2ExNC4zMDYsMTQuMzA2LDAsMCwxLS4xOTIsMi4wMTQsMTMsMTMsMCwwLDAtLjE5MiwxLjkxOGMwLDEuNDM4LjU3NSwyLjMsMi4xMSwyLjNoLjQ3OVYyNi42SDcuNTYyYy0yLjIwNSwwLTMuODM2LS45NTktMy44MzYtMy42NDRhMTguNzIzLDE4LjcyMywwLDAsMSwuMTkyLTIuMjA1LDE1LjY4LDE1LjY4LDAsMCwwLC4xOTItMi4xMWMwLS44NjMtLjI4OC0xLjkxOC0yLjExLTEuOTE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk05LjQ3OSwxOC4wNjIsOC4yMzMsMjEuOEg2LjZMMTAuNjMsOS45MTFoMS44MjJMMTYuNDc5LDIxLjhIMTQuOTQ1TDEzLjcsMTguMDYyWm0zLjkzMi0xLjE1MUwxMi4yNiwxMy40NTlhOS4zNjQsOS4zNjQsMCwwLDEtLjU3NS0yLjIwNWgwYy0uMTkyLjY3MS0uMzg0LDEuNDM4LS41NzUsMi4xMUw5Ljk1OSwxNi44MTVoMy40NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzQxNzE4XFxcIi8+PHBhdGggZD1cXFwiTTE3LjkxOCwxOS45NzlhNS45NDEsNS45NDEsMCwwLDAsMi43ODEuNzY3YzEuNTM0LDAsMi40OTMtLjg2MywyLjQ5My0yLjAxNHMtLjY3MS0xLjcyNi0yLjIwNS0yLjRjLTEuOTE4LS42NzEtMy4xNjQtMS43MjYtMy4xNjQtMy4zNTYsMC0xLjgyMiwxLjUzNC0zLjI2LDMuODM2LTMuMjZhNS4xMzUsNS4xMzUsMCwwLDEsMi41ODkuNTc1bC0uMzg0LDEuMjQ3YTUuNTE5LDUuNTE5LDAsMCwwLTIuMy0uNDc5Yy0xLjYzLDAtMi4yMDUuOTU5LTIuMjA1LDEuODIyLDAsMS4xNTEuNzY3LDEuNjMsMi40LDIuMywyLjAxNC43NjcsMy4wNjgsMS43MjYsMy4wNjgsMy40NTIsMCwxLjgyMi0xLjM0MiwzLjQ1Mi00LjEyMywzLjQ1MmE1LjgwNyw1LjgwNywwLDAsMS0zLjA2OC0uNzY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNi42MjNjLTEuOTE4LDAtMi4xMSwxLjE1MS0yLjExLDEuOTE4YTE1LjY4LDE1LjY4LDAsMCwwLC4xOTIsMi4xMSwxNS43MzgsMTUuNzM4LDAsMCwxLC4xOTIsMi4yMDVjMCwyLjY4NS0xLjYzLDMuNjQ0LTMuODM2LDMuNjQ0aC0uNTc1VjI1LjA2MmguNDc5YzEuNDM4LDAsMi4xMS0uODYzLDIuMTEtMi4zYTEzLDEzLDAsMCwwLS4xOTItMS45MTgsMTQuMzA2LDE0LjMwNiwwLDAsMS0uMTkyLTIuMDE0YzAtMS43MjYuNzY3LTIuNTg5LDEuOTE4LTIuODc3di0uMWMtMS4xNTEtLjI4OC0xLjkxOC0xLjE1MS0xLjkxOC0yLjg3N2ExNC4zMDYsMTQuMzA2LDAsMCwxLC4xOTItMi4wMTQsMTMsMTMsMCwwLDAsLjE5Mi0xLjkxOGMwLTEuNDM4LS41NzUtMi4yMDUtMi4xMS0yLjNoLS40NzlWNS40aC41NzVjMi4yMDUsMCwzLjgzNiwxLjA1NSwzLjgzNiwzLjQ1MmExNy4xMTksMTcuMTE5LDAsMCwxLS4xOTIsMi4yMDUsMTcuMTE5LDE3LjExOSwwLDAsMC0uMTkyLDIuMjA1YzAsLjk1OS4yODgsMS45MTgsMi4xMSwxLjkxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz5cIixcblx0fSxcblx0XCJBZGFcIjoge1xuXHRcdGNvbG91cjogXCIjMGYyM2MzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjQuNTU0LDIwLjA3NWMuMjA5LjI3LDEuMzU2Ljk2MSwxLjM3LDEuMjQ2YTYuOTIxLDYuOTIxLDAsMCwwLTEuNC0uMzI0Yy0uNDY4LS4xNDItLjk1MS0uMjkzLTEuNDEyLS40OGE5LjIsOS4yLDAsMCwxLTIuMzc1LTEuM0EzLjE0NiwzLjE0NiwwLDAsMSwxOS4zLDE2Ljc1YTEuNzIyLDEuNzIyLDAsMCwxLDEuNzY3LTEuODIyLDMuNTg0LDMuNTg0LDAsMCwxLDEuNTkzLjMyMWMuMTQ2LjA2NiwxLjMxLjYwNiwxLjI1Ni44MDlhNS41LDUuNSwwLDAsMC0xLjQxLS4xMTJjLS42NDkuMjQ0LS40LjgyOC0uMTY4LDEuMzExYTcuODc3LDcuODc3LDAsMCwwLDEuMDc4LDEuNTU0QzIzLjU4LDE5LjAwNSwyNC4zLDIwLjA4MiwyNC41NTQsMjAuMDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzBmMjNjM1xcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xNDEsMTYuMjc2Yy4xMjgtLjU5LjgxOS0xLjM4NCwxLjM0NC0uNzczYTQuMiw0LjIsMCwwLDEsLjU3OCwxLjkxOGMuMTIuNjU2LjIsMS4zMjcuMjYxLDEuOTgyLjAzOC4zNzkuMzQsMS43OTQuMTIzLDIuMDc1YTIzLjI0LDIzLjI0LDAsMCwxLTIuOTIyLTIuODM4LDMuNzYzLDMuNzYzLDAsMCwxLS45MjUtMS43QzIyLjUsMTUuODY3LDIzLjQ3OSwxNi4yMSwyNC4xNDEsMTYuMjc2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMTk3OFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi4zLDE3Ljc4MWMuMTQxLS43MzItLjQwNi0yLjU5Mi0xLjA2Ny0yLjk0OWEuMDYuMDYsMCwwLDAsLjA0NC0uMDA3Yy0uMTU2LS40NDQtMS4zNTksMS4xMTYtMS4yMjgsMS4xNzQtLjMxNi0uMTM4Ljc3NC0xLjk4NC45ODgtMi4xNi43LS41NzgsMS4zNzItLjA4NiwxLjg0NS41NDNhNi4wMzYsNi4wMzYsMCwwLDEsLjczMyw0LjQzNCw0LjUsNC41LDAsMCwxLS40MjEsMS4zMTJjLS4xLjIyLS40NSwxLjEtLjY4MiwxLjE3NEExNC43NTQsMTQuNzU0LDAsMCwwLDI2LjMsMTcuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzBmMjNjM1xcXCIvPjxwYXRoIGQ9XFxcIk0zLjY4Nyw4LjRjLjE3OS0uMTg4LS4wNDEtMS41MjcuMzI0LTEuNTQ4LjI2Mi0uMDE1LjU1MywxLjc0MS42MjcsMS45NjhhOS4yLDkuMiwwLDAsMCwxLjEyNywyLjMyOSw3LjUyOSw3LjUyOSwwLDAsMCw0LjAxNiwyLjk3OCw0LjU1LDQuNTUsMCwwLDAsMi4zNjYuMmMuOTMxLS4yMDgsMS44Mi0uNTc3LDIuNzU3LS43NjUsMS4zNS0uMjcsMy4zNDItLjM1Miw0LjQzOC42NDcuNy42NDEuMzc2Ljc2LjA0MywxLjQyMWEyLjQ0NSwyLjQ0NSwwLDAsMCwuMTc4LDIuNTYyYy4yMzUuMzQyLDEuMDMzLjgyNy42NzUsMS4wOTQtLjU2Ny40MjQtMS4yNzctLjQ1Mi0xLjYzNi0uNzc2LTEuNC0xLjI2NC0yLjcxMS0xLjMxMy00LjQ5Mi0xLjA3NGE4Ljk4Nyw4Ljk4NywwLDAsMS00Ljg4My0uNzA4QTkuNDY5LDkuNDY5LDAsMCwxLDMuNjg3LDguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQxLDMwYTMuNjE1LDMuNjE1LDAsMCwxLTIuMzI1LS44MTdjLjQ2OS0uMDkyLDEuMDIxLjAyNSwxLjUwOC0uMDQ0YTkuNyw5LjcsMCwwLDAsMS43NTQtLjQzQTEwLjUzNywxMC41MzcsMCwwLDAsMjMuOSwyNy4xNTVhNi41NSw2LjU1LDAsMCwwLDIuNzU3LTUuMjE0Yy4xNDktLjA4OC4zMTYsMS4wMzQuMzE5LDEuMDkxYTUuNzg5LDUuNzg5LDAsMCwxLS4xOSwxLjcyNyw2Ljg2Nyw2Ljg2NywwLDAsMS0xLjQyMywyLjc3NEE3LjI4Niw3LjI4NiwwLDAsMSwxOS45NDEsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljk2MiwxOS4xMDlhNS43Niw1Ljc2LDAsMCwxLTIuMDUuODU5LDEzLjM4LDEzLjM4LDAsMCwxLTIuMjI0LjU0OSw4Ljg2MSw4Ljg2MSwwLDAsMS00LjQzNS0uNTEsOS45MzksOS45MzksMCwwLDEtMy44NDktMi40QzYuMDUyLDE3LjI0LDQuMywxNS4xOSw0Ljg1NiwxNC41NTdjLjI0OC0uMjgyLjg3NS44NDYsMSwuOTkyYTUsNSwwLDAsMCwxLjM1NywxLjExLDEwLjkxNywxMC45MTcsMCwwLDAsNC4wMzUsMS40NTYsNi42OTMsNi42OTMsMCwwLDAsMi4zNC0uMDk0LDEyLjc0MywxMi43NDMsMCwwLDEsMS42OTQtLjQ4NSw0LDQsMCwwLDEsMi4xMTMuNDU3QzE3LjczOSwxOC4xNjMsMTguOTE4LDE4LjczNiwxOC45NjIsMTkuMTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4zMTMsMTUuMDc4YTE5LjI3NywxOS4yNzcsMCwwLDEtLjQ1MywzLjc3NGMtLjE3Ni0uMjQyLjAxNi0xLjQ3LDAtMS43OTJhNi4wMzIsNi4wMzIsMCwwLDAtLjM4NC0yLjA4N0E0LjkyNSw0LjkyNSwwLDAsMCwyNi4xLDEzLjMxMmExNC43MjgsMTQuNzI4LDAsMCwxLTEuMjctMS41MzZjLTEuODM3LTIuMzgyLTMuMjQ1LTUuMjExLTIuOS04LjMuMDM0LS4zMDguMDY5LTEuNDQ4LjQxMS0xLjQ0NS4xNTIsMCwuMjY2LDEuNTYxLjI5LDEuNzE4YTEyLjUyNywxMi41MjcsMCwwLDAsMS4yMjQsNC4xMTZjLjY3LDEuMjIyLDEuOTQ3LDIuMDIzLDIuODI1LDMuMUE2LjU3OSw2LjU3OSwwLDAsMSwyOC4zMTMsMTUuMDc4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43LDI2LjkzNWExMC44NDUsMTAuODQ1LDAsMCwwLDYuNDM2LS42ODcsNi45NDEsNi45NDEsMCwwLDAsNC4yNzgtNC40MThjLjMxOS4yLS4wNDgsMS41MjktLjEyOCwxLjc4MWE1LjcyNiw1LjcyNiwwLDAsMS0xLjAxLDEuODEzLDguOTMzLDguOTMzLDAsMCwxLTMuMjU3LDIuNTE0QzIwLjMxNiwyOC43MSwxNi4zNTcsMjkuNTksMTUuNywyNi45MzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5LjE1MSwxOS4zNzZjLjM2NywyLjEwNy0yLjk1NywzLjEyNC00LjQ3OCwzLjIxMy0xLjg1OS4xMS00LjkyOS0uMjkyLTYuMDYtMi4wMzEtLjY3My0xLjAzNS43ODEtLjA5LDEuMTg4LjA1OGE4LjY2Myw4LjY2MywwLDAsMCwzLjA2LjUsMTEuNiwxMS42LDAsMCwwLDMuMzA1LS41LDEzLjcyNSwxMy43MjUsMCwwLDAsMS41MzMtLjU3NkMxOCwxOS45MDgsMTguODIzLDE5LjM0OSwxOS4xNTEsMTkuMzc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xNDIsMjMuNDZjLjQtLjk0NS0xLjg4My0xLjU3OC0yLjQ0NS0xLjg1OGE0Ljg1Nyw0Ljg1NywwLDAsMS0xLjMxNS0uODY3Yy0uMTgxLS4xODEtLjg3Mi0uOTItLjgwNy0xLjIxOWE0LjkxMiw0LjkxMiwwLDAsMSwxLjA4Ny0uMTc1LDUuOTMsNS45MywwLDAsMSwuODU1LjU4OCwxMC4zMjMsMTAuMzIzLDAsMCwwLC45NjQuNUExNS42MTUsMTUuNjE1LDAsMCwwLDI0LjYsMjEuMmMuMzA4LjA5LDEuNTQ5LjIwOCwxLjcyNy40MjhDMjYuMjg3LDIxLjkyNCwyNC4zNTcsMjMuNjQ5LDI0LjE0MiwyMy40NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjYuMSwyMi4xNzJjLjI2NS40My0xLjA4LDEuODMxLTEuMzYzLDIuMTA1YTkuMzQsOS4zNCwwLDAsMS0yLjU2NiwxLjcyOCw3Ljc0OCw3Ljc0OCwwLDAsMS0yLjU2Ljc1M2MtLjY3OS4wNTgtMS45NjYtLjEyNC0yLjE0MS0uOTc5YTYuOTUxLDYuOTUxLDAsMCwxLDEuMTc3LS4wODZjLjQ2Mi0uMDU5LjkyMS0uMTQ5LDEuMzc2LS4yNDZhMTMuMDY1LDEzLjA2NSwwLDAsMCwyLjE4NC0uNjQ1LDExLjUwNiwxMS41MDYsMCwwLDAsMi4wODQtMS4xMSwxMC44NzIsMTAuODcyLDAsMCwwLDEuMDc4LS44MjJDMjUuNDc0LDIyLjc4MSwyNS45ODYsMjIuMTY4LDI2LjEsMjIuMTcyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43NTgsMTEuOTY1Yy0uMS0xLjMwOCwyLjYxMi0xLjMsMy4yNzEtMS4wOTJhNS45NzYsNS45NzYsMCwwLDEsMi45ODIsMi40NzVjLTEuMDgyLjgtMi40NDkuMDk0LTMuMy0uNjU0YTQuMzI0LDQuMzI0LDAsMCwwLTEuNDgxLTEuMDI5QzE5LjQyMSwxMS40LDE5LjQxMiwxMS43NTksMTguNzU4LDExLjk2NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzgzLDEzLjM0MWMtLjQ0NC0uMDI5LS4zMTYuMDcxLS42NDctLjIxMi0uMzU4LS4zMDctLjYxNC0uNzk1LS45NDUtMS4xNDEtLjUzNC0uNTU4LTEuMjQyLS44OTUtMS43MjMtMS40ODVhNy4yNjksNy4yNjksMCwwLDEtMS42MjQtNC44NDhjLjAxOC0xLjQ4OS40MDcuMTg3LjU1MS42NzVhMTIuMjc2LDEyLjI3NiwwLDAsMCwxLjEyNiwyLjcwOCw0Ni4wNTUsNDYuMDU1LDAsMCwwLDMuNCw0LjMyMUMyNS44ODIsMTMuMzYxLDI1LjgyNCwxMy4zMzgsMjUuNzgzLDEzLjM0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjAuMDY4LDE0Ljc1NmMuMDMzLS42MjUtLjkxMS0uNzkyLTEuMjExLTEuNDItLjE2NC0uMzQzLS4yMTEtLjU2OS4wMjktLjcuMDgyLS4wNDUuMzgzLjAxMi41LS4wMi4yNzEtLjA3Ni4zMzUtLjI3My41ODEtLjRBMS4xOTMsMS4xOTMsMCwwLDEsMjEuNiwxMy4yMzcsMS44MjEsMS44MjEsMCwwLDEsMjAuMDY4LDE0Ljc1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjAuNSwxNC43NDVhMS45MzEsMS45MzEsMCwwLDAsMS4zMjMtMS43Yy41MjQuMTM5LjkyOC42NTgsMS41MjEuNzcxYTIuNTg0LDIuNTg0LDAsMCwwLDEuMDI5LS4wMTdjLjIwNy0uMDQ1LjU0LS4yNzQuNzIxLS4yNTktLjAzMy4xNjMtLjQ2NC41NDYtLjU2NS43MTdhNC4yNDIsNC4yNDIsMCwwLDAtLjM4OC45Yy0uMjI5Ljc0MS0uMDYxLjczOS0uNzA5LjMxMWE0LjI4NCw0LjI4NCwwLDAsMC0xLjk1Ny0uNzJDMjEuMjA5LDE0LjcyMiwyMC41OTQsMTQuNzY3LDIwLjUsMTQuNzQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45MDUsMjAuNzM0YTIuMDA4LDIuMDA4LDAsMCwxLTEuNCwxLjcxMmMtLjIwNS4wOTEtMi4wMTguNzMzLTIuMDMyLjM0OC0uMDA3LS4yLDEuNjI0LS45NTQsMS44MDktMS4xMWEzLjM1NSwzLjM1NSwwLDAsMCwuODY3LTEuMDcxYy4wNTUtLjExMi4yMzItLjkyNS4yNzEtLjk0M0MxOS42NDQsMTkuNTY0LDE5LjkwOCwyMC42LDE5LjkwNSwyMC43MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTExLjM3MywxMi41MzJhMTAuNjI1LDEwLjYyNSwwLDAsMSwzLjcxLS45MTQsMTAuMjgyLDEwLjI4MiwwLDAsMSwxLjg2NS4wMjRjLjM2Ni4wMzksMS40NjkuMDU0LDEuNzQuMzQzYS4yNTUuMjU1LDAsMCwxLS4yNzMuMTczYy0uMDM3LjA3Ny4yNTEuMzcxLjMuNDI1LS4wMzQuMDM0LTEuNDQ1LS40LTEuNTcyLS40MjRhMTAuNjMyLDEwLjYzMiwwLDAsMC0yLjI4Mi0uMTM0LDE2LDE2LDAsMCwwLTEuODQxLjE5NEE2LjIyNCw2LjIyNCwwLDAsMSwxMS4zNzMsMTIuNTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MTIsMTAuNzMxYTEuODg4LDEuODg4LDAsMCwxLTEuNTE3LS42Yy0uMjQ3LS4zNDktLjczNy0xLjY5Mi0uMzg1LTIuMDIxLjIwOS0uMi4zODQuNjYyLjQ4NC44NDZBMTAuODIyLDEwLjgyMiwwLDAsMCwyMi41MTIsMTAuNzMxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy43ODgsMTkuMmExOS4yMTIsMTkuMjEyLDAsMCwxLS43NDksMy4zMTNjLS4xNzMtLjA3Ny0uMjc1LS43NzgtLjU2Mi0uOTVhNC4wNyw0LjA3LDAsMCwwLC43Ni0xLjE1NEMyNy4zODksMjAuMTA3LDI3LjU0LDE5LjM2MywyNy43ODgsMTkuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTgxLDExLjg0M2MtLjEzMi4yNjgtLjkzMiwxLjEtMS4xMTguNDgxQzE4Ljc1NiwxMS45NjgsMTkuNzM5LDExLjQ4MywxOS45ODEsMTEuODQzWm0tLjc0Ny40NWMuMjI4LjAwNi4wMTItLjI0OC4wMTItLjI2NkMxOS4yNDUsMTEuOTg0LDE4Ljg3OCwxMi4yOTMsMTkuMjM0LDEyLjI5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi0tXCIsXG5cdFx0XSxcblx0fSxcblx0XCJBTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMyZWE5OGVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMS42MTYsNy45ODZBMS41NTksMS41NTksMCwwLDAsMTAuMTYsN0gxMC4xYTEuNTU4LDEuNTU4LDAsMCwwLTEuNDU2Ljk4NkwyLDI1SDUuODA2bDEuMDE1LTIuODM0aDYuNjIxTDE0LjQ1NywyNWgzLjhaTTcuOTQ0LDE4Ljk1NmwyLjE4OC02LjExMSwyLjE4OCw2LjExNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyZWE5OGVcXFwiLz48cGF0aCBkPVxcXCJNMjMuODI5LDIxLjY3MVY3LjEyOUgyMC4zVjIyLjc0N0EyLjM0NiwyLjM0NiwwLDAsMCwyMi41NywyNUgzMFYyMS42NzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmVhOThlXFxcIi8+XCIsXG5cdH0sXG5cdFwiQU5UTFI0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2U0NGEzMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE0LjE3Nyw3LjI3OGEyLjA4LDIuMDgsMCwwLDEsMy4wNDEtLjhBMy41NzEsMy41NzEsMCwwLDEsMTguMiw4LjAyMmMxLjM1NiwzLjEyMiwyLjksNi4xNjUsNC4xMTksOS4zNDUuNjQ1LDEuNSwxLjQyOSwyLjkzOCwxLjk5NCw0LjQ2OGExLjQ1NSwxLjQ1NSwwLDAsMS0yLjI1OCwxLjM3NmMtMi44LTEuNTcyLTUuNjI4LTMuMDk0LTguMzg1LTQuNzMxLDIuMDA5LjAwOCw0LjAxOC0uMDA4LDYuMDI1LjAxM2ExOS43MDcsMTkuNzA3LDAsMCwwLTEuMjg4LTIuOTE4Yy0uNzgxLTEuODU4LTEuNi0zLjctMi4zNTgtNS41NjVhOS43ODMsOS43ODMsMCwwLDAtMS4wMzIsMi4xMjVjLTEuMywzLjE4Mi0yLjg3LDYuMjQxLTQuMTM2LDkuNDM1LS4yODEuNTktLjQyNCwxLjM0NC0xLjAzNSwxLjY5YTEuNDQ3LDEuNDQ3LDAsMCwxLTIuMDk0LS43MzhjLS4yNDEtLjYxLjE1MS0xLjIuMzgyLTEuNzQzLjc3OS0xLjcyNSwxLjY0NS0zLjQxMywyLjI4My01LjJDMTEuNjUsMTIuOCwxMi45MTYsMTAuMDQxLDE0LjE3Nyw3LjI3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZWZlZmVcXFwiLz48cGF0aCBkPVxcXCJNMTMuODE3LDIuMkExMy45MjMsMTMuOTIzLDAsMCwxLDI5LjUyNiwxMi41NDlhMTMuNzMzLDEzLjczMywwLDAsMS0yLjA4MiwxMS41MTlBMTQuMDc0LDE0LjA3NCwwLDAsMSw3LjczOCwyNy4yOTNhMTMuODUyLDEzLjg1MiwwLDAsMS01LjYxNS05LjQ4M0ExNC4xNTIsMTQuMTUyLDAsMCwxLDMuNDUxLDkuODUsMTMuOTYxLDEzLjk2MSwwLDAsMSwxMy44MTcsMi4ybS4zNTksNS4wOGMtMS4yNjEsMi43NjItMi41MjYsNS41MjUtMy43NjIsOC4zLS42MzgsMS43ODYtMS41LDMuNDczLTIuMjgzLDUuMi0uMjMxLjU0Mi0uNjIzLDEuMTMzLS4zODIsMS43NDNhMS40NDcsMS40NDcsMCwwLDAsMi4wOTQuNzM4Yy42MS0uMzQ3Ljc1My0xLjEsMS4wMzUtMS42OSwxLjI2Ni0zLjE5NCwyLjgzMy02LjI1Myw0LjEzNi05LjQzNWE5Ljc4Myw5Ljc4MywwLDAsMSwxLjAzMi0yLjEyNWMuNzU2LDEuODY4LDEuNTc3LDMuNzA3LDIuMzU4LDUuNTY1YTE5LjcwNywxOS43MDcsMCwwLDEsMS4yODgsMi45MThjLTIuMDA3LS4wMi00LjAxNi0uMDA1LTYuMDI1LS4wMTMsMi43NTcsMS42MzcsNS41ODgsMy4xNTksOC4zODUsNC43MzFhMS40NTUsMS40NTUsMCwwLDAsMi4yNTgtMS4zNzZjLS41NjUtMS41MjktMS4zNDktMi45NzEtMS45OTQtNC40NjgtMS4yMi0zLjE3OS0yLjc2Mi02LjIyMy00LjExOS05LjM0NWEzLjU3MSwzLjU3MSwwLDAsMC0uOTgyLTEuNTQ0QTIuMDgsMi4wOCwwLDAsMCwxNC4xNzcsNy4yNzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTQ0YTMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIjoge1xuXHRcdGNvbG91cjogXCIjYzkyMDM3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNTYwMi42ODJcXFwiIHkxPVxcXCI3NjguNTQxXFxcIiB4Mj1cXFwiLTU1OTguNzI3XFxcIiB5Mj1cXFwiNzYzLjkxN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjQyMywgLTAuOTA2LCAtMC45MDYsIC0wLjQyMywgMzA4Mi44NTMsIC00NzQ4LjU1MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmNjk5MjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzEyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjc5YTIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U5NzgyNlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTU2MzEuOTUyXFxcIiB5MT1cXFwiNzY5LjA1MlxcXCIgeDI9XFxcIi01NjAzLjczN1xcXCIgeTI9XFxcIjc2OS4wNTJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC40MjMsIC0wLjkwNiwgLTAuOTA2LCAtMC40MjMsIDMwODIuODUzLCAtNDc0OC41NTEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjMyM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzllMjA2NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42M1xcXCIgc3RvcC1jb2xvcj1cXFwiI2M5MjAzN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NTFcXFwiIHN0b3AtY29sb3I9XFxcIiNjZDIzMzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlOTc4MjZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi01NjI4LjU0NlxcXCIgeTE9XFxcIjc2Ni4yMjFcXFwiIHgyPVxcXCItNTYxMS43MzNcXFwiIHkyPVxcXCI3NjYuMjIxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuNDIzLCAtMC45MDYsIC0wLjkwNiwgLTAuNDIzLCAzMDgyLjg1MywgLTQ3NDguNTUxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI4MjY2MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wOTVcXFwiIHN0b3AtY29sb3I9XFxcIiM2NjJlOGRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzg4XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWYyMDY0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk0OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NkMjAzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY5LjMxNlxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2OS4zMTZcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiLTU2MjguMzFcXFwiIHkxPVxcXCI3NjguOTMzXFxcIiB4Mj1cXFwiLTU2MTMuNDgyXFxcIiB5Mj1cXFwiNzY4LjkzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjYuMzk0XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY2LjM5NFxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNTYzMi4xMThcXFwiIHkxPVxcXCI3NjYuNTM5XFxcIiB4Mj1cXFwiLTU2MDMuOTAyXFxcIiB5Mj1cXFwiNzY2LjUzOVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjUuNTI2XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY1LjUyNlxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjUuNjI1XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY1LjYyNVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItNTYxNC41MTZcXFwiIHkxPVxcXCI3NjUuNjQ1XFxcIiB4Mj1cXFwiLTU2MDguMjhcXFwiIHkyPVxcXCI3NjUuNjQ1XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2FwYWNoZTwvdGl0bGU+PHBhdGggZD1cXFwiTTE5Ljk5MywyLjEzM2ExMC4yNjcsMTAuMjY3LDAsMCwwLTIuMDQsMi4wNTZsLjgsMS41MWExOS43MzMsMTkuNzMzLDAsMCwxLDEuNzA4LTIuMTQ0Yy4wNDQtLjA0OS4wNjgtLjA3Mi4wNjgtLjA3MmwtLjA2OC4wNzJhMTcuODY1LDE3Ljg2NSwwLDAsMC0xLjYsMi4xNzQsMzAuMSwzMC4xLDAsMCwwLDMuMTExLS4zODUsMy4yODgsMy4yODgsMCwwLDAtLjMtMi41UzIwLjksMS42LDE5Ljk5MywyLjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTguNjM4LDEwLjc0OWwuMDE4LDAtLjExNS4wMTMtLjAyMS4wMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjgyMSwxMy40NTVjLS4wNjYuMDE1LS4xMzIuMDI2LS4yLjAzNkMxNy42ODksMTMuNDgxLDE3Ljc1NiwxMy40NjksMTcuODIxLDEzLjQ1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjcsMTkuNTI0Yy4wMDktLjAyMy4wMTctLjA0NS4wMjUtLjA2OHEuMjY0LS43LjUyMy0xLjM1Ny4yOTEtLjc0MS41NzUtMS40MzYuMy0uNzMzLjU5LTEuNDE4LjMwNS0uNzE4LjYtMS4zODQuMjQtLjU0Mi40NzQtMS4wNDkuMDc4LS4xNjkuMTU1LS4zMzUuMTUzLS4zMjkuMy0uNjQ1LjEzOC0uMjkxLjI3NC0uNTdjLjAzLS4wNjIuMDYtLjEyMy4wOS0uMTg1bC4wMTUtLjAzLS4xLjAxMS0uMDc4LS4xNTRjLS4wMDcuMDE1LS4wMTUuMDMtLjAyMy4wNDVxLS4yMTEuNDE4LS40MTcuODQ1LS4xMTkuMjQ2LS4yMzguNDk1LS4zMjguNjg5LS42NDUsMS4zODlUMTMuNzY2LDE1LjFxLS4zLjctLjU5NCwxLjR0LS41NjcsMS4zODdxLS4yODkuNzItLjU2MiwxLjQyNi0uMDYyLjE1OS0uMTIzLjMxOC0uMjE5LjU2OS0uNDI2LDEuMTI0bC4xMjMuMjQzLjExLS4wMTIuMDEyLS4wMzNRMTIuMDA4LDIwLjIxNiwxMi4yNywxOS41MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMwNSwxNC44MThsLS4zMTUuMDU1aDBsLjE2MS0uMDI1QzE3LjIsMTQuODM5LDE3LjI1MywxNC44MjksMTcuMzA1LDE0LjgxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuMzA1LDE0LjgxOGwtLjMxNS4wNTVoMGwuMTYxLS4wMjVDMTcuMiwxNC44MzksMTcuMjUzLDE0LjgyOSwxNy4zMDUsMTQuODE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NzMsMTMuNWgwbC4wNS0uMDA3Yy4wNjgtLjAxLjEzNS0uMDIyLjItLjAzNmwtLjI0OC4wNDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MywxMy41aDBsLjA1LS4wMDdjLjA2OC0uMDEuMTM1LS4wMjIuMi0uMDM2bC0uMjQ4LjA0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTYuMzk0LDkuNnEuMzY1LS42ODIuNzM5LTEuMzMyLjM4OC0uNjc0Ljc4NC0xLjMwNWwuMDQ2LS4wNzVxLjM5Mi0uNjIuNzktMS4xOTFsLS44LTEuNTEtLjE4Mi4yMjVjLS4yMzEuMjg4LS40Ny42LS43MTYuOTI1LS4yNzcuMzctLjU2Mi43NjQtLjg1MSwxLjE3OS0uMjY3LjM4My0uNTM4Ljc4NC0uODA5LDEuMi0uMjMxLjM1My0uNDYyLjcxNy0uNjkyLDEuMDlsLS4wMjYuMDQyTDE1LjcxOCwxMC45UTE2LjA1MiwxMC4yNDQsMTYuMzk0LDkuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjUxLDIxLjE5MnEtLjIwNy41NjgtLjQxNSwxLjE1OWwtLjAwNi4wMTctLjA1OS4xNjdjLS4wOTMuMjY2LS4xNzUuNS0uMzYxLDEuMDQ5YTIuMTA3LDIuMTA3LDAsMCwxLC43ODYuOTI2LDEuNjgsMS42OCwwLDAsMC0uNTQ0LTEuMTU0LDMuNjIxLDMuNjIxLDAsMCwwLDMuNDg5LTEuNDIsMi43OTEsMi43OTEsMCwwLDAsLjE2NS0uMzEzLDEuNDUxLDEuNDUxLDAsMCwxLTEuNC41MTNsMCwwLDAsMGE0LjA1OSw0LjA1OSwwLDAsMCwyLjA0Ni0xLjY3MmMuMTExLS4xNzguMjE4LS4zNzIuMzI4LS41ODdhMy4zLDMuMywwLDAsMS0zLjEwOSwxLjAxbC0uODQyLjA5MkMxMS43LDIxLjA1LDExLjY3NywyMS4xMjEsMTEuNjUxLDIxLjE5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDQ0LDE5LjMwNnEuMjczLS43MDYuNTYyLTEuNDI2LjI3Ni0uNjkuNTY3LTEuMzg3dC41OTQtMS40cS4zMDgtLjcxMS42MjktMS40MTl0LjY0NS0xLjM4OXEuMTE4LS4yNDguMjM4LS40OTUuMjA3LS40MjYuNDE3LS44NDVjLjAwNy0uMDE1LjAxNS0uMDMuMDIzLS4wNDVMMTQuNjc3LDguODQ3bC0uMDUxLjA4M2MtLjI0Mi40LS40ODQuOC0uNzIxLDEuMjE2cy0uNDc1Ljg0NC0uNywxLjI3NnEtLjI5MS41NDctLjU2OCwxLjFsLS4xMS4yMjVjLS4yMjcuNDY3LS40MzIuOTE4LS42MTcsMS4zNTJxLS4zMTUuNzM3LS41NTYsMS40MDZjLS4xMDcuMjkzLS4yLjU3Ni0uMjkyLjg0Ny0uMDczLjIzMi0uMTQyLjQ2NC0uMjA4LjdxLS4yMzQuODE4LS40LDEuNjMxTDExLjUsMjAuNzQ4cS4yMDgtLjU1NC40MjYtMS4xMjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQzNSwxOC43NTVhMTYuMDcsMTYuMDcsMCwwLDAtLjI3MiwxLjk3NGMwLC4wMjMsMCwuMDQ2LS4wMDUuMDY5YTQuMTUsNC4xNSwwLDAsMC0xLjItMS4wMjksNS44MjUsNS44MjUsMCwwLDEsMS4xNzIsMi42OTMsMi42NDIsMi42NDIsMCwwLDEtMS4zMjUtLjIyNiwyLjY2MiwyLjY2MiwwLDAsMCwxLjEzLjY4NiwzLjI0NywzLjI0NywwLDAsMC0xLjU3MS43ODMsMy4zNTksMy4zNTksMCwwLDEsMS44NjEtLjM0MkM5LjUxLDI1LjM4OSw4Ljc5MywyNy42MjYsOC4wNzYsMzBhLjYyNS42MjUsMCwwLDAsLjQyNS0uNDEzYy4xMjgtLjQzLjk3Ni0zLjI1MSwyLjMwNi02Ljk1OWwuMTE1LS4zMTguMDMyLS4wODlxLjIxMS0uNTgzLjQzNy0xLjE5bC4xLS4yNzcsMC0uMDA1TDEwLjQ1LDE4LjY4NEMxMC40NDUsMTguNzA3LDEwLjQzOSwxOC43MzEsMTAuNDM1LDE4Ljc1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTUuODgsMTEuMDc4bC0uMDkuMTg1cS0uMTM1LjI3OS0uMjc0LjU3LS4xNS4zMTUtLjMuNjQ1Yy0uMDUyLjExMS0uMS4yMjItLjE1NS4zMzVxLS4yMzQuNTA4LS40NzQsMS4wNDktLjMuNjY2LS42LDEuMzg0LS4yOTEuNjg1LS41OSwxLjQxOC0uMjg0LjctLjU3NSwxLjQzNi0uMjU5LjY2MS0uNTIzLDEuMzU3Yy0uMDA5LjAyMy0uMDE3LjA0NS0uMDI1LjA2OHEtLjI2Mi42OTMtLjUyOSwxLjQyMmwtLjAxMi4wMzMuODQyLS4wOTItLjA1LS4wMDlhNiw2LDAsMCwwLDMuMjEtMS44MDcsNy45ODQsNy45ODQsMCwwLDAsMS4xLTEuNTI0LDEzLjEzOSwxMy4xMzksMCwwLDAsLjcwNi0xLjQ2N2MuMTk1LS40NzIuMzgyLS45ODIuNTYyLTEuNTM2YTMuMDUzLDMuMDUzLDAsMCwxLS43ODguMjc0Yy0uMDUxLjAxMS0uMS4wMjEtLjE1Ni4wM3MtLjEwNy4wMTgtLjE2MS4wMjVoMGEzLjY2OCwzLjY2OCwwLDAsMCwxLjk2Mi0xLjkxMywzLjM0NCwzLjM0NCwwLDAsMS0xLjEzLjQ5NWMtLjA2Ni4wMTUtLjEzMi4wMjYtLjIuMDM2bC0uMDUuMDA3aDBhMy44MjEsMy44MjEsMCwwLDAsLjgzOS0uNDY5Yy4wNTEtLjAzOC4xLS4wNzguMTQ4LS4xMi4wNzMtLjA2My4xNDItLjEyOS4yMDgtLjIuMDQyLS4wNDQuMDgzLS4wOS4xMjMtLjEzOGEzLjI3LDMuMjcsMCwwLDAsLjI2My0uMzYyYy4wMjUtLjA0LjA1LS4wOC4wNzQtLjEyMi4wMzEtLjA2LjA2MS0uMTE5LjA5LS4xNzguMTMxLS4yNjQuMjM2LS41LjMxOS0uNzA2LjA0Mi0uMS4wNzgtLjIuMTA5LS4yODguMDEzLS4wMzUuMDI1LS4wNy4wMzYtLjEuMDMzLS4xLjA2LS4xODcuMDgxLS4yNjVhMi42MDUsMi42MDUsMCwwLDAsLjA2Mi0uMjc1aDBhMS4wMSwxLjAxLDAsMCwxLS4xMDkuMDc1LDMuOTY1LDMuOTY1LDAsMCwxLTEuMTYyLjRsLjc3My0uMDg1LS43NzMuMDg1LS4wMTgsMC0uMTE5LjAxOS4wMjEtLjAwOS0yLjY0NS4yOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMTguODU4LDUuNzNjLS4yMzUuMzYxLS40OTIuNzcxLS43NjgsMS4yMzZsLS4wNDQuMDc0cS0uMzU4LjYtLjc1OSwxLjMyNy0uMzQ2LjYyNi0uNzE5LDEuMzQ3LS4zMjYuNjI5LS42NzIsMS4zMzZsMi42NDUtLjI5QTMuMjE2LDMuMjE2LDAsMCwwLDE5Ljk5LDkuNjJjLjA4OS0uMTI4LjE3OC0uMjYyLjI2Ny0uNC4yNzItLjQyNC41MzgtLjg5MS43NzYtMS4zNTVhMTQuMDc0LDE0LjA3NCwwLDAsMCwuNTg4LTEuMjk0LDYuOCw2LjgsMCwwLDAsLjIzMy0uN2MuMDQ4LS4xODQuMDg2LS4zNTguMTE1LS41MjRBMzAuMTUyLDMwLjE1MiwwLDAsMSwxOC44NTgsNS43M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMTcuMTQ5LDE0Ljg0OGMtLjA1My4wMDktLjEwNy4wMTgtLjE2MS4wMjVoMEMxNy4wNDIsMTQuODY2LDE3LjEsMTQuODU3LDE3LjE0OSwxNC44NDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjE0OSwxNC44NDhjLS4wNTMuMDA5LS4xMDcuMDE4LS4xNjEuMDI1aDBDMTcuMDQyLDE0Ljg2NiwxNy4xLDE0Ljg1NywxNy4xNDksMTQuODQ4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4xNDksMTQuODQ4Yy0uMDUzLjAwOS0uMTA3LjAxOC0uMTYxLjAyNWgwQzE3LjA0MiwxNC44NjYsMTcuMSwxNC44NTcsMTcuMTQ5LDE0Ljg0OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcsMTMuNWwuMDUtLjAwNy0uMDUuMDA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NywxMy41bC4wNS0uMDA3LS4wNS4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVsLjA1LS4wMDctLjA1LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz5cIixcblx0fSxcblx0XCJBcGV4XCI6IHtcblx0XHRjb2xvdXI6IFwiIzBmOWJkN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEzLjY1Miw4LjMzOEE0LjkwNiw0LjkwNiwwLDAsMSwxNy4yLDYuODE0YTQuOTU3LDQuOTU3LDAsMCwxLDQuMzIsMi41Niw1Ljk3Miw1Ljk3MiwwLDAsMSwyLjQ0Mi0uNTE5LDYuMDg5LDYuMDg5LDAsMSwxLTEuMTg5LDEyLjA2LDQuNDEyLDQuNDEyLDAsMCwxLTUuNzgyLDEuODE2QTUuMDM0LDUuMDM0LDAsMCwxLDcuNjM0LDIyLjVhNC42NDYsNC42NDYsMCwwLDEtLjk2LjEsNC43MzIsNC43MzIsMCwwLDEtMi4zMzctOC44MTIsNS40MzgsNS40MzgsMCwwLDEsOS4zMTUtNS40NTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjliZDdcXFwiLz48cGF0aCBkPVxcXCJNMjUuMzc2LDMwLjk2NmgtLjU2MWE0LjY1OCw0LjY1OCwwLDAsMS0xLjI4NC0uMTM3LDEuOSwxLjksMCwwLDEtLjgxOC0uNDgyLDEuNzI2LDEuNzI2LDAsMCwxLS40NTUtLjg0Myw2Ljc3LDYuNzcsMCwwLDEtLjEwNi0xLjQxMyw1Ljg4OSw1Ljg4OSwwLDAsMC0uMDg0LTEuMzMsMSwxLDAsMCwwLS4zLS41NDQsMS4yMjMsMS4yMjMsMCwwLDAtLjY2LS4xNzlsLS4yMzYtLjAxNFYyNC4xNDVsLjIzNi0uMDE0YTEuNDgyLDEuNDgyLDAsMCwwLC41NDktLjEuNzA2LjcwNiwwLDAsMCwuMjczLS4yNjQsMS4zOTQsMS4zOTQsMCwwLDAsLjE4MS0uNTI5LDYuNjgzLDYuNjgzLDAsMCwwLC4wNDQtLjkzOSw4LjEzMiw4LjEzMiwwLDAsMSwuMTEyLTEuNjQzLDEuNywxLjcsMCwwLDEsLjQ0OC0uODQxLDIuMTQ0LDIuMTQ0LDAsMCwxLC45MDYtLjQ5Miw0LjUxNCw0LjUxNCwwLDAsMSwxLjItLjExNmguNTYxdjEuOWgtLjI1YTIuNTg5LDIuNTg5LDAsMCwwLS43NDMuMDU2LjI4NC4yODQsMCwwLDAtLjE0OC4xMTcuODM5LjgzOSwwLDAsMC0uMDU0LjM4NnEwLC4zNzItLjA1MywxLjQxM2EzLjc0LDMuNzQsMCwwLDEtLjE2NiwxLjAwOSwxLjk0NSwxLjk0NSwwLDAsMS0uNjkzLDEsMi4wMSwyLjAxLDAsMCwxLC43LDEuMDQ0LDQuNjI3LDQuNjI3LDAsMCwxLC4xNjMsMS4wNzljLjAyNy42NTcuMDQxLDEuMDc0LjA0MSwxLjI1NmEuODcxLjg3MSwwLDAsMCwuMDU3LjQwOEEuMzQzLjM0MywwLDAsMCwyNC40LDI5YTIuMzgyLDIuMzgyLDAsMCwwLC43MjguMDZoLjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4xMTgsMjUuNzg4VjI0LjM4MmExLjc1MiwxLjc1MiwwLDAsMCwuNjQ1LS4xMjkuOTM2LjkzNiwwLDAsMCwuMzc1LS4zNTQsMS42MjEsMS42MjEsMCwwLDAsLjIxNy0uNjI0QTYuODgsNi44OCwwLDAsMCwyMi40LDIyLjNhOCw4LDAsMCwxLC4xMDUtMS41ODUsMS40NTYsMS40NTYsMCwwLDEsLjM4MS0uNzIxLDEuOSwxLjksMCwwLDEsLjgtLjQzMSw0LjMzNiw0LjMzNiwwLDAsMSwxLjEyNS0uMTA1aC4zMTF2MS40YTIuODc2LDIuODc2LDAsMCwwLS44MzUuMDczLjUzLjUzLDAsMCwwLS4yNzIuMjIzLDEuMDc5LDEuMDc5LDAsMCwwLS4wODguNTEzcTAsLjM2OS0uMDUzLDEuNGEzLjUzMSwzLjUzMSwwLDAsMS0uMTUyLjk0LDEuOTE4LDEuOTE4LDAsMCwxLS4zMTMuNTk1LDIuNDcsMi40NywwLDAsMS0uNTgzLjQ4NiwyLjA0NSwyLjA0NSwwLDAsMSwuNTY1LjQ2NiwxLjg2OSwxLjg2OSwwLDAsMSwuMzM3LjY0Nyw0LjQxLDQuNDEsMCwwLDEsLjE1MiwxLjAycS4wNDEuOTczLjA0MSwxLjI0MmExLjEsMS4xLDAsMCwwLC4wOTQuNTM5LjU4NC41ODQsMCwwLDAsLjI4NC4yMzEsMi42NDksMi42NDksMCwwLDAsLjgyMy4wNzl2MS40MDZoLS4zMTFBNC40NzQsNC40NzQsMCwwLDEsMjMuNiwzMC41OWExLjY0NCwxLjY0NCwwLDAsMS0uNzEyLS40MTksMS40NzgsMS40NzgsMCwwLDEtLjM5LS43MjQsNi42MjEsNi42MjEsMCwwLDEtLjEtMS4zNTYsNi4zNzQsNi4zNzQsMCwwLDAtLjA5NC0xLjQsMS4yMzIsMS4yMzIsMCwwLDAtLjM5LS42NzFBMS40MzEsMS40MzEsMCwwLDAsMjEuMTE4LDI1Ljc4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDcyYTBcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDExLDMwLjk2NkgyNi40NVYyOS4wNTloLjI1QTIuMzI5LDIuMzI5LDAsMCwwLDI3LjQyNiwyOWEuMzIzLjMyMywwLDAsMCwuMTY1LS4xMjcuODEyLjgxMiwwLDAsMCwuMDU4LS4zNzlxMC0uMzYuMDUtMS4zNzVhMy43MjUsMy43MjUsMCwwLDEsLjE3My0xLjA0NywyLjIyMywyLjIyMywwLDAsMSwuMzg3LS43LDIuMTQ1LDIuMTQ1LDAsMCwxLC4zLS4yOTIsMi4xNDEsMi4xNDEsMCwwLDEtLjQtLjQsMi42MTIsMi42MTIsMCwwLDEtLjQyMS0xLjA5MiwxNy41MjUsMTcuNTI1LDAsMCwxLS4xLTEuODQxLDEuMzU3LDEuMzU3LDAsMCwwLS4wNTMtLjQ3OWMtLjAwOC0uMDE2LS4wMzEtLjA2Mi0uMTM2LS4xMDZhMi41MjQsMi41MjQsMCwwLDAtLjc1Ny0uMDZoLS4yNVYxOS4yaC41NjFhNC43OTMsNC43OTMsMCwwLDEsMS4yODMuMTMzLDEuODQxLDEuODQxLDAsMCwxLC44MTguNDg1LDEuNzgxLDEuNzgxLDAsMCwxLC40NTMuODQzLDYuNiw2LjYsMCwwLDEsLjEwOSwxLjQxNCw2LjM1OSw2LjM1OSwwLDAsMCwuMDc5LDEuMzM2Ljk5Mi45OTIsMCwwLDAsLjMuNTM3LDEuMjI2LDEuMjI2LDAsMCwwLC42NjQuMThsLjIzNi4wMTR2MS44NzlsLS4yMzYuMDE0YTEuNDgyLDEuNDgyLDAsMCwwLS41NDkuMS42ODYuNjg2LDAsMCwwLS4yNy4yNjIsMS40ODQsMS40ODQsMCwwLDAtLjE4Ni41MzQsNi43NDMsNi43NDMsMCwwLDAtLjA0My45MzEsOC4zODMsOC4zODMsMCwwLDEtLjEwOCwxLjY0NCwxLjY5NCwxLjY5NCwwLDAsMS0uNDQ2Ljg0NiwyLjE0MywyLjE0MywwLDAsMS0uOTEzLjQ5MkE0LjUsNC41LDAsMCwxLDI3LjAxMSwzMC45NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTMwLjcwOCwyNS43ODhhMS43NTIsMS43NTIsMCwwLDAtLjY0NS4xMjkuOTE4LjkxOCwwLDAsMC0uMzcyLjM1NCwxLjcyNSwxLjcyNSwwLDAsMC0uMjIuNjI0LDYuODIsNi44MiwwLDAsMC0uMDQ3Ljk3Myw4LjI3LDguMjcsMCwwLDEtLjEsMS41ODgsMS40MzksMS40MzksMCwwLDEtLjM3OC43MjQsMS45LDEuOSwwLDAsMS0uODA5LjQzMSw0LjMzNiw0LjMzNiwwLDAsMS0xLjEyNS4xMDVIMjYuN1YyOS4zMWEyLjY1MiwyLjY1MiwwLDAsMCwuODItLjA3OUEuNTcyLjU3MiwwLDAsMCwyNy44LDI5LDEuMDUsMS4wNSwwLDAsMCwyNy45LDI4LjVxMC0uMzU3LjA1LTEuMzY1YTMuNTMsMy41MywwLDAsMSwuMTU4LS45NzYsMS45NzYsMS45NzYsMCwwLDEsLjM0My0uNjIxQTIuMDM4LDIuMDM4LDAsMCwxLDI5LDI1LjA4NWEyLjQxNiwyLjQxNiwwLDAsMS0uNjMzLS41NTEsMi4zMzksMi4zMzksMCwwLDEtLjM3NS0uOTg0LDE3LjU2NCwxNy41NjQsMCwwLDEtLjA5NC0xLjgsMS41NzEsMS41NzEsMCwwLDAtLjA3OS0uNTg2LjQ4Ny40ODcsMCwwLDAtLjI2NC0uMjI2LDIuOCwyLjgsMCwwLDAtLjg1My0uMDc5di0xLjRoLjMxMWE0LjU3Niw0LjU3NiwwLDAsMSwxLjIxMy4xMjMsMS41ODcsMS41ODcsMCwwLDEsLjcwOS40MTksMS41MjksMS41MjksMCwwLDEsLjM5LjcyNyw2LjQzNiw2LjQzNiwwLDAsMSwuMSwxLjM1Niw2Ljg0Miw2Ljg0MiwwLDAsMCwuMDg4LDEuNCwxLjIyMywxLjIyMywwLDAsMCwuMzkzLjY3MSwxLjQ0NywxLjQ0NywwLDAsMCwuOC4yMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3MmEwXFxcIi8+XCIsXG5cdH0sXG5cdFwiQVBMXCI6IHtcblx0XHRjb2xvdXI6IFwiI2QyZDJkMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTMwLDI4LjI3NSwxNiwyLDIsMjguMjc1SDE0LjE2MlYzMGgzLjY3NlYyOC4yNzVaTTE3LjgzOCwyNC44MjZWMTMuMTYxbDYuMjE1LDExLjY2NVptLTkuODkxLDAsNi4yMTUtMTEuNjY1VjI0LjgyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIlx1MjM1RFwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiQXBwbGVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjYThjMmFiXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTcuMTgxLDQuNDM3QTUuOTkzLDUuOTkzLDAsMCwxLDIxLjU3OSwyYTUuOTc5LDUuOTc5LDAsMCwxLTEuNDQ3LDQuNDc2LDQuNzI5LDQuNzI5LDAsMCwxLTQuMTcsMS45NjFBNS4yLDUuMiwwLDAsMSwxNy4xODEsNC40MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIsMTAuMDM0Yy45NDYsMCwyLjctMS4zLDQuOTg5LTEuM2E2LjI0OSw2LjI0OSwwLDAsMSw1LjQ4NCwyLjgsNi4wOCw2LjA4LDAsMCwwLTMuMDI4LDUuMyw2LjIzNSw2LjIzNSwwLDAsMCwzLjc3Miw1LjdzLTIuNjM3LDcuNDIyLTYuMiw3LjQyMmMtMS42MzYsMC0yLjkwOC0xLjEtNC42MzEtMS4xLTEuNzU3LDAtMy41LDEuMTQ0LTQuNjM1LDEuMTQ0QzguNywzMCw0LjU4NywyMi45NTksNC41ODcsMTcuM2MwLTUuNTY4LDMuNDc4LTguNDg5LDYuNzQtOC40ODlDMTMuNDQ4LDguODExLDE1LjA5MywxMC4wMzQsMTYuMiwxMC4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJBcmR1aW5vXCI6IHtcblx0XHRjb2xvdXI6IFwiIzJkOTA5NFwiLFxuXHRcdGljb246IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiNzY3LjE3OVxcXCIgY3k9XFxcIjUxNjkuNTQzXFxcIiByPVxcXCIxNC45ODlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTcxOC4xMTIgLTQ5NTMuOTE3KSBzY2FsZSgwLjk1NSAwLjk2MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMzNmJhYzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyZDkwOTRcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2FyZHVpbm88L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOS42NDUsMTUuOTI1QTEzLjc3LDEzLjc3LDAsMSwxLDE1Ljg3NiwyLjA1NiwxMy44MTksMTMuODE5LDAsMCwxLDI5LjY0NSwxNS45MjVaXFxcIiBzdHlsZT1cXFwic3Ryb2tlOiMwMjc5N2U7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjEzNjcyMjg0NTQ5NjkyNjdweDtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTgxLDExLjY0OGMyLjQxLS4wNzYsMy4zNTkuODM0LDQuNjA1LDIuMDY5LjI4NS4yODIuNTc5LjU5LjkuOTIxbC45MjItLjk5MWE2LjIyMyw2LjIyMywwLDAsMSwzLjI1Ni0xLjkzYzEuOTM5LS4yMTEsMy4xMTktLjEyMiw0LjMxMS44MTRhNS4wMjMsNS4wMjMsMCwwLDEsMi4yNDUsMy45LDUuNjUzLDUuNjUzLDAsMCwxLTMuMjUsNS4xNTYsNS45NzUsNS45NzUsMCwwLDEtMy45MTMuMTM1LDcuNjU2LDcuNjU2LDAsMCwxLTMuNTQxLTIuOTg3Yy0xLjY3OCwyLjE0Mi0zLjE4NywzLjI1My01LjIzNSwzLjE1NS03LjQ1Mi0uMzU0LTYuODQyLTEwLjA3NS0uMy0xMC4yNDdabTEuNjU3LDcuOTk0YTkuMTkzLDkuMTkzLDAsMCwwLDIuODU2LTIuOWMtLjc0LTEuMjQzLTIuMjA5LTIuODI0LTMuNDU1LTMuMTM0YTQuMzI4LDQuMzI4LDAsMCwwLTMuMjI0Ljc3NywzLjM4NCwzLjM4NCwwLDAsMC0uNzYyLDMuNjg2LDMuNjc0LDMuNjc0LDAsMCwwLDQuNTg1LDEuNTdabS0yLjk4LTMuNDg3LDMuMjc4LjAwNXYxLjIxbC0zLjI4My4wMDVabTEzLjQ0OCwzLjZBMy44NDMsMy44NDMsMCwwLDAsMjQuOTM3LDE3YTMuNDU4LDMuNDU4LDAsMCwwLTEuODYzLTMuMTA5LDMuNjQ4LDMuNjQ4LDAsMCwwLTQuMi43MjgsNy4zNjQsNy4zNjQsMCwwLDAtMS42NDksMi4xNTFBOC45MzYsOC45MzYsMCwwLDAsMTkuMiwxOS4yNTIsNC4wMjIsNC4wMjIsMCwwLDAsMjIuNzA2LDE5Ljc1NFptLTEuOTU1LTIuMzc2LTEuMDg4LS4wMDgsMC0xLjIxNywxLjA5MSwwVjE1LjA3NWwxLjEwNy0uMDA4LS4wMDcsMS4wOTMsMS4wODUsMHYxLjE2NWwtMS4wMjEtLjAwOHYxLjEySDIwLjc1M1pcXFwiIHN0eWxlPVxcXCJzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MC4xMjEwMzA5NjQ4MDkyNzQ4MnB4O29wYWNpdHk6MC4xNjgwOTk5OTk0Mjc3OTU0O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTQuOTE3LDE2LjMzN2MwLDUuMzQ4LDcuMzU0LDcuMzQsMTAuOTg3LDEuODk0LDMuNzY1LDUuNjQ3LDEwLjgyNCwzLjI4LDEwLjgyNC0xLjlTMTkuNyw4LjY1NiwxNS45LDE0LjQ0MWMtMy42LTUuNzE5LTEwLjk4Ny0zLjQ1My0xMC45ODcsMS45Wm0xLjkzMSwwYzAtMy44Niw1LjQ1NS01LjA3OCw3Ljk5MiwwLTIuNTg4LDQuODg5LTcuOTkyLDMuODU5LTcuOTkyLDBabTEwLjExOSwwYzIuMjg2LTUuMTc4LDcuODg5LTMuNzUxLDcuODcyLjAwOFMxOS4xODYsMjEuMjc3LDE2Ljk2NywxNi4zMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDowLjI0MjA2MTkyOTYxODU0OTY0cHhcXFwiLz48cmVjdCB4PVxcXCI4Ljg5OFxcXCIgeT1cXFwiMTUuNzk1XFxcIiB3aWR0aD1cXFwiMy4yMzdcXFwiIGhlaWdodD1cXFwiMS4wNjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjY0NCAxNi44NDYgMTkuNTc2IDE2Ljg0NiAxOS41NzYgMTUuNzEyIDIwLjY0NCAxNS43MTIgMjAuNjQ0IDE0LjY0NCAyMS43NzkgMTQuNjQ0IDIxLjc3OSAxNS43MTIgMjIuODQ3IDE1LjcxMiAyMi44NDcgMTYuODQ2IDIxLjc3OSAxNi44NDYgMjEuNzc5IDE3LjkxNCAyMC42NDQgMTcuOTE0IDIwLjY0NCAxNi44NDZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJBUk0gQXNzZW1ibHlcIjoge1xuXHRcdGNvbG91cjogXCIjMDAwMGJmXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI4MzYuNjNcXFwiIHkxPVxcXCIzNi4yMDVcXFwiIHgyPVxcXCI4NDMuODAyXFxcIiB5Mj1cXFwiMTQuNDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNTI1LjkyMiAzMC4yNDkpIHJvdGF0ZSgxODApIHNjYWxlKDAuNjA3IDAuNjA3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMjc1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hc3NlbWJseTwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDJjLTEuMjQ2LDMuMDU2LTIsNS4wNTctMy4zOTEsOC4wMjJBMjEuODg0LDIxLjg4NCwwLDAsMCwxNi4yLDEzLjE1NmExNC44NTgsMTQuODU4LDAsMCwxLTQtMi4yODNDMTAuNDMsMTQuNTc5LDcuNjQ2LDE5Ljg1NSwyLDMwYzUuMTg2LTIuOTk0LDkuMDEyLTQuNjQ4LDEyLjY5MS00Ljk2NlYyNC4yaC0uODM0di0uODM3aC44MzRWMjQuMmgxLjY3NVYyMi41MjFIMTQuNjkxdi0uODM0aC0uODM0VjIwLjAxM2guODM0di0uODM0aDEuNjc1di44MzRIMTcuMnYuODM3aC0uODM3di0uODM3SDE0LjY5MXYxLjY3NWgxLjY3NXYuODM0SDE3LjJWMjQuMmgtLjgzN3YuNzgzYzMuOTguMSw4LjAwNiwxLjc3MiwxMy42MzQsNS4wMjEtLjg2My0xLjU4OS0xLjYzNi0zLjAyMS0yLjM3Mi00LjM4NWEyNS41MjYsMjUuNTI2LDAsMCwwLTQuODMzLTMuMzMzQTE0LjQzNiwxNC40MzYsMCwwLDEsMjYuNjUsMjMuOEMxOS4xNyw5Ljg3MiwxOC41NjUsOC4wMiwxNiwyWk0xMC41MTEsMTkuMTc5aDEuNjcxdi44MzRoLjgzN3Y1LjAyMWgtLjgzN1YyMi41MjFIMTAuNTExdjIuNTEySDkuNjczVjIwLjAxM2guODM3Wm0wLC44MzR2MS42NzVoMS42NzFWMjAuMDEzWm03LjUyNi0uODM0aC44Mzd2LjgzNGguODM3di44MzdoLjgzNHYtLjgzN2guODM3di0uODM0aC44Mzd2NS44NTVoLS44MzdWMjAuODVoLS44Mzd2LjgzN2gtLjgzNFYyMC44NWgtLjgzN3Y0LjE4NGgtLjgzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwYmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuODgxLDE4LjY0MmMtNi4wNjktOC4yMzctNy40NzYtMTQuODc2LTcuODMyLTE2LjQ2MUExNzUuMjE3LDE3NS4yMTcsMCwwLDAsMjMuODgxLDE4LjY0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjAuMTY1NjgwNDY4MDgyNDI4XFxcIi8+PHBhdGggZD1cXFwiTTE2LjA1MSwyLjEyLDE1LjYsMy4yMjdjLS4xNTkuMzkxLS4zMTEuNzY1LS40NjEsMS4xMzFzLS4zLjcyNC0uNDQ4LDEuMDc3LS4zLjctLjQ0OCwxLjA1My0uMy43MDYtLjQ2NSwxLjA2Ni0uMzI5LjcyOS0uNTA2LDEuMTExLS4zNjIuNzc4LS41NjEsMS4xOTNjLS4wMjguMDU3LS4wNjEuMTIzLS4wODkuMTgxQTIxLjg3MiwyMS44NzIsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODc5LDE0Ljg3OSwwLDAsMS0zLjk4OS0yLjI3NmwtLjE0LjI4N2MtLjA2NS4xMzMtLjE0NC4yODMtLjIxMi40MmwtLjEwNi4yMTljLS44NzgsMS43OTMtMi4wMDYsMy45ODQtMy41MjQsNi44MjIsMy41NTEtMiw3LjM4MS00Ljg4NywxNC4zMzgtMi40LS4zNDktLjY2MS0uNjctMS4yOC0uOTcxLTEuODYzcy0uNTgxLTEuMTI4LS44NDEtMS42NDQtLjUtMS0uNzI1LTEuNDYzLS40MzMtLjktLjYyOS0xLjMxMy0uMzgtLjgxOC0uNTU0LTEuMi0uMzM5LS43NTQtLjUtMS4xMThTMTguMDQ3LDYuOSwxNy45LDYuNTQ2cy0uMjkxLS43MDktLjQzNC0xLjA2NmMtLjAzNi0uMDkxLS4wNzMtLjE4Ni0uMTA5LS4yNzdDMTYuOTQ5LDQuMjQ3LDE2LjUzNiwzLjI1OCwxNi4wNTEsMi4xMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0fSxcblx0XCJBc2NpaURvY1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNlNDAwNDZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0zMCwzMEgyVjJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTQwMDQ2XFxcIi8+PHBhdGggZD1cXFwiTTIzLjczMSwyNC44M2EuNTg5LjU4OSwwLDAsMS0uNzYzLS4zMzdMMTYuNzI0LDkuMjY5LDEzLjkzLDE1Ljk5aDEuODMzYS41OS41OSwwLDAsMS0uMDI0LDEuMThIOC45YS41OS41OSwwLDAsMSwuMDI0LTEuMThoMy43MjdsMC0uMDEzTDE2LjE4NCw3LjVhLjU5MS41OTEsMCwwLDEsLjUzMy0uMzYzaDBhLjU5Mi41OTIsMCwwLDEsLjU1Ny4zNjZsNi43ODUsMTYuNTQ2LjAwOS4wMjFBLjU5LjU5LDAsMCwxLDIzLjczMSwyNC44M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTQuNTE2LDE4Ljc5MUg3LjY3OWEuNTkuNTksMCwwLDAtLjAyNCwxLjE4SDExTDkuMzA5LDI0LjA0M2EuNTkuNTksMCwwLDAsMS4wODUuNDY0bDAtLjAxMSwxLjg3NS00LjUwOS4wMDUtLjAxNmgyLjIxNWEuNTkuNTksMCwwLDAsLjAyMy0xLjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkFTUC5ORVQgKEMjKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzM2E5ZGNcIixcblx0XHRpY29uOiBcIjx0aXRsZT5maWxlX3R5cGVfYXNweDwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi43NSAyIDYuMzUgMiA2LjM1IDMwIDI5LjY1IDMwIDI5LjY1IDkgMjIuNzUgMlxcXCIgc3R5bGU9XFxcImZpbGw6I2M1YzVjNVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMzUgMjcuNyA4Ljc1IDI3LjcgOC43NSA0LjMgMjAuNDUgNC4zIDIwLjQ1IDExLjMgMjcuNDUgMTEuMyAyNy40NSAyNy43IDI3LjM1IDI3LjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWY1ZjVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMSwzMC45OTRBMTEuMDk0LDExLjA5NCwwLDEsMSwyMy4xOTQsMTkuOSwxMS4xMDYsMTEuMTA2LDAsMCwxLDEyLjEsMzAuOTk0Wm0wLTIwLjNBOS4yLDkuMiwwLDEsMCwyMS4zLDE5LjksOS4yMTYsOS4yMTYsMCwwLDAsMTIuMSwxMC43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkY1xcXCIvPjxyZWN0IHg9XFxcIjIuMDk5XFxcIiB5PVxcXCIxOS40NTVcXFwiIHdpZHRoPVxcXCIyMC4wMDNcXFwiIGhlaWdodD1cXFwiMC44OVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4zMjUsMTUuNzYzYTMxLjkzLDMxLjkzLDAsMCwxLTguNDg0LTEuMTFsLjI0Mi0uODA3YTMxLjM3NCwzMS4zNzQsMCwwLDAsMTUuOTkyLDBsLjIzOS44MDdBMjguMDc2LDI4LjA3NiwwLDAsMSwxMi4zMjUsMTUuNzYzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxwYXRoIGQ9XFxcIk00LjEsMjUuNzI0bC0uMjM5LS44MDdhMzEuNjUyLDMxLjY1MiwwLDAsMSwxNi40NzIsMGwtLjI0Mi44MDdBMzEuMzgsMzEuMzgsMCwwLDAsNC4xLDI1LjcyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNOC41MzYsMjkuMDU1QTI1LjQzOCwyNS40MzgsMCwwLDEsOCwxMC42MDhsLjc3Ni4zMzFhMjQuNTU4LDI0LjU1OCwwLDAsMCwuNTMzLDE3Ljc4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNMTUuNiwyOS4wNTVsLS43NzYtLjMzM2EyNC41NTksMjQuNTU5LDAsMCwwLC41MzEtMTcuNzgzbC43NzYtLjMzMUEyNS40NDMsMjUuNDQzLDAsMCwxLDE1LjYsMjkuMDU1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxyZWN0IHg9XFxcIjExLjY1NVxcXCIgeT1cXFwiOS44OThcXFwiIHdpZHRoPVxcXCIwLjg4OVxcXCIgaGVpZ2h0PVxcXCIyMC4zNzFcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz5cIixcblx0fSxcblx0XCJBdXRvSG90a2V5XCI6IHtcblx0XHRjb2xvdXI6IFwiI2Q4ZDhkOFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiNTQuNjA0XFxcIiB5MT1cXFwiMTY4LjM4OFxcXCIgeDI9XFxcIjU0LjYwNFxcXCIgeTI9XFxcIjE5NC44ODVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTM4LjYwNCAtMTY1LjYzNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkOGQ4ZDhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhM2EzYTNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjY4Ljc1NlxcXCIgeTE9XFxcIjIwOS4xNTJcXFwiIHgyPVxcXCI5MS42MzhcXFwiIHkyPVxcXCIyMDkuMTUyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC01MC42MDEgLTE1OS40NDkpIHNjYWxlKDAuODMyIDAuODM3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q3ZDdkN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTdlN2U3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDdkN2Q3XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hdXRvaG90a2V5PC90aXRsZT48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyLjgyNFxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI2LjM1M1xcXCIgcng9XFxcIjMuMDg4XFxcIiByeT1cXFwiMy4wODhcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjYuODU2LDI5LjE4MUg1LjE0NEEzLjE0OCwzLjE0OCwwLDAsMSwyLDI2LjAzN1Y1Ljk2M0EzLjE0OCwzLjE0OCwwLDAsMSw1LjE0NCwyLjgxOUgyNi44NTZBMy4xNDgsMy4xNDgsMCwwLDEsMzAsNS45NjNWMjYuMDM3QTMuMTQ4LDMuMTQ4LDAsMCwxLDI2Ljg1NiwyOS4xODFaTTUuMTQ0LDIuOTYzYTMsMywwLDAsMC0zLDNoMFYyNi4wMzdhMywzLDAsMCwwLDMsM0gyNi44NTZhMywzLDAsMCwwLDMtM1Y1Ljk2M2EzLDMsMCwwLDAtMy0zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkOGQ4ZFxcXCIvPjxyZWN0IHg9XFxcIjQuMzEzXFxcIiB5PVxcXCI0LjY0MVxcXCIgd2lkdGg9XFxcIjIzLjE2OVxcXCIgaGVpZ2h0PVxcXCIyMS45NFxcXCIgcng9XFxcIjIuNTcxXFxcIiByeT1cXFwiMi41NzFcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjQuOTExLDI2LjY0MUg2Ljg4NEEyLjYzNCwyLjYzNCwwLDAsMSw0LjI1MywyNC4wMVY3LjIxMkEyLjYzNCwyLjYzNCwwLDAsMSw2Ljg4NCw0LjU4MUgyNC45MTFhMi42MzQsMi42MzQsMCwwLDEsMi42MzEsMi42MzF2MTYuOEEyLjYzNCwyLjYzNCwwLDAsMSwyNC45MTEsMjYuNjQxWk02Ljg4NCw0LjdBMi41MTQsMi41MTQsMCwwLDAsNC4zNzMsNy4yMTJ2MTYuOGEyLjUxNCwyLjUxNCwwLDAsMCwyLjUxMSwyLjUxMUgyNC45MTFhMi41MTQsMi41MTQsMCwwLDAsMi41MTEtMi41MTFWNy4yMTJBMi41MTQsMi41MTQsMCwwLDAsMjQuOTExLDQuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmOGY4ZjhcXFwiLz48cGF0aCBkPVxcXCJNNi4xNDUsMjMuOWwyLjM0My02LjFoLjg3bDIuNSw2LjFoLS45MmwtLjcxMi0xLjg0OEg3LjY3M0w3LDIzLjlaTTcuOSwyMS40SDkuOTc0bC0uNjM3LTEuN3EtLjI5MS0uNzctLjQzMy0xLjI2NUE3Ljc3Niw3Ljc3NiwwLDAsMSw4LjU3NiwxOS42WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMy42MDcsMjMuOVYxNy44aC44MDd2Mi41aDMuMTcxVjE3LjhoLjgwN3Y2LjFoLS44MDdWMjEuMDIxaC0zLjE3VjIzLjlaXFxcIi8+PHBhdGggZD1cXFwiTTIwLjQ3OCwyMy45VjE3LjhoLjgwN3YzLjAyNWwzLjAzLTMuMDI1aDEuMDk0TDIyLjg1LDIwLjI2NywyNS41MjIsMjMuOUgyNC40NTZsLTIuMTcyLTMuMDg4LTEsLjk3NFYyMy45WlxcXCIvPlwiLFxuXHR9LFxuXHRcIkF1dG9JdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM1ZDgzYWNcIixcblx0XHRpY29uOiBcIjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjEyLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6IzVkODNhY1xcXCIvPjxwYXRoIGQ9XFxcIk0yLDE2QTE0LDE0LDAsMSwxLDE2LDMwLDE0LDE0LDAsMCwxLDIsMTZaTTE2LDQuNzg5QTExLjIxMSwxMS4yMTEsMCwxLDAsMjcuMjExLDE2LDExLjIxMSwxMS4yMTEsMCwwLDAsMTYsNC43ODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjBmMGYwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjU3NiwyMC4xNTZsLTYuNC05LjI2NGEzLjEzMSwzLjEzMSwwLDAsMC0uODE5LS44MTksMi4zNiwyLjM2LDAsMCwwLTIuNDQyLjAyMywzLjU0MywzLjU0MywwLDAsMC0uODEyLjhMNy41MzMsMjAuMTU2aDMuNzUybDQuODA4LTYuOCwxLjgzOCwyLjcxcS4yNi4zNjguNTQ0Ljc4OXQuNS43cS0uMzY4LS4wMzEtLjg2NS0uMDMxaC0zLjUzbC0xLjkxNCwyLjYzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMGYwZjBcXFwiLz5cIixcblx0fSxcblx0XCJBdnJvIElETFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDQwZmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDExLjY0OWguMDI1YTQuNzg1LDQuNzg1LDAsMCwwLDIuOTExLDEuMzM2YzIuMzA4LjIyMSw0LjU5LS40ODUsNi45LS4zMjZhNy4wMyw3LjAzLDAsMCwxLDIuNjguNjY0Yy41LS4zMTkuOTg5LS42NjIsMS40ODYtLjk4OS41LjMyNy45ODQuNjc0LDEuNDg4Ljk4OWE2LjgzNCw2LjgzNCwwLDAsMSwyLjQ4Ny0uNjVjMS45OTUtLjE2NywzLjk2Ny4zMDgsNS45NTcuMzU5YTUuMiw1LjIsMCwwLDAsNC4wMjYtMS4zODNIMzB2LjIzNmMtLjE3OC43NDctLjg4MiwxLjE3Ni0xLjI4NCwxLjc5YTQuOTQ4LDQuOTQ4LDAsMCwxLS43MzEuNzkxLDMuOCwzLjgsMCwwLDEtLjU2NS43NDgsMi41NTEsMi41NTEsMCwwLDAtLjU5NC41NDEsMi4xODEsMi4xODEsMCwwLDEtLjk2Ljc0OSwxLjE0OSwxLjE0OSwwLDAsMS0uNTY1LjU2LDYuNjksNi42OSwwLDAsMS0xLjk0LjE4NGMuNzIzLjU0OCwxLjUsMS4wMiwyLjI0NiwxLjUzNS43ODIuNTEzLDEuNTQsMS4wNjEsMi4zMjYsMS41NjhINC4wODljMS41LTEuMDU4LDMuMDU3LTIuMDM1LDQuNTUtMy4xQTYuOCw2LjgsMCwwLDEsNi43LDE3LjA2NWExLjE1NSwxLjE1NSwwLDAsMS0uNTY5LS41NjIsMi4yOCwyLjI4LDAsMCwxLTEuMDQzLS44NmMtLjI2OC0uMy0uNjctLjQ2Ni0uODUzLS44NDMtLjItLjQzNi0uNjU4LS42NjQtLjkwOS0xLjA2Ny0uNC0uNjQyLTEuMTM3LTEuMDc2LTEuMzI3LTEuODQ2di0uMjM5bTIuOTM5LDguNTI4cTExLjA1OS4wMDksMjIuMTIsMGMtMy42NjgtMi41MS03LjM3Ni00Ljk2MS0xMS4wNTktNy40NDgtMy42ODQsMi40ODctNy4zOTIsNC45NDEtMTEuMDYxLDcuNDQ5TTQuMTY3LDEzLjJhNy44NDIsNy44NDIsMCwwLDAsMi44NC43MzFjMS4xNjMuMTIzLDIuMzQxLjA0NiwzLjUuMjM2YTIuNywyLjcsMCwwLDEsMS42MDcuNzgxYy42NTktLjQ1MiwxLjMzMi0uODg1LDEuOTg3LTEuMzQybC4wMTItLjA2NGE1LjI5NCw1LjI5NCwwLDAsMC0xLjg3Ny0uNWMtMi42OTMtLjMxNi01LjM4Ny43MTItOC4wNjcuMTZtMTMuNjUyLjM1NmMuNjg4LjQ2NiwxLjM4Mi45MjUsMi4wNywxLjM5MmEyLjQ4OCwyLjQ4OCwwLDAsMSwxLjMtLjcxOSwxOS44NTksMTkuODU5LDAsMCwxLDMuMTM3LS4yNDgsOS4xMDUsOS4xMDUsMCwwLDAsMy41LS43NjhjLTIuNTgyLjUtNS4xNjgtLjQwOS03Ljc2MS0uMmE2LjI1Niw2LjI1NiwwLDAsMC0yLjI0NS41NDVNMy4zMzksMTMuMTY2YTcuMjY0LDcuMjY0LDAsMCwwLDIuNzIzLDEuM2MtLjIxOS0uMTUzLS4zNzYtLjQxNi0uNjU3LS40NTdhNy45NTUsNy45NTUsMCwwLDEtMi4wNjYtLjg0NG0yMy4zMzMuODI1Yy0uMzE3LjAyMy0uNS4zLS43MzMuNDczYTcuMjMyLDcuMjMyLDAsMCwwLDIuNzI0LTEuMyw4LjEwNiw4LjEwNiwwLDAsMS0xLjk5MS44MjRtLTIyLjUuMTI2YTUuMTIxLDUuMTIxLDAsMCwwLDIuNTg5LDEuMWMtLjExNS0uMTI4LS4yMDktLjMxMi0uNC0uMzM0YTEwLjQ1OSwxMC40NTksMCwwLDEtMi4xOS0uNzcxbTIxLjQ2Ny43NjhjLS4xODkuMDIyLS4yODQuMi0uMzk0LjMzNmE1LjE4Nyw1LjE4NywwLDAsMCwyLjYtMS4xMDksMTAuNDc3LDEwLjQ3NywwLDAsMS0yLjIuNzczTTYuMywxNC4yMDZhMy4yNDMsMy4yNDMsMCwwLDAsMi40NDUuMzUyYy0uMS0uMDgtLjE4MS0uMjE1LS4zMjUtLjIwNnEtMS4wNjMtLjA0LTIuMTItLjE0Nm0xNy4zNTEuMTM5Yy0uMTcxLS4wMTktLjI5MS4xLS40MDYuMjExYTMuMTA4LDMuMTA4LDAsMCwwLDIuNDItLjM1MnEtMSwuMTEyLTIuMDE0LjE0MW0tMTYuNzQxLjUzOGEzLjY2OSwzLjY2OSwwLDAsMCwyLjQ4Mi4zMTksMS4xMDcsMS4xMDcsMCwwLDAtLjI4MS0uMzc2LDUuMTU4LDUuMTU4LDAsMCwxLTIuMi4wNTdtMTUuNy4zMThhMy42NzgsMy42NzgsMCwwLDAsMi40ODctLjMxOSw1LjEyNyw1LjEyNywwLDAsMS0yLjItLjA1NywxLjEsMS4xLDAsMCwwLS4yODMuMzc2TTQuODM4LDE0Ljk3N2E0LjExLDQuMTEsMCwwLDAsMi4xMzMuODQxYy0uMDU3LS4wODQtLjExNC0uMTY4LS4xNzEtLjI1NGE2Ljk0OCw2Ljk0OCwwLDAsMS0xLjk2Mi0uNTg3bTIwLjM2MS41ODktLjE2OS4yNTNhNC4xNDEsNC4xNDEsMCwwLDAsMi4xMzYtLjg0Myw3LjAxNSw3LjAxNSwwLDAsMS0xLjk2Ny41OW0tMTguMS0uMTNhLjguOCwwLDAsMCwuNTM0LjMxLDcuNTc5LDcuNTc5LDAsMCwwLDIuMDM3LS4wNzNjLS4wMDktLjAzLS4wMjctLjA5LS4wMzYtLjEyLS40NTctLjA1MS0uOTIzLjA3NC0xLjM4NS4wNDdBNy4wNTQsNy4wNTQsMCwwLDEsNy4xLDE1LjQzN20xNi4xOTEuMTUxYTYuMjgsNi4yOCwwLDAsMC0uOTEzLS4wNDFsLS4wNDIuMTI2YTcuNDE2LDcuNDE2LDAsMCwwLDIuMDQ1LjA3Mi43LjcsMCwwLDAsLjUyMi0uMzMxLDQuMzQ5LDQuMzQ5LDAsMCwxLTEuNjEzLjE3NG0tMTcuNTIuMzI3YTMuMTIsMy4xMiwwLDAsMCwxLjc1NC40ODFjLS4wNjUtLjI0LS4zMzQtLjItLjUyMy0uMjM2LS40MTktLjA0MS0uODE2LS4xODYtMS4yMzEtLjI0Nk0yNSwxNi4xNjNjLS4xODguMDQxLS40NTItLjAwNi0uNTIxLjIzMmEyLjg3NCwyLjg3NCwwLDAsMCwxLjczMi0uNDgyYy0uNC4wNzktLjguMjA3LTEuMjExLjI1MU03LjczNSwxNi4xMTlhMSwxLDAsMCwwLC43ODkuMjc1LDkuMzMxLDkuMzMxLDAsMCwwLDEuMzI1LS4xNThjLS4wMjEtLjA5My0uMDA5LS4yNzgtLjE2My0uMjI4YTkuOTgzLDkuOTgzLDAsMCwxLTEuOTUxLjExMW0xNC40MTUuMTE4YTguMTU3LDguMTU3LDAsMCwwLDEuNDEyLjE1NC45LjksMCwwLDAsLjctLjI3NCw5LjM4Nyw5LjM4NywwLDAsMS0xLjkzNC0uMTFjLS4xNi0uMDYtLjE1NS4xMzItLjE3Ni4yM20tMTUuNDM4LjQ0YTEuOTYyLDEuOTYyLDAsMCwwLDEuMy4xODFsLS4wOTEtLjEyNmMtLjQuMDA2LS44MDctLjAyMi0xLjIwOS0uMDU1bTEuNjE1LjA0M2ExLjAzLDEuMDMsMCwwLDAsLjcxNi4yOTRjLjE3OS0uMTI1LjM1OC0uMjUyLjUzMS0uMzg2YTUuNzQ3LDUuNzQ3LDAsMCwxLTEuMjQ3LjA5Mm0xNC4xLS4wOTNjLjIzNy4xNDQuNDY3LjQ3Ny43ODIuMzQ1LjE2Ni0uMDUuMzY5LS4wODkuNDYxLS4yNTdhNS4yNzEsNS4yNzEsMCwwLDEtMS4yNDMtLjA4OG0xLjcxMy4yNjNhMi4wMDcsMi4wMDcsMCwwLDAsMS4xNDUtLjIxMywxMC4yNjksMTAuMjY5LDAsMCwxLTEuMTQ0LjA0OUMyMy45OTMsMTYuNjY3LDIzLjk4NCwxNi45NjEsMjQuMTM4LDE2Ljg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDBmZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjQzNSwxOC44ODZRMTEuNzE5LDE2LjAxMywxNiwxMy4xMzdsOS4zLDYuMjQ0Yy4yMjEuMTQ3LjQzOS4zLjY0OC40NjRxLTkuOTQ3LS4wMS0xOS44OTQsMGMuNDQzLS4zNDQuOTItLjY0LDEuMzgzLS45NThtOC4yNTUtNS4wNjZjLS40NTcsMS44NTktLjkwNywzLjcxOS0xLjM3NSw1LjU3Ni41Mi4wMTUsMS4wNDEuMDEyLDEuNTYyLDBxLS4wMTMtMi44NDEsMC01LjY4bC0uMTg0LjFtLTIuNSwxLjY4NGMuMjU1Ljg1OS40OCwxLjcyOC43NjMsMi41NzkuMjg5LTEuMjM4LjYtMi40NzEuOS0zLjcwNy0uNTUuMzg2LTEuMTE0Ljc1LTEuNjY4LDEuMTI5bTMuMzU3LS44NzNjLS4wMDYuNjgyLDAsMS4zNjQsMCwyLjA0NmEyLjEsMi4xLDAsMCwwLDEuMDE0LS4yNTRjLjE5My0uMTQ1LjEtLjQwOS4wMTEtLjU4NmE0LjI3Niw0LjI3NiwwLDAsMC0xLjAyNC0xLjIwN00xOC4zMjcsMTYuNGMtLjEuNTQ0LS42NjYuNzkyLTEuMTUxLjkuNDc0LjcuOTYsMS4zODksMS40MTYsMi4xLjQ2OS4wMjQuOTQuMDExLDEuNDExLjAwOWExLjYzMSwxLjYzMSwwLDAsMSwuMTYtMi45NzZjLS44MzQtLjYtMS43LTEuMTQtMi41NDQtMS43MjcuMzQ5LjUuODMxLDEuMDM3LjcwOCwxLjdtLTYuODIyLjI0MmMuMjY3LjkyMS41MjksMS44NDUuNzk0LDIuNzY3LjQ0LDAsLjg4LjAwOCwxLjMyMS0uMDA3LS4zMzktMS4xNjEtLjY4NS0yLjMxOS0xLjAwOS0zLjQ4NC0uMzg1LjIxNS0uNzM3LjQ4Mi0xLjEuNzI0bTguOC40NTJhLjk0Ni45NDYsMCwwLDAsLjA1NywxLjdjLjUzMy4wOS44NTUtLjUzMy43NzktLjk5LS4wMjYtLjQtLjQtLjg2MS0uODM2LS43MTRNNy40LDE5LjRxMS4zMjQuMDE4LDIuNjUsMGMuMjU2LS43LjQxMy0xLjQ2OC42MjktMi4yLTEuMS43MTUtMi4xODcsMS40NjEtMy4yNzksMi4xOTRtMTQuMzc3LTEuOWExLjYxNiwxLjYxNiwwLDAsMS0uODc2LDEuOWMxLjIzMy4wMTgsMi40NjUuMDE1LDMuNywwLS45MzQtLjY0NC0xLjg4My0xLjI2Ni0yLjgyMi0xLjltLTUuMjIzLjExNWMtLjAxLjYsMCwxLjIsMCwxLjguNDE1LDAsLjgzMSwwLDEuMjQ4LDAtLjQxOS0uNi0uOC0xLjIxOS0xLjI0My0xLjc5NG0tNS41NDYuOTQxaC4zNDZjLS4wNTUtLjE4Ny0uMTA4LS4zNzYtLjE2Ni0uNTYyYTMuNzUxLDMuNzUxLDAsMCwwLS4xODEuNTYzbS0uMTguNjkzYy0uMDE1LjA0LS4wNDUuMTE5LS4wNjEuMTU5LjI3NS0uMDI2LjU5LjA3MS44NDItLjA1QzExLjQ1MywxOS4xMTIsMTEuMDc0LDE5LjI3NSwxMC44MjYsMTkuMjQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDBmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkFXS1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNkMmQyZDJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNi45MjUsMjcuNzM3QzIzLjQzMSwyNi4xLDI0LjYwNiwxNC41ODgsMTMuODEsOC4zMTksMTQuMDg5LDUuNzkyLDE0Ljc1OC0uNSw3Ljk2MSwzLDYuODQ1LDMuMTI4LDQuOTA3LDIuMzMxLDQsNC44MzF2LjExNEMxNi45MTgsMy45LjA4OCwxMC41MywxNi43NSwyNS44NDRjLS4zNzMuMTc2LS42NzQtLjMyNS0xLjk3LjFsLS4wMTQuMDE2Yy0xLjcyMiwxLjEzNSwxLjkzMy43NjgsNC4xNTQsMS4yNzQtMS42MTEuNDE3LTUuNTk0LTEuMTM3LTYuMywxLjY0NS44NzctLjM3LDEsLjMyOSwxLjA3NiwxLjA3N0EyNi4yNzcsMjYuMjc3LDAsMCwxLDIyLjM3OSwyNy41YzEuMS4yODUsNC4xMTgsMi4wNDksNS4xMjIuNTUxQzI3LjUxOSwyNy45MywyNy4yMjEsMjcuODc2LDI2LjkyNSwyNy43MzdaXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQ0NiwyLjk3bC0uMTIxLjA4OGEuMjY2LjI2NiwwLDAsMC0uMDExLjM3Ny4yMTEuMjExLDAsMCwwLC4wNDUuMDM5LjQxNi40MTYsMCwwLDAsLjUyMS0uMDYzLjI2My4yNjMsMCwwLDAsLjA3OC0uMzY0bC0uMDEtLjAxNGMtLjA3Ni0uMTQzLS4xNjMtLjE3Ny0uMzQtLjEyN0MxMC41NTMsMi45MjUsMTAuNSwyLjk0NiwxMC40NDYsMi45N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTgsMjYuMzY4Yy4xNTEtLjA0MS4zMTgtLjgyOC4xNzQtLjk0OUE2LjI5LDYuMjksMCwwLDAsMTkuNCwyNi40ODVjMS4wMjMsMS4wMDcsMi42NjUtLjAzMiwzLjQ4Mi43NTlhMTAuNzM2LDEwLjczNiwwLDAsMCwxLjk1NywxLjAyN2MtLjEzOS0uMTUxLS4wMjktLjE0NC4xNzktLjAxMS0uMTMtLjMzOC00LjQyMS01LjE1Ni01LjIyNi03LjE4LjA5NS4yOTMtMS42MDgtLjgyNC0yLjA3Ni0xLjQxOS0uMDI4LjA1Ni0uMDkyLS4yNTEtLjIyOC0uNDM0LS4wNDEuMDUtLjItLjQzMy0uMy0uNzI4LjAzNy4xODctLjQ2Mi0uNS0uNjUtLjgxOC0uMDU2LjA5LS43MTkuMzcyLS44MDkuMjg2LS43MjktLjQsMi41MjksNC4wNjYuMTIyLDIuNTU5LjY3Ni42ODMuNjE0LjQtMS4wOTUtLjg1Mi4zNjQuNDUyLS4zMTcuMzEyLTEuNTUzLTEuNTIzLjE4Ni4yLS4yMTgtLjU3Ni0uMjE4LS41NzZhMi42OTIsMi42OTIsMCwwLDAtLjEzMy0uNDgzYy0uMDU2LS4zMi0uMjQxLS43MjMtLjEyLS42NS0xLjQ0NC0xLjU1NiwxLjMxNC0zLjMuNzE5LTMuNjcxLS4xMTEsMC0uMDI3LjAxNy0uMTUxLS4xMDYtLjA5LDAtLjQ2OC4yODUtLjU4Ny0uMjM0LjAwNi4xMzItLjAzNC40MDYtLjE1My0uMS0uMDIzLjA1Mi4wMTUuMS0uMDMuMTQ1LS4yMjUtLjU3Ni0uNzcyLTEuNi0xLjIxNy0yLjUzOS0uMTU4LjE1NS0uMTM4LS4wNzYtLjE5My0xLjA5Mi4wNTMuMTQ0LS4yMjUsMS45MjEtLjIuMTMtLjEyOC4wMDcuMTA4LDEuMjU4LS4zNDMuMjEtLjE0MS4wNS0uMzA1LS4zNjMtLjM0MS0xLjE3OC0uMDQ4LjYyMy0uMjkuMTg3LS41LS45MjMtLjI2OS41MDgtMS42LDEuNzQzLS4zMzMsNy42MjItLjA1My0uMzEzLjE4Ni4zNDEuNzU1LDIuNDI3LjAyMS0uMDM5LS4wMjItLjA4My4wMzgtLjEzMWE2LjMyNCw2LjMyNCwwLDAsMCwuNjc3LDEuMzY1Yy41NDQuNjU4Ljk5NSwyLjA3NC44LDEuMjc3YTExLjg2NywxMS44NjcsMCwwLDAsMi41NTQsMy4yNDlBMzQuNDIzLDM0LjQyMywwLDAsMCwxOCwyNi4zNjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTEwLjgyMywyLjU1N2EuMjkxLjI5MSwwLDAsMC0uMDUxLS4wMjJjLS4yMjEtLjA0LS40MjkuMTUzLS42NTQuMDMyLS4xNDUuMDg1LS4yNTctLjAzNi0uMzc1LS4wNzNhLjIyNC4yMjQsMCwwLDAtLjIuMDE0LDUuODIzLDUuODIzLDAsMCwwLS44MTQuNTgyLDEuMDM3LDEuMDM3LDAsMCwwLS4yNzMuNDQ5Yy0uMDIxLjA0OC0uMDM3LjEyNi4wNS4xMzdhMi4zLDIuMywwLDAsMCwuNjgyLjA0NWMuMTc3LS4wMjguMjc3LS4xNTIuNDE4LS4yMjFhMS4yLDEuMiwwLDAsMCwuNTkyLS42OGMuMDY0LS4xNzUuMTYxLS4xNjcuMjgtLjJTMTAuNywyLjYyLDEwLjgyMywyLjU1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTAuMzI1LDMuMDU4bC4xMjEtLjA4OGEuMTE3LjExNywwLDAsMSwuMTIuMDY0Yy4wNDQuMS4xMDYuMTEyLjE5My4wNDcuMDMzLS4wMjUuMDcxLS4wNTguMTE4LS4wMjdhLjExOS4xMTksMCwwLDEsLjA0MS4xMjguMjc2LjI3NiwwLDAsMS0uMTg3LjI0OC4yNjYuMjY2LDAsMCwxLS4zLS4wM0MxMC4zNDEsMy4zMDgsMTAuMjYsMy4yLDEwLjMyNSwzLjA1OFpcXFwiLz5cIixcblx0fSxcblx0XCJCYXRjaFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkOWI0MDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuMDc3IDE5LjMxNiA1LjUyMiAxOC40ODQgMTAuMzY2IDE1LjI1NSA1LjQ3OSAxMS4xODQgNi4xMiAxMC40MTYgMTIuMDM1IDE1LjM0NCA2LjA3NyAxOS4zMTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIxMi43XFxcIiB5PVxcXCIxOC4yXFxcIiB3aWR0aD1cXFwiNy44XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiQyNcIjoge1xuXHRcdGNvbG91cjogXCIjMzY4ODMyXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX2NzaGFycDwvdGl0bGU+PHBhdGggZD1cXFwiTTE5Ljc5Miw3LjA3MWgyLjU1M1Y5LjYyNEgyNC45VjcuMDcxaDIuNTUyVjkuNjI0SDMwdjIuNTUyaC0yLjU1djIuNTUxSDMwVjE3LjI4SDI3LjQ0OXYyLjU1MkgyNC45di0yLjU1bC0yLjU1LDAsMCwyLjU1MkgxOS43OTN2LTIuNTVsLTIuNTUzLDBWMTQuNzI1aDIuNTUzVjEyLjE3OUgxNy4yNFY5LjYyMmgyLjU1NFptMi41NTMsNy42NThIMjQuOVYxMi4xNzZIMjIuMzQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzM2ODgzMlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC42ODksMjQuMDEzYTEwLjIsMTAuMiwwLDAsMS00LjY1My45MTUsNy42LDcuNiwwLDAsMS01Ljg5LTIuMzM2QTguODM5LDguODM5LDAsMCwxLDIsMTYuMzY3LDkuNDM2LDkuNDM2LDAsMCwxLDQuNDEyLDkuNjQ4YTguMTgxLDguMTgxLDAsMCwxLDYuMjU5LTIuNTc3LDExLjEsMTEuMSwwLDAsMSw0LjAxOC42Mzh2My43NDVhNi44MSw2LjgxLDAsMCwwLTMuNzIzLTEuMDM2LDQuNzkzLDQuNzkzLDAsMCwwLTMuNywxLjUyOSw1Ljg3OSw1Ljg3OSwwLDAsMC0xLjQwNyw0LjE0Miw1Ljc3NCw1Ljc3NCwwLDAsMCwxLjMyOCwzLjk5Miw0LjU1MSw0LjU1MSwwLDAsMCwzLjU3NSwxLjQ4Nyw3LjI4OCw3LjI4OCwwLDAsMCwzLjkyNy0xLjEwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNjg4MzJcXFwiLz5cIixcblx0fSxcblx0XCJDXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNWY5MVwiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9jPC90aXRsZT48cGF0aCBkPVxcXCJNMTAuNjc2LDE1Ljk3M2ExMC4wNTIsMTAuMDUyLDAsMCwwLDEuMTc1LDUuMTUxLDUuNDQ2LDUuNDQ2LDAsMCwwLDYuMzA2LDIuNDA4LDQuMjg0LDQuMjg0LDAsMCwwLDMuMDktMy42Yy4xMDctLjYuMTA5LS42MS4xMDktLjYxLDEuNzM3LjI1MSw0LjUzNy42NTgsNi4yNzQuOTA2bC0uMTEuNDRhMTEuMjU2LDExLjI1NiwwLDAsMS0yLjcsNS4zOSw5LjQzOSw5LjQzOSwwLDAsMS01LjM2NiwyLjY4OCwxNC42MSwxNC42MSwwLDAsMS04LjI3Ny0uODE5QTEwLjE1MSwxMC4xNTEsMCwwLDEsNS40LDIxLjY4N2ExNi4yMjUsMTYuMjI1LDAsMCwxLC4wMTktMTEuNDUsMTAuNTM4LDEwLjUzOCwwLDAsMSw4Ljk2My03LjA1NCwxMy4zNTMsMTMuMzUzLDAsMCwxLDYuNjY2LjU1NSw5LjU3MSw5LjU3MSwwLDAsMSw2LjE2Nyw2LjljLjA5NC4zNTIuMTE0LjQxNy4xMTQuNDE3LTEuOTMyLjM1MS00LjMxOS44LTYuMjM4LDEuMjE1LS4zNjItMS45MTUtMS4yNjUtMy40MjgtMy4yLTMuOWE1LjI2Myw1LjI2MywwLDAsMC02LjYxNiwzLjU3LDEwLjQ5LDEwLjQ5LDAsMCwwLS4zODUsMS40MzlBMTIuMzEsMTIuMzEsMCwwLDAsMTAuNjc2LDE1Ljk3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDVmOTFcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJDKytcIjoge1xuXHRcdGNvbG91cjogXCIjOTg0YzkzXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX2NwcDwvdGl0bGU+PHBhdGggZD1cXFwiTTE0Ljc0MiwyNC4wNDdhMTAuMjQyLDEwLjI0MiwwLDAsMS00LjY3My45MTlBNy42MjgsNy42MjgsMCwwLDEsNC4xNTUsMjIuNjIsOC44NzYsOC44NzYsMCwwLDEsMiwxNi4zNjksOS40NzYsOS40NzYsMCwwLDEsNC40MjIsOS42MjFhOC4yMTYsOC4yMTYsMCwwLDEsNi4yODUtMi41ODgsMTEuMTUxLDExLjE1MSwwLDAsMSw0LjAzNS42NDF2My43NjFBNi44MzksNi44MzksMCwwLDAsMTEsMTAuMzk1LDQuODEzLDQuODEzLDAsMCwwLDcuMjg4LDExLjkzYTUuOSw1LjksMCwwLDAtMS40MTMsNC4xNTlBNS44LDUuOCwwLDAsMCw3LjIwOSwyMC4xYTQuNTcsNC41NywwLDAsMCwzLjU5LDEuNDkzLDcuMzE5LDcuMzE5LDAsMCwwLDMuOTQzLTEuMTEzWlxcXCIgc3R5bGU9XFxcImZpbGw6Izk4NGM5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTcuMTEyIDE0LjgyOSAxNy4xMTIgMTIuNDg1IDE5LjQ1NiAxMi40ODUgMTkuNDU2IDE0LjgyOSAyMS44IDE0LjgyOSAyMS44IDE3LjE3MiAxOS40NTYgMTcuMTcyIDE5LjQ1NiAxOS41MTUgMTcuMTEyIDE5LjUxNSAxNy4xMTIgMTcuMTcyIDE0Ljc3IDE3LjE3MiAxNC43NyAxNC44MjggMTcuMTEyIDE0LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6Izk4NGM5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjUuMzEzIDE0LjgyOSAyNS4zMTMgMTIuNDg1IDI3LjY1NyAxMi40ODUgMjcuNjU3IDE0LjgyOSAzMCAxNC44MjkgMzAgMTcuMTcyIDI3LjY1NyAxNy4xNzIgMjcuNjU3IDE5LjUxNSAyNS4zMTMgMTkuNTE1IDI1LjMxMyAxNy4xNzIgMjIuOTcxIDE3LjE3MiAyMi45NzEgMTQuODI4IDI1LjMxMyAxNC44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJDbG9qdXJlXCI6IHtcblx0XHRjb2xvdXI6IFwiIzkxZGM0N1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LDJBMTQsMTQsMCwxLDAsMzAsMTYsMTQuMDE2LDE0LjAxNiwwLDAsMCwxNiwyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjQ4OCwxNi4yNTJjLS4xMjYuMjczLS4yNjUuNTc5LS40MDguOUEyMi45NjMsMjIuOTYzLDAsMCwwLDEzLjgsMjAuNjA1YTUuMTgxLDUuMTgxLDAsMCwwLS4xMTksMS4xNTVjMCwuMTc0LjAwOS4zNTYuMDI0LjU0MmE2LjY1OCw2LjY1OCwwLDAsMCw0LjQxMy4wNjcsMy45NjYsMy45NjYsMCwwLDEtLjQ0LS40NjZjLS45LTEuMTQ2LTEuNC0yLjgyNy0yLjE5NC01LjY1MlxcXCIgc3R5bGU9XFxcImZpbGw6IzkxZGM0N1xcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNjksMTAuNTU2YTYuNjc3LDYuNjc3LDAsMCwwLS4wNzcsMTAuODgxYy40MTEtMS43MSwxLjQ0LTMuMjc2LDIuOTgzLTYuNDE1LS4wOTItLjI1Mi0uMi0uNTI3LS4zMTMtLjgxN2ExMC4yMDcsMTAuMjA3LDAsMCwwLTEuNi0yLjg4Miw0LjQzOSw0LjQzOSwwLDAsMC0xLS43NjdcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MWRjNDdcXFwiLz48cGF0aCBkPVxcXCJNMjEuODQsMjMuN2ExMC44NzcsMTAuODc3LDAsMCwxLTIuMjU3LS40NzFBOC4wMzYsOC4wMzYsMCwwLDEsMTAuNzE2LDkuOTgyYTUuOSw1LjksMCwwLDAtMS40LS4xNzFjLTIuMzU4LjAyMi00Ljg0OCwxLjMyNy01Ljg4NCw0Ljg1MmE2LjYwNiw2LjYwNiwwLDAsMC0uMDc0LDEuMzYxLDEyLjY0OSwxMi42NDksMCwwLDAsMjMsNy4yNzQsMTQuNzM3LDE0LjczNywwLDAsMS0zLjQ0OC40NTlBOC44ODEsOC44ODEsMCwwLDEsMjEuODQsMjMuN1xcXCIgc3R5bGU9XFxcImZpbGw6IzYzYjEzMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40NjMsMjEuMjQ0YTMuNTMsMy41MywwLDAsMCwuNS4xNzJBNi42OSw2LjY5LDAsMCwwLDIyLjcsMTYuMDIzaDBhNi42ODEsNi42ODEsMCwwLDAtOC43OS02LjM0OGMxLjM1OCwxLjU0OCwyLjAxMSwzLjc2MSwyLjY0Myw2LjE4MXYwcy4yLjY3My41NDcsMS41NjJhMTUuNDM0LDE1LjQzNCwwLDAsMCwxLjM2MywyLjc4OCwyLjkyNCwyLjkyNCwwLDAsMCwxLDEuMDM2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTBiNGZlXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAxMywzLjM3MkExMi42MzIsMTIuNjMyLDAsMCwwLDUuNzMxLDguNjU2YTYuNDI1LDYuNDI1LDAsMCwxLDMuNDgtMS4wMDksNi44LDYuOCwwLDAsMSwzLjE4Mi43NzJjLjEzNC4wNzcuMjYxLjE2LjM4Ni4yNDZhOC4wMzgsOC4wMzgsMCwwLDEsMTEuMjczLDcuMzU4aDBhOC4wMTMsOC4wMTMsMCwwLDEtMi4zOTEsNS43MTksOS44NzEsOS44NzEsMCwwLDAsMS4xNDMuMDY0LDYuMjQsNi4yNCwwLDAsMCw0LjA1MS0xLjI2Myw1LjM0OCw1LjM0OCwwLDAsMCwxLjctMi45MDZBMTIuNjMyLDEyLjYzMiwwLDAsMCwxNi4wMTMsMy4zNzJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ODgxZDhcXFwiLz5cIixcblx0fSxcblx0XCJDTWFrZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMWEzMDBcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjkuOTU1XFxcIiB5MT1cXFwiOS4wOTZcXFwiIHgyPVxcXCIxNi42OFxcXCIgeTI9XFxcIjIzLjMyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTAxMWExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjk2OWUxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNi4yMzFcXFwiIHkxPVxcXCIxOS42NTVcXFwiIHgyPVxcXCIyNS42MThcXFwiIHkyPVxcXCIzLjc4MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjQwZTBlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmY1OTU5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCIyMS42NjNcXFwiIHkxPVxcXCI0LjgyM1xcXCIgeDI9XFxcIjguMzgxXFxcIiB5Mj1cXFwiNS45MzhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzAxYTMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzAxZGYwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTQuNjQzXFxcIiB5MT1cXFwiOC4zNjhcXFwiIHgyPVxcXCIxNC40NzJcXFwiIHkyPVxcXCIxNC4xNDVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODQ4NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2QyZDJkMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfY21ha2U8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNy4yNTcsMTYuOTE5LDIuMjQ2LDI5Ljc0OSwxNS45OTQsMi4yODNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIuMjYyLDI5Ljc2OGwtLjAzOC0uMDNMMTYuMDEyLDIuMTkzbC4wMDguMDg4TDE3LjI4MywxNi45M2wtLjAxLjAwOFpNMTUuOTc3LDIuMzc0LDIuMzI0LDI5LjY0OSwxNy4yMywxNi45MDhaXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljk1MiwyNC45MzEsMTYsMi4yOCwyOS43NjcsMjkuNzUxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS44MTgsMjkuOGwtLjA2MS0uMDI1TDE3LjkyOSwyNC45NDhsMC0uMDE1TDE1Ljk3NSwyLjI4MmwuMDQ3LS4wMTNaTTE3Ljk3NiwyNC45MTMsMjkuNzE1LDI5LjcsMTYuMDM2LDIuNDA4WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4xNiwyMi4wOTRsMTguNjIxLDcuNjU0SDIuMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljc4MSwyOS43NzNIMi4xODNsLjA1MS0uMDQ0LDguOTIxLTcuNjY1LjAxNC4wMDYsMTguNjIyLDcuNjU1Wm0tMjcuNDY0LS4wNUgyOS42NTRsLTE4LjQ4OS03LjZaXFxcIi8+PHBhdGggZD1cXFwiTTExLjE4OSwyMi4xMTJsNi4wNTktNS4xNjguODQzLDcuOThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE4LjE0OSwyNWwtLjA3Ny0uMDMyLTYuOTc4LTIuODQyLDYuMTk0LTUuMjgzLjAxLjA5NFptLTYuODY1LTIuOSw2Ljc0OCwyLjc0OS0uODI0LTcuOFpcXFwiLz48cGF0aCBkPVxcXCJNMjkuNywyOS45MTFIMi4yODVhLjIyMS4yMjEsMCwwLDEtLjE4Mi0uMDg4LjIyMi4yMjIsMCwwLDEsLjAyMi0uMkwxNS44NjQsMi4xODdhLjE2OS4xNjksMCwwLDEsLjE0LS4xaDBhLjE1NC4xNTQsMCwwLDEsLjEzLjA4NUwyOS44NjcsMjkuNjA3YS4yMzguMjM4LDAsMCwxLC4wMi4yMjZBLjIxMS4yMTEsMCwwLDEsMjkuNywyOS45MTFabS0yNy40NjgtLjE2YS40ODQuNDg0LDAsMCwwLC4wNTcuMDExaDI3LjRsLjA3My0uMDA5YS4yMjEuMjIxLDAsMCwwLS4wMjgtLjA3N0wxNiwyLjI0OCwxNiwyLjI2LDIuMjYxLDI5LjY4NGEuMjc5LjI3OSwwLDAsMC0uMDI1LjA2N1pcXFwiLz5cIixcblx0fSxcblx0XCJDT0JPTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDVjYTVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMi4yNCw2LjU0NmE0LjQ0OSw0LjQ0OSwwLDAsMCwxLjc2NS0yLjUyMiw0LjYzNiw0LjYzNiwwLDAsMS0uMDE4LDIuMTU3Yy0uMjIzLjU4Mi0uNTY3LDEuMTA3LS44MzQsMS42NjlhMjEuNzcyLDIxLjc3MiwwLDAsMSw0LjU1OS0yLjkzOEMyNy4yMyw2LjQsMjUuODkxLDcuMywyNC45MDcsOC40NDJjLjE5LjQwOS4yOC45ODkuOCwxLjEwOWE1LjAzNiw1LjAzNiwwLDAsMCwyLjUuMTU1Yy45MTItLjMxMywxLjM0NS0xLjI1OCwxLjgtMi4wMzVWOS4xNGExNS43MzgsMTUuNzM4LDAsMCwxLS41ODIsMS43NDhjLjIuNTQ3LjQwOSwxLjA5Mi41ODIsMS42NDd2Ljk1MmMtLjIxNC4zNjgtLjQ0Mi43MjYtLjY2MywxLjA4OWE1LjI5Myw1LjI5MywwLDAsMC0xLjA2OC0xLjE2Miw0LjAzLDQuMDMsMCwwLDAtMS44NTEtLjEyNSwzLjIxMiwzLjIxMiwwLDAsMCwyLjQxMywxLjQ3Yy0uMzU5LjM3LS42NjMuOTEyLTEuMjMuOTY5LTEuNjQxLjI0Ny0zLjIwNy0uNTA1LTQuODM5LS41LS4yODIuMDItLjcwNy4wMjQtLjc4NS4zNzIsMCwuNzM1LjIxNywxLjQ1My4xOSwyLjE4OC0uMDU5LDEuMjU4LS41MTIsMi40NjYtLjUyOSwzLjcyNmExMy43ODUsMTMuNzg1LDAsMCwwLC44MzgsMy40NDhjLS41MjMtLjA3Ny0xLjA0NC0uMTY2LTEuNTYyLS4yNi0uMS4yMDgtLjE4NC40Mi0uMjYuNjM0QTQuNTE0LDQuNTE0LDAsMCwwLDIxLjgsMjYuNTMxYy0uMDYxLjEyNy0uMTgyLjM4MS0uMjQxLjUwOGwtLjU3My4xMzhjLS4xMzEuMjQ3LS4yNjMuNDkyLS40LjczOWE0LjQyMSw0LjQyMSwwLDAsMC0yLjIuMDYxYy0uNDY2LS4xODYtLjkyOC0uMzc2LTEuMzg5LS41NjdhNS45MzksNS45MzksMCwwLDAsLjQwNy0yLjMxNWMtLjI4Mi0uOTgyLTEuNi0uOTg0LTItMS44NzdhNi4yMzMsNi4yMzMsMCwwLDEtMS4wMjItMi44NTFjLS44MjMtLjQzMy0xLjQ1NS0xLjIyMS0yLjQtMS40LS4wNDguNDA5LS4wODMuODItLjE1MywxLjIyN0E2LjAxNSw2LjAxNSwwLDAsMSwxMC40ODEsMjIuNmMuMDM5LjQyMi4wNzkuODQyLjEyLDEuMjY1LjM0Ni4zMjQuNjkxLjY0OCwxLjAzMy45NzRhOS43NTIsOS43NTIsMCwwLDEtMS40MjYuNzEzLDExLjExNCwxMS4xMTQsMCwwLDEtMS42ODcuMDc3Yy0uMjU4LS4yNTQtLjUxOC0uNTA4LS43NzctLjc2NGE0Ljg3MSw0Ljg3MSwwLDAsMCwuMTE0LTIuNjA4Yy4xNzEtLjQuMzI2LS44MTIuNDc1LTEuMjIxYTUuNTY1LDUuNTY1LDAsMCwxLTMuMDEuMjA2LDUuMTIsNS4xMiwwLDAsMS0zLjI5LTQuMzMsMy44NTksMy44NTksMCwwLDEsMS40MDctMy4yNjhBNi40MSw2LjQxLDAsMCwwLDMuMiwxNi4yNTlhMy4wMzgsMy4wMzgsMCwwLDAsMi41LDIuNDY2LDMuNDYyLDMuNDYyLDAsMCwwLDEuOTYtLjY0Myw3LjQ4LDcuNDgsMCwwLDEsLjM2My00LjEzMyw1LjUyNCw1LjUyNCwwLDAsMSwzLjU4Ni0yLjY2LDQuMjM1LDQuMjM1LDAsMCwwLDIuMDExLTEuNTY2LDEwLjY3LDEwLjY3LDAsMCwxLDEuNTI5LTEuMzNjLS4yMjgtLjIxOS0uNDUzLS40NC0uNjgtLjY1OUEyLjE1NCwyLjE1NCwwLDAsMCwxNS45LDYuMDIzYzEuMjg0LS4zLDIuNTUxLS42NjEsMy44Mi0xLjAxMWEzLjc5MywzLjc5MywwLDAsMCwxLjQxNS42MDZjLjMxNy4zNDYuNDk0LDEuMTU3LDEuMS45MjhNMTguNDU4LDE5LjkwOGMuMDQyLjc2OC0uMDQ4LDEuNjY1LjY3NCwyLjE1NSwwLS43NTUtLjA0Ni0xLjUwNy0uMS0yLjI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNWNhNVxcXCIvPlwiLFxuXHR9LFxuXHRcIkNvZmZlZVNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM2ZjRlMzdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMy4xMTQsNS43MjhjLjAyNS4xNTMtLjA1MS4yOC0uMzA2LjQwOGEzLjQ1NywzLjQ1NywwLDAsMC0xLjYzLS4yMjljLS42MzcuMDUxLTEuMTcyLjI1NS0xLjEuNjg4LjEuNDMzLjcxMy42ODgsMS44MDguNTg2LDIuNjc0LS4yMjksMi42NDktMi4wMzgsNi41NzEtMi4zOTQsMy4wNTYtLjI4LDQuNzYzLjY2Miw0Ljk5MiwxLjgwOC4xNzguODkxLS41NiwxLjc1Ny0yLjc3NiwxLjkzNi0xLjk2MS4xNzgtMy4xMDctLjM1Ny0zLjIwOS0uODkxLS4wNTEtLjI4LjEtLjY4OCwxLjA0NC0uNzkuMS40MzMuNjM3Ljg5MSwxLjkxLjc2NEMyMS4zNDEsNy41MzYsMjIuMSw3LjIsMjIsNi43Yy0uMS0uNTM1LTEuMDctLjg0LTIuNi0uNzEzLTMuMTA3LjI4LTMuODcxLDEuOTg3LTYuNTIsMi4yMTZDMTEsOC4zNzYsOS40NzIsNy42ODksOS4yNjgsNi42N2MtLjA3Ni0uMzgyLS4wNzYtMS4yNzMsMS45MS0xLjQ1MiwxLjAxOS0uMDc2LDEuODM0LjEsMS45MzYuNTA5Wk0zLjE4MSwxNi4zNzRBNS4yNzksNS4yNzksMCwwLDAsMi4wMSwxOS45OWE0LjIwNiw0LjIwNiwwLDAsMCwxLjY1NSwzLjA1Niw0LDQsMCwwLDAsMy4zNjIuNzksMTEuNDM0LDExLjQzNCwwLDAsMCwxLjUtLjQ4NCw0LjIzOCw0LjIzOCwwLDAsMS0yLjc1MS0xLjAxOSw0LjEzLDQuMTMsMCwwLDEtMS43MzItMi44MjdBMy43OSwzLjc5LDAsMCwxLDQuNjU4LDE2LjUsMy45NzcsMy45NzcsMCwwLDEsNy40MDksMTVhNC44MDYsNC44MDYsMCwwLDEsMy4yMDkuOTQyLDYuOTUsNi45NSwwLDAsMC0uODY2LS44NjYsNC4xLDQuMSwwLDAsMC0zLjQ2NC0uNjg4LDUuMiw1LjIsMCwwLDAtMy4xMDcsMS45ODdaTTE2LjgzMywxMC40OUE0MC44MzcsNDAuODM3LDAsMCwxLDguNSw5LjdDNi4yMzcsOS4xNCw1LjA0LDguNTI5LDUuMDQsNy43NGMwLS4zMzEuMTUzLS42MTEuNjExLS45NDItMS40MjYuNTYtMi4xOSwxLjAxOS0yLjE5LDEuNzMyLjA3Ni43OSwxLjM1LDEuNTc5LDMuOTQ4LDIuMTlhMzkuNDQzLDM5LjQ0MywwLDAsMCw5LjM0Ny45NDJBMzguOTkzLDM4Ljk5MywwLDAsMCwyNi4xLDEwLjcyYzIuNi0uNjExLDMuODQ2LTEuNDI2LDMuODQ2LTIuMTksMC0uNTYtLjU2LTEuMS0xLjU3OS0xLjVhLjg2Mi44NjIsMCwwLDEsLjQwOC42ODhjMCwuNzktMS4xNzIsMS40MjYtMy41NCwxLjk2MUEzOS4zMjQsMzkuMzI0LDAsMCwxLDE2LjgzMywxMC40OVptOS4zNzMsMi4xOWE0Mi4zMTUsNDIuMzE1LDAsMCwxLTkuMzQ3Ljk0Miw0NC4xNDQsNDQuMTQ0LDAsMCwxLTkuNDI0LS45NDJjLTIuMTktLjU2LTMuMzYyLTEuMTcyLTMuNzY5LTEuODA4YTIzLjE4NiwyMy4xODYsMCwwLDAsMi42LDcuNjQxYy45NDIsMS40MjYsMS44ODUsMi42NzQsMi44MjcsNC4wMjRhOS44ODMsOS44ODMsMCwwLDEsLjg2NiwyLjM2OSw0LjU1OSw0LjU1OSwwLDAsMCwyLjYsMS43MzIsMTAuNjExLDEwLjYxMSwwLDAsMCw0LjE3Ny42MTFoLjE1M2ExMS44MzksMTEuODM5LDAsMCwwLDQuMy0uNjExLDQuODY5LDQuODY5LDAsMCwwLDIuNTIxLTEuNzMyaC4wNzZhOS41OTIsOS41OTIsMCwwLDEsLjc5LTIuMzY5Yy45NDItMS4zNSwxLjg4NS0yLjYsMi44MjctNC4wMjRBMjQuNjIsMjQuNjIsMCwwLDAsMzAsMTAuODcyQzI5LjQ5MSwxMS41ODUsMjguMzE5LDEyLjIsMjYuMjA1LDEyLjY4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2ZjRlMzdcXFwiLz5cIixcblx0fSxcblx0XCJDcnlzdGFsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2M4YzhjOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5Ljk0MSwxOS44MTYsMTkuOCwyOS45MjhjLS4wMjguMDI4LS4wODUuMDI4LS4xNjkuMDI4TDUuOCwyNi4yNjdjLS4wMjgsMC0uMDg0LS4wMjgtLjExMy0uMTEzTDIsMTIuMzUyYS40MTkuNDE5LDAsMCwxLC4wMjgtLjE2OUwxMi4xNjgsMi4wNzJjLjAyOC0uMDI4LjA4NC0uMDI4LjE2OS0uMDI4bDEzLjgzLDMuNzE4Yy4wMjgsMCwuMDg0LjAyOC4xMTMuMTEzbDMuNjksMTMuOEMzMC4wMjYsMTkuNzMyLDMwLDE5Ljc4OCwyOS45NDEsMTkuODE2Wk0xNi4zOTMsOC44MzIsMi44MTcsMTIuNDkzcS0uMDQyLDAsMCwuMDg0TDEyLjc2LDIyLjUyYy4wMjguMDI4LjAyOCwwLC4wODQsMEwxNi41MDYsOC45NzJDMTYuNDQ5LDguODMyLDE2LjM5Myw4LjgzMiwxNi4zOTMsOC44MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzhjOGM4XFxcIi8+XCIsXG5cdH0sXG5cdFwiQ1NTXCI6IHtcblx0XHRjb2xvdXI6IFwiIzE1NzJiNlwiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwMiAyNy4yMDEgMy42NTYgMiAyOC4zNDQgMiAyNi4wOTUgMjcuMTk3IDE1Ljk4NSAzMCA1LjkwMiAyNy4yMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiMxNTcyYjZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDI3Ljg1OCAyNC4xNyAyNS41OTMgMjYuMDkyIDQuMDYxIDE2IDQuMDYxIDE2IDI3Ljg1OFxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkY1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuMTkxIDIwLjA5IDEzLjE5MSAyMC4zNzIgMTAuMDI2IDE2IDEwLjAyNiAxNiA2LjkzNSAxNi4wMTEgNi45MzUgMjMuNzUgNi45MzUgMjMuNjc2IDcuNzY0IDIyLjkxNyAxNi4yODIgMTYgMTYuMjgyIDE2IDEzLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMDE5IDIxLjIxOCAxNi4wMDUgMjEuMjIyIDEyLjU2MyAyMC4yOTIgMTIuMzQzIDE3LjgyNyAxMC42NyAxNy44MjcgOS4yNCAxNy44MjcgOS42NzMgMjIuNjggMTYuMDA0IDI0LjQzOCAxNi4wMTkgMjQuNDM0IDE2LjAxOSAyMS4yMThcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjgyNyAxNi4xNTEgMTkuNDU1IDIwLjI5IDE2LjAwOCAyMS4yMiAxNi4wMDggMjQuNDM2IDIyLjM0NCAyMi42OCAyMi4zOTEgMjIuMTU4IDIyLjkyOCAxNi4xNTEgMTkuODI3IDE2LjE1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMDExIDYuOTM1IDE2LjAxMSA4Ljg1NSAxNi4wMTEgMTAuMDE4IDE2LjAxMSAxMC4wMjYgOC41NTUgMTAuMDI2IDguNTU1IDEwLjAyNiA4LjU0NSAxMC4wMjYgOC40ODMgOS4zMzEgOC4zNDIgNy43NjQgOC4yNjggNi45MzUgMTYuMDExIDYuOTM1XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAxMy4xOTEgMTYgMTUuMTExIDE2IDE2LjI3NCAxNiAxNi4yODIgMTIuNjExIDE2LjI4MiAxMi42MTEgMTYuMjgyIDEyLjYwMSAxNi4yODIgMTIuNTM5IDE1LjU4NyAxMi4zOTkgMTQuMDIgMTIuMzI1IDEzLjE5MSAxNiAxMy4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz5cIixcblx0fSxcblx0XCJDU1ZcIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjIuMDM4LDJINi4zNzVhMS43NTUsMS43NTUsMCwwLDAtMS43NSwxLjc1djI0LjVBMS43NTUsMS43NTUsMCwwLDAsNi4zNzUsMzBoMTkuMjVhMS43NTUsMS43NTUsMCwwLDAsMS43NS0xLjc1VjYuODU2Wm0uNTI1LDIuODQ0LDEuNjYzLDEuNTMxSDIyLjU2M1pNNi4zNzUsMjguMjVWMy43NUgyMC44MTNWOC4xMjVoNC44MTNWMjguMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjE1LjA5N1xcXCIgd2lkdGg9XFxcIjEzLjA3NlxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjI0LjQzOVxcXCIgd2lkdGg9XFxcIjkuNzYyXFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTkuNzYzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxMC4yM1xcXCIgd2lkdGg9XFxcIjE1Ljc1XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz5cIixcblx0fSxcblx0XCJEXCI6IHtcblx0XHRjb2xvdXI6IFwiI2IwMzkzMVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTg1LjQ1NVxcXCIgeTE9XFxcIjE2MDEuNjQxXFxcIiB4Mj1cXFwiMTgxLjk1NVxcXCIgeTI9XFxcIjE2MzAuMjI0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC02Mi41MjMgLTY2Ni42NDYpIHNjYWxlKDAuNDI3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNzYuMTM2XFxcIiB5MT1cXFwiMTYwMC41XFxcIiB4Mj1cXFwiMTcyLjYzNlxcXCIgeTI9XFxcIjE2MjkuMDgzXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RsYW5nPC90aXRsZT48cGF0aCBkPVxcXCJNMy45NzgsMTUuNDYyLDMuOTY5LDguNTA5QS41ODguNTg4LDAsMCwxLDQuNSw3Ljk0N2EuNjU4LjY1OCwwLDAsMSwuMDc2LDBsNi4wNzQtLjAwOWExNS43LDE1LjcsMCwwLDEsNi4wNjcuOTUsOC45LDguOSwwLDAsMSwyLjI0NCwxLjM1OSw0LjQ2OSw0LjQ2OSwwLDAsMSwyLjk0Ni0xLjA4Myw0LjExLDQuMTEsMCwwLDEsNC4yNzYsMy45MkE0LjExLDQuMTEsMCwwLDEsMjEuOTA3LDE3Yy0uMDg5LDAtLjE3Ny0uMDA4LS4yNjUtLjAxMmE2LjYxNyw2LjYxNywwLDAsMS0uMjMyLjk1Myw4NS4zODMsODUuMzgzLDAsMCwxLDguNTksMi42VjJIMlYxNS40UTIuOTkyLDE1LjQyLDMuOTc4LDE1LjQ2MlptMjIuOC03Ljk0NGExLjMyLDEuMzIsMCwwLDEsMS4zNzQsMS4yNTksMS4zNzksMS4zNzksMCwwLDEtMi43NDcsMEExLjMyLDEuMzIsMCwwLDEsMjYuNzgsNy41MTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljg2MSwxNS43ODdhNC4xMTQsNC4xMTQsMCwwLDAtMS43NDgtMy40NTgsNS44MTQsNS44MTQsMCwwLDAtMS41MDgtLjgyMiw3LjM1NCw3LjM1NCwwLDAsMC0xLjYyOS0uNDM4LDIxLjYyOSwyMS42MjksMCwwLDAtMi41ODgtLjFsLTIuNjE5LDAsLjAwNiw0LjczN2E4OC44MjcsODguODI3LDAsMCwxLDkuOTEsMS40MDhBNC45MTksNC45MTksMCwwLDAsMTcuODYxLDE1Ljc4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMDM5MzFcXFwiLz48cGF0aCBkPVxcXCJNMjAuOTkzLDE4Ljk3OWE3LjkwNiw3LjkwNiwwLDAsMS0yLjEyOCwyLjU4Miw5LjczOSw5LjczOSwwLDAsMS0zLjI1NiwxLjcxLDExLjU1OCwxMS41NTgsMCwwLDEtMS45NzEuNDcyaC0uMDE1YTMxLjg1NywzMS44NTcsMCwwLDEtMy4zMjYuMTExbC01LjYyNS4wMjJhLjYxNi42MTYsMCwwLDEtLjY4Ni0uNjgxbC0uMDEtNy43MzRRMi45OTIsMTUuNDIsMiwxNS40VjMwSDMwVjIwLjU0NGE4NS4zODMsODUuMzgzLDAsMCwwLTguNTktMi42QTYuOTg1LDYuOTg1LDAsMCwxLDIwLjk5MywxOC45NzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTIwLjk5MywxOC45NzlhNy45MDYsNy45MDYsMCwwLDEtMi4xMjgsMi41ODIsOS43MzksOS43MzksMCwwLDEtMy4yNTYsMS43MSwxMS41NTgsMTEuNTU4LDAsMCwxLTEuOTcxLjQ3MmgtLjAxNWEzMS44NTcsMzEuODU3LDAsMCwxLTMuMzI2LjExMWwtNS42MjUuMDIyYS42MTYuNjE2LDAsMCwxLS42ODYtLjY4MWwtLjAxLTcuNzM0UTIuOTkyLDE1LjQyLDIsMTUuNFYzMEgzMFYyMC41NDRhODUuMzgzLDg1LjM4MywwLDAsMC04LjU5LTIuNkE2Ljk4NSw2Ljk4NSwwLDAsMSwyMC45OTMsMTguOTc5WlxcXCIgc3R5bGU9XFxcIm9wYWNpdHk6MC4zMDAwMDAwMTE5MjA5Mjk7aXNvbGF0aW9uOmlzb2xhdGU7ZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQ3NywyMC44MzVhMTYuMDE0LDE2LjAxNCwwLDAsMCwyLjg3Ny0uMiw3LjYzMyw3LjYzMywwLDAsMCwxLjYyOC0uNSw1LjYyOCw1LjYyOCwwLDAsMCwxLjE4Ny0uNzQ4LDQuNDU3LDQuNDU3LDAsMCwwLDEuNTE4LTIuMjcxLDg4LjY5MSw4OC42OTEsMCwwLDAtOS45MS0xLjQwOGwuMDA2LDUuMTMzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NzcsMjAuODM1YTE2LjAxNCwxNi4wMTQsMCwwLDAsMi44NzctLjIsNy42MzMsNy42MzMsMCwwLDAsMS42MjgtLjUsNS42MjgsNS42MjgsMCwwLDAsMS4xODctLjc0OCw0LjQ1Nyw0LjQ1NywwLDAsMCwxLjUxOC0yLjI3MSw4OC42OTEsODguNjkxLDAsMCwwLTkuOTEtMS40MDhsLjAwNiw1LjEzM1pcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzAwMDAwMDExOTIwOTI5O2lzb2xhdGlvbjppc29sYXRlO2ZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4zODMsMTEuNzQ2YTYuOTkzLDYuOTkzLDAsMCwxLDEuMzYsNC4xNDgsNi42MTgsNi42MTgsMCwwLDEtLjEsMS4xYy4wODgsMCwuMTc2LjAxMi4yNjUuMDEyYTQuMTEsNC4xMSwwLDAsMCw0LjI3Ni0zLjkyLDQuMTEsNC4xMSwwLDAsMC00LjI3Ni0zLjkyLDQuNDcsNC40NywwLDAsMC0yLjk0NiwxLjA4M0E4LjEyMyw4LjEyMywwLDAsMSwyMC4zODMsMTEuNzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIyNi43OFxcXCIgY3k9XFxcIjguNzc3XFxcIiByeD1cXFwiMS4zNzRcXFwiIHJ5PVxcXCIxLjI1OVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk00LjY3MywyMy44NzdsNS42MjUtLjAyMmEzMS44NzEsMzEuODcxLDAsMCwwLDMuMzI2LS4xMTFoLjAxNWExMS40OSwxMS40OSwwLDAsMCwxLjk3MS0uNDcyLDkuNzM5LDkuNzM5LDAsMCwwLDMuMjU2LTEuNzEsNy45MDYsNy45MDYsMCwwLDAsMi4xMjgtMi41ODIsNi45ODUsNi45ODUsMCwwLDAsLjQxNy0xLjAzNCw3LjA1Niw3LjA1NiwwLDAsMCwuMzMyLTIuMDUxLDYuOTkyLDYuOTkyLDAsMCwwLTEuMzYtNC4xNDgsOC4xLDguMSwwLDAsMC0xLjQyMS0xLjUsOC44NzgsOC44NzgsMCwwLDAtMi4yNDQtMS4zNTksMTUuNjg2LDE1LjY4NiwwLDAsMC02LjA2Ny0uOTVsLTYuMDc0LjAwOWEuNjU4LjY1OCwwLDAsMC0uMDc2LDAsLjU4OC41ODgsMCwwLDAtLjUzMi41NjJsLjAwOSw2Ljk1Mi4wMSw3LjczNEEuNjE2LjYxNiwwLDAsMCw0LjY3MywyMy44NzdabTMuMS0xMi45MDgsMi42MTksMGEyMS42MjMsMjEuNjIzLDAsMCwxLDIuNTg4LjEsNy4zNTQsNy4zNTQsMCwwLDEsMS42MjkuNDM4LDUuODE0LDUuODE0LDAsMCwxLDEuNTA4LjgyMiw0LjExNiw0LjExNiwwLDAsMSwxLjc0OCwzLjQ1OCw0LjkwNSw0LjkwNSwwLDAsMS0uMTc1LDEuMzI3LDQuNDU3LDQuNDU3LDAsMCwxLTEuNTE4LDIuMjcxLDUuNjEzLDUuNjEzLDAsMCwxLTEuMTg3Ljc0OCw3LjY2Niw3LjY2NiwwLDAsMS0xLjYyOC41LDE2LjAwOSwxNi4wMDksMCwwLDEtMi44NzcuMmwtMi42OTQsMC0uMDA2LTUuMTMzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIkRhcnRcIjoge1xuXHRcdGNvbG91cjogXCIjNThiNmYwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuNzM5LDIuMDM3YTEuMzE0LDEuMzE0LDAsMCwwLS45MTYuMzc3bC0uMDEzLjAxTDcuMjIsNy4zODlsOC41NjYsOC41NjZ2LjAwNmwxMC4zLDEwLjMsMS45NjMtMy41MzZMMjAuOTY4LDUuNzI4bC0zLjMtMy4zYTEuMzA3LDEuMzA3LDAsMCwwLS45MjctLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NmMzZmFcXFwiLz48cGF0aCBkPVxcXCJNNy4yNSw3LjM1LDIuMjg4LDE1LjkzMWwtLjAxLjAxM2ExLjMyMiwxLjMyMiwwLDAsMC0uMzc4LjkxOSwxLjMsMS4zLDAsMCwwLC4zODcuOTI0TDYuNCwyMS45bDE2LjA4NCw2LjMyNywzLjYzNi0yLjAyLS4xLS4xLS4wMjUsMC0xMC4wODMtMTAuMUgxNS45TDcuMjUsNy4zNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMTU4OTZcXFwiLz48cGF0aCBkPVxcXCJNNy4xOTIsNy4zNjJsOC43NjQsOC43NzNoLjAxM2wxMC4wODcsMTAuMSwzLjgzOS0uNzMyTDI5LjksMTQuMTRsLTQuMDU0LTMuOTczYTYuNTIxLDYuNTIxLDAsMCwwLTMuNjI0LTEuNjE2bDAtLjA0NEw3LjE5Miw3LjM2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzU5OTdcXFwiLz48cGF0aCBkPVxcXCJNNy4yNTYsNy40MTFsOC43NjgsOC43Njh2LjAxM0wyNi4xMTYsMjYuMjg0bC0uNzM0LDMuODM5SDE0LjAyMmwtMy45NzEtNC4wNTZhNi41MjIsNi41MjIsMCwwLDEtMS42MTQtMy42MjVsLS4wNDQsMEw3LjI1Niw3LjQxMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OGI2ZjBcXFwiLz5cIixcblx0fSxcblx0XCJEaGFsbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNiN2I3YjdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiwyLjA3QTEzLjkzLDEzLjkzLDAsMSwxLDIsMTYsMTMuOTMsMTMuOTMsMCwwLDEsMTYsMi4wN1pNMTMuMjgsMjIuMzJhMS40OSwxLjQ5LDAsMSwxLTEsMS44M0ExLjQ5LDEuNDksMCwwLDEsMTMuMjgsMjIuMzJabTgtMTUuNjhhLjUzLjUzLDAsMCwxLC4zOC42Ni41Mi41MiwwLDAsMS0uNjUuMzhsLS41LS4xM2E0Mi42Nyw0Mi42NywwLDAsMC0uMzcsNy4wN0MxOC4wNiwxNi40NSwxNC4zOSwyMiwxNC4zOSwyMmwxLjkzLTcuMThhMSwxLDAsMCwwLC44OS0uNjUuOTEuOTEsMCwwLDAtMS43NS0uNDcsMSwxLDAsMCwwLC40NSwxTDE0LDIxLjg1YTY4LjM4LDY4LjM4LDAsMCwwLTEuMzQtOS4yNSwzNC4yOCwzNC4yOCwwLDAsMCwzLjIxLTYuMzFsLS41LS4xM0EuNTUuNTUsMCwwLDEsMTUsNS41YS41My41MywwLDAsMSwuNjYtLjM4bDUuNjgsMS41MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiN2I3Yjc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJEaWZmXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MwMDAwMFwiLFxuXHRcdGljb246IFwiPHJlY3QgeD1cXFwiNi45NzVcXFwiIHk9XFxcIjNcXFwiIHdpZHRoPVxcXCIxOC4wNVxcXCIgaGVpZ2h0PVxcXCI2LjAxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2MwMDAwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMi45OTIsMTAuOTV2Ni4wMTdINi45NzV2Ni4wMTdoNi4wMTdWMjloNi4wMTdWMjIuOTgzaDYuMDE3VjE2Ljk2N0gxOS4wMDhWMTAuOTVaXFxcIiBzdHlsZT1cXFwiZmlsbDpncmVlblxcXCIvPlwiLFxuXHR9LFxuXHRcIkRqYW5nby9KaW5qYTJcIjoge1xuXHRcdGNvbG91cjogXCIjZmYwMDAwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCIxNlxcXCIgY3k9XFxcIi0xMTkuMjgzXFxcIiByPVxcXCIxMy41XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0wLjk0NSwgMCwgLTk2LjczNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1NzU3NTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyZjJmMmZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2ppbmphPC90aXRsZT48cGF0aCBkPVxcXCJNMjkuMzQsMy4yNDFhMzguMjcxLDM4LjI3MSwwLDAsMS05LjQ1MSwzLjA0Yy00LjI0MS41NS0xMi4zMjksMS4xLTEzLjkzNS43MTJBMjMuMywyMy4zLDAsMCwxLDMuMiw2LjE1MWwuMzM0LDEuMTMyTDIuNSw4LjE4OGwuMTgzLjMyMy40MjQuMDMyLDEuMy4xNjIuMTgzLjU4Mi43MjcuMDY2LjM2NCwxLjIyOHMxLjU0NC4xMywyLC4xMywxLjM2My0uMDY0LDEuMzYzLS4wNjRsLjAzLjQ4NS4zMzQuMDY0di41NWwtLjcyOC42NDguMTgzLjAzMnYuMjI1YTE1LjgxNiwxNS44MTYsMCwwLDEtMi4zLjAzNGMtLjY2Ni0uMS0uNzg4LS4xLS43ODgtLjFsLS4wNi4wNjQtLjAzLjI5MWguMTUxbC4wNiwxLjI2MiwzLjM2My0uMTMtLjI0Myw0LjM2NS0uMDMuNTQ5LTIuODQ4LS4xNjItLjAzLTEuMTY0aC42MzVsLjA2MS0uNDUzLjU3NS0uMTMuMDkxLS4xMjgtMi4xNTEtLjUxOC0xLjYzNi40ODUuMjczLjIyN2guMjczbC4wMy4zODkuNTc1LjAzMlYxOC43bC0uNjM1LjE2Mi4xMjEuMjU3LjE1MS4xdi44NzNoLjM5NHY0LjA0MWwtLjYzNy4xLjA5MSwxLjE2NC4zOTMuMDY2LS4wNiwyLjY1MSwxLjcyNy4wMzItLjM2NC0yLjYxOSwyLjYwNS0uMDY0LS4xODEsMS40MjItLjI0MywxLDIuNjM1LjAzMi4wMy0yLjU4NiwxLjgxNy0uMTYyLS4wOSwxLjY0OS0uMDYxLjk2OWgxLjU0NmwtLjA2MS0yLjY1MS4yMTMuMDM0LjA2LTEuMjYyaC0uMjQzbC0uMDktLjUxOEwxMy44LDIxLjlsLjA2LTEuNzEzaC4zMzNWMTkuMTQ5bC0uNDI0LjAzMi4wNjEtMS4yMi40OTMtLjA0OS4wMjMtLjQuMjgtLjA0MS4yODctLjIxOEwxMy4xODcsMTYuOWwtMS43MTIuMzc5LjE2Ny4yNzQuMTgxLS4wMTUuMjExLS4wMDguMDM5LjUuNDc3LS4wMjMuMDA5LDEuMDgyLTIuMDUzLS4wNDcuMDY5LTEuMTU2LjA2Ny0xLjA1MVYxNS40NTVMMTAuNywxNGw0LjExMS0uMjEsNC44OTItLjI4Mi4wNDYuOTI5LS4xNzQsMi4yMzFMMTkuNSwxOC43NDRsLTEuOC0uMDMyLS4wMDktMS40NTUuNjY3LS4wMjQuMDMtLjQxMS4yNzMtLjA0MS0uMDE0LS4wODEuMjczLS4wMTUuMTUxLS4yTDE3LjAzNCwxNiwxNSwxNi40NGwuMTQ0LjI1MS4yMjctLjAxN3YuMTE0aC4yOHYuNDZsLjYuMDA4LS4wMDcsMS4yNzdoLS42MDVsLS4wMDkuMjkxLjIxMy4wMjQtLjAyMywxLjEwOC40NDcuMDI0LS4wNTMsNC4zOS0uNTkxLjEyLjAwNy4yMWguMjA2djEuMTI0aC4zNGwtLjA5LDEuNTM2TDE1Ljk3NCwyOC43bDIuMTUxLjA1Ni0uMDY5LTEuMTY0LS4xNTgtLjk2OS0uMDMxLS44NDEsMS44MjYtLjAzMi0uMDUzLDEuMy0uMDA5LDEuMzc0LDEuMDMxLjA4MSwxLjQtLjA1Ni40NC0uMTMtLjI0My0uNzM2LS4wNi0xLjE1Ni0uMTE0LS44MjQsMS43NDItLjA2NC0uMDc2LDEuMDEtLjAwNywxLjU4NS43LjA2NC42OS0uMDE1LjMzMy0uMTA1LS4yLTEuNUwyNS4yLDI1LjQ0NWwuMy0uMDMyTDI1LjUsMjQuNGwuMDgzLS4wMTctLjAxNC0uMjE4aC0uMzQxbC0uMDY5LS43NDRMMjUuMTMsMjAuMmwuMjU3LS4wMDhWMTkuMTMzbC4xMDcuMDE3di0uMjFsLS4zOC0uMDM0LjAwOS0xLjIyOC42MzUtLjA1Ni0uMDM3LS40MTMuMjgtLjAyNC0uMDE2LS4wODEuMzcxLS4xODYtMS44ODYtLjM3OS0xLjkxNi4zODkuMTIxLjIyNi4zLS4wMjQuMDE2LjFoLjI1bC4wMTQuNDg1LjYyMS0uMDA4LjA1MywxLjE4OC0yLjItLjAxNy0uMjU3LTEuNzg2LS4yMDYtLjk0Ni0uMTY2LTEuNy4xLS45OTMsNC4zNzctLjMzMi4wMTQtMS40NzkuMjItLjA1Ni0uMDE0LS4yMjUtLjE2Ny0uMXMtMi4zOTMuMzU1LTMuMTUxLjQzNmwtLjM3MS4wNC0uMDIzLS4yNzQtLjkwNS0uNDc0LjAxMS0uNTUyLjMxMS0uMDA5LjAyMy0uNzU5YTI0LjgwNywyNC44MDcsMCwwLDAsMi41NDQtLjI4M2MuNjg5LS4xNjIsMS42NjYtLjMyMywxLjY2Ni0uMzIzTDI2LjIsNy44MDlsLjkxNy0uMjY3LjA3Ni0uMjEsMi4wNzQtLjU3NC4yMzYtLjE5NC0uNzg4LTEuNzIyLjA3Ni0uMzg5LjQtLjIxLjI4OC0uODgxWk0xOS4zNzQsOS44bC0uMDExLjYyNi40Ny4wMi0uMDMuNTk0LS45MjEuNi0uMDU3LjE3NC4zNzEsMCwwLC4xNDYtMi44MTQuMTM3LjAxOS0uNDE2LjEyOC0uMjA3LjAwOS0uMTMzLDAtLjI4Ni4wOC0uMTkuMDMtLjE1NHYtLjExbC4xMjEtLjQ4NVptLTUuODg1LjUzMy0uMDY5LjQyMS4yMi4yNTktLjAxNC40NTMuMi4zMTUtLjA1My4zNzIuMTUxLjIxOC0yLjg3MS4xMTMtLjAwNy0uMS4zMzMtLjA0MS4wMTYtLjEyMi0uNzI3LS4zOTUtLjAzOS0uNjMxLjM0OC0uMDE3LjAzLS42OFptNC4yNDksOS43LDEuNzQyLjExM0wxOS40MiwyMi41bC4yMjcsMS45MjNMMTcuOCwyNC4zNTRabS0xMS42NjMuMSwyLjc4OC4xNDVMOC42MiwyMS45djEuMzU5bC4yLjc1OS0yLjcyNy4xM1ptMTcuODQzLjAxNXY0LjAxbC0xLjc3Mi4xMy0uMDYxLTIuMTE4LS4yLTEuOTczWk0xMC41LDIwLjI0bDIuMDYuMDA4LjAyMSwzLjcxOEwxMC42NTcsMjRsLS4xLTEuMjA1LS4wMDctMS4yWlxcXCIgc3R5bGU9XFxcInN0cm9rZTpyZWQ7c3Ryb2tlLXdpZHRoOjAuNXB4O2ZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIkRvY2tlclwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDk2ZTZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNi41NCwxMi42NjNIMTkuNHYyLjkyNGgxLjQ0NmE2LjI3Miw2LjI3MiwwLDAsMCwxLjk4OC0uMzMzLDUuMDkxLDUuMDkxLDAsMCwwLC45NjYtLjQzNiwzLjU4NCwzLjU4NCwwLDAsMS0uNjctMS44NDksMy45MDcsMy45MDcsMCwwLDEsLjctMi43NTNsLjMtLjM0OC4zNTguMjg4YTQuNTU4LDQuNTU4LDAsMCwxLDEuNzk1LDIuODkyLDQuMzc1LDQuMzc1LDAsMCwxLDMuMzE5LjMwOWwuMzkzLjIyNi0uMjA3LjRhNC4xNDEsNC4xNDEsMCwwLDEtNC4xNTcsMS45ODNjLTIuNDgsNi4xNjgtNy44NzEsOS4wODgtMTQuNDA5LDkuMDg4LTMuMzc4LDAtNi40NzYtMS4yNjMtOC4yNDEtNC4yNTlsLS4wMjktLjA0OUwyLjcsMjAuMjI3YTguMzE2LDguMzE2LDAsMCwxLS42NTktNC4yMDhsLjA0LS40MzNINC41MjZWMTIuNjYzSDcuMzg3VjkuOGg1LjcyMVY2Ljk0MkgxNi41NHY1LjcyMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDk2ZTZcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDA2LDI0LjU2N2E2LjAyMiw2LjAyMiwwLDAsMS0zLjE0LTMuMDg5LDEwLjMyOSwxMC4zMjksMCwwLDEtMi4yNjQuMzQzcS0uNS4wMjgtMS4wNDUuMDI4LS42MzIsMC0xLjMzMS0uMDM3YTkuMDUxLDkuMDUxLDAsMCwwLDcsMi43NjlRMTEuNjE4LDI0LjU4MSwxMi4wMDYsMjQuNTY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjA4LDEzLjM0NmguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdINi43VjEzLjM0NlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJWMTMuMzQ2Wk01LDEzLjE0SDcuNDgydjIuNDc5SDVabTIuODU5LTIuODYxaDIuNDh2Mi40NzlINy44NjNabTIuMDc3LjIwN2guMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlYxMC40ODZabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMnYyLjA2NmgtLjJabS0uMjA3LDIuNjUzaDIuNDh2Mi40OEg3Ljg2M1YxMy4xNFptMi4wNzcuMjA3aC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yVjEzLjM0NlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4ydjIuMDY3aC0uMlptMi42NTQtLjIwN0gxMy4ydjIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN0gxM3YyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4ydjIuMDY3aC0uMlptLS4yMDYtMy4wNjdIMTMuMnYyLjQ3OWgtMi40OFYxMC4yNzlabTIuMDc2LjIwN0gxM3YyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM2OCwwaC4ydjIuMDY2aC0uMlptMi42NTQsMi42NTNoMi40Nzl2Mi40OGgtMi40OFYxMy4xNFptMi4wNzYuMjA3aC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzY4LDBoLjE5MnYyLjA2N2gtLjJWMTMuMzQ2Wm0tLjIwNi0zLjA2N2gyLjQ3OXYyLjQ3OWgtMi40OFYxMC4yNzlabTIuMDc2LjIwN2guMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM2OCwwaC4xOTJ2Mi4wNjZoLS4yVjEwLjQ4NlptLS4yMDYtMy4wNjdoMi40NzlWOS45aC0yLjQ4VjcuNDE5Wm0yLjA3Ni4yMDZoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzc2LDBoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNjgsMGguMTkyVjkuNjkxaC0uMlY3LjYyNVptMi42NTQsNS41MTRoMi40Nzl2Mi40OGgtMi40OFYxMy4xNFptMi4wNzYuMjA3aC4xOTV2Mi4wNjdoLS4yVjEzLjM0NlptLS4zNzYsMGguMjA2djIuMDY3aC0uMjA2Wm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yMDVWMTMuMzQ2Wm0tLjM2OCwwaC4ydjIuMDY3aC0uMTk0VjEzLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMTg4LDE5LjYzOGEuNjg0LjY4NCwwLDEsMS0uNjg0LjY4NEEuNjg0LjY4NCwwLDAsMSwxMC4xODgsMTkuNjM4Wm0wLC4xOTRhLjQ4OS40ODksMCwwLDEsLjE3Ny4wMzMuMi4yLDAsMSwwLC4yNzUuMjY5LjQ5LjQ5LDAsMSwxLS40NTMtLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiRE9UIChHcmFwaHZpeilcIjoge1xuXHRcdGNvbG91cjogXCIjNGVkMWY4XCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjIzLjk0MiAzMCAxMi42NzkgMzAgMS40MTcgMzAgMS40MTcgMTYgMS40MTcgMiAxMi42NzkgMiAyMy45NDIgMiAyMy45NDIgMTYgMjMuOTQyIDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZTZlNmU2XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjMuMjAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjcuNDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTEuNjM4XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE1Ljg1NlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMC4wNzRcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjQuMjkzXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI4LjUxMVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjJcXFwiIHk9XFxcIjMuMjAyXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuNTczXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiNi4yMThcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTAuNDM2XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE0LjY1NVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxOC44NzNcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMjMuMDkxXFxcIiB5PVxcXCIzLjIwMlxcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjU3M1xcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNVxcXCI+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI3LjQ1NlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyNi40MDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjUuMzQ3XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjIzLjIzOFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMi4xODRcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjEuMTI5XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE5LjAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE3Ljk2NVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxNi45MTFcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTQuODAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjEzLjc0N1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxMi42OTNcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTAuNTgzXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjkuNTI5XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjguNDc0XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjYuMzY1XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjUuMzExXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjQuMjU2XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNVxcXCI+PHJlY3QgeD1cXFwiMjIuMDM2XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIwLjk4MlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxOS45MjdcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTcuODE4XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE2Ljc2NFxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxNS43MDlcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTMuNlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxMi41NDVcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTEuNDkxXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjkuMzgyXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjguMzI3XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjcuMjczXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjUuMTY0XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjQuMTA5XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjMuMDU1XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjwvZz48cGF0aCBkPVxcXCJNMTMsOC45NzZjLTIuMzA4LDAtNC4xMzEtMS4yNzQtNC4xOTMtMi45NjloMGEyLjc3NSwyLjc3NSwwLDAsMSwxLjI1My0yLjMyLDUuMyw1LjMsMCwwLDEsMi45NDMtLjk2Myw1LjI5NCw1LjI5NCwwLDAsMSwzLjAwNi43NDMsMi43NzUsMi43NzUsMCwwLDEsMS40MjEsMi4yMjFjLjA2NSwxLjc1Mi0xLjc3OSwzLjE5NC00LjIsMy4yODNDMTMuMTU4LDguOTc0LDEzLjA4LDguOTc2LDEzLDguOTc2Wm0uMjMyLTUuMnEtLjA5NSwwLS4xOSwwYTQuMjM4LDQuMjM4LDAsMCwwLTIuMzU0Ljc1NiwxLjc2MSwxLjc2MSwwLDAsMC0uODI4LDEuNDM1QzkuOSw3LjA5LDExLjQyOCw3Ljk3OCwxMy4yLDcuOTE3czMuMjIzLTEuMDY5LDMuMTgxLTIuMTkxYTEuNzYxLDEuNzYxLDAsMCwwLS45MzItMS4zNjlBNC4xNjUsNC4xNjUsMCwwLDAsMTMuMjM0LDMuNzczWlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk02LjQsMjkuMjgxQTUuMjM4LDUuMjM4LDAsMCwxLDMuNiwyOC41MTlhMi43NzUsMi43NzUsMCwwLDEtMS40MS0yLjIyOWMtLjA1Ni0xLjc1MiwxLjgtMy4xODUsNC4yMTMtMy4yNjJzNC4zNTYsMS4yMzYsNC40MTIsMi45ODhBMi43NzUsMi43NzUsMCwwLDEsOS41NDgsMjguMzNhNS4zLDUuMywwLDAsMS0yLjk0OC45NDhRNi41LDI5LjI4MSw2LjQsMjkuMjgxWm0uMTg2LTUuMi0uMTU2LDBjLTEuNzY2LjA1Ni0zLjIyOSwxLjA1Mi0zLjE5MywyLjE3NGExLjc2MSwxLjc2MSwwLDAsMCwuOTI0LDEuMzc0LDQuMjM1LDQuMjM1LDAsMCwwLDIuNC41OTMsNC4yMzUsNC4yMzUsMCwwLDAsMi4zNTctLjc0NCwxLjc2MSwxLjc2MSwwLDAsMCwuODM1LTEuNDNDOS43MjQsMjQuOTYxLDguMjksMjQuMDgsNi41OTEsMjQuMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE5LjI2MSwyOS4yNmE1LjIzOCw1LjIzOCwwLDAsMS0yLjgwNy0uNzYyLDIuNzc1LDIuNzc1LDAsMCwxLTEuNDEtMi4yMjloMGMtLjA1NS0xLjc1MiwxLjgtMy4xODUsNC4yMTMtMy4yNjJhNS4zLDUuMywwLDAsMSwzLC43NTlBMi42LDIuNiwwLDAsMSwyMi40LDI4LjMxYTUuMyw1LjMsMCwwLDEtMi45NDguOTQ4UTE5LjM1OCwyOS4yNiwxOS4yNjEsMjkuMjZaTTE2LjEsMjYuMjM2YTEuNzYxLDEuNzYxLDAsMCwwLC45MjQsMS4zNzQsNC41Nyw0LjU3LDAsMCwwLDQuNzU3LS4xNTEsMS41NTgsMS41NTgsMCwwLDAtLjA4OS0yLjgsNC4yMjYsNC4yMjYsMCwwLDAtMi40LS41OTNjLTEuNzY2LjA1Ni0zLjIyOCwxLjA1Mi0zLjE5MywyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNNi4yLDIzLjQ3N0EyNy40LDI3LjQsMCwwLDEsOS43NjksOC45ODZsLjY4Ny4zOTFBMjYuNjA5LDI2LjYwOSwwLDAsMCw2Ljk4NiwyMy40NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTAuODUzLDcuOTU3YTcuMTcxLDcuMTcxLDAsMCwwLS4wNzUsMi4zMmwtLjc1OC0uOTMtMS4xNzgtLjIzQTcuMTY1LDcuMTY1LDAsMCwwLDEwLjg1Myw3Ljk1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuODU0LDIzLjQ3N2wtLjc5LS4wMjdhMjYuNTksMjYuNTksMCwwLDAtLjkxNS03Ljg4NCwyNi42MjQsMjYuNjI0LDAsMCwwLTIuNTU0LTYuMTg5bC42ODctLjM5MWEyNy40MjMsMjcuNDIzLDAsMCwxLDIuNjMsNi4zNzNBMjcuMzcyLDI3LjM3MiwwLDAsMSwxOS44NTQsMjMuNDc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4yLDcuOTU3YTcuMTcxLDcuMTcxLDAsMCwwLDIuMDExLDEuMTU5bC0xLjE3OC4yMy0uNzU4LjkzQTcuMTY1LDcuMTY1LDAsMCwwLDE1LjIsNy45NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHJlY3QgeD1cXFwiMTEuMzQ4XFxcIiB5PVxcXCI5Ljk0NVxcXCIgd2lkdGg9XFxcIjMuNTE1XFxcIiBoZWlnaHQ9XFxcIjAuNzkxXFxcIiB0cmFuc2Zvcm09XFxcIm1hdHJpeCgwLjAxNiwgLTEsIDEsIDAuMDE2LCAyLjU1NywgMjMuMjc5KVxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4wNTQsMTMuNTI5YTcuMTcxLDcuMTcxLDAsMCwwLTEuMS0yLjA0NmwxLjEyMi40MjYsMS4xMzUtLjM5QTcuMTY1LDcuMTY1LDAsMCwwLDEzLjA1NCwxMy41MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHJlY3QgeD1cXFwiNy44MDlcXFwiIHk9XFxcIjIwLjA4MVxcXCIgd2lkdGg9XFxcIjQuNzU3XFxcIiBoZWlnaHQ9XFxcIjAuNzkxXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTIuNTYgMTguMTA4KSByb3RhdGUoLTU3LjYwMylcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNOC4xNDcsMjMuNjk0YTcuMTcxLDcuMTcxLDAsMCwwLC4xMzMtMi4zMTdsLjczNC45NDksMS4xNzEuMjZBNy4xNjUsNy4xNjUsMCwwLDAsOC4xNDcsMjMuNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxyZWN0IHg9XFxcIjE1LjQxOFxcXCIgeT1cXFwiMTguMDUxXFxcIiB3aWR0aD1cXFwiMC43OTFcXFwiIGhlaWdodD1cXFwiNC45MTlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC04LjI1NyAxMC45NTEpIHJvdGF0ZSgtMzAuNzA4KVxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44LDIzLjg1NmE3LjE3MSw3LjE3MSwwLDAsMC0yLjAwNi0xLjE2OGwxLjE3OS0uMjI1Ljc2Mi0uOTI3QTcuMTY1LDcuMTY1LDAsMCwwLDE3LjgsMjMuODU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4wMjQsMTkuMTI1YTUuMjM4LDUuMjM4LDAsMCwxLTIuODA3LS43NjIsMi43NzUsMi43NzUsMCwwLDEtMS40MS0yLjIyOSwyLjc3NSwyLjc3NSwwLDAsMSwxLjI2Ni0yLjMxNCw1LjMsNS4zLDAsMCwxLDIuOTQ4LS45NDgsNi43MTIsNi43MTIsMCwwLDEsMi4xMzQuMzEzbC0uMzMxLDFhNS42NjgsNS42NjgsMCwwLDAtMS43NjktLjI2MSw0LjIzOCw0LjIzOCwwLDAsMC0yLjM1OC43NDQsMS43NjEsMS43NjEsMCwwLDAtLjgzNSwxLjQzLDEuNzYxLDEuNzYxLDAsMCwwLC45MjQsMS4zNzQsNC4yNDIsNC4yNDIsMCwwLDAsMi40LjU5Myw1LjcsNS43LDAsMCwwLDEuNjc4LS4zNzhsLjM3OC45ODVhNi44NDQsNi44NDQsMCwwLDEtMi4wMjIuNDQ4UTEzLjEyMSwxOS4xMjUsMTMuMDI0LDE5LjEyNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTUuNDM1LDEyLjg3NmE0LjMzOCw0LjMzOCwwLDAsMC0uOTg0LDEuNjIyLDIuMDY0LDIuMDY0LDAsMCwxLS4wMTYsMi44MDYsNC40LDQuNCwwLDAsMCwuOTgyLDEuNiwzLjkzMiwzLjkzMiwwLDAsMCwuMDc4LTUuOTg2QzE1LjQ3NiwxMi45LDE1LjQ1NCwxMi44OTMsMTUuNDM1LDEyLjg3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuNTI1LDE1LjI3OGEyNy45MzEsMjcuOTMxLDAsMCwwLTEuMjYzLTMuNzQyLDQuMzc2LDQuMzc2LDAsMCwwLTEuNzc3LjUxNywyNi4wNjMsMjYuMDYzLDAsMCwxLDEuMjUzLDMuNjg1LDI2LjAzOCwyNi4wMzgsMCwwLDEsLjczNCw0LjUzNCw0LjM0Nyw0LjM0NywwLDAsMCwxLjgyNS0uMzUxQTI3LjksMjcuOSwwLDAsMCwxOS41MjUsMTUuMjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNTMsMTIuMjI5QTQuNDM3LDQuNDM3LDAsMSwwLDIyLjMsMTMuNSw0LjQzNyw0LjQzNywwLDAsMCwxNi4xNTMsMTIuMjI5Wm00LjgxMiw3LjMzMmE0LjM0Niw0LjM0NiwwLDEsMSwxLjI0OS02LjAxOEE0LjM0Niw0LjM0NiwwLDAsMSwyMC45NjUsMTkuNTYxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzJjMjkyOFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4wMTUsMTkuMTg2YS44MjIuODIyLDAsMCwwLS4xOTItLjIwOSw0LjM0Nyw0LjM0NywwLDAsMS0uMzMzLjMxOSw0LjUyMiw0LjUyMiwwLDAsMS0uNDQ2LjMzNyw0LjczLDQuNzMsMCwwLDEtLjk0LjQ3Ny42NjkuNjY5LDAsMCwwLC4wMzEuMS42NC42NCwwLDAsMCwuMDQ3LjA5NGwuNDg3LjhMMjIuNSwxOS45ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjgyODI4XFxcIi8+PHJlY3QgeD1cXFwiMjAuNzkzXFxcIiB5PVxcXCIyMC43ODRcXFwiIHdpZHRoPVxcXCIyLjE0N1xcXCIgaGVpZ2h0PVxcXCIwLjQ0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNy43NCAxNC40NjUpIHJvdGF0ZSgtMzEuMzk0KVxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxyZWN0IHg9XFxcIjIyLjg2OFxcXCIgeT1cXFwiMjAuOTZcXFwiIHdpZHRoPVxcXCIyLjE0N1xcXCIgaGVpZ2h0PVxcXCI2Ljg4N1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTkuMjA3IDE2LjA0NCkgcm90YXRlKC0zMS4zOTQpXFxcIiBzdHlsZT1cXFwiZmlsbDojMjgyODI4XFxcIi8+PHBhdGggZD1cXFwiTTI3LjA1NCwyNy40NDNsLS4yMzYtLjM4Ny0xLjgzMywxLjExOS4yMzYuMzg3YS45MjQuOTI0LDAsMCwwLDEuMjc5LjE1OWwuMTEtLjA2N0EuOTI0LjkyNCwwLDAsMCwyNy4wNTQsMjcuNDQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC42OCwxNC44NDVhLjMxNS4zMTUsMCwwLDEsLjMzOC4wMjcsMS4wNzgsMS4wNzgsMCwwLDEsLjI5NC41NzgsMS4xLDEuMSwwLDAsMSwuMDI5LjY1NC4zMjcuMzI3LDAsMCwxLS4yNzguMi40NjguNDY4LDAsMCwxLS4zNy0uMS45MjIuOTIyLDAsMCwxLS4yNjItLjUuOTU1Ljk1NSwwLDAsMS0uMDEtLjU4NUEuNDY2LjQ2NiwwLDAsMSwyMC42OCwxNC44NDVabS4wNi4yMjdhLjE0OS4xNDksMCwwLDAtLjA3NC4wNjMuMjQ3LjI0NywwLDAsMC0uMDI3LjEzMiwxLjYyNiwxLjYyNiwwLDAsMCwuMDY0LjM1NSwxLjU5MiwxLjU5MiwwLDAsMCwuMTEyLjMyOS4yNjguMjY4LDAsMCwwLC4wOTQuMTEuMTQyLjE0MiwwLDAsMCwuMDk0LjAxNS4xMjEuMTIxLDAsMCwwLC4wNzgtLjA0OC4yMTEuMjExLDAsMCwwLC4wMjgtLjEyOCwyLjY0MywyLjY0MywwLDAsMC0uMTg2LS43MjIuMjM1LjIzNSwwLDAsMC0uMDkzLS4xMDdBLjExNi4xMTYsMCwwLDAsMjAuNzM5LDE1LjA3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjk0LDE0LjRhLjMuMywwLDAsMSwuMzQ2LjA1NywxLjQ5MywxLjQ5MywwLDAsMSwuMzI1LjcsMS41MjEsMS41MjEsMCwwLDEsLjA2Ljc3MS4zMS4zMSwwLDAsMS0uMjcuMjI4LjQ0Ni40NDYsMCwwLDEtLjM3OS0uMTM3LDEuMzEsMS4zMSwwLDAsMS0uMjkyLS42MTcsMS4zNDEsMS4zNDEsMCwwLDEtLjA0MS0uN0EuNDQxLjQ0MSwwLDAsMSwyMS42OTQsMTQuNFptLjA3Mi4yNzNhLjEzNi4xMzYsMCwwLDAtLjA3Mi4wNjkuMzE1LjMxNSwwLDAsMC0uMDIxLjE1NSwyLjM1MSwyLjM1MSwwLDAsMCwuMDg0LjQyNywyLjMxLDIuMzEsMCwwLDAsLjEzMS40LjM0Ny4zNDcsMCwwLDAsLjEuMTM1LjEzLjEzLDAsMCwwLC4xLjAyMS4xMS4xMSwwLDAsMCwuMDc2LS4wNTQuMjc1LjI3NSwwLDAsMCwuMDIyLS4xNSwzLjc3MywzLjc3MywwLDAsMC0uMjI0LS44NjIuMzExLjMxMSwwLDAsMC0uMS0uMTMyQS4xLjEsMCwwLDAsMjEuNzY2LDE0LjY3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjMuNDcyLDE1LjkzNGwtLjI2OS4wMzgtLjM3OS0xLjQzOWEuOTU1Ljk1NSwwLDAsMS0uMjU3LjM5MmwtLjA4Ny0uMzMxYS44NDEuODQxLDAsMCwwLC4xNjktLjI2Ljg3NC44NzQsMCwwLDAsLjA3NS0uMzgzbC4yLS4wODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQ1NSwxNS43OTRsLS4yNjkuMDM4LS40MjktMS42MjVhMSwxLDAsMCwxLS4yNDcuNDI5bC0uMS0uMzc2YS44NzQuODc0LDAsMCwwLC4xNjItLjI4NCwxLjAyOCwxLjAyOCwwLDAsMCwuMDY0LS40MjRsLjItLjA4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNjM2LDEzLjExN2MuMTI3LS4wNTUuMjQ5LS4wMDguMzY5LjE0NGEzLjExLDMuMTEsMCwwLDEsLjQxNiwxLjAzNCwzLjE0MywzLjE0MywwLDAsMSwuMTUxLDEuMTFjLS4wMjkuMTktLjExMS4yOTQtLjI0Ny4zMTJzLS4yNzItLjA1OS0uNC0uMjMxYTIuODU1LDIuODU1LDAsMCwxLS4zODEtLjk1LDIuODcxLDIuODcxLDAsMCwxLS4xMzItMS4wMzlBLjQzNy40MzcsMCwwLDEsMjQuNjM2LDEzLjExN1ptLjEwNy40YS4xMjQuMTI0LDAsMCwwLS4wNjcuMDg4LjU4NC41ODQsMCwwLDAsMCwuMjIxLDUuMjE4LDUuMjE4LDAsMCwwLC4xMzkuNjM1LDUuMTUzLDUuMTUzLDAsMCwwLC4xODQuNi42Ni42NiwwLDAsMCwuMTIuMjA4LjExOC4xMTgsMCwwLDAsLjEuMDQuMS4xLDAsMCwwLC4wNzEtLjA3Mi41MjguNTI4LDAsMCwwLDAtLjIxNiw1LjQ0Miw1LjQ0MiwwLDAsMC0uMTQ0LS42NTMsNS40NDcsNS40NDcsMCwwLDAtLjE4OS0uNjE5LjYxMi42MTIsMCwwLDAtLjExOS0uMjA1QS4wOTMuMDkzLDAsMCwwLDI0Ljc0MywxMy41MjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI2LjYzOCwxNS40ODhsLS4yNjkuMDM4LS41NC0yLjAzOUExLjE1MSwxLjE1MSwwLDAsMSwyNS42LDE0bC0uMTI2LS40NzVhLjk5Ljk5LDAsMCwwLC4xNDgtLjMzNywxLjQzNiwxLjQzNiwwLDAsMCwuMDM5LS41MTVsLjItLjA4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjYuNjY2LDEyLjIzNmMuMTI3LS4wNTUuMjU1LjAxMi4zODUuMmE0LjU4NCw0LjU4NCwwLDAsMSwuNDc4LDEuMjY4LDQuNjIsNC42MiwwLDAsMSwuMjEzLDEuMzQzYy0uMDE4LjIyOS0uMS4zNTItLjIzMi4zN3MtLjI3OC0uMDgxLS40MjEtLjNhNC4yODQsNC4yODQsMCwwLDEtLjQ0My0xLjE3OSw0LjI4Myw0LjI4MywwLDAsMS0uMTk0LTEuMjcyQzI2LjQ2OCwxMi40MzgsMjYuNTM5LDEyLjI5MSwyNi42NjYsMTIuMjM2Wm0uMTMxLjVxLS4wNDYuMDE4LS4wNjQuMWEuODI5LjgyOSwwLDAsMCwuMDA5LjI2Niw3Ljg1Niw3Ljg1NiwwLDAsMCwuMTc4Ljc3OXEuMTQzLjU0MS4yMjEuNzM4YS45NDcuOTQ3LDAsMCwwLC4xMzQuMjU4LjExOS4xMTksMCwwLDAsLjEuMDUycS4wNDgtLjAwOS4wNjgtLjA4NWEuNzYyLjc2MiwwLDAsMC0uMDA4LS4yNjIsOC4xMTcsOC4xMTcsMCwwLDAtLjE4Mi0uOHEtLjE0OC0uNTU3LS4yMjctLjc1N2EuODkyLjg5MiwwLDAsMC0uMTMzLS4yNTZRMjYuODQzLDEyLjcxNCwyNi44LDEyLjczMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjcuNjgxLDExLjhjLjEyNy0uMDU1LjI1Ny4wMjMuMzkzLjIzNGE1LjQzMSw1LjQzMSwwLDAsMSwuNTA5LDEuMzg1LDUuNDY3LDUuNDY3LDAsMCwxLC4yNDQsMS40NmMtLjAxMy4yNDktLjA4OC4zODEtLjIyNC40cy0uMjgxLS4wOTItLjQzLS4zMjhhNS4xMSw1LjExLDAsMCwxLS40NzMtMS4yOTQsNS4xLDUuMSwwLDAsMS0uMjI1LTEuMzg4QzI3LjQ4NiwxMi4wMDgsMjcuNTU1LDExLjg1MSwyNy42ODEsMTEuOFptLjE0NC41NDJxLS4wNDYuMDE4LS4wNjIuMTA2YS45Ny45NywwLDAsMCwuMDE1LjI4OXEuMDQuMjU5LjIuODUxdC4yNC44MDdhMS4xMTIsMS4xMTIsMCwwLDAsLjE0LjI4NHEuMDU3LjA2Ny4xMDYuMDU5dC4wNjYtLjA5MWEuOS45LDAsMCwwLS4wMTQtLjI4NHEtLjA0LS4yNi0uMi0uODY3dC0uMjQ1LS44MjdhMS4wNTMsMS4wNTMsMCwwLDAtLjE0LS4yODFRMjcuODcxLDEyLjMyLDI3LjgyNSwxMi4zMzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI5LjkxNSwxNS4wMzRsLS4yNy4wMzctLjcwNi0yLjY2MWExLjQ3OCwxLjQ3OCwwLDAsMS0uMTkyLjYzNmwtLjE2Ni0uNjI1QTEuMjQ4LDEuMjQ4LDAsMCwwLDI4LjcwOCwxMmEyLjIxNCwyLjIxNCwwLDAsMCwwLS42NTNsLjItLjA4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjkuNzEyLDEwLjkyMWMuMTI3LS4wNTQuMjYzLjA0My40MDkuMjk0YTcuMzQ1LDcuMzQ1LDAsMCwxLC41NzIsMS42MTlBNy4zODIsNy4zODIsMCwwLDEsMzEsMTQuNTI3YzAsLjI4OC0uMDcyLjQ0LS4yMDkuNDU4cy0uMjg2LS4xMTQtLjQ0Ny0uMzkzYTYuOTg0LDYuOTg0LDAsMCwxLS41MzUtMS41MjQsNi45NDQsNi45NDQsMCwwLDEtLjI4Ny0xLjYyMUMyOS41MjMsMTEuMTUxLDI5LjU4NiwxMC45NzUsMjkuNzEyLDEwLjkyMVptLjE2OC42MzNxLS4wNDYuMDE4LS4wNTkuMTE5YTEuMjg3LDEuMjg3LDAsMCwwLC4wMjcuMzM0cS4wNTEuMy4yMzUuOTk0dC4yNzcuOTQ2YTEuNDg0LDEuNDg0LDAsMCwwLC4xNTQuMzM0cS4wNi4wOC4xMDkuMDcxdC4wNjMtLjFhMS4yLDEuMiwwLDAsMC0uMDI2LS4zM3EtLjA1MS0uMy0uMjM5LTEuMDExdC0uMjgyLS45NjVhMS40MiwxLjQyLDAsMCwwLS4xNTMtLjMzMlEyOS45MjYsMTEuNTM2LDI5Ljg4LDExLjU1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjEuMTY3LDE2LjM2MmEuNDIyLjQyMiwwLDAsMSwuMzE4LjE4NSwxLjAwNSwxLjAwNSwwLDAsMS0uMjc3LDEuMDMuNDIuNDIsMCwwLDEtLjM2NiwwLC41OS41OSwwLDAsMS0uMzExLS4yNjEuODA4LjgwOCwwLDAsMSwuMjU0LS44OTNBLjU2MS41NjEsMCwwLDEsMjEuMTY3LDE2LjM2MlptLS4wNTEuMTg5YS4xNzUuMTc1LDAsMCwwLS4xOTIuMDg3LDEuNDg3LDEuNDg3LDAsMCwwLS4xNTUuNTY3LjIxNi4yMTYsMCwwLDAsLjAzOS4xMjQuMTkxLjE5MSwwLDAsMCwuMDg0LjA1OC4xNDUuMTQ1LDAsMCwwLC4xODgtLjA2OSwxLjY2NiwxLjY2NiwwLDAsMCwuMTY0LS42LjE4OS4xODksMCwwLDAtLjA0LS4xMjFBLjE2My4xNjMsMCwwLDAsMjEuMTE3LDE2LjU1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjIuMzc2LDE2LjU0OGEuMzgyLjM4MiwwLDAsMSwuMzExLjIxMiwxLjAyNCwxLjAyNCwwLDAsMS0uMDE5LjY2LDEuMDIyLDEuMDIyLDAsMCwxLS4zMTUuNTgxLjM4LjM4LDAsMCwxLS4zNzMuMDI1LjUzMy41MzMsMCwwLDEtLjMtLjI5LDEuMTg5LDEuMTg5LDAsMCwxLC4zMDktMS4xQS41LjUsMCwwLDEsMjIuMzc2LDE2LjU0OFptLS4wNjIuMjNhLjE2Ny4xNjcsMCwwLDAtLjEuMDEzLjIzNS4yMzUsMCwwLDAtLjEuMSwyLjIxOSwyLjIxOSwwLDAsMC0uMTg5LjY5NC4yNjkuMjY5LDAsMCwwLC4wMzMuMTQ3LjE2Ny4xNjcsMCwwLDAsLjA4My4wNjQuMTQzLjE0MywwLDAsMCwuMSwwLC4yMDYuMjA2LDAsMCwwLC4wOTQtLjEsMi40MzYsMi40MzYsMCwwLDAsLjItLjcyNy4yNC4yNCwwLDAsMC0uMDM0LS4xNDRBLjE0MS4xNDEsMCwwLDAsMjIuMzE0LDE2Ljc3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjMuMzcsMTguNTQxbC0uMjgxLS4xMS4zMjgtMS4yMjVhMSwxLDAsMCwxLS40NDIuMTUybC4wNzUtLjI4MWEuODgxLjg4MSwwLDAsMCwuMjkyLS4xLjY4LjY4LDAsMCwwLC4yNTktLjIzOGwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNzkzLDE2LjkxOWEuMzQ4LjM0OCwwLDAsMSwuMy4yNjYsMS43NTEsMS43NTEsMCwwLDEtLjA3NS44NywxLjc0OSwxLjc0OSwwLDAsMS0uMzcxLjc5MS4zNDUuMzQ1LDAsMCwxLS4zODguMDc4LjQ4OC40ODgsMCwwLDEtLjI4OC0uMzQ4LDEuNTg3LDEuNTg3LDAsMCwxLC4wNjctLjc5LDEuNTc3LDEuNTc3LDAsMCwxLC4zNTQtLjcyN0EuNDU3LjQ1NywwLDAsMSwyNC43OTMsMTYuOTE5Wm0tLjA4NC4zMTJhLjE0My4xNDMsMCwwLDAtLjEwNy4wMjUuMzUzLjM1MywwLDAsMC0uMTA2LjE0MSw0LjEyNiw0LjEyNiwwLDAsMC0uMjU3Ljk0OC40MDguNDA4LDAsMCwwLC4wMjEuMTkyLjE0My4xNDMsMCwwLDAsLjA4LjA3NS4xMi4xMiwwLDAsMCwuMS0uMDExLjMxOC4zMTgsMCwwLDAsLjEwNS0uMTM3LDQuNDE4LDQuNDE4LDAsMCwwLC4yNjYtLjk4MS4zNzQuMzc0LDAsMCwwLS4wMjItLjE4OUEuMTE5LjExOSwwLDAsMCwyNC43MSwxNy4yMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI1LjY0OSwxOS40M2wtLjI4MS0uMTEuNDI4LTEuNmExLjAzMywxLjAzMywwLDAsMS0uNDYyLjIyN2wuMS0uMzcxYS45LjksMCwwLDAsLjMtLjE1MS45My45MywwLDAsMCwuMjgxLS4zMjFsLjI0Mi4wMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjIxMSwxNy4yOTFhLjM0NC4zNDQsMCwwLDEsLjI4Mi4zMTksMi42OTIsMi42OTIsMCwwLDEtLjEzMSwxLjA4LDIuNjksMi42OSwwLDAsMS0uNDI3LDEsLjM0LjM0LDAsMCwxLS40LjEzLjQ4Ny40ODcsMCwwLDEtLjI3My0uNDA1LDIuNDk0LDIuNDk0LDAsMCwxLC4xMjItMSwyLjQ3LDIuNDcsMCwwLDEsLjQxLS45MzdBLjQ1MS40NTEsMCwwLDEsMjcuMjExLDE3LjI5MVptLS4xMDYuMzk0YS4xMzMuMTMzLDAsMCwwLS4xMS4wMzYuNTA5LjUwOSwwLDAsMC0uMTE3LjE4Miw2LjYyMiw2LjYyMiwwLDAsMC0uMzI1LDEuMi41OTEuNTkxLDAsMCwwLC4wMDkuMjM3LjEzMy4xMzMsMCwwLDAsLjA3Ny4wODYuMTEuMTEsMCwwLDAsLjEwNy0uMDIzLjQ2NS40NjUsMCwwLDAsLjExNi0uMTc4LDQuNjM5LDQuNjM5LDAsMCwwLC4yLS42MTksNC42NTgsNC42NTgsMCwwLDAsLjEzNi0uNjE1LjU1Mi41NTIsMCwwLDAtLjAxLS4yMzVBLjExLjExLDAsMCwwLDI3LjEwNSwxNy42ODVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjkyNywyMC4zMmwtLjI4MS0uMTEuNTI4LTEuOTcxYTEuMTM0LDEuMTM0LDAsMCwxLS40ODIuM2wuMTIzLS40NmEuOTcyLjk3MiwwLDAsMCwuMzE3LS4yLDEuMjQ4LDEuMjQ4LDAsMCwwLC4zLS40bC4yNDIuMDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yOC45NTMsMjAuNzIxbC0uMjgxLS4xMS41NzMtMi4xMzlhMS4yLDEuMiwwLDAsMS0uNDkxLjMzNmwuMTM0LS41YTEuMDIsMS4wMiwwLDAsMCwuMzIzLS4yMiwxLjQxMywxLjQxMywwLDAsMCwuMzE0LS40NGwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMzAuNzE3LDE3LjgzYy4xNTEuMDIzLjIzOC4xNTUuMjYyLjRhNC40MzYsNC40MzYsMCwwLDEtLjIxMywxLjM4NSw0LjQzNCw0LjQzNCwwLDAsMS0uNTA5LDEuMzA3Yy0uMTQuMTk1LS4yOC4yNjMtLjQyMi4yMDdzLS4yMjYtLjIyLS4yNS0uNDg5YTQuMTk0LDQuMTk0LDAsMCwxLC4yLTEuMyw0LjE0Myw0LjE0MywwLDAsMSwuNDkyLTEuMjQxQzMwLjQyLDE3LjksMzAuNTY2LDE3LjgwNywzMC43MTcsMTcuODNabS0uMTM3LjUxM2EuMTMyLjEzMiwwLDAsMC0uMTE1LjA1My44LjgsMCwwLDAtLjEzMy4yNDEsNy41ODcsNy41ODcsMCwwLDAtLjI0NC43OTEsNy41MzksNy41MzksMCwwLDAtLjE4Ljc3OS45My45MywwLDAsMC0uMDA5LjMuMTMxLjEzMSwwLDAsMCwuMDczLjEuMTA4LjEwOCwwLDAsMCwuMTExLS4wMzkuNzQyLjc0MiwwLDAsMCwuMTMyLS4yMzcsNy44LDcuOCwwLDAsMCwuMjQ4LS44MDYsNy44MzUsNy44MzUsMCwwLDAsLjE4NS0uOC44ODQuODg0LDAsMCwwLC4wMDgtLjNRMzAuNjMzLDE4LjM1MywzMC41OCwxOC4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+XCIsXG5cdH0sXG5cdFwiRWRpdG9yQ29uZmlnXCI6IHtcblx0XHRjb2xvdXI6IFwiI2UzZTNmOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguNzA5LDE4LjM1MWExLjI2NywxLjI2NywwLDAsMCwuNTMyLTEuMzc5QzguNjkyLDE3LjIwNyw4LjcxOCwxNy43NDksOC43MDksMTguMzUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2UzZTNmOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45MjQsMTkuODUyYS44NzEuODcxLDAsMCwwLC42Mi0xLjEzNUExLjQzLDEuNDMsMCwwLDAsMTQuOTI0LDE5Ljg1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlM2UzZjhcXFwiLz48cGF0aCBkPVxcXCJNMi43MTMsMjcuMDc5YTEuNTM4LDEuNTM4LDAsMCwwLC41MjQsMS4zNTNjMS40MTQuNzk0LDYuMzcyLjE3NSw4LjA1Ni0uMmExNC45OTQsMTQuOTk0LDAsMCwwLDIuNDI2LTEuMjEzLDIyLjY0MywyMi42NDMsMCwwLDAsNC43MTMtMi41NTdjMS4wODItLjc5NCwyLjgtMy4wMjksMi45ODUtNC4zNjRsLTEuNDc1LS4zMzJjLS4wMzUsMS41LS4zNzUsMS44NDItMS43MTEsMi4xOTFhMTAuNjYyLDEwLjY2MiwwLDAsMS0zLjU3LjE0LDMuMzYyLDMuMzYyLDAsMCwxLTIuMzEzLTEuNTYyYy0xLjA2NS0xLjQxNC4yMzYtMi40LTEuNDQ5LTIuNS0xLjc3MiwyLjE3My00LjkuNjExLTYuMjY3LjM5M2EzMC4wNjYsMzAuMDY2LDAsMCwwLTEuOTM4LDcuNiwyLjc0OCwyLjc0OCwwLDAsMSwyLjEzOC4zMjNjMi42ODgsMS4wMzkuMzQsMS45NTUtLjczMywxLjY4NUMzLjM2OCwyNy44NjQsMy4xNDEsMjcuMzg0LDIuNzEzLDI3LjA3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNNi4yMzEsMTQuNTM3YTExLjUzOSwxMS41MzksMCwwLDEsMi45ODUsMS4xMjZjMS41MS43NTEsMS43ODEuNjQ2LDEuOTIsMS42OTMuMDE3LjE5Mi0uMDE3LjMuNTMyLjQ3MS45MjUuMjg4LS41MzItLjIyNywxLjk0Ni0uMjE4QTE2LjY0LDE2LjY0LDAsMCwxLDE5LjU1OSwxOC45Yy40NTQuMjg4LjM2Ny42NTUsMS45LjYxMWExOC43NjcsMTguNzY3LDAsMCwwLTEuMi02LjE2MmMtLjg2NC0yLjAwNy0yLjAwNy0yLjMxMy00LjMzOC0zLjA2NC0xLjM2Mi0uNDM2LTUuMzU5LS45MTYtNi42LS4xNDgtMS4xNjEuNzI0LTEuMzc5LDEuNTg5LTIuNDYxLDMuMTA3QTUuMzY2LDUuMzY2LDAsMCwwLDYuMjMxLDE0LjUzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNMTUuODQsMTguMjQ2Yy44NzMuMzU4LS4wNDQsMi42NzEtMS4yNTcsMi4xMTItLjM5My0xLjEwOC41NDEtMS43MzcuNzk0LTIuMjM0YTguNTEsOC41MSwwLDAsMC0yLjQ2MS0uMTQ4Yy0uNTc2LjIxOC0uNzA3LDEuNDQ5LS40MSwyLjAyNSwxLjQsMi43NDEsNy41NjcsMi4xNTYsNi45MTMuMDI2LS4yNjItLjg2NC0uNTA2LTEtMS4zODgtMS4zQTYuODg1LDYuODg1LDAsMCwwLDE1Ljg0LDE4LjI0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNNC44NjksMTcuOTQxYy43LjY3MiwyLjI3OC43NzcsMy4zLjgyOUM4LjMsMTcuNDE3LDguNDEzLDE2LjQsOS41LDE2LjQ4M2ExLjYsMS42LDAsMCwxLS4zMDUsMi4xMywxLjM4NiwxLjM4NiwwLDAsMCwxLjM2Mi0xLjc2MywxNC41NDIsMTQuNTQyLDAsMCwwLTQuNDYtMS44OTRBOS41MDYsOS41MDYsMCwwLDAsNC44NjksMTcuOTQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZmRmZFxcXCIvPjxwYXRoIGQ9XFxcIk0zLjIyOCwyNi41ODFjLjU3Ni0uMDUyLDIuMDc3LjM4NCwyLjIuODczQzQuNDk0LDI3LjU2OCwzLjMwNywyNy40OCwzLjIyOCwyNi41ODFabS0uNTE1LjVjLjQyOC4zMDUuNjU1Ljc4NiwxLjM4OC45NiwxLjA3NC4yNzEsMy40MjEtLjY0Ni43MzMtMS42ODVBMi43NDgsMi43NDgsMCwwLDAsMi43LDI2LjAzMmEzMC4wNjYsMzAuMDY2LDAsMCwxLDEuOTM4LTcuNmMxLjM3LjIxOCw0LjQ5NSwxLjc4MSw2LjI2Ny0uMzkzLDEuNjg1LjEuMzg0LDEuMDgyLDEuNDQ5LDIuNUEzLjM2MiwzLjM2MiwwLDAsMCwxNC42NjIsMjIuMWExMC42NjIsMTAuNjYyLDAsMCwwLDMuNTctLjE0YzEuMzM1LS4zNDksMS42NzYtLjY5LDEuNzExLTIuMTkxbDEuNDc1LjMzMmMtLjE4MywxLjMzNS0xLjksMy41Ny0yLjk4NSw0LjM2NGEyMi42NDMsMjIuNjQzLDAsMCwxLTQuNzEzLDIuNTU3LDE0Ljk5NCwxNC45OTQsMCwwLDEtMi40MjYsMS4yMTNjLTEuNjg1LjM3NS02LjY0MiwxLTguMDU2LjJBMS41MzgsMS41MzgsMCwwLDEsMi43MTMsMjcuMDc5Wm0xMi4yMTEtNy4yMjdhMS40MywxLjQzLDAsMCwxLC42Mi0xLjEzNUEuODcxLjg3MSwwLDAsMSwxNC45MjQsMTkuODUyWm0uOTE2LTEuNjA2YTYuODg1LDYuODg1LDAsMCwxLDIuMTkxLjQ4Yy44ODIuMywxLjEyNi40MzYsMS4zODgsMS4zLjY1NSwyLjEzLTUuNTE2LDIuNzE0LTYuOTEzLS4wMjYtLjMtLjU3Ni0uMTY2LTEuODA3LjQxLTIuMDI1YTguNTEsOC41MSwwLDAsMSwyLjQ2MS4xNDhjLS4yNTMuNS0xLjE4NywxLjEyNi0uNzk0LDIuMjM0QzE1LjgsMjAuOTE3LDE2LjcxMywxOC42LDE1Ljg0LDE4LjI0NlptLTcuMTMxLjFjLjAwOS0uNi0uMDE3LTEuMTQzLjUzMi0xLjM3OUExLjI2NywxLjI2NywwLDAsMSw4LjcwOSwxOC4zNTFabS0zLjg0LS40MWE5LjUwNiw5LjUwNiwwLDAsMSwxLjIyMi0yLjk4NSwxNC41NDIsMTQuNTQyLDAsMCwxLDQuNDYsMS44OTRBMS4zODYsMS4zODYsMCwwLDEsOS4xOSwxOC42MTNhMS42LDEuNiwwLDAsMCwuMzA1LTIuMTNjLTEuMDgyLS4wNzktMS4yLjkzNC0xLjMyNywyLjI4N0M3LjE0NywxOC43MTcsNS41NjcsMTguNjEzLDQuODY5LDE3Ljk0MVpNNCwxNy4yNDJjLS4zMjMtLjg5LS4zMjMtMi4yNzgsMS4wNDctMi4zOTJsLS43LDEuOTQ2QzQuMTYyLDE3LjIxNiw0LjE2MiwxNy4xMiw0LDE3LjI0MlptMi4yMzQtMi43MDZhNS4zNjYsNS4zNjYsMCwwLDEsLjYyOC0xLjI5MmMxLjA4Mi0xLjUxOSwxLjMtMi4zODMsMi40NjEtMy4xMDcsMS4yMzktLjc2OCw1LjIzNy0uMjg4LDYuNi4xNDgsMi4zMy43NTEsMy40NzQsMS4wNTYsNC4zMzgsMy4wNjRhMTguNzY3LDE4Ljc2NywwLDAsMSwxLjIsNi4xNjJjLTEuNTM2LjA0NC0xLjQ0OS0uMzIzLTEuOS0uNjExYTE2LjY0LDE2LjY0LDAsMCwwLTUuOTQ0LTEuMjkyYy0yLjQ3OS0uMDA5LTEuMDIxLjUwNi0xLjk0Ni4yMTgtLjU1LS4xNzUtLjUxNS0uMjc5LS41MzItLjQ3MS0uMTQtMS4wNDctLjQxLS45NDMtMS45Mi0xLjY5M0ExMS41MzksMTEuNTM5LDAsMCwwLDYuMjMxLDE0LjUzN1ptMTUuNDQ5LS40MjhjLS4xNjYtLjU1LjE0LS41MTUuNjcyLS44OWE5LjAyMSw5LjAyMSwwLDAsMSwuOTI1LS42NTVjMS40MDUtLjc4Niw0LjAyNC0uOTE2LDUuMTQxLjAxN0EyLjQ3OSwyLjQ3OSwwLDAsMSwyOS41LDE0LjY1YTUuODM4LDUuODM4LDAsMCwxLTIuNjE4LDMuODMyLDUuMjEzLDUuMjEzLDAsMCwxLTQuNzgzLDEuMmMtLjE1Ny0uMzg0LS4wMzUtMi44MTktLjIxOC0zLjcxOC0uMTY2LS44LS4wNzktLjg5LjM4NC0xLjM3LDEuMzYyLTEuNDE0LDQuMzEyLTIuNDQ0LDUuOTg4LTEuMjMxLjcwNy41MjQuNTA2LjcyNC44NzMsMS4xMjYuNDU0LS40ODktLjM5My0yLjEzLTMuNTE3LTIuMDI1QzIzLjQ4NiwxMi41MjksMjIuNTcsMTQuMTg3LDIxLjY4LDE0LjEwOVpNOC45NzEsOS4xNDNhOC4wOTQsOC4wOTQsMCwwLDEsMi4yNzgtNC42QzEyLjYsMy41LDE0LjAxNiwyLjUwOSwxNi4wOTQsMy42ODdjLjUxNS4yODguNDg5LjQzNi41NDEsMS4xNTJhMy4zMTIsMy4zMTIsMCwwLDEtLjE5MiwxLjVjLTEuMzc5LDQuNDUxLTIuNTMxLDEuODk0LTYuOTQ4LDIuOTVhNi4zNzQsNi4zNzQsMCwwLDEsMi4xMjEtMy40MTNjMS4yLTEuMTYxLDIuMDYtMS45MTEsMy44NTgtMS42NjdhMS44NDIsMS44NDIsMCwwLDEtLjA1MiwyLjMyMmMtLjgsMS4yOTItMSwxLjIxMy0uODgyLDIuMDk1LjYyOC0uMTU3LjgyLS43NjgsMS4xMDgtMS4zNzksMS43NTQtMy42NjYtLjc5NC00LjExMS0yLjM1Ny0zLjQzOUExMC4zNzIsMTAuMzcyLDAsMCwwLDkuNzY2LDcuNTU0Yy0uMTIyLjI0NC0uMjUzLjU1OS0uMzY3LjgyOVptNi45MTMuMTgzQzE2LjA2Nyw4LjIzNSwxNy4xNSw3Ljk2NCwxNy4xNSw0LjZjMC0xLjQ0OS0xLjc4MS0yLjc0OS00LjExMS0xLjc4MS0yLC44Mi0yLjMsMS40NDktMy4zNjksMy4wNTUtMSwxLjUxOS0uOTY5LDMuMTg2LTEuODMzLDQuNTkxLS4yNTMuNC0uNDguNTQxLS43NTkuOTQzLS4yLjMtLjM0OS42NzItLjU1LDEuMDIxQTEyLjk0LDEyLjk0LDAsMCwwLDUuMzY3LDE0LjRjLTEuMDQ3LjAyNi0xLjkyOS4wNDQtMi4wMzQsMS4xMjYtLjE0LDEuNDg0LjU1OSwxLjg1LjU1OSwyLjQwOS0uMDA5LjYtMi40NTMsNi42NzctMS43NzIsMTAuMy4xOTIsMSwuODQ3LDEsMS44OTQsMS4xMjZhMTcuOTMsMTcuOTMsMCwwLDAsOC4wNTYtLjcwN2w0LjEtMS45NjRhMTguODUsMTguODUsMCwwLDAsMy41NjEtMi41LDEyLjM4MywxMi4zODMsMCwwLDAsMS4zMDktMS43MTksMy4yMTMsMy4yMTMsMCwwLDAsLjgtMi4yMDgsOC40NzMsOC40NzMsMCwwLDEsMi45ODUsMWMtLjA2MS42LS4zNTguMzE0LS4zNTguODU1YTEuMzU1LDEuMzU1LDAsMCwwLDEuMDQ3LS44OWMtLjM1OC0uNTI0LS43MzMtLjQzNi0xLjI0OC0uODU1YTguMjEyLDguMjEyLDAsMCwxLDEuNzE5LS43MDdjMS4yMjItLjUwNiwzLjMwOC0yLjA0MiwzLjgyMy0zLjQzOWE0LjQ0OSw0LjQ0OSwwLDAsMC0uNTU5LTMuNzM2LDUuNDQ0LDUuNDQ0LDAsMCwwLTMuNjQ4LTEuMTYxYy0xLjU4LDAtMy4yMTIsMS4xMzUtNC40ODYsMS42MjMtLjQ4OS0uNDI4LS41MjQtLjkxNi0uODgyLTEuMzg4QTEyLjI4MSwxMi4yODEsMCwwLDAsMTUuODg0LDkuMzI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAyMDIwMlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42OCwxNC4xMDljLjg5LjA3OSwxLjgwNy0xLjU4LDMuOTI4LTEuNjUsMy4xMjUtLjEsMy45NzEsMS41MzYsMy41MTcsMi4wMjUtLjM2Ny0uNC0uMTY2LS42LS44NzMtMS4xMjYtMS42NzYtMS4yMTMtNC42MjYtLjE4My01Ljk4OCwxLjIzMS0uNDYzLjQ4LS41NS41NjctLjM4NCwxLjM3LjE4My45LjA2MSwzLjMzNC4yMTgsMy43MThhNS4yMTMsNS4yMTMsMCwwLDAsNC43ODMtMS4yQTUuODM4LDUuODM4LDAsMCwwLDI5LjUsMTQuNjVhMi40NzksMi40NzksMCwwLDAtMS4wODItMi4wNjljLTEuMTE3LS45MzQtMy43MzYtLjgtNS4xNDEtLjAxN2E5LjAyMSw5LjAyMSwwLDAsMC0uOTI1LjY1NUMyMS44MTksMTMuNTk0LDIxLjUxNCwxMy41NTksMjEuNjgsMTQuMTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZjJmMlxcXCIvPjxwYXRoIGQ9XFxcIk04Ljk3MSw5LjE0Myw5LjQsOC4zODNjLjExMy0uMjcxLjI0NC0uNTg1LjM2Ny0uODI5QTEwLjM3MiwxMC4zNzIsMCwwLDEsMTMuMjkyLDMuODFjMS41NjItLjY3Miw0LjExMS0uMjI3LDIuMzU3LDMuNDM5LS4yODguNjExLS40OCwxLjIyMi0xLjEwOCwxLjM3OS0uMTIyLS44ODIuMDc5LS44Ljg4Mi0yLjA5NWExLjg0MiwxLjg0MiwwLDAsMCwuMDUyLTIuMzIyYy0xLjgtLjI0NC0yLjY2Mi41MDYtMy44NTgsMS42NjdBNi4zNzQsNi4zNzQsMCwwLDAsOS41LDkuMjkxYzQuNDE2LTEuMDU2LDUuNTY5LDEuNSw2Ljk0OC0yLjk1YTMuMzEyLDMuMzEyLDAsMCwwLC4xOTItMS41Yy0uMDUyLS43MTYtLjAyNi0uODY0LS41NDEtMS4xNTItMi4wNzctMS4xNzgtMy40OTEtLjE5Mi00Ljg0NC44NTVBOC4wOTQsOC4wOTQsMCwwLDAsOC45NzEsOS4xNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmVmM2YzXFxcIi8+PHBhdGggZD1cXFwiTTQsMTcuMjQyYy4xNjYtLjEyMi4xNjYtLjAyNi4zNDktLjQ0NWwuNy0xLjk0NkMzLjY3MywxNC45NjQsMy42NzMsMTYuMzUyLDQsMTcuMjQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmZWZlZlxcXCIvPjxwYXRoIGQ9XFxcIk01LjQyOCwyNy40NTRjLS4xMjItLjQ4OS0xLjYyMy0uOTI1LTIuMi0uODczQzMuMzA3LDI3LjQ4LDQuNDk0LDI3LjU2OCw1LjQyOCwyNy40NTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFmMWYxXFxcIi8+XCIsXG5cdH0sXG5cdFwiRUpTXCI6IHtcblx0XHRjb2xvdXI6IFwiIzkwYTkzYVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIsMTcuNjcyVjE0LjMyOGwxMS44Ni02LjJWMTEuMkw1LjEsMTUuOTM5bDguNzYyLDQuODM1djMuMVptMjcuODE0LTguODhMMTkuNDY1LDIzLjIyOUgxNS45MTJMMjYuMjgxLDguNzkxWk0yNi45NDcsMjEuNWEuNzk0Ljc5NCwwLDAsMCwuNjE5LS4yNzgsMS4wNjEsMS4wNjEsMCwwLDAsLjI0OC0uNzMyLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDgtLjc1My43NjguNzY4LDAsMCwwLTEuMjE3LDAsMS4xNDEsMS4xNDEsMCwwLDAtLjI0OC43NTMsMS4wOSwxLjA5LDAsMCwwLC4yMzcuNzMyQS43NjMuNzYzLDAsMCwwLDI2Ljk0NywyMS41Wm0yLjE4NiwxLjA0MmEzLjIzNywzLjIzNywwLDAsMS00LjM1Mi0uMDEsMi44NjQsMi44NjQsMCwwLDEsMC00LjEsMy4yMjMsMy4yMjMsMCwwLDEsNC4zNTIsMEEyLjc3MywyLjc3MywwLDAsMSwzMCwyMC40ODYsMi43NCwyLjc0LDAsMCwxLDI5LjEzNCwyMi41MzhaTTE4LjgyMSwxMy4wNjFhLjc5NC43OTQsMCwwLDAsLjYxOS0uMjc4LDEuMDYxLDEuMDYxLDAsMCwwLC4yNDgtLjczMiwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4LS43NTMuNzY5Ljc2OSwwLDAsMC0xLjIxNywwLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDguNzUzLDEuMDksMS4wOSwwLDAsMCwuMjM3LjczMkEuNzYzLjc2MywwLDAsMCwxOC44MjEsMTMuMDYxWk0yMS4wMDcsMTQuMWEzLjIzNywzLjIzNywwLDAsMS00LjM1Mi0uMDEsMi44NjQsMi44NjQsMCwwLDEsMC00LjEsMy4yMjMsMy4yMjMsMCwwLDEsNC4zNTIsMCwyLjc3MywyLjc3MywwLDAsMSwuODY2LDIuMDYzQTIuNzQsMi43NCwwLDAsMSwyMS4wMDcsMTQuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MGE5M2FcXFwiLz5cIixcblx0fSxcblx0XCJFbGl4aXJcIjoge1xuXHRcdGNvbG91cjogXCIjNDUyNDU5XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNy4yNDlcXFwiIHkxPVxcXCItMzM1LjU5N1xcXCIgeDI9XFxcIjE0Ljk3M1xcXCIgeTI9XFxcIi0zMDkuOTk0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMzA2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjAxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjdmNmY4XFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDlcXFwiIHN0b3AtY29sb3I9XFxcIiNhYTljYjNcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4zOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yXFxcIiBzdG9wLWNvbG9yPVxcXCIjNmY1NjdlXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuNjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzJcXFwiIHN0b3AtY29sb3I9XFxcIiM0NTI0NTlcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC44NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMmQwODQzXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuOTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyNjAwM2RcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2VsaXhpcjwvdGl0bGU+PHBhdGggZD1cXFwiTTE3LjgsOC41OTFjMi4wNzksNC41ODQsNy42NCw2LjUsNy4xNDEsMTIuNDc0LS41ODIsNy4wMTctNS41NTEsOC43ODQtOC4zMTYsOC45MDlhOC44MTUsOC44MTUsMCwwLDEtOS40LTcuNDg1QzUuNjE4LDE1LjA0NiwxMi42NTUsMy42MzIsMTYuNzA5LDJBMTUuMDgzLDE1LjA4MywwLDAsMCwxNy44LDguNTkxWm0tLjE2NiwxOC44NTdhLjQyMy40MjMsMCwwLDAtLjA1Ny0uMzI3Yy0uNTkzLTEuMS01LjgxLTEuNjQ1LTYuOTA3LTEuNzUyYTguMjcyLDguMjcyLDAsMCwwLDEuNjM1LDEuMyw3Ljc2Niw3Ljc2NiwwLDAsMCwyLjgxNCwxLjA0MUMxNS45MjIsMjcuODMxLDE3LjQ2NywyNy45MzMsMTcuNjM1LDI3LjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM3YzY0OGZcXFwiLz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjI1XFxcIj48cGF0aCBkPVxcXCJNMTguMjQ4LDEwLjYxOGM0LjQ3LDQuODIzLDYuNDQ1LDQuOTc5LDYuMjM3LDEwLjQ3OC0uMjQ5LDYuNDc2LTQuNTQzLDguMTkxLTcuMDU4LDguNDItNC4yLjU1MS03LjQ5NS0xLjUyOC04LjM1OC01LjY4NkM3LjMxMiwxNy4wNjMsMTIuOTc4LDYuMDIzLDE2LjYzNyw0LjM2QTE1LjMyMywxNS4zMjMsMCwwLDAsMTguMjU4LDEwLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYwMDNkXFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNzVcXFwiPjxwYXRoIGQ9XFxcIk0xNy4zODUsOS45MjFDMjAuMzY5LDE0LDI0LjMxOSwxMy43LDI1LDE5LjY0MWMuMDk0LDYuOTIzLTMuNiw5LjI4My02LjIzNyw5Ljk0OC00LjUsMS4yNzktOC41MTQtLjY0NS0xMC4wOTQtNS0zLjAzNS03LDIuNjUxLTE4LjUxNCw2LjMxLTIwLjkxNWExNS4wODMsMTUuMDgzLDAsMCwwLDIuMzcsNi4yMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PC9nPlwiLFxuXHR9LFxuXHRcIkVsbVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4Y2Q2MzZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiwxNi43NjgsMi43NjgsMzBIMjkuMjMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzVmYjRjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xMywyMy4zNjIsMzAsMjkuMjMyVjE3LjQ5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWE0MDBcXFwiLz48cGF0aCBkPVxcXCJNMTUuMjMyLDE2LDIsMi43NjhWMjkuMjMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzU5NjI3N1xcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNC40NDhWMkgxNy41NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNWZiNGNiXFxcIi8+PHBhdGggZD1cXFwiTTIzLjM5Miw5LjM3Nmw2LjU5NCw2LjU5NC02LjYyNCw2LjYyNEwxNi43NjgsMTZaTTIuNzY4LDIsOC44NjMsOC4xSDIyLjExMUwxNi4wMTYsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4Y2Q2MzZcXFwiLz48cGF0aCBkPVxcXCJNMTYsMTUuMjMybDYuMDUxLTYuMDUxSDkuOTQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlYTQwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIkVSQlwiOiB7XG5cdFx0Y29sb3VyOiBcIiM5MjFhMWVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk03LjI1LDI0Ljc1aDE3LjVMMTIuNSwxMi41LDcuMjUsMTcuNzVaTTIsMzBIMzBWMkgxNkwyLDE2Wm0yNS4zNzUtMi42MjVINC42MjV2LTEwLjVsMTIuMjUtMTIuMjVoMTAuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MjFhMWVcXFwiLz5cIixcblx0fSxcblx0XCJFcmxhbmdcIjoge1xuXHRcdGNvbG91cjogXCIjYTIwMDNlXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNi4zODgsMjMuODY3YTExLjAxMiwxMS4wMTIsMCwwLDEtMy40NDEtOC4yMzQsMTAuNzY1LDEwLjc2NSwwLDAsMSwyLjg2NC03LjVIMnYxNS43M1ptMjAuMDY2LDBhMTYuNDQsMTYuNDQsMCwwLDAsMi41MzctMy4xMzZsLTQuMjE4LTEuODczYTguMzA2LDguMzA2LDAsMCwxLTYuNjQxLDQuMTJjLTQuMzU5LS4wMTQtNi4wNzItMy4zMjktNi4wNjMtNy41ODRIMjguMzZhNi40NjUsNi40NjUsMCwwLDAsMC0uOTM1LDkuMDU3LDkuMDU3LDAsMCwwLTIuMDI5LTYuMzI2SDMwdjE1LjczSDI2LjQ1NlpNMTIuMzMyLDExLjc0MmEzLjcyMywzLjcyMywwLDAsMSwzLjktMy4yMywzLjI5LDMuMjksMCwwLDEsMy41MzIsMy4yM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNhMjAwM2VcXFwiLz5cIixcblx0fSxcblx0XCJGI1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMzNzhiYmFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDE2LDE1LjI4OCwyLjcxMlY5LjM1Nkw4LjY0NCwxNmw2LjY0NCw2LjY0NHY2LjY0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNzhiYmFcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQyLDE2bDQuNzQ2LTQuNzQ2djkuNDkyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzM3OGJiYVxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNiwxNi4yMzcsMi43MTJWOS4zNTZMMjIuODgxLDE2bC02LjY0NCw2LjY0NHY2LjY0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMGI5ZGJcXFwiLz5cIixcblx0fSxcblx0XCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIjoge1xuXHRcdGNvbG91cjogXCIjZjY4MjBjXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNS44LDI0LjZsLjE3LS4yMzdMMTMuOTksOS4xNDlsLjAxNy0uMTYxLTMuNTM1LTYuNjRhLjY1Ni42NTYsMCwwLDAtMS4yMjcuMjA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYzI0YVxcXCIvPjxwYXRoIGQ9XFxcIk01LjksMjQuNDJsLjEyOC0uMjVMMTMuOTY1LDkuMTE0LDEwLjQzOSwyLjQ0OGEuNi42LDAsMCwwLTEuMTMzLjIwNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmE3MTJcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTg0LDE0LjAxbDIuNjMyLTIuN0wxNi41ODMsNi4yODlhLjY3OC42NzgsMCwwLDAtMS4xOTUsMEwxMy45ODEsOC45NzFWOS4yWlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y0YmQ2MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41MzcsMTMuOSwxOS4xLDExLjI4LDE2LjUzNyw2LjRhLjU4OS41ODksMCwwLDAtMS4wNzQtLjA0N0wxNC4wNDksOS4wODJsLS4wNDIuMTM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYTUwZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNS44MDIgMjQuNjAxIDUuODc5IDI0LjUyMyA2LjE1OCAyNC40MSAxNi40MTggMTQuMTg4IDE2LjU0OCAxMy44MzQgMTMuOTg5IDguOTU2IDUuODAyIDI0LjYwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ODIwY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi45MTIsMjkuNzU2LDI2LjIsMjQuNTc3LDIzLjU0Niw4LjI0NkEuNjM1LjYzNSwwLDAsMCwyMi40NzEsNy45TDUuOCwyNC42bDkuMjMzLDUuMTU1YTEuOTI3LDEuOTI3LDAsMCwwLDEuODc4LDBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGUwNjhcXFwiLz48cGF0aCBkPVxcXCJNMjYuMTE1LDI0LjUzNCwyMy40ODMsOC4zMjZhLjU1Ny41NTcsMCwwLDAtLjk2Ny0uMzUzTDUuOSwyNC41NjlsOS4xMzEsNS4xYTEuOTEyLDEuOTEyLDAsMCwwLDEuODYzLDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmNjYTNmXFxcIi8+PHBhdGggZD1cXFwiTTE2LjkxMiwyOS42YTEuOTI3LDEuOTI3LDAsMCwxLTEuODc4LDBMNS44NzYsMjQuNTIyLDUuOCwyNC42bDkuMjMzLDUuMTU1YTEuOTI3LDEuOTI3LDAsMCwwLDEuODc4LDBMMjYuMiwyNC41NzdsLS4wMjMtLjE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlYWIzN1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuMjAxIDEzIDE1LjQwNSAxNi41MzQgMTUuNDA1IDI3LjYwMyAyMS42MjUgMjQuNzg1IDIxLjYyNSAzMSAzMSAyNi43NDMgMzEgMTYuNTM0IDIzLjIwMSAxM1xcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuMjAxIDE0LjczIDE2Ljk4NSAxNy41NDkgMTYuOTg1IDIwLjMyNyAyMy4yMDEgMTcuNTA3IDI5LjQyMSAyMC4zMjcgMjkuNDIxIDE3LjU0OSAyMy4yMDEgMTQuNzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxOS41NjQgMTYuOTg1IDIyLjM4MSAxNi45ODUgMjUuMTU4IDIzLjIwMSAyMi4zMzcgMjkuNDIxIDI1LjE1OCAyOS40MjEgMjIuMzgxIDIzLjIwMSAxOS41NjRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjYwNiAyNi4wOTggMjUuNTUxIDI0LjcxMiAyMy4yMDEgMjUuNzc4IDIzLjIwMSAyOC41NDggMjguNjA2IDI2LjA5OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkZsb3dcIjoge1xuXHRcdGNvbG91cjogXCIjZmZiMDQ3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjcuOTA3XFxcIiB5MT1cXFwiLTMwOC41NTFcXFwiIHgyPVxcXCItNjcuODU3XFxcIiB5Mj1cXFwiLTMwOC41NjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODcuODIyLCAwLCAwLCAtODguNTMzLCA1OTg0LjUzMiwgLTI3MjkwLjYxNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ0NDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmIwNDdcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi02Ny42NzRcXFwiIHkxPVxcXCItMzEwLjEyMVxcXCIgeDI9XFxcIi02Ny42NDdcXFwiIHkyPVxcXCItMzEwLjA2M1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg4Ny44MjIsIDAsIDAsIC04OC41MzMsIDU5NjQuNjY3LCAtMjc0NDMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNzU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZiNTMyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNjcuMDI5XFxcIiB5MT1cXFwiLTMxMC45MVxcXCIgeDI9XFxcIi02Ny4wMjlcXFwiIHkyPVxcXCItMzEwLjg2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDg3LjgyMiwgMCwgMCwgLTg4LjUzMywgNTkwMi44LCAtMjc1MTguNzMzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDY0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDQ0MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYjUzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTY2LjI1MlxcXCIgeTE9XFxcIi0zMTAuMzc3XFxcIiB4Mj1cXFwiLTY2LjMyXFxcIiB5Mj1cXFwiLTMxMC4zNjJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTA2LjE5OCwgMCwgMCwgLTg4LjU1MSwgNzA0OC40MjgsIC0yNzQ3NC4xNjcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNDQxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZhODI5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9mbG93PC90aXRsZT48cGF0aCBkPVxcXCJNMjMuNDI2LDI5LjQxVjIyLjE3MmgtNy4xOGw3LjE4LDcuMjM4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkZjUxO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4yMzEsMjUuMzA2VjE3LjQ3N0gxNi40NjZsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg5MDA7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE5LjUxNSwyMi4xNzFWMzBoNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi42MDgsMThWMTEuODA5SDE2LjQ2NkwyMi42MDgsMThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRmNGY7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTI1LjUyNCwxNi41MjVWOC43SDE3Ljc1OWw3Ljc2Niw3LjgyOVxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjc5OTk5OTk1MjMxNjI4NDtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjg4LDJWOS44MjloNy43NjZMMTIuMjg4LDJcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC44MDAwMDAwMTE5MjA5Mjk7ZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExLDE0LjI2MlY2LjQzM0g0LjcxOWw3LjczMiw3LjgzLDEuNjU5LDBcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC44Nzk5OTk5OTUyMzE2Mjg7ZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExLDI5Ljk1OFYyMC40ODdINC43MTlsOS4zOTEsOS40NzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmI3MDA7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExMiwyMi4xMTRWMTQuMjg1SDYuMzQ2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiNzAwO2ZpbGwtb3BhY2l0eTowLjVcXFwiLz48cGF0aCBkPVxcXCJNMTYuNDY1LDExLjgwOXY3LjgyOWg3Ljc2NmwtNy43NjYtNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmNkMjU7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE0LjA5MiwxMi42OTFWNC44NjJINi4zMjZsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg5MDA7ZmlsbC1vcGFjaXR5OjAuNzAwMDAwMDQ3NjgzNzE2XFxcIi8+PHBhdGggZD1cXFwiTTE2LjI0NiwyMi4xNzFWMzBoNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuMTIyIDIyLjE3MiAxOC42MDkgMTkuNjM4IDE2LjQ2NSAxOS42MzggMTYuNDY2IDExLjgwOSAyMC44NDcgMTEuODA5IDE4Ljg4MiA5LjgyOSAxNC4wOTIgOS44MjkgMTQuMTEgMTQuMjYyIDE0LjExIDIwLjQ4NyAxNC4xMSAzMCAxNi4yNDYgMzAgMTYuMjQ2IDIyLjE3MiAyMS4xMjIgMjIuMTcyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiRm9ydHJhblwiOiB7XG5cdFx0Y29sb3VyOiBcIiM3MzRmOTZcIixcblx0XHRpY29uOiBcIjxnIGlkPVxcXCJnMzc2OFxcXCI+PHJlY3QgaWQ9XFxcInJlY3Q4ODFcXFwiIHg9XFxcIjIuMzRcXFwiIHk9XFxcIjIuMzRcXFwiIHdpZHRoPVxcXCIyNy4zM1xcXCIgaGVpZ2h0PVxcXCIyNy4zM1xcXCIgcng9XFxcIjUuMDhcXFwiIHN0eWxlPVxcXCJmaWxsOiM3MzRmOTZcXFwiLz48cGF0aCBpZD1cXFwicGF0aDE0MTJcXFwiIGQ9XFxcIk02LjA2LDI1LjVjMC0xLjA5LDAtMS4xOS4xLTEuMTlsMS4yNS0uMDZjMSwwLDEuMTgtLjA2LDEuNDItLjE5YS43NC43NCwwLDAsMCwuMzktLjM3Yy4xMi0uMjMuMTItLjI5LjEyLTcuNzIsMC03LDAtNy41LS4xLTcuNjdhMS4wNiwxLjA2LDAsMCwwLS42My0uNSwxMC4yMywxMC4yMywwLDAsMC0xLjM4LS4xbC0xLjE3LDBWNS4zMkgyNS45NHY4LjgySDI0Ljg5YTguNTYsOC41NiwwLDAsMS0xLjItLjA1Yy0uMTQsMC0uMTUtLjA1LS4yMi0uOTVhMTIuNzMsMTIuNzMsMCwwLDAtLjM1LTIuNDMsMy4yMiwzLjIyLDAsMCwwLTIuNjMtMi44MWMtLjU3LS4xLTMuMS0uMi01LjE5LS4ySDEzLjg3djYuNjNsLjc1LDBBNi4zMyw2LjMzLDAsMCwwLDE2LjQ5LDE0YTEuODgsMS44OCwwLDAsMCwuODktLjkxLDUuODYsNS44NiwwLDAsMCwuMzktMS43NWMwLS4zMy4wOC0uNjYuMS0uNzNzMC0uMTMsMS4xOC0uMTNIMjAuMlYyMS4wNkgxNy44NWwwLS42MWE3Ljg1LDcuODUsMCwwLDAtLjU0LTIuNjZjLS4zNi0uNjgtMS4wNS0xLTIuNDUtMS4wOGwtLjc2LS4wNy0uMiwwLDAsMy4zNGMwLDMuNTEsMCwzLjY1LjMsMy45NHMuNDMuMzIsMy4yMi40MmMuMDUsMCwuMDcuMjguMDcsMS4xOXYxLjE4SDYuMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PC9nPlwiLFxuXHR9LFxuXHRcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIjoge1xuXHRcdGNvbG91cjogXCIjMDA1MGIyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjQuMDIzLDIwLjksMjUuNDA4LDIzbDQuNjE1LTdMMjUuNDA4LDlsLTEuMzg1LDIuMUwyNy4yNTUsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+PHBhdGggZD1cXFwiTTcuOTc3LDExLjEsNi41OTIsOSwxLjk3NywxNmw0LjYxNSw3LDEuMzg1LTIuMUw0Ljc0NSwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUwYjJcXFwiLz48cGF0aCBkPVxcXCJNMTMuMDM1LDloMi44bC0uNDk0LDIuOGgyLjhMMTguNjM1LDloMi44bC0uNDk0LDIuOGgyLjhsLS40OTUsMi44aC0yLjhsLS40OTMsMi44aDIuOGwtLjQ5NCwyLjhoLTIuOEwxOC45NjcsMjNoLTIuOGwuNDkzLTIuOC0yLjgsMEwxMy4zNzUsMjNIMTAuNTY3bC40OTMtMi44LTIuOCwwLC40OTQtMi44aDIuOGwuNDkzLTIuNzkzaC0yLjhMOS43NDEsMTEuOGgyLjhabTEuMzE5LDguNGgyLjhsLjQ5NC0yLjhoLTIuOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUwYjJcXFwiLz5cIixcblx0fSxcblx0XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIjoge1xuXHRcdGNvbG91cjogXCIjOGJjMzRhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTQuMjE2LDI0LjE2N2gtLjk4OWEzLjI0LDMuMjQsMCwwLDEtMi44MTEtMS42NDlMNi42NjcsMTZsNC42ODEtOC4xNjdIMTYuMmwtNC4zNCw4LjE3Ni4wNTcuMDMyTDEzLjkzNiwxOS41SDE2LjgyWk04LjQ1NSwxMC41MzVsLTEuMjctMi4yMWExLDEsMCwwLDAtLjg1OS0uNDkySDJsNCw2Ljk5MlpNMjEuNTQsOS40ODJhMy4yMzksMy4yMzksMCwwLDAtMi44MTItMS42NDlIMTcuNTIzTDE1LjA0NSwxMi41SDE4LjAyTDIwLjA4MywxNmwtNC41MzEsOC4xNjdoNS4wNTZMMjUuMzMzLDE2Wk0yNiwxNy4xNzJsLTIuNDcsNC4yNywxLjI4MywyLjIzM2ExLDEsMCwwLDAsLjg1OS40OTJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGJjMzRhXFxcIi8+XCIsXG5cdH0sXG5cdFwiRy1jb2RlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2JhMDAwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE3LjMzMywxNi4zNTZoMEwxNy4zMDksMjAuOGwtMi4xLTEuMDE4LjAyMy00LjQzN2gwbDEwLjU1OC0zLjAzOCwyLjEwNiwxLjAxM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNDkyLDE4LjU3NmExNC45MDksMTQuOTA5LDAsMCwxLTEuMzQzLDMuMDc0LDcuODYsNy44NiwwLDAsMS0xLjM5LDEuODI5LDYuOCw2LjgsMCwwLDEtMS43LDEuMzI0LDcuNDA1LDcuNDA1LDAsMCwxLTIuMDA2Ljg1NSw2LDYsMCwwLDEtMy4wNzIuMjNBNC42NjgsNC42NjgsMCwwLDEsMTIuNDQsMjQuNjRhNS4zMjIsNS4zMjIsMCwwLDEtLjYzNi0uNjI5bC0uNTA4LS4yNDRhNC43MTcsNC43MTcsMCwwLDAsLjQ1Ny4xODEsNS41Miw1LjUyLDAsMCwxLTEuMDE1LTEuNzU4LDguMTM1LDguMTM1LDAsMCwxLS40My0xLjUzM2MtLjAyMy0uMTMxLS4wNDMtLjIzOS0uMDYxLS4zNGE3LjI5Miw3LjI5MiwwLDAsMCwuMzc3LDEuMzU0LDUuODM2LDUuODM2LDAsMCwwLDEuNjE0LDIuMzE5Yy4wNi4wNTQuMTI3LjEuMTkuMTQ4LjA0LjAwOC4wNzguMDIyLjExOS4wMjlhNi40NTQsNi40NTQsMCwwLDAsMi45MjgtLjIxOSw4LjQsOC40LDAsMCwwLDEuOTEtLjgwNyw3LjY1OCw3LjY1OCwwLDAsMCwxLjU4OS0xLjIyNyw4LjY2Miw4LjY2MiwwLDAsMCwxLjI5LTEuNjksMTIuNjY3LDEyLjY2NywwLDAsMCwxLjAxOS0yLjE5NEwyMy4zLDE5Yy4wNTYtLjE1My4wOTEtLjI1NC4wOTEtLjI1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNTI0LDQuMDEzYTExLjYsMTEuNiwwLDAsMC02LjU4OC0xLjk5NCwxMy44LDEzLjgsMCwwLDAtOS4zNzMsNC44NEExOC4yNDMsMTguMjQzLDAsMCwwLDQsMTguOGMuMDIxLDMuODUxLDEuNDgxLDcuODA2LDUuMTEyLDkuNTc1YTEzLjU2MywxMy41NjMsMCwwLDAsNC4xNTksMS41NjQsMTIuMTE0LDEyLjExNCwwLDAsMCw2Ljg2OS0xLjUyOWMtMi43MzQsMS4zMzMtNi4xMiwxLjk5My04Ljg5NC40LTIuNjg5LTEuNTQzLTMuOTgzLTQuNzI0LTQuMjIxLTcuNy0uNTEyLTYuNCwzLjEtMTMuNjQsOS4xMzItMTYuMjgxLDMuNTEyLTEuNTM3LDcuMzA3LTEuNTg1LDEwLjIzOSwxLjFDMjYuNzI3LDUuMjQ0LDI1LDQuMzA1LDI0LjUyNCw0LjAxM1ptLTE0LjM1OSwyNC44LS4xMzgtLjA5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTI5LDI2Ljc4OGMtMy4wNDQsMi41ODItNy45Miw0LjE0OS0xMS41NTQsMS44NTdDNy4yNCwyNi4yODksNi41MywyMS4wODksNy4yMTIsMTcuMDgzYTE3LjIxOCwxNy4yMTgsMCwwLDEsNi43LTEwLjk3YzMuNzcxLTIuNjM2LDguODgtMy40OSwxMi40ODktLjE4MmwtMi4yNywzLjI5MWMtMi41MS0yLjM1NS02LjMtMS45NTYtOC45NDUtLjA1MkExMi40MzQsMTIuNDM0LDAsMCwwLDEwLjUsMTYuMmMtLjY2MiwyLjYyMy0uNSw2LjAxMSwxLjUsOC4wNDcsMi4wODgsMi4xMjksNS4xMTIsMi4xMTYsNy42NTYuOEExMC4zMzQsMTAuMzM0LDAsMCwwLDI0LjUsMTguNjM2TDE3LjMwNywyMC44bC4wMjItNC40MzhMMjcuODksMTMuMzE5bC4xLjgwNmgwQTE2LjYyNSwxNi42MjUsMCwwLDEsMjIuNTI5LDI2Ljc4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiYTAwMDBcXFwiLz5cIixcblx0fSxcblx0XCJHRFNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0NzhjYmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOC4xNjYsMjEuMDI5djEuNjUyYS4zNzQuMzc0LDAsMCwxLS4yNi4zNTdsLTIuNi44NDFhLjM2Ny4zNjcsMCwwLDEtLjMzNS0uMDU0LjM3NC4zNzQsMCwwLDEtLjE1NS0uM3YtMS44bC0yLjQzOC40NjRWMjQuMDJhLjM3NS4zNzUsMCwwLDEtLjMyNS4zNzFsLTMuNTI1LjQ4M2MtLjAxNiwwLS4wMzQsMC0uMDUxLDBBLjM3NC4zNzQsMCwwLDEsMTguMSwyNC41VjIyLjU1N2wtMS44MTkuMDA4aC0uMjY3bC0xLjgxOS0uMDA4VjI0LjVhLjM3NS4zNzUsMCwwLDEtLjM3NS4zNzZjLS4wMTcsMC0uMDM0LDAtLjA1MiwwbC0zLjUyNS0uNDgzYS4zNzUuMzc1LDAsMCwxLS4zMjQtLjM3MVYyMi4xODRsLTIuNDM5LS40NjR2MS44YS4zNzQuMzc0LDAsMCwxLS4xNTQuMy4zNy4zNywwLDAsMS0uMzM2LjA1NGwtMi42LS44NDFhLjM3NC4zNzQsMCwwLDEtLjI1OS0uMzU3VjIxLjAyOWwtMS42MDgtLjU0MWE0LjU1OCw0LjU1OCwwLDAsMC0uMTI0LDEuMDRjMCw0LjMxNyw2LjA4Miw3LjY1LDEzLjYsNy42NzRoLjAxOWM3LjUxNy0uMDI0LDEzLjYtMy4zNTYsMTMuNi03LjY3NGE0LjU0LDQuNTQsMCwwLDAtLjEtLjk1WlxcXCIgZmlsbD1cXFwiIzQ3OGNiZlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjcxMSwxMy4zNzNWMjAuMWwuOTA3LjMwNmEuMzc0LjM3NCwwLDAsMSwuMjU2LjM1NXYxLjY1bDEuODU1LjZWMjEuMjY3YS4zNzYuMzc2LDAsMCwxLC40NDUtLjM2OWwzLjE4OS42MDlhLjM3NC4zNzQsMCwwLDEsLjMwNS4zNjh2MS44MThsMi43NzUuMzc5di0xLjg5YS4zNzQuMzc0LDAsMCwxLC4zNzYtLjM3NWgwbDIuMzI3LjAwOSwyLjMyNi0uMDA5YS4zNzQuMzc0LDAsMCwxLC4zNzcuMzc1djEuODlsMi43NzUtLjM3OVYyMS44NzRhLjM3My4zNzMsMCwwLDEsLjMtLjM2OGwzLjE4OS0uNjA5YS4zNzcuMzc3LDAsMCwxLC40NDYuMzY5djEuNzQxbDEuODU1LS42VjIwLjc2YS4zNzQuMzc0LDAsMCwxLC4yNTUtLjM1NWwuNjE4LS4yMDhWMTMuMzczaC4wMTdBMjYuNzkyLDI2Ljc5MiwwLDAsMCwzMCwxMC45MzFhMTkuMDIsMTkuMDIsMCwwLDAtMi41MDktMy4yODhBMjQuNTA3LDI0LjUwNywwLDAsMCwyNSw5LjA5MWExMy4wMSwxMy4wMSwwLDAsMC0xLjI3OS0xLjA1MiwxNS4zNjUsMTUuMzY1LDAsMCwwLTEuMzc1LS44OTQsMjguMzUzLDI4LjM1MywwLDAsMCwuMjMyLTMuMDcxQTE1Ljk2OCwxNS45NjgsMCwwLDAsMTguODQ3LDIuOGEyNi40NCwyNi40NCwwLDAsMC0xLjM4NSwyLjcsOS40Niw5LjQ2LDAsMCwwLTEuNDUzLS4xMTZoLS4wMThhOS40NTcsOS40NTcsMCwwLDAtMS40NTQuMTE2LDI2LjI3NSwyNi4yNzUsMCwwLDAtMS4zODUtMi43QTE1Ljk2MSwxNS45NjEsMCwwLDAsOS40MjIsNC4wNzVhMjguMTQyLDI4LjE0MiwwLDAsMCwuMjMyLDMuMDcxLDE1LjMxMiwxNS4zMTIsMCwwLDAtMS4zNzYuODk0QTEzLjA2LDEzLjA2LDAsMCwwLDcsOS4wOTFhMjQuNTUzLDI0LjU1MywwLDAsMC0yLjQ5LTEuNDQ4QTE5LjAyLDE5LjAyLDAsMCwwLDIsMTAuOTMxYTI2Ljc5MiwyNi43OTIsMCwwLDAsMS42OTQsMi40NDNaXFxcIiBmaWxsPVxcXCIjNDc4Y2JmXFxcIi8+PHBhdGggZD1cXFwibTEyLjQ2MiAxNi42YTIuNzM5IDIuNzM5IDAgMSAxLTIuNzQtMi43MzggMi43MzkgMi43MzkgMCAwIDEgMi43NCAyLjczOFxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIm0xMS44IDE2Ljc2NGExLjgxOSAxLjgxOSAwIDEgMS0xLjgxOS0xLjgxOSAxLjgxNyAxLjgxNyAwIDAgMSAxLjgxOSAxLjgxOVxcXCIgZmlsbD1cXFwiIzQxNDA0MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNjYsMTkuNTlhLjg0NC44NDQsMCwwLDEtLjg4Mi0uOFYxNi4yNjdhLjg4Ni44ODYsMCwwLDEsMS43NjQsMHYyLjUyMmEuODQ1Ljg0NSwwLDAsMS0uODgzLjhcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJtMTkuODcxIDE2LjZhMi43MzkgMi43MzkgMCAxIDAgMi43NC0yLjczOCAyLjczOSAyLjczOSAwIDAgMC0yLjc0IDIuNzM4XFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwibTIwLjUzMSAxNi43NjRhMS44MTggMS44MTggMCAxIDAgMS44MTctMS44MTkgMS44MTcgMS44MTcgMCAwIDAtMS44MTcgMS44MTlcXFwiIGZpbGw9XFxcIiM0MTQwNDJcXFwiLz5cIixcblx0fSxcblx0XCJHaXRcIjoge1xuXHRcdGNvbG91cjogXCIjZGQ0YzM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNDcyLDE0Ljc1MywxNy4yNDcsMi41MjhhMS44LDEuOCwwLDAsMC0yLjU1LDBMMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNCwyLjUyOCwxNC43YTEuOCwxLjgsMCwwLDAsMCwyLjU1MUwxNC43NTMsMjkuNDcyYTEuOCwxLjgsMCwwLDAsMi41NSwwTDI5LjQ3MiwxNy4zYTEuOCwxLjgsMCwwLDAsMC0yLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGMzNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiR0xTTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0Mzg2YjVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk03Ljc3OSwxOC45MjNBMi4zMzMsMi4zMzMsMCwwLDEsNS40LDE3LjE2Yy4zMDYsMS40NjIsMS45NjEsMi44OTIsNy4xODMsMy41MjlhMTQuMjI4LDE0LjIyOCwwLDAsMCw5LjIzMi0xLjYxMnMuNzMzLS4zMjIuMjkzLjE3NmMwLDAtMy4xMDcsMi44NzMtOS4yLDIuOVMxLjk3LDE5LjEwNywyLDE2Yy0uMDI5LTMuMTA3LDQuODA2LTYuMTg1LDEwLjktNi4xNTVzOS4yLDIuOSw5LjIsMi45Yy40NC41LS4yOTMuMTc2LS4yOTMuMTc2LTEuMDg0LS43LTQuMjg2LTIuMDg5LTkuMjMyLTEuNjEyLTQuODY2LjQ2OS02LjQ1MywyLjEyMi02Ljk4MSwzLjIzNWEzLjI1NCwzLjI1NCwwLDAsMC0uMzE4LDEuMjQsMi40MjQsMi40MjQsMCwwLDEsMi41LTIuMzE2QTIuNTA3LDIuNTA3LDAsMCwxLDEwLjMsMTYuMTk1LDIuNTA2LDIuNTA2LDAsMCwxLDcuNzc5LDE4LjkyWm0xOS42NDctMS4wNzRIMzB2LjkzN0gyNi4zNDRWMTMuNjA5aDEuMDgydjQuMjRaTTIzLjQ1NCwxNmgyLjE2M3YyLjc5MUgyNC45bC0uMTA4LS42NDlhMS45LDEuOSwwLDAsMS0xLjYxNC43ODYsMi40MTQsMi40MTQsMCwwLDEtMi4zNzktMi43MTEsMi40ODUsMi40ODUsMCwwLDEsMi41MzEtMi43NEEyLjA1MywyLjA1MywwLDAsMSwyNS42LDE1LjIxN0gyNC41MTVhMS4xMzYsMS4xMzYsMCwwLDAtMS4xMzItLjg1MWMtLjc3MSwwLTEuNDg1LjUzNC0xLjQ4NSwxLjg2LDAsMS40MTMuNzcxLDEuNzgxLDEuNTA2LDEuNzgxYTEuMjgsMS4yOCwwLDAsMCwxLjI1NC0xLjEzOWgtMS4yVjE2Wk03Ljc4MSwxNC4xYTEuODYsMS44NiwwLDAsMC0xLjgsMi4xMDUsMS44NiwxLjg2LDAsMCwwLDEuOCwyLjEwNSwxLjg2LDEuODYsMCwwLDAsMS44LTIuMTA1QTEuODYsMS44NiwwLDAsMCw3Ljc4MSwxNC4xWm0yLjkxMSwxLjM4M2guNTI1di40NjhoLjAxM2ExLjEyLDEuMTIsMCwwLDEsLjk4Ny0uNTYzLDEuNTY1LDEuNTY1LDAsMCwxLDEuNTA2LDEuNjc3LDEuNjc1LDEuNjc1LDAsMCwxLTEuNTgzLDEuODI0LDEsMSwwLDAsMS0uODgtLjQ0M2gtLjAxM1YyMC4xaC0uNTU3VjE1LjQ3OVpNMTIuMSwxOC40Yy42MDgsMCwxLjAxOS0uNTI3LDEuMDE5LTEuMjU0LDAtLjQyNC0uMTcxLTEuMjY0LTEuMDMyLTEuMjY0LS44LDAtLjg5My44NjctLjg5MywxLjQwNiwwLC44OC41NTEsMS4xMTQuOTA1LDEuMTE0Wm01LS42NTJhMS4zNzgsMS4zNzgsMCwwLDEtMS40ODgsMS4xMzMsMS40ODcsMS40ODcsMCwwLDEtMS40ODItMS42NThjMC0xLjAyNS40OTQtMS44NDIsMS41ODgtMS44NDIuOTU2LDAsMS40MjQuNzYsMS40MjQsMS45MzFIMTQuNzIxYzAsLjY5LjMyMywxLjA4OS45NjIsMS4wODlhLjg0MS44NDEsMCwwLDAsLjg1NC0uNjUySDE3LjFabS0uNTktLjg4Yy0uMDMyLS41MTMtLjI0Ny0uOTg3LS45MjQtLjk4N2EuOTcyLjk3MiwwLDAsMC0uOTE4Ljk4N2gxLjg0MlptMy43MTMsMS45MTdoLS41NTdWMTYuNzUxYzAtLjU3Ni0uMTY1LS44NjctLjcwOS0uODY3LS4zMTcsMC0uODc0LjItLjg3NCwxLjF2MS44aC0uNTU3VjE1LjQ3OWguNTI1di40NjhoLjAxM2ExLjIsMS4yLDAsMCwxLDEtLjU2MywxLjA0NiwxLjA0NiwwLDAsMSwxLjE1OCwxLjE1MnYyLjI1M1xcXCIgc3R5bGU9XFxcImZpbGw6IzQzODZiNVxcXCIvPlwiLFxuXHR9LFxuXHRcIkdvIG1vZHVsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZTMyNjJcIixcblx0XHRpY29uOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjU0LjUgMjI1XFxcIj48dGl0bGU+ZmlsZV90eXBlX2dvX3BhY2thZ2U8L3RpdGxlPjxwYXRoIGQ9XFxcIk02MS45NDksMTMuMDY4YzE2LjA2LS4xNDcsMzIuMTQzLDAsNDguMjExLS4wNjItMy44MSwxNi40MDgtNy40NjYsMzIuODYyLTExLjI2MSw0OS4yNzdIMjUuNTQ4Yy0yLjMxOSwwLTQuNjM3LjA3Ny02Ljk1Ni0uMDkzQzMzLDQ1Ljc3NSw0Ny41NjYsMjkuNSw2MS45NDksMTMuMDY4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZTZjOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNDMuNTA5LDEzLjAxNGg0OC4wNzJjMTQuNDM3LDE2LjQzMSwyOS4wMTMsMzIuNzIzLDQzLjQxMSw0OS4xNzctOS4yNzQuMTkzLTE4LjU0OSwwLTI3LjgyMy4wODVIMTU0LjY1NEMxNTEuMDA2LDQ1LjgzNywxNDcuMTExLDI5LjQ2LDE0My41MDksMTMuMDE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZTZjOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMTAuMTYsMTMuMDE0aDMzLjM0OWMzLjYsMTYuNDQ2LDcuNDg5LDMyLjgyMywxMS4xNiw0OS4yNTRIOTguOUMxMDIuNjk0LDQ1Ljg2OCwxMDYuMzUsMjkuNDIyLDExMC4xNiwxMy4wMTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjNzVlXFxcIi8+PHBhdGggZD1cXFwiTTE4LjU5Miw2Mi4xODNjMi4zMTkuMTcsNC42MzcuMDg1LDYuOTU2LjA5M0g5OC45cTAsMjYuMDI2LjA1NCw1Mi4wNTJhMTguODU3LDE4Ljg1NywwLDAsMCwxLjk3OS4xMzloNTIuMTE0YTE0LjY5MywxNC42OTMsMCwwLDAsMS41NDYtLjEwOGMuMTQ3LTE3LjM2NiwwLTM0LjczMi4wNy01Mi4xaDUyLjUxNmM5LjI3NC0uMDQ2LDE4LjU0OS4xMDgsMjcuODIzLS4wODVWMjEyLjYySDE4LjZRMTguNTkyLDEzNy40MDUsMTguNTkyLDYyLjE4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlN2JmNTVcXFwiLz48cGF0aCBkPVxcXCJNOTguOSw2Mi4yOTFoNTUuNzY5Yy0uMDYyLDE3LjM2Ni4wODUsMzQuNzMyLS4wNyw1Mi4xLS41MTguMDU0LTEuMDM2LjA5My0xLjU0Ni4xMDhIMTAwLjk0YTE4Ljg1NywxOC44NTcsMCwwLDEtMS45NzEtLjEzMUM5OC44NjEsOTYuOTkzLDk4Ljk2OSw3OS42MzQsOTguOSw2Mi4yOTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGJiNTUxXFxcIi8+PHJlY3QgeD1cXFwiMzQuMzg5XFxcIiB5PVxcXCIxNjMuNjgyXFxcIiB3aWR0aD1cXFwiNzIuNDE3XFxcIiBoZWlnaHQ9XFxcIjI3Ljg4NVxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZjJmMlxcXCIvPjxwYXRoIGQ9XFxcIk02MS40MjIsMTM3LjA4NWMtLjM4OCwwLS40ODctLjE5NC0uMjkxLS40ODdsMi4wNDEtMi42MjVhMS4zOTMsMS4zOTMsMCwwLDEsMS4wNjktLjQ4N2gzNC43Yy4zODgsMCwuNDg3LjI5MS4yOTEuNTg0TDk3LjU4MiwxMzYuNmExLjQ4MSwxLjQ4MSwwLDAsMS0uOTcyLjU4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48cGF0aCBkPVxcXCJNNDYuNzQsMTQ2LjAyOGMtLjM4OCwwLS40ODctLjE5NC0uMjkxLS40ODdsMi4wNDEtMi42MjVhMS4zOTMsMS4zOTMsMCwwLDEsMS4wNjktLjQ4N0g5My44OWEuNDQ3LjQ0NywwLDAsMSwuNDg3LjU4NGwtLjc3OCwyLjMzM2EuODUuODUsMCwwLDEtLjg3NS41ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTcwLjI2NCwxNTQuOTcxYy0uMzg4LDAtLjQ4Ny0uMjkxLS4yOTEtLjU4NGwxLjM1Ny0yLjQzYTEuMjg5LDEuMjg5LDAsMCwxLC45NzItLjU4NEg5MS43NDdjLjM4OCwwLC41ODQuMjkxLjU4NC42ODFsLS4xOTQsMi4zMzNhLjczMS43MzEsMCwwLDEtLjY4MS42ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTE3MS4xNjMsMTM1LjMzNWMtNi4xMjQsMS41NTYtMTAuMywyLjcyMi0xNi4zMyw0LjI4LTEuNDYyLjM4OC0xLjU1Ni40ODctMi44MTktLjk3MmExMy4wMTEsMTMuMDExLDAsMCwwLTQuNTY5LTMuNjk0Yy02LjEyNC0zLjAxMy0xMi4wNTQtMi4xMzgtMTcuNTk0LDEuNDYyYTIwLjY3MSwyMC42NzEsMCwwLDAtOS45MTgsMTguNDY5LDE1LjI0MiwxNS4yNDIsMCwwLDAsMTMuMTIzLDE1LjI2MWM2LjYxLjg3NSwxMi4xNTEtMS40NjIsMTYuNTI1LTYuNDE1Ljg3NS0xLjA2OSwxLjY1My0yLjIzNiwyLjYyNS0zLjZIMTMzLjQ0NmMtMi4wNDEsMC0yLjUyOC0xLjI2My0xLjg0Ny0yLjkxNiwxLjI2My0zLjAxMywzLjYtOC4wNjgsNC45NTgtMTAuNmEyLjYyNSwyLjYyNSwwLDAsMSwyLjQzLTEuNTU2aDM1LjM4NGMtLjE5NCwyLjYyNS0uMTk0LDUuMjQ5LS41ODQsNy44NzRhNDEuNDU2LDQxLjQ1NiwwLDAsMS03Ljk2NywxOS4wNDJjLTYuOTk1LDkuMjM0LTE2LjEzNiwxNC45Ny0yNy43LDE2LjUyNS05LjUyNiwxLjI2My0xOC4zNzQtLjU4NC0yNi4xNDgtNi40MTVBMzAuNTMzLDMwLjUzMywwLDAsMSw5OS42MjUsMTYwLjUxYy0xLjI2My0xMC42LDEuODQ3LTIwLjEyMiw4LjI2Mi0yOC40ODFBNDMuMTM3LDQzLjEzNywwLDAsMSwxMzUuMSwxMTUuMjEyYzkuMTM3LTEuNjUzLDE3Ljg4Ni0uNTg0LDI1Ljc2LDQuNzYzQTMwLjQ3MSwzMC40NzEsMCwwLDEsMTcyLjE0LDEzMy42OEMxNzIuNzE5LDEzNC41NTgsMTcyLjMzLDEzNS4wNDQsMTcxLjE2MywxMzUuMzM1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk0yMDMuMzM4LDE4OS4wOWMtOC44NDYtLjE5NC0xNi45MTMtMi43MjItMjMuNzE5LTguNTU0YTMwLjQ4NSwzMC40ODUsMCwwLDEtMTAuNS0xOC43NjFjLTEuNzUtMTAuOTg0LDEuMjYzLTIwLjcsNy44NzQtMjkuMzU2LDcuMS05LjMzMSwxNS42NTEtMTQuMTkyLDI3LjIxOC0xNi4yMzMsOS45MTgtMS43NSwxOS4yNDctLjc3OCwyNy43LDQuOTU4LDcuNjgsNS4yNDksMTIuNDQyLDEyLjM0NSwxMy43MDYsMjEuNjc2LDEuNjUzLDEzLjEyMy0yLjEzOCwyMy44MTYtMTEuMTc5LDMyLjk1M2E0NC41NDIsNDQuNTQyLDAsMCwxLTIzLjMyOSwxMi40NDJDMjA4LjQ5LDE4OC43LDIwNS44NjYsMTg4LjgsMjAzLjMzOCwxODkuMDlabTIzLjEzNS0zOS4yNzFhMjcuOTc4LDI3Ljk3OCwwLDAsMC0uMjkxLTMuMjA4LDE2LjAxMywxNi4wMTMsMCwwLDAtMTguMzc1LTEzLjIzNXEtLjczNC4xMTktMS40NTQuMzA2Yy05LjA0LDIuMDQxLTE0Ljg3Myw3Ljc3Ny0xNy4wMTEsMTYuOTEzYTE2LjAwOSwxNi4wMDksMCwwLDAsOC45NDMsMTguMzc0LDE3LjgyLDE3LjgyLDAsMCwwLDE1Ljg0NS0uNTg0YzcuNjc5LTMuOTg1LDExLjg1OS0xMC4yMDYsMTIuMzQ4LTE4LjU2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48L3N2Zz5cIixcblx0fSxcblx0XCJHb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMGFjZDdcIixcblx0XHRpY29uOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjU0LjUgMjI1XFxcIj48dGl0bGU+ZmlsZV90eXBlX2dvPC90aXRsZT48cGF0aCBkPVxcXCJNLTQ2LjkyNiw4OWMtLjYyMSwwLS43NzctLjMxMS0uNDY2LS43NzdsMy4yNjItNC4xOTRhMi4yMjUsMi4yMjUsMCwwLDEsMS43MDgtLjc3N0gxMy4wMjZjLjYyMSwwLC43NzcuNDY2LjQ2Ni45MzJsLTIuNjQsNC4wMzhhMi4zNjcsMi4zNjcsMCwwLDEtMS41NTMuOTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0tNzAuMzc5LDEwMy4yODVjLS42MjEsMC0uNzc3LS4zMTEtLjQ2Ni0uNzc3bDMuMjYyLTQuMTk0YTIuMjI1LDIuMjI1LDAsMCwxLDEuNzA4LS43NzdINC45NWEuNzE0LjcxNCwwLDAsMSwuNzc3LjkzMkw0LjQ4NCwxMDIuMmExLjM1OCwxLjM1OCwwLDAsMS0xLjQuOTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0tMzIuNzkyLDExNy41NzRjLS42MjEsMC0uNzc3LS40NjYtLjQ2Ni0uOTMybDIuMTc0LTMuODgzYTIuMDYsMi4wNiwwLDAsMSwxLjU1My0uOTMySDEuNTMzYy42MjEsMCwuOTMyLjQ2Ni45MzIsMS4wODdsLS4zMTEsMy43MjhhMS4xNjcsMS4xNjcsMCwwLDEtMS4wODcsMS4wODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PHBhdGggZD1cXFwiTTEyOC40MjYsODYuMmMtOS43ODUsMi40ODUtMTYuNDY0LDQuMzQ5LTI2LjA5Myw2LjgzNC0yLjMzLjYyMS0yLjQ4NS43NzctNC41LTEuNTUzLTIuMzMtMi42NC00LjAzOC00LjM0OS03LjMtNS45LTkuNzg1LTQuODE1LTE5LjI1OS0zLjQxNy0yOC4xMTIsMi4zMy0xMC41NjEsNi44MzQtMTYsMTYuOTI5LTE1Ljg0MiwyOS41MS4xNTUsMTIuNDI1LDguNywyMi42NzYsMjAuOTY4LDI0LjM4NSwxMC41NjEsMS40LDE5LjQxNC0yLjMzLDI2LjQtMTAuMjUxLDEuNC0xLjcwOCwyLjY0LTMuNTcyLDQuMTk0LTUuNzQ3SDY4LjE2M2MtMy4yNjIsMC00LjAzOC0yLjAxOS0yLjk1MS00LjY1OSwyLjAxOS00LjgxNSw1Ljc0Ny0xMi44OTEsNy45MjEtMTYuOTI5YTQuMTk0LDQuMTk0LDAsMCwxLDMuODgzLTIuNDg1aDU2LjUzNWMtLjMxMSw0LjE5NC0uMzExLDguMzg3LS45MzIsMTIuNTgxYTY2LjIzOSw2Ni4yMzksMCwwLDEtMTIuNzM2LDMwLjQ0MkMxMDguNywxNTkuNTEsOTQuMSwxNjguNjczLDc1LjYxOCwxNzEuMTU4Yy0xNS4yMjEsMi4wMTktMjkuMzU1LS45MzItNDEuNzgtMTAuMjUxYTQ4Ljc4NSw0OC43ODUsMCwwLDEtMTkuNzI1LTM0LjQ4Yy0yLjAxOS0xNi45MjksMi45NTEtMzIuMTUsMTMuMi00NS41MDhDMzguMzQyLDY2LjQ3NSw1Mi45NDIsNTcuMzEyLDcwLjgsNTQuMDVjMTQuNi0yLjY0LDI4LjU3OC0uOTMyLDQxLjE1OSw3LjYxYTQ4LjY4Niw0OC42ODYsMCwwLDEsMTguMDE3LDIxLjlDMTMwLjkxMSw4NC45NTgsMTMwLjI4OSw4NS43MzUsMTI4LjQyNiw4Ni4yWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0xNzkuODM1LDE3Mi4wOWMtMTQuMTM0LS4zMTEtMjcuMDI1LTQuMzQ5LTM3LjktMTMuNjY4YTQ4LjcxMSw0OC43MTEsMCwwLDEtMTYuNzc0LTI5Ljk3NmMtMi44LTE3LjU1MSwyLjAxOS0zMy4wODIsMTIuNTgxLTQ2LjkwNSwxMS4zMzgtMTQuOTEsMjUuMDA2LTIyLjY3Niw0My40ODgtMjUuOTM4LDE1Ljg0Mi0yLjgsMzAuNzUzLTEuMjQzLDQ0LjI2NSw3LjkyMSwxMi4yNyw4LjM4NywxOS44OCwxOS43MjUsMjEuOSwzNC42MzUsMi42NCwyMC45NjgtMy40MTcsMzguMDUyLTE3Ljg2MSw1Mi42NTJhNzEuMTcsNzEuMTcsMCwwLDEtMzcuMjc2LDE5Ljg4QzE4OC4wNjcsMTcxLjQ2OSwxODMuODc0LDE3MS42MjQsMTc5LjgzNSwxNzIuMDlaTTIxNi44LDEwOS4zNDNhNDQuNyw0NC43LDAsMCwwLS40NjYtNS4xMjVjLTIuOC0xNS4zNzYtMTYuOTI5LTI0LjA3NC0zMS42ODQtMjAuNjU3LTE0LjQ0NCwzLjI2Mi0yMy43NjMsMTIuNDI1LTI3LjE4LDI3LjAyNWEyNS41NzksMjUuNTc5LDAsMCwwLDE0LjI4OSwyOS4zNTVjOC41NDIsMy43MjgsMTcuMDg1LDMuMjYyLDI1LjMxNy0uOTMyQzIwOS4zNDUsMTMyLjY0LDIxNi4wMjQsMTIyLjcsMjE2LjgsMTA5LjM0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48L3N2Zz5cIixcblx0fSxcblx0XCJHcmFkbGVcIjoge1xuXHRcdGNvbG91cjogXCIjMDA2NTMzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTMuNSw2Ljk2NWg3LjkyM2w0LDYuODg3SDI5Ljk4QTE0LjEsMTQuMSwwLDAsMCwxMS4wMjQsMi45MzJMMTMuNSw2Ljk2NVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjUzM1xcXCIvPjxwYXRoIGQ9XFxcIk0yNS42MjgsMThsLTQuMjA5LDcuMjUySDEwLjgwNkw1LjUsMTYuMTA4LDkuNzM5LDguOCw3LjQsNC45ODFBMTQuMDMsMTQuMDMsMCwxLDAsMzAsMThIMjUuNjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojODJiODE2XFxcIi8+PHBhdGggZD1cXFwiTTIxLjA2MSwxNS45NjNhNS4wMjYsNS4wMjYsMCwxLDEtNS4wMjYtNSw1LjAxMyw1LjAxMywwLDAsMSw1LjAyNiw1XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NTMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiR3JhcGhRTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNlMTAwOThcIixcblx0XHRpY29uOiBcIjxyZWN0IHg9XFxcIi0wLjQzXFxcIiB5PVxcXCIxMi41MzRcXFwiIHdpZHRoPVxcXCIyMi45MDFcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC01Ljg1OCAxNi4xMDcpIHJvdGF0ZSgtNTkuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjQuNTQ1XFxcIiB5PVxcXCIyMS4xNjJcXFwiIHdpZHRoPVxcXCIyMi45MDJcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIxMC40M1xcXCIgeT1cXFwiMTguMDA4XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTUuODEyIDIxLjg1Nykgcm90YXRlKC01OS45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjAuMzgxXFxcIiB5PVxcXCIwLjc3MVxcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjEzLjIyN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNC4wOTIgMjEuODU2KSByb3RhdGUoLTU5Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI0LjQxMlxcXCIgeT1cXFwiNi43ODdcXFwiIHdpZHRoPVxcXCIxMy4yMjdcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yLjIxMyA2LjUwMikgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjAuMzg5XFxcIiB5PVxcXCIxLjY3N1xcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjIyLjkwMVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTMuNzUzIDEyLjI1KSByb3RhdGUoLTMwLjAwMSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI1LjQ1NFxcXCIgeT1cXFwiOS4zODZcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIyNS4zNlxcXCIgeT1cXFwiOS4zODZcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIxNS4yMjJcXFwiIHk9XFxcIjI0LjA5N1xcXCIgd2lkdGg9XFxcIjExLjUwNFxcXCIgaGVpZ2h0PVxcXCIxLjAzN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTkuNDk4IDEzLjc4NSkgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTI4LjEyLDIzYTIuNSwyLjUsMCwxLDEtLjkxNS0zLjQxMUEyLjUsMi41LDAsMCwxLDI4LjEyLDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTguMiwxMS41YTIuNSwyLjUsMCwxLDEtLjkxNS0zLjQxMUEyLjUsMi41LDAsMCwxLDguMiwxMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTMuODgsMjNhMi41LDIuNSwwLDEsMSwzLjQxMS45MTVBMi41LDIuNSwwLDAsMSwzLjg4LDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTIzLjgsMTEuNWEyLjUsMi41LDAsMSwxLDMuNDExLjkxNUEyLjUsMi41LDAsMCwxLDIzLjgsMTEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi40OTMsMi40OTMsMCwwLDEsMTYsMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMTYsNi45OTFhMi41LDIuNSwwLDEsMSwyLjUtMi41LDIuNDkzLDIuNDkzLDAsMCwxLTIuNSwyLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz5cIixcblx0fSxcblx0XCJHcm9vdnlcIjoge1xuXHRcdGNvbG91cjogXCIjNjM5OGFhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNy40NTMsMjkuODY1YzAtLjA3NC40OTQtMS43MTcsMS4xLTMuNjUxQTIxLjgwOCwyMS44MDgsMCwwLDAsOS41LDIyLjZjLS4wNzktLjA1Ni0uMzUuMDQ1LS42LjIyNC0uNzY0LjUzOC0uOTIuNC0xLjQ5MS0xLjM1Ni0uNjE3LTEuOS0uNjM5LTIuMDkxLS4zMTctMi44MS4yMS0uNDcuMi0uNTc5LS4xNDctMS4yNzdhMy43NSwzLjc1LDAsMCwxLS4zNzctMS4wNDRjMC0uMjYtMS40MTMtMS40MzgtMy42NDctMy4wNEEzLjg0NSwzLjg0NSwwLDAsMSwyLDEyLjVhMTAuNDc3LDEwLjQ3NywwLDAsMSwyLjM3OC0uMDM5bDIuMzc4LjEuMjMyLS43NDFjLjk4MS0zLjEzLDIuNDYzLTUuOTU3LDMuMTIyLTUuOTU3LjEzNywwLC40MTYuMjY1LjYxOS41ODguMzMxLjUyNy4zNzYuODUzLjQzNSwzLjEyNmEyMy4wMTMsMjMuMDEzLDAsMCwwLC4xNjUsMi43MzljLjA1NS4xMS4yMjgtLjAzNS4zODUtLjMyMi4yLS4zNjcuNDEyLS40NjcuNzEtLjMzNXMuNDg1LjA0My42NDYtLjM0NWMuMjQyLS41ODIsMS40NTUtNC41MTMsMS40NTUtNC43MTcsMC0uMDY5LjI0LS45LjUzNC0xLjg0NnMuNjMxLTIuMDM2Ljc1MS0yLjQyNGMuMjEzLS42ODguMjQ2LS42MDcsMS41MjQsMy43MjYsMS4zMiw0LjQ3NCwyLjAzLDYuMTI0LDIuMzg1LDUuNTQ0LjI0OC0uNCwxLjU1LS40MjgsMS45MTQtLjAzNC4yMDcuMjI0LjMzOC4yMjEuNDUzLS4wMS4yMzctLjQ4LjgtLjQuOTUzLjE0LjExNy40MjMuMTQ3LjQyMy4zMiwwYS44MTIuODEyLDAsMCwxLC42OTItLjQ2NmMuMzg5LDAsLjUzOC4xNjQuNjY2LjczNWwuMTY1LjczNSwyLjU1OC0uMTgzQTExLjUyMSwxMS41MjEsMCwwLDEsMzAsMTIuNDY4YTIwLjc5LDIwLjc5LDAsMCwxLTIuMzIxLDEuODg5Yy0xLjI3Ny45Ni0yLjM0MiwxLjc3NS0yLjM2OCwxLjgxYTE3LjYwNywxNy42MDcsMCwwLDAsLjEyOCwxLjg2NywxMS4wNzUsMTEuMDc1LDAsMCwxLS41NDQsNS43MTMsNC4zMDgsNC4zMDgsMCwwLDEtMS4wMjEsMS40OWMtLjI3OC4xODYtLjUwNi40LS41MDYuNDg2cy4zLDEuMDc3LjY2LDIuMjEyQTkuNjgyLDkuNjgyLDAsMCwxLDI0LjU2OCwzMGMtLjEwOSwwLTIuNzU3LTIuMDctNi44NzYtNS4zNzNhMTEuMTQzLDExLjE0MywwLDAsMC0xLjY0My0xLjE4NGMtLjE3MSwwLTEuNjQ5LDEuMTMzLTUuOTg0LDQuNTg4LTIuNTE0LDItMi42MTIsMi4wNzMtMi42MTIsMS44MzVabTUuMTU4LTQuNzI3YzEuMzM3LTEuMDUxLDIuNjY0LTIuMDc4LDIuOTQ3LTIuMjgyLjQ4OC0uMzUxLjY1MS0uMjYzLDMuMDIxLDEuNjMxLDEuMzc4LDEuMSwyLjczNywyLjE3NCwzLjAyMSwyLjM4NHMuODY4LjY2NiwxLjMsMS4wMTNjLjQ5MS40Ljc0Mi40OTIuNjc0LjI1Ni0uNzctMi42MzQtLjc5My0yLjY3OC0xLjMyNy0yLjQ3Ni0uNjQ0LjI0NC0xLjA0My0uMDA2LTEuMjQ5LS43ODNhMS43MzksMS43MzksMCwwLDEsLjI0LTEuNDUxLDIuMzc3LDIuMzc3LDAsMCwwLS4yMjEtMi43MzEsNC4yODksNC4yODksMCwwLDEtLjY4Ni0xLjUzbC0uMjQxLTEuMDIzLS41MTcuNzFjLS42MzYuODczLTEuNDExLjkxOC0yLjA1OS4xMTlsLS40NzctLjU4OC0uNTU0Ljc2MmMtLjU1NS43NjMtMS4xOTQuODYyLTEuODQ0LjI4NC0uMTc5LS4xNTktLjI1OC0uMS0uMjU4LjJhMS4yNCwxLjI0LDAsMCwxLS4zNzUuNzc3Yy0uNjE5LjU3LTEuMjIzLjQxOS0xLjYzMy0uNDA5TDEyLDE5LjI0OWwtLjMuNzc1YTcuMDMyLDcuMDMyLDAsMCwxLS44NTMsMS40NzksMTMuODkxLDEzLjg5MSwwLDAsMC0xLjQ1NSwzLjY2M2MtLjUsMS42MjctLjksMy4wNDItLjksMy4xNDNzLjM4MS0uMTQxLjg0Ny0uNTM4LDEuOTQyLTEuNTgyLDMuMjc5LTIuNjMzWm0xMS4zNDMtMS4xMzFjMS4wMTUtMS4xNTQsMS4yNS0zLjI4OC44LTcuMjcxLS4zNzUtMy4zMjktLjU2Mi00LjQxOS0uNzg0LTQuNTY1LS4xNTQtLjEtLjE3Ny4wMS0uMDkxLjQyNi41NjIsMi43LjU5Myw0LjA1My4xLDQuNDM0LS4zMzcuMjYyLS42OTUtLjcxOS0uOTc2LTIuNjc1LS4yMTgtMS41MTUtLjQ0NS0yLjItLjYxNy0xLjg1YTMuMzU5LDMuMzU5LDAsMCwwLC4xNiwxLjA3LDI2LjcxOCwyNi43MTgsMCwwLDEsLjM5NCwzLjM4MSwyMS43NTcsMjEuNzU3LDAsMCwwLC4zNzUsMy4xNTFjLjMwOS45ODUuOC43NDcsMS4xMTgtLjU0cy4zNS0uNDI1LjA0NCwxLjA1NWMtLjMxNywxLjUzNi0xLjI2LDItMi4zNTIsMS4xNS0uMTc1LS4xMzYtLjIzNCwwLS4yMzQuNTU1YTQuOTg4LDQuOTg4LDAsMCwxLS4zLDEuNWwtLjMuNzY1LjQwOC4xMzlBMi4yNDcsMi4yNDcsMCwwLDAsMjMuOTU0LDI0LjAwN1pNOS4zNDYsMjEuNDY4YzIuMTE4LTEuMjMyLDIuNS0yLjY2OCwxLjc5My02LjgwNWEyMS45NDEsMjEuOTQxLDAsMCwxLS4zLTIuM2MwLTEuMDI5LS4yNTYtLjU1NC0uNDQ4LjgzMi0uMjU0LDEuODMyLTEuMDE2LDMuMzg5LTEuNjU3LDMuMzgzLS41NTctLjAwNS0uNzM4LS4yMS0uOTY4LTEuMDk0LS40MTMtMS41ODUuMDM3LTQuMDE4LDEuMTg0LTYuNDA2Ljg0LTEuNzQ5LDEuMy0xLjkwOCwxLjMtLjQ0OCwwLDIuMjc2LS43NzYsNS42MjUtMS4xODQsNS4xMTVhMy44MTQsMy44MTQsMCwwLDEsLjA2NS0yLjJjLjItLjcyLjE1Ny0xLjgxOC0uMDY2LTEuODE4LS4yNTksMC0uNzczLDEuOTEtLjg0MSwzLjEyNy0uMDYsMS4wNzYtLjAyMiwxLjMzOC4yMzEsMS42MTIuODg4Ljk2MiwyLjA1Mi0xLjk3MywyLjExMS01LjMyMy4wMzEtMS43NTktLjEzOC0yLjI1NC0uNjc0LTEuOTgyLS43ODEuNC0yLjg4Myw1Ljg4My0yLjg4Myw3LjUyMywwLDEuMjgzLjMxOSwyLjE4Ni44OCwyLjQ5MS45NTQuNTE5LDEuODc2LS40LDIuNTI5LTIuNTMxbC4yNzUtLjg5NFYxNC45N2MwLDEuNzU5LS41NjcsMi42ODYtMi4zNTcsMy44NTJhOC44OTMsOC44OTMsMCwwLDAtLjg1Mi42LDkuNzU4LDkuNzU4LDAsMCwwLC44OTIsMi41MzQsNS4yODMsNS4yODMsMCwwLDAsLjk2OS0uNDg0Wm0xMi43NjQtMi4xODRjLjIxMy0uNDc1LjI1LS45OTIuMi0yLjgxNy0uMDUtMS45ODYtLjEtMi4zMzctLjQ4Ni0zLjE0NC0uNjkxLTEuNDU4LTEuNTQ0LTEuMDg2LTEuMDQ1LjQ1NS4yNjUuODIuNTg5LjY4LjQ3NS0uMjA1LS4wOTEtLjcuMDc5LS43MjMuMzc1LS4wNDEuNTU2LDEuMjgxLjQxNiwzLjA1NS0uMjQyLDMuMDU1LS40NSwwLS41OS0uMzktLjg4My0yLjQ1OWE2Ljc1Miw2Ljc1MiwwLDAsMC0uMzYyLTEuNzE0Yy0uMjE3LDAtLjMxNC4zODgtLjE3OS43MThhMjguMjMsMjguMjMsMCwwLDEsLjQ1MiwyLjg1OWMuNDQxLDMuNTA3LDEuMDU3LDQuNzA3LDEuNjksMy4yOTNabS04LjM4LjA1NmEzLjM4NSwzLjM4NSwwLDAsMCwuMDk1LTEuMzNjLS4wNi0xLjAwOC0uMDk0LTEuMDgxLS4zNjQtLjc5LS4zODcuNDE5LS44LS4zNzUtLjk0NC0xLjgtLjEwNy0xLjA4Mi0uMTQtMS4wNjEuNjQtLjQxNS4xLjA4MS4zNDYtLjE5NC41NTMtLjYxMS4zNzctLjc2My41LTEuNjguMjI4LTEuNjgtLjA4MSwwLS4xNDcuMTM0LS4xNDcuMywwLC40MjktLjQuMzY4LS40OTQtLjA3NS0uMDUzLS4yNTgtLjE2Ni0uMTY3LS4zNjcuMy0uMTYuMzY5LS4zNTYuNjcxLS40MzQuNjcxcy0uMTg1LS4zLS4yMzctLjY3MWMtLjA5LS42NDYtLjEtLjY1LS4zLS4xMTNhLjk1MS45NTEsMCwwLDAtLjAxLjk2NCwxOC44MTgsMTguODE4LDAsMCwxLC41MjEsMy43OTFjMCwxLjE3NC44LDIuMSwxLjI2NywxLjQ2M1ptMi42ODgtMS41NTZhNy4wNTUsNy4wNTUsMCwwLDAsLjQxNi00LjI1OWMtLjIzNi0xLjE0MS0uNjQ1LTEuNTY4LTEuMjIyLTEuMjc1LS40MjkuMjE4LTEuMDgyLDIuNzQ2LTEuMDg0LDQuMiwwLDIuMjYyLDEuMDYsMy4wMTUsMS44OSwxLjMzN1ptLTEuMDA3LTEuNzkyYTMuNzcsMy43NywwLDAsMS0uMjktMS40MTZjMC0uNzQ1LjAyMi0uNzcyLjItLjMuMjIuNTg2LjYxMS42ODguNzYxLjJhMS4wMzUsMS4wMzUsMCwwLDAtLjA2NS0uNjU2Yy0uMjMyLS40NjktLjItMS4xMDcuMDQ5LTEuMTA3LjI4LDAsLjY3MiwxLjE1NC42NzIsMS45ODIsMCwuNjA5LS42MTMsMS44OTMtLjksMS44OTMtLjA3LDAtLjI2LS4yNjgtLjQyMi0uNlpNMTkuMzQ4LDE3LjdhNi40NDcsNi40NDcsMCwwLDAtLjE0MS00LjkxOGMtLjM1OC0uNzczLTEuMTUzLS45MDYtMS40NzktLjI0OGExMS42MDcsMTEuNjA3LDAsMCwwLS40ODksMy44OTVDMTcuNDc3LDE4LjM0OCwxOC43MTYsMTkuMSwxOS4zNDgsMTcuN1pNMTguMSwxNS41MjdhMi40OTIsMi40OTIsMCwwLDEtLjMxOC0xLjU2NWMuMDA4LS45MDkuMDMxLS45OTEuMTM1LS40NzIuMTUzLjc2NC40NzMsMS4wNTIuNzUzLjY3OS4xNzQtLjIzMS4xNjYtLjM0MS0uMDUtLjY3Ni0uMjg4LS40NDctLjM0NC0xLjA3OS0uMS0xLjA3OWE1LjAzNyw1LjAzNywwLDAsMSwxLjAxNywyLjI1YzAsLjQ4LS41NjQsMS4zMjctLjg4NCwxLjMyN0MxOC41MjcsMTUuOTkxLDE4LjI3NiwxNS43ODIsMTguMSwxNS41MjdabTguNjYyLTEuMzE4LDEuNTQ3LTEuMTc1LTEuNjU4LS4wMTJjLTEuNDg0LS4wMTEtMS42NTguMDQzLTEuNjU2LjUxYTExLjUzMiwxMS41MzIsMCwwLDAsLjIsMS44NTdjLjAxMSwwLC43MTYtLjUzNCwxLjU2Ny0xLjE4Wk02LjUzNSwxNGwuMTU4LS45NDlMNS4zLDEyLjk1NmMtLjc2NC0uMDUyLTEuMzg5LS4wMTItMS4zODkuMDg4YTE0LjEsMTQuMSwwLDAsMCwyLjQ0NywxLjkzNEM2LjM3MSwxNC45NjEsNi40NDgsMTQuNTIxLDYuNTM1LDE0Wm05LjUyNi0yLjk0MWExLjYyNCwxLjYyNCwwLDAsMSwuODE5LjZjLjE5Mi4zNDkuMjc2LjMyNi41NzMtLjE2My4xOTEtLjMxNS40NC0uNTcyLjU1My0uNTcycy4yLS4wNjYuMi0uMTQ2YzAtLjI3OC0yLjEyMi03LjMwNi0yLjItNy4zcy0yLjI3LDcuMzg2LTIuMzM3LDcuOTI1Yy0uMDI4LjIyNi4wNi4zMDkuMjMxLjIxOS4xNTItLjA4MS4zNjMuMDYzLjQ2OC4zMTkuMTcuNDE1LjI0LjM4Mi42NDQtLjMwNi4zODQtLjY1NC41NDQtLjc0MiwxLjA0OC0uNTc5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC41LDEyLjE3NWEuODUuODUsMCwwLDEtLjExNS0uMi43MzcuNzM3LDAsMCwwLS4xOTQtLjI5LjI4MS4yODEsMCwwLDAtLjMtLjA2MWMtLjA4Ny4wMzUtLjExMS4wMzktLjE1LjAyNC0uMDY1LS4wMjYtLjA4OS0uMTA2LS4wNy0uMjQyLjAyMy0uMTY5LjItLjgyNS41NDgtMi4wNTQuNzExLTIuNSwxLjY2Ni01LjY0NiwxLjc3Mi01LjgzOS4wMTItLjAyMS4wMTItLjAyMS4wMjQsMCwuMDYzLjExNC40MzIsMS4yNjYuOTM3LDIuOTIyLjY4MiwyLjI0LDEuMjUsNC4yMSwxLjI1LDQuMzM5LDAsLjA3OS0uMDYuMTI3LS4xODYuMTQ3LS4xNTcuMDI2LS4zMzkuMjEyLS41ODcuNmExLjY3NCwxLjY3NCwwLDAsMS0uMjI2LjMxYy0uMDQ4LjA0Ni0uMDUyLjA0OC0uMS4wNDhzLS4wNTYsMC0uMS0uMDQzYS45NTguOTU4LDAsMCwxLS4xLS4xNDQsMS4yNjgsMS4yNjgsMCwwLDAtLjQxNC0uNDIyLDEuNTI1LDEuNTI1LDAsMCwwLS43MzgtLjI4MS40MzQuNDM0LDAsMCwwLS40LjE1NiwyLjcxOCwyLjcxOCwwLDAsMC0uNDE2LjZjLS4yNTcuNDI1LS4zNDguNTEzLS40NDEuNDI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk02LjI1MiwxNC45MjhhMTkuMDU1LDE5LjA1NSwwLDAsMS0yLjMtMS44MzhjLS4wMzEtLjAzOC0uMDM0LS4wNDQtLjAyNS0uMDU3YTIuNywyLjcsMCwwLDEsMS4xNC0uMDg1Yy4yMy4wMTIsMS42MTkuMSwxLjYyMS4xMDhzLS4zLDEuNzc5LS4zMjEsMS44ODFDNi4zNTcsMTQuOTgxLDYuMzM3LDE0Ljk3OSw2LjI1MiwxNC45MjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjM5OGFhXFxcIi8+PHBhdGggZD1cXFwiTTI1LjE3NywxNS4zNUExNC4yMzksMTQuMjM5LDAsMCwxLDI1LDEzLjU2YS41NTMuNTUzLDAsMCwxLC4wNDQtLjI5Yy4wODEtLjE1MS4yNDUtLjIwNS43LS4yMy4yMjgtLjAxMywxLjI4MS0uMDE1LDIuMDI1LDBsLjUyMS4wMDhMMjcuMDI5LDE0Yy0xLjE0NC44NjctMS44MSwxLjM2OS0xLjgzNCwxLjM4Mi0uMDA2LDAtLjAxMi0uMDA2LS4wMTgtLjAyN2gwWlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk04LjUwNiwyOC4yODFjMC0uMDcxLjE0OS0uNi41MjctMS44NzguOTA1LTMuMDU3LDEuMzE5LTQuMTY1LDEuODI3LTQuODkyYTcuNjY0LDcuNjY0LDAsMCwwLC45NjktMS43OTJMMTIsMTkuMjkybC4yMjUuNDQ4Yy4zOTQuNzg0LjYzMiwxLjAxMSwxLjA2MiwxLjAxNmExLjIzOSwxLjIzOSwwLDAsMCwxLjEtMS4xMzdjMC0uMTI0LjA0NC0uMjUxLjA4Ni0uMjUxYTEuMTE5LDEuMTE5LDAsMCwxLC4yMjYuMTQsMS4yNzEsMS4yNzEsMCwwLDAsLjY2Ni4zLjg3OS44NzksMCwwLDAsLjYwOS0uMTQ4LDIuNDcsMi40NywwLDAsMCwuNzExLS43NjRjLjE4Ny0uMjUyLjM0Ny0uNDU5LjM1NC0uNDU5cy4xNDMuMTU5LjMuMzUyYTUuMDkxLDUuMDkxLDAsMCwwLC40MjIuNDY3LDEuMDQ5LDEuMDQ5LDAsMCwwLDEuNTQ5LS4wOCw2LjExMSw2LjExMSwwLDAsMCwuNDY3LS41NzJjLjE2OC0uMjI4LjMwNy0uNDEuMzEtLjRzLjA2Ni4yNjkuMTQxLjU4NC4xNjkuNjcuMjA5Ljc4OWEzLjgyNiwzLjgyNiwwLDAsMCwuNjQyLDEuMjM0LDIuMTcsMi4xNywwLDAsMSwuNDY2LDEuMjQ2LDMuMDUxLDMuMDUxLDAsMCwxLS4zNTIsMS40NDcsMi4wNywyLjA3LDAsMCwwLS4yNjcuOTM0LDIuMDE3LDIuMDE3LDAsMCwwLC4yMTMuODUxLjc3My43NzMsMCwwLDAsMS4wNjkuNDEzLDEuMzUxLDEuMzUxLDAsMCwxLC4zMTYtLjA2OGMuMiwwLC4zMTUuMTkzLjU0Mi44ODEuMTU3LjQ3NC41LDEuNjM3LjUsMS42OTUsMCwuMDMtLjAxNi4wNTEtLjAzOS4wNTFhMS40ODYsMS40ODYsMCwwLDEtLjQwNy0uMjI0Yy0uMi0uMTQ0LTIuNjEyLTIuMDI5LTMuNDA4LTIuNjYzLTIuMTI4LTEuNjkzLTIuODI4LTIuMjMzLTMuMTcxLTIuNDQ2LS4zNy0uMjMtLjYyMi0uMjg1LS44MjctLjE3Ny0uMjU0LjEzMy0zLjcyNiwyLjg0Ny01Ljc1MSw0LjVBMTAuODQ2LDEwLjg0NiwwLDAsMSw4LjY1LDI4LjI1MWMtLjE0OS4wODMtLjE0My4wODEtLjE0My4wM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz5cIixcblx0fSxcblx0XCJIYW1sXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VjZGZhN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE1LjMxMSwxNi4wNDMsMTMuNCwyOS43MjZhNi4zMjIsNi4zMjIsMCwwLDEtNS45NTYtMS4yNWwzLjEtMTMuMjY2TDQuNjksMy4zNGE4LjAzMSw4LjAzMSwwLDAsMSwzLjc5LS42NDZsNS4xNDQsOS43LDguOTE0LTcuNTgxczMsMS4wNDEsMy4yNywyLjA0MWwtMTAuNSw5LjE4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlY2RmYTdcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDE2LDE3LjQxMWE0LjI0NCw0LjI0NCwwLDAsMC0uNTQxLS44MTIsNS43LDUuNywwLDAsMC0xLjQ1OC0xLjE4Nyw3LjMzMSw3LjMzMSwwLDAsMC0xLjY4Ny0uNzkxbC0uMjI5LS4wNjItLjE4Ny0uMDYyYy0uMTI1LS4wNDItLjIyOS0uMS0uMzMzLS4xNDZhMS4yODIsMS4yODIsMCwwLDEtLjQ1OC0uNDE3QTEuNzU0LDEuNzU0LDAsMCwxLDIyLDEyLjY0MmEyLjUxOCwyLjUxOCwwLDAsMSwuMS0uMzc1Yy4wNDItLjEyNS4wODMtLjI1LjEyNS0uNGEyLjY5MSwyLjY5MSwwLDAsMCwuMDYyLS42bC4xLS4wODMsMS4yNS0xLjA0MWMuMjI5LS4xODcuNDU4LS40LjY4Ny0uNTgzYTIuMiwyLjIsMCwwLDEsLjIyOS4xNDZzLjY0Ni4wNjIsMS0uOTE2bC0uMTg3LS4xMjUuMTI1LS4xLjMxMi0uMjcxYS42MTMuNjEzLDAsMCwwLC4yMjktLjM3NS41MjkuNTI5LDAsMCwwLS40MTcuMTI1bC0uMzMzLjI1LS4yMjkuMTY3TDIyLjE4NCw2LjQ3OGMuMTQ2LS4xMjUuMjcxLS4yMjkuNDE3LS4zNTRsLjYtLjU0MS4wNjItLjA2MmMuMDYyLjA0Mi4xLjA4My4xNjcuMTI1LjE0Ni4xLjMxMi4yMDguNDU4LjI5MmwuOTE2LjVjLjI5Mi4xNjcuNi4zMzMuOTE2LjQ3OWEzLjMyMywzLjMyMywwLDAsMCwuNDc5LjIwOGMuMDgzLjAyMS4xNjcuMDYyLjI1LjA4My4wNDIsMCwuMS4wMjEuMTQ2LjAyMWguMWEuMTUxLjE1MSwwLDAsMCwuMTI1LS4wODNWNy4xMjNhLjA3Ny4wNzcsMCwwLDEsLjAyMS0uMDYyVjYuOTc3YS4xMDguMTA4LDAsMCwwLS4wNDItLjA4M2MtLjAyMS0uMDQyLS4wNjItLjA4My0uMDgzLS4xMjVhMS41OSwxLjU5LDAsMCwwLS4xODctLjE4N2MtLjEyNS0uMTI1LS4yNzEtLjIyOS0uNC0uMzMzLS4yNzEtLjIwOC0uNTYyLS40LS44NTQtLjU4M2E3LjU0NSw3LjU0NSwwLDAsMC0uOS0uNSwzLjMyMywzLjMyMywwLDAsMC0uNDc5LS4yMDhjLS4wODMtLjAyMS0uMTY3LS4wNjItLjI3MS0uMDgzLS4wNDIsMC0uMS0uMDIxLS4xNjctLjAyMWEuMzEuMzEsMCwwLDAtLjEyNS4wMjEuNTIyLjUyMiwwLDAsMC0uMTY3LjEsMS42LDEuNiwwLDAsMC0uMzc1LjIwOGwtLjYyNS4zNTRjLS4xODcuMTQ2LS40LjMxMi0uNTgzLjQ1OGwtLjIwOC0uMTQ2cy0uODc1LjA4My0uNTgzLjY0NmwuMDgzLjA4M2MtLjgzMy42ODctMS42NDUsMS40LTIuNDU3LDIuMDgzLS44MzMuNzA4LTEuNjQ1LDEuNDE2LTIuNDc4LDIuMTQ1bC0xLjIyOSwxLjA4M2ExLjg3OCwxLjg3OCwwLDAsMS0uMjA4LjE4N2MtLjA0Mi0uMTI1LS4xLS4yMjktLjE0Ni0uMzMzbC0uMjkyLS42MjUtLjU2Mi0xLjI1Yy0uMzc1LS44MzMtLjc1LTEuNjY2LTEuMTQ1LTIuNUwxMS4yMDksNC44OTVsLS4xODctLjM3NWguMjVzLjA4My0uNjg3LS40MTctLjgxMmExLjQsMS40LDAsMCwwLS4yMDguMDIxYy0uMTg3LS4zNzUtLjM1NC0uNzUtLjU0MS0xLjEyNWgwbC0uMDgzLS4zMTJBLjMzLjMzLDAsMCwwLDkuOSwyLjFhLjM1Mi4zNTIsMCwwLDAtLjEtLjA0MmMtLjA2Mi0uMDIxLS4xLS4wMjEtLjE2Ny0uMDQyQTEuMjgxLDEuMjgxLDAsMCwwLDkuMzU1LDJhNC4wNTcsNC4wNTcsMCwwLDAtLjUyMS4wNDIsOC43NjcsOC43NjcsMCwwLDAtMS4wMi4xODdjLS4zMzMuMDgzLS42NjYuMTY3LTEsLjI3MWEzLjI3MiwzLjI3MiwwLDAsMC0uNDc5LjE4N2wtLjI1LjEyNWMtLjA0Mi4wMjEtLjA4My4wNjItLjEyNS4wODNMNS45LDIuOTU4Yy0uMDIxLjAyMS0uMDIxLjA0Mi0uMDQyLjA2MnYuMDYyaDBWMy4xYS4xNjQuMTY0LDAsMCwwLC4xLjEyNWMuMDQyLjAyMS4wNjIuMDQyLjA4My4wNDJhMS4zMjcsMS4zMjcsMCwwLDEsLjE0Ni4wNDIsMS4xODgsMS4xODgsMCwwLDAsLjI3MS4wMjEsNC4zODQsNC4zODQsMCwwLDAsLjUyMS0uMDQyYy4zMzMtLjA0Mi42ODctLjA4MywxLjAyLS4xNDZsMS4wMi0uMTY3Yy4xNjctLjAyMS4zMzMtLjA2Mi41MjEtLjEuMTQ2LjI5Mi4yOTIuNi40MzcuOS0uOTU4LjA4My0yLjQ1Ny4yMDgtMy4zOTUuMzEyLS4xLS4xODctLjE4Ny0uMzU0LS4yOTItLjU0MWEuMTI3LjEyNywwLDAsMC0uMTQ2LS4wNjIuMTA4LjEwOCwwLDAsMC0uMDYyLjE0NmMuMDYyLjE2Ny4xMjUuMzEyLjE4Ny40NzlhMS4xNjcsMS4xNjcsMCwwLDAtLjUuMTI1QTEuODI4LDEuODI4LDAsMCwwLDYuNCw1LjY0NWEzLjU2NywzLjU2NywwLDAsMSwuNDU4LS4xMjVsLjQzNywxLDEuMjUsMi44MzIsMS4yNywyLjgzMmMuNDE3LjkzNy44NTQsMS44NzQsMS4yOTEsMi44MzJoMGEuMDIuMDIsMCwwLDAsLjAyMS4wMjFsLS4xODcuNjI1LS41LDEuNzQ5Yy0uMzEyLDEuMTY2LS42LDIuMzUzLS45LDMuNTJMOS4xMDUsMjIuN2wtLjQxNywxLjc3Yy0uMjkyLDEuMTg3LS41NjIsMi4zNTMtLjksMy41MmEuMTI1LjEyNSwwLDAsMCwuMDIxLjA4MywzLjA3NiwzLjA3NiwwLDAsMCwuNi41NjIsNi4wNDgsNi4wNDgsMCwwLDAsLjY4Ny40MTcsOS40LDkuNCwwLDAsMCwxLjUuNiw2Ljk3Miw2Ljk3MiwwLDAsMCwxLjYyNC4yNzEsMy43MjgsMy43MjgsMCwwLDAsLjgzMy0uMDQyLDYuNTQ3LDYuNTQ3LDAsMCwwLC44MzMtLjE2Ny4yNTQuMjU0LDAsMCwwLC4xNjctLjE4N3YtLjAyMWMuMjI5LTEuMTQ1LjQxNy0yLjMxMi42MjUtMy40NTdsLjU4My0zLjQ3OGMuMTg3LTEuMTY2LjQtMi4zMTIuNTgzLTMuNDc4LjAyMS0uMTI1LjA0Mi0uMjcxLjA2Mi0uNC4wNDIuMDQyLjA2Mi4xLjEuMTQ2YTQuMTM3LDQuMTM3LDAsMCwwLC43MDguNjQ2LDcuMjEyLDcuMjEyLDAsMCwwLDEuNTgzLjgzMywxMS43NzQsMTEuNzc0LDAsMCwwLDEuNjY2LjUsMTAuMTgyLDEwLjE4MiwwLDAsMCwxLjEuMTg3LDIuNjIxLDIuNjIxLDAsMCwwLS4yNSwxLjIwOC4xMTUuMTE1LDAsMCwwLC4wNjIuMWguMDIxYTUuMTY0LDUuMTY0LDAsMCwwLDEuMjcuNDc5LDQuMzMzLDQuMzMzLDAsMCwwLDEuMzc1LjA2MiwyLjYyNywyLjYyNywwLDAsMCwxLjMzMy0uNTYyLDIuODI0LDIuODI0LDAsMCwwLC44MTItMS4xNjZsLjAyMS0uMDIxVjIxLjFsLjA2Mi0uNTYydi0uMDIxYTUuNDI3LDUuNDI3LDAsMCwwLC42MjUtLjQxNywyLjcxLDIuNzEsMCwwLDAsLjY0Ni0uNzI5LDEuODMzLDEuODMzLDAsMCwwLC4yNS0xLDIuNTYzLDIuNTYzLDAsMCwwLS4yOTItLjk1OFptLS40LTEwLjVabS0xLjQ3OS0xLjFhNy4xMiw3LjEyLDAsMCwxLC44MzMuNTQxYy4xMjUuMS4yNzEuMTg3LjQuMzEyYTEuMjU3LDEuMjU3LDAsMCwxLC4xNjcuMTY3bC4wNDIuMDQyaC0uMDQyYy0uMDgzLS4wMjEtLjE0Ni0uMDQyLS4yMjktLjA2Mi0uMTQ2LS4wNjItLjMxMi0uMTI1LS40NTgtLjE4N2E3LjEzMiw3LjEzMiwwLDAsMS0uODc1LS40NzlBNS42MSw1LjYxLDAsMCwxLDI0LjIsNS41MmEyLjUsMi41LDAsMCwxLS4yMjktLjI1bC4zMTIuMTI1YTYuNCw2LjQsMCwwLDEsLjg1NC40MTdabS0xLjQxNi0uOTE2LjAyMS4wMjF2LjA0MmEuMDIuMDIsMCwwLDAtLjAyMS0uMDIxVjQuODk1Wk04Ljg3NiwyLjU2MmE1LjAyMSw1LjAyMSwwLDAsMS0uOTM3LjMzMyw1LjM0Nyw1LjM0NywwLDAsMS0uOTc5LjE2Nyw0LjAxMyw0LjAxMywwLDAsMS0uNS4wMjEuNzgxLjc4MSwwLDAsMS0uMjI5LS4wMjFINi4xNjljLjAyMSwwLC4wMjEtLjAyMS4wNDItLjAyMS4wNjItLjA0Mi4xNDYtLjA2Mi4yMDgtLjEuMTQ2LS4wNjIuMzEyLS4xLjQ1OC0uMTY3LjMxMi0uMDgzLjY0Ni0uMTY3Ljk3OS0uMjI5YTguNCw4LjQsMCwwLDEsLjk3OS0uMTI1QTEuNTc2LDEuNTc2LDAsMCwwLDkuMTQ3LDIuNGExLjUzNiwxLjUzNiwwLDAsMS0uMjcxLjE2N1ptMTQuNDUzLDcuMS0xLjI5MSwxLTEuMjkxLDEuMDJjLS4zNTQuMjkyLS43MDguNTgzLTEuMDYyLjg1NC4wMjEtLjAyMS4wNDItLjA2Mi4wNjItLjA4My4xNjctLjIyOS4zMzMtLjQzNy41LS42NDYuMzU0LS40MTcuNjg3LS44NTQsMS4wNjItMS4yNXMuNzcxLS43OTEsMS4xNjYtMS4xNDVhNC44NzIsNC44NzIsMCwwLDEsLjY0Ni0uNWwuMTg3LS4xMjVjLjE4Ny4xNDYuNC4yOTIuNTgzLjQzNy0uMTY3LjE0Ni0uMzc1LjI5Mi0uNTYyLjQzN1pNOC4wNjQsNy4xbC4xLjFhNS42Myw1LjYzLDAsMCwxLC41ODMuNjQ2LDIuMjEsMi4yMSwwLDAsMSwuMzc1LjcyOS45MjEuOTIxLDAsMCwxLS4wNjIuNjI1bC0uMDIxLS4wNjJMOC4wNjQsNy4xWm0xLjAyLDIuMTY2YS43Mi43MiwwLDAsMCwuMTQ2LS4yNS44NjYuODY2LDAsMCwwLC4wNDItLjQ1OEExLjcsMS43LDAsMCwwLDguOSw3LjcyN2E0LjAxNSw0LjAxNSwwLDAsMC0uOTc5LS45bC0uMjI5LS40NzljLS4xNDYtLjMxMi0uMjkyLS42MjUtLjQ1OC0uOTE2LjMxMi0uMDgzLjY4Ny0uMjA4LDEuMS0uMzEyQTIwLjMxMywyMC4zMTMsMCwwLDEsOS4zNTUsN2E3Ljk2Myw3Ljk2MywwLDAsMSwuNzcxLDIuNTQxYy4wMjEuMjA4LDAsLjQzNywwLC42NjZzMCwuNDU4LjAyMS42ODdhNy42MDksNy42MDksMCwwLDAsLjE0Ni45NThMOS4wODQsOS4yNjhaTTE0LDI2LjI0MmEuOS45LDAsMCwxLS4xODcuMjA4LjQuNCwwLDAsMS0uMzMzLjEuMzU4LjM1OCwwLDAsMS0uMjI5LS4yMjkuOTgxLjk4MSwwLDAsMS0uMDgzLS4zNTQsMi4yNzUsMi4yNzUsMCwwLDEsLjA0Mi0uNzUsMi44MTYsMi44MTYsMCwwLDEsLjIyOS0uNzA4LDEuNDc4LDEuNDc4LDAsMCwxLC4yMDgtLjI5Mi4zNDEuMzQxLDAsMCwxLC4yOTItLjEyNWMuMSwwLC4yMDguMS4yNzEuMjA4YS43NC43NCwwLDAsMSwuMDgzLjE4N2wtLjI1LDEuNDc5Yy0uMDIxLjEtLjAyMS4xODctLjA0Mi4yNzFabTEuMjI5LTcuMTg1LS4zNzUsMi4xODdhMy4zMjksMy4zMjksMCwwLDAtLjEtLjQzN2MtLjEtLjQtLjIyOS0uNzcxLS4zNTQtMS4xNDVhMTUuNTM3LDE1LjUzNywwLDAsMC0uOTU4LTIuMTY2Yy4yMjkuNzcxLjUsMS41Ljc3MSwyLjI0OS4xNDYuMzc1LjI3MS43NS40LDEuMWwuMTg3LjU2MmMwLC4wMjEuMDIxLjA2Mi4wMjEuMDgzLS4wNjIuMzMzLS4xMjUuNjY2LS4xNjcsMS4wMmwtLjMxMiwxLjljLS4wMjEtLjA0Mi0uMDIxLS4wODMtLjA0Mi0uMTI1YS40ODYuNDg2LDAsMCwwLS4zMTItLjI5Mi41MjUuNTI1LDAsMCwwLS40MTcuMTI1LDEuOTQ0LDEuOTQ0LDAsMCwwLS4yNzEuMzEyLDIuMDM2LDIuMDM2LDAsMCwwLS4yNzEuNzUsMi4xMzEsMi4xMzEsMCwwLDAsMCwuODEyLDEuMDIxLDEuMDIxLDAsMCwwLC4xNDYuNC40ODYuNDg2LDAsMCwwLC4zMzMuMjcxLjQyOC40MjgsMCwwLDAsLjM3NS0uMTY3Yy4wNDItLjA0Mi4wODMtLjEuMTI1LS4xNDYtLjE0Ni45NzktLjMxMiwxLjk1OC0uNDU4LDIuOTU3YTIuNzI3LDIuNzI3LDAsMCwxLS41NjIuMTI1Yy0uMjUuMDQyLS41LjA2Mi0uNzUuMDgzYTUuNTMxLDUuNTMxLDAsMCwxLTEuNTQxLS4xNDYsNy44NDYsNy44NDYsMCwwLDEtMS41LS40NzksMy42MjUsMy42MjUsMCwwLDEtMS4yMjktLjg1NGMuMzEyLTEuMTQ1LjY2Ni0yLjI5MSwxLjAyLTMuNDM2bC41NDEtMS43MjkuNTIxLTEuNzQ5Yy4zNTQtMS4xNjYuNzA4LTIuMzMzLDEuMDQxLTMuNS4xNjctLjU4My4zMTItMS4xNjYuNDc5LTEuNzQ5YTMuNjI2LDMuNjI2LDAsMCwwLC4xODctMS44MzN2LS4wMjFjLS4wMjEtLjAyMS0uMDQyLS4wMjEtLjA0MiwwYTMuMTA5LDMuMTA5LDAsMCwwLS4yNS4yOTJjLS4yMjktLjUyMS0uNDc5LTEuMDItLjcwOC0xLjU0MWE0Ljc2NSw0Ljc2NSwwLDAsMS0uMTY3LS41ODMsNy4xNjUsNy4xNjUsMCwwLDEtLjIwOC0xLjMxMmMtLjAyMS0uMjI5LS4wMjEtLjQzNy0uMDIxLS42NjZzLjAyMS0uNDU4LDAtLjY4N2E3LjYyNSw3LjYyNSwwLDAsMC0uODMzLTIuNiwxMi41ODcsMTIuNTg3LDAsMCwwLTEuMS0xLjgzM2MuNjg3LS4xODcsMS40MTYtLjM3NSwyLS40NzkuMDgzLjE4Ny4xODcuMzU0LjI3MS41NDFMMTEuOTM4LDcuNmwxLjI1LDIuNDM3LjYyNSwxLjIwOC4zMTIuNmMuMDgzLjEyNS4xMjUuMjcxLjIwOC4zNzVsLS44MTIuNzVhLjA2OS4wNjksMCwwLDAsMCwuMS4wNzMuMDczLDAsMCwwLC4xLjAyMWMuNDM3LS4zMTIuODc1LS42NDYsMS4zMTItLjk3OWwxLjMxMi0xYy44NzUtLjY2NiwxLjcyOS0xLjMzMywyLjU4Mi0yczEuNzA4LTEuMzU0LDIuNTYyLTIuMDQxbC4wMjEtLjAyMWEyNC4zMTYsMjQuMzE2LDAsMCwwLDEuODc0LDEuNjQ1LDYuMTYyLDYuMTYyLDAsMCwwLS44NzUuNTQxLDguOTQzLDguOTQzLDAsMCwwLTEuMjI5LDEuMTI1LDEyLjI3OSwxMi4yNzksMCwwLDAtMS4wNDEsMS4yOTEsMTEuNzc4LDExLjc3OCwwLDAsMC0uNjQ2LDFjLTEuMjcsMS4wNDEtMi41MiwyLjEtMy43MjgsMy4yMDdhLjEyOC4xMjgsMCwwLDAtLjAyMS4xNDYuMTM4LjEzOCwwLDAsMCwuMTQ2LjA0Miw5LjEzNCw5LjEzNCwwLDAsMC0uMzEyLDEuMjVjLS4xMjUuNTgzLS4yNSwxLjE2Ni0uMzU0LDEuNzQ5Wm05LjIwNSwyLjc5MWEyLjUyNywyLjUyNywwLDAsMS0xLjAyLjQ1OCwzLjc2NywzLjc2NywwLDAsMS0xLjE4Ny4wNDIsNy4zNjEsNy4zNjEsMCwwLDEtMS4xNDUtLjIwOCwyLjAzNywyLjAzNywwLDAsMSwuMTY3LTEuMDQxYy4xNDYuMDIxLjI3MS4wMjEuNDE3LjA0MmEuMTE0LjExNCwwLDAsMCwuMTI1LS4wODMuMTI0LjEyNCwwLDAsMC0uMDgzLS4xNjdoMGMtLjEtLjA0Mi0uMTg3LS4wNjItLjI5Mi0uMWEyLjc3MSwyLjc3MSwwLDAsMSwuMjkyLS40Yy4xMjUtLjEyNS4yNS0uMjUuMzc1LS4zNTRhMy45OTIsMy45OTIsMCwwLDAsLjg1NC40LDIuODgxLDIuODgxLDAsMCwwLDEuMTI1LjEsMS41NSwxLjU1LDAsMCwwLDEuMDItLjU0MSwxLjUyNCwxLjUyNCwwLDAsMCwuMzU0LS45MTYuODUuODUsMCwwLDEsLjAyMS40LDQuNTExLDQuNTExLDAsMCwxLS4wODMuNTIxbC0uMDYyLjMxMkwyNSwyMC40OTRhLjkxOS45MTksMCwwLDAtLjMzMy4zNTQuNzUxLjc1MSwwLDAsMCwuNDc5LDBjLjAyMSwwLC4wMjEtLjAyMS4wNDItLjAyMS0uMDIxLjA2Mi0uMDIxLjEtLjA0Mi4xNjdhMi41NTIsMi41NTIsMCwwLDEtLjcwOC44NTRaTTI2LjUsMTkuMTE5YTIuMiwyLjIsMCwwLDEtLjQ1OC42MjUsMi42MzgsMi42MzgsMCwwLDEtLjI3MS4yMjksMi41ODUsMi41ODUsMCwwLDAtLjA2Mi0uNTYyLDEuNTM0LDEuNTM0LDAsMCwwLS4wODMtLjI5Mi41MzEuNTMxLDAsMCwwLS4xODctLjI1aDBjLS4wMjEsMC0uMDQyLDAtLjA0Mi4wMjFoMGExLjk1LDEuOTUsMCwwLDEtLjU2Mi43NzEsMS40MjksMS40MjksMCwwLDEtLjgxMi4yOTIsMi44NTcsMi44NTcsMCwwLDEtLjkxNi0uMTI1Yy0uMzEyLS4wODMtLjYyNS0uMTg3LS45MzctLjI5MmwtLjA0Mi0uMDIxYS4yLjIsMCwwLDAtLjE4Ny4wNDJjLS4xNjcuMjA4LS4yOTIuNC0uNDM3LjYtLjEuMTY3LS4xODcuMzEyLS4yNzEuNDc5LS4zNzUtLjE0Ni0uNzI5LS4yNzEtMS4xLS40MTctLjUyMS0uMjA4LTEuMDQxLS40MTctMS41Mi0uNjY2YTcuNjQ4LDcuNjQ4LDAsMCwxLTEuNC0uODEyLDIuOTQ5LDIuOTQ5LDAsMCwxLS45NzktMS4wNjJ2LS4wMjFhLjQwOS40MDksMCwwLDAtLjE4Ny0uMTg3YzAtLjA0Mi4wMjEtLjEuMDIxLS4xNDZhNy4zNyw3LjM3LDAsMCwwLC4xLTEuNTJjMS42ODctMS4xODcsMy4zMzItMi40MzcsNC45NTctMy43MjhsLS4wNjIuMTg3YTMuMjcsMy4yNywwLDAsMC0uMTQ2LDEuMDJBMi4wODksMi4wODksMCwwLDAsMjIuMTIyLDE1LjFhMi44MjUsMi44MjUsMCwwLDAsLjQ3OS4xODdsLjI1LjA2Mi4yMDguMDQyYTYuNjQ1LDYuNjQ1LDAsMCwxLDEuNTQxLjYyNSw2LjE1Niw2LjE1NiwwLDAsMSwxLjMxMi45NzksMi4yNzUsMi4yNzUsMCwwLDEsLjcwOCwxLjMzMywxLjUxLDEuNTEsMCwwLDEtLjEyNS43OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2YzZTI5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjY2NywyMy45MDlhMi4xNjEsMi4xNjEsMCwwLDAtLjM1NC43NzEsMS41NTYsMS41NTYsMCwwLDAtLjA2Mi40MTdsLS4wMjEuNDE3YTQuNTMzLDQuNTMzLDAsMCwwLC4xNDYsMS42NjYsNy42NDcsNy42NDcsMCwwLDAsLjY2NiwxLjUyYy0uMDgzLS4yNzEtLjE4Ny0uNTIxLS4yNzEtLjc3MXMtLjE2Ny0uNTIxLS4yMjktLjc5MWE1Ljg5LDUuODksMCwwLDEtLjEtMS42bC4wMjEtLjQxN2EyLjU1MiwyLjU1MiwwLDAsMSwuMDQyLS40LDMuMTM3LDMuMTM3LDAsMCwxLC4yOTItLjcyOSwyLjk2NywyLjk2NywwLDAsMSwuNTIxLS42MjUsMi41OTEsMi41OTEsMCwwLDEsLjY2Ni0uNDc5LDIuNzYsMi43NiwwLDAsMC0xLjMxMiwxLjAyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNmM2UyOVxcXCIvPlwiLFxuXHR9LFxuXHRcIkhhbmRsZWJhcnNcIjoge1xuXHRcdGNvbG91cjogXCIjYzE5NzcwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuMywxMy4xYTQuMjM4LDQuMjM4LDAsMCwxLDIuNzI4LjlBNC41OTIsNC41OTIsMCwwLDEsMTYsMTUuMTI3YTQuMTQ0LDQuMTQ0LDAsMCwxLDIuMDM5LTEuNzQ3LDQuNzU3LDQuNzU3LDAsMCwxLDMuMjg2LjAxOSw3LjgzMyw3LjgzMywwLDAsMSwyLjQ0MywxLjU1OGMuNTY4LjUsMS4wOTQsMS4wNSwxLjY3OSwxLjUzM2EzLjQsMy40LDAsMCwwLDEuMDE5LjYxNCwxLjQyLDEuNDIsMCwwLDAsMS40Ni0uMzc5Ljk2NS45NjUsMCwwLDAtLjA1NS0xLjMyMy41NDUuNTQ1LDAsMCwwLS44LjEwOC42NTkuNjU5LDAsMCwwLC4wNS42ODYsMS4yMjIsMS4yMjIsMCwwLDEtLjYtLjkyNiwxLjAyMiwxLjAyMiwwLDAsMSwuNjkxLTEuMDMyLDIuMDA1LDIuMDA1LDAsMCwxLDIuMzEyLjY2MSwzLjI1OCwzLjI1OCwwLDAsMSwuNDQsMi4zMDgsMi43NjIsMi43NjIsMCwwLDEtMS4xMzcsMS44NzIsNS4wNTEsNS4wNTEsMCwwLDEtMy4wMTMuOCw4LjQ4OCw4LjQ4OCwwLDAsMS0yLjkzMi0uNjNjLTEuNTU4LS42MjYtMy4wMTYtMS40OTItNC42MjUtMS45OTJhMTMuOTc3LDEzLjk3NywwLDAsMC0xLjctLjM2M2MtLjQzLjAwNy0uODYxLS4wMTUtMS4yOS4wMTVhNS42OTIsNS42OTIsMCwwLDAtMS41MzQuMzQ5Yy0xLjYzNi41MDktMy4xMTYsMS40LTQuNywyLjAyNGE3LjYyNSw3LjYyNSwwLDAsMS00LjI0OS40NzQsMy43NCwzLjc0LDAsMCwxLTIuMTI1LTEuMTRBMi44NTYsMi44NTYsMCwwLDEsMiwxNi42NjhhMi43MjIsMi43MjIsMCwwLDEsLjU1NS0xLjg3NCwxLjk5NCwxLjk5NCwwLDAsMSwxLjY4Ny0uNjgsMS40MjUsMS40MjUsMCwwLDEsMS4wNjMuNTIsMS4wNCwxLjA0LDAsMCwxLC4xMjIuOTExLDEuNDU3LDEuNDU3LDAsMCwxLS41NTYuNjQ0LjY0My42NDMsMCwwLDAsLjA1MS0uNjgxLjU0Ny41NDcsMCwwLDAtLjgzMS0uMDc5Ljk3NS45NzUsMCwwLDAtLjE1MSwxLjExLDEuMzMxLDEuMzMxLDAsMCwwLDEuMDMyLjYyMywyLjMzMiwyLjMzMiwwLDAsMCwxLjYtLjdBMjguNTI2LDI4LjUyNiwwLDAsMSw5LjQsMTQuMDUzLDUuMjUxLDUuMjUxLDAsMCwxLDEyLjMsMTMuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMTk3NzBcXFwiLz5cIixcblx0fSxcblx0XCJIYXNrZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiI0MwNDUwNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMC45OTZcXFwiIHkxPVxcXCItMjA2LjA1N1xcXCIgeDI9XFxcIjAuOTUxXFxcIiB5Mj1cXFwiLTIwNi4wNTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMjU5Ljk0MSwgMCwgMCwgLTE4My40ODcsIC0yMzcuOTQxLCAtMzc3OTIuNzg4KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhYmEwOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2I0MmMwMVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfaGFza2VsbDI8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDI1Ljg4Miw4LjU4OCwxNiwyLDYuMTE4SDYuOTQxTDEzLjUyOSwxNiw2Ljk0MSwyNS44ODJabTYuNTg4LDBMMTUuMTc3LDE2LDguNTg4LDYuMTE4aDQuOTQxTDI2LjcwNiwyNS44ODJIMjEuNzY1bC00LjExNy02LjE3Ni00LjExOCw2LjE3NlpNMjQuNTEsMjAuMTE4bC0yLjItMy4yOTRIMzB2My4yOTRabS0zLjI5NC00Ljk0MS0yLjItMy4yOTRIMzB2My4yOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiSGF4ZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNjg3MTJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiw1LjUsNS41LDE2LDE2LDI2LjUsMjYuNSwxNiwxNiw1LjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjg3MTJcXFwiLz48cGF0aCBkPVxcXCJNMiwyLDE2LDUuNSw1LjUsMTYsMiwyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFiMjBiXFxcIi8+PHBhdGggZD1cXFwiTTMwLDIsMjYuNSwxNiwxNiw1LjUsMzAsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y0NzIxNlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwzMCwxNiwyNi41LDI2LjUsMTYsMzAsMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMjVjMTlcXFwiLz48cGF0aCBkPVxcXCJNMiwzMCw1LjUsMTYsMTYsMjYuNSwyLDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZjg5YzBlXFxcIi8+PHBhdGggZD1cXFwiTTE2LDUuNSwyLDJIOWw3LDMuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZiYzcwN1xcXCIvPjxwYXRoIGQ9XFxcIk0xNiw1LjUsMzAsMkgyM0wxNiw1LjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYmM3MDdcXFwiLz48cGF0aCBkPVxcXCJNMTYsMjYuNSwzMCwzMEgyM2wtNy0zLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjg3MTJcXFwiLz48cGF0aCBkPVxcXCJNMTYsMjYuNSwyLDMwSDlsNy0zLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMjVjMTlcXFwiLz48cGF0aCBkPVxcXCJNNS41LDE2LDIsMzBWMjNsMy41LTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmYyMDBcXFwiLz48cGF0aCBkPVxcXCJNNS41LDE2LDIsMlY5bDMuNSw3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmMjAwXFxcIi8+PHBhdGggZD1cXFwiTTI2LjUsMTYsMzAsMlY5bC0zLjUsN1xcXCIgc3R5bGU9XFxcImZpbGw6I2YxNDcxZFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi41LDE2LDMwLDMwVjIzbC0zLjUtN1xcXCIgc3R5bGU9XFxcImZpbGw6I2YxNDcxZFxcXCIvPlwiLFxuXHR9LFxuXHRcIkhMU0xcIjoge1xuXHRcdGNvbG91cjogXCIjMDAwMGZmXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjkuNTI1IDIxLjk0NyA3LjU2IDIxLjk0NyA3LjU2IDE3LjEgMy45NTggMTcuMSAzLjk1OCAyMS45NDcgMiAyMS45NDcgMiAxMC4wNDQgMy45NTggMTAuMDQ0IDMuOTU4IDE0Ljc5MiA3LjU2IDE0Ljc5MiA3LjU2IDEwLjA0NCA5LjUyNSAxMC4wNDQgOS41MjUgMjEuOTQ3XFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi42OTIgMjEuOTQ3IDExLjUxMyAyMS45NDcgMTEuNTEzIDEwLjA0NCAxMy40NzIgMTAuMDQ0IDEzLjQ3MiAxOS43NzMgMTYuNjkyIDE5Ljc3MyAxNi42OTIgMjEuOTQ3XFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjQ2MiwyMS40OTFWMTguODM0YTMuNjc2LDMuNjc2LDAsMCwwLDEuMTQ2LjkwOSwyLjgwOSwyLjgwOSwwLDAsMCwxLjI0OS4zLDIuMDUsMi4wNSwwLDAsMCwuNjQ2LS4wOTIsMS4zMDksMS4zMDksMCwwLDAsLjQ2MS0uMjUyLDEuMDI5LDEuMDI5LDAsMCwwLC4yNzYtLjM4MiwxLjIzMSwxLjIzMSwwLDAsMCwuMDkxLS40NzgsMS4zLDEuMywwLDAsMC0uMTQ1LS42MjMsMS45MDcsMS45MDcsMCwwLDAtLjQtLjUwNiw0LjA3Nyw0LjA3NywwLDAsMC0uNi0uNDQ4cS0uMzQ2LS4yMTUtLjc0Ni0uNDM5YTQuMDQ1LDQuMDQ1LDAsMCwxLTEuNTE5LTEuNDE5LDMuODg0LDMuODg0LDAsMCwxLS41LTIuMDI2LDQuMjMyLDQuMjMyLDAsMCwxLC4yNzMtMS42LDMuMDIsMy4wMiwwLDAsMSwuNzQ0LTEuMSwyLjkzOCwyLjkzOCwwLDAsMSwxLjA4OC0uNjM0LDQuMTY3LDQuMTY3LDAsMCwxLDEuMzEtLjIsNS44MTYsNS44MTYsMCwwLDEsMS4yLjExMSwzLjgsMy44LDAsMCwxLC45NjcuMzQ1djIuNDgyYTIuODU5LDIuODU5LDAsMCwwLS40NzYtLjM2NSwzLjIxMiwzLjIxMiwwLDAsMC0uNTMtLjI2MkEzLjEsMy4xLDAsMCwwLDIxLjQ2LDEyYTIuNzk0LDIuNzk0LDAsMCwwLS41MTItLjA1LDEuOTk0LDEuOTk0LDAsMCwwLS42MDYuMDg3LDEuMzQ3LDEuMzQ3LDAsMCwwLS40NjEuMjQ1LDEuMDkyLDEuMDkyLDAsMCwwLS4yOTEuMzc3LDEuMTQ0LDEuMTQ0LDAsMCwwLS4xLjQ5NCwxLjIsMS4yLDAsMCwwLC4xMTUuNTM2LDEuNjU3LDEuNjU3LDAsMCwwLC4zMjguNDQ4LDMuNDYxLDMuNDYxLDAsMCwwLC41MTUuNDE1Yy4yLjEzNi40My4yNzUuNjg2LjQxOWE3LjA5NCw3LjA5NCwwLDAsMSwuOTM2LjYzNSwzLjcxMiwzLjcxMiwwLDAsMSwuNzEzLjc1OSwzLjI2OSwzLjI2OSwwLDAsMSwuNDU1Ljk2Nyw0LjU3Myw0LjU3MywwLDAsMSwuMTU4LDEuMjY2LDQuNDM5LDQuNDM5LDAsMCwxLS4yNzcsMS42NzIsMi44ODgsMi44ODgsMCwwLDEtLjc0OSwxLjEsMi44MjMsMi44MjMsMCwwLDEtMS4xLjYsNC43NDIsNC43NDIsMCwwLDEtMS4zMjUuMTgyLDUuNDc2LDUuNDc2LDAsMCwxLTEuMzYxLS4xNjZBMy40MSwzLjQxLDAsMCwxLDE3LjQ2MiwyMS40OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIzMCAyMS45NDcgMjQuODIyIDIxLjk0NyAyNC44MjIgMTAuMDQ0IDI2Ljc4IDEwLjA0NCAyNi43OCAxOS43NzMgMzAgMTkuNzczIDMwIDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPlwiLFxuXHR9LFxuXHRcIkhUTUxcIjoge1xuXHRcdGNvbG91cjogXCIjZTQ0ZjI2XCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuOTAyIDI3LjIwMSAzLjY1NSAyIDI4LjM0NSAyIDI2LjA5NSAyNy4xOTcgMTUuOTg1IDMwIDUuOTAyIDI3LjIwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2U0NGYyNlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMjcuODU4IDI0LjE3IDI1LjU5MyAyNi4wOTIgNC4wNjEgMTYgNC4wNjEgMTYgMjcuODU4XFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAxMy40MDcgMTEuOTEgMTMuNDA3IDExLjYyOCAxMC4yNDIgMTYgMTAuMjQyIDE2IDcuMTUxIDE1Ljk4OSA3LjE1MSA4LjI1IDcuMTUxIDguMzI0IDcuOTgxIDkuMDgzIDE2LjQ5OCAxNiAxNi40OTggMTYgMTMuNDA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAyMS40MzQgMTUuOTg2IDIxLjQzOCAxMi41NDQgMjAuNTA5IDEyLjMyNCAxOC4wNDQgMTAuNjUxIDE4LjA0NCA5LjIyMSAxOC4wNDQgOS42NTQgMjIuODk2IDE1Ljk4NiAyNC42NTQgMTYgMjQuNjUgMTYgMjEuNDM0XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS45ODkgMTMuNDA3IDE1Ljk4OSAxNi40OTggMTkuNzk1IDE2LjQ5OCAxOS40MzcgMjAuNTA3IDE1Ljk4OSAyMS40MzcgMTUuOTg5IDI0LjY1MyAyMi4zMjYgMjIuODk2IDIyLjM3MiAyMi4zNzQgMjMuMDk4IDE0LjIzNyAyMy4xNzQgMTMuNDA3IDIyLjM0MSAxMy40MDcgMTUuOTg5IDEzLjQwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuOTg5IDcuMTUxIDE1Ljk4OSA5LjA3MSAxNS45ODkgMTAuMjM1IDE1Ljk4OSAxMC4yNDIgMjMuNDQ1IDEwLjI0MiAyMy40NDUgMTAuMjQyIDIzLjQ1NSAxMC4yNDIgMjMuNTE3IDkuNTQ4IDIzLjY1OCA3Ljk4MSAyMy43MzIgNy4xNTEgMTUuOTg5IDcuMTUxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiSFRUUFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzYjYxYTZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjEyLjI3OFxcXCIgY3k9XFxcIjI0LjU1N1xcXCIgcj1cXFwiMTguMzcxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAtMC4wMDEsIDM0LjAwMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkM2U5ZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTU1XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDNlOWZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc1XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDA3NGFlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzY0ODZjXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImJcXFwiIGN4PVxcXCIxMC42NTdcXFwiIGN5PVxcXCIyNi43NDZcXFwiIHI9XFxcIjI2LjY2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAtMC4wMDEsIDM0LjAwMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4xNjVcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiY1xcXCIgY3g9XFxcIi00NS4wNVxcXCIgY3k9XFxcIjkuMjg1XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjEuOTcxIDQxLjk0Mikgcm90YXRlKDE0My43MzQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZFxcXCIgY3g9XFxcIi00MS40NTZcXFwiIGN5PVxcXCIzMi4xNTRcXFwiIHI9XFxcIjQuMTE1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDMuNTcxIDg3LjA3NSkgcm90YXRlKDE0My43MzQpIHNjYWxlKDEuMjk3KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImVcXFwiIGN4PVxcXCItNDguNDg1XFxcIiBjeT1cXFwiMTMuMjM5XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjMuMDg0IDU1LjQxMykgcm90YXRlKDE0My43MzQpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZlxcXCIgY3g9XFxcIi00MC44ODNcXFwiIGN5PVxcXCIxNi4wMzZcXFwiIHI9XFxcIjQuMTE1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjg3LCAwLjYzOSwgLTAuNjM4LCAtMC44NywgLTkuMzUxLCA0Ny43MDYpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIi02Ni41MDJcXFwiIHkxPVxcXCIyLjIxOVxcXCIgeDI9XFxcIi02NC42MjZcXFwiIHkyPVxcXCI2Ljc0OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjkzOSwgLTAuODc5LCAtMC42ODMsIC0wLjczLCA4NC44MSwgLTMzLjYyOClcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiLTI2Ljc5MVxcXCIgeTE9XFxcIjM5LjE1OVxcXCIgeDI9XFxcIi0yNC45OTlcXFwiIHkyPVxcXCI0NC42ODNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS4xMzEsIDAuNjEzLCAwLjQ3NywgLTAuODc5LCAyMS42NDgsIDY5LjA3MSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiLTYzLjM4NFxcXCIgeTE9XFxcIjguMTc3XFxcIiB4Mj1cXFwiLTYzLjU3XFxcIiB5Mj1cXFwiNC42OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjkxOCwgLTAuODU5LCAtMC42NjgsIC0wLjcxMywgNzcuODU3LCAtMzYuNDkzKVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItOTkuMjU5XFxcIiB5MT1cXFwiODkuNTQ1XFxcIiB4Mj1cXFwiLTk4LjgyNVxcXCIgeTI9XFxcIjkzLjAyM1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMS4yOCwgLTAuMTI2LCAtMC4wOTgsIDAuOTk1LCAtMTAxLjYzNywgLTkzLjAxNSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJrXFxcIiBjeD1cXFwiLTIwLjcxMlxcXCIgY3k9XFxcIjU3LjYxXFxcIiByPVxcXCIyLjgzNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLCAtMC44NDMsIC0wLjcyMSwgMCwgMjYuNjI1LCAtMjEuNjk2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzcyOWZjZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNiNjFhNlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJsXFxcIiBjeD1cXFwiLTIwLjcxMlxcXCIgY3k9XFxcIjM5Ljg1OFxcXCIgcj1cXFwiMi44MzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMjYuNjI1IDYzLjA5Nikgcm90YXRlKDkwKSBzY2FsZSgwLjg0MyAwLjcyMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3MjlmY2ZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM1MDllMmZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2h0dHA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOC4wMjYsMTQuMkExMS44NzcsMTEuODc3LDAsMSwxLDE2LjE0OSwyLjMyNSwxMS44NzgsMTEuODc4LDAsMCwxLDI4LjAyNiwxNC4yWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNDksMjYuMzg2QTEyLjE4MywxMi4xODMsMCwxLDEsMjguMzMzLDE0LjIsMTIuMiwxMi4yLDAsMCwxLDE2LjE0OSwyNi4zODZabTAtMjMuNzU0QTExLjU3MSwxMS41NzEsMCwxLDAsMjcuNzIsMTQuMiwxMS41ODQsMTEuNTg0LDAsMCwwLDE2LjE0OSwyLjYzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzOTM5NmNcXFwiLz48cGF0aCBkPVxcXCJNMjcuNjkzLDEyLjQyNGgwbC0uMzI4LjM3MWE3LDcsMCwwLDAtLjY1Ni0uNjQ0bC0uNS4wNzQtLjQ2LS41MTl2LjY0M2wuMzk0LjMuMjYyLjMuMzUtLjRjLjA4OC4xNjUuMTc1LjMzLjI2My41di40OTVsLS4zOTQuNDQ1LS43MjIuNS0uNTQ2LjU0NS0uMzUtLjQuMTc1LS40NDUtLjM1LS40LS41OTEtMS4yNjItLjUtLjU2OUwyMy42LDEyLjFsLjIuNzE4LjM3MS40MjFhMTcuMDY5LDE3LjA2OSwwLDAsMCwuNywxLjc4Myw5Ljk3OSw5Ljk3OSwwLDAsMCwxLjI2OC0uMXYuMzQ3bC0uNTI1LDEuMjg3LS40ODEuNTQ0LS4zOTQuODQzVjE5LjMzbC4xMzIuNTQ1LS4yMTkuMjQ3LS40ODIuMy0uNS40MjEuNDE2LjQ3LS41NjkuNS4xMDkuMzIxLS44NTMuOTY2SDIyLjJsLS40ODEuM2gtLjMwN3YtLjRsLS4xMy0uNzkzYy0uMTY5LS41LS4zNDYtLjk5MS0uNTI1LTEuNDg0LDAtLjM2NC4wMjItLjcyNS4wNDQtMS4wODlsLjIxOS0uNDk1LS4zMDctLjU5NS4wMjItLjgxNy0uNDE2LS40Ny4yMDgtLjY4LS4zMzgtLjM4NEgxOS42bC0uMi0uMjIzLS41OTEuMzcyLS4yNC0uMjczLS41NDcuNDdMMTYuOTExLDE1LjI3bC0uNDM3LTEuMDQuMzk0LS41OTMtLjIxOS0uMjQ3LjQ4MS0xLjEzOWMuMzk1LS40OTEuODA3LS45NjMsMS4yMjUtMS40MzZsLjc0NC0uMi44MzEtLjEuNTY5LjE0OS44MDkuODE2LjI4NC0uMzIxLjM5My0uMDQ5Ljc0NC4yNDdIMjMuM2wuMzk0LS4zNDcuMTc1LS4yNDctLjM5NC0uMjQ3LS42NTYtLjA0OWE2LjYsNi42LDAsMCwwLS41NjgtLjc0M2wtLjIxOS4xLS4wODguNjQ0LS4zOTQtLjQ0NS0uMDg3LS41LS40MzctLjM0NmgtLjE3NmwuNDM4LjQ5NS0uMTc1LjQ0NS0uMzUuMS4yMTktLjQ0NS0uMzk0LS4yLS4zNDktLjQtLjY1Ny4xNDgtLjA4Ny4yLS4zOTQuMjQ4LS4yMTkuNTQ1LS41NDYuMjcyLS4yNDEtLjI3MkgxNy44M1Y5LjQyOGwuNTY5LS4zaC40MzdsLS4wODgtLjM0NkwxOC40LDguNDM4bC41OS0uMTI0LjMyOC0uMzcxLjI2Mi0uNDQ2aC40ODJsLS4xMzItLjM0Ni4zMDctLjJ2LjRsLjY1Ni4xNDguNjU2LS41NDQuMDQ0LS4yNDguNTY4LS40YTQuMzUzLDQuMzUzLDAsMCwwLS42MTIuMVY1Ljk2M2wuMjE5LS41aC0uMjE5bC0uNDguNDQ1LS4xMzIuMjQ4LjEzMi4zNDctLjIxOS41OTMtLjM1LS4yLS4zMDYtLjM0Ni0uNDgyLjM0Ni0uMTc1LS43OTIuODMxLS41NDR2LS4zbC41MjUtLjM0Ni44MzEtLjIuNTY5LjIsMS4wNDkuMi0uMjYyLjNIMjIuNTFsLjU2OS41OTQuNDM3LS40OTUuMTMzLS4yMThhMTUuNTMsMTUuNTMsMCwwLDEsMi42MzUsMy4xNDdBMTEuNDUyLDExLjQ1MiwwLDAsMSwyNy42OTMsMTIuNDI0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE2Ljg2MSw1LjUxN2wtLjA0NC4zLjMwNy4yLjUyNC0uMzQ2LS4yNjItLjMtLjM1LjItLjE3NC0uMDVcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zNDMsMy40ODhsLTEuMTM4LS40NDYtMS4zMTIuMTQ4LTEuNjE5LjQ0NS0uMzA2LjMsMS4wMDYuNjkzdi40bC0uMzk0LjQuNTI1LDEuMDQuMzQ5LS4yLjQzOC0uNjkzYTE1LjA1MywxNS4wNTMsMCwwLDAsMS45MjQtLjc0M2wuNTI1LTEuMzM3XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTguNTI0LDcuNjQ3LDE4LjM0OSw3LjJsLS4zMDcuMS4wODguNTQ0LjM5NC0uMlxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE4LjcsNy41NDdsLS4wODguNTk1LjQ4MS0uMS4zNS0uMzQ2LS4zMDYtLjNjLS4xLS4yNzQtLjIyMS0uNTI5LS4zNS0uNzkyaC0uMjYydi4zbC4xNzQuMnYuNDQ1XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjI1LDE2Ljk1M2wtLjM1LS42OTMtLjY1Ni0uMTQ4LS4zNS0uOTQtLjg3NS4xLS43NDMtLjU0NC0uNzg4LjY5M3YuMTA5YTMsMywwLDAsMS0uNzQzLS4yMDlsLS4xNzUtLjQ5NVYxNC4yOGwtLjUyNS4wNDlxLjA2Ni0uNTIuMTMxLTEuMDM5SDYuODQ1bC0uMzA2LjQtLjMwNi4xNDhMNS44LDEzLjU4N2wtLjA0NC0uNTQ1LjA4OC0uNTk0LjY1Ni0uNDk1SDcuMDJsLjA4Ny0uMy42NTYuMTQ4LjQ4MS41OTUuMDg4LS45OTEuODMxLS42OTMuMzA2LS43NDMuNjEyLS4yNDcuMzUtLjQ5NS43ODctLjE0OS4zOTQtLjU5M0gxMC40MzJsLjc0NC0uMzQ3SDExLjdsLjc0NC0uMjQ4LjA4OC0uMy0uMjYzLS4yNDgtLjMwNi0uMS4wODgtLjMtLjIxOS0uNDQ1LS41MjUuMi4wODgtLjQtLjYxMi0uMzQ3TDEwLjMsNi44bC4wNDQuMy0uNDgxLjItLjMwNi42NDMtLjEzMS0uNTk0TDguNTk0LDdsLS4xMzEtLjQ0NSwxLjA5NC0uNjQ0LjQ4MS0uNDQ1LjA0NC0uNTQ0LS4yNjItLjE0OS0uMzUtLjA1LS4yMTkuNTQ1cy0uMzY2LjA3Mi0uNDYuMDk1QTEyLjUsMTIuNSwwLDAsMCw0LjYsMTMuMzcxYTYuNzg5LDYuNzg5LDAsMCwwLC40MDkuNzExbC45MTguNTQ0LjkxOC4yNDguMzk0LjUuNjEyLjQ0NS4zNS0uMDQ5LjI2Mi4xMTh2LjA4bC0uMzUuOTQtLjI2My40LjA4OC4yLS4yMTkuNzQyLjc4NywxLjQzNi43ODcuNjkzLjM1LjQ5NUw5LjYsMjEuOWwuMjYzLjU5M0w5LjYsMjMuNjM3cy0uMDIxLS4wMDcuMDEzLjEwN2E1LjI3OCw1LjI3OCwwLDAsMCwxLjQ4OC44MDlsLjE2MS0uMTIzLS4wODctLjI0Ny4zNS0uMzQ3LjEzMS0uMzQ3LjU2OS0uMi40MzctMS4wODktLjEzMS0uMy4zMDYtLjQ0NS42NTYtLjE0OS4zNS0uNzkyLS4wODgtLjk5LjUyNS0uNzQzLjA4OC0uNzQzYy0uNzE4LS4zNTYtMS40My0uNzIzLTIuMTQzLTEuMDg5XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTEuMjYzLDUuNzE1bC40MzcuM2guMzVWNS42NjZsLS40MzctLjItLjM1LjI0N1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEwLjEyNiw1LjMxOWwtLjIxOS41NDRoLjQzOGwuMjE5LS41Yy4xODktLjEzMy4zNzYtLjI2OC41NjgtLjRsLjQzOC4xNDkuODc1LjU5NC40MzgtLjQtLjQ4Mi0uMi0uMjE5LS40NDYtLjgzMS0uMS0uMDQ0LS4yNDgtLjM5NC4xLS4xNzUuMzQ2LS4yMTktLjQ0Ni0uMDg3LjIuMDQ0LjUtLjM1LjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS43LDQuMDgxbC4yMTktLjIuNDM4LS4xYTYuOSw2LjksMCwwLDEsLjkxOC0uMzQ3bC0uMTc0LS4zLS41NjUuMDgxLS4yNjcuMjY2LS40NC4wNjQtLjM5MS4xODQtLjE5LjA5Mi0uMTE2LjE1NS41NjguMVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjQ0NCw4Ljc4NWwuMjYzLS40LS4zOTQtLjMuMTMxLjY5M1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE2LjE0OSwyNS43ODNBMTEuNTgsMTEuNTgsMCwxLDEsMjcuNzI5LDE0LjIsMTEuNTkzLDExLjU5MywwLDAsMSwxNi4xNDksMjUuNzgzWm0wLTIyLjU0OEExMC45NjgsMTAuOTY4LDAsMSwwLDI3LjExNywxNC4yLDEwLjk4LDEwLjk4LDAsMCwwLDE2LjE0OSwzLjIzNVpcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzk1NjA0NDAxODI2ODU4NTtpc29sYXRpb246aXNvbGF0ZTtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNNS41NDEsMTAuMjQxYTQuMTE1LDQuMTE1LDAsMSwwLDYuNjM2LTQuODY2aDBBNC4xMTUsNC4xMTUsMCwwLDAsNS41NCwxMC4yNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNNy44MzYsOC41NThhMS4yNjgsMS4yNjgsMCwxLDAsMi4wNDYtMS41aDBhMS4yNjgsMS4yNjgsMCwwLDAtMi4wNDYsMS41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45NTIsMjQuOGE1LjMzNyw1LjMzNywwLDEsMCw4LjYwNy02LjMxMnYwQTUuMzM3LDUuMzM3LDAsMCwwLDE3Ljk1LDI0LjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjkyOCwyMi42MTZhMS42NDUsMS42NDUsMCwxLDAsMi42NTMtMS45NDZoMGExLjY0NSwxLjY0NSwwLDAsMC0yLjY1MywxLjk0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNC44NTksMTguNDkzQTQuMTE1LDQuMTE1LDAsMSwwLDExLjUsMTMuNjI2aDBhNC4xMTUsNC4xMTUsMCwwLDAtNi42MzYsNC44NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTcuMTU0LDE2LjgwOWExLjI2OCwxLjI2OCwwLDEsMCwyLjA0Ni0xLjVoMGExLjI2OCwxLjI2OCwwLDAsMC0yLjA0NiwxLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQwOCwxMC4yNjlBNC40NDEsNC40NDEsMCwxLDAsMTkuNTcsNS4wMTZoMGE0LjQ0MSw0LjQ0MSwwLDEsMC03LjE2Miw1LjI1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMTQuODg1LDguNDUyYTEuMzY5LDEuMzY5LDAsMSwwLDIuMjA4LTEuNjE5aDBhMS4zNjksMS4zNjksMCwxLDAtMi4yMDgsMS42MTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjY4LDI2LjIzOGEzLjgzLDMuODMsMCwwLDEtMi45MDktMS4wODdjLTEuMTMzLTEuMjEtMS4yLTMuMjU1LS4yLTUuNzU3YTIxLjU0MiwyMS41NDIsMCwwLDEsNS4zMDctNy4zMjZDMjAuMDY0LDcuMjE1LDI1Ljk0NSw1LjM1NiwyOC4yNyw3LjgzOWMxLjEzMywxLjIxMSwxLjIsMy4yNTUuMiw1Ljc1N2EyMS41NTMsMjEuNTUzLDAsMCwxLTUuMzA4LDcuMzI2QTIxLjU1MSwyMS41NTEsMCwwLDEsMTUuNSwyNS43MzMsOS4yMjksOS4yMjksMCwwLDEsMTIuNjgsMjYuMjM4Wk0yNS4zNDIsNy4yOGMtMi43LDAtNi42LDEuOTA4LTEwLjEsNS4xODNBMjEsMjEsMCwwLDAsMTAuMDcxLDE5LjZjLS45MjEsMi4zLS44ODcsNC4xMzguMDk0LDUuMTg3czIuODE3LDEuMiw1LjE2OS40MzdhMjEsMjEsMCwwLDAsNy40Ni00LjY5MiwyMSwyMSwwLDAsMCw1LjE3NS03LjEzMmMuOTIxLTIuMy44ODgtNC4xMzgtLjA5NS01LjE4N0EzLjM0LDMuMzQsMCwwLDAsMjUuMzQyLDcuMjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2cpXFxcIi8+PHBhdGggZD1cXFwiTTIxLjY4MSwyMi4wOTRhMjAuNjMzLDIwLjYzMywwLDAsMS05LjMzOS0yLjc1OUM2LjEsMTUuOTUsMi40NzMsMTAuOTU3LDQuMDk0LDcuOTY4Yy43OS0xLjQ1OCwyLjctMi4xNzUsNS40LTIuMDEyQTIxLjU0MiwyMS41NDIsMCwwLDEsMTguMTIsOC42NzRhMjEuNTQ1LDIxLjU0NSwwLDAsMSw2Ljk4Nyw1Ljc0NmMxLjYsMi4xNjcsMi4wNTEsNC4xNjMsMS4yNjEsNS42MjFDMjUuNjIyLDIxLjQxNiwyMy45MTUsMjIuMDk0LDIxLjY4MSwyMi4wOTRaTTguNzU5LDYuNDc0Yy0yLjEsMC0zLjU3Mi42MTItNC4xOSwxLjc1MUMzLjExNywxMC45LDYuNzIsMTUuNjc0LDEyLjYsMTguODZzMTEuODQzLDMuNiwxMy4yOTQuOTI0Yy42ODUtMS4yNjMuMjUxLTMuMDU0LTEuMjItNS4wNDJhMjEsMjEsMCwwLDAtNi44MS01LjU5M0EyMSwyMSwwLDAsMCw5LjQ1OSw2LjVROS4xLDYuNDc0LDguNzU5LDYuNDc0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMCwyNC4wNzhhMy43NTcsMy43NTcsMCwwLDEtMi44NTEtMS4wNjVjLTEuMTEtMS4xODctMS4xODEtMy4xODktLjItNS42MzlhMjEuMDYyLDIxLjA2MiwwLDAsMSw1LjE4OS03LjE2M2M1LjA3My00Ljc0NywxMC44My02LjU2MywxMy4xLTQuMTMyaDBjMi4yNzUsMi40MzEuMDgzLDguMDUzLTQuOTksMTIuOGEyMS4wNTksMjEuMDU5LDAsMCwxLTcuNDkxLDQuN0E5LjAyNCw5LjAyNCwwLDAsMSwxMCwyNC4wNzhaTTIyLjM3Myw1LjU1M2MtMi42MywwLTYuNDM5LDEuODY0LTkuODU2LDUuMDYyQTIwLjUsMjAuNSwwLDAsMCw3LjQ2MywxNy41OGMtLjksMi4yMzktLjg2Niw0LjAzNC4wOSw1LjA1NXMyLjc0NSwxLjE3Miw1LjAzOC40MjRhMjAuNTEzLDIwLjUxMywwLDAsMCw3LjI4NC00LjU4MmM0Ljc2Ni00LjQ2LDYuOTk0LTkuODUzLDQuOTY1LTEyLjAyaDBBMy4yNTYsMy4yNTYsMCwwLDAsMjIuMzczLDUuNTUzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNpKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41MTIsMTkuNDEzYy0uODYsMC0xLjc0OC0uMDQzLTIuNjU5LS4xMzNDNy43ODQsMTguNTg0LDIuNTA3LDE1LjM4OCwyLjg0LDEyaDBjLjMzMy0zLjM4Myw2LjEzMy01LjQ5LDEzLjItNC43OTFzMTIuMzQ1LDMuODkyLDEyLjAxMiw3LjI3NUMyNy43NjMsMTcuNDM2LDIzLjMyNCwxOS40MTMsMTcuNTEyLDE5LjQxM1pNMy4zNzgsMTIuMDU3Yy0uMywzLjAzMSw0Ljg3Myw2LjAzLDExLjUyOCw2LjY4NnMxMi4zMTItMS4yNzcsMTIuNjExLTQuMzA4UzIyLjY0NCw4LjQwNiwxNS45ODgsNy43NSwzLjY3Nyw5LjAyNywzLjM3OCwxMi4wNTdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTYuMjUxLDI5Ljk2Nmg2LjY3NFYyMC44MDloMi45ODFMOS41NDgsMTEuNDM0LDMuMjk1LDIwLjc4MmwyLjk1OC4wMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+PHBhdGggZD1cXFwiTTEyLjkyNCwzMC4wNDVINi4yNTFhLjA0OS4wNDksMCwwLDEtLjAzOS0uMDIzYy0uMDEtLjAxNS0uMDE2LTMuMTM1LS4wMTYtMy4xNTZsMC01Ljk3NS0yLjktLjAzYS4wNi4wNiwwLDAsMS0uMDUxLS4wNDguMS4xLDAsMCwxLC4wMTEtLjA4NUw5LjUwOCwxMS4zOGEuMDU2LjA1NiwwLDAsMSwuMDQxLS4wMjUuMDUuMDUsMCwwLDEsLjA0LjAyNGw2LjM1Nyw5LjM3NWEuMS4xLDAsMCwxLC4wMTEuMDg2LjA1OS4wNTksMCwwLDEtLjA1MS4wNDhIMTIuOTh2OS4wNzhDMTIuOTgsMzAuMDEsMTIuOTU1LDMwLjA0NSwxMi45MjQsMzAuMDQ1Wm0tNi42MTgtLjE1OGg2LjU2MlYyMC44MDljMC0uMDQ0LjAyNS0uMDc5LjA1Ni0uMDc5aDIuODVMOS41NDksMTEuNTQ5LDMuNDI0LDIwLjdsMi44My4wM2MuMDMxLDAsLjA1NS4wMzYuMDU1LjA3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxODM4NjhcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDUzLDIwLjU4N2wtMi45NTguMDMxLDYuMjU0LDkuMzQ4LDYuMzU3LTkuMzc1SDI1LjcyNFYxMS40MzRIMTkuMDUxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNsKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43OCwxMS40MzR2OS4wNzhoMi45MjVhLjA1OS4wNTksMCwwLDEsLjA1MS4wNDguMS4xLDAsMCwxLS4wMTEuMDg2bC02LjM1Nyw5LjM3NWEuMDUuMDUsMCwwLDEtLjA0LjAyNC4wNTYuMDU2LDAsMCwxLS4wNDEtLjAyNWwtNi4yNTQtOS4zNDhhLjEuMSwwLDAsMS0uMDExLS4wODUuMDYuMDYsMCwwLDEsLjA1MS0uMDQ4bDIuOS0uMDMsMC01Ljk3NWMwLS4wMjEuMDA2LTMuMTQxLjAxNi0zLjE1NmEuMDQ5LjA0OSwwLDAsMSwuMDM5LS4wMjNoNi42NzRDMjUuNzU1LDExLjM1NSwyNS43OCwxMS4zOSwyNS43OCwxMS40MzRabS02LjY3Miw5LjE1M2MwLC4wNDMtLjAyNS4wNzktLjA1NS4wNzlsLTIuODMuMDMsNi4xMjUsOS4xNTYsNi4yMjYtOS4xODFoLTIuODVjLS4wMzEsMC0uMDU2LS4wMzUtLjA1Ni0uMDc5VjExLjUxM0gxOS4xMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMTgzODY4XFxcIi8+XCIsXG5cdH0sXG5cdFwiSWRyaXNcIjoge1xuXHRcdGNvbG91cjogXCIjOGEwODE5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTMuMzc2LDYuMmMzLjYsMS4xLDQuNSwyLDUuOCw1LjItLjMtNC0xLjktNS42LTUuOC01LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTguMzc2LDEyLjRjMi4zLjcsNSwxLjMsNiw1LjcuNC01LjUtMi4yLTUuOC02LTUuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz48cGF0aCBkPVxcXCJNOS45NzYsOC44YzMuNS43LDUuNywxLjcsNyw2LjIuMy01LjgtMi45LTYuNC03LTYuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz48cGF0aCBkPVxcXCJNMTQuNTc2LDJjMTkuMSwxMi40LTQuMiwxMi43LjgsMjcuMWwzLC45Yy04LjMtMTEuMiwxOC40LTE3LTMuOC0yOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz5cIixcblx0fSxcblx0XCJJbmlcIjoge1xuXHRcdGNvbG91cjogXCIjOTliOGM0XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjMuMjY1LDI0LjM4MWwuOS0uODk0YzQuMTY0LjEzNiw0LjIyOC0uMDEsNC40MTEtLjQzOGwxLjE0NC0yLjc4NUwyOS44MDUsMjBsLS4wOTMtLjIzMWMtLjA0OS0uMTIyLS4yLS40ODYtMi44LTIuOTY1VjE1LjVjMy0yLjg5LDIuOTM2LTMuMDM4LDIuNzY1LTMuNDYxTDI4LjUzOCw5LjIyNWMtLjE3MS0uNDIyLS4yMzYtLjU4Ny00LjM3LS40NzRsLS45LS45M2EyMC4xNjYsMjAuMTY2LDAsMCwwLS4xNDEtNC4xMDZsLS4xMTYtLjI2My0yLjk3NC0xLjNjLS40MzgtLjItLjU5Mi0uMjcyLTMuNCwyLjc4NmwtMS4yNjItLjAxOWMtMi44OTEtMy4wODYtMy4wMjgtMy4wMy0zLjQ2MS0yLjg1NUw5LjE0OSwzLjE4MmMtLjQzMy4xNzUtLjU4Ni4yMzctLjQxOCw0LjQzN2wtLjg5My44OWMtNC4xNjItLjEzNi00LjIyNi4wMTItNC40MDcuNDM4TDIuMjg1LDExLjczMywyLjE5NSwxMmwuMDk0LjIzMmMuMDQ5LjEyLjE5NC40OCwyLjgsMi45NjJsMCwxLjNjLTMsMi44OS0yLjkzNSwzLjAzOC0yLjc2MywzLjQ2MmwxLjEzOCwyLjgxN2MuMTc0LjQzMS4yMzYuNTg0LDQuMzY5LjQ3NmwuOS45MzVhMjAuMjQzLDIwLjI0MywwLDAsMCwuMTM3LDQuMWwuMTE2LjI2NSwyLjk5MywxLjMwOGMuNDM1LjE4Mi41ODYuMjQ3LDMuMzg2LTIuOGwxLjI2Mi4wMTZjMi44OTUsMy4wOSwzLjA0MywzLjAzLDMuNDY2LDIuODU5bDIuNzU5LTEuMTE1QzIzLjI4OCwyOC42NDQsMjMuNDQsMjguNTgzLDIzLjI2NSwyNC4zODFaTTExLjQwNywxNy44NTdhNC45NTcsNC45NTcsMCwxLDEsNi40ODgsMi44MjRBNS4wMTQsNS4wMTQsMCwwLDEsMTEuNDA3LDE3Ljg1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OWI4YzRcXFwiLz5cIixcblx0fSxcblx0XCJJb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDIuODg3SDcuMDc1VjcuNTFIMlptLjA1Miw2LjgzSDcuMDRWMjguNjI2SDIuMDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4yNzEsMjYuNDU0YTkuNzkxLDkuNzkxLDAsMCwxLTIuNjE2LTcuMTc4LDEwLjE0OCwxMC4xNDgsMCwwLDEsMi42MTYtNy4zNDMsOS4zMjEsOS4zMjEsMCwwLDEsNy4wNDctMi43Miw5LjM0LDkuMzQsMCwwLDEsNy4wNzUsMi43MkExMC4xNjgsMTAuMTY4LDAsMCwxLDMwLDE5LjI3NmE5LjgwOSw5LjgwOSwwLDAsMS0yLjYwNyw3LjE3OCw5LjQ1Niw5LjQ1NiwwLDAsMS03LjA3NSwyLjY1OUE5LjQzNiw5LjQzNiwwLDAsMSwxMy4yNzEsMjYuNDU0Wm0xMC40MzYtMi45NzJhNi43LDYuNywwLDAsMCwxLjE2Ni00LjI1OCw2Ljk0Myw2Ljk0MywwLDAsMC0xLjE2Ni00LjM1NCw0LjA0Nyw0LjA0NywwLDAsMC0zLjM4OS0xLjQ4Niw0LjAyMiw0LjAyMiwwLDAsMC0zLjM4LDEuNDg2LDYuOTkxLDYuOTkxLDAsMCwwLTEuMTU2LDQuMzU0LDYuNzQ0LDYuNzQ0LDAsMCwwLDEuMTU2LDQuMjU4LDQuMDUzLDQuMDUzLDAsMCwwLDMuMzgsMS40NkE0LjA3OCw0LjA3OCwwLDAsMCwyMy43MDcsMjMuNDgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIkphdmFcIjoge1xuXHRcdGNvbG91cjogXCIjNTM4MmExXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuMzI1LDIzLjY1NHMtMS4wNy42MjIuNzYxLjgzM2ExNi4wMjMsMTYuMDIzLDAsMCwwLDUuOC0uMjQ2LDEwLjA4OCwxMC4wODgsMCwwLDAsMS41NDEuNzUyYy01LjQ4MSwyLjM0OS0xMi40MDUtLjEzNi04LjEtMS4zMzlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjU2LDIwLjU4OHMtMS4yLjg4OC42MzMsMS4wNzhhMjIuNjE4LDIyLjYxOCwwLDAsMCw3LjQ4MS0uMzU5LDMuMzIsMy4zMiwwLDAsMCwxLjE1Mi43Yy02LjYyNywxLjkzOC0xNC4wMDkuMTUzLTkuMjY2LTEuNDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMsMTUuMzg4YTIuMDUxLDIuMDUxLDAsMCwxLS4zNTUsMi45NTRzMy40MjktMS43NywxLjg1NC0zLjk4N2MtMS40NzEtMi4wNjctMi42LTMuMDk1LDMuNTA4LTYuNjM2LDAsMC05LjU4NiwyLjM5NC01LjAwNyw3LjY2OVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC41NTIsMjUuOTIxcy43OTIuNjUyLS44NzIsMS4xNTdjLTMuMTY0Ljk1OC0xMy4xNjgsMS4yNDgtMTUuOTQ4LjAzOC0xLS40MzUuODc0LTEuMDM4LDEuNDY0LTEuMTY0YTMuOCwzLjgsMCwwLDEsLjk2Ni0uMTA4Yy0xLjExMS0uNzgzLTcuMTgxLDEuNTM3LTMuMDgzLDIuMiwxMS4xNzYsMS44MTIsMjAuMzcyLS44MTYsMTcuNDczLTIuMTI0XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTEyLjg0LDE3LjQxMnMtNS4wODksMS4yMDktMS44LDEuNjQ4YTM4LjIyNSwzOC4yMjUsMCwwLDAsNi43MzEtLjA3MmMyLjEwNi0uMTc4LDQuMjIxLS41NTUsNC4yMjEtLjU1NWE4LjkzNCw4LjkzNCwwLDAsMC0xLjI4LjY4NWMtNS4xNjgsMS4zNTktMTUuMTUxLjcyNy0xMi4yNzctLjY2M2E5LjYyOSw5LjYyOSwwLDAsMSw0LjQwNy0xLjA0MlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NjksMjIuNTE1YzUuMjUzLTIuNzMsMi44MjQtNS4zNTMsMS4xMjktNWEzLjkzMiwzLjkzMiwwLDAsMC0uNi4xNjEuOTU3Ljk1NywwLDAsMSwuNDQ5LS4zNDZjMy4zNTQtMS4xNzksNS45MzMsMy40NzgtMS4wODMsNS4zMjJhLjQ1OC40NTgsMCwwLDAsLjEwNi0uMTM4XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTE4LjgsMnMyLjkwOSwyLjkxLTIuNzU5LDcuMzg2Yy00LjU0NiwzLjU5LTEuMDM3LDUuNjM3LDAsNy45NzUtMi42NTMtMi4zOTQtNC42LTQuNS0zLjI5NC02LjQ2M0MxNC42NjQsOC4wMTksMTkuOTc2LDYuNjIzLDE4LjgsMlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4zNTYsMjkuOTEyYzUuMDQyLjMyMywxMi43ODYtLjE3OSwxMi45NjktMi41NjUsMCwwLS4zNTMuOS00LjE2NywxLjYyM2E0MS40NTgsNDEuNDU4LDAsMCwxLTEyLjc2LjJzLjY0NS41MzMsMy45NTkuNzQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiSmF2YVNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNWRlMTlcIixcblx0XHRpY29uOiBcIjxyZWN0IHg9XFxcIjJcXFwiIHk9XFxcIjJcXFwiIHdpZHRoPVxcXCIyOFxcXCIgaGVpZ2h0PVxcXCIyOFxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44MDksMjMuODc1YTIuODY2LDIuODY2LDAsMCwwLDIuNiwxLjZjMS4wOSwwLDEuNzg3LS41NDUsMS43ODctMS4zLDAtLjktLjcxNi0xLjIyMi0xLjkxNi0xLjc0N2wtLjY1OC0uMjgyYy0xLjktLjgwOS0zLjE2LTEuODIyLTMuMTYtMy45NjQsMC0xLjk3MywxLjUtMy40NzYsMy44NTMtMy40NzZhMy44ODksMy44ODksMCwwLDEsMy43NDIsMi4xMDdMMjUsMTguMTI4QTEuNzg5LDEuNzg5LDAsMCwwLDIzLjMxMSwxN2ExLjE0NSwxLjE0NSwwLDAsMC0xLjI1OSwxLjEyOGMwLC43ODkuNDg5LDEuMTA5LDEuNjE4LDEuNmwuNjU4LjI4MmMyLjIzNi45NTksMy41LDEuOTM2LDMuNSw0LjEzMywwLDIuMzY5LTEuODYxLDMuNjY3LTQuMzYsMy42NjdhNS4wNTUsNS4wNTUsMCwwLDEtNC43OTUtMi42OTFabS05LjI5NS4yMjhjLjQxMy43MzMuNzg5LDEuMzUzLDEuNjkzLDEuMzUzLjg2NCwwLDEuNDEtLjMzOCwxLjQxLTEuNjUzVjE0Ljg1NmgyLjYzMXY4Ljk4MmMwLDIuNzI0LTEuNiwzLjk2NC0zLjkyOSwzLjk2NGE0LjA4NSw0LjA4NSwwLDAsMS0zLjk0Ny0yLjRaXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiSlNPTlwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNWRlMTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk00LjAxNCwxNC45NzZhMi41MSwyLjUxLDAsMCwwLDEuNTY3LS41MThBMi4zNzcsMi4zNzcsMCwwLDAsNi4zODYsMTMuMSwxNS4yNjEsMTUuMjYxLDAsMCwwLDYuNiwxMC4xNTZxLjAxMi0yLjA4NS4wNzUtMi43NDdhNS4yMzYsNS4yMzYsMCwwLDEsLjQxOC0xLjY4NiwzLjAyNSwzLjAyNSwwLDAsMSwuNzU1LTEuMDE4QTMuMDQ2LDMuMDQ2LDAsMCwxLDksNC4xMjUsNi43NjIsNi43NjIsMCwwLDEsMTAuNTQ0LDRoLjdWNS45NmgtLjM4N2EyLjMzOCwyLjMzOCwwLDAsMC0xLjcyMy40NjhBMy40LDMuNCwwLDAsMCw4LjcwOSw4LjUyYTM2LjA1NCwzNi4wNTQsMCwwLDEtLjEzNyw0LjEzMyw0LjczNCw0LjczNCwwLDAsMS0uNzY4LDIuMDZBNC41NjcsNC41NjcsMCwwLDEsNi4xLDE2YTMuODA5LDMuODA5LDAsMCwxLDEuOTkyLDEuNzU0LDguODYxLDguODYxLDAsMCwxLC42MTgsMy44NjVxMCwyLjQzNS4wNSwyLjlBMS43NTUsMS43NTUsMCwwLDAsOS4yNjQsMjUuN2EyLjYzOSwyLjYzOSwwLDAsMCwxLjU5Mi4zMzdoLjM4N1YyOGgtLjdhNS42NTUsNS42NTUsMCwwLDEtMS43NzMtLjIsMi45NywyLjk3LDAsMCwxLTEuMzI0LS45MywzLjM1MywzLjM1MywwLDAsMS0uNjgxLTEuNjNBMjQuMTc1LDI0LjE3NSwwLDAsMSw2LjYsMjIuMDA2LDE2LjQ2OSwxNi40NjksMCwwLDAsNi4zODYsMTguOWEyLjQwOCwyLjQwOCwwLDAsMC0uODA1LTEuMzYxLDIuNDg5LDIuNDg5LDAsMCwwLTEuNTY3LS41MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjVkZTE5XFxcIi8+PHBhdGggZD1cXFwiTTI3Ljk4NiwxNy4wMTFhMi40ODksMi40ODksMCwwLDAtMS41NjcuNTI0LDIuNDA4LDIuNDA4LDAsMCwwLS44MDUsMS4zNjEsMTYuNDY5LDE2LjQ2OSwwLDAsMC0uMjEyLDMuMTA5LDI0LjE3NSwyNC4xNzUsMCwwLDEtLjE2OSwzLjIzNCwzLjM1MywzLjM1MywwLDAsMS0uNjgxLDEuNjMsMi45NywyLjk3LDAsMCwxLTEuMzI0LjkzLDUuNjU1LDUuNjU1LDAsMCwxLTEuNzczLjJoLS43VjI2LjA0aC4zODdhMi42MzksMi42MzksMCwwLDAsMS41OTItLjMzNywxLjc1NSwxLjc1NSwwLDAsMCwuNTA2LTEuMTg2cS4wNS0uNDYyLjA1LTIuOWE4Ljg2MSw4Ljg2MSwwLDAsMSwuNjE4LTMuODY1QTMuODA5LDMuODA5LDAsMCwxLDI1LjksMTZhNC41NjcsNC41NjcsMCwwLDEtMS43LTEuMjg2LDQuNzM0LDQuNzM0LDAsMCwxLS43NjgtMi4wNiwzNi4wNTQsMzYuMDU0LDAsMCwxLS4xMzctNC4xMzMsMy40LDMuNCwwLDAsMC0uNDI1LTIuMDkyLDIuMzM4LDIuMzM4LDAsMCwwLTEuNzIzLS40NjhoLS4zODdWNGguN0E2Ljc2Miw2Ljc2MiwwLDAsMSwyMyw0LjEyNWEzLjA0NiwzLjA0NiwwLDAsMSwxLjE0OS41ODEsMy4wMjUsMy4wMjUsMCwwLDEsLjc1NSwxLjAxOCw1LjIzNiw1LjIzNiwwLDAsMSwuNDE4LDEuNjg2cS4wNjIuNjYyLjA3NSwyLjc0N2ExNS4yNjEsMTUuMjYxLDAsMCwwLC4yMTIsMi45NDcsMi4zNzcsMi4zNzcsMCwwLDAsLjgwNSwxLjM1NSwyLjUxLDIuNTEsMCwwLDAsMS41NjcuNTE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPlwiLFxuXHR9LFxuXHRcIkpTT041XCI6IHtcblx0XHRjb2xvdXI6IFwiIzkwOTA5MFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEyLjgxNSwxNS4xNjdsLjY4LTUuNjc2aDYuNDg5djJoLTQuNEwxNS4zMjksMTMuN2EyLjQsMi40LDAsMCwxLC4yNTItLjEyMiwyLjk2MiwyLjk2MiwwLDAsMSwuMzc0LS4xMywyLjksMi45LDAsMCwxLC40NTgtLjEwNiwyLjgzNCwyLjgzNCwwLDAsMSwuNTEyLS4wNDYsMy45ODMsMy45ODMsMCwwLDEsMS40NjYuMjUyLDIuNzM2LDIuNzM2LDAsMCwxLDEuMDc2LjcyMywzLjE2NywzLjE2NywwLDAsMSwuNjY0LDEuMTY4LDUsNSwwLDAsMSwuMjI4LDEuNTg4LDQuMTU3LDQuMTU3LDAsMCwxLS4yMzYsMS4zODcsMy4zMDcsMy4zMDcsMCwwLDEtMS45LDIuMDI5LDQuMyw0LjMsMCwwLDEtMS43MTUuMzEyLDQuNzUsNC43NSwwLDAsMS0xLjQ1OC0uMjI4LDQuMDU0LDQuMDU0LDAsMCwxLTEuMjUyLS42NTYsMy4zNTksMy4zNTksMCwwLDEtLjg3OC0xLjA0NiwyLjc4NywyLjc4NywwLDAsMS0uMzItMS4zODJIMTUuMThhMS40NTgsMS40NTgsMCwwLDAsLjM5Ljk3LDEuMzgzLDEuMzgzLDAsMCwwLDEuNTU4LjIwNiwxLjA4OSwxLjA4OSwwLDAsMCwuNC0uNDEyLDEuNzQ5LDEuNzQ5LDAsMCwwLC4yMDYtLjYxOCw0LjMsNC4zLDAsMCwwLC4wNjItLjc0LDIuNzA5LDIuNzA5LDAsMCwwLS4wOTItLjc0LDEuNTA2LDEuNTA2LDAsMCwwLS4yODItLjU1OCwxLjIyOSwxLjIyOSwwLDAsMC0uNS0uMzQ5LDEuNzgsMS43OCwwLDAsMC0uNzE4LS4xMywyLjEyMSwyLjEyMSwwLDAsMC0uNS4wNTQsMS44MDUsMS44MDUsMCwwLDAtLjM4Mi4xMzgsMS4zMTgsMS4zMTgsMCwwLDAtLjI3NC4xOSwxLjI4LDEuMjgsMCwwLDAtLjE5LjJsLTIuMDQ4LS40ODJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNS45ODUsMjMuMzQzYTQuNDUsNC40NSwwLDAsMS0xLjMxMS0uNTgsMy4yLDMuMiwwLDAsMS0uODQ4LS44MjQsMy4wMTIsMy4wMTIsMCwwLDEtLjQ1OC0xLjAwOCw0Ljg3OSw0Ljg3OSwwLDAsMS0uMTMtMS4xNDN2LTEuNTVhMi4zLDIuMywwLDAsMC0uMDc2LS42MTgsMS4xODQsMS4xODQsMCwwLDAtLjIyMi0uNDY2Ljk2OS45NjksMCwwLDAtLjM4Mi0uMzA2QTEuMzI0LDEuMzI0LDAsMCwwLDIsMTYuNzQ0VjE1LjAxMmExLjA3NCwxLjA3NCwwLDAsMCwuOTM3LS40LDEuODQxLDEuODQxLDAsMCwwLC4zLTEuMXYtMS41NWE0Ljg3OSw0Ljg3OSwwLDAsMSwuMTMtMS4xNDMsMy4wMzcsMy4wMzcsMCwwLDEsLjQ1OC0xLjAwOEEzLjE3LDMuMTcsMCwwLDEsNC42NzEsOWE0LjQ4Miw0LjQ4MiwwLDAsMSwxLjMxMS0uNThsLjQ4LDEuMzQ0YTEuMjIyLDEuMjIyLDAsMCwwLS40ODguMzI4LDEuNzQyLDEuNzQyLDAsMCwwLS4zMDYuNSwyLjUyNCwyLjUyNCwwLDAsMC0uMTYuNjM0LDUuODI3LDUuODI3LDAsMCwwLS4wNDYuNzR2MS41NUEyLjg0NCwyLjg0NCwwLDAsMSw1LjEyNiwxNC45YTIuMzcsMi4zNywwLDAsMS0xLjA3Ni45ODMsMi4zNTYsMi4zNTYsMCwwLDEsMS4wNzYuOTkyLDIuODA4LDIuODA4LDAsMCwxLC4zMzYsMS4zNzR2MS41NWE1LjgyNyw1LjgyNywwLDAsMCwuMDQ2Ljc0LDIuNTg2LDIuNTg2LDAsMCwwLC4xNi42MzQsMS42ODQsMS42ODQsMCwwLDAsLjMwNi41QTEuMjIyLDEuMjIyLDAsMCwwLDYuNDYyLDIyYzAtLjAwNS0uNDc3LDEuMzQ0LS40NzcsMS4zNDRcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNOC4yMTUsMTkuMzkzYTEuMjg5LDEuMjg5LDAsMCwxLC4xLS41MTIsMS4yMTIsMS4yMTIsMCwwLDEsLjI5LS40LDEuMzczLDEuMzczLDAsMCwxLC40NS0uMjc0LDEuNjM3LDEuNjM3LDAsMCwxLC41OC0uMSwxLjU1NSwxLjU1NSwwLDAsMSwuNTcyLjEsMS4yNjksMS4yNjksMCwwLDEsLjQ1LjI3NCwxLjA3NywxLjA3NywwLDAsMSwuMjkuNCwxLjI5NCwxLjI5NCwwLDAsMSwwLDEuMDI0LDEuMTUxLDEuMTUxLDAsMCwxLS4yOS40MTIsMS4zODgsMS4zODgsMCwwLDEtLjQ1LjI2OCwxLjYxMywxLjYxMywwLDAsMS0uNTcyLjEsMS41NzgsMS41NzgsMCwwLDEtLjU4LS4xLDEuNDA5LDEuNDA5LDAsMCwxLS40NS0uMjY4LDEuMjI5LDEuMjI5LDAsMCwxLS4zOS0uOTI0bTAtNi4wODhhMS4yODksMS4yODksMCwwLDEsLjEtLjUxMiwxLjIxMiwxLjIxMiwwLDAsMSwuMjktLjQsMS4zNzMsMS4zNzMsMCwwLDEsLjQ1LS4yNzQsMS42MzcsMS42MzcsMCwwLDEsLjU4LS4xLDEuNTU1LDEuNTU1LDAsMCwxLC41NzIuMSwxLjI2OSwxLjI2OSwwLDAsMSwuNDUuMjc0LDEuMDc3LDEuMDc3LDAsMCwxLC4yOS40LDEuMjk0LDEuMjk0LDAsMCwxLDAsMS4wMjQsMS4xNTEsMS4xNTEsMCwwLDEtLjI5LjQxMiwxLjM4OCwxLjM4OCwwLDAsMS0uNDUuMjY4LDEuNjEzLDEuNjEzLDAsMCwxLS41NzIuMSwxLjU3OCwxLjU3OCwwLDAsMS0uNTgtLjEsMS40MDksMS40MDksMCwwLDEtLjQ1LS4yNjgsMS4yMjksMS4yMjksMCwwLDEtLjM5LS45MjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjQuMjQsMjAuMjkzYTMuNjQ4LDMuNjQ4LDAsMCwxLS4xMjIuOTI5LDQuNTM0LDQuNTM0LDAsMCwxLS4zMzYuODkxLDQuNzA2LDQuNzA2LDAsMCwxLS41LjgwNyw0LjAwNSw0LjAwNSwwLDAsMS0uNjEuNjY0bC0xLjMtLjYxYy4wODEtLjE3My4xNjgtLjM0OS4yNi0uNTI2YTQuODQ2LDQuODQ2LDAsMCwwLC4yNjgtLjU1OCw0LjQ0Myw0LjQ0MywwLDAsMCwuMjA2LS42NTYsMy40MDYsMy40MDYsMCwwLDAsLjA4NC0uOFYxOC42NTZoMi4wNTlsLS4wMDgsMS42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTM4LDIxLjk5NGExLjI1MSwxLjI1MSwwLDAsMCwuNDg4LS4zMjgsMS43MDcsMS43MDcsMCwwLDAsLjMwNi0uNSwyLjUyNSwyLjUyNSwwLDAsMCwuMTYtLjYzNCw1LjgyNiw1LjgyNiwwLDAsMCwuMDQ2LS43NHYtMS41NWEyLjg0NCwyLjg0NCwwLDAsMSwuMzM2LTEuMzgyLDIuMzY0LDIuMzY0LDAsMCwxLDEuMDg0LS45ODMsMi4zNjQsMi4zNjQsMCwwLDEtMS4wODQtLjk4MywyLjg0NCwyLjg0NCwwLDAsMS0uMzM2LTEuMzgydi0xLjU1YTUuODI3LDUuODI3LDAsMCwwLS4wNDYtLjc0LDIuNTg2LDIuNTg2LDAsMCwwLS4xNi0uNjM0LDEuNjg0LDEuNjg0LDAsMCwwLS4zMDYtLjUsMS4yMjIsMS4yMjIsMCwwLDAtLjQ4OC0uMzI4bC40OC0xLjMzOEE0LjQ1LDQuNDUsMCwwLDEsMjcuMzI5LDlhMy4wOTIsMy4wOTIsMCwwLDEsLjg0OC44MTUsMi44OTIsMi44OTIsMCwwLDEsLjQ1LDEuMDA4LDQuNjA2LDQuNjA2LDAsMCwxLC4xMzgsMS4xNDN2MS41NWEyLjY1NSwyLjY1NSwwLDAsMCwuMDY4LjYyNiwxLjQ0OCwxLjQ0OCwwLDAsMCwuMjIyLjQ3NCwxLjAzNywxLjAzNywwLDAsMCwuMzgyLjMsMS4zNzYsMS4zNzYsMCwwLDAsLjU2NC4xMDZ2MS43MzFhMS4wNzcsMS4wNzcsMCwwLDAtLjk0Ni40MTIsMS44MjgsMS44MjgsMCwwLDAtLjI5LDEuMDg0djEuNTVhNC42MDYsNC42MDYsMCwwLDEtLjEzOCwxLjE0MywyLjkxNSwyLjkxNSwwLDAsMS0uNDUsMS4wMDgsMy4xNTcsMy4xNTcsMCwwLDEtLjg0OC44MjQsNC40ODIsNC40ODIsMCwwLDEtMS4zMTEuNThsLS40OC0xLjM1MlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPlwiLFxuXHR9LFxuXHRcIkp1bGlhXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQwNjNkOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTcuNDQ4LDIxLjk4M1YxMy43NzVsLTIuNDMyLjY2OXY4LjcyOWEyLjY2LDIuNjYsMCwwLDEtLjEwNi45MjkuMzM2LjMzNiwwLDAsMS0uMzA4LjIzOS40MDUuNDA1LDAsMCwxLS4yMTItLjA3NCwxLjI4MiwxLjI4MiwwLDAsMS0uMjg3LS4zLDIuODEzLDIuODEzLDAsMCwwLS4zNzctLjQwOS44NzQuODc0LDAsMCwwLS42MTEtLjIwNywxLjIyLDEuMjIsMCwwLDAtLjgxMi4yNTUuNzg5Ljc4OSwwLDAsMC0uMy42MjdBLjkwNy45MDcsMCwwLDAsMi41NDIsMjVhMy4xMTUsMy4xMTUsMCwwLDAsMS41NjEuMzE5LDcuMDY1LDcuMDY1LDAsMCwwLDEuMzctLjEyMiwyLjM2MSwyLjM2MSwwLDAsMCwxLjA1Ny0uNDgzLDIuMjkyLDIuMjkyLDAsMCwwLC42OC0xLjAxNCw1LjA5NCw1LjA5NCwwLDAsMCwuMjM5LTEuNzE1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44MjUsMTQuMDA4SDguNHY1LjYxOGEyLjI0MSwyLjI0MSwwLDAsMCwuMjE4Ljk3NywyLjQ4OSwyLjQ4OSwwLDAsMCwuNi44LDIuOSwyLjksMCwwLDAsLjg5Mi41MzYsMy4wNDUsMy4wNDUsMCwwLDAsMS4xLjIsMi41NSwyLjU1LDAsMCwwLDEuMDUxLS4yNDQsNC4zNDcsNC4zNDcsMCwwLDAsMS4wMTktLjY0OHYuNzQzSDE1LjcxVjE0LjAwOEgxMy4yODl2NS43NTZhMi43NjQsMi43NjQsMCwwLDEtLjY0OC43MDYsMS4xMzksMS4xMzksMCwwLDEtLjY0OC4yODEsMS4xNTUsMS4xNTUsMCwwLDEtLjQ1Ny0uMDksMS4yNjMsMS4yNjMsMCwwLDEtLjM3Mi0uMjM5LDEuMDYsMS4wNiwwLDAsMS0uMjUtLjM1NiwxLjA5MSwxLjA5MSwwLDAsMS0uMDktLjQ0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDc0LDIxLjk4M1YxMC4xMzJsLTIuNDExLjY2OVYyMS45ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTIwLjAzOCwxNC40NDR2Ny41NGgyLjQyMVYxMy43NzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2OCwxNy44NjN2Mi4zcS0uMzcyLjI3Ni0uNjc0LjQ1N2ExLjE2NSwxLjE2NSwwLDAsMS0uNi4xODEuNDY4LjQ2OCwwLDAsMS0uMjc2LS4wOSwxLDEsMCwwLDEtLjIzNC0uMjM5LDEuMTM4LDEuMTM4LDAsMCwxLS4xNjUtLjM1NiwxLjU3NiwxLjU3NiwwLDAsMS0uMDU4LS40My45NjguOTY4LDAsMCwxLC4xODEtLjU1MiwyLjMwNiwyLjMwNiwwLDAsMSwuNDczLS41LDQuNTcyLDQuNTcyLDAsMCwxLC42NDgtLjQzLDcuNjEyLDcuNjEyLDAsMCwxLC43MDYtLjM0NVpNMzAsMjEuOTgzVjE2YTIuMDgzLDIuMDgzLDAsMCwwLS4xOTEtLjksMS43NzksMS43NzksMCwwLDAtLjU5NS0uNjksMy4wMDYsMy4wMDYsMCwwLDAtMS4wMjUtLjQ0MSw2LjIyNSw2LjIyNSwwLDAsMC0xLjQ4MS0uMTU0LDUuNzM1LDUuNzM1LDAsMCwwLTEuMzI3LjE0OSw0LjYsNC42LDAsMCwwLTEuMS40LDIuMzczLDIuMzczLDAsMCwwLS43NTkuNjExLDEuMjE2LDEuMjE2LDAsMCwwLS4yODEuNzcuOTU4Ljk1OCwwLDAsMCwuMzE5LjczOCwxLjE3OCwxLjE3OCwwLDAsMCwuODI4LjI5MiwxLjM2NCwxLjM2NCwwLDAsMCwuNTQ3LS4xLjguOCwwLDAsMCwuMzM1LS4yNTUuOTg2Ljk4NiwwLDAsMCwuMTY1LS4zNzIsMS45NzgsMS45NzgsMCwwLDAsLjA0OC0uNDM1LDEuMDMxLDEuMDMxLDAsMCwxLC4yMjMtLjY2OS45NzUuOTc1LDAsMCwxLC44LS4yNzYsMS4wMDgsMS4wMDgsMCwwLDEsLjc4MS4zMTksMS41OTQsMS41OTQsMCwwLDEsLjI5MiwxLjA4M3YuNzg2bC0uMjY1LjA2NHEtLjQ4OC4xNDktLjk4OC4zMTN0LS45NjEuMzYxYTcuODg0LDcuODg0LDAsMCwwLS44NjUuNDMsMy41MTEsMy41MTEsMCwwLDAtLjcwNi41MzEsMi4zMTksMi4zMTksMCwwLDAtLjQ3OC42NjksMS45MTgsMS45MTgsMCwwLDAtLjE3NS44MjgsMi4wMzQsMi4wMzQsMCwwLDAsLjE2NS44MjMsMS44NzYsMS44NzYsMCwwLDAsLjQ3My42NTMsMi4yNTUsMi4yNTUsMCwwLDAsLjc0OS40MzUsMi45MDcsMi45MDcsMCwwLDAsLjk5My4xNTksMy42NzksMy42NzksMCwwLDAsLjctLjA1OCwyLjUwOSwyLjUwOSwwLDAsMCwuNTM2LS4xNjUsMi4yMDksMi4yMDksMCwwLDAsLjQzLS4yNXEuMTkxLS4xNDMuMzkzLS4zMTN2LjYzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48Y2lyY2xlIGN4PVxcXCI2LjIwNFxcXCIgY3k9XFxcIjExLjY3MlxcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojNjY4MmRmXFxcIi8+PHBhdGggZD1cXFwiTTYuMiwxMy4yODdhMS42MTUsMS42MTUsMCwxLDEsMS42MTUtMS42MTVBMS42MTcsMS42MTcsMCwwLDEsNi4yLDEzLjI4N1ptMC0zYTEuMzg1LDEuMzg1LDAsMSwwLDEuMzg1LDEuMzg1QTEuMzg2LDEuMzg2LDAsMCwwLDYuMiwxMC4yODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDA2M2Q4XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjEuNDE3XFxcIiBjeT1cXFwiMTEuNjcyXFxcIiByPVxcXCIxLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNkNTYzNWNcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDE3LDEzLjI4N2ExLjYxNSwxLjYxNSwwLDEsMSwxLjYxNS0xLjYxNUExLjYxNywxLjYxNywwLDAsMSwyMS40MTcsMTMuMjg3Wm0wLTNBMS4zODUsMS4zODUsMCwxLDAsMjIuOCwxMS42NzIsMS4zODYsMS4zODYsMCwwLDAsMjEuNDE3LDEwLjI4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjYjNjMzNcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMy4zODVcXFwiIGN5PVxcXCI4LjI5N1xcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojNjBhZDUxXFxcIi8+PHBhdGggZD1cXFwiTTIzLjM4NSw5LjkxMkExLjYxNSwxLjYxNSwwLDEsMSwyNSw4LjMsMS42MTcsMS42MTcsMCwwLDEsMjMuMzg1LDkuOTEyWm0wLTNBMS4zODUsMS4zODUsMCwxLDAsMjQuNzcsOC4zLDEuMzg2LDEuMzg2LDAsMCwwLDIzLjM4NSw2LjkxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzODk4MjZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyNS4zNTRcXFwiIGN5PVxcXCIxMS42NzJcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2FhNzljMVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS4zNTQsMTMuMjg3YTEuNjE1LDEuNjE1LDAsMSwxLDEuNjE1LTEuNjE1QTEuNjE3LDEuNjE3LDAsMCwxLDI1LjM1NCwxMy4yODdabTAtM2ExLjM4NSwxLjM4NSwwLDEsMCwxLjM4NSwxLjM4NUExLjM4NiwxLjM4NiwwLDAsMCwyNS4zNTQsMTAuMjg3WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk1NThiMlxcXCIvPlwiLFxuXHR9LFxuXHRcIktvdGxpblwiOiB7XG5cdFx0Y29sb3VyOiBcIiM5ZDRiOWRcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjMxMS4zMzZcXFwiIHkxPVxcXCIxNDUyLjA2NFxcXCIgeDI9XFxcIjI4My4zNDJcXFwiIHkyPVxcXCIxNDgwLjA1OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjgxLjQgLTE0NTApXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQ0ODU3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ3XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWQ0YjlkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNmQ1ZmFhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9rb3RsaW48L3RpdGxlPjxwYXRoIGQ9XFxcIk0zMCwzMEgyVjJIMzBMMTYsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiS3VzdG9cIjoge1xuXHRcdGNvbG91cjogXCIjNTliNGQ5XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIwLjU1XFxcIiB5PVxcXCIyMi4zMzlcXFwiIHdpZHRoPVxcXCIxNS40MzNcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE0LjM2MyAxMi43OTcpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2I4ZDQzMlxcXCIvPjxyZWN0IHg9XFxcIjEuMzcyXFxcIiB5PVxcXCIxNi4zODJcXFwiIHdpZHRoPVxcXCI5Ljg1OVxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNDM5XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTAuNzI3IDkuNjYzKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cmVjdCB4PVxcXCI5LjIzMlxcXCIgeT1cXFwiMjQuMzAxXFxcIiB3aWR0aD1cXFwiOS44NTlcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE0LjAyNCAxNy41NDEpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2I4ZDQzMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMiAyIDIgMzAgMjkuOTk5IDMwIDJcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDc4ZDRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEwLjI4MiAxMC4yODIgMjEuNzE4IDIxLjcxOCAzMCAxMy40MzYgMzAgMiAxOC41NjQgMiAxMC4yODIgMTAuMjgyXFxcIiBzdHlsZT1cXFwiZmlsbDojNTliNGQ5XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIzMCAyOS45OTkgMzAgMiAxNiAxNiAzMCAyOS45OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7b3BhY2l0eTowLjIwMDAwMDAwMjk4MDIzMjI0O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHJlY3QgeD1cXFwiMTYuMjI2XFxcIiB5PVxcXCI5LjAwMVxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yLjE5MiAxNS41MDcpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjE4XFxcIiB5PVxcXCI1LjA0OFxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDEuNzYyIDE3LjE0Nikgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMThcXFwiIHk9XFxcIjEyLjk1NVxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjgyOSAxOS40NjEpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjI0LjEzM1xcXCIgeT1cXFwiOS4wMDJcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgwLjEyNCAyMS4wOTkpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxhVGVYXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NmY2ZjZlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTExLjMzMywxMy4xMjJjLS4xMjgtMS41NjItLjI0MS0yLjc1Ni0yLjI4Ny0yLjc1Nkg3LjkxdjguNGgyLjE0NXYuNjExbC0zLjA4My0uMDI5LTMuMDgyLjAyOXYtLjYxMUg2LjAzNHYtOC40SDQuODg0Yy0yLjA0NiwwLTIuMTU5LDEuMjA4LTIuMjg3LDIuNzU2SDJsLjI4NC0zLjM2N2g5LjM2MmwuMjg0LDMuMzY3aC0uNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz48cGF0aCBkPVxcXCJNMTkuMjg5LDIyLjUzSDEwLjQxVjIxLjkyaDEuNTA2VjEzLjQ2N0gxMC40MXYtLjYxMWg4LjYzN2wuNDEyLDMuMzY3aC0uNmMtLjIxMy0xLjgzMy0uNjgyLTIuNzU2LTIuODU1LTIuNzU2SDEzLjc5MVYxNy4yaC44MzhjMS4zNjQsMCwxLjUwNS0uNiwxLjUwNS0xLjY2MmguNnYzLjkzNWgtLjZjMC0xLjA4LS4xNDItMS42NjItMS41MDUtMS42NjJoLS44Mzh2NC4xMDZoMi4yMTZjMi40NzIsMCwzLTEuMTA4LDMuMy0zLjIyNWguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz48cGF0aCBkPVxcXCJNMjcuNzI3LDE5LjE4NmMtLjU0LDAtMS45NiwwLTIuNDE1LjAyOVYxOC42aDEuMTc5bC0yLjU1Ny0zLjU1Mi0yLjUyOSwzLjM4MUE0LjEsNC4xLDAsMCwwLDIyLjcsMTguNnYuNjExYy0uMzU1LS4wMjktMS41NzYtLjAyOS0yLjAxNy0uMDI5LS40LDAtMS41NDgsMC0xLjg3NS4wMjlWMTguNmguMzgzYTcuNDU5LDcuNDU5LDAsMCwwLC44MjQtLjA0M2MuNS0uMDQzLjU0LS4wODUuNjY3LS4yNTZMMjMuNTM2LDE0LjVsLTMuMTUzLTQuNDE4SDE5VjkuNDdjLjM4NC4wMjgsMS43OS4wMjgsMi4yNzMuMDI4LjU4MiwwLDEuOTE4LDAsMi40MjktLjAyOHYuNjExSDIyLjUyOGwyLjExNywyLjk1NSwyLjA3NC0yLjc4NGE0LjEsNC4xLDAsMCwwLTEuMjkzLS4xN1Y5LjQ3Yy4zNTYuMDI4LDEuNTkxLjAyOCwyLjAzMi4wMjguNCwwLDEuNTM0LDAsMS44NjEtLjAyOHYuNjExaC0uMzY5YTUuMjY0LDUuMjY0LDAsMCwwLS44MzguMDQzYy0uNDY5LjA0My0uNTI2LjA3MS0uNjY3LjI1NmwtMi40LDMuMjFMMjguNjM2LDE4LjZIMzB2LjYxMUMyOS42NDUsMTkuMTg2LDI4LjE4MiwxOS4xODYsMjcuNzI3LDE5LjE4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiVcIixcblx0XHRdLFxuXHR9LFxuXHRcIkxlc3NcIjoge1xuXHRcdGNvbG91cjogXCIjMmE0Zjg0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMy42MDlcXFwiIHkxPVxcXCItNDkyLjY4NVxcXCIgeDI9XFxcIi0zLjYwOVxcXCIgeTI9XFxcIi00ODAuMjcxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDE5LjcxMiA1MDIuODkxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4xNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJhNGY4NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zODhcXFwiIHN0b3AtY29sb3I9XFxcIiMyOTRlODJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzJlNGVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2xlc3M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOC41NTksMjAuMjI2YTIuNCwyLjQsMCwwLDEtMi4zOTQsMi4zOTRINi4wNGEyLjQsMi40LDAsMCwxLTIuMzk0LTIuMzk0VjEyLjZBMi40LDIuNCwwLDAsMSw2LjA0LDEwLjIwNkgyNi4xNjVBMi40LDIuNCwwLDAsMSwyOC41NTksMTIuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjQuMzQ5LDE2LjI1YTEuOTcyLDEuOTcyLDAsMCwxLDEuNTc4LDEuODkxLDEuNjksMS42OSwwLDAsMS0uNjUzLDEuNCwyLjkzNCwyLjkzNCwwLDAsMS0xLjg2Mi41NTksNC41NTgsNC41NTgsMCwwLDEtMi4yNDEtLjYxOCwxLjk4NiwxLjk4NiwwLDAsMSwuMTYtLjY2OSwxLjgzLDEuODMsMCwwLDEsLjM1LS41NzYsMy43LDMuNywwLDAsMCwxLjY0OS40OTMuOTY1Ljk2NSwwLDAsMCwuNTEtLjExMi4zMzkuMzM5LDAsMCwwLC4xNzgtLjNxMC0uMzUzLS41NDYtLjUyOWwtLjY1My0uMjQ3cS0xLjQ4Mi0uNTQtMS40ODItMS43NjJhMS43NTMsMS43NTMsMCwwLDEsLjYyMy0xLjQxNiwyLjU4NywyLjU4NywwLDAsMSwxLjY3OC0uNjQ4LDUuMDk0LDUuMDk0LDAsMCwxLDEuMTUuMTQ3LDQuNTU1LDQuNTU1LDAsMCwxLDEuMDMyLjQ3MiwxLjY2OCwxLjY2OCwwLDAsMS0uMTMuNzIyLDEuMjIsMS4yMiwwLDAsMS0uMzguNTU4LDQuMjYxLDQuMjYxLDAsMCwwLTEuNjYtLjQ0Ni41NDQuNTQ0LDAsMCwwLS4zNjIuMTA2LjMzOC4zMzgsMCwwLDAtLjEyNC4yN3EwLC4yODIuNDUxLjQ0NmwuNzM2LjI1OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjZcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4yNWExLjk3MiwxLjk3MiwwLDAsMSwxLjU3NywxLjg5MSwxLjY5MSwxLjY5MSwwLDAsMS0uNjUyLDEuNCwyLjkzNywyLjkzNywwLDAsMS0xLjg2Mi41NTksNC41Niw0LjU2LDAsMCwxLTIuMjQxLS42MTgsMS45ODEsMS45ODEsMCwwLDEsLjE2LS42NjksMS44MjEsMS44MjEsMCwwLDEsLjM1LS41NzYsMy43LDMuNywwLDAsMCwxLjY0OS40OTMuOTYzLjk2MywwLDAsMCwuNTEtLjExMi4zNC4zNCwwLDAsMCwuMTc4LS4zcTAtLjM1My0uNTQ2LS41MjlsLS42NTMtLjI0N3EtMS40ODItLjU0LTEuNDgyLTEuNzYyYTEuNzUyLDEuNzUyLDAsMCwxLC42MjMtMS40MTYsMi41ODUsMi41ODUsMCwwLDEsMS42NzctLjY0OCw1LjA4OCw1LjA4OCwwLDAsMSwxLjE1LjE0Nyw0LjU1Miw0LjU1MiwwLDAsMSwxLjAzMi40NzIsMS42NjgsMS42NjgsMCwwLDEtLjEzLjcyMiwxLjIyLDEuMjIsMCwwLDEtLjM4LjU1OCw0LjI2Myw0LjI2MywwLDAsMC0xLjY2MS0uNDQ2LjU0My41NDMsMCwwLDAtLjM2Mi4xMDYuMzM5LjMzOSwwLDAsMC0uMTI0LjI3cTAsLjI4Mi40NTEuNDQ2bC43MzYuMjU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4yNjQsMTYuMzMzYTIuODIyLDIuODIyLDAsMCwwLS4xNzItMSwyLjIzOSwyLjIzOSwwLDAsMC0uNDkyLS43ODcsMi4yOCwyLjI4LDAsMCwwLS43NzctLjUxNywyLjczNywyLjczNywwLDAsMC0xLjAyNi0uMzE0LDIuOCwyLjgsMCwwLDAtMS4xOC4zNjEsMi4yNTYsMi4yNTYsMCwwLDAtLjgzLjY0NiwyLjc2NSwyLjc2NSwwLDAsMC0uNDg3Ljk2OSw0LjQsNC40LDAsMCwwLS4xNiwxLjIxNiw1LjY4MSw1LjY4MSwwLDAsMCwuMTMsMS4yNTcsMi42MjgsMi42MjgsMCwwLDAsLjQ0NSwxLDIuMTA3LDIuMTA3LDAsMCwwLC44MTguNjU3LDIuOTM1LDIuOTM1LDAsMCwwLDEuMjUxLjI3NywzLjk1MiwzLjk1MiwwLDAsMCwyLjMyNC0uNzEyLDEuODY1LDEuODY1LDAsMCwwLS40ODQtMS4wODEsNi4xODgsNi4xODgsMCwwLDEtLjg1Ny4yNjIsMy4yMDgsMy4yMDgsMCwwLDEtLjY1Ni4wNzksMS4wMTcsMS4wMTcsMCwwLDEtLjgxNS0uMjksMS4xODcsMS4xODcsMCwwLDEtLjI3MS0uNzdoMy4wODNBNC40NDcsNC40NDcsMCwwLDAsMTUuMjY0LDE2LjMzM1ptLTMuMjQ4LjA4MWEyLjQzMywyLjQzMywwLDAsMSwuMjE4LTEsLjYzMi42MzIsMCwwLDEsLjU1OS0uMjY0LjY2LjY2LDAsMCwxLC41ODIuMjgyLDEuNzQ5LDEuNzQ5LDAsMCwxLC4xOTQuODU2di4xM0gxMi4wMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+PHBhdGggZD1cXFwiTTI5LjE4LDE3LjJhMS42MDUsMS42MDUsMCwwLDAtLjUzLDEuMjY1djIuMDUxYTEuODEsMS44MSwwLDAsMS0uNjgzLDEuNTU3LDIuOCwyLjgsMCwwLDEtMS42NTQuNTQ5bC0uMzczLDBWMjEuNTk0YTEuMjQxLDEuMjQxLDAsMCwwLC41OTUtLjMzNCwxLjM2OSwxLjM2OSwwLDAsMCwuNDE5LTEuMDQ3VjE4LjU1NmEyLjU0NSwyLjU0NSwwLDAsMSwuMjU3LTEuMzIzLDIuNSwyLjUsMCwwLDEsMS4yLS44MzgsMi41MjgsMi41MjgsMCwwLDEtMS4zMjQtMS4xNzksMi45NTYsMi45NTYsMCwwLDEtLjEzNS0xLjE2NVYxMi41MzNhMS40NTgsMS40NTgsMCwwLDAtLjM2Ni0xLjA1NCwxLjE1MiwxLjE1MiwwLDAsMC0uNjQ4LS4zMTR2LS45NmMuNDQ1LDAsLjY2OSwwLC45MjgsMGExLjY3NiwxLjY3NiwwLDAsMSwxLjAyMy40NDIsMiwyLDAsMCwxLC42NzMsMS4wMDksMi4zMywyLjMzLDAsMCwxLC4wODYuN3YxLjc1N2ExLjg0NiwxLjg0NiwwLDAsMCwuNSwxLjM4MywyLjExMywyLjExMywwLDAsMCwuODU0LjQ3OXYuNzk0YTEuOTQzLDEuOTQzLDAsMCwwLS44Mi40MjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2O3N0cm9rZTojNDA0MDQwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjI1cHhcXFwiLz48cGF0aCBkPVxcXCJNNS41OTQsMTAuMjA2SDUuMjZhMS42NzMsMS42NzMsMCwwLDAtMS4wMjMuNDQyLDEuNzEsMS43MSwwLDAsMC0uNjczLDEuMDA5LDMuNTMxLDMuNTMxLDAsMCwwLS4wMzguN3YxLjc1N0ExLjg2NywxLjg2NywwLDAsMSwyLjk4MSwxNS41LDIuODQ3LDIuODQ3LDAsMCwxLDIsMTUuOTc3di43OTNhMi41NTIsMi41NTIsMCwwLDEsLjk0Ny40MjYsMS42MzgsMS42MzgsMCwwLDEsLjU3NywxLjI2NXYyLjA1MUExLjc4MSwxLjc4MSwwLDAsMCw0LjE2LDIyLjA3YTIuOCwyLjgsMCwwLDAsMS42NTQuNTVsLjQyMSwwVjIxLjU5NGExLjQ3LDEuNDcsMCwwLDEtLjY0My0uMzM0LDEuMzU1LDEuMzU1LDAsMCwxLS4zNzEtMS4wNDdWMTguNTU3YTIuNTE2LDIuNTE2LDAsMCwwLS4zMDUtMS4zMjMsMi41LDIuNSwwLDAsMC0xLjItLjgzOCwyLjUyOSwyLjUyOSwwLDAsMCwxLjMyNC0xLjE3OCwyLjg1NywyLjg1NywwLDAsMCwuMTgzLTEuMTY1VjEyLjUzNEExLjQ2MiwxLjQ2MiwwLDAsMSw1LjU0LDExLjQ4YTEuMzEzLDEuMzEzLDAsMCwxLC41NzUtLjI3MWwuNDI4LDBWMTAuMjA2SDUuNTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNjtzdHJva2U6IzQwNDA0MDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yNXB4XFxcIi8+PHBhdGggZD1cXFwiTTkuNTM3LDE4LjUyOWgtLjMyYy0uMzQ4LDAtLjQ3OS0uMTgzLS40NzktLjU1MVYxMS4yMTlhMS4yNTYsMS4yNTYsMCwwLDAtLjI2OC0uODU2Yy0uMTUtLjE2NC0uNDExLS4xNjItLjc4My0uMTYySDYuOTY0bC0uMDg1LDB2OC4xMDZhMS44NzUsMS44NzUsMCwwLDAsLjM1MiwxLjI0LDEuNDQxLDEuNDQxLDAsMCwwLDEuMTQ1LjM5Myw3Ljg1OSw3Ljg1OSwwLDAsMCwxLjI2OS0uMTE4LDIuMjMsMi4yMywwLDAsMCwuMDM2LS41MDksMi4yNzgsMi4yNzgsMCwwLDAtLjE0Mi0uNzgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxpcXVpZFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDQ5OTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS45ODgsMjIuMzcybC0uNzQ4LjA0OGE1LjIwOSw1LjIwOSwwLDAsMS0yLjk5LS42NzEsNy44LDcuOCwwLDAsMC03LjgsMCw1LjI3NSw1LjI3NSwwLDAsMS01LjMuMDFBNy4yNjIsNy4yNjIsMCwwLDAsOS4yNjMsMjAuN2E3LjIyOSw3LjIyOSwwLDAsMC0zLjk0LDEuMDYsNC43NTEsNC43NTEsMCwwLDEtMi40Ny43bC0uODM4LDBjMCwuODg5LS4wMDksMS43MzktLjAxNSwyLjUxNWwuODYxLDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0Ljc2Myw0Ljc2MywwLDAsMSwyLjY1OS0uNyw0LjgzNSw0LjgzNSwwLDAsMSwyLjYzNC43MTgsNy43OTQsNy43OTQsMCwwLDAsNy44LDAsNS4yODcsNS4yODcsMCwwLDEsNS4zMTksMCw3LjcwOSw3LjcwOSwwLDAsMCw0LjQuOTg5TDMwLDI0Ljg4OEMyOS45OTUsMjQuMSwyOS45OTEsMjMuMjQ5LDI5Ljk4OCwyMi4zNzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+PHBhdGggZD1cXFwiTTI5Ljk4MywxNS41ODFsLS43NDMuMDQ3YTUuMjI2LDUuMjI2LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc4LDUuMjc4LDAsMCwxLTUuMy4wMUE3LjMxMiw3LjMxMiwwLDAsMCw5LjI2MywxMy45MWE3LjMsNy4zLDAsMCwwLTMuOTQxLDEuMDYsNC43NDIsNC43NDIsMCwwLDEtMi40NjkuN2wtLjgyOCwwYzAsLjg0OSwwLDEuNjkzLDAsMi41MTVsLjg0LDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0LjcsNC43LDAsMCwxLDIuNjU5LS43LDQuOCw0LjgsMCwwLDEsMi42MzQuNzE4LDcuNzk0LDcuNzk0LDAsMCwwLDcuOCwwLDUuMjg3LDUuMjg3LDAsMCwxLDUuMzE5LDAsNy43MDksNy43MDksMCwwLDAsNC40Ljk4OWwuNTY4LS4wMzdDMjkuOTgzLDE3LjI2OSwyOS45ODMsMTYuNDI0LDI5Ljk4MywxNS41ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+PHBhdGggZD1cXFwiTTI5LjI0LDkuMTM3YTUuMjU0LDUuMjU0LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc1LDUuMjc1LDAsMCwxLTUuMy4wMDlBNy4xNiw3LjE2LDAsMCwwLDkuMjYzLDcuNDJhNy4xNTksNy4xNTksMCwwLDAtMy45NCwxLjA1OSw0LjczOCw0LjczOCwwLDAsMS0yLjQ2OS43bC0uODM0LDBjMCwuODIsMCwxLjY2NCwwLDIuNTE3bC44MzYsMGE3LjIzNyw3LjIzNywwLDAsMCwzLjc1LTEuMDUyLDQuNzM4LDQuNzM4LDAsMCwxLDIuNjU5LS43MDYsNC44MTQsNC44MTQsMCwwLDEsMi42MzQuNzE5LDcuNzkxLDcuNzkxLDAsMCwwLDcuOCwwLDUuMjkzLDUuMjkzLDAsMCwxLDUuMzE5LDAsNy43MzIsNy43MzIsMCwwLDAsNC40Ljk4OGwuNTY4LS4wMzdjMC0uODU5LDAtMS43LjAwNy0yLjUxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQ5OTlcXFwiLz5cIixcblx0fSxcblx0XCJMaXNwXCI6IHtcblx0XHRjb2xvdXI6IFwiIzgzODFjNVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTkyNS43ODVcXFwiIHkxPVxcXCItMTM4My4wNzVcXFwiIHgyPVxcXCIyMzAyLjM1MVxcXCIgeTI9XFxcIi0xODY4LjU1N1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjA0OCwgMCwgMCwgLTAuMDQ1LCAtODIuNTM5LCAtNTQuNjUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjODM4MWM1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzdlNTViM1xcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk5NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1MmVjYlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk5MlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjIxNC4xODdcXFwiIHkxPVxcXCItMTc1MC4yMjVcXFwiIHgyPVxcXCIxOTMwLjk3NFxcXCIgeTI9XFxcIi0xNDA4LjM0MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjA1NCwgMCwgMCwgLTAuMDU0LCAtOTUuMTg4LCAtNjguNDg3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQxMWY1ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzViMmE4NVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZW1hY3M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOS4zNjMsMTZBMTMuMzY0LDEzLjM2NCwwLDEsMSwxNiwyLjUsMTMuNDMyLDEzLjQzMiwwLDAsMSwyOS4zNjMsMTZaXFxcIiBzdHlsZT1cXFwic3Ryb2tlLXdpZHRoOjAuNzVweDtmaWxsOnVybCgjYSk7c3Ryb2tlOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDA2LDI1LjQ4M2ExOC4xNTcsMTguMTU3LDAsMCwwLDIuNTg3LS4wNDgsNDEuNzI4LDQxLjcyOCwwLDAsMCw0LjUtLjYzOSwzMC42NzEsMzAuNjcxLDAsMCwwLDMuMTMyLS44MzljMS4xNDItLjQyMSwxLjc2NC0uNzc4LDIuMDQzLTEuMjg0YS42Mi42MiwwLDAsMC0uNDQxLS42OTJjLTEuMzQ3LS41NjUtMi45MDgtLjQ2My02LS41MjgtMy40MjctLjExOC00LjU2Ny0uNjkxLTUuMTc0LTEuMTUzLS41ODItLjQ2OS0uMjktMS43NjUsMi4yMDYtMi45MDdhNTQuMjY2LDU0LjI2NiwwLDAsMSw2LjE4NC0xLjczYy0xLjY1OS0uODItNC43NTMtMi4yNjItNS4zODktMi41NzMtLjU1OC0uMjczLTEuNDUxLS42ODQtMS42NDQtMS4xODItLjIxOS0uNDc4LjUxOC0uODg5LjkzLTEuMDA3YTIwLjMsMjAuMywwLDAsMSw0LjktLjY0Nyw0LjMwOCw0LjMwOCwwLDAsMCwxLS4wNjlBMS43NjcsMS43NjcsMCwwLDAsMjEuODc5LDcuOWEyLjc3NSwyLjc3NSwwLDAsMC0zLjI4Ni0xLjgxQzE3LjIyLDYuMzM4LDEzLjkwOCw3LjMsMTMuOTA4LDcuM2M0LjA5My0uMDM1LDQuNzc5LjAzMyw1LjA4NS40NjEuMTgxLjI1My0uMDgyLjYtMS4xNzQuNzc3LTEuMTg5LjE5NC0zLjY1OS40MjgtMy42NTkuNDI4LTIuMzcuMTQxLTQuMDQuMTUtNC41NCwxLjIxLS4zMjcuNjkzLjM0OSwxLjMuNjQ1LDEuNjg4YTEyLjcyOCwxMi43MjgsMCwwLDAsNC4yMjUsMi43Yy40MzguMjA4LDEuNzIzLjYsMS43MjMuNmExMS41MiwxMS41MiwwLDAsMC04LjEsMi4yODdjLTEuODA3LDEuNjcyLTEuMDA4LDMuNjY1LDIuNjk1LDQuODkxYTEyLjc1NSwxMi43NTUsMCwwLDAsNi41MzQuNzcyYzEuOTIyLS4xLDIuMjI0LS4wNDIsMi4yNDQuMTE2LjAyNy4yMjItMi4xMzQuNzczLTIuNzI0Ljk0NC0xLjUuNDMzLTUuNDM2LDEuMzA3LTUuNDU2LDEuMzEyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxpdmVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjMzE3ZWFjXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuNTA0IDIuMDA3IDguOTg2IDIgOC45ODYgMjEuNzQ2IDEwLjc1OSAxOS45ODcgMTAuNzU5IDMuNzU1IDEyLjQ5NyAzLjc1NSAxMi40OTcgMTguMjQgMTQuMjUzIDE2LjQ4NyAxNC4yNTMgMy43NTUgMTUuOTk3IDMuNzU1IDE1Ljk5NyAxNC43MjkgMTcuNzM1IDEyLjk2MiAxNy43MzUgMy43NTUgMTkuNDYxIDMuNzU1IDE5LjQ2MSAxMS4yMjUgMjEuMjQ1IDkuNDYxIDIxLjI0NSAzLjc1NSAyMi45NzIgMy43NTUgMjIuOTcyIDcuNzIzIDI0LjczOCA1Ljk3NSAyNC43MzkgMy43NTUgMjYuNDgzIDMuNzU1IDI2LjQ4MyA1LjQ4MiAyOC4yMDkgNS40ODIgMjguMjA5IDcuMjY3IDI1LjkxMSA3LjI2OCAyNC4xODQgOC45OTMgMjguMjA5IDguOTkzIDI4LjIwOSAxMC43MTkgMjIuNDM4IDEwLjcxOSAyMC42OTggMTIuNTA0IDI4LjIwOSAxMi41MDQgMjguMjA5IDE0LjIzIDE4Ljk2MSAxNC4yMyAxNy4yMDUgMTYuMDE0IDI4LjIwOSAxNi4wMTQgMjguMjA5IDE3Ljc0MSAxNS40NTUgMTcuNzQxIDEzLjcxNSAxOS40OTYgMjguMjA5IDE5LjQ5NiAyOC4yMDkgMjEuMjUyIDExLjk4IDIxLjI1MiAxMC4yNDIgMjIuOTc4IDI5Ljk4MiAyMi45NzggMjkuOTg5IDI2LjQ4OSA4Ljk4NiAyNi40ODkgOC45ODYgMzAgNS41MDQgMzAgNS41MDQgMjYuNDg5IDIuMDExIDI2LjQ4OSAyLjAxMSAyMi45NzggNS41MDQgMjIuOTc4IDUuNTAzIDIgNS41MDQgMi4wMDdcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTdlYWNcXFwiLz5cIixcblx0fSxcblx0XCJMb2cgZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMGJkMDJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCI5LjVcXFwiIHdpZHRoPVxcXCI4LjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCIxMi41XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjE0Ljc1XFxcIiB3aWR0aD1cXFwiMTAuNjE3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjE3LjU4M1xcXCIgd2lkdGg9XFxcIjE0LjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIyMC41XFxcIiB3aWR0aD1cXFwiOS44MzRcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjVcXFwiIHk9XFxcIjIzLjA4M1xcXCIgd2lkdGg9XFxcIjEyLjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCI5LjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxNC42NjdcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxNy4yNVxcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjIwLjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIyMy4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+XCIsXG5cdH0sXG5cdFwiTE9MQ09ERVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4ZDI3MDFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMS4zLDMuNzNhMy45NCwzLjk0LDAsMCwxLDEuMDQxLS42Miw4LjQzNSw4LjQzNSwwLDAsMSwuNTU2LDMuMzg1LDI0Ljg2NSwyNC44NjUsMCwwLDEtLjY0Myw1LjAxOWMtLjM2OC0uMTgtLjczNi0uMzY0LTEuMS0uNTU0YTExLjc1NCwxMS43NTQsMCwwLDAsLjI3My0zLjc0NywzLjA4LDMuMDgsMCwwLDAtLjI1NS0uODY1LDUuMTQyLDUuMTQyLDAsMCwwLTIuMDE2LDIuMDdjLS4zMTktLjI0LS42NTItLjQ1OS0uOTg1LS42NzZBMTUuNzE2LDE1LjcxNiwwLDAsMSwyMS4zLDMuNzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQ1MSw4LjZhNC41NzQsNC41NzQsMCwwLDEsMS41MDktMS41NjMsNi42ODUsNi42ODUsMCwwLDEsLjA5LDIuNjcxQzIwLjUxNyw5LjM0MywxOS45NzUsOC45ODcsMTkuNDUxLDguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTYuNDYxLDEwLjA3NmMtLjAzOC0xLjEzNC0uMDMxLTIuMjY5LS4wMjYtMy40LS45LjQ5My0xLjc1OCwxLjA3MS0yLjY0OCwxLjU4OS0uNDUzLjI3LS45MDguNTM2LTEuMzYuODA4LjIyNC0uMTYzLjQ1Ny0uMzEyLjY5LS40NjItLjg2MS0xLjIyNC0xLjk3MS0yLjUtMy41My0yLjc0OGExMC45NjQsMTAuOTY0LDAsMCwwLS4zNjUsNS4xNDdjLjMxOC0uMTk1LjYzMy0uNC45NjItLjU3Mi0uNDc0LjMxOS0uOTY0LjYxNS0xLjQ0Ni45Mi0uOTU3LjYtMS45MjIsMS4xOTItMi44OTIsMS43NzdhMS4yMzIsMS4yMzIsMCwwLDAtLjM5MS4zMmMtLjEsMS4zOTUtLjM0LDQuMzkyLS4zNCw0LjM5Mi0uMjU0LDMuNjY4LS41MjIsNy4zMzYtLjgyNiwxMSw0LjA2Mi4zNDMsOC4xMTguNzQyLDEyLjE3OSwxLjA3NkMxNi40NTgsMjMuMywxNi40NzIsMTYuNjksMTYuNDYxLDEwLjA3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMSwyLjk3N0E1Ljg4NCw1Ljg4NCwwLDAsMSwyMi43MDYsMmExMC4wNjQsMTAuMDY0LDAsMCwxLC43NzIsNC42MDYsMjQuNTkxLDI0LjU5MSwwLDAsMS0uNTA4LDQuNDU5YzEuMi44NDYsMi40MzMsMS42NDUsMy42MTgsMi41MDlxLjQ0LDYuMzguOTA3LDEyLjc1OGMuMDY2LjgzOS4wOTQsMS42OC4yMTYsMi41MTMtMy4wMjkuMjc5LTYuMDU3LjU5MS05LjA4NS44ODZhMTkuMTM3LDE5LjEzNywwLDAsMC0yLjE1OC4yN3YtLjA4M2MtLjAxLTYuNjE0LDAtMTMuMjI3LS4wMDctMTkuODQxLS4wMzgtMS4xMzQtLjAzMS0yLjI2OS0uMDI2LTMuNHYtLjFjLjQwNi4yOTIuODI2LjU2MiwxLjI0My44MzlBMTYuMjc0LDE2LjI3NCwwLDAsMSwyMS4xLDIuOTc3Wm0uMi43NTJhMTUuNzE2LDE1LjcxNiwwLDAsMC0zLjEyOCw0LjAxMWMuMzM0LjIxNy42NjYuNDM3Ljk4NS42NzZhNS4xNDIsNS4xNDIsMCwwLDEsMi4wMTYtMi4wNywzLjA4LDMuMDgsMCwwLDEsLjI1NS44NjUsMTEuNzU0LDExLjc1NCwwLDAsMS0uMjczLDMuNzQ3Yy4zNjQuMTkuNzMxLjM3NCwxLjEuNTU0YTI0Ljg2NSwyNC44NjUsMCwwLDAsLjY0My01LjAxOSw4LjQzNSw4LjQzNSwwLDAsMC0uNTU2LTMuMzg1QTMuOTQsMy45NCwwLDAsMCwyMS4zLDMuNzNaTTE5LjQ1MSw4LjZjLjUyNC4zODMsMS4wNjYuNzM5LDEuNiwxLjEwOGE2LjY4NSw2LjY4NSwwLDAsMC0uMDktMi42NzFBNC41NzQsNC41NzQsMCwwLDAsMTkuNDUxLDguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNOS4yMTksNS4wNjJhMy41ODEsMy41ODEsMCwwLDEsMi4yMDUuNzQ4QTEyLjksMTIuOSwwLDAsMSwxMy43ODgsOC4yNmMtLjQ1My4yNy0uOTA4LjUzNi0xLjM2LjgwOC4yMjQtLjE2My40NTctLjMxMi42OS0uNDYyLS44NjEtMS4yMjQtMS45NzEtMi41LTMuNTMtMi43NDhhMTAuOTY0LDEwLjk2NCwwLDAsMC0uMzY1LDUuMTQ3Yy4zMTgtLjE5NS42MzMtLjQuOTYyLS41NzItLjQ3NC4zMTktLjk2NC42MTUtMS40NDYuOTJBMTQuMSwxNC4xLDAsMCwxLDkuMjE5LDUuMDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41MDcsOC40NzZhMi40NTUsMi40NTUsMCwwLDEsMS41MTcuODhsLS4zNi4yQTIuNjksMi42OSwwLDAsMCwxMC43MzksOWEzLjMxOCwzLjMxOCwwLDAsMC0uMTY1LDEuMjgxbC0uMzQ0LjExQTcuMDIxLDcuMDIxLDAsMCwxLDEwLjUwNyw4LjQ3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTM5LDEwLjY5M2EuNDg3LjQ4NywwLDAsMSwuNTQyLjAxLDEuNTUyLDEuNTUyLDAsMCwxLC4wNjIuNmMtLjAzOS43ODQuMDI0LDEuNTczLS4wNzYsMi4zNTRhMS4wMTMsMS4wMTMsMCwwLDEtMS4wMTIuODg2Yy0uMjMzLS4wNS0uMjc4LS4zNDEtLjI3OC0uNTQxLDAtLjY3NS4xLTEuMzQ3LjA2Ni0yLjAyNEExLjMsMS4zLDAsMCwxLDEyLjEzOSwxMC42OTNabS4xNSwxLjA4NGEuODkxLjg5MSwwLDAsMCwuMjUxLS44NjZDMTIuMjE4LDExLjA2MSwxMS45LDExLjUwNywxMi4yODksMTEuNzc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC41LDEzLjcyOGExNy42NzEsMTcuNjcxLDAsMCwxLDEuOTI4LS44MjJjLS4wMjQuMDY0LS4wNjkuMTkxLS4wOTIuMjU1LS42NDkuMzU4LTEuMzYuNi0yLjAyMS45MzhhMTIuMTE4LDEyLjExOCwwLDAsMC0zLjIzOCwyLjI0OEE3LjIsNy4yLDAsMCwxLDEwLDE3LjM4MWE0LjE2Niw0LjE2NiwwLDAsMSwuOTgtMS4yNDZBMTIuNzI3LDEyLjcyNywwLDAsMSwxNC41LDEzLjcyOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNy42MjgsMTMuMjMxYS45ODkuOTg5LDAsMCwxLC41OTQtLjE1MiwxOC4xMTQsMTguMTE0LDAsMCwxLS4xLDIuNjU0LjcxMy43MTMsMCwwLDEtLjg5Mi42NTgsMjEuMSwyMS4xLDAsMCwxLC4wODItMi4yMjZBMS4zODMsMS4zODMsMCwwLDEsNy42MjgsMTMuMjMxWm0uMTc5LjgzMWMuMjY4LS4xMTIuMzE5LS40MTMuNDEyLS42NTRDNy44MiwxMy4zMTIsNy43NzUsMTMuNzgzLDcuODA3LDE0LjA2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTAuODIzLDE3LjA5NGExMy45MzQsMTMuOTM0LDAsMCwxLDQuNjEyLTEuOTY4Yy0uMDEuMDY4LS4wMjkuMjA2LS4wMzkuMjc0YTE0LjI3MywxNC4yNzMsMCwwLDAtNC40NzUsMS45MTQsMi42MjYsMi42MjYsMCwwLDEtLjY4MS4zNDNDMTAuMywxNy4zNTYsMTAuNiwxNy4yNDksMTAuODIzLDE3LjA5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNS4yNjQsMTcuNTlBNS4xNDQsNS4xNDQsMCwwLDEsOCwxNy4xYTEuNSwxLjUsMCwwLDEsMS4xNDIuNjY1QTYuODU0LDYuODU0LDAsMCwwLDcuNiwxNy4yNzhhNi45NjcsNi45NjcsMCwwLDAtMi40ODQuNTY0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NzgsMTcuNzI1YTkuNTksOS41OSwwLDAsMSwzLjYxLS41NjZjLjI0LjAyMS4zMjEuMi4zMTMuNDI0YTMuMjM4LDMuMjM4LDAsMCwwLTEuOTU2LS4wOSwyMS42ODgsMjEuNjg4LDAsMCwwLTIuNTU3LjY1OEM5Ljk5NSwxNy44MjksMTAuMzQ1LDE3LjgwOSwxMC41NzgsMTcuNzI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk05LjI2OCwxNy42NzZjLjE0OS0uMTc2LjUzMy0uMzMyLjY2NC0uMDYyYTEuMywxLjMsMCwwLDEtLjUxNi45OTNDOS4yNjgsMTguMzM3LDguOTczLDE3Ljk1Miw5LjI2OCwxNy42NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTUuNzQ0LDE4LjYyOWE1LjksNS45LDAsMCwxLDMuMTgyLS42MThjLS4xODIuMjM1LS40OTMuMTc4LS43NTEuMjA4YTUuNjYzLDUuNjYzLDAsMCwwLTEuNzIuMzNjLS4zNDQuMTI4LS42NjUuMzEtMS4wMi40MDlBLjYuNiwwLDAsMSw1Ljc0NCwxOC42MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTYuOSwxOS4xMTRhOS42NzYsOS42NzYsMCwwLDEsMi4yLS44NTRjLS4xLjMtLjQ0MS4zMzgtLjcuNDQ0YTcuODM5LDcuODM5LDAsMCwwLTIuNTY0LDEuNDE1QzUuOTM4LDE5LjU4NCw2LjQ4OCwxOS4zNjksNi45LDE5LjExNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjM1LDE5LjdhMy4xMSwzLjExLDAsMCwwLDEuOTEtMS4zODNjLjM0Ny0uMS4yNzMuMjc1LjI2LjQ5NGEyLjA1NiwyLjA1NiwwLDAsMS0uOTUsMS4wMzYsMTIuMzY1LDEyLjM2NSwwLDAsMS0xLjgyNyw2LjQxOUEyLjM0MiwyLjM0MiwwLDAsMSw4Ljg3OSwyNy41YTIuMjUxLDIuMjUxLDAsMCwxLTEuNTM1LTEuNDksMTAuODk0LDEwLjg5NCwwLDAsMS0uNjktNC42NjVjLS4xNTctLjExMi0uMzY5LS4xNzktLjQ2LS4zNjItLjEzLS4yLjAxMS0uNDI1LjA0Ny0uNjMxLjE5LjE1MS4zNDUuMzkyLjYwNi40MmEzLjYxNywzLjYxNywwLDAsMCwxLjg2My0uNCwxLjU4OCwxLjU4OCwwLDAsMCwuNzA5LS42NjIsMy44ODEsMy44ODEsMCwwLDAsLjQzMS4yNjZBNC4yOCw0LjI4LDAsMCwwLDExLjYzNSwxOS43Wm0tMi4yLjgzNWE0LjEzMiw0LjEzMiwwLDAsMS0yLjQ2Mi44MDksMTEuMDQ5LDExLjA0OSwwLDAsMCwuMzU4LDMuNTI2LDMuMjI2LDMuMjI2LDAsMCwxLC45LTEuMjgyLDIuMDU1LDIuMDU1LDAsMCwxLDIuMy0uMiwyLjMsMi4zLDAsMCwxLC44ODQsMS4xNzIsMTQuNjU5LDE0LjY1OSwwLDAsMCwxLjAwNS00LjQ4OUE1LjE2Nyw1LjE2NywwLDAsMSw5LjQzNSwyMC41MzJabS0uMzI5LDMuMjZhMi4yNzMsMi4yNzMsMCwwLDAtMS41LDEuNDM0Yy0uMTIzLjI2OS4xLjUxNy4yMjUuNzM4LjMzMS40NjIuNzk1LDEsMS40MzEuODkzYTIuODY4LDIuODY4LDAsMCwwLDEuNzY5LTEuNkExLjYsMS42LDAsMCwwLDkuMTA2LDIzLjc5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz5cIixcblx0fSxcblx0XCJMdWFcIjoge1xuXHRcdGNvbG91cjogXCIjMDUwMDgwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuNSwzMGwtLjAxMS0uMzIxYy40LS4wMTQuOC0uMDQ1LDEuMTktLjA5NGwuMDM5LjMxOUMxNy4zMTIsMjkuOTUyLDE2LjksMjkuOTg0LDE2LjUsMzBabS0xLjIyMi0uMDExYy0uNC0uMDIxLS44MTQtLjA2MS0xLjIxNi0uMTE4bC4wNDUtLjMxOGMuMzkzLjA1NS43OTMuMDk0LDEuMTg4LjExNVpNMTguOTIsMjkuN2wtLjA2Ny0uMzE0Yy4zODctLjA4My43NzYtLjE4NCwxLjE1NS0uM2wuMDk0LjMwN0MxOS43MTQsMjkuNTExLDE5LjMxNiwyOS42MTUsMTguOTIsMjkuN1ptLTYuMDYzLS4wNTNjLS40LS4wOTEtLjc5MS0uMi0xLjE3Ny0uMzI2bC4xLS4zMDZjLjM3Ny4xMjIuNzY0LjIzLDEuMTUuMzE5Wm04LjQtLjY2NS0uMTIxLS4zYy4zNjQtLjE0OC43MjgtLjMxNCwxLjA4LS40OTNsLjAwNiwwLC4xNDUuMjg2LDAsMEMyMiwyOC42NjEsMjEuNjI2LDI4LjgzMSwyMS4yNTMsMjguOTgyWm0tMTAuNzE4LS4wODhjLS4zNzQtLjE1OC0uNzQ1LS4zMzUtMS4xLS41MjRsLjE1LS4yODRjLjM1LjE4Ni43MTMuMzU4LDEuMDc4LjUxMlptMTIuODkzLTEuMDIxLS4xNy0uMjczYy4zMzctLjIxLjY2OC0uNDM3Ljk4NC0uNjc1bC4xOTMuMjU3QzI0LjExMSwyNy40MjUsMjMuNzcyLDI3LjY1OCwyMy40MjgsMjcuODczWk04LjM3OSwyNy43NTFjLS4zNDEtLjIyLS42NzYtLjQ1OS0xLS43MDhsLjItLjI1M2MuMzEyLjI0My42NC40NzYuOTcyLjY5MVptMTctMS4zNDYtLjIxNS0uMjM5Yy4yOTQtLjI2NS41OC0uNTQ2Ljg1MS0uODM2bC4yMzUuMjE5QzI1Ljk3MiwyNS44NDYsMjUuNjc5LDI2LjEzNCwyNS4zNzgsMjYuNFpNNi40NTQsMjYuMjUyYy0uMy0uMjc2LS41ODUtLjU2OS0uODU2LS44N2wuMjM5LS4yMTVjLjI2NS4yOTQuNTQ3LjU4LjgzNi44NVpNMjcuMDQxLDI0LjYybC0uMjUzLS4yYy4yNDQtLjMxMi40NzYtLjYzOS42OTItLjk3MmwuMjcuMTc1QzI3LjUyOSwyMy45NjYsMjcuMjksMjQuMywyNy4wNDEsMjQuNjJaTTQuODIsMjQuNDM5Yy0uMjQ0LS4zMjQtLjQ3Ni0uNjYyLS42OTItMS4wMDdsLjI3Mi0uMTdjLjIxLjMzNy40MzguNjY4LjY3Ni45ODRabTIzLjU0Ny0xLjg2Ny0uMjg0LS4xNTFjLjE4Ni0uMzUuMzU4LS43MTMuNTEzLTEuMDc4bC4zLjEyNUMyOC43MzUsMjEuODQzLDI4LjU1OCwyMi4yMTQsMjguMzY4LDIyLjU3MlptLTI0Ljg0MS0uMi0uMDA2LS4wMTJjLS4xODMtLjM1OS0uMzUyLS43MjgtLjUtMS4xbC4zLS4xMjFjLjE0Ny4zNjIuMzEyLjcyNC40OTEsMS4wNzRsLjAwNi4wMTJaTTI5LjMyLDIwLjMyNWwtLjMwNi0uMWMuMTIyLS4zNzcuMjMtLjc2NC4zMTktMS4xNWwuMzEzLjA3MkMyOS41NTUsMTkuNTQzLDI5LjQ0NiwxOS45MzksMjkuMzIsMjAuMzI1Wk0yLjYwOCwyMC4xMDdjLS4xMi0uMzg4LS4yMjMtLjc4Ni0uMzA4LTEuMTgybC4zMTQtLjA2N2MuMDgzLjM4Ny4xODQuNzc2LjMsMS4xNTVaTTI5Ljg3LDE3Ljk0NmwtLjMxOC0uMDQ1Yy4wNTYtLjM5My4wOTQtLjc5My4xMTUtMS4xODhsLjMyMS4wMTdDMjkuOTY3LDE3LjEzNSwyOS45MjcsMTcuNTQ0LDI5Ljg3LDE3Ljk0NlpNMi4xLDE3LjcyYy0uMDUtLjQtLjA4Mi0uODEyLS4xLTEuMjE4bC4zMjEtLjAxMWMuMDE0LjQuMDQ2LjguMDk0LDEuMTlabTI3LjU4Mi0yLjJjLS4wMTQtLjQtLjA0NS0uOC0uMDkzLTEuMTlsLjMxOS0uMDM5Yy4wNDkuNC4wODIuODEzLjEsMS4yMThaTTIuMzMxLDE1LjMsMi4wMSwxNS4yOGMuMDIxLS40MDUuMDYxLS44MTQuMTE3LTEuMjE2bC4zMTguMDQ1QzIuMzksMTQuNSwyLjM1MiwxNC45LDIuMzMxLDE1LjNabTI3LjA1Ny0yLjE0NGMtLjA4My0uMzg3LS4xODQtLjc3Ni0uMy0xLjE1NUwyOS40LDExLjljLjExOS4zODguMjIzLjc4Ni4zMDcsMS4xODNaTTIuNjYzLDEyLjkzNGwtLjMxMy0uMDcyYy4wOTEtLjQuMi0uNzkxLjMyNi0xLjE3N2wuMzA2LjFDMi44NTksMTIuMTYxLDIuNzUyLDEyLjU0OCwyLjY2MywxMi45MzRabTI2LjAyNi0yLjA2MmMtLjE0OS0uMzY2LS4zMTUtLjczMi0uNS0xLjA4NmwuMjg2LS4xNDZjLjE4NS4zNjMuMzU1LjczNi41MDcsMS4xMTFaTTMuNCwxMC42NjVsLS4zLS4xMjVjLjE1OC0uMzc0LjMzNC0uNzQ1LjUyNC0xLjFsLjI4NC4xNUMzLjcyNCw5LjkzNywzLjU1MiwxMC4zLDMuNCwxMC42NjVaTTQuNTEzLDguNTU3bC0uMjctLjE3NGMuMjItLjM0MS40NTgtLjY3Ni43MDctMWwuMjU0LjJDNC45NjEsNy45LDQuNzI4LDguMjI0LDQuNTEzLDguNTU3Wk01Ljk3Nyw2LjY3NmwtLjIzNS0uMjE5Yy4yNzYtLjMuNTY5LS41ODUuODctLjg1N2wuMjE1LjIzOUM2LjUzMyw2LjEsNi4yNDcsNi4zODYsNS45NzcsNi42NzZabTEuNzctMS42LS4xOTMtLjI1N2MuMzIzLS4yNDQuNjYyLS40NzcsMS4wMDctLjY5MmwuMTcuMjcyQzguMzk0LDQuNjE0LDguMDYzLDQuODQxLDcuNzQ3LDUuMDc5Wm0xNS43MDUtLjU1OC0uMDE4LS4wMTIuMTc1LS4yNy4wMTguMDExWm0tMS4wNDctLjYxNmMtLjM1LS4xODYtLjcxMy0uMzU4LTEuMDc4LS41MTJsLjEyNS0uM2MuMzc0LjE1OC43NDUuMzM0LDEuMS41MjRaTTkuNzY5LDMuODE1bC0uMTQ2LS4yODYuMDE4LS4wMDljLjM1Ni0uMTgxLjcyNC0uMzQ5LDEuMDkzLS41bC4xMjEuM2MtLjM2MS4xNDctLjcyLjMxMS0xLjA2OC40ODhabTEwLjQ0LS44MzhjLS4zNzctLjEyMi0uNzY0LS4yMjktMS4xNTEtLjMxN2wuMDcyLS4zMTNjLjQuMDkxLjc5Mi4yLDEuMTc4LjMyNVptLTguMjI5LS4wNi0uMDk0LS4zMDdjLjM4OC0uMTE5Ljc4Ni0uMjIzLDEuMTgyLS4zMDhsLjA2Ny4zMTRDMTIuNzQ3LDIuNywxMi4zNTksMi44LDExLjk4LDIuOTE3Wm01LjktLjQ3M2MtLjM5My0uMDU1LS43OTMtLjA5Mi0xLjE4OC0uMTEzbC4wMTYtLjMyMWMuNDA1LjAyMS44MTQuMDU5LDEuMjE2LjExNVptLTMuNTcyLS4wMjYtLjA0LS4zMTljLjQtLjA1LjgxMi0uMDgzLDEuMjE4LS4xbC4wMTIuMzIxQzE1LjEwNiwyLjMzNywxNC43MDUsMi4zNjksMTQuMzEyLDIuNDE4WlxcXCIgc3R5bGU9XFxcImZpbGw6Z3JheVxcXCIvPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTUuOTk4XFxcIiByPVxcXCIxMC43MDhcXFwiIHN0eWxlPVxcXCJmaWxsOm5hdnlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC40MzVcXFwiIGN5PVxcXCIxMS41NjJcXFwiIHI9XFxcIjMuMTM2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjYuNzA4XFxcIiBjeT1cXFwiNS4yOVxcXCIgcj1cXFwiMy4xMzdcXFwiIHN0eWxlPVxcXCJmaWxsOm5hdnlcXFwiLz48cGF0aCBkPVxcXCJNMTMuMSwyMS4zNTJ2LS43OUg5LjYyOVYxNC4zMjZoLS45djcuMDI2SDEzLjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTE2LDIxLjM1MlYxNi4zaC0uOHYyLjc4NWMwLDEuMDMxLS41NCwxLjcwNi0xLjM3OCwxLjcwNkEuOTUuOTUsMCwwLDEsMTQuNywxOS44VjE2LjNoLS44djMuODE3YzAsLjgzOC42MjYsMS4zNzgsMS42MDksMS4zNzhhMS44NjMsMS44NjMsMCwwLDAsMS42ODctLjkyNXYuNzgxaC43MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNzkxLDIxLjMzM3YtLjYwN2EuNjY0LjY2NCwwLDAsMS0uMTczLjAxOWMtLjI3OSwwLS40MzQtLjE0NS0uNDM0LS40VjE3LjUzNmMwLS45LS42NTUtMS4zNzgtMS45LTEuMzc4LTEuMjI0LDAtMS45NzYuNDcyLTIuMDI0LDEuNjM4aC44MWMuMDY3LS42MTcuNDM0LS45LDEuMTg1LS45LjcyMywwLDEuMTI4LjI3LDEuMTI4Ljc1MnYuMjEyYzAsLjMzNy0uMi40ODItLjgzOC41NTlhNS43NjMsNS43NjMsMCwwLDAtMS42MTkuMzA4LDEuMzI3LDEuMzI3LDAsMCwwLS44ODcsMS4zMTFjMCwuOTE2LjYzNiwxLjQ1NSwxLjY1OCwxLjQ1NWEyLjM2MywyLjM2MywwLDAsMCwxLjcxNS0uNzQyLjg1NS44NTUsMCwwLDAsLjgyOS42NjUsMS45NjcsMS45NjcsMCwwLDAsLjU0OS0uMDg3bS0xLjQwNy0xLjcyNWExLjM2NiwxLjM2NiwwLDAsMS0xLjUxMywxLjE4NWMtLjYyNiwwLS45OTMtLjIyMi0uOTkzLS43NzEsMC0uNTMuMzU3LS43NjEsMS4yMTQtLjg4N2E0LDQsMCwwLDAsMS4yOTEtLjI3OXYuNzUyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTWFya2Rvd25cIjoge1xuXHRcdGNvbG91cjogXCIjNzU1ODM4XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjcuOTU1XFxcIiB3aWR0aD1cXFwiMjdcXFwiIGhlaWdodD1cXFwiMTYuMDkxXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojNzU1ODM4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwOSAyMC42MzYgNS45MDkgMTEuMzY0IDguNjM2IDExLjM2NCAxMS4zNjQgMTQuNzczIDE0LjA5MSAxMS4zNjQgMTYuODE4IDExLjM2NCAxNi44MTggMjAuNjM2IDE0LjA5MSAyMC42MzYgMTQuMDkxIDE1LjMxOCAxMS4zNjQgMTguNzI3IDguNjM2IDE1LjMxOCA4LjYzNiAyMC42MzYgNS45MDkgMjAuNjM2XFxcIiBzdHlsZT1cXFwiZmlsbDojNzU1ODM4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi45NTUgMjAuNjM2IDE4Ljg2NCAxNi4xMzYgMjEuNTkxIDE2LjEzNiAyMS41OTEgMTEuMzY0IDI0LjMxOCAxMS4zNjQgMjQuMzE4IDE2LjEzNiAyNy4wNDUgMTYuMTM2IDIyLjk1NSAyMC42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NTU4MzhcXFwiLz5cIixcblx0fSxcblx0XCJNQVRMQUJcIjoge1xuXHRcdGNvbG91cjogXCIjZWY2YzNlXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNi44MDNcXFwiIHkxPVxcXCIxNi42MzFcXFwiIHgyPVxcXCIxNS4wMTNcXFwiIHkyPVxcXCIyMi40MTFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzUxMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzUyM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNlxcXCIgc3RvcC1jb2xvcj1cXFwiIzUzNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY0NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzU2OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI5ZFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjkuNzFcXFwiIHkxPVxcXCIxOC45ODNcXFwiIHgyPVxcXCIxMS43MVxcXCIgeTI9XFxcIjE0LjU2M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wODFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMzNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTg5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGU1MjM5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2YwNmUzZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmYTgwNDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZlODY0M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhN2Y0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNlZjZjM2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODMzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGM0YzM3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjkxNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmMzYzM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF0bGFiPC90aXRsZT48cGF0aCBkPVxcXCJNMiwxNy41NWw3Ljk3LTMuMjJhMjAuNywyMC43LDAsMCwxLDIuNzItMi45NWMuNjYtLjM1LDEuOS0uMTYsNC4xNy0yLjk4LDIuMi0yLjc1LDIuOS01LjEsMy45My01LjEsMS42MywwLDIuODMsMy41Miw0LjY1LDguODVBMTE1LjYyOSwxMTUuNjI5LDAsMCwwLDMwLDI0LjEyYy0xLjktMS43Ny0zLjUyLTMuNjgtNS4zNy0zLjYzLTEuNzIuMDQtMy42MywyLjA4LTUuNzIsNC43LTEuNjYsMi4xLTMuODYsMy41NC00LjcyLDMuNTEsMCwwLTIuMjItNi4yOC00LjA4LTcuM2EyLjY0MSwyLjY0MSwwLDAsMC0yLjM5LjJMMiwxNy41NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM0OWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuOCw0LjAyYy0uNjcuOS0xLjQ4LDIuNTUtMi45NCw0LjM4LTIuMjcsMi44Mi0zLjUsMi42My00LjE3LDIuOThhMTkuNjc0LDE5LjY3NCwwLDAsMC0yLjcyLDIuOTVsMy4zLDIuNDFjMi44LTMuODIsNC4zLTcuOTYsNS40Ny0xMC42NEExMy41NzksMTMuNTc5LDAsMCwxLDE5LjgsNC4wMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjAuOCwzLjNjLTIuMTgsMC0zLjY3LDExLjQ4LTExLjcyLDE3Ljg5LDIuMjYtLjM3LDQuMjIsNS4yNCw1LjEyLDcuNTEsNC0uNjgsNy4yLTguMzMsMTAuNDMtOC4yMSwxLjg1LjA3LDMuNDcsMS44Niw1LjM3LDMuNjNDMjUuNjYsMTUsMjMuNjMsMy4zLDIwLjgsMy4zWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiJVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTUFYU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNjk2YlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE0LjQsNy41NjgsMjAuMjEyLDJINy4yNzNMNC44NDgsNy41MzZsOS41NTcuMDMyWk00Ljg0OCw3LjUzNmw2Ljg0NCwyLjZMMTQuNCw3LjU2OG0tLjAxMywzLjYyMi0yLjctMS4wNTNMNS4yNjMsMTYuMWw2LjI4Niw1LjgyMywyLjgwOC0xLjFMMTQuNCw3LjU2OG0wLDAsMTIuOCw4LjM3NkwyMC4yMTIsMk0yNy4yLDE1Ljk0NCwxNC4zOTEsMTEuMTltLS4wMzUsOS42MzYtLjAzMiwzLjY4NU0yMC4yMjgsMzBsLTguNjc5LTguMDczTDQuOCwyNC40NjQsNy4yNTcsMzBabTAsMEwyNy4yLDE1Ljk0NCwxNC4zMjUsMjQuNTEyTTI3LjIsMTUuOTQ0LDE0LjM1NywyMC44MjZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMxZDFkMWI7c3Ryb2tlLW1pdGVybGltaXQ6MjIuOTI1NTg0NzkzMDkwODI7c3Ryb2tlLXdpZHRoOjAuMDI4MzQ5OTk5MzM4Mzg4NDQzcHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM5MSAxMS4xOSAyNy4yIDE1Ljk0NCAxNC40MDUgNy41NjggMTQuMzkxIDExLjE5IDE0LjM5MSAxMS4xOVxcXCIgc3R5bGU9XFxcImZpbGw6IzE4MWIxNztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMiAxNS45NDQgMTQuMzU3IDIwLjgyNiAxNC4zMjUgMjQuNTA5IDE0LjMyNiAyNC41MTEgMjcuMiAxNS45NDQgMjcuMiAxNS45NDRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTFkMWE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQwNSA3LjU2OCAyNy4yIDE1Ljk0NCAyMC4yMTIgMiAxNC40MDUgNy41NjggMTQuNDA1IDcuNTY4XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1ZjVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNy4yIDE1Ljk0NCAxNC4zMjYgMjQuNTExIDIwLjIyOCAzMCAyNy4yIDE1Ljk0NCAyNy4yIDE1Ljk0NFxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDI0MjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAyNy4yIDE1Ljk0NCAxNC4zOTEgMTEuMTkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTUyO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zNTcgMjAuODI2IDE0LjM5MSAxMS4xOSAxMS42OTIgMTAuMTM3IDUuMjYzIDE2LjEwNCAxMS41NDkgMjEuOTI3IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjk2YjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNjkyIDEwLjEzNyAxNC4zOTEgMTEuMTkgMTQuNDA1IDcuNTY4IDExLjY5MiAxMC4xMzcgMTEuNjkyIDEwLjEzN1xcXCIgc3R5bGU9XFxcImZpbGw6IzFiMjcyNTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAxMS41NDkgMjEuOTI3IDE0LjMyNSAyNC41MDkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMWMyNjI0O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zMjUgMjQuNTEyIDQuOCAyNC40NjQgNy4yNTcgMzAgMjAuMjI4IDMwIDE0LjMyNiAyNC41MTEgMTQuMzI1IDI0LjUxMiAxNC4zMjUgMjQuNTEyXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NDY2O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0Ljg0OCA3LjUzNiAxNC40MDUgNy41NjggMjAuMjEyIDIgNy4yNzMgMiA0Ljg0OCA3LjUzNiA0Ljg0OCA3LjUzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzY3YTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuNDA1IDcuNTY4IDQuODQ4IDcuNTM2IDExLjY5MiAxMC4xMzcgMTQuNDA1IDcuNTY4IDE0LjQwNSA3LjU2OFxcXCIgc3R5bGU9XFxcImZpbGw6IzFlMzkzODtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNTQ5IDIxLjkyNyA0LjggMjQuNDY0IDE0LjMyNSAyNC41MTIgMTQuMzI1IDI0LjUwOSAxMS41NDkgMjEuOTI3IDExLjU0OSAyMS45MjdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDMwMmU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJNRUxcIjoge1xuXHRcdGNvbG91cjogXCIjMDZhMGEyXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjExLjM0OFxcXCIgeTE9XFxcIi02Ny40ODhcXFwiIHgyPVxcXCItNjAwLjI3MlxcXCIgeTI9XFxcIi02NS4zMzVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwZjYwNjdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA1YWJhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzU4YmVjNFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTYwMy41OTRcXFwiIHkxPVxcXCItNzcuNjk5XFxcIiB4Mj1cXFwiLTYwMi4wMTFcXFwiIHkyPVxcXCItNTkuNjA0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTE3YzgzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMyMWI1YjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZWQ0ZDRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02MTIuNzU3XFxcIiB5MT1cXFwiLTU5LjkwNlxcXCIgeDI9XFxcIi02MTYuOTM0XFxcIiB5Mj1cXFwiLTcyLjc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWFjY2QzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM3MmFlYjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzMTdkN2ZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi02MjEuODUxXFxcIiB5MT1cXFwiLTc0LjU3OVxcXCIgeDI9XFxcIi02MTQuODRcXFwiIHkyPVxcXCItNzIuMzAxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjE2MjZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMxNTdjODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwM2EzYTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi02MTYuMzY5XFxcIiB5MT1cXFwiLTY0LjQ2OVxcXCIgeDI9XFxcIi02MjUuMzRcXFwiIHkyPVxcXCItNzIuODM1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGI3YzgxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwNjhkOTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNmIxYjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIi02MDguMDcyXFxcIiB5MT1cXFwiLTc0LjY3OFxcXCIgeDI9XFxcIi02MDMuNDg4XFxcIiB5Mj1cXFwiLTcwLjk2NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzBhOGE4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMGY3YzgyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWE1OTY0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNjAxLjEzNFxcXCIgeTE9XFxcIi03MC4xMTNcXFwiIHgyPVxcXCItNjA2LjAwOFxcXCIgeTI9XFxcIi02Ny4wNjdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyNTZhNzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBkOTQ5OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA2YTBhMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF5YTwvdGl0bGU+PHBhdGggZD1cXFwiTTIxLjYsMy40NjJIMzBMMTguNzY3LDI0LjIxMXMtMS44OTMtNS41LTIuNzA2LTcuNDU5XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY2OSwyOS4xMThIMzBWMy40NjJDMjkuOTk1LDE2Ljg2OSwyNC4zNiwyOS4xMTgsMjMuNjY5LDI5LjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTguNzY3LDI0LjIxMUgxMy41NDFMMiwzLjQ2MmMyLjA0Ny0uMjYsNi4xMzUtLjYxMSw4LjE2LS43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTguNjkzLDE2LjAxOUM2Ljk2LDIyLjg2NiwxLjk5NSwyOS4zMiwyLDI5LjMxNGM1Ljc1MiwwLDYuOTkxLS44MzUsNi45OTEtMS4yNzZWMTYuNTRDOC44OSwxNi4zNyw4Ljc5NCwxNi4xOTQsOC42OTMsMTYuMDE5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDMuNDYyVjI5LjMxNGMzLjE0Ny01LjIsNC45ODEtOC42LDYuNi0xMy40NUM0LjYsOC43OTQsMiwzLjQ2MiwyLDMuNDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjIzLjIzMyAyOC4xMDIgMjMuNjY5IDI5LjExOCAyMy42NjkgMTUuNjQ3IDIzLjIzMyAxNi4zNzVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ3LDE1LjY3M3YxMy40bC4wMTYuMDQzYy40NTIsMCw2LjMzMi0xNC41LDYuMzMyLTI1LjY1NkMyOS45OTUsMy40NjIsMjYuNDA2LDEwLjk0NywyMy42NDcsMTUuNjczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPlwiLFxuXHR9LFxuXHRcIk1vbmdvREJcIjoge1xuXHRcdGNvbG91cjogXCIjNDFhMjQ3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjQ1LjczMlxcXCIgeTE9XFxcIjgzOS4xODhcXFwiIHgyPVxcXCItNjU0LjU5XFxcIiB5Mj1cXFwiODM5LjI1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTk5ODc1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzliOTk3N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42ODNcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDlmN2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzY4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTlhODg5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I3YjY5YVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNjOWM3YjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTQ4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGVkZGNiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y4ZjZlYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiZjllZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTY0NC4yODdcXFwiIHkxPVxcXCI4MjMuNDA1XFxcIiB4Mj1cXFwiLTY1Ny4wMjhcXFwiIHkyPVxcXCI4NDUuNDc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM0OGE1NDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZjkxNDNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02NDMuMzg2XFxcIiB5MT1cXFwiODM5LjQ4NVxcXCIgeDI9XFxcIi02NTIuNDE4XFxcIiB5Mj1cXFwiODMzLjQxN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDFhMjQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzRiYTc0YlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45NTZcXFwiIHN0b3AtY29sb3I9XFxcIiM2N2I1NTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2OWI2NTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX21vbmdvPC90aXRsZT48cGF0aCBkPVxcXCJNMTYuNjIsMzBsLS43NTEtLjI0OXMuMS0zLjgtMS4yNzUtNC4wNjdjLS45LTEuMDQ4LjEzMy00NC43NDEsMy40MjMtLjE0OWEyLjcxMiwyLjcxMiwwLDAsMC0xLjMzMywxLjUyM0ExNC4xLDE0LjEsMCwwLDAsMTYuNjIsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjAyNiwyNi4zMjlhMTMuMjIzLDEzLjIyMywwLDAsMCw1LTEzLjIyNUMyMC41NTYsNi42MTksMTcuMDc1LDQuNDg3LDE2LjcsMy42NzNhOS43OTIsOS43OTIsMCwwLDEtLjgyNS0xLjZsLjI3NywxOC4wNjlTMTUuNTc4LDI1LjY2NCwxNy4wMjYsMjYuMzI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40ODcsMjYuNTY5UzkuMzY2LDIyLjQsOS43MiwxNS4wMjVBMTUuNTQsMTUuNTQsMCwwLDEsMTUuMjM5LDMuMzc3LDEuNzI1LDEuNzI1LDAsMCwwLDE1Ljg0NiwyYy4zODEuODIuMzE5LDEyLjI0My4zNTksMTMuNTc5QzE2LjM2LDIwLjc3NiwxNS45MTYsMjUuNTg4LDE1LjQ4NywyNi41NjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+XCIsXG5cdH0sXG5cdFwibmdpbnhcIjoge1xuXHRcdGNvbG91cjogXCIjMDE5NjM5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTUuOTQ4LDJoLjA2NWExMC40MTgsMTAuNDE4LDAsMCwxLC45NzIuNTI4UTIyLjQxNCw1LjY1LDI3Ljg0Myw4Ljc3NGEuNzkyLjc5MiwwLDAsMSwuNDE0Ljc4OGMtLjAwOCw0LjM4OSwwLDguNzc3LS4wMDUsMTMuMTY0YS44MTMuODEzLDAsMCwxLS4zNTYuNTA3cS01Ljc3MywzLjMyNC0xMS41NDcsNi42NDRhLjU4Ny41ODcsMCwwLDEtLjY1Ny4wMzdROS45MTIsMjYuNiw0LjE0MywyMy4yNzRhLjcuNywwLDAsMS0uNC0uNjY2cTAtNi41ODIsMC0xMy4xNjNhLjY5My42OTMsMCwwLDEsLjM4Ny0uNjdROS41NTIsNS42NTcsMTQuOTc0LDIuNTM1Yy4zMjItLjE4NC42MzgtLjM3OS45NzQtLjUzNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAxOTYzOVxcXCIvPjxwYXRoIGQ9XFxcIk04Ljc2NywxMC41MzhxMCw1LjQyOSwwLDEwLjg1OWExLjUwOSwxLjUwOSwwLDAsMCwuNDI3LDEuMDg3LDEuNjQ3LDEuNjQ3LDAsMCwwLDIuMDYuMjA2LDEuNTY0LDEuNTY0LDAsMCwwLC42ODUtMS4yOTNjMC0yLjYyLS4wMDUtNS4yNCwwLTcuODZxMy41ODMsNC4yOSw3LjE4MSw4LjU2OGEyLjgzMywyLjgzMywwLDAsMCwyLjYuNzgyLDEuNTYxLDEuNTYxLDAsMCwwLDEuMjUxLTEuMzcxcS4wMDgtNS41NDEsMC0xMS4wODFhMS41ODIsMS41ODIsMCwwLDAtMy4xNTIsMGMwLDIuNjYyLS4wMTYsNS4zMjEsMCw3Ljk4Mi0yLjM0Ni0yLjc2Ni00LjY2My01LjU1Ni03LTguMzMyQTIuODE3LDIuODE3LDAsMCwwLDEwLjE3LDkuMDMzLDEuNTc5LDEuNTc5LDAsMCwwLDguNzY3LDEwLjUzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJOaW1cIjoge1xuXHRcdGNvbG91cjogXCIjZmZlOTUzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuMTExLDYuNDA1cy0xLjA3My44NDctMi4xNjcsMS42OWExNS4zNjEsMTUuMzYxLDAsMCwwLTQuNTI3LjY1MWMtMS4xLS43LTIuMDctMS40NjktMi4wNy0xLjQ2OVM2LjUyLDguNyw2LDkuNTM1YTExLjM4MiwxMS4zODIsMCwwLDAtMi4yMzYsMS40ODJDMi45NjEsMTAuNywyLjAzLDEwLjMxLDIsMTAuM2MxLjA2MywyLjE0NSwxLjc3OCw0LjI5MiwzLjcyMiw1LjU4MywzLjEtNC44ODksMTcuNDgtNC40MzksMjAuNjM5LS4wMjhDMjguNCwxNC43ODcsMjkuMiwxMi41LDMwLDEwLjM4Yy0uMDg4LjAyOS0xLjE4MS4zOTUtMS44ODkuNjY1YTExLjQ4OSwxMS40ODksMCwwLDAtMS45ODYtMS41MWMtLjUzNy0uOTg0LTEuMzE5LTIuMzEzLTEuMzE5LTIuMzEzcy0uOTI3LjY4OS0yLDEuNDRhMjEuMjY1LDIxLjI2NSwwLDAsMC00LjY4MS0uNTEyYy0xLS44MjYtMi4wMTQtMS43NDYtMi4wMTQtMS43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTMuMSwxNC44NTRsMi41NTQsNi4xODVjNC40MzUsNS44NSwxNS43NTksNi4yNTcsMjAuNy4xMTMsMS4xNjgtMi42MzMsMi43NDUtNi4zMzMsMi43NDUtNi4zMzNhMTMuMzc5LDEzLjM3OSwwLDAsMS00LjYsMy44NjksMTIuMjE3LDEyLjIxNywwLDAsMS0yLjk4My43OTNsLTUuNDY1LTIuODMyLTUuNSwyLjc3NWExNS42NzksMTUuNjc5LDAsMCwxLTIuOTgzLS43NjRBMTQuMDc2LDE0LjA3NiwwLDAsMSwzLjEsMTQuODU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTk1M1xcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiI1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTml4XCI6IHtcblx0XHRjb2xvdXI6IFwiIzUyNzdjM1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEzLDExLjExNSw2LjE4MywyMy43Niw0LjU5LDIwLjg3bDEuODM5LTMuMzg3LTMuNjUxLS4wMUwyLDE2LjAyOWwuOC0xLjQ3Nyw1LjIuMDE4LDEuODY4LTMuNDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMy41MjcsMjEuMjIzaDEzLjY0bC0xLjU0MSwyLjkyMi0zLjY1OC0uMDExLDEuODE3LDMuMzg5LS43NzksMS40NDktMS41OTMsMC0yLjU4NC00LjgyNS0zLjcyMi0uMDA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS40NjcsMTUuNjgyLDE0LjY0NywzLjAzN2wzLjEzNC0uMDMyTDE5LjYsNi40bDEuODM0LTMuMzc5aDEuNTU3TDIzLjc4Niw0LjUsMjEuMTc0LDkuMzA3bDEuODU0LDMuNDU1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NDIsMTYuMzI0bDYuODIxLDEyLjY0NUwxNC4yMjksMjlsLTEuODIxLTMuNC0xLjgzNCwzLjM4SDkuMDE2bC0uOC0xLjQ3NkwxMC44MzEsMjIuNyw4Ljk3NiwxOS4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE4LjQ2NCwxMC43NTFINC44MjNMNi4zNjUsNy44MjlsMy42NTguMDExTDguMjA3LDQuNDUxLDguOTg2LDNsMS41OTIsMCwyLjU4NCw0LjgyNSwzLjcyMi4wMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LDIwLjg4OCwyNS44MTcsOC4yNDRsMS41OTMsMi44OUwyNS41NzEsMTQuNTJsMy42NTEuMDFMMzAsMTUuOTc5bC0uOCwxLjQ3Ny01LjItLjAxOC0xLjg2OCwzLjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1Mjc3YzM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJOU0lTXCI6IHtcblx0XHRjb2xvdXI6IFwiI2E0MmQyNlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI3LjQzNSwxNi4wMzcsMjIuMDEyLDIxLjQ2bDUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1NzdiXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljg4NCwxNS41SDE2LjA0OGw1LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzlhYVxcXCIvPjxwYXRoIGQ9XFxcIk0yNi44ODQsMTQuNzEyLDIxLjQ2MSw5LjI4OWwtNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDk2ZDNcXFwiLz48cGF0aCBkPVxcXCJNMjAuNTI4LDkuMTMxSDkuNjgzbDUuNDIzLDUuNDIzTTI3LjQzNSwzLjMyNSwyMi4wMTIsOC43NDhsNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMWIwZjBcXFwiLz48cGF0aCBkPVxcXCJNMjAuNTI4LDguMzU2LDE1LjEwNSwyLjkzMyw5LjY4Myw4LjM1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzI3YmNmM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xNzIsMi43NzVIMy4zMjdMOC43NDksOC4yXFxcIiBzdHlsZT1cXFwiZmlsbDojNGZjOWY1XFxcIi8+PHBhdGggZD1cXFwiTTQuNTY4LDE1Ljk2Myw5Ljk5MSwxMC41NCw0LjU2OCw1LjExN1xcXCIgc3R5bGU9XFxcImZpbGw6Izc5MjAxYlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NDEsMTEuMDkxLDUuMTE5LDE2LjUxM0gxNS45NjRcXFwiIHN0eWxlPVxcXCJmaWxsOiNhNDJkMjZcXFwiLz48cGF0aCBkPVxcXCJNNS4xMTksMTcuMjg4bDUuNDIzLDUuNDIzLDUuNDIzLTUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojY2MzODJmXFxcIi8+PHBhdGggZD1cXFwiTTQuNTY4LDE3LjgyOVYyOC42NzVsNS40MjMtNS40MjNMOC40LDIxLjY2NW0xMy45MTYsMS4yTDE2LjksMTcuNDQ3bC01LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2YwNDUzZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS40NzUsMjMuNjQ0LDE2LjksMjkuMDY3bDUuNDIzLTUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZjI2MjVkXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljg0LDI5LjIyNUgyOC42ODVMMjMuMjYzLDIzLjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNDdmN2RcXFwiLz48cGF0aCBkPVxcXCJNMjkuODg5LDI5LjMzN2wtMS42OC0xLjY4VjIuMzkyYS4zNzQuMzc0LDAsMCwwLS4yNDMtLjM1NUEuMjYzLjI2MywwLDAsMCwyNy44MjcsMmEuMzU5LjM1OSwwLDAsMC0uMjcxLjExMkwyMS40NzEsOC4yLDE1LjM4NSwyLjExMiwxNS4zLDIuMDM3aC0uMDM3QS4zMDcuMzA3LDAsMCwwLDE1LjEwNSwySDIuNGEuNDM0LjQzNCwwLDAsMC0uMjg5LjExMkEuMzguMzgsMCwwLDAsMiwyLjM5MmEuMzU5LjM1OSwwLDAsMCwuMTEyLjI3MWwxLjY4LDEuNjhWMjkuNjE3YS4zNzQuMzc0LDAsMCwwLC4yNDMuMzU1QS4zODcuMzg3LDAsMCwwLDQuMTg1LDMwYS4zNTkuMzU5LDAsMCwwLC4yNzEtLjExMkwxMC41NDEsMjMuOGw2LjA4NSw2LjA4NS4wODQuMDc1aC4wMzdBLjI1NC4yNTQsMCwwLDAsMTYuOSwzMEgyOS42MDlhLjM5NS4zOTUsMCwwLDAsLjI4LS42NjNaTTI3LjQzNSwzLjMyNVYxNC4xNzFMMjIuMDEyLDguNzQ4bDUuNDIzLTUuNDIzWk05Ljk5MSwxMC41NCw0LjU2OCwxNS45NjNWNS4xMTdMOS45OTEsMTAuNTRaTTkuNjgzLDkuMTMxSDIwLjUyOGwtNS40MjMsNS40MjNMOS42ODMsOS4xMzFabS44NTksMS45Niw1LjQyMyw1LjQyM0g1LjExOWw1LjQyMy01LjQyM1pNMTYuOSwxNy40NDdsNS40MjMsNS40MjNIMTEuNDc1TDE2LjksMTcuNDQ3Wk0xNi4wNDgsMTUuNUgyNi44OTNsLTUuNDIzLDUuNDIzTDE2LjA0OCwxNS41Wm01Ljk2NCw1Ljk2NCw1LjQyMy01LjQyM1YyNi44ODNMMjIuMDEyLDIxLjQ2Wm00Ljg3Mi02Ljc0OEgxNi4wNDhsNS40MjMtNS40MjMsNS40MTMsNS40MjNaTTIwLjUyOCw4LjM1Nkg5LjY4M2w1LjQyMy01LjQyMyw1LjQyMyw1LjQyM1pNMy4zMjcsMi43NzVIMTQuMTcyTDguNzQ5LDguMlptMS4yNDEsMjUuOVYxNy44MjlMOC40LDIxLjY2NWwxLjU4NywxLjU4N0w0LjU2OCwyOC42NzVabS41NTEtMTEuMzg3SDE1Ljk2NGwtNS40MjMsNS40MjNMNS4xMTksMTcuMjg4Wk0xNi45LDI5LjA2N2wtNS40MjMtNS40MjNIMjIuMzJMMTYuOSwyOS4wNjdabS45NDMuMTU5TDIzLjI2MywyMy44bDUuNDIzLDUuNDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ2NDA0OVxcXCIvPlwiLFxuXHR9LFxuXHRcIk9iamVjdCBQYXNjYWxcIjoge1xuXHRcdGNvbG91cjogXCIjRkY2MzQ0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIi0wLjQ0M1xcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMjIuMDQyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAyMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmMGMxNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzlhMGMwZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZGVscGhpPC90aXRsZT48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NDUsMTYuMjQzSDQuOTI0YS45MTQuOTE0LDAsMCwwLTEuMDkyLjgycS4wMzMuNDI5LjEuODQ5YTEyLjQsMTIuNCwwLDAsMCwyNC41MzIsMHEuMDc1LS41LjEwOC0xLjAyMUMyOC40NzgsMTYuNTIzLDI4LjIxMSwxNi4yMDcsMjcuNTQ1LDE2LjI0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjY0NDNcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxOC40OCAxMS42NCAyMy43MDcgNy4yNjYgMTkuNzg3IDUuODggMTYgMTEuMDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTUuNjggMTEuMDI2IDE4LjY0IDUuODggMTQuODUzIDUuODggMTMuMzA3IDExLjI5M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEzLjA0IDExLjM3MyAxMy42IDYuNzA2IDEwLjU4NyA3Ljk2IDExLjAxMyAxMi43NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEwLjc0NyAxMyA5Ljc4NyA4Ljc2IDcuNzA3IDEwLjg0IDkuNjUzIDE0LjY4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4zODcgMTUuMDUzIDcuNDkzIDEyLjM3NiA2LjY0IDE0LjQ2NiA5LjA0IDE2LjUxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMDQgMTYuNzU3IDYuNjQgMTUuMjEzIDYuNDggMTcuNCA5LjIgMTguMzMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4yMjcgMTguODQ2IDYuNjQgMTguMDQgNy4yMjcgMTkuOCA5LjU0NyAxOS44XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS43MDcgMjAuMDkzIDcuNzA3IDIwLjM4NiA4LjYyNyAyMS43NDYgMTAuMjY3IDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTIwLjAyMywxMy4wODlhNi42MSw2LjYxLDAsMCwwLTQuNTMtMkE2LjI5Myw2LjI5MywwLDAsMCwxMS4zLDIyLjA3bDQuOTQxLjEyOS0yLjA4LTQuMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjUsMjIuMzY2bC01LjI2Ny0uMTM4LS4wNDQtLjAzOWE2LjQ1Myw2LjQ1MywwLDAsMSw0LjMtMTEuMjY0LDYuNzg3LDYuNzg3LDAsMCwxLDQuNjQzLDIuMDVsLjEyMy4xMjMtNS45LDQuOTgyWm0tNS4xNC0uNDU1LDQuNjE2LjEyMUwxMy45NjEsMThsNS44MjUtNC45MTlhNi40Myw2LjQzLDAsMCwwLTQuMjkyLTEuODM1LDYuMTMzLDYuMTMzLDAsMCwwLTQuMTMxLDEwLjY2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDEzLDIwLjQ5M2MtNC4xNzMtNS44MTMsMi4xMDktOC4xNzIsMi40NzgtOC40NTMuNDUxLS4zNDQtNy41OSwxLjc4NS0zLjIyNiw4Ljg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwNGUzMTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzIgMTIuNiAxMy41MiAxNy41NjcgMTMuNzMzIDE4LjU3MyAyMS40NjcgMTcuMDI2IDIwLjcyIDEyLjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjEsMTguNzYxLDEzLjM0MSwxNy41bDcuNDk1LTUuMTcuODE0LDQuODI4Wm0uMDg5LTEuMTIzLjE1OC43NDdMMjEuMjgzLDE2LjksMjAuNiwxMi44NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcyMywyMS4zMTljLTMuOTMtLjY2OC00LjI4My40MjgtNC4yODMuNDI4TDEwLjI2NywyNC40NHMxLjEyLS45MDcsNS40OTMsMGwuNzYtMS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGQwYzEzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE0LjEyMiwyMS42Yy0uMDItLjItMS4xLS4zMTktMS42NzctLjEyMy0uNzMyLjI0OS0xLjIxOSwxLjE0Mi0xLjA0NSwxLjIxM2ExLjk3NSwxLjk3NSwwLDAsMSwxLjEyNS0uOTg2QzEzLjQ0NywyMS40OTMsMTQuMTQyLDIxLjgsMTQuMTIyLDIxLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2ZTRmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE1LjUyLDE4LjYwNmExMS4xLDExLjEsMCwwLDAsMS41NDcsMS40ODcsNi45LDYuOSwwLDAsMSwyLjcyLDQuMTA3Yy0uMTA3LDEuMDY3LTEuOTczLDEuNzYtMS45NzMsMS43NmwtMy4zMDctNy4xOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE3LjczLDI2LjE2MWwtMy40NTctNy41MjEsMS4zMi0uMjA4LjA1Ny4wODFhMTAuODY5LDEwLjg2OSwwLDAsMCwxLjUxMiwxLjQ1MSw3LDcsMCwwLDEsMi43ODIsNC4yMDdsMCwuMDIyLDAsLjAyMmMtLjExNSwxLjE1My0yLDEuODY0LTIuMDc3LDEuODk0Wm0tMi45OS03LjI3LDMuMTU1LDYuODYzYy40MTQtLjE3OCwxLjYzLS43NjMsMS43My0xLjU0OGE2Ljc5Myw2Ljc5MywwLDAsMC0yLjY0OC0zLjk4MWwtLjAxLS4wMDdhMTEuOTQsMTEuOTQsMCwwLDEtMS41MTctMS40MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTI4LDEyLjc0MmMuMDI1LjM5NC4wMzQuNzkyLjAyNSwxLjE5NGExMy45NDYsMTMuOTQ2LDAsMCwxLTE5LjksMTIuM0ExMi44NiwxMi44NiwwLDAsMCwyOCwxMi43NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO2ZpbGwtcnVsZTpldmVub2RkO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTIuMzgzLDEzLjg5M0ExMy45NDEsMTMuOTQxLDAsMCwxLDI1LjcsNS44M3MtNS4wMDksNS45NzktMTAuNTg0LDcuOTA3UzIuMzgzLDEzLjg5MywyLjM4MywxMy44OTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTMuNjE4LDE4LjY5NGMtLjA0NC0uMzkyLS4wNzItLjc5LS4wODMtMS4xOTFDMy4zMjksOS44MDcsMTAuMDEyLDQuMiwxNy43MDgsMy45OTFhMTQuMiwxNC4yLDAsMCwxLDUuNzE5LDEuNDU4LDEzLjEyOCwxMy4xMjgsMCwwLDAtNy4xODgtMi4zNjljLTcuMS4xOS0xMy4zMDYsNS4zLTEzLjExNiwxMi40QTEyLjg3MywxMi44NzMsMCwwLDAsMy42MTgsMTguNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPlwiLFxuXHR9LFxuXHRcIk9iamVjdGl2ZS1DXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MyYzJjMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTExLjI5LDE1Ljk3NmE4Ljg5Miw4Ljg5MiwwLDAsMCwxLjAzOSw0LjU1Nyw0LjgxOCw0LjgxOCwwLDAsMCw1LjU3OSwyLjEzLDMuNzg5LDMuNzg5LDAsMCwwLDIuNzM0LTMuMTgxYy4wOTUtLjUzNS4xLS41NC4xLS41NCwxLjUzNy4yMjIsNC4wMTQuNTgyLDUuNTUuOGwtLjEuMzg5QTkuOTU4LDkuOTU4LDAsMCwxLDIzLjgsMjQuOWE4LjM1LDguMzUsMCwwLDEtNC43NDcsMi4zNzgsMTIuOTI1LDEyLjkyNSwwLDAsMS03LjMyMi0uNzI1LDguOTgsOC45OCwwLDAsMS01LjEwNi01LjUyNEExNC4zNTMsMTQuMzUzLDAsMCwxLDYuNjQyLDEwLjlhOS4zMjMsOS4zMjMsMCwwLDEsNy45MjktNi4yNCwxMS44MTIsMTEuODEyLDAsMCwxLDUuOS40OTEsOC40NjcsOC40NjcsMCwwLDEsNS40NTYsNi4xYy4wODMuMzExLjEuMzY5LjEuMzY5LTEuNzA5LjMxMS0zLjgyMS43MDUtNS41MTgsMS4wNzVDMjAuMTg2LDExLDE5LjM4Nyw5LjY2NiwxNy42NzgsOS4yNWE0LjY1Niw0LjY1NiwwLDAsMC01Ljg1MywzLjE1OCw5LjI4LDkuMjgsMCwwLDAtLjM0MSwxLjI3M0ExMC44OSwxMC44OSwwLDAsMCwxMS4yOSwxNS45NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjAzMyAzMCAyLjAzMyAyIDcuOTY3IDIgNy45NjcgNC4yMjcgNC43MjMgNC4yMjcgNC43MjMgMjcuNzczIDcuOTY3IDI3Ljc3MyA3Ljk2NyAzMCAyLjAzMyAzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuOTY3IDI5Ljk5OSAyNC4wMzMgMjkuOTk5IDI0LjAzMyAyNy43NzEgMjcuMjc3IDI3Ljc3MSAyNy4yNzcgNC4yMjYgMjQuMDMzIDQuMjI2IDI0LjAzMyAxLjk5OSAyOS45NjcgMS45OTkgMjkuOTY3IDI5Ljk5OVxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIk9DYW1sXCI6IHtcblx0XHRjb2xvdXI6IFwiI2YyOTEwNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTc0NS42MjNcXFwiIHkxPVxcXCItOTIuNzZcXFwiIHgyPVxcXCItNzQ1LjYyM1xcXCIgeTI9XFxcIi04NS4xMDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNzU4IDExMy4yOClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmMjkxMDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlYzY4MTNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi03NDEuOTlcXFwiIHkxPVxcXCItMTA5LjQ3N1xcXCIgeDI9XFxcIi03NDEuOTlcXFwiIHkyPVxcXCItODUuMDk5XFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi03NTIuMTExXFxcIiB5MT1cXFwiLTkzLjkxOFxcXCIgeDI9XFxcIi03NTIuMTExXFxcIiB5Mj1cXFwiLTg1LjI4NFxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9vY2FtbDwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LjU3MSwyNS4yNDZhNC4yOCw0LjI4LDAsMCwwLS4wMzktLjcwOWMtLjA1OS0uMi0uMi0uMjE3LS4zLS4zNzRhMy41MDcsMy41MDcsMCwwLDEtLjUzMi0xLjQ3N2MtLjAyLS40NTMtLjItLjg4Ni0uMjE3LTEuMzM5LS4wMi0uMjE3LjAyLS40NTMsMC0uNjY5YTEuOTYzLDEuOTYzLDAsMCwwLS4wMzktLjMxNSwxLjEzMywxLjEzMywwLDAsMC0uMDM5LS4ybC4wNTktLjEzOGEyLjcyLDIuNzIsMCwwLDEsLjY1LS4wMzljLjI1NiwwLC41MTIuMDIuNzY4LjAyYTcuOTYxLDcuOTYxLDAsMCwwLDEuNTM2LS4wNTksMy43MjIsMy43MjIsMCwwLDAsMS45NDktLjg0Nyw0Ljk0Niw0Ljk0NiwwLDAsMCwxLjUzNi0yLjAwOGMuMTc3LS4zOTQuMTc3LTEuMDgzLjU1MS0xLjQuNDMzLS4zNzQsMS4xODEtLjMzNSwxLjY5My0uNTcxYTEuMTg3LDEuMTg3LDAsMCwxLC44MDctLjEzOGMuMjE3LjAzOS42My4zMTUuNzI5LS4wNTktLjA3OS0uMDM5LS4xLS4xMzgtLjEzOC0uMTc3LjQxNC0uMDM5LDAtMS0uMTU4LTEuMkEyLjIyNSwyLjIyNSwwLDAsMCwyNC4yNSwxM2EzLjUwOSwzLjUwOSwwLDAsMC0xLjUzNi0uMjE3Yy0uODg2LjE3Ny0uODI3LS4zMzUtMS4zMzktLjMzNS0uNjMsMC0xLjczMy4wMzktMS45My42M2ExLjU0LDEuNTQsMCwwLDEtLjMzNS41MTJjLS4xMzguMTc3LjAyLjM1NC0uMDM5LjU3MS0uMDc5LjIxNy0uMTc3Ljk4NS0uMjc2LDEuMjYtLjE3Ny40NTMtLjM5NCwxLjAyNC0uNzg4LDEuMDI0YTMuMTUyLDMuMTUyLDAsMCwxLTEuNDM3LS4wNzljLS4yNzYtLjEtLjcyOS0uMjU2LS45NDUtLjMzNS0xLjAyNC0uNDMzLTEuMi0uOTA2LTEuMi0uOTA2YTMuMDI2LDMuMDI2LDAsMCwxLS41MTItLjg2NmMtLjExOC0uNDE0LS4zMTUtLjc2OC0uMzk0LTFzLS4zLS41OTEtLjQ1My0uOTg1YTIuNjY3LDIuNjY3LDAsMCwwLS43MDktMS4wNjNjLS4zMTUtLjI3Ni0uNjEtLjcyOS0xLjI2LS41OTFhMS42NDEsMS42NDEsMCwwLDAtLjg2Ni4zMTVjLS4yMTcuMTc3LS4zLjU3MS0uNDkyLjg4Ni0uMTE4LjE3Ny0uMzE1LjcwOS0uNTEyLDEuMTYyYTEuOTI5LDEuOTI5LDAsMCwxLS4zMzUuNjVjLS4xMTguMDc5LS4yNTYuMi0uNDE0LjEzOGEuOTI0LjkyNCwwLDAsMS0uMzE1LS4yLDUuMzM0LDUuMzM0LDAsMCwxLS43MDktMS4xMjIsMTEuMSwxMS4xLDAsMCwwLS43ODgtMS4yNDEsMS4wMTYsMS4wMTYsMCwwLDAtLjk4NS0uNTUxYy0xLjAyNCwwLTEuMS41NzEtMS41NTYsMS40MThhNS41NzQsNS41NzQsMCwwLDEtLjY2OSwxLjRjLS4yMzYuMjU2LS45NDUsMS4zMzktMS40NTcsMS41MTZIMnY3LjYyYy4wMzktLjEuMDU5LS4yLjEtLjI3Ni4yLS40MTQuNjUtLjgwNy45MDYtMS4yMjFhMy41LDMuNSwwLDAsMCwuMzc0LS43MDksMy43NDMsMy43NDMsMCwwLDEsLjIzNi0uNzA5Ljc5NC43OTQsMCwwLDEsLjU3MS0uMzM1Yy4zNTQtLjA1OS42NS40OTIsMS4wODMuNzA5LjIuMDc5LDEuMDYzLjM5NCwxLjMxOS40NTMuNDMzLjEuOTA2LjIsMS4zMzkuMjc2LjIzNi4wMzkuNDUzLjA3OS43MDkuMWE3LjMsNy4zLDAsMCwxLDEuMDgzLjEsMi4yNzcsMi4yNzcsMCwwLDAtLjgwNywxLjIyMWMtLjE1OC40MzMtLjI3Ni45MjUtLjQ3MywxLjMzOS0uMjE3LjQ3My0uNjY5LjY2OS0uNjEsMS4yMjFhMi42NjgsMi42NjgsMCwwLDEsLjAyLjY4OSw0LjAwOSw0LjAwOSwwLDAsMS0uMjE3LjY4OWMtLjEuMzE1LS4yMTcsMS4zNTktLjM1NCwxLjY3NGwuOTA2LS4xMThoMEExMC42OTIsMTAuNjkyLDAsMCwwLDguNCwyNi4zODhhMy43MzcsMy43MzcsMCwwLDEsLjcyOS0xLjI4Yy4zMzUtLjM3NC4zMTUtLjg0Ny41MTItMS4zYTEyLjQ4OCwxMi40ODgsMCwwLDEsLjc2OC0xLjNjLjQ5Mi0uODA3LjgwNy0xLjgxMiwxLjg1MS0yLjAyOGEzLjMsMy4zLDAsMCwxLDEuMDI0LjcwOSw0LjQ1Miw0LjQ1MiwwLDAsMSwuODg2LDEuMSwxMi44NTEsMTIuODUxLDAsMCwxLC44ODYsMi42NzgsMS4yMjcsMS4yMjcsMCwwLDAsLjM5NC43MDksNS40NjIsNS40NjIsMCwwLDEsLjQzMy43MjljLjA3OS4xNzcuMi41NzEuMy43ODhhNi4yNjcsNi4yNjcsMCwwLDEsLjMxNS44MjdsLjg0Ny0uMDJoLjAydi0uMDJBOS43NTQsOS43NTQsMCwwLDEsMTYuNTcxLDI1LjI0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYuMjE3LDI3LjIzNWMtLjEtLjItLjIxNy0uNjEtLjMtLjc4OGE1LjQ2Miw1LjQ2MiwwLDAsMC0uNDMzLS43MjksMS4xMTksMS4xMTksMCwwLDEtLjM5NC0uNzA5LDEyLjQ4NywxMi40ODcsMCwwLDAtLjg4Ni0yLjY3OCw0LjQ1Miw0LjQ1MiwwLDAsMC0uODg2LTEuMSwzLjMsMy4zLDAsMCwwLTEuMDI0LS43MDljLTEuMDQ0LjItMS4zNTksMS4yMjEtMS44NTEsMi4wMjhhMTIuNDg4LDEyLjQ4OCwwLDAsMC0uNzY4LDEuM2MtLjIuNDMzLS4xNzcuOTI1LS41MTIsMS4zYTMuNDQzLDMuNDQzLDAsMCwwLS43MjksMS4yOGMtLjAzOS4xLS4xMTgsMS4wODMtLjIxNywxLjMxOWgwbDEuNTM2LS4xYzEuNDM3LjEsMS4wMjQuNjUsMy4yNDkuNTMybDMuNTI1LS4xMThoMEE2LjI2Nyw2LjI2NywwLDAsMCwxNi4yMTcsMjcuMjM1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNi40NTYsMy44SDUuNTQ0QTMuNTIxLDMuNTIxLDAsMCwwLDIuMDIsNy4zMjh2Ny42NzloMGMuNTEyLS4xNzcsMS4yMjEtMS4yNiwxLjQ1Ny0xLjUxNmE1LjkxMyw1LjkxMywwLDAsMCwuNjY5LTEuNGMuNDUzLS44MjcuNTMyLTEuNDE4LDEuNTU2LTEuNDE4YTEuMDE2LDEuMDE2LDAsMCwxLC45ODUuNTUxLDkuNTQ3LDkuNTQ3LDAsMCwxLC43ODgsMS4yNDEsNC44NDksNC44NDksMCwwLDAsLjcwOSwxLjEyMiwyLDIsMCwwLDAsLjMxNS4yYy4xNTguMDU5LjMtLjA1OS40MTQtLjEzOEExLjkyOSwxLjkyOSwwLDAsMCw5LjI0NiwxM2MuMi0uNDUzLjM5NC0uOTY1LjUxMi0xLjE2Mi4yLS4zMTUuMjc2LS43MDkuNDkyLS44ODZhMS41OSwxLjU5LDAsMCwxLC44NjYtLjMxNWMuNjUtLjEzOC45NDUuMzE1LDEuMjYuNTkxYTMuMjg1LDMuMjg1LDAsMCwxLC43MDksMS4wNjNjLjE1OC4zOTQuMzU0Ljc2OC40NTMuOTg1YTguOTQ2LDguOTQ2LDAsMCwxLC4zOTQsMSwzLjcxMywzLjcxMywwLDAsMCwuNTEyLjg2NnMuMTc3LjQ3MywxLjIuOTA2YTguNzQ5LDguNzQ5LDAsMCwwLC45NDUuMzM1LDMuMTUyLDMuMTUyLDAsMCwwLDEuNDM3LjA3OWMuMzk0LDAsLjYxLS41NzEuNzg4LTEuMDI0LjEtLjI3Ni4yMTctMS4wNDQuMjc2LTEuMjZzLS4xLS4zNzQuMDM5LS41NzFjLjE1OC0uMjE3LjI1Ni0uMjM2LjMzNS0uNTEyLjItLjYxLDEuMy0uNjMsMS45My0uNjMuNTMyLDAsLjQ1My41MTIsMS4zMzkuMzM1YTMuMjQzLDMuMjQzLDAsMCwxLDEuNTM2LjIxNywyLjIyNSwyLjIyNSwwLDAsMSwxLjE0Mi41NTFjLjE1OC4yLjU3MSwxLjE2Mi4xNTgsMS4yLjAzOS4wMzkuMDc5LjEzOC4xMzguMTc3LS4xLjM3NC0uNDkyLjEtLjcyOS4wNTlhMS4xODcsMS4xODcsMCwwLDAtLjgwNy4xMzhjLS41MTIuMjE3LTEuMjQxLjItMS42OTMuNTcxLS4zNzQuMzE1LS4zNzQsMS0uNTUxLDEuNGE1LjE2Nyw1LjE2NywwLDAsMS0xLjUzNiwyLjAwOCwzLjksMy45LDAsMCwxLTEuOTQ5Ljg0Nyw3Ljk2MSw3Ljk2MSwwLDAsMS0xLjUzNi4wNTljLS4yNTYtLjAyLS41MTItLjAyLS43NjgtLjAyLS4xNTgsMC0uNjY5LS4wMi0uNjUuMDM5bC0uMDU5LjEzOGEuNy43LDAsMCwwLC4wMzkuMmMuMDIuMTE4LjAyLjIxNy4wMzkuMzE1LDAsLjIxNy0uMDIuNDUzLDAsLjY2OS4wMi40NTMuMi44NjYuMjE3LDEuMzM5YTMuMjYsMy4yNiwwLDAsMCwuNTMyLDEuNDc3Yy4xLjE1OC4yMzYuMTc3LjMuMzc0YTQuMTYzLDQuMTYzLDAsMCwxLC4wMzkuNzA5LDkuNjg1LDkuNjg1LDAsMCwwLC44MjcsMi43NTd2LjAyaDBjLjUxMi0uMDc5LDEuMDQ0LS4yNzYsMS43MTMtLjM3NCwxLjI0MS0uMTc3LDIuOTU0LS4xLDQuMDU2LS4yLDIuOC0uMjU2LDQuMzEyLDEuMTQyLDYuODEzLjU3MVY3LjMyOEEzLjU1MSwzLjU1MSwwLDAsMCwyNi40NTYsMy44Wk0xNi4wMiwyMC4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTguNDc4LDIzLjU3M2MuMi0uNDMzLjMxNS0uOTA2LjQ3My0xLjMzOWEyLjI3NywyLjI3NywwLDAsMSwuODA3LTEuMjIxLDcuMyw3LjMsMCwwLDAtMS4wODMtLjFjLS4yMzYtLjAyLS40NzMtLjA1OS0uNzA5LS4xLS40MzMtLjA3OS0uOTI1LS4xNzctMS4zMzktLjI3Ni0uMjU2LS4wNTktMS4xNDItLjM3NC0xLjMxOS0uNDUzLS40NTMtLjItLjc0OC0uNzY4LTEuMDgzLS43MDlhLjc5NC43OTQsMCwwLDAtLjU3MS4zMzUsMy43NDMsMy43NDMsMCwwLDAtLjIzNi43MDljLS4xLjIzNi0uMjU2LjQ3My0uMzc0LjcwOWExMi4yODksMTIuMjg5LDAsMCwwLS45MjUsMS4yYy0uMDM5LjEtLjA1OS4yLS4xLjN2NC43NDVhNS40LDUuNCwwLDAsMSwuNzI5LjE1OCw4Ljc3LDguNzcsMCwwLDAsNC4zNzEuMzU0bC4xNzctLjAyaDBjLjEzOC0uMzE1LjI1Ni0xLjM1OS4zNTQtMS42NzRhNS40OTQsNS40OTQsMCwwLDAsLjIxNy0uNjg5LDIuNjY4LDIuNjY4LDAsMCwwLS4wMi0uNjg5QzcuODA5LDI0LjI0Miw4LjI2MiwyNC4wNDUsOC40NzgsMjMuNTczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHR9LFxuXHRcIk9jdGF2ZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM3N2NjZTFcIixcblx0XHRpY29uOiBcIjxkZWZzIGlkPVxcXCJkZWZzMjg3NFxcXCI+IDxyYWRpYWxHcmFkaWVudCBjeD1cXFwiMTgyLjk4MzdcXFwiIGN5PVxcXCIzOTUuMDQ4NzFcXFwiIHI9XFxcIjE0OC45NTMwOVxcXCIgZng9XFxcIjE4Mi45ODM3XFxcIiBmeT1cXFwiMzk1LjA0ODcxXFxcIiBpZD1cXFwicmFkaWFsR3JhZGllbnQzMDMzXFxcIiB4bGluazpocmVmPVxcXCIjbGluZWFyR3JhZGllbnQzNzU1XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjIyOTE0MzM0LC0wLjI0OTAxNDc5LDAuNzY0MzU3MiwwLjgzMDY0MjY4LC0yNzIuODUzMzcsLTE1OS42OTQ4MilcXFwiIC8+IDxsaW5lYXJHcmFkaWVudCBpZD1cXFwibGluZWFyR3JhZGllbnQzNzU1XFxcIj4gPHN0b3AgaWQ9XFxcInN0b3AzNzU3XFxcIiBzdHlsZT1cXFwic3RvcC1jb2xvcjojMDA4Y2JlO3N0b3Atb3BhY2l0eToxXFxcIiBvZmZzZXQ9XFxcIjBcXFwiIC8+IDxzdG9wIGlkPVxcXCJzdG9wMzc1OVxcXCIgc3R5bGU9XFxcInN0b3AtY29sb3I6I2IyZmZmZjtzdG9wLW9wYWNpdHk6MVxcXCIgb2Zmc2V0PVxcXCIxXFxcIiAvPiA8L2xpbmVhckdyYWRpZW50PiA8L2RlZnM+IDxnIGlkPVxcXCJsYXllcjFcXFwiIHRyYW5zZm9ybT1cXFwic2NhbGUoMC4xMTI5NikgdHJhbnNsYXRlKC0yMzMuMzU1NDQsLTM5MC43MTgwMilcXFwiPiA8ZyB0cmFuc2Zvcm09XFxcIm1hdHJpeCg4LjQ1MTk3MjMsMCwwLDguNDUxOTcyMywtMjc4LjQ1MDEyLC00MDMuODI5NzUpXFxcIiBpZD1cXFwiZzMwMjVcXFwiPiA8cGF0aCBkPVxcXCJtIDY2LjQzMjEwMyw5Ny40ODg2NzkgYyAtNS4xOTU4NCw1LjY0NjQzMSAtMy45MzY2MSwxNi4xNjkwMzEgMi44MTEwNywyMy41MDE4NzEgNi43NDc2OCw3LjMzMjg1IDE2LjQyODk4LDguNjk5NTUgMjEuNjI0ODMsMy4wNTMxMiA1LjE5NTg1LC01LjY0NjQzIDMuOTQwMiwtMTYuMTY5NDYgLTIuODA3NDksLTIzLjUwMjMgLTYuNzQ3NjgsLTcuMzMyODYxIC0xNi40MzI1NiwtOC42OTkxMzEgLTIxLjYyODQxLC0zLjA1MjY5MSB6IG0gNC43MTE0OSwyLjM0NTUzIGMgNC4wODI1NiwtNC40MzY1OSAxMS41ODksLTMuNDcxNTIgMTYuNzY3NDEsMi4xNTU5NjEgNS4xNzg0Miw1LjYyNzUgNi4wNjY0NywxMy43ODQ5MSAxLjk4MzkxLDE4LjIyMTUgLTQuMDgyNTYsNC40MzY1OCAtMTEuNTkwOTcsMy40NzM2OSAtMTYuNzY5MzksLTIuMTUzODEgLTUuMTc4NDIsLTUuNjI3NSAtNi4wNjQ0OSwtMTMuNzg3MDQgLTEuOTgxOTMsLTE4LjIyMzY1MSB6XFxcIiBpZD1cXFwicGF0aDU4NzRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQzMDMzKTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZVxcXCIgLz4gPHJlY3Qgd2lkdGg9XFxcIjQuMzQ5ODU0XFxcIiBoZWlnaHQ9XFxcIjQuMzQ5ODU0XFxcIiByeD1cXFwiMC43Njk1ODk2NlxcXCIgcnk9XFxcIjAuNzY5NTg5NjZcXFwiIHg9XFxcIjg1LjM4MTU2MVxcXCIgeT1cXFwiOTkuNDkzODgxXFxcIiBpZD1cXFwicmVjdDU4NzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCIxMC4yNDU0MzZcXFwiIGhlaWdodD1cXFwiMTAuMjQ1NDM2XFxcIiByeD1cXFwiMS44MTI2NTQ1XFxcIiByeT1cXFwiMS44MTI2NTQ1XFxcIiB4PVxcXCI2MC45MjY1OVxcXCIgeT1cXFwiMTA1LjIyNDVcXFwiIGlkPVxcXCJyZWN0NTg3OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmN2YyYTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6I2Q0NTUwMDtzdHJva2Utd2lkdGg6MC43NDQwMzc5OTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZVxcXCIgLz4gPHJlY3Qgd2lkdGg9XFxcIjYuMTg5NzUzMVxcXCIgaGVpZ2h0PVxcXCI2LjE4OTc1MzFcXFwiIHJ4PVxcXCIxLjA5NTExMDJcXFwiIHJ5PVxcXCIxLjA5NTExMDJcXFwiIHg9XFxcIjg3LjQwNDczOVxcXCIgeT1cXFwiMTE4LjYzNzA1XFxcIiBpZD1cXFwicmVjdDU4ODBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDwvZz4gPC9nPlwiLFxuXHR9LFxuXHRcIk9wZW5DTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNGRjFDMUFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjI5LjY2MlxcXCIgeTE9XFxcIjE4LjAyNlxcXCIgeDI9XFxcIjIxLjQxOVxcXCIgeTI9XFxcIjIwLjIzNFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwicmVkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmY2YTZhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIyNC41ODhcXFwiIHkxPVxcXCI5Ljc0OFxcXCIgeDI9XFxcIjE4Ljc3NlxcXCIgeTI9XFxcIjE1LjU2XFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIjE4LjQ2NlxcXCIgeTE9XFxcIjYuNjE5XFxcIiB4Mj1cXFwiMTUuOTI0XFxcIiB5Mj1cXFwiMTMuNjAzXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2ZhNDBjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWRkNDgwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCIxMy4xN1xcXCIgeTE9XFxcIjYuNTFcXFwiIHgyPVxcXCIxMy4xN1xcXCIgeTI9XFxcIjEyLjk5N1xcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCI4LjgwOFxcXCIgeTE9XFxcIjguNDg2XFxcIiB4Mj1cXFwiMTAuOTg4XFxcIiB5Mj1cXFwiMTMuMTYxXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIjUuNTA1XFxcIiB5MT1cXFwiMTEuNDc3XFxcIiB4Mj1cXFwiOC41NDZcXFwiIHkyPVxcXCIxNC41MTlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMxMWExMTlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzN2FlM2RcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIjMuNjM5XFxcIiB5MT1cXFwiMTQuMjg1XFxcIiB4Mj1cXFwiNi44ODNcXFwiIHkyPVxcXCIxNi4xNThcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiMi4yNjVcXFwiIHkxPVxcXCIxNy43OTlcXFwiIHgyPVxcXCI1LjM3OVxcXCIgeTI9XFxcIjE4LjkzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2ZcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCIyXFxcIiB5MT1cXFwiMjEuNjE0XFxcIiB4Mj1cXFwiNC44MzNcXFwiIHkyPVxcXCIyMS42MTRcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiMjAuNjYyXFxcIiB5MT1cXFwiMTguOTQ5XFxcIiB4Mj1cXFwiMTguMDI2XFxcIiB5Mj1cXFwiMTcuNDI4XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM2NDY0NjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNjYmNiY2JcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwia1xcXCIgeDE9XFxcIjE2LjAyMVxcXCIgeTE9XFxcIjI1LjI2NFxcXCIgeDI9XFxcIjE2LjAyMVxcXCIgeTI9XFxcIjIyLjY5MVxcXCIgeGxpbms6aHJlZj1cXFwiI2pcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9vcGVuY2w8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yNy44MjgsMTMuNTc0YTE0LjY3NiwxNC42NzYsMCwwLDEsLjgzNSwxLjU0MkExNC45NjQsMTQuOTY0LDAsMCwxLDI5LjkyLDIyLjlIMjIuMTMzYTEwLjM3NywxMC4zNzcsMCwwLDAtLjk2Ny00LjQyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNzUzLDE0LjQzYTEwLjA3NCwxMC4wNzQsMCwwLDEsMi43NzIsMi44NzhsNi4yNzMtNS4yYTE1LjU0LDE1LjU0LDAsMCwwLTQuOTg4LTQuMTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE0Ljc4MSwxMy4wODZhOC44MjcsOC44MjcsMCwwLDEsMi4zNzYuOTY2TDIwLjY2Niw3LjQzYTEyLjcsMTIuNywwLDAsMC00LjY0NS0uOTUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zNjQsMTNsLjYxMi02LjQ4OGExMi40NiwxMi40NiwwLDAsMC0zLjYxMS44MTNsLjUwNyw1LjYzOEE3LjIxOSw3LjIxOSwwLDAsMSwxNC4zNjQsMTNcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMTAuOTQ4LDEzLjE3OWwtLjY4My01LjM3M0ExNC41ODgsMTQuNTg4LDAsMCwwLDcuNzczLDkuMzc5bDEuNzQsNC40MmE3LjUxOCw3LjUxOCwwLDAsMSwxLjQzNS0uNjE5XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTguODYsMTQuMjA2LDYuNDc0LDEwLjUxMWMtLjQ1My40NC0uNzkuODItMS4wMDYsMS4wNzRxLS4yMjcuMjY3LS40MzYuNTM4TDcuNDgsMTUuMzg3YTguODcsOC44NywwLDAsMSwxLjM4LTEuMTgyXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTcuMDQ2LDE1Ljg3NSw0LjMzNSwxMy4xMTJhMTQuMjU5LDE0LjI1OSwwLDAsMC0xLjI1LDIuNDI5bDMuMDA3LDEuNzFhOS44MjYsOS44MjYsMCwwLDEsLjk1NC0xLjM3NlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk01LjUyNywxOC4zOTNsLTIuNzctMS45NDVhMTUuNDUyLDE1LjQ1MiwwLDAsMC0uNjMsMi44M2wyLjkwNi42MDdhMTAuMzQzLDEwLjM0MywwLDAsMSwuNDk0LTEuNDkyXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTQuODMzLDIwLjlhMTAuNjg0LDEwLjY4NCwwLDAsMC0uMSwySDIuMDkzYTE0LjMzMywxNC4zMzMsMCwwLDEtLjA2NC0yLjU3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTUxLDEyLjQ3OCwxNC43NTEsMjMuMUExLjU0NCwxLjU0NCwwLDAsMSwxNy41LDI0LjQyOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDIxLDI1LjUyMmExLjU0NCwxLjU0NCwwLDEsMSwxLjA5Mi0uNDUyQTEuNTMzLDEuNTMzLDAsMCwxLDE2LjAyMSwyNS41MjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ2NDY0XFxcIi8+PHBhdGggZD1cXFwiTTE3LjMwOCwyMy45NzhhMS4yODcsMS4yODcsMCwxLDEtLjM3Ny0uOTFBMS4yODMsMS4yODMsMCwwLDEsMTcuMzA4LDIzLjk3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz5cIixcblx0fSxcblx0XCJQYXNjYWxcIjoge1xuXHRcdGNvbG91cjogXCIjRkY2MzQ0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIi0wLjQ0M1xcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMjIuMDQyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAyMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmMGMxNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzlhMGMwZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZGVscGhpPC90aXRsZT48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NDUsMTYuMjQzSDQuOTI0YS45MTQuOTE0LDAsMCwwLTEuMDkyLjgycS4wMzMuNDI5LjEuODQ5YTEyLjQsMTIuNCwwLDAsMCwyNC41MzIsMHEuMDc1LS41LjEwOC0xLjAyMUMyOC40NzgsMTYuNTIzLDI4LjIxMSwxNi4yMDcsMjcuNTQ1LDE2LjI0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjY0NDNcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxOC40OCAxMS42NCAyMy43MDcgNy4yNjYgMTkuNzg3IDUuODggMTYgMTEuMDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTUuNjggMTEuMDI2IDE4LjY0IDUuODggMTQuODUzIDUuODggMTMuMzA3IDExLjI5M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEzLjA0IDExLjM3MyAxMy42IDYuNzA2IDEwLjU4NyA3Ljk2IDExLjAxMyAxMi43NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEwLjc0NyAxMyA5Ljc4NyA4Ljc2IDcuNzA3IDEwLjg0IDkuNjUzIDE0LjY4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4zODcgMTUuMDUzIDcuNDkzIDEyLjM3NiA2LjY0IDE0LjQ2NiA5LjA0IDE2LjUxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMDQgMTYuNzU3IDYuNjQgMTUuMjEzIDYuNDggMTcuNCA5LjIgMTguMzMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4yMjcgMTguODQ2IDYuNjQgMTguMDQgNy4yMjcgMTkuOCA5LjU0NyAxOS44XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS43MDcgMjAuMDkzIDcuNzA3IDIwLjM4NiA4LjYyNyAyMS43NDYgMTAuMjY3IDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTIwLjAyMywxMy4wODlhNi42MSw2LjYxLDAsMCwwLTQuNTMtMkE2LjI5Myw2LjI5MywwLDAsMCwxMS4zLDIyLjA3bDQuOTQxLjEyOS0yLjA4LTQuMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjUsMjIuMzY2bC01LjI2Ny0uMTM4LS4wNDQtLjAzOWE2LjQ1Myw2LjQ1MywwLDAsMSw0LjMtMTEuMjY0LDYuNzg3LDYuNzg3LDAsMCwxLDQuNjQzLDIuMDVsLjEyMy4xMjMtNS45LDQuOTgyWm0tNS4xNC0uNDU1LDQuNjE2LjEyMUwxMy45NjEsMThsNS44MjUtNC45MTlhNi40Myw2LjQzLDAsMCwwLTQuMjkyLTEuODM1LDYuMTMzLDYuMTMzLDAsMCwwLTQuMTMxLDEwLjY2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDEzLDIwLjQ5M2MtNC4xNzMtNS44MTMsMi4xMDktOC4xNzIsMi40NzgtOC40NTMuNDUxLS4zNDQtNy41OSwxLjc4NS0zLjIyNiw4Ljg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwNGUzMTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzIgMTIuNiAxMy41MiAxNy41NjcgMTMuNzMzIDE4LjU3MyAyMS40NjcgMTcuMDI2IDIwLjcyIDEyLjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjEsMTguNzYxLDEzLjM0MSwxNy41bDcuNDk1LTUuMTcuODE0LDQuODI4Wm0uMDg5LTEuMTIzLjE1OC43NDdMMjEuMjgzLDE2LjksMjAuNiwxMi44NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcyMywyMS4zMTljLTMuOTMtLjY2OC00LjI4My40MjgtNC4yODMuNDI4TDEwLjI2NywyNC40NHMxLjEyLS45MDcsNS40OTMsMGwuNzYtMS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGQwYzEzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE0LjEyMiwyMS42Yy0uMDItLjItMS4xLS4zMTktMS42NzctLjEyMy0uNzMyLjI0OS0xLjIxOSwxLjE0Mi0xLjA0NSwxLjIxM2ExLjk3NSwxLjk3NSwwLDAsMSwxLjEyNS0uOTg2QzEzLjQ0NywyMS40OTMsMTQuMTQyLDIxLjgsMTQuMTIyLDIxLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2ZTRmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE1LjUyLDE4LjYwNmExMS4xLDExLjEsMCwwLDAsMS41NDcsMS40ODcsNi45LDYuOSwwLDAsMSwyLjcyLDQuMTA3Yy0uMTA3LDEuMDY3LTEuOTczLDEuNzYtMS45NzMsMS43NmwtMy4zMDctNy4xOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE3LjczLDI2LjE2MWwtMy40NTctNy41MjEsMS4zMi0uMjA4LjA1Ny4wODFhMTAuODY5LDEwLjg2OSwwLDAsMCwxLjUxMiwxLjQ1MSw3LDcsMCwwLDEsMi43ODIsNC4yMDdsMCwuMDIyLDAsLjAyMmMtLjExNSwxLjE1My0yLDEuODY0LTIuMDc3LDEuODk0Wm0tMi45OS03LjI3LDMuMTU1LDYuODYzYy40MTQtLjE3OCwxLjYzLS43NjMsMS43My0xLjU0OGE2Ljc5Myw2Ljc5MywwLDAsMC0yLjY0OC0zLjk4MWwtLjAxLS4wMDdhMTEuOTQsMTEuOTQsMCwwLDEtMS41MTctMS40MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTI4LDEyLjc0MmMuMDI1LjM5NC4wMzQuNzkyLjAyNSwxLjE5NGExMy45NDYsMTMuOTQ2LDAsMCwxLTE5LjksMTIuM0ExMi44NiwxMi44NiwwLDAsMCwyOCwxMi43NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO2ZpbGwtcnVsZTpldmVub2RkO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTIuMzgzLDEzLjg5M0ExMy45NDEsMTMuOTQxLDAsMCwxLDI1LjcsNS44M3MtNS4wMDksNS45NzktMTAuNTg0LDcuOTA3UzIuMzgzLDEzLjg5MywyLjM4MywxMy44OTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTMuNjE4LDE4LjY5NGMtLjA0NC0uMzkyLS4wNzItLjc5LS4wODMtMS4xOTFDMy4zMjksOS44MDcsMTAuMDEyLDQuMiwxNy43MDgsMy45OTFhMTQuMiwxNC4yLDAsMCwxLDUuNzE5LDEuNDU4LDEzLjEyOCwxMy4xMjgsMCwwLDAtNy4xODgtMi4zNjljLTcuMS4xOS0xMy4zMDYsNS4zLTEzLjExNiwxMi40QTEyLjg3MywxMi44NzMsMCwwLDAsMy42MTgsMTguNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlBlcmxcIjoge1xuXHRcdGNvbG91cjogXCIjM2EzYzViXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuMjUsMTMuOGE2Ljg4OCw2Ljg4OCwwLDAsMC0uNzQyLTIuMjY4LDEuMDExLDEuMDExLDAsMCwwLS4xNzItLjIzMyw5LjQ3MSw5LjQ3MSwwLDAsMS0xLjcyNS0yLjQsOC42MzIsOC42MzIsMCwwLDAtMS4zOTUtMi4zODJBNi45MDYsNi45MDYsMCwwLDEsMjQuMSw0LjY0NCw0LjU3Miw0LjU3MiwwLDAsMCwyMS45OSwxLjcyN2ExLjAwOSwxLjAwOSwwLDAsMC0uMS0uMDU0LDguODg2LDguODg2LDAsMCwwLTEuMy0uNDY4LDEuMDIyLDEuMDIyLDAsMCwwLS4yNjMtLjAzNSwxLjAwOSwxLjAwOSwwLDAsMC0uMi4wMjEsNS42MDcsNS42MDcsMCwwLDEtLjgwNy4xMDdjLS4wNSwwLS4xLS4wMDYtLjE0OS0uMDA2YTIuODQyLDIuODQyLDAsMCwwLTEuNDE2LjQ1M2MtLjA5NC4wNTItLjE4OC4xMDYtLjI4NC4xNDlxLS4wNDEuMDE4LS4wNzguMDM5QTEuNjM3LDEuNjM3LDAsMCwxLDE3LjA2NiwyYTMuMTA5LDMuMTA5LDAsMCwwLS43NzIuMTk0LDEsMSwwLDAsMC0uNTA4LjQ4MywyLjE4NCwyLjE4NCwwLDAsMS0uNDY5LjVBNC4zODIsNC4zODIsMCwwLDAsMTQuNTU1LDRhLjk2NC45NjQsMCwwLDAtLjExNi4yMzQsNC42ODcsNC42ODcsMCwwLDEtMS41NzQsMi4yLDYuNDcxLDYuNDcxLDAsMCwwLS44LjYxMywyLjczNCwyLjczNCwwLDAsMC0uNjI3LTEuNjM0Yy0uMDE3LS4wMTktLjAzNS0uMDM4LS4wNTMtLjA1NmwwLS4wMTRhMi4zNzgsMi4zNzgsMCwwLDAtLjEzNS0uNTg2LDEsMSwwLDAsMC0uMTMyLS4yMzZBNS4xNjcsNS4xNjcsMCwwLDAsOS41MTEsMy4xMTNhLjk4OC45ODgsMCwwLDAtLjM0Ni0uMTE5LDEuNSwxLjUsMCwwLDEtLjE0OC0uMDc3LDIuMDYsMi4wNiwwLDAsMC0xLS4zMTEsMS40NzYsMS40NzYsMCwwLDAtLjY4MS4xNjYuOTg3Ljk4NywwLDAsMC0uMjc0LjIwNiwxLjMyOCwxLjMyOCwwLDAsMS0uMTI1LjA2MywxLjksMS45LDAsMCwwLS45MDguNzc4LDIuNTM5LDIuNTM5LDAsMCwwLS41NDEuMTA2LDEuNjU2LDEuNjU2LDAsMCwxLS4zODMuMDU3LDIuMywyLjMsMCwwLDAtMS41LjU0NWwtLjEwNi4xYTIuNTMzLDIuNTMzLDAsMCwwLTEsMi41MjUsMS4wOCwxLjA4LDAsMCwwLC4wNjguMTY1QTIuMjk0LDIuMjk0LDAsMCwwLDQuNDQ2LDguNDc4Yy0uMS4yMzgtLjIuNDczLS4zMTQuN2ExLjAwOSwxLjAwOSwwLDAsMC0uMDg3LjI5M0ExMS4wNTIsMTEuMDUyLDAsMCwwLDQsMTIuMDM5YzAsLjAyLDAsLjA0LjAwNy4wNmE1LjI3OCw1LjI3OCwwLDAsMSwuMDQxLjU0NywyLjkyNiwyLjkyNiwwLDAsMCwuOTMxLDIuNGMuMDE3LjAxNC4wMzQuMDI2LjA1Mi4wMzlsLjAwOC4wMzFhMi44LDIuOCwwLDAsMCwuMTUxLjQ0NywxLjE4NSwxLjE4NSwwLDAsMCwuNjMyLjYxNywxLjI4OSwxLjI4OSwwLDAsMCwuMjQ4LjU3MSwxLDEsMCwwLDAsLjMzMi4yNzksMi40NTMsMi40NTMsMCwwLDAsLjQ2NS4xNzZsLjA2NC4wMThhLjk3Ni45NzYsMCwwLDAsLjE5Mi4xNzFBNS44NzksNS44NzksMCwwLDEsNy44NzMsMThhMS4xMywxLjEzLDAsMCwwLDEuMzUxLjQyNywxLjUsMS41LDAsMCwwLC43NjUuMjE1LDEuNDIxLDEuNDIxLDAsMCwwLC42MjQtLjE0NWwuMTE0LS4wMjZjLjAyNC40MDguMDMzLjgxNy4wMjgsMS4yMjNhMS4wNDMsMS4wNDMsMCwwLDAsLjAyNi4yNDIsMTAuNzQ0LDEwLjc0NCwwLDAsMSwuMjY2LDEuODI4LjkzMS45MzEsMCwwLDAsLjAzMS4yLDguNDkyLDguNDkyLDAsMCwxLC4yNjgsMS44MTVjMCwuMDMxLDAsLjA2My4wMDguMDk0YTYuMDgzLDYuMDgzLDAsMCwxLS42MSwzLjU3NS45OTQuOTk0LDAsMCwwLS4wODkuMjYxLDEuMDkzLDEuMDkzLDAsMCwwLS4yMzQuMDc5bC0uMDUuMDIyYTIuMDEzLDIuMDEzLDAsMCwwLTEuMiwxLjA2NSwxLjMyMiwxLjMyMiwwLDAsMCwuMDc0LDEuMDU0LDEsMSwwLDAsMCwuMzI0LjM3MSwzLjU0NywzLjU0NywwLDAsMCwzLjUwOS4zLDEuNTQ2LDEuNTQ2LDAsMCwwLC44MjktMS42NTNsLS4wMDUtLjA2N2EuOTg5Ljk4OSwwLDAsMCwuMDU2LS4xNTgsMTEuMTg2LDExLjE4NiwwLDAsMCwuMjg4LTIuMDY4LDguOTM5LDguOTM5LDAsMCwxLC4yNTktMS44MjIsNC43MjcsNC43MjcsMCwwLDAsLjM4OS0xLjU4OGwuMDQyLjA0OGExMi42NjEsMTIuNjYxLDAsMCwwLDEuMjU1LDEuMTI5LDEwLjMsMTAuMywwLDAsMSwxLjEuOTg5bC0uMDExLjAzOGEuNTMyLjUzMiwwLDAsMS0uMzQyLjM1OWwtLjA0OS4wMTdhMS45MjEsMS45MjEsMCwwLDAtMS4xODQsMS4zMzQsMS4zMTMsMS4zMTMsMCwwLDAsLjQ1MiwxLjIzNCwxLDEsMCwwLDAsLjQ0MS4yMjIsNC45MDgsNC45MDgsMCwwLDAsMi43MzUtLjE4MSwxLjU1NiwxLjU1NiwwLDAsMCwuMjY2LS4xMjQsMS40MTEsMS40MTEsMCwwLDAsLjk3LjM3MiwyLjMyNiwyLjMyNiwwLDAsMCwxLS4yNzRjLjA0OS0uMDIzLjEtLjA0NS4xNC0uMDYyYTEsMSwwLDAsMCwuNjM3LS44NjQsNC41NTMsNC41NTMsMCwwLDAtLjQ2OC0yLjM0MywxLjU2LDEuNTYsMCwwLDAtLjUxLS42LDEwLjgsMTAuOCwwLDAsMSwxLjMtMi4xNSwyLjE5MywyLjE5MywwLDAsMCwuNDUxLTIuMDI2LDIuNTE5LDIuNTE5LDAsMCwxLS4wNDMtLjM5NCwxLjA0NiwxLjA0NiwwLDAsMCwwLS4xNDgsNS43NTYsNS43NTYsMCwwLDEsLjAxMi0xLjI3OSw3LjE2MSw3LjE2MSwwLDAsMCwuOTUxLDEuNzkzLDcuODkyLDcuODkyLDAsMCwxLC4xMzMsMS4xLDEwLjczMywxMC43MzMsMCwwLDAsLjEzMywxLjE4Niw5LjM2LDkuMzYsMCwwLDEtLjIyNCwzLjksMSwxLDAsMCwwLS4wMzIuMzRoMGEuOTguOTgsMCwwLDAtLjEuMTc5LDIuMjM4LDIuMjM4LDAsMCwwLS4zMTIsMS4yMzUsMS4wMDcsMS4wMDcsMCwwLDAsLjAzOS4yLDEuMzE1LDEuMzE1LDAsMCwwLDEuMzI4Ljk2M2MuMDg2LDAsLjE3Ny0uMDA2LjI2OC0uMDE0bC4wMTksMCwuMDM4LjAxM2EyLjEwOSwyLjEwOSwwLDAsMCwyLjUxNy0xLjA4OCwxLDEsMCwwLDAsLjA1OC0uNzM1LDUuMjg1LDUuMjg1LDAsMCwxLS4yMDgtMS4wMjcsMS4wMTEsMS4wMTEsMCwwLDAtLjA0Ni0uMjE3LDYuNDcsNi40NywwLDAsMS0uMjIxLTMuMjIsMS4xMTIsMS4xMTIsMCwwLDAsLjAxNS0uMTE0LDMuOTA3LDMuOTA3LDAsMCwxLC4wNzQtLjQ0MywyLjczOCwyLjczOCwwLDAsMC0uMTkzLTIuMSw0LjMzOSw0LjMzOSwwLDAsMSwuMDIxLS40NzZjLjAxMS0uMTQ3LjAyMy0uMy4wMjctLjQ2M2ExLjU5LDEuNTksMCwwLDAsLjg2Mi0uODUxLDEyLjgzLDEyLjgzLDAsMCwwLC45NDctMi4yMywxLjcxOSwxLjcxOSwwLDAsMCwuMTcyLTEuMTg1LDEuMjM0LDEuMjM0LDAsMCwwLC4xMTEtLjI1MUExLjQ2NywxLjQ2NywwLDAsMCwyOS4yNSwxMy44Wk0xOC44NjMsMjIuNzY4Yy0uMDI2LDAtLjA1My0uMDA4LS4wOC0uMDFsLS4wMjQsMGEyLjc0OCwyLjc0OCwwLDAsMS0uMjM2LS4zMjNjLS4wNTktLjA4OC0uMTE4LS4xNzUtLjE3OC0uMjU4YTIuMjUzLDIuMjUzLDAsMCwwLC4yMDgtLjIzNCwxLjI1NSwxLjI1NSwwLDAsMCwuNjI5LS4zMjFBMy4xODYsMy4xODYsMCwwLDEsMTguODYzLDIyLjc2OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMjg5LDIuM2MtLjU0OC0uMDY1LS45NjEuMy0xLjQxOS41MDYtLjM2OC4yMDYtLjgxNS4xNTItMS4xODUuMzA5LS4yODIuNTc5LS45NDEuOTA4LTEuMywxLjQ0M2E1LjcsNS43LDAsMCwxLTEuOTQyLDIuNjk0LDUuNDY0LDUuNDY0LDAsMCwwLTIuMzY4LDMuMzk0Yy0uMTQ1LjMtLjEyMi43NDYtLjI3NywxLS41MTEuMTQzLS4yMzktLjUxNi0uMy0uODI1LS4wNzQtLjQ3LjM0MS0uNzcuMzczLTEuMjI2YTEuODM0LDEuODM0LDAsMCwwLC4yMDktMS4wNTNjLS4wNTYtLjgxNC4xODktMS44MDctLjM5My0yLjQ3Ny0uMzQ5LS4yLS4yMzktLjYyMy0uMzY2LS45NDdhNC4yMTQsNC4yMTQsMCwwLDAtMS4zLTEuMTM5Yy0uNDE5LS4wNDEtLjgwNi0uNTQyLTEuMjMyLS4zMjMtLjI2Ni4zMDktLjc2My4zMDUtLjkyMi43MTMtLjEuNTE2LS42ODguMzc0LTEuMDY4LjUtLjQ4OC4xODUtMS4xMTguMDA2LTEuNTE4LjM4Mi0uNDExLjQxLTEuMDM0Ljk2MS0uODM1LDEuNjA2LjQ1Ny44ODIsMS42NDUuNDM4LDIuMzE3Ljk3NEExNy45OSwxNy45OSwwLDAsMSw1LjAzNiw5LjYxYTEwLjA1MSwxMC4wNTEsMCwwLDAtLjA0NCwyLjMzMmMuMTIzLjc3My0uMDgzLDEuNzcyLjYwNiwyLjMxOS4zOC4xMzcuMzU3LjU3Mi41Ljg4Ny4xMzQuMjkuNDI3LS4xMTMuNTQzLjE5My4zMzguMTg0LjAzNy41NjEuMjIuOC4yNjMuMTM3LjYzOS4xMjguODIyLjQyNmE2Ljg0NCw2Ljg0NCwwLDAsMSwuOTc1LjgwNmMuMjMuNDY3LjUzMS0uNDU0Ljc4My0uMTA5LjE3LjI4NS41MDYuNTIyLjgxOS4yODVhMi45OTMsMi45OTMsMCwwLDAsMS4zMjQtLjU1NiwxOC4wMzMsMTguMDMzLDAsMCwxLC4xNzEsMi43MTgsMTEuNzMzLDExLjczMywwLDAsMSwuMjksMiw5LjQwOSw5LjQwOSwwLDAsMSwuMywyLjAzLDcuMTExLDcuMTExLDAsMCwxLS43MDksNC4xNiwxLjAxMiwxLjAxMiwwLDAsMS0uODA3LjhjLS4yOTEuMTMtLjkuMzY2LS42OTIuNzc2YTIuNTQ5LDIuNTQ5LDAsMCwwLDIuNTIuMjE0Yy41MS0uMjQzLjA3My0uODU4LjMzNC0xLjIyNi4zNDMtMS4zLjE3NC0yLjY5MS41NzUtMy45ODVhMy43NjIsMy43NjIsMCwwLDAsLjMtMi4xYy4wNzktLjQ0LS4xMDUtLjk2OS4xODctMS4zMjlhMS44MTMsMS44MTMsMCwwLDEsLjQ4My0xLjIsMTQuNzYyLDE0Ljc2MiwwLDAsMCwuMTQ0LTIuMDI2LDMuMjE0LDMuMjE0LDAsMCwxLDEuMjY3LS4xMjdjLjAxOC4zNzUtLjI3Mi44MTItLjE5LDEuMjM0QTEuOTQ4LDEuOTQ4LDAsMCwxLDE1LjUsMjAuM2EyLjg0OSwyLjg0OSwwLDAsMCwuMTY4LDIuMzA4Yy43ODIuODM5LDEuOCwxLjQzMiwyLjUzNiwyLjMyNy4zMTQuMjA1LjIuNTE3LjAzOC43ODRhMS41MjgsMS41MjgsMCwwLDEtLjk4NywxLjAzNGMtLjMwOC4xMjEtLjgwNi41NjYtLjQ0Mi44ODJhMy45MDYsMy45MDYsMCwwLDAsMi4xNzgtLjE0NGMuNDc2LS4xNzEuMy0uNzM4LjQ4OC0xLjA4OC4zLjIzMy40MjMuNzY1LjcxMSwxLjA2OS4zLjQzMy44MDcuMDczLDEuMTU2LS4wNjJhMy41NDksMy41NDksMCwwLDAtLjM3Mi0xLjg0MmMtLjE2Ny0uMzc4LS44LS4zODUtLjc3LS44NTJhMTEuNzYxLDExLjc2MSwwLDAsMSwxLjcxMi0zYy41MS0uNDc5LjEzLTEuMTkxLjE1OC0xLjhBNi43NjUsNi43NjUsMCwwLDEsMjMuMTU4LDE1LjVhMTUuODg5LDE1Ljg4OSwwLDAsMCwuNjkyLDIuMTQsNi4yMyw2LjIzLDAsMCwwLDEuMSwyLjI0NmMuMjM3LjgxMS4xNzYsMS43MS4zMzEsMi41NTFhMTAuNDQsMTAuNDQsMCwwLDEtLjI0Miw0LjM0N2MuMDQuNTE4LS40NTcuOS0uNDE1LDEuNDA4LjE0LjQ2OS43LjA5My45OS4yOWExLjExLDEuMTEsMCwwLDAsMS4zMjQtLjU3Miw2LjIxMiw2LjIxMiwwLDAsMS0uMjQ3LTEuMjIzLDcuNDU0LDcuNDU0LDAsMCwxLS4yNTUtMy43MTljLjA0Ni0uNjY5LjQ1Ny0xLjUtLjA3My0yLjA3Mi0uMTQ4LS42MTkuMS0xLjI4NS0uMDQ5LTEuOTE1YTEyLjg3NywxMi44NzcsMCwwLDEtLjEyMi00LjkzM2MuMDkzLS4yMjcuMDEzLS42NDkuMjQ3LS43NzVhMS44NTEsMS44NTEsMCwwLDEsLjMxNSwxLjIzMiwzLjcsMy43LDAsMCwxLC4wNzksMi4wODFjLS40MjQuNTMxLS4xNjMsMS4yNDgtLjEwOSwxLjg1LjA2OC40MjIuNTE2LjExOC41ODktLjE0NGExMS44NTEsMTEuODUxLDAsMCwwLC45NDQtMi4yNDFjLjI2OS0uMzU2LjAxNC0uNzcsMC0xLjE0Mi40MTMtLjA0OS4yNTYtLjUwNi4wMzUtLjdhNS45Myw1LjkzLDAsMCwwLS42NjctMi4yLDEwLjQ2NCwxMC40NjQsMCwwLDEtMS45NDEtMi43MjNjLS41MjgtMS42MzktMi4wNDItMi43MjYtMi41NTYtNC4zNzlhMy41NTYsMy41NTYsMCwwLDAtMS42NTItMi4zMTdBNy44ODEsNy44ODEsMCwwLDAsMjAuMzIsMi4xNyw2LjUsNi41LDAsMCwxLDE5LjI4OSwyLjNabS40LDE0LjY2YTM4LjkwNywzOC45MDcsMCwwLDEsLjUsNC4yOTEsNC4xNzUsNC4xNzUsMCwwLDEtLjc2LDIuNTE3Yy0uMTIuNDI1LS40ODYuMDEyLS43NTEtLjAxNi0uNjQzLS4wMTgtLjg4Mi0uNjgzLTEuMjMyLTEuMTA3LS4zNi0uMzQ0LS4xLS44LjEzMy0xLjEzMS4yNTItLjE3OS4zNS0uNTc5LjcwOC0uNTQ4LjQtLjAwNy4zMTYtLjQ4Ny4yNi0uNzQzLjIzOC0uMzYyLjA5Mi0uODkyLjMyOC0xLjI4My40MTktLjE4Mi4yOTQtLjgyLjQ0Mi0xLjE4LjExNS0uMjU2LjAxNy0uNzQ5LjMzNC0uODU0LjAzNy0uMDA2LjA0OS4wMTIuMDQyLjA1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYTNjNWJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlBIUFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0YzZiOTZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIi0xNi4xMTRcXFwiIGN5PVxcXCIyMC41MzJcXFwiIHI9XFxcIjE4LjM4NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNi41MiAtOS4zMDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM0YzZiOTZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyMzFmMjBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3BocDwvdGl0bGU+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHJ4PVxcXCIxNFxcXCIgcnk9XFxcIjcuMzY1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHJ4PVxcXCIxMy40NTNcXFwiIHJ5PVxcXCI2LjgxOFxcXCIgc3R5bGU9XFxcImZpbGw6IzYyODBiNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43MjUsMTguMmwuNjY3LTMuNDM0YTEuNzUyLDEuNzUyLDAsMCwwLS4zNzItMS43MTksMi45MjksMi45MjksMCwwLDAtMi0uNTI1SDE1Ljg2N2wuMzMxLTEuN2EuMjE5LjIxOSwwLDAsMC0uMjE1LS4yNmgtMS42YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0uNzA5LDMuNjQ2YTIuMDUxLDIuMDUxLDAsMCwwLS40NzctMS4wNTQsMi43ODMsMi43ODMsMCwwLDAtMi4yLS44MDdINy43YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0xLjQzNCw3LjM4YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZINy44NjlhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC4zNDctMS43ODVoMS4yYTUuMTY3LDUuMTY3LDAsMCwwLDEuNTY4LS4yLDMuMDY4LDMuMDY4LDAsMCwwLDEuMTUtLjY4OSwzLjUzOCwzLjUzOCwwLDAsMCwuNjgtLjg0NGwtLjI4NywxLjQ3NWEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNmEuMjE5LjIxOSwwLDAsMCwuMjE1LS4xNzdsLjc4Ny00LjA1MWgxLjA5NGMuNDY2LDAsLjYuMDkzLjY0LjEzM3MuMS4xNjUuMDI1LjU2OWwtLjYzNSwzLjI2NWEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNjJBLjIxOS4yMTksMCwwLDAsMTguNzI1LDE4LjJaTTExLjMzLDE1LjM2NmExLjc0OSwxLjc0OSwwLDAsMS0uNTYxLDEuMDkyLDIuMTcxLDIuMTcxLDAsMCwxLTEuMzE1LjMyMUg4Ljc0MmwuNTE1LTIuNjUxaC45MjFjLjY3NywwLC45NDkuMTQ1LDEuMDU5LjI2NkExLjE4MSwxLjE4MSwwLDAsMSwxMS4zMywxNS4zNjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI1LjU0NiwxMy4zMzJhMi43ODMsMi43ODMsMCwwLDAtMi4yLS44MDdIMjAuMjU1YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0xLjQzNCw3LjM4YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZoMS42MDhhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC4zNDctMS43ODVoMS4yYTUuMTY3LDUuMTY3LDAsMCwwLDEuNTY4LS4yLDMuMDY4LDMuMDY4LDAsMCwwLDEuMTUtLjY4OSwzLjQyNSwzLjQyNSwwLDAsMCwxLjA3Ni0xLjkyN0EyLjUxMiwyLjUxMiwwLDAsMCwyNS41NDYsMTMuMzMyWm0tMS42NjcsMi4wMzRhMS43NDksMS43NDksMCwwLDEtLjU2MSwxLjA5MkEyLjE3MSwyLjE3MSwwLDAsMSwyMiwxNi43NzhIMjEuMjlsLjUxNS0yLjY1MWguOTIxYy42NzcsMCwuOTQ5LjE0NSwxLjA1OS4yNjZBMS4xODEsMS4xODEsMCwwLDEsMjMuODc5LDE1LjM2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMTc4LDEzLjkwOGExLjY0NSwxLjY0NSwwLDAsMSwxLjIyMS4zMzgsMS4zNCwxLjM0LDAsMCwxLC4xNDUsMS4xNjEsMS45NDUsMS45NDUsMCwwLDEtLjY0MiwxLjIyM0EyLjM2MSwyLjM2MSwwLDAsMSw5LjQ1NCwxN0g4LjQ3NmwuNi0zLjA4OVpNNi4yNjEsMjAuMTI0SDcuODY5bC4zODEtMS45NjJIOS42MjdhNC45MzEsNC45MzEsMCwwLDAsMS41LS4xOTEsMi44NCwyLjg0LDAsMCwwLDEuMDctLjY0MiwzLjIwNywzLjIwNywwLDAsMCwxLjAxLTEuODA4LDIuMywyLjMsMCwwLDAtLjM4NS0yLjA0NCwyLjU2OCwyLjU2OCwwLDAsMC0yLjAzNS0uNzMySDcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzg3LDEwLjc4MmgxLjZMMTUuNiwxMi43NDRoMS40MjFhMi43NjcsMi43NjcsMCwwLDEsMS44NS40NjgsMS41NDgsMS41NDgsMCwwLDEsLjMwNSwxLjUxNmwtLjY2NywzLjQzNEgxNi44OWwuNjM1LTMuMjY1YS44ODYuODg2LDAsMCwwLS4wOC0uNzYsMS4xMjEsMS4xMjEsMCwwLDAtLjgtLjJIMTUuMzdsLS44MjIsNC4yMjhoLTEuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz48cGF0aCBkPVxcXCJNMjIuNzI3LDEzLjkwOGExLjY0NSwxLjY0NSwwLDAsMSwxLjIyMS4zMzgsMS4zNCwxLjM0LDAsMCwxLC4xNDUsMS4xNjEsMS45NDUsMS45NDUsMCwwLDEtLjY0MiwxLjIyM0EyLjM2MSwyLjM2MSwwLDAsMSwyMiwxN2gtLjk3OGwuNi0zLjA4OVpNMTguODEsMjAuMTI0aDEuNjA4bC4zODEtMS45NjJoMS4zNzdhNC45MzEsNC45MzEsMCwwLDAsMS41LS4xOTEsMi44NCwyLjg0LDAsMCwwLDEuMDctLjY0MiwzLjIwNywzLjIwNywwLDAsMCwxLjAxLTEuODA4LDIuMywyLjMsMCwwLDAtLjM4NS0yLjA0NCwyLjU2OCwyLjU2OCwwLDAsMC0yLjAzNS0uNzMySDIwLjI0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIlBML1NRTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZjAwMDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04LjU2MiwxNS4yNTZBMjEuMTU5LDIxLjE1OSwwLDAsMCwxNiwxNi40NDlhMjEuMTU5LDIxLjE1OSwwLDAsMCw3LjQzOC0xLjE5NGMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJWOS43YTEwLjM1NywxMC4zNTcsMCwwLDEtMi4wODQsMS4wNzZBMjIuMjkzLDIyLjI5MywwLDAsMSwxNiwxMi4wNzhhMjIuMzYsMjIuMzYsMCwwLDEtNy44NzktMS4zQTEwLjI4LDEwLjI4LDAsMCwxLDYuMDM3LDkuN3YzLjU1QzYuMDM3LDEzLjcyNCw2LjcsMTQuNTI4LDguNTYyLDE1LjI1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGM1LjUsMCw5Ljk2My0xLjc0NCw5Ljk2My0zLjg5NFYyMy4yNjlhMTAuNSwxMC41LDAsMCwxLTEuNTM1Ljc2MmwtLjE1Ny4wNjNBMjMuNDg3LDIzLjQ4NywwLDAsMSwxNiwyNS40NDVhMjMuNDIyLDIzLjQyMiwwLDAsMS04LjI3MS0xLjM1MWMtLjA1NC0uMDItLjEwNi0uMDQzLS4xNTctLjA2M2ExMC41LDEwLjUsMCwwLDEtMS41MzUtLjc2MnYyLjgzN0M2LjAzNywyOC4yNTYsMTAuNSwzMCwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjUuODk0XFxcIiByeD1cXFwiOS45NjNcXFwiIHJ5PVxcXCIzLjg5NFxcXCIgc3R5bGU9XFxcImZpbGw6cmVkXFxcIi8+XCIsXG5cdH0sXG5cdFwiUGxhaW4gdGV4dFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMi4wMzgsMkg2LjM3NWExLjc1NSwxLjc1NSwwLDAsMC0xLjc1LDEuNzV2MjQuNUExLjc1NSwxLjc1NSwwLDAsMCw2LjM3NSwzMGgxOS4yNWExLjc1NSwxLjc1NSwwLDAsMCwxLjc1LTEuNzVWNi44NTZabS41MjUsMi44NDQsMS42NjMsMS41MzFIMjIuNTYzWk02LjM3NSwyOC4yNVYzLjc1SDIwLjgxM1Y4LjEyNWg0LjgxM1YyOC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTUuMDk3XFxcIiB3aWR0aD1cXFwiMTMuMDc2XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMjQuNDM5XFxcIiB3aWR0aD1cXFwiOS43NjJcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxOS43NjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjEwLjIzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlBsYW50VU1MXCI6IHtcblx0XHRjb2xvdXI6IFwiI0ExMUY0MVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTMzLjQyM1xcXCIgeTE9XFxcIi0yNTAuOTExXFxcIiB4Mj1cXFwiLTMzLjM1M1xcXCIgeTI9XFxcIi0yNTAuODU4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDM3LjEzNCwgMjYuMDAxLCAxMy41NzUsIC0xOS4zODcsIDQ2NzMuNDczLCAtMzk4Mi4wMTkpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzY3Njc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMzIuMTA3XFxcIiB5MT1cXFwiLTI0Mi41NjNcXFwiIHgyPVxcXCItMzIuMDI4XFxcIiB5Mj1cXFwiLTI0Mi41ODZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODEuMDgxLCA1Ni43NzQsIDE3LjMwNiwgLTI0LjcxNSwgNjgwNC4wMjEsIC00MTQ5LjY0NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwMDc5YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0zMy4yODJcXFwiIHkxPVxcXCItMjQzLjQyM1xcXCIgeDI9XFxcIi0zMy4yMjRcXFwiIHkyPVxcXCItMjQzLjQ1NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg2MC4wMDMsIDQyLjAxNSwgMzQuMTg0LCAtNDguODIsIDEwMzQzLjAwNSwgLTEwNDY5LjA4NClcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTIuMzU2XFxcIiB5MT1cXFwiMjYuMjY4XFxcIiB4Mj1cXFwiMTQuMDExXFxcIiB5Mj1cXFwiMjYuMjY4XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTk1OTU5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzZlNmU2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNDJcXFwiIHN0b3AtY29sb3I9XFxcIiM4YzhjOGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTRhNGE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3N1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I1YjViNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NjVcXFwiIHN0b3AtY29sb3I9XFxcIiNiZmJmYmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMmMyYzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIjE4LjI5MVxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjE5Ljk0NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCIyNC40NFxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjI2LjA5NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wbGFudHVtbDwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC4zMDUgMTcuODcyIDI3LjE2IDIyLjQxOCAyMS43MiAyNS40OTMgMTQuODYxIDIwLjk5OSAyMC4zMDUgMTcuODcyXFxcIiBzdHlsZT1cXFwiZmlsbDojMWMwYTQyXFxcIi8+PHBhdGggZD1cXFwiTTIxLjcxNiwyNS42MTlsLS4wNTUtLjAzNi03LjAwNS00LjU5LDUuNjUzLTMuMjQ3LDcuMDU2LDQuNjhabS02LjY1LTQuNjEzLDYuNjU4LDQuMzYyLDUuMjMxLTIuOTU3TDIwLjMsMThaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi40MDEgMTEuOTA5IDI5LjQxOCAxMy41OTIgMjcuMDcgMTUuMDg4IDI0LjIxMyAxMy4yNDcgMjYuNDAxIDExLjkwOVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNjksMTUuMjE1bC0zLjA1OC0xLjk3LDIuMzg3LTEuNDYsMy4yMjgsMS44Wm0tMi42NTQtMS45NjZMMjcuMDcsMTQuOTYsMjkuMjA4LDEzLjZsLTIuOC0xLjU2NVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQ5OCAxNy44MDcgMjEuMzU0IDIyLjM1NCAxNS45MTQgMjUuNDI5IDkuMDU1IDIwLjkzNSAxNC40OTggMTcuODA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiZDNmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjkxLDI1LjU1NGwtLjA1NS0uMDM2TDguODUsMjAuOTI5LDE0LjUsMTcuNjgxbDcuMDU2LDQuNjhaTTkuMjYsMjAuOTQxLDE1LjkxOCwyNS4zbDUuMjMxLTIuOTU3LTYuNjU0LTQuNDEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNy45OSAxNy45NjYgMTQuOTU0IDIyLjM2NiA5LjU3NyAyNS41MDQgMi4yMTggMjAuODQ5IDcuOTkgMTcuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDojYTExZjQwXFxcIi8+PHBhdGggZD1cXFwiTTkuNTc1LDI1LjYyOSwyLDIwLjgzOGw2LTMsNy4xNjQsNC41MjdaTTIuNDM2LDIwLjg2LDkuNTgsMjUuMzc4bDUuMTY4LTMuMDE2TDcuOTg0LDE4LjA4OVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuMTExIDIxLjAyMSA5LjQ0MyAyNS41MTUgOS40NDMgMjkuMDYzIDIuMTExIDI0LjMzMiAyLjExMSAyMS4wMjFcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNOS41NSwyOS4yNiwyLDI0LjM5MVYyMC44MjlMOS41NSwyNS40NTVaTTIuMjE4LDI0LjI3NGw3LjExOCw0LjU5MlYyNS41NzVMMi4yMTgsMjEuMjEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjQuMDcxIDEzLjM0MyAyNy4wMDkgMTUuMjIyIDI3LjAwOSAyMi4xMzEgMjQuMDcxIDIwLjI0NyAyNC4wNzEgMTMuMzQzXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTI3LjA2MywyMi4yMjlsLTMuMDQ1LTEuOTUzVjEzLjI0NWwzLjA0NSwxLjk0N1ptLTIuOTM4LTIuMDEyLDIuODMxLDEuODE1VjE1LjI1MWwtMi44MzEtMS44MVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjE0OSAyMi41MjYgMjcuMTQ5IDE1LjE5NCAyOS41MTQgMTMuNzc1IDI5LjUxNCAyOS4xNDkgMjguMzMxIDI5LjE0OSA5LjY0NiAyOS4xNDkgOS42NDYgMjUuNjAxIDE1LjA4NiAyMi41MjYgMTUuNzg1IDI1LjYwMSAxNS43OTYgMjUuNjAxIDIxLjQ3MiAyMi41MjYgMjEuODkxIDI1LjYwMSAyMS45NDUgMjUuNjAxIDI3LjE0OSAyMi41MjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjIxLDI5LjI1Nkg5LjUzOVYyNS41MzhsNS42Mi0zLjE3Ny43LDMuMDgzLDUuNy0zLjA4Ny40MjIsMy4xLDUuMDYxLTIuOTkxVjE1LjEzM2wyLjU4LTEuNTQ4Wk05Ljc1MywyOS4wNDFIMjkuNDA3VjEzLjk2NGwtMi4xNTEsMS4yOXY3LjMzMmwtLjA1My4wMzEtNS4yMjksMy4wOUgyMS44bC0uNDExLTMuMDE0LTUuNTY0LDMuMDE0SDE1LjdsLS42ODYtMy4wMTgtNS4yNiwyLjk3M1pcXFwiLz48cmVjdCB4PVxcXCIxMi4zNTZcXFwiIHk9XFxcIjI1LjQ0XFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEzLjgsMjcuMkgxMi41N2EuMzIyLjMyMiwwLDAsMS0uMzIyLS4zMjJWMjUuNjU1YS4zMjIuMzIyLDAsMCwxLC4zMjItLjMyMkgxMy44YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDEzLjgsMjcuMlpNMTIuNTcsMjUuNTQ3YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3SDEzLjhhLjEwOC4xMDgsMCwwLDAsLjEwNy0uMTA3VjI1LjY1NWEuMTA4LjEwOCwwLDAsMC0uMTA3LS4xMDdaXFxcIi8+PHJlY3QgeD1cXFwiMTguMjkxXFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNzMyLDI3LjEwNkgxOC41MDVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMTkuNzMyLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxyZWN0IHg9XFxcIjI0LjQ0XFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjUuODgxLDI3LjEwNkgyNC42NTVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMjUuODgxLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4yMTUsMTEuMjNjLS4wNTIuMDY5LS40MTctLjI2Mi0uNjUzLS41MjZhNC40MDgsNC40MDgsMCwwLDEtLjUxNi0uNzNBMi42LDIuNiwwLDAsMSwyNS43LDkuMmEyLjM1OCwyLjM1OCwwLDAsMS0uMDUyLS42ODIsMi45NTksMi45NTksMCwwLDEsLjEyOS0uNzQ5LDMuMTQyLDMuMTQyLDAsMCwxLC43ODctMS4yMDcsMTUuNTMyLDE1LjUzMiwwLDAsMCwxLjI4My0xLjQsMy4wNjIsMy4wNjIsMCwwLDAsLjQ3OS0uOTI3LDMuOTc5LDMuOTc5LDAsMCwwLC4xNTEtLjg1NWMuMDE5LS4zNjQtLjAyNS0uNTkzLjAyMy0uNjEzcy4yMTUuMjc0LjI4Ny41NjRhMy4xNjcsMy4xNjcsMCwwLDEtLjQ1OCwyLjEsNi45LDYuOSwwLDAsMS0xLjA5NCwxLjQ0OCwyLjgsMi44LDAsMCwwLS44NDksMS4yMzRBMi40NjYsMi40NjYsMCwwLDAsMjYuMyw4LjhhMy40NjUsMy40NjUsMCwwLDAsLjQ3NiwxLjU0MkMyNy4wNjQsMTAuOTE0LDI3LjI1NiwxMS4xNzUsMjcuMjE1LDExLjIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhMmQyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4xOTMsMTEuMjY2Yy0uMTI0LDAtLjQ5Mi0uMzY1LS42NTEtLjU0NGE0LjQ3OCw0LjQ3OCwwLDAsMS0uNTItLjczNCwyLjYyOCwyLjYyOCwwLDAsMS0uMzQ2LS43ODEsMi4zNzUsMi4zNzUsMCwwLDEtLjA1My0uNjksMi45NzgsMi45NzgsMCwwLDEsLjEzLS43NTYsMy4yMDgsMy4yMDgsMCwwLDEsLjc5My0xLjIxNmMuMjk0LS4zMzEuNS0uNTI4LjY1OS0uNjg2YTQuMzkzLDQuMzkzLDAsMCwwLC42MjItLjcxMSwzLjA1MiwzLjA1MiwwLDAsMCwuNDc2LS45MTksMy45NTEsMy45NTEsMCwwLDAsLjE1LS44NDljLjAwOC0uMTU5LDAtLjI5NCwwLS4zOTMsMC0uMTU5LS4wMDYtLjIyNS4wMzgtLjI0M2EuMDUuMDUsMCwwLDEsLjA0MywwLDEuMjI2LDEuMjI2LDAsMCwxLC4yOC41NzksMy4xNjcsMy4xNjcsMCwwLDEtLjQ2LDIuMTIxLDYuOTI4LDYuOTI4LDAsMCwxLTEuMSwxLjQ1M2MtLjA1NS4wNi0uMTA5LjExNi0uMTYyLjE3MWEyLjMsMi4zLDAsMCwwLS42ODEsMS4wNTIsMi40NywyLjQ3LDAsMCwwLS4wODIuNjczLDMuNDU4LDMuNDU4LDAsMCwwLC40NzMsMS41M2MuMTE0LjIzMS4yMTUuNDE1LjI4OS41NDkuMTI5LjIzNS4xNzguMzIzLjE0Mi4zNjloMGEuMDUxLjA1MSwwLDAsMS0uMDQuMDJaTTI4LjUxMiwyLjhhLjg2My44NjMsMCwwLDAsMCwuMTljMCwuMS4wMDcuMjM2LDAsLjRhNC4wMjEsNC4wMjEsMCwwLDEtLjE1Mi44NjEsMy4xMDYsMy4xMDYsMCwwLDEtLjQ4My45MzQsNC40MzcsNC40MzcsMCwwLDEtLjYyOS43MTljLS4xNjIuMTU4LS4zNjQuMzU0LS42NTcuNjgzYTMuMTY4LDMuMTY4LDAsMCwwLS43ODIsMS4yLDIuOTMzLDIuOTMzLDAsMCwwLS4xMjguNzQzLDIuMzI1LDIuMzI1LDAsMCwwLC4wNTIuNjc1LDIuNTksMi41OSwwLDAsMCwuMzQxLjc2Nyw0LjQyMiw0LjQyMiwwLDAsMCwuNTEzLjcyNSwyLjAzNSwyLjAzNSwwLDAsMCwuNjExLjUyNiwxLjE4MywxLjE4MywwLDAsMC0uMTQ3LS4zMWMtLjA3NC0uMTM0LS4xNzUtLjMxOC0uMjktLjU1MUEzLjUsMy41LDAsMCwxLDI2LjI3OCw4LjhhMi41MywyLjUzLDAsMCwxLC4wODQtLjY4OCwyLjM3NSwyLjM3NSwwLDAsMSwuNjk0LTEuMDc1Yy4wNTItLjA1NS4xMDYtLjExMS4xNjEtLjE3MWE2Ljg3OSw2Ljg3OSwwLDAsMCwxLjA5LTEuNDQyLDMuMTE5LDMuMTE5LDAsMCwwLC40NTYtMi4wODNBMS4yODEsMS4yODEsMCwwLDAsMjguNTEyLDIuOFpcXFwiLz48cGF0aCBkPVxcXCJNMjkuOTcyLDYuMDg3Yy0uMDE5LS4wODgtLjQzMi0uMDQtLjc2Ni4wNzNhMi42LDIuNiwwLDAsMC0xLjA1OS43MjIsMi44LDIuOCwwLDAsMC0uOTE2LDEuODU1LDIuOTcyLDIuOTcyLDAsMCwwLC4yNTgsMS4wNmMuMjIxLjU3Mi40NTUuNzczLjQ0NCwxLjIyNS0uMDA3LjMtLjExNC40ODQtLjA0OC41NDlzLjMxNC0uMS40NjItLjMxM2ExLjgsMS44LDAsMCwwLC4yNTktMS4wMjJjLS4wNDYtLjgxNS0uNi0xLjAxNS0uNjA4LTEuOGExLjg1OCwxLjg1OCwwLDAsMSwuMTI5LS42NzZDMjguNTcsNi41MDksMzAuMDA4LDYuMjUyLDI5Ljk3Miw2LjA4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYTJkMmVcXFwiLz48cGF0aCBkPVxcXCJNMjcuOTM0LDExLjYxN2EuMDk0LjA5NCwwLDAsMS0uMDY5LS4wMjZjLS4wNDYtLjA0Ni0uMDMtLjEyMi0uMDA1LS4yMzdhMS43MTgsMS43MTgsMCwwLDAsLjA0NS0uMzMxLDEuMzc0LDEuMzc0LDAsMCwwLS4yMTQtLjcyLDUsNSwwLDAsMS0uMjI4LS40OTUsMi45OCwyLjk4LDAsMCwxLS4yNTktMS4wNywyLjgxLDIuODEsMCwwLDEsLjkyMy0xLjg3NCwyLjY0LDIuNjQsMCwwLDEsMS4wNy0uNzI5LDEuNDgyLDEuNDgyLDAsMCwxLC43NjYtLjFBLjA2NS4wNjUsMCwwLDEsMzAsNi4wODFoMGMuMDE1LjA3LS4wOTIuMTIxLS4zMDYuMjI0YTIuNzMsMi43MywwLDAsMC0xLjU0MiwxLjQ2MywxLjgyNywxLjgyNywwLDAsMC0uMTI3LjY2NywxLjY0NSwxLjY0NSwwLDAsMCwuMjkxLjg4NSwxLjg4OSwxLjg4OSwwLDAsMSwuMzE3LjkxNCwxLjgxNCwxLjgxNCwwLDAsMS0uMjY0LDEuMDM5LjgwOS44MDksMCwwLDEtLjQyMS4zNDJabTEuODg5LTUuNTQ5YTIuMTE3LDIuMTE3LDAsMCwwLS42MDguMTE3LDIuNTg4LDIuNTg4LDAsMCwwLTEuMDQ4LjcxNSwyLjc2NCwyLjc2NCwwLDAsMC0uOTA5LDEuODM3LDIuOTM1LDIuOTM1LDAsMCwwLC4yNTYsMS4wNSw0Ljk1NSw0Ljk1NSwwLDAsMCwuMjI1LjQ5LDEuNDMzLDEuNDMzLDAsMCwxLC4yMi43NDUsMS43NjUsMS43NjUsMCwwLDEtLjA0Ny4zNDFjLS4wMTkuMDkxLS4wMzUuMTYzLS4wMDkuMTg4YS4wNDYuMDQ2LDAsMCwwLC4wMzguMDEuNzY5Ljc2OSwwLDAsMCwuMzgyLS4zMiwxLjc5MywxLjc5MywwLDAsMCwuMjU0LTEuMDA1LDEuODQ0LDEuODQ0LDAsMCwwLS4zMS0uODksMS43MTEsMS43MTEsMCwwLDEtLjMtLjkxMSwxLjg3NywxLjg3NywwLDAsMSwuMTMtLjY4NkEyLjc3NiwyLjc3NiwwLDAsMSwyOS42Nyw2LjI1N2MuMTI2LS4wNjEuMjgzLS4xMzYuMjc3LS4xNjRsLS4wMDgtLjAwN0EuMjY0LjI2NCwwLDAsMCwyOS44MjMsNi4wNjhaXFxcIi8+XCIsXG5cdH0sXG5cdFwiUG93ZXJRdWVyeVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZmNmY2ZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0zMCwyNS41ODNIMjUuNzU3VjE1LjM3OGE4LjI3MSw4LjI3MSwwLDAsMC0uODMyLTQuMjYxQTMuMDYxLDMuMDYxLDAsMCwwLDIyLjExOCw5LjhhMy4zODMsMy4zODMsMCwwLDAtMi44MjYsMS42NjQsNi43OTEsNi43OTEsMCwwLDAtMS4xNjEsMy45ODdWMjUuNTgzSDEzLjg2OVYxNS4wMzFxMC01LjIzMS0zLjY5NC01LjIzMWEzLjMzMiwzLjMzMiwwLDAsMC0yLjgyNiwxLjU3Myw2LjkzNSw2LjkzNSwwLDAsMC0xLjEwNiw0LjA3OFYyNS41ODNIMlY2Ljg1Nkg2LjI0M1Y5LjgxOGguMDczYTYuNDg4LDYuNDg4LDAsMCwxLDUuOTA3LTMuNCw1LjU2OSw1LjU2OSwwLDAsMSwzLjM5MywxLjA3QTUuMzI4LDUuMzI4LDAsMCwxLDE3LjYsMTAuMjk0YTYuNjgzLDYuNjgzLDAsMCwxLDYuMjE4LTMuODc3UTMwLDYuNDE3LDMwLDE0LjA0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz5cIixcblx0fSxcblx0XCJQb3dlclNoZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiIzUzOTFmZVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMjMuMzI1XFxcIiB5MT1cXFwiLTExOC41NDNcXFwiIHgyPVxcXCI3LjI2XFxcIiB5Mj1cXFwiLTEwNC4xOTNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC05NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1MzkxZmVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZTZkYmZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjcuMVxcXCIgeTE9XFxcIi0xMDQuMDAyXFxcIiB4Mj1cXFwiMjMuMDAxXFxcIiB5Mj1cXFwiLTExOC4yOTJcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcG93ZXJzaGVsbDwvdGl0bGU+PHBhdGggZD1cXFwiTTMuMTc0LDI2LjU4OWExLjE1NCwxLjE1NCwwLDAsMS0uOTI4LS40MjMsMS4yMzQsMS4yMzQsMCwwLDEtLjIxLTEuMDUyTDYuMjMzLDYuNzhBMS44LDEuOCwwLDAsMSw3LjkxNCw1LjQxSDI4LjgyNmExLjE1NywxLjE1NywwLDAsMSwuOTI4LjQyMywxLjIzNSwxLjIzNSwwLDAsMSwuMjEsMS4wNTJsLTQuMiwxOC4zMzVhMS44LDEuOCwwLDAsMS0xLjY4MSwxLjM3SDMuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjkxNCw1LjY0NkgyOC44MjZhLjkxMy45MTMsMCwwLDEsLjkwOCwxLjE4N2wtNC4yLDE4LjMzNGExLjU3NSwxLjU3NSwwLDAsMS0xLjQ1MSwxLjE4N0gzLjE3NGEuOTEzLjkxMywwLDAsMS0uOTA4LTEuMTg3bDQuMi0xOC4zMzRBMS41NzQsMS41NzQsMCwwLDEsNy45MTQsNS42NDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA0LDIxLjU0NGg1LjA4NmExLjExOCwxLjExOCwwLDAsMSwwLDIuMjM0SDE2LjA0YTEuMTE4LDEuMTE4LDAsMCwxLDAtMi4yMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmM1NTkxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjMzOSwxNi41NzhhMS43NjIsMS43NjIsMCwwLDEtLjU5MS42TDkuMzA5LDIzLjk1M2ExLjIyNCwxLjIyNCwwLDAsMS0xLjQzOC0xLjk3N2w4LjUxMi02LjE2NHYtLjEyNkwxMS4wMzUsMTBhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODItMS42NzJsNi40MTgsNi44MjdBMS4xNjYsMS4xNjYsMCwwLDEsMTkuMzM5LDE2LjU3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyYzU1OTE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4zNDJhMS43NDksMS43NDksMCwwLDEtLjU5LjZMOS4wNzQsMjMuNzE4YTEuMjI1LDEuMjI1LDAsMCwxLTEuNDM5LTEuOTc3bDguNTEzLTYuMTY0VjE1LjQ1TDEwLjgsOS43NjFhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODMtMS42NzJMMTksMTQuOTE2QTEuMTYyLDEuMTYyLDAsMCwxLDE5LjEsMTYuMzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45LDIxLjQxMmg1LjA4NmExLjA1OSwxLjA1OSwwLDEsMSwwLDIuMTE4SDE1LjlhMS4wNTksMS4wNTksMCwxLDEsMC0yLjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlByb2Nlc3NpbmdcIjoge1xuXHRcdGNvbG91cjogXCIjMWM0YzcwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIjNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjI5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWM0YzcwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGMyYjQyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wcm9jZXNzaW5nbGFuZzwvdGl0bGU+PHBhdGggZD1cXFwiTTE1LjkyMiwxOS45NjJhMTMsMTMsMCwwLDEtMS42NDctLjA3N3Y1LjU1MmEyNy43NiwyNy43NiwwLDAsMSwzLjMzMi40NjFWMjlINS45NjhWMjUuOUEyNy45ODgsMjcuOTg4LDAsMCwxLDkuMywyNS40MzhWNi43MTVhMjguMjE1LDI4LjIxNSwwLDAsMS0zLjMzMS0uNDZ2LTMuMUg4Ljk1NUMxMC4xOCwzLjE1MywxMy41NDksMywxNi4yMywzYzYuMzE4LDAsOS44LDIuOTQ4LDkuOCw4QzI2LjAzMSwxNi4wMTgsMjIuMiwxOS45NjIsMTUuOTIyLDE5Ljk2MlpNMTYsNy4wNThjLS42MTMsMC0xLjE0OSwwLTEuNzIzLjAzOHY4LjYxNWE5LjY5NCw5LjY5NCwwLDAsMCwxLjQ1NS4xMTVjMy4wMjUtLjAzOCw1LjEzLTEuNzIzLDUuMTMtNC41MTlDMjAuODYyLDguNywxOS40MDcsNy4wNTgsMTYsNy4wNThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiUHJvbG9nXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VjMWMyNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTM0MS4yNVxcXCIgY3k9XFxcIi0zMzk2Ljg2NlxcXCIgcj1cXFwiMTguMjk5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xMzI3LjA3NyAzNDA1LjkzNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTgxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmJmYmZiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM2NVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VmZWZmMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NTJcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmViZmMyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgyNFxcXCIgc3RvcC1jb2xvcj1cXFwiI2FlYjBiM1xcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJiXFxcIiBjeD1cXFwiNi42NzhcXFwiIGN5PVxcXCI4NC43NFxcXCIgcj1cXFwiMTUuNTU0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xLjg4NCAtODYuMTU0KSBzY2FsZSgxLjA3MiAxLjE2NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYWZkZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDc5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWVmNWZhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIyXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2ZkZmVjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwN1xcXCIgc3RvcC1jb2xvcj1cXFwiIzlkYmJkNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzFcXFwiIHN0b3AtY29sb3I9XFxcIiM1ODhhYjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzQ1XFxcIiBzdG9wLWNvbG9yPVxcXCIjMzI2ZmE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc5OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJiNjY5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTdcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzRlNzhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTk0XFxcIiBzdG9wLWNvbG9yPVxcXCIjMDAzMTUyXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImNcXFwiIGN4PVxcXCIxMS4yNDFcXFwiIGN5PVxcXCItOS44OTdcXFwiIHI9XFxcIjE2LjU5NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgwIDIyLjYzMSkgc2NhbGUoMSAxLjA2MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ1NDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWMxYzI0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc2MDAwMFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJkXFxcIiBjeD1cXFwiMTIuMjg2XFxcIiBjeT1cXFwiMjYuMTI3XFxcIiByPVxcXCIyLjA4M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZGZlMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNzRcXFwiIHN0b3AtY29sb3I9XFxcIiNkOWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2RjZmQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2I4YmFiYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YzllOWZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODkxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzg3OTdiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNWU1ZjYxXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImVcXFwiIGN4PVxcXCIxOS4wNjRcXFwiIGN5PVxcXCIyNi4xMjdcXFwiIHI9XFxcIjIuMDgzXFxcIiB4bGluazpocmVmPVxcXCIjZFxcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZlxcXCIgY3g9XFxcIjE1LjQzNFxcXCIgY3k9XFxcIjE2LjE5MVxcXCIgcj1cXFwiMi42ODdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMCAwLjQ2MSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcHJvbG9nPC90aXRsZT48ZyBzdHlsZT1cXFwiaXNvbGF0aW9uOmlzb2xhdGVcXFwiPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNi42MDIgMTQuOTIpIHJvdGF0ZSgtNDIuMjY1KVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45MzgsNi4zMDlhOS43ODUsOS43ODUsMCwwLDAtNi41LTIuMzM5QzguNTY0LDMuOTcsMy43NzQsNy43LDMuNDA1LDE0Ljk2MWMtLjQsNy44LDQuNzUsMTIuODYyLDEyLDEyLjg2MiwxMC43MzMsMCwxNi42NzItOS43OCwxMC4wMjctMjAuMzg4LDQuNjcxLDEwLjYtLjUyNywxNy4yNzktNy4yMzYsMTcuMjc5LTUuNDQxLDAtOS42MS0zLjY1MS05LjYxLTEwLjM0NUM4LjU4Miw0LjcwOSwxNS44MjMsNC4wMzksMTkuOTM4LDYuMzA5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi43LDEwLjQxNWMtLjI5My0uOTQtLjY0NS0yLjc4OC42MzQtMy44NmEzLjcyOSwzLjcyOSwwLDAsMC0zLjg0NCwxLjUzNEE5LjE2NSw5LjE2NSwwLDAsMCwxMiw4LjEsMy43MjksMy43MjksMCwwLDAsOC4xNTIsNi41NTVjMS4zMDksMS4xLjkxLDMuMDA1LjYxNCwzLjkyM0ExMC41MTcsMTAuNTE3LDAsMCwwLDYuMSwxNy41MjRjMCwyLjE3NCwxLjQsNC42NDUsMS42NzUsNy45NTVsMS43NjgtMS41MzJhMTEuNzQzLDExLjc0MywwLDAsMCw2LjIxMiwxLjQzMywxMS43NDEsMTEuNzQxLDAsMCwwLDYuMjEyLTEuNDMzbDEuNzY5LDEuNTMyYy4yOC0zLjMxLDEuNjc1LTUuNzgxLDEuNjc1LTcuOTU1QTEwLjUxMiwxMC41MTIsMCwwLDAsMjIuNywxMC40MTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjcyMiwyNy44NjdhMS42MjEsMS42MjEsMCwxLDEsMy4yNCwwYzAsLjAxOCwwLC4wMzUsMCwuMDUzYTIuMjM0LDIuMjM0LDAsMSwwLTMuMjI4LjEyNkMxMC43MjUsMjcuOTg3LDEwLjcyMiwyNy45MjcsMTAuNzIyLDI3Ljg2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMjAuNjI5LDI3Ljg2N2ExLjYyMSwxLjYyMSwwLDEsMC0zLjI0LDBjMCwuMDE4LDAsLjAzNSwwLC4wNTNhMi4yMzQsMi4yMzQsMCwxLDEsMy4yMjguMTI2QTEuNjc4LDEuNjc4LDAsMCwwLDIwLjYyOSwyNy44NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC41MzttaXgtYmxlbmQtbW9kZTptdWx0aXBseVxcXCI+PHBhdGggZD1cXFwiTTguMzQ2LDE4LjRjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3QTEuMzU5LDEuMzU5LDAsMCwxLDYuODA5LDE4LjFhMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCw4LjM0NiwxOC40WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4wMDgsMTguNzM3Yy0uMTMyLjY2Ny0uOTcyLjg3Ny0uOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDEtLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMCwuNDQ0LDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwwLDEwLjAwOCwxOC43MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTguODMzLDIwLjI0OWMtLjEzMi42NjctLjk3MS44NzctLjk3MS44NzdBMS4zNTksMS4zNTksMCwwLDEsNy4zLDE5Ljk0NGEyLjkyOSwyLjkyOSwwLDAsMCwuNDQzLDEuNzkzQTIuOTI1LDIuOTI1LDAsMCwwLDguODMzLDIwLjI0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTAuNSwyMC41ODNjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3YTEuMzYsMS4zNiwwLDAsMS0uNTY2LTEuMTgyQTIuOTI5LDIuOTI5LDAsMCwwLDkuNCwyMi4wNzIsMi45MjcsMi45MjcsMCwwLDAsMTAuNSwyMC41ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTkuMzI4LDIyLjEyMWMtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNiwxLjM2LDAsMCwxLS41NjUtMS4xODIsMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMCw5LjMyOCwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTExLjY2NCwxOS4wN2MtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDEtLjU2NS0xLjE4MiwyLjkzLDIuOTMsMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCwxMS42NjQsMTkuMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNTM7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHlcXFwiPjxwYXRoIGQ9XFxcIk0yMy4xNTcsMTguNGMuMTMyLjY2Ny45NzEuODc3Ljk3MS44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2Ni0xLjE4MiwyLjkzLDIuOTMsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMy4xNTcsMTguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDk1LDE4LjczN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjUtMS4xODIsMi45MzEsMi45MzEsMCwwLDEtLjQ0NCwxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMSwyMS40OTUsMTguNzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi42NjksMjAuMjQ5Yy4xMzIuNjY3Ljk3MS44NzcuOTcxLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMS0uNDQzLDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwxLDIyLjY2OSwyMC4yNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjAwOCwyMC41ODNjLjEzMi42NjcuOTcxLjg3Ny45NzEuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMS4wMDgsMjAuNTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4xNzUsMjIuMTIxYy4xMzIuNjY3Ljk3Mi44NzcuOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQ0LDEuNzkzQTIuOTI3LDIuOTI3LDAsMCwxLDIyLjE3NSwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTE5LjgzOCwxOS4wN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQzLDEuNzkzQTIuOTI4LDIuOTI4LDAsMCwxLDE5LjgzOCwxOS4wN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48L2c+PGNpcmNsZSBjeD1cXFwiMTEuMzM5XFxcIiBjeT1cXFwiMTQuMDc0XFxcIiByPVxcXCIzLjgxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxjaXJjbGUgY3g9XFxcIjExLjYwM1xcXCIgY3k9XFxcIjE0LjAyN1xcXCIgcj1cXFwiMC4zNTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4xMTJcXFwiIGN5PVxcXCIxNC4wNzRcXFwiIHI9XFxcIjMuODE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuOTAzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjkwM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4zNzVcXFwiIGN5PVxcXCIxNC4wMjdcXFwiIHI9XFxcIjAuMzU3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcwNiwyMS41MmMwLTEuNDEyLDIuMTU3LTMuNDEzLDIuMTU3LTQuODg3YTIuMTU3LDIuMTU3LDAsMCwwLTQuMzEzLDBDMTMuNTUsMTguMTA3LDE1LjcwNiwyMC4xMDgsMTUuNzA2LDIxLjUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjwvZz5cIixcblx0fSxcblx0XCJQcm90b2NvbCBCdWZmZXJzXCI6IHtcblx0XHRjb2xvdXI6IFwiIzk3ZmYyN1wiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIxNS45OTYgMy4yMiAyNi45NjYgOS43IDI2Ljk1NCAyMi4zIDE2IDI4Ljc4IDUuMDM4IDIyLjQwOCA1LjAzNCA5LjYyOCAxNS45OTYgMy4yMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyLDMuOTg3LDkuMDJsMCwxNEwxNiwzMGwxMi03LjEuMDEzLTEzLjhaTTI2Ljk1NCwyMi4zLDE2LDI4Ljc4LDUuMDM4LDIyLjQwOGwwLTEyLjc4TDE2LDMuMjIsMjYuOTY2LDkuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxNzFjMWVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjU2OSAxMy42NTQgMTkuOTQ2IDE2Ljk2NCAxOS45NDMgMjQuODkgMjUuNTkgMjEuNTY1IDI1LjU2OSAxMy42NTRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZWE4ZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjI4MiAxMi4zMDMgMjUuNTY5IDEzLjY1NCAxOS45NDYgMTYuOTY0IDE5Ljk0MyAyNC44OSAxNy4zMjcgMjMuMzcgMTcuMzQ4IDE1Ljg3NSAyMy4yODIgMTIuMzAzXFxcIiBzdHlsZT1cXFwiZmlsbDojNTBiZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi41MTIgMTAuMzUgMjIuNTE0IDExLjgxNiAxNi40MTEgMTUuNDk4IDE2LjQxOCAyMy41OTcgMTQuOTk4IDI0LjQzMSAxNC45OTQgMTQuODU2IDIyLjUxMiAxMC4zNVxcXCIgc3R5bGU9XFxcImZpbGw6Izk3ZmYyN1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuMDA4IDguODcxIDIyLjUxMiAxMC4zNSAxNC45OTQgMTQuODU2IDE0Ljk5OCAyNC40MzEgMTIuMTk0IDIyLjgwMSAxMi4xODkgMTMuNDEzIDIwLjAwOCA4Ljg3MVxcXCIgc3R5bGU9XFxcImZpbGw6I2MyZmY3MlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuMjI2IDYuNjA2IDE5LjIyNiA4LjM3NCAxMS4yMSAxMy4wNzQgMTEuMjEgMjMuMTcyIDkuODA4IDIzLjk4OCA5LjgzNSAxMi4yNzcgMTkuMjI2IDYuNjA2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmYyNzRiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi4xNiA0Ljc4NCA2LjUzIDEwLjM5NCA2LjUyOSAyMi4wNzEgOS44MjcgMjMuOTg4IDkuODM1IDEyLjI3NyAxOS4yMzUgNi42MDYgMTYuMTYgNC43ODRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjVjNzdcXFwiLz5cIixcblx0fSxcblx0XCJQdWdcIjoge1xuXHRcdGNvbG91cjogXCIjNDQyODIzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUuNTE0LDEyLjg0NmMtLjA1Mi0uOTM4LjIwOS0xLjgyNS0uMjA5LTIuNTU0LTEuMDQzLTEuODI1LTMuNjQ5LTIuODY3LTguODYzLTIuODY3VjcuMzcyaDB2LjA1MmMtNS43MzUsMC04LjE4NSwxLjA0My05LjIyNywyLjg2N2E1LjYsNS42LDAsMCwwLS40NjksMi41NTQsOS41NDYsOS41NDYsMCwwLDAtLjI2MSwyLjQ1Yy4xNTYsMS4xNDcuMjYxLDIuMjk0LjQxNywzLjMzNi4xNTYuODg2LDEuNDA4LDEuNTY0LDEuNTY0LDIuNC4zMTMsMi4yNDIsMi4yOTQsMy4yODQsOC4wMjgsMy4yODR2LjI2MWgtLjF2LS4yNjFjNS4yMTMsMCw3LjQtMS4wNDMsNy43MTYtMy4yODQuMS0uODM0LDEuMTQ3LTEuNTEyLDEuMy0yLjQuMTU2LTEuMDQzLjIwOS0yLjE5LjM2NS0zLjMzNkExMS43NzQsMTEuNzc0LDAsMCwwLDI1LjUxNCwxMi44NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxMy42OGEzLjI0MSwzLjI0MSwwLDAsMSwyLjE5LDEuMTQ3Yy43My42MjYsMS45MjksMS4wNDMsMi40NSwxLjYxNmE0LjcxNSw0LjcxNSwwLDAsMSwxLjQwOCwxLjk4MSw4LjksOC45LDAsMCwxLC4zMTMsMi4yNDJjMCwuMjYxLjE1Ni4yMDkuNTczLDBhOS4wMiw5LjAyLDAsMCwwLDIuMTktMS44NzdjLS4xNTYuODg2LTEuMjUxLDEuNjY4LTEuMzU1LDIuNS0uMzEzLDIuMjQyLTIuNSwzLjMzNi03Ljg3MiwzLjMzNmguMzEzXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjUxOSwxMS45MDhjLjIwOS42NzguODg2LDMuMDI0LS40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDEsLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMCwxLjMsMS40MDgsMy40NzksMy40NzksMCwwLDAsMi41NTQtLjYyNiwyLjk1NiwyLjk1NiwwLDAsMCwuNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMC0yLjEzNy0xLjYxNkMyMS40LDExLjMzNCwxOS4zMSwxMS4xMjYsMTkuNTE5LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMi4xNzhcXFwiIGN5PVxcXCIxNC40MVxcXCIgcj1cXFwiMS45MjlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMS42NTZcXFwiIGN5PVxcXCIxMy41MjRcXFwiIHI9XFxcIjAuNTIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjIwNiwxNC4zMDZhMTcuNjgsMTcuNjgsMCwwLDEsMi43MTEsMi4zNDZjLjkzOCwxLjIuOTM4LDEuNDA4LjkzOCwxLjQwOGwtLjY3OC4zMTNhNy4xLDcuMSwwLDAsMC0yLjEzNy0yLjVjLTEuMi0uNjc4LTEuMzU1LTEuMjUxLTEuMzU1LTEuMjUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yMzUsMTMuNjhhMy42MDUsMy42MDUsMCwwLDAtMi4zNDYsMS4xNDdjLS43My42MjYtMi4wMzMsMS4wNDMtMi41LDEuNjE2YTQuODA2LDQuODA2LDAsMCwwLTEuNDYsMS45ODEsOC45LDguOSwwLDAsMC0uMzEzLDIuMjQyYzAsLjI2MS4wNTIuMzEzLS42MjYsMEE3Ljk3Miw3Ljk3MiwwLDAsMSw2LjgsMTguNzg5Yy4xNTYuODg2LDEuMjUxLDEuNjY4LDEuMzU1LDIuNS4zMTMsMi4xOSwyLjUsMy4yODQsNy44NzIsMy4yODRoLjM2NVxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4yMzksMTcuMjc3YTYuNTUyLDYuNTUyLDAsMCwwLTUuMTA5LTIuNjA3aDBhNi42MzgsNi42MzgsMCwwLDAtNS4xMDksMi42MDcsMy44NjEsMy44NjEsMCwwLDAtMS4wNDMsMy4xOGMwLDQuNjQsMS42MTYsMy4yMzIsMi43MTEsMy44MDZhNy40NjYsNy40NjYsMCwwLDAsMy4zODkuMzEzaDBhNy40LDcuNCwwLDAsMCwzLjM4OS0uMzEzYzEuMDk1LS41NzMsMi43MTEuODM0LDIuNzExLTMuODA2QTMuMzg2LDMuMzg2LDAsMCwwLDIxLjIzOSwxNy4yNzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyNiwxNS45NzRhOS41NDksOS41NDksMCwwLDEtLjQ2OSwyLjU1NGwuNTczLS4xNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRhOS41NDksOS41NDksMCwwLDAsLjQ2OSwyLjU1NGwtLjU3My0uMTU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zNTgsMTUuNDUzYy0uMjA5LS41MjEuNTczLTEuMzU1LDEuODI1LTEuMzU1czIuMDMzLjgzNCwxLjgyNSwxLjM1NS0xLjA0My42NzgtMS44MjUuNjc4QzE1LjM0OCwxNi4xMywxNC41NjYsMTUuOTc0LDE0LjM1OCwxNS40NTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRjMC0uMS43My0uMSwxLjE0Ny0uMzY1LDAsMC0uODM0LjI2MS0uOTkxLjE1NmEuNjU2LjY1NiwwLDAsMS0uMjA5LS4zNjUuNjU2LjY1NiwwLDAsMS0uMjA5LjM2NWMtLjE1Ni4xLTEuMDk1LS4xNTYtMS4wOTUtLjE1NmE4LjA1OCw4LjA1OCwwLDAsMSwxLjIuMzY1di40MTdhMTAuNDkyLDEwLjQ5MiwwLDAsMCwuMSwyLjAzM2MuMTU2LjIwOS4xLTEuNDYuMS0yLjAzM0ExLjMsMS4zLDAsMCwxLDE2LjE4MiwxNS45NzRaXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxOC45NDVhMy4zNSwzLjM1LDAsMCwxLDEuNjE2LjY3OCwzLjEyMSwzLjEyMSwwLDAsMC0xLjYxNi0xLjA5NSwzLjAzNiwzLjAzNiwwLDAsMC0xLjgyNSwxLjJBMy4zMTIsMy4zMTIsMCwwLDEsMTYuMTgyLDE4Ljk0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjRhNDFcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDc4LDIyLjhhOC45LDguOSwwLDAsMS0yLjQtLjQ2OWMtLjE1Ni0uMDUyLS4zMTMuMDUyLS40NjksMGE2LjE3Miw2LjE3MiwwLDAsMS0zLjE4LTIuMTM3di4yMDljMCw0LjY0LDEuNjE2LDMuMjMyLDIuNzExLDMuODA2YTcuNDY2LDcuNDY2LDAsMCwwLDMuMzg5LjMxM2gwYTcuNCw3LjQsMCwwLDAsMy4zODktLjMxM2MxLjA5NS0uNTczLDIuNzExLjgzNCwyLjcxMS0zLjgwNnYtLjQ2OUE1LjkxNCw1LjkxNCwwLDAsMSwxOSwyMi4yODJjLS4xNTYuMDUyLS40MTctLjA1Mi0uNTczLS4wNTJBNy4wNDUsNy4wNDUsMCwwLDEsMTYuMDc4LDIyLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTEzLjk0MSwyMC4zcy0uNTczLDEuNjY4LS4xNTYsMi40bC0uNTIxLS4yMDlBMTUuNDMzLDE1LjQzMywwLDAsMSwxMy45NDEsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTguMzIsMjAuM3MuNTczLDEuNjY4LjE1NiwyLjRMMTksMjIuNDkxQTEwLjYyOSwxMC42MjksMCwwLDAsMTguMzIsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTIuNTg1LDExLjkwOGMtLjIwOS42NzgtLjg4NiwzLjAyNC40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDAtLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMS0xLjMsMS40MDhBMy40NzksMy40NzksMCwwLDEsOC4yNTgsMTYuNWEyLjk1NiwyLjk1NiwwLDAsMS0uNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMSwyLjEzNy0xLjYxNkMxMC43MDksMTEuMzM0LDEyLjc5NCwxMS4xMjYsMTIuNTg1LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTMsMTguNTI4YTMuMzkzLDMuMzkzLDAsMCwxLDIuNDUsMi44Njd2LS4xYTMuMDUxLDMuMDUxLDAsMCwwLTIuNDUtMi45MTksMywzLDAsMCwwLTIuNDUsMi45MTl2LjFBMy40NjMsMy40NjMsMCwwLDEsMTYuMTMsMTguNTI4WlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNi41NDZcXFwiIGN5PVxcXCIxNS4xMzhcXFwiIHJ4PVxcXCIwLjE1NlxcXCIgcnk9XFxcIjAuMzEzXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy4yNTYgNC42MTEpIHJvdGF0ZSgtMTQuNDYpXFxcIiBzdHlsZT1cXFwiZmlsbDojMzMxNzEyXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE1LjYwOVxcXCIgY3k9XFxcIjE1LjE0NlxcXCIgcng9XFxcIjAuMzEzXFxcIiByeT1cXFwiMC4xNTZcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjQ4MiAyNS41NjcpIHJvdGF0ZSgtNzIuNzY1KVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzMTcxMlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjAzMVxcXCIgY3k9XFxcIjE0LjQxXFxcIiByPVxcXCIxLjkyOVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjU1MlxcXCIgY3k9XFxcIjEzLjUyNFxcXCIgcj1cXFwiMC41MjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYuNywxNC40MXMtLjUyMS4yMDktLjYyNi4yNjFhMi40OTIsMi40OTIsMCwwLDEtLjYyNi0uMjYxSDE2LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y0YTQxXFxcIi8+PHBhdGggZD1cXFwiTTEyLjksMTQuMzA2YTE3LjY4LDE3LjY4LDAsMCwwLTIuNzExLDIuMzQ2Yy0uOTM4LDEuMi0uOTM4LDEuNDA4LS45MzgsMS40MDhsLjY3OC4zMTNhNy4xLDcuMSwwLDAsMSwyLjEzNy0yLjVjMS4yLS42NzgsMS4zNTUtMS4yNTEsMS4zNTUtMS4yNTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTkuMDkyLDEwLjgxM2E0LjUxOSw0LjUxOSwwLDAsMS0xLjkyOSwyLjI5NEEyLjE5LDIuMTksMCwwLDAsOS4wOTIsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi45MDgsMTAuODEzYTQuNTE5LDQuNTE5LDAsMCwwLDEuOTI5LDIuMjk0QTIuMTksMi4xOSwwLDAsMSwyMi45MDgsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zMSwxMy44MzZhNS4xNiw1LjE2LDAsMCwwLTMuMDc2LTEuNDA4aC4xNTZhMy44NTIsMy44NTIsMCwwLDAtMy4wMjQsMS40MDgsNC44MzIsNC44MzIsMCwwLDEsMy4wMjQtMS4wNDNoMEE1Ljc4NSw1Ljc4NSwwLDAsMSwxOS4zMSwxMy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljc0NiwxMC45NjlhMi40NTUsMi40NTUsMCwwLDAtMS41NjQtLjkzOGguMTU2YTEuNzg2LDEuNzg2LDAsMCwwLTEuNTEyLjkzOCwyLjE4NywyLjE4NywwLDAsMSwxLjUxMi0uNjc4aDBBMS44OTQsMS44OTQsMCwwLDEsMTcuNzQ2LDEwLjk2OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTAuMDMxLDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMS0xLjc3My4yMDlIOC4wNWEzLjY4LDMuNjgsMCwwLDEtLjg4Ni0xLjUxMkEyLjI3LDIuMjcsMCwwLDAsMTAuMDMxLDE3Ljc0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjIuMTI2LDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMCwxLjc3My4yMDlIMjMuNjlhMS43NDksMS43NDksMCwwLDAsMS4wOTUtMS41MTJBMi4wMiwyLjAyLDAsMCwxLDIyLjEyNiwxNy43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTExLjIzLDEwLjcwOWE0Ljc1LDQuNzUsMCwwLDEsMi4yNDIuMWMuOTM4LjMxMy4yMDksMS41NjQuMzY1LDEuNjE2YTIuODY1LDIuODY1LDAsMCwxLDIuMjQyLS43M2MxLjc3My4xLDEuOTgxLjg4NiwyLjI0Mi43My4yNjEtLjEtLjI2MS0yLjE5LDIuNDUtMS43MiwwLDAtMi43NjMtLjczLTIuNjU5LDEuMjUxYTMuNjc1LDMuNjc1LDAsMCwwLTMuODU4LS4xUzE0LjgyNyw5LjkyNywxMS4yMywxMC43MDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUsOHMtMi40LDIuOTcyLTIuNzExLDQuMTE4Yy0uMzY1LDEuMTQ3LS42MjYsNS45NDMtLjkzOCw2LjYyMUw1Ljc1NiwxNC4wNDVsMi4wMzMtNC45WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NTYsOHMyLjQsMi45NzIsMi43MTEsNC4xMThjLjM2NSwxLjE0Ny42MjYsNS45NDMuOTM4LDYuNjIxTDI2LjQsMTQuMDQ1bC0yLjAzMy00LjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTIxLjUsOGExMS42MTcsMTEuNjE3LDAsMCwxLDMuMjg0LDQuNTg4Yy43MywyLjQ1LjQxNyw1LjQ3NC45OTEsNS44MzkuODM0LjUyMSwxLjcyLTIuNjA3LDIuMDMzLTIuOTE5LjQ2OS0uNTIxLDIuMDg1LTEuODc3LDIuMTktMi4xMzdzLTMuMjMyLTMuOTEtNC43NDQtNC42NEMyMy41ODUsNy44OTMsMjEuNCw3Ljc4OSwyMS41LDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY5LDkuM2ExNS4zNzksMTUuMzc5LDAsMCwxLDIuOTcyLDguNjU0bDEuMi0yLjQ1QTE2LjU2NCwxNi41NjQsMCwwLDAsMjMuNjksOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC41LDhhMTEuNjE3LDExLjYxNywwLDAsMC0zLjI4NCw0LjU4OGMtLjczLDIuNDUtLjQxNyw1LjQ3NC0uOTkxLDUuODM5LS44MzQuNTIxLTEuNzItMi42MDctMi4wMzMtMi45MTktLjQ2OS0uNTIxLTIuMDg1LTEuODc3LTIuMTktMi4xMzdzMy4yMzItMy45MSw0Ljc0NC00LjY0QzguNDE1LDcuODkzLDEwLjYsNy43ODksMTAuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk04LjMxLDkuM2ExNS4zNzksMTUuMzc5LDAsMCwwLTIuOTcyLDguNjU0TDQuMTQsMTUuNUExNi41NjQsMTYuNTY0LDAsMCwxLDguMzEsOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk02LjY0MiwxOC4wMDdhNC4xMTgsNC4xMTgsMCwwLDAsLjU3MywxLjU2NGMuMzY1LjM2NS4xLS4zMTMuMS0uMzEzcy0uMzY1LS4yMDktLjMxMy0xLjcyUzYuNjQyLDE4LjAwNyw2LjY0MiwxOC4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTI1LjQxLDE4LjAwN2E0LjExOCw0LjExOCwwLDAsMS0uNTczLDEuNTY0Yy0uMzY1LjM2NS0uMS0uMzEzLS4xLS4zMTNzLjM2NS0uMjA5LjMxMy0xLjcyQzI0Ljk5MywxNi4wNzgsMjUuNDEsMTguMDA3LDI1LjQxLDE4LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMy44ODlcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTIuODQ2XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjUzM1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxOC4xNjRcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTkuMTU0XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjE5LjQ2N1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz5cIixcblx0fSxcblx0XCJQdXBwZXRcIjoge1xuXHRcdGNvbG91cjogXCIjZmZhZTFhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUuMDg5LDExLjgyMkgxOC43TDE1LjI2Nyw4LjM4OFYySDYuOTExdjguMzU3SDEzLjNsMy40MjIsMy40MjJoMHY0LjQzMWgwbC0zLjQzNCwzLjQzNEg2LjkxMVYzMGg4LjM1N1YyMy42MTJoMEwxOC43LDIwLjE3OGg2LjM4OFpNOS43LDQuNzg2aDIuNzg2VjcuNTcxSDkuN1pNMTIuNDgyLDI3LjJIOS43VjI0LjQxN2gyLjc4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmFlMWFcXFwiLz5cIixcblx0fSxcblx0XCJQdXJlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzE2MTcxYlwiLFxuXHRcdGljb246IFwiPHJlY3Qgd2lkdGg9XFxcIjMyXFxcIiBoZWlnaHQ9XFxcIjMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMTYxNzFiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS44OTIgMjIuMTM2IDE5LjcwNiAyMC4wOTUgMTAuMTA3IDIwLjA5NSAxMi4yOTMgMjIuMTM2IDIxLjg5MiAyMi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjI5MyAxNC45OCAxMC4xMDcgMTcuMDIxIDE5LjcwNiAxNy4wMjEgMjEuODkyIDE0Ljk4IDEyLjI5MyAxNC45OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuODkxIDExLjkwNiAxOS43MDYgOS44NjQgMTAuMTA3IDkuODY0IDEyLjI5MyAxMS45MDYgMjEuODkxIDExLjkwNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjEsMTMuOTI2LDcuNjUyLDEyLjQ4MiwyLjMsMTcuODM2YTEuMDIzLDEuMDIzLDAsMCwwLDAsMS40NDNsNS4zNTQsNS4zNTRMOS4xLDIzLjE5LDQuNDY0LDE4LjU1OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNywxMi43MjEsMjQuMzQ4LDcuMzY2LDIyLjksOC44MWw0LjYzLDQuNjMyTDIyLjksMTguMDc1bDEuNDQzLDEuNDQzTDI5LjcsMTQuMTY1YTEuMDIxLDEuMDIxLDAsMCwwLDAtMS40NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiUHl0aG9uXCI6IHtcblx0XHRjb2xvdXI6IFwiIzM2NzFBMVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzMy4yNjhcXFwiIHkxPVxcXCItMjAyLjkxXFxcIiB4Mj1cXFwiLTEzMy4xOThcXFwiIHkyPVxcXCItMjAyLjg0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MjQzLjA2MSAzODUxOS4xNykgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMzODdlYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzNjY5OTRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0xMzMuNTc1XFxcIiB5MT1cXFwiLTIwMy4yMDNcXFwiIHgyPVxcXCItMTMzLjQ5NVxcXCIgeTI9XFxcIi0yMDMuMTMzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MzA5LjA2MSAzODU4My40Mikgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmUwNTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmMzMzFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3B5dGhvbjwvdGl0bGU+PHBhdGggZD1cXFwiTTE1Ljg4NSwyLjFjLTcuMSwwLTYuNjUxLDMuMDctNi42NTEsMy4wN1Y4LjM2aDYuNzUydjFINi41NDVTMiw4LjgsMiwxNi4wMDVzNC4wMTMsNi45MTIsNC4wMTMsNi45MTJIOC4zM1YxOS41NTZzLS4xMy00LjAxMywzLjktNC4wMTNoNi43NjJzMy43NzIuMDYsMy43NzItMy42NTJWNS44cy41NzItMy43MTItNi44NDItMy43MTJoMFpNMTIuMTUzLDQuMjM3YTEuMjE0LDEuMjE0LDAsMSwxLTEuMTgzLDEuMjQ0di0uMDJhMS4yMTQsMS4yMTQsMCwwLDEsMS4yMTQtMS4yMTRoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDg1LDI5LjkxYzcuMSwwLDYuNjUxLTMuMDgsNi42NTEtMy4wOFYyMy42NUgxNS45ODV2LTFoOS40N1MzMCwyMy4xNTgsMzAsMTUuOTk1cy00LjAxMy02LjkxMi00LjAxMy02LjkxMkgyMy42NFYxMi40cy4xMyw0LjAxMy0zLjksNC4wMTNIMTIuOTc1UzkuMiwxNi4zNTYsOS4yLDIwLjA2OFYyNi4ycy0uNTcyLDMuNzEyLDYuODQyLDMuNzEyaC4wNFptMy43MzItMi4xNDdBMS4yMTQsMS4yMTQsMCwxLDEsMjEsMjYuNTE5di4wM2ExLjIxNCwxLjIxNCwwLDAsMS0xLjIxNCwxLjIxNGguMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJRIChrZGIrIGRhdGFiYXNlKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMxZTc4YjNcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC4wOTIsMjlWMTkuNjgyQTYuOTUzLDYuOTUzLDAsMCwxLDE3LjcsMjEuNjQ1YTYuNzQzLDYuNzQzLDAsMCwxLTMuMDg5LjcyNEE2LjU1Nyw2LjU1NywwLDAsMSw5LjQxMywyMCwxMS4wODEsMTEuMDgxLDAsMCwxLDcsMTIuNDc1LDEwLjAzMywxMC4wMzMsMCwwLDEsOS4yNjQsNS41LDcuMjUxLDcuMjUxLDAsMCwxLDE0Ljg3NCwzYTYuMjY2LDYuMjY2LDAsMCwxLDMuMi43ODUsNy4zMjksNy4zMjksMCwwLDEsMi40LDIuMzczVjMuNDE5SDI1VjI5Wm0uMTU3LTE2LjU0MmE2LjQ5Miw2LjQ5MiwwLDAsMC0xLjE2LTQuMjMyLDMuNjM0LDMuNjM0LDAsMCwwLTIuOTA1LTEuMzg3LDMuNzQyLDMuNzQyLDAsMCwwLTIuOTc1LDEuNDEzLDYuODgxLDYuODgxLDAsMCwwLTEuMiw0LjQ4NSw2Ljc2Nyw2Ljc2NywwLDAsMCwxLjE1Miw0LjQwNkEzLjU5MywzLjU5MywwLDAsMCwxNi4wMDksMTguNWEzLjc4NiwzLjc4NiwwLDAsMCwyLjk2Ni0xLjUxOEE2Ljg4OSw2Ljg4OSwwLDAsMCwyMC4yNDksMTIuNDU4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlNzhiM1xcXCIvPlwiLFxuXHR9LFxuXHRcIlEjXCI6IHtcblx0XHRjb2xvdXI6IFwiIzMzMzNjY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE5LjQ1MSw2LjIxOGgyLjYzOFY4Ljg1NmgyLjYzN1Y2LjIxOGgyLjYzN1Y4Ljg1NkgzMFYxMS41SDI3LjM2NHYyLjYzNkgzMFYxNi43N0gyNy4zNjR2Mi42MzdIMjQuNzI3VjE2Ljc2OUgyMi4wOTFsMCwyLjYzN0gxOS40NTNWMTYuNzY4SDE2LjgxNVYxNC4xMjdoMi42MzhWMTEuNUgxNi44MTVWOC44NTNoMi42MzlabTIuNjM4LDcuOTE0aDIuNjM3VjExLjVIMjIuMDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4wMTgsMjEuNTI0YTExLjQzNiwxMS40MzYsMCwwLDAsMS41NzItNi4xOTIsMTAuODc3LDEwLjg3NywwLDAsMC0xLjg1OC02LjZBNS44ODksNS44ODksMCwwLDAsOC44MDgsNi4xNTNhNS45MjEsNS45MjEsMCwwLDAtNC45NCwyLjU4MUExMC44NDIsMTAuODQyLDAsMCwwLDIsMTUuMzMzYTEwLjg1MywxMC44NTMsMCwwLDAsMS44NjgsNi41OTIsNS45MTgsNS45MTgsMCwwLDAsNC45NDEsMi41ODgsNS43NDMsNS43NDMsMCwwLDAsMy4yNi0uOTg3bDIuMzA2LDIuMzIxLDEuNTc3LTIuNFptLTUuMTctMS4yMTgsMS4xMTcsMS4xMjFhMy4yMjksMy4yMjksMCwwLDEtMS4xNzQuMjE3LDMuMzM1LDMuMzM1LDAsMCwxLTIuODM3LTEuNTkzLDguMTI1LDguMTI1LDAsMCwxLTEuMTgtNC43MTksOC4xLDguMSwwLDAsMSwxLjE4NC00LjcyNCwzLjM3MiwzLjM3MiwwLDAsMSwyLjg3LTEuNTg4LDMuMzEsMy4zMSwwLDAsMSwyLjgxOSwxLjU4NSw4LjE3OCw4LjE3OCwwLDAsMSwxLjE3Miw0LjcyNiw5LjExMyw5LjExMywwLDAsMS0uODMzLDQuMTVsLTEuNTYtMS41NzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNjXFxcIi8+XCIsXG5cdH0sXG5cdFwiUU1MXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQxY2Q1MlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI3LjMsNUg1Ljg4NkwyLDguOTU4VjI2SDI2LjExNEwzMCwyMi4wNDJWNVpNMTYuOSwyMy4wN2wtMS44MjguODUyTDEzLjUsMjEuMzMxYTMuOTY4LDMuOTY4LDAsMCwxLTEuMDgyLjEwNmMtMS44NDUsMC0zLjEyMy0uNS0zLjg1LTEuNDlhOC4wMyw4LjAzLDAsMCwxLTEuMDgyLTQuNyw4LjM1MSw4LjM1MSwwLDAsMSwxLjEtNC43NzMsNC4zNzksNC4zNzksMCwwLDEsMy44MzMtMS41NjFjMS44MjgsMCwzLjA4Ny41MTUsMy44MzMsMS41NDRhOC4zNTEsOC4zNTEsMCwwLDEsMS4xLDQuNzczLDEwLjgwOSwxMC44MDksMCwwLDEtLjQ1MiwzLjQ0LDMuOSwzLjksMCwwLDEtMS40NzMsMlptNS44NDgtMS42N2EyLjczNSwyLjczNSwwLDAsMS0yLjE2OC0uNjkyQTQuMTkyLDQuMTkyLDAsMCwxLDIwLDE4LjFWMTRIMTlWMTJoMVY5aDJ2M2gydjJIMjJ2My45YTMuOTA3LDMuOTA3LDAsMCwwLC4xNjgsMS40MzdjLjExMi4yMzEuMzkzLjM1NS44Ni4zNTVsMS41MzMtLjA1My4wOTMsMS41NDRBMTIuNTE5LDEyLjUxOSwwLDAsMSwyMi43NDgsMjEuNFpNMTIuNDE2LDEwLjYxNGEyLjQsMi40LDAsMCwwLTIuMjg5LDEuMSw3LjY1Nyw3LjY1NywwLDAsMC0uNiwzLjUxMyw3LjEzMSw3LjEzMSwwLDAsMCwuNiwzLjQ0MkEyLjQ0LDIuNDQsMCwwLDAsMTIuNDMzLDE5LjdhMi40MTcsMi40MTcsMCwwLDAsMi4yODktMS4wMTEsNy4zNDMsNy4zNDMsMCwwLDAsLjU4Ni0zLjQ0Miw3LjY5Miw3LjY5MiwwLDAsMC0uNi0zLjUzMUEyLjQsMi40LDAsMCwwLDEyLjQxNiwxMC42MTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDFjZDUyXFxcIi8+XCIsXG5cdH0sXG5cdFwiUlwiOiB7XG5cdFx0Y29sb3VyOiBcIiMyNzZkYzNcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzQuODExXFxcIiB5MT1cXFwiLTEwMy4yODRcXFwiIHgyPVxcXCItMTM0Ljc3MlxcXCIgeTI9XFxcIi0xMDMuMzIzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDcyMS4wOTQsIDAsIDAsIC00ODIuOTM3LCA5NzIxMy41OTUsIC00OTg3NC41MTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2JjZWQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjODQ4MzhiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMTM1LjM3OFxcXCIgeTE9XFxcIi0xMDIuOTg1XFxcIiB4Mj1cXFwiLTEzNS4zMzlcXFwiIHkyPVxcXCItMTAzLjAyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgzOTgsIDAsIDAsIC00MDYuMTI0LCA1Mzg5MywgLTQxODEyLjgzNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyNzZkYzNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNjVjYWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3I8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyMy45NTZjLTcuNzMyLDAtMTQtNC4yLTE0LTkuMzc2UzguMjY4LDUuMiwxNiw1LjIsMzAsOS40LDMwLDE0LjU4LDIzLjczMiwyMy45NTYsMTYsMjMuOTU2Wk0xOC4xNDMsOC44N0MxMi4yNjYsOC44Nyw3LjUsMTEuNzQsNy41LDE1LjI4czQuNzY0LDYuNDEsMTAuNjQxLDYuNDEsMTAuMjE0LTEuOTYyLDEwLjIxNC02LjQxUzI0LjAyLDguODcsMTguMTQzLDguODdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjMyMSwxOS43MjZhMTAuNTQ1LDEwLjU0NSwwLDAsMSwxLjM0LjUsMi41OTEsMi41OTEsMCwwLDEsLjY4LjQ4NSwxLjgzNSwxLjgzNSwwLDAsMSwuMzExLjQ0N2wzLjMzOSw1LjYzLTUuNCwwLTIuNTI0LTQuNzRhNi4xLDYuMSwwLDAsMC0uODM1LTEuMTQ1Ljg3OS44NzksMCwwLDAtLjY0MS0uMjkxSDE4LjMxMXY2LjE3M2wtNC43NzYsMFYxMS4wMjZoOS41OTFTMjcuNSwxMS4xLDI3LjUsMTUuMjYxLDIzLjMyMSwxOS43MjYsMjMuMzIxLDE5LjcyNlptLTIuMDc3LTUuMjgtMi44OTEsMHYyLjY4MWgyLjg5M2ExLjMyMywxLjMyMywwLDAsMCwxLjM0LTEuMzY0QTEuMjQ3LDEuMjQ3LDAsMCwwLDIxLjI0NCwxNC40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJSYWNrZXRcIjoge1xuXHRcdGNvbG91cjogXCIjOWYxZDIwXCIsXG5cdFx0aWNvbjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wMTYsMjQuNjQxYTE0LDE0LDAsMCwwLTE1LjgtMjEuOEMxNi45LDUuODIyLDI0LjQxMywxNS41NDksMjcuMDE2LDI0LjY0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzZTViYTlcXFwiLz48cGF0aCBkPVxcXCJNMTMuOTk1LDEwLjkzYTI0LjMsMjQuMywwLDAsMC03LjIyLTUuNDZBMTQsMTQsMCwwLDAsNS40NjMsMjUuMjE3LDM5LjU2LDM5LjU2LDAsMCwxLDEzLjk5NSwxMC45M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ZjFkMjBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTc1LDE0LjFBMzIuNjQ1LDMyLjY0NSwwLDAsMCw5LjQzLDI4LjM2NWExNC4wMTYsMTQuMDE2LDAsMCwwLDEzLjMtLjA4OUEzOC42NDIsMzguNjQyLDAsMCwwLDE2LjU3NSwxNC4xWlxcXCIgc3R5bGU9XFxcImZpbGw6IzlmMWQyMFxcXCIvPlwiLFxuXHR9LFxuXHRcIlJhem9yIEMjXCI6IHtcblx0XHRjb2xvdXI6IFwiIzM2ODgzMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIzLjg0NCwyNy42OTJhMTYuMzMyLDE2LjMzMiwwLDAsMS02LjY0NSwxLjNxLTYuMzY0LDAtMTAuMDEzLTMuMjQzYTExLjMsMTEuMywwLDAsMS0zLjY0OS04LjlBMTMuNzE2LDEzLjcxNiwwLDAsMSw3LjMyMiw2Ljk1MSwxMi43MTYsMTIuNzE2LDAsMCwxLDE2LjksMy4wMDhhMTEuNjc2LDExLjY3NiwwLDAsMSw4LjQyNSwzLjAwNiw5Ljk5NCw5Ljk5NCwwLDAsMSwzLjE0Miw3LjUzMywxMC4xODcsMTAuMTg3LDAsMCwxLTIuMzE4LDcuMTE0LDcuNTMyLDcuNTMyLDAsMCwxLTUuODE3LDIuNTQ3LDIuNjEzLDIuNjEzLDAsMCwxLTEuODQ1LS42NDIsMi4zMjMsMi4zMjMsMCwwLDEtLjc2NC0xLjYsNC45LDQuOSwwLDAsMS00LjE0OCwyLjI0Myw0LjYsNC42LDAsMCwxLTMuNTA3LTEuNDc5LDUuNzA2LDUuNzA2LDAsMCwxLTEuMzg0LTQuMDYzLDkuOTEzLDkuOTEzLDAsMCwxLDIuMi02LjM1N3EyLjItMi43NjMsNC44LTIuNzYzYTUuMDYzLDUuMDYzLDAsMCwxLDQuMjU2LDEuNzE2bC4zMTEtMS4zMzhoMi40MDVsLTIuMDgxLDkuMDhhMTAuNzE2LDEwLjcxNiwwLDAsMC0uMzUyLDIuMjQzcTAsLjk3Mi43NDQuOTcyYTQuODE5LDQuODE5LDAsMCwwLDMuODc3LTIuMDQ3LDguOTMsOC45MywwLDAsMCwxLjYyMS01LjY4MSw3Ljk4LDcuOTgsMCwwLDAtMi42NzUtNi4xNzUsOS44ODcsOS44ODcsMCwwLDAtNi45MTktMi40MzJBMTAuNiwxMC42LDAsMCwwLDguNzEzLDguMzUyYTEyLjA2NiwxMi4wNjYsMCwwLDAtMy4yLDguNDk1LDkuNTYxLDkuNTYxLDAsMCwwLDMuMDYsNy41NzNxMy4wNiwyLjcsOC41ODYsMi43YTEzLjc1NywxMy43NTcsMCwwLDAsNS42NzUtMS4wNTRaTTE5LjQ2NiwxMi4yNWEzLjk3NywzLjk3NywwLDAsMC0zLjYtMS43MTZxLTEuODI0LDAtMy4yNjMsMi4yM2E4LjcyNiw4LjcyNiwwLDAsMC0xLjQzOSw0LjgyNHEwLDMuNjM1LDIuOTA1LDMuNjM1QTMuNzcxLDMuNzcxLDAsMCwwLDE2LjcyLDIwLjA0YTYuMzA5LDYuMzA5LDAsMCwwLDEuNy0zLjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzY4ODMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhY3QgSlNYXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwZDhmZlwiLFxuXHRcdGljb246IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45NzRcXFwiIHI9XFxcIjIuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyMS43MDZhMjguMzg1LDI4LjM4NSwwLDAsMS04Ljg4LTEuMiwxMS4zLDExLjMsMCwwLDEtMy42NTctMS45NThBMy41NDMsMy41NDMsMCwwLDEsMiwxNS45NzRjMC0xLjY1MywxLjgxNi0zLjI3Myw0Ljg1OC00LjMzM0EyOC43NTUsMjguNzU1LDAsMCwxLDE2LDEwLjI5M2EyOC42NzQsMjguNjc0LDAsMCwxLDkuMDIyLDEuMzI0LDExLjM3NiwxMS4zNzYsMCwwLDEsMy41MzgsMS44NjZBMy4zOTEsMy4zOTEsMCwwLDEsMzAsMTUuOTc0YzAsMS43MTgtMi4wMywzLjQ1OS01LjMsNC41NDFBMjguOCwyOC44LDAsMCwxLDE2LDIxLjcwNlptMC0xMC4yMTdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC04Ljc0OSwxLjI4MmMtMi44Ljk3Ny00LjA1NSwyLjMxMy00LjA1NSwzLjIsMCwuOTI4LDEuMzQ5LDIuMzg3LDQuMzExLDMuNEEyNy4yMSwyNy4yMSwwLDAsMCwxNiwyMC41MWEyNy42LDI3LjYsMCwwLDAsOC4zMjUtMS4xM0MyNy40LDE4LjM2MSwyOC44LDE2LjksMjguOCwxNS45NzRhMi4zMjcsMi4zMjcsMCwwLDAtMS4wMS0xLjU3MywxMC4xOTQsMTAuMTk0LDAsMCwwLTMuMTYxLTEuNjU0QTI3LjQ2MiwyNy40NjIsMCwwLDAsMTYsMTEuNDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMiwyOC40NDNhMi42MzksMi42MzksMCwwLDEtMS4zMzYtLjMyOGMtMS40MzItLjgyNi0xLjkyOC0zLjIwOC0xLjMyNy02LjM3M2EyOC43NTUsMjguNzU1LDAsMCwxLDMuNC04LjU5M2gwQTI4LjY3NiwyOC42NzYsMCwwLDEsMTYuNzEsNS45OTVhMTEuMzc2LDExLjM3NiwwLDAsMSwzLjM4NC0yLjEzMywzLjM5MSwzLjM5MSwwLDAsMSwyLjg3OCwwYzEuNDg5Ljg1OCwxLjk4MiwzLjQ4NiwxLjI4Nyw2Ljg1OWEyOC44MDYsMjguODA2LDAsMCwxLTMuMzE2LDguMTMzLDI4LjM4NSwyOC4zODUsMCwwLDEtNS40NzYsNy4wOTMsMTEuMywxMS4zLDAsMCwxLTMuNTIzLDIuMTg5QTQuOTI2LDQuOTI2LDAsMCwxLDEwLjMyLDI4LjQ0M1ptMS43NzMtMTQuN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTMuMjYsOC4yMTljLS41NTMsMi45MTUtLjAyMiw0LjY2OC43NSw1LjExNC44LjQ2MywyLjc0Mi4wMjQsNS4xLTIuMDM2YTI3LjIwOSwyNy4yMDksMCwwLDAsNS4yMjctNi43OSwyNy42LDI3LjYsMCwwLDAsMy4xODEtNy43NzZjLjY1NC0zLjE3NS4wODktNS4xMTktLjcxMy01LjU4MWEyLjMyNywyLjMyNywwLDAsMC0xLjg2OC4wODlBMTAuMTk0LDEwLjE5NCwwLDAsMCwxNy41LDYuOWEyNy40NjQsMjcuNDY0LDAsMCwwLTUuNCw2Ljg0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGQ4ZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjc3LDI4LjQ1NmMtMS4zNTUsMC0zLjA3Ni0uODItNC44NjgtMi4zNjFhMjguNzU2LDI4Ljc1NiwwLDAsMS01Ljc0Ny03LjIzN2gwYTI4LjY3NiwyOC42NzYsMCwwLDEtMy4zNzQtOC40NzEsMTEuMzc2LDExLjM3NiwwLDAsMS0uMTU4LTRBMy4zOTEsMy4zOTEsMCwwLDEsOC45NjQsMy45YzEuNDg3LS44NjEsNC4wMS4wMjQsNi41ODUsMi4zMWEyOC44LDI4LjgsMCwwLDEsNS4zOSw2LjkzNCwyOC4zODQsMjguMzg0LDAsMCwxLDMuNDEsOC4yODcsMTEuMywxMS4zLDAsMCwxLC4xMzcsNC4xNDYsMy41NDMsMy41NDMsMCwwLDEtMS40OTQsMi41NTVBMi41OSwyLjU5LDAsMCwxLDIxLjY3NywyOC40NTZabS05LjU4LTEwLjJhMjcuOTQ5LDI3Ljk0OSwwLDAsMCw1LjQ5Miw2LjkyOWMyLjI0OSwxLjkzNSw0LjAzMywyLjM1MSw0LjgsMS45LjgtLjQ2NSwxLjM5LTIuMzYzLjc4Mi01LjQzNEEyNy4yMTIsMjcuMjEyLDAsMCwwLDE5LjksMTMuNzQsMjcuNiwyNy42LDAsMCwwLDE0Ljc1NSw3LjFjLTIuNDI0LTIuMTUyLTQuMzktMi42MzMtNS4xOTEtMi4xNjlhMi4zMjcsMi4zMjcsMCwwLDAtLjg1NSwxLjY2MiwxMC4xOTQsMTAuMTk0LDAsMCwwLC4xNTMsMy41NjUsMjcuNDY1LDI3LjQ2NSwwLDAsMCwzLjIzNiw4LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhY3QgVFNYXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwN2FjY1wiLFxuXHRcdGljb246IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45NzRcXFwiIHI9XFxcIjIuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyMS43MDZhMjguMzg1LDI4LjM4NSwwLDAsMS04Ljg4LTEuMiwxMS4zLDExLjMsMCwwLDEtMy42NTctMS45NThBMy41NDMsMy41NDMsMCwwLDEsMiwxNS45NzRjMC0xLjY1MywxLjgxNi0zLjI3Myw0Ljg1OC00LjMzM0EyOC43NTUsMjguNzU1LDAsMCwxLDE2LDEwLjI5M2EyOC42NzQsMjguNjc0LDAsMCwxLDkuMDIyLDEuMzI0LDExLjM3NiwxMS4zNzYsMCwwLDEsMy41MzgsMS44NjZBMy4zOTEsMy4zOTEsMCwwLDEsMzAsMTUuOTc0YzAsMS43MTgtMi4wMywzLjQ1OS01LjMsNC41NDFBMjguOCwyOC44LDAsMCwxLDE2LDIxLjcwNlptMC0xMC4yMTdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC04Ljc0OSwxLjI4MmMtMi44Ljk3Ny00LjA1NSwyLjMxMy00LjA1NSwzLjIsMCwuOTI4LDEuMzQ5LDIuMzg3LDQuMzExLDMuNEEyNy4yMSwyNy4yMSwwLDAsMCwxNiwyMC41MWEyNy42LDI3LjYsMCwwLDAsOC4zMjUtMS4xM0MyNy40LDE4LjM2MSwyOC44LDE2LjksMjguOCwxNS45NzRhMi4zMjcsMi4zMjcsMCwwLDAtMS4wMS0xLjU3MywxMC4xOTQsMTAuMTk0LDAsMCwwLTMuMTYxLTEuNjU0QTI3LjQ2MiwyNy40NjIsMCwwLDAsMTYsMTEuNDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMiwyOC40NDNhMi42MzksMi42MzksMCwwLDEtMS4zMzYtLjMyOGMtMS40MzItLjgyNi0xLjkyOC0zLjIwOC0xLjMyNy02LjM3M2EyOC43NTUsMjguNzU1LDAsMCwxLDMuNC04LjU5M2gwQTI4LjY3NiwyOC42NzYsMCwwLDEsMTYuNzEsNS45OTVhMTEuMzc2LDExLjM3NiwwLDAsMSwzLjM4NC0yLjEzMywzLjM5MSwzLjM5MSwwLDAsMSwyLjg3OCwwYzEuNDg5Ljg1OCwxLjk4MiwzLjQ4NiwxLjI4Nyw2Ljg1OWEyOC44MDYsMjguODA2LDAsMCwxLTMuMzE2LDguMTMzLDI4LjM4NSwyOC4zODUsMCwwLDEtNS40NzYsNy4wOTMsMTEuMywxMS4zLDAsMCwxLTMuNTIzLDIuMTg5QTQuOTI2LDQuOTI2LDAsMCwxLDEwLjMyLDI4LjQ0M1ptMS43NzMtMTQuN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTMuMjYsOC4yMTljLS41NTMsMi45MTUtLjAyMiw0LjY2OC43NSw1LjExNC44LjQ2MywyLjc0Mi4wMjQsNS4xLTIuMDM2YTI3LjIwOSwyNy4yMDksMCwwLDAsNS4yMjctNi43OSwyNy42LDI3LjYsMCwwLDAsMy4xODEtNy43NzZjLjY1NC0zLjE3NS4wODktNS4xMTktLjcxMy01LjU4MWEyLjMyNywyLjMyNywwLDAsMC0xLjg2OC4wODlBMTAuMTk0LDEwLjE5NCwwLDAsMCwxNy41LDYuOWEyNy40NjQsMjcuNDY0LDAsMCwwLTUuNCw2Ljg0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjc3LDI4LjQ1NmMtMS4zNTUsMC0zLjA3Ni0uODItNC44NjgtMi4zNjFhMjguNzU2LDI4Ljc1NiwwLDAsMS01Ljc0Ny03LjIzN2gwYTI4LjY3NiwyOC42NzYsMCwwLDEtMy4zNzQtOC40NzEsMTEuMzc2LDExLjM3NiwwLDAsMS0uMTU4LTRBMy4zOTEsMy4zOTEsMCwwLDEsOC45NjQsMy45YzEuNDg3LS44NjEsNC4wMS4wMjQsNi41ODUsMi4zMWEyOC44LDI4LjgsMCwwLDEsNS4zOSw2LjkzNCwyOC4zODQsMjguMzg0LDAsMCwxLDMuNDEsOC4yODcsMTEuMywxMS4zLDAsMCwxLC4xMzcsNC4xNDYsMy41NDMsMy41NDMsMCwwLDEtMS40OTQsMi41NTVBMi41OSwyLjU5LDAsMCwxLDIxLjY3NywyOC40NTZabS05LjU4LTEwLjJhMjcuOTQ5LDI3Ljk0OSwwLDAsMCw1LjQ5Miw2LjkyOWMyLjI0OSwxLjkzNSw0LjAzMywyLjM1MSw0LjgsMS45LjgtLjQ2NSwxLjM5LTIuMzYzLjc4Mi01LjQzNEEyNy4yMTIsMjcuMjEyLDAsMCwwLDE5LjksMTMuNzQsMjcuNiwyNy42LDAsMCwwLDE0Ljc1NSw3LjFjLTIuNDI0LTIuMTUyLTQuMzktMi42MzMtNS4xOTEtMi4xNjlhMi4zMjcsMi4zMjcsMCwwLDAtLjg1NSwxLjY2MiwxMC4xOTQsMTAuMTk0LDAsMCwwLC4xNTMsMy41NjUsMjcuNDY1LDI3LjQ2NSwwLDAsMCwzLjIzNiw4LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhc29uXCI6IHtcblx0XHRjb2xvdXI6IFwiI2RkNGIzOVwiLFxuXHRcdGljb246IFwiPHBvbHlsaW5lIHBvaW50cz1cXFwiMiAyIDMwIDIgMzAgMzAgMiAzMCAyIDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRiMzlcXFwiLz48cGF0aCBkPVxcXCJNOS4wNTEsMTcuNTI3cTIuNTM3LDAsNS4wNzIsMEE0Ljk0Nyw0Ljk0NywwLDAsMSwxNy4xLDE4LjVhMy4yOSwzLjI5LDAsMCwxLDEuMTI4LDIuMjY3LDQuMTE3LDQuMTE3LDAsMCwxLS43NzgsMy4wMjIsMy42LDMuNiwwLDAsMS0xLjEzNy45MDVsMi4yNDcsMy41NDktMy4wNjEsMC0xLjYtMy4wNDMtMi4xNTQsMCwwLDMuMDMySDkuMDUxVjE3LjUyN20yLjY5LDIuMTI4LDAsMy40MzgsMS45ODksMGEyLjE4NCwyLjE4NCwwLDAsMCwxLjQ2OC0uNDUyLDEuODE0LDEuODE0LDAsMCwwLC40ODItMS41NDQsMS40NjksMS40NjksMCwwLDAtLjcwNS0xLjE4LDIuNzY4LDIuNzY4LDAsMCwwLTEuNDM3LS4yNjlDMTIuOTQsMTkuNjU0LDExLjc0MSwxOS42NTUsMTEuNzQxLDE5LjY1NVptOC4zODQtMi4xM2g4LjM1djIuMTNoLTUuNjZWMjEuOGw1LjExLDB2Mi4xMTlIMjIuODJWMjYuMWg1LjgyNHYyLjE0MkgyMC4xMjVWMTcuNTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJlZ29cIjoge1xuXHRcdGNvbG91cjogXCIjNzg5MjlhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48Y2xpcFBhdGggaWQ9XFxcImFcXFwiPjxwYXRoIGQ9XFxcIk03LjA1NSwxNi4yNDFjMy40MTUtMTAuMjIsMTQuNzU5LTkuNDczLDE3LjkyNCwwbC4xLDUuODkzYTE1LjU2MiwxNS41NjIsMCwwLDAtOS4wMzYsNy4yNDZBMTcuNjQxLDE3LjY0MSwwLDAsMCw3LjAzLDIyLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48L2NsaXBQYXRoPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3JlZ288L3RpdGxlPjxwYXRoIGQ9XFxcIk03LjAzLDE2LjI0MWwyLjYtNC41NTljLTIuNDE4LS4zMTItMi42MDYtMy40MzEtLjgtOS4wNjJDMy44MDksOC44NTMsMi40MiwxMC4yMjgsNy4wMywxNi4yNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTI0Ljk3LDE2LjI0MWwtMi41OTUtNC41NTljMi40MTgtLjMxMiwyLjYwNi0zLjQzMS44LTkuMDYyQzI4LjE5MSw4Ljg1MywyOS41OCwxMC4yMjgsMjQuOTcsMTYuMjQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjA1NSwxNi4yNDFjMy40MTUtMTAuMjIsMTQuNzU5LTkuNDczLDE3LjkyNCwwbC4xLDUuODkzYTE1LjU2MiwxNS41NjIsMCwwLDAtOS4wMzYsNy4yNDZBMTcuNjQxLDE3LjY0MSwwLDAsMCw3LjAzLDIyLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48ZyBzdHlsZT1cXFwiY2xpcC1wYXRoOnVybCgjYSlcXFwiPjxyZWN0IHg9XFxcIjE2LjA1M1xcXCIgeT1cXFwiNy45NjJcXFwiIHdpZHRoPVxcXCI5LjU0OVxcXCIgaGVpZ2h0PVxcXCIyMS44OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzYzNjdcXFwiLz48cmVjdCB4PVxcXCI1LjMyMlxcXCIgeT1cXFwiNy45NjJcXFwiIHdpZHRoPVxcXCIxMC43MzJcXFwiIGhlaWdodD1cXFwiMjEuODk5XFxcIiBzdHlsZT1cXFwiZmlsbDojNzg5MjlhXFxcIi8+PC9nPjxjaXJjbGUgY3g9XFxcIjE2LjA0XFxcIiBjeT1cXFwiMTYuMjQxXFxcIiByPVxcXCIxLjE2NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2U4NGY0ZlwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTEuNDIxXFxcIiB5MT1cXFwiLTIyMS43MDVcXFwiIHgyPVxcXCIyMS41MDlcXFwiIHkyPVxcXCItMjQ4Ljc5MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgLTIxOClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlODRmNGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGI0NjQ2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NiMzkzOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcmVzY3JpcHQ8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDEwLjk3YzAtMy43MzgsMC01LjYuOTUyLTYuOTE2YTQuOTkyLDQuOTkyLDAsMCwxLDEuMS0xLjFDNS4zNjQsMiw3LjIzMywyLDEwLjk2OSwySDIxLjAzYzMuNzM4LDAsNS42MDUsMCw2LjkxNi45NTFhNC45OTIsNC45OTIsMCwwLDEsMS4xLDEuMUMzMCw1LjM2NCwzMCw3LjIzMiwzMCwxMC45N1YyMS4wM2MwLDMuNzM3LDAsNS42MDUtLjk1Miw2LjkxNmE0Ljk2Niw0Ljk2NiwwLDAsMS0xLjEsMS4xQzI2LjYzNiwzMCwyNC43NjgsMzAsMjEuMDMsMzBIMTAuOTY5Yy0zLjczNiwwLTUuNiwwLTYuOTE1LS45NTJhNC45NjYsNC45NjYsMCwwLDEtMS4xLTEuMUMyLDI2LjYzNiwyLDI0Ljc2NywyLDIxLjAzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45NzQsMTUuNTU0YTMuMzI1LDMuMzI1LDAsMSwwLTMuMzI0LTMuMzI1QTMuMzI1LDMuMzI1LDAsMCwwLDIwLjk3NCwxNS41NTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTkuMzE2LDExLjgwOWE0LjY3Niw0LjY3NiwwLDAsMSwuMjA2LTEuOTg3QTEuODg2LDEuODg2LDAsMCwxLDEwLjM0NSw5YTQuNyw0LjcsMCwwLDEsMS45ODctLjIwNWgyLjY0VjIxLjA0NWE0LjY4Niw0LjY4NiwwLDAsMS0uMTQ0LDEuNjY0LDEuODkyLDEuODkyLDAsMCwxLTEuMDIsMS4wMiw0LjcyLDQuNzIsMCwwLDEtMS42NjQuMTQzLDQuNzE3LDQuNzE3LDAsMCwxLTEuNjY0LS4xNDMsMS44OTIsMS44OTIsMCwwLDEtMS4wMi0xLjAyLDQuNzIsNC43MiwwLDAsMS0uMTQzLTEuNjY0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NlM2YzMVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LDMwQTEzLjg1OSwxMy44NTksMCwwLDEsMi4yODYsMTYsMTQuMTQ5LDE0LjE0OSwwLDAsMSw2LjMsNi4xLDEzLjUxNywxMy41MTcsMCwwLDEsMjUuNyw2LjEsMTQuMTQ5LDE0LjE0OSwwLDAsMSwyOS43MTQsMTYsMTMuODU5LDEzLjg1OSwwLDAsMSwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTNmMzFcXFwiLz48cGF0aCBkPVxcXCJNMTEuODY5LDIzLjAxNWgtLjRhNC4yNjMsNC4yNjMsMCwwLDEtMS4wNDgtLjExMywxLjM4NywxLjM4NywwLDAsMS0uNzY3LS41NDgsMi4yLDIuMiwwLDAsMS0uNDA5LTEuMDI2QTEzLjI4LDEzLjI4LDAsMCwxLDkuMTU5LDE5LjZhMTIuNzgsMTIuNzgsMCwwLDAtLjA4LTEuNjg3LDEuNzczLDEuNzczLDAsMCwwLS40MDUtLjkyNCwxLjMyNSwxLjMyNSwwLDAsMC0xLjAyNi0uMzkxVjE1LjRhMS4zMjUsMS4zMjUsMCwwLDAsMS4wMjYtLjM5MSwxLjc3MywxLjc3MywwLDAsMCwuNDA1LS45MjQsMTIuNzgsMTIuNzgsMCwwLDAsLjA4LTEuNjg3LDEzLjI4LDEzLjI4LDAsMCwxLC4wODQtMS43MzEsMi4yLDIuMiwwLDAsMSwuNDA5LTEuMDI2LDEuMzg3LDEuMzg3LDAsMCwxLC43NjctLjU0OCw0LjI2Myw0LjI2MywwLDAsMSwxLjA0OC0uMTEzaC40djEuMTRoLS4yMjZxLS43NiwwLS45MzEuNGE3LjcyLDcuNzIsMCwwLDAtLjE3MiwyLjE3LDQuODc2LDQuODc2LDAsMCwxLS40MTYsMi4zMTZBMi4xMTcsMi4xMTcsMCwwLDEsOC44NTksMTZhMi4wODksMi4wODksMCwwLDEsMS4yNjQuOTg2QTQuODc2LDQuODc2LDAsMCwxLDEwLjU0LDE5LjNhNy43Miw3LjcyLDAsMCwwLC4xNzIsMi4xN3EuMTcyLjQuOTMxLjRoLjIyNlptMS42LTMuMTQxaDEuMDM1VjE2LjQyaDEuNDU5bDEuOTcsMy40NTRoMS4xODRMMTcuMDQsMTYuMzA4YTIuMjQzLDIuMjQzLDAsMCwwLDEuODMzLTIuMzE5YzAtMS43LTEuMi0yLjI5NC0yLjg1NS0yLjI5NEgxMy40NzRabTEuMDM1LTQuM1YxMi41M2gxLjM1OWMxLjI3MiwwLDEuOTcuMzg2LDEuOTcsMS40NTlzLS43LDEuNTgzLTEuOTcsMS41ODNabTUuNTU3LTYuNTkxaC40YTQuMjYzLDQuMjYzLDAsMCwxLDEuMDQ4LjExMywxLjM4NywxLjM4NywwLDAsMSwuNzY3LjU0OCwyLjIsMi4yLDAsMCwxLC40MDksMS4wMjYsMTMuMjgsMTMuMjgsMCwwLDEsLjA4NCwxLjczMSwxMi43OCwxMi43OCwwLDAsMCwuMDgsMS42ODcsMS43NzMsMS43NzMsMCwwLDAsLjQwNS45MjQsMS4zMjUsMS4zMjUsMCwwLDAsMS4wMjYuMzkxdjEuMTkxYTEuMzI1LDEuMzI1LDAsMCwwLTEuMDI2LjM5MSwxLjc3MywxLjc3MywwLDAsMC0uNDA1LjkyNCwxMi43OCwxMi43OCwwLDAsMC0uMDgsMS42ODcsMTMuMjgsMTMuMjgsMCwwLDEtLjA4NCwxLjczMSwyLjIsMi4yLDAsMCwxLS40MDksMS4wMjYsMS4zODcsMS4zODcsMCwwLDEtLjc2Ny41NDgsNC4yNjMsNC4yNjMsMCwwLDEtMS4wNDguMTEzaC0uNHYtMS4xNGguMjI2cS43NiwwLC45MzEtLjRBNy43Miw3LjcyLDAsMCwwLDIxLjQsMTkuM2E0Ljg3Niw0Ljg3NiwwLDAsMSwuNDE2LTIuMzE2QTIuMDg5LDIuMDg5LDAsMCwxLDIzLjA3NSwxNmEyLjExNywyLjExNywwLDAsMS0xLjI2NC0uOTk0LDQuODc2LDQuODc2LDAsMCwxLS40MTYtMi4zMTYsNy43Miw3LjcyLDAsMCwwLS4xNzItMi4xN3EtLjE3Mi0uNC0uOTMxLS40aC0uMjI2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJvYm90IEZyYW1ld29ya1wiOiB7XG5cdFx0aWNvbjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zODcsMTQuNmEyLjcyNywyLjcyNywwLDAsMSw1LjQ1MywwLC45OS45OSwwLDEsMS0xLjk4LDAsLjc0Ni43NDYsMCwwLDAtMS40OTIsMCwuOTkuOTksMCwxLDEtMS45OCwwbTExLjMsNC41ODZhLjk5MS45OTEsMCwwLDEtLjk5Mi45OTJIMTEuNTA4YS45OTIuOTkyLDAsMCwxLDAtMS45ODRoOS4xODRhLjk5NC45OTQsMCwwLDEsLjk5Mi45OTJNMTcuMzkxLDE1LjE2YS45OTIuOTkyLDAsMCwxLC4yNy0xLjM3NWwyLjI5My0xLjU1MWEuOTg5Ljk4OSwwLDEsMSwxLjEwOSwxLjYzN2wtMi4zLDEuNTUxYS45NjUuOTY1LDAsMCwxLS41NTEuMTcyLjk5NC45OTQsMCwwLDEtLjgyNC0uNDM0bTYuMjg5LDYuMDk0YS43MDcuNzA3LDAsMCwxLS4yMDcuNWwtMS43MDcsMS43MDdhLjcwNy43MDcsMCwwLDEtLjUuMjA3SDEwLjhhLjcwNy43MDcsMCwwLDEtLjUtLjIwN0w4LjYsMjEuNzU0YS43MDcuNzA3LDAsMCwxLS4yMDctLjVWMTAuOGEuNzA3LjcwNywwLDAsMSwuMjA3LS41TDEwLjMsOC41OTRhLjcwNy43MDcsMCwwLDEsLjUtLjIwN0gyMS4yNjZhLjcwNy43MDcsMCwwLDEsLjUuMjA3TDIzLjQ3MywxMC4zYS43MDcuNzA3LDAsMCwxLC4yMDcuNVpNMjUuMTI5LDkuMTYsMjIuOSw2LjkzQTEuODA3LDEuODA3LDAsMCwwLDIxLjYyOSw2LjRIMTAuNDM4YTEuODA3LDEuODA3LDAsMCwwLTEuMjczLjUyN0w2LjkzOCw5LjE2YTEuOCwxLjgsMCwwLDAtLjUyNywxLjI3VjIxLjYyMWExLjgsMS44LDAsMCwwLC41MjcsMS4yNzNsMi4yMjcsMi4yM2ExLjgxLDEuODEsMCwwLDAsMS4yNzMuNTIzSDIxLjYyOWExLjgsMS44LDAsMCwwLDEuMjczLS41MjNsMi4yMjctMi4yM2ExLjc4NCwxLjc4NCwwLDAsMCwuNTI3LTEuMjczVjEwLjQzNGExLjc4NCwxLjc4NCwwLDAsMC0uNTI3LTEuMjczXFxcIi8+XCIsXG5cdH0sXG5cdFwiUnVieVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNiMzEzMDFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0yMzUuOTU3XFxcIiB5MT1cXFwiLTMwOC41NzlcXFwiIHgyPVxcXCItMjM1Ljk4NlxcXCIgeTI9XFxcIi0zMDguNTI3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDIwMi45MzUsIDAsIDAsIC0yMDIuNzgsIDQ3OTEwLjQ2MSwgLTYyNTQxLjE2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiNzY1NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U0MmIxZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTIzNS41NzFcXFwiIHkxPVxcXCItMzA5LjA4N1xcXCIgeDI9XFxcIi0yMzUuNjk3XFxcIiB5Mj1cXFwiLTMwOS4wNDFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNjAuMzA4LCAwLCAwLCAtMTExLjc3OCwgMTQyMzYuMzUxLCAtMzQ1MjUuMzk1KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzg3MTEwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxMTIwOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxMTIwOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTIzNS44OTZcXFwiIHkxPVxcXCItMzEzLjM2MlxcXCIgeDI9XFxcIi0yMzUuOTM3XFxcIiB5Mj1cXFwiLTMxMy4xMjlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTg4LjMyLCAwLCAwLCAtMjEuOTg2LCA0NDQ0Ny4zMDIsIC02ODU2Ljg4MilcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTIzMy41MTVcXFwiIHkxPVxcXCItMzA5LjA4MlxcXCIgeDI9XFxcIi0yMzMuNDk3XFxcIiB5Mj1cXFwiLTMwOS4xNjFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNjUuMjIyLCAwLCAwLCAtOTcuMSwgMTUyMzcuODAyLCAtMjk5OTEuODE0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2U1NzI1MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlM2IyMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E2MDAwM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E2MDAwM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiLTIzNS4zMTRcXFwiIHkxPVxcXCItMzA5LjUzNFxcXCIgeDI9XFxcIi0yMzUuMzFcXFwiIHkyPVxcXCItMzA5LjYwN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxMDUuMzIsIDAsIDAsIC0xMDYuODI1LCAyNDc5OC45MjUsIC0zMzA1My4xNTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQ3MTRlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmUxYTBkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCItMjM1Ljg4MlxcXCIgeTE9XFxcIi0zMTEuODUxXFxcIiB4Mj1cXFwiLTIzNS44NjlcXFwiIHkyPVxcXCItMzExLjkzNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5NC4zMjEsIDAsIDAsIC02Ni40MTgsIDIyMjcxLjQ5OSwgLTIwNzA3LjAwNClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMThcXFwiIHN0b3AtY29sb3I9XFxcIiNlNDYzNDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNFxcXCIgc3RvcC1jb2xvcj1cXFwiI2M4MjQxMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiLTIzNS40MTJcXFwiIHkxPVxcXCItMzIxLjA3NFxcXCIgeDI9XFxcIi0yMzUuMzMzXFxcIiB5Mj1cXFwiLTMyMC45NThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNzAuNzY3LCAwLCAwLCAtMjQuMzAxLCAxNjY3OC4xMTYsIC03Nzk4LjY0NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTRcXFwiIHN0b3AtY29sb3I9XFxcIiNjODFmMTFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjA5MDVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjA5MDVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIi0yMjMuODIxXFxcIiB5MT1cXFwiLTMxMC4xMTZcXFwiIHgyPVxcXCItMjIzLjc5NlxcXCIgeTI9XFxcIi0zMTAuMThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTguMTc3LCAwLCAwLCAtNzIuNjQ1LCA0MDcxLjAxNywgLTIyNTEwLjIzMylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzFcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTQwMjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjE5MGJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjE5MGJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaVxcXCIgeDE9XFxcIi0yMzUuNTYxXFxcIiB5MT1cXFwiLTMwOS4yNThcXFwiIHgyPVxcXCItMjM1LjQyNFxcXCIgeTI9XFxcIi0zMDkuMTE2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1OC4xNjIsIDAsIDAsIC0xNTcuOTM3LCAzNzI1Ni4zMTMsIC00ODgxOS4zODIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYmQwMDEyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjI3XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzgyZjFjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMzXFxcIiBzdG9wLWNvbG9yPVxcXCIjODIwYzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTMxNjAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcyXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjMxMzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTgyNjA5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTgyNjA5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItMjM1LjQyNFxcXCIgeTE9XFxcIi0zMDkuMTQzXFxcIiB4Mj1cXFwiLTIzNS40NzZcXFwiIHkyPVxcXCItMzA5LjEyNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxMjcuMDc0LCAwLCAwLCAtOTcuNDA5LCAyOTkzMi4yMjksIC0zMDA4Ni45NDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGMwYzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTkwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDBlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDBlXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCItMjM1LjgzOVxcXCIgeTE9XFxcIi0zMDkuNjA0XFxcIiB4Mj1cXFwiLTIzNS45MDFcXFwiIHkyPVxcXCItMzA5LjU1NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5NC4wMTEsIDAsIDAsIC0xMDUuNjAzLCAyMjE5OC43NDMsIC0zMjY3Ni44NTYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2UxMTBiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUwYzAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImxcXFwiIHgxPVxcXCItMjM1Ljg1NFxcXCIgeTE9XFxcIi0zMTEuMjRcXFwiIHgyPVxcXCItMjM1Ljg5MVxcXCIgeTI9XFxcIi0zMTEuMjAyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDc5LjcwMiwgMCwgMCwgLTgxLjc5MSwgMTg4MjcuMzk3LCAtMjU0NDcuOTA1KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc5MTMwZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTIwYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTIwYlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJtXFxcIiBjeD1cXFwiLTIzNS44ODJcXFwiIGN5PVxcXCItMzEyLjU0M1xcXCIgcj1cXFwiMC4wNzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoOTMuMTEzLCAwLCAwLCAtNDguNjU1LCAyMTk4Ni4wNzMsIC0xNTE5My42MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTBlMDhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTBlMDhcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiblxcXCIgY3g9XFxcIi0yMzUuMjgyXFxcIiBjeT1cXFwiLTMwOS43MDRcXFwiIHI9XFxcIjAuMDk3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDk3LjQzNCwgMCwgMCwgLTc1Ljg0OCwgMjI5MzcuMDU3LCAtMjM0NjcuODQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTMwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjODAwZTA4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjODAwZTA4XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm9cXFwiIHgxPVxcXCItMjMxLjI0MVxcXCIgeTE9XFxcIi0zMDkuNDM1XFxcIiB4Mj1cXFwiLTIzMS4yOTlcXFwiIHkyPVxcXCItMzA5LjMzN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg0MC4xMzcsIDAsIDAsIC04MS4xNDMsIDkyODYuOTk4LCAtMjUwNzguNTg5KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzhiMjExNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTAwYVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTAwY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTAwY1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJwXFxcIiB4MT1cXFwiLTIzNS44OThcXFwiIHkxPVxcXCItMzE3LjQ2NlxcXCIgeDI9XFxcIi0yMzUuODMxXFxcIiB5Mj1cXFwiLTMxNy41MzdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNzguMDk5LCAwLCAwLCAtMzIuNjI0LCAxODQ0Ny4zNjEsIC0xMDM1My41NTMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjMxMDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTEwZjA4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzkxYzEyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzkxYzEyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9ydWJ5PC90aXRsZT48cGF0aCBkPVxcXCJNMjMuNjkzLDIwLjQ2OSw3LjcwNywyOS45NjFsMjAuNy0xLjRMMzAsNy42ODVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI4LjQ0LDI4LjU0MiwyNi42NjEsMTYuMjYzbC00Ljg0Niw2LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTI4LjQ2NCwyOC41NDIsMTUuNDMsMjcuNTE5LDcuNzc2LDI5LjkzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNNy43OTQsMjkuOTM3LDExLjA1LDE5LjI3LDMuODg1LDIwLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTIxLjgxMywyMi43bC0zLTExLjczNUwxMC4yNDMsMTlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTI5LjMyLDExLjEyN2wtOC4xLTYuNjE5LTIuMjU3LDcuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTMsMi4xNDgsMjAuNzYzLDQuNzgybC0zLjAwNy0yLjY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDI0LjM4bDItMy42NDJMMi4zODIsMTYuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMi4yNzQsMTYuMjYzLDMuOSwyMC44NzNsNy4wNjItMS41ODRMMTkuMDI0LDExLjgsMjEuMyw0LjU2OWwtMy41ODMtMi41My02LjA5MSwyLjI4QzkuNzA2LDYuMSw1Ljk4Miw5LjYzNSw1Ljg0OCw5LjdzLTIuNDU5LDQuNDY0LTMuNTc0LDYuNTYyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk03Ljk4MSw3Ljk4MUMxMi4xNCwzLjg1OCwxNy41LDEuNDIxLDE5LjU1OSwzLjVzLS4xMjQsNy4xMjEtNC4yODMsMTEuMjQ0UzUuODIxLDIxLjQzNCwzLjc2NSwxOS4zNTgsMy44MjIsMTIuMSw3Ljk4MSw3Ljk4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNNy43OTQsMjkuOTMzbDMuMjMxLTEwLjcsMTAuNzI5LDMuNDQ3Yy0zLjg3OSwzLjYzOC04LjE5NCw2LjcxMy0xMy45Niw3LjI1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDM4LDExLjc3NGwyLjc1NCwxMC45MWMzLjI0LTMuNDA3LDYuMTQ5LTcuMDcsNy41NzMtMTEuNmwtMTAuMzI4LjY5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz48cGF0aCBkPVxcXCJNMjkuMzM3LDExLjEzOWMxLjEtMy4zMjcsMS4zNTctOC4xLTMuODQxLTguOTg1TDIxLjIzMSw0LjUwOWw4LjEwNiw2LjYyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbClcXFwiLz48cGF0aCBkPVxcXCJNMiwyNC4zMzJjLjE1Myw1LjQ5LDQuMTE0LDUuNTcyLDUuOCw1LjYybC0zLjktOS4xTDIsMjQuMzMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzllMTIwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNTMsMTEuNzkxYzIuNDksMS41MzEsNy41MDksNC42LDcuNjEsNC42NjFhMTcuNTUyLDE3LjU1MiwwLDAsMCwyLjYxOS01LjM0M2wtMTAuMjI5LjY4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbSlcXFwiLz48cGF0aCBkPVxcXCJNMTEuMDIxLDE5LjIzMmw0LjMxOSw4LjMzMmEyNy45MjQsMjcuOTI0LDAsMCwwLDYuMzg1LTQuODhsLTEwLjctMy40NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI24pXFxcIi8+PHBhdGggZD1cXFwiTTMuODg3LDIwLjg2MWwtLjYxMiw3LjI4N2MxLjE1NSwxLjU3NywyLjc0MywxLjcxNCw0LjQwOSwxLjU5MS0xLjIwNS0zLTMuNjE0LTktMy44LTguODc4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNvKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4yMDYsNC41MjhsOC41OCwxLjJjLS40NTgtMS45NC0xLjg2NC0zLjE5Mi00LjI2MS0zLjU4NGwtNC4zMTksMi4zOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcClcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlJ1c3RcIjoge1xuXHRcdGNvbG91cjogXCIjYTA0ZjEyXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCItNDkyLjAzNVxcXCIgY3k9XFxcIi04ODMuMzdcXFwiIHI9XFxcIjEzLjk5OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjg2NiwgLTAuNSwgLTAuMywgLTAuNTIsIDE3Ny4xMDYsIC02ODkuMDMzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzdkN2Q3ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNjdcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTdjN2FcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDVcXFwiIHN0b3AtY29sb3I9XFxcIiM4MTc4NzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjA4XFxcIiBzdG9wLWNvbG9yPVxcXCIjODY3MTYyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc1M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzhkNjg0Y1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44ODZcXFwiIHN0b3AtY29sb3I9XFxcIiM5NjVjMzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDRmMTJcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3J1c3Q8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNS4xMjQsNS4zYS44MzIuODMyLDAsMSwxLC44MzIuODMyaDBhLjgzMS44MzEsMCwwLDEtLjgzMi0uODMyTTUuMiwxMi44MzRhLjgzMi44MzIsMCwxLDEsLjgzMi44MzJoMGEuODMyLjgzMiwwLDAsMS0uODMyLS44MzJtMTkuODU2LjAzOWEuODMyLjgzMiwwLDEsMSwuODMyLjgzMi44MzEuODMxLDAsMCwxLS44MzItLjgzMmgwTTcuNjA1LDE0LjAxM2EuNzYuNzYsMCwwLDAsLjM4Ni0xbC0uMzY5LS44MzVIOS4wNzR2Ni41NDVINi4xNDRhMTAuMjQ3LDEwLjI0NywwLDAsMS0uMzMyLTMuOTExWm02LjA3NC4xNjFWMTIuMjQ1aDMuNDU4Yy4xNzksMCwxLjI2MS4yMDYsMS4yNjEsMS4wMTYsMCwuNjcyLS44My45MTMtMS41MTMuOTEzWk04Ljk1OCwyNC41NjFhLjgzMi44MzIsMCwxLDEsLjgzMi44MzIuODMxLjgzMSwwLDAsMS0uODMyLS44MzJoMG0xMi4zMzEuMDM5YS44MzIuODMyLDAsMSwxLC44MzIuODMyLjgzMi44MzIsMCwwLDEtLjgzMi0uODMyaDBtLjI1Ny0xLjg4N2EuNzU4Ljc1OCwwLDAsMC0uOS41ODRsLS40MTgsMS45NDlhMTAuMjQ5LDEwLjI0OSwwLDAsMS04LjU0NS0uMDQxbC0uNDE3LTEuOTQ5YS43NTkuNzU5LDAsMCwwLS45LS41ODNoMGwtMS43MjEuMzdhMTAuMjMzLDEwLjIzMywwLDAsMS0uODktMS4wNDloOC4zNzRjLjA5NSwwLC4xNTgtLjAxNy4xNTgtLjFWMTguOTI4YzAtLjA4Ni0uMDYzLS4xLS4xNTgtLjFoLTIuNDVWMTYuOTQ3aDIuNjQ5YTEuNjY1LDEuNjY1LDAsMCwxLDEuNjI5LDEuNDEyYy4xMDUuNDEzLjMzNiwxLjc1Ny40OTQsMi4xODcuMTU3LjQ4My44LDEuNDQ3LDEuNDgyLDEuNDQ3aDQuMzIzYTEwLjI0MywxMC4yNDMsMCwwLDEtLjk0OSwxLjFabTQuNjUtNy44MjFhMTAuMjYxLDEwLjI2MSwwLDAsMSwuMDIyLDEuNzc5SDI1LjE2N2MtLjEwNSwwLS4xNDguMDY5LS4xNDguMTcydi40ODNjMCwxLjEzNi0uNjQxLDEuMzg0LTEuMiwxLjQ0Ny0uNTM1LjA2LTEuMTI4LS4yMjQtMS4yLS41NTFhMy42MTYsMy42MTYsMCwwLDAtMS42NzEtMi44MDhjMS4wMy0uNjU0LDIuMS0xLjYxOSwyLjEtMi45MTFBMy4yOTIsMy4yOTIsMCwwLDAsMjEuNDQsOS44YTQuNTU5LDQuNTU5LDAsMCwwLTIuMi0uNzI0SDguMzY3QTEwLjI0NiwxMC4yNDYsMCwwLDEsMTQuMSw1Ljg0bDEuMjgyLDEuMzQ0YS43NTguNzU4LDAsMCwwLDEuMDcyLjAyNmgwbDEuNDM0LTEuMzcyYTEwLjI0OCwxMC4yNDgsMCwwLDEsNy4wMTUsNWwtLjk4MiwyLjIxN2EuNzYxLjc2MSwwLDAsMCwuMzg2LDFabTIuNDQ4LjAzNi0uMDMzLS4zNDMsMS4wMTEtLjk0M2EuNDIuNDIsMCwwLDAtLjAxMy0uNTk1LjQyOC40MjgsMCwwLDAtLjEyMS0uMDgxTDI4LjIsMTIuNDgzbC0uMS0uMzM0LjgwNi0xLjEyYS40MjIuNDIyLDAsMCwwLS4xMy0uNTgxLjQzLjQzLDAsMCwwLS4xMzMtLjA1NWwtMS4zNjMtLjIyMi0uMTY0LS4zMDYuNTczLTEuMjU3YS40MTkuNDE5LDAsMCwwLS4yMzYtLjU0NC40MjYuNDI2LDAsMCwwLS4xNDYtLjAyOWwtMS4zODMuMDQ4TDI1LjcsNy44MTlsLjMxOC0xLjM0N2EuNDIxLjQyMSwwLDAsMC0uMzQzLS40ODcuNDM1LjQzNSwwLDAsMC0uMTQ0LDBMMjQuMTgzLDYuM2wtLjI2Ni0uMjE5TDIzLjk2Niw0LjdhLjQyMS40MjEsMCwwLDAtLjQzMS0uNDExLjQyNi40MjYsMCwwLDAtLjE0MS4wMjhsLTEuMjU3LjU3My0uMzA2LS4xNjQtLjIyMi0xLjM2M2EuNDIxLjQyMSwwLDAsMC0uNS0uMzE4LjQzLjQzLDAsMCwwLS4xMzMuMDU1bC0xLjEyMS44MDYtLjMzMy0uMS0uNDgzLTEuMjkzYS40MjEuNDIxLDAsMCwwLS41NTUtLjIxNS40NDIuNDQyLDAsMCwwLS4xMi4wOEwxNy40MTgsMy4zOWwtLjM0My0uMDMzTDE2LjM0NywyLjE4YS40MjEuNDIxLDAsMCwwLS42ODgsMGwtLjcyOCwxLjE3Ny0uMzQzLjAzMy0uOTQzLTEuMDEyYS40MjEuNDIxLDAsMCwwLS41OTUuMDE1LjQ0Mi40NDIsMCwwLDAtLjA4LjEyTDEyLjQ4MywzLjhsLS4zMzMuMS0xLjEyLS44YS40MjIuNDIyLDAsMCwwLS41ODEuMTMuNDMuNDMsMCwwLDAtLjA1NS4xMzNsLS4yMjIsMS4zNjMtLjMwNi4xNjRMOC42MDgsNC4zMTdhLjQyMS40MjEsMCwwLDAtLjU0NC4yMzkuNDQ0LjQ0NCwwLDAsMC0uMDI4LjE0NGwuMDQ4LDEuMzgzTDcuODE4LDYuMyw2LjQ3MSw1Ljk4NGEuNDIxLjQyMSwwLDAsMC0uNDg3LjM0My40MzUuNDM1LDAsMCwwLDAsLjE0NEw2LjMsNy44MTlsLS4yMTguMjY1TDQuNyw4LjAzNmEuNDIyLjQyMiwwLDAsMC0uMzgzLjU3M0w0Ljg5LDkuODY2bC0uMTY0LjMwNi0xLjM2My4yMjJhLjQyLjQyLDAsMCwwLS4zMTguNS40My40MywwLDAsMCwuMDU1LjEzM2wuODA2LDEuMTItLjEuMzM0LTEuMjkzLjQ4M2EuNDIxLjQyMSwwLDAsMC0uMjE1LjU1NS40MTQuNDE0LDAsMCwwLC4wODEuMTIxbDEuMDExLjk0My0uMDMzLjM0My0xLjE3Ny43MjhhLjQyMS40MjEsMCwwLDAsMCwuNjg4bDEuMTc3LjcyOC4wMzMuMzQzLTEuMDExLjk0M2EuNDIxLjQyMSwwLDAsMCwuMDE1LjU5NS40MzYuNDM2LDAsMCwwLC4xMTkuMDhsMS4yOTMuNDgzLjEuMzM0TDMuMSwyMC45NzJhLjQyMS40MjEsMCwwLDAsLjEzMS41ODEuNDMuNDMsMCwwLDAsLjEzMy4wNTVsMS4zNjMuMjIyLjE2NC4zMDctLjU3MywxLjI1N2EuNDIyLjQyMiwwLDAsMCwuMjQuNTQ1LjQzOC40MzgsMCwwLDAsLjE0My4wMjhsMS4zODMtLjA0OC4yMTkuMjY2LS4zMTcsMS4zNDhhLjQyLjQyLDAsMCwwLC4zNDEuNDg2LjQuNCwwLDAsMCwuMTQ2LDBMNy44MTgsMjUuN2wuMjY2LjIxOEw4LjAzNSwyNy4zYS40MTkuNDE5LDAsMCwwLC40MjkuNDEuNDEzLjQxMywwLDAsMCwuMTQzLS4wMjhsMS4yNTctLjU3My4zMDYuMTY0LjIyMiwxLjM2MmEuNDIxLjQyMSwwLDAsMCwuNS4zMTkuNDA3LjQwNywwLDAsMCwuMTMzLS4wNTVsMS4xMi0uODA3LjMzNC4xLjQ4MywxLjI5MmEuNDIyLjQyMiwwLDAsMCwuNTU2LjIxNC40MzYuNDM2LDAsMCwwLC4xMTktLjA4bC45NDMtMS4wMTEuMzQzLjAzNC43MjgsMS4xNzdhLjQyMi40MjIsMCwwLDAsLjU4OC4xLjQxMy40MTMsMCwwLDAsLjEtLjFsLjcyOC0xLjE3Ny4zNDMtLjAzNC45NDMsMS4wMTFhLjQyMS40MjEsMCwwLDAsLjU5NS0uMDE1LjQzNi40MzYsMCwwLDAsLjA4LS4xMTlsLjQ4My0xLjI5Mi4zMzQtLjEsMS4xMi44MDdhLjQyMS40MjEsMCwwLDAsLjU4MS0uMTMxLjQzLjQzLDAsMCwwLC4wNTUtLjEzM2wuMjIyLTEuMzYyLjMwNi0uMTY0LDEuMjU3LjU3M2EuNDIxLjQyMSwwLDAsMCwuNTQ0LS4yMzkuNDM4LjQzOCwwLDAsMCwuMDI4LS4xNDNsLS4wNDgtMS4zODQuMjY1LS4yMTgsMS4zNDcuMzE3YS40MjEuNDIxLDAsMCwwLC40ODctLjM0LjQ0Ny40NDcsMCwwLDAsMC0uMTQ2TDI1LjcsMjQuMTgzbC4yMTgtLjI2NiwxLjM4My4wNDhhLjQyMS40MjEsMCwwLDAsLjQxLS40MzEuNC40LDAsMCwwLS4wMjgtLjE0MmwtLjU3My0xLjI1Ny4xNjQtLjMwNywxLjM2My0uMjIyYS40MjEuNDIxLDAsMCwwLC4zMTktLjUuNDM0LjQzNCwwLDAsMC0uMDU2LS4xMzVsLS44MDYtMS4xMi4xLS4zMzQsMS4yOTMtLjQ4M2EuNDIuNDIsMCwwLDAsLjIxNS0uNTU0LjQxNC40MTQsMCwwLDAtLjA4MS0uMTIxbC0xLjAxMS0uOTQzLjAzMy0uMzQzLDEuMTc3LS43MjhhLjQyMS40MjEsMCwwLDAsMC0uNjg4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNBU1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDJiYjVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNi4wMTgsMzBBMTQsMTQsMCwxLDEsMzAsMTYuMiwxNCwxNCwwLDAsMSwxNi4wMTgsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAyYmI1XFxcIi8+PHBhdGggZD1cXFwiTTkuMTcsMjIuNjNjLjAyNi4wNjEuMDQ2LjEyNC4wNzcuMTgzLDIuMjE1LDQuMjA2LDcuNzM4LDQuNjE2LDEwLjc1NiwyLjQ1NGE2LjAxNyw2LjAxNywwLDAsMCwxLjczMS04LjU4MywxNS43LDE1LjcsMCwwLDAtMS4zMTgtMS43MzFjLS44ODEtMS4wNjctMS43NTUtMi4xNC0yLjYzNi0zLjIwNy0uMzY2LS40NDMtLjc2Ny0uODM1LTEuNDE2LS42ODNhMS4zOTMsMS4zOTMsMCwwLDAtLjgxNiwyLjMxMWMuODg4LDEuMTA2LDEuODE5LDIuMTc3LDIuNywzLjI4NmEzLjg3NCwzLjg3NCwwLDAsMSwuNTg5LDQuNCw1LjQyMyw1LjQyMywwLDAsMS01LDMuMTM0QTYuNiw2LjYsMCwwLDEsOS4xNywyMi42M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjIuNDk0LDkuNjA5Yy4wOC0uMjQ4LS4wNjYtLjM3LS4xNDEtLjUwOUE3LjQ3Nyw3LjQ3NywwLDAsMCwxMi42LDYuMjM3Yy0zLjMsMS42My01LjEsNS4zNTItMi42MzcsOS4xNDdhNTYuNTMsNTYuNTMsMCwwLDAsNC4xMzUsNS4xMiwxLjAxMiwxLjAxMiwwLDAsMCwuNzA5LjM0NSwxLjM4NCwxLjM4NCwwLDAsMCwxLjQyOC0uNzY1LDEuMjQ3LDEuMjQ3LDAsMCwwLS4xNzMtMS41MDdjLS44NzYtMS4wNTEtMS43NjktMi4wODgtMi42MTUtMy4xNjJhNC4xMyw0LjEzLDAsMCwxLC4zMjMtNS43NzFBNi4wNTQsNi4wNTQsMCwwLDEsMTkuOTg0LDguMTMsNS4xOSw1LjE5LDAsMCwxLDIyLjQ5NCw5LjYwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJTYXNzIChTYXNzKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZDY3OTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNi4xMSwxNy41NzJhNS44LDUuOCwwLDAsMC0yLjUzNy41ODgsNS4zNDUsNS4zNDUsMCwwLDEtLjU2OC0xLjMxNCwzLjUzLDMuNTMsMCwwLDEtLjA1MS0xLjEsOS44MTEsOS44MTEsMCwwLDEsLjMzMi0xLjE5MmMtLjAwNS0uMDUxLS4wNjEtLjI5Mi0uNjI0LS4zcy0xLjA0OC4xMDctMS4xLjI1NmE2LjE3MSw2LjE3MSwwLDAsMC0uMjM1LjgzNCwxOS42ODYsMTkuNjg2LDAsMCwxLTEuNzEzLDMuMjk0LDMuMTg2LDMuMTg2LDAsMCwxLS40NC0yLjA2Niw5LjgxMSw5LjgxMSwwLDAsMSwuMzMyLTEuMTkyYy0uMDA1LS4wNTEtLjA2MS0uMjkyLS42MjQtLjNzLTEuMDQ4LjEwNy0xLjEuMjU2LS4xMTguNS0uMjM1LjgzNC0xLjQ4MywzLjM4Ni0xLjg0MSw0LjE3M2MtLjE4NC40LS4zNDMuNzI2LS40NTUuOTQ2aDBhLjIzMy4yMzMsMCwwLDEtLjAyLjA0MWMtLjEuMTg5LS4xNTMuMjkyLS4xNTMuMjkydi4wMDVjLS4wNzcuMTM4LS4xNTkuMjY2LS4yLjI2NmExLjcxMSwxLjcxMSwwLDAsMSwuMDEtLjg2OWMuMi0xLjA1OS42OS0yLjcwNS42ODUtMi43NjIsMC0uMDMxLjA5Mi0uMzE3LS4zMTctLjQ2NWEuNTA4LjUwOCwwLDAsMC0uNTc4LjFjLS4wMzYsMC0uMDYxLjA4Ny0uMDYxLjA4N3MuNDQ1LTEuODUxLS44NDktMS44NTFhMy44NTUsMy44NTUsMCwwLDAtMi40NzUsMS42ODNjLS4zNDguMTg5LTEuMDg5LjU5My0xLjg4MiwxLjAyOC0uMy4xNjktLjYxNC4zMzgtLjkwNS41LS4wMi0uMDItLjA0MS0uMDQ2LS4wNjEtLjA2NkM2Ljg3LDE3LjYsMy45NzUsMTYuNDE2LDQuMSwxNC4xNzFjLjA0Ni0uODE4LjMyNy0yLjk2Niw1LjU1OS01LjU3NSw0LjMwNi0yLjEyMiw3LjczMy0xLjUzNCw4LjMyNi0uMjMuODQ5LDEuODYyLTEuODM2LDUuMzE5LTYuMjg1LDUuODJhMy4zNTEsMy4zNTEsMCwwLDEtMi44MTMtLjcxMWMtLjIzNS0uMjU2LS4yNzEtLjI3MS0uMzU4LS4yMi0uMTQzLjA3Ny0uMDUxLjMwNywwLC40NGEyLjYyNiwyLjYyNiwwLDAsMCwxLjYwNiwxLjI2Myw4LjU1LDguNTUsMCwwLDAsNS4yMTctLjUxN2MyLjctMS4wNDMsNC44LTMuOTQzLDQuMTg0LTYuMzcyLS42MTktMi40NjUtNC43MS0zLjI3OC04LjU4Mi0xLjlBMTkuNSwxOS41LDAsMCwwLDQuMzU5LDkuOTUyYy0yLjEzMywxLjk5NS0yLjQ3LDMuNzI4LTIuMzMyLDQuNDU1LjUsMi41NzgsNC4wNTEsNC4yNTUsNS40NzIsNS41LS4wNzIuMDQxLS4xMzguMDc3LS4xOTQuMTA3LS43MTEuMzUzLTMuNDIxLDEuNzctNC4xLDMuMjY4LS43NjcsMS43LjEyMywyLjkxNS43MTEsMy4wNzlhNC4zNzQsNC4zNzQsMCwwLDAsNC43MS0xLjkwOEE0LjcyNSw0LjcyNSwwLDAsMCw5LjA0OSwyMC4xYS4xMDcuMTA3LDAsMCwwLS4wMi0uMDMxbC41NTctLjMyN2MuMzYzLS4yMTUuNzIxLS40MTQsMS4wMjgtLjU3OGE2Ljc0LDYuNzQsMCwwLDAtLjM2MywxLjg2MiwzLjg4NiwzLjg4NiwwLDAsMCwuODM0LDIuNy45MjEuOTIxLDAsMCwwLC42NzUuMjJjLjYsMCwuODc1LS41LDEuMTc2LTEuMDk0LjM2OC0uNzI2LjctMS41Ny43LTEuNTdzLS40MTQsMi4yODEuNzExLDIuMjgxYy40MDksMCwuODIzLS41MzIsMS4wMDgtLjh2LjAwNXMuMDEtLjAxNS4wMzEtLjA1MWwuMDY2LS4xMDd2LS4wMWMuMTY0LS4yODYuNTMyLS45MzYsMS4wNzktMi4wMTUuNzA2LTEuMzkxLDEuMzg2LTMuMTMsMS4zODYtMy4xM2E4Ljg4OCw4Ljg4OCwwLDAsMCwuMjcxLDEuMTMsMTAuNjQzLDEwLjY0MywwLDAsMCwuNTgzLDEuMzA5Yy0uMTY0LjIzLS4yNjYuMzU4LS4yNjYuMzU4bC4wMDUuMDA1Yy0uMTMzLjE3NC0uMjc2LjM2My0uNDM1LjU0N2ExNi4zLDE2LjMsMCwwLDAtMS4zMTQsMS42NDcuNDQ3LjQ0NywwLDAsMCwuMTIzLjYsMS4xMTYsMS4xMTYsMCwwLDAsLjY4NS4xMTMsMy4xNDcsMy4xNDcsMCwwLDAsMS4wMjgtLjIzNSwzLjQ1LDMuNDUsMCwwLDAsLjg4NS0uNDY1LDEuOTgsMS45OCwwLDAsMCwuODQ5LTEuNzQ0LDMuNTIxLDMuNTIxLDAsMCwwLS4zMjItMS4yMzNjLjA1MS0uMDcyLjEtLjE0My4xNDgtLjIxNWEyMy40MjgsMjMuNDI4LDAsMCwwLDEuNTM0LTIuNjQ5LDguODg4LDguODg4LDAsMCwwLC4yNzEsMS4xMyw3LjU3LDcuNTcsMCwwLDAsLjUsMS4xMjVBNC44NjEsNC44NjEsMCwwLDAsMjAuOTY1LDIwLjhjLS4zMjIuOTMxLS4wNzIsMS4zNS40LDEuNDQ3YTEuNDI1LDEuNDI1LDAsMCwwLC43NDctLjE1MywzLjQsMy40LDAsMCwwLC45NDYtLjQ4NiwyLjEyNiwyLjEyNiwwLDAsMCwxLjA0My0xLjcyOSwzLjI2OCwzLjI2OCwwLDAsMC0uMjM1LTEuMDIzLDUuMzU2LDUuMzU2LDAsMCwxLDIuNzE2LS4zMTJjMi40MzQuMjg2LDIuOTE1LDEuODA1LDIuODIzLDIuNDQ1YTEuNjE4LDEuNjE4LDAsMCwxLS43NzIsMS4wOTRjLS4xNjkuMTA3LS4yMjUuMTQzLS4yMS4yMi4wMi4xMTMuMS4xMDcuMjQ1LjA4N0ExLjksMS45LDAsMCwwLDMwLDIwLjdjLjA3Ny0xLjUtMS4zNTUtMy4xNDUtMy44ODctMy4xM1pNNy4zMywyMy45Yy0uODA4Ljg4LTEuOTMzLDEuMjEyLTIuNDE5LjkzMS0uNTIyLS4zLS4zMTctMS42LjY3NS0yLjUzMmExMi44ODQsMTIuODg0LDAsMCwxLDEuOS0xLjQxN2MuMTE4LS4wNzIuMjkyLS4xNzQuNS0uM2wuMDU2LS4wMzFoMGwuMTIzLS4wNzdBMy40OTMsMy40OTMsMCwwLDEsNy4zMywyMy45Wm01Ljg4MS00Yy0uMjgxLjY4NS0uODY5LDIuNDQtMS4yMjcsMi4zNDItLjMwNy0uMDgyLS41LTEuNDEyLS4wNjEtMi43MjZhNi4xOTMsNi4xOTMsMCwwLDEsLjk1Ni0xLjc1NGMuNDQtLjQ5MS45MjYtLjY1NSwxLjA0My0uNDU1YTkuMDYyLDkuMDYyLDAsMCwxLS43MTEsMi41OTNabTQuODUzLDIuMzIyYy0uMTE4LjA2MS0uMjMuMS0uMjgxLjA3Mi0uMDM2LS4wMi4wNTEtLjEuMDUxLS4xcy42MDktLjY1NS44NDktLjk1MWMuMTM4LS4xNzQuMy0uMzc4LjQ3Ni0uNjA5VjIwLjdjMCwuNzgyLS43NTcsMS4zMDktMS4wOTQsMS41MjRabTMuNzQ0LS44NTRjLS4wODctLjA2MS0uMDcyLS4yNjYuMjItLjkwNWEzLjQwOCwzLjQwOCwwLDAsMSwuODM0LTEuMDc0LDEuNDQ4LDEuNDQ4LDAsMCwxLC4wODIuNDcxLDEuNTQ3LDEuNTQ3LDAsMCwxLTEuMTM1LDEuNTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NkNjc5OVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNhc3MgKFNDU1MpXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NkNjc5OVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjE3MSwxOC43Yy0uNDgxLjIyMS0xLjAwOC41MDktMi4wNjMsMS4wODgtLjQuMjI1LS44MTguNDUtMS4yMDcuNjYyLS4wMjctLjAyNy0uMDU1LS4wNjEtLjA4Mi0uMDg5LTIuMDg3LTIuMjMtNS45NDctMy44MDUtNS43ODMtNi44LjA2MS0xLjA5MS40MzYtMy45NTUsNy40MTMtNy40MzMsNS43NDItMi44MywxMC4zMTEtMi4wNDYsMTEuMS0uMzA3QzI2LjY4Myw4LjMsMjMuMSwxMi45MTMsMTcuMTcsMTMuNTgyYTQuNDY5LDQuNDY5LDAsMCwxLTMuNzUxLS45NDhjLS4zMTQtLjM0MS0uMzYxLS4zNjEtLjQ3Ny0uMjkzLS4xOTEuMS0uMDY4LjQwOSwwLC41ODZhMy41LDMuNSwwLDAsMCwyLjE0MSwxLjY4NCwxMS40LDExLjQsMCwwLDAsNi45NTYtLjY4OWMzLjU5NC0xLjM5MSw2LjQtNS4yNTgsNS41NzgtOC41LS44MjUtMy4yODctNi4yODEtNC4zNzEtMTEuNDQzLTIuNTM3YTI2LDI2LDAsMCwwLTguNzksNS4wNDdjLTIuODQ0LDIuNjYtMy4yOTQsNC45NzItMy4xMSw1Ljk0LjY2MiwzLjQzNyw1LjQsNS42NzQsNy4zLDcuMzMxLS4xLjA1NS0uMTg0LjEtLjI1OS4xNDMtLjk0OC40NzEtNC41NjIsMi4zNi01LjQ2Myw0LjM1OC0xLjAyMywyLjI2NC4xNjQsMy44ODcuOTQ4LDQuMTA1YTUuODMyLDUuODMyLDAsMCwwLDYuMjgxLTIuNTQ0LDYuMyw2LjMsMCwwLDAsLjU1OS01LjgsNS4wMyw1LjAzLDAsMCwxLC43MTYtLjQ3N2MuNDg0LS4yODYuOTQ1LS41NjgsMS4zNTQtLjc4NmwwLDBhMTAuNDc1LDEwLjQ3NSwwLDAsMSw0LjQ3NS0uOTg5YzMuMjQ2LjM4MiwzLjg4NywyLjQwNywzLjc2NCwzLjI2YTIuMTU3LDIuMTU3LDAsMCwxLTEuMDMsMS40NTljLS4yMjUuMTQzLS4zLjE5MS0uMjguMjkzLjAyNy4xNS4xMzYuMTQzLjMyNy4xMTZhMi41MzUsMi41MzUsMCwwLDAsMS43NjYtMi4yNTdjLjEtMi0xLjgwNy00LjE5NC01LjE4My00LjE3NGE3Ljc1Myw3Ljc1MywwLDAsMC0yLjk0Ni41ODdxLS4yMjUuMDkzLS40MzcuMlptLTQuODI1LDcuODM5Yy0xLjA3OCwxLjE3My0yLjU3OCwxLjYxNi0zLjIyNiwxLjI0MS0uNy0uNC0uNDIzLTIuMTM1LjktMy4zNzZhMTcuMTgsMTcuMTgsMCwwLDEsMi41My0xLjg4OWMuMTU3LS4xLjM4OS0uMjMyLjY2OC0uNC4wNDgtLjAyNy4wNzUtLjA0MS4wNzUtLjA0MWwuMTY0LS4xQTQuNjU4LDQuNjU4LDAsMCwxLDExLjM0NiwyNi41MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2Q2Nzk5XFxcIi8+XCIsXG5cdH0sXG5cdFwiU2NhbGFcIjoge1xuXHRcdGNvbG91cjogXCIjZTYyZDJhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwNC41NzJcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwNC41NzJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTY2NjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTYyZDJhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjZcXFwiIHN0b3AtY29sb3I9XFxcIiNkZjNmM2RcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RmM2YzZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U2MmQyYVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTEzNC45MDdcXFwiIHkxPVxcXCIyMDMuNzgxXFxcIiB4Mj1cXFwiLTEzNC44OTZcXFwiIHkyPVxcXCIyMDMuNzgxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1MzgsIDAsIDAsIC05NjEuMjUsIDIwNzQ5NSwgMTk1ODkyKVxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwNS4zNjNcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwNS4zNjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTc0MzApXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3NjYWxhPC90aXRsZT48cGF0aCBkPVxcXCJNNy4zODQsMTkuMjMxdjIuMTU0YzAsLjM2Myw3LjgzMy45NzEsMTIuOTM3LDIuMTU0LDIuNDY1LS41NzEsNC4yOTUtMS4yNzcsNC4yOTUtMi4xNTRWMTkuMjMxYzAtLjg3Ny0xLjgzLTEuNTgyLTQuMjk1LTIuMTU0LTUuMSwxLjE4My0xMi45MzcsMS43OTEtMTIuOTM3LDIuMTU0XFxcIiBzdHlsZT1cXFwiZmlsbDojN2YwYzFkXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDEwLjYxNXYyLjE1NGMwLC4zNjMsNy44MzMuOTcxLDEyLjkzNywyLjE1NCwyLjQ2NS0uNTcxLDQuMjk1LTEuMjc3LDQuMjk1LTIuMTU0VjEwLjYxNWMwLS44NzctMS44My0xLjU4Mi00LjI5NS0yLjE1NC01LjEsMS4xODMtMTIuOTM3LDEuNzkxLTEyLjkzNywyLjE1NFxcXCIgc3R5bGU9XFxcImZpbGw6IzdmMGMxZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwxNC45MjN2Ni40NjJjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMTAuNjE1YzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCw2LjMwOFYxMi43N2MwLS41MzgsMTcuMjMyLTEuNjE1LDE3LjIzMi00LjMwOFYyYzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwyMy41MzhWMzBjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMTkuMjMxYzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNoZWxsIHNlc3Npb25cIjoge1xuXHRcdGNvbG91cjogXCIjZDliNDAwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIlNoZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2Q5YjQwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5LjQsMjcuNkgyLjVWNC41SDI5LjRabS0yNS45LTFIMjguNFY1LjVIMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi4wNzcgMTkuMzE2IDUuNTIyIDE4LjQ4NCAxMC4zNjYgMTUuMjU1IDUuNDc5IDExLjE4NCA2LjEyIDEwLjQxNiAxMi4wMzUgMTUuMzQ0IDYuMDc3IDE5LjMxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjEyLjdcXFwiIHk9XFxcIjE4LjJcXFwiIHdpZHRoPVxcXCI3LjhcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNS41XFxcIiB3aWR0aD1cXFwiMjYuOVxcXCIgaGVpZ2h0PVxcXCIxLjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz5cIixcblx0fSxcblx0XCJTbWFydHlcIjoge1xuXHRcdGNvbG91cjogXCIjZjZlMjAwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxMy44NTlcXFwiIHkxPVxcXCIyOS4yMTlcXFwiIHgyPVxcXCIxOC4xMDZcXFwiIHkyPVxcXCIyOS4yMTlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2MzYxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE3OFxcXCIgc3RvcC1jb2xvcj1cXFwiIzZjNmQ3MFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZjcxNzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjE2MzY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNjM2QzZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTZcXFwiIHN0b3AtY29sb3I9XFxcIiMwMTAxMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2YTZlXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNS4xNzhcXFwiIHkxPVxcXCIyOS43MzRcXFwiIHgyPVxcXCIxNi43ODdcXFwiIHkyPVxcXCIyOS43MzRcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiMTUuMjc3XFxcIiB5MT1cXFwiMjkuODgxXFxcIiB4Mj1cXFwiMTYuNjg4XFxcIiB5Mj1cXFwiMjkuODgxXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzliOWI5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMzFcXFwiIHN0b3AtY29sb3I9XFxcIiNhNGE1YTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWViMWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmYTRhYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDVcXFwiIHN0b3AtY29sb3I9XFxcIiM3ODgxODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU3MDc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5NDlhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImRcXFwiIGN4PVxcXCItOC40NTZcXFwiIGN5PVxcXCItMTYuNjE2XFxcIiByPVxcXCIxOS4zODNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMzQuMDQyIDM3LjA2Mykgc2NhbGUoMS4wNTQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzcwNzA2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2MTYyNjFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY0NzRhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwOFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ4NDk0Y1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40ODdcXFwiIHN0b3AtY29sb3I9XFxcIiM0ZTUwNTNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTQ0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNWE1YzVmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU5MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzZhNmU3MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzNcXFwiIHN0b3AtY29sb3I9XFxcIiM3Zjg1ODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTc5ZWExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNkNDQ0N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY1NmM3MFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiMTYuMTI2XFxcIiB5MT1cXFwiMjguMTA4XFxcIiB4Mj1cXFwiMTYuMDVcXFwiIHkyPVxcXCIyNi44OTNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWI5Yjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEwOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1YTZhN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiYWJjYzRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzExXFxcIiBzdG9wLWNvbG9yPVxcXCIjYWJhZWI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODk4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiM0ODUwNTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM4Yjk0OWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIjE2LjAxM1xcXCIgeTE9XFxcIjI2LjU0MlxcXCIgeDI9XFxcIjE1Ljg5NVxcXCIgeTI9XFxcIjI0LjYzNVxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCIxNi4wMjNcXFwiIHkxPVxcXCIyNS41NDZcXFwiIHgyPVxcXCIxNS44ODdcXFwiIHkyPVxcXCIyMy4zNTVcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiMTYuMDEzXFxcIiB5MT1cXFwiMjcuNjI3XFxcIiB4Mj1cXFwiMTUuODk1XFxcIiB5Mj1cXFwiMjUuNzJcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiMTMuNjhcXFwiIHkxPVxcXCIyOC44MDVcXFwiIHgyPVxcXCIxOC4yODRcXFwiIHkyPVxcXCIyOC44MDVcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNTQ1NDUzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzYxNjI2MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNDNcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDg1ODlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWViMWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmYTRhYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDVcXFwiIHN0b3AtY29sb3I9XFxcIiM3ODgxODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU3MDc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTA1NjU5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNS44MTNcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNS44MTNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNWUxZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGRhZDZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2VjY2M5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjExMlxcXCIgc3RvcC1jb2xvcj1cXFwiI2E3YTlhOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2OTcwNzJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmM2ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zOThcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWFhYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDVkN2Q5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2YzZjRmNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzNcXFwiIHN0b3AtY29sb3I9XFxcIiNmZWZlZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNGY1ZjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkY2RmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNiMGI0YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODc2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5Mjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDFkM2Q0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWFjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImxcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNC43MjhcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNC43MjhcXFwiIHhsaW5rOmhyZWY9XFxcIiNrXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJtXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjMuNTQ4XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjMuNTQ4XFxcIiB4bGluazpocmVmPVxcXCIja1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiblxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI2Ljg5OFxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI2Ljg5OFxcXCIgeGxpbms6aHJlZj1cXFwiI2tcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm9cXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNS45NjdcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNS45NjdcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNWUxZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGU4ZDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkMmYzYmFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDM2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzVlNGIxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEwNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E0YmQ5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZTdmNzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmM2ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zOThcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWFhYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDVkN2Q5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2YzZjRmNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzNcXFwiIHN0b3AtY29sb3I9XFxcIiNmZWZlZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNGY1ZjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkY2RmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNiMGI0YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODc2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5Mjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDFkM2Q0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWFjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcInBcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNC44ODNcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNC44ODNcXFwiIHhsaW5rOmhyZWY9XFxcIiNvXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJxXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjcuMDVcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNy4wNVxcXCIgeGxpbms6aHJlZj1cXFwiI29cXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcInJcXFwiIHgxPVxcXCIxMS45MDJcXFwiIHkxPVxcXCIyMy4yMDFcXFwiIHgyPVxcXCIxOS44ODRcXFwiIHkyPVxcXCIyMy4yMDFcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJzXFxcIiBjeD1cXFwiLTE2Ljk4M1xcXCIgY3k9XFxcIi0yMi45NDhcXFwiIHI9XFxcIjEwLjcxOFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzNC4wNDIgMzcuMDYzKSBzY2FsZSgxLjA1NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZmZDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmYwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZkZjcwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NjRcXFwiIHN0b3AtY29sb3I9XFxcIiNmNmUyMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzgyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWJiZjAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjkwNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlOTIwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RhOTgxOVxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfc21hcnR5PC90aXRsZT48cGF0aCBkPVxcXCJNMTMuODU5LDI4Ljc3NmEuMjQyLjI0MiwwLDAsMCwuMTI4LjE5MSwxMiwxMiwwLDAsMCwxLjM5Mi42MjIsNC4zLDQuMywwLDAsMCwuNTc4LjA3MmguMDUyYTQuMyw0LjMsMCwwLDAsLjU3OC0uMDcyLDEyLjAxNCwxMi4wMTQsMCwwLDAsMS4zOTItLjYyMi4yNDMuMjQzLDAsMCwwLC4xMjgtLjE5MWwtMi4xMzcuMTkyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMTQsMzBhMS4xMjMsMS4xMjMsMCwwLDAsLjY4OC0uMjQ3LjE3NS4xNzUsMCwwLDAsLjA4NS0uMTI2di0uMTA1YTMuMjM1LDMuMjM1LDAsMCwwLS43NzMtLjA1M2gtLjA2M2EzLjIzNywzLjIzNywwLDAsMC0uNzczLjA1M3YuMTA1YS4xNzUuMTc1LDAsMCwwLC4wODUuMTI2LDEuMTIyLDEuMTIyLDAsMCwwLC42ODguMjQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45NTEsMjkuODA3YTQuNzMyLDQuNzMyLDAsMCwxLS42NzQtLjA0NCwxLjEwNSwxLjEwNSwwLDAsMCwuNjc0LjIzN2guMDYzYTEuMTA2LDEuMTA2LDAsMCwwLC42NzUtLjIzNyw0LjczMyw0LjczMywwLDAsMS0uNjc1LjA0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTkuODA5LDI2LjgzOGExLDEsMCwwLDAtLjIzNC4zODljLS4wMzYuMTgxLS4xLjU4NS0xLjMyNiwxLjQwNmwtLjAyNS4wMTdhLjQzNS40MzUsMCwwLDEtLjA4Ni4wMzcsOS45NjgsOS45NjgsMCwwLDEtMi4xNTUuMjA5LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU2LS4yMDkuNDM2LjQzNiwwLDAsMS0uMDg1LS4wMzZsLS4wMjUtLjAxN2E0LjU3OSw0LjU3OSwwLDAsMS0xLjEyLS45NTdjLS4xNjQtLjIxOS0uMzczLS4yNTctLjM5LS4zNDVhMjEuMDU1LDIxLjA1NSwwLDAsMCwzLjg1NS4wNTcsMTMuMDQ5LDEzLjA0OSwwLDAsMCwzLjc2MS0uNjU0QS42OTIuNjkyLDAsMCwxLDE5LjgwOSwyNi44MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljc3MiwyNi44OGEuOTg1Ljk4NSwwLDAsMS0uMjQ2LjEyOWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUsMjUuMTUsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNjIsMS4wNjIsMCwwLDEtLjE0LS4wMjgsMS4wMTYsMS4wMTYsMCwwLDEsLjE0LjEwN2MuMTYuMDEzLjMxOS4wMTkuMzE5LjAxOWEyNi44NjQsMjYuODY0LDAsMCwwLDYuNzQzLS4zMjNsLjAwOS0uMDQyQS44ODUuODg1LDAsMCwxLDE5Ljc3MiwyNi44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI1LjM4MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTE0LjExNCwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM3LjQzNywwLDAsMSwuMTE5LS4yNywxLjA2OSwxLjA2OSwwLDAsMS0uMi4xYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNTEsMjUuMTUxLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4YTEuMDU1LDEuMDU1LDAsMCwxLS4xODEtLjA0MS4zNzcuMzc3LDAsMCwxLC4wNzguMjE3LjcxNi43MTYsMCwwLDEtLjI1NC40MzIuNjczLjY3MywwLDAsMSwuMzY4LS4wNzlBMjYuMiwyNi4yLDAsMCwwLDE5LjQzOSwyNS4zODJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNC4yMjlzLjI0NS0uMDc4LjI0NS0uMTgyYS4xNDMuMTQzLDAsMCwwLS4wMTMtLjA3My4yNTQuMjU0LDAsMCwxLS4wNjEtLjE2Mi41MTQuNTE0LDAsMCwxLC4xMTktLjMsMS4wMjYsMS4wMjYsMCwwLDEtLjIuMTExYy0uMDc2LjAzMi0uMjQ1LjA4OC0uMjQ1LjA4OGEyMi41MDcsMjIuNTA3LDAsMCwxLTYuNDU4LjQ4OWMtLjEzNi0uMDEtLjMyLS4wMzItLjMyLS4wMzJhLjk1My45NTMsMCwwLDEtLjE4MS0uMDQ2LjQ1NS40NTUsMCwwLDEsLjA3OC4yNDMuODI1LjgyNSwwLDAsMS0uMjU0LjQ4NC42MTQuNjE0LDAsMCwxLC4zNjgtLjA4OUMxMy4wMTQsMjQuNzU4LDE2LjkzNSwyNS4wNDEsMTkuNDM5LDI0LjIyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI2LjQ2N3MuMjQ1LS4wNy4yNDUtLjE2M2EuMTE1LjExNSwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM1LjQzNSwwLDAsMSwuMTE5LS4yNywxLjA3LDEuMDcsMCwwLDEtLjIuMWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTYyLDI1LjE2MiwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA0MiwxLjA0MiwwLDAsMS0uMTgxLS4wNDEuMzc3LjM3NywwLDAsMSwuMDc4LjIxNy43MTcuNzE3LDAsMCwxLS4yNTQuNDMyLjY3LjY3LDAsMCwxLC4zNjgtLjA3OUEyNi4yMDcsMjYuMjA3LDAsMCwwLDE5LjQzOSwyNi40NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNi40NjdzLjI0NS0uMDcuMjQ1LS4xNjNhLjExNS4xMTUsMCwwLDAtLjAxMy0uMDY1LjIxNC4yMTQsMCwwLDEtLjA2MS0uMTQ0LjQzNS40MzUsMCwwLDEsLjExOS0uMjcsMS4wNywxLjA3LDAsMCwxLS4yLjFjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE2OCwyNS4xNjgsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNDIsMS4wNDIsMCwwLDEtLjE4MS0uMDQxLjM3Ni4zNzYsMCwwLDEsLjA3OC4yMTcuNzE3LjcxNywwLDAsMS0uMjU0LjQzMi42Ny42NywwLDAsMSwuMzY4LS4wNzlBMjYuMjA3LDI2LjIwNywwLDAsMCwxOS40MzksMjYuNDY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4yMjQsMjguNjVhLjQzNS40MzUsMCwwLDEtLjA4Ni4wMzcsOS45NjgsOS45NjgsMCwwLDEtMi4xNTUuMjA5LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU2LS4yMDkuNDM2LjQzNiwwLDAsMS0uMDg1LS4wMzZsLS4wMjUtLjAxNy0uMDI5LS4wMTlhLjExMi4xMTIsMCwwLDAsMCwuMDczYy4wMjQuMDczLjE0Ny4xLjE0Ny4xYTkuOTQzLDkuOTQzLDAsMCwwLDIuMTUuMjA5LDkuOTQyLDkuOTQyLDAsMCwwLDIuMTUtLjIwOXMuMTI2LS4wMjkuMTQ3LS4xYS4xMTguMTE4LDAsMCwwLDAtLjA3M2wtLjAyOS4wMTlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNS41cy4wNDEuMjUyLS40MTguNDIzYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNjIsMjUuMTYyLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OS40NjYtLjI0OWEyNi4yLDI2LjIsMCwwLDAsNi45MjUtLjQ3MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTExLjExMSwwLDAsMC0uMDEzLS4wNjZTMTkuOTQ0LDI1LjMxMiwxOS45NDQsMjUuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDI0LjQxNnMuMDQxLjI1Mi0uNDE4LjQyM2MtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUxLDI1LjE1MSwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOC0uMjc2LS4wMzgtLjQ2Ny0uMTYtLjQ1NS0uMzA4LDAsMC0uMDMzLS4yNDguNDY2LS4yNDhhMjYuMTkzLDI2LjE5MywwLDAsMCw2LjkyNS0uNDcycy4yNDUtLjA3LjI0NS0uMTYyYS4xMS4xMSwwLDAsMC0uMDEzLS4wNjVTMTkuOTQ0LDI0LjIyNywxOS45NDQsMjQuNDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNsKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44OTMsMjQuNDA2di0uMDIxYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNi0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTU1LDIyLjE1NSwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI0LjY0MywxOS44OTMsMjQuNDA2LDE5Ljg5MywyNC40MDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNS40OTFWMjUuNDdjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI3LS4yNDUuMDczLS4yNDUuMDczYTIyLjM4LDIyLjM4LDAsMCwxLTUuMS41aDBhMjIuMTcxLDIyLjE3MSwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI1LjcyOCwxOS44OTMsMjUuNDkxLDE5Ljg5MywyNS40OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyMy4wMzRzLjA0MS4zMjktLjQxOC41NTJjLS4wNzYuMDM3LS4yNDUuMS0uMjQ1LjFhMTkuNDA5LDE5LjQwOSwwLDAsMS02LjQ1OC41NjljLS4xMzYtLjAxMi0uMzItLjAzNy0uMzItLjAzNy0uMjc2LS4wNS0uNDY3LS4yMDktLjQ1NS0uNCwwLDAtLjAzMy0uMzI0LjQ2Ni0uMzI0YTE4LjI4MywxOC4yODMsMCwwLDAsNi45MjUtLjQ2MSwxLjAxNCwxLjAxNCwwLDAsMCwuNDQ0LS4yMzhBLjUzLjUzLDAsMCwxLDE5Ljk0NCwyMy4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI20pXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNi41ODZzLjA0MS4yNTItLjQxOC40MjNjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE1LDI1LjE1LDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OC40NjYtLjI0OGEyNi4yMDcsMjYuMjA3LDAsMCwwLDYuOTI1LS40NzJzLjI0NS0uMDcuMjQ1LS4xNjNhLjExMS4xMTEsMCwwLDAtLjAxMy0uMDY1UzE5Ljk0NCwyNi40LDE5Ljk0NCwyNi41ODZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI24pXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNi41NzZ2LS4wMjFjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI2LS4yNDUuMDczLS4yNDUuMDczYTIyLjM3MiwyMi4zNzIsMCwwLDEtNS4xLjVoMGEyMi4xNjMsMjIuMTYzLDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjYuODEzLDE5Ljg5MywyNi41NzYsMTkuODkzLDI2LjU3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDIzLjMyMVYyMy4zYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNy0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTU2LDIyLjE1NiwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDIzLjU1OCwxOS44OTMsMjMuMzIxLDE5Ljg5MywyMy4zMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQxNywyNS44ODFzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEzLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjUuOTU4LDEyLjcyMywyNS44ODMsMTIuNDE3LDI1Ljg4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbylcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDE3LDI0LjhzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEyLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjQuODc0LDEyLjcyMywyNC44LDEyLjQxNywyNC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNwKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MTcsMjYuOTY1cy0uMjM2LDAtLjI0MS4wOC4yNDYuMDg1LjI0Ni4wODUuMTc1LDAsLjMuMDA1Yy42MTktLjAxMiwxLjk5My0uMDM4LDMuNDM3LS4xNjZDMTQuMzg0LDI3LjA0MiwxMi43MjMsMjYuOTY2LDEyLjQxNywyNi45NjVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3EpXFxcIi8+PHBhdGggZD1cXFwiTTExLjk2NSwyMi43NzlzLS4yNzQuMzE1LjMxOS43MTFjMCwwLDUuNzc1LjU4Nyw3LjYtLjY5NUMxOS44ODQsMjIuNzk1LDEzLjYyMywyMy4zMiwxMS45NjUsMjIuNzc5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNyKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMzUsMjIuNzc5YTQuNDQ5LDQuNDQ5LDAsMCwwLC44MS0xLjE1NSwzLjM4NiwzLjM4NiwwLDAsMCwuMi0xLjExNSw2LjczMyw2LjczMywwLDAsMSwuNjMyLTIuOTFjLjUzNC0xLjAxNCwyLjgxLTQuNDQ3LDIuODEtNy40NjJBOC4wMTIsOC4wMTIsMCwwLDAsMTYsMmE4LjAxMiw4LjAxMiwwLDAsMC04LjQ4Myw4LjEzNmMwLDMuMDE1LDIuMjc2LDYuNDQ4LDIuODEsNy40NjJhNi43MzEsNi43MzEsMCwwLDEsLjYzMiwyLjkxLDMuMzg0LDMuMzg0LDAsMCwwLC4yLDEuMTE1LDQuNDUzLDQuNDUzLDAsMCwwLC44MSwxLjE1NSwxMy44NjYsMTMuODY2LDAsMCwwLDMuOTg3LjM3QTE1LjE1MSwxNS4xNTEsMCwwLDAsMjAuMDM1LDIyLjc3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcylcXFwiLz5cIixcblx0fSxcblx0XCJTb2xpZGl0eSAoRXRoZXJldW0pXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MxYzFjMVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIwLjQ3NywybC00LjUsOGgtOWw0LjUtOGg5XFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC40NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS41MiwzMGw0LjUtOGg5bC00LjUsOGgtOVxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNDU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTUuOTc1LDEwaDlsLTQuNS04aC05WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNjtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMjIsMjJoLTlsNC41LDhoOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjY7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDc3LDE4bDQuNS04LTQuNS04LTQuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuODtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41MiwxNGwtNC41LDgsNC41LDgsNC41LThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC44O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+XCIsXG5cdH0sXG5cdFwiU29sdXRpb24gZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4NTRjYzdcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiLTE4Mi4wNzJcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIi0yMDkuOTI4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMTgwKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zbG48L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjA0NSwyMy45OTFhMS4xNjYsMS4xNjYsMCwwLDEtMS4yMDguMTkxTDIuNzE4LDIzLjNBMS4xNjgsMS4xNjgsMCwwLDEsMiwyMi4yMjJWOS43NzhBMS4xNjUsMS4xNjUsMCwwLDEsMi43MTgsOC43bDIuMTE5LS44ODNhMS4xNjksMS4xNjksMCwwLDEsMS4yMDguMTkxbC40NzYuNDA4QS42NDYuNjQ2LDAsMCwwLDUuNSw4Ljk0MlYyMy4wNThhLjY0Ni42NDYsMCwwLDAsMS4wMjEuNTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyMjE4YVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjcxOCwyMy4zQTEuMTY5LDEuMTY5LDAsMCwxLDIsMjIuMjIydi0uMWEuNjc0LjY3NCwwLDAsMCwxLjE3NC40NTJMMjEuMjUsMi41ODNhMS43NDMsMS43NDMsMCwwLDEsMS45OS0uMzM4bDUuNzY5LDIuNzc4QTEuNzQ5LDEuNzQ5LDAsMCwxLDMwLDYuNnYuMDY3YTEuMSwxLjEsMCwwLDAtMS44LS44NTRMNi41MjEsMjMuNTgzbC0uNDc2LjQwOGExLjE2NiwxLjE2NiwwLDAsMS0xLjIwOC4xOTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNmMzM2FmXFxcIi8+PHBhdGggZD1cXFwiTTIuNzE4LDguN0ExLjE2OCwxLjE2OCwwLDAsMCwyLDkuNzc4di4xYS42NzQuNjc0LDAsMCwxLDEuMTc0LS40NTJMMjEuMjUsMjkuNDE2YTEuNzQzLDEuNzQzLDAsMCwwLDEuOTkuMzM4bDUuNzY5LTIuNzc4QTEuNzQ3LDEuNzQ3LDAsMCwwLDMwLDI1LjR2LS4wNjhhMS4xLDEuMSwwLDAsMS0xLjguODU1TDYuNTIxLDguNDE3bC0uNDc2LS40MDhhMS4xNjYsMS4xNjYsMCwwLDAtMS4yMDgtLjE5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4NTRjYzdcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjQsMjkuNzU1YTEuNzQzLDEuNzQzLDAsMCwxLTEuOTktLjMzOEExLjAyNSwxLjAyNSwwLDAsMCwyMywyOC42OTJWMy4zMDhhMS4wMjUsMS4wMjUsMCwwLDAtMS43NS0uNzI1LDEuNzQzLDEuNzQzLDAsMCwxLDEuOTktLjMzOGw1Ljc2OCwyLjc3NEExLjc0OSwxLjc0OSwwLDAsMSwzMCw2LjZWMjUuNDA1YTEuNzUxLDEuNzUxLDAsMCwxLS45OTEsMS41NzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjE3OWYxXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC4yNVxcXCI+PHBhdGggZD1cXFwiTTIyLjA5MywyOS44ODNhMS43NCwxLjc0LDAsMCwwLDEuMTQ3LS4xMjhsNS43NjgtMi43NzRBMS43NDksMS43NDksMCwwLDAsMzAsMjUuNFY2LjZhMS43NSwxLjc1LDAsMCwwLS45OTItMS41NzdMMjMuMjQsMi4yNDVhMS43NDIsMS43NDIsMCwwLDAtMS45OS4zMzlsLTkuMywxMC4yODRMNi41MjEsOC40MTZsLS40NzYtLjQwOGExLjE2OCwxLjE2OCwwLDAsMC0xLjIwNy0uMTkxTDIuNzE5LDguN0ExLjE2NywxLjE2NywwLDAsMCwyLDkuNjg5YzAsLjAyOSwwLC4wNTksMCwuMDg4VjIyLjIyMWMwLC4wMywwLC4wNTksMCwuMDg4YTEuMTY3LDEuMTY3LDAsMCwwLC43MTUuOTg5bDIuMTE5Ljg4M2ExLjIyNiwxLjIyNiwwLDAsMCwuMTU1LjA1MiwxLjE2NSwxLjE2NSwwLDAsMCwxLjA1Mi0uMjQzbC40NzYtLjQwOCw1LjQzLTQuNDUyLDkuMywxMC4yODVBMS43MzMsMS43MzMsMCwwLDAsMjIuMDkzLDI5Ljg4M1pNMjMsMTAuMDcyLDE1Ljc3LDE2LDIzLDIxLjkyN1pNNS41LDEybDMuNjE5LDRMNS41LDIwWlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjwvZz5cIixcblx0fSxcblx0XCJTUEFSUUxcIjoge1xuXHRcdGNvbG91cjogXCIjMGM0NzljXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjYuMjg0LDIwLjM2MWMtLjE2NS0uMDg0LS4zNTktLjE2NC0uNTIzLS4yNDhIMjUuOXMtMS4xNTgtLjUtMS4yNC00LjE3NmMtLjExMS0zLjY1NSwxLjEtNC4yODksMS4xLTQuMjg5YTQuOTYsNC45NiwwLDAsMCwyLjE3Ni0yLjE0Myw1LjEyMiw1LjEyMiwwLDAsMC0yLjEyMi02LjkyNyw1LjM0Miw1LjM0MiwwLDAsMC03LjEzOCwyLjE0Niw1LjA2Nyw1LjA2NywwLDAsMC0uNTIzLDMuMjE0TDE4LjEsNy44NTVzLjMsMS4zMTktMi44MzksMy4yNzJjLTMuMTE1LDEuOTUtNC41NDkuOTYyLTQuNTQ5Ljk2MmwuMDgyLjEzOGEyLjEzMSwyLjEzMSwwLDAsMC0uMjczLS4xNjcsNS4xMTcsNS4xMTcsMCwxLDAsLjgyNSw4LjUybC0uMDI1LjA1NXMxLjEyOS0uOTMzLDQuNDA3LjgyN2MyLjU5MiwxLjM3NCwyLjk3OSwyLjc0OCwzLjAzMywzLjI0YTUuMSw1LjEsMCwwLDAsMi43LDQuNyw1LjEyNCw1LjEyNCwwLDEsMCw0LjgyNS05LjA0MVptLTUuNzkuNjg1Yy0uNDEyLjEzOC0xLjYuMy00LjA3Ny0xLjAxNy0yLjctMS40NTQtMy4xMTUtMi42NjQtMy4xNjktMy4wMjFhNS40MDYsNS40MDYsMCwwLDAtLjA1Ny0xLjMxOWwuMDI5LjAyNlMxMywxNC41MzQsMTYuMDg0LDEyLjYzOWMyLjc1Ny0xLjcwNSw0LjAyNi0xLjM3NCw0LjI0NS0xLjI5M2EyLjgzLDIuODMsMCwwLDAsLjQ3LjI3Nyw0LjA4Miw0LjA4MiwwLDAsMCwuOTY0LjM4M2MuMzg3LjM1NywxLjA3NiwxLjM3NCwxLjE1OCw0LjFzLS43MTcsMy43NjQtMS4xNTgsNC4xMjFBNS4wNCw1LjA0LDAsMCwwLDIwLjQ5NCwyMS4wNDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGM0NzljXFxcIi8+PHBhdGggZD1cXFwiTTIwLjEzNSw0LjIyOWEzLjg2MSwzLjg2MSwwLDAsMC0uMDgyLDUuMzg2Yy0uNzE3LS42ODUtLjY4OC0yLjExNy4wMjktMy40NjJhLjY3My42NzMsMCwwLDEsLjc0Ni0uMjc3Yy4wMjUsMCwuMDU0LjAyOS4wODIuMDI5YS45OTMuOTkzLDAsMCwwLC4yNzYuMDI2QTEuMDU2LDEuMDU2LDAsMCwwLDIyLjIsNC44MDVhLjkzNC45MzQsMCwwLDAtLjMtLjY4NWMxLjM4LS45MDcsMi45NS0xLjAxNywzLjYxLS40MTJoLjAyOUEzLjgyNiwzLjgyNiwwLDAsMCwyMC4xMzUsNC4yMjlaTTUuMTQ1LDEzLjg0NmEzLjg1OSwzLjg1OSwwLDAsMC0uMDgyLDUuMzg5Yy0uNzE3LS42ODktLjY5Mi0yLjExNy4wMjUtMy40NjVhLjY2OC42NjgsMCwwLDEsLjc0Ni0uMjczYy4wMjUsMCwuMDU0LjAyOS4wODIuMDI5YTEsMSwwLDAsMCwuMjc2LjAyNkExLjA1NiwxLjA1NiwwLDAsMCw3LjIxLDE0LjQyNWEuOTQ1Ljk0NSwwLDAsMC0uMy0uNjg5YzEuMzc3LS45MDcsMi45NDctMS4wMTcsMy42MS0uNDEyaC4wMjVBMy44NTIsMy44NTIsMCwwLDAsNS4xNDUsMTMuODQ2Wm0xNS44NzIsOC4xNjNhMy44NjUsMy44NjUsMCwwLDAtLjA4Miw1LjM4OWMtLjcxNy0uNjg5LS42ODgtMi4xMTcuMDI5LTMuNDY1YS42NjguNjY4LDAsMCwxLC43NDYtLjI3M2MuMDI1LDAsLjA1NC4wMjYuMDgyLjAyNmEuODg3Ljg4NywwLDAsMCwuMjc2LjAyOSwxLjA1NywxLjA1NywwLDAsMCwxLjAxOC0xLjEyNi45MzYuOTM2LDAsMCwwLS4zLS42ODljMS4zOC0uOTA3LDIuOTUtMS4wMTcsMy42MS0uNDEyaC4wMjlBMy44MjksMy44MjksMCwwLDAsMjEuMDE3LDIyLjAwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJTUUZcIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUsMjMuNUg3YTUuMDE1LDUuMDE1LDAsMCwxLTUtNXYtNmE1LjAxNSw1LjAxNSwwLDAsMSw1LTVIMjVhNS4wMTUsNS4wMTUsMCwwLDEsNSw1djZhNS4wMTUsNS4wMTUsMCwwLDEtNSw1WlxcXCIvPjxwYXRoIGQ9XFxcIk03LDE5LjQ2MWE0LjgxLDQuODEsMCwwLDEtMS40MTQtLjIsNS4wNTIsNS4wNTIsMCwwLDEtMS4xMTEtLjQ3MmwtLjQuNDMyaC0uNUwzLjUsMTYuMDUySDRhOC40NjIsOC40NjIsMCwwLDAsLjQzMS45NTMsNC42MzgsNC42MzgsMCwwLDAsLjYwNi45LDMuMTc3LDMuMTc3LDAsMCwwLC44LjY3NSwxLjk4NSwxLjk4NSwwLDAsMCwxLjAyOS4yNiwxLjY3MiwxLjY3MiwwLDAsMCwxLjIxNi0uNDExQTEuMzgyLDEuMzgyLDAsMCwwLDguNSwxNy4zOTFhMS4xNTYsMS4xNTYsMCwwLDAtLjM1OS0uODYyLDIuOTQ1LDIuOTQ1LDAsMCwwLTEuMTExLS42cS0uNDktLjE2Ny0uOS0uMzF0LS43NzMtLjI5MmEyLjU4LDIuNTgsMCwwLDEtMS4yMzktMS4wMDcsMi43MywyLjczLDAsMCwxLS40MDUtMS40NjUsMi40MDYsMi40MDYsMCwwLDEsLjIxLS45ODYsMi42MDgsMi42MDgsMCwwLDEsLjYxMi0uODUsMi45NjcsMi45NjcsMCwwLDEsLjk4NS0uNTc1LDMuNzIyLDMuNzIyLDAsMCwxLDEuMzA2LS4yMjMsMy45ODQsMy45ODQsMCwwLDEsMS4yODguMiw1LjE1MSw1LjE1MSwwLDAsMSwuOTQ0LjQwOGwuMzU2LS4zN2guNTA3bC4wNDcsMi45ODhoLS41cS0uMTc1LS40ODMtLjQxMS0uOTg3YTQuMzMyLDQuMzMyLDAsMCwwLS41LS44MzksMi4zLDIuMywwLDAsMC0uNjU5LS41NzMsMS43MjksMS43MjksMCwwLDAtLjg3NS0uMjE0QTEuNDM3LDEuNDM3LDAsMCwwLDYsMTEuMjEyYTEuMjMzLDEuMjMzLDAsMCwwLS40LjkzNCwxLjE0MSwxLjE0MSwwLDAsMCwuMzQ3Ljg2LDIuOTUxLDIuOTUxLDAsMCwwLDEuMDgyLjU4OHEuNDMxLjE1NC44OC4zMDl0LjguM2EyLjg4NSwyLjg4NSwwLDAsMSwxLjI4Ni45NTUsMi41MTIsMi41MTIsMCwwLDEsLjQ0LDEuNTEyLDIuNjMyLDIuNjMyLDAsMCwxLS45MjcsMS45ODUsMy4zNjcsMy4zNjcsMCwwLDEtMS4wNzkuNkE0LjM5MSw0LjM5MSwwLDAsMSw3LDE5LjQ2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTguOTIxLDExLjQzNGE0LjMzOCw0LjMzOCwwLDAsMSwuOTcxLDEuNDMyLDQuODM0LDQuODM0LDAsMCwxLC4zNTksMS45MTQsNC45NTgsNC45NTgsMCwwLDEtLjcyLDIuNjgsNC4wMzYsNC4wMzYsMCwwLDEtMi4wMzgsMS42NjEsMi4xNTEsMi4xNTEsMCwwLDAsLjQyLDEuMjcyLDEuMTY4LDEuMTY4LDAsMCwwLC45NS41MzcsMy41NjMsMy41NjMsMCwwLDAsLjU5Mi0uMDQzcS4yNTQtLjA0My40NTgtLjF2LjU0M2E1Ljc1Myw1Ljc1MywwLDAsMS0uOTg1LjMsNi4wNTQsNi4wNTQsMCwwLDEtMS4zNy4xNTEsMi4yMDYsMi4yMDYsMCwwLDEtMS42MTItLjYyMSwyLjU3NCwyLjU3NCwwLDAsMS0uNzA4LTEuNzMyQTQuNTc5LDQuNTc5LDAsMCwxLDEzLjcsMTlhNC4xODYsNC4xODYsMCwwLDEtMS4yNTMtLjkzMiw0LjM4OCw0LjM4OCwwLDAsMS0uODQyLTEuMzc3LDQuNzY5LDQuNzY5LDAsMCwxLS4zMTItMS43NTMsNS4yMzcsNS4yMzcsMCwwLDEsLjM0Ny0xLjk0OCw0LjUsNC41LDAsMCwxLC45NTMtMS41LDQuMTE5LDQuMTE5LDAsMCwxLDEuNDI1LS45NDIsNC44Niw0Ljg2LDAsMCwxLDMuNS0uMDA5QTQuMjQ3LDQuMjQ3LDAsMCwxLDE4LjkyMSwxMS40MzRabS0xLjUsNi4yNjZhNC44NTcsNC44NTcsMCwwLDAsLjM3OS0xLjI3Myw5Ljk4MSw5Ljk4MSwwLDAsMCwuMTE3LTEuNjA2LDEwLjUzNCwxMC41MzQsMCwwLDAtLjEtMS40OCw0LjkzNiw0LjkzNiwwLDAsMC0uMzQ3LTEuMjgyLDIuNDEsMi40MSwwLDAsMC0uNjY1LS45LDEuNTcxLDEuNTcxLDAsMCwwLTEuMDMyLS4zNCwxLjczLDEuNzMsMCwwLDAtMS42LDEuMDYsNi42MzQsNi42MzQsMCwwLDAtLjU0OCwyLjk5Myw5LjU4Myw5LjU4MywwLDAsMCwuMTIsMS41NTEsNC44LDQuOCwwLDAsMCwuMzc2LDEuMjczLDIuMjg2LDIuMjg2LDAsMCwwLC42NjUuODU2LDEuNTkxLDEuNTkxLDAsMCwwLC45OTEuMzA2LDEuNjExLDEuNjExLDAsMCwwLC45OTEtLjMwOUEyLjEzNSwyLjEzNSwwLDAsMCwxNy40MjMsMTcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMjguNSwxMi44aC0uNDU1YTMuOTMsMy45MywwLDAsMC0uNi0xLjA4NiwxLjM4NSwxLjM4NSwwLDAsMC0uODEyLS42M2MtLjExNi0uMDE2LS4yNzItLjAzMS0uNDY1LS4wNDNzLS4zNzMtLjAxOS0uNTM1LS4wMTlIMjQuMzQ5djMuNDMzaC44MjJhMS45NjksMS45NjksMCwwLDAsLjYwNi0uMDgzLDEuMDU0LDEuMDU0LDAsMCwwLC40NTUtLjMsMS41OTEsMS41OTEsMCwwLDAsLjI4My0uNTE2LDIuNjM1LDIuNjM1LDAsMCwwLC4xNjYtLjYyMWguNDQzdjMuNjg2aC0uNDQzYTIuNDcxLDIuNDcxLDAsMCwwLS4xODEtLjY3NiwyLjA5NCwyLjA5NCwwLDAsMC0uMjY4LS41MjgsMS4wMTIsMS4wMTIsMCwwLDAtLjQzMS0uMjkzLDEuODQyLDEuODQyLDAsMCwwLS42My0uMWgtLjgyMnYyLjlhLjg0Mi44NDIsMCwwLDAsLjA3OS4zOC41OC41OCwwLDAsMCwuMy4yNTYsMS44NywxLjg3LDAsMCwwLC4zNTMuMXEuMjI0LjA0Ni40NDYuMDcxdi40ODJoLTQuNDZ2LS40ODJsLjQ0OS0uMDUyYTEuNTI1LDEuNTI1LDAsMCwwLC4zOTEtLjA4My41NDcuNTQ3LDAsMCwwLC4yOTItLjI0MS44NDIuODQyLDAsMCwwLC4wODItLjR2LTYuMThhLjg2Ny44NjcsMCwwLDAtLjA3My0uMzY3LjU3NS41NzUsMCwwLDAtLjMtLjI2MiwyLjM0MSwyLjM0MSwwLDAsMC0uNDMxLS4xMzZxLS4yNjgtLjA2Mi0uNDA4LS4wOHYtLjQ4MkgyOC41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNSwyMy41SDdhNS4wMTUsNS4wMTUsMCwwLDEtNS01di02YTUuMDE1LDUuMDE1LDAsMCwxLDUtNUgyNWE1LjAxNSw1LjAxNSwwLDAsMSw1LDV2NmE1LjAxNSw1LjAxNSwwLDAsMS01LDVaXFxcIi8+PHBhdGggZD1cXFwiTTcsMTkuNDYxYTQuODEsNC44MSwwLDAsMS0xLjQxNC0uMiw1LjA1Miw1LjA1MiwwLDAsMS0xLjExMS0uNDcybC0uNC40MzJoLS41TDMuNSwxNi4wNTJINGE4LjQ2Miw4LjQ2MiwwLDAsMCwuNDMxLjk1Myw0LjYzOCw0LjYzOCwwLDAsMCwuNjA2LjksMy4xNzcsMy4xNzcsMCwwLDAsLjguNjc1LDEuOTg1LDEuOTg1LDAsMCwwLDEuMDI5LjI2LDEuNjcyLDEuNjcyLDAsMCwwLDEuMjE2LS40MTFBMS4zODIsMS4zODIsMCwwLDAsOC41LDE3LjM5MWExLjE1NiwxLjE1NiwwLDAsMC0uMzU5LS44NjIsMi45NDUsMi45NDUsMCwwLDAtMS4xMTEtLjZxLS40OS0uMTY3LS45LS4zMXQtLjc3My0uMjkyYTIuNTgsMi41OCwwLDAsMS0xLjIzOS0xLjAwNywyLjczLDIuNzMsMCwwLDEtLjQwNS0xLjQ2NSwyLjQwNiwyLjQwNiwwLDAsMSwuMjEtLjk4NiwyLjYwOCwyLjYwOCwwLDAsMSwuNjEyLS44NSwyLjk2NywyLjk2NywwLDAsMSwuOTg1LS41NzUsMy43MjIsMy43MjIsMCwwLDEsMS4zMDYtLjIyMywzLjk4NCwzLjk4NCwwLDAsMSwxLjI4OC4yLDUuMTUxLDUuMTUxLDAsMCwxLC45NDQuNDA4bC4zNTYtLjM3aC41MDdsLjA0NywyLjk4OGgtLjVxLS4xNzUtLjQ4My0uNDExLS45ODdhNC4zMzIsNC4zMzIsMCwwLDAtLjUtLjgzOSwyLjMsMi4zLDAsMCwwLS42NTktLjU3MywxLjcyOSwxLjcyOSwwLDAsMC0uODc1LS4yMTRBMS40MzcsMS40MzcsMCwwLDAsNiwxMS4yMTJhMS4yMzMsMS4yMzMsMCwwLDAtLjQuOTM0LDEuMTQxLDEuMTQxLDAsMCwwLC4zNDcuODYsMi45NTEsMi45NTEsMCwwLDAsMS4wODIuNTg4cS40MzEuMTU0Ljg4LjMwOXQuOC4zYTIuODg1LDIuODg1LDAsMCwxLDEuMjg2Ljk1NSwyLjUxMiwyLjUxMiwwLDAsMSwuNDQsMS41MTIsMi42MzIsMi42MzIsMCwwLDEtLjkyNywxLjk4NSwzLjM2NywzLjM2NywwLDAsMS0xLjA3OS42QTQuMzkxLDQuMzkxLDAsMCwxLDcsMTkuNDYxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45MjEsMTEuNDM0YTQuMzM4LDQuMzM4LDAsMCwxLC45NzEsMS40MzIsNC44MzQsNC44MzQsMCwwLDEsLjM1OSwxLjkxNCw0Ljk1OCw0Ljk1OCwwLDAsMS0uNzIsMi42OCw0LjAzNiw0LjAzNiwwLDAsMS0yLjAzOCwxLjY2MSwyLjE1MSwyLjE1MSwwLDAsMCwuNDIsMS4yNzIsMS4xNjgsMS4xNjgsMCwwLDAsLjk1LjUzNywzLjU2MywzLjU2MywwLDAsMCwuNTkyLS4wNDNxLjI1NC0uMDQzLjQ1OC0uMXYuNTQzYTUuNzUzLDUuNzUzLDAsMCwxLS45ODUuMyw2LjA1NCw2LjA1NCwwLDAsMS0xLjM3LjE1MSwyLjIwNiwyLjIwNiwwLDAsMS0xLjYxMi0uNjIxLDIuNTc0LDIuNTc0LDAsMCwxLS43MDgtMS43MzJBNC41NzksNC41NzksMCwwLDEsMTMuNywxOWE0LjE4Niw0LjE4NiwwLDAsMS0xLjI1My0uOTMyLDQuMzg4LDQuMzg4LDAsMCwxLS44NDItMS4zNzcsNC43NjksNC43NjksMCwwLDEtLjMxMi0xLjc1Myw1LjIzNyw1LjIzNywwLDAsMSwuMzQ3LTEuOTQ4LDQuNSw0LjUsMCwwLDEsLjk1My0xLjUsNC4xMTksNC4xMTksMCwwLDEsMS40MjUtLjk0Miw0Ljg2LDQuODYsMCwwLDEsMy41LS4wMDlBNC4yNDcsNC4yNDcsMCwwLDEsMTguOTIxLDExLjQzNFptLTEuNSw2LjI2NmE0Ljg1Nyw0Ljg1NywwLDAsMCwuMzc5LTEuMjczLDkuOTgxLDkuOTgxLDAsMCwwLC4xMTctMS42MDYsMTAuNTM0LDEwLjUzNCwwLDAsMC0uMS0xLjQ4LDQuOTM2LDQuOTM2LDAsMCwwLS4zNDctMS4yODIsMi40MSwyLjQxLDAsMCwwLS42NjUtLjksMS41NzEsMS41NzEsMCwwLDAtMS4wMzItLjM0LDEuNzMsMS43MywwLDAsMC0xLjYsMS4wNiw2LjYzNCw2LjYzNCwwLDAsMC0uNTQ4LDIuOTkzLDkuNTgzLDkuNTgzLDAsMCwwLC4xMiwxLjU1MSw0LjgsNC44LDAsMCwwLC4zNzYsMS4yNzMsMi4yODYsMi4yODYsMCwwLDAsLjY2NS44NTYsMS41OTEsMS41OTEsMCwwLDAsLjk5MS4zMDYsMS42MTEsMS42MTEsMCwwLDAsLjk5MS0uMzA5QTIuMTM1LDIuMTM1LDAsMCwwLDE3LjQyMywxNy43WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC41LDEyLjhoLS40NTVhMy45MywzLjkzLDAsMCwwLS42LTEuMDg2LDEuMzg1LDEuMzg1LDAsMCwwLS44MTItLjYzYy0uMTE2LS4wMTYtLjI3Mi0uMDMxLS40NjUtLjA0M3MtLjM3My0uMDE5LS41MzUtLjAxOUgyNC4zNDl2My40MzNoLjgyMmExLjk2OSwxLjk2OSwwLDAsMCwuNjA2LS4wODMsMS4wNTQsMS4wNTQsMCwwLDAsLjQ1NS0uMywxLjU5MSwxLjU5MSwwLDAsMCwuMjgzLS41MTYsMi42MzUsMi42MzUsMCwwLDAsLjE2Ni0uNjIxaC40NDN2My42ODZoLS40NDNhMi40NzEsMi40NzEsMCwwLDAtLjE4MS0uNjc2LDIuMDk0LDIuMDk0LDAsMCwwLS4yNjgtLjUyOCwxLjAxMiwxLjAxMiwwLDAsMC0uNDMxLS4yOTMsMS44NDIsMS44NDIsMCwwLDAtLjYzLS4xaC0uODIydjIuOWEuODQyLjg0MiwwLDAsMCwuMDc5LjM4LjU4LjU4LDAsMCwwLC4zLjI1NiwxLjg3LDEuODcsMCwwLDAsLjM1My4xcS4yMjQuMDQ2LjQ0Ni4wNzF2LjQ4MmgtNC40NnYtLjQ4MmwuNDQ5LS4wNTJhMS41MjUsMS41MjUsMCwwLDAsLjM5MS0uMDgzLjU0Ny41NDcsMCwwLDAsLjI5Mi0uMjQxLjg0Mi44NDIsMCwwLDAsLjA4Mi0uNHYtNi4xOGEuODY3Ljg2NywwLDAsMC0uMDczLS4zNjcuNTc1LjU3NSwwLDAsMC0uMy0uMjYyLDIuMzQxLDIuMzQxLDAsMCwwLS40MzEtLjEzNnEtLjI2OC0uMDYyLS40MDgtLjA4di0uNDgySDI4LjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiU1FMXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmZGE0NFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguNTYyLDE1LjI1NkEyMS4xNTksMjEuMTU5LDAsMCwwLDE2LDE2LjQ0OWEyMS4xNTksMjEuMTU5LDAsMCwwLDcuNDM4LTEuMTk0YzEuODY0LS43MjcsMi41MjUtMS41MzUsMi41MjUtMlY5LjdhMTAuMzU3LDEwLjM1NywwLDAsMS0yLjA4NCwxLjA3NkEyMi4yOTMsMjIuMjkzLDAsMCwxLDE2LDEyLjA3OGEyMi4zNiwyMi4zNiwwLDAsMS03Ljg3OS0xLjNBMTAuMjgsMTAuMjgsMCwwLDEsNi4wMzcsOS43djMuNTVDNi4wMzcsMTMuNzI0LDYuNywxNC41MjgsOC41NjIsMTUuMjU2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGE0NFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBjNS41LDAsOS45NjMtMS43NDQsOS45NjMtMy44OTRWMjMuMjY5YTEwLjUsMTAuNSwwLDAsMS0xLjUzNS43NjJsLS4xNTcuMDYzQTIzLjQ4NywyMy40ODcsMCwwLDEsMTYsMjUuNDQ1YTIzLjQyMiwyMy40MjIsMCwwLDEtOC4yNzEtMS4zNTFjLS4wNTQtLjAyLS4xMDYtLjA0My0uMTU3LS4wNjNhMTAuNSwxMC41LDAsMCwxLTEuNTM1LS43NjJ2Mi44MzdDNi4wMzcsMjguMjU2LDEwLjUsMzAsMTYsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiNS44OTRcXFwiIHJ4PVxcXCI5Ljk2M1xcXCIgcnk9XFxcIjMuODk0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiU3F1aXJyZWxcIjoge1xuXHRcdGNvbG91cjogXCIjYTA1YTJjXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuOTY2LDI3LjNhMTguOTI2LDE4LjkyNiwwLDAsMS01LjcwNy0uOTE1Yy0xLjgzMi0uNTkyLTQuMDQ0LTEuNTQtNC45MzEtMy42NDVhLjU1Ny41NTcsMCwwLDEtLjAyNS0uMDczLDEyLjIxNCwxMi4yMTQsMCwwLDEsLjc2My03LjUzMWMxLjUyMi00LjAwOCwzLjcxLTYuNzM5LDYuNS04LjExNmExMC40MjIsMTAuNDIyLDAsMCwxLDcuNi0uNTUsMTAuNDI2LDEwLjQyNiwwLDAsMSw2LjA0LDQuNjM5LDExLjA1NywxMS4wNTcsMCwwLDEsMS4wNTgsMi4zMjYsMTAuNjYsMTAuNjYsMCwwLDEtNS4zNzgsMTIuNjg5bC0uMDIuMDA5QTE0LjgzMiwxNC44MzIsMCwwLDEsMTIuOTY2LDI3LjNaXFxcIi8+PHBhdGggZD1cXFwiTTIyLjcyLDExLjM5M2ExMC4xNDQsMTAuMTQ0LDAsMCwwLTEyLjktMy44NjlDNi43LDkuMDYxLDQuNzg0LDEyLjIsMy41OTMsMTUuMzM0YTExLjksMTEuOSwwLDAsMC0uNzQ2LDcuMTg3Yy43ODMsMS44NiwyLjc3OSwyLjc0NCw0LjU4MiwzLjMyN2ExNi4yMDYsMTYuMjA2LDAsMCwwLDExLjIxMy0uMjMyQTEwLjExLDEwLjExLDAsMCwwLDIzLjcyNywxMy42LDEwLjQ4OCwxMC40ODgsMCwwLDAsMjIuNzIsMTEuMzkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2EwNWEyY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNS43ODIsNi43MkE4LjI2Myw4LjI2MywwLDAsMSwxNy42NCw4LjA4NCw5LjY1LDkuNjUsMCwwLDEsMTkuMDgsOS44YTkuMzE3LDkuMzE3LDAsMCwxLTEuNTMxLDExLjkyMUExNC45MzMsMTQuOTMzLDAsMCwxLDcuNjU2LDI0LjdhNy41ODEsNy41ODEsMCwwLDEtNC4xMzUtMS4xLDguNDU0LDguNDU0LDAsMCwwLDMuOTA3LDIuMjQxLDE2LjIwOCwxNi4yMDgsMCwwLDAsMTEuMjE0LS4yMzNBMTAuMTEyLDEwLjExMiwwLDAsMCwyMy43MjcsMTMuNmExMC40ODcsMTAuNDg3LDAsMCwwLTEuMDA3LTIuMjExQTkuOTczLDkuOTczLDAsMCwwLDE1Ljc4Miw2LjcyWlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz48cGF0aCBkPVxcXCJNMjMuNDc2LDEzLjM4OWwtMS4wNjItMi44OTUuMTUyLS4yMzZBNi44NzUsNi44NzUsMCwwLDEsMjcuNTA5LDcuN2EyLjE3NywyLjE3NywwLDAsMSwxLjg3OS41ODgsMy4zNzYsMy4zNzYsMCwwLDEsLjEsMy43MjljLS4zNDMuMjkyLS43NTEuMTI0LTEuMjIyLS4wN2EyLjgyMSwyLjgyMSwwLDAsMC0yLjEzMy0uMjcsMTAuMiwxMC4yLDAsMCwwLTIuMDQ3LDEuMjA5WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4wMzksMTAuNTYzYzEuMjIzLTEuOSw1LjEwNy0yLjkxNSw1LjkxMi0xLjkyM2EyLjk3LDIuOTcsMCwwLDEsLjE3NywyLjk0NWMtLjI0NS4yMDctMS44MzctMS4wNTktMy4yMjUtLjQyM0ExMC41NzQsMTAuNTc0LDAsMCwwLDIzLjczLDEyLjQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUwMmQxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS40LDkuNzI3YS44LjgsMCwwLDEtLjIuNDY5Yy0uMjI5LjE2Mi0xLjktLjUwNi0zLjIzOC4wNTZhMTIuNDM5LDEyLjQzOSwwLDAsMC0yLjA3MSwxLjA3TDIzLjIsMTAuMzRjLS4wNTcuMDc0LS4xMTYuMTQ3LS4xNjUuMjIzbC42OTIsMS44ODZBMTAuNTc3LDEwLjU3NywwLDAsMSwyNS45LDExLjE2MmMxLjM4OC0uNjM2LDIuOTguNjMxLDMuMjI1LjQyM0EyLjg0NiwyLjg0NiwwLDAsMCwyOS40LDkuNzI3WlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMzgyLDI1LjE4YTIuMjM2LDIuMjM2LDAsMCwxLTEuMTQ3LS4zMjMuNTYzLjU2MywwLDAsMS0uMDgyLS44ODhjLjczNy0uNjg0LjYwNy0yLjE3My0uNDEtNC42ODlhMzYuNTI2LDM2LjUyNiwwLDAsMC01LjEyMy04LjgyNWwtLjM1LS40M2MtMS41MTItMS44NjUtMi4zNTgtMi44MTUtMy41NTQtMi4zYS41NjIuNTYyLDAsMCwxLS40MTMuMDE2LjU3MS41NzEsMCwwLDEtLjM3Ny0uNTkyLDIuMTE5LDIuMTE5LDAsMCwxLDEuNDYxLTJjNC43MTYtMS40ODEsMTAuMjYuODE0LDEyLjkwNSw1LjM0NGExMS4yLDExLjIsMCwwLDEtMS40MzEsMTMuOTkxQTEuOTE5LDEuOTE5LDAsMCwxLDIxLjM4MiwyNS4xOFpcXFwiLz48cGF0aCBkPVxcXCJNMjMuODEyLDEwLjc4M2MtMi40NDQtNC4xOTItNy43My02LjUyOC0xMi4yNy01LjA5My0xLjAwNy4yNDgtMS4wNjUsMS41MzUtMS4wNTIsMS41MTcsMS43NzYtLjc2NywyLjk1My45MTksNC41NjYsMi44OWEzNi45LDM2LjksMCwwLDEsNS4yMDksOC45NzFjLjg5LDIuMiwxLjQsNC4yNjcuMjcsNS4zMTJhMS41LDEuNSwwLDAsMCwxLjkwOS0uMjc0QTEwLjY0NiwxMC42NDYsMCwwLDAsMjMuODEyLDEwLjc4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MDJkMTZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ5LDEwLjM0NmE5LjMxNCw5LjMxNCwwLDAsMS0yLjUxOCw3LjcyNWMtLjQ1NS40ODYtLjg3My4xNzctMS4yNjMuMDYzLjEzOC4zMTMuMjcxLjYyNi40LjkzNi44OSwyLjIsMS40LDQuMjY2LjI3MSw1LjMxMmExLjUsMS41LDAsMCwwLDEuOTA5LS4yNzRDMjYuMDg5LDIwLjE4MywyNi4zNTcsMTQuOTE5LDIzLjY0OSwxMC4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuMzEzNzI1NTAxMjk4OTA0NFxcXCIvPlwiLFxuXHR9LFxuXHRcIlN0YW5cIjoge1xuXHRcdGNvbG91cjogXCIjYjIwMDFkXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX3N0YW48L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyQTE0LDE0LDAsMCwwLDUuNjg4LDI1LjQ2OWMxLjctLjUxNCwzLjQxMS0uOTkyLDQuODA2LTEuMzU3LDQuMDM3LTEuMDU0LDEwLjk0OC0yLjgzNiwxMS45NDYtNS4wODItLjI4Ljc4LTEuMjE4LDIuODctMS4yMTgsMi44Ny0xLjI3OSwxLjI0Ny03LjA5LDIuNjMxLTEwLjkxNywzLjM2Ny0xLjIyLjIzNS0yLjYxNC41MDctNC4wMjYuODA2QTE0LDE0LDAsMCwwLDI4LjQ2Nyw5LjYyOGMtMi41MjYuNDA4LTEwLjUsMS44NTQtMTIuNTM5LDIuMzE1LTIuMjU1LjUwOS02Ljc4OSwxLjQzMy03LjY5NCwyLjk5M0M4LjgsMTMuNSwxMC40OTIsOS43NDQsMTAuNDkyLDkuNzQ0YzEuMjE2LTIsNi42LTMuNDI1LDEwLjM1OC00LjQ2My44NzYtLjI0MiwxLjkyMi0uNTM5LDMuMDIzLS44NThBMTMuOTM0LDEzLjkzNCwwLDAsMCwxNiwyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2IyMDAxZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjIyMywxNC45ODdjLS4yNTIsMS4xNzUsMy41MiwyLjMxMyw2LjkyMSwzLjM4OWEyNi4zNjIsMjYuMzYyLDAsMCwxLDUuNjY3LDIuMTkyLDMuMDg1LDMuMDg1LDAsMCwwLDEuNjYyLTEuNjE0Yy4zNzctMS40ODktMy4wMTMtMy4zOTMtNS4yNzQtNC4yMjlhMzMuMzM3LDMzLjMzNywwLDAsMS00LjQwNy0yLjA0MmMtNC4zMTYsMS4xNDMtNC41NjksMi4zLTQuNTY5LDIuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OTA4MTVcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlN0YXRhIEFkb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMzYzZlOGZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiMlxcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMzBcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4YWE3YzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYzZlOGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N0YXRhPC90aXRsZT48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHJ4PVxcXCIxLjU1NlxcXCIgcnk9XFxcIjEuNTU2XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHJlY3QgeD1cXFwiMTMuMTcxXFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCIxMy4xNzFcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjEzLjE3MVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMjAuMzI2XFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIxMy4xNzFcXFwiIHk9XFxcIjIwLjMyNlxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiU3R5bHVzXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MyYzJjMlwiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9zdHlsdXM8L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjMxNSwyMC43NzZjLjcyNi0uODY5LjgxMi0xLjc2Ni4yNDktMy40MzItLjM1Ni0xLjA1NC0uOTQ3LTEuODY1LS41MTMtMi41MjEuNDYzLS43LDEuNDQ1LS4wMjEuNjI3LjkxMWwuMTY0LjExNGMuOTgzLjExNCwxLjQ2Ny0xLjIzMi43MzMtMS42MTYtMS45MzctMS4wMTEtMy42MzEuOTMzLTIuODg0LDMuMTgzLjMyLjk1NC43NjksMS45NjUuNDA2LDIuNzdBMS43OTQsMS43OTQsMCwwLDEsMy43NzMsMjEuM2MtLjg0Ny4wNDMtLjI4NS0xLjkuNjkxLTIuMzg1LjA4NS0uMDQzLjIwNi0uMS4wOTMtLjI0MmEyLjEzNCwyLjEzNCwwLDAsMC0yLjMxNCwxLjJDMS4wNjEsMjIuMTIxLDQuNDg1LDIyLjk1NCw2LjMxNSwyMC43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTI3LjQ2MiwxNC4xNGMuMjc4LjY4NC43LDEuMzYuNDQ5LDEuOTU4LS4yMDYuNTEzLS40NzcuNzI2LS43NzYuNzc2LS40Mi4wNzEtLjMwNi0xLjI0Ni40MTMtMS42MzguMDY0LS4wMzYuMTU3LS4yMDYuMDcxLS4zMDZhMS42MzYsMS42MzYsMCwwLDAtMS43Ljk2MWMtLjgsMS42ODcsMS44MjMsMi4xNSwzLjExMi40OTEuNTEzLS42NjIuNTM0LTEuMzE3LjA0My0yLjUwNi0uMzEzLS43NTUtLjc5LTEuMzE3LS40OTEtMS44MTYuMzItLjUyNywxLjA4OS0uMDcxLjUxMy42MzRsLjEyOC4wNzFjLjc0OC4wNDMsMS4wNTQtLjk1NC40ODQtMS4yQTEuODM0LDEuODM0LDAsMCwwLDI3LjQ2MiwxNC4xNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUsMTIuMzM4Yy0uNTItLjQxMy0xLjk3OS4yNzgtMi4zOTIsMS4zYTE2LjIxMywxNi4yMTMsMCwwLDEtMi4wNDMsNC4wMzdjLS44Ljg3Ni0uODc2LjItLjgtLjMwNkExNS4zMjcsMTUuMzI3LDAsMCwxLDE0LjcsMTIuNjUyYy0uMjM1LS4zNDktMS43NzMtLjMtMi44NDEsMS4zNi0uNC42MjctMS4zMSwyLjcxMy0yLjMyMSw0LjM1OC0uMjIxLjM1Ni0uNS4xMDctLjI4NS0uNzI2YTM5LjgsMzkuOCwwLDAsMSwxLjg3My01LjY4MiwzOS4wNzIsMzkuMDcyLDAsMCwxLDYuOTIxLS44MTljLjI2My0uMDcxLjQ0MS0uMzA2LDAtLjMyYTQ2Ljc3OCw0Ni43NzgsMCwwLDAtNi41OTMuNDQxLDQuOTIzLDQuOTIzLDAsMCwxLDEuNDQ1LTEuOTQ0LDEuNzg3LDEuNzg3LDAsMCwwLTIuMjY0LjcxOSwxMi4yODcsMTIuMjg3LDAsMCwwLS44MTksMS40NTMsMjQuMTk0LDI0LjE5NCwwLDAsMC0zLjk4Ljg2MmMtLjc4My4zLS43LDEuMjQ2LS4yMjEsMS4wNjhhMzEuNjMxLDMxLjYzMSwwLDAsMSwzLjgxNi0xLjEsMzAuMjkyLDMwLjI5MiwwLDAsMC0xLjg2NSw1LjY4MmMtLjQ0MSwyLjQ5MiwxLjEsMi40NzgsMS44NTgsMS41LjgxOS0xLjA3NSwyLjUyOC00Ljg1NiwyLjc5MS01LjI1NS4wNzgtLjEzNS4xODUtLjA2NC4xMjguMDU3LTEuOTA4LDMuODA5LTEuNzQ0LDUuMjgzLS4yLDQuOTU2YTQuOTI5LDQuOTI5LDAsMCwwLDIuMjE0LTEuOTY1Yy4wNjQtLjE1LjItLjEzNS4xNzEtLjA3MS0xLjIxLDMuMTQtMi43NDgsNS42ODItMy43ODEsNi40NzktLjk0LjcxOS0xLjYzOC0uODQsMS42ODctMy4wNzYuNDkxLS4zMzUuMjYzLS43OS0uMjkyLS42MzRoMGEyOS43OTMsMjkuNzkzLDAsMCwwLTguNzg2LDMuMzI1Yy0uMTY0LjExNC0uMzEzLjIwNi0uMzA2LjQ0MS4wMDcuMTM1LjI0Mi4wODUuMzU2LjAxNEEyMi43NzEsMjIuNzcxLDAsMCwxLDExLjEsMjAuOWEuMTU4LjE1OCwwLDAsMCwuMTE0LjAwN2MuMTIxLS4wMjguMTE0LjAzNi4wMzYuMDg1LS4xNzguMS0uMzU2LjE5Mi0uNC4yMDYtMS43NjYuNjkxLTIuODM0LDIuMjE0LTIuNDU2LDIuOTkuMzIuNjY5LDIuMDUxLjQyNywyLjg2OS0uMDE0LDIuMDA4LTEuMDg5LDMuNDY4LTMuMjI1LDQuNDY0LTYuMTczQzE2LjYsMTUuMzg2LDE3LjY5MywxMi40MjQsMTcuOTUsMTIuMzM4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42MiwxOC4zNjlhNDguMTQ1LDQ4LjE0NSwwLDAsMC0xMy40MjkuOTY4Yy0uOTI2LjI0Mi0uNjY5LjczMy0uMi42NDEuMDA3LDAsLjIwNi0uMDUuMjE0LS4wNWE0Mi4yNzksNDIuMjc5LDAsMCwxLDEyLjM3NS0uMjQyQzI5LjAxNCwxOS43NjUsMzAuMzE3LDE4LjQ2MiwyOS42MiwxOC4zNjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljg2MSwxNy45ODVjLjkxMS0uNDU2LDIuMjY0LTMuMjc1LDMuMTU0LTQuODIuMDY0LS4xMTQuMTc4LS4wMjEuMTE0LjA1Ny0yLjI1LDMuODczLTEuMyw0LjMyMi0uNDA2LDQuMjY1LDEuMTg5LS4wNzEsMi4yODYtMS43OCwyLjUyOC0yLjE2NS4xLS4xNS4xNTctLjAyOC4xLjA3OC0uMDU3LjE3OC0uMjYzLjQ5MS0uNDU2LjkxOS0uMjcxLjYwNS4wMTQuODQuMjQ5Ljk0Ny4zNy4xNzgsMS4zODEuMDY0LDEuNTM4LS41NTUtMS4wMTEtLjAyMSwxLjQxLTQuNzkyLDEuNjU5LTUuMDg0YTEuNzE4LDEuNzE4LDAsMCwwLTIuMi45NzVjLTEuMDE4LDIuMDE1LTEuODczLDMuNjM4LTIuNDA3LDMuNjY3LTEuMDQuMDU3LDEuMi00LjQ5MywxLjU1OS00LjYzNS0uMjIxLS4zMi0xLjYzOC0uMTg1LTIuNDI4LDEuMDQtLjI4NS40NDEtMi4wMjIsMy41MTctMi40NDksNC4wMjMtLjc1NS45LS44MTIuMTI4LS42LS43NjlhMTAuNTY5LDEwLjU2OSwwLDAsMSwuMzQ5LTEuMTMyLDUuMzI0LDUuMzI0LDAsMCwxLDEuMzYtMS44NDRjMi4yLTIuNDQyLDMuNDYtNC40MjIsMi45NjItNS4yLS40NDEtLjY5MS0xLjkxNS0uMzg0LTIuODYyLDEuMDQtMS43NDQsMi42MTMtMy4zNTQsNi4xOTUtMy41Niw3LjgzMlMxOC4wNTYsMTguMzgzLDE4Ljg2MSwxNy45ODVabS45MjYtNC43OTJjLjA3OC0uMTc4LjEyOC0uMjI4LjI2My0uNTI3aDBBMjQuOTM0LDI0LjkzNCwwLDAsMSwyMi40OTIsOC4yOGMuNDItLjQ0MSwxLjAxMS4xNTctLjA1NywxLjc5NGExNi40NjIsMTYuNDYyLDAsMCwxLTIuMTE1LDIuNjQydi4wMDdjLS4yLjIyMS0uMzc3LjQwNi0uNDU2LjUxM0MxOS44MDgsMTMuMzA3LDE5Ljc0NCwxMy4yOTIsMTkuNzg3LDEzLjE5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0fSxcblx0XCJTVkdcIjoge1xuXHRcdGNvbG91cjogXCIjZmZiMTNiXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTEuMjIyLDkuMDZBMi4yMTgsMi4yMTgsMCwxLDAsOSwxMS4yNzhMMjAuNzc4LDIzLjA1MkEyLjIxOCwyLjIxOCwwLDEsMCwyMywyMC44MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTY4LDcuNzNhMi4yMTgsMi4yMTgsMCwxLDAtMy4xMzcsMFYyNC4zODJhMi4yMTgsMi4yMTgsMCwxLDAsMy4xMzcsMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2I7c3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjMuNzMwMDAwMDE5MDczNDlweFxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTExLjIyMiw5LjA2QTIuMjE4LDIuMjE4LDAsMSwwLDksMTEuMjc4TDIwLjc3OCwyMy4wNTJBMi4yMTgsMi4yMTgsMCwxLDAsMjMsMjAuODM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NjgsNy43M2EyLjIxOCwyLjIxOCwwLDEsMC0zLjEzNywwVjI0LjM4MmEyLjIxOCwyLjIxOCwwLDEsMCwzLjEzNywwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTIsMTYuMDU2SDMwVjI1Ljk1YTQuMDM1LDQuMDM1LDAsMCwxLTQuMTA2LDQuMTA2SDYuMTA2QTQuMDM1LDQuMDM1LDAsMCwxLDIsMjUuOTVaXFxcIi8+PHBhdGggZD1cXFwiTTYuMiwyMy4wNDVBMy42MjgsMy42MjgsMCwxLDEsMTIuNCwyMC40OEgxMC4yN0ExLjUsMS41LDAsMSwwLDcuNywyMS41NDFoMGExLjYsMS42LDAsMCwwLDEuMDYyLjQ0MWgwYTQuMTE4LDQuMTE4LDAsMCwxLDIuNTY2LDEuMDYzaDBhMy42MjgsMy42MjgsMCwxLDEtNi4xOTQsMi41NjVINy4yNjRBMS41LDEuNSwwLDEsMCw5LjgzLDI0LjU1aDBhMS45NDgsMS45NDgsMCwwLDAtMS4wNjMtLjQ0aDBBNC40NjUsNC40NjUsMCwwLDEsNi4yLDIzLjA0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuNjUxLDE2Ljg1MiwxNy4wODUsMjkuMjRIMTQuOTZMMTIuNCwxNi44NTJIMTQuNTJsMS41LDcuMjU1LDEuNS03LjI1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjgsMjEuOTgzaDMuNjI4djMuNjI4aDBhMy42MjgsMy42MjgsMCwxLDEtNy4yNTcsMGgwVjIwLjQ4aDBhMy42MjgsMy42MjgsMCwwLDEsNy4yNTcsMEgyNC43ODNhMS41LDEuNSwwLDEsMC0zLjAwNSwwdjUuMTNoMGExLjUsMS41LDAsMCwwLDMuMDA1LDBoMHYtMS41aC0xLjVWMjEuOTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlN3aWZ0XCI6IHtcblx0XHRjb2xvdXI6IFwiI0ZBNUQyRFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzNC40OTRcXFwiIHkxPVxcXCItMTcxLjgyXFxcIiB4Mj1cXFwiLTEzNC40OTdcXFwiIHkyPVxcXCItMTcxLjg5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDI0MCwgMCwgMCwgLTIwNS42LCAzMjI5NSwgLTM1MzEyLjU4NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmODg1MzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZDIyMjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N3aWZ0PC90aXRsZT48cGF0aCBkPVxcXCJNMTkuNDIyLDQuMDA3czYuMjE3LDMuNTU0LDcuODQ0LDkuMmMxLjQ2Niw1LjEuMjkyLDcuNTM0LjI5Miw3LjUzNGE4LjkxNSw4LjkxNSwwLDAsMSwxLjc0MiwyLjgsNC44MjUsNC44MjUsMCwwLDEsLjI5LDQuNDUzcy0uMS0yLjA4LTMuMi0yLjUxMWMtMi44NDEtLjQtMy44NzQsMi4zNjYtOS4zLDIuMjMyQTE4LjQzNSwxOC40MzUsMCwwLDEsMiwxOS4zNTRDNC42NTEsMjAuOCw4LjEyNCwyMy4wNDUsMTIuNDQ5LDIyLjdzNS4yMjgtMS42NzQsNS4yMjgtMS42NzRBNjYuOSw2Ni45LDAsMCwxLDQuODkxLDcuNjQzYzMuNCwyLjg0NSwxMS44MjIsOC41MDcsMTEuNjI2LDguMzYzQTc1LjgyNiw3NS44MjYsMCwwLDEsOC4wOTIsNi4yNFMyMC43MjgsMTYuNjI5LDIxLjc0NSwxNi41NjNjLjQxOC0uODYxLDIuNTc5LTUuMzE4LTIuMzI0LTEyLjU1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzMGQ0NzVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDEydjhINS4yNTZWMTguNzY5SDMuM1YxMy4yMzFINS4yNTZWMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljc0NCwxMnYxLjIzMUgyOC43djUuNTM4SDI2Ljc0NFYyMEgzMFYxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTcuNjI4LDE2bDUuMjEtMi43Njl2NS41MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjEyLjA5M1xcXCIgY3k9XFxcIjE2XFxcIiByeD1cXFwiMi45M1xcXCIgcnk9XFxcIjIuNzY5XFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+XCIsXG5cdH0sXG5cdFwiVDQgdGVtcGxhdGluZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMxZTg4ZTVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xOS41NDUsNi4wMzVIMTMuMjdWMjRIOC4zVjYuMDM1SDIuMDU1VjJoMTcuNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2NywxMFYyMi42MDhoMi40VjI1LjloLTIuNFYzMEgyMy41NTFWMjUuOUgxNC44MzRWMjIuNDU1cTEuMTU4LTEuMywyLjQtMi44Mzh0Mi40LTMuMTczcTEuMTU4LTEuNjMyLDIuMTU1LTMuMjg1QTMyLjkyNSwzMi45MjUsMCwwLDAsMjMuNDgxLDEwWk0xOC43ODEsMjIuNjA4aDQuNzdWMTUuNjIxcS0uNDg4LjkwNy0xLjA2LDEuODM0dC0xLjIsMS44MjdxLS42MjguOS0xLjI2OSwxLjc0M1QxOC43ODEsMjIuNjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPlwiLFxuXHR9LFxuXHRcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIjoge1xuXHRcdGNvbG91cjogXCIjMWU4OGU1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTkuNTQ1LDYuMDM1SDEzLjI3VjI0SDguM1Y2LjAzNUgyLjA1NVYyaDE3LjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjcsMTBWMjIuNjA4aDIuNFYyNS45aC0yLjRWMzBIMjMuNTUxVjI1LjlIMTQuODM0VjIyLjQ1NXExLjE1OC0xLjMsMi40LTIuODM4dDIuNC0zLjE3M3ExLjE1OC0xLjYzMiwyLjE1NS0zLjI4NUEzMi45MjUsMzIuOTI1LDAsMCwwLDIzLjQ4MSwxMFpNMTguNzgxLDIyLjYwOGg0Ljc3VjE1LjYyMXEtLjQ4OC45MDctMS4wNiwxLjgzNHQtMS4yLDEuODI3cS0uNjI4LjktMS4yNjksMS43NDNUMTguNzgxLDIyLjYwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz5cIixcblx0fSxcblx0XCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCI6IHtcblx0XHRjb2xvdXI6IFwiIzFlODhlNVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE5LjU0NSw2LjAzNUgxMy4yN1YyNEg4LjNWNi4wMzVIMi4wNTVWMmgxNy40OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTY3LDEwVjIyLjYwOGgyLjRWMjUuOWgtMi40VjMwSDIzLjU1MVYyNS45SDE0LjgzNFYyMi40NTVxMS4xNTgtMS4zLDIuNC0yLjgzOHQyLjQtMy4xNzNxMS4xNTgtMS42MzIsMi4xNTUtMy4yODVBMzIuOTI1LDMyLjkyNSwwLDAsMCwyMy40ODEsMTBaTTE4Ljc4MSwyMi42MDhoNC43N1YxNS42MjFxLS40ODguOTA3LTEuMDYsMS44MzR0LTEuMiwxLjgyN3EtLjYyOC45LTEuMjY5LDEuNzQzVDE4Ljc4MSwyMi42MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+XCIsXG5cdH0sXG5cdFwiVGNsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VmZjFjYlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIxLjk0MiwyLjg3NmMuMDQsMi40NjgtLjAzMyw0LjkxLTIuMTY5LDcuMjNsLS4wNzkuMDg5aC4xMTlsLjg3My4wMTNjLTEuNDE4LDIuOTUtMi4zNDEsNS44OTItNC4zOCw4LjgzbC0uMDczLjEwNi4xMjYtLjAyMywxLjA3OC0uMmE1Ljg1MSw1Ljg1MSwwLDAsMS0zLjQ4NCwzLjY1Yy0uMzktNS40NTUsMi4zMzMtMTAuMjcsNC42NDUtMTUuMDcxbC4wMDctLjAxMy0uMDg2LS4wNmMtMy43ODYsNC4yMzMtNS40OTEsMTAuMi02LjEzNiwxNS4xMjdhNC41ODIsNC41ODIsMCwwLDEtMi4xNDUtMi45ODhsLjkuMzc3LjA5My4wNC0uMDItLjFjLS42ODEtMy4wMjguMzc2LTUuMiwxLjQtOC4wNTZsLjczNy40OTMuMDg2LjA2LDAtLjFjLS4wNTgtMi4zMiwxLjUtNC42NDksMy41NzctNi43MjdsLjI4OC43Ny4wNC4xLjA1Ni0uMS42MzEtMS4wNTEsMC0uMDA3QTYuMSw2LjEsMCwwLDEsMjEuOTQyLDIuODc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MzYjE1ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NDgsMi44NzVhNi4xMzEsNi4xMzEsMCwwLDAtMy45MjYsMi4zODhsMCwuMDA3LS42MzEsMS4wNTEtLjA1Ni4xLS4wNC0uMUwxNyw1LjU0NGMtMi4wNzIsMi4wNzgtMy42MzUsNC40MDctMy41NzcsNi43MjdsMCwuMS0uMDg2LS4wNi0uNzM3LS40OTNjLTEuMDI1LDIuODU2LTIuMDgzLDUuMDI5LTEuNCw4LjA1NmwuMDIuMS0uMDkzLS4wNC0uODg2LS4zNzRjMCwuMDE4LjAwNy4wMzUuMDEuMDUzYTQuNTMzLDQuNTMzLDAsMCwwLDIuMTI2LDIuOTMyYy4wNS0uMzgxLjEwNS0uNzcxLjE2OS0xLjE2NC0xLjU0My0zLjYxNC0uMi02LjI3MS40MDctOC42NjFsLjkzOS41NDJjLS4xMy0yLjIzOCwxLjE4NC00LjY1MSwyLjg5My02Ljc1N2wuNS44NzNDMTguNTU1LDQuNzY5LDE5LjU2LDMuNzIsMjEuOTQ4LDIuODc1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmZjFjYjtzdHJva2U6I2VmZjFjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MTgsMmwtLjA1Ni4wMWMtMi4wODIuMzYzLTQuMTIxLDEuMTI4LTUuMDE1LDIuOTU5bC0uMzc3LS42NTgtLjAzMy0uMDYtLjA1LjA1YTIwLjg1LDIwLjg1LDAsMCwwLTIuOTM5LDMuNUE1LjkzOSw1LjkzOSwwLDAsMCwxMi44MzUsMTFsLS41MzItLjY2NC0uMDUzLS4wNjYtLjAzNi4wNzZhMjcuNTM1LDI3LjUzNSwwLDAsMC0xLjY5Myw0LjcsNi43Myw2LjczLDAsMCwwLS4xNTksMy43MTlsLS44NzYtLjUwOS0uMDczLS4wNDMtLjAwNy4wODZhNS41MjksNS41MjksMCwwLDAsMi4wMTcsNC44NDNsLS45NzIuMjQxLS4yLjA1LjIuMDUzYTQuMjU4LDQuMjU4LDAsMCwxLDEuNDU1LjYsMS4zMjUsMS4zMjUsMCwwLDEsLjUxNiwxLjNWMjguMWwuMDEuMDEzLDEuMjE3LDEuNzQ1LjEuMTM5VjI1LjcxOWEzLjQ2NiwzLjQ2NiwwLDAsMSwuNjIxLTEuNDg0QTEuNjM5LDEuNjM5LDAsMCwxLDE1LjUsMjMuN2wuMTgyLS4wMjMtLjE2NS0uMDc2LS42NDEtLjNhOS4xMTIsOS4xMTIsMCwwLDAsMy42OTMtNS4zMjJsLjAyLS4wODYtLjA4My4wMjMtLjc5My4yMTVhMTEuNjY5LDExLjY2OSwwLDAsMCwyLjA4OS0zLjVDMjAuNTEyLDEzLDIxLjE4LDExLjE2NiwyMS43MjgsOS43bC4wMy0uMDc5LS4wODMuMDA3LS42MTIuMDQzYTYuNjU1LDYuNjU1LDAsMCwwLDEuMzgyLTMuNTI3LDE3LjAzOSwxNy4wMzksMCwwLDAsLjA3OS00LjA4NlptLS41NzUuODc2Yy4wNCwyLjQ2OC0uMDMzLDQuOTEtMi4xNjksNy4yM2wtLjA3OS4wODloLjExOWwuODczLjAxM2MtMS40MTgsMi45NS0yLjM0MSw1Ljg5Mi00LjM4LDguODNsLS4wNzMuMTA2LjEyNi0uMDIzLDEuMDc4LS4yYTUuODUxLDUuODUxLDAsMCwxLTMuNDg0LDMuNjVjLS4zOS01LjQ1NSwyLjMzMy0xMC4yNyw0LjY0NS0xNS4wNzFsLjAwNy0uMDEzLS4wODYtLjA2Yy0zLjc4Niw0LjIzMy01LjQ5MSwxMC4yLTYuMTM2LDE1LjEyN2E0LjU4Miw0LjU4MiwwLDAsMS0yLjE0NS0yLjk4OGwuOS4zNzcuMDkzLjA0LS4wMi0uMWMtLjY4MS0zLjAyOC4zNzYtNS4yLDEuNC04LjA1NmwuNzM3LjQ5My4wODYuMDYsMC0uMWMtLjA1OC0yLjMyLDEuNS00LjY0OSwzLjU3Ny02LjcyN2wuMjg4Ljc3LjA0LjEuMDU2LS4xLjYzMS0xLjA1MSwwLS4wMDdBNi4xLDYuMSwwLDAsMSwyMS45NDIsMi44NzZaXFxcIi8+XCIsXG5cdH0sXG5cdFwiVGVtcGxhdGUgVG9vbGtpdCAyXCI6IHtcblx0XHRjb2xvdXI6IFwiIzNiY2VmY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguOTA3LDIzLjAyMUg4Ljg3OGEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxQTIuNTYxLDIuNTYxLDAsMCwxLDUuODMsMjAuMzM0VjE2LjFINC4yODhhMy4wNSwzLjA1LDAsMCwxLTIuNzM4LTEuNjksMy4zLDMuMywwLDAsMSwuNDQxLTMuNTMsMi4yNjUsMi4yNjUsMCwwLDEsMS44MTUtLjloOS42NWEzLjA1LDMuMDUsMCwwLDEsMi43MzgsMS42OSwzLjMsMy4zLDAsMCwxLS40NDEsMy41MywyLjI2NSwyLjI2NSwwLDAsMS0xLjgxNS45SDExLjk1NXY0LjIzMWEyLjU2MSwyLjU2MSwwLDAsMS0xLjAzNywyLjAyNkEzLjMwNSwzLjMwNSwwLDAsMSw4LjkwNywyMy4wMjFaTTQuMjY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhINy40ODd2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMTAuMzd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFIOC44MDZhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDQuMTkyQTEuNTMzLDEuNTMzLDAsMCwxLDIuNjYsMTIuOTg2di0uMDMzQTEuNTMzLDEuNTMzLDAsMCwxLDQuMTkyLDExLjQyaDkuMjU3QTEuNTMzLDEuNTMzLDAsMCwxLDE0Ljk4MSwxMi45NTNabS00LjIyMyw5LjIyMmEyLjQxOCwyLjQxOCwwLDAsMCwuOTgtMS45MTJWMTUuODg4aDIuMTI3YTIuMTE0LDIuMTE0LDAsMCwwLDEuNy0uODQ2LDIuOTkyLDIuOTkyLDAsMCwwLTIuMTgtNC45OUgzLjczNWEyLjExNCwyLjExNCwwLDAsMC0xLjcuODQ2LDIuOTkyLDIuOTkyLDAsMCwwLDIuMTgsNC45OUg1Ljl2NC4zNzVhMi40MTgsMi40MTgsMCwwLDAsLjk4LDEuOTEyLDMuMTYsMy4xNiwwLDAsMCwxLjkyMy42MzFoLjAyOUEzLjE2LDMuMTYsMCwwLDAsMTAuNzU4LDIyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYmNlZmNcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjA3LDIzLjAyMWgtLjAyOWEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxLDIuNTYxLDIuNTYxLDAsMCwxLTEuMDM3LTIuMDI2VjE2LjFIMTguOTg4YTMuMDUsMy4wNSwwLDAsMS0yLjczOC0xLjY5LDMuMywzLjMsMCwwLDEsLjQ0MS0zLjUzLDIuMjY1LDIuMjY1LDAsMCwxLDEuODE1LS45aDkuNjVhMy4wNSwzLjA1LDAsMCwxLDIuNzM4LDEuNjksMy4zLDMuMywwLDAsMS0uNDQxLDMuNTMsMi4yNjUsMi4yNjUsMCwwLDEtMS44MTUuOUgyNi42NTV2NC4yMzFhMi41NjEsMi41NjEsMCwwLDEtMS4wMzcsMi4wMjZBMy4zMDUsMy4zMDUsMCwwLDEsMjMuNjA3LDIzLjAyMVpNMTguOTY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhoMy4yMjN2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMjUuMDd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFoLS4wMjlhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDE4Ljg5MmExLjUzMywxLjUzMywwLDAsMS0xLjUzMy0xLjUzM3YtLjAzM2ExLjUzMywxLjUzMywwLDAsMSwxLjUzMy0xLjUzM2g5LjI1N0ExLjUzMywxLjUzMywwLDAsMSwyOS42ODEsMTIuOTUzWm0tNC4yMjMsOS4yMjJhMi40MTgsMi40MTgsMCwwLDAsLjk4LTEuOTEyVjE1Ljg4OGgyLjEyN2EyLjExNCwyLjExNCwwLDAsMCwxLjctLjg0NiwyLjk5MiwyLjk5MiwwLDAsMC0yLjE4LTQuOTloLTkuNjVhMi4xMTQsMi4xMTQsMCwwLDAtMS43Ljg0NiwyLjk5MiwyLjk5MiwwLDAsMCwyLjE4LDQuOTlIMjAuNnY0LjM3NWEyLjQxOCwyLjQxOCwwLDAsMCwuOTgsMS45MTIsMy4xNiwzLjE2LDAsMCwwLDEuOTIzLjYzMWguMDI5QTMuMTYsMy4xNiwwLDAsMCwyNS40NTgsMjIuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzNiY2VmY1xcXCIvPlwiLFxuXHR9LFxuXHRcIlRlWFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZmNmY2ZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMS4zMzMsMTMuMTIyYy0uMTI4LTEuNTYyLS4yNDEtMi43NTYtMi4yODctMi43NTZINy45MXY4LjRoMi4xNDV2LjYxMWwtMy4wODMtLjAyOS0zLjA4Mi4wMjl2LS42MTFINi4wMzR2LTguNEg0Ljg4NGMtMi4wNDYsMC0yLjE1OSwxLjIwOC0yLjI4NywyLjc1NkgybC4yODQtMy4zNjdoOS4zNjJsLjI4NCwzLjM2N2gtLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyMi41M0gxMC40MVYyMS45MmgxLjUwNlYxMy40NjdIMTAuNDF2LS42MTFoOC42MzdsLjQxMiwzLjM2N2gtLjZjLS4yMTMtMS44MzMtLjY4Mi0yLjc1Ni0yLjg1NS0yLjc1NkgxMy43OTFWMTcuMmguODM4YzEuMzY0LDAsMS41MDUtLjYsMS41MDUtMS42NjJoLjZ2My45MzVoLS42YzAtMS4wOC0uMTQyLTEuNjYyLTEuNTA1LTEuNjYyaC0uODM4djQuMTA2aDIuMjE2YzIuNDcyLDAsMy0xLjEwOCwzLjMtMy4yMjVoLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjcyNywxOS4xODZjLS41NCwwLTEuOTYsMC0yLjQxNS4wMjlWMTguNmgxLjE3OWwtMi41NTctMy41NTItMi41MjksMy4zODFBNC4xLDQuMSwwLDAsMCwyMi43LDE4LjZ2LjYxMWMtLjM1NS0uMDI5LTEuNTc2LS4wMjktMi4wMTctLjAyOS0uNCwwLTEuNTQ4LDAtMS44NzUuMDI5VjE4LjZoLjM4M2E3LjQ1OSw3LjQ1OSwwLDAsMCwuODI0LS4wNDNjLjUtLjA0My41NC0uMDg1LjY2Ny0uMjU2TDIzLjUzNiwxNC41bC0zLjE1My00LjQxOEgxOVY5LjQ3Yy4zODQuMDI4LDEuNzkuMDI4LDIuMjczLjAyOC41ODIsMCwxLjkxOCwwLDIuNDI5LS4wMjh2LjYxMUgyMi41MjhsMi4xMTcsMi45NTUsMi4wNzQtMi43ODRhNC4xLDQuMSwwLDAsMC0xLjI5My0uMTdWOS40N2MuMzU2LjAyOCwxLjU5MS4wMjgsMi4wMzIuMDI4LjQsMCwxLjUzNCwwLDEuODYxLS4wMjh2LjYxMWgtLjM2OWE1LjI2NCw1LjI2NCwwLDAsMC0uODM4LjA0M2MtLjQ2OS4wNDMtLjUyNi4wNzEtLjY2Ny4yNTZsLTIuNCwzLjIxTDI4LjYzNiwxOC42SDMwdi42MTFDMjkuNjQ1LDE5LjE4NiwyOC4xODIsMTkuMTg2LDI3LjcyNywxOS4xODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIlXCIsXG5cdFx0XSxcblx0fSxcblx0XCJUZXh0aWxlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmZTdhY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI4LjY4MSwyNi4wNzVIMy4zMTlBMS4zMTcsMS4zMTcsMCwwLDEsMiwyNC43NTZWNy4yNDRBMS4zMTcsMS4zMTcsMCwwLDEsMy4zMTksNS45MjVIMjguNjgxQTEuMzE3LDEuMzE3LDAsMCwxLDMwLDcuMjQ0VjI0Ljc2QTEuMzE2LDEuMzE2LDAsMCwxLDI4LjY4MSwyNi4wNzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlN2FjXFxcIi8+PHBhdGggZD1cXFwiTTYuMDY2LDEyLjg0OGE0Ljk4Nyw0Ljk4NywwLDAsMSwxLjUwOC0uNjU5VjEwLjY2NGEzLjcsMy43LDAsMCwxLC43NDMtLjMzLDcuODY5LDcuODY5LDAsMCwxLDEuMzI3LS4zNDdoLjY0MnYyLjM5MWgyLjQ4NFYxMy42SDEwLjI4NnY0Ljg0OGEzLjE3MiwzLjE3MiwwLDAsMCwuMjksMS42MDksMS4wNywxLjA3LDAsMCwwLC45NzEuNDQ4LDcuMTI3LDcuMTI3LDAsMCwwLC43Ni0uMDQ4LDMuMzM4LDMuMzM4LDAsMCwwLC43ODItLjE4bC4xMzIuNjJhMi4zODgsMi4zODgsMCwwLDEtLjUuMzU2LDUuNDU3LDUuNDU3LDAsMCwxLS43NTIuMzU2LDUuODM3LDUuODM3LDAsMCwxLS45MjMuMjgxQTQuNzY5LDQuNzY5LDAsMCwxLDEwLDIyYTIuMzg1LDIuMzg1LDAsMCwxLTEuODI0LS42MzcsMi45NDcsMi45NDcsMCwwLDEtLjYtMi4wNjJWMTMuNTkxSDYuMDY2WlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC42MDcsMjAuNDUzYTEuNDQ3LDEuNDQ3LDAsMCwxLC40MzEtMS4wOSwxLjU5MSwxLjU5MSwwLDAsMSwxLjE0Ny0uNDEzLDEuNjQ5LDEuNjQ5LDAsMCwxLDEuMTY1LjQxMywxLjQyMiwxLjQyMiwwLDAsMSwuNDUzLDEuMDksMS4zNjksMS4zNjksMCwwLDEtLjQ1MywxLjA4MSwxLjY5MiwxLjY5MiwwLDAsMS0xLjE2NS40LDEuNjEsMS42MSwwLDAsMS0xLjE0Ny0uNEExLjQyNywxLjQyNywwLDAsMSwxNC42MDcsMjAuNDUzWlxcXCIvPlwiLFxuXHR9LFxuXHRcIlRPTUxcIjoge1xuXHRcdGNvbG91cjogXCIjYmZiZmJmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjIuNzYsNi44M3YzLjI1aC01VjI1LjE3SDE0LjI2VjEwLjA4aC01VjYuODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y3ZjdmXFxcIi8+PHBhdGggZD1cXFwiTTIsMkg4LjJWNS4wOUg1LjM0djIxLjhIOC4yVjMwSDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PHBhdGggZD1cXFwiTTMwLDMwSDIzLjhWMjYuOTFoMi44NlY1LjExSDIzLjhWMkgzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmZcXFwiLz5cIixcblx0fSxcblx0XCJUU0NvbmZpZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDdhY2NcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMy44MjcsOC4yNDNBNC40MjQsNC40MjQsMCwwLDEsMjYuMDUsOS41MjRhNS44NTMsNS44NTMsMCwwLDEsLjg1MiwxLjE0M2MuMDExLjA0NS0xLjUzNCwxLjA4My0yLjQ3MSwxLjY2Mi0uMDM0LjAyMy0uMTY5LS4xMjQtLjMyMi0uMzVhMi4wMTQsMi4wMTQsMCwwLDAtMS42Ny0xYy0xLjA3Ny0uMDc0LTEuNzcxLjQ5LTEuNzY2LDEuNDMzYTEuMywxLjMsMCwwLDAsLjE1My42NjZjLjIzNy40OS42NzcuNzg0LDIuMDU5LDEuMzgzLDIuNTQ0LDEuMSwzLjYzNiwxLjgxNyw0LjMxLDIuODQzYTUuMTU4LDUuMTU4LDAsMCwxLC40MTYsNC4zMzMsNC43NjQsNC43NjQsMCwwLDEtMy45MzIsMi44MTUsMTAuOSwxMC45LDAsMCwxLTIuNzA4LS4wMjgsNi41MzEsNi41MzEsMCwwLDEtMy42MTYtMS44ODQsNi4yNzgsNi4yNzgsMCwwLDEtLjkyNi0xLjM3MSwyLjY1NSwyLjY1NSwwLDAsMSwuMzI3LS4yMDhjLjE1OC0uMDkuNzU2LS40MzQsMS4zMi0uNzYxbDEuMDI0LS42LjIxNC4zMTJhNC43NzEsNC43NzEsMCwwLDAsMS4zNSwxLjI5MiwzLjMsMy4zLDAsMCwwLDMuNDU4LS4xNzUsMS41NDUsMS41NDUsMCwwLDAsLjItMS45NzRjLS4yNzYtLjQtLjg0LS43MjctMi40NDMtMS40MjJhOC44LDguOCwwLDAsMS0zLjM0OS0yLjA1NSw0LjY4Nyw0LjY4NywwLDAsMS0uOTc2LTEuNzc3LDcuMTE2LDcuMTE2LDAsMCwxLS4wNjItMi4yNjgsNC4zMzIsNC4zMzIsMCwwLDEsMy42NDQtMy4zNzRBOSw5LDAsMCwxLDIzLjgyNyw4LjI0M1pNMTUuNDg0LDkuNzI2bC4wMTEsMS40NTRoLTQuNjNWMjQuMzI4SDcuNlYxMS4xODNIMi45N1Y5Ljc1NWExMy45ODYsMTMuOTg2LDAsMCwxLC4wNC0xLjQ2NmMuMDE3LS4wMjMsMi44MzItLjAzNCw2LjI0NS0uMDI4bDYuMjExLjAxN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDc1LDI1LjEwN2wuMzYzLS4zNjFjMS42OC4wNTUsMS43MDYsMCwxLjc4LS4xNzdsLjQ2Mi0xLjEyNC4wMzQtLjEwNy0uMDM4LS4wOTNjLS4wMi0uMDQ5LS4wODEtLjItMS4xMy0xLjJ2LS41MjZjMS4yMTEtMS4xNjYsMS4xODUtMS4yMjYsMS4xMTYtMS40bC0uNDYtMS4xMzZjLS4wNjktLjE3LS4xLS4yMzctMS43NjMtLjE5MWwtLjM2NC0uMzY3YTguMTM4LDguMTM4LDAsMCwwLS4wNTctMS42NTdsLS4wNDctLjEwNi0xLjItLjUyNWMtLjE3Ny0uMDgxLS4yMzktLjExLTEuMzcyLDEuMTI0bC0uNTA5LS4wMDhjLTEuMTY3LTEuMjQ1LTEuMjIyLTEuMjIzLTEuNC0xLjE1MmwtMS4xMTUuNDUyYy0uMTc1LjA3MS0uMjM2LjEtLjE2OSwxLjc5bC0uMzYuMzU5Yy0xLjY4LS4wNTUtMS43LDAtMS43NzguMTc3TDE4LjYwNiwyMGwtLjAzNi4xMDguMDM4LjA5NGMuMDIuMDQ4LjA3OC4xOTQsMS4xMywxLjJ2LjUyNWMtMS4yMTEsMS4xNjYtMS4xODQsMS4yMjYtMS4xMTUsMS40bC40NTksMS4xMzdjLjA3LjE3NC4xLjIzNiwxLjc2My4xOTJsLjM2My4zNzdhOC4xNjksOC4xNjksMCwwLDAsLjA1NSwxLjY1NGwuMDQ3LjEwNywxLjIwOC41MjhjLjE3Ni4wNzMuMjM2LjEsMS4zNjYtMS4xM2wuNTA5LjAwNmMxLjE2OCwxLjI0NywxLjIyOCwxLjIyMywxLjQsMS4xNTRsMS4xMTMtLjQ1QzI3LjA4MiwyNi44MjcsMjcuMTQzLDI2LjgsMjcuMDc1LDI1LjEwN1ptLTQuNzg4LTIuNjMyYTIsMiwwLDEsMSwyLjYxOCwxLjE0QTIuMDIzLDIuMDIzLDAsMCwxLDIyLjI4NywyMi40NzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdH0sXG5cdFwiVHdpZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiM3OGRjNTBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk00LjU3NCw1LjQ2M2MuMjYyLjQsMi41LTEuNjA4LDQuNDU0LTEuMTYxLDIuMDYxLjQ3Miw0LjAxNCwzLjcyNCw0Ljg0OCwxMy43YTQwLjE4LDQwLjE4LDAsMCwxLDMuNTQxLDMuNjFxLjUzLjYxNCwxLjAxMywxLjIyYTExLjg0NywxMS44NDcsMCwwLDEsLjIyOS0xLjQsMTIuMywxMi4zLDAsMCwxLDEuOTgxLTQuNEExOS4xNTEsMTkuMTUxLDAsMCwwLDE3LjI3Miw3LjljLTEuMDMtMS40NDUtNC42LTYuNDc4LTguNTQ2LTUuODQzQzYuMTgyLDIuNDY1LDQuMyw1LjA1NCw0LjU3NCw1LjQ2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2M2JmNmFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNCwzMGMtLjMyLTIuNTY3LS40NDgtNC43Ni0uNS02LjQ0OS0uMDk0LTMuMjMyLjEtNC41NDEuOS01Ljc1Ni4xOTMtLjI5NSwxLjI4OC0xLjk3NSwyLjU4LTEuODYzLDEuNDY2LjEyOCwyLjIxMywyLjQxNCwyLjM2MiwyLjMzNy4xNzUtLjA5LS4zNi0zLjU0My0yLjUzMi00LjQzMS0yLjYtMS4wNjMtNi4zMTIsMi4wNy03LjgsNS4xNTRhMTIuMjIzLDEyLjIyMywwLDAsMC0uODU3LDIuODEsMzIuNTU1LDMyLjU1NSwwLDAsMC0uNzEsOC4yWlxcXCIgc3R5bGU9XFxcImZpbGw6Izc0ZDc0ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yLjIzOCwxMy45MzVjLjE0NS0uNDQ3LDIuNDY4LS4yNTksNC41NC4yOTMsMi41LjY2Niw3LDIuMzQ0LDExLjY1MSw4LjYwNkExMi41NDQsMTIuNTQ0LDAsMCwxLDIwLjI3OSwzMEgxMC4zODZhMjEuODc1LDIxLjg3NSwwLDAsMC0uMTc1LTQuNjIsMTQuOSwxNC45LDAsMCwwLTIuNDU5LTcuMTU4QzUuNDQxLDE1LjE1OSwyLjA1NSwxNC41LDIuMjM4LDEzLjkzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3OGRjNTBcXFwiLz48cGF0aCBkPVxcXCJNMTcuMywyMS4zMjNhMS43NTMsMS43NTMsMCwxLDEtLjUxMy0xLjI0QTEuNzQ4LDEuNzQ4LDAsMCwxLDE3LjMsMjEuMzIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NzUsMjEuMzIzYTEuNzUzLDEuNzUzLDAsMSwxLS41MTMtMS4yNEExLjc0OCwxLjc0OCwwLDAsMSwyMS45NzUsMjEuMzIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlR5cGVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjMzE3OGM2XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHJ4PVxcXCIxLjMxMlxcXCIgc3R5bGU9XFxcImZpbGw6IzMxNzhjNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4yNDUsMjMuNzU5djMuMDY4YTYuNDkyLDYuNDkyLDAsMCwwLDEuNzY0LjU3NSwxMS41NiwxMS41NiwwLDAsMCwyLjE0Ni4xOTIsOS45NjgsOS45NjgsMCwwLDAsMi4wODgtLjIxMSw1LjExLDUuMTEsMCwwLDAsMS43MzUtLjcsMy41NDIsMy41NDIsMCwwLDAsMS4xODEtMS4yNjYsNC40NjksNC40NjksMCwwLDAsLjE4Ni0zLjM5NCwzLjQwOSwzLjQwOSwwLDAsMC0uNzE3LTEuMTE3LDUuMjM2LDUuMjM2LDAsMCwwLTEuMTIzLS44NzcsMTIuMDI3LDEyLjAyNywwLDAsMC0xLjQ3Ny0uNzM0cS0uNi0uMjQ5LTEuMDgtLjQ4NGE1LjUsNS41LDAsMCwxLS44MTMtLjQ3OSwyLjA4OSwyLjA4OSwwLDAsMS0uNTE2LS41MTgsMS4wOTEsMS4wOTEsMCwwLDEtLjE4MS0uNjE4LDEuMDM5LDEuMDM5LDAsMCwxLC4xNjItLjU3MSwxLjQsMS40LDAsMCwxLC40NTktLjQzNiwyLjQzOSwyLjQzOSwwLDAsMSwuNzI2LS4yODMsNC4yMTEsNC4yMTEsMCwwLDEsLjk1Ni0uMSw1Ljk0Miw1Ljk0MiwwLDAsMSwuODA4LjA1OCw2LjI5Miw2LjI5MiwwLDAsMSwuODU2LjE3Nyw1Ljk5NCw1Ljk5NCwwLDAsMSwuODM2LjMsNC42NTcsNC42NTcsMCwwLDEsLjc1MS40MjJWMTMuOWE3LjUwOSw3LjUwOSwwLDAsMC0xLjUyNS0uNCwxMi40MjYsMTIuNDI2LDAsMCwwLTEuOS0uMTI5LDguNzY3LDguNzY3LDAsMCwwLTIuMDY0LjIzNSw1LjIzOSw1LjIzOSwwLDAsMC0xLjcxNi43MzMsMy42NTUsMy42NTUsMCwwLDAtMS4xNzEsMS4yNzEsMy43MzEsMy43MzEsMCwwLDAtLjQzMSwxLjg0NSwzLjU4OCwzLjU4OCwwLDAsMCwuNzg5LDIuMzQsNiw2LDAsMCwwLDIuMzk1LDEuNjM5cS42My4yNiwxLjE3NS41MDlhNi40NTgsNi40NTgsMCwwLDEsLjk0Mi41MTcsMi40NjMsMi40NjMsMCwwLDEsLjYyNi41ODUsMS4yLDEuMiwwLDAsMSwuMjMuNzE5LDEuMSwxLjEsMCwwLDEtLjE0NC41NTIsMS4yNjksMS4yNjksMCwwLDEtLjQzNS40NDEsMi4zODEsMi4zODEsMCwwLDEtLjcyNi4yOTIsNC4zNzcsNC4zNzcsMCwwLDEtMS4wMTguMTA1LDUuNzczLDUuNzczLDAsMCwxLTEuOTY5LS4zNUE1Ljg3NCw1Ljg3NCwwLDAsMSwxOC4yNDUsMjMuNzU5Wm0tNS4xNTQtNy42MzhoNFYxMy41OTRINS45Mzh2Mi41MjdIOS45MlYyNy4zNzVoMy4xNzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiVHlwb1NjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZjg3MDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMy4wOTMsMjEuM2EzLjg0NywzLjg0NywwLDAsMS0xLjE4LjE2NWMtMy41NTUsMC04Ljc3OC0xMi40MjQtOC43NzgtMTYuNTU5LDAtMS41MjMuMzYyLTIuMDMxLjg3LTIuNDY2QzkuNjUzLDIuOTQzLDQuNDMsNC41MzksMi43NjEsNi41N2E0LjA0OCw0LjA0OCwwLDAsMC0uNTgsMi4zMjFDMi4xODEsMTUuMzQ4LDkuMDcyLDMwLDEzLjkzMywzMGMyLjI0OCwwLDYuMDQxLTMuNyw5LjE2LTguN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODcwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44MjMsMmM0LjUsMCw5LC43MjUsOSwzLjI2NCwwLDUuMTUxLTMuMjY0LDExLjM4OS00LjkzMywxMS4zODktMi45NzQsMC02LjY3My04LjI2OS02LjY3My0xMi40LDAtMS44ODYuNzI1LTIuMjQ5LDIuNjExLTIuMjQ5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4NzAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiVlwiOiB7XG5cdFx0Y29sb3VyOiBcIiM1ZDg3YmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC40NjcsMjkuMjg4LDI5Ljk1MiwyLjkxM2EuNS41LDAsMCwwLS41NjYtLjcyOEwyMS45MjcsMi45YTEuNDY0LDEuNDY0LDAsMCwwLTEuMTQxLjlMMTIuMDA3LDI5LjAwNmEuNTczLjU3MywwLDAsMCwuNTc4LjgxM2g3LjI2YS42NTcuNjU3LDAsMCwwLC41NzctLjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTM2YjhhXFxcIi8+PHBhdGggZD1cXFwiTTIuNjE0LDIuMTg1bDcuNDU5LjcxOWExLjQ2NiwxLjQ2NiwwLDAsMSwxLjE0Mi45TDIwLjE4LDI5LjQxM2EuMjg2LjI4NiwwLDAsMS0uMjg5LjQwNkgxMi41ODVhMS4zMTEsMS4zMTEsMCwwLDEtMS4xNTItLjgxTDIuMDQ4LDIuOTEzQS41LjUsMCwwLDEsMi42MTQsMi4xODVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNWQ4N2JmXFxcIi8+XCIsXG5cdH0sXG5cdFwiVmFsYVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0MDM3NTdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMi41MDksMTcuMTkzYy0uMTY1LTYuODM2LS4zMjUtMTIuNDU1LS4zNTctMTIuNDg3QTcuOTE2LDcuOTE2LDAsMCwwLDkuODc5LDUuODc0LDcuNjA2LDcuNjA2LDAsMCwwLDcuMzI0LDkuMTg4YTguNDIyLDguNDIyLDAsMCwwLS41ODcsMy41NDMsNC42NjUsNC42NjUsMCwwLDAsLjIsMS45NjIsMy40MTcsMy40MTcsMCwwLDEsLjE4Mi41NmMtLjAxMi4wMDktLjMzOC0uMDE4LS43MjQtLjA2MS0xLjg2OC0uMjA3LTIuNzg2LTEuMDUtMy0yLjc1N0E2LjMxMiw2LjMxMiwwLDAsMSw0Ljg1LDcuNzE5YTE1LjEzNCwxNS4xMzQsMCwwLDEsOC40MTQtNS4xNjMsMTIuODkxLDEyLjg5MSwwLDAsMSwyLjU0Mi0uMjM1bDEuNzQ4LS4wNS4wNTksMi41MDZjLjAzMiwxLjM3OC4xLDYuMzU4LjE2MSwxMS4wNjdzLS4yNTIsOC4yOS0uMjE5LDguNEMxOS41LDE3Ljg3OSwyMiwxMy4wNzMsMjQuMzY3LDYuMjUzbDEuNDI3LTMuOTgzSDI4LjU0Yy0uMDIyLjA2My0yLjc1MSw2LjUtNS41MTQsMTMuOTE2bC01LjQ3MywxMy41NUgxMi45NzZDMTIuOTc2LDI3LjkwNiwxMi41MzUsMTguNDg2LDEyLjUwOSwxNy4xOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDAzNzU3XFxcIi8+PHBhdGggZD1cXFwiTTE3LjczMiwzMEgxMi43MTN2LS4yNjNjMC0xLjEzNy0uMTctNS4xOTItLjMwNy04LjQ1Mi0uMDgxLTEuOTI5LS4xNS0zLjYtLjE2MS00LjA4Ny0uMTU2LTYuNDc5LS4yODYtMTEtLjMzNi0xMi4xNjNhMTEuNjc0LDExLjY3NCwwLDAsMC0xLjg3NCwxLjA0OSw3LjM0OCw3LjM0OCwwLDAsMC0yLjQ2NiwzLjJBOC4xNDYsOC4xNDYsMCwwLDAsNywxMi43MzEsNC4zNyw0LjM3LDAsMCwwLDcuMTg1LDE0LjZjLjIxNS41NjkuMjczLjcyMy4xLjg1OS0uMDkzLjA3My0uMTA3LjA4NC0uOTE2LS4wMDctMS45NzYtLjIxOS0zLTEuMTY3LTMuMjM0LTIuOTg2QTYuNTY4LDYuNTY4LDAsMCwxLDQuNjQsNy41NjEsMTUuNDM5LDE1LjQzOSwwLDAsMSwxMy4yLDIuMywxMy4xNzYsMTMuMTc2LDAsMCwxLDE1LjgsMi4wNThMMTcuODExLDJsLjA2NSwyLjc3Yy4wMzIsMS4zOTIuMTA2LDYuNDYxLjE2MSwxMS4wNy4wMzEsMi42MTYtLjA1Miw0LjkxNS0uMTI0LDYuNDMuOTMxLTIuNzYzLDEuOTU4LTUuMjcsMy4wMzMtNy45LDEuMDQzLTIuNTQ3LDIuMTIyLTUuMTgsMy4xNzMtOC4yMDdsMS40OTEtNC4xNmgzLjNsLS4xMjUuMzUxYzAsLjAwNy0uMDMxLjA3Ni0uMDg0LjItMS4xLDIuNjIyLTMuMjU5LDcuODg5LTUuNDMsMTMuNzE3Wm0tNC40OTUtLjUyNmg0LjE0bDUuNDA3LTEzLjM4NmMyLjEyNC01LjcsNC4yNDMtMTAuODc2LDUuMzYyLTEzLjU1NUgyNS45NzlMMjQuNjE0LDYuMzQyYy0xLjA1NSwzLjAzOC0yLjEzNyw1LjY3OC0zLjE4Myw4LjIzMS0xLjMxMSwzLjItMi41NSw2LjIyNi0zLjYyNiw5Ljc0N2wtLjI1NS44MzEtLjI0OC0uODMzYTMuMjc0LDMuMjc0LDAsMCwxLC4wMjEtLjgzOWMuMDc0LTEuMzUuMjI5LTQuMTU4LjE4OC03LjYzMy0uMDU1LTQuNjA3LS4xMjktOS42NzQtLjE2MS0xMS4wNjRMMTcuMywyLjU0MWwtMS40ODQuMDQzYTEyLjcyOSwxMi43MjksMCwwLDAtMi40OS4yMjhBMTQuODg3LDE0Ljg4NywwLDAsMCw1LjA2LDcuODc3YTYuMDcxLDYuMDcxLDAsMCwwLTEuNCw0LjUyNGMuMiwxLjU4LDEuMDI4LDIuMzM2LDIuNzcsMi41MjlsLjMzMy4wMzVjLS4wMTktLjA1NC0uMDQxLS4xMTQtLjA2Ni0uMTc5YTQuODkzLDQuODkzLDAsMCwxLS4yMTktMi4wNTUsOC43LDguNywwLDAsMSwuNi0zLjYzOCw3Ljg4Myw3Ljg4MywwLDAsMSwyLjY0NC0zLjQzYy4wMjItLjAxNiwyLjIzMi0xLjUyNSwyLjYxNS0xLjE0Mi4wOTIuMDkyLjEzMS4xMzEuNDMzLDEyLjY2NmgwYy4wMS40ODUuMDgsMi4xNDkuMTYsNC4wNzZDMTMuMDYsMjQuMzEzLDEzLjIxNywyOC4wNiwxMy4yMzcsMjkuNDc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M4YzhjOFxcXCIvPlwiLFxuXHR9LFxuXHRcIlZCLk5ldFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDUxOWFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk02LjY3LDcuODM2LDksMTguOTE1LDExLjMzNiw3LjgzNkgxNkwxMS4zMzYsMjQuMTY0SDYuNjcyTDIsNy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+PHBhdGggZD1cXFwiTTE4LjMzMSw3LjgzNmg3LjZhNC4wOCw0LjA4LDAsMCwxLDIuOSwxLjc0OSwzLjc4LDMuNzgsMCwwLDEsLjU3MSwyLjA0LDMuOTg1LDMuOTg1LDAsMCwxLS41NzEsMi4wMzQsNC4xMDgsNC4xMDgsMCwwLDEtMi4zNDEsMS43NjMsNC4xLDQuMSwwLDAsMSwyLjkyOSwxLjc1NiwzLjgsMy44LDAsMCwxLC41OCwyLjEsNC42NjMsNC42NjMsMCwwLDEtLjU3OSwyLjU0Niw1LjA0Nyw1LjA0NywwLDAsMS0zLjUsMi4zMzhIMTguMzMxWk0yMywxNC4yNTJoMS4xNjZhMS43NTQsMS43NTQsMCwwLDAsMC0zLjVIMjNabTAsN0gyNC4zOWEyLjA0NywyLjA0NywwLDAsMCwwLTQuMDg5SDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPlwiLFxuXHR9LFxuXHRcIlZCQVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkODdiMzBcIixcblx0XHRpY29uOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuNDU3IDExLjA5MiAxNi4wMTQgMTMuODM5IDE2LjAxNCAxOC4zMDcgMTAuNDU3IDE1LjM4MiAxMC40NTcgMTEuMDkyXFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIsMTguNjEzbC01LjkyNi0zLjEyVjEwLjhMMTYuMiwxMy43MjRaTTEwLjY0MiwxNS4yNywxNS44MywxOFYxMy45NTNsLTUuMTg4LTIuNTY0WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMzcxIDEzLjgzOSAxNi4zNzEgMTguMzA3IDIxLjMxNSAxNS44MTQgMjEuMzE1IDExLjM1NCAxNi4zNzEgMTMuODM5XFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4NiwxOC42MDdWMTMuNzI1bDUuMzEzLTIuNjd2NC44NzNabS4zNjktNC42NTV2NC4wNTVMMjEuMTMsMTUuN1YxMS42NTNaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMC43MDMgMTAuNzk3IDE2LjE4NiAxMy41OCAyMS4wODIgMTEuMDY0IDE1Ljc3NyA4LjM4OSAxMC43MDMgMTAuNzk3XFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4NywxMy43ODhsLTUuOS0zLDUuNS0yLjYwOCw1LjcwOSwyLjg3OVpNMTEuMTIyLDEwLjhsNS4wNjQsMi41Nyw0LjQ5LTIuMzA4LTQuOS0yLjQ3MVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4Ljk1NyAxNS44MjkgMjQuNTE1IDE4LjU3NSAyNC41MTUgMjMuMDQzIDE4Ljk1NyAyMC4xMTggMTguOTU3IDE1LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC43LDIzLjM0OWwtNS45MjYtMy4xMnYtNC43TDI0LjcsMTguNDZabS01LjU1Ny0zLjM0Myw1LjE4OCwyLjczMVYxOC42ODlsLTUuMTg4LTIuNTY0WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjQuODcxIDE4LjU3NSAyNC44NzEgMjMuMDQzIDI5LjgxNSAyMC41NSAyOS44MTUgMTYuMDkgMjQuODcxIDE4LjU3NVxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC42ODcsMjMuMzQzVjE4LjQ2MUwzMCwxNS43OTF2NC44NzNabS4zNjktNC42NTV2NC4wNTVsNC41NzUtMi4zMDhWMTYuMzg5WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuMjAzIDE1LjU0NiAyNC42ODcgMTguMzI5IDI5LjU4MyAxNS44MTIgMjQuMzY0IDEzLjM0NiAxOS4yMDMgMTUuNTQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTUyNzgxXFxcIi8+PHBhdGggZD1cXFwiTTI0LjY4NywxOC41MzZsLTUuOTItMy4wMDUsNS42LTIuMzg3TDMwLDE1LjgwNVpNMTkuNjQsMTUuNTZsNS4wNDYsMi41NjEsNC40NzktMi4zLTQuODA2LTIuMjdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjE5IDE1LjQ5NiA3Ljc0OCAxOC4yNDMgNy43NDggMjIuNzExIDIuMTkgMTkuNzg2IDIuMTkgMTUuNDk2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDg3YjMwXFxcIi8+PHBhdGggZD1cXFwiTTcuOTMyLDIzLjAxNywyLjAwNiwxOS45VjE1LjJsNS45MjYsMi45MjlaTTIuMzc1LDE5LjY3NGw1LjE4OCwyLjczMVYxOC4zNTdMMi4zNzUsMTUuNzkzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiOC4xMDQgMTguMjQzIDguMTA0IDIyLjcxMSAxMy4wNDggMjAuMjE4IDEzLjA0OCAxNS43NTggOC4xMDQgMTguMjQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZDg3YjMwXFxcIi8+PHBhdGggZD1cXFwiTTcuOTIsMjMuMDExVjE4LjEyOWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDEyLjg2NCwyMC4xVjE2LjA1N1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNDM2IDE1LjIxMyA3LjkyIDE3Ljk5NyAxMi44MTYgMTUuNDggNy41OTcgMTMuMDE0IDIuNDM2IDE1LjIxM1xcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkyLDE4LjIsMiwxNS4ybDUuNi0yLjM4Nyw1LjYzMiwyLjY2MVpNMi44NzMsMTUuMjI4bDUuMDQ2LDIuNTYxLDQuNDc5LTIuMy00LjgwNi0yLjI3WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuODc1IDE2LjI5NiAxNi40MzIgMTkuMDQyIDE2LjQzMiAyMy41MTEgMTAuODc1IDIwLjU4NSAxMC44NzUgMTYuMjk2XFxcIiBzdHlsZT1cXFwiZmlsbDojZTBkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjYxNywyMy44MTYsMTAuNjkxLDIwLjdWMTZsNS45MjYsMi45MjlaTTExLjA2LDIwLjQ3NGw1LjE4OCwyLjczMVYxOS4xNTdMMTEuMDYsMTYuNTkzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuNzg5IDE5LjA0MiAxNi43ODkgMjMuNTExIDIxLjczMyAyMS4wMTcgMjEuNzMzIDE2LjU1NyAxNi43ODkgMTkuMDQyXFxcIiBzdHlsZT1cXFwiZmlsbDojZTBkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjYsMjMuODExVjE4LjkyOWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDIxLjU0OSwyMC45VjE2Ljg1N1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjEyMSAxNi4wMDEgMTYuNjA1IDE4Ljc4NCAyMS41MDEgMTYuMjY3IDE2LjE5NiAxMy41OTMgMTEuMTIxIDE2LjAwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42MDUsMTguOTkxbC01LjktMyw1LjUtMi42MDgsNS43MDksMi44NzlaTTExLjU0LDE2LjAwNmw1LjA2NCwyLjU3LDQuNDktMi4zMDgtNC45LTIuNDcxWlxcXCIvPlwiLFxuXHR9LFxuXHRcIlZlbG9jaXR5XCI6IHtcblx0XHRjb2xvdXI6IFwiIzI2MjY5MlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjI0NSwyNC4xODdBOC4zNTIsOC4zNTIsMCwxLDEsMjQuNiwxNS44MzUsOC4zNjIsOC4zNjIsMCwwLDEsMTYuMjQ1LDI0LjE4N1ptMC0xNC43NjJhNi40MSw2LjQxLDAsMSwwLDYuNDEsNi40MUE2LjQxNyw2LjQxNywwLDAsMCwxNi4yNDUsOS40MjVaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOS4xMzIgOC41NTEgMjUuNDUxIDYuNTMxIDI1LjQ1MSA3LjQ3NCAxNS44MjEgNy40NzQgMTUuODIxIDkuNDI0IDI1LjQ1MSA5LjQyNCAyNS40NTEgMTAuNTcxIDI5LjEzMiA4LjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5MlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiOC45ODQgMiA2Ljk2NCA1LjY4NyA3LjkwNiA1LjY4NyA3LjkwNiAxNS4zMjggOS44NTcgMTUuMzI4IDkuODU3IDUuNjg3IDExLjAwNCA1LjY4NyA4Ljk4NCAyXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkzXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy43MDUgMzAgMjEuNjg1IDI2LjI0MyAyMi42MjggMjYuMjQzIDIyLjYyOCAxNi40MTcgMjQuNTc4IDE2LjQxNyAyNC41NzggMjYuMjQzIDI1LjcyNSAyNi4yNDMgMjMuNzA1IDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkzXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjg2OCAyMy4zMiA2LjYzNCAyMS4zIDYuNjM0IDIyLjI0MiAxNi40ODQgMjIuMjQyIDE2LjQ4NCAyNC4xOTIgNi42MzQgMjQuMTkyIDYuNjM0IDI1LjM0IDIuODY4IDIzLjMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkyXFxcIi8+XCIsXG5cdH0sXG5cdFwiVmVyaWxvZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMxYTM0OGZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS4wMDcsMTcuNGguMDM3YTEuNDQ5LDEuNDQ5LDAsMCwwLC45MzgtLjMxNiwxLjQ3MywxLjQ3MywwLDAsMCwuNTE5LTEuMDMxVjE1LjlhMS40MTMsMS40MTMsMCwwLDAtMS4zNzYtMS4zaC0uMDA5Yy0uNjg3LDAtMS4zNzQsMC0yLjA2MiwwSDI1LjVWMTEuOTU2bDMuNTEzLDBoLjAzNEExLjQxMSwxLjQxMSwwLDAsMCwzMC41LDEwLjZsMC0uMDksMC0uMDMyYTEuNDEyLDEuNDEyLDAsMCwwLS42NDYtMS4xLDEuNDU1LDEuNDU1LDAsMCwwLS44MzUtLjIyNUgyNS40NTZhMi45NiwyLjk2LDAsMCwwLS4yNzgtMS4wMzQsMi45MDksMi45MDksMCwwLDAtMS43LTEuNDYxLDIuNjg0LDIuNjg0LDAsMCwwLS42MjktLjEzVjQuOTQ3YzAtLjY5LDAtMS4zOCwwLTIuMDYzQTEuNDE0LDEuNDE0LDAsMCwwLDIxLjQ4MSwxLjVoLS4xMTZhMS40LDEuNCwwLDAsMC0xLjMxOSwxLjM4OHEwLDEuMTU0LDAsMi4zMDZWNi41SDE3LjRWNC45ODFjMC0uNywwLTEuNCwwLTIuMDg3QTEuNDEsMS40MSwwLDAsMCwxNi4wNTMsMS41SDE1LjlhMS40MDgsMS40MDgsMCwwLDAtMS4zLDEuMzgzYzAsLjY4OCwwLDEuMzc2LDAsMi4wNjRWNi41MDhxLTEuMzE5LDAtMi42MzksMFY0Ljg4OGMwLS42NjYsMC0xLjMzMiwwLTEuOTg5YTEuMzY2LDEuMzY2LDAsMCwwLS40LS45NzUsMS40LDEuNCwwLDAsMC0uOTg0LS40MjRIMTAuNUExLjQxLDEuNDEsMCwwLDAsOS4xNTksMi44ODFjMCwuNjgzLDAsMS4zNjYsMCwyLjA0OXYxLjZhMi45MzMsMi45MzMsMCwwLDAtMi40NjYsMS45LDIuODc4LDIuODc4LDAsMCwwLS4xNjEuNzI2SDQuOTU3Yy0uNjkzLDAtMS4zODYsMC0yLjA3MywwSDIuODc2QTEuNDEzLDEuNDEzLDAsMCwwLDEuNSwxMC41di4wOTVhMS40MTcsMS40MTcsMCwwLDAsLjU3NSwxLjA5MSwxLjQ2MywxLjQ2MywwLDAsMCwuODg3LjI3M2guMDE3bDMuNTIyLDBWMTQuNkg0Ljk0OGMtLjY4NiwwLTEuMzc1LDAtMi4wNTcsMEExLjQyOCwxLjQyOCwwLDAsMCwxLjUsMTUuOTEzVjE2LjFhMS40LDEuNCwwLDAsMCwxLjM4NiwxLjNjLjcxMSwwLDEuNDIzLDAsMi4xMzUsMEg2LjVWMjAuMDVsLS4yOTIsMGMtLjYxMy0uMDA3LTEuMjI2LDAtMS44MzgsMEgzLjA4N2ExLjYzMywxLjYzMywwLDAsMC0uOTE4LjIxMUExLjQzNywxLjQzNywwLDAsMCwxLjUsMjEuNFYyMS41YTEuNDE3LDEuNDE3LDAsMCwwLDEuMzc1LDEuMzM3aC4wMDVxLjY0NSwwLDEuMjksMEg2LjU0NmEyLjgzMiwyLjgzMiwwLDAsMCwxLjk3OCwyLjUsMi43MTIsMi43MTIsMCwwLDAsLjYzMS4xMjh2MS42MmMwLC42NzgsMCwxLjM1NCwwLDIuMDI1YTEuNCwxLjQsMCwxLDAsMi44LS4wOTJsMC0zLjUyN0gxNC42djMuNTE2QTEuNDE0LDEuNDE0LDAsMCwwLDE1Ljk0NywzMC41SDE2LjFhMS40MTEsMS40MTEsMCwwLDAsMS4zLTEuMzg1cS4wMDYtMS4wNjYsMC0yLjEzMVYyNS41aDIuNjQ0VjI5LjFBMS40MjMsMS40MjMsMCwwLDAsMjEuNCwzMC41aC4xMTlhMS40MDgsMS40MDgsMCwwLDAsMS4xNi0uNzQxLDEuNjQzLDEuNjQzLDAsMCwwLC4xNjctLjgzM1YyNS40NzRhMi42NzEsMi42NzEsMCwwLDAsLjYyLS4xMjgsMi45MjgsMi45MjgsMCwwLDAsMS44ODYtMS44ODgsMi44MzQsMi44MzQsMCwwLDAsLjEyMy0uNjEzaDEuNTgxYy42ODcsMCwxLjM3NSwwLDIuMDU3LDBoLjAwOEExLjQyMiwxLjQyMiwwLDAsMCwzMC41LDIxLjQ4MXYtLjExOGExLjQwOSwxLjQwOSwwLDAsMC0xLjM4Mi0xLjMxOGgwYy0uNzE4LDAtMS40MzYsMC0yLjE1NCwwSDI1LjVWMTcuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWM1YzU7b3BhY2l0eTowLjNcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTE1LDJoLjA1NmEuOTEuOTEsMCwwLDEsLjg4Ni44OTNjLjAwNiwxLjEwOCwwLDIuMjE2LDAsMy4zMjQtLjYsMC0xLjIsMC0xLjgsMCwwLTEuMTExLDAtMi4yMjIsMC0zLjMzM0EuOTA3LjkwNywwLDAsMSwxMC41MTUsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMTUuOTM3LDJoLjExNmEuOTEyLjkxMiwwLDAsMSwuODQ2Ljg4OWMuMDA2LDEuMTA5LDAsMi4yMTksMCwzLjMyOUgxNS4xYzAtMS4xMSwwLTIuMjIsMC0zLjMzQS45MTEuOTExLDAsMCwxLDE1LjkzNywyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4zOTIsMmguMDg5YS45MDcuOTA3LDAsMCwxLC44NTkuODgxYy4wMDcsMS4xMTIsMCwyLjIyNSwwLDMuMzM3aC0xLjhjMC0xLjEwOSwwLTIuMjE3LDAtMy4zMjZBLjkxMi45MTIsMCwwLDEsMjEuMzkyLDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIsMTAuNTE4YS45MDguOTA4LDAsMCwxLC44ODItLjg1OWMxLjExMi0uMDA3LDIuMjIzLDAsMy4zMzQsMHEwLC45LDAsMS44Yy0xLjA3OSwwLTIuMTU4LDAtMy4yMzcsMGEuOTgzLjk4MywwLDAsMS0uNi0uMTczQS45MjQuOTI0LDAsMCwxLDIsMTAuNTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsOS42NTVoMy4yMzNhMSwxLDAsMCwxLC41NjEuMTQzLjkyNC45MjQsMCwwLDEsLjQyLjcxNnYuMDU4YS45MzMuOTMzLDAsMCwxLS4zLjY1MS45NTcuOTU3LDAsMCwxLS42NzcuMjM0Yy0xLjA3OSwwLTIuMTU4LDAtMy4yMzcsMFEyNS43ODYsMTAuNTU2LDI1Ljc4Niw5LjY1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMiwxNS45NDRhLjkxMy45MTMsMCwwLDEsLjg4OC0uODQyYzEuMTA5LS4wMDcsMi4yMTksMCwzLjMyOCwwcTAsLjksMCwxLjhjLTEuMTA5LDAtMi4yMTcsMC0zLjMyNiwwQS45MTUuOTE1LDAsMCwxLDIsMTYuMDYzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsMTUuMWMxLjEwOSwwLDIuMjE4LDAsMy4zMjYsMGEuOTE0LjkxNCwwLDAsMSwuODg5LjgzNXYuMTE3YS45NDYuOTQ2LDAsMCwxLS4zMzEuNjQxLjk3My45NzMsMCwwLDEtLjY1MS4yMDdIMjUuNzg2UTI1Ljc4NSwxNiwyNS43ODYsMTUuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMi40MzMsMjAuNjc4YTEuMTIxLDEuMTIxLDAsMCwxLC42NDMtLjEzNmMxLjA0My4wMDYsMi4wODYtLjAwNiwzLjEyOS4wMDYuMDI4LjYsMCwxLjIuMDEyLDEuOC0xLjExLDAtMi4yMjEsMC0zLjMzMSwwQS45MTEuOTExLDAsMCwxLDIsMjEuNDgzVjIxLjRBLjkyNS45MjUsMCwwLDEsMi40MzMsMjAuNjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsMjAuNTQzYzEuMTA4LDAsMi4yMTYsMCwzLjMyNCwwYS45MTQuOTE0LDAsMCwxLC44OS44NDd2LjA5YS45MTEuOTExLDAsMCwxLS44ODguODU5Yy0xLjEwOS4wMDctMi4yMTgsMC0zLjMyNiwwQzI1Ljc4NiwyMS43NDMsMjUuNzg1LDIxLjE0MywyNS43ODYsMjAuNTQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjY1NiwyNS43ODFoMS44YzAsMS4wODEsMCwyLjE2MiwwLDMuMjQzYS45NTcuOTU3LDAsMCwxLS4yMzUuNjc3LjkzMS45MzEsMCwwLDEtLjY1My4zaC0uMDUyYS45MDcuOTA3LDAsMCwxLS44Ni0uODgyQzkuNjUxLDI4LjAwNiw5LjY1OCwyNi44OTQsOS42NTYsMjUuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4xLDI1Ljc4MWgxLjhjMCwxLjExLDAsMi4yMiwwLDMuMzNhLjkxNC45MTQsMCwwLDEtLjgzNi44ODloLS4xMTZhLjk0Ljk0LDAsMCwxLS42MTktLjMwNi45NjIuOTYyLDAsMCwxLS4yMjgtLjY3M1ExNS4xLDI3LjQsMTUuMSwyNS43ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIwLjU0NywyOS4xMDZjMC0xLjEwOCwwLTIuMjE3LDAtMy4zMjVoMS44YzAsMS4wNDgsMCwyLjEsMCwzLjE0NGExLjE3OCwxLjE3OCwwLDAsMS0uMTA1LjU5LjkyLjkyLDAsMCwxLS43NTYuNDg0SDIxLjRBLjkxMS45MTEsMCwwLDEsMjAuNTQ3LDI5LjEwNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjQuNzMyLDguMzQ5QTIuNDI5LDIuNDI5LDAsMCwwLDIzLjMxLDcuMTMxLDMuMjQ1LDMuMjQ1LDAsMCwwLDIyLjI1NCw3Yy00LjMuMDA4LTguNi0uMDExLTEyLjkwNS4wMUEyLjQzNiwyLjQzNiwwLDAsMCw3LjE1Nyw4LjYwNiwzLjYxMSwzLjYxMSwwLDAsMCw3LDkuOTM0cTAsNi4yNSwwLDEyLjVhMi42NzMsMi42NzMsMCwwLDAsLjI2OCwxLjIxOUEyLjQzMSwyLjQzMSwwLDAsMCw4LjY4OCwyNC44NywzLjc1NiwzLjc1NiwwLDAsMCw5LjkyNywyNUgyMi4wN2EzLjc2MiwzLjc2MiwwLDAsMCwxLjI0My0uMTI3QTIuNDI5LDIuNDI5LDAsMCwwLDI0Ljg3NSwyMy4zLDMuOCwzLjgsMCwwLDAsMjUsMjIuMDcxcTAtNi4yNSwwLTEyLjVBMi42ODYsMi42ODYsMCwwLDAsMjQuNzMyLDguMzQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjUsOC4zMDdsLjA4NC0uMnEuOTY4LDAsMS45MzUuMDI0aC4zOTRxLjE3OSwwLC4zOTQtLjAxMi43NzYtLjAzNiwyLjgwNy0uMDM2LjQwNiwwLC43ODguMDA2dC43NDEuMDE4YS4yMzQuMjM0LDAsMCwxLC4xMDguMTA4bC0uMDI0LjE5MXEtLjA3Mi4xMTktLjM1OC4xMTloLS4xYTEwLjMsMTAuMywwLDAsMC0xLjEuMDU0LDIuMTc5LDIuMTc5LDAsMCwwLTEsLjI0NS40MzIuNDMyLDAsMCwwLS4xNTUuMzQ2LDQuMDUsNC4wNSwwLDAsMCwuMzk0LDEuNGwxLjgxOCw0LjIxNy42MzQsMS40cS45MjEsMi4yMjIsMS44MTksNC41MzkuMS4yNTEuMTc5LjQ1NGwuOC0xLjk1OXEuNjItMS40ODEsMS4yNTItMy4xNTRsLjgyMy0yLjI0NnEuMDI0LS4wNzIuMTMxLS40NzhhMTcuMDI2LDE3LjAyNiwwLDAsMCwxLjE1Ny00LC41NjEuNTYxLDAsMCwwLS4xNjEtLjM2NCwxLjE2NSwxLjE2NSwwLDAsMC0uNTItLjMsNy43MjMsNy43MjMsMCwwLDAtLjkzMi0uMTQzbC0uODg0LS4xMDhhLjMzNy4zMzcsMCwwLDEtLjEwOC0uMmwuMDM2LS4xLDMuODctLjAzNkgyMy42YTMuMSwzLjEsMCwwLDEsLjg4NS4wODRsLjAxMi4xYS42NDEuNjQxLDAsMCwxLS4wNzIuMjUxLDIuNDQ5LDIuNDQ5LDAsMCwxLS41MjYuMTE5LDMuNiwzLjYsMCwwLDAtMS4yNDQuMjgxLDEuODE1LDEuODE1LDAsMCwwLS41LjY4N2wtMy4xMzQsNy43NjVxLTEuNDY2LDMuNS0yLjA4Niw1LjQyM2wtLjM0NSwxLjAzOWEuNTMxLjUzMSwwLDAsMS0uMjYzLjEsMS4zODMsMS4zODMsMCwwLDEtLjMtLjAzNnEtMS40MjItMy42NzYtMi4zMTgtNS42ODFMMTAuMDU1LDkuOTJhMy4yNDcsMy4yNDcsMCwwLDAtLjU5MS0uODksNS40NjMsNS40NjMsMCwwLDAtMS4zNzktLjQyNCw0LjM0Nyw0LjM0NywwLDAsMS0uNDY2LS4xMTlBLjMyNi4zMjYsMCwwLDEsNy41LDguMzA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M1YzJmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlZIRExcIjoge1xuXHRcdGNvbG91cjogXCIjMGQ5YjM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwySDMwVjMwSDJabTEuNjg5LjA2N0ExLjYyNCwxLjYyNCwwLDAsMCwyLjA2MywzLjY5MlYyOC4zMTRBMS42MjUsMS42MjUsMCwwLDAsMy42ODksMjkuOTRIMjguMzE2YTEuNjI1LDEuNjI1LDAsMCwwLDEuNjI2LTEuNjI2VjMuNjkyYTEuNjI0LDEuNjI0LDAsMCwwLTEuNjI2LTEuNjI1Wk0zLjAwOCwyOC4wNzlhLjkxMS45MTEsMCwwLDAsLjkxMS45MTJIMjguMDgzYS45MTEuOTExLDAsMCwwLC45MTEtLjkxMlYzLjkxOWEuOTEuOTEsMCwwLDAtLjkxMS0uOTExSDMuOTE5YS45MS45MSwwLDAsMC0uOTExLjkxMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZDliMzVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjUyIDUuNTAyIDE4Ljg1OCAyNi40OTEgMTMuMTU0IDI2LjQ5MSA2LjQ5MiA1LjUwMiAxMC41MDggNS41MDIgMTYuMDI5IDIyLjc5NSAyMS41MDQgNS41MDIgMjUuNTIgNS41MDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJ2aW1cIjoge1xuXHRcdGNvbG91cjogXCIjNDNiNTRhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48Y2xpcFBhdGggaWQ9XFxcImFcXFwiPjxwb2x5Z29uIHBvaW50cz1cXFwiMiAyIDMwIDIgMzAgMzAgMiAzMCAyIDIgMiAyXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO2NsaXAtcnVsZTpldmVub2RkXFxcIi8+PC9jbGlwUGF0aD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV92aW08L3RpdGxlPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuOTg5IDE1Ljg1NiAxNS44NTYgMi4wMTEgMi4wMTEgMTYuMTM2IDE1Ljg1NiAyOS45ODkgMjkuOTg5IDE1Ljg1NiAyOS45ODkgMTUuODU2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PGcgc3R5bGU9XFxcImNsaXAtcGF0aDp1cmwoI2EpXFxcIj48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk4OSAxNS44NTYgMTUuODU2IDIuMDExIDIuMDExIDE2LjEzNiAxNS44NTYgMjkuOTg5IDI5Ljk4OSAxNS44NTYgMjkuOTg5IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjwvZz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMjkuNDIyIDE1Ljg1NiAyOC41NzUgMjguNTc1IDE1Ljg1NiAyOC41NzUgMTUuODU2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjk2OTVkO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDI5LjQyMiAxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMjguNTc1IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOS40MjIgMi41NzggMTYuMTM2IDIuNTc4IDE2LjEzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzMxNzM2NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOS40MjIgMi41NzggMTYuMTM2IDIuNTc4IDE2LjEzNlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDMuNDE4IDE1Ljg1NiAyLjU3OCAyLjU3OCAxNi4xMzYgMy40MjUgMTYuMTM2IDE1Ljg1NiAzLjQxOCAxNS44NTYgMy40MThcXFwiIHN0eWxlPVxcXCJmaWxsOiM2MGMyYWM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAzLjQxOCAxNS44NTYgMi41NzggMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMy40MTggMTUuODU2IDMuNDE4XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMi41NzggMTUuODU2IDMuNDE4IDI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMi41NzggMTUuODU2IDIuNTc4XFxcIiBzdHlsZT1cXFwiZmlsbDojNDNiNTRhO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMi41NzggMTUuODU2IDMuNDE4IDI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMi41NzggMTUuODU2IDIuNTc4XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMTUuODU2IDMuNDE4IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYzgzNzY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAyOC41NzUgMjguNTc1IDE1Ljg1NiAxNS44NTYgMy40MTggMy40MjUgMTYuMTM2IDE1Ljg1NiAyOC41NzUgMTUuODU2IDI4LjU3NVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguNDk4IDYuMjQ2IDE5LjM0NSA3LjEgMTMuNTAyIDEzLjAyOCAxMy41MDIgNy4xIDE0LjA2OSA3LjEgMTQuOTE2IDYuMjQ2IDE0LjkxNiAzLjk5MiAxNC4wNjkgMy4xMzggNC42NTIgMy4xMzggMy44MDUgMy45OTIgMy44MDUgNi4yNDYgNC42NTIgNy4xIDUuMzEyIDcuMSA1LjMxMiAyNi4zMTQgNi4zNDYgMjcuMTYxIDkuMjY3IDI3LjE2MSAyOS41MTYgNi4yNDYgMjkuNTE2IDMuOTkyIDI4LjY2OSAzLjEzOCAxOS40MzggMy4xMzggMTguNDk4IDMuOTkyIDE4LjQ5OCA2LjI0NiAxOC40OTggNi4yNDZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4LjQ5OCA2LjI0NiAxOS4zNDUgNy4xIDEzLjUwMiAxMy4wMjggMTMuNTAyIDcuMSAxNC4wNjkgNy4xIDE0LjkxNiA2LjI0NiAxNC45MTYgMy45OTIgMTQuMDY5IDMuMTM4IDQuNjUyIDMuMTM4IDMuODA1IDMuOTkyIDMuODA1IDYuMjQ2IDQuNjUyIDcuMSA1LjMxMiA3LjEgNS4zMTIgMjYuMzE0IDYuMzQ2IDI3LjE2MSA5LjI2NyAyNy4xNjEgMjkuNTE2IDYuMjQ2IDI5LjUxNiAzLjk5MiAyOC42NjkgMy4xMzggMTkuNDM4IDMuMTM4IDE4LjQ5OCAzLjk5MiAxOC40OTggNi4yNDYgMTguNDk4IDYuMjQ2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0LjkzMiA2LjUzMyA0LjM2NSA1Ljk2NiA0LjM2NSA0LjI3MiA0LjkzMiAzLjcwNSAxMy43ODkgMy42OTggMTQuMzQ5IDQuMjcyIDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNzIgNC45MzIgNS42NzkgNC45MzIgNi41MzMgNC45MzIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjQuOTMyIDYuNTMzIDQuMzY1IDUuOTY2IDQuMzY1IDQuMjcyIDQuOTMyIDMuNzA1IDEzLjc4OSAzLjY5OCAxNC4zNDkgNC4yNzIgMTMuNzg5IDQuNTQ0IDEzLjUwMiA0LjI3MiA0LjkzMiA1LjY3OSA0LjkzMiA2LjUzMyA0LjkzMiA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi42MjYgMjYuNTk0IDUuOTY2IDI2LjAyNyA1Ljk2NiA2LjUyNiA2LjYyNiA1Ljk2NiA2LjYyNiAyNi41OTQgNi42MjYgMjYuNTk0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjYyNiAyNi41OTQgNS45NjYgMjYuMDI3IDUuOTY2IDYuNTI2IDYuNjI2IDUuOTY2IDYuNjI2IDI2LjU5NCA2LjYyNiAyNi41OTRcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjc1OSA2LjUzMyAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNzAzIDEyLjk0MiAxNC40NDIgMjAuNzU5IDYuNTMzIDIwLjc1OSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzU5IDYuNTMzIDIxLjMyNiA1Ljk2NiAyMS4zMjYgNy4xIDExLjkwMiAxNi43MDMgMTIuOTQyIDE0LjQ0MiAyMC43NTkgNi41MzMgMjAuNzU5IDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjgyIDUuNjg2IDYuNjI2IDUuOTY2IDUuOTY2IDYuNTMzIDQuOTMyIDYuNTMzIDQuOTMyIDUuMzk5IDYuODIgNS42ODYgNi44MiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi44MiA1LjY4NiA2LjYyNiA1Ljk2NiA1Ljk2NiA2LjUzMyA0LjkzMiA2LjUzMyA0LjkzMiA1LjM5OSA2LjgyIDUuNjg2IDYuODIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjk0MiA2LjUzMyAxMi45NDIgMTQuNDQyIDExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzggMTMuNTAyIDQuMjcyIDE0LjM0OSA0LjI3MiAxNC4zNDkgNS45NjYgMTMuNzg5IDYuNTMzIDEyLjk0MiA2LjUzMyAxMi45NDIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjk0MiA2LjUzMyAxMi45NDIgMTQuNDQyIDExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzggMTMuNTAyIDQuMjcyIDE0LjM0OSA0LjI3MiAxNC4zNDkgNS45NjYgMTMuNzg5IDYuNTMzIDEyLjk0MiA2LjUzMyAxMi45NDIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjYyNSA2LjUzMyAxOS4wNjUgNS45NjYgMTkuMDY1IDQuMjcyIDE5LjcxOCAzLjcwNSAyOC4yOTUgMy43MDUgMjguOTU2IDQuMjcyIDI4LjAwOCA1LjExOSAxOS42MjUgNS42NzkgMTkuNjI1IDYuNTMzIDE5LjYyNSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuNjI1IDYuNTMzIDE5LjA2NSA1Ljk2NiAxOS4wNjUgNC4yNzIgMTkuNzE4IDMuNzA1IDI4LjI5NSAzLjcwNSAyOC45NTYgNC4yNzIgMjguMDA4IDUuMTE5IDE5LjYyNSA1LjY3OSAxOS42MjUgNi41MzMgMTkuNjI1IDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC45NTYgNS45NjYgOS4wNzQgMjYuNTk0IDYuNjI2IDI2LjU5NCA2LjYyNiAyNS43NDcgOC40MiAyNS43NDcgMjguMjk1IDUuMzk5IDI4LjAwOCA0LjI3MiAyOC45NTYgNC4yNzIgMjguOTU2IDUuOTY2IDI4Ljk1NiA1Ljk2NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguOTU2IDUuOTY2IDkuMDc0IDI2LjU5NCA2LjYyNiAyNi41OTQgNi42MjYgMjUuNzQ3IDguNDIgMjUuNzQ3IDI4LjI5NSA1LjM5OSAyOC4wMDggNC4yNzIgMjguOTU2IDQuMjcyIDI4Ljk1NiA1Ljk2NiAyOC45NTYgNS45NjZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjUxMiA1LjY4NiAyMS4zMTkgNS45NjYgMjAuNzU5IDYuNTMzIDE5LjYyNSA2LjUzMyAxOS42MjUgNS4zOTkgMjEuNTEyIDUuNjg2IDIxLjUxMiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuNTEyIDUuNjg2IDIxLjMxOSA1Ljk2NiAyMC43NTkgNi41MzMgMTkuNjI1IDYuNTMzIDE5LjYyNSA1LjM5OSAyMS41MTIgNS42ODYgMjEuNTEyIDUuNjg2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc5IDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNjUgNS4yMTIgNC4yNjUgNC45MzIgNC41NDQgNC45MzIgNS42NzkgNS4yMTIgNS45NTggNi42MjYgNS45NTggNi42MjYgMjUuNzQ3IDYuOTkyIDI2LjAyNyA4LjYwNyAyNi4wMjcgMjguMzg5IDUuMzk5IDI4LjM4OSA0LjU4OCAyOC4xMDIgNC4yNjUgMTkuOTEyIDQuMjY1IDE5LjYyNSA0LjU0NCAxOS42MjUgNS42ODYgMTkuOTEyIDUuOTY2IDIxLjMyNiA1Ljk2NiAyMS4zMjYgNy4xIDExLjkwMiAxNi42OTYgMTEuOTAyIDE2LjY5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuOTAyIDE2LjY5NiAxMS45MDIgNS45NTggMTMuNTAyIDUuOTU4IDEzLjc4OSA1LjY3OSAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjY1IDUuMjEyIDQuMjY1IDQuOTMyIDQuNTQ0IDQuOTMyIDUuNjc5IDUuMjEyIDUuOTU4IDYuNjI2IDUuOTU4IDYuNjI2IDI1Ljc0NyA2Ljk5MiAyNi4wMjcgOC42MDcgMjYuMDI3IDI4LjM4OSA1LjM5OSAyOC4zODkgNC41ODggMjguMTAyIDQuMjY1IDE5LjkxMiA0LjI2NSAxOS42MjUgNC41NDQgMTkuNjI1IDUuNjg2IDE5LjkxMiA1Ljk2NiAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNjk2IDExLjkwMiAxNi42OTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjA0MSAxNi43MTEgMTcuNzAxIDE2LjE0NCAxOS4zOTUgMTYuMTQ0IDE5Ljg2OSAxNi43MTEgMTkuMzAyIDE4LjQwNSAxOC42NDkgMTguOTcyIDE2Ljk1NSAxOC45NzIgMTYuNDc0IDE4LjQwNSAxNy4wNDEgMTYuNzExIDE3LjA0MSAxNi43MTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjA0MSAxNi43MTEgMTcuNzAxIDE2LjE0NCAxOS4zOTUgMTYuMTQ0IDE5Ljg2OSAxNi43MTEgMTkuMzAyIDE4LjQwNSAxOC42NDkgMTguOTcyIDE2Ljk1NSAxOC45NzIgMTYuNDc0IDE4LjQwNSAxNy4wNDEgMTYuNzExIDE3LjA0MSAxNi43MTFcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjYwOCAyNi4wMzQgMTkuMzA5IDIwLjk1MyAxOC43NDIgMjAuOTUzIDE5LjMwOSAxOS4yNTEgMjEuODQzIDE5LjI1MSAyMi40MSAxOS44MTkgMjIuNzkgMTkuODE5IDIzLjM1IDE5LjI1MSAyNS4yMzggMTkuMjUxIDI1LjgwNSAxOS44MTkgMjYuMTc4IDE5LjgxOSAyNi43NDUgMTkuMjUxIDI4LjgxMiAxOS4yNTEgMjkuNTY2IDIwLjM4NiAyOC4zMzEgMjQuNDA1IDI4Ljg5MSAyNC40MDUgMjguMzQ2IDI2LjAzNCAyNC45NTEgMjYuMDM0IDI2LjI3OCAyMi4wNzkgMjUuNDMxIDIyLjA3OSAyNC42NDkgMjQuMzkxIDI1LjIwOSAyNC4zOTEgMjQuNjc4IDI2LjAzNCAyMS4yODMgMjYuMDM0IDIyLjYwMyAyMi4wNzkgMjEuNzU2IDIyLjA3OSAyMC45NjcgMjQuNDA1IDIxLjUzNCAyNC40MDUgMjEuMDAzIDI2LjAzNCAxNy42MDggMjYuMDM0IDE3LjYwOCAyNi4wMzRcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjYwOCAyNi4wMzQgMTkuMzA5IDIwLjk1MyAxOC43NDIgMjAuOTUzIDE5LjMwOSAxOS4yNTEgMjEuODQzIDE5LjI1MSAyMi40MSAxOS44MTkgMjIuNzkgMTkuODE5IDIzLjM1IDE5LjI1MSAyNS4yMzggMTkuMjUxIDI1LjgwNSAxOS44MTkgMjYuMTc4IDE5LjgxOSAyNi43NDUgMTkuMjUxIDI4LjgxMiAxOS4yNTEgMjkuNTY2IDIwLjM4NiAyOC4zMzEgMjQuNDA1IDI4Ljg5MSAyNC40MDUgMjguMzQ2IDI2LjAzNCAyNC45NTEgMjYuMDM0IDI2LjI3OCAyMi4wNzkgMjUuNDMxIDIyLjA3OSAyNC42NDkgMjQuMzkxIDI1LjIwOSAyNC4zOTEgMjQuNjc4IDI2LjAzNCAyMS4yODMgMjYuMDM0IDIyLjYwMyAyMi4wNzkgMjEuNzU2IDIyLjA3OSAyMC45NjcgMjQuNDA1IDIxLjUzNCAyNC40MDUgMjEuMDAzIDI2LjAzNCAxNy42MDggMjYuMDM0IDE3LjYwOCAyNi4wMzRcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU1NCAxOS44MTkgMjguOTkyIDIwLjQ0MyAyNy41OTkgMjQuOTA3IDI4LjE1OSAyNC45MDcgMjcuOTcyIDI1LjQ2NyAyNS43MTEgMjUuNDY3IDI3LjAzMiAyMS41MTIgMjUuMDUxIDIxLjUxMiAyMy45MjQgMjQuOTA3IDI0LjQ4NCAyNC45MDcgMjQuMjk3IDI1LjQ2NyAyMi4wMzYgMjUuNDY3IDIzLjM1NyAyMS41MTIgMjEuMzc2IDIxLjUxMiAyMC4yNDkgMjQuOTA3IDIwLjgxNiAyNC45MDcgMjAuNjIyIDI1LjQ2NyAxOC4zNjEgMjUuNDY3IDIwLjA2MyAyMC4zODYgMTkuNDk1IDIwLjM4NiAxOS42ODIgMTkuODE5IDIxLjc1NiAxOS44MTkgMjIuMzIzIDIwLjM4NiAyMi44ODMgMjAuMzg2IDIzLjQ1IDE5LjgxOSAyNS4xNDQgMTkuODE5IDI1LjcxMSAyMC4zODYgMjYuMjc4IDIwLjM4NiAyNi44NDUgMTkuODE5IDI4LjU1NCAxOS44MTkgMjguNTU0IDE5LjgxOVxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNTU0IDE5LjgxOSAyOC45OTIgMjAuNDQzIDI3LjU5OSAyNC45MDcgMjguMTU5IDI0LjkwNyAyNy45NzIgMjUuNDY3IDI1LjcxMSAyNS40NjcgMjcuMDMyIDIxLjUxMiAyNS4wNTEgMjEuNTEyIDIzLjkyNCAyNC45MDcgMjQuNDg0IDI0LjkwNyAyNC4yOTcgMjUuNDY3IDIyLjAzNiAyNS40NjcgMjMuMzU3IDIxLjUxMiAyMS4zNzYgMjEuNTEyIDIwLjI0OSAyNC45MDcgMjAuODE2IDI0LjkwNyAyMC42MjIgMjUuNDY3IDE4LjM2MSAyNS40NjcgMjAuMDYzIDIwLjM4NiAxOS40OTUgMjAuMzg2IDE5LjY4MiAxOS44MTkgMjEuNzU2IDE5LjgxOSAyMi4zMjMgMjAuMzg2IDIyLjg4MyAyMC4zODYgMjMuNDUgMTkuODE5IDI1LjE0NCAxOS44MTkgMjUuNzExIDIwLjM4NiAyNi4yNzggMjAuMzg2IDI2Ljg0NSAxOS44MTkgMjguNTU0IDE5LjgxOSAyOC41NTQgMTkuODE5XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBhdGggZD1cXFwiTTE5LjAyMiwxOS4yNTEsMTcuMjkyLDI0LjRoLjU4OWwtLjU2LDEuNjM3SDEzLjkzM2wxLjY5NC01LjA4MkgxNS4wNmwzLjk2Mi0xLjdabS0zLjk2MiwxLjcuNTY3LTEuN2gzLjRsLTMuOTYyLDEuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDIyLDE5LjI1MSwxNy4yOTIsMjQuNGguNTg5bC0uNTYsMS42MzdIMTMuOTMzbDEuNjk0LTUuMDgySDE1LjA2bDMuOTYyLTEuN1ptLTMuOTYyLDEuNy41NjctMS43aDMuNGwtMy45NjIsMS43WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuOTQ3IDI1LjQ2NyAxNy4xMzQgMjQuOTA3IDE2LjU2NyAyNC45MDcgMTguMjY4IDE5LjgxOSAxNS45MTQgMTkuODE5IDE1LjcyIDIwLjM4NiAxNi4zOCAyMC4zODYgMTQuNjg2IDI1LjQ2NyAxNi45NDcgMjUuNDY3IDE2Ljk0NyAyNS40NjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljk0NyAyNS40NjcgMTcuMTM0IDI0LjkwNyAxNi41NjcgMjQuOTA3IDE4LjI2OCAxOS44MTkgMTUuOTE0IDE5LjgxOSAxNS43MiAyMC4zODYgMTYuMzggMjAuMzg2IDE0LjY4NiAyNS40NjcgMTYuOTQ3IDI1LjQ2NyAxNi45NDcgMjUuNDY3XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC44MjggMTguMTI1IDE5LjIwOCAxNi45OTEgMTkuMDIyIDE2LjcxMSAxNy44ODggMTYuNzExIDE3LjUxNCAxNi45OTEgMTcuMTM0IDE4LjEyNSAxNy4zMjggMTguNDA1IDE4LjQ2MiAxOC40MDUgMTguODI4IDE4LjEyNSAxOC44MjggMTguMTI1XFxcIiBzdHlsZT1cXFwiZmlsbDojZDBkMmQzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC44MjggMTguMTI1IDE5LjIwOCAxNi45OTEgMTkuMDIyIDE2LjcxMSAxNy44ODggMTYuNzExIDE3LjUxNCAxNi45OTEgMTcuMTM0IDE4LjEyNSAxNy4zMjggMTguNDA1IDE4LjQ2MiAxOC40MDUgMTguODI4IDE4LjEyNSAxOC44MjggMTguMTI1XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+XCIsXG5cdH0sXG5cdFwiVmlzdWFsIEJhc2ljXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNTE5YVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTYuNjcsNy44MzYsOSwxOC45MTUsMTEuMzM2LDcuODM2SDE2TDExLjMzNiwyNC4xNjRINi42NzJMMiw3LjgzNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUxOWFcXFwiLz48cGF0aCBkPVxcXCJNMTguMzMxLDcuODM2aDcuNmE0LjA4LDQuMDgsMCwwLDEsMi45LDEuNzQ5LDMuNzgsMy43OCwwLDAsMSwuNTcxLDIuMDQsMy45ODUsMy45ODUsMCwwLDEtLjU3MSwyLjAzNCw0LjEwOCw0LjEwOCwwLDAsMS0yLjM0MSwxLjc2Myw0LjEsNC4xLDAsMCwxLDIuOTI5LDEuNzU2LDMuOCwzLjgsMCwwLDEsLjU4LDIuMSw0LjY2Myw0LjY2MywwLDAsMS0uNTc5LDIuNTQ2LDUuMDQ3LDUuMDQ3LDAsMCwxLTMuNSwyLjMzOEgxOC4zMzFaTTIzLDE0LjI1MmgxLjE2NmExLjc1NCwxLjc1NCwwLDAsMCwwLTMuNUgyM1ptMCw3SDI0LjM5YTIuMDQ3LDIuMDQ3LDAsMCwwLDAtNC4wODlIMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+XCIsXG5cdH0sXG5cdFwiV2ViQXNzZW1ibHlcIjoge1xuXHRcdGNvbG91cjogXCIjNjU0ZmYwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTkuMTUzLDIuMzVWMi41YTMuMiwzLjIsMCwxLDEtNi40LDBoMFYyLjM1SDJWMzAuMjY5SDI5LjkxOVYyLjM1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NGZmMFxcXCIvPjxwYXRoIGQ9XFxcIk04LjQ4NSwxNy40aDEuODVMMTEuNiwyNC4xMjNoLjAyM0wxMy4xNCwxNy40aDEuNzMxbDEuMzcxLDYuODFoLjAyN2wxLjQ0LTYuODFoMS44MTVsLTIuMzU4LDkuODg1SDE1LjMyOWwtMS4zNi02LjcyOGgtLjAzNmwtMS40NTYsNi43MjhoLTEuODdabTEzLjEyNCwwaDIuOTE3bDIuOSw5Ljg4NUgyNS41MTVsLS42My0yLjJIMjEuNTYybC0uNDg2LDIuMkgxOS4yMTdabTEuMTEsMi40MzctLjgwNywzLjYyN2gyLjUxMkwyMy41LDE5LjgzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJXb2xmcmFtIGxhbmd1YWdlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2QwMTAwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTMwLDIwLjU1LDI1Ljk0LDE2LDMwLDExLjQ1bC01Ljk0OC0xLjI5NC41OTUtNi4wNjdMMTkuMDcxLDYuNTQzLDE1Ljk5MywxLjI3OSwxMi45MjksNi41NDMsNy4zNTMsNC4wODlsLjU5NSw2LjA2N0wyLDExLjQ1LDYuMDU5LDE2LDIsMjAuNTVsNS45NDgsMS4yOTQtLjU5NSw2LjA2Nyw1LjU3Ni0yLjQ1NCwzLjA3OCw1LjI2NCwzLjA2My01LjI2NCw1LjU5MSwyLjQ1NC0uNjEtNi4wNjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDEwXFxcIi8+PHBhdGggZD1cXFwiTTE5LjM1MywxMS40NWE2Ljk2OCw2Ljk2OCwwLDAsMS0zLjQyLjg2Miw1LjQ0Niw1LjQ0NiwwLDAsMS0zLjIxMi0uODYyQTcuMSw3LjEsMCwwLDEsMTIuNSwxNC44YTYuMjI1LDYuMjI1LDAsMCwxLTEuODc0LDIuOTE0LDcuNDU0LDcuNDU0LDAsMCwxLDMuMTM4LDEuMTksOS42NTksOS42NTksMCwwLDEsMi4yMTYsMi43MjEsOC4xOTQsOC4xOTQsMCwwLDEsMi4xNDEtMi42OTEsNy42MDUsNy42MDUsMCwwLDEsMy4yNDItMS4yLDEyLjU2MiwxMi41NjIsMCwwLDEtMS45MzMtMi45NDRBNi43MTgsNi43MTgsMCwwLDEsMTkuMzUzLDExLjQ1Wm0tMS45LDYuNTQzYTUuMjMzLDUuMjMzLDAsMCwwLTEuNDU3LDEuNjM2LDYuMjM2LDYuMjM2LDAsMCwwLTEuNS0xLjYyMSw1LjE5MSw1LjE5MSwwLDAsMC0xLjk0OC0uODQ4LDYuODM5LDYuODM5LDAsMCwwLDEuMTE1LTIuMDA3LDYuMTgsNi4xOCwwLDAsMCwuMjIzLTIuMDgyLDYuMzE3LDYuMzE3LDAsMCwwLDIuMDgyLjQ0Niw2LjU1Miw2LjU1MiwwLDAsMCwyLjE3MS0uNDYxLDQuNTIxLDQuNTIxLDAsMCwwLC4wNzQsMi4xNTYsNi43MSw2LjcxLDAsMCwwLDEuMjQ5LDEuOTMzQTcuMDMxLDcuMDMxLDAsMCwwLDE3LjQ1LDE3Ljk5M1ptNC4yMzgtNC4wMTVjLS4zNTctMS4xNzUuNjU0LTYuNzA2LjY1NC02LjcwNlMxOC41NSw5Ljg0NCwxNS44ODgsOS44NDRzLTYuMjMtMi41NzItNi4yMy0yLjU3MiwxLjE3NSw0LjAxNS40NjEsNi41ODctNC4zODcsNS40NzItNC4zODcsNS40NzIsNC43ODguMjgzLDYuNiwxLjUsMy42NTgsNS45NDgsMy42NTgsNS45NDgsMi40NTQtNS4yLDMuNDgtNS45NDgsNi44LTEuNSw2LjgtMS41LTQuMjIzLTQuMTc4LTQuNTgtNS4zNTNabS0yLjg0LDUuOTYzYTkuNDQ0LDkuNDQ0LDAsMCwwLTIuODQsNC4xNzhzLTEuNDEzLTMuMTUyLTIuOTc0LTQuMjIzUzguMywxOC41NDMsOC4zLDE4LjU0M3MyLjQ1NC0yLjE3MSwzLjA0OC00LjFhMTEuOTIzLDExLjkyMywwLDAsMC0uMS00Ljk1MiwxMS4zLDExLjMsMCwwLDAsNC42NjksMS42MjFjMi4wMzcsMCw0Ljg0OC0xLjYyMSw0Ljg0OC0xLjYyMXMtLjgxOCwzLjAzMy0uMTY0LDQuOTIyLDMuMTA4LDQuMTM0LDMuMTA4LDQuMTM0YTEwLjU1NywxMC41NTcsMCwwLDAtNC44NjIsMS40WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlhNTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmMTY2MmFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC40MiwyMS4xNTdsMi4yMTEsMi4yMTFMMzAsMTYsMjIuNjMxLDguNjMxLDIwLjQyLDEwLjg0MywyNS41OCwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNTgsMTAuODQzLDkuMzY5LDguNjMxLDIsMTZsNy4zNjksNy4zNjksMi4yMTEtMi4yMTFMNi40MiwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMTcuNDExLDcuNjc3bDEuNi40MzctNC40MiwxNi4yMDktMS42LS40MzcsNC40Mi0xNi4yMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+XCIsXG5cdH0sXG5cdFwiWFF1ZXJ5XCI6IHtcblx0XHRjb2xvdXI6IFwiI2YxNjYyYVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIwLjQyLDIxLjE1N2wyLjIxMSwyLjIxMUwzMCwxNiwyMi42MzEsOC42MzEsMjAuNDIsMTAuODQzLDI1LjU4LDE2Wk0xMS41OCwxMC44NDMsOS4zNjksOC42MzEsMiwxNmw3LjM2OSw3LjM2OSwyLjIxMS0yLjIxMUw2LjQyLDE2Wm01LjgzMS0zLjE2NiwxLjYuNDM3LTQuNDIsMTYuMjA5LTEuNi0uNDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4zMzIsMTguNDYyYTMuMzU0LDMuMzU0LDAsMCwxLC45NzUtMS40MjMsNC4wMTQsNC4wMTQsMCwwLDEsMS42MTctLjhBOS4xMTgsOS4xMTgsMCwwLDEsMjUuMTM4LDE2YTUuNDcyLDUuNDcyLDAsMCwxLDMuNjgxLDEuMDM5QTMuNSwzLjUsMCwwLDEsMzAsMTkuODA4YTQuNDcsNC40NywwLDAsMS0uMjQsMS40OTEsMy4xMjQsMy4xMjQsMCwwLDEtLjgzOCwxLjIzOWwtMS42NzUsMS42YTEuNTEyLDEuNTEyLDAsMCwwLS40MjQuNzg5LDUuMzA3LDUuMzA3LDAsMCwwLS4xLDEuMUgyM3YtLjU0YTYuMzIsNi4zMiwwLDAsMSwuMjA3LTEuNzc4LDIuODg2LDIuODg2LDAsMCwxLC43OC0xLjI0bDEuMzUyLTEuMjg5YTEuODQsMS44NCwwLDAsMCwuNTYzLS44OTQsMy42ODIsMy42ODIsMCwwLDAsLjEtLjgsMS41LDEuNSwwLDAsMC0uMjUyLS45LjkuOSwwLDAsMC0uNzc5LS4zNDYsMS4yNTUsMS4yNTUsMCwwLDAtLjQ4My4wODYuNzI0LjcyNCwwLDAsMC0uMzQ0LjMzNywyLjM0NywyLjM0NywwLDAsMC0uMjE3LjcyMSw3LjYxNCw3LjYxNCwwLDAsMC0uMDgxLDEuMjRIMjBBNi4xNTUsNi4xNTUsMCwwLDEsMjAuMzMyLDE4LjQ2MlptNi40NTcsOC41VjMwSDIyLjkzNlYyNi45NjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmNiYTAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiWUFNTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZmU4ODVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDEyLjIxOGMuNzU1LDAsMS41MS0uMDA4LDIuMjY0LDBsLjA1My4wMzhRNS43LDEzLjYzOCw3LjA3OCwxNS4wMTRjLjg5MS0uOTA2LDEuOC0xLjc5NCwyLjctMi43LjA1My0uMDUyLjExLS4xMTMuMTkyLS4xLjYwOCwwLDEuMjE1LDAsMS44MjMsMGExLjQsMS40LDAsMCwxLC4zNTMuMDE5Yy0uNy42Ny0xLjM3NywxLjM2OS0yLjA2OSwyLjA1TDUuNTQ1LDE4LjhjLS4zMzEuMzI0LS42NDguNjYzLS45ODkuOTc1LS43NTQuMDIyLTEuNTExLjAwNy0yLjI2Ni4wMDcsMS4yMjMtMS4yMDksMi40MzEtMi40MzMsMy42NTgtMy42MzdDNC42MjcsMTQuODQxLDMuMzE4LDEzLjUyNSwyLDEyLjIxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU4ODVcXFwiLz48cGF0aCBkPVxcXCJNMTIuNywxMi4yMThjLjYxMywwLDEuMjI2LDAsMS44MzksMHEwLDMuNzgzLDAsNy41NjZjLS42MTEsMC0xLjIyMi4wMTItMS44MzItLjAwOCwwLTEuNjY0LDAtMy4zMjksMC00Ljk5NC0xLjYsMS42MDctMy4yMDksMy4yLTQuODExLDQuOC0uMDg5LjA4LS4xNjYuMjE3LS4zMDUuMTk0LS44MjQtLjAwNi0xLjY0OSwwLTIuNDc0LDBROC45MTYsMTYsMTIuNywxMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTE0Ljk1OCwxMi4yMmMuNDctLjAwOS45MzksMCwxLjQwOSwwLC44MzYuODUzLDEuNjksMS42ODksMi41MzYsMi41MzJxMS4yNjgtMS4yNjcsMi41MzktMi41MzIuNywwLDEuNCwwLS4wMDgsMy43ODQsMCw3LjU2N2MtLjQ3MSwwLS45NDMuMDA2LTEuNDE0LDBxLjAwOC0yLjM4NywwLTQuNzczYy0uODQ0Ljg0My0xLjY3NiwxLjctMi41MjYsMi41MzYtLjg1Ni0uODM1LTEuNjg3LTEuNjk1LTIuNTMyLTIuNTQxLDAsMS41OTQtLjAwNiwzLjE4OC4wMDYsNC43ODEtLjQ3MiwwLS45NDMuMDA1LTEuNDE1LDBRMTQuOTU4LDE2LDE0Ljk1OCwxMi4yMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU4ODVcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjU5LDEyLjIxN2MuNDcyLDAsLjk0NC0uMDA3LDEuNDE2LDBxLS4wMDcsMy4wODMsMCw2LjE2NmMxLjI2LDAsMi41MjEsMCwzLjc4MiwwLC4wNjMuMDA2LjE0NC0uMDEyLjE5MS4wNDUuNDQ4LjQ1NC45MDcuOSwxLjM1MywxLjM1NHEtMy4zNzEuMDA3LTYuNzQxLDBRMjMuMjY3LDE2LDIzLjI1OSwxMi4yMTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+XCIsXG5cdH0sXG5cdFwiWUFOR1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMyMzFmMjBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04Ljg3NywyMy4xNTljMC01LjUzNSwzLjk5Mi03LjE2OCw3Ljg5NC03LjE2OCwzLjM1NywwLDUuOTg4LTMuODExLDUuOTg4LTYuNjI0LDAtMy42MjEtMi40ODctNS44MzEtNC44ODItNy4xMkExMy44ODEsMTMuODgxLDAsMSwwLDE0LjUsMjkuOEMxMC40OTEsMjguMjQ4LDguODc3LDI1LjMyNCw4Ljg3NywyMy4xNTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE0LjQ4MiwyOS45MTdBMTQsMTQsMCwwLDEsMTYsMmExNC4xNTQsMTQuMTU0LDAsMCwxLDEuODkzLjEzMWwuMDQuMDEzYzIuMjU1LDEuMjEzLDQuOTQ0LDMuNDUyLDQuOTQ0LDcuMjIzLDAsMi43MTUtMi41NjQsNi43NDEtNi4xMDYsNi43NDEtMi45LDAtNy43NzYuOTE2LTcuNzc2LDcuMDUsMCwyLjAyMiwxLjQ1MSw0Ljk0Niw1LjU0Miw2LjUzMVpNMTYsMi4yMzZBMTMuNzY1LDEzLjc2NSwwLDAsMCwxMy42MzcsMjkuNTZjLTMuNTgxLTEuNjg0LTQuODc3LTQuNDQ3LTQuODc3LTYuNCwwLTYuNTc2LDUuNi03LjI4Niw4LjAxMi03LjI4NiwzLjQwNiwwLDUuODctMy44ODYsNS44Ny02LjUwNiwwLTMuNjQ1LTIuNjA2LTUuODItNC44LTcuMDA2QTEzLjkyOCwxMy45MjgsMCwwLDAsMTYsMi4yMzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljg4MiwxNmExMy44ODIsMTMuODgyLDAsMCwwLTEyLTEzLjc1MmMyLjQsMS4yODksNC44ODIsMy41LDQuODgyLDcuMTIsMCwyLjgxMy0yLjYzMSw2LjYyNC01Ljk4OCw2LjYyNC0zLjksMC03Ljg5NCwxLjYzMy03Ljg5NCw3LjE2OCwwLDIuMTY2LDEuNjEzLDUuMDg5LDUuNjE4LDYuNjQxQTEzLjg3NSwxMy44NzUsMCwwLDAsMjkuODgyLDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGExNC4yLDE0LjIsMCwwLDEtMS41MTgtLjA4M2wtLjAzLS4wMDdjLTQuMi0xLjYyOC01LjY5My00LjY1NC01LjY5My02Ljc1LDAtNi41NzYsNS42LTcuMjg2LDguMDEyLTcuMjg2LDMuNDA2LDAsNS44Ny0zLjg4Niw1Ljg3LTYuNTA2LDAtMy42NTUtMi42MjEtNS44MzMtNC44Mi03LjAxNmwuMDcyLS4yMjFBMTQsMTQsMCwwLDEsMTYsMzBabS0xLjQ3Ny0uMzE2QTEzLjc1NiwxMy43NTYsMCwwLDAsMjkuNzY0LDE2LDEzLjgwNywxMy44MDcsMCwwLDAsMTguNSwyLjQ2NmMyLjExNSwxLjI3Miw0LjM3NywzLjQ0MSw0LjM3Nyw2LjksMCwyLjcxNS0yLjU2NCw2Ljc0MS02LjEwNiw2Ljc0MS0yLjksMC03Ljc3Ni45MTYtNy43NzYsNy4wNUM5LDI1LjE3OCwxMC40NDMsMjguMSwxNC41MjMsMjkuNjg0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxjaXJjbGUgY3g9XFxcIjE1Ljk0M1xcXCIgY3k9XFxcIjIyLjc4N1xcXCIgcj1cXFwiMS41MDZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIxNi4wMDdcXFwiIGN5PVxcXCI5LjE0MlxcXCIgcj1cXFwiMS41MDZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz5cIixcblx0fSxcblx0XCJaaWdcIjoge1xuXHRcdGNvbG91cjogXCIjZjdhNDFkXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuNzMzIDE5LjczMSA1LjczMyAxMi4yNjQgOC41MzMgMTIuMjY0IDguNTMzIDguNTMxIDIgOC41MzEgMiAyMy40NjQgNS41NDcgMjMuNDY0IDguOTA3IDE5LjczMSA1LjczMyAxOS43MzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI2LjQ1MyA4LjUzMSAyMy4wOTMgMTIuMjY0IDI2LjI2NyAxMi4yNjQgMjYuMjY3IDE5LjczMSAyMy40NjcgMTkuNzMxIDIzLjQ2NyAyMy40NjQgMzAgMjMuNDY0IDMwIDguNTMxIDI2LjQ1MyA4LjUzMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y3YTQxZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjYuODc1IDYuNzA3IDIwLjUxMyA4LjUzMSA5LjQ2NyA4LjUzMSA5LjQ2NyAxMi4yNjQgMTYuODQ3IDEyLjI2NCA1LjExNSAyNS4yOTMgMTEuNDk3IDIzLjQ2NCAyMi41MzMgMjMuNDY0IDIyLjUzMyAxOS43MzEgMTUuMTQ4IDE5LjczMSAyNi44NzUgNi43MDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz5cIixcblx0fVxufTtcblxuY29uc3QgRVhFQ1VURV9DT0RFX0xBTkdVQUdFX0FMSUFTRVM6IEFycmF5PHN0cmluZz4gPSBbXCJqYXZhc2NyaXB0XCIsXCJ0eXBlc2NyaXB0XCIsXCJiYXNoXCIsXCJjc2hhcnBcIixcIndvbGZyYW1cIixcIm5iXCIsXCJ3bFwiLFwiaHNcIixcInB5XCIsXCJzY3B0XCJdO1xuY29uc3QgRVhFQ1VURV9DT0RFX0NBTk9OSUNBTF9MQU5HVUFHRVM6IEFycmF5PHN0cmluZz4gPSBbXCJqc1wiLFwidHNcIixcImNzXCIsXCJsZWFuXCIsXCJsdWFcIixcInB5dGhvblwiLFwiY3BwXCIsXCJwcm9sb2dcIixcInNoZWxsXCIsXCJncm9vdnlcIixcInJcIixcImdvXCIsXCJydXN0XCIsXCJqYXZhXCIsXCJwb3dlcnNoZWxsXCIsXCJrb3RsaW5cIixcIm1hdGhlbWF0aWNhXCIsXCJoYXNrZWxsXCIsXCJzY2FsYVwiLFwicmFja2V0XCIsXCJmc2hhcnBcIixcImNcIixcImRhcnRcIixcInJ1YnlcIixcImJhdGNoXCIsXCJzcWxcIixcIm9jdGF2ZVwiLFwibWF4aW1hXCIsXCJhcHBsZXNjcmlwdFwiXTtcblxuZXhwb3J0IGNvbnN0IEVYRUNVVEVfQ09ERV9TVVBQT1JURURfTEFOR1VBR0VTID0gWy4uLkVYRUNVVEVfQ09ERV9MQU5HVUFHRV9BTElBU0VTLC4uLkVYRUNVVEVfQ09ERV9DQU5PTklDQUxfTEFOR1VBR0VTXTtcbiIsICJpbXBvcnQgeyBBcHAsIFBsdWdpblNldHRpbmdUYWIsIFNldHRpbmcsIE5vdGljZSwgVGV4dENvbXBvbmVudCwgRHJvcGRvd25Db21wb25lbnQsIFNsaWRlckNvbXBvbmVudCwgVG9nZ2xlQ29tcG9uZW50LCBFeHRyYUJ1dHRvbkNvbXBvbmVudCwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IFBpY2tyIGZyb20gXCJAc2ltb253ZXAvcGlja3JcIjtcbmltcG9ydCB7IENvbG9yVHJhbnNsYXRvciB9IGZyb20gXCJjb2xvcnRyYW5zbGF0b3JcIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuaW1wb3J0IHsgQ29sb3VyLCBDU1MsIEhFWCwgRGlzcGxheSwgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBGT0xEX1BMQUNFSE9MREVSLCBQQVJBTUVURVJTLCBERUZBVUxUX1NFVFRJTkdTLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VTLCBTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCwgRVhBTVBMRV9JTkxJTkVfQ09ERSwgRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUywgRVhBTVBMRV9DT0RFQkxPQ0tfQ09OVEVOVCwgRVhDTFVERURfTEFOR1VBR0VTLCBXSElURUxJU1RfQ09ERUJMT0NLUywgSU5CVUlMVF9USEVNRVMsIENvZGVTdHlsZXJUaGVtZSB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5cbmNvbnN0IFNFVFRJTkdTX1BBR0VTOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4gPSB7XG5cdFwibWFpblwiOiBcIkNvcmUgU2V0dGluZ3NcIixcblx0XCJjb2RlYmxvY2tcIjogXCJDb2RlYmxvY2sgU3R5bGluZ1wiLFxuXHRcImlubGluZVwiOiBcIklubGluZSBDb2RlIFN0eWxpbmdcIixcbn07XG5jb25zdCBDT0RFQkxPQ0tfUEFHRVM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiA9IHtcblx0XCJib2R5XCI6IFwiQ29kZWJsb2NrIEJvZHlcIixcblx0XCJndXR0ZXJcIjogXCJDb2RlYmxvY2sgR3V0dGVyXCIsXG5cdFwiaGVhZGVyXCI6IFwiQ29kZWJsb2NrIEhlYWRlclwiLFxuXHRcImhpZ2hsaWdodFwiOiBcIkNvZGVibG9jayBIaWdobGlnaHRpbmdcIixcblx0XCJsYW5ndWFnZXNcIjogXCJDb2RlYmxvY2sgTGFuZ3VhZ2VzXCIsXG5cdC8vIFwicGx1Z2luc1wiOiBcIlBsdWdpbiBDb21wYXRpYmlsaXR5XCIsXG5cdFwiZXhhbXBsZVwiOiBcIkV4YW1wbGUgQ29kZWJsb2NrIENvbnRlbnRcIixcbn07XG5jb25zdCBESVNQTEFZX09QVElPTlM6IFJlY29yZDxEaXNwbGF5LHN0cmluZz4gPSB7XG5cdFwibm9uZVwiOiBcIk5ldmVyXCIsXG5cdFwiaWZfaGVhZGVyX3Nob3duXCI6IFwiSWYgSGVhZGVyIFNob3duXCIsXG5cdFwiYWx3YXlzXCI6IFwiQWx3YXlzXCIsXG59O1xuXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcblx0cGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luO1xuXHRwaWNrcnM6IFJlY29yZDxzdHJpbmcsUGlja3JSZXNldHRhYmxlPjtcblx0cGFnZTogc3RyaW5nO1xuXHRjb2RlYmxvY2tQYWdlOiBzdHJpbmc7XG5cdGhpZGVBZHZhbmNlZDogYm9vbGVhbjtcblx0Y29kZWJsb2NrU2V0dGluZ0VsOiBIVE1MRWxlbWVudDtcblx0YWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGFsdGVybmF0aXZlSGlnaGxpZ2h0c0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGV4YW1wbGVDb2RlYmxvY2tDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRleGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdHdyYXBMaW5lc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGxpbmVOdW1iZXJzQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0aGVhZGVyVGFnc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGhlYWRlckljb25zQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0aW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGRpc2FibGVhYmxlQ29tcG9uZW50czogUmVjb3JkPHN0cmluZyxBcnJheTxUb2dnbGVDb21wb25lbnQgfCBTbGlkZXJDb21wb25lbnQgfCBUZXh0Q29tcG9uZW50IHwgRXh0cmFCdXR0b25Db21wb25lbnQ+PjtcblxuXHRjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdFx0c3VwZXIoYXBwLCBwbHVnaW4pO1xuXHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xuXHRcdHRoaXMucGlja3JzID0ge307XG5cdFx0dGhpcy5wYWdlID0gXCJtYWluXCI7XG5cdFx0dGhpcy5jb2RlYmxvY2tQYWdlID0gXCJib2R5XCI7XG5cdFx0dGhpcy5oaWRlQWR2YW5jZWQgPSB0cnVlO1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzID0ge307XG5cdH1cblxuXHQvKipcblx0ICogIEJ1aWxkcyB0aGUgaHRtbCBwYWdlIHRoYXQgaXMgc2hvd2VkIGluIHRoZSBzZXR0aW5ncy5cblx0ICovXG5cdGRpc3BsYXkoKSB7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHMgPSB7XG5cdFx0XHRcImVkaXRvckFjdGl2ZUxpbmVIaWdobGlnaHRcIjogW10sXG5cdFx0XHRcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIjogW10sXG5cdFx0XHRcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCI6IFtdLFxuXHRcdFx0XCJsYW5ndWFnZUJvcmRlckNvbG91clwiOiBbXSxcblx0XHR9O1xuXHRcdHRoaXMuaGlkZUFkdmFuY2VkID0gdHJ1ZTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3ModGhpcy5jb250YWluZXJFbCk7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3MgUGFnZXNcblx0ZGlzcGxheU1haW5TZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLmVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlVGhlbWVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvcmVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkSGVhZGluZyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKTtcblx0XHR0aGlzLmdlbmVyYXRlRG9uYXRpb25Gb290ZXIoY29udGFpbmVyRWwpO1xuXHR9XG5cdGRpc3BsYXlDb2RlYmxvY2tTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLmVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlVGhlbWVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoclwiKTtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tTdHlsaW5nU3dpdGNoZXIoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja1NldHRpbmcoKTtcblxuXHR9XG5cdGRpc3BsYXlJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaHJcIik7XG5cdFx0dGhpcy5leGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpO1xuXHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0fVxuXG5cdC8vIENyZWF0ZSBTZXR0aW5ncyBHcm91cHNcblx0ZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5lbXB0eSgpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDFcIiwge3RleHQ6IFwiU2V0dGluZ3MgZm9yIHRoZSBDb2RlIFN0eWxlciBQbHVnaW4uXCJ9KTtcblx0fVxuXHRnZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNob29zZSBTZXR0aW5ncyBQYWdlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNoYW5nZSBkcm9wZG93biB0byBtb2RpZnkgZGlmZmVyZW50IGdyb3VwcyBvZiBzZXR0aW5nc1wiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoU0VUVElOR1NfUEFHRVMpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBhZ2UpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWU6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGFnZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgPT09IFwibWFpblwiKVxuXHRcdFx0dGhpcy5kaXNwbGF5TWFpblNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiY29kZWJsb2NrXCIpXG5cdFx0XHR0aGlzLmRpc3BsYXlDb2RlYmxvY2tTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5wYWdlID09PSBcImlubGluZVwiKVxuXHRcdFx0dGhpcy5kaXNwbGF5SW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja1N0eWxpbmdTd2l0Y2hlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ2hvb3NlIENvZGVibG9jayBTZXR0aW5nc1wiKVxuXHRcdFx0LnNldERlc2MoXCJDaGFuZ2UgZHJvcGRvd24gdG8gbW9kaWZ5IHN0eWxlcyBhbmQgc2V0dGluZ3Mgb2YgZGlmZmVyZW50IGNvZGVibG9jayBzZWN0aW9uc1wiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoQ09ERUJMT0NLX1BBR0VTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5jb2RlYmxvY2tQYWdlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhZ2UgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrU2V0dGluZygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tTZXR0aW5nKCkge1xuXHRcdHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJib2R5XCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrQm9keVNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiZ3V0dGVyXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrR3V0dGVyU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJoZWFkZXJcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tIZWFkZXJTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0hpZ2hsaWdodFNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwibGFuZ3VhZ2VzXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGFuZ3VhZ2VTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcInBsdWdpbnNcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVQbHVnaW5Db21wYXRpYmlsaXR5U2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJleGFtcGxlXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9ja1NldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0fVxuXHRnZW5lcmF0ZUNvcmVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU3R5bGUgQ29kZSBvbiBFeHBvcnRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgc3R5bGluZyB3aWxsIGJlIGFwcGxpZWQgd2hlbiBleHBvcnRpbmcgdG8gUERGLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5kZWNvcmF0ZVByaW50KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgICAgICAgXG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7dGV4dDogXCJUaGVtZSBTZXR0aW5nc1wifSk7XG5cdFx0bGV0IHRoZW1lRHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50O1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTZWxlY3QgVGhlbWVcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IHtcblx0XHRcdFx0dGhlbWVEcm9wZG93biA9IGRyb3Bkb3duO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHR0aGVtZURyb3Bkb3duLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkRXh0cmFCdXR0b24oYnV0dG9uID0+IHtcblx0XHRcdFx0YnV0dG9uLnNldFRvb2x0aXAoXCJVcGRhdGUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwic2F2ZVwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCk7XG5cdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBzYXZlZCBzdWNjZXNzZnVsbHkhYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRFeHRyYUJ1dHRvbihidXR0b24gPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0VG9vbHRpcChcIkRlbGV0ZSB0aGVtZVwiKTtcblx0XHRcdFx0YnV0dG9uLnNldEljb24oXCJ0cmFzaFwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lLnRyaW0oKS5sZW5ndGggPT09IDApXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2VsZWN0IGEgdGhlbWUgZmlyc3QgdG8gZGVsZXRlXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lIGluIERFRkFVTFRfU0VUVElOR1MudGhlbWVzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIllvdSBjYW5ub3QgZGVsZXRlIHRoZSBkZWZhdWx0IHRoZW1lc1wiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdO1xuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBkZWxldGVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gXCJEZWZhdWx0XCI7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlRHJvcGRvd24odGhlbWVEcm9wZG93bix0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdGxldCBuZXdUaGVtZU5hbWU6IFRleHRDb21wb25lbnQ7XG5cdFx0bGV0IG5ld1RoZW1lRGVmYXVsdDogVG9nZ2xlQ29tcG9uZW50O1xuXHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gXCJcIjtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIE5ldyBUaGVtZVwiKVxuXHRcdFx0LnNldERlc2MoXCJDcmVhdGUgYSBuZXcgdGhlbWUgZnJvbSB0aGUgY3VycmVudCBzZXR0aW5ncy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4ge25ld1RoZW1lTmFtZSA9IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiTmV3IHRoZW1lIG5hbWVcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEV4dHJhQnV0dG9uKGJ1dHRvbiA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRUb29sdGlwKFwiU2F2ZSB0aGVtZVwiKTtcblx0XHRcdFx0YnV0dG9uLnNldEljb24oXCJwbHVzXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lLnRyaW0oKS5sZW5ndGggPT09IDApXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2V0IGEgbmFtZSBmb3IgeW91ciB0aGVtZVwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgaW4gREVGQVVMVF9TRVRUSU5HUy50aGVtZXMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiWW91IGNhbid0IG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCB0aGVtZXNcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lIGluIHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lcykge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWVdID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWV9IHRoZW1lIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZV0gPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZX0gdGhlbWUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlRHJvcGRvd24odGhlbWVEcm9wZG93bix0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgPSBcIlwiO1xuXHRcdFx0XHRcdFx0bmV3VGhlbWVOYW1lLnNldFZhbHVlKFwiXCIpO1xuXHRcdFx0XHRcdFx0bmV3VGhlbWVEZWZhdWx0LnNldFZhbHVlKGZhbHNlKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrQm9keVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiQ29kZWJsb2NrIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJjb2RlYmxvY2tfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCB0aGUgY29kZWJsb2NrcyBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMjUsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY3VydmF0dXJlXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgQ29sb3VyZWQgQm9yZGVyc1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBsYW5ndWFnZXMgd2l0aCBpY29ucyBkaXNwbGF5IGEgbGVmdCBib3JkZXIgd2l0aCB0aGUgY29sb3VyIG9mIHRoZSBpY29uLiBUaGUgc2xpZGVyIHNldHMgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91ciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCghdmFsdWUpO30pO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMjAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGgpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXIpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0ucHVzaChyZXNldHRhYmxlU2xpZGVyKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGxldCByZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge3Jlc2V0QnV0dG9uID0gYnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGNvbG91ciBzdG9wXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGggPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGgpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJsYW5ndWFnZUJvcmRlckNvbG91clwiXS5wdXNoKHJlc2V0QnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiVW53cmFwIGNvZGVibG9jayBsaW5lc1wiKVxuXHRcdFx0LnNldERlc2MoXCJDaG9vc2Ugd2hldGhlciB0byB1bndyYXAgbGluZXMgaW4gcmVhZGluZyBtb2RlXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZVdyYXBMaW5lU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTsgIFxuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy53cmFwTGluZXNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlV3JhcExpbmVTZXR0aW5ncygpO1xuXHR9XG5cdGdlbmVyYXRlV3JhcExpbmVTZXR0aW5ncygpIHtcblx0XHR0aGlzLndyYXBMaW5lc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcylcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLndyYXBMaW5lc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiV3JhcCBMaW5lcyBvbiBDbGlja1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbiByZWFkaW5nIG1vZGUsIGhvbGRpbmcgY2xpY2sgb24gYSBjb2RlYmxvY2sgd2lsbCB3cmFwIHRoZSBsaW5lcyBmb3IgYmV0dGVyIHZpc2liaWxpdHkuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sud3JhcExpbmVzQWN0aXZlKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpOyBcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrR3V0dGVyU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoM1wiLCB7dGV4dDogXCJHdXR0ZXIgQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkVuYWJsZSBMaW5lIE51bWJlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZGlzYWJsZWQsIHRoZSBiZWxvdyBzZXR0aW5ncyBhcmUgZGlzYWJsZWQgdG9vLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tMaW5lTnVtYmVyU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTsgICAgICAgICBcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMubGluZU51bWJlcnNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tMaW5lTnVtYmVyU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJHdXR0ZXIgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImd1dHRlcl9iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkxpbmUgTnVtYmVyIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwibGluZV9udW1iZXJcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSGlnaGxpZ2h0IExpbmUgTnVtYmVyc1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHdpbGwgYWxzbyBoaWdobGlnaHQgdGhlIGxpbmUgbnVtYmVycy5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmd1dHRlci5oaWdobGlnaHQpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkluZGljYXRlIEN1cnJlbnQgTGluZSBOdW1iZXJcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgdGhlIGN1cnJlbnQgbGluZSBudW1iZXIgaW4gY29kZWJsb2NrcyB3aWxsIGJlIGluZGljYXRlZCB3aXRoIGEgc2VwYXJhdGUgY29sb3VyLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc3BhY2VkXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuYWN0aXZlTGluZSlcblx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmd1dHRlci5hY3RpdmVMaW5lID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSlcblx0XHRcdClcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImFjdGl2ZV9saW5lX251bWJlclwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5hY3RpdmVUZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0hlYWRlclNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiSGVhZGVyIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIEZvbnQgU2l6ZVwiKVxuXHRcdFx0LnNldERlc2MoXCJTZXQgdGhlIGZvbnQgc2l6ZSBmb3IgaGVhZGVyIGxhbmd1YWdlIHRhZ3MgYW5kIHRpdGxlcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cyg2LDMyLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHNpemVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgVGl0bGUgVGV4dCBTdHlsaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlN0eWxlIHRoZSBoZWFkZXIgdGl0bGUgdGV4dCB1c2luZyBib2xkIGFuZCBpdGFsaWMgdG9nZ2xlcywgYnkgc2V0dGluZyBhIGZvbnQgb3IgYnkgc2V0dGluZyBhIHRleHQgY29sb3VyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBib2xkIHRpdGxlIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEJvbGQpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBpdGFsaWMgdGl0bGUgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB7dGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJGb250XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRGb250KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Rm9udCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfdGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgZm9sZFBsYWNlaG9sZGVyVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkZvbGQgUGxhY2Vob2xkZXIgVGV4dFwiKVxuXHRcdFx0LnNldERlc2MoXCJUaXRsZSBwbGFjZWhvbGRlciB0ZXh0IGZvciBmb2xkZWQgY29kZSB3aGVuIG5vIHRpdGxlIHBhcmFtZXRlciBpcyBzZXQuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKEZPTERfUExBQ0VIT0xERVIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlcilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoZm9sZFBsYWNlaG9sZGVyVGltZW91dCk7XG5cdFx0XHRcdFx0Zm9sZFBsYWNlaG9sZGVyVGltZW91dCA9IHNldFRpbWVvdXQoKCk9PnRoaXMucmVyZW5kZXIoKSwxMDAwKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgU2VwYXJhdG9yIENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJDb2xvdXIgb2YgdGhlIGxpbmUgc2VwYXJhdGluZyB0aGUgY29kZWJsb2NrIGhlYWRlciBhbmQgdGhlIGNvZGVibG9jay5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfc2VwYXJhdG9yXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdFx0XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoNVwiLCB7dGV4dDogXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IEhlYWRlciBMYW5ndWFnZSBUYWdzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZSB3aGVuIHRvIHNob3cgbGFuZ3VhZ2UgdGFncyBpbiB0aGUgaGVhZGVyLiBcXFwiVGl0bGUgT25seVxcXCIgd2lsbCBvbmx5IHNob3cgbGFuZ3VhZ2UgdGFncyB3aGVuIHRoZSB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoRElTUExBWV9PUFRJT05TKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBEaXNwbGF5KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmhlYWRlclRhZ3NDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlSGVhZGVyVGFnU2V0dGluZ3MoKTtcblx0XHRcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImg1XCIsIHt0ZXh0OiBcIkhlYWRlciBMYW5ndWFnZSBJY29uIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IEhlYWRlciBMYW5ndWFnZSBJY29uc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmUgd2hlbiB0byBzaG93IGxhbmd1YWdlIGljb25zIHdoZXJlIGF2YWlsYWJsZS4gXFxcIlRpdGxlIE9ubHlcXFwiIHdpbGwgb25seSBzaG93IGxhbmd1YWdlIHRhZ3Mgd2hlbiB0aGUgdGl0bGUgcGFyYW1ldGVyIGlzIHNldC5cIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKERJU1BMQVlfT1BUSU9OUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWU6IERpc3BsYXkpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUhlYWRlckljb25TZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVIZWFkZXJJY29uU2V0dGluZ3MoKTtcblx0fVxuXHRnZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCkge1xuXHRcdHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwibm9uZVwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIExhbmd1YWdlIFRhZyBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmhlYWRlclRhZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfbGFuZ3VhZ2VfdGFnX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIFRleHQgU3R5bGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJTdHlsZSB0aGUgaGVhZGVyIGxhbmd1YWdlIHRhZyB0ZXh0IHVzaW5nIGJvbGQgYW5kIGl0YWxpYyB0b2dnbGVzLCBieSBzZXR0aW5nIGEgZm9udCBvciBieSBzZXR0aW5nIGEgdGV4dCBjb2xvdXIuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgYm9sZCBsYW5ndWFnZSB0YWcgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZClcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGl0YWxpYyBsYW5ndWFnZSB0YWcgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRJdGFsaWMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJGb250XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250KVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImhlYWRlcl9sYW5ndWFnZV90YWdfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0fVxuXHRnZW5lcmF0ZUhlYWRlckljb25TZXR0aW5ncygpIHtcblx0XHR0aGlzLmhlYWRlckljb25zQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IFwibm9uZVwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkxhbmd1YWdlIEljb25zIENvbG91cmVkXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGRpc2FibGVkLCBsYW5ndWFnZSBpY29ucyB3aWxsIGJlIGJsYWNrIGFuZCB3aGl0ZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheUNvbG91cilcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXlDb2xvdXIgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgSWNvbiBTaXplXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlNldCB0aGUgc2l6ZSBvZiB0aGUgZGlzcGxheWVkIGxhbmd1YWdlIGljb25zLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEwLDQwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSlcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4gYnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgaWNvbiBzaXplXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0hpZ2hsaWdodFNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiSGlnaGxpZ2h0aW5nIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQWN0aXZlIExpbmUgSGlnaGxpZ2h0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGhpZ2hsaWdodHMgdGhlIGFjdGl2ZSBsaW5lIGluc2lkZSBjb2RlYmxvY2tzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc3BhY2VkXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB7cmV0dXJuIHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUgPSB2YWx1ZTsgXG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2FjdGl2ZV9saW5lX2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lLFxuXHRcdFx0KTt9KTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIl0ucHVzaCh0aGlzLnBpY2tyc1tcImNvZGVibG9ja19hY3RpdmVfbGluZV9oaWdobGlnaHRcIl0ucmVzZXRCdXR0b24pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEZWZhdWx0IEhpZ2hsaWdodCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBieSB0aGUgJ2hsJyBwYXJhbWV0ZXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiZGVmYXVsdF9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmRlZmF1bHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgbmV3SGlnaGxpZ2h0VGV4dDogVGV4dENvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIEFsdGVybmF0aXZlIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgYSBuZXcgYWx0ZXJuYXRpdmUgaGlnaGxpZ2h0IG5hbWUuIFRoZSBjb2xvdXIgY2FuIGJlIG1vZGlmaWVkIGFmdGVyIGl0IGlzIGFkZGVkLlwiKVxuXHRcdFx0LmFkZFRleHQodmFsdWUgPT4ge25ld0hpZ2hsaWdodFRleHQgPSB2YWx1ZVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJlLmcuIGVycm9yLCB3YXJuXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRCdXR0b25UZXh0KFwiQWRkXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkgPT09IFwiXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiUGxlYXNlIGVudGVyIGEgY29sb3VyIG5hbWUuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICghL15bXlxcZF1cXHcqJC8udGVzdCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQpKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgXCIke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodH1cIiBpcyBub3QgYSB2YWxpZCBjb2xvdXIgbmFtZS5gKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0LnRyaW0oKS50b0xvd2VyQ2FzZSgpID09PSBcImhsXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGhpZ2hsaWdodCBwYXJhbWV0ZXIuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmIChQQVJBTUVURVJTLmluY2x1ZGVzKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkudG9Mb3dlckNhc2UoKSkpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IHVzZSBvdGhlciBkZWZhdWx0IHBhcmFtZXRlcnMuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgaW4gdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBBIGhpZ2hsaWdodCB3aXRoIHRoZSBuYW1lIFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIgYWxyZWFkeSBleGlzdHMuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBGdXR1cmU6IEZvY3VzIG9uIGV4aXN0aW5nIGhpZ2hsaWdodGVyIC0gYHJlbmRlck1hdGNoZXNgXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBuZXdDb2xvdXIgPSBnZXRSYW5kb21Db2xvdXIoKTtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5kYXJrLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgQWRkZWQgaGlnaGxpZ2h0IFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0ID0gXCJcIjtcblx0XHRcdFx0XHRcdG5ld0hpZ2hsaWdodFRleHQuc2V0VmFsdWUoXCJcIik7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0dGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJHcmFkaWVudCBIaWdobGlnaHRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyBmYWRlIGF3YXkgdG8gdGhlIHJpZ2h0LiBUaGUgc2xpZGVyIHNldHMgdGhlIGdyYWRpZW50IGNvbG91ciBzdG9wIGFzIGEgcGVyY2VudGFnZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSgrdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3Auc2xpY2UoMCwtMSkpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3AgPSBgJHt2YWx1ZX0lYDtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY29sb3VyIHN0b3BcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSgrdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3Auc2xpY2UoMCwtMSkpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5wdXNoKHJlc2V0QnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0xhbmd1YWdlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bGV0IGV4Y2x1ZGVUaW1lb3V0OiBOb2RlSlMuVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pnt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRXhjbHVkZSBMYW5ndWFnZXNcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGxhbmd1YWdlcyBpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IHdoaWNoIHRoZSBwbHVnaW4gc2hvdWxkIG5vdCBkZWNvcmF0ZS4gWW91IGNhbiB1c2UgYSB3aWxkY2FyZCAoKikgZWl0aGVyIGF0IHRoZSBiZWdpbm5pbmcsIG9yIGF0IHRoZSBlbmQuIEZvciBleGFtcGxlOiBhZC0qIHdpbGwgZXhjbHVkZSBjb2RlYmxvY2tzIHdoZXJlIHRoZSBsYW5ndWFnZSBzdGFydHMgd2l0aCBhZC0gZS5nLjogYWQtaW5mbywgYWQtZXJyb3IgZXRjLlwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihgZS5nLiAke0VYQ0xVREVEX0xBTkdVQUdFU30gZXRjLmApXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoZXhjbHVkZVRpbWVvdXQpO1xuXHRcdFx0XHRcdGV4Y2x1ZGVUaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+dGhpcy5yZXJlbmRlcigpLDEwMDApO1xuXHRcdFx0XHR9KSk7XG5cdFx0bGV0IHdoaXRlbGlzdFRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJXaGl0ZWxpc3RlZCBQcm9jZXNzZWQgQ29kZWJsb2Nrc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgbGFuZ3VhZ2VzIGluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgd2hpY2ggdGhlIHBsdWdpbiBzaG91bGQgc3R5bGUgZGVzcGl0ZSBiZWluZyBwcm9jZXNzZWQgYnkgYW5vdGhlciBwbHVnaW4uIFlvdSBjYW4gdXNlIGEgd2lsZGNhcmQgKCopIGVpdGhlciBhdCB0aGUgYmVnaW5uaW5nLCBvciBhdCB0aGUgZW5kLiBGb3IgZXhhbXBsZTogYWQtKiB3aWxsIGV4Y2x1ZGUgY29kZWJsb2NrcyB3aGVyZSB0aGUgbGFuZ3VhZ2Ugc3RhcnRzIHdpdGggYWQtIGUuZy46IGFkLWluZm8sIGFkLWVycm9yIGV0Yy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoYGUuZy4gJHtXSElURUxJU1RfQ09ERUJMT0NLU30gZXRjLmApXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHdoaXRlbGlzdFRpbWVvdXQpO1xuXHRcdFx0XHRcdHdoaXRlbGlzdFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnJlcmVuZGVyKCksMTAwMCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiUmVkaXJlY3QgTGFuZ3VhZ2UgU2V0dGluZ3NcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlIHRoaXMgdGV4dGJveCB0byByZWRpcmVjdCBzcGVjaWZpYyBsYW5ndWFnZSBjb2xvdXJzIGFuZCBpY29ucyBhcyBhIEpTT04gd2l0aCBsYW5ndWFnZSBuYW1lcyBhcyBrZXlzIGFuZCBlaXRoZXIgYSBjb2xvdXIga2V5LCBhbiBpY29uIGtleSBvciBib3RoIGFzIHRoZSB2YWx1ZSBmb3IgYSBnaXZlbiBsYW5ndWFnZS4gQ29sb3VycyBzaG91bGQgYmUgcGFzc2VkIGFzIENTUyBjb2xvdXJzIGFuZCBpY29ucyBzaG91bGQgYmUgcGFzc2VkIGFzIGEgc3RyaW5nIG9mIHRoZSBpbnNpZGUgb2YgYW4gc3ZnIGVsZW1lbnQuIFRoaXMgc2V0dGluZyBpcyB0aGVtZSBpbmRlcGVuZGVudC5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhXCIpXG5cdFx0XHQuYWRkVGV4dEFyZWEodGV4dEFyZWEgPT4gdGV4dEFyZWFcblx0XHRcdFx0LnNldFZhbHVlKEpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzKT09PVwie31cIj9cIlwiOkpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzLG51bGwsNCkpXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihKU09OLnN0cmluZ2lmeSh7dG9tbDoge2NvbG91cjogXCIjMDEyMzQ1XCIsIGljb246IExBTkdVQUdFU1tcIkFQTFwiXS5jb2xvdXJ9fSxudWxsLDQpKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKT0+e1xuXHRcdFx0XHRcdGlmICh2YWx1ZSA9PT0gXCJcIikge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSB7fTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMucmVkaXJlY3RMYW5ndWFnZXMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiSW52YWxpZCBKU09OXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBSZS1yZW5kZXIgKFRlc3QpXG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIklubGluZSBDb2RlIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTeW50YXggSGlnaGxpZ2h0IElubGluZSBDb2RlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGluIHJlYWRpbmcgbW9kZSwgaW5saW5lIGNvZGUgd2lsbCBiZSBzeW50YXggaGlnaGxpZ2h0ZWQgYmFzZWQgb24gYSBsYW5ndWFnZSBzZXQgd2l0aCBge2xhbmd1YWdlfSBoaWdobGlnaHRlZF9pbmxpbmVfY29kZWAuIFNlZSB0aGUgUkVBRE1FIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7ICAgIFxuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlN0eWxlIElubGluZSBDb2RlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGlubGluZSBjb2RlIHdpbGwgYmUgc3R5bGVkLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN0eWxlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVJbmxpbmVDb2RlU3R5bGVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUlubGluZUNvZGVTdHlsZVNldHRpbmdzKCk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUaXRsZSBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVGhlIHRleHQgY29sb3VyIG9mIGlubGluZSBjb2RlIHRpdGxlcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwidGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50aXRsZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRpdGxlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUaXRsZSBGb250IFdlaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBib2xkIGlubGluZSBjb2RlIHRpdGxlcyBhcHBlYXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMSw5LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0KVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGZvbnQgd2VpZ2h0XCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUlubGluZUNvZGVTdHlsZVNldHRpbmdzKCkge1xuXHRcdHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSlcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV9iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGV4dCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaW5saW5lX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBBY3RpdmUgVGV4dCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVGhlIHRleHQgY29sb3VyIHdoZW4gZWRpdGluZyBpbmxpbmUgY29kZS5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaW5saW5lX2FjdGl2ZV90ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgRm9udCBXZWlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgYm9sZCBpbmxpbmUgY29kZSBhcHBlYXJzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEsOSwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGZvbnQgd2VpZ2h0XCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0O1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEN1cnZhdHVyZVwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyByb3VuZGVkIGlubGluZSBjb2RlIGFwcGVhciBpbiBwaXhlbHMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMiwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSlcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjdXJ2YXR1cmVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVmVydGljYWwgUGFkZGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIHZlcnRpY2FsIGlubmVyIHBhZGRpbmcgaW4gcGl4ZWxzIGlubGluZSBjb2RlIGhhcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IHZlcnRpY2FsIHBhZGRpbmdcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgSG9yaXpvbnRhbCBQYWRkaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IG11Y2ggaG9yaXpvbnRhbCBpbm5lciBwYWRkaW5nIGluIHBpeGVscyBpbmxpbmUgY29kZSBoYXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgaG9yaXpvbnRhbCBwYWRkaW5nXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWw7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEhvcml6b250YWwgTWFyZ2luXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IG11Y2ggaG9yaXpvbnRhbCBvdXRlciBtYXJnaW4gaXMgYWRkZWQgdG8gdGhlIGlubGluZSBjb2RlIGluIHBpeGVscy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDgsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBob3Jpem9udGFsIG1hcmdpblwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVBZHZhbmNlZEhlYWRpbmcoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29uc3QgYWR2YW5jZWRTZXR0aW5nc0hlYWRpbmcgPSBjb250YWluZXJFbC5jcmVhdGVFbChcImgyXCIsIHt0ZXh0OiBcIkFkdmFuY2VkIFNldHRpbmdzXCIsIGNsczogYGFkdmFuY2VkLXNldHRpbmdzLWhlYWRlciR7dGhpcy5oaWRlQWR2YW5jZWQ/XCIgaGVhZGVyLWZvbGRlZFwiOlwiXCJ9YH0pO1xuXHRcdGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCgpPT57XG5cdFx0XHR0aGlzLmhpZGVBZHZhbmNlZCA9ICF0aGlzLmhpZGVBZHZhbmNlZDtcblx0XHRcdGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nLmNsYXNzTGlzdC50b2dnbGUoXCJoZWFkZXItZm9sZGVkXCIsdGhpcy5oaWRlQWR2YW5jZWQpO1xuXHRcdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKTtcblx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMuaGlkZUFkdmFuY2VkKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuZ2VuZXJhdGVJbnRlcmZhY2VTZXR0aW5ncyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiRWRpdG9yIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBvdXRzaWRlIGNvZGVibG9ja3MuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zcGFjZWRcIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBlZGl0b3IgYWN0aXZlIGxpbmUgaGlnaGxpZ2h0aW5nXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZWRpdG9yQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImVkaXRvcl9hY3RpdmVfbGluZV9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSxcblx0XHRcdCk7fSk7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJlZGl0b3JBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLnB1c2godGhpcy5waWNrcnNbXCJlZGl0b3JfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIlJlc2V0IGluYnVpbHQgdGhlbWVzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoaXMgd2lsbCByZXR1cm4gYWxsIGluYnVpbHQgdGhlbWVzIHRvIHRoZSBwbHVnaW4gZGVmYXVsdHNcIilcblx0XHRcdC5hZGRCdXR0b24oYnV0dG9uID0+IGJ1dHRvblxuXHRcdFx0XHQuc2V0QnV0dG9uVGV4dChcIlJlc2V0XCIpXG5cdFx0XHRcdC5vbkNsaWNrKCgpPT57XG5cdFx0XHRcdFx0T2JqZWN0LmVudHJpZXMoSU5CVUlMVF9USEVNRVMpLmZvckVhY2goKFt0aGVtZU5hbWUsdGhlbWVdOiBbc3RyaW5nLENvZGVTdHlsZXJUaGVtZV0pID0+IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGVtZU5hbWVdID0gc3RydWN0dXJlZENsb25lKHRoZW1lKSk7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgaW4gSU5CVUlMVF9USEVNRVMpXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlSW50ZXJmYWNlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBmb3IgVUkgYnV0dG9ucyBsaWtlIHRoZSBjb3B5IGNvZGUgYnV0dG9uLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImRlZmF1bHRfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uYWR2YW5jZWQuYnV0dG9uQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBBY3RpdmUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbG91ciBidXR0b25zIHVzZSB3aGVuIGFjdGl2YXRlZC5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJkZWZhdWx0X2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHR9XG5cdGdlbmVyYXRlUGx1Z2luQ29tcGF0aWJpbGl0eVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZVNwYW4oXCJOZWVkcyBjb21wbGV0aW5nXCIpOyAvL1RPRE8gKEBtYXl1cmFua3YpIENvbXBsZXRlXG5cdFx0Ly8gRXhlY3V0ZSBDb2RlIFNldHRpbmdzXG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkV4YW1wbGUgQ29kZWJsb2NrIFBhcmFtZXRlciBTdHJpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiUGFyYW1ldGVycyBhbmQgbGFuZ3VhZ2Ugd2hpY2ggd291bGQgZm9sbG93IGNvZGVibG9jayBkZWxpbWl0ZXIuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtd2lkZVwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0NPREVCTE9DS19QQVJBTUVURVJTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVycyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGFtcGxlIENvZGVibG9jayBQYXJhbWV0ZXIgU3RyaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbnRlbnQgZm9yIGV4YW1wbGUgY29kZWJsb2NrLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LWFyZWFcIilcblx0XHRcdC5hZGRUZXh0QXJlYSh0ZXh0QXJlYSA9PiB0ZXh0QXJlYVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQpXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0NPREVCTE9DS19DT05URU5UKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKT0+e1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrKCkge1xuXHRcdHRoaXMuZXhhbXBsZUNvZGVibG9ja0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGNvbnN0IGNvZGVibG9ja1N0cmluZyA9IFwiYGBgYGBgYFwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tQYXJhbWV0ZXJzK1wiXFxuXCIrdGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQrXCJcXG5gYGBgYGBgXCI7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIodGhpcy5wbHVnaW4uYXBwLGNvZGVibG9ja1N0cmluZyx0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIsU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgrY29kZWJsb2NrU3RyaW5nLHRoaXMucGx1Z2luKTtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIucXVlcnlTZWxlY3RvcihcInByZSA+IGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uXCIpPy5jbGFzc0xpc3Q/LmFkZChcImNvZGUtc3R5bGVyLXNldHRpbmdzLWJ1dHRvblwiKTtcblx0fVxuXHRnZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEV4YW1wbGVcIilcblx0XHRcdC5zZXREZXNjKFwiVGV4dCB0byByZW5kZXIgYXMgZXhhbXBsZSBpbnNpZGUgY29kZSBkZWxpbWl0ZXJzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LXdpZGVcIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9JTkxJTkVfQ09ERSlcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUlubGluZUNvZGUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpIHtcblx0XHR0aGlzLmV4YW1wbGVJbmxpbmVDb2RlQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIodGhpcy5wbHVnaW4uYXBwLFwiYFwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlK1wiYFwiLHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIsU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsdGhpcy5wbHVnaW4pO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIucXVlcnlTZWxlY3RvcihcImNvZGVcIik/LmNsYXNzTGlzdD8uYWRkKFwiY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGVcIik7XG5cdH1cblx0Z2VuZXJhdGVEb25hdGlvbkZvb3Rlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdGNvbnN0IGRvbmF0aW9uRGl2ID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJkaXZcIiwgeyBjbHM6IFwiY29kZS1zdHlsZXItZG9uYXRpb25cIiwgfSk7ICAgIFxuXHRcdGNvbnN0IGRvbmF0aW9uVGV4dCA9IGNyZWF0ZUVsKFwicFwiLCB7dGV4dDogXCJJZiB5b3UgbGlrZSB0aGlzIHBsdWdpbiwgYW5kIHdvdWxkIGxpa2UgdG8gaGVscCBzdXBwb3J0IGNvbnRpbnVlZCBkZXZlbG9wbWVudCwgdXNlIHRoZSBidXR0b24gYmVsb3chXCJ9KTtcblx0XHRkb25hdGlvbkRpdi5hcHBlbmRDaGlsZChkb25hdGlvblRleHQpO1xuXHRcdGNvbnN0IGRvbmF0aW9uQnV0dG9uID0gY3JlYXRlRWwoXCJhXCIsIHsgaHJlZjogXCJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL21heXVyYW5rdjJcIn0pO1xuXHRcdGRvbmF0aW9uQnV0dG9uLmlubmVySFRNTCA9IFwiPGltZyBzcmM9XFxcImh0dHBzOi8vaW1nLmJ1eW1lYWNvZmZlZS5jb20vYnV0dG9uLWFwaS8/dGV4dD1CdXkgbWUgYSBjb2ZmZWUmZW1vamk9JnNsdWc9bWF5dXJhbmt2MiZidXR0b25fY29sb3VyPWUzZTdlZmEwJmZvbnRfY29sb3VyPTI2MjYyNiZmb250X2ZhbWlseT1JbnRlciZvdXRsaW5lX2NvbG91cj0yNjI2MjYmY29mZmVlX2NvbG91cj1hMDUyMmRcXFwiIGhlaWdodD1cXFwiNDJweFxcXCI+XCI7XG5cdFx0ZG9uYXRpb25EaXYuYXBwZW5kQ2hpbGQoZG9uYXRpb25CdXR0b24pO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNldHRpbmdzXG5cdGNyZWF0ZVBpY2tyKHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50LCBzZXR0aW5nOiBTZXR0aW5nLCBpZDogc3RyaW5nLCBnZXRSZWxldmFudFRoZW1lQ29sb3VyOiAocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpPT5Db2xvdXIsIHNhdmVSZWxldmFudFRoZW1lQ29sb3VyOiAocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cik9PnZvaWQsIGRpc2FibGVkPzogKCk9PmJvb2xlYW4pIHtcblx0XHRjb25zdCBwaWNrcjogUGlja3JSZXNldHRhYmxlID0gbmV3IFBpY2tyUmVzZXR0YWJsZShwbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxnZXRSZWxldmFudFRoZW1lQ29sb3VyLHNhdmVSZWxldmFudFRoZW1lQ29sb3VyKTtcblx0XHRwaWNrclxuXHRcdFx0Lm9uKFwic2hvd1wiLCAoY29sb3VyOiBQaWNrci5IU1ZhQ29sb3IsIGluc3RhbmNlOiBQaWNrcikgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIGRpc2FibGVkICE9PSBcInVuZGVmaW5lZFwiICYmIGRpc2FibGVkKCkpXG5cdFx0XHRcdFx0aW5zdGFuY2UuaGlkZSgpO1xuXHRcdFx0XHQvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IChpbnN0YW5jZS5nZXRSb290KCkgYXMgYW55KS5pbnRlcmFjdGlvbi5yZXN1bHQuc2VsZWN0KCkpKVxuXHRcdFx0fSlcblx0XHRcdC5vbihcInNhdmVcIiwgKGNvbG91cjogUGlja3IuSFNWYUNvbG9yLCBpbnN0YW5jZTogUGlja3JSZXNldHRhYmxlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNhdmVkQ29sb3VyOiBDb2xvdXIgPSBgIyR7Y29sb3VyLnRvSEVYQSgpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDEpfWA7XG5cdFx0XHRcdGluc3RhbmNlLmhpZGUoKTtcblx0XHRcdFx0aW5zdGFuY2UuYWRkU3dhdGNoKHNhdmVkQ29sb3VyKTtcblx0XHRcdFx0aW5zdGFuY2Uuc2F2ZUNvbG91cihzYXZlZENvbG91cik7XG5cdFx0XHR9KVxuXHRcdFx0Lm9uKFwiY2FuY2VsXCIsIChpbnN0YW5jZTogUGlja3JSZXNldHRhYmxlKSA9PiB7aW5zdGFuY2UuaGlkZSgpO30pO1xuXHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge3BpY2tyLnJlc2V0QnV0dG9uID0gYnV0dG9uXG5cdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHQuc2V0RGlzYWJsZWQodHlwZW9mIGRpc2FibGVkICE9PSBcInVuZGVmaW5lZFwiICYmIGRpc2FibGVkKCkpXG5cdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXJcIilcblx0XHRcdC5vbkNsaWNrKCgpID0+IHtwaWNrci5yZXNldENvbG91cigpO30pO1xuXHRcdH0pO1xuXHRcdHRoaXMucGlja3JzW2lkXT1waWNrcjtcblx0fVxuXHRcblx0Ly8gVXBkYXRlIFNldHRpbmdzXG5cdHNhdmVTZXR0aW5ncyhyZXJlbmRlcjogYm9vbGVhbj1mYWxzZSkge1xuXHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRpZiAocmVyZW5kZXIpXG5cdFx0XHR0aGlzLnJlcmVuZGVyKCk7XG5cdH1cblx0cmVyZW5kZXIoKSB7XG5cdFx0dGhpcy5wbHVnaW4ucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiaW5saW5lXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0fVxuXHR1cGRhdGVEcm9wZG93bihkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsIHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpIHtcblx0XHRkcm9wZG93bi5zZWxlY3RFbC5lbXB0eSgpO1xuXHRcdE9iamVjdC5rZXlzKHNldHRpbmdzLnRoZW1lcykuZm9yRWFjaCgodGhlbWVfbmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRkcm9wZG93bi5hZGRPcHRpb24odGhlbWVfbmFtZSwgdGhlbWVfbmFtZSk7ICAgICAgICAgICAgXG5cdFx0fSk7XG5cdFx0ZHJvcGRvd24uc2V0VmFsdWUoc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSk7XG5cdH1cblx0dXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgIT09IFwiY29kZWJsb2NrXCIgfHwgdGhpcy5jb2RlYmxvY2tQYWdlICE9PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLmZvckVhY2goKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSkgPT4ge1xuXHRcdFx0bmV3IFNldHRpbmcodGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIpXG5cdFx0XHRcdC5zZXROYW1lKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSlcblx0XHRcdFx0LnNldERlc2MoYFRvIGhpZ2hsaWdodCBsaW5lcyB3aXRoIHRoaXMgaGlnaGxpZ2h0LCB1c2UgdGhlICR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfSBwYXJhbWV0ZXIuYClcblx0XHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XHRcdGBhbHRlcm5hdGl2ZV9oaWdobGlnaHRfJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9YCxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lIGluIHJlbGV2YW50VGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzP3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV06dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdFx0LnNldEljb24oXCJ0cmFzaFwiKVxuXHRcdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJEZWxldGUgaGlnaGxpZ2h0XCIpXG5cdFx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBSZW1vdmVkIGhpZ2hsaWdodCBcIiR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXHRyZWRpcmVjdExhbmd1YWdlcygpIHtcblx0XHRPYmplY3QuZW50cmllcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcykuZm9yRWFjaCgoW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VTZXR0aW5nc106IFtzdHJpbmcsIHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9XSk9Pntcblx0XHRcdGlmIChcImljb25cIiBpbiBsYW5ndWFnZVNldHRpbmdzKSB7XG5cdFx0XHRcdGlmIChMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdIGluIHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zW0xBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV1dKTtcblx0XHRcdFx0dGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29uc1tMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdXSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtsYW5ndWFnZVNldHRpbmdzLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG5cbi8vIEV4dGVuZCBQaWNrciBDbGFzc1xuY2xhc3MgUGlja3JSZXNldHRhYmxlIGV4dGVuZHMgUGlja3Ige1xuXHRzYXZlQ29sb3VyOiAoc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZDtcblx0cmVzZXRDb2xvdXI6ICgpPT52b2lkO1xuXHRnZXRDdXJyZW50Q29sb3VyOiAoYWNjZXNzVGhlbWU6IGJvb2xlYW4pPT52b2lkO1xuXHRyZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cblx0Y29uc3RydWN0b3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgdG9vbHRpcD86IHN0cmluZykge1xuXHRcdGNvbnN0IHNldHRpbmdzOiBQaWNrci5PcHRpb25zID0ge1xuXHRcdFx0ZWw6IHNldHRpbmcuY29udHJvbEVsLmNyZWF0ZURpdih7Y2xzOiBcInBpY2tlclwifSksXG5cdFx0XHR0aGVtZTogXCJuYW5vXCIsXG5cdFx0XHRkZWZhdWx0OiBnZXRDb2xvdXIoZ2V0UmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpKSxcblx0XHRcdHBvc2l0aW9uOiBcImxlZnQtbWlkZGxlXCIsXG5cdFx0XHRsb2NrT3BhY2l0eTogZmFsc2UsXG5cdFx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHRcdHByZXZpZXc6IHRydWUsXG5cdFx0XHRcdGh1ZTogdHJ1ZSxcblx0XHRcdFx0b3BhY2l0eTogdHJ1ZSxcblx0XHRcdFx0aW50ZXJhY3Rpb246IHtcblx0XHRcdFx0XHRoZXg6IHRydWUsXG5cdFx0XHRcdFx0cmdiYTogdHJ1ZSxcblx0XHRcdFx0XHRoc2xhOiBmYWxzZSxcblx0XHRcdFx0XHRpbnB1dDogdHJ1ZSxcblx0XHRcdFx0XHRjYW5jZWw6IHRydWUsXG5cdFx0XHRcdFx0c2F2ZTogdHJ1ZSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0XHRpMThuOiB7XG5cdFx0XHRcdFwidWk6ZGlhbG9nXCI6IFwiQ29sb3VyIHBpY2tlciBkaWFsb2dcIixcblx0XHRcdFx0XCJidG46dG9nZ2xlXCI6ICh0eXBlb2YgdG9vbHRpcCAhPT0gXCJ1bmRlZmluZWRcIik/dG9vbHRpcDpcIlNlbGVjdCBjb2xvdXJcIixcblx0XHRcdFx0XCJidG46c3dhdGNoXCI6IFwiQ29sb3VyIHN3YXRjaFwiLFxuXHRcdFx0XHRcImJ0bjpsYXN0LWNvbG9yXCI6IFwiVXNlIHByZXZpb3VzIGNvbG91clwiLFxuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYgKGNvbnRhaW5lckVsLnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG5cdFx0XHRzZXR0aW5ncy5jb250YWluZXIgPSBjb250YWluZXJFbC5wYXJlbnRFbGVtZW50O1xuXHRcdHN1cGVyKHNldHRpbmdzKTtcblx0XHR0aGlzLnNhdmVDb2xvdXIgPSAoc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7XG5cdFx0XHRzYXZlUmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMsc2F2ZUNvbG91cik7XG5cdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdH07XG5cdFx0dGhpcy5yZXNldENvbG91ciA9ICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc2V0Q29sb3VyOiBDb2xvdXIgPSBnZXRSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy50aGVtZXNbcGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLmNvbG91cnMpO1xuXHRcdFx0dGhpcy5zZXRDb2xvcihnZXRDb2xvdXIocmVzZXRDb2xvdXIpKTtcblx0XHRcdHRoaXMuc2F2ZUNvbG91cihyZXNldENvbG91cik7XG5cdFx0fTtcblx0fVxufVxuXG4vLyBDb2xvdXIgTWFuYWdlbWVudFxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3VyKCk6IENvbG91ciB7XG5cdGNvbnN0IGxldHRlcnMgPSBcIjAxMjM0NTY3ODlBQkNERUZcIjtcblx0bGV0IGNvbG91ciA9IFwiXCI7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKVxuXHRcdGNvbG91ciArPSBsZXR0ZXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KV07XG5cdHJldHVybiBgIyR7Y29sb3VyfUZGYDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvdXIodGhlbWVDb2xvdXI6IENvbG91cik6IENvbG91ciB7XG5cdHJldHVybiBpc0Nzcyh0aGVtZUNvbG91cik/Z2V0Q3NzVmFyaWFibGUodGhlbWVDb2xvdXIpOnRoZW1lQ29sb3VyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3NzKHBvc3NpYmxlQ3NzOiBzdHJpbmcpOiBwb3NzaWJsZUNzcyBpcyBDU1Mge1xuXHRyZXR1cm4gcG9zc2libGVDc3Muc3RhcnRzV2l0aChcIi0tXCIpICYmIHR5cGVvZiBwb3NzaWJsZUNzcyA9PT0gXCJzdHJpbmdcIjtcbn1cbmZ1bmN0aW9uIGdldENzc1ZhcmlhYmxlKGNzc1ZhcmlhYmxlOiBDU1MpOiBIRVgge1xuXHRjb25zdCB2YXJpYWJsZVZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShjc3NWYXJpYWJsZSkudHJpbSgpO1xuXHRpZiAodHlwZW9mIHZhcmlhYmxlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFyaWFibGVWYWx1ZS5zdGFydHNXaXRoKFwiI1wiKSlcblx0XHRyZXR1cm4gYCMke3ZhcmlhYmxlVmFsdWUudHJpbSgpLnN1YnN0cmluZygxKX1gO1xuXHRlbHNlIGlmICh2YXJpYWJsZVZhbHVlLnN0YXJ0c1dpdGgoXCJyZ2JcIikpXG5cdFx0cmV0dXJuIGAjJHtDb2xvclRyYW5zbGF0b3IudG9IRVhBKHZhcmlhYmxlVmFsdWUucmVwbGFjZSgvY2FsY1xcKCguKj8pXFwpL2csKG1hdGNoLGNhcHR1cmUpPT5jYWxjKGNhcHR1cmUpKSkuc3Vic3RyaW5nKDEpfWA7XG5cdGVsc2UgaWYgKHZhcmlhYmxlVmFsdWUuc3RhcnRzV2l0aChcImhzbFwiKSlcblx0XHRyZXR1cm4gYCMke0NvbG9yVHJhbnNsYXRvci50b0hFWEEodmFyaWFibGVWYWx1ZS5yZXBsYWNlKC9jYWxjXFwoKC4qPylcXCkvZywobWF0Y2gsY2FwdHVyZSk9PmNhbGMoY2FwdHVyZSkpKS5zdWJzdHJpbmcoMSl9YDtcblx0ZWxzZVxuXHRcdGNvbnNvbGUud2FybihgV2FybmluZzogQ291bGRuJ3QgZGV0ZXJtaW5lIGNvbG91ciBmb3JtYXQgLSAke3ZhcmlhYmxlVmFsdWV9YCk7XG5cdHJldHVybiBgIyR7Q29sb3JUcmFuc2xhdG9yLnRvSEVYQSh2YXJpYWJsZVZhbHVlKS5zdWJzdHJpbmcoMSl9YDtcbn1cbmZ1bmN0aW9uIGNhbGMoY2FsY1N0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgc3BsaXRTdHJpbmcgPSBjYWxjU3RyaW5nLnRyaW0oKS5yZXBsYWNlKC8oXFxkKiklL2csXCIkMVwiKS5zcGxpdChcIiBcIik7XG5cdGNvbnN0IG9wZXJhdG9yczoge1trZXk6IHN0cmluZ106IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpID0+IG51bWJlcn0gPSB7XG5cdFx0XCIrXCI6IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xK251bTIsMCksXG5cdFx0XCItXCI6IChudW0xOm51bWJlciAsbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xLW51bTIsMCksXG5cdH07XG5cdGlmIChzcGxpdFN0cmluZy5sZW5ndGggPT09IDMpXG5cdFx0aWYgKHNwbGl0U3RyaW5nWzFdIGluIG9wZXJhdG9ycylcblx0XHRcdHJldHVybiBgJHtvcGVyYXRvcnNbc3BsaXRTdHJpbmdbMV1dKHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMF0pLHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMl0pKX0lYDtcblx0XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IHBhcnNlIGNhbGMgc3RyaW5nXCIpO1xuXHRyZXR1cm4gY2FsY1N0cmluZztcbn1cblxuLy8gRmV0Y2ggU2V0dGluZ3NcbmZ1bmN0aW9uIGdldEN1cnJlbnRNb2RlKCkge1xuXHRjb25zdCBib2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIik7XG5cdGlmIChib2R5ICE9PSBudWxsKXtcblx0XHRpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1saWdodFwiKSlcblx0XHRcdHJldHVybiBcImxpZ2h0XCI7XG5cdFx0ZWxzZSBpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1kYXJrXCIpKVxuXHRcdFx0cmV0dXJuIFwiZGFya1wiO1xuXHR9XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IGdldCBjdXJyZW50IHRoZW1lXCIpO1xuXHRyZXR1cm4gXCJsaWdodFwiO1xufVxuIiwgInZhciB0PWZ1bmN0aW9uKCl7cmV0dXJuIHQ9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZSh0LGUsbil7aWYobnx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciByLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspIXImJmkgaW4gZXx8KHJ8fChyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMCxpKSkscltpXT1lW2ldKTtyZXR1cm4gdC5jb25jYXQocnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfXZhciBuLHIsaSxvOyFmdW5jdGlvbih0KXt0LkhFWD1cIkhFWFwiLHQuUkdCPVwiUkdCXCIsdC5IU0w9XCJIU0xcIix0LkNNWUs9XCJDTVlLXCJ9KG58fChuPXt9KSksZnVuY3Rpb24odCl7dC5BTkFMT0dPVVM9XCJBTkFMT0dPVVNcIix0LkNPTVBMRU1FTlRBUlk9XCJDT01QTEVNRU5UQVJZXCIsdC5TUExJVF9DT01QTEVNRU5UQVJZPVwiU1BMSVRfQ09NUExFTUVOVEFSWVwiLHQuVFJJQURJQz1cIlRSSUFESUNcIix0LlRFVFJBRElDPVwiVEVUUkFESUNcIix0LlNRVUFSRT1cIlNRVUFSRVwifShyfHwocj17fSkpLGZ1bmN0aW9uKHQpe3QuQURESVRJVkU9XCJBRERJVElWRVwiLHQuU1VCVFJBQ1RJVkU9XCJTVUJUUkFDVElWRVwifShpfHwoaT17fSkpLGZ1bmN0aW9uKHQpe3QuYmxhY2s9XCIjMDAwMDAwXCIsdC5zaWx2ZXI9XCIjQzBDMEMwXCIsdC5ncmF5PVwiIzgwODA4MFwiLHQud2hpdGU9XCIjRkZGRkZGXCIsdC5tYXJvb249XCIjODAwMDAwXCIsdC5yZWQ9XCIjRkYwMDAwXCIsdC5wdXJwbGU9XCIjODAwMDgwXCIsdC5mdWNoc2lhPVwiI0ZGMDBGRlwiLHQuZ3JlZW49XCIjMDA4MDAwXCIsdC5saW1lPVwiIzAwRkYwMFwiLHQub2xpdmU9XCIjODA4MDAwXCIsdC55ZWxsb3c9XCIjRkZGRjAwXCIsdC5uYXZ5PVwiIzAwMDA4MFwiLHQuYmx1ZT1cIiMwMDAwRkZcIix0LnRlYWw9XCIjMDA4MDgwXCIsdC5hcXVhPVwiIzAwRkZGRlwiLHQub3JhbmdlPVwiI0ZGQTUwMFwiLHQuYWxpY2VibHVlPVwiI0YwRjhGRlwiLHQuYW50aXF1ZXdoaXRlPVwiI0ZBRUJEN1wiLHQuYXF1YW1hcmluZT1cIiM3RkZGRDRcIix0LmF6dXJlPVwiI0YwRkZGRlwiLHQuYmVpZ2U9XCIjRjVGNURDXCIsdC5iaXNxdWU9XCIjRkZFNEM0XCIsdC5ibGFuY2hlZGFsbW9uZD1cIiNGRkVCQ0RcIix0LmJsdWV2aW9sZXQ9XCIjOEEyQkUyXCIsdC5icm93bj1cIiNBNTJBMkFcIix0LmJ1cmx5d29vZD1cIiNERUI4ODdcIix0LmNhZGV0Ymx1ZT1cIiM1RjlFQTBcIix0LmNoYXJ0cmV1c2U9XCIjN0ZGRjAwXCIsdC5jaG9jb2xhdGU9XCIjRDI2OTFFXCIsdC5jb3JhbD1cIiNGRjdGNTBcIix0LmNvcm5mbG93ZXJibHVlPVwiIzY0OTVFRFwiLHQuY29ybnNpbGs9XCIjRkZGOERDXCIsdC5jcmltc29uPVwiI0RDMTQzQ1wiLHQuY3lhbj1cIiMwMEZGRkZcIix0LmRhcmtibHVlPVwiIzAwMDA4QlwiLHQuZGFya2N5YW49XCIjMDA4QjhCXCIsdC5kYXJrZ29sZGVucm9kPVwiI0I4ODYwQlwiLHQuZGFya2dyYXk9XCIjQTlBOUE5XCIsdC5kYXJrZ3JlZW49XCIjMDA2NDAwXCIsdC5kYXJrZ3JleT1cIiNBOUE5QTlcIix0LmRhcmtraGFraT1cIiNCREI3NkJcIix0LmRhcmttYWdlbnRhPVwiIzhCMDA4QlwiLHQuZGFya29saXZlZ3JlZW49XCIjNTU2QjJGXCIsdC5kYXJrb3JhbmdlPVwiI0ZGOEMwMFwiLHQuZGFya29yY2hpZD1cIiM5OTMyQ0NcIix0LmRhcmtyZWQ9XCIjOEIwMDAwXCIsdC5kYXJrc2FsbW9uPVwiI0U5OTY3QVwiLHQuZGFya3NlYWdyZWVuPVwiIzhGQkM4RlwiLHQuZGFya3NsYXRlYmx1ZT1cIiM0ODNEOEJcIix0LmRhcmtzbGF0ZWdyYXk9XCIjMkY0RjRGXCIsdC5kYXJrc2xhdGVncmV5PVwiIzJGNEY0RlwiLHQuZGFya3R1cnF1b2lzZT1cIiMwMENFRDFcIix0LmRhcmt2aW9sZXQ9XCIjOTQwMEQzXCIsdC5kZWVwcGluaz1cIiNGRjE0OTNcIix0LmRlZXBza3libHVlPVwiIzAwQkZGRlwiLHQuZGltZ3JheT1cIiM2OTY5NjlcIix0LmRpbWdyZXk9XCIjNjk2OTY5XCIsdC5kb2RnZXJibHVlPVwiIzFFOTBGRlwiLHQuZmlyZWJyaWNrPVwiI0IyMjIyMlwiLHQuZmxvcmFsd2hpdGU9XCIjRkZGQUYwXCIsdC5mb3Jlc3RncmVlbj1cIiMyMjhCMjJcIix0LmdhaW5zYm9ybz1cIiNEQ0RDRENcIix0Lmdob3N0d2hpdGU9XCIjRjhGOEZGXCIsdC5nb2xkPVwiI0ZGRDcwMFwiLHQuZ29sZGVucm9kPVwiI0RBQTUyMFwiLHQuZ3JlZW55ZWxsb3c9XCIjQURGRjJGXCIsdC5ncmV5PVwiIzgwODA4MFwiLHQuaG9uZXlkZXc9XCIjRjBGRkYwXCIsdC5ob3RwaW5rPVwiI0ZGNjlCNFwiLHQuaW5kaWFucmVkPVwiI0NENUM1Q1wiLHQuaW5kaWdvPVwiIzRCMDA4MlwiLHQuaXZvcnk9XCIjRkZGRkYwXCIsdC5raGFraT1cIiNGMEU2OENcIix0LmxhdmVuZGVyPVwiI0U2RTZGQVwiLHQubGF2ZW5kZXJibHVzaD1cIiNGRkYwRjVcIix0Lmxhd25ncmVlbj1cIiM3Q0ZDMDBcIix0LmxlbW9uY2hpZmZvbj1cIiNGRkZBQ0RcIix0LmxpZ2h0Ymx1ZT1cIiNBREQ4RTZcIix0LmxpZ2h0Y29yYWw9XCIjRjA4MDgwXCIsdC5saWdodGN5YW49XCIjRTBGRkZGXCIsdC5saWdodGdvbGRlbnJvZHllbGxvdz1cIiNGQUZBRDJcIix0LmxpZ2h0Z3JheT1cIiNEM0QzRDNcIix0LmxpZ2h0Z3JlZW49XCIjOTBFRTkwXCIsdC5saWdodGdyZXk9XCIjRDNEM0QzXCIsdC5saWdodHBpbms9XCIjRkZCNkMxXCIsdC5saWdodHNhbG1vbj1cIiNGRkEwN0FcIix0LmxpZ2h0c2VhZ3JlZW49XCIjMjBCMkFBXCIsdC5saWdodHNreWJsdWU9XCIjODdDRUZBXCIsdC5saWdodHNsYXRlZ3JheT1cIiM3Nzg4OTlcIix0LmxpZ2h0c2xhdGVncmV5PVwiIzc3ODg5OVwiLHQubGlnaHRzdGVlbGJsdWU9XCIjQjBDNERFXCIsdC5saWdodHllbGxvdz1cIiNGRkZGRTBcIix0LmxpbWVncmVlbj1cIiMzMkNEMzJcIix0LmxpbmVuPVwiI0ZBRjBFNlwiLHQubWFnZW50YT1cIiNGRjAwRkZcIix0Lm1lZGl1bWFxdWFtYXJpbmU9XCIjNjZDREFBXCIsdC5tZWRpdW1ibHVlPVwiIzAwMDBDRFwiLHQubWVkaXVtb3JjaGlkPVwiI0JBNTVEM1wiLHQubWVkaXVtcHVycGxlPVwiIzkzNzBEQlwiLHQubWVkaXVtc2VhZ3JlZW49XCIjM0NCMzcxXCIsdC5tZWRpdW1zbGF0ZWJsdWU9XCIjN0I2OEVFXCIsdC5tZWRpdW1zcHJpbmdncmVlbj1cIiMwMEZBOUFcIix0Lm1lZGl1bXR1cnF1b2lzZT1cIiM0OEQxQ0NcIix0Lm1lZGl1bXZpb2xldHJlZD1cIiNDNzE1ODVcIix0Lm1pZG5pZ2h0Ymx1ZT1cIiMxOTE5NzBcIix0Lm1pbnRjcmVhbT1cIiNGNUZGRkFcIix0Lm1pc3R5cm9zZT1cIiNGRkU0RTFcIix0Lm1vY2Nhc2luPVwiI0ZGRTRCNVwiLHQubmF2YWpvd2hpdGU9XCIjRkZERUFEXCIsdC5vbGRsYWNlPVwiI0ZERjVFNlwiLHQub2xpdmVkcmFiPVwiIzZCOEUyM1wiLHQub3JhbmdlcmVkPVwiI0ZGNDUwMFwiLHQub3JjaGlkPVwiI0RBNzBENlwiLHQucGFsZWdvbGRlbnJvZD1cIiNFRUU4QUFcIix0LnBhbGVncmVlbj1cIiM5OEZCOThcIix0LnBhbGV0dXJxdW9pc2U9XCIjQUZFRUVFXCIsdC5wYWxldmlvbGV0cmVkPVwiI0RCNzA5M1wiLHQucGFwYXlhd2hpcD1cIiNGRkVGRDVcIix0LnBlYWNocHVmZj1cIiNGRkRBQjlcIix0LnBlcnU9XCIjQ0Q4NTNGXCIsdC5waW5rPVwiI0ZGQzBDQlwiLHQucGx1bT1cIiNEREEwRERcIix0LnBvd2RlcmJsdWU9XCIjQjBFMEU2XCIsdC5yb3N5YnJvd249XCIjQkM4RjhGXCIsdC5yb3lhbGJsdWU9XCIjNDE2OUUxXCIsdC5zYWRkbGVicm93bj1cIiM4QjQ1MTNcIix0LnNhbG1vbj1cIiNGQTgwNzJcIix0LnNhbmR5YnJvd249XCIjRjRBNDYwXCIsdC5zZWFncmVlbj1cIiMyRThCNTdcIix0LnNlYXNoZWxsPVwiI0ZGRjVFRVwiLHQuc2llbm5hPVwiI0EwNTIyRFwiLHQuc2t5Ymx1ZT1cIiM4N0NFRUJcIix0LnNsYXRlYmx1ZT1cIiM2QTVBQ0RcIix0LnNsYXRlZ3JheT1cIiM3MDgwOTBcIix0LnNsYXRlZ3JleT1cIiM3MDgwOTBcIix0LnNub3c9XCIjRkZGQUZBXCIsdC5zcHJpbmdncmVlbj1cIiMwMEZGN0ZcIix0LnN0ZWVsYmx1ZT1cIiM0NjgyQjRcIix0LnRhbj1cIiNEMkI0OENcIix0LnRoaXN0bGU9XCIjRDhCRkQ4XCIsdC50b21hdG89XCIjRkY2MzQ3XCIsdC50dXJxdW9pc2U9XCIjNDBFMEQwXCIsdC52aW9sZXQ9XCIjRUU4MkVFXCIsdC53aGVhdD1cIiNGNURFQjNcIix0LndoaXRlc21va2U9XCIjRjVGNUY1XCIsdC55ZWxsb3dncmVlbj1cIiM5QUNEMzJcIix0LnJlYmVjY2FwdXJwbGU9XCIjNjYzMzk5XCJ9KG98fChvPXt9KSk7dmFyIGEsYyx1PU9iamVjdC5rZXlzKG8pLHM9e0hFWDpbXCJyXCIsXCJnXCIsXCJiXCIsXCJhXCJdLFJHQjpbXCJyXCIsXCJnXCIsXCJiXCIsXCJhXCJdLEhTTDpbXCJoXCIsXCJzXCIsXCJsXCIsXCJhXCJdLENNWUs6W1wiY1wiLFwibVwiLFwieVwiLFwia1wiLFwiYVwiXX0sZD17QkdSOm4uUkdCLEFCR1I6bi5SR0IsSExTOm4uSFNMLEFITFM6bi5IU0wsQ0tNWTpuLkNNWUssQUNLTVk6bi5DTVlLfTshZnVuY3Rpb24odCl7dC5OVU1CRVI9XCJudW1iZXJcIix0LkJPT0xFQU49XCJib29sZWFuXCJ9KGF8fChhPXt9KSk7dmFyIGwsZixoLHA9KChjPXt9KVtuLkhFWF09L14jKD86KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKT98KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KT8pJC9pLGNbbi5SR0JdPS9ecmdiYT9cXHMqXFwoXFxzKig/OigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjW24uSFNMXT0vXmhzbGE/XFxzKlxcKFxccyooPzooLT8oPzpcXGQqXFwuKT9cXGQrKD86ZGVnfGdyYWR8cmFkfHR1cm4pPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspJSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgtPyg/OlxcZCpcXC4pP1xcZCsoPzpkZWd8Z3JhZHxyYWR8dHVybik/KVxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKigoPzpcXGQqXFwuKT9cXGQrKSUoPzpcXHMqXFwvXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKT8pXFxzKlxcKSQvLGNbbi5DTVlLXT0vXig/OmRldmljZS1jbXlrfGNteWspXFxzKlxcKFxccyooPzooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjKSxnPS9eKC0/KD86XFxkKlxcLik/XFxkKykoKD86ZGVnfGdyYWR8cmFkfHR1cm4pPykkLyxtPS9eKFxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyklJC8sYj0vXjB4KFthLWZcXGRdezEsMn0pJC9pLEE9L1xceyhcXGQrKVxcfS9nLHk9LywoICt8XFxkKykvZyxFPS8gKy8sRj1cIlRoZSBwcm92aWRlZCBzdHJpbmcgY29sb3IgZG9lc24ndCBoYXZlIGEgY29ycmVjdCBmb3JtYXRcIix2PVwiVGhlIHByb3ZpZGVkIGNvbG9yIG9iamVjdCBkb2Vzbid0IGhhdmUgdGhlIHByb3BlciBrZXlzIG9yIGZvcm1hdFwiOyFmdW5jdGlvbih0KXt0Lk5PTkU9XCJub25lXCIsdC5ERUdSRUVTPVwiZGVnXCIsdC5HUkFESUFOUz1cImdyYWRcIix0LlJBRElBTlM9XCJyYWRcIix0LlRVUk5TPVwidHVyblwifShsfHwobD17fSkpLGZ1bmN0aW9uKHQpe3QuTk9ORT1cIm5vbmVcIix0LlBFUkNFTlQ9XCJwZXJjZW50XCJ9KGZ8fChmPXt9KSksZnVuY3Rpb24odCl7dC5ERVZJQ0VfQ01ZSz1cImRldmljZS1jbXlrXCIsdC5DTVlLPVwiY215a1wifShofHwoaD17fSkpO3ZhciBILEIsQyxTLFIsTSxEPXtkZWNpbWFsczo2LGxlZ2FjeUNTUzohMSxzcGFjZXNBZnRlckNvbW1hczohMSxhbmdsZXNVbml0OmwuTk9ORSxyZ2JVbml0OmYuTk9ORSxjbXlrVW5pdDpmLlBFUkNFTlQsYWxwaGFVbml0OmYuTk9ORSxjbXlrRnVuY3Rpb246aC5ERVZJQ0VfQ01ZS30sTz1mdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX0sTD1mdW5jdGlvbih0KXtyZXR1cm4rXCJcIi5jb25jYXQodCkucmVwbGFjZShtLFwiJDFcIil9LEc9ZnVuY3Rpb24odCl7cmV0dXJuIG0udGVzdChcIlwiLmNvbmNhdCh0KSk/TCh0KTpNYXRoLm1pbigrdCwxMDApfSxrPWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0Kz10KSxwYXJzZUludCh0LDE2KX0saj1mdW5jdGlvbih0KXt2YXIgZT1LKHQsMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIDE9PT1lLmxlbmd0aD9cIjB4MFwiLmNvbmNhdChlKTpcIjB4XCIuY29uY2F0KGUpfSxYPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSwhZSYmbS50ZXN0KHQpP01hdGgubWluKDI1NSpMKHQpLzEwMCwyNTUpOmIudGVzdCh0KT8oMz09PXQubGVuZ3RoJiYodCs9dC5zbGljZSgtMSkpLGU/Syh0KS8yNTU6Syh0KSk6TWF0aC5taW4oK3QsZT8xOjI1NSl9LEk9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKG0udGVzdCh0KT9MKHQpLzEwMDordCwxKX0sWT1mdW5jdGlvbih0KXtyZXR1cm4gZShbXSx0LCEwKS5zb3J0KCkuam9pbihcIlwiKS50b1VwcGVyQ2FzZSgpfSxLPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9Nik7dmFyIG49TWF0aC5wb3coMTAsZSk7cmV0dXJuIE1hdGgucm91bmQoK3Qqbikvbn0sTj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWF4KGUsTWF0aC5taW4odCxuKSl9LFQ9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpe3ZhciBlPXQubWF0Y2goZyksbj0rZVsxXTtzd2l0Y2goZVsyXSl7Y2FzZSBsLlJBRElBTlM6dD1LKDE4MCpuL01hdGguUEkpO2JyZWFrO2Nhc2UgbC5UVVJOUzp0PUsoMzYwKm4pO2JyZWFrO2Nhc2UgbC5HUkFESUFOUzp0PUsoLjkqbik7YnJlYWs7Y2FzZSBsLkRFR1JFRVM6ZGVmYXVsdDp0PW59fXJldHVybih0PjM2MHx8dDwwKSYmKHQtPTM2MCpNYXRoLmZsb29yKHQvMzYwKSksdH0sUD1mdW5jdGlvbih0LGUpe3ZhciBuO3N3aXRjaChlKXtjYXNlIGwuUkFESUFOUzpuPUsoZnVuY3Rpb24odCl7cmV0dXJuIHQqTWF0aC5QSS8xODB9KHQpKTticmVhaztjYXNlIGwuVFVSTlM6bj1LKHQvMzYwKTticmVhaztjYXNlIGwuR1JBRElBTlM6bj1LKDEwLzkqdCk7YnJlYWs7Y2FzZSBsLkRFR1JFRVM6Y2FzZSBsLk5PTkU6ZGVmYXVsdDpuPXR9cmV0dXJuIG59LFU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07Zm9yKHZhciByPVtdLGk9W10sbz1bXSxjPVtdLHU9W10scz1PYmplY3QudmFsdWVzKGwpLGQ9T2JqZWN0LnZhbHVlcyhmKSxiPU9iamVjdC52YWx1ZXMoaCksQT17bGVnYWN5Q1NTOjAsc3BhY2VzQWZ0ZXJDb21tYXM6MCxjbXlrRnVuY3Rpb246MH0sRj0wLHY9ZTtGPHYubGVuZ3RoO0YrKyl7dmFyIEg9dltGXTtpZihcInN0cmluZ1wiPT10eXBlb2YgSCl7aWYoci5wdXNoKEgpLEguaW5jbHVkZXMoXCIsXCIpKXtBLmxlZ2FjeUNTUysrO3ZhciBCPUgubWF0Y2goeSk7MT09PW5ldyBTZXQoQikuc2l6ZSYmRS50ZXN0KEJbMF0uc2xpY2UoMSkpJiZBLnNwYWNlc0FmdGVyQ29tbWFzKyt9aWYoSC5tYXRjaChwLkhTTCkpe3ZhciBDPShrPUgubWF0Y2gocC5IU0wpKVsxXXx8a1s1XSxTPWtbOF0sUj1DLm1hdGNoKGcpWzJdO2kucHVzaChcIlwiPT09Uj9sLk5PTkU6UiksdS5wdXNoKG0udGVzdChTKSk7Y29udGludWV9aWYocC5SR0IudGVzdChIKSl7dmFyIE09KGs9SC5tYXRjaChwLlJHQikpWzFdfHxrWzVdLE89a1syXXx8a1s2XSxMPWtbM118fGtbN10sRz1rWzhdO28ucHVzaChtLnRlc3QoTSkmJm0udGVzdChPKSYmbS50ZXN0KEwpKSx1LnB1c2gobS50ZXN0KEcpKTtjb250aW51ZX1pZihILm1hdGNoKHAuQ01ZSykpe3ZhciBrLGo9KGs9SC5tYXRjaChwLkNNWUspKVsxXXx8a1s2XSxYPWtbMl18fGtbN10sST1rWzNdfHxrWzhdLFk9a1s0XXx8a1s5XTtHPWtbMTBdO2MucHVzaChtLnRlc3QoaikmJm0udGVzdChYKSYmbS50ZXN0KEkpJiZtLnRlc3QoWSkpLEguc3RhcnRzV2l0aChcImNteWtcIikmJkEuY215a0Z1bmN0aW9uKyssdS5wdXNoKG0udGVzdChHKSl9fX1yZXR1cm57ZGVjaW1hbHM6dHlwZW9mIHQuZGVjaW1hbHM9PT1hLk5VTUJFUj90LmRlY2ltYWxzOkQuZGVjaW1hbHMsbGVnYWN5Q1NTOnR5cGVvZiB0LmxlZ2FjeUNTUz09PWEuQk9PTEVBTj90LmxlZ2FjeUNTUzpCb29sZWFuKHIubGVuZ3RoJiZBLmxlZ2FjeUNTUz09PXIubGVuZ3RoKXx8RC5sZWdhY3lDU1Msc3BhY2VzQWZ0ZXJDb21tYXM6dHlwZW9mIHQuc3BhY2VzQWZ0ZXJDb21tYXM9PT1hLkJPT0xFQU4/dC5zcGFjZXNBZnRlckNvbW1hczpCb29sZWFuKHIubGVuZ3RoJiZBLnNwYWNlc0FmdGVyQ29tbWFzPT09ci5sZW5ndGgpfHxELnNwYWNlc0FmdGVyQ29tbWFzLGFuZ2xlc1VuaXQ6dC5hbmdsZXNVbml0JiZzLmluY2x1ZGVzKHQuYW5nbGVzVW5pdCk/dC5hbmdsZXNVbml0OjE9PT1uZXcgU2V0KGkpLnNpemU/aVswXTpELmFuZ2xlc1VuaXQscmdiVW5pdDp0LnJnYlVuaXQmJmQuaW5jbHVkZXModC5yZ2JVbml0KT90LnJnYlVuaXQ6MT09PW5ldyBTZXQobykuc2l6ZSYmb1swXT9mLlBFUkNFTlQ6RC5yZ2JVbml0LGNteWtVbml0OnQuY215a1VuaXQmJmQuaW5jbHVkZXModC5jbXlrVW5pdCk/dC5jbXlrVW5pdDoxIT09bmV3IFNldChjKS5zaXplfHxjWzBdP0QuY215a1VuaXQ6Zi5OT05FLGFscGhhVW5pdDp0LmFscGhhVW5pdCYmZC5pbmNsdWRlcyh0LmFscGhhVW5pdCk/dC5hbHBoYVVuaXQ6MT09PW5ldyBTZXQodSkuc2l6ZSYmdVswXT9mLlBFUkNFTlQ6RC5hbHBoYVVuaXQsY215a0Z1bmN0aW9uOnQuY215a0Z1bmN0aW9uJiZiLmluY2x1ZGVzKHQuY215a0Z1bmN0aW9uKT90LmNteWtGdW5jdGlvbjpjLmxlbmd0aCYmYy5sZW5ndGg9PT1BLmNteWtGdW5jdGlvbj9oLkNNWUs6RC5jbXlrRnVuY3Rpb259fSx3PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbjwwJiYobis9Niksbj49NiYmKG4tPTYpLEsobjwxPzI1NSooKGUtdCkqbit0KTpuPDM/MjU1KmU6bjw0PzI1NSooKGUtdCkqKDQtbikrdCk6MjU1KnQpfSx4PWZ1bmN0aW9uKHQsZSxuKXtlLz0xMDA7dmFyIHI9KG4vPTEwMCk8PS41P24qKGUrMSk6bitlLW4qZSxpPTIqbi1yO3JldHVybntyOncoaSxyLCh0Lz02MCkrMiksZzp3KGkscix0KSxiOncoaSxyLHQtMil9fSxWPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybntyOksoMjU1KigxLXQpKihyPTEtcikpLGc6SygyNTUqKDEtZSkqciksYjpLKDI1NSooMS1uKSpyKX19LHE9ZnVuY3Rpb24odCxlLG4pe3QvPTI1NSxlLz0yNTUsbi89MjU1O3ZhciByPTEtTWF0aC5tYXgodCxlLG4pLGk9MS1yLG89aSYmKGktZSkvaSxhPWkmJihpLW4pL2k7cmV0dXJue2M6SygxMDAqKGkmJihpLXQpL2kpKSxtOksoMTAwKm8pLHk6SygxMDAqYSksazpLKDEwMCpyKX19LF89ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwPT09ciYmKHI9MSksdC89MjU1LGUvPTI1NSxuLz0yNTUscj1NYXRoLm1pbihyLDEpO3ZhciBpPU1hdGgubWF4KHQsZSxuKSxvPU1hdGgubWluKHQsZSxuKSxhPWktbyxjPTAsdT0wLHM9KGkrbykvMjtpZigwIT09YSl7c3dpdGNoKGkpe2Nhc2UgdDpjPShlLW4pL2ElNjticmVhaztjYXNlIGU6Yz0obi10KS9hKzI7YnJlYWs7Y2FzZSBuOmM9KHQtZSkvYSs0fShjPUsoNjAqYykpPDAmJihjKz0zNjApLHU9YS8oMS1NYXRoLmFicygyKnMtMSkpfXJldHVybntoOmMsczpLKDEwMCp1KSxsOksoMTAwKnMpLGE6cn19LCQ9ZnVuY3Rpb24odCxlKXtpZih0PDAmJih0Kz0zNjApLHQ+MzYwJiYodC09MzYwKSwzNjA9PT10fHwwPT09dClyZXR1cm4gdDt2YXIgbj1bWzAsMTIwXSxbMTIwLDE4MF0sWzE4MCwyNDBdLFsyNDAsMzYwXV0scj1bWzAsNjBdLFs2MCwxMjBdLFsxMjAsMjQwXSxbMjQwLDM2MF1dLGk9ZT9yOm4sbz0wLGE9MCxjPTAsdT0wO3JldHVybihlP246cikuZmluZCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD49ZVswXSYmdDxlWzFdJiYobz1lWzBdLGE9ZVsxXSxjPWlbbl1bMF0sdT1pW25dWzFdLCEwKX0pKSxjKyh1LWMpLyhhLW8pKih0LW8pfSx6PWZ1bmN0aW9uKHQpe3JldHVybiB0P1wiLCBcIjpcIixcIn0sUT1mdW5jdGlvbih0LGUpe3ZhciBuPVkoT2JqZWN0LmtleXModCkpO3JldHVybiBzW2Rbbl1dLnJlZHVjZSgoZnVuY3Rpb24obixyLGkpe3ZhciBvPXRbcl07cmV0dXJuIHZvaWQgMCE9PW8mJm4ucHVzaChlKG8saSkpLG59KSxbXSl9LFc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5yZXBsYWNlKEEsKGZ1bmN0aW9uKHQsbil7cmV0dXJuXCJcIi5jb25jYXQoZVsrbi0xXSl9KSl9LEo9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmFscGhhVW5pdCxyPWUubGVnYWN5Q1NTLGk9ZS5kZWNpbWFscztyZXR1cm4gbiE9PWYuUEVSQ0VOVHx8cj9LKHQsaSk6XCJcIi5jb25jYXQoSygxMDAqdCxpKSxcIiVcIil9LFo9KChIPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7dmFyIGU9USh0LChmdW5jdGlvbih0KXtyZXR1cm4gZT1LKHQpLDE9PT0obj1LKGUsMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkpLmxlbmd0aCYmKG49XCIwXCIuY29uY2F0KG4pKSxuO3ZhciBlLG59KSksbj00PT09ZS5sZW5ndGg/XCIjezF9ezJ9ezN9ezR9XCI6XCIjezF9ezJ9ezN9XCI7cmV0dXJuIFcobixlKX0sSFtuLlJHQl09ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmRlY2ltYWxzLHI9ZS5sZWdhY3lDU1MsaT1lLnNwYWNlc0FmdGVyQ29tbWFzLG89ZS5yZ2JVbml0LGE9eihpKSxjPVEodCwoZnVuY3Rpb24odCxyKXtyZXR1cm4gbz09PWYuUEVSQ0VOVCYmcjwzP1wiXCIuY29uY2F0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEsodC8yNTUqMTAwLGUpfSh0LG4pLFwiJVwiKTozPT09cj9KKHQsZSk6Syh0LG4pfSkpLHU9cj80PT09Yy5sZW5ndGg/XCJyZ2JhKHsxfVwiLmNvbmNhdChhLFwiezJ9XCIpLmNvbmNhdChhLFwiezN9XCIpLmNvbmNhdChhLFwiezR9KVwiKTpcInJnYih7MX1cIi5jb25jYXQoYSxcInsyfVwiKS5jb25jYXQoYSxcInszfSlcIik6ND09PWMubGVuZ3RoP1wicmdiKHsxfSB7Mn0gezN9IC8gezR9KVwiOlwicmdiKHsxfSB7Mn0gezN9KVwiO3JldHVybiBXKHUsYyl9LEhbbi5IU0xdPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kZWNpbWFscyxyPWUubGVnYWN5Q1NTLGk9ZS5zcGFjZXNBZnRlckNvbW1hcyxvPWUuYW5nbGVzVW5pdCxhPXooaSksYz1RKHQsKGZ1bmN0aW9uKHQscil7aWYoMD09PXImJm8hPT1sLk5PTkUpe3ZhciBpPUsoUCh0LG8pLG4pO3JldHVyblwiXCIuY29uY2F0KGkpLmNvbmNhdChvKX1yZXR1cm4gMz09PXI/Sih0LGUpOksodCxuKX0pKSx1PXI/ND09PWMubGVuZ3RoP1wiaHNsYSh7MX1cIi5jb25jYXQoYSxcInsyfSVcIikuY29uY2F0KGEsXCJ7M30lXCIpLmNvbmNhdChhLFwiezR9KVwiKTpcImhzbCh7MX1cIi5jb25jYXQoYSxcInsyfSVcIikuY29uY2F0KGEsXCJ7M30lKVwiKTo0PT09Yy5sZW5ndGg/XCJoc2woezF9IHsyfSUgezN9JSAvIHs0fSlcIjpcImhzbCh7MX0gezJ9JSB7M30lKVwiO3JldHVybiBXKHUsYyl9LEhbbi5DTVlLXT1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZGVjaW1hbHMscj1lLmxlZ2FjeUNTUyxpPWUuc3BhY2VzQWZ0ZXJDb21tYXMsbz1lLmNteWtVbml0LGE9ZS5jbXlrRnVuY3Rpb24sYz16KGkpLHU9USh0LChmdW5jdGlvbih0LHIpe3JldHVybiBvPT09Zi5QRVJDRU5UJiZyPDQ/XCJcIi5jb25jYXQoSyh0LG4pLFwiJVwiKTo0PT09cj9KKHQsZSk6Syh0LzEwMCxuKX0pKSxzPXI/NT09PXUubGVuZ3RoP1wiXCIuY29uY2F0KGEsXCIoezF9XCIpLmNvbmNhdChjLFwiezJ9XCIpLmNvbmNhdChjLFwiezN9XCIpLmNvbmNhdChjLFwiezR9XCIpLmNvbmNhdChjLFwiezV9KVwiKTpcIlwiLmNvbmNhdChhLFwiKHsxfVwiKS5jb25jYXQoYyxcInsyfVwiKS5jb25jYXQoYyxcInszfVwiKS5jb25jYXQoYyxcIns0fSlcIik6NT09PXUubGVuZ3RoP1wiXCIuY29uY2F0KGEsXCIoezF9IHsyfSB7M30gezR9IC8gezV9KVwiKTpcIlwiLmNvbmNhdChhLFwiKHsxfSB7Mn0gezN9IHs0fSlcIik7cmV0dXJuIFcocyx1KX0sSCksdHQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PW0udGVzdCh0KT9MKHQpLzEwMDordCksaXNOYU4oK3QpfHx0PjE/MTpLKHQpfSxldD1mdW5jdGlvbihuLHIsbyl7cmV0dXJuIHIucmVkdWNlKChmdW5jdGlvbihyLGEpe3JldHVybiBlKGUoW10sciwhMCksW3QodCh7fSxuKSx7aDpvPT09aS5BRERJVElWRT9UKG4uaCthKTpUKCQoJChuLmgsITEpK2EsITApKX0pXSwhMSl9KSxbdCh7fSxuKV0pfSxudD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFszMCwtMzBdLGUpfSxydD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxODBdLGUpfSxpdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxNTAsLTE1MF0sZSl9LG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzEyMCwtMTIwXSxlKX0sYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbNjAsLTEyMCwxODBdLGUpfSxjdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFs5MCwtOTAsMTgwXSxlKX0sdXQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7dmFyIGU7aWYoT2JqZWN0LmtleXMobikuc29tZSgoZnVuY3Rpb24obil7aWYocFtuXS50ZXN0KHQpKXJldHVybiBlPW4sITB9KSksIWUmJn51LmluZGV4T2YodCkmJihlPW4uSEVYKSwhZSl0aHJvdyBuZXcgRXJyb3IoRik7cmV0dXJuIGV9KHQpOmZ1bmN0aW9uKHQpe3ZhciBlLHI9ITEsaT1ZKE9iamVjdC5rZXlzKHQpKTtpZihkW2ldJiYoZT1kW2ldKSxlJiZlPT09bi5SR0Ipe3ZhciBvPU9iamVjdC5lbnRyaWVzKHQpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiFiLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpfSkpLGE9T2JqZWN0LmVudHJpZXModCkuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIShtLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpfHwhYi50ZXN0KFwiXCIuY29uY2F0KHRbMV0pKSYmIWlzTmFOKCt0WzFdKSYmK3RbMV08PTI1NSl9KSk7byYmYSYmKHI9ITApLG98fChlPW4uSEVYKX1pZighZXx8cil0aHJvdyBuZXcgRXJyb3Iodik7cmV0dXJuIGV9KHQpfSxzdD0oKEI9e30pW24uSEVYXT1mdW5jdGlvbih0KXt2YXIgZT0ofnUuaW5kZXhPZih0KT9vW3RdOnQpLm1hdGNoKHAuSEVYKSxuPXtyOmsoZVsxXXx8ZVs1XSksZzprKGVbMl18fGVbNl0pLGI6ayhlWzNdfHxlWzddKX0scj1lWzRdfHxlWzhdO3JldHVybiB2b2lkIDAhPT1yJiYobi5hPWsocikvMjU1KSxufSxCW24uUkdCXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuUkdCKSxuPVgoZVsxXXx8ZVs1XSkscj1YKGVbMl18fGVbNl0pLGk9WChlWzNdfHxlWzddKSxvPWVbNF18fGVbOF0sYT17cjpNYXRoLm1pbihuLDI1NSksZzpNYXRoLm1pbihyLDI1NSksYjpNYXRoLm1pbihpLDI1NSl9O3JldHVybiB2b2lkIDAhPT1vJiYoYS5hPXR0KG8pKSxhfSxCW24uSFNMXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuSFNMKSxuPVQoZVsxXXx8ZVs1XSkscj1HKGVbMl18fGVbNl0pLGk9RyhlWzNdfHxlWzddKSxvPWVbNF18fGVbOF0sYT14KG4scixpKTtyZXR1cm4gdm9pZCAwIT09byYmKGEuYT10dChvKSksYX0sQltuLkNNWUtdPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2gocC5DTVlLKSxuPUkoZVsxXXx8ZVs2XSkscj1JKGVbMl18fGVbN10pLGk9SShlWzNdfHxlWzhdKSxvPUkoZVs0XXx8ZVs5XSksYT1lWzVdfHxlWzEwXSxjPVYobixyLGksbyk7cmV0dXJuIHZvaWQgMCE9PWEmJihjLmE9dHQoYSkpLGN9LEIpLGR0PSgoQz17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3ZhciBlPXtyOlgoXCJcIi5jb25jYXQodC5yKSksZzpYKFwiXCIuY29uY2F0KHQuZykpLGI6WChcIlwiLmNvbmNhdCh0LmIpKX07cmV0dXJuIE8odCxcImFcIikmJihlLmE9TWF0aC5taW4oWChcIlwiLmNvbmNhdCh0LmEpLCEwKSwxKSksZX0sQ1tuLlJHQl09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSEVYKHQpfSxDW24uSFNMXT1mdW5jdGlvbih0KXt2YXIgZT1HKFwiXCIuY29uY2F0KHQucykpLG49RyhcIlwiLmNvbmNhdCh0LmwpKSxyPXgoVCh0LmgpLGUsbik7cmV0dXJuIE8odCxcImFcIikmJihyLmE9dHQodC5hKSkscn0sQ1tuLkNNWUtdPWZ1bmN0aW9uKHQpe3ZhciBlPUkoXCJcIi5jb25jYXQodC5jKSksbj1JKFwiXCIuY29uY2F0KHQubSkpLHI9SShcIlwiLmNvbmNhdCh0LnkpKSxpPUkoXCJcIi5jb25jYXQodC5rKSksbz1WKGUsbixyLGkpO3JldHVybiBPKHQsXCJhXCIpJiYoby5hPXR0KHQuYSkpLG99LEMpLGx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXV0KHQpKSxcInN0cmluZ1wiPT10eXBlb2YgdD9zdFtlXSh0KTpkdFtlXSh0KX0sZnQ9KChTPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7cmV0dXJue3I6aih0LnIpLGc6aih0LmcpLGI6aih0LmIpfX0sUy5IRVhBPWZ1bmN0aW9uKHQpe3ZhciBlPWZ0LkhFWCh0KTtyZXR1cm4gZS5hPU8odCxcImFcIik/aigyNTUqdC5hKTpcIjB4RkZcIixlfSxTW24uUkdCXT1mdW5jdGlvbih0LGUpe3ZhciBuPW10KHQsZSk7cmV0dXJuIE8obixcImFcIikmJmRlbGV0ZSBuLmEsbn0sUy5SR0JBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuUkdCKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hKToxLG59LFNbbi5IU0xdPWZ1bmN0aW9uKHQsZSl7dmFyIG49Xyh0LnIsdC5nLHQuYik7cmV0dXJuIGRlbGV0ZSBuLmEsYnQobixlKX0sUy5IU0xBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuSFNMKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hLGUpOjEsbn0sU1tuLkNNWUtdPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEF0KHEodC5yLHQuZyx0LmIpLGUpfSxTLkNNWUtBPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnQuQ01ZSyh0LGUpO3JldHVybiBuLmE9Tyh0LFwiYVwiKT9LKHQuYSxlKToxLG59LFMpLGh0PWZ1bmN0aW9uKGUscixpLG8pe3ZhciBhPXV0KGUpLGM9XCJzdHJpbmdcIj09dHlwZW9mIGUsdT1sdChlLGEpLHM9XCJzdHJpbmdcIj09dHlwZW9mIGUmJk8odSxcImFcIil8fFwic3RyaW5nXCIhPXR5cGVvZiBlJiZPKGUsXCJhXCIpLGQ9Xyh1LnIsdS5nLHUuYix1LmEpO3N8fGRlbGV0ZSBkLmE7dmFyIGw9aT9kLmwvKHIrMSk6KDEwMC1kLmwpLyhyKzEpLGY9QXJyYXkocikuZmlsbChudWxsKS5tYXAoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQodCh7fSxkKSx7bDpkLmwrbCoobisxKSooMS0yKitpKX0pfSkpO3N3aXRjaChhKXtjYXNlIG4uSEVYOmRlZmF1bHQ6cmV0dXJuIGYubWFwKChmdW5jdGlvbihlKXt2YXIgbj14KGUuaCxlLnMsZS5sKTtyZXR1cm4gcyYmKG4uYT1lLmEpLGM/cz9aLkhFWCh0KHQoe30sbikse2E6SygyNTUqbi5hKX0pKTpaLkhFWChuKTpzP2Z0LkhFWEEobik6ZnQuSEVYKG4pfSkpO2Nhc2Ugbi5SR0I6cmV0dXJuIGYubWFwKChmdW5jdGlvbih0KXt2YXIgZT14KHQuaCx0LnMsdC5sKTtyZXR1cm4gcyYmKGUuYT10LmEpLGM/Wi5SR0IoZSxvKTpzP2Z0LlJHQkEoZSxvLmRlY2ltYWxzKTpmdC5SR0IoZSxvLmRlY2ltYWxzKX0pKTtjYXNlIG4uSFNMOnJldHVybiBmLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGM/Wi5IU0woZSxvKTpzP2Z0LkhTTEEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTplLmF9KSxvLmRlY2ltYWxzKTpmdC5IU0woeChlLmgsZS5zLGUubCksby5kZWNpbWFscyl9KSl9fSxwdD0oKFI9e2J1aWxkSGFybW9ueTpmdW5jdGlvbih0LGUscixpKXt2YXIgbz11dCh0KSxhPWx0KHQsbyksYz1fKGEucixhLmcsYS5iLGEuYSksdT1cInN0cmluZ1wiPT10eXBlb2YgdCYmTyhhLFwiYVwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIHQmJk8odCxcImFcIikscz1cInN0cmluZ1wiPT10eXBlb2YgdDtzd2l0Y2gobyl7Y2FzZSBuLkhFWDpkZWZhdWx0OnJldHVybiB1P3RoaXMuSEVYQShidChjLDApLGUscixzKTp0aGlzLkhFWChidChjLDApLGUscixzKTtjYXNlIG4uSFNMOnJldHVybiB1P3RoaXMuSFNMQShjLGUscixzLGkpOnRoaXMuSFNMKGMsZSxyLHMsaSk7Y2FzZSBuLlJHQjpyZXR1cm4gdT90aGlzLlJHQkEoYyxlLHIscyxpKTp0aGlzLlJHQihjLGUscixzLGkpfX19KVtuLkhFWF09ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouSEVYKHgodC5oLHQucyx0LmwpKTpmdC5IRVgoeCh0LmgsdC5zLHQubCkpfSkpfSxSLkhFWEE9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouSEVYKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6MjU1KnR0KGUuYSl9KSk6ZnQuSEVYQSh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSl9KSl9LFJbbi5SR0JdPWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouUkdCKHgodC5oLHQucyx0LmwpLGkpOmZ0LlJHQih4KHQuaCx0LnMsdC5sKSxpLmRlY2ltYWxzKX0pKX0sUi5SR0JBPWZ1bmN0aW9uKGUsbixyLGksbyl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouUkdCKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8pOmZ0LlJHQkEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTp0dChlLmEpfSksby5kZWNpbWFscyl9KSl9LFJbbi5IU0xdPWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIGUodCxuKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByP1ouSFNMKHtoOnQuaCxzOnQucyxsOnQubH0saSk6ZnQuSFNMKHgodC5oLHQucyx0LmwpLGkuZGVjaW1hbHMpfSkpfSxSLkhTTEE9ZnVuY3Rpb24oZSxuLHIsaSxvKXtyZXR1cm4gbihlLHIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGk/Wi5IU0wodCh0KHt9LGUpLHthOnR0KGUuYSl9KSxvKTpmdC5IU0xBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8uZGVjaW1hbHMpfSkpfSxSKSxndD0oKE09e21peDpmdW5jdGlvbihlLG4pe3ZhciByLG8sYSxjLHUscyxkLGwsZixoLHAsZyxtLGIsQSx5PWUubWFwKChmdW5jdGlvbih0KXt2YXIgZT11dCh0KTtyZXR1cm4gbHQodCxlKX0pKSxFPW49PT1pLlNVQlRSQUNUSVZFP3kubWFwKChmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEsYyx1LHMsZCxsLGYsaCxwLGc9KGU9dC5yLG49dC5nLHI9dC5iLGk9TWF0aC5taW4oZSxuLHIpLG89TWF0aC5taW4oMjU1LWUsMjU1LW4sMjU1LXIpLGE9ZS1pLGM9bi1pLHU9ci1pLHM9TWF0aC5taW4oYSxjKSxkPWEtcyxsPShjK3MpLzIsZj0odStjLXMpLzIsaD1NYXRoLm1heChkLGwsZikvTWF0aC5tYXgoYSxjLHUpLHA9aXNOYU4oaCl8fGg9PT0xLzB8fGg8PTA/MTpoLHtyOmQvcCtvLHk6bC9wK28sYjpmL3Arb30pO3JldHVybiBPKHQsXCJhXCIpJiYoZy5hPXQuYSksZ30pKTpudWxsO2Z1bmN0aW9uIEYoZSl7dmFyIHI9bj09PWkuQURESVRJVkU/e3I6MCxnOjAsYjowLGE6MH06e3I6MCx5OjAsYjowLGE6MH07cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLHIpe3ZhciBvPU8ocixcImFcIik/ci5hOjEsYT17cjpNYXRoLm1pbihlLnIrci5yKm8sMjU1KSxiOk1hdGgubWluKGUuYityLmIqbywyNTUpLGE6MS0oMS1vKSooMS1lLmEpfSxjPVwiZ1wiaW4gZT9lLmc6ZS55LHU9XCJnXCJpbiByP3IuZzpyLnk7cmV0dXJuIHQodCh7fSxhKSxuPT09aS5BRERJVElWRT97ZzpNYXRoLm1pbihjK3UqbywyNTUpfTp7eTpNYXRoLm1pbihjK3UqbywyNTUpfSl9KSxyKX1pZihuPT09aS5BRERJVElWRSlyPUYoeSk7ZWxzZXt2YXIgdj1GKEUpO289di5yLGE9di55LGM9di5iLHU9TWF0aC5taW4obyxhLGMpLHM9TWF0aC5taW4oMjU1LW8sMjU1LWEsMjU1LWMpLGQ9by11LGw9YS11LGY9Yy11LGg9TWF0aC5taW4obCxmKSxwPWQrbC1oLGc9bCtoLG09MiooZi1oKSxiPU1hdGgubWF4KHAsZyxtKS9NYXRoLm1heChkLGwsZiksQT1pc05hTihiKXx8Yj09PTEvMHx8Yjw9MD8xOmIsKHI9e3I6cC9BK3MsZzpnL0ErcyxiOm0vQStzfSkuYT12LmF9cmV0dXJue3I6SyhyLnIpLGc6SyhyLmcpLGI6SyhyLmIpLGE6TihyLmEsMCwxKX19fSlbbi5IRVhdPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgci5hLG4/Wi5IRVgocik6ZnQuSEVYKHIpfSxNLkhFWEE9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMubWl4KHQsZSk7cmV0dXJuIHIuYT1uPzI1NSp0dChyLmEpOnR0KHIuYSksbj9aLkhFWChyKTpmdC5IRVhBKHIpfSxNW24uUkdCXT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgaS5hLG4/Wi5SR0IoaSxyKTpmdC5SR0IoaSxyLmRlY2ltYWxzKX0sTS5SR0JBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSk7cmV0dXJuIG4/Wi5SR0IoaSxyKTpmdC5SR0JBKGksci5kZWNpbWFscyl9LE1bbi5IU0xdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSksbz1fKGkucixpLmcsaS5iKTtyZXR1cm4gZGVsZXRlIGkuYSxkZWxldGUgby5hLG4/Wi5IU0wobyxyKTpmdC5IU0woaSxyLmRlY2ltYWxzKX0sTS5IU0xBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSksbz1fKGkucixpLmcsaS5iLGkuYSk7cmV0dXJuIG4/Wi5IU0wobyxyKTpmdC5IU0xBKGksci5kZWNpbWFscyl9LE0pLG10PWZ1bmN0aW9uKGUsbil7dmFyIHI9SyhlLnIsbiksaT1LKGUuZyxuKSxvPUsoZS5iLG4pO3JldHVybiB0KHtyOnIsZzppLGI6b30sTyhlLFwiYVwiKT97YTpLKGUuYSxuKX06e30pfSxidD1mdW5jdGlvbihlLG4pe3JldHVybiB0KHtoOksoZS5oLG4pLHM6SyhlLnMsbiksbDpLKGUubCxuKX0sTyhlLFwiYVwiKT97YTpLKGUuYSxuKX06e30pfSxBdD1mdW5jdGlvbih0LGUpe3JldHVybntjOksodC5jLGUpLG06Syh0Lm0sZSkseTpLKHQueSxlKSxrOksodC5rLGUpfX0seXQ9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHIobHQodCxlKSxuKX0sRXQ9ZnVuY3Rpb24odCxlLG4scixpKXtuPDEmJihuPTUpO3ZhciBvPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uLTEsaT0oZS5yLXQucikvcixvPShlLmctdC5nKS9yLGE9KGUuYi10LmIpL3IsYz10dCh0LmEpLHU9KHR0KGUuYSktYykvcjtyZXR1cm4gQXJyYXkobikuZmlsbChudWxsKS5tYXAoKGZ1bmN0aW9uKG4scyl7cmV0dXJuIDA9PT1zP3Q6cz09PXI/ZTp7cjpLKHQucitpKnMpLGc6Syh0LmcrbypzKSxiOksodC5iK2EqcyksYTpLKGMrdSpzKX19KSl9KGx0KHQpLGx0KGUpLG4pO3JldHVybiBvLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxyKX0pKX0sRnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX29wdGlvbnM9VShlLHQpLHRoaXMucmdiPWx0KHQpLHRoaXMudXBkYXRlSFNMKCksdGhpcy51cGRhdGVDTVlLKCl9cmV0dXJuIG4ucHJvdG90eXBlLnVwZGF0ZVJHQj1mdW5jdGlvbigpe3RoaXMucmdiPXQodCh7fSx4KHRoaXMuaHNsLmgsdGhpcy5oc2wucyx0aGlzLmhzbC5sKSkse2E6dGhpcy5oc2wuYX0pfSxuLnByb3RvdHlwZS51cGRhdGVSR0JGcm9tQ01ZSz1mdW5jdGlvbigpe3RoaXMucmdiPXQodCh7fSxWKHRoaXMuY215ay5jLHRoaXMuY215ay5tLHRoaXMuY215ay55LHRoaXMuY215ay5rKSkse2E6dGhpcy5yZ2IuYX0pfSxuLnByb3RvdHlwZS51cGRhdGVIU0w9ZnVuY3Rpb24oKXt0aGlzLmhzbD1fKHRoaXMucmdiLnIsdGhpcy5yZ2IuZyx0aGlzLnJnYi5iLHRoaXMucmdiLmEpfSxuLnByb3RvdHlwZS51cGRhdGVDTVlLPWZ1bmN0aW9uKCl7dGhpcy5jbXlrPXEodGhpcy5yZ2Iucix0aGlzLnJnYi5nLHRoaXMucmdiLmIpfSxuLnByb3RvdHlwZS51cGRhdGVSR0JBbmRDTVlLPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlUkdCKCksdGhpcy51cGRhdGVDTVlLKCksdGhpc30sbi5wcm90b3R5cGUudXBkYXRlSFNMQW5kQ01ZSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZUhTTCgpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9LG4ucHJvdG90eXBlLnVwZGF0ZVJHQkFuZEhTTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZVJHQkZyb21DTVlLKCksdGhpcy51cGRhdGVIU0woKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRPcHRpb25zPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5fb3B0aW9ucz10KHQoe30sdGhpcy5fb3B0aW9ucyksZSksdGhpc30sbi5wcm90b3R5cGUuc2V0SD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wuaD1UKHQpLHRoaXMudXBkYXRlUkdCQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRTPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhzbC5zPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLmw9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Uj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZ2Iucj1OKHQsMCwyNTUpLHRoaXMudXBkYXRlSFNMQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRHPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJnYi5nPU4odCwwLDI1NSksdGhpcy51cGRhdGVIU0xBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmdiLmI9Tih0LDAsMjU1KSx0aGlzLnVwZGF0ZUhTTEFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0QT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wuYT10aGlzLnJnYi5hPU4odCwwLDEpLHRoaXN9LG4ucHJvdG90eXBlLnNldEM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5jPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sbi5wcm90b3R5cGUuc2V0TT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXlrLm09Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZEhTTCgpfSxuLnByb3RvdHlwZS5zZXRZPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsueT1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LG4ucHJvdG90eXBlLnNldEs9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5rPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwib3B0aW9uc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3B0aW9uc30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmgsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJTXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLnMsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJMXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmwsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLnIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJHXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLmcsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJCXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMucmdiLmIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuaHNsLmEsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5jLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiTVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsubSx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIllcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5jbXlrLnksdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJLXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5rLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdC5IRVgodGhpcy5yZ2IpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWEFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ0LkhFWEEodGhpcy5yZ2IpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQk9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkJ9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQkFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLlJHQk9iamVjdCkse2E6dGhpcy5BfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTH19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMQU9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCh0KHt9LHRoaXMuSFNMT2JqZWN0KSx7YTp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuS319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS0FPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLkNNWUtPYmplY3QpLHthOnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IRVgoe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IRVgoe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CLGE6MjU1KnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5SR0Ioe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJHQkFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouUkdCKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQixhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSFNMKHtoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTH0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkhTTCh7aDp0aGlzLkgsczp0aGlzLlMsbDp0aGlzLkwsYTp0aGlzLkF9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5DTVlLKHtjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuS30sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5DTVlLKHtjOnRoaXMuQyxtOnRoaXMuTSx5OnRoaXMuWSxrOnRoaXMuSyxhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuLnRvSEVYT2JqZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPXV0KHQpO3JldHVybiB5dCh0LGUsMCxmdC5IRVgpfSxuLnRvSEVYPWZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWChuLnRvSEVYT2JqZWN0KHQpKX0sbi50b0hFWEFPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dXQodCk7cmV0dXJuIHl0KHQsZSwwLGZ0LkhFWEEpfSxuLnRvSEVYQT1mdW5jdGlvbih0KXtyZXR1cm4gWi5IRVgobi50b0hFWEFPYmplY3QodCkpfSxuLnRvUkdCT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5SR0IpfSxuLnRvUkdCPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuUkdCKTtyZXR1cm4gWi5SR0IoaSxyKX0sbi50b1JHQkFPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LlJHQkEpfSxuLnRvUkdCQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LlJHQkEpO3JldHVybiBaLlJHQihpLHIpfSxuLnRvSFNMT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5IU0wpfSxuLnRvSFNMPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuSFNMKTtyZXR1cm4gWi5IU0woaSxyKX0sbi50b0hTTEFPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkhTTEEpfSxuLnRvSFNMQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkhTTEEpO3JldHVybiBaLkhTTChpLHIpfSxuLnRvQ01ZS09iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuQ01ZSyl9LG4udG9DTVlLPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuQ01ZSyk7cmV0dXJuIFouQ01ZSyhpLHIpfSxuLnRvQ01ZS0FPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkNNWUtBKX0sbi50b0NNWUtBPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuQ01ZS0EpO3JldHVybiBaLkNNWUsoaSxyKX0sbi5nZXRCbGVuZEhFWE9iamVjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLEV0KHQsZSxuLDAsZnQuSEVYKX0sbi5nZXRCbGVuZEhFWD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPTUpLG4uZ2V0QmxlbmRIRVhPYmplY3QodCxlLHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKHQpfSkpfSxuLmdldEJsZW5kSEVYQU9iamVjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLEV0KHQsZSxuLDAsZnQuSEVYQSl9LG4uZ2V0QmxlbmRIRVhBPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9NSksbi5nZXRCbGVuZEhFWEFPYmplY3QodCxlLHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKHQpfSkpfSxuLmdldEJsZW5kUkdCT2JqZWN0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sci5kZWNpbWFscyxmdC5SR0IpfSxuLmdldEJsZW5kUkdCPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sNixmdC5SR0IpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIFouUkdCKG4sVShyLHQsZSkpfSkpfSxuLmdldEJsZW5kUkdCQU9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuUkdCQSl9LG4uZ2V0QmxlbmRSR0JBPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sNixmdC5SR0JBKS5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBaLlJHQihuLFUocix0LGUpKX0pKX0sbi5nZXRCbGVuZEhTTE9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuSFNMKX0sbi5nZXRCbGVuZEhTTD1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSk7dmFyIGk9VShyLHQsZSk7cmV0dXJuIEV0KHQsZSxuLDYsZnQuSFNMKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhTTCh0LGkpfSkpfSxuLmdldEJsZW5kSFNMQU9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuSFNMQSl9LG4uZ2V0QmxlbmRIU0xBPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KTt2YXIgaT1VKHIsdCxlKTtyZXR1cm4gRXQodCxlLG4sNixmdC5IU0xBKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhTTCh0LGkpfSkpfSxuLmdldE1peEhFWE9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVgodCxlLCExKX0sbi5nZXRNaXhIRVg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYKHQsZSwhMCl9LG4uZ2V0TWl4SEVYQU9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVhBKHQsZSwhMSl9LG4uZ2V0TWl4SEVYQT1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVhBKHQsZSwhMCl9LG4uZ2V0TWl4UkdCT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQih0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0I9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peFJHQkFPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCQSh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0JBPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQkEodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTCh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0w9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peEhTTEFPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMQSh0LG4sITEsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0xBPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTEEodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0U2hhZGVzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLGh0KHQsZSwhMCxVKG4sdCkpfSxuLmdldFRpbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLGh0KHQsZSwhMSxVKG4sdCkpfSxuLmdldEhhcm1vbnk9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXIuQ09NUExFTUVOVEFSWSksdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09byYmKG89e30pLGZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBvO3JldHVybihvPXt9LG9bci5BTkFMT0dPVVNdPXB0LmJ1aWxkSGFybW9ueShlLG50LG4saSksb1tyLkNPTVBMRU1FTlRBUlldPXB0LmJ1aWxkSGFybW9ueShlLHJ0LG4saSksb1tyLlNQTElUX0NPTVBMRU1FTlRBUlldPXB0LmJ1aWxkSGFybW9ueShlLGl0LG4saSksb1tyLlRSSUFESUNdPXB0LmJ1aWxkSGFybW9ueShlLG90LG4saSksb1tyLlRFVFJBRElDXT1wdC5idWlsZEhhcm1vbnkoZSxhdCxuLGkpLG9bci5TUVVBUkVdPXB0LmJ1aWxkSGFybW9ueShlLGN0LG4saSksbylbdF19KGUsdCxuLFUobyx0KSl9LG59KCk7ZXhwb3J0e0Z0IGFzIENvbG9yVHJhbnNsYXRvcixyIGFzIEhhcm1vbnksaSBhcyBNaXh9O1xuIiwgImltcG9ydCB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgQ29sb3VyLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VTIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IGlzQ3NzIH0gZnJvbSBcIi4vU2V0dGluZ3NUYWJcIjtcblxuaW50ZXJmYWNlIFRoZW1lU3R5bGUge1xuXHRib3JkZXI/OiB7XG5cdFx0c2l6ZTogbnVtYmVyO1xuXHRcdHN0eWxlOiBzdHJpbmc7XG5cdH0sXG5cdHNjcm9sbGJhcj86IGJvb2xlYW47XG5cdGV4dHJhPzogc3RyaW5nO1xufVxuXG5jb25zdCBTVFlMRV9JRCA9IFwiY29kZS1zdHlsZXItc3R5bGVzXCI7XG5jb25zdCBUSEVNRV9TVFlMRVM6IFJlY29yZDxzdHJpbmcsVGhlbWVTdHlsZT4gPSB7XG5cdFwiUHJpc21cIjoge1xuXHRcdGJvcmRlcjoge1xuXHRcdFx0c2l6ZTogMSxcblx0XHRcdHN0eWxlOiBcIjFweCBzb2xpZCB2YXIoLS13aW5kb3ctYm9yZGVyLWNvbG9yKVwiLFxuXHRcdH0sXG5cdH0sXG5cdFwiU2hpbW1lcmluZyBGb2N1c1wiOiB7XG5cdFx0Ym9yZGVyOiB7XG5cdFx0XHRzaXplOiAxLFxuXHRcdFx0c3R5bGU6IFwidmFyKC0tdGhpbi1tdXRlZC1ib3JkZXIpXCIsXG5cdFx0fSxcblx0fSxcblx0XCJNaW5pbWFsXCI6IHtcblx0XHRleHRyYTogYFxuXHRcdFx0Lm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYuaXMtcmVhZGFibGUtbGluZS13aWR0aCA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0fVxuXHRcdGAsXG5cdH0sXG5cdFwiT2JzaWRpYW5pdGVcIjoge1xuXHRcdHNjcm9sbGJhcjogdHJ1ZSxcblx0fVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN0eWxpbmcoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncywgYXBwOiBBcHApOiB2b2lkIHtcblx0Y29uc3QgY3VycmVudFRoZW1lID0gZ2V0Q3VycmVudFRoZW1lKGFwcCk7XG5cdGxldCBzdHlsZVRhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNUWUxFX0lEKTtcblx0aWYgKCFzdHlsZVRhZykge1xuXHRcdHN0eWxlVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuXHRcdHN0eWxlVGFnLmlkID0gU1RZTEVfSUQ7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcblx0fVxuXHRzdHlsZVRhZy5pbm5lclRleHQgPSAoc3R5bGVUaGVtZUNvbG91cnMoc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpK3N0eWxlVGhlbWVTZXR0aW5ncyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MsY3VycmVudFRoZW1lKStzdHlsZUxhbmd1YWdlQ29sb3VycyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3Msc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMsY3VycmVudFRoZW1lKSkudHJpbSgpLnJlcGxhY2UoL1xccysvZyxcIiBcIik7XG5cdGFkZFRoZW1lU2V0dGluZ3NDbGFzc2VzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncyk7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVGhlbWVDb2xvdXJzICh0aGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmtleXModGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKS5yZWR1Y2UoKHJlc3VsdDogc3RyaW5nLCBhbHRlcm5hdGl2ZUhpZ2hsaWdodDogc3RyaW5nKSA9PiB7XG5cdFx0cmV0dXJuIHJlc3VsdCArIGBcblx0XHRcdGJvZHkuY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQtJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9IHtcblx0XHRcdFx0LS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1zdHlsZXItJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9LWhpZ2hsaWdodC1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0YDtcblx0fSxgXG5cdFx0Ym9keS5jb2RlLXN0eWxlci50aGVtZS1saWdodCB7XG5cdFx0XHQke2dldFRoZW1lQ29sb3Vycyh0aGVtZUNvbG91cnMubGlnaHQpfVxuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyLnRoZW1lLWRhcmsge1xuXHRcdFx0JHtnZXRUaGVtZUNvbG91cnModGhlbWVDb2xvdXJzLmRhcmspfVxuXHRcdH1cblx0YCk7XG59XG5cbmZ1bmN0aW9uIGdldFRoZW1lQ29sb3VycyAodGhlbWVNb2RlQ29sb3VyczogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoe1xuXHRcdFwiY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuY29kZWJsb2NrLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJjb2RlYmxvY2stdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcImd1dHRlci1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiZ3V0dGVyLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XCJndXR0ZXItYWN0aXZlLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuZ3V0dGVyLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XCJoZWFkZXItYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcImhlYWRlci10aXRsZS10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLWxhbmd1YWdlLXRhZy1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5sYW5ndWFnZVRhZy5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLXNlcGFyYXRvci1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGluZUNvbG91cixcblx0XHRcImFjdGl2ZS1jb2RlYmxvY2stbGluZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIsXG5cdFx0XCJhY3RpdmUtZWRpdG9yLWxpbmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyLFxuXHRcdFwiZGVmYXVsdC1oaWdobGlnaHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyLFxuXHRcdFwiYnV0dG9uLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmFkdmFuY2VkLmJ1dHRvbkNvbG91cixcblx0XHRcImJ1dHRvbi1hY3RpdmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuYWR2YW5jZWQuYnV0dG9uQWN0aXZlQ29sb3VyLFxuXHRcdFwiaW5saW5lLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS50ZXh0Q29sb3VyLFxuXHRcdFwiaW5saW5lLWNvbG91ci1hY3RpdmVcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUuYWN0aXZlVGV4dENvbG91cixcblx0XHRcImlubGluZS1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiaW5saW5lLXRpdGxlLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS50aXRsZVRleHRDb2xvdXIsXG5cdFx0Li4uT2JqZWN0LmVudHJpZXModGhlbWVNb2RlQ29sb3Vycy5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cykucmVkdWNlKChyZXN1bHQ6IFJlY29yZDxzdHJpbmcsQ29sb3VyPixbYWx0ZXJuYXRpdmVIaWdobGlnaHQsY29sb3VyXTogW3N0cmluZyxDb2xvdXJdKTogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0+IHtcblx0XHRcdHJlc3VsdFtgJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9LWhpZ2hsaWdodC1jb2xvdXJgXSA9IGNvbG91cjtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSx7fSlcblx0fSkucmVkdWNlKChyZXN1bHQ6IHN0cmluZywgW2Nzc1ZhcmlhYmxlLGNvbG91cl06IFtzdHJpbmcsQ29sb3VyXSk6IHN0cmluZyA9PiB7XG5cdFx0Y29uc3Qgc3R5bGVDb2xvdXIgPSBpc0Nzcyhjb2xvdXIpP2B2YXIoJHtjb2xvdXJ9KWA6Y29sb3VyO1xuXHRcdHJldHVybiByZXN1bHQgKyBgLS1jb2RlLXN0eWxlci0ke2Nzc1ZhcmlhYmxlfTogJHtzdHlsZUNvbG91cn07YDtcblx0fSxcIlwiKTtcbn1cblxuZnVuY3Rpb24gc3R5bGVUaGVtZVNldHRpbmdzICh0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgY3VycmVudFRoZW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYFxuXHRcdGJvZHkuY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcge1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtYm9sZDogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZD9cImJvbGRcIjpcIm5vcm1hbFwifTtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWl0YWxpYzogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljP1wiaXRhbGljXCI6XCJub3JtYWxcIn07XG5cdFx0XHRmb250LWZhbWlseTogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCE9PVwiXCI/dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQ6XCJ2YXIoLS1mb250LXRleHQpXCJ9O1xuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1oZWFkZXItdGV4dCB7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWJvbGQ6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEJvbGQ/XCJib2xkXCI6XCJub3JtYWxcIn07XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWl0YWxpYzogJHt0aGVtZVNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljP1wiaXRhbGljXCI6XCJub3JtYWxcIn07XG5cdFx0XHRmb250LWZhbWlseTogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCE9PVwiXCI/dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQ6XCJ2YXIoLS1mb250LXRleHQpXCJ9O1xuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyIHtcblx0XHRcdC0tYm9yZGVyLXJhZGl1czogJHt0aGVtZVNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmV9cHg7XG5cdFx0XHQtLWxhbmd1YWdlLWljb24tc2l6ZTogJHt0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplfXB4O1xuXHRcdFx0LS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wOiAke3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzP3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDpcIjEwMCVcIn07XG5cdFx0XHQtLWhlYWRlci1mb250LXNpemU6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9udFNpemV9cHg7XG5cdFx0XHQtLWxpbmUtd3JhcHBpbmc6ICR7dGhlbWVTZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXM/XCJwcmVcIjpcInByZS13cmFwXCJ9O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtZm9udC13ZWlnaHQ6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodH0wMDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXM6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy12ZXJ0aWNhbDogJHt0aGVtZVNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWx9cHg7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWx9cHg7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbDogJHt0aGVtZVNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUtZm9udC13ZWlnaHQ6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0fTAwO1xuXHRcdFx0JHshdGhlbWVTZXR0aW5ncy5jb2RlYmxvY2sud3JhcExpbmVzQWN0aXZlP1wiXCI6XCItLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmUtd3JhcDtcIn1cblx0XHRcdCR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXlDb2xvdXI/XCJcIjpcIi0taWNvbi1maWx0ZXI6IGdyYXlzY2FsZSgxKTtcIn1cblx0XHR9XG5cdFx0JHtUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5ib3JkZXI/YFxuXHRcdFx0Lm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdFx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcjpgKyAvL0B0cy1leHBlY3QtZXJyb3IgRG9lcyBFeGlzdFxuXHRcdFx0XHRcdFRIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zdHlsZStgO1xuXHRcdFx0XHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgtcGFkZGluZzogY2FsYyh2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSAtIGArIC8vQHRzLWV4cGVjdC1lcnJvciBEb2VzIEV4aXN0XG5cdFx0XHRcdFx0VEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uYm9yZGVyLnNpemUrYHB4KTtcblx0XHRcdFx0LS1mb2xkZWQtYm90dG9tLWJvcmRlcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdFx0XHR9XG5cdFx0YDpcIlwifVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uc2Nyb2xsYmFyP2Bcblx0XHRcdHByZS5jb2RlLXN0eWxlci1wcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuXHRcdFx0cHJlLmNvZGUtc3R5bGVyLXByZSA+IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdFx0d2lkdGg6IHZhcigtLWNvZGUtcGFkZGluZyk7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY29kZS1wYWRkaW5nKTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKTtcblx0XHRcdH1cblx0XHRgOlwiXCJ9XG5cdFx0JHtUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5leHRyYT9USEVNRV9TVFlMRVNbY3VycmVudFRoZW1lXS5leHRyYTpcIlwifVxuXHRgO1xufVxuXG5mdW5jdGlvbiBzdHlsZUxhbmd1YWdlQ29sb3VycyAodGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIHJlZGlyZWN0TGFuZ3VhZ2VzOiBSZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9PiwgY3VycmVudFRoZW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoTEFOR1VBR0VfTkFNRVMpLnJlZHVjZSgocmVzdWx0OiBzdHJpbmcsW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VEaXNwbGF5TmFtZV06IFtzdHJpbmcsc3RyaW5nXSk6IHN0cmluZyA9PiB7XG5cdFx0aWYgKExBTkdVQUdFUz8uW2xhbmd1YWdlRGlzcGxheU5hbWVdPy5jb2xvdXIgfHwgKGxhbmd1YWdlTmFtZSBpbiByZWRpcmVjdExhbmd1YWdlcyAmJiBcImNvbG91clwiIGluIHJlZGlyZWN0TGFuZ3VhZ2VzW2xhbmd1YWdlTmFtZV0pKSB7XG5cdFx0XHRyZXN1bHQgKz0gYFxuXHRcdFx0XHQubGFuZ3VhZ2UtJHtsYW5ndWFnZU5hbWV9IHtcblx0XHRcdFx0XHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6ICR7cmVkaXJlY3RMYW5ndWFnZXM/LltsYW5ndWFnZU5hbWVdPy5bXCJjb2xvdXJcIl0gPz8gTEFOR1VBR0VTW2xhbmd1YWdlRGlzcGxheU5hbWVdLmNvbG91cn07XG5cdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6ICR7dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cj90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg6MH1weDtcblx0XHRcdFx0fVxuXHRcdFx0YDtcblx0XHRcdGlmIChUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5ib3JkZXIpIHtcblx0XHRcdFx0cmVzdWx0ICs9IGBcblx0XHRcdFx0XHQubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmxhbmd1YWdlLSR7bGFuZ3VhZ2VOYW1lfSAge1xuXHRcdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItd2lkdGg6ICR7IC8vQHRzLWV4cGVjdC1lcnJvciBEb2VzIGV4aXN0XG5cdHRoZW1lU2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXI/dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoK1RIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zaXplOjB9cHg7XG5cdFx0XHRcdFx0fWA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sXCJcIik7XG59XG5cbmZ1bmN0aW9uIGFkZFRoZW1lU2V0dGluZ3NDbGFzc2VzICh0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyk6IHZvaWQge1xuXHR0aGVtZVNldHRpbmdzLmlubGluZS5zdHlsZSA/IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLXN0eWxlLWlubGluZVwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXN0eWxlLWlubGluZVwiKTtcblx0dGhlbWVTZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0ID8gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodFwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIik7XG5cdHRoZW1lU2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUgPyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIikgOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIik7XG5cblx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0XCIsXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtY29kZWJsb2NrXCIsXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtZWRpdG9yXCIpOyAvL1RPRE8gKEBtYXl1cmFua3YpIElzIHRoaXMgc2VjdGlvbiBuZWNlc3Nhcnk/IElzIHRoaXMgZnVuY3Rpb24gbmVjZXNzYXJ5P1xuXHRpZiAodGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgJiYgdGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpIC8vIEluc2lkZSBhbmQgb3V0c2lkZSBvZiBjb2RlYmxvY2tzIHdpdGggZGlmZmVyZW50IGNvbG91cnNcblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHRcIik7XG5cdGVsc2UgaWYgKHRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lICYmICF0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gT25seSBvdXRzaWRlIGNvZGVibG9ja3Ncblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtZWRpdG9yXCIpO1xuXHRlbHNlIGlmICghdGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgJiYgdGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpIC8vIE9ubHkgaW5zaWRlIGNvZGVibG9ja3Ncblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtY29kZWJsb2NrXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlU3R5bGVzQW5kQ2xhc3NlcygpOiB2b2lkIHtcblx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU1RZTEVfSUQpPy5yZW1vdmUoKTtcblx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFxuXHRcdFwiY29kZS1zdHlsZXJcIixcblx0XHRcImNvZGUtc3R5bGVyLXNob3ctbGluZS1udW1iZXJzXCIsXG5cdFx0XCJjb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0XCIsXG5cdFx0XCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIixcblx0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudFRoZW1lKGFwcDogQXBwKTogc3RyaW5nIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0cmV0dXJuIGFwcC52YXVsdC5nZXRDb25maWcoXCJjc3NUaGVtZVwiKTtcbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blJlbmRlcmVyLCBlZGl0b3JFZGl0b3JGaWVsZCwgZWRpdG9ySW5mb0ZpZWxkLCBlZGl0b3JMaXZlUHJldmlld0ZpZWxkIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBFZGl0b3JWaWV3LCBWaWV3VXBkYXRlLCBEZWNvcmF0aW9uLCBEZWNvcmF0aW9uU2V0LCBXaWRnZXRUeXBlLCBWaWV3UGx1Z2luLCBQbHVnaW5WYWx1ZSB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5pbXBvcnQgeyBFeHRlbnNpb24sIEVkaXRvclN0YXRlLCBTdGF0ZUZpZWxkLCBTdGF0ZUVmZmVjdCwgU3RhdGVFZmZlY3RUeXBlLCBSYW5nZSwgUmFuZ2VTZXRCdWlsZGVyLCBUcmFuc2FjdGlvbiwgTGluZSwgU2VsZWN0aW9uUmFuZ2UsIENvbXBhcnRtZW50IH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBzeW50YXhUcmVlLCB0b2tlbkNsYXNzTm9kZVByb3AgfSBmcm9tIFwiQGNvZGVtaXJyb3IvbGFuZ3VhZ2VcIjtcbmltcG9ydCB7IFN5bnRheE5vZGVSZWYgfSBmcm9tIFwiQGxlemVyL2NvbW1vblwiO1xuXG5pbXBvcnQgeyBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBTUEVDSUFMX0xBTkdVQUdFUyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnMsIHRlc3RPcGVuaW5nTGluZSwgdHJpbVBhcmFtZXRlckxpbmUsIGlzQ29kZWJsb2NrSWdub3JlZCwgaXNMYW5ndWFnZUlnbm9yZWQgfSBmcm9tIFwiLi9QYXJzaW5nL0NvZGVibG9ja1BhcnNpbmdcIjtcbmltcG9ydCB7IElubGluZUNvZGVQYXJhbWV0ZXJzLCBwYXJzZUlubGluZUNvZGUgfSBmcm9tIFwiLi9QYXJzaW5nL0lubGluZUNvZGVQYXJzaW5nXCI7XG5pbXBvcnQgeyBjcmVhdGVIZWFkZXIsIGNyZWF0ZUlubGluZU9wZW5lciwgZ2V0TGFuZ3VhZ2VJY29uLCBnZXRMaW5lQ2xhc3MsIGlzSGVhZGVySGlkZGVuIH0gZnJvbSBcIi4vQ29kZWJsb2NrRGVjb3JhdGluZ1wiO1xuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuXG5pbnRlcmZhY2UgU2V0dGluZ3NTdGF0ZSB7XG5cdGV4Y2x1ZGVkTGFuZ3VhZ2VzOiBzdHJpbmc7XG5cdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvZGVibG9ja0NvZGVNaXJyb3JFeHRlbnNpb25zKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBsaXZlUHJldmlld0NvbXBhcnRtZW50ID0gbmV3IENvbXBhcnRtZW50O1xuXHRjb25zdCBpZ25vcmVDb21wYXJ0bWVudCA9IG5ldyBDb21wYXJ0bWVudDtcblxuXHRjb25zdCBpbnRlcmFjdGlvbiA9IFZpZXdQbHVnaW4uZnJvbUNsYXNzKFxuXHRcdGNsYXNzIEV4YW1wbGVQbHVnaW4gaW1wbGVtZW50cyBQbHVnaW5WYWx1ZSB7XG5cdFx0XHRjb25zdHJ1Y3RvcigpIHtcblx0XHRcdFx0YWRkUmVmZXJlbmNlU3ludGF4SGlnaGxpZ2h0KCk7XG5cdFx0XHRcdGFkZFlhbWxGcm9udG1hdHRlclN5bnRheEhpZ2hsaWdodGluZygpO1xuXHRcdFx0fSAvLyB2aWV3OiBFZGl0b3JWaWV3XG5cdFx0XHR1cGRhdGUoKSB7fSAvLyB1cGRhdGU6IFZpZXdVcGRhdGVcblx0XHRcdGRlc3Ryb3koKSB7fVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZXZlbnRIYW5kbGVyczoge1xuXHRcdFx0XHRjbGljazogZnVuY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQsIHZpZXc6IEVkaXRvclZpZXcpIHtcblx0XHRcdFx0XHRpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmNvbnRhaW5zKFwiY29kZS1zdHlsZXItc291cmNlLWxpbmtcIikgJiYgZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0Y29uc3Qgc291cmNlUGF0aCA9IHZpZXcuc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aCA/PyBcIlwiO1xuXHRcdFx0XHRcdFx0Y29uc3QgZGVzdGluYXRpb24gPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRBdHRyaWJ1dGUoXCJkZXN0aW5hdGlvblwiKTtcblx0XHRcdFx0XHRcdGlmIChkZXN0aW5hdGlvbilcblx0XHRcdFx0XHRcdFx0cGx1Z2luLmFwcC53b3Jrc3BhY2Uub3BlbkxpbmtUZXh0KGRlc3RpbmF0aW9uLCBzb3VyY2VQYXRoLCB0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdCk7XG5cblx0Y29uc3QgaWdub3JlTGlzdGVuZXIgPSBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGU6IFZpZXdVcGRhdGUpID0+IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBtYWtlIHRoaXMgc3RhcnRTdGF0ZSBvbmx5PyBEb2VzIGl0IG5lZWQgdG8gYmU/XG5cdFx0Y29uc3QgbGl2ZVByZXZpZXdFeHRlbnNpb25zID0gbGl2ZVByZXZpZXdDb21wYXJ0bWVudC5nZXQodXBkYXRlLnN0YXRlKTtcblx0XHRjb25zdCB0b0lnbm9yZSA9IGlzU291cmNlTW9kZSh1cGRhdGUuc3RhdGUpO1xuXHRcdGNvbnN0IGZpbGVJZ25vcmUgPSBpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgIShBcnJheS5pc0FycmF5KGxpdmVQcmV2aWV3RXh0ZW5zaW9ucykgJiYgbGl2ZVByZXZpZXdFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCk7XG5cdFx0Y29uc3QgZmlsZVVuaWdub3JlID0gIXRvSWdub3JlICYmICFpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgKEFycmF5LmlzQXJyYXkobGl2ZVByZXZpZXdFeHRlbnNpb25zKSAmJiBsaXZlUHJldmlld0V4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRpZiAoaXNTb3VyY2VNb2RlKHVwZGF0ZS5zdGFydFN0YXRlKSAhPT0gdG9JZ25vcmUgfHwgZmlsZUlnbm9yZSB8fCBmaWxlVW5pZ25vcmUpIHtcblx0XHRcdHVwZGF0ZS52aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBsaXZlUHJldmlld0NvbXBhcnRtZW50LnJlY29uZmlndXJlKCh0b0lnbm9yZXx8ZmlsZUlnbm9yZSk/W106W2hlYWRlckRlY29yYXRpb25zLGxpbmVEZWNvcmF0aW9ucyxmb2xkRGVjb3JhdGlvbnMsaGlkZGVuRGVjb3JhdGlvbnNdKX0pO1xuXHRcdFx0aWYgKCF0b0lnbm9yZSAmJiAhZmlsZUlnbm9yZSlcblx0XHRcdFx0dXBkYXRlLnZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGZvbGRBbGwub2Yoe30pfSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaWdub3JlRmlsZUxpc3RlbmVyID0gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlOiBWaWV3VXBkYXRlKSA9PiB7XG5cdFx0Y29uc3QgaWdub3JlRXh0ZW5zaW9ucyA9IGlnbm9yZUNvbXBhcnRtZW50LmdldCh1cGRhdGUuc3RhdGUpO1xuXHRcdGNvbnN0IGZpbGVJZ25vcmUgPSBpc0ZpbGVJZ25vcmVkKHVwZGF0ZS5zdGF0ZSkgJiYgIShBcnJheS5pc0FycmF5KGlnbm9yZUV4dGVuc2lvbnMpICYmIGlnbm9yZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRjb25zdCBmaWxlVW5pZ25vcmUgPSAhaXNGaWxlSWdub3JlZCh1cGRhdGUuc3RhdGUpICYmIChBcnJheS5pc0FycmF5KGlnbm9yZUV4dGVuc2lvbnMpICYmIGlnbm9yZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKTtcblx0XHRpZiAoZmlsZUlnbm9yZSB8fCBmaWxlVW5pZ25vcmUpXG5cdFx0XHR1cGRhdGUudmlldy5kaXNwYXRjaCh7ZWZmZWN0czogaWdub3JlQ29tcGFydG1lbnQucmVjb25maWd1cmUoZmlsZUlnbm9yZT9bXTppbmxpbmVEZWNvcmF0aW9ucyl9KTtcblx0fSk7XG5cblx0Y29uc3Qgc2V0dGluZ3NTdGF0ZSA9IFN0YXRlRmllbGQuZGVmaW5lPFNldHRpbmdzU3RhdGU+KHtcblx0XHRjcmVhdGUoKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRleGNsdWRlZExhbmd1YWdlczogc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMsXG5cdFx0XHRcdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QsXG5cdFx0XHR9O1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBTZXR0aW5nc1N0YXRlKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRpZiAodmFsdWUucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCAhPT0gc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCB8fCB2YWx1ZS5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpXG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0ZXhjbHVkZWRMYW5ndWFnZXM6IHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLFxuXHRcdFx0XHRcdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QsXG5cdFx0XHRcdH07XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgY2hhcldpZHRoU3RhdGUgPSBTdGF0ZUZpZWxkLmRlZmluZTxudW1iZXI+KHsgLy9UT0RPIChAbWF5dXJhbmt2KSBJbXByb3ZlIGltcGxlbWVudGF0aW9uXG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IG51bWJlciB7XG5cdFx0XHRyZXR1cm4oc3RhdGUuZmllbGQoZWRpdG9yRWRpdG9yRmllbGQpLmRlZmF1bHRDaGFyYWN0ZXJXaWR0aCAqIDEuMTA1KTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBudW1iZXIge1xuXHRcdFx0cmV0dXJuKHRyYW5zYWN0aW9uLnN0YXRlLmZpZWxkKGVkaXRvckVkaXRvckZpZWxkKS5kZWZhdWx0Q2hhcmFjdGVyV2lkdGggKiAxLjEwNSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaGVhZGVyRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7IC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlIChkb2VzIHRoaXMgbmVlZCB0byBiZSB1cGRhdGVkIGluIHRoaXMgbWFubmVyPylcblx0XHRjcmVhdGUoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRyZXR1cm4gYnVpbGRIZWFkZXJEZWNvcmF0aW9ucyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSGVhZGVyRGVjb3JhdGlvbnModHJhbnNhY3Rpb24uc3RhdGUsKHBvc2l0aW9uKT0+aXNGb2xkZWQodHJhbnNhY3Rpb24uc3RhdGUscG9zaXRpb24pKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgbGluZURlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oeyAvL1RPRE8gKEBtYXl1cmFua3YpIERlYWwgd2l0aCBzb3VyY2UgbW9kZSAtIG1ha2UgYXBwbHkgc3R5bGluZyBpbiBzb3VyY2UgbW9kZVxuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZExpbmVEZWNvcmF0aW9ucyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkTGluZURlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgZm9sZERlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oe1xuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBjaGFuZ2UgdGhpcz9cblx0XHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdFx0aWYgKCFpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKVxuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkRW5kLnRvLGZvbGREZWNvcmF0aW9uKChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKS51cGRhdGUoe2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlcik9PmZyb20hPT10b30pO1xuXHRcdFx0dmFsdWUgPSB2YWx1ZS51cGRhdGUoe2FkZDogdHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT4oZWZmZWN0LmlzKGZvbGQpfHxlZmZlY3QuaXModW5oaWRlRm9sZCkpKS5tYXAoZWZmZWN0PT5mb2xkUmVnaW9uKGVmZmVjdC52YWx1ZSkpfSk7IC8vVE9ETyAoQG1heXVyYW5rdikgQ2FuIEkgcmVtb3ZlIGAsIHNvcnQ6IHRydWVgXG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PihlZmZlY3QuaXModW5mb2xkKXx8ZWZmZWN0LmlzKGhpZGVGb2xkKSkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUodW5mb2xkUmVnaW9uKGVmZmVjdC52YWx1ZSkpKTtcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHJlbW92ZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHJlbW92ZUZvbGRMYW5ndWFnZXMoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdFx0cHJvdmlkZShmaWVsZDogU3RhdGVGaWVsZDxEZWNvcmF0aW9uU2V0Pik6IEV4dGVuc2lvbiB7XG5cdFx0XHRyZXR1cm4gRWRpdG9yVmlldy5kZWNvcmF0aW9ucy5mcm9tKGZpZWxkKTtcblx0XHR9LFxuXHR9KTtcblx0Y29uc3QgaGlkZGVuRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7XG5cdFx0Y3JlYXRlKCk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRpZiAodHJhbnNhY3Rpb24uZWZmZWN0cy5zb21lKGVmZmVjdD0+ZWZmZWN0LmlzKGZvbGRBbGwpKSlcblx0XHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHRcdHZhbHVlID0gdmFsdWUubWFwKHRyYW5zYWN0aW9uLmNoYW5nZXMpLnVwZGF0ZSh7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKT0+ZnJvbSE9PXRvfSk7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLnVwZGF0ZSh7YWRkOiB0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhoaWRlRm9sZCkpLm1hcChlZmZlY3Q9PmVmZmVjdC52YWx1ZSl9KTsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSByZW1vdmUgYCwgc29ydDogdHJ1ZWBcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHVuaGlkZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHVuaGlkZUZvbGRVcGRhdGUoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXMocmVtb3ZlRm9sZCkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUocmVtb3ZlRm9sZExhbmd1YWdlcyhlZmZlY3QudmFsdWUpKSk7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaW5saW5lRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7XG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUpO1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBEZWNvcmF0aW9uU2V0LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZElubGluZURlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblxuXHRmdW5jdGlvbiBzZXR0aW5nc0NoYW5nZUV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbikgPT4ge1xuXHRcdFx0bGV0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgaW5pdGlhbFNldHRpbmdzID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChzZXR0aW5nc1N0YXRlKTtcblx0XHRcdGxldCByZWFkZEZvbGRMYW5ndWFnZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0XHRcdGxldCByZW1vdmVGb2xkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cdFx0XHRpZiAoaW5pdGlhbFNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QgIT09IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpIHtcblx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0Y29uc3QgY29kZWJsb2NrUHJvY2Vzc29ycyA9IE9iamVjdC5rZXlzKE1hcmtkb3duUHJldmlld1JlbmRlcmVyLmNvZGVCbG9ja1Bvc3RQcm9jZXNzb3JzKTtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcyA9IGNvZGVibG9ja1Byb2Nlc3NvcnMuZmlsdGVyKGxhbmc9PiFpbml0aWFsU2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdC5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKS5pbmNsdWRlcyhsYW5nKSk7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MgPSBjb2RlYmxvY2tQcm9jZXNzb3JzLmZpbHRlcihsYW5nPT4hc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdC5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKS5pbmNsdWRlcyhsYW5nKSk7XG5cdFx0XHRcdHJlbW92ZUZvbGRMYW5ndWFnZXMgPSByZW1vdmVGb2xkTGFuZ3VhZ2VzLmNvbmNhdChzZXREaWZmZXJlbmNlKGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MsaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRDb2RlYmxvY2tzLGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MpIGFzIEFycmF5PHN0cmluZz4pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGluaXRpYWxTZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpIHtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkTGFuZ3VhZ2VzID0gaW5pdGlhbFNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLnNwbGl0KFwiLFwiKS5tYXAobGFuZz0+bGFuZy50cmltKCkpO1xuXHRcdFx0XHRjb25zdCBjdXJyZW50RXhjbHVkZWRMYW5ndWFnZXMgPSBzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcy5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKTtcblx0XHRcdFx0cmVtb3ZlRm9sZExhbmd1YWdlcyA9IHJlbW92ZUZvbGRMYW5ndWFnZXMuY29uY2F0KHNldERpZmZlcmVuY2UoY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzLGluaXRpYWxFeGNsdWRlZExhbmd1YWdlcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRMYW5ndWFnZXMsY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzKSBhcyBBcnJheTxzdHJpbmc+KTtcblx0XHRcdH1cblx0XHRcdGlmIChyZW1vdmVGb2xkTGFuZ3VhZ2VzLmxlbmd0aCAhPT0gMClcblx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKHJlbW92ZUZvbGQub2YocmVtb3ZlRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0aWYgKHJlYWRkRm9sZExhbmd1YWdlcy5sZW5ndGggIT09IDApXG5cdFx0XHRcdGFkZEVmZmVjdHMgPSBhZGRFZmZlY3RzLmNvbmNhdChjb252ZXJ0UmVhZGRGb2xkKHRyYW5zYWN0aW9uLHJlYWRkRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0ZnVuY3Rpb24gY3Vyc29yRm9sZEV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcblx0XHRcdGNvbnN0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgZm9sZERlY29yYXRpb25zU3RhdGUgPSB0cmFuc2FjdGlvbi5zdGFydFN0YXRlLmZpZWxkKGZvbGREZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRjb25zdCBoaWRkZW5EZWNvcmF0aW9uc1N0YXRlID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChoaWRkZW5EZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHR0cmFuc2FjdGlvbi5uZXdTZWxlY3Rpb24ucmFuZ2VzLmZvckVhY2goKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9Pntcblx0XHRcdFx0Zm9sZERlY29yYXRpb25zU3RhdGUuYmV0d2VlbihyYW5nZS5mcm9tLCByYW5nZS50bywgKGZvbGRGcm9tLCBmb2xkVG8sIGRlY29yYXRpb25WYWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGlmIChyYW5nZUludGVyYWN0aW9uKGZvbGRGcm9tLGZvbGRUbyxyYW5nZSkpXG5cdFx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2goaGlkZUZvbGQub2Yoe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvLCB2YWx1ZTogZGVjb3JhdGlvblZhbHVlfSkpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Zm9yIChsZXQgaXRlciA9IGhpZGRlbkRlY29yYXRpb25zU3RhdGUuaXRlcigpOyBpdGVyLnZhbHVlICE9PSBudWxsOyBpdGVyLm5leHQoKSkge1xuXHRcdFx0XHRcdGlmICghcmFuZ2VJbnRlcmFjdGlvbihpdGVyLmZyb20saXRlci50byxyYW5nZSkpXG5cdFx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2godW5oaWRlRm9sZC5vZih7ZnJvbTogaXRlci5mcm9tLCB0bzogaXRlci50bywgdmFsdWU6IGl0ZXIudmFsdWV9KSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0ZnVuY3Rpb24gZG9jdW1lbnRGb2xkRXh0ZW5kZXIoKSB7XG5cdFx0cmV0dXJuIEVkaXRvclN0YXRlLnRyYW5zYWN0aW9uRXh0ZW5kZXIub2YoKHRyYW5zYWN0aW9uKSA9PiB7XG5cdFx0XHRsZXQgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhmb2xkQWxsKSkuZm9yRWFjaChlZmZlY3Q9Pntcblx0XHRcdFx0aWYgKHR5cGVvZiBlZmZlY3QudmFsdWU/LnRvRm9sZCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoZG9jdW1lbnRGb2xkKHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUsZWZmZWN0LnZhbHVlLnRvRm9sZCkpOyAvL1RPRE8gKEBtYXl1cmFua3YpIERvZXMgdGhpcyBuZWVkIHRvIGJlIHN0YXRlXG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoZG9jdW1lbnRGb2xkKHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUpKTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBVcmdlbnQ6IEF1dG8gYWRkIHRlbXAgdW5mb2xkIG9uIHR5cGUgb2YgZm9sZCBhbmQgcmVtb3ZlIGJvdGggZm9sZCBhbmQgdGVtcCB1bmZvbGQgZm9yIHJlbW92YWxcblxuXHRjbGFzcyBMaW5lTnVtYmVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGluZU51bWJlcjogbnVtYmVyO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0bWF4TGluZU51bTogbnVtYmVyO1xuXHRcdGVtcHR5OiBib29sZWFuO1xuXG5cdFx0Y29uc3RydWN0b3IobGluZU51bWJlcjogbnVtYmVyLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBtYXhMaW5lTnVtOiBudW1iZXIsIGVtcHR5OiBib29sZWFuID0gZmFsc2UpIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuXHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzID0gY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdHRoaXMubWF4TGluZU51bSA9IG1heExpbmVOdW07XG5cdFx0XHR0aGlzLmVtcHR5ID0gZW1wdHk7XG5cdFx0fVxuXG5cdFx0ZXEob3RoZXI6IExpbmVOdW1iZXJXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiB0aGlzLmxpbmVOdW1iZXIgPT09IG90aGVyLmxpbmVOdW1iZXIgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCAmJiB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgJiYgdGhpcy5tYXhMaW5lTnVtID09PSBvdGhlci5tYXhMaW5lTnVtICYmIHRoaXMuZW1wdHkgPT09IG90aGVyLmVtcHR5O1xuXHRcdH1cblxuXHRcdHRvRE9NKCk6IEhUTUxFbGVtZW50IHtcblx0XHRcdHJldHVybiBjcmVhdGVTcGFuKHthdHRyOiB7c3R5bGU6IHRoaXMubWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCA+ICh0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpLmxlbmd0aD9cIndpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1wiOlwiXCJ9LCBjbHM6IFwiY29kZS1zdHlsZXItbGluZS1udW1iZXJcIiwgdGV4dDogdGhpcy5lbXB0eT9cIlwiOih0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSk7XG5cdFx0fVxuXHR9XG5cdGNsYXNzIENvbW1lbnRMaW5rV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGlua1RleHQ6IHN0cmluZztcblx0XHRzb3VyY2VQYXRoOiBzdHJpbmc7XG5cblx0XHRjb25zdHJ1Y3RvcihsaW5rVGV4dDogc3RyaW5nLCBzb3VyY2VQYXRoOiBzdHJpbmcpIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmxpbmtUZXh0ID0gbGlua1RleHQ7XG5cdFx0XHR0aGlzLnNvdXJjZVBhdGggPSBzb3VyY2VQYXRoO1xuXHRcdH1cblxuXHRcdGVxKG90aGVyOiBDb21tZW50TGlua1dpZGdldCk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIHRoaXMubGlua1RleHQgPT09IG90aGVyLmxpbmtUZXh0ICYmIHRoaXMuc291cmNlUGF0aCA9PT0gb3RoZXIuc291cmNlUGF0aDtcblx0XHR9XG5cblx0XHR0b0RPTSgpOiBIVE1MRWxlbWVudCB7XG5cdFx0XHRjb25zdCBsaW5rUGFyZW50RWxlbWVudCA9IGNyZWF0ZURpdih7YXR0cjoge2NsYXNzOiBcImNvZGUtc3R5bGVyLWNvbW1lbnQtbGlua1wifX0pO1xuXHRcdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCx0aGlzLmxpbmtUZXh0LGxpbmtQYXJlbnRFbGVtZW50LHRoaXMuc291cmNlUGF0aCxwbHVnaW4pO1xuXHRcdFx0cmV0dXJuIGxpbmtQYXJlbnRFbGVtZW50O1xuXHRcdH1cblx0fVxuXHRjbGFzcyBIZWFkZXJXaWRnZXQgZXh0ZW5kcyBXaWRnZXRUeXBlIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzO1xuXHRcdHNvdXJjZVBhdGg6IHN0cmluZztcblx0XHRwbHVnaW46IENvZGVTdHlsZXJQbHVnaW47XG5cdFx0aWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGZvbGRlZDogYm9vbGVhbjtcblx0XHRoaWRkZW46IGJvb2xlYW47XG5cblx0XHRjb25zdHJ1Y3Rvcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBmb2xkZWQ6IGJvb2xlYW4sIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRcdFx0c3VwZXIoKTtcblx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyA9IHN0cnVjdHVyZWRDbG9uZShjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncyA9IHN0cnVjdHVyZWRDbG9uZSh0aGVtZVNldHRpbmdzKTtcblx0XHRcdHRoaXMuc291cmNlUGF0aCA9IHNvdXJjZVBhdGg7XG5cdFx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblx0XHRcdHRoaXMuaWNvblVSTCA9IGdldExhbmd1YWdlSWNvbih0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UsdGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29ucyk7XG5cdFx0XHR0aGlzLmZvbGRlZCA9IGZvbGRlZDtcblx0XHRcdHRoaXMuaGlkZGVuID0gaXNIZWFkZXJIaWRkZW4odGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLHRoaXMudGhlbWVTZXR0aW5ncyx0aGlzLmljb25VUkwpO1xuXHRcdH1cblxuXHRcdGVxKG90aGVyOiBIZWFkZXJXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSAmJlxuXHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5wbGFjZWhvbGRlciAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciA9PT0gb3RoZXIudGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyICYmXG5cdFx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ICYmXG5cdFx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gb3RoZXIudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSAmJlxuXHRcdFx0XHR0aGlzLmZvbGRlZCA9PT0gb3RoZXIuZm9sZGVkICYmXG5cdFx0XHRcdHRoaXMuaWNvblVSTCA9PT0gb3RoZXIuaWNvblVSTFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHR0b0RPTSh2aWV3OiBFZGl0b3JWaWV3KTogSFRNTEVsZW1lbnQge1xuXHRcdFx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlSGVhZGVyKHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyx0aGlzLnRoZW1lU2V0dGluZ3MsdGhpcy5zb3VyY2VQYXRoLHRoaXMucGx1Z2luKTtcblx0XHRcdGlmICh0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UhPT1cIlwiKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChgbGFuZ3VhZ2UtJHt0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCk7XG5cdFx0XHRpZiAodGhpcy5mb2xkZWQpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaGVhZGVyLWZvbGRlZFwiKTtcblx0XHRcdGhlYWRlckNvbnRhaW5lci5vbmNsaWNrID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGlmICghKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk/LmNsYXNzTGlzdD8uY29udGFpbnMoXCJpbnRlcm5hbC1saW5rXCIpICYmICEoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8uY2xhc3NMaXN0Py5jb250YWlucyhcImV4dGVybmFsLWxpbmtcIikpXG5cdFx0XHRcdFx0Zm9sZE9uQ2xpY2sodmlldyxoZWFkZXJDb250YWluZXIsdGhpcy5mb2xkZWQsdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKTtcblx0XHRcdH07XG5cdFx0XHRyZXR1cm4gaGVhZGVyQ29udGFpbmVyO1xuXHRcdH1cblx0fVxuXHRjbGFzcyBPcGVuZXJXaWRnZXQgZXh0ZW5kcyBXaWRnZXRUeXBlIHtcblx0XHRpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdFx0cGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luO1xuXG5cdFx0Y29uc3RydWN0b3IgKGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdFx0XHRzdXBlcigpO1xuXHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycyA9IGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRcdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XG5cdFx0fVxuXG5cdFx0ZXEob3RoZXI6IE9wZW5lcldpZGdldCk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSAmJlxuXHRcdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlID09IG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlICYmXG5cdFx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbiA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uICYmXG5cdFx0XHRcdGdldExhbmd1YWdlSWNvbih0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpID09IGdldExhbmd1YWdlSWNvbihvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSxvdGhlci5wbHVnaW4ubGFuZ3VhZ2VJY29ucylcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dG9ET00oKTogSFRNTEVsZW1lbnQge1xuXHRcdFx0cmV0dXJuIGNyZWF0ZUlubGluZU9wZW5lcih0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMsW1wiY29kZS1zdHlsZXItaW5saW5lLW9wZW5lclwiLFwiY20taW5saW5lLWNvZGVcIl0pO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIGJ1aWxkSGVhZGVyRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlLCBmb2xkVmFsdWU6IChwb3NpdGlvbjogbnVtYmVyLCBkZWZhdWx0Rm9sZDogYm9vbGVhbik9PmJvb2xlYW4gPSAocG9zaXRpb24sZGVmYXVsdEZvbGQpPT5kZWZhdWx0Rm9sZCkge1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlUGF0aCA9IHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGggPz8gXCJcIjtcblx0XHRsZXQgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRzeW50YXhUcmVlKHN0YXRlKS5pdGVyYXRlKHtcblx0XHRcdGVudGVyOiAoc3ludGF4Tm9kZSkgPT4ge1xuXHRcdFx0XHRpZiAoc3ludGF4Tm9kZS50eXBlLm5hbWUuaW5jbHVkZXMoXCJIeXBlck1ELWNvZGVibG9jay1iZWdpblwiKSkge1xuXHRcdFx0XHRcdGNvbnN0IHN0YXJ0TGluZSA9IHN0YXRlLmRvYy5saW5lQXQoc3ludGF4Tm9kZS5mcm9tKTtcblx0XHRcdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzKHRyaW1QYXJhbWV0ZXJMaW5lKHN0YXJ0TGluZS50ZXh0LnRvU3RyaW5nKCkpLHNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0aWYgKCFpc0xhbmd1YWdlSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKSAmJiAhaXNDb2RlYmxvY2tJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Usc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCkgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlKSB7XG5cdFx0XHRcdFx0XHRpZiAoIVNQRUNJQUxfTEFOR1VBR0VTLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSlcblx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoc3RhcnRMaW5lLmZyb20sc3RhcnRMaW5lLmZyb20sRGVjb3JhdGlvbi53aWRnZXQoe3dpZGdldDogbmV3IEhlYWRlcldpZGdldChjb2RlYmxvY2tQYXJhbWV0ZXJzLGZvbGRWYWx1ZShzdGFydExpbmUuZnJvbSxjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCksc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLHNvdXJjZVBhdGgscGx1Z2luKSwgYmxvY2s6IHRydWUsIHNpZGU6IC0xfSkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGJ1aWxkTGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlUGF0aCA9IHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGggPz8gXCJcIjtcblx0XHRjb25zdCBzb3VyY2VNb2RlID0gaXNTb3VyY2VNb2RlKHN0YXRlKTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdGNvbnN0IGZvbGRTdGFydCA9IHN0YXRlLmRvYy5saW5lQXQoaXRlci5mcm9tKTtcblx0XHRcdGNvbnN0IHN0YXJ0RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGZvbGRTdGFydC50ZXh0LnRvU3RyaW5nKCkpO1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdGNvbnN0IHNob3dMaW5lTnVtYmVycyA9IChzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQ7XG5cdFx0XHRsZXQgZm9sZEVuZDogTGluZSB8IG51bGwgPSBudWxsO1xuXHRcdFx0bGV0IG1heExpbmVOdW06IG51bWJlciA9IDA7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0bWF4TGluZU51bSA9IGZvbGRFbmQudG8tZm9sZFN0YXJ0LmZyb20tMStjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldDtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgbGluZU51bWJlck1hcmdpbiA9IChtYXhMaW5lTnVtLnRvU3RyaW5nKCkubGVuZ3RoID4gMik/bWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCAqIHN0YXRlLmZpZWxkKGNoYXJXaWR0aFN0YXRlKTp1bmRlZmluZWQ7XG5cdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkU3RhcnQuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe2F0dHJpYnV0ZXM6IHtzdHlsZTogYC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoOiAke2xpbmVOdW1iZXJNYXJnaW4/bGluZU51bWJlck1hcmdpbitcInB4XCI6XCJjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweClcIn07YCwgY2xhc3M6IFwiY29kZS1zdHlsZXItbGluZVwiKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdGlmIChzaG93TGluZU51bWJlcnMpXG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGZvbGRTdGFydC5mcm9tLGZvbGRTdGFydC5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KDAsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHRydWUpfSkpO1xuXHRcdFx0Zm9yIChsZXQgaSA9IGZvbGRTdGFydC5udW1iZXIrMTsgaSA8PSBzdGF0ZS5kb2MubGluZXM7IGkrKykge1xuXHRcdFx0XHRjb25zdCBsaW5lID0gc3RhdGUuZG9jPy5saW5lKGkpO1xuXHRcdFx0XHRpZiAoIWxpbmUpXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0XHRcdGlmICh0ZXN0T3BlbmluZ0xpbmUobGluZVRleHQpID09PSBzdGFydERlbGltaXRlcikge1xuXHRcdFx0XHRcdGZvbGRFbmQgPSBsaW5lO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGxpbmUuZnJvbSxsaW5lLmZyb20sRGVjb3JhdGlvbi5saW5lKHthdHRyaWJ1dGVzOiB7c3R5bGU6IGAtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aDogJHtsaW5lTnVtYmVyTWFyZ2luP2xpbmVOdW1iZXJNYXJnaW4rXCJweFwiOlwiY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpXCJ9O2AsIGNsYXNzOiAoKFNQRUNJQUxfTEFOR1VBR0VTLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSk/XCJjb2RlLXN0eWxlci1saW5lXCI6Z2V0TGluZUNsYXNzKGNvZGVibG9ja1BhcmFtZXRlcnMsaS1mb2xkU3RhcnQubnVtYmVyLGxpbmUudGV4dCkuam9pbihcIiBcIikpKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdFx0aWYgKHNob3dMaW5lTnVtYmVycylcblx0XHRcdFx0XHRidWlsZGVyLmFkZChsaW5lLmZyb20sbGluZS5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KGkgLSBmb2xkU3RhcnQubnVtYmVyLCBjb2RlYmxvY2tQYXJhbWV0ZXJzLCBtYXhMaW5lTnVtKX0pKTtcblx0XHRcdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwibWFya2Rvd25cIilcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0Y29udmVydENvbW1lbnRMaW5rcyhzdGF0ZSwgbGluZSwgc291cmNlUGF0aCwgYnVpbGRlciwgc291cmNlTW9kZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZm9sZEVuZCAhPT0gbnVsbCkge1xuXHRcdFx0XHRidWlsZGVyLmFkZChmb2xkRW5kLmZyb20sZm9sZEVuZC5mcm9tLERlY29yYXRpb24ubGluZSh7YXR0cmlidXRlczoge3N0eWxlOiBgLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGg6ICR7bGluZU51bWJlck1hcmdpbj9saW5lTnVtYmVyTWFyZ2luK1wicHhcIjpcImNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLW1pbi13aWR0aCkgLSAxMnB4KVwifTtgLCBjbGFzczogXCJjb2RlLXN0eWxlci1saW5lXCIrKFtcIl4kXCJdLmNvbmNhdChTUEVDSUFMX0xBTkdVQUdFUykuc29tZShyZWdFeHAgPT4gbmV3IFJlZ0V4cChyZWdFeHApLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpP1wiXCI6YCBsYW5ndWFnZS0ke2NvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCl9fSkpO1xuXHRcdFx0XHRpZiAoc2hvd0xpbmVOdW1iZXJzKVxuXHRcdFx0XHRcdGJ1aWxkZXIuYWRkKGZvbGRFbmQuZnJvbSxmb2xkRW5kLmZyb20sRGVjb3JhdGlvbi53aWRnZXQoe3dpZGdldDogbmV3IExpbmVOdW1iZXJXaWRnZXQoMCxjb2RlYmxvY2tQYXJhbWV0ZXJzLG1heExpbmVOdW0sdHJ1ZSl9KSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGNvbnZlcnRDb21tZW50TGlua3Moc3RhdGU6IEVkaXRvclN0YXRlLCBsaW5lOiBMaW5lLCBzb3VyY2VQYXRoOiBzdHJpbmcsIGJ1aWxkZXI6IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPiwgc291cmNlTW9kZTogYm9vbGVhbikge1xuXHRcdHN5bnRheFRyZWUoc3RhdGUpLml0ZXJhdGUoe1xuXHRcdFx0ZW50ZXI6IChzeW50YXhOb2RlKSA9PiB7XG5cdFx0XHRcdGlmIChzeW50YXhOb2RlLnR5cGUubmFtZS5pbmNsdWRlcyhcImNvbW1lbnRfaG1kLWNvZGVibG9ja1wiKSkge1xuXHRcdFx0XHRcdGNvbnN0IGNvbW1lbnRUZXh0ID0gc3RhdGUuc2xpY2VEb2Moc3ludGF4Tm9kZS5mcm9tLHN5bnRheE5vZGUudG8pO1xuXHRcdFx0XHRcdGNvbnN0IGxpbmtNYXRjaGVzID0gWy4uLmNvbW1lbnRUZXh0Lm1hdGNoQWxsKC8oPzpcXFtcXFtbXlxcXXxcXHJcXG5dKz8oPzpcXHxbXlxcXXxcXHJcXG5dKz8pP1xcXVxcXXxcXFsuKj9cXF1cXCguK1xcKSkvZyldO1xuXHRcdFx0XHRcdGxpbmtNYXRjaGVzLmZvckVhY2goKGxpbmtNYXRjaDogUmVnRXhwTWF0Y2hBcnJheSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBsaW5rTWF0Y2g/LmluZGV4ID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRjb25zdCBmcm9tID0gc3ludGF4Tm9kZS5mcm9tICsgbGlua01hdGNoLmluZGV4O1xuXHRcdFx0XHRcdFx0Y29uc3QgdG8gPSBmcm9tICsgbGlua01hdGNoWzBdLmxlbmd0aDtcblx0XHRcdFx0XHRcdGlmIChzb3VyY2VNb2RlIHx8IHN0YXRlLnNlbGVjdGlvbi5yYW5nZXMuc29tZSgocmFuZ2U6IFNlbGVjdGlvblJhbmdlKT0+cmFuZ2VJbnRlcmFjdGlvbihmcm9tLHRvLHJhbmdlKSkpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbWRCcmVhayA9IGxpbmtNYXRjaFswXS5pbmRleE9mKFwiXShcIik7XG5cdFx0XHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgQWRkIGVkaXRvciB3aWRlIHZpZXdlciB0byBhbGxvdyBjbGlja2luZyBvbiBmaWxlcyB3aXRoIGN1cnNvciBpbnNpZGVcblx0XHRcdFx0XHRcdFx0aWYgKG1kQnJlYWsgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgd2lraWxpbmtTZXBhcmF0b3IgPSBsaW5rTWF0Y2hbMF0uaW5kZXhPZihcInxcIik7XG5cdFx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoZnJvbSsyLHRvLTIsRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogXCJjbS1obWQtaW50ZXJuYWwtbGluayBjb2RlLXN0eWxlci1zb3VyY2UtbGlua1wiLCBhdHRyaWJ1dGVzOiB7ZGVzdGluYXRpb246IGxpbmtNYXRjaFswXS5zbGljZSgyLHdpa2lsaW5rU2VwYXJhdG9yIT09LTE/d2lraWxpbmtTZXBhcmF0b3I6LTIpfX0pKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChmcm9tKzEsZnJvbSttZEJyZWFrLERlY29yYXRpb24ubWFyayh7Y2xhc3M6IFwiY20tbGluayBjb2RlLXN0eWxlci1zb3VyY2UtbGlua1wiLCBhdHRyaWJ1dGVzOiB7ZGVzdGluYXRpb246IGxpbmtNYXRjaFswXS5zbGljZShtZEJyZWFrKzIsLTEpfX0pKTtcblx0XHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChmcm9tK21kQnJlYWsrMix0by0xLERlY29yYXRpb24ubWFyayh7Y2xhc3M6IFwiY20tc3RyaW5nIGNtLXVybFwifSkpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoZnJvbSx0byxEZWNvcmF0aW9uLnJlcGxhY2Uoe3dpZGdldDogbmV3IENvbW1lbnRMaW5rV2lkZ2V0KGxpbmtNYXRjaFswXSwgc291cmNlUGF0aCl9KSk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRmcm9tOiBsaW5lLmZyb20sXG5cdFx0XHR0bzogbGluZS50b1xuXHRcdH0pO1xuXHR9XG5cdGZ1bmN0aW9uIGJ1aWxkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0aWYgKCFzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodClcblx0XHRcdHJldHVybiBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0Y29uc3QgYnVpbGRlciA9IG5ldyBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4oKTtcblx0XHRjb25zdCBzb3VyY2VNb2RlID0gaXNTb3VyY2VNb2RlKHN0YXRlKTtcblx0XHRzeW50YXhUcmVlKHN0YXRlKS5pdGVyYXRlKHtcblx0XHRcdGVudGVyOiAoc3ludGF4Tm9kZSk9Pntcblx0XHRcdFx0Y29uc3QgcmFuZ2VzID0gZ2V0SW5saW5lQ29kZVJhbmdlcyhzdGF0ZSxzeW50YXhOb2RlKTtcblx0XHRcdFx0aWYgKHJhbmdlcyA9PT0gbnVsbClcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdGNvbnN0IHtwYXJhbWV0ZXJzLHRleHQsc2VjdGlvbn0gPSByYW5nZXM7XG5cdFx0XHRcdGlmIChwYXJhbWV0ZXJzLnZhbHVlID09PSBudWxsKVxuXHRcdFx0XHRcdGFkZFVuc3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUsYnVpbGRlcixwYXJhbWV0ZXJzIGFzIHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBudWxsfSx0ZXh0LHNlY3Rpb24sc291cmNlTW9kZSk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRhZGRTdHlsZWRJbmxpbmVEZWNvcmF0aW9ucyhzdGF0ZSxidWlsZGVyLHBhcmFtZXRlcnMgYXMge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IElubGluZUNvZGVQYXJhbWV0ZXJzfSx0ZXh0LHNlY3Rpb24sc291cmNlTW9kZSk7XG5cdFx0XHR9LFxuXHRcdH0pO1xuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGFkZFN0eWxlZElubGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSwgYnVpbGRlcjogUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+LCBwYXJhbWV0ZXJzOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogSW5saW5lQ29kZVBhcmFtZXRlcnN9LCB0ZXh0OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogc3RyaW5nfSwgc2VjdGlvbjoge2Zyb206IG51bWJlciwgdG86IG51bWJlcn0sIHNvdXJjZU1vZGU6IGJvb2xlYW4pIHtcblx0XHRpZiAoc291cmNlTW9kZSB8fCBzdGF0ZS5zZWxlY3Rpb24ucmFuZ2VzLnNvbWUoKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9PnJhbmdlSW50ZXJhY3Rpb24oc2VjdGlvbi5mcm9tLHNlY3Rpb24udG8scmFuZ2UpKSlcblx0XHRcdGJ1aWxkZXIuYWRkKHBhcmFtZXRlcnMuZnJvbSwgcGFyYW1ldGVycy50bywgRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogXCJjb2RlLXN0eWxlci1pbmxpbmUtcGFyYW1ldGVyc1wifSkpO1xuXHRcdGVsc2Uge1xuXHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLnRvLCBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pKTtcblx0XHRcdGlmIChwYXJhbWV0ZXJzLnZhbHVlPy50aXRsZSB8fCAocGFyYW1ldGVycy52YWx1ZT8uaWNvbiAmJiBnZXRMYW5ndWFnZUljb24ocGFyYW1ldGVycy52YWx1ZS5sYW5ndWFnZSxwbHVnaW4ubGFuZ3VhZ2VJY29ucykpKVxuXHRcdFx0XHRidWlsZGVyLmFkZChwYXJhbWV0ZXJzLmZyb20sIHBhcmFtZXRlcnMuZnJvbSwgRGVjb3JhdGlvbi5yZXBsYWNlKHt3aWRnZXQ6IG5ldyBPcGVuZXJXaWRnZXQocGFyYW1ldGVycy52YWx1ZSxwbHVnaW4pfSkpO1xuXHRcdH1cblx0XHRtb2RlSGlnaGxpZ2h0KHtzdGFydDogcGFyYW1ldGVycy50bywgdGV4dDogdGV4dC52YWx1ZSwgbGFuZ3VhZ2U6IHBhcmFtZXRlcnMudmFsdWUubGFuZ3VhZ2V9LGJ1aWxkZXIpO1xuXHR9XG5cblx0ZnVuY3Rpb24gY29udmVydFJlYWRkRm9sZCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sIHJlYWRkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0Y29uc3QgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0Zm9yIChsZXQgaXRlciA9ICh0cmFuc2FjdGlvbi5zdGF0ZS5maWVsZChoZWFkZXJEZWNvcmF0aW9ucyxmYWxzZSkgPz8gRGVjb3JhdGlvbi5ub25lKS5pdGVyKCk7IGl0ZXIudmFsdWUgIT09IG51bGw7IGl0ZXIubmV4dCgpKSB7IC8vVE9ETyAoQG1heXVyYW5rdikgUmVmYWN0b3I6IFRyeSBhbmQgbWFrZSB0aGlzIHN0YXJ0U3RhdGVcblx0XHRcdGlmICghaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCB8fCAhcmVhZGRMYW5ndWFnZXMuaW5jbHVkZXMoaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSlcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHRyYW5zYWN0aW9uLnN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKGZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLHRvOiBmb2xkRW5kLnRvLHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiAoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfX19KSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFkZEVmZmVjdHM7XG5cdH1cblx0ZnVuY3Rpb24gaXNGb2xkZWQoc3RhdGU6IEVkaXRvclN0YXRlLCBwb3NpdGlvbjogbnVtYmVyKTogYm9vbGVhbiB7XG5cdFx0bGV0IGZvbGRlZCA9IGZhbHNlO1xuXHRcdHN0YXRlLmZpZWxkKGZvbGREZWNvcmF0aW9ucyxmYWxzZSk/LmJldHdlZW4ocG9zaXRpb24scG9zaXRpb24sKCk9Pntcblx0XHRcdGZvbGRlZCA9IHRydWU7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGZvbGRlZDtcblx0fVxuXHRmdW5jdGlvbiBkb2N1bWVudEZvbGQoc3RhdGU6IEVkaXRvclN0YXRlLCB0b0ZvbGQ/OiBib29sZWFuKTogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+IHtcblx0XHRjb25zdCBhZGRFZmZlY3RzOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4gPSBbXTtcblx0XHRjb25zdCByZXNldCA9ICh0eXBlb2YgdG9Gb2xkID09PSBcInVuZGVmaW5lZFwiKTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdGlmIChpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmhpZGRlbilcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRjb25zdCBmb2xkZWQgPSBpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmZvbGRlZDtcblx0XHRcdGNvbnN0IGRlZmF1bHRGb2xkID0gaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZDtcblx0XHRcdGNvZGVibG9ja0ZvbGRDYWxsYmFjayhpdGVyLmZyb20sc3RhdGUsKGZvbGRTdGFydCxmb2xkRW5kKT0+e1xuXHRcdFx0XHRpZiAoKCFyZXNldCAmJiB0b0ZvbGQgJiYgIWZvbGRlZCkgfHwgKHJlc2V0ICYmICFmb2xkZWQgJiYgZGVmYXVsdEZvbGQpKVxuXHRcdFx0XHRcdGFkZEVmZmVjdHMucHVzaChmb2xkLm9mKHtmcm9tOiBmb2xkU3RhcnQuZnJvbSwgdG86IGZvbGRFbmQudG8sIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiAoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfX19KSk7XG5cdFx0XHRcdGVsc2UgaWYgKCghcmVzZXQgJiYgIXRvRm9sZCAmJiBmb2xkZWQpIHx8IChyZXNldCAmJiBmb2xkZWQgJiYgIWRlZmF1bHRGb2xkKSlcblx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2godW5mb2xkLm9mKHtmcm9tOiBmb2xkU3RhcnQuZnJvbSwgdG86IGZvbGRFbmQudG99KSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFkZEVmZmVjdHM7XG5cdH1cblxuXHRyZXR1cm4gW1xuXHRcdGludGVyYWN0aW9uLFxuXHRcdGlnbm9yZUxpc3RlbmVyLGlnbm9yZUZpbGVMaXN0ZW5lcixcblx0XHRjdXJzb3JGb2xkRXh0ZW5kZXIoKSxkb2N1bWVudEZvbGRFeHRlbmRlcigpLHNldHRpbmdzQ2hhbmdlRXh0ZW5kZXIoKSxcblx0XHRzZXR0aW5nc1N0YXRlLGNoYXJXaWR0aFN0YXRlLGxpdmVQcmV2aWV3Q29tcGFydG1lbnQub2YoW10pLGlnbm9yZUNvbXBhcnRtZW50Lm9mKFtdKSxcblx0XTtcbn1cblxuY29uc3QgZm9sZDogU3RhdGVFZmZlY3RUeXBlPHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBzdHJpbmd9fX0+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCB1bmZvbGQ6IFN0YXRlRWZmZWN0VHlwZTx7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfT4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IGhpZGVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8UmFuZ2U8RGVjb3JhdGlvbj4+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCB1bmhpZGVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8UmFuZ2U8RGVjb3JhdGlvbj4+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCByZW1vdmVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8QXJyYXk8c3RyaW5nPj4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IGZvbGRBbGw6IFN0YXRlRWZmZWN0VHlwZTx7dG9Gb2xkPzogYm9vbGVhbn0+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5cbmZ1bmN0aW9uIGNvZGVibG9ja0ZvbGRDYWxsYmFjayhzdGFydFBvc2l0aW9uOiBudW1iZXIsIHN0YXRlOiBFZGl0b3JTdGF0ZSwgZm9sZENhbGxiYWNrOiAoZm9sZFN0YXJ0OiBMaW5lLCBmb2xkRW5kOiBMaW5lKT0+dm9pZCkge1xuXHRjb25zdCBmb2xkU3RhcnQgPSBzdGF0ZS5kb2MubGluZUF0KHN0YXJ0UG9zaXRpb24pO1xuXHRjb25zdCBzdGFydERlbGltaXRlciA9IHRlc3RPcGVuaW5nTGluZShmb2xkU3RhcnQudGV4dC50b1N0cmluZygpKTtcblx0bGV0IGZvbGRFbmQ6IExpbmUgfCBudWxsID0gbnVsbDtcblx0Zm9yIChsZXQgaSA9IGZvbGRTdGFydC5udW1iZXIrMTsgaSA8PSBzdGF0ZS5kb2MubGluZXM7IGkrKykge1xuXHRcdGNvbnN0IGxpbmUgPSBzdGF0ZS5kb2MubGluZShpKTtcblx0XHRjb25zdCBsaW5lVGV4dCA9IGxpbmUudGV4dC50b1N0cmluZygpO1xuXHRcdGlmICh0ZXN0T3BlbmluZ0xpbmUobGluZVRleHQpID09PSBzdGFydERlbGltaXRlcikge1xuXHRcdFx0Zm9sZEVuZCA9IGxpbmU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0aWYgKGZvbGRFbmQgIT09IG51bGwpXG5cdFx0Zm9sZENhbGxiYWNrKGZvbGRTdGFydCxmb2xkRW5kKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5saW5lQ29kZVJhbmdlcyhzdGF0ZTogRWRpdG9yU3RhdGUsIHN5bnRheE5vZGU6IFN5bnRheE5vZGVSZWYpOiB7cGFyYW1ldGVyczoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IElubGluZUNvZGVQYXJhbWV0ZXJzIHwgbnVsbH0sIHRleHQ6IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBzdHJpbmd9LCBzZWN0aW9uOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfX0gfCBudWxsIHtcblx0Y29uc3QgZGVsaW1pdGVyU2l6ZSA9IGdldElubGluZURlbGltaXRlclNpemUoc3ludGF4Tm9kZSk7XG5cdGlmIChkZWxpbWl0ZXJTaXplID09PSBudWxsKVxuXHRcdHJldHVybiBudWxsO1xuXHRjb25zdCBpbmxpbmVDb2RlVGV4dCA9IHN0YXRlLmRvYy5zbGljZVN0cmluZyhzeW50YXhOb2RlLmZyb20sIHN5bnRheE5vZGUudG8pO1xuXHRjb25zdCB7cGFyYW1ldGVycyx0ZXh0fSA9IHBhcnNlSW5saW5lQ29kZShpbmxpbmVDb2RlVGV4dCk7XG5cdGNvbnN0IHBhcmFtZXRlcnNMZW5ndGggPSBpbmxpbmVDb2RlVGV4dC5sYXN0SW5kZXhPZih0ZXh0KTtcblx0cmV0dXJuIHtwYXJhbWV0ZXJzOiB7ZnJvbTogc3ludGF4Tm9kZS5mcm9tLCB0bzogc3ludGF4Tm9kZS5mcm9tK3BhcmFtZXRlcnNMZW5ndGgsIHZhbHVlOiBwYXJhbWV0ZXJzfSwgdGV4dDoge2Zyb206IHN5bnRheE5vZGUuZnJvbStwYXJhbWV0ZXJzTGVuZ3RoKzEsdG86IHN5bnRheE5vZGUudG8gLHZhbHVlOiB0ZXh0fSwgc2VjdGlvbjoge2Zyb206IHN5bnRheE5vZGUuZnJvbS1kZWxpbWl0ZXJTaXplLCB0bzogc3ludGF4Tm9kZS50bytkZWxpbWl0ZXJTaXplfX07XG59XG5mdW5jdGlvbiBnZXRJbmxpbmVEZWxpbWl0ZXJTaXplKHN5bnRheE5vZGU6IFN5bnRheE5vZGVSZWYpOiBudW1iZXIgfCBudWxsIHtcblx0Y29uc3QgcHJvcGVydGllcyA9IG5ldyBTZXQoc3ludGF4Tm9kZS5ub2RlLnR5cGUucHJvcDxzdHJpbmc+KHRva2VuQ2xhc3NOb2RlUHJvcCk/LnNwbGl0KFwiIFwiKSk7XG5cdGlmICghKHByb3BlcnRpZXMuaGFzKFwiaW5saW5lLWNvZGVcIikgJiYgIXByb3BlcnRpZXMuaGFzKFwiZm9ybWF0dGluZ1wiKSkpXG5cdFx0cmV0dXJuIG51bGw7XG5cdGNvbnN0IHByZXZpb3VzU2libGluZyA9IHN5bnRheE5vZGUubm9kZS5wcmV2U2libGluZztcblx0aWYgKCFwcmV2aW91c1NpYmxpbmcpXG5cdFx0cmV0dXJuIG51bGw7XG5cdHJldHVybiBwcmV2aW91c1NpYmxpbmcudG8tcHJldmlvdXNTaWJsaW5nLmZyb207XG59XG5mdW5jdGlvbiBhZGRVbnN0eWxlZElubGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSwgYnVpbGRlcjogUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+LCBwYXJhbWV0ZXJzOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogbnVsbH0sIHRleHQ6IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBzdHJpbmd9LCBzZWN0aW9uOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfSwgc291cmNlTW9kZTogYm9vbGVhbikge1xuXHRpZiAodGV4dC52YWx1ZSkge1xuXHRcdGlmICghc3RhdGUuc2VsZWN0aW9uLnJhbmdlcy5zb21lKChyYW5nZTogU2VsZWN0aW9uUmFuZ2UpPT5yYW5nZS50byA+PSBzZWN0aW9uLmZyb20gJiYgcmFuZ2UuZnJvbSA8PSBzZWN0aW9uLnRvKSAmJiAhc291cmNlTW9kZSlcblx0XHRcdGJ1aWxkZXIuYWRkKHBhcmFtZXRlcnMuZnJvbSwgcGFyYW1ldGVycy50bywgRGVjb3JhdGlvbi5yZXBsYWNlKHt9KSk7XG5cdH1cbn1cbmZ1bmN0aW9uIG1vZGVIaWdobGlnaHQoe3N0YXJ0LHRleHQsbGFuZ3VhZ2V9OiB7c3RhcnQ6IG51bWJlciwgdGV4dDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nfSwgYnVpbGRlcjogUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KSB7XG5cdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdGNvbnN0IG1vZGUgPSB3aW5kb3cuQ29kZU1pcnJvci5nZXRNb2RlKHdpbmRvdy5Db2RlTWlycm9yLmRlZmF1bHRzLHdpbmRvdy5Db2RlTWlycm9yLmZpbmRNb2RlQnlOYW1lKGxhbmd1YWdlKT8ubWltZSk7XG5cdGNvbnN0IHN0YXRlID0gd2luZG93LkNvZGVNaXJyb3Iuc3RhcnRTdGF0ZShtb2RlKTtcblx0aWYgKG1vZGU/LnRva2VuKSB7XG5cdFx0Y29uc3Qgc3RyZWFtID0gbmV3IHdpbmRvdy5Db2RlTWlycm9yLlN0cmluZ1N0cmVhbSh0ZXh0KTtcblx0XHR3aGlsZSAoIXN0cmVhbS5lb2woKSkge1xuXHRcdFx0Y29uc3Qgc3R5bGUgPSBtb2RlLnRva2VuKHN0cmVhbSxzdGF0ZSk7XG5cdFx0XHRpZiAoc3R5bGUpXG5cdFx0XHRcdGJ1aWxkZXIuYWRkKHN0YXJ0K3N0cmVhbS5zdGFydCwgc3RhcnQrc3RyZWFtLnBvcywgRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogYGNtLSR7c3R5bGV9YH0pKTtcblx0XHRcdHN0cmVhbS5zdGFydCA9IHN0cmVhbS5wb3M7XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBhZGRSZWZlcmVuY2VTeW50YXhIaWdobGlnaHQoKSB7XG5cdHdpbmRvdy5Db2RlTWlycm9yLmRlZmluZU1vZGUoXCJyZWZlcmVuY2VcIiwgZnVuY3Rpb24gKGNvbmZpZywgcGFyc2VyQ29uZmlnKSB7XG5cdFx0Y29uc3Qga2V5UGF0dGVybiA9IC9eKFthLXpBLVowLTlfLV0rKVxccyooPz06KS87XG5cdFx0Y29uc3QgdmFsdWVQYXR0ZXJuID0gL14oOj8oXFxzKig/OlwiKD86XFxcXC58W15cIl0pKlwifFxcUyspKT8pLztcblx0XHRyZXR1cm4ge1xuXHRcdFx0c3RhcnRTdGF0ZTogKCkgPT4geyByZXR1cm4geyBpbkJsb2NrOiBmYWxzZSwgaW5kZW50OiAwIH07IH0sXG5cdFx0XHRpbmRlbnQ6IChzdGF0ZSwgdGV4dEFmdGVyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGluZGVudFVuaXQgPSBjb25maWcuaW5kZW50VW5pdDtcblx0XHRcdFx0Y29uc3QgaW5kZW50ID0gc3RhdGUuaW5kZW50IHx8IDA7XG5cdFx0XHRcdGlmICh0ZXh0QWZ0ZXIgJiYgdGV4dEFmdGVyLmNoYXJBdCgwKSA9PT0gXCItXCIpIHJldHVybiBpbmRlbnQgKyBpbmRlbnRVbml0O1xuXHRcdFx0XHRlbHNlIHJldHVybiBpbmRlbnQ7XG5cdFx0XHR9LFxuXHRcdFx0dG9rZW46IChzdHJlYW0sIHN0YXRlKSA9PiB7XG5cdFx0XHRcdGlmIChzdHJlYW0uZWF0U3BhY2UoKSkgcmV0dXJuIG51bGw7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL14jLiovKSkgcmV0dXJuIFwiY29tbWVudFwiO1xuXHRcdFx0XHRpZiAoc3RyZWFtLm1hdGNoKC9eaHR0cHM/OlxcL1xcLy4qLykpIHJldHVybiBcInZhcmlhYmxlXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL1xcW1xcWy4rXFxdXFxdLykpIHJldHVybiBcInZhcmlhYmxlXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goa2V5UGF0dGVybikpIHJldHVybiBcInN0cmluZ1wiO1xuXHRcdFx0XHRpZiAoc3RyZWFtLm1hdGNoKC86LykpIHJldHVybiBcIm1ldGFcIjtcblx0XHRcdFx0Y29uc3QgdmFsdWVNYXRjaCA9IHN0cmVhbS5tYXRjaCh2YWx1ZVBhdHRlcm4pO1xuXHRcdFx0XHRpZiAodmFsdWVNYXRjaCkge1xuXHRcdFx0XHRcdGlmICh2YWx1ZU1hdGNoWzJdLm1hdGNoKC8oXCI/KVxcLy4qXFwvXFwxLykpIHJldHVybiBcIm9wZXJhdG9yXCI7XG5cdFx0XHRcdFx0aWYgKHZhbHVlTWF0Y2hbMl0uc3RhcnRzV2l0aChcIlxcXCJcIikpIHtcblx0XHRcdFx0XHRcdHN0cmVhbS5za2lwVG9FbmQoKTsgLy8gQ29uc3VtZSB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nXG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJwcm9wZXJ0eVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoL15cXGQrKFxcLlxcZCspP1xcYi8udGVzdCh2YWx1ZU1hdGNoWzJdKSkgcmV0dXJuIFwibnVtYmVyXCI7XG5cdFx0XHRcdFx0ZWxzZSBpZiAoL14odHJ1ZXxmYWxzZXxudWxsKVxcYi8udGVzdCh2YWx1ZU1hdGNoWzJdKSkgcmV0dXJuIFwiYXRvbVwiO1xuXHRcdFx0XHRcdGVsc2UgcmV0dXJuIG51bGw7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoc3RyZWFtLnNvbCgpKSB7XG5cdFx0XHRcdFx0Y29uc3QgaW5kZW50ID0gc3RyZWFtLmluZGVudGF0aW9uKCk7XG5cdFx0XHRcdFx0aWYgKGluZGVudCA+IHN0YXRlLmluZGVudCkge1xuXHRcdFx0XHRcdFx0c3RhdGUuaW5kZW50ID0gaW5kZW50O1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiaW5kZW50XCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChpbmRlbnQgPCBzdGF0ZS5pbmRlbnQpIHtcblx0XHRcdFx0XHRcdHN0YXRlLmluZGVudCA9IGluZGVudDtcblx0XHRcdFx0XHRcdHJldHVybiBcImRlZGVudFwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHN0cmVhbS5uZXh0KCk7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXHRcdH07XG5cdH0pO1xuXHR3aW5kb3cuQ29kZU1pcnJvci5kZWZpbmVNSU1FKFwidGV4dC9yZWZlcmVuY2VcIiwgXCJyZWZlcmVuY2VcIik7XG59XG5mdW5jdGlvbiBhZGRZYW1sRnJvbnRtYXR0ZXJTeW50YXhIaWdobGlnaHRpbmcoKSB7XG5cdGNvbnN0IFNUQVJUID0gMCwgRlJPTlRNQVRURVIgPSAxLCBCT0RZID0gMjtcblx0d2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShcInlhbWwtZnJvbnRtYXR0ZXJcIiwgZnVuY3Rpb24oY29uZmlnLCBwYXJzZXJDb25maWcpIHtcblx0XHRjb25zdCB5YW1sTW9kZSA9IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCBcInlhbWxcIik7XG5cdFx0Y29uc3QgaW5uZXJNb2RlID0gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIHBhcnNlckNvbmZpZyAmJiBwYXJzZXJDb25maWcuYmFzZSB8fCBcImdmbVwiKTtcblxuXHRcdGZ1bmN0aW9uIGN1ck1vZGUoc3RhdGUpIHtcblx0XHRcdHJldHVybiBzdGF0ZS5zdGF0ZSA9PSBCT0RZID8gaW5uZXJNb2RlIDogeWFtbE1vZGU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHN0YXJ0U3RhdGU6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRzdGF0ZTogU1RBUlQsXG5cdFx0XHRcdFx0aW5uZXI6IHdpbmRvdy5Db2RlTWlycm9yLnN0YXJ0U3RhdGUoeWFtbE1vZGUpXG5cdFx0XHRcdH07XG5cdFx0XHR9LFxuXHRcdFx0Y29weVN0YXRlOiBmdW5jdGlvbiAoc3RhdGUpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRzdGF0ZTogc3RhdGUuc3RhdGUsXG5cdFx0XHRcdFx0aW5uZXI6IHdpbmRvdy5Db2RlTWlycm9yLmNvcHlTdGF0ZShjdXJNb2RlKHN0YXRlKSwgc3RhdGUuaW5uZXIpXG5cdFx0XHRcdH07XG5cdFx0XHR9LFxuXHRcdFx0dG9rZW46IGZ1bmN0aW9uIChzdHJlYW0sIHN0YXRlKSB7XG5cdFx0XHRcdGlmIChzdGF0ZS5zdGF0ZSA9PSBTVEFSVCkge1xuXHRcdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goLy0tLS8sIGZhbHNlKSkge1xuXHRcdFx0XHRcdFx0c3RhdGUuc3RhdGUgPSBGUk9OVE1BVFRFUjtcblx0XHRcdFx0XHRcdHJldHVybiB5YW1sTW9kZS50b2tlbihzdHJlYW0sIHN0YXRlLmlubmVyKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0c3RhdGUuc3RhdGUgPSBCT0RZO1xuXHRcdFx0XHRcdFx0c3RhdGUuaW5uZXIgPSB3aW5kb3cuQ29kZU1pcnJvci5zdGFydFN0YXRlKGlubmVyTW9kZSk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gaW5uZXJNb2RlLnRva2VuKHN0cmVhbSwgc3RhdGUuaW5uZXIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChzdGF0ZS5zdGF0ZSA9PSBGUk9OVE1BVFRFUikge1xuXHRcdFx0XHRcdGNvbnN0IGVuZCA9IHN0cmVhbS5zb2woKSAmJiBzdHJlYW0ubWF0Y2goLygtLS18XFwuXFwuXFwuKS8sIGZhbHNlKTtcblx0XHRcdFx0XHRjb25zdCBzdHlsZSA9IHlhbWxNb2RlLnRva2VuKHN0cmVhbSwgc3RhdGUuaW5uZXIpO1xuXHRcdFx0XHRcdGlmIChlbmQpIHtcblx0XHRcdFx0XHRcdHN0YXRlLnN0YXRlID0gQk9EWTtcblx0XHRcdFx0XHRcdHN0YXRlLmlubmVyID0gd2luZG93LkNvZGVNaXJyb3Iuc3RhcnRTdGF0ZShpbm5lck1vZGUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gc3R5bGU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGlubmVyTW9kZS50b2tlbihzdHJlYW0sIHN0YXRlLmlubmVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGlubmVyTW9kZTogZnVuY3Rpb24gKHN0YXRlKSB7XG5cdFx0XHRcdHJldHVybiB7bW9kZTogY3VyTW9kZShzdGF0ZSksIHN0YXRlOiBzdGF0ZS5pbm5lcn07XG5cdFx0XHR9LFxuXHRcdFx0YmxhbmtMaW5lOiBmdW5jdGlvbiAoc3RhdGUpIHtcblx0XHRcdFx0Y29uc3QgbW9kZSA9IGN1ck1vZGUoc3RhdGUpO1xuXHRcdFx0XHRpZiAobW9kZS5ibGFua0xpbmUpIHJldHVybiBtb2RlLmJsYW5rTGluZShzdGF0ZS5pbm5lcik7XG5cdFx0XHR9XG5cdFx0fTtcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0aW5nRG9jdW1lbnRGb2xkKHZpZXc6IEVkaXRvclZpZXcsIHRvRm9sZD86IGJvb2xlYW4pIHtcblx0dmlldy5kaXNwYXRjaCh7ZWZmZWN0czogZm9sZEFsbC5vZigodHlwZW9mIHRvRm9sZCAhPT0gXCJ1bmRlZmluZWRcIik/e3RvRm9sZDogdG9Gb2xkfTp7fSl9KTtcblx0dmlldy5yZXF1ZXN0TWVhc3VyZSgpO1xufVxuZnVuY3Rpb24gZm9sZE9uQ2xpY2sodmlldzogRWRpdG9yVmlldywgdGFyZ2V0OiBIVE1MRWxlbWVudCwgZm9sZGVkOiBib29sZWFuLCBsYW5ndWFnZTogc3RyaW5nKSB7XG5cdGNvZGVibG9ja0ZvbGRDYWxsYmFjayh2aWV3LnBvc0F0RE9NKHRhcmdldCksdmlldy5zdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0dmlldy5kaXNwYXRjaCh7ZWZmZWN0czogZm9sZExpbmVzKCFmb2xkZWQse2Zyb206IGZvbGRTdGFydC5mcm9tLCB0bzogZm9sZEVuZC50bywgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IGxhbmd1YWdlfX19KX0pO1xuXHRcdHZpZXcucmVxdWVzdE1lYXN1cmUoKTtcblx0fSk7XG59XG5mdW5jdGlvbiBmb2xkTGluZXModG9Gb2xkOiBib29sZWFuLCBmb2xkSW5mbzoge2Zyb206IG51bWJlciwgdG86IG51bWJlcix2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogc3RyaW5nfX19KTogU3RhdGVFZmZlY3Q8dW5rbm93bj4ge1xuXHRyZXR1cm4gdG9Gb2xkP2ZvbGQub2YoZm9sZEluZm8pOnVuZm9sZC5vZih7ZnJvbTogZm9sZEluZm8uZnJvbSwgdG86IGZvbGRJbmZvLnRvfSk7XG59XG5mdW5jdGlvbiBmb2xkUmVnaW9uKHtmcm9tOiBmb2xkRnJvbSwgdG86IGZvbGRUbywgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2V9fX06IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IHN0cmluZ319fSk6IFJhbmdlPERlY29yYXRpb24+IHtcblx0cmV0dXJuIGZvbGREZWNvcmF0aW9uKGxhbmd1YWdlKS5yYW5nZShmb2xkRnJvbSxmb2xkVG8pO1xufVxuZnVuY3Rpb24gdW5mb2xkUmVnaW9uKHtmcm9tOiBmb2xkRnJvbSwgdG86IGZvbGRUb306IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9KSB7XG5cdHJldHVybiB7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKSA9PiAodG8gPD0gZm9sZEZyb20gfHwgZnJvbSA+PSBmb2xkVG8pLCBmaWx0ZXJGcm9tOiBmb2xkRnJvbSwgZmlsdGVyVG86IGZvbGRUb307XG59XG5mdW5jdGlvbiByZW1vdmVGb2xkTGFuZ3VhZ2VzKGxhbmd1YWdlczogQXJyYXk8c3RyaW5nPikge1xuXHRyZXR1cm4ge2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IERlY29yYXRpb24pID0+ICFsYW5ndWFnZXMuaW5jbHVkZXModmFsdWU/LnNwZWM/Lmxhbmd1YWdlKX07XG59XG5mdW5jdGlvbiB1bmhpZGVGb2xkVXBkYXRlKHJhbmdlOiBSYW5nZTxEZWNvcmF0aW9uPikge1xuXHRyZXR1cm4ge2ZpbHRlckZyb206IHJhbmdlLmZyb20sIGZpbHRlclRvOiByYW5nZS50bywgZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKT0+IShmcm9tID09PSByYW5nZS5mcm9tICYmIHRvID09PSByYW5nZS50byl9O1xufVxuZnVuY3Rpb24gZm9sZERlY29yYXRpb24obGFuZ3VhZ2U6IHN0cmluZyk6IERlY29yYXRpb24ge1xuXHRyZXR1cm4gRGVjb3JhdGlvbi5yZXBsYWNlKHtibG9jazogdHJ1ZSwgbGFuZ3VhZ2U6IGxhbmd1YWdlfSk7XG59XG5mdW5jdGlvbiByYW5nZUludGVyYWN0aW9uKGZyb206IG51bWJlciwgdG86IG51bWJlciwgcmFuZ2U6IFNlbGVjdGlvblJhbmdlKTogYm9vbGVhbiB7XG5cdHJldHVybiAoZnJvbSA8PSByYW5nZS5oZWFkICYmIHJhbmdlLmhlYWQgPD0gdG8pIHx8IChmcm9tIDw9IHJhbmdlLmFuY2hvciAmJiByYW5nZS5hbmNob3IgPD0gdG8pO1xufVxuXG5mdW5jdGlvbiBpc0ZpbGVJZ25vcmVkKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuXHRjb25zdCBmaWxlUGF0aCA9IHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGg7XG5cdGlmICh0eXBlb2YgZmlsZVBhdGggIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0cmV0dXJuIHRoaXMuYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUoZmlsZVBhdGgpPy5mcm9udG1hdHRlcj8uW1wiY29kZS1zdHlsZXItaWdub3JlXCJdPy50b1N0cmluZygpID09PSBcInRydWVcIjtcblx0cmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNTb3VyY2VNb2RlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gIXN0YXRlLmZpZWxkKGVkaXRvckxpdmVQcmV2aWV3RmllbGQpO1xufVxuZnVuY3Rpb24gc2V0RGlmZmVyZW5jZShhcnJheTE6IEFycmF5PHVua25vd24+LCBhcnJheTI6IEFycmF5PHVua25vd24+KSB7XG5cdHJldHVybiBhcnJheTEuZmlsdGVyKGVsZW1lbnQgPT4gIWFycmF5Mi5pbmNsdWRlcyhlbGVtZW50KSk7XG59XG4iLCAiaW1wb3J0IHsgTWFya2Rvd25QcmV2aWV3UmVuZGVyZXIsIFBsdWdpbiwgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcbmltcG9ydCB7IENvZGVTdHlsZXJUaGVtZSwgRVhFQ1VURV9DT0RFX1NVUFBPUlRFRF9MQU5HVUFHRVMgfSBmcm9tIFwiLi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVCbG9ja0FyZ3MsIGdldEFyZ3MgfSBmcm9tIFwiLi4vRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJnc1wiO1xuaW1wb3J0IHsgZ2V0UmVmZXJlbmNlIH0gZnJvbSBcInNyYy9SZWZlcmVuY2luZ1wiO1xuaW1wb3J0IHsgRXh0ZXJuYWxSZWZlcmVuY2VJbmZvIH0gZnJvbSBcIi4vUmVmZXJlbmNlUGFyc2luZ1wiO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVibG9ja1BhcmFtZXRlcnMge1xuXHRsYW5ndWFnZTogc3RyaW5nO1xuXHR0aXRsZTogc3RyaW5nO1xuXHRyZWZlcmVuY2U6IHN0cmluZztcblx0Zm9sZDoge1xuXHRcdGVuYWJsZWQ6IGJvb2xlYW47XG5cdFx0cGxhY2Vob2xkZXI6IHN0cmluZztcblx0fVxuXHRsaW5lTnVtYmVyczoge1xuXHRcdGFsd2F5c0VuYWJsZWQ6IGJvb2xlYW47XG5cdFx0YWx3YXlzRGlzYWJsZWQ6IGJvb2xlYW47XG5cdFx0b2Zmc2V0OiBudW1iZXI7XG5cdH0sXG5cdGxpbmVVbndyYXA6IHtcblx0XHRhbHdheXNFbmFibGVkOiBib29sZWFuO1xuXHRcdGFsd2F5c0Rpc2FibGVkOiBib29sZWFuO1xuXHRcdGFjdGl2ZVdyYXA6IGJvb2xlYW47XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRkZWZhdWx0OiBIaWdobGlnaHRzO1xuXHRcdGFsdGVybmF0aXZlOiBSZWNvcmQ8c3RyaW5nLEhpZ2hsaWdodHM+XG5cdH0sXG5cdGlnbm9yZTogYm9vbGVhbjtcblx0ZXh0ZXJuYWxSZWZlcmVuY2U/OiBFeHRlcm5hbFJlZmVyZW5jZUluZm87XG59XG5leHBvcnQgaW50ZXJmYWNlIEhpZ2hsaWdodHMge1xuXHRsaW5lTnVtYmVyczogQXJyYXk8bnVtYmVyPjtcblx0cGxhaW5UZXh0OiBBcnJheTxzdHJpbmc+O1xuXHRyZWd1bGFyRXhwcmVzc2lvbnM6IEFycmF5PFJlZ0V4cD47XG59XG5pbnRlcmZhY2UgRXh0ZXJuYWxQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuXHRzdXBwb3J0ZWRMYW5ndWFnZXM/OiBBcnJheTxzdHJpbmc+O1xuXHRjb2RlPzogKHNvdXJjZTogc3RyaW5nLCBzb3VyY2VQYXRoPzogc3RyaW5nKT0+UHJvbWlzZTx7XG5cdFx0c3RhcnQ6IG51bWJlcjtcblx0XHRjb2RlOiBzdHJpbmc7XG5cdFx0bGFuZ3VhZ2U6IHN0cmluZztcblx0XHRoaWdobGlnaHQ6IHN0cmluZztcblx0XHRsaW5lczogQXJyYXk8c3RyaW5nPjtcblx0XHRmaWxlUGF0aDogc3RyaW5nO1xuXHRcdGxpbmVudW1iZXI6IG51bWJlcjtcblx0fT47XG5cdGFuYWx5emVIaWdoTGlnaHRMaW5lcz86IChsaW5lczogc3RyaW5nW10sIHNvdXJjZTogc3RyaW5nIHwgc3RyaW5nW10pPT5NYXA8bnVtYmVyLGJvb2xlYW4+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2tTb3VyY2UoY29kZVNlY3Rpb246IEFycmF5PHN0cmluZz4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8e2NvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiwgbmVzdGVkOiBib29sZWFufT4ge1xuXHQvLyBAdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4gPSBwbHVnaW4uYXBwLnBsdWdpbnMucGx1Z2lucztcblx0Y29uc3QgYWRtb25pdGlvbnM6IGJvb2xlYW4gPSAoXCJvYnNpZGlhbi1hZG1vbml0aW9uXCIgaW4gcGx1Z2lucyk7XG5cdGNvbnN0IGNvZGVibG9ja3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG5cdGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbjogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuXHRcdGlmIChjb2RlU2VjdGlvbi5sZW5ndGggPT09IDApXG5cdFx0XHRyZXR1cm47XG5cblx0XHRjb25zdCBvcGVuaW5nQ29kZWJsb2NrTGluZSA9IGdldE9wZW5pbmdMaW5lKGNvZGVTZWN0aW9uKTtcblx0XHRpZiAoIW9wZW5pbmdDb2RlYmxvY2tMaW5lKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlciA9IC9eXFxzKig/Oj5cXHMqKSooKD86YGBgK3x+fn4rKSkuKiQvLmV4ZWMob3BlbmluZ0NvZGVibG9ja0xpbmUpPy5bMV07XG5cdFx0aWYgKCFvcGVuRGVsaW1pdGVyKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlckluZGV4ID0gY29kZVNlY3Rpb24uaW5kZXhPZihvcGVuaW5nQ29kZWJsb2NrTGluZSk7XG5cdFx0Y29uc3QgY2xvc2VEZWxpbWl0ZXJJbmRleCA9IGNvZGVTZWN0aW9uLnNsaWNlKG9wZW5EZWxpbWl0ZXJJbmRleCsxKS5maW5kSW5kZXgoKGxpbmUpPT5uZXcgUmVnRXhwKGBeXFxcXHMqKD86PlxcXFxzKikqJHtvcGVuRGVsaW1pdGVyfSg/ISR7b3BlbkRlbGltaXRlclswXX0pJGApLnRlc3QobGluZSkpO1xuXHRcdGlmICghYWRtb25pdGlvbnMgfHwgIS9eXFxzKig/Oj5cXHMqKSooPzpgYGArfH5+fispICphZC0uKiQvLnRlc3Qob3BlbmluZ0NvZGVibG9ja0xpbmUpKVxuXHRcdFx0Y29kZWJsb2Nrcy5wdXNoKGNvZGVTZWN0aW9uLnNsaWNlKDAsb3BlbkRlbGltaXRlckluZGV4KzIrY2xvc2VEZWxpbWl0ZXJJbmRleCkpO1xuXHRcdGVsc2Vcblx0XHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMSxvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KSk7XG5cblx0XHRwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb24uc2xpY2Uob3BlbkRlbGltaXRlckluZGV4KzErY2xvc2VEZWxpbWl0ZXJJbmRleCsxKSk7XG5cdH1cblx0cGFyc2VDb2RlYmxvY2tTZWN0aW9uKGNvZGVTZWN0aW9uKTtcblx0cmV0dXJuIHtjb2RlYmxvY2tzUGFyYW1ldGVyczogYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzLHBsdWdpbixwbHVnaW5zLHNvdXJjZVBhdGgpOnBhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzLHBsdWdpbixwbHVnaW5zKSksIG5lc3RlZDogY29kZWJsb2Nrc1swXT8hYXJyYXlzRXF1YWwoY29kZVNlY3Rpb24sY29kZWJsb2Nrc1swXSk6dHJ1ZX07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzOiBBcnJheTxBcnJheTxzdHJpbmc+PiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8QXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4+IHtcblx0Y29uc3QgY29kZWJsb2Nrc1BhcmFtZXRlcnM6IEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+ID0gW107XG5cdGZvciAoY29uc3QgY29kZWJsb2NrTGluZXMgb2YgY29kZWJsb2Nrcykge1xuXHRcdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXMscGx1Z2luLHBsdWdpbnMsc291cmNlUGF0aCk6cGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXMscGx1Z2luLHBsdWdpbnMpKTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycyAhPT0gbnVsbClcblx0XHRcdGNvZGVibG9ja3NQYXJhbWV0ZXJzLnB1c2goY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja3NQYXJhbWV0ZXJzO1xufVxuYXN5bmMgZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPENvZGVibG9ja1BhcmFtZXRlcnMgfCBudWxsPiB7XG5cdGNvbnN0IHBhcmFtZXRlckxpbmUgPSBnZXRQYXJhbWV0ZXJMaW5lKGNvZGVibG9ja0xpbmVzKTtcblx0aWYgKCFwYXJhbWV0ZXJMaW5lKVxuXHRcdHJldHVybiBudWxsO1xuXHRjb25zdCBjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzKHBhcmFtZXRlckxpbmUscGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cblx0aWYgKGlzQ29kZWJsb2NrSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSAmJiBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlICE9PSBcInJlZmVyZW5jZVwiKVxuXHRcdHJldHVybiBudWxsO1xuXG5cdHJldHVybiBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGx1Z2luQWRqdXN0UGFyYW1ldGVycyhjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbixwbHVnaW5zLGNvZGVibG9ja0xpbmVzLHNvdXJjZVBhdGgpOnBsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW4scGx1Z2lucyxjb2RlYmxvY2tMaW5lcykpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycyhwYXJhbWV0ZXJMaW5lOiBzdHJpbmcsIHRoZW1lOiBDb2RlU3R5bGVyVGhlbWUpOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycyA9IHtcblx0XHRsYW5ndWFnZTogXCJcIixcblx0XHR0aXRsZTogXCJcIixcblx0XHRyZWZlcmVuY2U6IFwiXCIsXG5cdFx0Zm9sZDoge1xuXHRcdFx0ZW5hYmxlZDogZmFsc2UsXG5cdFx0XHRwbGFjZWhvbGRlcjogXCJcIixcblx0XHR9LFxuXHRcdGxpbmVOdW1iZXJzOiB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdG9mZnNldDogMCxcblx0XHR9LFxuXHRcdGxpbmVVbndyYXA6IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWN0aXZlV3JhcDogZmFsc2UsXG5cdFx0fSxcblx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdGxpbmVOdW1iZXJzOiBbXSxcblx0XHRcdFx0cGxhaW5UZXh0OiBbXSxcblx0XHRcdFx0cmVndWxhckV4cHJlc3Npb25zOiBbXSxcblx0XHRcdH0sXG5cdFx0XHRhbHRlcm5hdGl2ZToge30sXG5cdFx0fSxcblx0XHRpZ25vcmU6IGZhbHNlLFxuXHR9O1xuXG5cdGlmIChwYXJhbWV0ZXJMaW5lLnN0YXJ0c1dpdGgoXCJgYGBcIikpXG5cdFx0cGFyYW1ldGVyTGluZSA9IHBhcmFtZXRlckxpbmUucmVwbGFjZSgvXmBgYCsoPz1bXmBdfCQpLyxcIlwiKTtcblx0ZWxzZSBpZiAocGFyYW1ldGVyTGluZS5zdGFydHNXaXRoKFwifn5+XCIpKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnJlcGxhY2UoL15+fn4rKD89W15+XXwkKS8sXCJcIik7XG5cdGVsc2Vcblx0XHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcblxuXHRjb25zdCBybWRNYXRjaCA9IC9eXFx7KC4rKVxcfSAqJC8uZXhlYyhwYXJhbWV0ZXJMaW5lKTtcblx0aWYgKHJtZE1hdGNoKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBybWRNYXRjaFsxXTtcblxuXHRjb25zdCBsYW5ndWFnZUJyZWFrID0gcGFyYW1ldGVyTGluZS5pbmRleE9mKFwiIFwiKTtcblx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UoMCwobGFuZ3VhZ2VCcmVhayAhPT0gLTEpP2xhbmd1YWdlQnJlYWs6cGFyYW1ldGVyTGluZS5sZW5ndGgpLnRvTG93ZXJDYXNlKCk7XG5cdGlmIChsYW5ndWFnZUJyZWFrID09PSAtMSlcblx0XHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcblx0cGFyYW1ldGVyTGluZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UobGFuZ3VhZ2VCcmVhaysxKTtcblx0aWYgKHJtZE1hdGNoKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBcInRpdGxlOlwiICsgcGFyYW1ldGVyTGluZTtcblxuXHRjb25zdCBwYXJhbWV0ZXJTdHJpbmdzID0gcGFyYW1ldGVyTGluZS5tYXRjaCgvKD86KD86cmVmfHJlZmVyZW5jZXx0aXRsZSk6KD86XFxbXFxbLio/XFxdXFxdfFxcWy4qP1xcXVxcKC4rXFwpKXxbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrL2cpO1xuXHRpZiAoIXBhcmFtZXRlclN0cmluZ3MpXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cblx0cGFyYW1ldGVyU3RyaW5ncy5mb3JFYWNoKChwYXJhbWV0ZXJTdHJpbmcpID0+IHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZy5yZXBsYWNlKC8oPzpeLHwsJCkvZywgXCJcIiksY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZSkpO1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmFzeW5jIGZ1bmN0aW9uIHBsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPENvZGVibG9ja1BhcmFtZXRlcnM+IHtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwicmVmZXJlbmNlXCIpIHtcblx0XHRpZiAodHlwZW9mIHNvdXJjZVBhdGggPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHR0aHJvdyBFcnJvcihcIlJlZmVyZW5jZSBibG9jayBoYXMgdW5kZWZpbmVkIHNvdXJjZVBhdGhcIik7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IGF3YWl0IGFkanVzdFJlZmVyZW5jZShjb2RlYmxvY2tQYXJhbWV0ZXJzLCBjb2RlYmxvY2tMaW5lcywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0fSAgZWxzZSBpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IGF3YWl0ICh0eXBlb2Ygc291cmNlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIj9wbHVnaW5BZGp1c3RQcmV2aWV3Q29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMsc291cmNlUGF0aCk6cGx1Z2luQWRqdXN0UHJldmlld0NvZGUoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW5zLGNvZGVibG9ja0xpbmVzKSk7XG5cdGVsc2UgaWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwiaW5jbHVkZVwiKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwbHVnaW5BZGp1c3RGaWxlSW5jbHVkZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpO1xuXHRlbHNlIGlmICgvcnVuLVxcdyovLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlUnVuKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2luLHBsdWdpbnMpO1xuXHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGUoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW5zLGNvZGVibG9ja0xpbmVzKTtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBhZGp1c3RSZWZlcmVuY2UoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiB7XG5cdGNvbnN0IHJlZmVyZW5jZSA9IGF3YWl0IGdldFJlZmVyZW5jZShjb2RlYmxvY2tMaW5lcywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0aWYgKCFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCA9IHJlZmVyZW5jZS5zdGFydExpbmUgLSAxO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCA9IEJvb2xlYW4ocmVmZXJlbmNlLnN0YXJ0TGluZSAhPT0gMSk7XG5cdH1cblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IFwiXCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IHJlZmVyZW5jZS5leHRlcm5hbD8uaW5mbz8udGl0bGUgPz8gYmFzZW5hbWUocmVmZXJlbmNlLnBhdGgpO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPT09IFwiXCIpXG5cdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZS5leHRlcm5hbD8uaW5mbz8uZGlzcGxheVVybCA/PyByZWZlcmVuY2UuZXh0ZXJuYWw/LmluZm8/LnVybCA/PyBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIuZ2V0RmlsZVBhdGgocmVmZXJlbmNlLnBhdGgpO1xuXHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gcmVmZXJlbmNlLmxhbmd1YWdlO1xuXHRpZiAocmVmZXJlbmNlLmV4dGVybmFsKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZXh0ZXJuYWxSZWZlcmVuY2UgPSByZWZlcmVuY2UuZXh0ZXJuYWwuaW5mbztcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBwbHVnaW5BZGp1c3RQcmV2aWV3Q29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPENvZGVibG9ja1BhcmFtZXRlcnM+IHtcblx0aWYgKHBsdWdpbnM/LltcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXT8uY29kZSAmJiBwbHVnaW5zPy5bXCJvYnNpZGlhbi1jb2RlLXByZXZpZXdcIl0/LmFuYWx5emVIaWdoTGlnaHRMaW5lcykge1xuXHRcdGNvbnN0IGNvZGVQcmV2aWV3UGFyYW1zID0gYXdhaXQgcGx1Z2luc1tcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXS5jb2RlKGNvZGVibG9ja0xpbmVzLnNsaWNlKDEsLTEpLmpvaW4oXCJcXG5cIiksc291cmNlUGF0aCk7XG5cdFx0aWYgKCFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQpIHtcblx0XHRcdGlmICh0eXBlb2YgY29kZVByZXZpZXdQYXJhbXMuc3RhcnQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0ID0gY29kZVByZXZpZXdQYXJhbXMuc3RhcnQgLSAxO1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkID0gQm9vbGVhbihjb2RlUHJldmlld1BhcmFtcy5saW5lbnVtYmVyKTtcblx0XHR9XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQubGluZU51bWJlcnMgPSBbLi4ubmV3IFNldChjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5saW5lTnVtYmVycy5jb25jYXQoQXJyYXkuZnJvbShwbHVnaW5zW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdLmFuYWx5emVIaWdoTGlnaHRMaW5lcyhjb2RlUHJldmlld1BhcmFtcy5saW5lcyxjb2RlUHJldmlld1BhcmFtcy5oaWdobGlnaHQpLChwYWlyOiBbbnVtYmVyLGJvb2xlYW5dKT0+KHBhaXJbMF0pKSkpXTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9PT0gXCJcIilcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSBjb2RlUHJldmlld1BhcmFtcy5maWxlUGF0aC5zcGxpdChcIlxcXFxcIikucG9wKCk/LnNwbGl0KFwiL1wiKS5wb3AoKSA/PyBcIlwiO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBjb2RlUHJldmlld1BhcmFtcy5sYW5ndWFnZTtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBsdWdpbkFkanVzdEZpbGVJbmNsdWRlKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPik6IENvZGVibG9ja1BhcmFtZXRlcnMge1xuXHRpZiAoXCJmaWxlLWluY2x1ZGVcIiBpbiBwbHVnaW5zKSB7XG5cdFx0Y29uc3QgZmlsZUluY2x1ZGVMYW5ndWFnZSA9IC9pbmNsdWRlIChcXHcrKS8uZXhlYyhjb2RlYmxvY2tMaW5lc1swXSk/LlsxXTtcblx0XHRpZiAodHlwZW9mIGZpbGVJbmNsdWRlTGFuZ3VhZ2UgIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gZmlsZUluY2x1ZGVMYW5ndWFnZTtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPik6IENvZGVibG9ja1BhcmFtZXRlcnMge1xuXHRpZiAoXCJleGVjdXRlLWNvZGVcIiBpbiBwbHVnaW5zKSB7XG5cdFx0Y29uc3QgY29kZWJsb2NrQXJnczogQ29kZUJsb2NrQXJncyA9IGdldEFyZ3MoY29kZWJsb2NrTGluZXNbMF0pO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID8/IGNvZGVibG9ja0FyZ3M/LmxhYmVsID8/IFwiXCI7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwbHVnaW5BZGp1c3RFeGVjdXRlQ29kZVJ1bihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+KTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGlmIChcImV4ZWN1dGUtY29kZVwiIGluIHBsdWdpbnMpIHtcblx0XHRpZiAoRVhFQ1VURV9DT0RFX1NVUFBPUlRFRF9MQU5HVUFHRVMuaW5jbHVkZXMoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZS5zbGljZSg0KSkgJiYgIWlzQ29kZWJsb2NrSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSlcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLnNsaWNlKDQpO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWU6IENvZGVTdHlsZXJUaGVtZSk6IHZvaWQge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImlnbm9yZVwiKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlID0gdHJ1ZTtcblx0ZWxzZSBpZiAoL150aXRsZVs6PV0vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VUaXRsZShwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2UgaWYgKC9ecmVmWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpIHx8IC9ecmVmZXJlbmNlWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdG1hbmFnZVJlZmVyZW5jZShwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2UgaWYgKC9eZm9sZFs6PV0/Ly50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0bWFuYWdlRm9sZGluZyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2UgaWYgKC9ebG5bOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0bWFuYWdlTGluZU51bWJlcmluZyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2UgaWYgKC9edW53cmFwWzo9XT8vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSB8fCBwYXJhbWV0ZXJTdHJpbmcgPT09IFwid3JhcFwiKVxuXHRcdG1hbmFnZVdyYXBwaW5nKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZVxuXHRcdGFkZEhpZ2hsaWdodHMocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWUpO1xufVxuZnVuY3Rpb24gbWFuYWdlVGl0bGUocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0Y29uc3QgdGl0bGVNYXRjaCA9IC8oW1wiJ10/KShbXlxcMV0rKVxcMS8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJ0aXRsZTpcIi5sZW5ndGgpKTtcblx0aWYgKHRpdGxlTWF0Y2gpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IHRpdGxlTWF0Y2hbMl0udHJpbSgpO1xuXHRwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJ0aXRsZTpcIi5sZW5ndGgpO1xuXHRjb25zdCBsaW5rSW5mbyA9IG1hbmFnZUxpbmsocGFyYW1ldGVyU3RyaW5nKTtcblx0aWYgKGxpbmtJbmZvKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGxpbmtJbmZvLnRpdGxlO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gbGlua0luZm8ucmVmZXJlbmNlO1xuXHR9XG59XG5mdW5jdGlvbiBtYW5hZ2VSZWZlcmVuY2UocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0cGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyU3RyaW5nLnNsaWNlKCgoL15yZWZbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykpP1wicmVmOlwiOlwicmVmZXJlbmNlOlwiKS5sZW5ndGgpO1xuXHRjb25zdCBsaW5rSW5mbyA9IG1hbmFnZUxpbmsocGFyYW1ldGVyU3RyaW5nKTtcblx0aWYgKGxpbmtJbmZvKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPSBsaW5rSW5mby5yZWZlcmVuY2U7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IFwiXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID0gbGlua0luZm8udGl0bGU7XG5cdH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBtYW5hZ2VMaW5rKHBhcmFtZXRlclN0cmluZzogc3RyaW5nKToge3RpdGxlOiBzdHJpbmcsIHJlZmVyZW5jZTogc3RyaW5nfSB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHJlZldpa2lNYXRjaCA9IC9cXFtcXFsoW15cXF18XFxyXFxuXSs/KSg/OlxcfChbXlxcXXxcXHJcXG5dKz8pKT9cXF1cXF0vLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0Y29uc3QgcmVmTWRNYXRjaCA9IC9cXFsoLio/KVxcXVxcKCguKylcXCkvLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0Y29uc3QgdXJsTWF0Y2ggPSAvXihbXCInXT8pKGh0dHBzPzpcXC9cXC8uKilcXDEkLy5leGVjKHBhcmFtZXRlclN0cmluZyk7XG5cdGxldCB0aXRsZSA9IFwiXCI7XG5cdGxldCByZWZlcmVuY2UgPSBcIlwiO1xuXHRpZiAocmVmV2lraU1hdGNoKSB7XG5cdFx0dGl0bGUgPSByZWZXaWtpTWF0Y2hbMl0/cmVmV2lraU1hdGNoWzJdLnRyaW0oKTpyZWZXaWtpTWF0Y2hbMV0udHJpbSgpO1xuXHRcdHJlZmVyZW5jZSA9IHJlZldpa2lNYXRjaFsxXS50cmltKCk7XG5cdH0gZWxzZSBpZiAocmVmTWRNYXRjaCkge1xuXHRcdHRpdGxlID0gcmVmTWRNYXRjaFsxXS50cmltKCk7XG5cdFx0cmVmZXJlbmNlID0gcmVmTWRNYXRjaFsyXS50cmltKCk7XG5cdH0gZWxzZSBpZiAodXJsTWF0Y2gpIHtcblx0XHR0aXRsZSA9IFwiVVJMXCI7XG5cdFx0cmVmZXJlbmNlID0gdXJsTWF0Y2hbMl0udHJpbSgpO1xuXHR9ICBlbHNlXG5cdFx0cmV0dXJuO1xuXHRyZXR1cm4ge3RpdGxlOiB0aXRsZSwgcmVmZXJlbmNlOiByZWZlcmVuY2V9O1xufVxuZnVuY3Rpb24gbWFuYWdlRm9sZGluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImZvbGRcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZCA9IHtcblx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRwbGFjZWhvbGRlcjogXCJcIixcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IGZvbGRQbGFjZWhvbGRlck1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcImZvbGQ6XCIubGVuZ3RoKSk7XG5cdFx0aWYgKGZvbGRQbGFjZWhvbGRlck1hdGNoKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQgPSB7XG5cdFx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdHBsYWNlaG9sZGVyOiBmb2xkUGxhY2Vob2xkZXJNYXRjaFsyXS50cmltKCksXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuZnVuY3Rpb24gbWFuYWdlTGluZU51bWJlcmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJsbjpcIi5sZW5ndGgpO1xuXHRpZiAoL15cXGQrJC8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycyA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRvZmZzZXQ6IHBhcnNlSW50KHBhcmFtZXRlclN0cmluZyktMSxcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwiZmFsc2VcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH07XG5cdH1cbn1cbmZ1bmN0aW9uIG1hbmFnZVdyYXBwaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKSB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwid3JhcFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogdHJ1ZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcInVud3JhcFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0cGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidW53cmFwOlwiLmxlbmd0aCk7XG5cdFx0aWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImluYWN0aXZlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiB0cnVlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImZhbHNlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBhZGRIaWdobGlnaHRzKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKSB7XG5cdGNvbnN0IGhpZ2hsaWdodE1hdGNoID0gL14oXFx3KylbOj1dKC4rKSQvLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0aWYgKGhpZ2hsaWdodE1hdGNoKSB7XG5cdFx0aWYgKGhpZ2hsaWdodE1hdGNoWzFdID09PSBcImhsXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhoaWdobGlnaHRNYXRjaFsyXSk7XG5cdFx0ZWxzZSBpZiAoaGlnaGxpZ2h0TWF0Y2hbMV0gaW4gdGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cylcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZVtoaWdobGlnaHRNYXRjaFsxXV0gPSBwYXJzZUhpZ2hsaWdodGVkTGluZXMoaGlnaGxpZ2h0TWF0Y2hbMl0pO1xuXHR9IGVsc2UgaWYgKC9ee1tcXGQtLF0rfSQvLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoMSwtMSkpO1xufVxuZnVuY3Rpb24gcGFyc2VIaWdobGlnaHRlZExpbmVzKGhpZ2hsaWdodGVkTGluZXNTdHJpbmc6IHN0cmluZyk6IEhpZ2hsaWdodHMge1xuXHRjb25zdCBoaWdobGlnaHRSdWxlcyA9IGhpZ2hsaWdodGVkTGluZXNTdHJpbmcuc3BsaXQoXCIsXCIpO1xuXHRjb25zdCBsaW5lTnVtYmVyczogU2V0PG51bWJlcj4gPSBuZXcgU2V0KCk7XG5cdGNvbnN0IHBsYWluVGV4dDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdGNvbnN0IHJlZ3VsYXJFeHByZXNzaW9uczogU2V0PFJlZ0V4cD4gPSBuZXcgU2V0KCk7XG5cdGhpZ2hsaWdodFJ1bGVzLmZvckVhY2goaGlnaGxpZ2h0UnVsZSA9PiB7XG5cdFx0aWYgKC9cXGQrLVxcZCsvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gTnVtYmVyIFJhbmdlXG5cdFx0XHRjb25zdCBbc3RhcnQsZW5kXSA9IGhpZ2hsaWdodFJ1bGUuc3BsaXQoXCItXCIpLm1hcChudW0gPT4gcGFyc2VJbnQobnVtKSk7XG5cdFx0XHRpZiAoc3RhcnQgJiYgZW5kICYmIHN0YXJ0IDw9IGVuZClcblx0XHRcdFx0QXJyYXkuZnJvbSh7bGVuZ3RoOmVuZC1zdGFydCsxfSwgKF8sbnVtKSA9PiBudW0gKyBzdGFydCkuZm9yRWFjaChsaW5lTnVtYmVyID0+IGxpbmVOdW1iZXJzLmFkZChsaW5lTnVtYmVyKSk7XG5cdFx0fSBlbHNlIGlmICgvXlxcLyguKilcXC8kLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFJlZ2V4XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZWd1bGFyRXhwcmVzc2lvbnMuYWRkKG5ldyBSZWdFeHAoaGlnaGxpZ2h0UnVsZS5yZXBsYWNlKC9eXFwvKC4qKVxcLyQvLCBcIiQxXCIpKSk7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0Ly9wYXNzXG5cdFx0XHR9XG5cdFx0fSAgZWxzZSBpZiAoL1wiLipcIi8udGVzdChoaWdobGlnaHRSdWxlKSkgLy8gUGxhaW4gVGV4dFxuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlLnN1YnN0cmluZygxLGhpZ2hsaWdodFJ1bGUubGVuZ3RoLTEpKTtcblx0XHRlbHNlIGlmICgvJy4qJy8udGVzdChoaWdobGlnaHRSdWxlKSkgLy8gUGxhaW4gVGV4dFxuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlLnN1YnN0cmluZygxLGhpZ2hsaWdodFJ1bGUubGVuZ3RoLTEpKTtcblx0XHRlbHNlIGlmICgvXFxELy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSAvLyBQbGFpbiBUZXh0IC8vVE9ETyAoQG1heXVyYW5rdikgU2hvdWxkIHRoaXMgYmUgXFxEKyA/P1xuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlKTtcblx0XHRlbHNlIGlmICgvXFxkKy8udGVzdChoaWdobGlnaHRSdWxlKSkgLy8gUGxhaW4gTnVtYmVyXG5cdFx0XHRsaW5lTnVtYmVycy5hZGQocGFyc2VJbnQoaGlnaGxpZ2h0UnVsZSkpO1xuXHR9KTtcblx0cmV0dXJuIHtcblx0XHRsaW5lTnVtYmVyczogWy4uLmxpbmVOdW1iZXJzXSxcblx0XHRwbGFpblRleHQ6IFsuLi5wbGFpblRleHRdLFxuXHRcdHJlZ3VsYXJFeHByZXNzaW9uczogWy4uLnJlZ3VsYXJFeHByZXNzaW9uc10sXG5cdH07XG59XG5leHBvcnQgZnVuY3Rpb24gaXNMYW5ndWFnZUlnbm9yZWQobGFuZ3VhZ2U6IHN0cmluZywgZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nKS5zb21lKHJlZ2V4RXhjbHVkZWRMYW5ndWFnZT0+cmVnZXhFeGNsdWRlZExhbmd1YWdlLnRlc3QobGFuZ3VhZ2UpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0NvZGVibG9ja0lnbm9yZWQobGFuZ3VhZ2U6IHN0cmluZywgd2hpdGVsaXN0ZWRDb2RlYmxvY2tzU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0cmV0dXJuIChsYW5ndWFnZSBpbiBNYXJrZG93blByZXZpZXdSZW5kZXJlci5jb2RlQmxvY2tQb3N0UHJvY2Vzc29ycykgJiYgIXBhcnNlUmVnZXhFeGNsdWRlZExhbmd1YWdlcyh3aGl0ZWxpc3RlZENvZGVibG9ja3NTdHJpbmcpLnNvbWUocmVnZXhFeGNsdWRlZExhbmd1YWdlPT5yZWdleEV4Y2x1ZGVkTGFuZ3VhZ2UudGVzdChsYW5ndWFnZSkpO1xufVxuZnVuY3Rpb24gcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nOiBzdHJpbmcpOiBBcnJheTxSZWdFeHA+IHtcblx0cmV0dXJuIGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nLnNwbGl0KFwiLFwiKS5tYXAocmVnZXhMYW5ndWFnZSA9PiBuZXcgUmVnRXhwKGBeJHtyZWdleExhbmd1YWdlLnRyaW0oKS5yZXBsYWNlKC9cXCovZyxcIi4rXCIpfSRgLFwiaVwiKSk7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtZXRlckxpbmUoY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRsZXQgb3BlbmluZ0NvZGVibG9ja0xpbmUgPSBnZXRPcGVuaW5nTGluZShjb2RlYmxvY2tMaW5lcyk7XG5cdGlmIChvcGVuaW5nQ29kZWJsb2NrTGluZSAmJiAob3BlbmluZ0NvZGVibG9ja0xpbmUgIT09IGNvZGVibG9ja0xpbmVzWzBdIHx8IC8+XFxzKig/Oltgfl0pLy50ZXN0KG9wZW5pbmdDb2RlYmxvY2tMaW5lKSkpXG5cdFx0b3BlbmluZ0NvZGVibG9ja0xpbmUgPSBjbGVhblBhcmFtZXRlckxpbmUob3BlbmluZ0NvZGVibG9ja0xpbmUpO1xuXHRyZXR1cm4gb3BlbmluZ0NvZGVibG9ja0xpbmU7XG59XG5mdW5jdGlvbiBnZXRPcGVuaW5nTGluZShjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBjb2RlYmxvY2tMaW5lcy5maW5kKChsaW5lOiBzdHJpbmcpPT5Cb29sZWFuKHRlc3RPcGVuaW5nTGluZShsaW5lKSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRlc3RPcGVuaW5nTGluZShjb2RlYmxvY2tMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBsaW5lTWF0Y2ggPSAvXihcXHMqKD86PlxccyopKikoYGBgK3x+fn4rKS8uZXhlYyhjb2RlYmxvY2tMaW5lKTtcblx0aWYgKCFsaW5lTWF0Y2gpXG5cdFx0cmV0dXJuIFwiXCI7XG5cdGlmIChjb2RlYmxvY2tMaW5lLmluZGV4T2YobGluZU1hdGNoWzJdLGxpbmVNYXRjaFsxXS5sZW5ndGgrbGluZU1hdGNoWzJdLmxlbmd0aCsxKT09PS0xKVxuXHRcdHJldHVybiBsaW5lTWF0Y2hbMl07XG5cdHJldHVybiBcIlwiO1xufVxuZnVuY3Rpb24gY2xlYW5QYXJhbWV0ZXJMaW5lKHBhcmFtZXRlckxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiB0cmltUGFyYW1ldGVyTGluZShwYXJhbWV0ZXJMaW5lKS5yZXBsYWNlKC9eKD86PlxccyopKihgYGArfH5+fispLyxcIiQxXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRyaW1QYXJhbWV0ZXJMaW5lKHBhcmFtZXRlckxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBwYXJhbWV0ZXJMaW5lLnRyaW0oKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZpbGVDb250ZW50TGluZXMoc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPEFycmF5PHN0cmluZz4gfCB1bmRlZmluZWQ+IHtcblx0Y29uc3QgZmlsZSA9IHBsdWdpbi5hcHAudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKHNvdXJjZVBhdGgpO1xuXHRpZiAoIWZpbGUpIHtcblx0XHRjb25zb2xlLmVycm9yKGBGaWxlIG5vdCBmb3VuZDogJHtzb3VyY2VQYXRofWApO1xuXHRcdHJldHVybjtcblx0fVxuXHRjb25zdCBmaWxlQ29udGVudCA9IGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuY2FjaGVkUmVhZCg8VEZpbGU+IGZpbGUpLmNhdGNoKChlcnJvcikgPT4ge1xuXHRcdGNvbnNvbGUuZXJyb3IoYEVycm9yIHJlYWRpbmcgZmlsZTogJHtlcnJvci5tZXNzYWdlfWApO1xuXHRcdHJldHVybiBcIlwiO1xuXHR9KTtcblx0aWYgKCFmaWxlQ29udGVudClcblx0XHRyZXR1cm47XG5cdHJldHVybiBmaWxlQ29udGVudC5zcGxpdCgvXFxuL2cpO1xufVxuXG5mdW5jdGlvbiBhcnJheXNFcXVhbChhcnJheTE6IEFycmF5PHVua25vd24+LGFycmF5MjogQXJyYXk8dW5rbm93bj4pOiBib29sZWFuIHtcblx0cmV0dXJuIGFycmF5MS5sZW5ndGggPT09IGFycmF5Mi5sZW5ndGggJiYgYXJyYXkxLmV2ZXJ5KChlbCkgPT4gYXJyYXkyLmluY2x1ZGVzKGVsKSk7XG59XG4iLCAiaW1wb3J0IHtOb3RpY2V9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0ICogYXMgSlNPTjUgZnJvbSBcImpzb241XCI7XG5cbmV4cG9ydCB0eXBlIEV4cG9ydFR5cGUgPSBcInByZVwiIHwgXCJwb3N0XCI7XG5cbi8qKlxuICogQXJndW1lbnRzIGZvciBjb2RlIGJsb2Nrcywgc3BlY2lmaWVkIG5leHQgdG8gdGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgYXMgSlNPTlxuICogQGV4YW1wbGUgYGBgcHl0aG9uIHtcImV4cG9ydFwiOiBcInByZVwifVxuICogQGV4YW1wbGUgYGBgY3BwIHtcImlnbm9yZUV4cG9ydFwiOiBbXCJwb3N0XCJdfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVCbG9ja0FyZ3Mge1xuXHRsYWJlbD86IHN0cmluZztcblx0aW1wb3J0Pzogc3RyaW5nIHwgc3RyaW5nW107XG5cdGV4cG9ydD86IEV4cG9ydFR5cGUgfCBFeHBvcnRUeXBlW107XG5cdGlnbm9yZT86IChFeHBvcnRUeXBlIHwgXCJnbG9iYWxcIilbXSB8IEV4cG9ydFR5cGUgfCBcImdsb2JhbFwiIHwgXCJhbGxcIjtcbn1cblxuLyoqXG4gKiBHZXQgY29kZSBibG9jayBhcmdzIGdpdmVuIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBjb2RlIGJsb2NrLlxuICpcbiAqIEBwYXJhbSBmaXJzdExpbmVPZkNvZGUgVGhlIGZpcnN0IGxpbmUgb2YgYSBjb2RlIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlIGxhbmd1YWdlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYXJndW1lbnRzIGZyb20gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGNvZGUgYmxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcmdzKGZpcnN0TGluZU9mQ29kZTogc3RyaW5nKTogQ29kZUJsb2NrQXJncyB7XG5cdC8vIE5vIGFyZ3Mgc3BlY2lmaWVkXG5cdGlmICghZmlyc3RMaW5lT2ZDb2RlLmNvbnRhaW5zKFwie1wiKSAmJiAhZmlyc3RMaW5lT2ZDb2RlLmNvbnRhaW5zKFwifVwiKSlcblx0XHRyZXR1cm4ge307XG5cdHRyeSB7XG5cdFx0bGV0IGFyZ3MgPSBmaXJzdExpbmVPZkNvZGUuc3Vic3RyaW5nKGZpcnN0TGluZU9mQ29kZS5pbmRleE9mKFwie1wiKSArIDEpLnRyaW0oKTtcblx0XHQvLyBUcmFuc2Zvcm0gY3VzdG9tIHN5bnRheCB0byBKU09ONVxuXHRcdGFyZ3MgPSBhcmdzLnJlcGxhY2UoLz0vZywgXCI6XCIpO1xuXHRcdC8vIEhhbmRsZSB1bm5hbWVkIGV4cG9ydCBhcmcgLSBwcmUgLyBwb3N0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFyZ3Mgd2l0aG91dCBhbnkgYXJnIG5hbWVcblx0XHRjb25zdCBleHBvcnRzOiBFeHBvcnRUeXBlW10gPSBbXTtcblx0XHRjb25zdCBoYW5kbGVVbm5hbWVkRXhwb3J0ID0gKGV4cG9ydE5hbWU6IEV4cG9ydFR5cGUpID0+IHtcblx0XHRcdGxldCBpID0gYXJncy5pbmRleE9mKGV4cG9ydE5hbWUpO1xuXHRcdFx0d2hpbGUgKGkgIT09IC0xKSB7XG5cdFx0XHRcdGNvbnN0IG5leHRDaGFyID0gYXJnc1tpICsgZXhwb3J0TmFtZS5sZW5ndGhdO1xuXHRcdFx0XHRpZiAobmV4dENoYXIgIT09IFwiXFxcIlwiICYmIG5leHRDaGFyICE9PSBcIidcIikge1xuXHRcdFx0XHRcdC8vIFJlbW92ZSBmcm9tIGFyZ3Mgc3RyaW5nXG5cdFx0XHRcdFx0YXJncyA9IGFyZ3Muc3Vic3RyaW5nKDAsIGkpICsgYXJncy5zdWJzdHJpbmcoaSArIGV4cG9ydE5hbWUubGVuZ3RoICsgKG5leHRDaGFyID09PSBcIn1cIiA/IDAgOiAxKSk7XG5cdFx0XHRcdFx0ZXhwb3J0cy5wdXNoKGV4cG9ydE5hbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGkgPSBhcmdzLmluZGV4T2YoZXhwb3J0TmFtZSwgaSArIDEpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0aGFuZGxlVW5uYW1lZEV4cG9ydChcInByZVwiKTtcblx0XHRoYW5kbGVVbm5hbWVkRXhwb3J0KFwicG9zdFwiKTtcblx0XHRhcmdzID0gYHtleHBvcnQ6IFsnJHtleHBvcnRzLmpvaW4oXCInLCAnXCIpfSddLCAke2FyZ3N9YDtcblx0XHRyZXR1cm4gSlNPTjUucGFyc2UoYXJncyk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdG5ldyBOb3RpY2UoYEZhaWxlZCB0byBwYXJzZSBjb2RlIGJsb2NrIGFyZ3VtZW50cyBmcm9tIGxpbmU6XFxuJHtmaXJzdExpbmVPZkNvZGV9XFxuXFxuRmFpbGVkIHdpdGggZXJyb3I6XFxuJHtlcnJ9YCk7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG59XG4iLCAiaW1wb3J0IHsgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCwgTWFya2Rvd25SZW5kZXJlciwgTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24sIG5vcm1hbGl6ZVBhdGgsIHJlcXVlc3QgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IFJlZmVyZW5jZSwgZ2V0TGluZUxpbWl0cywgcGFyc2VFeHRlcm5hbFJlZmVyZW5jZSwgcGFyc2VSZWZlcmVuY2VQYXJhbWV0ZXJzIH0gZnJvbSBcInNyYy9QYXJzaW5nL1JlZmVyZW5jZVBhcnNpbmdcIjtcbmltcG9ydCB7IEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRILCBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVgsIExPQ0FMX1BSRUZJWCwgUkVGRVJFTkNFX0NPREVCTE9DSyB9IGZyb20gXCJzcmMvU2V0dGluZ3NcIjtcbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCJzcmMvbWFpblwiO1xuaW1wb3J0IHsgcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbiB9IGZyb20gXCIuL1JlYWRpbmdWaWV3XCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWZlcmVuY2VDb2RlYmxvY2tQcm9jZXNzb3Ioc291cmNlOiBzdHJpbmcsIGNvZGVibG9ja0VsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgY29kZWJsb2NrU2VjdGlvbkluZm86IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCA9IGNvbnRleHQuZ2V0U2VjdGlvbkluZm8oY29kZWJsb2NrRWxlbWVudCk7XG5cdGlmIChjb2RlYmxvY2tTZWN0aW9uSW5mbyA9PT0gbnVsbClcblx0XHR0aHJvdyBFcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjb2RlYmxvY2sgaW5mb3JtYXRpb25cIik7XG5cblx0Y29uc3QgY29kZWJsb2NrTGluZXMgPSBbY29kZWJsb2NrU2VjdGlvbkluZm8udGV4dC5zcGxpdChcIlxcblwiKVtjb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lU3RhcnRdLCAuLi5zb3VyY2Uuc3BsaXQoXCJcXG5cIildO1xuXHRpZiAoY29kZWJsb2NrTGluZXNbY29kZWJsb2NrTGluZXMubGVuZ3RoIC0gMV0gIT09IFwiXCIpXG5cdFx0Y29kZWJsb2NrTGluZXMucHVzaChcIlwiKTtcblx0Y29uc3QgcmVmZXJlbmNlID0gYXdhaXQgZ2V0UmVmZXJlbmNlKGNvZGVibG9ja0xpbmVzLCBjb250ZXh0LnNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdHJlbmRlckZpbGUocmVmZXJlbmNlLCBjb2RlYmxvY2tFbGVtZW50LCBjb250ZXh0LCBwbHVnaW4pO1xuXHRyZW5kZXJTcGVjaWZpY1JlYWRpbmdTZWN0aW9uKEFycmF5LmZyb20oY29kZWJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKSwgY29udGV4dC5zb3VyY2VQYXRoLCBjb2RlYmxvY2tTZWN0aW9uSW5mbywgcGx1Z2luKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyRmlsZShyZWZlcmVuY2U6IFJlZmVyZW5jZSwgY29kZWJsb2NrRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ6IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwbHVnaW4uYXBwLCByZWZlcmVuY2UuY29kZSwgY29kZWJsb2NrRWxlbWVudCwgY29udGV4dC5zb3VyY2VQYXRoLCBwbHVnaW4pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVmZXJlbmNlKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8UmVmZXJlbmNlPiB7XG5cdGNvbnN0IHJlZmVyZW5jZTogUmVmZXJlbmNlID0ge1xuXHRcdGNvZGU6IFwiXCIsXG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0c3RhcnRMaW5lOiAxLFxuXHRcdHBhdGg6IFwiXCIsXG5cdH07XG5cblx0dHJ5IHtcblx0XHRjb25zdCByZWZlcmVuY2VQYXJhbWV0ZXJzID0gcGFyc2VSZWZlcmVuY2VQYXJhbWV0ZXJzKGNvZGVibG9ja0xpbmVzLnNsaWNlKDEsIC0xKS5qb2luKFwiXFxuXCIpKTtcblx0XHRyZWZlcmVuY2UubGFuZ3VhZ2UgPSByZWZlcmVuY2VQYXJhbWV0ZXJzLmxhbmd1YWdlO1xuXHRcdHJlZmVyZW5jZS5wYXRoID0gcmVmZXJlbmNlUGFyYW1ldGVycy5maWxlUGF0aDtcblx0XHRpZiAoL15odHRwcz86XFwvXFwvLy50ZXN0KHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGgpKSB7XG5cdFx0XHRjb25zdCBleHRlcm5hbFJlZmVyZW5jZUlkID0gaWRFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2UucGF0aCk7XG5cdFx0XHRyZWZlcmVuY2UuZXh0ZXJuYWwgPSB7XG5cdFx0XHRcdHdlYnNpdGU6IGV4dGVybmFsUmVmZXJlbmNlSWQud2Vic2l0ZSxcblx0XHRcdFx0c3RvcmVQYXRoOiBwbHVnaW4uYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIICsgZXh0ZXJuYWxSZWZlcmVuY2VJZC5pZCxcblx0XHRcdFx0aW5mbzoge3RpdGxlOiBcIlwiLCB1cmw6IHJlZmVyZW5jZS5wYXRoLCBzaXRlOiBleHRlcm5hbFJlZmVyZW5jZUlkLndlYnNpdGUsIGRhdGV0aW1lOiBcIlwiLCByYXdVcmw6IHJlZmVyZW5jZS5wYXRofSxcblx0XHRcdH07XG5cdFx0XHRyZWZlcmVuY2VQYXJhbWV0ZXJzLmZpbGVQYXRoID0gYXdhaXQgYWNjZXNzRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlLCBwbHVnaW4pO1xuXHRcdFx0cmVmZXJlbmNlLmV4dGVybmFsLmluZm8gPSB7IC4uLnJlZmVyZW5jZS5leHRlcm5hbC5pbmZvLCAuLi5KU09OLnBhcnNlKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5yZWFkKHJlZmVyZW5jZS5leHRlcm5hbC5zdG9yZVBhdGggKyBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVgpKSB9O1xuXHRcdH1cblx0XHRjb25zdCB2YXVsdFBhdGggPSBnZXRQYXRoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGgsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdFx0aWYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGguc3RhcnRzV2l0aChcIltbXCIpICYmIHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGguZW5kc1dpdGgoXCJdXVwiKSlcblx0XHRcdHJlZmVyZW5jZS5wYXRoID0gdmF1bHRQYXRoO1xuXHRcdGlmICghKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5leGlzdHModmF1bHRQYXRoKSkpXG5cdFx0XHR0aHJvdyBFcnJvcihgTG9jYWwgRmlsZSBkb2VzIG5vdCBleGlzdCBhdCAke3ZhdWx0UGF0aH1gKTtcblx0XHRjb25zdCBjb2RlQ29udGVudCA9IChhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIucmVhZCh2YXVsdFBhdGgpKS50cmltKCk7XG5cdFx0Y29uc3QgY29kZVNlY3Rpb25JbmZvID0gZ2V0TGluZUxpbWl0cyhjb2RlQ29udGVudCwgcmVmZXJlbmNlUGFyYW1ldGVycyk7XG5cdFx0cmVmZXJlbmNlLnN0YXJ0TGluZSA9IGNvZGVTZWN0aW9uSW5mby5zdGFydExpbmU7XG5cdFx0cmVmZXJlbmNlLmNvZGUgPSBbXCJgYGBcIiwgcmVmZXJlbmNlUGFyYW1ldGVycy5sYW5ndWFnZSxcIiBcIixjb2RlYmxvY2tMaW5lc1swXS5zdWJzdHJpbmcoUkVGRVJFTkNFX0NPREVCTE9DSy5sZW5ndGgpLnRyaW0oKSwgXCJcXG5cIiwgY29kZVNlY3Rpb25JbmZvLmNvZGVTZWN0aW9uLCBcIlxcblwiLCBcImBgYFwiXS5qb2luKFwiXCIpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHJlZmVyZW5jZS5jb2RlID0gYD4gWyFlcnJvcl0gJHsoKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcikpLnJlcGxhY2UoL1xcbi9nLFwiXFxuPlwiKX1gO1xuXHR9XG5cdHJldHVybiByZWZlcmVuY2U7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFjY2Vzc0V4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHN0cmluZz4ge1xuXHR0cnkge1xuXHRcdGlmICghKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5leGlzdHMocmVmZXJlbmNlPy5leHRlcm5hbD8uc3RvcmVQYXRoIGFzIHN0cmluZykpKVxuXHRcdFx0YXdhaXQgdXBkYXRlRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlLCBwbHVnaW4pO1xuXHRcdHJldHVybiByZWZlcmVuY2U/LmV4dGVybmFsPy5zdG9yZVBhdGggYXMgc3RyaW5nO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHRocm93IEVycm9yKGVycm9yKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGRhdGVFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2U6IFJlZmVyZW5jZSwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdHRyeSB7XG5cdFx0Y29uc3Qgc291cmNlSW5mbyA9IGF3YWl0IHBhcnNlRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlKTtcblx0XHRjb25zdCBjb250ZW50ID0gYXdhaXQgcmVxdWVzdChzb3VyY2VJbmZvLnJhd1VybCA/PyByZWZlcmVuY2UucGF0aCk7XG5cdFx0YXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLndyaXRlKHJlZmVyZW5jZT8uZXh0ZXJuYWw/LnN0b3JlUGF0aCBhcyBzdHJpbmcsIGNvbnRlbnQpO1xuXHRcdGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci53cml0ZShyZWZlcmVuY2U/LmV4dGVybmFsPy5zdG9yZVBhdGggYXMgc3RyaW5nICsgRVhURVJOQUxfUkVGRVJFTkNFX0lORk9fU1VGRklYLCBKU09OLnN0cmluZ2lmeShzb3VyY2VJbmZvKSk7XG5cdH0gY2F0Y2goZXJyb3IpIHtcblx0XHR0aHJvdyBFcnJvcihgQ291bGQgbm90IGRvd25sb2FkIGZpbGU6ICR7ZXJyb3J9YCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gaWRFeHRlcm5hbFJlZmVyZW5jZShmaWxlTGluazogc3RyaW5nKToge2lkOiBzdHJpbmcsIHdlYnNpdGU6IHN0cmluZ30ge1xuXHRjb25zdCBsaW5rSW5mbyA9IC9eaHR0cHM/OlxcL1xcLyguKylcXC5jb21cXC8oLispJC8uZXhlYyhmaWxlTGluayk7XG5cdGlmICghbGlua0luZm8/LlsxXSB8fCAhbGlua0luZm8/LlsyXSlcblx0XHR0aHJvdyBFcnJvcihcIk5vIHN1Y2ggcmVwb3NpdG9yeSBjb3VsZCBiZSBmb3VuZFwiKTtcblx0cmV0dXJuIHtpZDogW2xpbmtJbmZvWzFdLCAuLi5saW5rSW5mb1syXS5zcGxpdChcIi9cIildLmpvaW4oXCItXCIpLCB3ZWJzaXRlOiBsaW5rSW5mb1sxXX07XG59XG5cbmZ1bmN0aW9uIGdldFBhdGgoZmlsZVBhdGg6IHN0cmluZywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBzdHJpbmcge1xuXHRmaWxlUGF0aCA9IGZpbGVQYXRoLnRyaW0oKTtcblx0aWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCJbW1wiKSAmJiBmaWxlUGF0aC5lbmRzV2l0aChcIl1dXCIpKVxuXHRcdHJldHVybiBwbHVnaW4uYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZmlsZVBhdGguc2xpY2UoMiwtMiksIHNvdXJjZVBhdGgpPy5wYXRoID8/IGZpbGVQYXRoO1xuXHRmaWxlUGF0aCA9IGZpbGVQYXRoLnJlcGxhY2UoXCJcXFxcXCIsIFwiL1wiKTtcblx0aWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoTE9DQUxfUFJFRklYKSlcblx0XHRyZXR1cm4gZmlsZVBhdGguc3Vic3RyaW5nKDIpO1xuXHRlbHNlIGlmIChmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi9cIikgfHwgL15bXjw6XCIvXFxcXD4/fCpdLy50ZXN0KGZpbGVQYXRoKSkge1xuXHRcdGlmICghc291cmNlUGF0aClcblx0XHRcdHRocm93IEVycm9yKFwiQ2Fubm90IHJlc29sdmUgcmVsYXRpdmUgcGF0aCBiZWNhdXNlIHRoZSBzb3VyY2UgcGF0aCBpcyBtaXNzaW5nXCIpO1xuXHRcdHJldHVybiBnZXRSZWxhdGl2ZVBhdGgoZmlsZVBhdGgsIHNvdXJjZVBhdGgudHJpbSgpKTtcblx0fSAgZWxzZSBpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChcIi9cIikpXG5cdFx0dGhyb3cgRXJyb3IoYFBhdGggc2hvdWxkIG5vdCBzdGFydCB3aXRoIFwiL1wiLCB1c2UgXCIke0xPQ0FMX1BSRUZJWH1cIiB0byByZWZlcmVuY2UgYSBwYXRoIHJlbGF0aXZlIHRvIHRoZSB2YXVsdCByb290IGZvbGRlcmApO1xuXHRlbHNlXG5cdFx0dGhyb3cgRXJyb3IoXCJDYW5ub3QgcmVzb2x2ZSBwYXRoXCIpO1xufVxuXG5mdW5jdGlvbiBnZXRSZWxhdGl2ZVBhdGgoZmlsZVBhdGg6IHN0cmluZywgc291cmNlUGF0aDogc3RyaW5nKSB7XG5cdGlmIChmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi9cIikpXG5cdFx0ZmlsZVBhdGggPSBmaWxlUGF0aC5zdWJzdHJpbmcoMik7XG5cdGNvbnN0IHZhdWx0RGlycyA9IHNvdXJjZVBhdGguc3BsaXQoXCIvXCIpO1xuXHR2YXVsdERpcnMucG9wKCk7XG5cdHdoaWxlIChmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi4vXCIpKVxuXHRcdGlmICh2YXVsdERpcnMucG9wKCkgIT09IHVuZGVmaW5lZClcblx0XHRcdGZpbGVQYXRoID0gZmlsZVBhdGguc3Vic3RyaW5nKDMpO1xuXHRcdGVsc2Vcblx0XHRcdHRocm93IEVycm9yKFwiUGF0aCByZWZlcmVuY2VzIG91dHNpZGUgdmF1bHQsIHRvbyBtYW55IFxcXCIuLi9cXFwicyB1c2VkXCIpO1xuXHRyZXR1cm4gbm9ybWFsaXplUGF0aChbLi4udmF1bHREaXJzLCBmaWxlUGF0aF0uam9pbihcIi9cIikpO1xufVxuIiwgImltcG9ydCB7IHBhcnNlWWFtbCwgcmVxdWVzdFVybCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZSB7XG5cdHN0YXJ0TGluZTogbnVtYmVyO1xuXHRjb2RlOiBzdHJpbmc7XG5cdGxhbmd1YWdlOiBzdHJpbmc7XG5cdHBhdGg6IHN0cmluZztcblx0ZXh0ZXJuYWw/OiB7XG5cdFx0c3RvcmVQYXRoOiBzdHJpbmcsXG5cdFx0d2Vic2l0ZTogc3RyaW5nLFxuXHRcdGluZm86IEV4dGVybmFsUmVmZXJlbmNlSW5mbztcblx0fVxufVxuXG50eXBlIExpbmVJZGVudGlmaWVyID0gbnVsbCB8IHN0cmluZyB8IG51bWJlciB8IFJlZ0V4cDtcblxuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VQYXJhbWV0ZXJzIHtcblx0ZmlsZVBhdGg6IHN0cmluZztcblx0bGFuZ3VhZ2U6IHN0cmluZztcblx0c3RhcnQ6IExpbmVJZGVudGlmaWVyO1xuXHRlbmQ6IExpbmVJZGVudGlmaWVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsUmVmZXJlbmNlSW5mbyB7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdHVybDogc3RyaW5nO1xuXHRzaXRlOiBzdHJpbmc7XG5cdGRhdGV0aW1lOiBzdHJpbmc7XG5cdHJhd1VybDogc3RyaW5nO1xuXHRkaXNwbGF5VXJsPzogc3RyaW5nO1xuXHRhdXRob3I/OiBzdHJpbmc7XG5cdHJlcG9zaXRvcnk/OiBzdHJpbmc7XG5cdHBhdGg/OiBzdHJpbmc7XG5cdGZpbGVOYW1lPzogc3RyaW5nO1xuXHRyZWZJbmZvPzoge1xuXHRcdHJlZjogc3RyaW5nO1xuXHRcdHR5cGU6IHN0cmluZztcblx0XHRoYXNoOiBzdHJpbmc7XG5cdH1cbn1cblxuaW50ZXJmYWNlIFBhc3NlZFBhcmFtZXRlcnMge1xuXHRmaWxlUGF0aD86IHN0cmluZztcblx0ZmlsZT86IHN0cmluZztcblx0cGF0aD86IHN0cmluZztcblx0bGluaz86IHN0cmluZztcblx0bGFuZ3VhZ2U/OiBzdHJpbmc7XG5cdGxhbmc/OiBzdHJpbmc7XG5cdHN0YXJ0Pzogc3RyaW5nIHwgbnVtYmVyO1xuXHRlbmQ/OiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlZmVyZW5jZVBhcmFtZXRlcnMoc291cmNlOiBzdHJpbmcpOiBSZWZlcmVuY2VQYXJhbWV0ZXJzIHtcblx0c291cmNlID0gc291cmNlLnJlcGxhY2UoL14oW146XSspOiguKylcXG4vLCBcIiQxOiAkMlxcblwiKS5yZXBsYWNlKC8oPzwhXCIpXFxbXFxbKC4qPylcXF1cXF0oPyFcIikvLCBcIlxcXCJbWyQxXV1cXFwiXCIpO1xuXHRsZXQgcGFzc2VkUGFyYW1ldGVyczogUGFzc2VkUGFyYW1ldGVycyB8IHN0cmluZyB8IG51bGwgPSBwYXJzZVlhbWwoc291cmNlKTtcblx0aWYgKHBhc3NlZFBhcmFtZXRlcnMgYXMgc3RyaW5nID09PSBzb3VyY2UgfHwgcGFzc2VkUGFyYW1ldGVycyA9PT0gbnVsbClcblx0XHR0aHJvdyBFcnJvcihcIllBTUwgUGFyc2UgRXJyb3JcIik7XG5cdHBhc3NlZFBhcmFtZXRlcnMgPSBwYXNzZWRQYXJhbWV0ZXJzIGFzIFBhc3NlZFBhcmFtZXRlcnM7XG5cdGNvbnN0IGZpbGVQYXRoID0gcGFzc2VkUGFyYW1ldGVycz8uZmlsZVBhdGggPz8gcGFzc2VkUGFyYW1ldGVycz8uZmlsZSA/PyBwYXNzZWRQYXJhbWV0ZXJzPy5wYXRoID8/IHBhc3NlZFBhcmFtZXRlcnM/Lmxpbms7XG5cdGlmICh0eXBlb2YgZmlsZVBhdGggPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0dGhyb3cgRXJyb3IoXCJObyBmaWxlIHNwZWNpZmllZFwiKTtcblx0Y29uc3QgcmVmZXJlbmNlUGFyYW1ldGVyczogUmVmZXJlbmNlUGFyYW1ldGVycyA9IHtmaWxlUGF0aDogZmlsZVBhdGgsIGxhbmd1YWdlOiBwYXNzZWRQYXJhbWV0ZXJzPy5sYW5ndWFnZSA/PyBwYXNzZWRQYXJhbWV0ZXJzPy5sYW5nID8/IGdldExhbmd1YWdlKGZpbGVQYXRoKSwgc3RhcnQ6IG51bGwsIGVuZDogbnVsbH07XG5cdHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgPSBnZXRMaW5lSWRlbnRpZmllcihwYXNzZWRQYXJhbWV0ZXJzLnN0YXJ0KTtcblx0cmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgPSBnZXRMaW5lSWRlbnRpZmllcihwYXNzZWRQYXJhbWV0ZXJzLmVuZCk7XG5cdHJldHVybiByZWZlcmVuY2VQYXJhbWV0ZXJzO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IFByb21pc2U8UGFydGlhbDxFeHRlcm5hbFJlZmVyZW5jZUluZm8+PiB7XG5cdGNvbnN0IEhFQURFUlMgPSB7IFwiQWNjZXB0XCI6IFwiYXBwbGljYXRpb24vanNvblwiLCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9O1xuXHR0cnkge1xuXHRcdGlmIChyZWZlcmVuY2UuZXh0ZXJuYWw/LndlYnNpdGUgPT09IFwiZ2l0aHViXCIpIHtcblx0XHRcdHJlZmVyZW5jZS5wYXRoID0gKHJlZmVyZW5jZS5wYXRoLnNwbGl0KFwiP1wiKVswXSkucmVwbGFjZSgvKD88PWdpdGh1Yi5jb21cXC8uKlxcLy4qXFwvKXJhdyg/PVxcLykvLFwiYmxvYlwiKTtcblx0XHRcdGNvbnN0IGluZm8gPSAoYXdhaXQgcmVxdWVzdFVybCh7dXJsOiByZWZlcmVuY2UucGF0aCwgbWV0aG9kOiBcIkdFVFwiLCBoZWFkZXJzOiBIRUFERVJTfSkpLmpzb247XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogaW5mby5wYXlsb2FkLmJsb2IuZGlzcGxheU5hbWUsIC8vIHRpdGxlOiBpbmZvLnRpdGxlLFxuXHRcdFx0XHRyYXdVcmw6IGluZm8ucGF5bG9hZC5ibG9iLnJhd0Jsb2JVcmwsXG5cdFx0XHRcdGRhdGV0aW1lOiB0aW1lU3RhbXAoKSxcblx0XHRcdFx0ZGlzcGxheVVybDogcmVmZXJlbmNlLnBhdGgsXG5cdFx0XHRcdGF1dGhvcjogaW5mby5wYXlsb2FkLnJlcG8ub3duZXJMb2dpbixcblx0XHRcdFx0cmVwb3NpdG9yeTogaW5mby5wYXlsb2FkLnJlcG8ubmFtZSxcblx0XHRcdFx0cGF0aDogaW5mby5wYXlsb2FkLnBhdGgsXG5cdFx0XHRcdGZpbGVOYW1lOiBpbmZvLnBheWxvYWQuYmxvYi5kaXNwbGF5TmFtZSxcblx0XHRcdFx0cmVmSW5mbzoge1xuXHRcdFx0XHRcdHJlZjogaW5mby5wYXlsb2FkLnJlZkluZm8ubmFtZSxcblx0XHRcdFx0XHR0eXBlOiBpbmZvLnBheWxvYWQucmVmSW5mby5yZWZUeXBlLFxuXHRcdFx0XHRcdGhhc2g6IGluZm8ucGF5bG9hZC5yZWZJbmZvLmN1cnJlbnRPaWRcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHJlZmVyZW5jZS5leHRlcm5hbD8ud2Vic2l0ZSA9PT0gXCJnaXRsYWJcIikge1xuXHRcdFx0cmVmZXJlbmNlLnBhdGggPSAocmVmZXJlbmNlLnBhdGguc3BsaXQoXCI/XCIpWzBdKS5yZXBsYWNlKC8oPzw9Z2l0bGFiLmNvbVxcLy4qXFwvLipcXC8pcmF3KD89XFwvKS8sIFwiYmxvYlwiKTtcblx0XHRcdGNvbnN0IGluZm8gPSAoYXdhaXQgcmVxdWVzdFVybCh7IHVybDogcmVmZXJlbmNlLnBhdGgsIG1ldGhvZDogXCJHRVRcIiwgaGVhZGVyczogSEVBREVSUyB9KSkuanNvbjtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogaW5mby5uYW1lLFxuXHRcdFx0XHRyYXdVcmw6IFwiaHR0cHM6Ly9naXRsYWIuY29tXCIgKyBpbmZvLnJhd19wYXRoLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHRcdGRpc3BsYXlVcmw6IHJlZmVyZW5jZS5wYXRoLFxuXHRcdFx0XHRhdXRob3I6IHJlZmVyZW5jZS5wYXRoLm1hdGNoKC8oPzw9Xmh0dHBzPzpcXC9cXC9naXRsYWIuY29tXFwvKS4qPyg/PVxcLykvKT8uWzBdID8/IFwiXCIsXG5cdFx0XHRcdHJlcG9zaXRvcnk6IHJlZmVyZW5jZS5wYXRoLm1hdGNoKC8oPzw9Xmh0dHBzPzpcXC9cXC9naXRsYWIuY29tXFwvLio/XFwvKS4qPyg/PVxcLykvKT8uWzBdID8/IFwiXCIsXG5cdFx0XHRcdHBhdGg6IGluZm8ucGF0aCxcblx0XHRcdFx0ZmlsZU5hbWU6IGluZm8ubmFtZSxcblx0XHRcdFx0cmVmSW5mbzoge1xuXHRcdFx0XHRcdHJlZjogXCJcIiwgLy9UT0RPIChAbWF5dXJhbmt2KSBQYXJzZSBmcm9tIHVybFxuXHRcdFx0XHRcdHR5cGU6IFwiXCIsICAvL1RPRE8gKEBtYXl1cmFua3YpIFBhcnNlIGZyb20gdXJsXG5cdFx0XHRcdFx0aGFzaDogaW5mby5sYXN0X2NvbW1pdF9zaGFcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9ICBlbHNlIGlmIChyZWZlcmVuY2UuZXh0ZXJuYWw/LndlYnNpdGUgPT09IFwiYml0YnVja2V0XCIpIHtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0cmF3VXJsOiBcIlwiLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAocmVmZXJlbmNlLmV4dGVybmFsPy53ZWJzaXRlID09PSBcInNvdXJjZWZvcmdlXCIpIHtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0cmF3VXJsOiBcIlwiLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFVwZGF0ZVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6IFwiXCIsXG5cdFx0XHRcdHJhd1VybDogcmVmZXJlbmNlLnBhdGgsXG5cdFx0XHRcdGRhdGV0aW1lOiB0aW1lU3RhbXAoKSxcblx0XHRcdH07XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHRocm93IEVycm9yKGBDb3VsZCBub3QgcGFyc2UgZXh0ZXJuYWwgVVJMOiAke2Vycm9yfWApO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGdldExhbmd1YWdlKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChcIltbXCIpICYmIGZpbGVQYXRoLmVuZHNXaXRoKFwiXV1cIikpXG5cdFx0ZmlsZVBhdGggPSBmaWxlUGF0aC5zbGljZSgyLCAtMik7XG5cdHJldHVybiBmaWxlUGF0aC5zbGljZSgoZmlsZVBhdGgubGFzdEluZGV4T2YoXCIuXCIpIC0gMSA+Pj4gMCkgKyAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmVMaW1pdHMoY29kZUNvbnRlbnQ6IHN0cmluZywgcmVmZXJlbmNlUGFyYW1ldGVyczogUmVmZXJlbmNlUGFyYW1ldGVycyk6IHsgY29kZVNlY3Rpb246IHN0cmluZywgc3RhcnRMaW5lOiBudW1iZXIgfSB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgbGluZXMgPSBjb2RlQ29udGVudC5zcGxpdChcIlxcblwiKTtcblx0XHRsZXQgc3RhcnRJbmRleDogbnVtYmVyO1xuXHRcdGxldCBlbmRJbmRleDogbnVtYmVyO1xuXHRcdGlmIChyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0ID09PSBudWxsKVxuXHRcdFx0c3RhcnRJbmRleCA9IDA7XG5cdFx0ZWxzZSBpZiAodHlwZW9mIHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRzdGFydEluZGV4ID0gcmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCAtIDE7XG5cdFx0ZWxzZSBpZiAoKHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgYXMgc3RyaW5nKT8uc3RhcnRzV2l0aChcIi9cIikgJiYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgYXMgc3RyaW5nKT8uZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRjb25zdCBzdGFydFJlZ2V4ID0gbmV3IFJlZ0V4cCgocmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCBhcyBzdHJpbmcpLnJlcGxhY2UoL15cXC8oLiopXFwvJC8sIFwiJDFcIikpO1xuXHRcdFx0c3RhcnRJbmRleCA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gc3RhcnRSZWdleC50ZXN0KGxpbmUpKTtcblx0XHR9IGVsc2Vcblx0XHRcdHN0YXJ0SW5kZXggPSBsaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IGxpbmUuaW5kZXhPZihyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0IGFzIHN0cmluZykgPiAtMSk7XG5cdFx0aWYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kID09PSBudWxsKVxuXHRcdFx0ZW5kSW5kZXggPSBsaW5lcy5sZW5ndGggLSAxO1xuXHRcdGVsc2UgaWYgKHR5cGVvZiByZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCA9PT0gXCJudW1iZXJcIilcblx0XHRcdGVuZEluZGV4ID0gcmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgLSAxO1xuXHRcdGVsc2UgaWYgKChyZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCBhcyBzdHJpbmcpPy5zdGFydHNXaXRoKFwiL1wiKSAmJiAocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKT8uZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRjb25zdCBlbmRSZWdleCA9IG5ldyBSZWdFeHAoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZykucmVwbGFjZSgvXlxcLyguKilcXC8kLywgXCIkMVwiKSk7XG5cdFx0XHRlbmRJbmRleCA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gZW5kUmVnZXgudGVzdChsaW5lKSk7XG5cdFx0fSBlbHNlIGlmICgocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKT8uc3RhcnRzV2l0aChcIitcIikpXG5cdFx0XHRlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyBOdW1iZXIoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZykuc2xpY2UoMSkpO1xuXHRcdGVsc2Vcblx0XHRcdGVuZEluZGV4ID0gbGluZXMuZmluZEluZGV4KChsaW5lKSA9PiBsaW5lLmluZGV4T2YocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKSA+IC0xKTtcblx0XHRpZiAoc3RhcnRJbmRleCA+IGVuZEluZGV4KVxuXHRcdFx0dGhyb3cgRXJyb3IoXCJTcGVjaWZpZWQgU3RhcnQgbGluZSBpcyBhZnRlcnRoZSBzcGVjaWZpZWQgRW5kIGxpbmVcIik7XG5cdFx0ZWxzZSBpZiAoc3RhcnRJbmRleCA9PT0gLTEpXG5cdFx0XHR0aHJvdyBFcnJvcihcIlN0YXJ0IGxpbmUgY291bGQgbm90IGJlIGZvdW5kXCIpO1xuXHRcdGVsc2UgaWYgKGVuZEluZGV4ID09PSAtMSlcblx0XHRcdHRocm93IEVycm9yKFwiRW5kIGxpbmUgY291bGQgbm90IGJlIGZvdW5kXCIpO1xuXHRcdHJldHVybiB7IGNvZGVTZWN0aW9uOiBsaW5lcy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCArIDEpLmpvaW4oXCJcXG5cIiksIHN0YXJ0TGluZTogc3RhcnRJbmRleCArIDEgfTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHR0aHJvdyBFcnJvcihlcnJvcik7XG5cdH1cbn1cblxuZnVuY3Rpb24gZ2V0TGluZUlkZW50aWZpZXIobGluZUlkZW50aWZpZXI6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCk6IExpbmVJZGVudGlmaWVyIHtcblx0aWYgKHR5cGVvZiBsaW5lSWRlbnRpZmllciA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gbnVsbDtcblx0ZWxzZSBpZiAodHlwZW9mIGxpbmVJZGVudGlmaWVyID09PSBcIm51bWJlclwiKVxuXHRcdHJldHVybiBsaW5lSWRlbnRpZmllcjtcblx0ZWxzZSBpZiAoL15cXC8oLiopXFwvJC8udGVzdChsaW5lSWRlbnRpZmllcikpIHsgLy8gUmVnZXhcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIG5ldyBSZWdFeHAobGluZUlkZW50aWZpZXIucmVwbGFjZSgvXlxcLyguKilcXC8kLywgXCIkMVwiKSk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHR0aHJvdyBFcnJvcihcIkludmFsaWQgUmVndWxhciBFeHByZXNzaW9uXCIpO1xuXHRcdH1cblx0fSAgZWxzZSBpZiAoL1wiLipcIi8udGVzdChsaW5lSWRlbnRpZmllcikpIC8vIFBsYWluIFRleHRcblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXIuc3Vic3RyaW5nKDEsbGluZUlkZW50aWZpZXIubGVuZ3RoLTEpO1xuXHRlbHNlIGlmICgvJy4qJy8udGVzdChsaW5lSWRlbnRpZmllcikpIC8vIFBsYWluIFRleHRcblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXIuc3Vic3RyaW5nKDEsbGluZUlkZW50aWZpZXIubGVuZ3RoLTEpO1xuXHRlbHNlIGlmICgvXFxELy50ZXN0KGxpbmVJZGVudGlmaWVyKSkgLy8gUGxhaW4gVGV4dCAvL1RPRE8gKEBtYXl1cmFua3YpIFNob3VsZCB0aGlzIGJlIFxcRCsgPz9cblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXI7XG5cdGVsc2UgaWYgKC9cXGQrLy50ZXN0KGxpbmVJZGVudGlmaWVyKSkgLy8gUGxhaW4gTnVtYmVyXG5cdFx0cmV0dXJuIHBhcnNlSW50KGxpbmVJZGVudGlmaWVyKTtcblx0cmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lU3RhbXAoKTogc3RyaW5nIHtcblx0Y29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5cdGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG5cdGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblx0Y29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cdGNvbnN0IGhvdXIgPSBTdHJpbmcoZGF0ZS5nZXRIb3VycygpKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cdGNvbnN0IG1pbnV0ZSA9IFN0cmluZyhkYXRlLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgXCIwXCIpO1xuXHQvLyBjb25zdCBzZWNvbmQgPSBTdHJpbmcoZGF0ZS5nZXRTZWNvbmRzKCkpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblxuXHRyZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9ICR7aG91cn06JHttaW51dGV9YDtcbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiwgQ2FjaGVkTWV0YWRhdGEsIHNhbml0aXplSFRNTFRvRG9tLCBGcm9udE1hdHRlckNhY2hlLCBNYXJrZG93blJlbmRlcmVyIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyB2aXNpdFBhcmVudHMgfSBmcm9tIFwidW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzXCI7XG5pbXBvcnQgeyBmcm9tSHRtbCB9IGZyb20gXCJoYXN0LXV0aWwtZnJvbS1odG1sXCI7XG5pbXBvcnQgeyB0b0h0bWwgfSBmcm9tIFwiaGFzdC11dGlsLXRvLWh0bWxcIjtcbmltcG9ydCB7IEVsZW1lbnRDb250ZW50LCBFbGVtZW50IH0gZnJvbSBcImhhc3RcIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuaW1wb3J0IHsgU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsIFRSQU5TSVRJT05fTEVOR1RIIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIGdldEZpbGVDb250ZW50TGluZXMsIGlzQ29kZWJsb2NrSWdub3JlZCwgaXNMYW5ndWFnZUlnbm9yZWQsIHBhcnNlQ29kZWJsb2NrU291cmNlIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGFyc2VJbmxpbmVDb2RlIH0gZnJvbSBcIi4vUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZ1wiO1xuaW1wb3J0IHsgY3JlYXRlSGVhZGVyLCBjcmVhdGVJbmxpbmVPcGVuZXIsIGdldExpbmVDbGFzcyBhcyBnZXRMaW5lQ2xhc3NlcyB9IGZyb20gXCIuL0NvZGVibG9ja0RlY29yYXRpbmdcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHtzb3VyY2VQYXRoLGdldFNlY3Rpb25JbmZvLGZyb250bWF0dGVyfToge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZWRpdGluZ0VtYmVkcyA9IGZhbHNlKSB7XG5cdGNvbnN0IGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IG51bGwgPSBwbHVnaW4uYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUoc291cmNlUGF0aCk7XG5cdGlmICghc291cmNlUGF0aCB8fCAhZWxlbWVudCB8fCAoZnJvbnRtYXR0ZXIgPz8gY2FjaGU/LmZyb250bWF0dGVyKT8uW1wiY29kZS1zdHlsZXItaWdub3JlXCJdID09PSB0cnVlKVxuXHRcdHJldHVybjtcblxuXHRlZGl0aW5nRW1iZWRzID0gZWRpdGluZ0VtYmVkcyB8fCBCb29sZWFuKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCIuY20tZW1iZWQtYmxvY2tcIikpO1xuXHRjb25zdCBzcGVjaWZpYyA9ICFlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIudmlldy1jb250ZW50ID4gKlwiKTtcblx0Y29uc3QgcHJpbnRpbmcgPSBCb29sZWFuKGVsZW1lbnQucXVlcnlTZWxlY3RvcihcImRpdi5wcmludCA+ICpcIikpIHx8IEJvb2xlYW4oZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2LnNsaWRlcyA+ICpcIikpO1xuXHRpZiAocHJpbnRpbmcgJiYgIXBsdWdpbi5zZXR0aW5ncy5kZWNvcmF0ZVByaW50KVxuXHRcdHJldHVybjtcblxuXHRjb25zdCBjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gYXdhaXQgZ2V0Q29kZWJsb2NrUHJlRWxlbWVudHMoZWxlbWVudCxzcGVjaWZpYyxlZGl0aW5nRW1iZWRzKTtcblx0aWYgKGNvZGVibG9ja1ByZUVsZW1lbnRzLmxlbmd0aCA9PT0gMCAmJiAhKGVkaXRpbmdFbWJlZHMgJiYgc3BlY2lmaWMpKVxuXHRcdHJldHVybjtcblxuXHRjb25zdCBjb2RlYmxvY2tTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsID0gZ2V0U2VjdGlvbkluZm8oY29kZWJsb2NrUHJlRWxlbWVudHNbMF0pO1xuXHRpZiAoY29kZWJsb2NrU2VjdGlvbkluZm8gJiYgc3BlY2lmaWMgJiYgIWVkaXRpbmdFbWJlZHMpXG5cdFx0YXdhaXQgcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbihjb2RlYmxvY2tQcmVFbGVtZW50cyxzb3VyY2VQYXRoLGNvZGVibG9ja1NlY3Rpb25JbmZvLHBsdWdpbik7XG5cdGVsc2UgaWYgKHNwZWNpZmljICYmIHNvdXJjZVBhdGguc3RhcnRzV2l0aChTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCkpXG5cdFx0YXdhaXQgcmVuZGVyU2V0dGluZ3MoY29kZWJsb2NrUHJlRWxlbWVudHMsc291cmNlUGF0aCxwbHVnaW4pO1xuXHRlbHNlIGlmIChzcGVjaWZpYyAmJiAhcHJpbnRpbmcpXG5cdFx0YXdhaXQgcmV0cmlnZ2VyUHJvY2Vzc29yKGVsZW1lbnQse3NvdXJjZVBhdGgsZ2V0U2VjdGlvbkluZm8sZnJvbnRtYXR0ZXJ9LHBsdWdpbixlZGl0aW5nRW1iZWRzKTtcblx0ZWxzZVxuXHRcdGF3YWl0IHJlbmRlckRvY3VtZW50KGNvZGVibG9ja1ByZUVsZW1lbnRzLHNvdXJjZVBhdGgsY2FjaGUsZWRpdGluZ0VtYmVkcyxwcmludGluZyxwbHVnaW4pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHtzb3VyY2VQYXRofToge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRpZiAoIXNvdXJjZVBhdGggfHwgIWVsZW1lbnQpXG5cdFx0cmV0dXJuO1xuXHRmb3IgKGNvbnN0IGlubGluZUNvZGVFbGVtZW50IG9mIEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZVwiKSkpIHtcblx0XHRhd2FpdCByZW1ha2VJbmxpbmVDb2RlKGlubGluZUNvZGVFbGVtZW50IGFzIEhUTUxFbGVtZW50LHBsdWdpbik7XG5cdH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cygpOiB2b2lkIHtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5jb2RlLXN0eWxlci1wcmUtcGFyZW50XCIpLmZvckVhY2goY29kZWJsb2NrUHJlUGFyZW50ID0+IHtcblx0XHRjb2RlYmxvY2tQcmVQYXJlbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXByZS1wYXJlbnRcIik7XG5cdH0pO1xuXHRbXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZSBkaXZbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ11cIikpLFxuXHRcdC4uLkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmUgZGl2W2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXVwiKSksXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZSBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIikpLFxuXHRdLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LnJlbW92ZSgpKTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmVcIikuZm9yRWFjaCgoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1wcmVcIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRydWUtaGVpZ2h0XCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtbnVtYmVyLW1hcmdpblwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwid2hpdGUtc3BhY2VcIik7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0XCIpLmZvckVhY2goKGV4ZWN1dGVDb2RlT3V0cHV0OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LmNsYXNzTGlzdC5yZW1vdmUoXCJleGVjdXRlLWNvZGUtb3V0cHV0XCIpO1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS10cnVlLWhlaWdodFwiKTtcblx0XHRleGVjdXRlQ29kZU91dHB1dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIik7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZTpudGgtb2YtdHlwZSgxKVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tdHJ1ZS1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtd3JhcHBpbmdcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtYWN0aXZlLXdyYXBwaW5nXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIndoaXRlLXNwYWNlXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTCA9IEFycmF5LmZyb20oY29kZWJsb2NrQ29kZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcImNvZGUgPiBbY2xhc3MqPVxcXCJjb2RlLXN0eWxlci1saW5lXFxcIl1cIikpLnJlZHVjZSgocmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBjb2RlYmxvY2tMaW5lOiBIVE1MRWxlbWVudCk6IEFycmF5PHN0cmluZz4gPT4ge1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrTGluZVRleHQgPSAoY29kZWJsb2NrTGluZS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KTtcblx0XHRcdGlmIChjb2RlYmxvY2tMaW5lVGV4dClcblx0XHRcdFx0cmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzLnB1c2goY29kZWJsb2NrTGluZVRleHQuaW5uZXJIVE1MKTtcblx0XHRcdHJldHVybiByZWNvbnN0cnVjdGVkQ29kZWJsb2NrTGluZXM7XG5cdFx0fSxbXSkuam9pbihcIlxcblwiKStcIlxcblwiO1xuXHR9KTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIjpub3QocHJlKSA+IGNvZGVcIikuZm9yRWFjaCgoaW5saW5lQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWhpZ2hsaWdodGVkXCIpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1oaWdobGlnaHQtaWdub3JlXCIpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dCA9IGlubGluZUNvZGVFbGVtZW50LmdldEF0dHJpYnV0ZShcInBhcmFtZXRlcnNcIikgKyBpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQ7XG5cdH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbihjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIGNvZGVibG9ja1NlY3Rpb25JbmZvOiBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzID0gKGF3YWl0IHBhcnNlQ29kZWJsb2NrU291cmNlKEFycmF5LmZyb20oe2xlbmd0aDogY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZUVuZC1jb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lU3RhcnQrMX0sIChfLG51bSkgPT4gbnVtICsgY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZVN0YXJ0KS5tYXAoKGxpbmVOdW1iZXIpPT5jb2RlYmxvY2tTZWN0aW9uSW5mby50ZXh0LnNwbGl0KFwiXFxuXCIpW2xpbmVOdW1iZXJdKSxwbHVnaW4sc291cmNlUGF0aCkpLmNvZGVibG9ja3NQYXJhbWV0ZXJzO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLCBjb2RlYmxvY2tzUGFyYW1ldGVycywgc291cmNlUGF0aCwgdHJ1ZSwgZmFsc2UsIHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJTZXR0aW5ncyhjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVycyA9IChhd2FpdCBwYXJzZUNvZGVibG9ja1NvdXJjZShzb3VyY2VQYXRoLnN1YnN0cmluZyhTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWC5sZW5ndGgpLnNwbGl0KFwiXFxuXCIpLHBsdWdpbikpLmNvZGVibG9ja3NQYXJhbWV0ZXJzO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLGNvZGVibG9ja3NQYXJhbWV0ZXJzLHNvdXJjZVBhdGgsdHJ1ZSxmYWxzZSxwbHVnaW4pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyRG9jdW1lbnQoY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Piwgc291cmNlUGF0aDogc3RyaW5nLCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsLCBlZGl0aW5nRW1iZWRzOiBib29sZWFuLCBwcmludGluZzogYm9vbGVhbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiA9IGF3YWl0IGdldENvZGVibG9ja3NQYXJhbWV0ZXJzKHNvdXJjZVBhdGgsY2FjaGUscGx1Z2luLGVkaXRpbmdFbWJlZHMpO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLGNvZGVibG9ja3NQYXJhbWV0ZXJzLHNvdXJjZVBhdGgsIXByaW50aW5nLHRydWUscGx1Z2luKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZ2dlclByb2Nlc3NvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dDoge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZWRpdGluZ0VtYmVkczogYm9vbGVhbikge1xuXHRpZiAoZWxlbWVudC5tYXRjaFBhcmVudChcImRpdi5ibG9jay1sYW5ndWFnZS1kYXRhdmlld2pzXCIpICYmIGlzQ29kZWJsb2NrSWdub3JlZChcImRhdGF2aWV3anNcIixwbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCkpXG5cdFx0cmV0dXJuO1xuXHRhd2FpdCBzbGVlcCg1MCk7XG5cdGVkaXRpbmdFbWJlZHMgPSBlZGl0aW5nRW1iZWRzIHx8IEJvb2xlYW4oZWxlbWVudC5tYXRjaFBhcmVudChcIi5jbS1lbWJlZC1ibG9ja1wiKSk7XG5cdGlmIChlZGl0aW5nRW1iZWRzIHx8ICFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImFkbW9uaXRpb24tY29udGVudFwiKSkge1xuXHRcdGNvbnN0IGNvbnRlbnRFbCA9IGVsZW1lbnQubWF0Y2hQYXJlbnQoXCIudmlldy1jb250ZW50XCIpID8/IGVsZW1lbnQubWF0Y2hQYXJlbnQoXCJkaXYucHJpbnRcIik7XG5cdFx0aWYgKGNvbnRlbnRFbCAhPT0gbnVsbClcblx0XHRcdGF3YWl0IHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoY29udGVudEVsIGFzIEhUTUxFbGVtZW50LGNvbnRleHQscGx1Z2luLGVkaXRpbmdFbWJlZHMpOyAvLyBSZS1yZW5kZXIgd2hvbGUgZG9jdW1lbnRcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4sIGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiwgc291cmNlUGF0aDogc3RyaW5nLCBkeW5hbWljOiBib29sZWFuLCBza2lwU3R5bGVkOiBib29sZWFuLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKGNvZGVibG9ja1ByZUVsZW1lbnRzLmxlbmd0aCAhPT0gY29kZWJsb2Nrc1BhcmFtZXRlcnMubGVuZ3RoKVxuXHRcdHJldHVybjtcblx0Zm9yIChjb25zdCBba2V5LGNvZGVibG9ja1ByZUVsZW1lbnRdIG9mIEFycmF5LmZyb20oY29kZWJsb2NrUHJlRWxlbWVudHMpLmVudHJpZXMoKSkge1xuXHRcdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBjb2RlYmxvY2tzUGFyYW1ldGVyc1trZXldO1xuXHRcdGNvbnN0IGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJwcmUgPiBjb2RlXCIpO1xuXHRcdGlmICghY29kZWJsb2NrQ29kZUVsZW1lbnQpXG5cdFx0XHRyZXR1cm47XG5cdFx0aWYgKEFycmF5LmZyb20oY29kZWJsb2NrQ29kZUVsZW1lbnQuY2xhc3NMaXN0KS5zb21lKGNsYXNzTmFtZSA9PiAvXmxhbmd1YWdlLVxcUysvLnRlc3QoY2xhc3NOYW1lKSkpXG5cdFx0XHR3aGlsZSghY29kZWJsb2NrQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXMtbG9hZGVkXCIpKVxuXHRcdFx0XHRhd2FpdCBzbGVlcCgyKTtcblx0XHRpZiAoc2tpcFN0eWxlZCAmJiBjb2RlYmxvY2tDb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiY29kZSBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ11cIikpXG5cdFx0XHRjb250aW51ZTtcblx0XHRpZiAoaXNMYW5ndWFnZUlnbm9yZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxwbHVnaW4uc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlKVxuXHRcdFx0Y29udGludWU7XG5cdFx0YXdhaXQgcmVtYWtlQ29kZWJsb2NrKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1ByZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLGR5bmFtaWMscGx1Z2luKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1ha2VDb2RlYmxvY2soY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgc291cmNlUGF0aDogc3RyaW5nLCBkeW5hbWljOiBib29sZWFuLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKGR5bmFtaWMpXG5cdFx0cGx1Z2luLmV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGNvZGVibG9ja1ByZUVsZW1lbnQse2NoaWxkTGlzdDogdHJ1ZSxzdWJ0cmVlOiB0cnVlLGF0dHJpYnV0ZXM6IHRydWUsY2hhcmFjdGVyRGF0YTogdHJ1ZX0pOyAvLyBBZGQgRXhlY3V0ZSBDb2RlIE9ic2VydmVyXG5cblx0aW5zZXJ0SGVhZGVyKGNvZGVibG9ja1ByZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLHBsdWdpbixkeW5hbWljKTtcblxuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4uZ2V0UHJlQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGR5bmFtaWMpKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkZWZhdWx0Rm9sZFwiLGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkLnRvU3RyaW5nKCkpO1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudC5wYXJlbnRFbGVtZW50KVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItcHJlLXBhcmVudFwiKTtcblxuXHRpZiAoIWNvZGVibG9ja0NvZGVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjb2RlIFtjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVwiKSkgLy8gSWdub3JlIHN0eWxlZCBsaW5lc1xuXHRcdGRlY29yYXRlQ29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZW1ha2VJbmxpbmVDb2RlKGlubGluZUNvZGVFbGVtZW50OiBIVE1MRWxlbWVudCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmICghcGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0IHx8IGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImNvZGUtc3R5bGVyLWlubGluZVwiKSlcblx0XHRyZXR1cm47XG5cdGNvbnN0IGlubGluZUNvZGVUZXh0ID0gaW5saW5lQ29kZUVsZW1lbnQuaW5uZXJUZXh0O1xuXHRjb25zdCB7cGFyYW1ldGVycyx0ZXh0fSA9IHBhcnNlSW5saW5lQ29kZShpbmxpbmVDb2RlVGV4dCk7XG5cdGlmIChwYXJhbWV0ZXJzKSB7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuaW5uZXJIVE1MID0gYXdhaXQgZ2V0SGlnaGxpZ2h0ZWRIVE1MKHBhcmFtZXRlcnMsdGV4dCxwbHVnaW4pO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCA9IGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCArIFwiJlplcm9XaWR0aFNwYWNlO1wiO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1pbmxpbmVcIik7XG5cdFx0Y29uc3QgcGFyYW1ldGVyU3RyaW5nID0gaW5saW5lQ29kZVRleHQuc3Vic3RyaW5nKDAsaW5saW5lQ29kZVRleHQubGFzdEluZGV4T2YodGV4dCkpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LnNldEF0dHJpYnV0ZShcInBhcmFtZXRlcnNcIixwYXJhbWV0ZXJTdHJpbmcpOyAvLyBTdG9yZSBwYXJhbWV0ZXIgc3RyaW5nIGFzIGF0dHJpYnV0ZSBzbyBvcmlnaW5hbCB0ZXh0IGNhbiBiZSByZXN0b3JlZCBvbiBwbHVnaW4gcmVtb3ZhbFxuXHRcdGlmIChwYXJhbWV0ZXJzLmljb24gfHwgcGFyYW1ldGVycy50aXRsZSlcblx0XHRcdGlubGluZUNvZGVFbGVtZW50Lmluc2VydEJlZm9yZShjcmVhdGVJbmxpbmVPcGVuZXIocGFyYW1ldGVycyxwbHVnaW4ubGFuZ3VhZ2VJY29ucyksaW5saW5lQ29kZUVsZW1lbnQuY2hpbGROb2Rlc1swXSk7XG5cdH0gZWxzZSBpZiAoIXBhcmFtZXRlcnMgJiYgdGV4dCkge1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dCA9IHRleHQ7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWlubGluZVwiKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb2RlYmxvY2tQcmVFbGVtZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCwgc3BlY2lmaWM6IGJvb2xlYW4sZWRpdGluZ0VtYmVkczogYm9vbGVhbik6IFByb21pc2U8QXJyYXk8SFRNTEVsZW1lbnQ+PiB7XG5cdGxldCBjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+O1xuXHRpZiAoIWVkaXRpbmdFbWJlZHMgJiYgIXNwZWNpZmljKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWFya2Rvd24tcmVhZGluZy12aWV3IHByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdGVsc2UgaWYgKGVkaXRpbmdFbWJlZHMgJiYgIXNwZWNpZmljKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWFya2Rvd24tc291cmNlLXZpZXcgLmNtLWVtYmVkLWJsb2NrIHByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdGVsc2UgaWYgKCFlZGl0aW5nRW1iZWRzICYmIHNwZWNpZmljKSB7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdFx0Y29uc3QgYWRtb25pdGlvbkNvZGVFbGVtZW50ID0gY29kZWJsb2NrUHJlRWxlbWVudHM/LlswXT8ucXVlcnlTZWxlY3RvcihcInByZTpub3QoW2NsYXNzXSkgPiBjb2RlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtYWQtXFxcIl1cIik7XG5cdFx0aWYgKGFkbW9uaXRpb25Db2RlRWxlbWVudCkge1xuXHRcdFx0YXdhaXQgc2xlZXAoNTApOyAvL1RPRE9cblx0XHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRcdH1cblx0fSBlbHNlXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBbXTtcblx0cmV0dXJuIGNvZGVibG9ja1ByZUVsZW1lbnRzO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29kZWJsb2Nrc1BhcmFtZXRlcnMoc291cmNlUGF0aDogc3RyaW5nLCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+PiB7XG5cdGxldCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4gPSBbXTtcblx0Y29uc3QgZmlsZUNvbnRlbnRMaW5lcyA9IGF3YWl0IGdldEZpbGVDb250ZW50TGluZXMoc291cmNlUGF0aCxwbHVnaW4pO1xuXHRpZiAoIWZpbGVDb250ZW50TGluZXMpXG5cdFx0cmV0dXJuIFtdO1xuXG5cdGlmICh0eXBlb2YgY2FjaGU/LnNlY3Rpb25zICE9PSBcInVuZGVmaW5lZFwiKSB7XG5cdFx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIGNhY2hlLnNlY3Rpb25zKSB7XG5cdFx0XHRpZiAoIWVkaXRpbmdFbWJlZHMgfHwgc2VjdGlvbi50eXBlID09PSBcImNvZGVcIiB8fCBzZWN0aW9uLnR5cGUgPT09IFwiY2FsbG91dFwiKSB7XG5cdFx0XHRcdGNvbnN0IHBhcnNlZENvZGVibG9ja3NQYXJhbWV0ZXJzID0gYXdhaXQgcGFyc2VDb2RlYmxvY2tTb3VyY2UoZmlsZUNvbnRlbnRMaW5lcy5zbGljZShzZWN0aW9uLnBvc2l0aW9uLnN0YXJ0LmxpbmUsc2VjdGlvbi5wb3NpdGlvbi5lbmQubGluZSsxKSxwbHVnaW4sc291cmNlUGF0aCk7XG5cdFx0XHRcdGlmICghZWRpdGluZ0VtYmVkcyB8fCBwYXJzZWRDb2RlYmxvY2tzUGFyYW1ldGVycy5uZXN0ZWQpXG5cdFx0XHRcdFx0Y29kZWJsb2Nrc1BhcmFtZXRlcnMgPSBjb2RlYmxvY2tzUGFyYW1ldGVycy5jb25jYXQocGFyc2VkQ29kZWJsb2Nrc1BhcmFtZXRlcnMuY29kZWJsb2Nrc1BhcmFtZXRlcnMpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlXG5cdFx0Y29uc29sZS5lcnJvcihgTWV0YWRhdGEgY2FjaGUgbm90IGZvdW5kIGZvciBmaWxlOiAke3NvdXJjZVBhdGh9YCk7XG5cdHJldHVybiBjb2RlYmxvY2tzUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIGluc2VydEhlYWRlcihjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGR5bmFtaWM6IGJvb2xlYW4pOiB2b2lkIHtcblx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlSGVhZGVyKGNvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdGlmIChkeW5hbWljKVxuXHRcdGhlYWRlckNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoKT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCk7fSk7IC8vIEFkZCBsaXN0ZW5lciBmb3IgaGVhZGVyIGZvbGRpbmcgb24gY2xpY2tcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5pbnNlcnRCZWZvcmUoaGVhZGVyQ29udGFpbmVyLGNvZGVibG9ja1ByZUVsZW1lbnQuY2hpbGROb2Rlc1swXSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVhZGluZ0RvY3VtZW50Rm9sZChjb250ZW50RWw6IEhUTUxFbGVtZW50LCBmb2xkPzogYm9vbGVhbikge1xuXHRjb25zdCBjb2RlYmxvY2tQcmVFbGVtZW50cyA9IGNvbnRlbnRFbC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZVwiKTtcblx0aWYgKHR5cGVvZiBmb2xkID09PSBcInVuZGVmaW5lZFwiKSAvL1JldHVybiBhbGwgYmxvY2tzIHRvIG9yaWdpbmFsIHN0YXRlXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMuZm9yRWFjaCgoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQpPT57dG9nZ2xlRm9sZChjb2RlYmxvY2tQcmVFbGVtZW50LChjb2RlYmxvY2tQcmVFbGVtZW50LmdldEF0dHJpYnV0ZShcImRlZmF1bHRGb2xkXCIpPz9cImZhbHNlXCIpPT09XCJ0cnVlXCIpO30pO1xuXHRlbHNlIC8vRm9sZCBvciB1bmZvbGQgYWxsIGJsb2Nrc1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzLmZvckVhY2goKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50KT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCxmb2xkKTt9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHRvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQsIGZvbGQ/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKFwiY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW5cIikpXG5cdFx0cmV0dXJuO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgPiBjb2RlXCIpLmZvckVhY2goKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCk9PmNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwibWF4LWhlaWdodFwiLGBjYWxjKCR7TWF0aC5jZWlsKGNvZGVibG9ja0NvZGVFbGVtZW50LnNjcm9sbEhlaWdodCswLjAxKX1weCArIHZhcigtLWNvZGUtcGFkZGluZykgKiAke2NvZGVibG9ja0NvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImV4ZWN1dGUtY29kZS1vdXRwdXRcIik/XCIzLjUgKyB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKVwiOlwiMlwifSlgKSk7XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhpZGUtc2Nyb2xsXCIpO1xuXHRhd2FpdCBzbGVlcCgxKTtcblx0aWYgKHR5cGVvZiBmb2xkID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0ZWxzZVxuXHRcdGZvbGQ/Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpOmNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0YXdhaXQgc2xlZXAoVFJBTlNJVElPTl9MRU5HVEgpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgPiBjb2RlXCIpLmZvckVhY2goKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCk9PmNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKSk7XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImhpZGUtc2Nyb2xsXCIpO1xufVxuZnVuY3Rpb24gZ2V0UHJlQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBkeW5hbWljOiBib29sZWFuKTogQXJyYXk8c3RyaW5nPiB7XG5cdGNvbnN0IHByZUNsYXNzTGlzdCA9IFtcImNvZGUtc3R5bGVyLXByZVwiXTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpXG5cdFx0cHJlQ2xhc3NMaXN0LnB1c2goYGxhbmd1YWdlLSR7Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX1gKTtcblx0aWYgKGR5bmFtaWMpIHtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwLmFsd2F5c0VuYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAuYWN0aXZlV3JhcD9cInVud3JhcHBlZC1pbmFjdGl2ZVwiOlwidW53cmFwcGVkXCIpO1xuXHRcdGVsc2UgaWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcC5hbHdheXNEaXNhYmxlZClcblx0XHRcdHByZUNsYXNzTGlzdC5wdXNoKFwid3JhcHBlZFwiKTtcblx0fVxuXHRyZXR1cm4gcHJlQ2xhc3NMaXN0O1xufVxuZnVuY3Rpb24gZGVjb3JhdGVDb2RlYmxvY2tMaW5lcyhjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogdm9pZCB7XG5cdGxldCBpbmRlbnRhdGlvbiA9IDA7XG5cdGdldENvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50LHNvdXJjZVBhdGgscGx1Z2luKS5mb3JFYWNoKChsaW5lLGluZGV4LGNvZGVibG9ja0xpbmVzKSA9PiB7XG5cdFx0Y29uc3QgY3VycmVudEluZGVudGF0aW9uID0gY291bnRUYWJzKGxpbmUpO1xuXHRcdGlmIChjdXJyZW50SW5kZW50YXRpb24gPiBpbmRlbnRhdGlvbikge1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBBZGQgZm9sZCB0byBwcmV2aW91cyBwb2ludFxuXHRcdFx0aW5kZW50YXRpb24gPSBjdXJyZW50SW5kZW50YXRpb247XG5cdFx0fSBlbHNlIGlmIChjdXJyZW50SW5kZW50YXRpb24gPCBpbmRlbnRhdGlvbikge1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBDbG9zZSBhbGwgZm9sZHMgdG8gbGV2ZWwgb2YgY3VycmVudCBpbmRlbnRhdGlvblxuXHRcdFx0aW5kZW50YXRpb24gPSBjdXJyZW50SW5kZW50YXRpb247XG5cdFx0fVxuXHRcdGlmIChjdXJyZW50SW5kZW50YXRpb24gPiAwKSB7XG5cdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCBpbmRlbnRhdGlvbiBsaW5lXG5cdFx0fVxuXHRcdGlmIChpbmRleCAhPT0gY29kZWJsb2NrTGluZXMubGVuZ3RoLTEpXG5cdFx0XHRpbnNlcnRMaW5lV3JhcHBlcihjb2RlYmxvY2tDb2RlRWxlbWVudCxjb2RlYmxvY2tQYXJhbWV0ZXJzLGluZGV4KzEsbGluZSxwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycyk7XG5cdH0pO1xufVxuZnVuY3Rpb24gZ2V0Q29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEFycmF5PHN0cmluZz4ge1xuXHRjb25zdCBodG1sVHJlZSA9IGZyb21IdG1sKGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKC9cXG4vZyxcIjxicj5cIikse2ZyYWdtZW50OiB0cnVlfSk7XG5cdGxldCBjb2RlYmxvY2tIVE1MID0gY29kZWJsb2NrQ29kZUVsZW1lbnQuaW5uZXJIVE1MO1xuXHR2aXNpdFBhcmVudHMoaHRtbFRyZWUsW1widGV4dFwiLFwiZWxlbWVudFwiXSwobm9kZSxhbmNlc3RvcnMpPT57XG5cdFx0aWYgKG5vZGUudHlwZSA9PT0gXCJlbGVtZW50XCIgJiYgbm9kZS50YWdOYW1lID09PSBcImJyXCIpIHtcblx0XHRcdGlmIChhbmNlc3RvcnMubGVuZ3RoID49IDIpIHtcblx0XHRcdFx0Y29kZWJsb2NrSFRNTCA9IGNvZGVibG9ja0hUTUwucmVwbGFjZSgvXFxuLyxhbmNlc3RvcnMuc2xpY2UoMSkucmVkdWNlKChyZXN1bHQsZWxlbWVudCk9Pntcblx0XHRcdFx0XHRjb25zdCBlbGVtZW50Q29weSA9IHN0cnVjdHVyZWRDbG9uZShlbGVtZW50KTtcblx0XHRcdFx0XHRlbGVtZW50Q29weS5jaGlsZHJlbiA9IFtdO1xuXHRcdFx0XHRcdGNvbnN0IHNwbGl0VGFnID0gdG9IdG1sKGVsZW1lbnRDb3B5KS5zcGxpdCgvKD88PT4pKD89PFxcLykvKTtcblx0XHRcdFx0XHRyZXR1cm4gc3BsaXRUYWcuc3BsaWNlKC0xKStyZXN1bHQrc3BsaXRUYWcuam9pbihcIlwiKTtcblx0XHRcdFx0fSxcIjxicj5cIikpO1xuXHRcdFx0fSBlbHNlXG5cdFx0XHRcdGNvZGVibG9ja0hUTUwgPSBjb2RlYmxvY2tIVE1MLnJlcGxhY2UoL1xcbi8sXCI8YnI+XCIpO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IHNwbGl0SHRtbFRyZWUgPSBmcm9tSHRtbChjb2RlYmxvY2tIVE1MLHtmcmFnbWVudDogdHJ1ZX0pO1xuXHR2aXNpdFBhcmVudHMoc3BsaXRIdG1sVHJlZSxbXCJlbGVtZW50XCJdLChub2RlKT0+e1xuXHRcdGlmIChub2RlLnR5cGUgPT09IFwiZWxlbWVudFwiICYmIEFycmF5LmlzQXJyYXkobm9kZS5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkgJiYgbm9kZS5wcm9wZXJ0aWVzPy5jbGFzc05hbWU/LmluY2x1ZGVzKFwiY29tbWVudFwiKSkge1xuXHRcdFx0bm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4ucmVkdWNlKChyZXN1bHQ6IEFycmF5PEVsZW1lbnRDb250ZW50PiwgY2hpbGQ6IEVsZW1lbnRDb250ZW50KTogQXJyYXk8RWxlbWVudENvbnRlbnQ+ID0+IHtcblx0XHRcdFx0aWYgKGNoaWxkLnR5cGUgIT09IFwidGV4dFwiKVxuXHRcdFx0XHRcdHJlc3VsdC5wdXNoKGNoaWxkKTtcblx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdHJlc3VsdCA9IGNvbnZlcnRDb21tZW50TGlua3MocmVzdWx0LGNoaWxkLnZhbHVlLHNvdXJjZVBhdGgscGx1Z2luKTtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH0sW10pO1xuXHRcdH1cblx0fSk7XG5cdGNvZGVibG9ja0hUTUwgPSB0b0h0bWwoc3BsaXRIdG1sVHJlZSk7XG5cdGxldCBjb2RlYmxvY2tMaW5lcyA9IGNvZGVibG9ja0hUTUwuc3BsaXQoXCI8YnI+XCIpO1xuXHRpZiAoY29kZWJsb2NrTGluZXMubGVuZ3RoID09PSAxKVxuXHRcdGNvZGVibG9ja0xpbmVzID0gW1wiXCIsXCJcIl07XG5cdGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTCA9IFwiXCI7XG5cdHJldHVybiBjb2RlYmxvY2tMaW5lcztcbn1cbmZ1bmN0aW9uIGNvbnZlcnRDb21tZW50TGlua3MocmVzdWx0OiBBcnJheTxFbGVtZW50Q29udGVudD4sIGNvbW1lbnRUZXh0OiBzdHJpbmcsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogQXJyYXk8RWxlbWVudENvbnRlbnQ+IHtcblx0Y29uc3QgbGlua01hdGNoZXMgPSBbLi4uY29tbWVudFRleHQubWF0Y2hBbGwoLyg/OlxcW1xcW1teXFxdfFxcclxcbl0rPyg/OlxcfFteXFxdfFxcclxcbl0rPyk/XFxdXFxdfFxcWy4qP1xcXVxcKC4rXFwpKS9nKV0ucmV2ZXJzZSgpO1xuXHRjb25zdCBuZXdDaGlsZHJlbiA9IGxpbmtNYXRjaGVzLnJlZHVjZSgocmVzdWx0OiBBcnJheTxFbGVtZW50Q29udGVudD4sIGxpbmtNYXRjaDogUmVnRXhwTWF0Y2hBcnJheSk6IEFycmF5PEVsZW1lbnRDb250ZW50PiA9PiB7XG5cdFx0aWYgKHR5cGVvZiBsaW5rTWF0Y2g/LmluZGV4ID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRjb25zdCBlbmRpbmcgPSBjb21tZW50VGV4dC5zbGljZShsaW5rTWF0Y2guaW5kZXggKyBsaW5rTWF0Y2hbMF0ubGVuZ3RoKTtcblx0XHRyZXN1bHQucHVzaCh7dHlwZTogXCJ0ZXh0XCIsdmFsdWU6IGVuZGluZ30pO1xuXHRcdGNvbnN0IGxpbmtUZXh0ID0gY29tbWVudFRleHQuc2xpY2UobGlua01hdGNoLmluZGV4LCBsaW5rTWF0Y2guaW5kZXggKyBsaW5rTWF0Y2hbMF0ubGVuZ3RoKTtcblx0XHRjb25zdCBsaW5rQ29udGFpbmVyID0gY3JlYXRlRGl2KCk7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCwgbGlua1RleHQsIGxpbmtDb250YWluZXIsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdFx0Y29uc3QgbGlua0NoaWxkID0gKGZyb21IdG1sKGxpbmtDb250YWluZXIuaW5uZXJIVE1MLHtmcmFnbWVudDogdHJ1ZX0pPy5jaGlsZHJlbj8uWzBdIGFzIEVsZW1lbnQpPy5jaGlsZHJlbj8uWzBdO1xuXHRcdHJlc3VsdC5wdXNoKGxpbmtDaGlsZCk7XG5cdFx0Y29tbWVudFRleHQgPSBjb21tZW50VGV4dC5zbGljZSgwLCBsaW5rTWF0Y2guaW5kZXgpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sW10pLnJldmVyc2UoKTtcblx0cmV0dXJuIFsuLi5yZXN1bHQsIC4uLlt7dHlwZTogXCJ0ZXh0XCIsdmFsdWU6IGNvbW1lbnRUZXh0fSBhcyBFbGVtZW50Q29udGVudCwuLi5uZXdDaGlsZHJlbl1dO1xufVxuZnVuY3Rpb24gaW5zZXJ0TGluZVdyYXBwZXIoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBsaW5lTnVtYmVyOiBudW1iZXIsIGxpbmU6IHN0cmluZywgc2hvd0xpbmVOdW1iZXJzOiBib29sZWFuKTogdm9pZCB7XG5cdGNvbnN0IGxpbmVXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZVdyYXBwZXIpO1xuXHRnZXRMaW5lQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGxpbmVOdW1iZXIsbGluZSkuZm9yRWFjaCgobGluZUNsYXNzKSA9PiBsaW5lV3JhcHBlci5jbGFzc0xpc3QuYWRkKGxpbmVDbGFzcykpO1xuXHRpZiAoKHNob3dMaW5lTnVtYmVycyAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkKVxuXHRcdGxpbmVXcmFwcGVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyXCIsIHRleHQ6IChsaW5lTnVtYmVyK2NvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSkpO1xuXHRsaW5lV3JhcHBlci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1saW5lLXRleHRcIiwgdGV4dDogc2FuaXRpemVIVE1MVG9Eb20obGluZSAhPT0gXCJcIiA/IGxpbmUgOiBcIjxicj5cIil9KSk7XG59XG5mdW5jdGlvbiBjb3VudFRhYnModGV4dDogc3RyaW5nKTogbnVtYmVyIHtcblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBNYWtlIHdvcmsgd2l0aCBzcGFjZSBpbmRlbnRhdGlvbiB0b29cblx0bGV0IGNvdW50ID0gMDtcblx0bGV0IGluZGV4ID0gMDtcblx0d2hpbGUgKHRleHQuY2hhckF0KGluZGV4KyspID09PSBcIlxcdFwiKVxuXHRcdGNvdW50Kys7XG5cdHJldHVybiBjb3VudDtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldEhpZ2hsaWdodGVkSFRNTChwYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgdGV4dDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHN0cmluZz4ge1xuXHRjb25zdCB0ZW1wb3JhcnlSZW5kZXJpbmdDb250YWluZXIgPSBjcmVhdGVEaXYoKTtcblx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxbXCJgYGBcIixwYXJhbWV0ZXJzLmxhbmd1YWdlLFwiXFxuXCIsdGV4dCxcIlxcblwiLFwiYGBgXCJdLmpvaW4oXCJcIiksdGVtcG9yYXJ5UmVuZGVyaW5nQ29udGFpbmVyLFwiXCIscGx1Z2luKTtcblx0Y29uc3QgcmVuZGVyZWRDb2RlRWxlbWVudCA9IHRlbXBvcmFyeVJlbmRlcmluZ0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiY29kZVwiKTtcblx0aWYgKCFyZW5kZXJlZENvZGVFbGVtZW50KVxuXHRcdHJldHVybiBcIkVSUk9SOiBDb3VsZCBub3QgcmVuZGVyIGhpZ2hsaWdodGVkIGNvZGVcIjtcblx0d2hpbGUocGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0ICYmICFyZW5kZXJlZENvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImlzLWxvYWRlZFwiKSlcblx0XHRhd2FpdCBzbGVlcCgyKTtcblx0cmV0dXJuIHJlbmRlcmVkQ29kZUVsZW1lbnQuaW5uZXJIVE1MO1xufVxuXG5leHBvcnQgY29uc3QgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuXHRtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSA9PiB7XG5cdFx0aWYgKG11dGF0aW9uLnR5cGUgPT09IFwiY2hpbGRMaXN0XCIgJiYgKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZSA9PT0gXCJQUkVcIikgeyAvLyBBZGQgZXhlY3V0ZSBjb2RlIG91dHB1dFxuXHRcdFx0Y29uc3QgZXhlY3V0ZUNvZGVPdXRwdXQgPSAobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKFwicHJlID4gY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0XCIpIGFzIEhUTUxFbGVtZW50O1xuXHRcdFx0aWYgKGV4ZWN1dGVDb2RlT3V0cHV0KVxuXHRcdFx0XHRleGVjdXRlQ29kZU91dHB1dC5jbGFzc0xpc3QuYWRkKFwiZXhlY3V0ZS1jb2RlLW91dHB1dFwiKTtcblx0XHR9XG5cdH0pO1xufSk7XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUGFyZW50fSBQYXJlbnRcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBGblxuICogQHRlbXBsYXRlIEZhbGxiYWNrXG4gKiBAdHlwZWRlZiB7Rm4gZXh0ZW5kcyAodmFsdWU6IGFueSkgPT4gdmFsdWUgaXMgaW5mZXIgVGhpbmcgPyBUaGluZyA6IEZhbGxiYWNrfSBQcmVkaWNhdGVcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBDaGVja1xuICogICBDaGVjayB0aGF0IGFuIGFyYml0cmFyeSB2YWx1ZSBpcyBhIG5vZGUuXG4gKiBAcGFyYW0ge3Vua25vd259IHRoaXNcbiAqICAgVGhlIGdpdmVuIGNvbnRleHQuXG4gKiBAcGFyYW0ge3Vua25vd259IFtub2RlXVxuICogICBBbnl0aGluZyAodHlwaWNhbGx5IGEgbm9kZSkuXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtpbmRleF1cbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBvc2l0aW9uIGluIGl0cyBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwYXJlbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGlzIGlzIGEgbm9kZSBhbmQgcGFzc2VzIGEgdGVzdC5cbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBOb2RlfSBQcm9wc1xuICogICBPYmplY3QgdG8gY2hlY2sgZm9yIGVxdWl2YWxlbmNlLlxuICpcbiAqICAgTm90ZTogYE5vZGVgIGlzIGluY2x1ZGVkIGFzIGl0IGlzIGNvbW1vbiBidXQgaXMgbm90IGluZGV4YWJsZS5cbiAqXG4gKiBAdHlwZWRlZiB7QXJyYXk8UHJvcHMgfCBUZXN0RnVuY3Rpb24gfCBzdHJpbmc+IHwgUHJvcHMgfCBUZXN0RnVuY3Rpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBUZXN0XG4gKiAgIENoZWNrIGZvciBhbiBhcmJpdHJhcnkgbm9kZS5cbiAqXG4gKiBAY2FsbGJhY2sgVGVzdEZ1bmN0aW9uXG4gKiAgIENoZWNrIGlmIGEgbm9kZSBwYXNzZXMgYSB0ZXN0LlxuICogQHBhcmFtIHt1bmtub3dufSB0aGlzXG4gKiAgIFRoZSBnaXZlbiBjb250ZXh0LlxuICogQHBhcmFtIHtOb2RlfSBub2RlXG4gKiAgIEEgbm9kZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBbaW5kZXhdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnQgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwYXJlbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZCB8IHZvaWR9XG4gKiAgIFdoZXRoZXIgdGhpcyBub2RlIHBhc3NlcyB0aGUgdGVzdC5cbiAqXG4gKiAgIE5vdGU6IGB2b2lkYCBpcyBpbmNsdWRlZCB1bnRpbCBUUyBzZWVzIG5vIHJldHVybiBhcyBgdW5kZWZpbmVkYC5cbiAqL1xuXG4vKipcbiAqIENoZWNrIGlmIGBub2RlYCBpcyBhIGBOb2RlYCBhbmQgd2hldGhlciBpdCBwYXNzZXMgdGhlIGdpdmVuIHRlc3QuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlXG4gKiAgIFRoaW5nIHRvIGNoZWNrLCB0eXBpY2FsbHkgYE5vZGVgLlxuICogQHBhcmFtIHtUZXN0fSB0ZXN0XG4gKiAgIEEgY2hlY2sgZm9yIGEgc3BlY2lmaWMgbm9kZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBvc2l0aW9uIGluIGl0cyBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBUaGUgbm9kZVx1MjAxOXMgcGFyZW50LlxuICogQHBhcmFtIHt1bmtub3dufSBjb250ZXh0XG4gKiAgIENvbnRleHQgb2JqZWN0IChgdGhpc2ApIHRvIHBhc3MgdG8gYHRlc3RgIGZ1bmN0aW9ucy5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGBub2RlYCBpcyBhIG5vZGUgYW5kIHBhc3NlcyBhIHRlc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBpcyA9XG4gIC8vIE5vdGU6IG92ZXJsb2FkcyBpbiBKU0RvYyBjYW5cdTIwMTl0IHlldCB1c2UgZGlmZmVyZW50IGBAdGVtcGxhdGVgcy5cbiAgLyoqXG4gICAqIEB0eXBlIHsoXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBzdHJpbmc+KG5vZGU6IHVua25vd24sIHRlc3Q6IENvbmRpdGlvbiwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYge3R5cGU6IENvbmRpdGlvbn0pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFByb3BzPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIENvbmRpdGlvbikgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgVGVzdEZ1bmN0aW9uPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIFByZWRpY2F0ZTxDb25kaXRpb24sIE5vZGU+KSAmXG4gICAqICAgKChub2RlPzogbnVsbCB8IHVuZGVmaW5lZCkgPT4gZmFsc2UpICZcbiAgICogICAoKG5vZGU6IHVua25vd24sIHRlc3Q/OiBudWxsIHwgdW5kZWZpbmVkLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUpICZcbiAgICogICAoKG5vZGU6IHVua25vd24sIHRlc3Q/OiBUZXN0LCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBib29sZWFuKVxuICAgKiApfVxuICAgKi9cbiAgKFxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7dW5rbm93bn0gW25vZGVdXG4gICAgICogQHBhcmFtIHtUZXN0fSBbdGVzdF1cbiAgICAgKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtpbmRleF1cbiAgICAgKiBAcGFyYW0ge1BhcmVudCB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gICAgICogQHBhcmFtIHt1bmtub3dufSBbY29udGV4dF1cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXBhcmFtc1xuICAgIGZ1bmN0aW9uIChub2RlLCB0ZXN0LCBpbmRleCwgcGFyZW50LCBjb250ZXh0KSB7XG4gICAgICBjb25zdCBjaGVjayA9IGNvbnZlcnQodGVzdClcblxuICAgICAgaWYgKFxuICAgICAgICBpbmRleCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICh0eXBlb2YgaW5kZXggIT09ICdudW1iZXInIHx8XG4gICAgICAgICAgaW5kZXggPCAwIHx8XG4gICAgICAgICAgaW5kZXggPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHBvc2l0aXZlIGZpbml0ZSBpbmRleCcpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgcGFyZW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgcGFyZW50ICE9PSBudWxsICYmXG4gICAgICAgICghaXMocGFyZW50KSB8fCAhcGFyZW50LmNoaWxkcmVuKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcGFyZW50IG5vZGUnKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIChwYXJlbnQgPT09IHVuZGVmaW5lZCB8fCBwYXJlbnQgPT09IG51bGwpICE9PVxuICAgICAgICAoaW5kZXggPT09IHVuZGVmaW5lZCB8fCBpbmRleCA9PT0gbnVsbClcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGJvdGggcGFyZW50IGFuZCBpbmRleCcpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsb29rc0xpa2VBTm9kZShub2RlKVxuICAgICAgICA/IGNoZWNrLmNhbGwoY29udGV4dCwgbm9kZSwgaW5kZXgsIHBhcmVudClcbiAgICAgICAgOiBmYWxzZVxuICAgIH1cbiAgKVxuXG4vKipcbiAqIEdlbmVyYXRlIGFuIGFzc2VydGlvbiBmcm9tIGEgdGVzdC5cbiAqXG4gKiBVc2VmdWwgaWYgeW91XHUyMDE5cmUgZ29pbmcgdG8gdGVzdCBtYW55IG5vZGVzLCBmb3IgZXhhbXBsZSB3aGVuIGNyZWF0aW5nIGFcbiAqIHV0aWxpdHkgd2hlcmUgc29tZXRoaW5nIGVsc2UgcGFzc2VzIGEgY29tcGF0aWJsZSB0ZXN0LlxuICpcbiAqIFRoZSBjcmVhdGVkIGZ1bmN0aW9uIGlzIGEgYml0IGZhc3RlciBiZWNhdXNlIGl0IGV4cGVjdHMgdmFsaWQgaW5wdXQgb25seTpcbiAqIGEgYG5vZGVgLCBgaW5kZXhgLCBhbmQgYHBhcmVudGAuXG4gKlxuICogQHBhcmFtIHtUZXN0fSB0ZXN0XG4gKiAgICogICB3aGVuIG51bGxpc2gsIGNoZWNrcyBpZiBgbm9kZWAgaXMgYSBgTm9kZWAuXG4gKiAgICogICB3aGVuIGBzdHJpbmdgLCB3b3JrcyBsaWtlIHBhc3NpbmcgYChub2RlKSA9PiBub2RlLnR5cGUgPT09IHRlc3RgLlxuICogICAqICAgd2hlbiBgZnVuY3Rpb25gIGNoZWNrcyBpZiBmdW5jdGlvbiBwYXNzZWQgdGhlIG5vZGUgaXMgdHJ1ZS5cbiAqICAgKiAgIHdoZW4gYG9iamVjdGAsIGNoZWNrcyB0aGF0IGFsbCBrZXlzIGluIHRlc3QgYXJlIGluIG5vZGUsIGFuZCB0aGF0IHRoZXkgaGF2ZSAoc3RyaWN0bHkpIGVxdWFsIHZhbHVlcy5cbiAqICAgKiAgIHdoZW4gYGFycmF5YCwgY2hlY2tzIGlmIGFueSBvbmUgb2YgdGhlIHN1YnRlc3RzIHBhc3MuXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKiAgIEFuIGFzc2VydGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnQgPVxuICAvLyBOb3RlOiBvdmVybG9hZHMgaW4gSlNEb2MgY2FuXHUyMDE5dCB5ZXQgdXNlIGRpZmZlcmVudCBgQHRlbXBsYXRlYHMuXG4gIC8qKlxuICAgKiBAdHlwZSB7KFxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgc3RyaW5nPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiB7dHlwZTogQ29uZGl0aW9ufSkgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgUHJvcHM+KHRlc3Q6IENvbmRpdGlvbikgPT4gKG5vZGU6IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIENvbmRpdGlvbikgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgVGVzdEZ1bmN0aW9uPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBQcmVkaWNhdGU8Q29uZGl0aW9uLCBOb2RlPikgJlxuICAgKiAgICgodGVzdD86IG51bGwgfCB1bmRlZmluZWQpID0+IChub2RlPzogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlKSAmXG4gICAqICAgKCh0ZXN0PzogVGVzdCkgPT4gQ2hlY2spXG4gICAqICl9XG4gICAqL1xuICAoXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtUZXN0fSBbdGVzdF1cbiAgICAgKiBAcmV0dXJucyB7Q2hlY2t9XG4gICAgICovXG4gICAgZnVuY3Rpb24gKHRlc3QpIHtcbiAgICAgIGlmICh0ZXN0ID09PSBudWxsIHx8IHRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gb2tcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjYXN0RmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRlc3QgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRlc3QpID8gYW55RmFjdG9yeSh0ZXN0KSA6IHByb3BzRmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRlc3QgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0eXBlRmFjdG9yeSh0ZXN0KVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0JylcbiAgICB9XG4gIClcblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nPn0gdGVzdHNcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gYW55RmFjdG9yeSh0ZXN0cykge1xuICAvKiogQHR5cGUge0FycmF5PENoZWNrPn0gKi9cbiAgY29uc3QgY2hlY2tzID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHRlc3RzLmxlbmd0aCkge1xuICAgIGNoZWNrc1tpbmRleF0gPSBjb252ZXJ0KHRlc3RzW2luZGV4XSlcbiAgfVxuXG4gIHJldHVybiBjYXN0RmFjdG9yeShhbnkpXG5cbiAgLyoqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiBAdHlwZSB7VGVzdEZ1bmN0aW9ufVxuICAgKi9cbiAgZnVuY3Rpb24gYW55KC4uLnBhcmFtZXRlcnMpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGVja3MubGVuZ3RoKSB7XG4gICAgICBpZiAoY2hlY2tzW2luZGV4XS5hcHBseSh0aGlzLCBwYXJhbWV0ZXJzKSkgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYW4gb2JqZWN0IGludG8gYSB0ZXN0IGZvciBhIG5vZGUgd2l0aCBhIGNlcnRhaW4gZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7UHJvcHN9IGNoZWNrXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIHByb3BzRmFjdG9yeShjaGVjaykge1xuICBjb25zdCBjaGVja0FzUmVjb3JkID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKGNoZWNrKVxuXG4gIHJldHVybiBjYXN0RmFjdG9yeShhbGwpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGZ1bmN0aW9uIGFsbChub2RlKSB7XG4gICAgY29uc3Qgbm9kZUFzUmVjb3JkID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKFxuICAgICAgLyoqIEB0eXBlIHt1bmtub3dufSAqLyAobm9kZSlcbiAgICApXG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQga2V5XG5cbiAgICBmb3IgKGtleSBpbiBjaGVjaykge1xuICAgICAgaWYgKG5vZGVBc1JlY29yZFtrZXldICE9PSBjaGVja0FzUmVjb3JkW2tleV0pIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgc3RyaW5nIGludG8gYSB0ZXN0IGZvciBhIG5vZGUgd2l0aCBhIGNlcnRhaW4gdHlwZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hlY2tcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gdHlwZUZhY3RvcnkoY2hlY2spIHtcbiAgcmV0dXJuIGNhc3RGYWN0b3J5KHR5cGUpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKi9cbiAgZnVuY3Rpb24gdHlwZShub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS50eXBlID09PSBjaGVja1xuICB9XG59XG5cbi8qKlxuICogVHVybiBhIGN1c3RvbSB0ZXN0IGludG8gYSB0ZXN0IGZvciBhIG5vZGUgdGhhdCBwYXNzZXMgdGhhdCB0ZXN0LlxuICpcbiAqIEBwYXJhbSB7VGVzdEZ1bmN0aW9ufSB0ZXN0RnVuY3Rpb25cbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gY2FzdEZhY3RvcnkodGVzdEZ1bmN0aW9uKSB7XG4gIHJldHVybiBjaGVja1xuXG4gIC8qKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogQHR5cGUge0NoZWNrfVxuICAgKi9cbiAgZnVuY3Rpb24gY2hlY2sodmFsdWUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgIGxvb2tzTGlrZUFOb2RlKHZhbHVlKSAmJlxuICAgICAgICB0ZXN0RnVuY3Rpb24uY2FsbChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicgPyBpbmRleCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBwYXJlbnQgfHwgdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICApXG4gIH1cbn1cblxuZnVuY3Rpb24gb2soKSB7XG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge3ZhbHVlIGlzIE5vZGV9XG4gKi9cbmZ1bmN0aW9uIGxvb2tzTGlrZUFOb2RlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiB2YWx1ZVxufVxuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2xvcihkKSB7XG4gIHJldHVybiBkXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IFVuaXN0Tm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5QYXJlbnR9IFVuaXN0UGFyZW50XG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7RXhjbHVkZTxpbXBvcnQoJ3VuaXN0LXV0aWwtaXMnKS5UZXN0LCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkfSBUZXN0XG4gKiAgIFRlc3QgZnJvbSBgdW5pc3QtdXRpbC1pc2AuXG4gKlxuICogICBOb3RlOiB3ZSBoYXZlIHJlbW92ZSBhbmQgYWRkIGB1bmRlZmluZWRgLCBiZWNhdXNlIG90aGVyd2lzZSB3aGVuIGdlbmVyYXRpbmdcbiAqICAgYXV0b21hdGljIGAuZC50c2AgZmlsZXMsIFRTIHRyaWVzIHRvIGZsYXR0ZW4gcGF0aHMgZnJvbSBhIGxvY2FsIHBlcnNwZWN0aXZlLFxuICogICB3aGljaCBkb2Vzblx1MjAxOXQgd29yayB3aGVuIHB1Ymxpc2hpbmcgb24gbnBtLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRm4gZXh0ZW5kcyAodmFsdWU6IGFueSkgPT4gdmFsdWUgaXMgaW5mZXIgVGhpbmdcbiAqICAgPyBUaGluZ1xuICogICA6IEZhbGxiYWNrXG4gKiApfSBQcmVkaWNhdGVcbiAqICAgR2V0IHRoZSB2YWx1ZSBvZiBhIHR5cGUgZ3VhcmQgYEZuYC5cbiAqIEB0ZW1wbGF0ZSBGblxuICogICBWYWx1ZTsgdHlwaWNhbGx5IGZ1bmN0aW9uIHRoYXQgaXMgYSB0eXBlIGd1YXJkIChzdWNoIGFzIGAoeCk6IHggaXMgWWApLlxuICogQHRlbXBsYXRlIEZhbGxiYWNrXG4gKiAgIFZhbHVlIHRvIHlpZWxkIGlmIGBGbmAgaXMgbm90IGEgdHlwZSBndWFyZC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIENoZWNrIGV4dGVuZHMgbnVsbCB8IHVuZGVmaW5lZCAvLyBObyB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogVmFsdWUgZXh0ZW5kcyB7dHlwZTogQ2hlY2t9IC8vIFN0cmluZyAodHlwZSkgdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IFZhbHVlIGV4dGVuZHMgQ2hlY2sgLy8gUGFydGlhbCB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogQ2hlY2sgZXh0ZW5kcyBGdW5jdGlvbiAvLyBGdW5jdGlvbiB0ZXN0LlxuICogICA/IFByZWRpY2F0ZTxDaGVjaywgVmFsdWU+IGV4dGVuZHMgVmFsdWVcbiAqICAgICA/IFByZWRpY2F0ZTxDaGVjaywgVmFsdWU+XG4gKiAgICAgOiBuZXZlclxuICogICA6IG5ldmVyIC8vIFNvbWUgb3RoZXIgdGVzdD9cbiAqICl9IE1hdGNoZXNPbmVcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIHByaW1pdGl2ZSBjaGVjayBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUgVmFsdWVcbiAqICAgVmFsdWU7IHR5cGljYWxseSB1bmlzdCBgTm9kZWAuXG4gKiBAdGVtcGxhdGUgQ2hlY2tcbiAqICAgVmFsdWU7IHR5cGljYWxseSBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LCBidXQgbm90IGFycmF5cy5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIENoZWNrIGV4dGVuZHMgQXJyYXk8YW55PlxuICogICA/IE1hdGNoZXNPbmU8VmFsdWUsIENoZWNrW2tleW9mIENoZWNrXT5cbiAqICAgOiBNYXRjaGVzT25lPFZhbHVlLCBDaGVjaz5cbiAqICl9IE1hdGNoZXNcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIGNoZWNrIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSBWYWx1ZVxuICogICBWYWx1ZTsgdHlwaWNhbGx5IHVuaXN0IGBOb2RlYC5cbiAqIEB0ZW1wbGF0ZSBDaGVja1xuICogICBWYWx1ZTsgdHlwaWNhbGx5IGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7MCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDcgfCA4IHwgOSB8IDEwfSBVaW50XG4gKiAgIE51bWJlcjsgY2FwcGVkIHJlYXNvbmFibHkuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SSBleHRlbmRzIDAgPyAxIDogSSBleHRlbmRzIDEgPyAyIDogSSBleHRlbmRzIDIgPyAzIDogSSBleHRlbmRzIDMgPyA0IDogSSBleHRlbmRzIDQgPyA1IDogSSBleHRlbmRzIDUgPyA2IDogSSBleHRlbmRzIDYgPyA3IDogSSBleHRlbmRzIDcgPyA4IDogSSBleHRlbmRzIDggPyA5IDogMTB9IEluY3JlbWVudFxuICogICBJbmNyZW1lbnQgYSBudW1iZXIgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIHtVaW50fSBbST0wXVxuICogICBJbmRleC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIE5vZGUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICA/IE5vZGUgZXh0ZW5kcyB7Y2hpbGRyZW46IEFycmF5PGluZmVyIENoaWxkcmVuPn1cbiAqICAgICA/IENoaWxkIGV4dGVuZHMgQ2hpbGRyZW4gPyBOb2RlIDogbmV2ZXJcbiAqICAgICA6IG5ldmVyXG4gKiAgIDogbmV2ZXJcbiAqICl9IEludGVybmFsUGFyZW50XG4gKiAgIENvbGxlY3Qgbm9kZXMgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbFBhcmVudDxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGlsZD59IFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBwYXJlbnRzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgPyBuZXZlclxuICogICA6XG4gKiAgICAgfCBJbnRlcm5hbFBhcmVudDxOb2RlLCBDaGlsZD5cbiAqICAgICB8IEludGVybmFsQW5jZXN0b3I8Tm9kZSwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+LCBNYXgsIEluY3JlbWVudDxEZXB0aD4+XG4gKiApfSBJbnRlcm5hbEFuY2VzdG9yXG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIGFuY2VzdG9ycyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbEFuY2VzdG9yPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoaWxkPn0gQW5jZXN0b3JcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgYW5jZXN0b3JzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgVHJlZSBleHRlbmRzIFVuaXN0UGFyZW50XG4gKiAgICAgPyBEZXB0aCBleHRlbmRzIE1heFxuICogICAgICAgPyBUcmVlXG4gKiAgICAgICA6IFRyZWUgfCBJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWVbJ2NoaWxkcmVuJ11bbnVtYmVyXSwgTWF4LCBJbmNyZW1lbnQ8RGVwdGg+PlxuICogICAgIDogVHJlZVxuICogKX0gSW5jbHVzaXZlRGVzY2VuZGFudFxuICogICBDb2xsZWN0IGFsbCAoaW5jbHVzaXZlKSBkZXNjZW5kYW50cyBvZiBgVHJlZWAuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgc2VlbXMgdG8gYmUgdGhlIGZhc3Rlc3Qgd2F5IHRvXG4gKiAgID4gcmVjdXJzZSB3aXRob3V0IGFjdHVhbGx5IHJ1bm5pbmcgaW50byBhbiBpbmZpbml0ZSBsb29wLCB3aGljaCB0aGVcbiAqICAgPiBwcmV2aW91cyB2ZXJzaW9uIGRpZC5cbiAqICAgPlxuICogICA+IFByYWN0aWNhbGx5LCBhIG1heCBvZiBgMmAgaXMgdHlwaWNhbGx5IGVub3VnaCBhc3N1bWluZyBhIGBSb290YCBpc1xuICogICA+IHBhc3NlZCwgYnV0IGl0IGRvZXNuXHUyMDE5dCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxuICogICA+IEl0IGdldHMgaGlnaGVyIHdpdGggYExpc3QgPiBMaXN0SXRlbSA+IFRhYmxlID4gVGFibGVSb3cgPiBUYWJsZUNlbGxgLlxuICogICA+IFVzaW5nIHVwIHRvIGAxMGAgZG9lc25cdTIwMTl0IGh1cnQgb3IgaGVscCBlaXRoZXIuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBUcmVlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtNYXg9MTBdXG4gKiAgIE1heDsgc2VhcmNoZXMgdXAgdG8gdGhpcyBkZXB0aC5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0RlcHRoPTBdXG4gKiAgIEN1cnJlbnQgZGVwdGguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7J3NraXAnIHwgYm9vbGVhbn0gQWN0aW9uXG4gKiAgIFVuaW9uIG9mIHRoZSBhY3Rpb24gdHlwZXMuXG4gKlxuICogQHR5cGVkZWYge251bWJlcn0gSW5kZXhcbiAqICAgTW92ZSB0byB0aGUgc2libGluZyBhdCBgaW5kZXhgIG5leHQgKGFmdGVyIG5vZGUgaXRzZWxmIGlzIGNvbXBsZXRlbHlcbiAqICAgdHJhdmVyc2VkKS5cbiAqXG4gKiAgIFVzZWZ1bCBpZiBtdXRhdGluZyB0aGUgdHJlZSwgc3VjaCBhcyByZW1vdmluZyB0aGUgbm9kZSB0aGUgdmlzaXRvciBpc1xuICogICBjdXJyZW50bHkgb24sIG9yIGFueSBvZiBpdHMgcHJldmlvdXMgc2libGluZ3MuXG4gKiAgIFJlc3VsdHMgbGVzcyB0aGFuIDAgb3IgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBjaGlsZHJlbi5sZW5ndGhgIHN0b3BcbiAqICAgdHJhdmVyc2luZyB0aGUgcGFyZW50LlxuICpcbiAqIEB0eXBlZGVmIHtbKEFjdGlvbiB8IG51bGwgfCB1bmRlZmluZWQgfCB2b2lkKT8sIChJbmRleCB8IG51bGwgfCB1bmRlZmluZWQpP119IEFjdGlvblR1cGxlXG4gKiAgIExpc3Qgd2l0aCBvbmUgb3IgdHdvIHZhbHVlcywgdGhlIGZpcnN0IGFuIGFjdGlvbiwgdGhlIHNlY29uZCBhbiBpbmRleC5cbiAqXG4gKiBAdHlwZWRlZiB7QWN0aW9uIHwgQWN0aW9uVHVwbGUgfCBJbmRleCB8IG51bGwgfCB1bmRlZmluZWQgfCB2b2lkfSBWaXNpdG9yUmVzdWx0XG4gKiAgIEFueSB2YWx1ZSB0aGF0IGNhbiBiZSByZXR1cm5lZCBmcm9tIGEgdmlzaXRvci5cbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBWaXNpdG9yXG4gKiAgIEhhbmRsZSBhIG5vZGUgKG1hdGNoaW5nIGB0ZXN0YCwgaWYgZ2l2ZW4pLlxuICpcbiAqICAgVmlzaXRvcnMgYXJlIGZyZWUgdG8gdHJhbnNmb3JtIGBub2RlYC5cbiAqICAgVGhleSBjYW4gYWxzbyB0cmFuc2Zvcm0gdGhlIHBhcmVudCBvZiBub2RlICh0aGUgbGFzdCBvZiBgYW5jZXN0b3JzYCkuXG4gKlxuICogICBSZXBsYWNpbmcgYG5vZGVgIGl0c2VsZiwgaWYgYFNLSVBgIGlzIG5vdCByZXR1cm5lZCwgc3RpbGwgY2F1c2VzIGl0c1xuICogICBkZXNjZW5kYW50cyB0byBiZSB3YWxrZWQgKHdoaWNoIGlzIGEgYnVnKS5cbiAqXG4gKiAgIFdoZW4gYWRkaW5nIG9yIHJlbW92aW5nIHByZXZpb3VzIHNpYmxpbmdzIG9mIGBub2RlYCAob3IgbmV4dCBzaWJsaW5ncywgaW5cbiAqICAgY2FzZSBvZiByZXZlcnNlKSwgdGhlIGBWaXNpdG9yYCBzaG91bGQgcmV0dXJuIGEgbmV3IGBJbmRleGAgdG8gc3BlY2lmeSB0aGVcbiAqICAgc2libGluZyB0byB0cmF2ZXJzZSBhZnRlciBgbm9kZWAgaXMgdHJhdmVyc2VkLlxuICogICBBZGRpbmcgb3IgcmVtb3ZpbmcgbmV4dCBzaWJsaW5ncyBvZiBgbm9kZWAgKG9yIHByZXZpb3VzIHNpYmxpbmdzLCBpbiBjYXNlXG4gKiAgIG9mIHJldmVyc2UpIGlzIGhhbmRsZWQgYXMgZXhwZWN0ZWQgd2l0aG91dCBuZWVkaW5nIHRvIHJldHVybiBhIG5ldyBgSW5kZXhgLlxuICpcbiAqICAgUmVtb3ZpbmcgdGhlIGNoaWxkcmVuIHByb3BlcnR5IG9mIGFuIGFuY2VzdG9yIHN0aWxsIHJlc3VsdHMgaW4gdGhlbSBiZWluZ1xuICogICB0cmF2ZXJzZWQuXG4gKiBAcGFyYW0ge1Zpc2l0ZWR9IG5vZGVcbiAqICAgRm91bmQgbm9kZS5cbiAqIEBwYXJhbSB7QXJyYXk8VmlzaXRlZFBhcmVudHM+fSBhbmNlc3RvcnNcbiAqICAgQW5jZXN0b3JzIG9mIGBub2RlYC5cbiAqIEByZXR1cm5zIHtWaXNpdG9yUmVzdWx0fVxuICogICBXaGF0IHRvIGRvIG5leHQuXG4gKlxuICogICBBbiBgSW5kZXhgIGlzIHRyZWF0ZWQgYXMgYSB0dXBsZSBvZiBgW0NPTlRJTlVFLCBJbmRleF1gLlxuICogICBBbiBgQWN0aW9uYCBpcyB0cmVhdGVkIGFzIGEgdHVwbGUgb2YgYFtBY3Rpb25dYC5cbiAqXG4gKiAgIFBhc3NpbmcgYSB0dXBsZSBiYWNrIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIGBBY3Rpb25gIGlzIGBTS0lQYC5cbiAqICAgV2hlbiB0aGUgYEFjdGlvbmAgaXMgYEVYSVRgLCB0aGF0IGFjdGlvbiBjYW4gYmUgcmV0dXJuZWQuXG4gKiAgIFdoZW4gdGhlIGBBY3Rpb25gIGlzIGBDT05USU5VRWAsIGBJbmRleGAgY2FuIGJlIHJldHVybmVkLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtWaXNpdGVkPVVuaXN0Tm9kZV1cbiAqICAgVmlzaXRlZCBub2RlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VuaXN0UGFyZW50fSBbVmlzaXRlZFBhcmVudHM9VW5pc3RQYXJlbnRdXG4gKiAgIEFuY2VzdG9yIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VmlzaXRvcjxNYXRjaGVzPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoZWNrPiwgQW5jZXN0b3I8VHJlZSwgTWF0Y2hlczxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGVjaz4+Pn0gQnVpbGRWaXNpdG9yXG4gKiAgIEJ1aWxkIGEgdHlwZWQgYFZpc2l0b3JgIGZ1bmN0aW9uIGZyb20gYSB0cmVlIGFuZCBhIHRlc3QuXG4gKlxuICogICBJdCB3aWxsIGluZmVyIHdoaWNoIHZhbHVlcyBhcmUgcGFzc2VkIGFzIGBub2RlYCBhbmQgd2hpY2ggYXMgYHBhcmVudHNgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtUcmVlPVVuaXN0Tm9kZV1cbiAqICAgVHJlZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBbQ2hlY2s9VGVzdF1cbiAqICAgVGVzdCB0eXBlLlxuICovXG5cbmltcG9ydCB7Y29udmVydH0gZnJvbSAndW5pc3QtdXRpbC1pcydcbmltcG9ydCB7Y29sb3J9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cy9kby1ub3QtdXNlLWNvbG9yJ1xuXG4vKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbmNvbnN0IGVtcHR5ID0gW11cblxuLyoqXG4gKiBDb250aW51ZSB0cmF2ZXJzaW5nIGFzIG5vcm1hbC5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTlRJTlVFID0gdHJ1ZVxuXG4vKipcbiAqIFN0b3AgdHJhdmVyc2luZyBpbW1lZGlhdGVseS5cbiAqL1xuZXhwb3J0IGNvbnN0IEVYSVQgPSBmYWxzZVxuXG4vKipcbiAqIERvIG5vdCB0cmF2ZXJzZSB0aGlzIG5vZGVcdTIwMTlzIGNoaWxkcmVuLlxuICovXG5leHBvcnQgY29uc3QgU0tJUCA9ICdza2lwJ1xuXG4vKipcbiAqIFZpc2l0IG5vZGVzLCB3aXRoIGFuY2VzdHJhbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBUaGlzIGFsZ29yaXRobSBwZXJmb3JtcyAqZGVwdGgtZmlyc3QqICp0cmVlIHRyYXZlcnNhbCogaW4gKnByZW9yZGVyKlxuICogKCoqTkxSKiopIG9yIGlmIGByZXZlcnNlYCBpcyBnaXZlbiwgaW4gKnJldmVyc2UgcHJlb3JkZXIqICgqKk5STCoqKS5cbiAqXG4gKiBZb3UgY2FuIGNob29zZSBmb3Igd2hpY2ggbm9kZXMgYHZpc2l0b3JgIGlzIGNhbGxlZCBieSBwYXNzaW5nIGEgYHRlc3RgLlxuICogRm9yIGNvbXBsZXggdGVzdHMsIHlvdSBzaG91bGQgdGVzdCB5b3Vyc2VsZiBpbiBgdmlzaXRvcmAsIGFzIGl0IHdpbGwgYmVcbiAqIGZhc3RlciBhbmQgd2lsbCBoYXZlIGltcHJvdmVkIHR5cGUgaW5mb3JtYXRpb24uXG4gKlxuICogV2Fsa2luZyB0aGUgdHJlZSBpcyBhbiBpbnRlbnNpdmUgdGFzay5cbiAqIE1ha2UgdXNlIG9mIHRoZSByZXR1cm4gdmFsdWVzIG9mIHRoZSB2aXNpdG9yIHdoZW4gcG9zc2libGUuXG4gKiBJbnN0ZWFkIG9mIHdhbGtpbmcgYSB0cmVlIG11bHRpcGxlIHRpbWVzLCB3YWxrIGl0IG9uY2UsIHVzZSBgdW5pc3QtdXRpbC1pc2BcbiAqIHRvIGNoZWNrIGlmIGEgbm9kZSBtYXRjaGVzLCBhbmQgdGhlbiBwZXJmb3JtIGRpZmZlcmVudCBvcGVyYXRpb25zLlxuICpcbiAqIFlvdSBjYW4gY2hhbmdlIHRoZSB0cmVlLlxuICogU2VlIGBWaXNpdG9yYCBmb3IgbW9yZSBpbmZvLlxuICpcbiAqIEBvdmVybG9hZFxuICogQHBhcmFtIHtUcmVlfSB0cmVlXG4gKiBAcGFyYW0ge0NoZWNrfSBjaGVja1xuICogQHBhcmFtIHtCdWlsZFZpc2l0b3I8VHJlZSwgQ2hlY2s+fSB2aXNpdG9yXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1RyZWV9IHRyZWVcbiAqIEBwYXJhbSB7QnVpbGRWaXNpdG9yPFRyZWU+fSB2aXNpdG9yXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKlxuICogQHBhcmFtIHtVbmlzdE5vZGV9IHRyZWVcbiAqICAgVHJlZSB0byB0cmF2ZXJzZS5cbiAqIEBwYXJhbSB7VmlzaXRvciB8IFRlc3R9IHRlc3RcbiAqICAgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdFxuICogQHBhcmFtIHtWaXNpdG9yIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt2aXNpdG9yXVxuICogICBIYW5kbGUgZWFjaCBub2RlLlxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiAgIFRyYXZlcnNlIGluIHJldmVyc2UgcHJlb3JkZXIgKE5STCkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwcmVvcmRlciAoTkxSKS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgTm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBDaGVja1xuICogICBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmlzaXRQYXJlbnRzKHRyZWUsIHRlc3QsIHZpc2l0b3IsIHJldmVyc2UpIHtcbiAgLyoqIEB0eXBlIHtUZXN0fSAqL1xuICBsZXQgY2hlY2tcblxuICBpZiAodHlwZW9mIHRlc3QgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZpc2l0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXZlcnNlID0gdmlzaXRvclxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igbm8gdmlzaXRvciBnaXZlbiwgc28gYHZpc2l0b3JgIGlzIHRlc3QuXG4gICAgdmlzaXRvciA9IHRlc3RcbiAgfSBlbHNlIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHZpc2l0b3IgZ2l2ZW4sIHNvIGB0ZXN0YCBpc25cdTIwMTl0IGEgdmlzaXRvci5cbiAgICBjaGVjayA9IHRlc3RcbiAgfVxuXG4gIGNvbnN0IGlzID0gY29udmVydChjaGVjaylcbiAgY29uc3Qgc3RlcCA9IHJldmVyc2UgPyAtMSA6IDFcblxuICBmYWN0b3J5KHRyZWUsIHVuZGVmaW5lZCwgW10pKClcblxuICAvKipcbiAgICogQHBhcmFtIHtVbmlzdE5vZGV9IG5vZGVcbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gICAqIEBwYXJhbSB7QXJyYXk8VW5pc3RQYXJlbnQ+fSBwYXJlbnRzXG4gICAqL1xuICBmdW5jdGlvbiBmYWN0b3J5KG5vZGUsIGluZGV4LCBwYXJlbnRzKSB7XG4gICAgY29uc3QgdmFsdWUgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAoXG4gICAgICBub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyA/IG5vZGUgOiB7fVxuICAgIClcblxuICAgIGlmICh0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IG5hbWUgPVxuICAgICAgICAvLyBgaGFzdGBcbiAgICAgICAgdHlwZW9mIHZhbHVlLnRhZ05hbWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyB2YWx1ZS50YWdOYW1lXG4gICAgICAgICAgOiAvLyBgeGFzdGBcbiAgICAgICAgICB0eXBlb2YgdmFsdWUubmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IHZhbHVlLm5hbWVcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmlzaXQsICduYW1lJywge1xuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAnbm9kZSAoJyArIGNvbG9yKG5vZGUudHlwZSArIChuYW1lID8gJzwnICsgbmFtZSArICc+JyA6ICcnKSkgKyAnKSdcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0XG5cbiAgICBmdW5jdGlvbiB2aXNpdCgpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fSAqL1xuICAgICAgbGV0IHJlc3VsdCA9IGVtcHR5XG4gICAgICAvKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbiAgICAgIGxldCBzdWJyZXN1bHRcbiAgICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgICAgbGV0IG9mZnNldFxuICAgICAgLyoqIEB0eXBlIHtBcnJheTxVbmlzdFBhcmVudD59ICovXG4gICAgICBsZXQgZ3JhbmRwYXJlbnRzXG5cbiAgICAgIGlmICghdGVzdCB8fCBpcyhub2RlLCBpbmRleCwgcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdIHx8IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYHZpc2l0b3JgIGlzIG5vdyBhIHZpc2l0b3IuXG4gICAgICAgIHJlc3VsdCA9IHRvUmVzdWx0KHZpc2l0b3Iobm9kZSwgcGFyZW50cykpXG5cbiAgICAgICAgaWYgKHJlc3VsdFswXSA9PT0gRVhJVCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoJ2NoaWxkcmVuJyBpbiBub2RlICYmIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3Qgbm9kZUFzUGFyZW50ID0gLyoqIEB0eXBlIHtVbmlzdFBhcmVudH0gKi8gKG5vZGUpXG5cbiAgICAgICAgaWYgKG5vZGVBc1BhcmVudC5jaGlsZHJlbiAmJiByZXN1bHRbMF0gIT09IFNLSVApIHtcbiAgICAgICAgICBvZmZzZXQgPSAocmV2ZXJzZSA/IG5vZGVBc1BhcmVudC5jaGlsZHJlbi5sZW5ndGggOiAtMSkgKyBzdGVwXG4gICAgICAgICAgZ3JhbmRwYXJlbnRzID0gcGFyZW50cy5jb25jYXQobm9kZUFzUGFyZW50KVxuXG4gICAgICAgICAgd2hpbGUgKG9mZnNldCA+IC0xICYmIG9mZnNldCA8IG5vZGVBc1BhcmVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZUFzUGFyZW50LmNoaWxkcmVuW29mZnNldF1cblxuICAgICAgICAgICAgc3VicmVzdWx0ID0gZmFjdG9yeShjaGlsZCwgb2Zmc2V0LCBncmFuZHBhcmVudHMpKClcblxuICAgICAgICAgICAgaWYgKHN1YnJlc3VsdFswXSA9PT0gRVhJVCkge1xuICAgICAgICAgICAgICByZXR1cm4gc3VicmVzdWx0XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9mZnNldCA9XG4gICAgICAgICAgICAgIHR5cGVvZiBzdWJyZXN1bHRbMV0gPT09ICdudW1iZXInID8gc3VicmVzdWx0WzFdIDogb2Zmc2V0ICsgc3RlcFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHVybiBhIHJldHVybiB2YWx1ZSBpbnRvIGEgY2xlYW4gcmVzdWx0LlxuICpcbiAqIEBwYXJhbSB7VmlzaXRvclJlc3VsdH0gdmFsdWVcbiAqICAgVmFsaWQgcmV0dXJuIHZhbHVlcyBmcm9tIHZpc2l0b3JzLlxuICogQHJldHVybnMge1JlYWRvbmx5PEFjdGlvblR1cGxlPn1cbiAqICAgQ2xlYW4gcmVzdWx0LlxuICovXG5mdW5jdGlvbiB0b1Jlc3VsdCh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIFtDT05USU5VRSwgdmFsdWVdXG4gIH1cblxuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/IGVtcHR5IDogW3ZhbHVlXVxufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBkZXByZWNhdGUoZm4pIHtcbiAgcmV0dXJuIGZuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcXVhbCgpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBvaygpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlYWNoYWJsZSgpIHt9XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2luZm8uanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgSW5mbz59IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBOb3JtYWxcbiAqL1xuXG5leHBvcnQgY2xhc3MgU2NoZW1hIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnR5XG4gICAqIEBwYXJhbSB7Tm9ybWFsfSBub3JtYWxcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzcGFjZV1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5LCBub3JtYWwsIHNwYWNlKSB7XG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5XG4gICAgdGhpcy5ub3JtYWwgPSBub3JtYWxcbiAgICBpZiAoc3BhY2UpIHtcbiAgICAgIHRoaXMuc3BhY2UgPSBzcGFjZVxuICAgIH1cbiAgfVxufVxuXG4vKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG5TY2hlbWEucHJvdG90eXBlLnByb3BlcnR5ID0ge31cbi8qKiBAdHlwZSB7Tm9ybWFsfSAqL1xuU2NoZW1hLnByb3RvdHlwZS5ub3JtYWwgPSB7fVxuLyoqIEB0eXBlIHtzdHJpbmd8bnVsbH0gKi9cblNjaGVtYS5wcm90b3R5cGUuc3BhY2UgPSBudWxsXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuTm9ybWFsfSBOb3JtYWxcbiAqL1xuXG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi9zY2hlbWEuanMnXG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWFbXX0gZGVmaW5pdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc3BhY2VdXG4gKiBAcmV0dXJucyB7U2NoZW1hfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2UoZGVmaW5pdGlvbnMsIHNwYWNlKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydHkgPSB7fVxuICAvKiogQHR5cGUge05vcm1hbH0gKi9cbiAgY29uc3Qgbm9ybWFsID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGRlZmluaXRpb25zLmxlbmd0aCkge1xuICAgIE9iamVjdC5hc3NpZ24ocHJvcGVydHksIGRlZmluaXRpb25zW2luZGV4XS5wcm9wZXJ0eSlcbiAgICBPYmplY3QuYXNzaWduKG5vcm1hbCwgZGVmaW5pdGlvbnNbaW5kZXhdLm5vcm1hbClcbiAgfVxuXG4gIHJldHVybiBuZXcgU2NoZW1hKHByb3BlcnR5LCBub3JtYWwsIHNwYWNlKVxufVxuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpXG59XG4iLCAiZXhwb3J0IGNsYXNzIEluZm8ge1xuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgYXR0cmlidXRlKSB7XG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5XG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgdGhpcy5hdHRyaWJ1dGUgPSBhdHRyaWJ1dGVcbiAgfVxufVxuXG4vKiogQHR5cGUge3N0cmluZ3xudWxsfSAqL1xuSW5mby5wcm90b3R5cGUuc3BhY2UgPSBudWxsXG5JbmZvLnByb3RvdHlwZS5ib29sZWFuID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmJvb2xlYW5pc2ggPSBmYWxzZVxuSW5mby5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW4gPSBmYWxzZVxuSW5mby5wcm90b3R5cGUubnVtYmVyID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLnNwYWNlU2VwYXJhdGVkID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHkgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUuZGVmaW5lZCA9IGZhbHNlXG4iLCAibGV0IHBvd2VycyA9IDBcblxuZXhwb3J0IGNvbnN0IGJvb2xlYW4gPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IGJvb2xlYW5pc2ggPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IG92ZXJsb2FkZWRCb29sZWFuID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBudW1iZXIgPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IHNwYWNlU2VwYXJhdGVkID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBjb21tYVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgY29tbWFPclNwYWNlU2VwYXJhdGVkID0gaW5jcmVtZW50KClcblxuZnVuY3Rpb24gaW5jcmVtZW50KCkge1xuICByZXR1cm4gMiAqKiArK3Bvd2Vyc1xufVxuIiwgImltcG9ydCB7SW5mb30gZnJvbSAnLi9pbmZvLmpzJ1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlcy5qcydcblxuLyoqIEB0eXBlIHtBcnJheTxrZXlvZiB0eXBlcz59ICovXG4vLyBAdHMtZXhwZWN0LWVycm9yOiBodXNoLlxuY29uc3QgY2hlY2tzID0gT2JqZWN0LmtleXModHlwZXMpXG5cbmV4cG9ydCBjbGFzcyBEZWZpbmVkSW5mbyBleHRlbmRzIEluZm8ge1xuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfG51bGx9IFttYXNrXVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3NwYWNlXVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydHksIGF0dHJpYnV0ZSwgbWFzaywgc3BhY2UpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgc3VwZXIocHJvcGVydHksIGF0dHJpYnV0ZSlcblxuICAgIG1hcmsodGhpcywgJ3NwYWNlJywgc3BhY2UpXG5cbiAgICBpZiAodHlwZW9mIG1hc2sgPT09ICdudW1iZXInKSB7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGNoZWNrcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hlY2sgPSBjaGVja3NbaW5kZXhdXG4gICAgICAgIG1hcmsodGhpcywgY2hlY2tzW2luZGV4XSwgKG1hc2sgJiB0eXBlc1tjaGVja10pID09PSB0eXBlc1tjaGVja10pXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkRlZmluZWRJbmZvLnByb3RvdHlwZS5kZWZpbmVkID0gdHJ1ZVxuXG4vKipcbiAqIEBwYXJhbSB7RGVmaW5lZEluZm99IHZhbHVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICovXG5mdW5jdGlvbiBtYXJrKHZhbHVlcywga2V5LCB2YWx1ZSkge1xuICBpZiAodmFsdWUpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBhc3N1bWUgYHZhbHVlYCBtYXRjaGVzIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiBga2V5YC5cbiAgICB2YWx1ZXNba2V5XSA9IHZhbHVlXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEuanMnKS5Ob3JtYWx9IE5vcm1hbFxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBBdHRyaWJ1dGVzXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gRGVmaW5pdGlvblxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBudW1iZXJ8bnVsbD59IHByb3BlcnRpZXNcbiAqIEBwcm9wZXJ0eSB7KGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZXMsIHByb3BlcnR5OiBzdHJpbmcpID0+IHN0cmluZ30gdHJhbnNmb3JtXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3NwYWNlXVxuICogQHByb3BlcnR5IHtBdHRyaWJ1dGVzfSBbYXR0cmlidXRlc11cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gW211c3RVc2VQcm9wZXJ0eV1cbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZX0gZnJvbSAnLi4vbm9ybWFsaXplLmpzJ1xuaW1wb3J0IHtTY2hlbWF9IGZyb20gJy4vc2NoZW1hLmpzJ1xuaW1wb3J0IHtEZWZpbmVkSW5mb30gZnJvbSAnLi9kZWZpbmVkLWluZm8uanMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogQHBhcmFtIHtEZWZpbml0aW9ufSBkZWZpbml0aW9uXG4gKiBAcmV0dXJucyB7U2NoZW1hfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKGRlZmluaXRpb24pIHtcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wZXJ0eSA9IHt9XG4gIC8qKiBAdHlwZSB7Tm9ybWFsfSAqL1xuICBjb25zdCBub3JtYWwgPSB7fVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IHByb3BcblxuICBmb3IgKHByb3AgaW4gZGVmaW5pdGlvbi5wcm9wZXJ0aWVzKSB7XG4gICAgaWYgKG93bi5jYWxsKGRlZmluaXRpb24ucHJvcGVydGllcywgcHJvcCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGVmaW5pdGlvbi5wcm9wZXJ0aWVzW3Byb3BdXG4gICAgICBjb25zdCBpbmZvID0gbmV3IERlZmluZWRJbmZvKFxuICAgICAgICBwcm9wLFxuICAgICAgICBkZWZpbml0aW9uLnRyYW5zZm9ybShkZWZpbml0aW9uLmF0dHJpYnV0ZXMgfHwge30sIHByb3ApLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgZGVmaW5pdGlvbi5zcGFjZVxuICAgICAgKVxuXG4gICAgICBpZiAoXG4gICAgICAgIGRlZmluaXRpb24ubXVzdFVzZVByb3BlcnR5ICYmXG4gICAgICAgIGRlZmluaXRpb24ubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKHByb3ApXG4gICAgICApIHtcbiAgICAgICAgaW5mby5tdXN0VXNlUHJvcGVydHkgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5W3Byb3BdID0gaW5mb1xuXG4gICAgICBub3JtYWxbbm9ybWFsaXplKHByb3ApXSA9IHByb3BcbiAgICAgIG5vcm1hbFtub3JtYWxpemUoaW5mby5hdHRyaWJ1dGUpXSA9IHByb3BcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYShwcm9wZXJ0eSwgbm9ybWFsLCBkZWZpbml0aW9uLnNwYWNlKVxufVxuIiwgImltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuXG5leHBvcnQgY29uc3QgeGxpbmsgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3hsaW5rJyxcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gJ3hsaW5rOicgKyBwcm9wLnNsaWNlKDUpLnRvTG93ZXJDYXNlKClcbiAgfSxcbiAgcHJvcGVydGllczoge1xuICAgIHhMaW5rQWN0dWF0ZTogbnVsbCxcbiAgICB4TGlua0FyY1JvbGU6IG51bGwsXG4gICAgeExpbmtIcmVmOiBudWxsLFxuICAgIHhMaW5rUm9sZTogbnVsbCxcbiAgICB4TGlua1Nob3c6IG51bGwsXG4gICAgeExpbmtUaXRsZTogbnVsbCxcbiAgICB4TGlua1R5cGU6IG51bGxcbiAgfVxufSlcbiIsICJpbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IHhtbCA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneG1sJyxcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gJ3htbDonICsgcHJvcC5zbGljZSgzKS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHt4bWxMYW5nOiBudWxsLCB4bWxCYXNlOiBudWxsLCB4bWxTcGFjZTogbnVsbH1cbn0pXG4iLCAiLyoqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIGF0dHJpYnV0ZSkge1xuICByZXR1cm4gYXR0cmlidXRlIGluIGF0dHJpYnV0ZXMgPyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZV0gOiBhdHRyaWJ1dGVcbn1cbiIsICJpbXBvcnQge2Nhc2VTZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gYXR0cmlidXRlc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3BlcnR5KSB7XG4gIHJldHVybiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3BlcnR5LnRvTG93ZXJDYXNlKCkpXG59XG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Nhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG5leHBvcnQgY29uc3QgeG1sbnMgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3htbG5zJyxcbiAgYXR0cmlidXRlczoge3htbG5zeGxpbms6ICd4bWxuczp4bGluayd9LFxuICB0cmFuc2Zvcm06IGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSxcbiAgcHJvcGVydGllczoge3htbG5zOiBudWxsLCB4bWxuc1hMaW5rOiBudWxsfVxufSlcbiIsICJpbXBvcnQge2Jvb2xlYW5pc2gsIG51bWJlciwgc3BhY2VTZXBhcmF0ZWR9IGZyb20gJy4vdXRpbC90eXBlcy5qcydcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuXG5leHBvcnQgY29uc3QgYXJpYSA9IGNyZWF0ZSh7XG4gIHRyYW5zZm9ybShfLCBwcm9wKSB7XG4gICAgcmV0dXJuIHByb3AgPT09ICdyb2xlJyA/IHByb3AgOiAnYXJpYS0nICsgcHJvcC5zbGljZSg0KS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudDogbnVsbCxcbiAgICBhcmlhQXRvbWljOiBib29sZWFuaXNoLFxuICAgIGFyaWFBdXRvQ29tcGxldGU6IG51bGwsXG4gICAgYXJpYUJ1c3k6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNoZWNrZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNvbENvdW50OiBudW1iZXIsXG4gICAgYXJpYUNvbEluZGV4OiBudW1iZXIsXG4gICAgYXJpYUNvbFNwYW46IG51bWJlcixcbiAgICBhcmlhQ29udHJvbHM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFDdXJyZW50OiBudWxsLFxuICAgIGFyaWFEZXNjcmliZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYURldGFpbHM6IG51bGwsXG4gICAgYXJpYURpc2FibGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFEcm9wRWZmZWN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhRXJyb3JNZXNzYWdlOiBudWxsLFxuICAgIGFyaWFFeHBhbmRlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRmxvd1RvOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhR3JhYmJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhSGFzUG9wdXA6IG51bGwsXG4gICAgYXJpYUhpZGRlbjogYm9vbGVhbmlzaCxcbiAgICBhcmlhSW52YWxpZDogbnVsbCxcbiAgICBhcmlhS2V5U2hvcnRjdXRzOiBudWxsLFxuICAgIGFyaWFMYWJlbDogbnVsbCxcbiAgICBhcmlhTGFiZWxsZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUxldmVsOiBudW1iZXIsXG4gICAgYXJpYUxpdmU6IG51bGwsXG4gICAgYXJpYU1vZGFsOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aUxpbmU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU11bHRpU2VsZWN0YWJsZTogYm9vbGVhbmlzaCxcbiAgICBhcmlhT3JpZW50YXRpb246IG51bGwsXG4gICAgYXJpYU93bnM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFQbGFjZWhvbGRlcjogbnVsbCxcbiAgICBhcmlhUG9zSW5TZXQ6IG51bWJlcixcbiAgICBhcmlhUHJlc3NlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUmVhZE9ubHk6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlbGV2YW50OiBudWxsLFxuICAgIGFyaWFSZXF1aXJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUm93Q291bnQ6IG51bWJlcixcbiAgICBhcmlhUm93SW5kZXg6IG51bWJlcixcbiAgICBhcmlhUm93U3BhbjogbnVtYmVyLFxuICAgIGFyaWFTZWxlY3RlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhU2V0U2l6ZTogbnVtYmVyLFxuICAgIGFyaWFTb3J0OiBudWxsLFxuICAgIGFyaWFWYWx1ZU1heDogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU1pbjogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU5vdzogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZVRleHQ6IG51bGwsXG4gICAgcm9sZTogbnVsbFxuICB9XG59KVxuIiwgImltcG9ydCB7XG4gIGJvb2xlYW4sXG4gIG92ZXJsb2FkZWRCb29sZWFuLFxuICBib29sZWFuaXNoLFxuICBudW1iZXIsXG4gIHNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCBodG1sID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdodG1sJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NuYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxmb3I6ICdmb3InLFxuICAgIGh0dHBlcXVpdjogJ2h0dHAtZXF1aXYnXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBtdXN0VXNlUHJvcGVydHk6IFsnY2hlY2tlZCcsICdtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLy8gU3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhYmJyOiBudWxsLFxuICAgIGFjY2VwdDogY29tbWFTZXBhcmF0ZWQsXG4gICAgYWNjZXB0Q2hhcnNldDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZXNzS2V5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3c6IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBib29sZWFuLFxuICAgIGFsbG93UGF5bWVudFJlcXVlc3Q6IGJvb2xlYW4sXG4gICAgYWxsb3dVc2VyTWVkaWE6IGJvb2xlYW4sXG4gICAgYWx0OiBudWxsLFxuICAgIGFzOiBudWxsLFxuICAgIGFzeW5jOiBib29sZWFuLFxuICAgIGF1dG9DYXBpdGFsaXplOiBudWxsLFxuICAgIGF1dG9Db21wbGV0ZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXV0b0ZvY3VzOiBib29sZWFuLFxuICAgIGF1dG9QbGF5OiBib29sZWFuLFxuICAgIGJsb2NraW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjYXB0dXJlOiBudWxsLFxuICAgIGNoYXJTZXQ6IG51bGwsXG4gICAgY2hlY2tlZDogYm9vbGVhbixcbiAgICBjaXRlOiBudWxsLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29sczogbnVtYmVyLFxuICAgIGNvbFNwYW46IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50RWRpdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgY29udHJvbHM6IGJvb2xlYW4sXG4gICAgY29udHJvbHNMaXN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb29yZHM6IG51bWJlciB8IGNvbW1hU2VwYXJhdGVkLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGRhdGE6IG51bGwsXG4gICAgZGF0ZVRpbWU6IG51bGwsXG4gICAgZGVjb2Rpbmc6IG51bGwsXG4gICAgZGVmYXVsdDogYm9vbGVhbixcbiAgICBkZWZlcjogYm9vbGVhbixcbiAgICBkaXI6IG51bGwsXG4gICAgZGlyTmFtZTogbnVsbCxcbiAgICBkaXNhYmxlZDogYm9vbGVhbixcbiAgICBkb3dubG9hZDogb3ZlcmxvYWRlZEJvb2xlYW4sXG4gICAgZHJhZ2dhYmxlOiBib29sZWFuaXNoLFxuICAgIGVuY1R5cGU6IG51bGwsXG4gICAgZW50ZXJLZXlIaW50OiBudWxsLFxuICAgIGZldGNoUHJpb3JpdHk6IG51bGwsXG4gICAgZm9ybTogbnVsbCxcbiAgICBmb3JtQWN0aW9uOiBudWxsLFxuICAgIGZvcm1FbmNUeXBlOiBudWxsLFxuICAgIGZvcm1NZXRob2Q6IG51bGwsXG4gICAgZm9ybU5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgZm9ybVRhcmdldDogbnVsbCxcbiAgICBoZWFkZXJzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBoaWRkZW46IGJvb2xlYW4sXG4gICAgaGlnaDogbnVtYmVyLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaHRtbEZvcjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaHR0cEVxdWl2OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpZDogbnVsbCxcbiAgICBpbWFnZVNpemVzOiBudWxsLFxuICAgIGltYWdlU3JjU2V0OiBudWxsLFxuICAgIGluZXJ0OiBib29sZWFuLFxuICAgIGlucHV0TW9kZTogbnVsbCxcbiAgICBpbnRlZ3JpdHk6IG51bGwsXG4gICAgaXM6IG51bGwsXG4gICAgaXNNYXA6IGJvb2xlYW4sXG4gICAgaXRlbUlkOiBudWxsLFxuICAgIGl0ZW1Qcm9wOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtUmVmOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtU2NvcGU6IGJvb2xlYW4sXG4gICAgaXRlbVR5cGU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGtpbmQ6IG51bGwsXG4gICAgbGFiZWw6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsYW5ndWFnZTogbnVsbCxcbiAgICBsaXN0OiBudWxsLFxuICAgIGxvYWRpbmc6IG51bGwsXG4gICAgbG9vcDogYm9vbGVhbixcbiAgICBsb3c6IG51bWJlcixcbiAgICBtYW5pZmVzdDogbnVsbCxcbiAgICBtYXg6IG51bGwsXG4gICAgbWF4TGVuZ3RoOiBudW1iZXIsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtaW5MZW5ndGg6IG51bWJlcixcbiAgICBtdWx0aXBsZTogYm9vbGVhbixcbiAgICBtdXRlZDogYm9vbGVhbixcbiAgICBuYW1lOiBudWxsLFxuICAgIG5vbmNlOiBudWxsLFxuICAgIG5vTW9kdWxlOiBib29sZWFuLFxuICAgIG5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgb25BYm9ydDogbnVsbCxcbiAgICBvbkFmdGVyUHJpbnQ6IG51bGwsXG4gICAgb25BdXhDbGljazogbnVsbCxcbiAgICBvbkJlZm9yZU1hdGNoOiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWZvcmVUb2dnbGU6IG51bGwsXG4gICAgb25CZWZvcmVVbmxvYWQ6IG51bGwsXG4gICAgb25CbHVyOiBudWxsLFxuICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgIG9uQ2FuUGxheTogbnVsbCxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgb25DbG9zZTogbnVsbCxcbiAgICBvbkNvbnRleHRMb3N0OiBudWxsLFxuICAgIG9uQ29udGV4dE1lbnU6IG51bGwsXG4gICAgb25Db250ZXh0UmVzdG9yZWQ6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9ybURhdGE6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25MYW5ndWFnZUNoYW5nZTogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkRW5kOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1lc3NhZ2VFcnJvcjogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlamVjdGlvbkhhbmRsZWQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNjcm9sbEVuZDogbnVsbCxcbiAgICBvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNsb3RDaGFuZ2U6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5oYW5kbGVkUmVqZWN0aW9uOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvbldoZWVsOiBudWxsLFxuICAgIG9wZW46IGJvb2xlYW4sXG4gICAgb3B0aW11bTogbnVtYmVyLFxuICAgIHBhdHRlcm46IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGxhY2Vob2xkZXI6IG51bGwsXG4gICAgcGxheXNJbmxpbmU6IGJvb2xlYW4sXG4gICAgcG9wb3ZlcjogbnVsbCxcbiAgICBwb3BvdmVyVGFyZ2V0OiBudWxsLFxuICAgIHBvcG92ZXJUYXJnZXRBY3Rpb246IG51bGwsXG4gICAgcG9zdGVyOiBudWxsLFxuICAgIHByZWxvYWQ6IG51bGwsXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVsOiBzcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZDogYm9vbGVhbixcbiAgICByZXZlcnNlZDogYm9vbGVhbixcbiAgICByb3dzOiBudW1iZXIsXG4gICAgcm93U3BhbjogbnVtYmVyLFxuICAgIHNhbmRib3g6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHNjb3BlOiBudWxsLFxuICAgIHNjb3BlZDogYm9vbGVhbixcbiAgICBzZWFtbGVzczogYm9vbGVhbixcbiAgICBzZWxlY3RlZDogYm9vbGVhbixcbiAgICBzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6IGJvb2xlYW4sXG4gICAgc2hhZG93Um9vdE1vZGU6IG51bGwsXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNpemVzOiBudWxsLFxuICAgIHNsb3Q6IG51bGwsXG4gICAgc3BhbjogbnVtYmVyLFxuICAgIHNwZWxsQ2hlY2s6IGJvb2xlYW5pc2gsXG4gICAgc3JjOiBudWxsLFxuICAgIHNyY0RvYzogbnVsbCxcbiAgICBzcmNMYW5nOiBudWxsLFxuICAgIHNyY1NldDogbnVsbCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIHN0ZXA6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNsYXRlOiBudWxsLFxuICAgIHR5cGU6IG51bGwsXG4gICAgdHlwZU11c3RNYXRjaDogYm9vbGVhbixcbiAgICB1c2VNYXA6IG51bGwsXG4gICAgdmFsdWU6IGJvb2xlYW5pc2gsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICB3cmFwOiBudWxsLFxuXG4gICAgLy8gTGVnYWN5LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jb3RoZXItZWxlbWVudHMsLWF0dHJpYnV0ZXMtYW5kLWFwaXNcbiAgICBhbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdGV4dC1hbGlnbmAgaW5zdGVhZCxcbiAgICBhTGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6YWN0aXZlIHtjb2xvcn1gIGluc3RlYWRcbiAgICBhcmNoaXZlOiBzcGFjZVNlcGFyYXRlZCwgLy8gYDxvYmplY3Q+YC4gTGlzdCBvZiBVUklzIHRvIGFyY2hpdmVzXG4gICAgYXhpczogbnVsbCwgLy8gYDx0ZD5gIGFuZCBgPHRoPmAuIFVzZSBgc2NvcGVgIG9uIGA8dGg+YFxuICAgIGJhY2tncm91bmQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWltYWdlYCBpbnN0ZWFkXG4gICAgYmdDb2xvcjogbnVsbCwgLy8gYDxib2R5PmAgYW5kIHRhYmxlIGVsZW1lbnRzLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWNvbG9yYCBpbnN0ZWFkXG4gICAgYm9yZGVyOiBudW1iZXIsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLXdpZHRoYCBpbnN0ZWFkLFxuICAgIGJvcmRlckNvbG9yOiBudWxsLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci1jb2xvcmAgaW5zdGVhZCxcbiAgICBib3R0b21NYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBjZWxsUGFkZGluZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2VsbFNwYWNpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNoYXI6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGFsaWduPWNoYXJgLCBzZXRzIHRoZSBjaGFyYWN0ZXIgdG8gYWxpZ24gb25cbiAgICBjaGFyT2ZmOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBjaGFyYCwgb2Zmc2V0cyB0aGUgYWxpZ25tZW50XG4gICAgY2xhc3NJZDogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNsZWFyOiBudWxsLCAvLyBgPGJyPmAuIFVzZSBDU1MgYGNsZWFyYCBpbnN0ZWFkXG4gICAgY29kZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVCYXNlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZVR5cGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2xvcjogbnVsbCwgLy8gYDxmb250PmAgYW5kIGA8aHI+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgY29tcGFjdDogYm9vbGVhbiwgLy8gTGlzdHMuIFVzZSBDU1MgdG8gcmVkdWNlIHNwYWNlIGJldHdlZW4gaXRlbXMgaW5zdGVhZFxuICAgIGRlY2xhcmU6IGJvb2xlYW4sIC8vIGA8b2JqZWN0PmBcbiAgICBldmVudDogbnVsbCwgLy8gYDxzY3JpcHQ+YFxuICAgIGZhY2U6IG51bGwsIC8vIGA8Zm9udD5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBmcmFtZTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgZnJhbWVCb3JkZXI6IG51bGwsIC8vIGA8aWZyYW1lPmAuIFVzZSBDU1MgYGJvcmRlcmAgaW5zdGVhZFxuICAgIGhTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG4gICAgbGVmdE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmxpbmsge2NvbG9yOiAqfWAgaW5zdGVhZFxuICAgIGxvbmdEZXNjOiBudWxsLCAvLyBgPGZyYW1lPmAsIGA8aWZyYW1lPmAsIGFuZCBgPGltZz5gLiBVc2UgYW4gYDxhPmBcbiAgICBsb3dTcmM6IG51bGwsIC8vIGA8aW1nPmAuIFVzZSBhIGA8cGljdHVyZT5gXG4gICAgbWFyZ2luSGVpZ2h0OiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbWFyZ2luV2lkdGg6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBub1Jlc2l6ZTogYm9vbGVhbiwgLy8gYDxmcmFtZT5gXG4gICAgbm9IcmVmOiBib29sZWFuLCAvLyBgPGFyZWE+YC4gVXNlIG5vIGhyZWYgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBgbm9ocmVmYFxuICAgIG5vU2hhZGU6IGJvb2xlYW4sIC8vIGA8aHI+YC4gVXNlIGJhY2tncm91bmQtY29sb3IgYW5kIGhlaWdodCBpbnN0ZWFkIG9mIGJvcmRlcnNcbiAgICBub1dyYXA6IGJvb2xlYW4sIC8vIGA8dGQ+YCBhbmQgYDx0aD5gXG4gICAgb2JqZWN0OiBudWxsLCAvLyBgPGFwcGxldD5gXG4gICAgcHJvZmlsZTogbnVsbCwgLy8gYDxoZWFkPmBcbiAgICBwcm9tcHQ6IG51bGwsIC8vIGA8aXNpbmRleD5gXG4gICAgcmV2OiBudWxsLCAvLyBgPGxpbms+YFxuICAgIHJpZ2h0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgcnVsZXM6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHNjaGVtZTogbnVsbCwgLy8gYDxtZXRhPmBcbiAgICBzY3JvbGxpbmc6IGJvb2xlYW5pc2gsIC8vIGA8ZnJhbWU+YC4gVXNlIG92ZXJmbG93IGluIHRoZSBjaGlsZCBjb250ZXh0XG4gICAgc3RhbmRieTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIHN1bW1hcnk6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHRleHQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBjb2xvcmAgaW5zdGVhZFxuICAgIHRvcE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHZhbHVlVHlwZTogbnVsbCwgLy8gYDxwYXJhbT5gXG4gICAgdmVyc2lvbjogbnVsbCwgLy8gYDxodG1sPmAuIFVzZSBhIGRvY3R5cGUuXG4gICAgdkFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB2ZXJ0aWNhbC1hbGlnbmAgaW5zdGVhZFxuICAgIHZMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTp2aXNpdGVkIHtjb2xvcn1gIGluc3RlYWRcbiAgICB2U3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuXG4gICAgLy8gTm9uLXN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWxsb3dUcmFuc3BhcmVuY3k6IG51bGwsXG4gICAgYXV0b0NvcnJlY3Q6IG51bGwsXG4gICAgYXV0b1NhdmU6IG51bGwsXG4gICAgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6IGJvb2xlYW4sXG4gICAgZGlzYWJsZVJlbW90ZVBsYXliYWNrOiBib29sZWFuLFxuICAgIHByZWZpeDogbnVsbCxcbiAgICBwcm9wZXJ0eTogbnVsbCxcbiAgICByZXN1bHRzOiBudW1iZXIsXG4gICAgc2VjdXJpdHk6IG51bGwsXG4gICAgdW5zZWxlY3RhYmxlOiBudWxsXG4gIH1cbn0pXG4iLCAiaW1wb3J0IHtcbiAgYm9vbGVhbixcbiAgbnVtYmVyLFxuICBzcGFjZVNlcGFyYXRlZCxcbiAgY29tbWFTZXBhcmF0ZWQsXG4gIGNvbW1hT3JTcGFjZVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZVNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IHN2ZyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAnc3ZnJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VudEhlaWdodDogJ2FjY2VudC1oZWlnaHQnLFxuICAgIGFsaWdubWVudEJhc2VsaW5lOiAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgICBhcmFiaWNGb3JtOiAnYXJhYmljLWZvcm0nLFxuICAgIGJhc2VsaW5lU2hpZnQ6ICdiYXNlbGluZS1zaGlmdCcsXG4gICAgY2FwSGVpZ2h0OiAnY2FwLWhlaWdodCcsXG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGNsaXBQYXRoOiAnY2xpcC1wYXRoJyxcbiAgICBjbGlwUnVsZTogJ2NsaXAtcnVsZScsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uOiAnY29sb3ItaW50ZXJwb2xhdGlvbicsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczogJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICAgY29sb3JQcm9maWxlOiAnY29sb3ItcHJvZmlsZScsXG4gICAgY29sb3JSZW5kZXJpbmc6ICdjb2xvci1yZW5kZXJpbmcnLFxuICAgIGNyb3NzT3JpZ2luOiAnY3Jvc3NvcmlnaW4nLFxuICAgIGRhdGFUeXBlOiAnZGF0YXR5cGUnLFxuICAgIGRvbWluYW50QmFzZWxpbmU6ICdkb21pbmFudC1iYXNlbGluZScsXG4gICAgZW5hYmxlQmFja2dyb3VuZDogJ2VuYWJsZS1iYWNrZ3JvdW5kJyxcbiAgICBmaWxsT3BhY2l0eTogJ2ZpbGwtb3BhY2l0eScsXG4gICAgZmlsbFJ1bGU6ICdmaWxsLXJ1bGUnLFxuICAgIGZsb29kQ29sb3I6ICdmbG9vZC1jb2xvcicsXG4gICAgZmxvb2RPcGFjaXR5OiAnZmxvb2Qtb3BhY2l0eScsXG4gICAgZm9udEZhbWlseTogJ2ZvbnQtZmFtaWx5JyxcbiAgICBmb250U2l6ZTogJ2ZvbnQtc2l6ZScsXG4gICAgZm9udFNpemVBZGp1c3Q6ICdmb250LXNpemUtYWRqdXN0JyxcbiAgICBmb250U3RyZXRjaDogJ2ZvbnQtc3RyZXRjaCcsXG4gICAgZm9udFN0eWxlOiAnZm9udC1zdHlsZScsXG4gICAgZm9udFZhcmlhbnQ6ICdmb250LXZhcmlhbnQnLFxuICAgIGZvbnRXZWlnaHQ6ICdmb250LXdlaWdodCcsXG4gICAgZ2x5cGhOYW1lOiAnZ2x5cGgtbmFtZScsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6ICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJyxcbiAgICBnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICAgaHJlZkxhbmc6ICdocmVmbGFuZycsXG4gICAgaG9yaXpBZHZYOiAnaG9yaXotYWR2LXgnLFxuICAgIGhvcml6T3JpZ2luWDogJ2hvcml6LW9yaWdpbi14JyxcbiAgICBob3Jpek9yaWdpblk6ICdob3Jpei1vcmlnaW4teScsXG4gICAgaW1hZ2VSZW5kZXJpbmc6ICdpbWFnZS1yZW5kZXJpbmcnLFxuICAgIGxldHRlclNwYWNpbmc6ICdsZXR0ZXItc3BhY2luZycsXG4gICAgbGlnaHRpbmdDb2xvcjogJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgICBtYXJrZXJFbmQ6ICdtYXJrZXItZW5kJyxcbiAgICBtYXJrZXJNaWQ6ICdtYXJrZXItbWlkJyxcbiAgICBtYXJrZXJTdGFydDogJ21hcmtlci1zdGFydCcsXG4gICAgbmF2RG93bjogJ25hdi1kb3duJyxcbiAgICBuYXZEb3duTGVmdDogJ25hdi1kb3duLWxlZnQnLFxuICAgIG5hdkRvd25SaWdodDogJ25hdi1kb3duLXJpZ2h0JyxcbiAgICBuYXZMZWZ0OiAnbmF2LWxlZnQnLFxuICAgIG5hdk5leHQ6ICduYXYtbmV4dCcsXG4gICAgbmF2UHJldjogJ25hdi1wcmV2JyxcbiAgICBuYXZSaWdodDogJ25hdi1yaWdodCcsXG4gICAgbmF2VXA6ICduYXYtdXAnLFxuICAgIG5hdlVwTGVmdDogJ25hdi11cC1sZWZ0JyxcbiAgICBuYXZVcFJpZ2h0OiAnbmF2LXVwLXJpZ2h0JyxcbiAgICBvbkFib3J0OiAnb25hYm9ydCcsXG4gICAgb25BY3RpdmF0ZTogJ29uYWN0aXZhdGUnLFxuICAgIG9uQWZ0ZXJQcmludDogJ29uYWZ0ZXJwcmludCcsXG4gICAgb25CZWZvcmVQcmludDogJ29uYmVmb3JlcHJpbnQnLFxuICAgIG9uQmVnaW46ICdvbmJlZ2luJyxcbiAgICBvbkNhbmNlbDogJ29uY2FuY2VsJyxcbiAgICBvbkNhblBsYXk6ICdvbmNhbnBsYXknLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6ICdvbmNhbnBsYXl0aHJvdWdoJyxcbiAgICBvbkNoYW5nZTogJ29uY2hhbmdlJyxcbiAgICBvbkNsaWNrOiAnb25jbGljaycsXG4gICAgb25DbG9zZTogJ29uY2xvc2UnLFxuICAgIG9uQ29weTogJ29uY29weScsXG4gICAgb25DdWVDaGFuZ2U6ICdvbmN1ZWNoYW5nZScsXG4gICAgb25DdXQ6ICdvbmN1dCcsXG4gICAgb25EYmxDbGljazogJ29uZGJsY2xpY2snLFxuICAgIG9uRHJhZzogJ29uZHJhZycsXG4gICAgb25EcmFnRW5kOiAnb25kcmFnZW5kJyxcbiAgICBvbkRyYWdFbnRlcjogJ29uZHJhZ2VudGVyJyxcbiAgICBvbkRyYWdFeGl0OiAnb25kcmFnZXhpdCcsXG4gICAgb25EcmFnTGVhdmU6ICdvbmRyYWdsZWF2ZScsXG4gICAgb25EcmFnT3ZlcjogJ29uZHJhZ292ZXInLFxuICAgIG9uRHJhZ1N0YXJ0OiAnb25kcmFnc3RhcnQnLFxuICAgIG9uRHJvcDogJ29uZHJvcCcsXG4gICAgb25EdXJhdGlvbkNoYW5nZTogJ29uZHVyYXRpb25jaGFuZ2UnLFxuICAgIG9uRW1wdGllZDogJ29uZW1wdGllZCcsXG4gICAgb25FbmQ6ICdvbmVuZCcsXG4gICAgb25FbmRlZDogJ29uZW5kZWQnLFxuICAgIG9uRXJyb3I6ICdvbmVycm9yJyxcbiAgICBvbkZvY3VzOiAnb25mb2N1cycsXG4gICAgb25Gb2N1c0luOiAnb25mb2N1c2luJyxcbiAgICBvbkZvY3VzT3V0OiAnb25mb2N1c291dCcsXG4gICAgb25IYXNoQ2hhbmdlOiAnb25oYXNoY2hhbmdlJyxcbiAgICBvbklucHV0OiAnb25pbnB1dCcsXG4gICAgb25JbnZhbGlkOiAnb25pbnZhbGlkJyxcbiAgICBvbktleURvd246ICdvbmtleWRvd24nLFxuICAgIG9uS2V5UHJlc3M6ICdvbmtleXByZXNzJyxcbiAgICBvbktleVVwOiAnb25rZXl1cCcsXG4gICAgb25Mb2FkOiAnb25sb2FkJyxcbiAgICBvbkxvYWRlZERhdGE6ICdvbmxvYWRlZGRhdGEnLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6ICdvbmxvYWRlZG1ldGFkYXRhJyxcbiAgICBvbkxvYWRTdGFydDogJ29ubG9hZHN0YXJ0JyxcbiAgICBvbk1lc3NhZ2U6ICdvbm1lc3NhZ2UnLFxuICAgIG9uTW91c2VEb3duOiAnb25tb3VzZWRvd24nLFxuICAgIG9uTW91c2VFbnRlcjogJ29ubW91c2VlbnRlcicsXG4gICAgb25Nb3VzZUxlYXZlOiAnb25tb3VzZWxlYXZlJyxcbiAgICBvbk1vdXNlTW92ZTogJ29ubW91c2Vtb3ZlJyxcbiAgICBvbk1vdXNlT3V0OiAnb25tb3VzZW91dCcsXG4gICAgb25Nb3VzZU92ZXI6ICdvbm1vdXNlb3ZlcicsXG4gICAgb25Nb3VzZVVwOiAnb25tb3VzZXVwJyxcbiAgICBvbk1vdXNlV2hlZWw6ICdvbm1vdXNld2hlZWwnLFxuICAgIG9uT2ZmbGluZTogJ29ub2ZmbGluZScsXG4gICAgb25PbmxpbmU6ICdvbm9ubGluZScsXG4gICAgb25QYWdlSGlkZTogJ29ucGFnZWhpZGUnLFxuICAgIG9uUGFnZVNob3c6ICdvbnBhZ2VzaG93JyxcbiAgICBvblBhc3RlOiAnb25wYXN0ZScsXG4gICAgb25QYXVzZTogJ29ucGF1c2UnLFxuICAgIG9uUGxheTogJ29ucGxheScsXG4gICAgb25QbGF5aW5nOiAnb25wbGF5aW5nJyxcbiAgICBvblBvcFN0YXRlOiAnb25wb3BzdGF0ZScsXG4gICAgb25Qcm9ncmVzczogJ29ucHJvZ3Jlc3MnLFxuICAgIG9uUmF0ZUNoYW5nZTogJ29ucmF0ZWNoYW5nZScsXG4gICAgb25SZXBlYXQ6ICdvbnJlcGVhdCcsXG4gICAgb25SZXNldDogJ29ucmVzZXQnLFxuICAgIG9uUmVzaXplOiAnb25yZXNpemUnLFxuICAgIG9uU2Nyb2xsOiAnb25zY3JvbGwnLFxuICAgIG9uU2Vla2VkOiAnb25zZWVrZWQnLFxuICAgIG9uU2Vla2luZzogJ29uc2Vla2luZycsXG4gICAgb25TZWxlY3Q6ICdvbnNlbGVjdCcsXG4gICAgb25TaG93OiAnb25zaG93JyxcbiAgICBvblN0YWxsZWQ6ICdvbnN0YWxsZWQnLFxuICAgIG9uU3RvcmFnZTogJ29uc3RvcmFnZScsXG4gICAgb25TdWJtaXQ6ICdvbnN1Ym1pdCcsXG4gICAgb25TdXNwZW5kOiAnb25zdXNwZW5kJyxcbiAgICBvblRpbWVVcGRhdGU6ICdvbnRpbWV1cGRhdGUnLFxuICAgIG9uVG9nZ2xlOiAnb250b2dnbGUnLFxuICAgIG9uVW5sb2FkOiAnb251bmxvYWQnLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiAnb252b2x1bWVjaGFuZ2UnLFxuICAgIG9uV2FpdGluZzogJ29ud2FpdGluZycsXG4gICAgb25ab29tOiAnb256b29tJyxcbiAgICBvdmVybGluZVBvc2l0aW9uOiAnb3ZlcmxpbmUtcG9zaXRpb24nLFxuICAgIG92ZXJsaW5lVGhpY2tuZXNzOiAnb3ZlcmxpbmUtdGhpY2tuZXNzJyxcbiAgICBwYWludE9yZGVyOiAncGFpbnQtb3JkZXInLFxuICAgIHBhbm9zZTE6ICdwYW5vc2UtMScsXG4gICAgcG9pbnRlckV2ZW50czogJ3BvaW50ZXItZXZlbnRzJyxcbiAgICByZWZlcnJlclBvbGljeTogJ3JlZmVycmVycG9saWN5JyxcbiAgICByZW5kZXJpbmdJbnRlbnQ6ICdyZW5kZXJpbmctaW50ZW50JyxcbiAgICBzaGFwZVJlbmRlcmluZzogJ3NoYXBlLXJlbmRlcmluZycsXG4gICAgc3RvcENvbG9yOiAnc3RvcC1jb2xvcicsXG4gICAgc3RvcE9wYWNpdHk6ICdzdG9wLW9wYWNpdHknLFxuICAgIHN0cmlrZXRocm91Z2hQb3NpdGlvbjogJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nLFxuICAgIHN0cmlrZXRocm91Z2hUaGlja25lc3M6ICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcycsXG4gICAgc3Ryb2tlRGFzaEFycmF5OiAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICAgc3Ryb2tlRGFzaE9mZnNldDogJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgICBzdHJva2VMaW5lQ2FwOiAnc3Ryb2tlLWxpbmVjYXAnLFxuICAgIHN0cm9rZUxpbmVKb2luOiAnc3Ryb2tlLWxpbmVqb2luJyxcbiAgICBzdHJva2VNaXRlckxpbWl0OiAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAgIHN0cm9rZU9wYWNpdHk6ICdzdHJva2Utb3BhY2l0eScsXG4gICAgc3Ryb2tlV2lkdGg6ICdzdHJva2Utd2lkdGgnLFxuICAgIHRhYkluZGV4OiAndGFiaW5kZXgnLFxuICAgIHRleHRBbmNob3I6ICd0ZXh0LWFuY2hvcicsXG4gICAgdGV4dERlY29yYXRpb246ICd0ZXh0LWRlY29yYXRpb24nLFxuICAgIHRleHRSZW5kZXJpbmc6ICd0ZXh0LXJlbmRlcmluZycsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiAndHJhbnNmb3JtLW9yaWdpbicsXG4gICAgdHlwZU9mOiAndHlwZW9mJyxcbiAgICB1bmRlcmxpbmVQb3NpdGlvbjogJ3VuZGVybGluZS1wb3NpdGlvbicsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiAndW5kZXJsaW5lLXRoaWNrbmVzcycsXG4gICAgdW5pY29kZUJpZGk6ICd1bmljb2RlLWJpZGknLFxuICAgIHVuaWNvZGVSYW5nZTogJ3VuaWNvZGUtcmFuZ2UnLFxuICAgIHVuaXRzUGVyRW06ICd1bml0cy1wZXItZW0nLFxuICAgIHZBbHBoYWJldGljOiAndi1hbHBoYWJldGljJyxcbiAgICB2SGFuZ2luZzogJ3YtaGFuZ2luZycsXG4gICAgdklkZW9ncmFwaGljOiAndi1pZGVvZ3JhcGhpYycsXG4gICAgdk1hdGhlbWF0aWNhbDogJ3YtbWF0aGVtYXRpY2FsJyxcbiAgICB2ZWN0b3JFZmZlY3Q6ICd2ZWN0b3ItZWZmZWN0JyxcbiAgICB2ZXJ0QWR2WTogJ3ZlcnQtYWR2LXknLFxuICAgIHZlcnRPcmlnaW5YOiAndmVydC1vcmlnaW4teCcsXG4gICAgdmVydE9yaWdpblk6ICd2ZXJ0LW9yaWdpbi15JyxcbiAgICB3b3JkU3BhY2luZzogJ3dvcmQtc3BhY2luZycsXG4gICAgd3JpdGluZ01vZGU6ICd3cml0aW5nLW1vZGUnLFxuICAgIHhIZWlnaHQ6ICd4LWhlaWdodCcsXG4gICAgLy8gVGhlc2Ugd2VyZSBjYW1lbGNhc2VkIGluIFRpbnkuIE5vdyBsb3dlcmNhc2VkIGluIFNWRyAyXG4gICAgcGxheWJhY2tPcmRlcjogJ3BsYXliYWNrb3JkZXInLFxuICAgIHRpbWVsaW5lQmVnaW46ICd0aW1lbGluZWJlZ2luJ1xuICB9LFxuICB0cmFuc2Zvcm06IGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhYm91dDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIGFjY2VudEhlaWdodDogbnVtYmVyLFxuICAgIGFjY3VtdWxhdGU6IG51bGwsXG4gICAgYWRkaXRpdmU6IG51bGwsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6IG51bGwsXG4gICAgYWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIGFtcGxpdHVkZTogbnVtYmVyLFxuICAgIGFyYWJpY0Zvcm06IG51bGwsXG4gICAgYXNjZW50OiBudW1iZXIsXG4gICAgYXR0cmlidXRlTmFtZTogbnVsbCxcbiAgICBhdHRyaWJ1dGVUeXBlOiBudWxsLFxuICAgIGF6aW11dGg6IG51bWJlcixcbiAgICBiYW5kd2lkdGg6IG51bGwsXG4gICAgYmFzZWxpbmVTaGlmdDogbnVsbCxcbiAgICBiYXNlRnJlcXVlbmN5OiBudWxsLFxuICAgIGJhc2VQcm9maWxlOiBudWxsLFxuICAgIGJib3g6IG51bGwsXG4gICAgYmVnaW46IG51bGwsXG4gICAgYmlhczogbnVtYmVyLFxuICAgIGJ5OiBudWxsLFxuICAgIGNhbGNNb2RlOiBudWxsLFxuICAgIGNhcEhlaWdodDogbnVtYmVyLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY2xpcDogbnVsbCxcbiAgICBjbGlwUGF0aDogbnVsbCxcbiAgICBjbGlwUGF0aFVuaXRzOiBudWxsLFxuICAgIGNsaXBSdWxlOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbjogbnVsbCxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiBudWxsLFxuICAgIGNvbG9yUHJvZmlsZTogbnVsbCxcbiAgICBjb2xvclJlbmRlcmluZzogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGNvbnRlbnRTY3JpcHRUeXBlOiBudWxsLFxuICAgIGNvbnRlbnRTdHlsZVR5cGU6IG51bGwsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgY3Vyc29yOiBudWxsLFxuICAgIGN4OiBudWxsLFxuICAgIGN5OiBudWxsLFxuICAgIGQ6IG51bGwsXG4gICAgZGF0YVR5cGU6IG51bGwsXG4gICAgZGVmYXVsdEFjdGlvbjogbnVsbCxcbiAgICBkZXNjZW50OiBudW1iZXIsXG4gICAgZGlmZnVzZUNvbnN0YW50OiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGRpc3BsYXk6IG51bGwsXG4gICAgZHVyOiBudWxsLFxuICAgIGRpdmlzb3I6IG51bWJlcixcbiAgICBkb21pbmFudEJhc2VsaW5lOiBudWxsLFxuICAgIGRvd25sb2FkOiBib29sZWFuLFxuICAgIGR4OiBudWxsLFxuICAgIGR5OiBudWxsLFxuICAgIGVkZ2VNb2RlOiBudWxsLFxuICAgIGVkaXRhYmxlOiBudWxsLFxuICAgIGVsZXZhdGlvbjogbnVtYmVyLFxuICAgIGVuYWJsZUJhY2tncm91bmQ6IG51bGwsXG4gICAgZW5kOiBudWxsLFxuICAgIGV2ZW50OiBudWxsLFxuICAgIGV4cG9uZW50OiBudW1iZXIsXG4gICAgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDogbnVsbCxcbiAgICBmaWxsOiBudWxsLFxuICAgIGZpbGxPcGFjaXR5OiBudW1iZXIsXG4gICAgZmlsbFJ1bGU6IG51bGwsXG4gICAgZmlsdGVyOiBudWxsLFxuICAgIGZpbHRlclJlczogbnVsbCxcbiAgICBmaWx0ZXJVbml0czogbnVsbCxcbiAgICBmbG9vZENvbG9yOiBudWxsLFxuICAgIGZsb29kT3BhY2l0eTogbnVsbCxcbiAgICBmb2N1c2FibGU6IG51bGwsXG4gICAgZm9jdXNIaWdobGlnaHQ6IG51bGwsXG4gICAgZm9udEZhbWlseTogbnVsbCxcbiAgICBmb250U2l6ZTogbnVsbCxcbiAgICBmb250U2l6ZUFkanVzdDogbnVsbCxcbiAgICBmb250U3RyZXRjaDogbnVsbCxcbiAgICBmb250U3R5bGU6IG51bGwsXG4gICAgZm9udFZhcmlhbnQ6IG51bGwsXG4gICAgZm9udFdlaWdodDogbnVsbCxcbiAgICBmb3JtYXQ6IG51bGwsXG4gICAgZnI6IG51bGwsXG4gICAgZnJvbTogbnVsbCxcbiAgICBmeDogbnVsbCxcbiAgICBmeTogbnVsbCxcbiAgICBnMTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZzI6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGdseXBoTmFtZTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6IG51bGwsXG4gICAgZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiBudWxsLFxuICAgIGdseXBoUmVmOiBudWxsLFxuICAgIGdyYWRpZW50VHJhbnNmb3JtOiBudWxsLFxuICAgIGdyYWRpZW50VW5pdHM6IG51bGwsXG4gICAgaGFuZGxlcjogbnVsbCxcbiAgICBoYW5naW5nOiBudW1iZXIsXG4gICAgaGF0Y2hDb250ZW50VW5pdHM6IG51bGwsXG4gICAgaGF0Y2hVbml0czogbnVsbCxcbiAgICBoZWlnaHQ6IG51bGwsXG4gICAgaHJlZjogbnVsbCxcbiAgICBocmVmTGFuZzogbnVsbCxcbiAgICBob3JpekFkdlg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblk6IG51bWJlcixcbiAgICBpZDogbnVsbCxcbiAgICBpZGVvZ3JhcGhpYzogbnVtYmVyLFxuICAgIGltYWdlUmVuZGVyaW5nOiBudWxsLFxuICAgIGluaXRpYWxWaXNpYmlsaXR5OiBudWxsLFxuICAgIGluOiBudWxsLFxuICAgIGluMjogbnVsbCxcbiAgICBpbnRlcmNlcHQ6IG51bWJlcixcbiAgICBrOiBudW1iZXIsXG4gICAgazE6IG51bWJlcixcbiAgICBrMjogbnVtYmVyLFxuICAgIGszOiBudW1iZXIsXG4gICAgazQ6IG51bWJlcixcbiAgICBrZXJuZWxNYXRyaXg6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBrZXJuZWxVbml0TGVuZ3RoOiBudWxsLFxuICAgIGtleVBvaW50czogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXlTcGxpbmVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtleVRpbWVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtlcm5pbmc6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsZW5ndGhBZGp1c3Q6IG51bGwsXG4gICAgbGV0dGVyU3BhY2luZzogbnVsbCxcbiAgICBsaWdodGluZ0NvbG9yOiBudWxsLFxuICAgIGxpbWl0aW5nQ29uZUFuZ2xlOiBudW1iZXIsXG4gICAgbG9jYWw6IG51bGwsXG4gICAgbWFya2VyRW5kOiBudWxsLFxuICAgIG1hcmtlck1pZDogbnVsbCxcbiAgICBtYXJrZXJTdGFydDogbnVsbCxcbiAgICBtYXJrZXJIZWlnaHQ6IG51bGwsXG4gICAgbWFya2VyVW5pdHM6IG51bGwsXG4gICAgbWFya2VyV2lkdGg6IG51bGwsXG4gICAgbWFzazogbnVsbCxcbiAgICBtYXNrQ29udGVudFVuaXRzOiBudWxsLFxuICAgIG1hc2tVbml0czogbnVsbCxcbiAgICBtYXRoZW1hdGljYWw6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6IG51bGwsXG4gICAgbWVkaWFDb250ZW50RW5jb2RpbmdzOiBudWxsLFxuICAgIG1lZGlhU2l6ZTogbnVtYmVyLFxuICAgIG1lZGlhVGltZTogbnVsbCxcbiAgICBtZXRob2Q6IG51bGwsXG4gICAgbWluOiBudWxsLFxuICAgIG1vZGU6IG51bGwsXG4gICAgbmFtZTogbnVsbCxcbiAgICBuYXZEb3duOiBudWxsLFxuICAgIG5hdkRvd25MZWZ0OiBudWxsLFxuICAgIG5hdkRvd25SaWdodDogbnVsbCxcbiAgICBuYXZMZWZ0OiBudWxsLFxuICAgIG5hdk5leHQ6IG51bGwsXG4gICAgbmF2UHJldjogbnVsbCxcbiAgICBuYXZSaWdodDogbnVsbCxcbiAgICBuYXZVcDogbnVsbCxcbiAgICBuYXZVcExlZnQ6IG51bGwsXG4gICAgbmF2VXBSaWdodDogbnVsbCxcbiAgICBudW1PY3RhdmVzOiBudWxsLFxuICAgIG9ic2VydmVyOiBudWxsLFxuICAgIG9mZnNldDogbnVsbCxcbiAgICBvbkFib3J0OiBudWxsLFxuICAgIG9uQWN0aXZhdGU6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWdpbjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9jdXNJbjogbnVsbCxcbiAgICBvbkZvY3VzT3V0OiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTG9hZDogbnVsbCxcbiAgICBvbkxvYWRlZERhdGE6IG51bGwsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk1vdXNlV2hlZWw6IG51bGwsXG4gICAgb25PZmZsaW5lOiBudWxsLFxuICAgIG9uT25saW5lOiBudWxsLFxuICAgIG9uUGFnZUhpZGU6IG51bGwsXG4gICAgb25QYWdlU2hvdzogbnVsbCxcbiAgICBvblBhc3RlOiBudWxsLFxuICAgIG9uUGF1c2U6IG51bGwsXG4gICAgb25QbGF5OiBudWxsLFxuICAgIG9uUGxheWluZzogbnVsbCxcbiAgICBvblBvcFN0YXRlOiBudWxsLFxuICAgIG9uUHJvZ3Jlc3M6IG51bGwsXG4gICAgb25SYXRlQ2hhbmdlOiBudWxsLFxuICAgIG9uUmVwZWF0OiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TZWVrZWQ6IG51bGwsXG4gICAgb25TZWVraW5nOiBudWxsLFxuICAgIG9uU2VsZWN0OiBudWxsLFxuICAgIG9uU2hvdzogbnVsbCxcbiAgICBvblN0YWxsZWQ6IG51bGwsXG4gICAgb25TdG9yYWdlOiBudWxsLFxuICAgIG9uU3VibWl0OiBudWxsLFxuICAgIG9uU3VzcGVuZDogbnVsbCxcbiAgICBvblRpbWVVcGRhdGU6IG51bGwsXG4gICAgb25Ub2dnbGU6IG51bGwsXG4gICAgb25VbmxvYWQ6IG51bGwsXG4gICAgb25Wb2x1bWVDaGFuZ2U6IG51bGwsXG4gICAgb25XYWl0aW5nOiBudWxsLFxuICAgIG9uWm9vbTogbnVsbCxcbiAgICBvcGFjaXR5OiBudWxsLFxuICAgIG9wZXJhdG9yOiBudWxsLFxuICAgIG9yZGVyOiBudWxsLFxuICAgIG9yaWVudDogbnVsbCxcbiAgICBvcmllbnRhdGlvbjogbnVsbCxcbiAgICBvcmlnaW46IG51bGwsXG4gICAgb3ZlcmZsb3c6IG51bGwsXG4gICAgb3ZlcmxheTogbnVsbCxcbiAgICBvdmVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6IG51bWJlcixcbiAgICBwYWludE9yZGVyOiBudWxsLFxuICAgIHBhbm9zZTE6IG51bGwsXG4gICAgcGF0aDogbnVsbCxcbiAgICBwYXRoTGVuZ3RoOiBudW1iZXIsXG4gICAgcGF0dGVybkNvbnRlbnRVbml0czogbnVsbCxcbiAgICBwYXR0ZXJuVHJhbnNmb3JtOiBudWxsLFxuICAgIHBhdHRlcm5Vbml0czogbnVsbCxcbiAgICBwaGFzZTogbnVsbCxcbiAgICBwaW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBwaXRjaDogbnVsbCxcbiAgICBwbGF5YmFja09yZGVyOiBudWxsLFxuICAgIHBvaW50ZXJFdmVudHM6IG51bGwsXG4gICAgcG9pbnRzOiBudWxsLFxuICAgIHBvaW50c0F0WDogbnVtYmVyLFxuICAgIHBvaW50c0F0WTogbnVtYmVyLFxuICAgIHBvaW50c0F0WjogbnVtYmVyLFxuICAgIHByZXNlcnZlQWxwaGE6IG51bGwsXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbzogbnVsbCxcbiAgICBwcmltaXRpdmVVbml0czogbnVsbCxcbiAgICBwcm9wYWdhdGU6IG51bGwsXG4gICAgcHJvcGVydHk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByOiBudWxsLFxuICAgIHJhZGl1czogbnVsbCxcbiAgICByZWZlcnJlclBvbGljeTogbnVsbCxcbiAgICByZWZYOiBudWxsLFxuICAgIHJlZlk6IG51bGwsXG4gICAgcmVsOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmV2OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVuZGVyaW5nSW50ZW50OiBudWxsLFxuICAgIHJlcGVhdENvdW50OiBudWxsLFxuICAgIHJlcGVhdER1cjogbnVsbCxcbiAgICByZXF1aXJlZEV4dGVuc2lvbnM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZlYXR1cmVzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGb250czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRm9ybWF0czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlc291cmNlOiBudWxsLFxuICAgIHJlc3RhcnQ6IG51bGwsXG4gICAgcmVzdWx0OiBudWxsLFxuICAgIHJvdGF0ZTogbnVsbCxcbiAgICByeDogbnVsbCxcbiAgICByeTogbnVsbCxcbiAgICBzY2FsZTogbnVsbCxcbiAgICBzZWVkOiBudWxsLFxuICAgIHNoYXBlUmVuZGVyaW5nOiBudWxsLFxuICAgIHNpZGU6IG51bGwsXG4gICAgc2xvcGU6IG51bGwsXG4gICAgc25hcHNob3RUaW1lOiBudWxsLFxuICAgIHNwZWN1bGFyQ29uc3RhbnQ6IG51bWJlcixcbiAgICBzcGVjdWxhckV4cG9uZW50OiBudW1iZXIsXG4gICAgc3ByZWFkTWV0aG9kOiBudWxsLFxuICAgIHNwYWNpbmc6IG51bGwsXG4gICAgc3RhcnRPZmZzZXQ6IG51bGwsXG4gICAgc3RkRGV2aWF0aW9uOiBudWxsLFxuICAgIHN0ZW1oOiBudWxsLFxuICAgIHN0ZW12OiBudWxsLFxuICAgIHN0aXRjaFRpbGVzOiBudWxsLFxuICAgIHN0b3BDb2xvcjogbnVsbCxcbiAgICBzdG9wT3BhY2l0eTogbnVsbCxcbiAgICBzdHJpa2V0aHJvdWdoUG9zaXRpb246IG51bWJlcixcbiAgICBzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgc3RyaW5nOiBudWxsLFxuICAgIHN0cm9rZTogbnVsbCxcbiAgICBzdHJva2VEYXNoQXJyYXk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiBudWxsLFxuICAgIHN0cm9rZUxpbmVDYXA6IG51bGwsXG4gICAgc3Ryb2tlTGluZUpvaW46IG51bGwsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogbnVtYmVyLFxuICAgIHN0cm9rZU9wYWNpdHk6IG51bWJlcixcbiAgICBzdHJva2VXaWR0aDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBzdXJmYWNlU2NhbGU6IG51bWJlcixcbiAgICBzeW5jQmVoYXZpb3I6IG51bGwsXG4gICAgc3luY0JlaGF2aW9yRGVmYXVsdDogbnVsbCxcbiAgICBzeW5jTWFzdGVyOiBudWxsLFxuICAgIHN5bmNUb2xlcmFuY2U6IG51bGwsXG4gICAgc3luY1RvbGVyYW5jZURlZmF1bHQ6IG51bGwsXG4gICAgc3lzdGVtTGFuZ3VhZ2U6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICAgIHRhYmxlVmFsdWVzOiBudWxsLFxuICAgIHRhcmdldDogbnVsbCxcbiAgICB0YXJnZXRYOiBudW1iZXIsXG4gICAgdGFyZ2V0WTogbnVtYmVyLFxuICAgIHRleHRBbmNob3I6IG51bGwsXG4gICAgdGV4dERlY29yYXRpb246IG51bGwsXG4gICAgdGV4dFJlbmRlcmluZzogbnVsbCxcbiAgICB0ZXh0TGVuZ3RoOiBudWxsLFxuICAgIHRpbWVsaW5lQmVnaW46IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNmb3JtQmVoYXZpb3I6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB0eXBlT2Y6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0bzogbnVsbCxcbiAgICB0cmFuc2Zvcm06IG51bGwsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiBudWxsLFxuICAgIHUxOiBudWxsLFxuICAgIHUyOiBudWxsLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgdW5pY29kZTogbnVsbCxcbiAgICB1bmljb2RlQmlkaTogbnVsbCxcbiAgICB1bmljb2RlUmFuZ2U6IG51bGwsXG4gICAgdW5pdHNQZXJFbTogbnVtYmVyLFxuICAgIHZhbHVlczogbnVsbCxcbiAgICB2QWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIHZNYXRoZW1hdGljYWw6IG51bWJlcixcbiAgICB2ZWN0b3JFZmZlY3Q6IG51bGwsXG4gICAgdkhhbmdpbmc6IG51bWJlcixcbiAgICB2SWRlb2dyYXBoaWM6IG51bWJlcixcbiAgICB2ZXJzaW9uOiBudWxsLFxuICAgIHZlcnRBZHZZOiBudW1iZXIsXG4gICAgdmVydE9yaWdpblg6IG51bWJlcixcbiAgICB2ZXJ0T3JpZ2luWTogbnVtYmVyLFxuICAgIHZpZXdCb3g6IG51bGwsXG4gICAgdmlld1RhcmdldDogbnVsbCxcbiAgICB2aXNpYmlsaXR5OiBudWxsLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHdpZHRoczogbnVsbCxcbiAgICB3b3JkU3BhY2luZzogbnVsbCxcbiAgICB3cml0aW5nTW9kZTogbnVsbCxcbiAgICB4OiBudWxsLFxuICAgIHgxOiBudWxsLFxuICAgIHgyOiBudWxsLFxuICAgIHhDaGFubmVsU2VsZWN0b3I6IG51bGwsXG4gICAgeEhlaWdodDogbnVtYmVyLFxuICAgIHk6IG51bGwsXG4gICAgeTE6IG51bGwsXG4gICAgeTI6IG51bGwsXG4gICAgeUNoYW5uZWxTZWxlY3RvcjogbnVsbCxcbiAgICB6OiBudWxsLFxuICAgIHpvb21BbmRQYW46IG51bGxcbiAgfVxufSlcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL25vcm1hbGl6ZS5qcydcbmltcG9ydCB7RGVmaW5lZEluZm99IGZyb20gJy4vdXRpbC9kZWZpbmVkLWluZm8uanMnXG5pbXBvcnQge0luZm99IGZyb20gJy4vdXRpbC9pbmZvLmpzJ1xuXG5jb25zdCB2YWxpZCA9IC9eZGF0YVstXFx3LjpdKyQvaVxuY29uc3QgZGFzaCA9IC8tW2Etel0vZ1xuY29uc3QgY2FwID0gL1tBLVpdL2dcblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtJbmZvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZChzY2hlbWEsIHZhbHVlKSB7XG4gIGNvbnN0IG5vcm1hbCA9IG5vcm1hbGl6ZSh2YWx1ZSlcbiAgbGV0IHByb3AgPSB2YWx1ZVxuICBsZXQgVHlwZSA9IEluZm9cblxuICBpZiAobm9ybWFsIGluIHNjaGVtYS5ub3JtYWwpIHtcbiAgICByZXR1cm4gc2NoZW1hLnByb3BlcnR5W3NjaGVtYS5ub3JtYWxbbm9ybWFsXV1cbiAgfVxuXG4gIGlmIChub3JtYWwubGVuZ3RoID4gNCAmJiBub3JtYWwuc2xpY2UoMCwgNCkgPT09ICdkYXRhJyAmJiB2YWxpZC50ZXN0KHZhbHVlKSkge1xuICAgIC8vIEF0dHJpYnV0ZSBvciBwcm9wZXJ0eS5cbiAgICBpZiAodmFsdWUuY2hhckF0KDQpID09PSAnLScpIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhIHByb3BlcnR5LlxuICAgICAgY29uc3QgcmVzdCA9IHZhbHVlLnNsaWNlKDUpLnJlcGxhY2UoZGFzaCwgY2FtZWxjYXNlKVxuICAgICAgcHJvcCA9ICdkYXRhJyArIHJlc3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyByZXN0LnNsaWNlKDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhbiBhdHRyaWJ1dGUuXG4gICAgICBjb25zdCByZXN0ID0gdmFsdWUuc2xpY2UoNClcblxuICAgICAgaWYgKCFkYXNoLnRlc3QocmVzdCkpIHtcbiAgICAgICAgbGV0IGRhc2hlcyA9IHJlc3QucmVwbGFjZShjYXAsIGtlYmFiKVxuXG4gICAgICAgIGlmIChkYXNoZXMuY2hhckF0KDApICE9PSAnLScpIHtcbiAgICAgICAgICBkYXNoZXMgPSAnLScgKyBkYXNoZXNcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlID0gJ2RhdGEnICsgZGFzaGVzXG4gICAgICB9XG4gICAgfVxuXG4gICAgVHlwZSA9IERlZmluZWRJbmZvXG4gIH1cblxuICByZXR1cm4gbmV3IFR5cGUocHJvcCwgdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBrZWJhYigkMCkge1xuICByZXR1cm4gJy0nICsgJDAudG9Mb3dlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdXRpbC9pbmZvLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bWVyZ2V9IGZyb20gJy4vbGliL3V0aWwvbWVyZ2UuanMnXG5pbXBvcnQge3hsaW5rfSBmcm9tICcuL2xpYi94bGluay5qcydcbmltcG9ydCB7eG1sfSBmcm9tICcuL2xpYi94bWwuanMnXG5pbXBvcnQge3htbG5zfSBmcm9tICcuL2xpYi94bWxucy5qcydcbmltcG9ydCB7YXJpYX0gZnJvbSAnLi9saWIvYXJpYS5qcydcbmltcG9ydCB7aHRtbCBhcyBodG1sQmFzZX0gZnJvbSAnLi9saWIvaHRtbC5qcydcbmltcG9ydCB7c3ZnIGFzIHN2Z0Jhc2V9IGZyb20gJy4vbGliL3N2Zy5qcydcblxuZXhwb3J0IHtmaW5kfSBmcm9tICcuL2xpYi9maW5kLmpzJ1xuZXhwb3J0IHtoYXN0VG9SZWFjdH0gZnJvbSAnLi9saWIvaGFzdC10by1yZWFjdC5qcydcbmV4cG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL2xpYi9ub3JtYWxpemUuanMnXG5leHBvcnQgY29uc3QgaHRtbCA9IG1lcmdlKFt4bWwsIHhsaW5rLCB4bWxucywgYXJpYSwgaHRtbEJhc2VdLCAnaHRtbCcpXG5leHBvcnQgY29uc3Qgc3ZnID0gbWVyZ2UoW3htbCwgeGxpbmssIHhtbG5zLCBhcmlhLCBzdmdCYXNlXSwgJ3N2ZycpXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkTGVmdD10cnVlXVxuICogICBXaGV0aGVyIHRvIHBhZCBhIHNwYWNlIGJlZm9yZSBhIHRva2VuLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkUmlnaHQ9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gcGFkIGEgc3BhY2UgYWZ0ZXIgYSB0b2tlbi5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPcHRpb25zfSBTdHJpbmdpZnlPcHRpb25zXG4gKiAgIFBsZWFzZSB1c2UgYFN0cmluZ2lmeU9wdGlvbnNgIGluc3RlYWQuXG4gKi9cblxuLyoqXG4gKiBQYXJzZSBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59XG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB0b2tlbnMgPSBbXVxuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJylcbiAgbGV0IGluZGV4ID0gaW5wdXQuaW5kZXhPZignLCcpXG4gIGxldCBzdGFydCA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZW5kID0gZmFsc2VcblxuICB3aGlsZSAoIWVuZCkge1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoXG4gICAgICBlbmQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBpbnB1dC5zbGljZShzdGFydCwgaW5kZXgpLnRyaW0oKVxuXG4gICAgaWYgKHRva2VuIHx8ICFlbmQpIHtcbiAgICAgIHRva2Vucy5wdXNoKHRva2VuKVxuICAgIH1cblxuICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgaW5kZXggPSBpbnB1dC5pbmRleE9mKCcsJywgc3RhcnQpXG4gIH1cblxuICByZXR1cm4gdG9rZW5zXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGFycmF5IG9mIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcywgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICAvLyBFbnN1cmUgdGhlIGxhc3QgZW1wdHkgZW50cnkgaXMgc2Vlbi5cbiAgY29uc3QgaW5wdXQgPSB2YWx1ZXNbdmFsdWVzLmxlbmd0aCAtIDFdID09PSAnJyA/IFsuLi52YWx1ZXMsICcnXSA6IHZhbHVlc1xuXG4gIHJldHVybiBpbnB1dFxuICAgIC5qb2luKFxuICAgICAgKHNldHRpbmdzLnBhZFJpZ2h0ID8gJyAnIDogJycpICtcbiAgICAgICAgJywnICtcbiAgICAgICAgKHNldHRpbmdzLnBhZExlZnQgPT09IGZhbHNlID8gJycgOiAnICcpXG4gICAgKVxuICAgIC50cmltKClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFNpbXBsZVNlbGVjdG9yXG4gKiAgIFNlbGVjdG9yIHR5cGUuXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gRGVmYXVsdFRhZ05hbWVcbiAqICAgRGVmYXVsdCB0YWcgbmFtZS5cbiAqIEB0eXBlZGVmIHsoXG4gKiAgIFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgJydcbiAqICAgICA/IERlZmF1bHRUYWdOYW1lXG4gKiAgICAgOiBTaW1wbGVTZWxlY3RvciBleHRlbmRzIGAke2luZmVyIFRhZ05hbWV9LiR7aW5mZXIgUmVzdH1gXG4gKiAgICAgPyBFeHRyYWN0VGFnTmFtZTxUYWdOYW1lLCBEZWZhdWx0VGFnTmFtZT5cbiAqICAgICA6IFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgYCR7aW5mZXIgVGFnTmFtZX0jJHtpbmZlciBSZXN0fWBcbiAqICAgICA/IEV4dHJhY3RUYWdOYW1lPFRhZ05hbWUsIERlZmF1bHRUYWdOYW1lPlxuICogICAgIDogU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyBzdHJpbmdcbiAqICAgICA/IFNpbXBsZVNlbGVjdG9yXG4gKiAgICAgOiBEZWZhdWx0VGFnTmFtZVxuICogKX0gRXh0cmFjdFRhZ05hbWVcbiAqICAgRXh0cmFjdCB0YWcgbmFtZSBmcm9tIGEgc2ltcGxlIHNlbGVjdG9yLlxuICovXG5cbmNvbnN0IHNlYXJjaCA9IC9bIy5dL2dcblxuLyoqXG4gKiBDcmVhdGUgYSBoYXN0IGVsZW1lbnQgZnJvbSBhIHNpbXBsZSBDU1Mgc2VsZWN0b3IuXG4gKlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFNlbGVjdG9yXG4gKiAgIFR5cGUgb2Ygc2VsZWN0b3IuXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gW0RlZmF1bHRUYWdOYW1lPSdkaXYnXVxuICogICBUeXBlIG9mIGRlZmF1bHQgdGFnIG5hbWUgKGRlZmF1bHQ6IGAnZGl2J2ApLlxuICogQHBhcmFtIHtTZWxlY3RvciB8IG51bGwgfCB1bmRlZmluZWR9IFtzZWxlY3Rvcl1cbiAqICAgU2ltcGxlIENTUyBzZWxlY3RvciAob3B0aW9uYWwpLlxuICpcbiAqICAgQ2FuIGNvbnRhaW4gYSB0YWcgbmFtZSAoYGZvb2ApLCBjbGFzc2VzIChgLmJhcmApLCBhbmQgYW4gSUQgKGAjYmF6YCkuXG4gKiAgIE11bHRpcGxlIGNsYXNzZXMgYXJlIGFsbG93ZWQuXG4gKiAgIFVzZXMgdGhlIGxhc3QgSUQgaWYgbXVsdGlwbGUgSURzIGFyZSBmb3VuZC5cbiAqIEBwYXJhbSB7RGVmYXVsdFRhZ05hbWUgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGVmYXVsdFRhZ05hbWU9J2RpdiddXG4gKiAgIFRhZyBuYW1lIHRvIHVzZSBpZiBgc2VsZWN0b3JgIGRvZXMgbm90IHNwZWNpZnkgb25lIChkZWZhdWx0OiBgJ2RpdidgKS5cbiAqIEByZXR1cm5zIHtFbGVtZW50ICYge3RhZ05hbWU6IEV4dHJhY3RUYWdOYW1lPFNlbGVjdG9yLCBEZWZhdWx0VGFnTmFtZT59fVxuICogICBCdWlsdCBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTZWxlY3RvcihzZWxlY3RvciwgZGVmYXVsdFRhZ05hbWUpIHtcbiAgY29uc3QgdmFsdWUgPSBzZWxlY3RvciB8fCAnJ1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BzID0ge31cbiAgbGV0IHN0YXJ0ID0gMFxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHByZXZpb3VzXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdGFnTmFtZVxuXG4gIHdoaWxlIChzdGFydCA8IHZhbHVlLmxlbmd0aCkge1xuICAgIHNlYXJjaC5sYXN0SW5kZXggPSBzdGFydFxuICAgIGNvbnN0IG1hdGNoID0gc2VhcmNoLmV4ZWModmFsdWUpXG4gICAgY29uc3Qgc3VidmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydCwgbWF0Y2ggPyBtYXRjaC5pbmRleCA6IHZhbHVlLmxlbmd0aClcblxuICAgIGlmIChzdWJ2YWx1ZSkge1xuICAgICAgaWYgKCFwcmV2aW91cykge1xuICAgICAgICB0YWdOYW1lID0gc3VidmFsdWVcbiAgICAgIH0gZWxzZSBpZiAocHJldmlvdXMgPT09ICcjJykge1xuICAgICAgICBwcm9wcy5pZCA9IHN1YnZhbHVlXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuY2xhc3NOYW1lKSkge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUucHVzaChzdWJ2YWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLmNsYXNzTmFtZSA9IFtzdWJ2YWx1ZV1cbiAgICAgIH1cblxuICAgICAgc3RhcnQgKz0gc3VidmFsdWUubGVuZ3RoXG4gICAgfVxuXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICBwcmV2aW91cyA9IG1hdGNoWzBdXG4gICAgICBzdGFydCsrXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGFnIG5hbWUgaXMgcGFyc2VkLlxuICAgIHRhZ05hbWU6IHRhZ05hbWUgfHwgZGVmYXVsdFRhZ05hbWUgfHwgJ2RpdicsXG4gICAgcHJvcGVydGllczogcHJvcHMsXG4gICAgY2hpbGRyZW46IFtdXG4gIH1cbn1cbiIsICIvKipcbiAqIFBhcnNlIHNwYWNlLXNlcGFyYXRlZCB0b2tlbnMgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fVxuICogICBMaXN0IG9mIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIGNvbnN0IGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8ICcnKS50cmltKClcbiAgcmV0dXJuIGlucHV0ID8gaW5wdXQuc3BsaXQoL1sgXFx0XFxuXFxyXFxmXSsvZykgOiBbXVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBzdHJpbmdzIGFzIHNwYWNlIHNlcGFyYXRlZC10b2tlbnMuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmd8bnVtYmVyPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMpIHtcbiAgcmV0dXJuIHZhbHVlcy5qb2luKCcgJykudHJpbSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290Q29udGVudH0gUm9vdENvbnRlbnRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtFbGVtZW50IHwgUm9vdH0gUmVzdWx0XG4gKiAgIFJlc3VsdCBmcm9tIGEgYGhgIChvciBgc2ApIGNhbGwuXG4gKlxuICogQHR5cGVkZWYge251bWJlciB8IHN0cmluZ30gU3R5bGVWYWx1ZVxuICogICBWYWx1ZSBmb3IgYSBDU1Mgc3R5bGUgZmllbGQuXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgU3R5bGVWYWx1ZT59IFN0eWxlXG4gKiAgIFN1cHBvcnRlZCB2YWx1ZSBvZiBhIGBzdHlsZWAgcHJvcC5cbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gUHJpbWl0aXZlVmFsdWVcbiAqICAgUHJpbWl0aXZlIHByb3BlcnR5IHZhbHVlLlxuICogQHR5cGVkZWYge0FycmF5PG51bWJlciB8IHN0cmluZz59IEFycmF5VmFsdWVcbiAqICAgTGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgZm9yIHNwYWNlLSBvciBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzIChzdWNoIGFzIGBjbGFzc05hbWVgKS5cbiAqIEB0eXBlZGVmIHtBcnJheVZhbHVlIHwgUHJpbWl0aXZlVmFsdWV9IFByb3BlcnR5VmFsdWVcbiAqICAgUHJpbWl0aXZlIHZhbHVlIG9yIGxpc3QgdmFsdWUuXG4gKiBAdHlwZWRlZiB7e1twcm9wZXJ0eTogc3RyaW5nXTogUHJvcGVydHlWYWx1ZSB8IFN0eWxlfX0gUHJvcGVydGllc1xuICogICBBY2NlcHRhYmxlIHZhbHVlIGZvciBlbGVtZW50IHByb3BlcnRpZXMuXG4gKlxuICogQHR5cGVkZWYge251bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFByaW1pdGl2ZUNoaWxkXG4gKiAgIFByaW1pdGl2ZSBjaGlsZHJlbiwgZWl0aGVyIGlnbm9yZWQgKG51bGxpc2gpLCBvciB0dXJuZWQgaW50byB0ZXh0IG5vZGVzLlxuICogQHR5cGVkZWYge0FycmF5PEFycmF5Q2hpbGROZXN0ZWQgfCBOb2RlcyB8IFByaW1pdGl2ZUNoaWxkPn0gQXJyYXlDaGlsZFxuICogICBMaXN0IG9mIGNoaWxkcmVuLlxuICogQHR5cGVkZWYge0FycmF5PE5vZGVzIHwgUHJpbWl0aXZlQ2hpbGQ+fSBBcnJheUNoaWxkTmVzdGVkXG4gKiAgIExpc3Qgb2YgY2hpbGRyZW4gKGRlZXApLlxuICogQHR5cGVkZWYge0FycmF5Q2hpbGQgfCBOb2RlcyB8IFByaW1pdGl2ZUNoaWxkfSBDaGlsZFxuICogICBBY2NlcHRhYmxlIGNoaWxkIHZhbHVlLlxuICovXG5cbmltcG9ydCB7cGFyc2UgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtwYXJzZVNlbGVjdG9yfSBmcm9tICdoYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3InXG5pbXBvcnQge2ZpbmQsIG5vcm1hbGl6ZX0gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge3BhcnNlIGFzIHNwYWNlc30gZnJvbSAnc3BhY2Utc2VwYXJhdGVkLXRva2VucydcblxuY29uc3QgYnV0dG9uVHlwZXMgPSBuZXcgU2V0KFsnYnV0dG9uJywgJ21lbnUnLCAncmVzZXQnLCAnc3VibWl0J10pXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWEgdG8gdXNlLlxuICogQHBhcmFtIHtzdHJpbmd9IGRlZmF1bHRUYWdOYW1lXG4gKiAgIERlZmF1bHQgdGFnIG5hbWUuXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9IFtjYXNlU2Vuc2l0aXZlXVxuICogICBDYXNlLXNlbnNpdGl2ZSB0YWcgbmFtZXMgKGRlZmF1bHQ6IGB1bmRlZmluZWRgKS5cbiAqIEByZXR1cm5zXG4gKiAgIGBoYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUgoc2NoZW1hLCBkZWZhdWx0VGFnTmFtZSwgY2FzZVNlbnNpdGl2ZSkge1xuICBjb25zdCBhZGp1c3QgPSBjYXNlU2Vuc2l0aXZlICYmIGNyZWF0ZUFkanVzdE1hcChjYXNlU2Vuc2l0aXZlKVxuXG4gIC8qKlxuICAgKiBIeXBlcnNjcmlwdCBjb21wYXRpYmxlIERTTCBmb3IgY3JlYXRpbmcgdmlydHVhbCBoYXN0IHRyZWVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqIEByZXR1cm5zIHtSb290fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7UHJvcGVydGllc30gcHJvcGVydGllc1xuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7RWxlbWVudH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7RWxlbWVudH1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gICAqICAgU2VsZWN0b3IuXG4gICAqIEBwYXJhbSB7Q2hpbGQgfCBQcm9wZXJ0aWVzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Byb3BlcnRpZXNdXG4gICAqICAgUHJvcGVydGllcyAob3IgZmlyc3QgY2hpbGQpIChkZWZhdWx0OiBgdW5kZWZpbmVkYCkuXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqICAgQ2hpbGRyZW4uXG4gICAqIEByZXR1cm5zIHtSZXN1bHR9XG4gICAqICAgUmVzdWx0LlxuICAgKi9cbiAgZnVuY3Rpb24gaChzZWxlY3RvciwgcHJvcGVydGllcywgLi4uY2hpbGRyZW4pIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7UmVzdWx0fSAqL1xuICAgIGxldCBub2RlXG5cbiAgICBpZiAoc2VsZWN0b3IgPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RvciA9PT0gbnVsbCkge1xuICAgICAgbm9kZSA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBbXX1cbiAgICAgIC8vIFByb3BlcnRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHJvb3RzLlxuICAgICAgY29uc3QgY2hpbGQgPSAvKiogQHR5cGUge0NoaWxkfSAqLyAocHJvcGVydGllcylcbiAgICAgIGNoaWxkcmVuLnVuc2hpZnQoY2hpbGQpXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSBwYXJzZVNlbGVjdG9yKHNlbGVjdG9yLCBkZWZhdWx0VGFnTmFtZSlcbiAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgbmFtZS5cbiAgICAgIG5vZGUudGFnTmFtZSA9IG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICBpZiAoYWRqdXN0ICYmIG93bi5jYWxsKGFkanVzdCwgbm9kZS50YWdOYW1lKSkge1xuICAgICAgICBub2RlLnRhZ05hbWUgPSBhZGp1c3Rbbm9kZS50YWdOYW1lXVxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgcHJvcHMuXG4gICAgICBpZiAoaXNQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIG5vZGUudGFnTmFtZSkpIHtcbiAgICAgICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgICAgIGxldCBrZXlcblxuICAgICAgICBmb3IgKGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgaWYgKG93bi5jYWxsKHByb3BlcnRpZXMsIGtleSkpIHtcbiAgICAgICAgICAgIGFkZFByb3BlcnR5KHNjaGVtYSwgbm9kZS5wcm9wZXJ0aWVzLCBrZXksIHByb3BlcnRpZXNba2V5XSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkcmVuLnVuc2hpZnQocHJvcGVydGllcylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgY2hpbGRyZW4uXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGFkZENoaWxkKG5vZGUuY2hpbGRyZW4sIGNoaWxkcmVuW2luZGV4XSlcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnZWxlbWVudCcgJiYgbm9kZS50YWdOYW1lID09PSAndGVtcGxhdGUnKSB7XG4gICAgICBub2RlLmNvbnRlbnQgPSB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogbm9kZS5jaGlsZHJlbn1cbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBbXVxuICAgIH1cblxuICAgIHJldHVybiBub2RlXG4gIH1cblxuICByZXR1cm4gaFxufVxuXG4vKipcbiAqIENoZWNrIGlmIHNvbWV0aGluZyBpcyBwcm9wZXJ0aWVzIG9yIGEgY2hpbGQuXG4gKlxuICogQHBhcmFtIHtDaGlsZCB8IFByb3BlcnRpZXN9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgVGFnIG5hbWUuXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgUHJvcGVydGllc31cbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIGEgcHJvcGVydGllcyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvcGVydGllcyh2YWx1ZSwgbmFtZSkge1xuICBpZiAoXG4gICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fFxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG5hbWUgPT09ICdpbnB1dCcgfHwgIXZhbHVlLnR5cGUgfHwgdHlwZW9mIHZhbHVlLnR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICgnY2hpbGRyZW4nIGluIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAobmFtZSA9PT0gJ2J1dHRvbicpIHtcbiAgICByZXR1cm4gYnV0dG9uVHlwZXMuaGFzKHZhbHVlLnR5cGUudG9Mb3dlckNhc2UoKSlcbiAgfVxuXG4gIHJldHVybiAhKCd2YWx1ZScgaW4gdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWEuXG4gKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnRpZXNcbiAqICAgUHJvcGVydGllcyBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIFByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge1Byb3BlcnR5VmFsdWUgfCBTdHlsZX0gdmFsdWVcbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhZGRQcm9wZXJ0eShzY2hlbWEsIHByb3BlcnRpZXMsIGtleSwgdmFsdWUpIHtcbiAgY29uc3QgaW5mbyA9IGZpbmQoc2NoZW1hLCBrZXkpXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7UHJvcGVydHlWYWx1ZX0gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIC8vIElnbm9yZSBudWxsaXNoIGFuZCBOYU4gdmFsdWVzLlxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuXG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAvLyBJZ25vcmUgTmFOLlxuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSByZXR1cm5cblxuICAgIHJlc3VsdCA9IHZhbHVlXG4gIH1cbiAgLy8gQm9vbGVhbnMuXG4gIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmVzdWx0ID0gdmFsdWVcbiAgfVxuICAvLyBIYW5kbGUgbGlzdCB2YWx1ZXMuXG4gIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoaW5mby5zcGFjZVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gc3BhY2VzKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gY29tbWFzKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYU9yU3BhY2VTZXBhcmF0ZWQpIHtcbiAgICAgIHJlc3VsdCA9IHNwYWNlcyhjb21tYXModmFsdWUpLmpvaW4oJyAnKSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gcGFyc2VQcmltaXRpdmUoaW5mbywgaW5mby5wcm9wZXJ0eSwgdmFsdWUpXG4gICAgfVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmVzdWx0ID0gdmFsdWUuY29uY2F0KClcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBpbmZvLnByb3BlcnR5ID09PSAnc3R5bGUnID8gc3R5bGUodmFsdWUpIDogU3RyaW5nKHZhbHVlKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgIC8qKiBAdHlwZSB7QXJyYXk8bnVtYmVyIHwgc3RyaW5nPn0gKi9cbiAgICBjb25zdCBmaW5hbFJlc3VsdCA9IFtdXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgIC8vIEFzc3VtZSBubyBib29sZWFucyBpbiBhcnJheS5cbiAgICAgIGNvbnN0IHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXIgfCBzdHJpbmd9ICovIChcbiAgICAgICAgcGFyc2VQcmltaXRpdmUoaW5mbywgaW5mby5wcm9wZXJ0eSwgcmVzdWx0W2luZGV4XSlcbiAgICAgIClcbiAgICAgIGZpbmFsUmVzdWx0W2luZGV4XSA9IHZhbHVlXG4gICAgfVxuXG4gICAgcmVzdWx0ID0gZmluYWxSZXN1bHRcbiAgfVxuXG4gIC8vIENsYXNzIG5hbWVzICh3aGljaCBjYW4gYmUgYWRkZWQgYm90aCBvbiB0aGUgYHNlbGVjdG9yYCBhbmQgaGVyZSkuXG4gIGlmIChpbmZvLnByb3BlcnR5ID09PSAnY2xhc3NOYW1lJyAmJiBBcnJheS5pc0FycmF5KHByb3BlcnRpZXMuY2xhc3NOYW1lKSkge1xuICAgIC8vIEFzc3VtZSBubyBib29sZWFucyBpbiBgY2xhc3NOYW1lYC5cbiAgICBjb25zdCB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyIHwgc3RyaW5nfSAqLyAocmVzdWx0KVxuICAgIHJlc3VsdCA9IHByb3BlcnRpZXMuY2xhc3NOYW1lLmNvbmNhdCh2YWx1ZSlcbiAgfVxuXG4gIHByb3BlcnRpZXNbaW5mby5wcm9wZXJ0eV0gPSByZXN1bHRcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50Pn0gbm9kZXNcbiAqICAgQ2hpbGRyZW4uXG4gKiBAcGFyYW0ge0NoaWxkfSB2YWx1ZVxuICogICBDaGlsZC5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFkZENoaWxkKG5vZGVzLCB2YWx1ZSkge1xuICBsZXQgaW5kZXggPSAtMVxuXG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgLy8gRW1wdHkuXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgbm9kZXMucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogU3RyaW5nKHZhbHVlKX0pXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICB3aGlsZSAoKytpbmRleCA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgYWRkQ2hpbGQobm9kZXMsIHZhbHVlW2luZGV4XSlcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gdmFsdWUpIHtcbiAgICBpZiAodmFsdWUudHlwZSA9PT0gJ3Jvb3QnKSB7XG4gICAgICBhZGRDaGlsZChub2RlcywgdmFsdWUuY2hpbGRyZW4pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVzLnB1c2godmFsdWUpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm9kZSwgbm9kZXMsIG9yIHN0cmluZywgZ290IGAnICsgdmFsdWUgKyAnYCcpXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhIHNpbmdsZSBwcmltaXRpdmVzLlxuICpcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogICBQcm9wZXJ0eSBpbmZvcm1hdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge1ByaW1pdGl2ZVZhbHVlfSB2YWx1ZVxuICogICBQcm9wZXJ0eSB2YWx1ZS5cbiAqIEByZXR1cm5zIHtQcmltaXRpdmVWYWx1ZX1cbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUHJpbWl0aXZlKGluZm8sIG5hbWUsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGluZm8ubnVtYmVyICYmIHZhbHVlICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgKGluZm8uYm9vbGVhbiB8fCBpbmZvLm92ZXJsb2FkZWRCb29sZWFuKSAmJlxuICAgICAgKHZhbHVlID09PSAnJyB8fCBub3JtYWxpemUodmFsdWUpID09PSBub3JtYWxpemUobmFtZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGBzdHlsZWAgb2JqZWN0IGFzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7U3R5bGV9IHZhbHVlXG4gKiAgIFN0eWxlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENTUyBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHN0eWxlKHZhbHVlKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBrZXlcblxuICBmb3IgKGtleSBpbiB2YWx1ZSkge1xuICAgIGlmIChvd24uY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgcmVzdWx0LnB1c2goW2tleSwgdmFsdWVba2V5XV0uam9pbignOiAnKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0LmpvaW4oJzsgJylcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtYXAgdG8gYWRqdXN0IGNhc2luZy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHZhbHVlc1xuICogICBMaXN0IG9mIHByb3Blcmx5IGNhc2VkIGtleXMuXG4gKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqICAgTWFwIG9mIGxvd2VyY2FzZSBrZXlzIHRvIHVwcGVyY2FzZSBrZXlzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVBZGp1c3RNYXAodmFsdWVzKSB7XG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICByZXN1bHRbdmFsdWVzW2luZGV4XS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlc1tpbmRleF1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiIsICJleHBvcnQgY29uc3Qgc3ZnQ2FzZVNlbnNpdGl2ZVRhZ05hbWVzID0gW1xuICAnYWx0R2x5cGgnLFxuICAnYWx0R2x5cGhEZWYnLFxuICAnYWx0R2x5cGhJdGVtJyxcbiAgJ2FuaW1hdGVDb2xvcicsXG4gICdhbmltYXRlTW90aW9uJyxcbiAgJ2FuaW1hdGVUcmFuc2Zvcm0nLFxuICAnY2xpcFBhdGgnLFxuICAnZmVCbGVuZCcsXG4gICdmZUNvbG9yTWF0cml4JyxcbiAgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAnZmVDb21wb3NpdGUnLFxuICAnZmVDb252b2x2ZU1hdHJpeCcsXG4gICdmZURpZmZ1c2VMaWdodGluZycsXG4gICdmZURpc3BsYWNlbWVudE1hcCcsXG4gICdmZURpc3RhbnRMaWdodCcsXG4gICdmZURyb3BTaGFkb3cnLFxuICAnZmVGbG9vZCcsXG4gICdmZUZ1bmNBJyxcbiAgJ2ZlRnVuY0InLFxuICAnZmVGdW5jRycsXG4gICdmZUZ1bmNSJyxcbiAgJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgJ2ZlSW1hZ2UnLFxuICAnZmVNZXJnZScsXG4gICdmZU1lcmdlTm9kZScsXG4gICdmZU1vcnBob2xvZ3knLFxuICAnZmVPZmZzZXQnLFxuICAnZmVQb2ludExpZ2h0JyxcbiAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICdmZVNwb3RMaWdodCcsXG4gICdmZVRpbGUnLFxuICAnZmVUdXJidWxlbmNlJyxcbiAgJ2ZvcmVpZ25PYmplY3QnLFxuICAnZ2x5cGhSZWYnLFxuICAnbGluZWFyR3JhZGllbnQnLFxuICAncmFkaWFsR3JhZGllbnQnLFxuICAnc29saWRDb2xvcicsXG4gICd0ZXh0QXJlYScsXG4gICd0ZXh0UGF0aCdcbl1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5DaGlsZH0gQ2hpbGRcbiAqICAgQWNjZXB0YWJsZSBjaGlsZCB2YWx1ZS5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiAgIEFjY2VwdGFibGUgdmFsdWUgZm9yIGVsZW1lbnQgcHJvcGVydGllcy5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5SZXN1bHR9IFJlc3VsdFxuICogICBSZXN1bHQgZnJvbSBhIGBoYCAob3IgYHNgKSBjYWxsLlxuICovXG5cbi8vIFJlZ2lzdGVyIHRoZSBKU1ggbmFtZXNwYWNlIG9uIGBoYC5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnR9IGguSlNYLkVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGV9IGguSlNYLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0F0dHJpYnV0ZXN9IGguSlNYLkludHJpbnNpY0F0dHJpYnV0ZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNFbGVtZW50c30gaC5KU1guSW50cmluc2ljRWxlbWVudHNcbiAqL1xuXG4vLyBSZWdpc3RlciB0aGUgSlNYIG5hbWVzcGFjZSBvbiBgc2AuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50fSBzLkpTWC5FbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudENoaWxkcmVuQXR0cmlidXRlfSBzLkpTWC5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNBdHRyaWJ1dGVzfSBzLkpTWC5JbnRyaW5zaWNBdHRyaWJ1dGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljRWxlbWVudHN9IHMuSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gKi9cblxuaW1wb3J0IHtodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtjcmVhdGVIfSBmcm9tICcuL2NyZWF0ZS1oLmpzJ1xuaW1wb3J0IHtzdmdDYXNlU2Vuc2l0aXZlVGFnTmFtZXN9IGZyb20gJy4vc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcydcblxuLy8gTm90ZTogdGhpcyBleHBsaWNpdCB0eXBlIGlzIG5lZWRlZCwgb3RoZXJ3aXNlIFRTIGNyZWF0ZXMgYnJva2VuIHR5cGVzLlxuLyoqIEB0eXBlIHtSZXR1cm5UeXBlPGNyZWF0ZUg+fSAqL1xuZXhwb3J0IGNvbnN0IGggPSBjcmVhdGVIKGh0bWwsICdkaXYnKVxuXG4vLyBOb3RlOiB0aGlzIGV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkLCBvdGhlcndpc2UgVFMgY3JlYXRlcyBicm9rZW4gdHlwZXMuXG4vKiogQHR5cGUge1JldHVyblR5cGU8Y3JlYXRlSD59ICovXG5leHBvcnQgY29uc3QgcyA9IGNyZWF0ZUgoc3ZnLCAnZycsIHN2Z0Nhc2VTZW5zaXRpdmVUYWdOYW1lcylcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuVkZpbGV9IFZGaWxlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gVW5pc3RQb2ludFxuICovXG5cbi8qKlxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogICB1bmlzdCBwb2ludCwgYWxsb3dlZCBhcyBpbnB1dC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2xpbmVdXG4gKiAgIExpbmUuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2x1bW5dXG4gKiAgIENvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqICAgT2Zmc2V0LlxuICpcbiAqIEBjYWxsYmFjayBUb1BvaW50XG4gKiAgIEdldCB0aGUgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBmb3IgYG9mZnNldGAgaW4gdGhlIGJvdW5kIGluZGljZXMuXG4gKlxuICogICBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gZ2l2ZW4gb3V0IG9mIGJvdW5kcyBpbnB1dC5cbiAqXG4gKiAgIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiAgIFttYXJrZG93bi1yc106IGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vbWFya2Rvd24tcnMvYmxvYi9tYWluL3NyYy91dGlsL2xvY2F0aW9uLnJzXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtvZmZzZXRdXG4gKiAgIFNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBhbiBgb2Zmc2V0LlxuICogQHJldHVybnMge1VuaXN0UG9pbnQgfCB1bmRlZmluZWR9XG4gKiAgIFBvaW50LCBpZiBgb2Zmc2V0YCBpcyB2YWxpZCBhbmQgaW4tYm91bmRzIGlucHV0LlxuICpcbiAqIEBjYWxsYmFjayBUb09mZnNldFxuICogICBHZXQgdGhlIGBvZmZzZXRgIGZyb20gYSBsaW5lL2NvbHVtbiBiYXNlZCBgUG9pbnRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICogQHBhcmFtIHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9pbnRdXG4gKiAgIFNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBhIGBwb2ludC5cbiAqIEByZXR1cm5zIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gKiAgIE9mZnNldCAoYG51bWJlcmApIG9yIGB1bmRlZmluZWRgIGZvciBpbnZhbGlkIG9yIG91dCBvZiBib3VuZHMgaW5wdXQuXG4gKlxuICogQHR5cGVkZWYgTG9jYXRpb25cbiAqICAgQWNjZXNzb3JzIGZvciBpbmRleC5cbiAqIEBwcm9wZXJ0eSB7VG9Qb2ludH0gdG9Qb2ludFxuICogICBHZXQgdGhlIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgZm9yIGBvZmZzZXRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICogQHByb3BlcnR5IHtUb09mZnNldH0gdG9PZmZzZXRcbiAqICAgR2V0IHRoZSBgb2Zmc2V0YCBmcm9tIGEgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqL1xuXG5jb25zdCBzZWFyY2ggPSAvXFxyP1xcbnxcXHIvZ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbmRleCBvZiB0aGUgZ2l2ZW4gZG9jdW1lbnQgdG8gdHJhbnNsYXRlIGJldHdlZW4gbGluZS9jb2x1bW4gYW5kXG4gKiBvZmZzZXQgYmFzZWQgcG9zaXRpb25hbCBpbmZvLlxuICpcbiAqIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiBbbWFya2Rvd24tcnNdOiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL21hcmtkb3duLXJzL2Jsb2IvbWFpbi9zcmMvdXRpbC9sb2NhdGlvbi5yc1xuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gZmlsZVxuICogICBGaWxlIHRvIGluZGV4LlxuICogQHJldHVybnMge0xvY2F0aW9ufVxuICogICBBY2Nlc3NvcnMgZm9yIGluZGV4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9jYXRpb24oZmlsZSkge1xuICBjb25zdCB2YWx1ZSA9IFN0cmluZyhmaWxlKVxuICAvKipcbiAgICogTGlzdCwgd2hlcmUgZWFjaCBpbmRleCBpcyBhIGxpbmUgbnVtYmVyICgwLWJhc2VkKSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gICAqIGJ5dGUgaW5kZXggKmFmdGVyKiB3aGVyZSB0aGUgbGluZSBlbmRzLlxuICAgKlxuICAgKiBAdHlwZSB7QXJyYXk8bnVtYmVyPn1cbiAgICovXG4gIGNvbnN0IGluZGljZXMgPSBbXVxuXG4gIHNlYXJjaC5sYXN0SW5kZXggPSAwXG5cbiAgd2hpbGUgKHNlYXJjaC50ZXN0KHZhbHVlKSkge1xuICAgIGluZGljZXMucHVzaChzZWFyY2gubGFzdEluZGV4KVxuICB9XG5cbiAgaW5kaWNlcy5wdXNoKHZhbHVlLmxlbmd0aCArIDEpXG5cbiAgcmV0dXJuIHt0b1BvaW50LCB0b09mZnNldH1cblxuICAvKiogQHR5cGUge1RvUG9pbnR9ICovXG4gIGZ1bmN0aW9uIHRvUG9pbnQob2Zmc2V0KSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBvZmZzZXQgPT09ICdudW1iZXInICYmXG4gICAgICBvZmZzZXQgPiAtMSAmJlxuICAgICAgb2Zmc2V0IDwgaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdXG4gICAgKSB7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGluZGljZXMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChpbmRpY2VzW2luZGV4XSA+IG9mZnNldCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaW5lOiBpbmRleCArIDEsXG4gICAgICAgICAgICBjb2x1bW46IG9mZnNldCAtIChpbmRleCA+IDAgPyBpbmRpY2VzW2luZGV4IC0gMV0gOiAwKSArIDEsXG4gICAgICAgICAgICBvZmZzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQHR5cGUge1RvT2Zmc2V0fSAqL1xuICBmdW5jdGlvbiB0b09mZnNldChwb2ludCkge1xuICAgIGNvbnN0IGxpbmUgPSBwb2ludCAmJiBwb2ludC5saW5lXG4gICAgY29uc3QgY29sdW1uID0gcG9pbnQgJiYgcG9pbnQuY29sdW1uXG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbGluZSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBjb2x1bW4gPT09ICdudW1iZXInICYmXG4gICAgICAhTnVtYmVyLmlzTmFOKGxpbmUpICYmXG4gICAgICAhTnVtYmVyLmlzTmFOKGNvbHVtbikgJiZcbiAgICAgIGxpbmUgLSAxIGluIGluZGljZXNcbiAgICApIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IChpbmRpY2VzW2xpbmUgLSAyXSB8fCAwKSArIGNvbHVtbiAtIDEgfHwgMFxuXG4gICAgICBpZiAob2Zmc2V0ID4gLTEgJiYgb2Zmc2V0IDwgaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgIHJldHVybiBvZmZzZXRcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsICIvKipcbiAqIE1hcCBvZiB3ZWIgbmFtZXNwYWNlcy5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IHdlYk5hbWVzcGFjZXMgPSB7XG4gIGh0bWw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgbWF0aG1sOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcsXG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgeGxpbms6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyxcbiAgeG1sOiAnaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlJyxcbiAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudERhdGF9IEVsZW1lbnREYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLkRlZmF1bHRUcmVlQWRhcHRlck1hcH0gRGVmYXVsdFRyZWVBZGFwdGVyTWFwXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5Ub2tlbi5FbGVtZW50TG9jYXRpb259IFA1RWxlbWVudExvY2F0aW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5Ub2tlbi5Mb2NhdGlvbn0gUDVMb2NhdGlvblxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZGaWxlfSBWRmlsZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnQnXX0gUDVEb2N1bWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnRGcmFnbWVudCddfSBQNURvY3VtZW50RnJhZ21lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2RvY3VtZW50VHlwZSddfSBQNURvY3VtZW50VHlwZVxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnY29tbWVudE5vZGUnXX0gUDVDb21tZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWyd0ZXh0Tm9kZSddfSBQNVRleHRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2VsZW1lbnQnXX0gUDVFbGVtZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydub2RlJ119IFA1Tm9kZVxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsndGVtcGxhdGUnXX0gUDVUZW1wbGF0ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtTcGFjZSB8IG51bGwgfCB1bmRlZmluZWR9IFtzcGFjZT0naHRtbCddXG4gKiAgIFdoaWNoIHNwYWNlIHRoZSBkb2N1bWVudCBpcyBpbiAoZGVmYXVsdDogYCdodG1sJ2ApLlxuICpcbiAqICAgV2hlbiBhbiBgPHN2Zz5gIGVsZW1lbnQgaXMgZm91bmQgaW4gdGhlIEhUTUwgc3BhY2UsIHRoaXMgcGFja2FnZSBhbHJlYWR5XG4gKiAgIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gYW5kIGZyb20gdGhlIFNWRyBzcGFjZSB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nXG4gKiAgIGl0LlxuICogQHByb3BlcnR5IHtWRmlsZSB8IG51bGwgfCB1bmRlZmluZWR9IFtmaWxlXVxuICogICBGaWxlIHVzZWQgdG8gYWRkIHBvc2l0aW9uYWwgaW5mbyB0byBub2RlcyAob3B0aW9uYWwpLlxuICpcbiAqICAgSWYgZ2l2ZW4sIHRoZSBmaWxlIHNob3VsZCByZXByZXNlbnQgdGhlIG9yaWdpbmFsIEhUTUwgc291cmNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZlcmJvc2U9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gYWRkIGV4dHJhIHBvc2l0aW9uYWwgaW5mbyBhYm91dCBzdGFydGluZyB0YWdzLCBjbG9zaW5nIHRhZ3MsXG4gKiAgIGFuZCBhdHRyaWJ1dGVzIHRvIGVsZW1lbnRzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBvbmx5IHVzZWQgd2hlbiBgZmlsZWAgaXMgZ2l2ZW4uXG4gKlxuICogQHR5cGVkZWYgeydodG1sJyB8ICdzdmcnfSBTcGFjZVxuICogICBOYW1lc3BhY2UuXG4gKlxuICogQHR5cGVkZWYgU3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHByb3BlcnR5IHtWRmlsZSB8IHVuZGVmaW5lZH0gZmlsZVxuICogICBDb3JyZXNwb25kaW5nIGZpbGUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxvY2F0aW9uXG4gKiAgIFdoZXRoZXIgbG9jYXRpb24gaW5mbyB3YXMgZm91bmQuXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgdW5kZWZpbmVkfSB2ZXJib3NlXG4gKiAgIEFkZCBleHRyYSBwb3NpdGlvbmFsIGluZm8uXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7aCwgc30gZnJvbSAnaGFzdHNjcmlwdCdcbmltcG9ydCB7ZmluZCwgaHRtbCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7bG9jYXRpb259IGZyb20gJ3ZmaWxlLWxvY2F0aW9uJ1xuaW1wb3J0IHt3ZWJOYW1lc3BhY2VzfSBmcm9tICd3ZWItbmFtZXNwYWNlcydcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcbi8qKiBAdHlwZSB7dW5rbm93bn0gKi9cbi8vIHR5cGUtY292ZXJhZ2U6aWdub3JlLW5leHQtbGluZVxuY29uc3QgcHJvdG8gPSBPYmplY3QucHJvdG90eXBlXG5cbi8qKlxuICogVHJhbnNmb3JtIGEgYHBhcnNlNWAgQVNUIHRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtQNU5vZGV9IHRyZWVcbiAqICAgYHBhcnNlNWAgdHJlZSB0byB0cmFuc2Zvcm0uXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge05vZGVzfVxuICogICBoYXN0IHRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tUGFyc2U1KHRyZWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgcmV0dXJuIG9uZShcbiAgICB7XG4gICAgICBmaWxlOiBzZXR0aW5ncy5maWxlIHx8IHVuZGVmaW5lZCxcbiAgICAgIGxvY2F0aW9uOiBmYWxzZSxcbiAgICAgIHNjaGVtYTogc2V0dGluZ3Muc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICAgIHZlcmJvc2U6IHNldHRpbmdzLnZlcmJvc2UgfHwgZmFsc2VcbiAgICB9LFxuICAgIHRyZWVcbiAgKVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIG5vZGUuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNU5vZGV9IG5vZGVcbiAqICAgcDUgbm9kZS5cbiAqIEByZXR1cm5zIHtOb2Rlc31cbiAqICAgaGFzdCBub2RlLlxuICovXG5mdW5jdGlvbiBvbmUoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtOb2Rlc30gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIHN3aXRjaCAobm9kZS5ub2RlTmFtZSkge1xuICAgIGNhc2UgJyNjb21tZW50Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNUNvbW1lbnR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICdjb21tZW50JywgdmFsdWU6IHJlZmVyZW5jZS5kYXRhfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyNkb2N1bWVudCc6XG4gICAgY2FzZSAnI2RvY3VtZW50LWZyYWdtZW50Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNURvY3VtZW50IHwgUDVEb2N1bWVudEZyYWdtZW50fSAqLyAobm9kZSlcbiAgICAgIGNvbnN0IHF1aXJrc01vZGUgPVxuICAgICAgICAnbW9kZScgaW4gcmVmZXJlbmNlXG4gICAgICAgICAgPyByZWZlcmVuY2UubW9kZSA9PT0gJ3F1aXJrcycgfHwgcmVmZXJlbmNlLm1vZGUgPT09ICdsaW1pdGVkLXF1aXJrcydcbiAgICAgICAgICA6IGZhbHNlXG5cbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgdHlwZTogJ3Jvb3QnLFxuICAgICAgICBjaGlsZHJlbjogYWxsKHN0YXRlLCBub2RlLmNoaWxkTm9kZXMpLFxuICAgICAgICBkYXRhOiB7cXVpcmtzTW9kZX1cbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlLmZpbGUgJiYgc3RhdGUubG9jYXRpb24pIHtcbiAgICAgICAgY29uc3QgZG9jID0gU3RyaW5nKHN0YXRlLmZpbGUpXG4gICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0aW9uKGRvYylcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBsb2MudG9Qb2ludCgwKVxuICAgICAgICBjb25zdCBlbmQgPSBsb2MudG9Qb2ludChkb2MubGVuZ3RoKVxuICAgICAgICAvLyBBbHdheXMgZGVmaW5lZCBhcyB3ZSBnaXZlIHZhbGlkIGlucHV0LlxuICAgICAgICBhc3NlcnQoc3RhcnQsICdleHBlY3RlZCBgc3RhcnRgJylcbiAgICAgICAgYXNzZXJ0KGVuZCwgJ2V4cGVjdGVkIGBlbmRgJylcbiAgICAgICAgcmVzdWx0LnBvc2l0aW9uID0ge3N0YXJ0LCBlbmR9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBjYXNlICcjZG9jdW1lbnRUeXBlJzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNURvY3VtZW50VHlwZX0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSB7dHlwZTogJ2RvY3R5cGUnfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyN0ZXh0Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNVRleHR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICd0ZXh0JywgdmFsdWU6IHJlZmVyZW5jZS52YWx1ZX1cbiAgICAgIHBhdGNoKHN0YXRlLCByZWZlcmVuY2UsIHJlc3VsdClcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICAvLyBFbGVtZW50LlxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVFbGVtZW50fSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IGVsZW1lbnQoc3RhdGUsIHJlZmVyZW5jZSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtBcnJheTxQNU5vZGU+fSBub2Rlc1xuICogICBOb2Rlcy5cbiAqIEByZXR1cm5zIHtBcnJheTxSb290Q29udGVudD59XG4gKiAgIGhhc3Qgbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGFsbChzdGF0ZSwgbm9kZXMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTxSb290Q29udGVudD59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuXG4gIHdoaWxlICgrK2luZGV4IDwgbm9kZXMubGVuZ3RoKSB7XG4gICAgLy8gQXNzdW1lIG5vIHJvb3RzIGluIGBub2Rlc2AuXG4gICAgY29uc3QgcmVzdWx0ID0gLyoqIEB0eXBlIHtSb290Q29udGVudH0gKi8gKG9uZShzdGF0ZSwgbm9kZXNbaW5kZXhdKSlcbiAgICByZXN1bHRzLnB1c2gocmVzdWx0KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1A1RWxlbWVudH0gbm9kZVxuICogICBgcGFyc2U1YCBub2RlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmZ1bmN0aW9uIGVsZW1lbnQoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3Qgc2NoZW1hID0gc3RhdGUuc2NoZW1hXG5cbiAgc3RhdGUuc2NoZW1hID0gbm9kZS5uYW1lc3BhY2VVUkkgPT09IHdlYk5hbWVzcGFjZXMuc3ZnID8gc3ZnIDogaHRtbFxuXG4gIC8vIFByb3BzLlxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IHByb3BzID0ge31cblxuICB3aGlsZSAoKytpbmRleCA8IG5vZGUuYXR0cnMubGVuZ3RoKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gbm9kZS5hdHRyc1tpbmRleF1cbiAgICBjb25zdCBuYW1lID1cbiAgICAgIChhdHRyaWJ1dGUucHJlZml4ID8gYXR0cmlidXRlLnByZWZpeCArICc6JyA6ICcnKSArIGF0dHJpYnV0ZS5uYW1lXG4gICAgaWYgKCFvd24uY2FsbChwcm90bywgbmFtZSkpIHtcbiAgICAgIHByb3BzW25hbWVdID0gYXR0cmlidXRlLnZhbHVlXG4gICAgfVxuICB9XG5cbiAgLy8gQnVpbGQuXG4gIGNvbnN0IGZuID0gc3RhdGUuc2NoZW1hLnNwYWNlID09PSAnc3ZnJyA/IHMgOiBoXG4gIGNvbnN0IHJlc3VsdCA9IGZuKG5vZGUudGFnTmFtZSwgcHJvcHMsIGFsbChzdGF0ZSwgbm9kZS5jaGlsZE5vZGVzKSlcbiAgcGF0Y2goc3RhdGUsIG5vZGUsIHJlc3VsdClcblxuICAvLyBTd2l0Y2ggY29udGVudC5cbiAgaWYgKHJlc3VsdC50YWdOYW1lID09PSAndGVtcGxhdGUnKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNVRlbXBsYXRlfSAqLyAobm9kZSlcbiAgICBjb25zdCBwb3MgPSByZWZlcmVuY2Uuc291cmNlQ29kZUxvY2F0aW9uXG4gICAgY29uc3Qgc3RhcnRUYWcgPSBwb3MgJiYgcG9zLnN0YXJ0VGFnICYmIHBvc2l0aW9uKHBvcy5zdGFydFRhZylcbiAgICBjb25zdCBlbmRUYWcgPSBwb3MgJiYgcG9zLmVuZFRhZyAmJiBwb3NpdGlvbihwb3MuZW5kVGFnKVxuXG4gICAgLy8gUm9vdCBpbiwgcm9vdCBvdXQuXG4gICAgY29uc3QgY29udGVudCA9IC8qKiBAdHlwZSB7Um9vdH0gKi8gKG9uZShzdGF0ZSwgcmVmZXJlbmNlLmNvbnRlbnQpKVxuXG4gICAgaWYgKHN0YXJ0VGFnICYmIGVuZFRhZyAmJiBzdGF0ZS5maWxlKSB7XG4gICAgICBjb250ZW50LnBvc2l0aW9uID0ge3N0YXJ0OiBzdGFydFRhZy5lbmQsIGVuZDogZW5kVGFnLnN0YXJ0fVxuICAgIH1cblxuICAgIHJlc3VsdC5jb250ZW50ID0gY29udGVudFxuICB9XG5cbiAgc3RhdGUuc2NoZW1hID0gc2NoZW1hXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFBhdGNoIHBvc2l0aW9uYWwgaW5mbyBmcm9tIGBmcm9tYCBvbnRvIGB0b2AuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNU5vZGV9IGZyb21cbiAqICAgcDUgbm9kZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IHRvXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBhdGNoKHN0YXRlLCBmcm9tLCB0bykge1xuICBpZiAoJ3NvdXJjZUNvZGVMb2NhdGlvbicgaW4gZnJvbSAmJiBmcm9tLnNvdXJjZUNvZGVMb2NhdGlvbiAmJiBzdGF0ZS5maWxlKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBjcmVhdGVMb2NhdGlvbihzdGF0ZSwgdG8sIGZyb20uc291cmNlQ29kZUxvY2F0aW9uKVxuXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICBzdGF0ZS5sb2NhdGlvbiA9IHRydWVcbiAgICAgIHRvLnBvc2l0aW9uID0gcG9zaXRpb25cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgY2xlYW4gcG9zaXRpb25hbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge05vZGVzfSBub2RlXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEBwYXJhbSB7UDVFbGVtZW50TG9jYXRpb259IGxvY2F0aW9uXG4gKiAgIHA1IGxvY2F0aW9uIGluZm8uXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uLCBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2NhdGlvbihzdGF0ZSwgbm9kZSwgbG9jYXRpb24pIHtcbiAgY29uc3QgcmVzdWx0ID0gcG9zaXRpb24obG9jYXRpb24pXG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgY29uc3QgdGFpbCA9IG5vZGUuY2hpbGRyZW5bbm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXVxuXG4gICAgLy8gQnVnIGZvciB1bmNsb3NlZCB3aXRoIGNoaWxkcmVuLlxuICAgIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvaXNzdWVzLzEwOT4uXG4gICAgaWYgKFxuICAgICAgcmVzdWx0ICYmXG4gICAgICAhbG9jYXRpb24uZW5kVGFnICYmXG4gICAgICB0YWlsICYmXG4gICAgICB0YWlsLnBvc2l0aW9uICYmXG4gICAgICB0YWlsLnBvc2l0aW9uLmVuZFxuICAgICkge1xuICAgICAgcmVzdWx0LmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHRhaWwucG9zaXRpb24uZW5kKVxuICAgIH1cblxuICAgIGlmIChzdGF0ZS52ZXJib3NlKSB7XG4gICAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIFBvc2l0aW9uIHwgdW5kZWZpbmVkPn0gKi9cbiAgICAgIGNvbnN0IHByb3BzID0ge31cbiAgICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgICAgbGV0IGtleVxuXG4gICAgICBpZiAobG9jYXRpb24uYXR0cnMpIHtcbiAgICAgICAgZm9yIChrZXkgaW4gbG9jYXRpb24uYXR0cnMpIHtcbiAgICAgICAgICBpZiAob3duLmNhbGwobG9jYXRpb24uYXR0cnMsIGtleSkpIHtcbiAgICAgICAgICAgIHByb3BzW2ZpbmQoc3RhdGUuc2NoZW1hLCBrZXkpLnByb3BlcnR5XSA9IHBvc2l0aW9uKFxuICAgICAgICAgICAgICBsb2NhdGlvbi5hdHRyc1trZXldXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFzc2VydChsb2NhdGlvbi5zdGFydFRhZywgJ2Egc3RhcnQgdGFnIHNob3VsZCBleGlzdCcpXG4gICAgICBjb25zdCBvcGVuaW5nID0gcG9zaXRpb24obG9jYXRpb24uc3RhcnRUYWcpXG4gICAgICBjb25zdCBjbG9zaW5nID0gbG9jYXRpb24uZW5kVGFnID8gcG9zaXRpb24obG9jYXRpb24uZW5kVGFnKSA6IHVuZGVmaW5lZFxuICAgICAgLyoqIEB0eXBlIHtFbGVtZW50RGF0YVsncG9zaXRpb24nXX0gKi9cbiAgICAgIGNvbnN0IGRhdGEgPSB7b3BlbmluZ31cbiAgICAgIGlmIChjbG9zaW5nKSBkYXRhLmNsb3NpbmcgPSBjbG9zaW5nXG4gICAgICBkYXRhLnByb3BlcnRpZXMgPSBwcm9wc1xuXG4gICAgICBub2RlLmRhdGEgPSB7cG9zaXRpb246IGRhdGF9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFR1cm4gYSBwNSBsb2NhdGlvbiBpbnRvIGEgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHtQNUxvY2F0aW9ufSBsb2NcbiAqICAgTG9jYXRpb24uXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uIG9yIG5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKGxvYykge1xuICBjb25zdCBzdGFydCA9IHBvaW50KHtcbiAgICBsaW5lOiBsb2Muc3RhcnRMaW5lLFxuICAgIGNvbHVtbjogbG9jLnN0YXJ0Q29sLFxuICAgIG9mZnNldDogbG9jLnN0YXJ0T2Zmc2V0XG4gIH0pXG4gIGNvbnN0IGVuZCA9IHBvaW50KHtcbiAgICBsaW5lOiBsb2MuZW5kTGluZSxcbiAgICBjb2x1bW46IGxvYy5lbmRDb2wsXG4gICAgb2Zmc2V0OiBsb2MuZW5kT2Zmc2V0XG4gIH0pXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogd2UgZG8gdXNlIGB1bmRlZmluZWRgIGZvciBwb2ludHMgaWYgb25lIG9yIHRoZSBvdGhlclxuICAvLyBleGlzdHMuXG4gIHJldHVybiBzdGFydCB8fCBlbmQgPyB7c3RhcnQsIGVuZH0gOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBGaWx0ZXIgb3V0IGludmFsaWQgcG9pbnRzLlxuICpcbiAqIEBwYXJhbSB7UG9pbnR9IHBvaW50XG4gKiAgIFBvaW50IHdpdGggcG90ZW50aWFsbHkgYHVuZGVmaW5lZGAgdmFsdWVzLlxuICogQHJldHVybnMge1BvaW50IHwgdW5kZWZpbmVkfVxuICogICBQb2ludCBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBwb2ludChwb2ludCkge1xuICByZXR1cm4gcG9pbnQubGluZSAmJiBwb2ludC5jb2x1bW4gPyBwb2ludCA6IHVuZGVmaW5lZFxufVxuIiwgImNvbnN0IFVOREVGSU5FRF9DT0RFX1BPSU5UUyA9IG5ldyBTZXQoW1xuICAgIDY1NTM0LCA2NTUzNSwgMTMxMDcwLCAxMzEwNzEsIDE5NjYwNiwgMTk2NjA3LCAyNjIxNDIsIDI2MjE0MywgMzI3Njc4LCAzMjc2NzksIDM5MzIxNCxcbiAgICAzOTMyMTUsIDQ1ODc1MCwgNDU4NzUxLCA1MjQyODYsIDUyNDI4NywgNTg5ODIyLCA1ODk4MjMsIDY1NTM1OCwgNjU1MzU5LCA3MjA4OTQsXG4gICAgNzIwODk1LCA3ODY0MzAsIDc4NjQzMSwgODUxOTY2LCA4NTE5NjcsIDkxNzUwMiwgOTE3NTAzLCA5ODMwMzgsIDk4MzAzOSwgMTA0ODU3NCxcbiAgICAxMDQ4NTc1LCAxMTE0MTEwLCAxMTE0MTExLFxuXSk7XG5leHBvcnQgY29uc3QgUkVQTEFDRU1FTlRfQ0hBUkFDVEVSID0gJ1xcdUZGRkQnO1xuZXhwb3J0IHZhciBDT0RFX1BPSU5UUztcbihmdW5jdGlvbiAoQ09ERV9QT0lOVFMpIHtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkVPRlwiXSA9IC0xXSA9IFwiRU9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJOVUxMXCJdID0gMF0gPSBcIk5VTExcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlRBQlVMQVRJT05cIl0gPSA5XSA9IFwiVEFCVUxBVElPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQ0FSUklBR0VfUkVUVVJOXCJdID0gMTNdID0gXCJDQVJSSUFHRV9SRVRVUk5cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxJTkVfRkVFRFwiXSA9IDEwXSA9IFwiTElORV9GRUVEXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJGT1JNX0ZFRURcIl0gPSAxMl0gPSBcIkZPUk1fRkVFRFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiU1BBQ0VcIl0gPSAzMl0gPSBcIlNQQUNFXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFWENMQU1BVElPTl9NQVJLXCJdID0gMzNdID0gXCJFWENMQU1BVElPTl9NQVJLXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJRVU9UQVRJT05fTUFSS1wiXSA9IDM0XSA9IFwiUVVPVEFUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIk5VTUJFUl9TSUdOXCJdID0gMzVdID0gXCJOVU1CRVJfU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQU1QRVJTQU5EXCJdID0gMzhdID0gXCJBTVBFUlNBTkRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkFQT1NUUk9QSEVcIl0gPSAzOV0gPSBcIkFQT1NUUk9QSEVcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkhZUEhFTl9NSU5VU1wiXSA9IDQ1XSA9IFwiSFlQSEVOX01JTlVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTT0xJRFVTXCJdID0gNDddID0gXCJTT0xJRFVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF8wXCJdID0gNDhdID0gXCJESUdJVF8wXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF85XCJdID0gNTddID0gXCJESUdJVF85XCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTRU1JQ09MT05cIl0gPSA1OV0gPSBcIlNFTUlDT0xPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEVTU19USEFOX1NJR05cIl0gPSA2MF0gPSBcIkxFU1NfVEhBTl9TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFUVVBTFNfU0lHTlwiXSA9IDYxXSA9IFwiRVFVQUxTX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSRUFURVJfVEhBTl9TSUdOXCJdID0gNjJdID0gXCJHUkVBVEVSX1RIQU5fU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUVVFU1RJT05fTUFSS1wiXSA9IDYzXSA9IFwiUVVFU1RJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9BXCJdID0gNjVdID0gXCJMQVRJTl9DQVBJVEFMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfRlwiXSA9IDcwXSA9IFwiTEFUSU5fQ0FQSVRBTF9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9DQVBJVEFMX1hcIl0gPSA4OF0gPSBcIkxBVElOX0NBUElUQUxfWFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9aXCJdID0gOTBdID0gXCJMQVRJTl9DQVBJVEFMX1pcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlJJR0hUX1NRVUFSRV9CUkFDS0VUXCJdID0gOTNdID0gXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiR1JBVkVfQUNDRU5UXCJdID0gOTZdID0gXCJHUkFWRV9BQ0NFTlRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX0FcIl0gPSA5N10gPSBcIkxBVElOX1NNQUxMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX0ZcIl0gPSAxMDJdID0gXCJMQVRJTl9TTUFMTF9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9YXCJdID0gMTIwXSA9IFwiTEFUSU5fU01BTExfWFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fU01BTExfWlwiXSA9IDEyMl0gPSBcIkxBVElOX1NNQUxMX1pcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlJFUExBQ0VNRU5UX0NIQVJBQ1RFUlwiXSA9IDY1NTMzXSA9IFwiUkVQTEFDRU1FTlRfQ0hBUkFDVEVSXCI7XG59KShDT0RFX1BPSU5UUyA9IENPREVfUE9JTlRTIHx8IChDT0RFX1BPSU5UUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgU0VRVUVOQ0VTID0ge1xuICAgIERBU0hfREFTSDogJy0tJyxcbiAgICBDREFUQV9TVEFSVDogJ1tDREFUQVsnLFxuICAgIERPQ1RZUEU6ICdkb2N0eXBlJyxcbiAgICBTQ1JJUFQ6ICdzY3JpcHQnLFxuICAgIFBVQkxJQzogJ3B1YmxpYycsXG4gICAgU1lTVEVNOiAnc3lzdGVtJyxcbn07XG4vL1N1cnJvZ2F0ZXNcbmV4cG9ydCBmdW5jdGlvbiBpc1N1cnJvZ2F0ZShjcCkge1xuICAgIHJldHVybiBjcCA+PSA1NTI5NiAmJiBjcCA8PSA1NzM0Mztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cnJvZ2F0ZVBhaXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gNTYzMjAgJiYgY3AgPD0gNTczNDM7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcDEsIGNwMikge1xuICAgIHJldHVybiAoY3AxIC0gNTUyOTYpICogMTAyNCArIDkyMTYgKyBjcDI7XG59XG4vL05PVEU6IGV4Y2x1ZGluZyBOVUxMIGFuZCBBU0NJSSB3aGl0ZXNwYWNlXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sQ29kZVBvaW50KGNwKSB7XG4gICAgcmV0dXJuICgoY3AgIT09IDB4MjAgJiYgY3AgIT09IDB4MGEgJiYgY3AgIT09IDB4MGQgJiYgY3AgIT09IDB4MDkgJiYgY3AgIT09IDB4MGMgJiYgY3AgPj0gMHgwMSAmJiBjcCA8PSAweDFmKSB8fFxuICAgICAgICAoY3AgPj0gMHg3ZiAmJiBjcCA8PSAweDlmKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gKGNwID49IDY0OTc2ICYmIGNwIDw9IDY1MDA3KSB8fCBVTkRFRklORURfQ09ERV9QT0lOVFMuaGFzKGNwKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaWNvZGUuanMubWFwIiwgImV4cG9ydCB2YXIgRVJSO1xuKGZ1bmN0aW9uIChFUlIpIHtcbiAgICBFUlJbXCJjb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwiY29udHJvbC1jaGFyYWN0ZXItaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wibm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwibm9uY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUluSW5wdXRTdHJlYW1cIl0gPSBcInN1cnJvZ2F0ZS1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXNcIl0gPSBcIm5vbi12b2lkLWh0bWwtZWxlbWVudC1zdGFydC10YWctd2l0aC10cmFpbGluZy1zb2xpZHVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aEF0dHJpYnV0ZXNcIl0gPSBcImVuZC10YWctd2l0aC1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1c1wiXSA9IFwiZW5kLXRhZy13aXRoLXRyYWlsaW5nLXNvbGlkdXNcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkU29saWR1c0luVGFnXCJdID0gXCJ1bmV4cGVjdGVkLXNvbGlkdXMtaW4tdGFnXCI7XG4gICAgRVJSW1widW5leHBlY3RlZE51bGxDaGFyYWN0ZXJcIl0gPSBcInVuZXhwZWN0ZWQtbnVsbC1jaGFyYWN0ZXJcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZVwiXSA9IFwidW5leHBlY3RlZC1xdWVzdGlvbi1tYXJrLWluc3RlYWQtb2YtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWVcIl0gPSBcImludmFsaWQtZmlyc3QtY2hhcmFjdGVyLW9mLXRhZy1uYW1lXCI7XG4gICAgRVJSW1widW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLWVxdWFscy1zaWduLWJlZm9yZS1hdHRyaWJ1dGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdFbmRUYWdOYW1lXCJdID0gXCJtaXNzaW5nLWVuZC10YWctbmFtZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLWF0dHJpYnV0ZS1uYW1lXCI7XG4gICAgRVJSW1widW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJ1bmtub3duLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm1pc3Npbmctc2VtaWNvbG9uLWFmdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwidW5leHBlY3RlZC1jaGFyYWN0ZXItYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLXVucXVvdGVkLWF0dHJpYnV0ZS12YWx1ZVwiO1xuICAgIEVSUltcImVvZkJlZm9yZVRhZ05hbWVcIl0gPSBcImVvZi1iZWZvcmUtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJlb2ZJblRhZ1wiXSA9IFwiZW9mLWluLXRhZ1wiO1xuICAgIEVSUltcIm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZVwiXSA9IFwibWlzc2luZy1hdHRyaWJ1dGUtdmFsdWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZFwiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1wiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVyc1wiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZFwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmRcIjtcbiAgICBFUlJbXCJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLXF1b3RlLWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImNkYXRhSW5IdG1sQ29udGVudFwiXSA9IFwiY2RhdGEtaW4taHRtbC1jb250ZW50XCI7XG4gICAgRVJSW1wiaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50XCJdID0gXCJpbmNvcnJlY3RseS1vcGVuZWQtY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dFwiXSA9IFwiZW9mLWluLXNjcmlwdC1odG1sLWNvbW1lbnQtbGlrZS10ZXh0XCI7XG4gICAgRVJSW1wiZW9mSW5Eb2N0eXBlXCJdID0gXCJlb2YtaW4tZG9jdHlwZVwiO1xuICAgIEVSUltcIm5lc3RlZENvbW1lbnRcIl0gPSBcIm5lc3RlZC1jb21tZW50XCI7XG4gICAgRVJSW1wiYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50XCJdID0gXCJhYnJ1cHQtY2xvc2luZy1vZi1lbXB0eS1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5Db21tZW50XCJdID0gXCJlb2YtaW4tY29tbWVudFwiO1xuICAgIEVSUltcImluY29ycmVjdGx5Q2xvc2VkQ29tbWVudFwiXSA9IFwiaW5jb3JyZWN0bHktY2xvc2VkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJbkNkYXRhXCJdID0gXCJlb2YtaW4tY2RhdGFcIjtcbiAgICBFUlJbXCJhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImFic2VuY2Utb2YtZGlnaXRzLWluLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm51bGxDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm51bGwtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwic3Vycm9nYXRlLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJjaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlXCJdID0gXCJjaGFyYWN0ZXItcmVmZXJlbmNlLW91dHNpZGUtdW5pY29kZS1yYW5nZVwiO1xuICAgIEVSUltcImNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImNvbnRyb2wtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwibm9uY2hhcmFjdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmVmb3JlLWRvY3R5cGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlTmFtZVwiXSA9IFwibWlzc2luZy1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lXCJdID0gXCJpbnZhbGlkLWNoYXJhY3Rlci1zZXF1ZW5jZS1hZnRlci1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJkdXBsaWNhdGVBdHRyaWJ1dGVcIl0gPSBcImR1cGxpY2F0ZS1hdHRyaWJ1dGVcIjtcbiAgICBFUlJbXCJub25Db25mb3JtaW5nRG9jdHlwZVwiXSA9IFwibm9uLWNvbmZvcm1pbmctZG9jdHlwZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlXCJdID0gXCJtaXNzaW5nLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJtaXNwbGFjZWREb2N0eXBlXCJdID0gXCJtaXNwbGFjZWQtZG9jdHlwZVwiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50XCJdID0gXCJlbmQtdGFnLXdpdGhvdXQtbWF0Y2hpbmctb3Blbi1lbGVtZW50XCI7XG4gICAgRVJSW1wiY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50c1wiXSA9IFwiY2xvc2luZy1vZi1lbGVtZW50LXdpdGgtb3Blbi1jaGlsZC1lbGVtZW50c1wiO1xuICAgIEVSUltcImRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZFwiXSA9IFwiZGlzYWxsb3dlZC1jb250ZW50LWluLW5vc2NyaXB0LWluLWhlYWRcIjtcbiAgICBFUlJbXCJvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2ZcIl0gPSBcIm9wZW4tZWxlbWVudHMtbGVmdC1hZnRlci1lb2ZcIjtcbiAgICBFUlJbXCJhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkXCJdID0gXCJhYmFuZG9uZWQtaGVhZC1lbGVtZW50LWNoaWxkXCI7XG4gICAgRVJSW1wibWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudFwiXSA9IFwibWlzcGxhY2VkLXN0YXJ0LXRhZy1mb3ItaGVhZC1lbGVtZW50XCI7XG4gICAgRVJSW1wibmVzdGVkTm9zY3JpcHRJbkhlYWRcIl0gPSBcIm5lc3RlZC1ub3NjcmlwdC1pbi1oZWFkXCI7XG4gICAgRVJSW1wiZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dFwiXSA9IFwiZW9mLWluLWVsZW1lbnQtdGhhdC1jYW4tY29udGFpbi1vbmx5LXRleHRcIjtcbn0pKEVSUiA9IEVSUiB8fCAoRVJSID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLWNvZGVzLmpzLm1hcCIsICJpbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIGlzU3Vycm9nYXRlLCBpc1N1cnJvZ2F0ZVBhaXIsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCB9IGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vL0NvbnN0XG5jb25zdCBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkUgPSAxIDw8IDE2O1xuLy9QcmVwcm9jZXNzb3Jcbi8vTk9URTogSFRNTCBpbnB1dCBwcmVwcm9jZXNzaW5nXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0pXG5leHBvcnQgY2xhc3MgUHJlcHJvY2Vzc29yIHtcbiAgICBjb25zdHJ1Y3RvcihoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaHRtbCA9ICcnO1xuICAgICAgICB0aGlzLnBvcyA9IC0xO1xuICAgICAgICAvLyBOT1RFOiBJbml0aWFsIGBsYXN0R2FwUG9zYCBpcyAtMiwgdG8gZW5zdXJlIGBjb2xgIG9uIGluaXRpYWxpc2F0aW9uIGlzIDBcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1ZmZlcldhdGVybGluZSA9IERFRkFVTFRfQlVGRkVSX1dBVEVSTElORTtcbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyA9IDA7XG4gICAgICAgIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgPSAwO1xuICAgICAgICB0aGlzLmxpbmUgPSAxO1xuICAgICAgICAvL05PVEU6IGF2b2lkIHJlcG9ydGluZyBlcnJvcnMgdHdpY2Ugb24gYWR2YW5jZS9yZXRyZWF0XG4gICAgICAgIHRoaXMubGFzdEVyck9mZnNldCA9IC0xO1xuICAgIH1cbiAgICAvKiogVGhlIGNvbHVtbiBvbiB0aGUgY3VycmVudCBsaW5lLiBJZiB3ZSBqdXN0IHNhdyBhIGdhcCAoZWcuIGEgc3Vycm9nYXRlIHBhaXIpLCByZXR1cm4gdGhlIGluZGV4IGJlZm9yZS4gKi9cbiAgICBnZXQgY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgLSB0aGlzLmxpbmVTdGFydFBvcyArIE51bWJlcih0aGlzLmxhc3RHYXBQb3MgIT09IHRoaXMucG9zKTtcbiAgICB9XG4gICAgZ2V0IG9mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgKyB0aGlzLnBvcztcbiAgICB9XG4gICAgZ2V0RXJyb3IoY29kZSkge1xuICAgICAgICBjb25zdCB7IGxpbmUsIGNvbCwgb2Zmc2V0IH0gPSB0aGlzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIHN0YXJ0TGluZTogbGluZSxcbiAgICAgICAgICAgIGVuZExpbmU6IGxpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogY29sLFxuICAgICAgICAgICAgZW5kQ29sOiBjb2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgZW5kT2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9lcnIoY29kZSkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvciAmJiB0aGlzLmxhc3RFcnJPZmZzZXQgIT09IHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RFcnJPZmZzZXQgPSB0aGlzLm9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IodGhpcy5nZXRFcnJvcihjb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2FkZEdhcCgpIHtcbiAgICAgICAgdGhpcy5nYXBTdGFjay5wdXNoKHRoaXMubGFzdEdhcFBvcyk7XG4gICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IHRoaXMucG9zO1xuICAgIH1cbiAgICBfcHJvY2Vzc1N1cnJvZ2F0ZShjcCkge1xuICAgICAgICAvL05PVEU6IHRyeSB0byBwZWVrIGEgc3Vycm9nYXRlIHBhaXJcbiAgICAgICAgaWYgKHRoaXMucG9zICE9PSB0aGlzLmh0bWwubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dENwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyAxKTtcbiAgICAgICAgICAgIGlmIChpc1N1cnJvZ2F0ZVBhaXIobmV4dENwKSkge1xuICAgICAgICAgICAgICAgIC8vTk9URTogd2UgaGF2ZSBhIHN1cnJvZ2F0ZSBwYWlyLiBQZWVrIHBhaXIgY2hhcmFjdGVyIGFuZCByZWNhbGN1bGF0ZSBjb2RlIHBvaW50LlxuICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICAgICAgLy9OT1RFOiBhZGQgYSBnYXAgdGhhdCBzaG91bGQgYmUgYXZvaWRlZCBkdXJpbmcgcmV0cmVhdFxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwLCBuZXh0Q3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogd2UgYXJlIGF0IHRoZSBlbmQgb2YgYSBjaHVuaywgdGhlcmVmb3JlIHdlIGNhbid0IGluZmVyIHRoZSBzdXJyb2dhdGUgcGFpciB5ZXQuXG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLmxhc3RDaHVua1dyaXR0ZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBpc29sYXRlZCBzdXJyb2dhdGVcbiAgICAgICAgdGhpcy5fZXJyKEVSUi5zdXJyb2dhdGVJbklucHV0U3RyZWFtKTtcbiAgICAgICAgcmV0dXJuIGNwO1xuICAgIH1cbiAgICB3aWxsRHJvcFBhcnNlZENodW5rKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgPiB0aGlzLmJ1ZmZlcldhdGVybGluZTtcbiAgICB9XG4gICAgZHJvcFBhcnNlZENodW5rKCkge1xuICAgICAgICBpZiAodGhpcy53aWxsRHJvcFBhcnNlZENodW5rKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MpO1xuICAgICAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgLT0gdGhpcy5wb3M7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRCdWZmZXJTaXplICs9IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5wb3MgPSAwO1xuICAgICAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgICAgICB0aGlzLmdhcFN0YWNrLmxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGUoY2h1bmssIGlzTGFzdENodW5rKSB7XG4gICAgICAgIGlmICh0aGlzLmh0bWwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5odG1sICs9IGNodW5rO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5odG1sID0gY2h1bms7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdENodW5rV3JpdHRlbiA9IGlzTGFzdENodW5rO1xuICAgIH1cbiAgICBpbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKSB7XG4gICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuaHRtbC5zdWJzdHJpbmcoMCwgdGhpcy5wb3MgKyAxKSArIGNodW5rICsgdGhpcy5odG1sLnN1YnN0cmluZyh0aGlzLnBvcyArIDEpO1xuICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSBmYWxzZTtcbiAgICB9XG4gICAgc3RhcnRzV2l0aChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIG91ciBidWZmZXIgaGFzIGVub3VnaCBjaGFyYWN0ZXJzXG4gICAgICAgIGlmICh0aGlzLnBvcyArIHBhdHRlcm4ubGVuZ3RoID4gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHRtbC5zdGFydHNXaXRoKHBhdHRlcm4sIHRoaXMucG9zKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdHRlcm4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyBpKSB8IDB4MjA7XG4gICAgICAgICAgICBpZiAoY3AgIT09IHBhdHRlcm4uY2hhckNvZGVBdChpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcGVlayhvZmZzZXQpIHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3MgKyBvZmZzZXQ7XG4gICAgICAgIGlmIChwb3MgPj0gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2RlID0gdGhpcy5odG1sLmNoYXJDb2RlQXQocG9zKTtcbiAgICAgICAgcmV0dXJuIGNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOID8gJC5MSU5FX0ZFRUQgOiBjb2RlO1xuICAgIH1cbiAgICBhZHZhbmNlKCkge1xuICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAvL05PVEU6IExGIHNob3VsZCBiZSBpbiB0aGUgbGFzdCBjb2x1bW4gb2YgdGhlIGxpbmVcbiAgICAgICAgaWYgKHRoaXMuaXNFb2wpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGluZSsrO1xuICAgICAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgPSB0aGlzLnBvcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3MgPj0gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyk7XG4gICAgICAgIC8vTk9URTogYWxsIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJzIG11c3QgYmUgY29udmVydGVkIHRvIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzXG4gICAgICAgIGlmIChjcCA9PT0gJC5DQVJSSUFHRV9SRVRVUk4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICQuTElORV9GRUVEO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogYW55IFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzIHRoYXQgaW1tZWRpYXRlbHkgZm9sbG93IGEgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlclxuICAgICAgICAvL211c3QgYmUgaWdub3JlZC5cbiAgICAgICAgaWYgKGNwID09PSAkLkxJTkVfRkVFRCkge1xuICAgICAgICAgICAgdGhpcy5pc0VvbCA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5za2lwTmV4dE5ld0xpbmUpIHtcbiAgICAgICAgICAgICAgICAvLyBgbGluZWAgd2lsbCBiZSBidW1wZWQgYWdhaW4gaW4gdGhlIHJlY3Vyc2l2ZSBjYWxsLlxuICAgICAgICAgICAgICAgIHRoaXMubGluZS0tO1xuICAgICAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkR2FwKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWR2YW5jZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmIChpc1N1cnJvZ2F0ZShjcCkpIHtcbiAgICAgICAgICAgIGNwID0gdGhpcy5fcHJvY2Vzc1N1cnJvZ2F0ZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgLy9PUFRJTUlaQVRJT046IGZpcnN0IGNoZWNrIGlmIGNvZGUgcG9pbnQgaXMgaW4gdGhlIGNvbW1vbiBhbGxvd2VkXG4gICAgICAgIC8vcmFuZ2UgKEFTQ0lJIGFscGhhbnVtZXJpYywgd2hpdGVzcGFjZXMsIGJpZyBjaHVuayBvZiBCTVApXG4gICAgICAgIC8vYmVmb3JlIGdvaW5nIGludG8gZGV0YWlsZWQgcGVyZm9ybWFuY2UgY29zdCB2YWxpZGF0aW9uLlxuICAgICAgICBjb25zdCBpc0NvbW1vblZhbGlkUmFuZ2UgPSB0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yID09PSBudWxsIHx8XG4gICAgICAgICAgICAoY3AgPiAweDFmICYmIGNwIDwgMHg3ZikgfHxcbiAgICAgICAgICAgIGNwID09PSAkLkxJTkVfRkVFRCB8fFxuICAgICAgICAgICAgY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOIHx8XG4gICAgICAgICAgICAoY3AgPiAweDlmICYmIGNwIDwgNjQ5NzYpO1xuICAgICAgICBpZiAoIWlzQ29tbW9uVmFsaWRSYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tGb3JQcm9ibGVtYXRpY0NoYXJhY3RlcnMoY3ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9XG4gICAgX2NoZWNrRm9yUHJvYmxlbWF0aWNDaGFyYWN0ZXJzKGNwKSB7XG4gICAgICAgIGlmIChpc0NvbnRyb2xDb2RlUG9pbnQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNvbnRyb2xDaGFyYWN0ZXJJbklucHV0U3RyZWFtKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1VuZGVmaW5lZENvZGVQb2ludChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0cmVhdChjb3VudCkge1xuICAgICAgICB0aGlzLnBvcyAtPSBjb3VudDtcbiAgICAgICAgd2hpbGUgKHRoaXMucG9zIDwgdGhpcy5sYXN0R2FwUG9zKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLmdhcFN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgdGhpcy5wb3MtLTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlcHJvY2Vzc29yLmpzLm1hcCIsICJleHBvcnQgdmFyIFRva2VuVHlwZTtcbihmdW5jdGlvbiAoVG9rZW5UeXBlKSB7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNIQVJBQ1RFUlwiXSA9IDBdID0gXCJDSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiTlVMTF9DSEFSQUNURVJcIl0gPSAxXSA9IFwiTlVMTF9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiV0hJVEVTUEFDRV9DSEFSQUNURVJcIl0gPSAyXSA9IFwiV0hJVEVTUEFDRV9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiU1RBUlRfVEFHXCJdID0gM10gPSBcIlNUQVJUX1RBR1wiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFTkRfVEFHXCJdID0gNF0gPSBcIkVORF9UQUdcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiQ09NTUVOVFwiXSA9IDVdID0gXCJDT01NRU5UXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRPQ1RZUEVcIl0gPSA2XSA9IFwiRE9DVFlQRVwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFT0ZcIl0gPSA3XSA9IFwiRU9GXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkhJQkVSTkFUSU9OXCJdID0gOF0gPSBcIkhJQkVSTkFUSU9OXCI7XG59KShUb2tlblR5cGUgPSBUb2tlblR5cGUgfHwgKFRva2VuVHlwZSA9IHt9KSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW5BdHRyKHRva2VuLCBhdHRyTmFtZSkge1xuICAgIGZvciAobGV0IGkgPSB0b2tlbi5hdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gYXR0ck5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbi5hdHRyc1tpXS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRva2VuLmpzLm1hcCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIvKiogQWxsIHZhbGlkIG5hbWVzcGFjZXMgaW4gSFRNTC4gKi9cbmV4cG9ydCB2YXIgTlM7XG4oZnVuY3Rpb24gKE5TKSB7XG4gICAgTlNbXCJIVE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI7XG4gICAgTlNbXCJNQVRITUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtcbiAgICBOU1tcIlNWR1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICBOU1tcIlhMSU5LXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI7XG4gICAgTlNbXCJYTUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiO1xuICAgIE5TW1wiWE1MTlNcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCI7XG59KShOUyA9IE5TIHx8IChOUyA9IHt9KSk7XG5leHBvcnQgdmFyIEFUVFJTO1xuKGZ1bmN0aW9uIChBVFRSUykge1xuICAgIEFUVFJTW1wiVFlQRVwiXSA9IFwidHlwZVwiO1xuICAgIEFUVFJTW1wiQUNUSU9OXCJdID0gXCJhY3Rpb25cIjtcbiAgICBBVFRSU1tcIkVOQ09ESU5HXCJdID0gXCJlbmNvZGluZ1wiO1xuICAgIEFUVFJTW1wiUFJPTVBUXCJdID0gXCJwcm9tcHRcIjtcbiAgICBBVFRSU1tcIk5BTUVcIl0gPSBcIm5hbWVcIjtcbiAgICBBVFRSU1tcIkNPTE9SXCJdID0gXCJjb2xvclwiO1xuICAgIEFUVFJTW1wiRkFDRVwiXSA9IFwiZmFjZVwiO1xuICAgIEFUVFJTW1wiU0laRVwiXSA9IFwic2l6ZVwiO1xufSkoQVRUUlMgPSBBVFRSUyB8fCAoQVRUUlMgPSB7fSkpO1xuLyoqXG4gKiBUaGUgbW9kZSBvZiB0aGUgZG9jdW1lbnQuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWRvY3VtZW50LWxpbWl0ZWQtcXVpcmtzfVxuICovXG5leHBvcnQgdmFyIERPQ1VNRU5UX01PREU7XG4oZnVuY3Rpb24gKERPQ1VNRU5UX01PREUpIHtcbiAgICBET0NVTUVOVF9NT0RFW1wiTk9fUVVJUktTXCJdID0gXCJuby1xdWlya3NcIjtcbiAgICBET0NVTUVOVF9NT0RFW1wiUVVJUktTXCJdID0gXCJxdWlya3NcIjtcbiAgICBET0NVTUVOVF9NT0RFW1wiTElNSVRFRF9RVUlSS1NcIl0gPSBcImxpbWl0ZWQtcXVpcmtzXCI7XG59KShET0NVTUVOVF9NT0RFID0gRE9DVU1FTlRfTU9ERSB8fCAoRE9DVU1FTlRfTU9ERSA9IHt9KSk7XG5leHBvcnQgdmFyIFRBR19OQU1FUztcbihmdW5jdGlvbiAoVEFHX05BTUVTKSB7XG4gICAgVEFHX05BTUVTW1wiQVwiXSA9IFwiYVwiO1xuICAgIFRBR19OQU1FU1tcIkFERFJFU1NcIl0gPSBcImFkZHJlc3NcIjtcbiAgICBUQUdfTkFNRVNbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IFwiYW5ub3RhdGlvbi14bWxcIjtcbiAgICBUQUdfTkFNRVNbXCJBUFBMRVRcIl0gPSBcImFwcGxldFwiO1xuICAgIFRBR19OQU1FU1tcIkFSRUFcIl0gPSBcImFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJBUlRJQ0xFXCJdID0gXCJhcnRpY2xlXCI7XG4gICAgVEFHX05BTUVTW1wiQVNJREVcIl0gPSBcImFzaWRlXCI7XG4gICAgVEFHX05BTUVTW1wiQlwiXSA9IFwiYlwiO1xuICAgIFRBR19OQU1FU1tcIkJBU0VcIl0gPSBcImJhc2VcIjtcbiAgICBUQUdfTkFNRVNbXCJCQVNFRk9OVFwiXSA9IFwiYmFzZWZvbnRcIjtcbiAgICBUQUdfTkFNRVNbXCJCR1NPVU5EXCJdID0gXCJiZ3NvdW5kXCI7XG4gICAgVEFHX05BTUVTW1wiQklHXCJdID0gXCJiaWdcIjtcbiAgICBUQUdfTkFNRVNbXCJCTE9DS1FVT1RFXCJdID0gXCJibG9ja3F1b3RlXCI7XG4gICAgVEFHX05BTUVTW1wiQk9EWVwiXSA9IFwiYm9keVwiO1xuICAgIFRBR19OQU1FU1tcIkJSXCJdID0gXCJiclwiO1xuICAgIFRBR19OQU1FU1tcIkJVVFRPTlwiXSA9IFwiYnV0dG9uXCI7XG4gICAgVEFHX05BTUVTW1wiQ0FQVElPTlwiXSA9IFwiY2FwdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIkNFTlRFUlwiXSA9IFwiY2VudGVyXCI7XG4gICAgVEFHX05BTUVTW1wiQ09ERVwiXSA9IFwiY29kZVwiO1xuICAgIFRBR19OQU1FU1tcIkNPTFwiXSA9IFwiY29sXCI7XG4gICAgVEFHX05BTUVTW1wiQ09MR1JPVVBcIl0gPSBcImNvbGdyb3VwXCI7XG4gICAgVEFHX05BTUVTW1wiRERcIl0gPSBcImRkXCI7XG4gICAgVEFHX05BTUVTW1wiREVTQ1wiXSA9IFwiZGVzY1wiO1xuICAgIFRBR19OQU1FU1tcIkRFVEFJTFNcIl0gPSBcImRldGFpbHNcIjtcbiAgICBUQUdfTkFNRVNbXCJESUFMT0dcIl0gPSBcImRpYWxvZ1wiO1xuICAgIFRBR19OQU1FU1tcIkRJUlwiXSA9IFwiZGlyXCI7XG4gICAgVEFHX05BTUVTW1wiRElWXCJdID0gXCJkaXZcIjtcbiAgICBUQUdfTkFNRVNbXCJETFwiXSA9IFwiZGxcIjtcbiAgICBUQUdfTkFNRVNbXCJEVFwiXSA9IFwiZHRcIjtcbiAgICBUQUdfTkFNRVNbXCJFTVwiXSA9IFwiZW1cIjtcbiAgICBUQUdfTkFNRVNbXCJFTUJFRFwiXSA9IFwiZW1iZWRcIjtcbiAgICBUQUdfTkFNRVNbXCJGSUVMRFNFVFwiXSA9IFwiZmllbGRzZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJGSUdDQVBUSU9OXCJdID0gXCJmaWdjYXB0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiRklHVVJFXCJdID0gXCJmaWd1cmVcIjtcbiAgICBUQUdfTkFNRVNbXCJGT05UXCJdID0gXCJmb250XCI7XG4gICAgVEFHX05BTUVTW1wiRk9PVEVSXCJdID0gXCJmb290ZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJGT1JFSUdOX09CSkVDVFwiXSA9IFwiZm9yZWlnbk9iamVjdFwiO1xuICAgIFRBR19OQU1FU1tcIkZPUk1cIl0gPSBcImZvcm1cIjtcbiAgICBUQUdfTkFNRVNbXCJGUkFNRVwiXSA9IFwiZnJhbWVcIjtcbiAgICBUQUdfTkFNRVNbXCJGUkFNRVNFVFwiXSA9IFwiZnJhbWVzZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJIMVwiXSA9IFwiaDFcIjtcbiAgICBUQUdfTkFNRVNbXCJIMlwiXSA9IFwiaDJcIjtcbiAgICBUQUdfTkFNRVNbXCJIM1wiXSA9IFwiaDNcIjtcbiAgICBUQUdfTkFNRVNbXCJINFwiXSA9IFwiaDRcIjtcbiAgICBUQUdfTkFNRVNbXCJINVwiXSA9IFwiaDVcIjtcbiAgICBUQUdfTkFNRVNbXCJINlwiXSA9IFwiaDZcIjtcbiAgICBUQUdfTkFNRVNbXCJIRUFEXCJdID0gXCJoZWFkXCI7XG4gICAgVEFHX05BTUVTW1wiSEVBREVSXCJdID0gXCJoZWFkZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJIR1JPVVBcIl0gPSBcImhncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIkhSXCJdID0gXCJoclwiO1xuICAgIFRBR19OQU1FU1tcIkhUTUxcIl0gPSBcImh0bWxcIjtcbiAgICBUQUdfTkFNRVNbXCJJXCJdID0gXCJpXCI7XG4gICAgVEFHX05BTUVTW1wiSU1HXCJdID0gXCJpbWdcIjtcbiAgICBUQUdfTkFNRVNbXCJJTUFHRVwiXSA9IFwiaW1hZ2VcIjtcbiAgICBUQUdfTkFNRVNbXCJJTlBVVFwiXSA9IFwiaW5wdXRcIjtcbiAgICBUQUdfTkFNRVNbXCJJRlJBTUVcIl0gPSBcImlmcmFtZVwiO1xuICAgIFRBR19OQU1FU1tcIktFWUdFTlwiXSA9IFwia2V5Z2VuXCI7XG4gICAgVEFHX05BTUVTW1wiTEFCRUxcIl0gPSBcImxhYmVsXCI7XG4gICAgVEFHX05BTUVTW1wiTElcIl0gPSBcImxpXCI7XG4gICAgVEFHX05BTUVTW1wiTElOS1wiXSA9IFwibGlua1wiO1xuICAgIFRBR19OQU1FU1tcIkxJU1RJTkdcIl0gPSBcImxpc3RpbmdcIjtcbiAgICBUQUdfTkFNRVNbXCJNQUlOXCJdID0gXCJtYWluXCI7XG4gICAgVEFHX05BTUVTW1wiTUFMSUdOTUFSS1wiXSA9IFwibWFsaWdubWFya1wiO1xuICAgIFRBR19OQU1FU1tcIk1BUlFVRUVcIl0gPSBcIm1hcnF1ZWVcIjtcbiAgICBUQUdfTkFNRVNbXCJNQVRIXCJdID0gXCJtYXRoXCI7XG4gICAgVEFHX05BTUVTW1wiTUVOVVwiXSA9IFwibWVudVwiO1xuICAgIFRBR19OQU1FU1tcIk1FVEFcIl0gPSBcIm1ldGFcIjtcbiAgICBUQUdfTkFNRVNbXCJNR0xZUEhcIl0gPSBcIm1nbHlwaFwiO1xuICAgIFRBR19OQU1FU1tcIk1JXCJdID0gXCJtaVwiO1xuICAgIFRBR19OQU1FU1tcIk1PXCJdID0gXCJtb1wiO1xuICAgIFRBR19OQU1FU1tcIk1OXCJdID0gXCJtblwiO1xuICAgIFRBR19OQU1FU1tcIk1TXCJdID0gXCJtc1wiO1xuICAgIFRBR19OQU1FU1tcIk1URVhUXCJdID0gXCJtdGV4dFwiO1xuICAgIFRBR19OQU1FU1tcIk5BVlwiXSA9IFwibmF2XCI7XG4gICAgVEFHX05BTUVTW1wiTk9CUlwiXSA9IFwibm9iclwiO1xuICAgIFRBR19OQU1FU1tcIk5PRlJBTUVTXCJdID0gXCJub2ZyYW1lc1wiO1xuICAgIFRBR19OQU1FU1tcIk5PRU1CRURcIl0gPSBcIm5vZW1iZWRcIjtcbiAgICBUQUdfTkFNRVNbXCJOT1NDUklQVFwiXSA9IFwibm9zY3JpcHRcIjtcbiAgICBUQUdfTkFNRVNbXCJPQkpFQ1RcIl0gPSBcIm9iamVjdFwiO1xuICAgIFRBR19OQU1FU1tcIk9MXCJdID0gXCJvbFwiO1xuICAgIFRBR19OQU1FU1tcIk9QVEdST1VQXCJdID0gXCJvcHRncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIk9QVElPTlwiXSA9IFwib3B0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiUFwiXSA9IFwicFwiO1xuICAgIFRBR19OQU1FU1tcIlBBUkFNXCJdID0gXCJwYXJhbVwiO1xuICAgIFRBR19OQU1FU1tcIlBMQUlOVEVYVFwiXSA9IFwicGxhaW50ZXh0XCI7XG4gICAgVEFHX05BTUVTW1wiUFJFXCJdID0gXCJwcmVcIjtcbiAgICBUQUdfTkFNRVNbXCJSQlwiXSA9IFwicmJcIjtcbiAgICBUQUdfTkFNRVNbXCJSUFwiXSA9IFwicnBcIjtcbiAgICBUQUdfTkFNRVNbXCJSVFwiXSA9IFwicnRcIjtcbiAgICBUQUdfTkFNRVNbXCJSVENcIl0gPSBcInJ0Y1wiO1xuICAgIFRBR19OQU1FU1tcIlJVQllcIl0gPSBcInJ1YnlcIjtcbiAgICBUQUdfTkFNRVNbXCJTXCJdID0gXCJzXCI7XG4gICAgVEFHX05BTUVTW1wiU0NSSVBUXCJdID0gXCJzY3JpcHRcIjtcbiAgICBUQUdfTkFNRVNbXCJTRUNUSU9OXCJdID0gXCJzZWN0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiU0VMRUNUXCJdID0gXCJzZWxlY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJTT1VSQ0VcIl0gPSBcInNvdXJjZVwiO1xuICAgIFRBR19OQU1FU1tcIlNNQUxMXCJdID0gXCJzbWFsbFwiO1xuICAgIFRBR19OQU1FU1tcIlNQQU5cIl0gPSBcInNwYW5cIjtcbiAgICBUQUdfTkFNRVNbXCJTVFJJS0VcIl0gPSBcInN0cmlrZVwiO1xuICAgIFRBR19OQU1FU1tcIlNUUk9OR1wiXSA9IFwic3Ryb25nXCI7XG4gICAgVEFHX05BTUVTW1wiU1RZTEVcIl0gPSBcInN0eWxlXCI7XG4gICAgVEFHX05BTUVTW1wiU1VCXCJdID0gXCJzdWJcIjtcbiAgICBUQUdfTkFNRVNbXCJTVU1NQVJZXCJdID0gXCJzdW1tYXJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1VQXCJdID0gXCJzdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJUQUJMRVwiXSA9IFwidGFibGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUQk9EWVwiXSA9IFwidGJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJURU1QTEFURVwiXSA9IFwidGVtcGxhdGVcIjtcbiAgICBUQUdfTkFNRVNbXCJURVhUQVJFQVwiXSA9IFwidGV4dGFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJURk9PVFwiXSA9IFwidGZvb3RcIjtcbiAgICBUQUdfTkFNRVNbXCJURFwiXSA9IFwidGRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSFwiXSA9IFwidGhcIjtcbiAgICBUQUdfTkFNRVNbXCJUSEVBRFwiXSA9IFwidGhlYWRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSVRMRVwiXSA9IFwidGl0bGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUUlwiXSA9IFwidHJcIjtcbiAgICBUQUdfTkFNRVNbXCJUUkFDS1wiXSA9IFwidHJhY2tcIjtcbiAgICBUQUdfTkFNRVNbXCJUVFwiXSA9IFwidHRcIjtcbiAgICBUQUdfTkFNRVNbXCJVXCJdID0gXCJ1XCI7XG4gICAgVEFHX05BTUVTW1wiVUxcIl0gPSBcInVsXCI7XG4gICAgVEFHX05BTUVTW1wiU1ZHXCJdID0gXCJzdmdcIjtcbiAgICBUQUdfTkFNRVNbXCJWQVJcIl0gPSBcInZhclwiO1xuICAgIFRBR19OQU1FU1tcIldCUlwiXSA9IFwid2JyXCI7XG4gICAgVEFHX05BTUVTW1wiWE1QXCJdID0gXCJ4bXBcIjtcbn0pKFRBR19OQU1FUyA9IFRBR19OQU1FUyB8fCAoVEFHX05BTUVTID0ge30pKTtcbi8qKlxuICogVGFnIElEcyBhcmUgbnVtZXJpYyBJRHMgZm9yIGtub3duIHRhZyBuYW1lcy5cbiAqXG4gKiBXZSB1c2UgdGFnIElEcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0YWcgbmFtZSBjb21wYXJpc29ucy5cbiAqL1xuZXhwb3J0IHZhciBUQUdfSUQ7XG4oZnVuY3Rpb24gKFRBR19JRCkge1xuICAgIFRBR19JRFtUQUdfSURbXCJVTktOT1dOXCJdID0gMF0gPSBcIlVOS05PV05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVwiXSA9IDFdID0gXCJBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFERFJFU1NcIl0gPSAyXSA9IFwiQUREUkVTU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IDNdID0gXCJBTk5PVEFUSU9OX1hNTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUFBMRVRcIl0gPSA0XSA9IFwiQVBQTEVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFSRUFcIl0gPSA1XSA9IFwiQVJFQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUlRJQ0xFXCJdID0gNl0gPSBcIkFSVElDTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVNJREVcIl0gPSA3XSA9IFwiQVNJREVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlwiXSA9IDhdID0gXCJCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJBU0VcIl0gPSA5XSA9IFwiQkFTRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCQVNFRk9OVFwiXSA9IDEwXSA9IFwiQkFTRUZPTlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkdTT1VORFwiXSA9IDExXSA9IFwiQkdTT1VORFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCSUdcIl0gPSAxMl0gPSBcIkJJR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCTE9DS1FVT1RFXCJdID0gMTNdID0gXCJCTE9DS1FVT1RFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJPRFlcIl0gPSAxNF0gPSBcIkJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlJcIl0gPSAxNV0gPSBcIkJSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJVVFRPTlwiXSA9IDE2XSA9IFwiQlVUVE9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNBUFRJT05cIl0gPSAxN10gPSBcIkNBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ0VOVEVSXCJdID0gMThdID0gXCJDRU5URVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09ERVwiXSA9IDE5XSA9IFwiQ09ERVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xcIl0gPSAyMF0gPSBcIkNPTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xHUk9VUFwiXSA9IDIxXSA9IFwiQ09MR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRERcIl0gPSAyMl0gPSBcIkREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRFU0NcIl0gPSAyM10gPSBcIkRFU0NcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiREVUQUlMU1wiXSA9IDI0XSA9IFwiREVUQUlMU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESUFMT0dcIl0gPSAyNV0gPSBcIkRJQUxPR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVJcIl0gPSAyNl0gPSBcIkRJUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVZcIl0gPSAyN10gPSBcIkRJVlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJETFwiXSA9IDI4XSA9IFwiRExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRFRcIl0gPSAyOV0gPSBcIkRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkVNXCJdID0gMzBdID0gXCJFTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJFTUJFRFwiXSA9IDMxXSA9IFwiRU1CRURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklFTERTRVRcIl0gPSAzMl0gPSBcIkZJRUxEU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJR0NBUFRJT05cIl0gPSAzM10gPSBcIkZJR0NBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklHVVJFXCJdID0gMzRdID0gXCJGSUdVUkVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9OVFwiXSA9IDM1XSA9IFwiRk9OVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT09URVJcIl0gPSAzNl0gPSBcIkZPT1RFUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT1JFSUdOX09CSkVDVFwiXSA9IDM3XSA9IFwiRk9SRUlHTl9PQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9STVwiXSA9IDM4XSA9IFwiRk9STVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGUkFNRVwiXSA9IDM5XSA9IFwiRlJBTUVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRlJBTUVTRVRcIl0gPSA0MF0gPSBcIkZSQU1FU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgxXCJdID0gNDFdID0gXCJIMVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIMlwiXSA9IDQyXSA9IFwiSDJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDNcIl0gPSA0M10gPSBcIkgzXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg0XCJdID0gNDRdID0gXCJINFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINVwiXSA9IDQ1XSA9IFwiSDVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDZcIl0gPSA0Nl0gPSBcIkg2XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhFQURcIl0gPSA0N10gPSBcIkhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEVBREVSXCJdID0gNDhdID0gXCJIRUFERVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEdST1VQXCJdID0gNDldID0gXCJIR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSFJcIl0gPSA1MF0gPSBcIkhSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhUTUxcIl0gPSA1MV0gPSBcIkhUTUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSVwiXSA9IDUyXSA9IFwiSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUdcIl0gPSA1M10gPSBcIklNR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUFHRVwiXSA9IDU0XSA9IFwiSU1BR0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU5QVVRcIl0gPSA1NV0gPSBcIklOUFVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklGUkFNRVwiXSA9IDU2XSA9IFwiSUZSQU1FXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIktFWUdFTlwiXSA9IDU3XSA9IFwiS0VZR0VOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxBQkVMXCJdID0gNThdID0gXCJMQUJFTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVwiXSA9IDU5XSA9IFwiTElcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElOS1wiXSA9IDYwXSA9IFwiTElOS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVNUSU5HXCJdID0gNjFdID0gXCJMSVNUSU5HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BSU5cIl0gPSA2Ml0gPSBcIk1BSU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFMSUdOTUFSS1wiXSA9IDYzXSA9IFwiTUFMSUdOTUFSS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQVJRVUVFXCJdID0gNjRdID0gXCJNQVJRVUVFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BVEhcIl0gPSA2NV0gPSBcIk1BVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUVOVVwiXSA9IDY2XSA9IFwiTUVOVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNRVRBXCJdID0gNjddID0gXCJNRVRBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1HTFlQSFwiXSA9IDY4XSA9IFwiTUdMWVBIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1JXCJdID0gNjldID0gXCJNSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNT1wiXSA9IDcwXSA9IFwiTU9cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTU5cIl0gPSA3MV0gPSBcIk1OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1TXCJdID0gNzJdID0gXCJNU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNVEVYVFwiXSA9IDczXSA9IFwiTVRFWFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTkFWXCJdID0gNzRdID0gXCJOQVZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9CUlwiXSA9IDc1XSA9IFwiTk9CUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT0ZSQU1FU1wiXSA9IDc2XSA9IFwiTk9GUkFNRVNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9FTUJFRFwiXSA9IDc3XSA9IFwiTk9FTUJFRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT1NDUklQVFwiXSA9IDc4XSA9IFwiTk9TQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0JKRUNUXCJdID0gNzldID0gXCJPQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0xcIl0gPSA4MF0gPSBcIk9MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9QVEdST1VQXCJdID0gODFdID0gXCJPUFRHUk9VUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPUFRJT05cIl0gPSA4Ml0gPSBcIk9QVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQXCJdID0gODNdID0gXCJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBBUkFNXCJdID0gODRdID0gXCJQQVJBTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQTEFJTlRFWFRcIl0gPSA4NV0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQUkVcIl0gPSA4Nl0gPSBcIlBSRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSQlwiXSA9IDg3XSA9IFwiUkJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlBcIl0gPSA4OF0gPSBcIlJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJUXCJdID0gODldID0gXCJSVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVENcIl0gPSA5MF0gPSBcIlJUQ1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVUJZXCJdID0gOTFdID0gXCJSVUJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNcIl0gPSA5Ml0gPSBcIlNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0NSSVBUXCJdID0gOTNdID0gXCJTQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VDVElPTlwiXSA9IDk0XSA9IFwiU0VDVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTRUxFQ1RcIl0gPSA5NV0gPSBcIlNFTEVDVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTT1VSQ0VcIl0gPSA5Nl0gPSBcIlNPVVJDRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTTUFMTFwiXSA9IDk3XSA9IFwiU01BTExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1BBTlwiXSA9IDk4XSA9IFwiU1BBTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJJS0VcIl0gPSA5OV0gPSBcIlNUUklLRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJPTkdcIl0gPSAxMDBdID0gXCJTVFJPTkdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RZTEVcIl0gPSAxMDFdID0gXCJTVFlMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVUJcIl0gPSAxMDJdID0gXCJTVUJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VNTUFSWVwiXSA9IDEwM10gPSBcIlNVTU1BUllcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VQXCJdID0gMTA0XSA9IFwiU1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRBQkxFXCJdID0gMTA1XSA9IFwiVEFCTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEJPRFlcIl0gPSAxMDZdID0gXCJUQk9EWVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURU1QTEFURVwiXSA9IDEwN10gPSBcIlRFTVBMQVRFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRFWFRBUkVBXCJdID0gMTA4XSA9IFwiVEVYVEFSRUFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEZPT1RcIl0gPSAxMDldID0gXCJURk9PVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURFwiXSA9IDExMF0gPSBcIlREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRIXCJdID0gMTExXSA9IFwiVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEhFQURcIl0gPSAxMTJdID0gXCJUSEVBRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSVRMRVwiXSA9IDExM10gPSBcIlRJVExFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRSXCJdID0gMTE0XSA9IFwiVFJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFJBQ0tcIl0gPSAxMTVdID0gXCJUUkFDS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUVFwiXSA9IDExNl0gPSBcIlRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVcIl0gPSAxMTddID0gXCJVXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVMXCJdID0gMTE4XSA9IFwiVUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1ZHXCJdID0gMTE5XSA9IFwiU1ZHXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlZBUlwiXSA9IDEyMF0gPSBcIlZBUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJXQlJcIl0gPSAxMjFdID0gXCJXQlJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiWE1QXCJdID0gMTIyXSA9IFwiWE1QXCI7XG59KShUQUdfSUQgPSBUQUdfSUQgfHwgKFRBR19JRCA9IHt9KSk7XG5jb25zdCBUQUdfTkFNRV9UT19JRCA9IG5ldyBNYXAoW1xuICAgIFtUQUdfTkFNRVMuQSwgVEFHX0lELkFdLFxuICAgIFtUQUdfTkFNRVMuQUREUkVTUywgVEFHX0lELkFERFJFU1NdLFxuICAgIFtUQUdfTkFNRVMuQU5OT1RBVElPTl9YTUwsIFRBR19JRC5BTk5PVEFUSU9OX1hNTF0sXG4gICAgW1RBR19OQU1FUy5BUFBMRVQsIFRBR19JRC5BUFBMRVRdLFxuICAgIFtUQUdfTkFNRVMuQVJFQSwgVEFHX0lELkFSRUFdLFxuICAgIFtUQUdfTkFNRVMuQVJUSUNMRSwgVEFHX0lELkFSVElDTEVdLFxuICAgIFtUQUdfTkFNRVMuQVNJREUsIFRBR19JRC5BU0lERV0sXG4gICAgW1RBR19OQU1FUy5CLCBUQUdfSUQuQl0sXG4gICAgW1RBR19OQU1FUy5CQVNFLCBUQUdfSUQuQkFTRV0sXG4gICAgW1RBR19OQU1FUy5CQVNFRk9OVCwgVEFHX0lELkJBU0VGT05UXSxcbiAgICBbVEFHX05BTUVTLkJHU09VTkQsIFRBR19JRC5CR1NPVU5EXSxcbiAgICBbVEFHX05BTUVTLkJJRywgVEFHX0lELkJJR10sXG4gICAgW1RBR19OQU1FUy5CTE9DS1FVT1RFLCBUQUdfSUQuQkxPQ0tRVU9URV0sXG4gICAgW1RBR19OQU1FUy5CT0RZLCBUQUdfSUQuQk9EWV0sXG4gICAgW1RBR19OQU1FUy5CUiwgVEFHX0lELkJSXSxcbiAgICBbVEFHX05BTUVTLkJVVFRPTiwgVEFHX0lELkJVVFRPTl0sXG4gICAgW1RBR19OQU1FUy5DQVBUSU9OLCBUQUdfSUQuQ0FQVElPTl0sXG4gICAgW1RBR19OQU1FUy5DRU5URVIsIFRBR19JRC5DRU5URVJdLFxuICAgIFtUQUdfTkFNRVMuQ09ERSwgVEFHX0lELkNPREVdLFxuICAgIFtUQUdfTkFNRVMuQ09MLCBUQUdfSUQuQ09MXSxcbiAgICBbVEFHX05BTUVTLkNPTEdST1VQLCBUQUdfSUQuQ09MR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuREQsIFRBR19JRC5ERF0sXG4gICAgW1RBR19OQU1FUy5ERVNDLCBUQUdfSUQuREVTQ10sXG4gICAgW1RBR19OQU1FUy5ERVRBSUxTLCBUQUdfSUQuREVUQUlMU10sXG4gICAgW1RBR19OQU1FUy5ESUFMT0csIFRBR19JRC5ESUFMT0ddLFxuICAgIFtUQUdfTkFNRVMuRElSLCBUQUdfSUQuRElSXSxcbiAgICBbVEFHX05BTUVTLkRJViwgVEFHX0lELkRJVl0sXG4gICAgW1RBR19OQU1FUy5ETCwgVEFHX0lELkRMXSxcbiAgICBbVEFHX05BTUVTLkRULCBUQUdfSUQuRFRdLFxuICAgIFtUQUdfTkFNRVMuRU0sIFRBR19JRC5FTV0sXG4gICAgW1RBR19OQU1FUy5FTUJFRCwgVEFHX0lELkVNQkVEXSxcbiAgICBbVEFHX05BTUVTLkZJRUxEU0VULCBUQUdfSUQuRklFTERTRVRdLFxuICAgIFtUQUdfTkFNRVMuRklHQ0FQVElPTiwgVEFHX0lELkZJR0NBUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuRklHVVJFLCBUQUdfSUQuRklHVVJFXSxcbiAgICBbVEFHX05BTUVTLkZPTlQsIFRBR19JRC5GT05UXSxcbiAgICBbVEFHX05BTUVTLkZPT1RFUiwgVEFHX0lELkZPT1RFUl0sXG4gICAgW1RBR19OQU1FUy5GT1JFSUdOX09CSkVDVCwgVEFHX0lELkZPUkVJR05fT0JKRUNUXSxcbiAgICBbVEFHX05BTUVTLkZPUk0sIFRBR19JRC5GT1JNXSxcbiAgICBbVEFHX05BTUVTLkZSQU1FLCBUQUdfSUQuRlJBTUVdLFxuICAgIFtUQUdfTkFNRVMuRlJBTUVTRVQsIFRBR19JRC5GUkFNRVNFVF0sXG4gICAgW1RBR19OQU1FUy5IMSwgVEFHX0lELkgxXSxcbiAgICBbVEFHX05BTUVTLkgyLCBUQUdfSUQuSDJdLFxuICAgIFtUQUdfTkFNRVMuSDMsIFRBR19JRC5IM10sXG4gICAgW1RBR19OQU1FUy5INCwgVEFHX0lELkg0XSxcbiAgICBbVEFHX05BTUVTLkg1LCBUQUdfSUQuSDVdLFxuICAgIFtUQUdfTkFNRVMuSDYsIFRBR19JRC5INl0sXG4gICAgW1RBR19OQU1FUy5IRUFELCBUQUdfSUQuSEVBRF0sXG4gICAgW1RBR19OQU1FUy5IRUFERVIsIFRBR19JRC5IRUFERVJdLFxuICAgIFtUQUdfTkFNRVMuSEdST1VQLCBUQUdfSUQuSEdST1VQXSxcbiAgICBbVEFHX05BTUVTLkhSLCBUQUdfSUQuSFJdLFxuICAgIFtUQUdfTkFNRVMuSFRNTCwgVEFHX0lELkhUTUxdLFxuICAgIFtUQUdfTkFNRVMuSSwgVEFHX0lELkldLFxuICAgIFtUQUdfTkFNRVMuSU1HLCBUQUdfSUQuSU1HXSxcbiAgICBbVEFHX05BTUVTLklNQUdFLCBUQUdfSUQuSU1BR0VdLFxuICAgIFtUQUdfTkFNRVMuSU5QVVQsIFRBR19JRC5JTlBVVF0sXG4gICAgW1RBR19OQU1FUy5JRlJBTUUsIFRBR19JRC5JRlJBTUVdLFxuICAgIFtUQUdfTkFNRVMuS0VZR0VOLCBUQUdfSUQuS0VZR0VOXSxcbiAgICBbVEFHX05BTUVTLkxBQkVMLCBUQUdfSUQuTEFCRUxdLFxuICAgIFtUQUdfTkFNRVMuTEksIFRBR19JRC5MSV0sXG4gICAgW1RBR19OQU1FUy5MSU5LLCBUQUdfSUQuTElOS10sXG4gICAgW1RBR19OQU1FUy5MSVNUSU5HLCBUQUdfSUQuTElTVElOR10sXG4gICAgW1RBR19OQU1FUy5NQUlOLCBUQUdfSUQuTUFJTl0sXG4gICAgW1RBR19OQU1FUy5NQUxJR05NQVJLLCBUQUdfSUQuTUFMSUdOTUFSS10sXG4gICAgW1RBR19OQU1FUy5NQVJRVUVFLCBUQUdfSUQuTUFSUVVFRV0sXG4gICAgW1RBR19OQU1FUy5NQVRILCBUQUdfSUQuTUFUSF0sXG4gICAgW1RBR19OQU1FUy5NRU5VLCBUQUdfSUQuTUVOVV0sXG4gICAgW1RBR19OQU1FUy5NRVRBLCBUQUdfSUQuTUVUQV0sXG4gICAgW1RBR19OQU1FUy5NR0xZUEgsIFRBR19JRC5NR0xZUEhdLFxuICAgIFtUQUdfTkFNRVMuTUksIFRBR19JRC5NSV0sXG4gICAgW1RBR19OQU1FUy5NTywgVEFHX0lELk1PXSxcbiAgICBbVEFHX05BTUVTLk1OLCBUQUdfSUQuTU5dLFxuICAgIFtUQUdfTkFNRVMuTVMsIFRBR19JRC5NU10sXG4gICAgW1RBR19OQU1FUy5NVEVYVCwgVEFHX0lELk1URVhUXSxcbiAgICBbVEFHX05BTUVTLk5BViwgVEFHX0lELk5BVl0sXG4gICAgW1RBR19OQU1FUy5OT0JSLCBUQUdfSUQuTk9CUl0sXG4gICAgW1RBR19OQU1FUy5OT0ZSQU1FUywgVEFHX0lELk5PRlJBTUVTXSxcbiAgICBbVEFHX05BTUVTLk5PRU1CRUQsIFRBR19JRC5OT0VNQkVEXSxcbiAgICBbVEFHX05BTUVTLk5PU0NSSVBULCBUQUdfSUQuTk9TQ1JJUFRdLFxuICAgIFtUQUdfTkFNRVMuT0JKRUNULCBUQUdfSUQuT0JKRUNUXSxcbiAgICBbVEFHX05BTUVTLk9MLCBUQUdfSUQuT0xdLFxuICAgIFtUQUdfTkFNRVMuT1BUR1JPVVAsIFRBR19JRC5PUFRHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5PUFRJT04sIFRBR19JRC5PUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuUCwgVEFHX0lELlBdLFxuICAgIFtUQUdfTkFNRVMuUEFSQU0sIFRBR19JRC5QQVJBTV0sXG4gICAgW1RBR19OQU1FUy5QTEFJTlRFWFQsIFRBR19JRC5QTEFJTlRFWFRdLFxuICAgIFtUQUdfTkFNRVMuUFJFLCBUQUdfSUQuUFJFXSxcbiAgICBbVEFHX05BTUVTLlJCLCBUQUdfSUQuUkJdLFxuICAgIFtUQUdfTkFNRVMuUlAsIFRBR19JRC5SUF0sXG4gICAgW1RBR19OQU1FUy5SVCwgVEFHX0lELlJUXSxcbiAgICBbVEFHX05BTUVTLlJUQywgVEFHX0lELlJUQ10sXG4gICAgW1RBR19OQU1FUy5SVUJZLCBUQUdfSUQuUlVCWV0sXG4gICAgW1RBR19OQU1FUy5TLCBUQUdfSUQuU10sXG4gICAgW1RBR19OQU1FUy5TQ1JJUFQsIFRBR19JRC5TQ1JJUFRdLFxuICAgIFtUQUdfTkFNRVMuU0VDVElPTiwgVEFHX0lELlNFQ1RJT05dLFxuICAgIFtUQUdfTkFNRVMuU0VMRUNULCBUQUdfSUQuU0VMRUNUXSxcbiAgICBbVEFHX05BTUVTLlNPVVJDRSwgVEFHX0lELlNPVVJDRV0sXG4gICAgW1RBR19OQU1FUy5TTUFMTCwgVEFHX0lELlNNQUxMXSxcbiAgICBbVEFHX05BTUVTLlNQQU4sIFRBR19JRC5TUEFOXSxcbiAgICBbVEFHX05BTUVTLlNUUklLRSwgVEFHX0lELlNUUklLRV0sXG4gICAgW1RBR19OQU1FUy5TVFJPTkcsIFRBR19JRC5TVFJPTkddLFxuICAgIFtUQUdfTkFNRVMuU1RZTEUsIFRBR19JRC5TVFlMRV0sXG4gICAgW1RBR19OQU1FUy5TVUIsIFRBR19JRC5TVUJdLFxuICAgIFtUQUdfTkFNRVMuU1VNTUFSWSwgVEFHX0lELlNVTU1BUlldLFxuICAgIFtUQUdfTkFNRVMuU1VQLCBUQUdfSUQuU1VQXSxcbiAgICBbVEFHX05BTUVTLlRBQkxFLCBUQUdfSUQuVEFCTEVdLFxuICAgIFtUQUdfTkFNRVMuVEJPRFksIFRBR19JRC5UQk9EWV0sXG4gICAgW1RBR19OQU1FUy5URU1QTEFURSwgVEFHX0lELlRFTVBMQVRFXSxcbiAgICBbVEFHX05BTUVTLlRFWFRBUkVBLCBUQUdfSUQuVEVYVEFSRUFdLFxuICAgIFtUQUdfTkFNRVMuVEZPT1QsIFRBR19JRC5URk9PVF0sXG4gICAgW1RBR19OQU1FUy5URCwgVEFHX0lELlREXSxcbiAgICBbVEFHX05BTUVTLlRILCBUQUdfSUQuVEhdLFxuICAgIFtUQUdfTkFNRVMuVEhFQUQsIFRBR19JRC5USEVBRF0sXG4gICAgW1RBR19OQU1FUy5USVRMRSwgVEFHX0lELlRJVExFXSxcbiAgICBbVEFHX05BTUVTLlRSLCBUQUdfSUQuVFJdLFxuICAgIFtUQUdfTkFNRVMuVFJBQ0ssIFRBR19JRC5UUkFDS10sXG4gICAgW1RBR19OQU1FUy5UVCwgVEFHX0lELlRUXSxcbiAgICBbVEFHX05BTUVTLlUsIFRBR19JRC5VXSxcbiAgICBbVEFHX05BTUVTLlVMLCBUQUdfSUQuVUxdLFxuICAgIFtUQUdfTkFNRVMuU1ZHLCBUQUdfSUQuU1ZHXSxcbiAgICBbVEFHX05BTUVTLlZBUiwgVEFHX0lELlZBUl0sXG4gICAgW1RBR19OQU1FUy5XQlIsIFRBR19JRC5XQlJdLFxuICAgIFtUQUdfTkFNRVMuWE1QLCBUQUdfSUQuWE1QXSxcbl0pO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRhZ0lEKHRhZ05hbWUpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IFRBR19OQU1FX1RPX0lELmdldCh0YWdOYW1lKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogVEFHX0lELlVOS05PV047XG59XG5jb25zdCAkID0gVEFHX0lEO1xuZXhwb3J0IGNvbnN0IFNQRUNJQUxfRUxFTUVOVFMgPSB7XG4gICAgW05TLkhUTUxdOiBuZXcgU2V0KFtcbiAgICAgICAgJC5BRERSRVNTLFxuICAgICAgICAkLkFQUExFVCxcbiAgICAgICAgJC5BUkVBLFxuICAgICAgICAkLkFSVElDTEUsXG4gICAgICAgICQuQVNJREUsXG4gICAgICAgICQuQkFTRSxcbiAgICAgICAgJC5CQVNFRk9OVCxcbiAgICAgICAgJC5CR1NPVU5ELFxuICAgICAgICAkLkJMT0NLUVVPVEUsXG4gICAgICAgICQuQk9EWSxcbiAgICAgICAgJC5CUixcbiAgICAgICAgJC5CVVRUT04sXG4gICAgICAgICQuQ0FQVElPTixcbiAgICAgICAgJC5DRU5URVIsXG4gICAgICAgICQuQ09MLFxuICAgICAgICAkLkNPTEdST1VQLFxuICAgICAgICAkLkRELFxuICAgICAgICAkLkRFVEFJTFMsXG4gICAgICAgICQuRElSLFxuICAgICAgICAkLkRJVixcbiAgICAgICAgJC5ETCxcbiAgICAgICAgJC5EVCxcbiAgICAgICAgJC5FTUJFRCxcbiAgICAgICAgJC5GSUVMRFNFVCxcbiAgICAgICAgJC5GSUdDQVBUSU9OLFxuICAgICAgICAkLkZJR1VSRSxcbiAgICAgICAgJC5GT09URVIsXG4gICAgICAgICQuRk9STSxcbiAgICAgICAgJC5GUkFNRSxcbiAgICAgICAgJC5GUkFNRVNFVCxcbiAgICAgICAgJC5IMSxcbiAgICAgICAgJC5IMixcbiAgICAgICAgJC5IMyxcbiAgICAgICAgJC5INCxcbiAgICAgICAgJC5INSxcbiAgICAgICAgJC5INixcbiAgICAgICAgJC5IRUFELFxuICAgICAgICAkLkhFQURFUixcbiAgICAgICAgJC5IR1JPVVAsXG4gICAgICAgICQuSFIsXG4gICAgICAgICQuSFRNTCxcbiAgICAgICAgJC5JRlJBTUUsXG4gICAgICAgICQuSU1HLFxuICAgICAgICAkLklOUFVULFxuICAgICAgICAkLkxJLFxuICAgICAgICAkLkxJTkssXG4gICAgICAgICQuTElTVElORyxcbiAgICAgICAgJC5NQUlOLFxuICAgICAgICAkLk1BUlFVRUUsXG4gICAgICAgICQuTUVOVSxcbiAgICAgICAgJC5NRVRBLFxuICAgICAgICAkLk5BVixcbiAgICAgICAgJC5OT0VNQkVELFxuICAgICAgICAkLk5PRlJBTUVTLFxuICAgICAgICAkLk5PU0NSSVBULFxuICAgICAgICAkLk9CSkVDVCxcbiAgICAgICAgJC5PTCxcbiAgICAgICAgJC5QLFxuICAgICAgICAkLlBBUkFNLFxuICAgICAgICAkLlBMQUlOVEVYVCxcbiAgICAgICAgJC5QUkUsXG4gICAgICAgICQuU0NSSVBULFxuICAgICAgICAkLlNFQ1RJT04sXG4gICAgICAgICQuU0VMRUNULFxuICAgICAgICAkLlNPVVJDRSxcbiAgICAgICAgJC5TVFlMRSxcbiAgICAgICAgJC5TVU1NQVJZLFxuICAgICAgICAkLlRBQkxFLFxuICAgICAgICAkLlRCT0RZLFxuICAgICAgICAkLlRELFxuICAgICAgICAkLlRFTVBMQVRFLFxuICAgICAgICAkLlRFWFRBUkVBLFxuICAgICAgICAkLlRGT09ULFxuICAgICAgICAkLlRILFxuICAgICAgICAkLlRIRUFELFxuICAgICAgICAkLlRJVExFLFxuICAgICAgICAkLlRSLFxuICAgICAgICAkLlRSQUNLLFxuICAgICAgICAkLlVMLFxuICAgICAgICAkLldCUixcbiAgICAgICAgJC5YTVAsXG4gICAgXSksXG4gICAgW05TLk1BVEhNTF06IG5ldyBTZXQoWyQuTUksICQuTU8sICQuTU4sICQuTVMsICQuTVRFWFQsICQuQU5OT1RBVElPTl9YTUxdKSxcbiAgICBbTlMuU1ZHXTogbmV3IFNldChbJC5USVRMRSwgJC5GT1JFSUdOX09CSkVDVCwgJC5ERVNDXSksXG4gICAgW05TLlhMSU5LXTogbmV3IFNldCgpLFxuICAgIFtOUy5YTUxdOiBuZXcgU2V0KCksXG4gICAgW05TLlhNTE5TXTogbmV3IFNldCgpLFxufTtcbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcmVkSGVhZGVyKHRuKSB7XG4gICAgcmV0dXJuIHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2O1xufVxuY29uc3QgVU5FU0NBUEVEX1RFWFQgPSBuZXcgU2V0KFtcbiAgICBUQUdfTkFNRVMuU1RZTEUsXG4gICAgVEFHX05BTUVTLlNDUklQVCxcbiAgICBUQUdfTkFNRVMuWE1QLFxuICAgIFRBR19OQU1FUy5JRlJBTUUsXG4gICAgVEFHX05BTUVTLk5PRU1CRUQsXG4gICAgVEFHX05BTUVTLk5PRlJBTUVTLFxuICAgIFRBR19OQU1FUy5QTEFJTlRFWFQsXG5dKTtcbmV4cG9ydCBmdW5jdGlvbiBoYXNVbmVzY2FwZWRUZXh0KHRuLCBzY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgcmV0dXJuIFVORVNDQVBFRF9URVhULmhhcyh0bikgfHwgKHNjcmlwdGluZ0VuYWJsZWQgJiYgdG4gPT09IFRBR19OQU1FUy5OT1NDUklQVCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sLmpzLm1hcCIsICJpbXBvcnQgeyBQcmVwcm9jZXNzb3IgfSBmcm9tICcuL3ByZXByb2Nlc3Nvci5qcyc7XG5pbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBTRVFVRU5DRVMgYXMgJCQsIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiwgaXNTdXJyb2dhdGUsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIH0gZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVG9rZW5UeXBlLCBnZXRUb2tlbkF0dHIsIH0gZnJvbSAnLi4vY29tbW9uL3Rva2VuLmpzJztcbmltcG9ydCB7IGh0bWxEZWNvZGVUcmVlLCBCaW5UcmllRmxhZ3MsIGRldGVybWluZUJyYW5jaCB9IGZyb20gJ2VudGl0aWVzL2xpYi9kZWNvZGUuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCB7IFRBR19JRCwgZ2V0VGFnSUQgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG4vL0MxIFVuaWNvZGUgY29udHJvbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHJlcGxhY2VtZW50c1xuY29uc3QgQzFfQ09OVFJPTFNfUkVGRVJFTkNFX1JFUExBQ0VNRU5UUyA9IG5ldyBNYXAoW1xuICAgIFsweDgwLCA4MzY0XSxcbiAgICBbMHg4MiwgODIxOF0sXG4gICAgWzB4ODMsIDQwMl0sXG4gICAgWzB4ODQsIDgyMjJdLFxuICAgIFsweDg1LCA4MjMwXSxcbiAgICBbMHg4NiwgODIyNF0sXG4gICAgWzB4ODcsIDgyMjVdLFxuICAgIFsweDg4LCA3MTBdLFxuICAgIFsweDg5LCA4MjQwXSxcbiAgICBbMHg4YSwgMzUyXSxcbiAgICBbMHg4YiwgODI0OV0sXG4gICAgWzB4OGMsIDMzOF0sXG4gICAgWzB4OGUsIDM4MV0sXG4gICAgWzB4OTEsIDgyMTZdLFxuICAgIFsweDkyLCA4MjE3XSxcbiAgICBbMHg5MywgODIyMF0sXG4gICAgWzB4OTQsIDgyMjFdLFxuICAgIFsweDk1LCA4MjI2XSxcbiAgICBbMHg5NiwgODIxMV0sXG4gICAgWzB4OTcsIDgyMTJdLFxuICAgIFsweDk4LCA3MzJdLFxuICAgIFsweDk5LCA4NDgyXSxcbiAgICBbMHg5YSwgMzUzXSxcbiAgICBbMHg5YiwgODI1MF0sXG4gICAgWzB4OWMsIDMzOV0sXG4gICAgWzB4OWUsIDM4Ml0sXG4gICAgWzB4OWYsIDM3Nl0sXG5dKTtcbi8vU3RhdGVzXG52YXIgU3RhdGU7XG4oZnVuY3Rpb24gKFN0YXRlKSB7XG4gICAgU3RhdGVbU3RhdGVbXCJEQVRBXCJdID0gMF0gPSBcIkRBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQVwiXSA9IDFdID0gXCJSQ0RBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRcIl0gPSAyXSA9IFwiUkFXVEVYVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFcIl0gPSAzXSA9IFwiU0NSSVBUX0RBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlBMQUlOVEVYVFwiXSA9IDRdID0gXCJQTEFJTlRFWFRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlRBR19PUEVOXCJdID0gNV0gPSBcIlRBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJFTkRfVEFHX09QRU5cIl0gPSA2XSA9IFwiRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJUQUdfTkFNRVwiXSA9IDddID0gXCJUQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0xFU1NfVEhBTl9TSUdOXCJdID0gOF0gPSBcIlJDREFUQV9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0VORF9UQUdfT1BFTlwiXSA9IDldID0gXCJSQ0RBVEFfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfRU5EX1RBR19OQU1FXCJdID0gMTBdID0gXCJSQ0RBVEFfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0xFU1NfVEhBTl9TSUdOXCJdID0gMTFdID0gXCJSQVdURVhUX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0VORF9UQUdfT1BFTlwiXSA9IDEyXSA9IFwiUkFXVEVYVF9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfRU5EX1RBR19OQU1FXCJdID0gMTNdID0gXCJSQVdURVhUX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05cIl0gPSAxNF0gPSBcIlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5cIl0gPSAxNV0gPSBcIlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FXCJdID0gMTZdID0gXCJTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVFwiXSA9IDE3XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSFwiXSA9IDE4XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURcIl0gPSAxOV0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSFwiXSA9IDIwXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSFwiXSA9IDIxXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIl0gPSAyMl0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOXCJdID0gMjNdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVcIl0gPSAyNF0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUXCJdID0gMjVdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRFwiXSA9IDI2XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hcIl0gPSAyN10gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSFwiXSA9IDI4XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiXSA9IDI5XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EXCJdID0gMzBdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0FUVFJJQlVURV9OQU1FXCJdID0gMzFdID0gXCJCRUZPUkVfQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9OQU1FXCJdID0gMzJdID0gXCJBVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfQVRUUklCVVRFX05BTUVcIl0gPSAzM10gPSBcIkFGVEVSX0FUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfQVRUUklCVVRFX1ZBTFVFXCJdID0gMzRdID0gXCJCRUZPUkVfQVRUUklCVVRFX1ZBTFVFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRFwiXSA9IDM1XSA9IFwiQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEXCJdID0gMzZdID0gXCJBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEXCJdID0gMzddID0gXCJBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURcIl0gPSAzOF0gPSBcIkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNFTEZfQ0xPU0lOR19TVEFSVF9UQUdcIl0gPSAzOV0gPSBcIlNFTEZfQ0xPU0lOR19TVEFSVF9UQUdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJPR1VTX0NPTU1FTlRcIl0gPSA0MF0gPSBcIkJPR1VTX0NPTU1FTlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk1BUktVUF9ERUNMQVJBVElPTl9PUEVOXCJdID0gNDFdID0gXCJNQVJLVVBfREVDTEFSQVRJT05fT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9TVEFSVFwiXSA9IDQyXSA9IFwiQ09NTUVOVF9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9TVEFSVF9EQVNIXCJdID0gNDNdID0gXCJDT01NRU5UX1NUQVJUX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRcIl0gPSA0NF0gPSBcIkNPTU1FTlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05cIl0gPSA0NV0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR1wiXSA9IDQ2XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSFwiXSA9IDQ3XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0hcIl0gPSA0OF0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EX0RBU0hcIl0gPSA0OV0gPSBcIkNPTU1FTlRfRU5EX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EXCJdID0gNTBdID0gXCJDT01NRU5UX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRfQkFOR1wiXSA9IDUxXSA9IFwiQ09NTUVOVF9FTkRfQkFOR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRVwiXSA9IDUyXSA9IFwiRE9DVFlQRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfTkFNRVwiXSA9IDUzXSA9IFwiQkVGT1JFX0RPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9OQU1FXCJdID0gNTRdID0gXCJET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfTkFNRVwiXSA9IDU1XSA9IFwiQUZURVJfRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEXCJdID0gNTZdID0gXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiXSA9IDU3XSA9IFwiQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiXSA9IDU4XSA9IFwiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIl0gPSA1OV0gPSBcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiXSA9IDYwXSA9IFwiQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTXCJdID0gNjFdID0gXCJCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRcIl0gPSA2Ml0gPSBcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCJdID0gNjNdID0gXCJCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCJdID0gNjRdID0gXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiXSA9IDY1XSA9IFwiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCJdID0gNjZdID0gXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCT0dVU19ET0NUWVBFXCJdID0gNjddID0gXCJCT0dVU19ET0NUWVBFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OXCJdID0gNjhdID0gXCJDREFUQV9TRUNUSU9OXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OX0JSQUNLRVRcIl0gPSA2OV0gPSBcIkNEQVRBX1NFQ1RJT05fQlJBQ0tFVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0RBVEFfU0VDVElPTl9FTkRcIl0gPSA3MF0gPSBcIkNEQVRBX1NFQ1RJT05fRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzFdID0gXCJDSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzJdID0gXCJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBTUJJR1VPVVNfQU1QRVJTQU5EXCJdID0gNzNdID0gXCJBTUJJR1VPVVNfQU1QRVJTQU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3NF0gPSBcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVFwiXSA9IDc1XSA9IFwiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDc2XSA9IFwiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzddID0gXCJERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkRcIl0gPSA3OF0gPSBcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkRcIjtcbn0pKFN0YXRlIHx8IChTdGF0ZSA9IHt9KSk7XG4vL1Rva2VuaXplciBpbml0aWFsIHN0YXRlcyBmb3IgZGlmZmVyZW50IG1vZGVzXG5leHBvcnQgY29uc3QgVG9rZW5pemVyTW9kZSA9IHtcbiAgICBEQVRBOiBTdGF0ZS5EQVRBLFxuICAgIFJDREFUQTogU3RhdGUuUkNEQVRBLFxuICAgIFJBV1RFWFQ6IFN0YXRlLlJBV1RFWFQsXG4gICAgU0NSSVBUX0RBVEE6IFN0YXRlLlNDUklQVF9EQVRBLFxuICAgIFBMQUlOVEVYVDogU3RhdGUuUExBSU5URVhULFxuICAgIENEQVRBX1NFQ1RJT046IFN0YXRlLkNEQVRBX1NFQ1RJT04sXG59O1xuLy9VdGlsc1xuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlVcHBlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfWjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9aO1xufVxuZnVuY3Rpb24gaXNBc2NpaUxldHRlcihjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTG93ZXIoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlMZXR0ZXIoY3ApIHx8IGlzQXNjaWlEaWdpdChjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfRjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlckhleERpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fU01BTExfQSAmJiBjcCA8PSAkLkxBVElOX1NNQUxMX0Y7XG59XG5mdW5jdGlvbiBpc0FzY2lpSGV4RGlnaXQoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaURpZ2l0KGNwKSB8fCBpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkgfHwgaXNBc2NpaUxvd2VySGV4RGlnaXQoY3ApO1xufVxuZnVuY3Rpb24gdG9Bc2NpaUxvd2VyKGNwKSB7XG4gICAgcmV0dXJuIGNwICsgMzI7XG59XG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY3ApIHtcbiAgICByZXR1cm4gY3AgPT09ICQuU1BBQ0UgfHwgY3AgPT09ICQuTElORV9GRUVEIHx8IGNwID09PSAkLlRBQlVMQVRJT04gfHwgY3AgPT09ICQuRk9STV9GRUVEO1xufVxuZnVuY3Rpb24gaXNFbnRpdHlJbkF0dHJpYnV0ZUludmFsaWRFbmQobmV4dENwKSB7XG4gICAgcmV0dXJuIG5leHRDcCA9PT0gJC5FUVVBTFNfU0lHTiB8fCBpc0FzY2lpQWxwaGFOdW1lcmljKG5leHRDcCk7XG59XG5mdW5jdGlvbiBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZChjcCkge1xuICAgIHJldHVybiBpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR047XG59XG4vL1Rva2VuaXplclxuZXhwb3J0IGNsYXNzIFRva2VuaXplciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgaGFuZGxlcikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvKiogRW5zdXJlcyB0aGF0IHRoZSBwYXJzaW5nIGxvb3AgaXNuJ3QgcnVuIG11bHRpcGxlIHRpbWVzIGF0IG9uY2UuICovXG4gICAgICAgIHRoaXMuaW5Mb29wID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBhZGp1c3RlZCBub2RlIGV4aXN0cywgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlLFxuICAgICAgICAgKiBhbmQgdGhhdCBpdCBpcyBub3QgYW4gaW50ZWdyYXRpb24gcG9pbnQgZm9yIGVpdGhlciBNYXRoTUwgb3IgSFRNTC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3RyZWUtY29uc3RydWN0aW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbkZvcmVpZ25Ob2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9ICcnO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAtMTtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAtMTtcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIgPSB7IG5hbWU6ICcnLCB2YWx1ZTogJycgfTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IgPSBuZXcgUHJlcHJvY2Vzc29yKGhhbmRsZXIpO1xuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKC0xKTtcbiAgICB9XG4gICAgLy9FcnJvcnNcbiAgICBfZXJyKGNvZGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5oYW5kbGVyKS5vblBhcnNlRXJyb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB0aGlzLnByZXByb2Nlc3Nvci5nZXRFcnJvcihjb2RlKSk7XG4gICAgfVxuICAgIC8vIE5PVEU6IGBvZmZzZXRgIG1heSBuZXZlciBydW4gYWNyb3NzIGxpbmUgYm91bmRhcmllcy5cbiAgICBnZXRDdXJyZW50TG9jYXRpb24ob2Zmc2V0KSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFydExpbmU6IHRoaXMucHJlcHJvY2Vzc29yLmxpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogdGhpcy5wcmVwcm9jZXNzb3IuY29sIC0gb2Zmc2V0LFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldCAtIG9mZnNldCxcbiAgICAgICAgICAgIGVuZExpbmU6IC0xLFxuICAgICAgICAgICAgZW5kQ29sOiAtMSxcbiAgICAgICAgICAgIGVuZE9mZnNldDogLTEsXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9ydW5QYXJzaW5nTG9vcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5Mb29wKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmluTG9vcCA9IHRydWU7XG4gICAgICAgIHdoaWxlICh0aGlzLmFjdGl2ZSAmJiAhdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ID0gMDtcbiAgICAgICAgICAgIGNvbnN0IGNwID0gdGhpcy5fY29uc3VtZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluTG9vcCA9IGZhbHNlO1xuICAgIH1cbiAgICAvL0FQSVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfVxuICAgIHJlc3VtZSh3cml0ZUNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGFyc2VyIHdhcyBhbHJlYWR5IHJlc3VtZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvLyBOZWNlc3NhcnkgZm9yIHN5bmNocm9ub3VzIHJlc3VtZS5cbiAgICAgICAgaWYgKHRoaXMuaW5Mb29wKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB3cml0ZUNhbGxiYWNrID09PSBudWxsIHx8IHdyaXRlQ2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdyaXRlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZShjaHVuaywgaXNMYXN0Q2h1bmssIHdyaXRlQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci53cml0ZShjaHVuaywgaXNMYXN0Q2h1bmspO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB3cml0ZUNhbGxiYWNrID09PSBudWxsIHx8IHdyaXRlQ2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdyaXRlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuayk7XG4gICAgICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKCk7XG4gICAgfVxuICAgIC8vSGliZXJuYXRpb25cbiAgICBfZW5zdXJlSGliZXJuYXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5lbmRPZkNodW5rSGl0KSB7XG4gICAgICAgICAgICB0aGlzLl91bmNvbnN1bWUodGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy9Db25zdW1wdGlvblxuICAgIF9jb25zdW1lKCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCsrO1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZSgpO1xuICAgIH1cbiAgICBfdW5jb25zdW1lKGNvdW50KSB7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90IC09IGNvdW50O1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5yZXRyZWF0KGNvdW50KTtcbiAgICB9XG4gICAgX3JlY29uc3VtZUluU3RhdGUoc3RhdGUsIGNwKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICB9XG4gICAgX2FkdmFuY2VCeShjb3VudCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCArPSBjb3VudDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2gocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSkge1xuICAgICAgICAgICAgLy8gV2Ugd2lsbCBhbHJlYWR5IGhhdmUgY29uc3VtZWQgb25lIGNoYXJhY3RlciBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC5cbiAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeShwYXR0ZXJuLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL1Rva2VuIGNyZWF0aW9uXG4gICAgX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLlNUQVJUX1RBRyxcbiAgICAgICAgICAgIHRhZ05hbWU6ICcnLFxuICAgICAgICAgICAgdGFnSUQ6IFRBR19JRC5VTktOT1dOLFxuICAgICAgICAgICAgc2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYWNrU2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYXR0cnM6IFtdLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDEpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlRW5kVGFnVG9rZW4oKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkVORF9UQUcsXG4gICAgICAgICAgICB0YWdOYW1lOiAnJyxcbiAgICAgICAgICAgIHRhZ0lEOiBUQUdfSUQuVU5LTk9XTixcbiAgICAgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFja1NlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGF0dHJzOiBbXSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigyKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUNvbW1lbnRUb2tlbihvZmZzZXQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuQ09NTUVOVCxcbiAgICAgICAgICAgIGRhdGE6ICcnLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKG9mZnNldCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVEb2N0eXBlVG9rZW4oaW5pdGlhbE5hbWUpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuRE9DVFlQRSxcbiAgICAgICAgICAgIG5hbWU6IGluaXRpYWxOYW1lLFxuICAgICAgICAgICAgZm9yY2VRdWlya3M6IGZhbHNlLFxuICAgICAgICAgICAgcHVibGljSWQ6IG51bGwsXG4gICAgICAgICAgICBzeXN0ZW1JZDogbnVsbCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoYXJzKSB7XG4gICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGNoYXJzLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuY3VycmVudExvY2F0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvL1RhZyBhdHRyaWJ1dGVzXG4gICAgX2NyZWF0ZUF0dHIoYXR0ck5hbWVGaXJzdENoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIgPSB7XG4gICAgICAgICAgICBuYW1lOiBhdHRyTmFtZUZpcnN0Q2gsXG4gICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgfVxuICAgIF9sZWF2ZUF0dHJOYW1lKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHZhciBfYjtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgaWYgKGdldFRva2VuQXR0cih0b2tlbiwgdGhpcy5jdXJyZW50QXR0ci5uYW1lKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnMucHVzaCh0aGlzLmN1cnJlbnRBdHRyKTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5sb2NhdGlvbiAmJiB0aGlzLmN1cnJlbnRMb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJMb2NhdGlvbnMgPSAoKF9hID0gKF9iID0gdG9rZW4ubG9jYXRpb24pLmF0dHJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAoX2IuYXR0cnMgPSBPYmplY3QuY3JlYXRlKG51bGwpKSk7XG4gICAgICAgICAgICAgICAgYXR0ckxvY2F0aW9uc1t0aGlzLmN1cnJlbnRBdHRyLm5hbWVdID0gdGhpcy5jdXJyZW50TG9jYXRpb247XG4gICAgICAgICAgICAgICAgLy8gU2V0IGVuZCBsb2NhdGlvblxuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmR1cGxpY2F0ZUF0dHJpYnV0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2xlYXZlQXR0clZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZExpbmUgPSB0aGlzLnByZXByb2Nlc3Nvci5saW5lO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kQ29sID0gdGhpcy5wcmVwcm9jZXNzb3IuY29sO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vVG9rZW4gZW1pc3Npb25cbiAgICBwcmVwYXJlVG9rZW4oY3QpIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihjdC5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgaWYgKGN0LmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRMaW5lID0gdGhpcy5wcmVwcm9jZXNzb3IubGluZTtcbiAgICAgICAgICAgIGN0LmxvY2F0aW9uLmVuZENvbCA9IHRoaXMucHJlcHJvY2Vzc29yLmNvbCArIDE7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRPZmZzZXQgPSB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQgKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oLTEpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCkge1xuICAgICAgICBjb25zdCBjdCA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIGN0LnRhZ0lEID0gZ2V0VGFnSUQoY3QudGFnTmFtZSk7XG4gICAgICAgIGlmIChjdC50eXBlID09PSBUb2tlblR5cGUuU1RBUlRfVEFHKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSBjdC50YWdOYW1lO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uU3RhcnRUYWcoY3QpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN0LmF0dHJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVuZFRhZ1dpdGhBdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdC5zZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25FbmRUYWcoY3QpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudENvbW1lbnQoY3QpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Db21tZW50KGN0KTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIGVtaXRDdXJyZW50RG9jdHlwZShjdCkge1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkRvY3R5cGUoY3QpO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4obmV4dExvY2F0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGEgcGVuZGluZyBjaGFyYWN0ZXIgdG9rZW4sIG1ha2UgaXQncyBlbmQgbG9jYXRpb24gZXF1YWwgdG8gdGhlXG4gICAgICAgICAgICAvL2N1cnJlbnQgdG9rZW4ncyBzdGFydCBsb2NhdGlvbi5cbiAgICAgICAgICAgIGlmIChuZXh0TG9jYXRpb24gJiYgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRMaW5lID0gbmV4dExvY2F0aW9uLnN0YXJ0TGluZTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRDb2wgPSBuZXh0TG9jYXRpb24uc3RhcnRDb2w7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kT2Zmc2V0ID0gbmV4dExvY2F0aW9uLnN0YXJ0T2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkNoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25OdWxsQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbldoaXRlc3BhY2VDaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2VtaXRFT0ZUb2tlbigpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRMaW5lID0gbG9jYXRpb24uc3RhcnRMaW5lO1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kQ29sID0gbG9jYXRpb24uc3RhcnRDb2w7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRPZmZzZXQgPSBsb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uRW9mKHsgdHlwZTogVG9rZW5UeXBlLkVPRiwgbG9jYXRpb24gfSk7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIC8vQ2hhcmFjdGVycyBlbWlzc2lvblxuICAgIC8vT1BUSU1JWkFUSU9OOiBzcGVjaWZpY2F0aW9uIHVzZXMgb25seSBvbmUgdHlwZSBvZiBjaGFyYWN0ZXIgdG9rZW5zIChvbmUgdG9rZW4gcGVyIGNoYXJhY3RlcikuXG4gICAgLy9UaGlzIGNhdXNlcyBhIGh1Z2UgbWVtb3J5IG92ZXJoZWFkIGFuZCBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBwYXJzZXIgbG9vcHMuIHBhcnNlNSB1c2VzIDMgZ3JvdXBzIG9mIGNoYXJhY3RlcnMuXG4gICAgLy9JZiB3ZSBoYXZlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGJlbG9uZyB0byB0aGUgc2FtZSBncm91cCwgdGhlIHBhcnNlciBjYW4gcHJvY2VzcyBpdFxuICAgIC8vYXMgYSBzaW5nbGUgc29saWQgY2hhcmFjdGVyIHRva2VuLlxuICAgIC8vU28sIHRoZXJlIGFyZSAzIHR5cGVzIG9mIGNoYXJhY3RlciB0b2tlbnMgaW4gcGFyc2U1OlxuICAgIC8vMSlUb2tlblR5cGUuTlVMTF9DSEFSQUNURVIgLSBcXHUwMDAwLWNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcdTAwMDBcXHUwMDAwXFx1MDAwMCcpXG4gICAgLy8yKVRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUiAtIGFueSB3aGl0ZXNwYWNlL25ldy1saW5lIGNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcbiAgXFxyXFx0ICAgXFxmJylcbiAgICAvLzMpVG9rZW5UeXBlLkNIQVJBQ1RFUiAtIGFueSBjaGFyYWN0ZXIgc2VxdWVuY2Ugd2hpY2ggZG9uJ3QgYmVsb25nIHRvIGdyb3VwcyAxIGFuZCAyIChlLmcuICdhYmNkZWYxMjM0QEAjJCVeJylcbiAgICBfYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIGNoKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLnR5cGUgIT09IHR5cGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4odGhpcy5jdXJyZW50TG9jYXRpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2hhcnMgKz0gY2g7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoKTtcbiAgICB9XG4gICAgX2VtaXRDb2RlUG9pbnQoY3ApIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IGlzV2hpdGVzcGFjZShjcClcbiAgICAgICAgICAgID8gVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSXG4gICAgICAgICAgICA6IGNwID09PSAkLk5VTExcbiAgICAgICAgICAgICAgICA/IFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUlxuICAgICAgICAgICAgICAgIDogVG9rZW5UeXBlLkNIQVJBQ1RFUjtcbiAgICAgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKSk7XG4gICAgfVxuICAgIC8vTk9URTogdXNlZCB3aGVuIHdlIGVtaXQgY2hhcmFjdGVycyBleHBsaWNpdGx5LlxuICAgIC8vVGhpcyBpcyBhbHdheXMgZm9yIG5vbi13aGl0ZXNwYWNlIGFuZCBub24tbnVsbCBjaGFyYWN0ZXJzLCB3aGljaCBhbGxvd3MgdXMgdG8gYXZvaWQgYWRkaXRpb25hbCBjaGVja3MuXG4gICAgX2VtaXRDaGFycyhjaCkge1xuICAgICAgICB0aGlzLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4oVG9rZW5UeXBlLkNIQVJBQ1RFUiwgY2gpO1xuICAgIH1cbiAgICAvLyBDaGFyYWN0ZXIgcmVmZXJlbmNlIGhlbHBlcnNcbiAgICBfbWF0Y2hOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgbGV0IGV4Y2VzcyA9IDA7XG4gICAgICAgIGxldCB3aXRob3V0U2VtaWNvbG9uID0gZmFsc2U7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBjdXJyZW50ID0gaHRtbERlY29kZVRyZWVbMF07IGkgPj0gMDsgY3AgPSB0aGlzLl9jb25zdW1lKCkpIHtcbiAgICAgICAgICAgIGkgPSBkZXRlcm1pbmVCcmFuY2goaHRtbERlY29kZVRyZWUsIGN1cnJlbnQsIGkgKyAxLCBjcCk7XG4gICAgICAgICAgICBpZiAoaSA8IDApXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBleGNlc3MgKz0gMTtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBodG1sRGVjb2RlVHJlZVtpXTtcbiAgICAgICAgICAgIGNvbnN0IG1hc2tlZCA9IGN1cnJlbnQgJiBCaW5UcmllRmxhZ3MuVkFMVUVfTEVOR1RIO1xuICAgICAgICAgICAgLy8gSWYgdGhlIGJyYW5jaCBpcyBhIHZhbHVlLCBzdG9yZSBpdCBhbmQgY29udGludWVcbiAgICAgICAgICAgIGlmIChtYXNrZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgbWFzayBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSB2YWx1ZSwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGJ5dGUuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVMZW5ndGggPSAobWFza2VkID4+IDE0KSAtIDE7XG4gICAgICAgICAgICAgICAgLy8gQXR0cmlidXRlIHZhbHVlcyB0aGF0IGFyZW4ndCB0ZXJtaW5hdGVkIHByb3Blcmx5IGFyZW4ndCBwYXJzZWQsIGFuZCBzaG91bGRuJ3QgbGVhZCB0byBhIHBhcnNlciBlcnJvci5cbiAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGV4YW1wbGUgaW4gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2Utc3RhdGVcbiAgICAgICAgICAgICAgICBpZiAoY3AgIT09ICQuU0VNSUNPTE9OICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSAmJlxuICAgICAgICAgICAgICAgICAgICBpc0VudGl0eUluQXR0cmlidXRlSW52YWxpZEVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKDEpKSkge1xuICAgICAgICAgICAgICAgICAgICAvL05PVEU6IHdlIGRvbid0IGZsdXNoIGFsbCBjb25zdW1lZCBjb2RlIHBvaW50cyBoZXJlLCBhbmQgaW5zdGVhZCBzd2l0Y2ggYmFjayB0byB0aGUgb3JpZ2luYWwgc3RhdGUgYWZ0ZXJcbiAgICAgICAgICAgICAgICAgICAgLy9lbWl0dGluZyBhbiBhbXBlcnNhbmQuIFRoaXMgaXMgZmluZSwgYXMgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgd29uJ3QgYmUgcGFyc2VkIGRpZmZlcmVudGx5IGluIGF0dHJpYnV0ZXMuXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFskLkFNUEVSU0FORF07XG4gICAgICAgICAgICAgICAgICAgIC8vIFNraXAgb3ZlciB0aGUgdmFsdWUuXG4gICAgICAgICAgICAgICAgICAgIGkgKz0gdmFsdWVMZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgc3Vycm9nYXRlIHBhaXIsIGNvbnN1bWUgdGhlIG5leHQgdHdvIGJ5dGVzLlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVMZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtodG1sRGVjb2RlVHJlZVtpXSAmIH5CaW5UcmllRmxhZ3MuVkFMVUVfTEVOR1RIXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVMZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbaHRtbERlY29kZVRyZWVbKytpXV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbaHRtbERlY29kZVRyZWVbKytpXSwgaHRtbERlY29kZVRyZWVbKytpXV07XG4gICAgICAgICAgICAgICAgICAgIGV4Y2VzcyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpdGhvdXRTZW1pY29sb24gPSBjcCAhPT0gJC5TRU1JQ09MT047XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgemVyby1sZW5ndGgsIHdlJ3JlIGRvbmUuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VuY29uc3VtZShleGNlc3MpO1xuICAgICAgICBpZiAod2l0aG91dFNlbWljb2xvbiAmJiAhdGhpcy5wcmVwcm9jZXNzb3IuZW5kT2ZDaHVua0hpdCkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gZW1pdCB0aGUgZXJyb3IgYWJvdmUgb24gdGhlIGNvZGUgcG9pbnQgYWZ0ZXIgdGhlIGVudGl0eS5cbiAgICAgICAgLy8gV2UgYWx3YXlzIGNvbnN1bWUgb25lIGNvZGUgcG9pbnQgdG9vIG1hbnkgaW4gdGhlIGxvb3AsIGFuZCB3ZSB3YWl0IHRvXG4gICAgICAgIC8vIHVuY29uc3VtZSBpdCB1bnRpbCBhZnRlciB0aGUgZXJyb3IgaXMgZW1pdHRlZC5cbiAgICAgICAgdGhpcy5fdW5jb25zdW1lKDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBfaXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZSgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRCB8fFxuICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQgfHxcbiAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRCk7XG4gICAgfVxuICAgIF9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDYWxsaW5nIHN0YXRlcyB0aGlzIHdheSB0dXJucyBvdXQgdG8gYmUgbXVjaCBmYXN0ZXIgdGhhbiBhbnkgb3RoZXIgYXBwcm9hY2guXG4gICAgX2NhbGxTdGF0ZShjcCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgU3RhdGUuREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRGF0YShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUExBSU5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVQbGFpbnRleHQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkVORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlRBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUxlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZVZhbHVlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CT0dVU19DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5NQVJLVVBfREVDTEFSQVRJT05fT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudFN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9TVEFSVF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50U3RhcnREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkRfQkFORzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZEJhbmcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CT0dVU19ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbkJyYWNrZXQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BTUJJR1VPVVNfQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBbWJpZ3VvdXNBbXBlcnNhbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZVN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gc3RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTdGF0ZSBtYWNoaW5lXG4gICAgLy8gRGF0YSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vICBSQ0RBVEEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUExBSU5URVhUIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVQbGFpbnRleHQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBUYWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5NQVJLVVBfREVDTEFSQVRJT05fT1BFTjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5FTkRfVEFHX09QRU47XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuUVVFU1RJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRRdWVzdGlvbk1hcmtJbnN0ZWFkT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkJlZm9yZVRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURhdGEoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gRW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdFbmRUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mQmVmb3JlVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gVGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVRhZ05hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhhbmRsZVNwZWNpYWxFbmRUYWcoX2NwKSB7XG4gICAgICAgIGlmICghdGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCh0aGlzLmxhc3RTdGFydFRhZ05hbWUsIGZhbHNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHRva2VuLnRhZ05hbWUgPSB0aGlzLmxhc3RTdGFydFRhZ05hbWU7XG4gICAgICAgIGNvbnN0IGNwID0gdGhpcy5wcmVwcm9jZXNzb3IucGVlayh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCEnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPicpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCgkJC5TQ1JJUFQsIGZhbHNlKSAmJlxuICAgICAgICAgICAgaXNTY3JpcHREYXRhRG91YmxlRXNjYXBlU2VxdWVuY2VFbmQodGhpcy5wcmVwcm9jZXNzb3IucGVlaygkJC5TQ1JJUFQubGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAkJC5TQ1JJUFQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KHRoaXMuX2NvbnN1bWUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJz4nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy8nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKCQkLlNDUklQVCwgZmFsc2UpICYmXG4gICAgICAgICAgICBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKCQkLlNDUklQVC5sZW5ndGgpKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICQkLlNDUklQVC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQodGhpcy5fY29uc3VtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzpcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJz0nKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOlxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX1ZBTFVFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOlxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGlzQXNjaWlVcHBlcihjcCkgPyB0b0FzY2lpTG93ZXIoY3ApIDogY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIGF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgYXR0cmlidXRlIHZhbHVlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nQXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKHVucXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzpcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOlxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkdSQVZFX0FDQ0VOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckluVW5xdW90ZWRBdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuQXR0cmlidXRlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbi5zZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkU29saWR1c0luVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQm9ndXMgY29tbWVudCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQm9ndXNDb21tZW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE1hcmt1cCBkZWNsYXJhdGlvbiBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVNYXJrdXBEZWNsYXJhdGlvbk9wZW4oY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuREFTSF9EQVNILCB0cnVlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCQkLkRBU0hfREFTSC5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX1NUQVJUO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuRE9DVFlQRSwgZmFsc2UpKSB7XG4gICAgICAgICAgICAvLyBOT1RFOiBEb2N0eXBlcyB0b2tlbnMgYXJlIGNyZWF0ZWQgd2l0aG91dCBmaXhlZCBvZmZzZXRzLiBXZSBrZWVwIHRyYWNrIG9mIHRoZSBtb21lbnQgYSBkb2N0eXBlICptaWdodCogc3RhcnQgaGVyZS5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oJCQuRE9DVFlQRS5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuQ0RBVEFfU1RBUlQsIHRydWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNkYXRhSW5IdG1sQ29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCQkLkNEQVRBX1NUQVJULmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgPSAnW0NEQVRBWyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBTZXF1ZW5jZSBsb29rdXBzIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlLCBsb29rdXBcbiAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbmNvcnJlY3RseU9wZW5lZENvbW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDIpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudFN0YXJ0KGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9TVEFSVF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGFydCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50U3RhcnREYXNoKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJzwnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICchJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnPCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmREYXNoKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2hEYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCAhPT0gJC5HUkVBVEVSX1RIQU5fU0lHTiAmJiBjcCAhPT0gJC5FT0YpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubmVzdGVkQ29tbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmQoY3ApO1xuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50RW5kRGFzaChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9CQU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgYmFuZyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZEJhbmcoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmluY29ycmVjdGx5Q2xvc2VkQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0hJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKFN0cmluZy5mcm9tQ2hhckNvZGUodG9Bc2NpaUxvd2VyKGNwKSkpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihTdHJpbmcuZnJvbUNvZGVQb2ludChjcCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ubmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuUFVCTElDLCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuU1lTVEVNLCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vTk9URTogc2VxdWVuY2UgbG9va3VwIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlIGxvb2t1cFxuICAgICAgICAgICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgcHVibGljIGtleXdvcmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJldHdlZW4gRE9DVFlQRSBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyhjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBzeXN0ZW0ga2V5d29yZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJvZ3VzIERPQ1RZUEUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJvZ3VzRG9jdHlwZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OX0JSQUNLRVQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNkYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIGJyYWNrZXQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbkJyYWNrZXQoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTl9FTkQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ10nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb25FbmQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUklHSFRfU1FVQVJFX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ10nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ11dJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuTlVNQkVSX1NJR04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgY29uc3QgbWF0Y2hSZXN1bHQgPSB0aGlzLl9tYXRjaE5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgLy9OT1RFOiBNYXRjaGluZyBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSwgbWF0Y2hcbiAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICBpZiAodGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgLy8gU3RheSBpbiB0aGUgc3RhdGUsIHRyeSBhZ2Fpbi5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChtYXRjaFJlc3VsdCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXRjaFJlc3VsdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShtYXRjaFJlc3VsdFtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5yZXR1cm5TdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLkFNUEVSU0FORCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQU1CSUdVT1VTX0FNUEVSU0FORDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBbWJpZ3VvcyBhbXBlcnNhbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFtYmlndW91c0FtcGVyc2FuZChjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmtub3duTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAwO1xuICAgICAgICBpZiAoY3AgPT09ICQuTEFUSU5fU01BTExfWCB8fCBjcCA9PT0gJC5MQVRJTl9DQVBJVEFMX1gpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUO1xuICAgICAgICB9XG4gICAgICAgIC8vIElubGluZWQgZGVjaW1hbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXJ0IHN0YXRlXG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLk5VTUJFUl9TSUdOKTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEhleGFkZW1pY2FsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFic2VuY2VPZkRpZ2l0c0luTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuTlVNQkVSX1NJR04pO1xuICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lKDIpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSGV4YWRlbWljYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlVcHBlckhleERpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHgzNztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXJIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTYgKyBjcCAtIDB4NTc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHgzMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERlY2ltYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGVjaW1hbENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxMCArIGNwIC0gMHgzMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZSBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuY2hhclJlZkNvZGUgPT09ICQuTlVMTCkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5udWxsQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmNoYXJSZWZDb2RlID4gMTExNDExMSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1N1cnJvZ2F0ZSh0aGlzLmNoYXJSZWZDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5zdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9ICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVW5kZWZpbmVkQ29kZVBvaW50KHRoaXMuY2hhclJlZkNvZGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNDb250cm9sQ29kZVBvaW50KHRoaXMuY2hhclJlZkNvZGUpIHx8IHRoaXMuY2hhclJlZkNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSBDMV9DT05UUk9MU19SRUZFUkVOQ0VfUkVQTEFDRU1FTlRTLmdldCh0aGlzLmNoYXJSZWZDb2RlKTtcbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHJlcGxhY2VtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSh0aGlzLmNoYXJSZWZDb2RlKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgImltcG9ydCB7IFRBR19JRCBhcyAkLCBOUywgaXNOdW1iZXJlZEhlYWRlciB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbi8vRWxlbWVudCB1dGlsc1xuY29uc3QgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRCA9IG5ldyBTZXQoWyQuREQsICQuRFQsICQuTEksICQuT1BUR1JPVVAsICQuT1BUSU9OLCAkLlAsICQuUkIsICQuUlAsICQuUlQsICQuUlRDXSk7XG5jb25zdCBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkgPSBuZXcgU2V0KFtcbiAgICAuLi5JTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVELFxuICAgICQuQ0FQVElPTixcbiAgICAkLkNPTEdST1VQLFxuICAgICQuVEJPRFksXG4gICAgJC5URCxcbiAgICAkLlRGT09ULFxuICAgICQuVEgsXG4gICAgJC5USEVBRCxcbiAgICAkLlRSLFxuXSk7XG5jb25zdCBTQ09QSU5HX0VMRU1FTlRfTlMgPSBuZXcgTWFwKFtcbiAgICBbJC5BUFBMRVQsIE5TLkhUTUxdLFxuICAgIFskLkNBUFRJT04sIE5TLkhUTUxdLFxuICAgIFskLkhUTUwsIE5TLkhUTUxdLFxuICAgIFskLk1BUlFVRUUsIE5TLkhUTUxdLFxuICAgIFskLk9CSkVDVCwgTlMuSFRNTF0sXG4gICAgWyQuVEFCTEUsIE5TLkhUTUxdLFxuICAgIFskLlRELCBOUy5IVE1MXSxcbiAgICBbJC5URU1QTEFURSwgTlMuSFRNTF0sXG4gICAgWyQuVEgsIE5TLkhUTUxdLFxuICAgIFskLkFOTk9UQVRJT05fWE1MLCBOUy5NQVRITUxdLFxuICAgIFskLk1JLCBOUy5NQVRITUxdLFxuICAgIFskLk1OLCBOUy5NQVRITUxdLFxuICAgIFskLk1PLCBOUy5NQVRITUxdLFxuICAgIFskLk1TLCBOUy5NQVRITUxdLFxuICAgIFskLk1URVhULCBOUy5NQVRITUxdLFxuICAgIFskLkRFU0MsIE5TLlNWR10sXG4gICAgWyQuRk9SRUlHTl9PQkpFQ1QsIE5TLlNWR10sXG4gICAgWyQuVElUTEUsIE5TLlNWR10sXG5dKTtcbmNvbnN0IE5BTUVEX0hFQURFUlMgPSBbJC5IMSwgJC5IMiwgJC5IMywgJC5INCwgJC5INSwgJC5INl07XG5jb25zdCBUQUJMRV9ST1dfQ09OVEVYVCA9IFskLlRSLCAkLlRFTVBMQVRFLCAkLkhUTUxdO1xuY29uc3QgVEFCTEVfQk9EWV9DT05URVhUID0gWyQuVEJPRFksICQuVEZPT1QsICQuVEhFQUQsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9DT05URVhUID0gWyQuVEFCTEUsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9DRUxMUyA9IFskLlRELCAkLlRIXTtcbi8vU3RhY2sgb2Ygb3BlbiBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIE9wZW5FbGVtZW50U3RhY2sge1xuICAgIGdldCBjdXJyZW50VG1wbENvbnRlbnRPck5vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0luVGVtcGxhdGUoKSA/IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHRoaXMuY3VycmVudCkgOiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50LCB0cmVlQWRhcHRlciwgaGFuZGxlcikge1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy50YWdJRHMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGFja1RvcCA9IC0xO1xuICAgICAgICB0aGlzLnRtcGxDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gJC5VTktOT1dOO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDtcbiAgICB9XG4gICAgLy9JbmRleCBvZiBlbGVtZW50XG4gICAgX2luZGV4T2YoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sYXN0SW5kZXhPZihlbGVtZW50LCB0aGlzLnN0YWNrVG9wKTtcbiAgICB9XG4gICAgLy9VcGRhdGUgY3VycmVudCBlbGVtZW50XG4gICAgX2lzSW5UZW1wbGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFRhZ0lkID09PSAkLlRFTVBMQVRFICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCkgPT09IE5TLkhUTUw7XG4gICAgfVxuICAgIF91cGRhdGVDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWQgPSB0aGlzLnRhZ0lEc1t0aGlzLnN0YWNrVG9wXTtcbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBwdXNoKGVsZW1lbnQsIHRhZ0lEKSB7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXSA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMudGFnSURzW3RoaXMuc3RhY2tUb3BdID0gdGFnSUQ7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gdGFnSUQ7XG4gICAgICAgIGlmICh0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50bXBsQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaChlbGVtZW50LCB0YWdJRCwgdHJ1ZSk7XG4gICAgfVxuICAgIHBvcCgpIHtcbiAgICAgICAgY29uc3QgcG9wcGVkID0gdGhpcy5jdXJyZW50O1xuICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnRtcGxDb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChwb3BwZWQsIHRydWUpO1xuICAgIH1cbiAgICByZXBsYWNlKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5pdGVtc1tpZHhdID0gbmV3RWxlbWVudDtcbiAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gbmV3RWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRBZnRlcihyZWZlcmVuY2VFbGVtZW50LCBuZXdFbGVtZW50LCBuZXdFbGVtZW50SUQpIHtcbiAgICAgICAgY29uc3QgaW5zZXJ0aW9uSWR4ID0gdGhpcy5faW5kZXhPZihyZWZlcmVuY2VFbGVtZW50KSArIDE7XG4gICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudCk7XG4gICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnRJRCk7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgaWYgKGluc2VydGlvbklkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaCh0aGlzLmN1cnJlbnQsIHRoaXMuY3VycmVudFRhZ0lkLCBpbnNlcnRpb25JZHggPT09IHRoaXMuc3RhY2tUb3ApO1xuICAgIH1cbiAgICBwb3BVbnRpbFRhZ05hbWVQb3BwZWQodGFnTmFtZSkge1xuICAgICAgICBsZXQgdGFyZ2V0SWR4ID0gdGhpcy5zdGFja1RvcCArIDE7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRhcmdldElkeCA9IHRoaXMudGFnSURzLmxhc3RJbmRleE9mKHRhZ05hbWUsIHRhcmdldElkeCAtIDEpO1xuICAgICAgICB9IHdoaWxlICh0YXJnZXRJZHggPiAwICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbdGFyZ2V0SWR4XSkgIT09IE5TLkhUTUwpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCh0YXJnZXRJZHggPCAwID8gMCA6IHRhcmdldElkeCk7XG4gICAgfVxuICAgIHNob3J0ZW5Ub0xlbmd0aChpZHgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPj0gaWR4KSB7XG4gICAgICAgICAgICBjb25zdCBwb3BwZWQgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXBsQ291bnQgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUG9wKHBvcHBlZCwgdGhpcy5zdGFja1RvcCA8IGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoaWR4IDwgMCA/IDAgOiBpZHgpO1xuICAgIH1cbiAgICBwb3BVbnRpbFBvcHBlZCh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICB9XG4gICAgcG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCgpIHtcbiAgICAgICAgdGhpcy5wb3BVbnRpbFBvcHBlZChOQU1FRF9IRUFERVJTLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKSB7XG4gICAgICAgIHRoaXMucG9wVW50aWxQb3BwZWQoVEFCTEVfQ0VMTFMsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBwb3BBbGxVcFRvSHRtbEVsZW1lbnQoKSB7XG4gICAgICAgIC8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB0aGUgcm9vdCA8aHRtbD4gZWxlbWVudCBpcyBhbHdheXMgZmlyc3QgaW4gdGhlIG9wZW4gZWxlbWVudCBzdGFjaywgc29cbiAgICAgICAgLy93ZSBwZXJmb3JtIHRoaXMgZmFzdCBzdGFjayBjbGVhbiB1cC5cbiAgICAgICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCgxKTtcbiAgICB9XG4gICAgX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgbmFtZXNwYWNlKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHRhZ05hbWVzLmluY2x1ZGVzKHRoaXMudGFnSURzW2ldKSAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKSA9PT0gbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBjbGVhckJhY2tUbyh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCArIDEpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX0JPRFlfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX1JPV19DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcmVtb3ZlKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICBpZiAoaWR4ID09PSB0aGlzLnN0YWNrVG9wKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdJRHMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFja1RvcC0tO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChlbGVtZW50LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TZWFyY2hcbiAgICB0cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpIHtcbiAgICAgICAgLy9Qcm9wZXJseSBuZXN0ZWQgPGJvZHk+IGVsZW1lbnQgKHNob3VsZCBiZSBzZWNvbmQgZWxlbWVudCBpbiBzdGFjaykuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID49IDEgJiYgdGhpcy50YWdJRHNbMV0gPT09ICQuQk9EWSA/IHRoaXMuaXRlbXNbMV0gOiBudWxsO1xuICAgIH1cbiAgICBjb250YWlucyhlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmRleE9mKGVsZW1lbnQpID4gLTE7XG4gICAgfVxuICAgIGdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudElkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCkgLSAxO1xuICAgICAgICByZXR1cm4gZWxlbWVudElkeCA+PSAwID8gdGhpcy5pdGVtc1tlbGVtZW50SWR4XSA6IG51bGw7XG4gICAgfVxuICAgIGlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy50YWdJRHNbMF0gPT09ICQuSFRNTDtcbiAgICB9XG4gICAgLy9FbGVtZW50IGluIHNjb3BlXG4gICAgaGFzSW5TY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc051bWJlcmVkSGVhZGVySW5TY29wZSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChpc051bWJlcmVkSGVhZGVyKHRuKSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVF9OUy5nZXQodG4pID09PSBucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5MaXN0SXRlbVNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCgodG4gPT09ICQuVUwgfHwgdG4gPT09ICQuT0wpICYmIG5zID09PSBOUy5IVE1MKSB8fCBTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luQnV0dG9uU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKHRuID09PSAkLkJVVFRPTiAmJiBucyA9PT0gTlMuSFRNTCkgfHwgU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblRhYmxlU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5URU1QTEFURSB8fCB0biA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVEZPT1QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblNlbGVjdFNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChucyAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gIT09ICQuT1BUSU9OICYmIHRuICE9PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvL0ltcGxpZWQgZW5kIHRhZ3NcbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkge1xuICAgICAgICB3aGlsZSAoSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRC5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3NUaG9yb3VnaGx5KCkge1xuICAgICAgICB3aGlsZSAoSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZLmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oZXhjbHVzaW9uSWQpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuY3VycmVudFRhZ0lkICE9PSBleGNsdXNpb25JZCAmJiBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9wZW4tZWxlbWVudC1zdGFjay5qcy5tYXAiLCAiLy9Db25zdFxuY29uc3QgTk9BSF9BUktfQ0FQQUNJVFkgPSAzO1xuZXhwb3J0IHZhciBFbnRyeVR5cGU7XG4oZnVuY3Rpb24gKEVudHJ5VHlwZSkge1xuICAgIEVudHJ5VHlwZVtFbnRyeVR5cGVbXCJNYXJrZXJcIl0gPSAwXSA9IFwiTWFya2VyXCI7XG4gICAgRW50cnlUeXBlW0VudHJ5VHlwZVtcIkVsZW1lbnRcIl0gPSAxXSA9IFwiRWxlbWVudFwiO1xufSkoRW50cnlUeXBlID0gRW50cnlUeXBlIHx8IChFbnRyeVR5cGUgPSB7fSkpO1xuY29uc3QgTUFSS0VSID0geyB0eXBlOiBFbnRyeVR5cGUuTWFya2VyIH07XG4vL0xpc3Qgb2YgZm9ybWF0dGluZyBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIEZvcm1hdHRpbmdFbGVtZW50TGlzdCB7XG4gICAgY29uc3RydWN0b3IodHJlZUFkYXB0ZXIpIHtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5ib29rbWFyayA9IG51bGw7XG4gICAgfVxuICAgIC8vTm9haCBBcmsncyBjb25kaXRpb25cbiAgICAvL09QVElNSVpBVElPTjogYXQgZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgcG9zc2libGUgY2FuZGlkYXRlcyBmb3IgZXhjbHVzaW9uIHVzaW5nXG4gICAgLy9saWdodHdlaWdodCBoZXVyaXN0aWNzIHdpdGhvdXQgdGhvcm91Z2ggYXR0cmlidXRlcyBjaGVjay5cbiAgICBfZ2V0Tm9haEFya0NvbmRpdGlvbkNhbmRpZGF0ZXMobmV3RWxlbWVudCwgbmVBdHRycykge1xuICAgICAgICBjb25zdCBjYW5kaWRhdGVzID0gW107XG4gICAgICAgIGNvbnN0IG5lQXR0cnNMZW5ndGggPSBuZUF0dHJzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbmVUYWdOYW1lID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5ld0VsZW1lbnQpO1xuICAgICAgICBjb25zdCBuZU5hbWVzcGFjZVVSSSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5ld0VsZW1lbnQpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmVudHJpZXNbaV07XG4gICAgICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLk1hcmtlcikge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBlbGVtZW50IH0gPSBlbnRyeTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IG5lVGFnTmFtZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBuZU5hbWVzcGFjZVVSSSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRBdHRycy5sZW5ndGggPT09IG5lQXR0cnNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5wdXNoKHsgaWR4OiBpLCBhdHRyczogZWxlbWVudEF0dHJzIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FuZGlkYXRlcztcbiAgICB9XG4gICAgX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24obmV3RWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5lbnRyaWVzLmxlbmd0aCA8IE5PQUhfQVJLX0NBUEFDSVRZKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZUF0dHJzID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChuZXdFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IHRoaXMuX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQsIG5lQXR0cnMpO1xuICAgICAgICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy9OT1RFOiBidWlsZCBhdHRycyBtYXAgZm9yIHRoZSBuZXcgZWxlbWVudCwgc28gd2UgY2FuIHBlcmZvcm0gZmFzdCBsb29rdXBzXG4gICAgICAgIGNvbnN0IG5lQXR0cnNNYXAgPSBuZXcgTWFwKG5lQXR0cnMubWFwKChuZUF0dHIpID0+IFtuZUF0dHIubmFtZSwgbmVBdHRyLnZhbHVlXSkpO1xuICAgICAgICBsZXQgdmFsaWRDYW5kaWRhdGVzID0gMDtcbiAgICAgICAgLy9OT1RFOiByZW1vdmUgYm90dG9tbW9zdCBjYW5kaWRhdGVzLCB1bnRpbCBOb2FoJ3MgQXJrIGNvbmRpdGlvbiB3aWxsIG5vdCBiZSBtZXRcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYW5kaWRhdGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSBjYW5kaWRhdGVzW2ldO1xuICAgICAgICAgICAgLy8gV2Uga25vdyB0aGF0IGBjYW5kaWRhdGUuYXR0cnMubGVuZ3RoID09PSBuZUF0dHJzLmxlbmd0aGBcbiAgICAgICAgICAgIGlmIChjYW5kaWRhdGUuYXR0cnMuZXZlcnkoKGNBdHRyKSA9PiBuZUF0dHJzTWFwLmdldChjQXR0ci5uYW1lKSA9PT0gY0F0dHIudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRDYW5kaWRhdGVzICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkQ2FuZGlkYXRlcyA+PSBOT0FIX0FSS19DQVBBQ0lUWSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGNhbmRpZGF0ZS5pZHgsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL011dGF0aW9uc1xuICAgIGluc2VydE1hcmtlcigpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVuc2hpZnQoTUFSS0VSKTtcbiAgICB9XG4gICAgcHVzaEVsZW1lbnQoZWxlbWVudCwgdG9rZW4pIHtcbiAgICAgICAgdGhpcy5fZW5zdXJlTm9haEFya0NvbmRpdGlvbihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVuc2hpZnQoe1xuICAgICAgICAgICAgdHlwZTogRW50cnlUeXBlLkVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhlbGVtZW50LCB0b2tlbikge1xuICAgICAgICBjb25zdCBib29rbWFya0lkeCA9IHRoaXMuZW50cmllcy5pbmRleE9mKHRoaXMuYm9va21hcmspO1xuICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGJvb2ttYXJrSWR4LCAwLCB7XG4gICAgICAgICAgICB0eXBlOiBFbnRyeVR5cGUuRWxlbWVudCxcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbW92ZUVudHJ5KGVudHJ5KSB7XG4gICAgICAgIGNvbnN0IGVudHJ5SW5kZXggPSB0aGlzLmVudHJpZXMuaW5kZXhPZihlbnRyeSk7XG4gICAgICAgIGlmIChlbnRyeUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoZW50cnlJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBsaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHMgdXAgdG8gdGhlIGxhc3QgbWFya2VyLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjY2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyXG4gICAgICovXG4gICAgY2xlYXJUb0xhc3RNYXJrZXIoKSB7XG4gICAgICAgIGNvbnN0IG1hcmtlcklkeCA9IHRoaXMuZW50cmllcy5pbmRleE9mKE1BUktFUik7XG4gICAgICAgIGlmIChtYXJrZXJJZHggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZSgwLCBtYXJrZXJJZHggKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5sZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vU2VhcmNoXG4gICAgZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKHRhZ05hbWUpIHtcbiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIgfHwgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVudHJ5LmVsZW1lbnQpID09PSB0YWdOYW1lKTtcbiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5FbGVtZW50ID8gZW50cnkgOiBudWxsO1xuICAgIH1cbiAgICBnZXRFbGVtZW50RW50cnkoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuRWxlbWVudCAmJiBlbnRyeS5lbGVtZW50ID09PSBlbGVtZW50KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcy5tYXAiLCAiaW1wb3J0IHsgRE9DVU1FTlRfTU9ERSB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbm9kZU5hbWU6ICcjdGV4dCcsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgZGVmYXVsdFRyZWVBZGFwdGVyID0ge1xuICAgIC8vTm9kZSBjb25zdHJ1Y3Rpb25cbiAgICBjcmVhdGVEb2N1bWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50JyxcbiAgICAgICAgICAgIG1vZGU6IERPQ1VNRU5UX01PREUuTk9fUVVJUktTLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQtZnJhZ21lbnQnLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgYXR0cnMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiB0YWdOYW1lLFxuICAgICAgICAgICAgdGFnTmFtZSxcbiAgICAgICAgICAgIGF0dHJzLFxuICAgICAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlQ29tbWVudE5vZGUoZGF0YSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjY29tbWVudCcsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIC8vVHJlZSBtdXRhdGlvblxuICAgIGFwcGVuZENoaWxkKHBhcmVudE5vZGUsIG5ld05vZGUpIHtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnB1c2gobmV3Tm9kZSk7XG4gICAgICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBpbnNlcnRpb25JZHggPSBwYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld05vZGUpO1xuICAgICAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgc2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlRWxlbWVudCwgY29udGVudEVsZW1lbnQpIHtcbiAgICAgICAgdGVtcGxhdGVFbGVtZW50LmNvbnRlbnQgPSBjb250ZW50RWxlbWVudDtcbiAgICB9LFxuICAgIGdldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlRWxlbWVudC5jb250ZW50O1xuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRUeXBlKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICAgICAgY29uc3QgZG9jdHlwZU5vZGUgPSBkb2N1bWVudC5jaGlsZE5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJyk7XG4gICAgICAgIGlmIChkb2N0eXBlTm9kZSkge1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUubmFtZSA9IG5hbWU7XG4gICAgICAgICAgICBkb2N0eXBlTm9kZS5wdWJsaWNJZCA9IHB1YmxpY0lkO1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUuc3lzdGVtSWQgPSBzeXN0ZW1JZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHB1YmxpY0lkLFxuICAgICAgICAgICAgICAgIHN5c3RlbUlkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LCBub2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50LCBtb2RlKSB7XG4gICAgICAgIGRvY3VtZW50Lm1vZGUgPSBtb2RlO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5tb2RlO1xuICAgIH0sXG4gICAgZGV0YWNoTm9kZShub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2Yobm9kZSk7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGluc2VydFRleHQocGFyZW50Tm9kZSwgdGV4dCkge1xuICAgICAgICBpZiAocGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50Tm9kZSwgY3JlYXRlVGV4dE5vZGUodGV4dCkpO1xuICAgIH0sXG4gICAgaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnROb2RlLCB0ZXh0LCByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpIC0gMV07XG4gICAgICAgIGlmIChwcmV2Tm9kZSAmJiBkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgIHByZXZOb2RlLnZhbHVlICs9IHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpLCByZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRvcHRBdHRyaWJ1dGVzKHJlY2lwaWVudCwgYXR0cnMpIHtcbiAgICAgICAgY29uc3QgcmVjaXBpZW50QXR0cnNNYXAgPSBuZXcgU2V0KHJlY2lwaWVudC5hdHRycy5tYXAoKGF0dHIpID0+IGF0dHIubmFtZSkpO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBpZiAoIXJlY2lwaWVudEF0dHJzTWFwLmhhcyhhdHRyc1tqXS5uYW1lKSkge1xuICAgICAgICAgICAgICAgIHJlY2lwaWVudC5hdHRycy5wdXNoKGF0dHJzW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy9UcmVlIHRyYXZlcnNpbmdcbiAgICBnZXRGaXJzdENoaWxkKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGROb2Rlc1swXTtcbiAgICB9LFxuICAgIGdldENoaWxkTm9kZXMobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzO1xuICAgIH0sXG4gICAgZ2V0UGFyZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLnBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBnZXRBdHRyTGlzdChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmF0dHJzO1xuICAgIH0sXG4gICAgLy9Ob2RlIGRhdGFcbiAgICBnZXRUYWdOYW1lKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQudGFnTmFtZTtcbiAgICB9LFxuICAgIGdldE5hbWVzcGFjZVVSSShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50Lm5hbWVzcGFjZVVSSTtcbiAgICB9LFxuICAgIGdldFRleHROb2RlQ29udGVudCh0ZXh0Tm9kZSkge1xuICAgICAgICByZXR1cm4gdGV4dE5vZGUudmFsdWU7XG4gICAgfSxcbiAgICBnZXRDb21tZW50Tm9kZUNvbnRlbnQoY29tbWVudE5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGNvbW1lbnROb2RlLmRhdGE7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlTmFtZShkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUubmFtZTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVQdWJsaWNJZChkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUucHVibGljSWQ7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnN5c3RlbUlkO1xuICAgIH0sXG4gICAgLy9Ob2RlIHR5cGVzXG4gICAgaXNUZXh0Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI3RleHQnO1xuICAgIH0sXG4gICAgaXNDb21tZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2NvbW1lbnQnO1xuICAgIH0sXG4gICAgaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJztcbiAgICB9LFxuICAgIGlzRWxlbWVudE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUsICd0YWdOYW1lJyk7XG4gICAgfSxcbiAgICAvLyBTb3VyY2UgY29kZSBsb2NhdGlvblxuICAgIHNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSwgbG9jYXRpb24pIHtcbiAgICAgICAgbm9kZS5zb3VyY2VDb2RlTG9jYXRpb24gPSBsb2NhdGlvbjtcbiAgICB9LFxuICAgIGdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5zb3VyY2VDb2RlTG9jYXRpb247XG4gICAgfSxcbiAgICB1cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUsIGVuZExvY2F0aW9uKSB7XG4gICAgICAgIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uID0geyAuLi5ub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiwgLi4uZW5kTG9jYXRpb24gfTtcbiAgICB9LFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQuanMubWFwIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9Db25zdFxuY29uc3QgVkFMSURfRE9DVFlQRV9OQU1FID0gJ2h0bWwnO1xuY29uc3QgVkFMSURfU1lTVEVNX0lEID0gJ2Fib3V0OmxlZ2FjeS1jb21wYXQnO1xuY29uc3QgUVVJUktTX01PREVfU1lTVEVNX0lEID0gJ2h0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQnO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgICcrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy8nLFxuICAgICctLy9hcy8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy8nLFxuICAgICctLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMiBmaW5hbC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbWV0cml1cy8vZHRkIG1ldHJpdXMgcHJlc2VudGF0aW9uYWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCB0YWJsZXMvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCB0YWJsZXMvLycsXG4gICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBzdHJpY3QgaHRtbC8vJyxcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCAyLjAvL1wiLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIGV4dGVuZGVkIDEuMC8vXCIsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgcmVsYXhlZCAxLjAvL1wiLFxuICAgICctLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vc29mdHF1YWQgc29mdHdhcmUvL2R0ZCBob3RtZXRhbCBwcm8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc29mdHF1YWQvL2R0ZCBob3RtZXRhbCBwcm8gNC4wOjoxOTk3MTAxMDo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc3B5Z2xhc3MvL2R0ZCBodG1sIDIuMCBleHRlbmRlZC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgaHRtbC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgc3RyaWN0IGh0bWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMyAxOTk1LTAzLTI0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMiBkcmFmdC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIgZmluYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMnMgZHJhZnQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDE5OTYwNzEyLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCA5NzA0MjEvLycsXG4gICAgJy0vL3czYy8vZHRkIHczIGh0bWwvLycsXG4gICAgJy0vL3czby8vZHRkIHczIGh0bWwgMy4wLy8nLFxuICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbCAyLjAvLycsXG4gICAgJy0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sLy8nLFxuXTtcbmNvbnN0IFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEUyA9IG5ldyBTZXQoW1xuICAgICctLy93M28vL2R0ZCB3MyBodG1sIHN0cmljdCAzLjAvL2VuLy8nLFxuICAgICctL3czYy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsL2VuJyxcbiAgICAnaHRtbCcsXG5dKTtcbmNvbnN0IExJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFsnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIGZyYW1lc2V0Ly8nLCAnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIHRyYW5zaXRpb25hbC8vJ107XG5jb25zdCBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuLy9VdGlsc1xuZnVuY3Rpb24gaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykge1xuICAgIHJldHVybiBwcmVmaXhlcy5zb21lKChwcmVmaXgpID0+IHB1YmxpY0lkLnN0YXJ0c1dpdGgocHJlZml4KSk7XG59XG4vL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZm9ybWluZyh0b2tlbikge1xuICAgIHJldHVybiAodG9rZW4ubmFtZSA9PT0gVkFMSURfRE9DVFlQRV9OQU1FICYmXG4gICAgICAgIHRva2VuLnB1YmxpY0lkID09PSBudWxsICYmXG4gICAgICAgICh0b2tlbi5zeXN0ZW1JZCA9PT0gbnVsbCB8fCB0b2tlbi5zeXN0ZW1JZCA9PT0gVkFMSURfU1lTVEVNX0lEKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRNb2RlKHRva2VuKSB7XG4gICAgaWYgKHRva2VuLm5hbWUgIT09IFZBTElEX0RPQ1RZUEVfTkFNRSkge1xuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgfVxuICAgIGNvbnN0IHsgc3lzdGVtSWQgfSA9IHRva2VuO1xuICAgIGlmIChzeXN0ZW1JZCAmJiBzeXN0ZW1JZC50b0xvd2VyQ2FzZSgpID09PSBRVUlSS1NfTU9ERV9TWVNURU1fSUQpIHtcbiAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgIH1cbiAgICBsZXQgeyBwdWJsaWNJZCB9ID0gdG9rZW47XG4gICAgaWYgKHB1YmxpY0lkICE9PSBudWxsKSB7XG4gICAgICAgIHB1YmxpY0lkID0gcHVibGljSWQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFFVSVJLU19NT0RFX1BVQkxJQ19JRFMuaGFzKHB1YmxpY0lkKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVmaXhlcyA9IHN5c3RlbUlkID09PSBudWxsID8gUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA6IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUztcbiAgICAgICAgaWYgKGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgICAgIH1cbiAgICAgICAgcHJlZml4ZXMgPVxuICAgICAgICAgICAgc3lzdGVtSWQgPT09IG51bGwgPyBMSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMgOiBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVM7XG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTElNSVRFRF9RVUlSS1M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTk9fUVVJUktTO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZG9jdHlwZS5qcy5tYXAiLCAiaW1wb3J0IHsgVEFHX0lEIGFzICQsIE5TLCBBVFRSUywgZ2V0VGFnSUQgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9NSU1FIHR5cGVzXG5jb25zdCBNSU1FX1RZUEVTID0ge1xuICAgIFRFWFRfSFRNTDogJ3RleHQvaHRtbCcsXG4gICAgQVBQTElDQVRJT05fWE1MOiAnYXBwbGljYXRpb24veGh0bWwreG1sJyxcbn07XG4vL0F0dHJpYnV0ZXNcbmNvbnN0IERFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvbnVybCc7XG5jb25zdCBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb25VUkwnO1xuY29uc3QgU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgJ2F0dHJpYnV0ZU5hbWUnLFxuICAgICdhdHRyaWJ1dGVUeXBlJyxcbiAgICAnYmFzZUZyZXF1ZW5jeScsXG4gICAgJ2Jhc2VQcm9maWxlJyxcbiAgICAnY2FsY01vZGUnLFxuICAgICdjbGlwUGF0aFVuaXRzJyxcbiAgICAnZGlmZnVzZUNvbnN0YW50JyxcbiAgICAnZWRnZU1vZGUnLFxuICAgICdmaWx0ZXJVbml0cycsXG4gICAgJ2dseXBoUmVmJyxcbiAgICAnZ3JhZGllbnRUcmFuc2Zvcm0nLFxuICAgICdncmFkaWVudFVuaXRzJyxcbiAgICAna2VybmVsTWF0cml4JyxcbiAgICAna2VybmVsVW5pdExlbmd0aCcsXG4gICAgJ2tleVBvaW50cycsXG4gICAgJ2tleVNwbGluZXMnLFxuICAgICdrZXlUaW1lcycsXG4gICAgJ2xlbmd0aEFkanVzdCcsXG4gICAgJ2xpbWl0aW5nQ29uZUFuZ2xlJyxcbiAgICAnbWFya2VySGVpZ2h0JyxcbiAgICAnbWFya2VyVW5pdHMnLFxuICAgICdtYXJrZXJXaWR0aCcsXG4gICAgJ21hc2tDb250ZW50VW5pdHMnLFxuICAgICdtYXNrVW5pdHMnLFxuICAgICdudW1PY3RhdmVzJyxcbiAgICAncGF0aExlbmd0aCcsXG4gICAgJ3BhdHRlcm5Db250ZW50VW5pdHMnLFxuICAgICdwYXR0ZXJuVHJhbnNmb3JtJyxcbiAgICAncGF0dGVyblVuaXRzJyxcbiAgICAncG9pbnRzQXRYJyxcbiAgICAncG9pbnRzQXRZJyxcbiAgICAncG9pbnRzQXRaJyxcbiAgICAncHJlc2VydmVBbHBoYScsXG4gICAgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nLFxuICAgICdwcmltaXRpdmVVbml0cycsXG4gICAgJ3JlZlgnLFxuICAgICdyZWZZJyxcbiAgICAncmVwZWF0Q291bnQnLFxuICAgICdyZXBlYXREdXInLFxuICAgICdyZXF1aXJlZEV4dGVuc2lvbnMnLFxuICAgICdyZXF1aXJlZEZlYXR1cmVzJyxcbiAgICAnc3BlY3VsYXJDb25zdGFudCcsXG4gICAgJ3NwZWN1bGFyRXhwb25lbnQnLFxuICAgICdzcHJlYWRNZXRob2QnLFxuICAgICdzdGFydE9mZnNldCcsXG4gICAgJ3N0ZERldmlhdGlvbicsXG4gICAgJ3N0aXRjaFRpbGVzJyxcbiAgICAnc3VyZmFjZVNjYWxlJyxcbiAgICAnc3lzdGVtTGFuZ3VhZ2UnLFxuICAgICd0YWJsZVZhbHVlcycsXG4gICAgJ3RhcmdldFgnLFxuICAgICd0YXJnZXRZJyxcbiAgICAndGV4dExlbmd0aCcsXG4gICAgJ3ZpZXdCb3gnLFxuICAgICd2aWV3VGFyZ2V0JyxcbiAgICAneENoYW5uZWxTZWxlY3RvcicsXG4gICAgJ3lDaGFubmVsU2VsZWN0b3InLFxuICAgICd6b29tQW5kUGFuJyxcbl0ubWFwKChhdHRyKSA9PiBbYXR0ci50b0xvd2VyQ2FzZSgpLCBhdHRyXSkpO1xuY29uc3QgWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgWyd4bGluazphY3R1YXRlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhY3R1YXRlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOmFyY3JvbGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FyY3JvbGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6aHJlZicsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnaHJlZicsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpyb2xlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnNob3cnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3Nob3cnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6dGl0bGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3RpdGxlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnR5cGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3R5cGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneG1sOmJhc2UnLCB7IHByZWZpeDogJ3htbCcsIG5hbWU6ICdiYXNlJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWw6bGFuZycsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ2xhbmcnLCBuYW1lc3BhY2U6IE5TLlhNTCB9XSxcbiAgICBbJ3htbDpzcGFjZScsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ3NwYWNlJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWxucycsIHsgcHJlZml4OiAnJywgbmFtZTogJ3htbG5zJywgbmFtZXNwYWNlOiBOUy5YTUxOUyB9XSxcbiAgICBbJ3htbG5zOnhsaW5rJywgeyBwcmVmaXg6ICd4bWxucycsIG5hbWU6ICd4bGluaycsIG5hbWVzcGFjZTogTlMuWE1MTlMgfV0sXG5dKTtcbi8vU1ZHIHRhZyBuYW1lcyBhZGp1c3RtZW50IG1hcFxuZXhwb3J0IGNvbnN0IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAgPSBuZXcgTWFwKFtcbiAgICAnYWx0R2x5cGgnLFxuICAgICdhbHRHbHlwaERlZicsXG4gICAgJ2FsdEdseXBoSXRlbScsXG4gICAgJ2FuaW1hdGVDb2xvcicsXG4gICAgJ2FuaW1hdGVNb3Rpb24nLFxuICAgICdhbmltYXRlVHJhbnNmb3JtJyxcbiAgICAnY2xpcFBhdGgnLFxuICAgICdmZUJsZW5kJyxcbiAgICAnZmVDb2xvck1hdHJpeCcsXG4gICAgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAgICdmZUNvbXBvc2l0ZScsXG4gICAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAgICdmZURpZmZ1c2VMaWdodGluZycsXG4gICAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgICAnZmVEaXN0YW50TGlnaHQnLFxuICAgICdmZUZsb29kJyxcbiAgICAnZmVGdW5jQScsXG4gICAgJ2ZlRnVuY0InLFxuICAgICdmZUZ1bmNHJyxcbiAgICAnZmVGdW5jUicsXG4gICAgJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgICAnZmVJbWFnZScsXG4gICAgJ2ZlTWVyZ2UnLFxuICAgICdmZU1lcmdlTm9kZScsXG4gICAgJ2ZlTW9ycGhvbG9neScsXG4gICAgJ2ZlT2Zmc2V0JyxcbiAgICAnZmVQb2ludExpZ2h0JyxcbiAgICAnZmVTcGVjdWxhckxpZ2h0aW5nJyxcbiAgICAnZmVTcG90TGlnaHQnLFxuICAgICdmZVRpbGUnLFxuICAgICdmZVR1cmJ1bGVuY2UnLFxuICAgICdmb3JlaWduT2JqZWN0JyxcbiAgICAnZ2x5cGhSZWYnLFxuICAgICdsaW5lYXJHcmFkaWVudCcsXG4gICAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgICAndGV4dFBhdGgnLFxuXS5tYXAoKHRuKSA9PiBbdG4udG9Mb3dlckNhc2UoKSwgdG5dKSk7XG4vL1RhZ3MgdGhhdCBjYXVzZXMgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudFxuY29uc3QgRVhJVFNfRk9SRUlHTl9DT05URU5UID0gbmV3IFNldChbXG4gICAgJC5CLFxuICAgICQuQklHLFxuICAgICQuQkxPQ0tRVU9URSxcbiAgICAkLkJPRFksXG4gICAgJC5CUixcbiAgICAkLkNFTlRFUixcbiAgICAkLkNPREUsXG4gICAgJC5ERCxcbiAgICAkLkRJVixcbiAgICAkLkRMLFxuICAgICQuRFQsXG4gICAgJC5FTSxcbiAgICAkLkVNQkVELFxuICAgICQuSDEsXG4gICAgJC5IMixcbiAgICAkLkgzLFxuICAgICQuSDQsXG4gICAgJC5INSxcbiAgICAkLkg2LFxuICAgICQuSEVBRCxcbiAgICAkLkhSLFxuICAgICQuSSxcbiAgICAkLklNRyxcbiAgICAkLkxJLFxuICAgICQuTElTVElORyxcbiAgICAkLk1FTlUsXG4gICAgJC5NRVRBLFxuICAgICQuTk9CUixcbiAgICAkLk9MLFxuICAgICQuUCxcbiAgICAkLlBSRSxcbiAgICAkLlJVQlksXG4gICAgJC5TLFxuICAgICQuU01BTEwsXG4gICAgJC5TUEFOLFxuICAgICQuU1RST05HLFxuICAgICQuU1RSSUtFLFxuICAgICQuU1VCLFxuICAgICQuU1VQLFxuICAgICQuVEFCTEUsXG4gICAgJC5UVCxcbiAgICAkLlUsXG4gICAgJC5VTCxcbiAgICAkLlZBUixcbl0pO1xuLy9DaGVjayBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5leHBvcnQgZnVuY3Rpb24gY2F1c2VzRXhpdChzdGFydFRhZ1Rva2VuKSB7XG4gICAgY29uc3QgdG4gPSBzdGFydFRhZ1Rva2VuLnRhZ0lEO1xuICAgIGNvbnN0IGlzRm9udFdpdGhBdHRycyA9IHRuID09PSAkLkZPTlQgJiZcbiAgICAgICAgc3RhcnRUYWdUb2tlbi5hdHRycy5zb21lKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gQVRUUlMuQ09MT1IgfHwgbmFtZSA9PT0gQVRUUlMuU0laRSB8fCBuYW1lID09PSBBVFRSUy5GQUNFKTtcbiAgICByZXR1cm4gaXNGb250V2l0aEF0dHJzIHx8IEVYSVRTX0ZPUkVJR05fQ09OVEVOVC5oYXModG4pO1xufVxuLy9Ub2tlbiBhZGp1c3RtZW50c1xuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0b2tlbi5hdHRyc1tpXS5uYW1lID09PSBERUZJTklUSU9OX1VSTF9BVFRSKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkQXR0ck5hbWUgPSBTVkdfQVRUUlNfQURKVVNUTUVOVF9NQVAuZ2V0KHRva2VuLmF0dHJzW2ldLm5hbWUpO1xuICAgICAgICBpZiAoYWRqdXN0ZWRBdHRyTmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyTmFtZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhZGp1c3RlZEF0dHJFbnRyeSA9IFhNTF9BVFRSU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4uYXR0cnNbaV0ubmFtZSk7XG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJFbnRyeSkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ucHJlZml4ID0gYWRqdXN0ZWRBdHRyRW50cnkucHJlZml4O1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWU7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lc3BhY2UgPSBhZGp1c3RlZEF0dHJFbnRyeS5uYW1lc3BhY2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKSB7XG4gICAgY29uc3QgYWRqdXN0ZWRUYWdOYW1lID0gU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4udGFnTmFtZSk7XG4gICAgaWYgKGFkanVzdGVkVGFnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIHRva2VuLnRhZ05hbWUgPSBhZGp1c3RlZFRhZ05hbWU7XG4gICAgICAgIHRva2VuLnRhZ0lEID0gZ2V0VGFnSUQodG9rZW4udGFnTmFtZSk7XG4gICAgfVxufVxuLy9JbnRlZ3JhdGlvbiBwb2ludHNcbmZ1bmN0aW9uIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSB7XG4gICAgcmV0dXJuIG5zID09PSBOUy5NQVRITUwgJiYgKHRuID09PSAkLk1JIHx8IHRuID09PSAkLk1PIHx8IHRuID09PSAkLk1OIHx8IHRuID09PSAkLk1TIHx8IHRuID09PSAkLk1URVhUKTtcbn1cbmZ1bmN0aW9uIGlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycykge1xuICAgIGlmIChucyA9PT0gTlMuTUFUSE1MICYmIHRuID09PSAkLkFOTk9UQVRJT05fWE1MKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChhdHRyc1tpXS5uYW1lID09PSBBVFRSUy5FTkNPRElORykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXR0cnNbaV0udmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IE1JTUVfVFlQRVMuVEVYVF9IVE1MIHx8IHZhbHVlID09PSBNSU1FX1RZUEVTLkFQUExJQ0FUSU9OX1hNTDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnMgPT09IE5TLlNWRyAmJiAodG4gPT09ICQuRk9SRUlHTl9PQkpFQ1QgfHwgdG4gPT09ICQuREVTQyB8fCB0biA9PT0gJC5USVRMRSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMsIGZvcmVpZ25OUykge1xuICAgIHJldHVybiAoKCghZm9yZWlnbk5TIHx8IGZvcmVpZ25OUyA9PT0gTlMuSFRNTCkgJiYgaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSkgfHxcbiAgICAgICAgKCghZm9yZWlnbk5TIHx8IGZvcmVpZ25OUyA9PT0gTlMuTUFUSE1MKSAmJiBpc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KHRuLCBucykpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcmVpZ24tY29udGVudC5qcy5tYXAiLCAiaW1wb3J0IHsgVG9rZW5pemVyLCBUb2tlbml6ZXJNb2RlIH0gZnJvbSAnLi4vdG9rZW5pemVyL2luZGV4LmpzJztcbmltcG9ydCB7IE9wZW5FbGVtZW50U3RhY2sgfSBmcm9tICcuL29wZW4tZWxlbWVudC1zdGFjay5qcyc7XG5pbXBvcnQgeyBGb3JtYXR0aW5nRWxlbWVudExpc3QsIEVudHJ5VHlwZSB9IGZyb20gJy4vZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbmltcG9ydCAqIGFzIGRvY3R5cGUgZnJvbSAnLi4vY29tbW9uL2RvY3R5cGUuanMnO1xuaW1wb3J0ICogYXMgZm9yZWlnbkNvbnRlbnQgZnJvbSAnLi4vY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyc7XG5pbXBvcnQgeyBFUlIgfSBmcm9tICcuLi9jb21tb24vZXJyb3ItY29kZXMuanMnO1xuaW1wb3J0ICogYXMgdW5pY29kZSBmcm9tICcuLi9jb21tb24vdW5pY29kZS5qcyc7XG5pbXBvcnQgeyBUQUdfSUQgYXMgJCwgVEFHX05BTUVTIGFzIFROLCBOUywgQVRUUlMsIFNQRUNJQUxfRUxFTUVOVFMsIERPQ1VNRU5UX01PREUsIGlzTnVtYmVyZWRIZWFkZXIsIGdldFRhZ0lELCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmltcG9ydCB7IFRva2VuVHlwZSwgZ2V0VG9rZW5BdHRyLCB9IGZyb20gJy4uL2NvbW1vbi90b2tlbi5qcyc7XG4vL01pc2MgY29uc3RhbnRzXG5jb25zdCBISURERU5fSU5QVVRfVFlQRSA9ICdoaWRkZW4nO1xuLy9BZG9wdGlvbiBhZ2VuY3kgbG9vcHMgaXRlcmF0aW9uIGNvdW50XG5jb25zdCBBQV9PVVRFUl9MT09QX0lURVIgPSA4O1xuY29uc3QgQUFfSU5ORVJfTE9PUF9JVEVSID0gMztcbi8vSW5zZXJ0aW9uIG1vZGVzXG52YXIgSW5zZXJ0aW9uTW9kZTtcbihmdW5jdGlvbiAoSW5zZXJ0aW9uTW9kZSkge1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOSVRJQUxcIl0gPSAwXSA9IFwiSU5JVElBTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkJFRk9SRV9IVE1MXCJdID0gMV0gPSBcIkJFRk9SRV9IVE1MXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQkVGT1JFX0hFQURcIl0gPSAyXSA9IFwiQkVGT1JFX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9IRUFEXCJdID0gM10gPSBcIklOX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9IRUFEX05PX1NDUklQVFwiXSA9IDRdID0gXCJJTl9IRUFEX05PX1NDUklQVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0hFQURcIl0gPSA1XSA9IFwiQUZURVJfSEVBRFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0JPRFlcIl0gPSA2XSA9IFwiSU5fQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIlRFWFRcIl0gPSA3XSA9IFwiVEVYVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFXCJdID0gOF0gPSBcIklOX1RBQkxFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVfVEVYVFwiXSA9IDldID0gXCJJTl9UQUJMRV9URVhUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ0FQVElPTlwiXSA9IDEwXSA9IFwiSU5fQ0FQVElPTlwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NPTFVNTl9HUk9VUFwiXSA9IDExXSA9IFwiSU5fQ09MVU1OX0dST1VQXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVfQk9EWVwiXSA9IDEyXSA9IFwiSU5fVEFCTEVfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1JPV1wiXSA9IDEzXSA9IFwiSU5fUk9XXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ0VMTFwiXSA9IDE0XSA9IFwiSU5fQ0VMTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1NFTEVDVFwiXSA9IDE1XSA9IFwiSU5fU0VMRUNUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fU0VMRUNUX0lOX1RBQkxFXCJdID0gMTZdID0gXCJJTl9TRUxFQ1RfSU5fVEFCTEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9URU1QTEFURVwiXSA9IDE3XSA9IFwiSU5fVEVNUExBVEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9CT0RZXCJdID0gMThdID0gXCJBRlRFUl9CT0RZXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fRlJBTUVTRVRcIl0gPSAxOV0gPSBcIklOX0ZSQU1FU0VUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfRlJBTUVTRVRcIl0gPSAyMF0gPSBcIkFGVEVSX0ZSQU1FU0VUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQUZURVJfQk9EWVwiXSA9IDIxXSA9IFwiQUZURVJfQUZURVJfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0FGVEVSX0ZSQU1FU0VUXCJdID0gMjJdID0gXCJBRlRFUl9BRlRFUl9GUkFNRVNFVFwiO1xufSkoSW5zZXJ0aW9uTW9kZSB8fCAoSW5zZXJ0aW9uTW9kZSA9IHt9KSk7XG5jb25zdCBCQVNFX0xPQyA9IHtcbiAgICBzdGFydExpbmU6IC0xLFxuICAgIHN0YXJ0Q29sOiAtMSxcbiAgICBzdGFydE9mZnNldDogLTEsXG4gICAgZW5kTGluZTogLTEsXG4gICAgZW5kQ29sOiAtMSxcbiAgICBlbmRPZmZzZXQ6IC0xLFxufTtcbmNvbnN0IFRBQkxFX1NUUlVDVFVSRV9UQUdTID0gbmV3IFNldChbJC5UQUJMRSwgJC5UQk9EWSwgJC5URk9PVCwgJC5USEVBRCwgJC5UUl0pO1xuY29uc3QgZGVmYXVsdFBhcnNlck9wdGlvbnMgPSB7XG4gICAgc2NyaXB0aW5nRW5hYmxlZDogdHJ1ZSxcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiBmYWxzZSxcbiAgICB0cmVlQWRhcHRlcjogZGVmYXVsdFRyZWVBZGFwdGVyLFxuICAgIG9uUGFyc2VFcnJvcjogbnVsbCxcbn07XG4vL1BhcnNlclxuZXhwb3J0IGNsYXNzIFBhcnNlciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgZG9jdW1lbnQsIGZyYWdtZW50Q29udGV4dCA9IG51bGwsIHNjcmlwdEhhbmRsZXIgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0ID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICB0aGlzLnNjcmlwdEhhbmRsZXIgPSBzY3JpcHRIYW5kbGVyO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOSVRJQUw7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTklUSUFMO1xuICAgICAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IG51bGw7XG4gICAgICAgIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBub2RlIGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSBIVE1MIG5hbWVzcGFjZSAqL1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RJbkhUTUwgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSB0ZW1wbGF0ZSBpbnNlcnRpb24gbW9kZSBzdGFjayBpcyBtYWludGFpbmVkIGZyb20gdGhlIGxlZnQuXG4gICAgICAgICAqIEllLiB0aGUgdG9wbW9zdCBlbGVtZW50IHdpbGwgYWx3YXlzIGhhdmUgaW5kZXggMC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjayA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMgPSBbXTtcbiAgICAgICAgdGhpcy5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJhbWVzZXRPayA9IHRydWU7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UGFyc2VyT3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0aGlzLm9wdGlvbnMudHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMub25QYXJzZUVycm9yID0gdGhpcy5vcHRpb25zLm9uUGFyc2VFcnJvcjtcbiAgICAgICAgLy8gQWx3YXlzIGVuYWJsZSBsb2NhdGlvbiBpbmZvIGlmIHdlIHJlcG9ydCBwYXJzZSBlcnJvcnMuXG4gICAgICAgIGlmICh0aGlzLm9uUGFyc2VFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudCAhPT0gbnVsbCAmJiBkb2N1bWVudCAhPT0gdm9pZCAwID8gZG9jdW1lbnQgOiB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCk7XG4gICAgICAgIHRoaXMudG9rZW5pemVyID0gbmV3IFRva2VuaXplcih0aGlzLm9wdGlvbnMsIHRoaXMpO1xuICAgICAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodGhpcy50cmVlQWRhcHRlcik7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0SUQgPSBmcmFnbWVudENvbnRleHQgPyBnZXRUYWdJRCh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZnJhZ21lbnRDb250ZXh0KSkgOiAkLlVOS05PV047XG4gICAgICAgIHRoaXMuX3NldENvbnRleHRNb2RlcyhmcmFnbWVudENvbnRleHQgIT09IG51bGwgJiYgZnJhZ21lbnRDb250ZXh0ICE9PSB2b2lkIDAgPyBmcmFnbWVudENvbnRleHQgOiB0aGlzLmRvY3VtZW50LCB0aGlzLmZyYWdtZW50Q29udGV4dElEKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0aGlzLmRvY3VtZW50LCB0aGlzLnRyZWVBZGFwdGVyLCB0aGlzKTtcbiAgICB9XG4gICAgLy8gQVBJXG4gICAgc3RhdGljIHBhcnNlKGh0bWwsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IHRoaXMob3B0aW9ucyk7XG4gICAgICAgIHBhcnNlci50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBwYXJzZXIuZG9jdW1lbnQ7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRGcmFnbWVudFBhcnNlcihmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRQYXJzZXJPcHRpb25zLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgLy9OT1RFOiB1c2UgYSA8dGVtcGxhdGU+IGVsZW1lbnQgYXMgdGhlIGZyYWdtZW50IGNvbnRleHQgaWYgbm8gY29udGV4dCBlbGVtZW50IHdhcyBwcm92aWRlZCxcbiAgICAgICAgLy9zbyB3ZSB3aWxsIHBhcnNlIGluIGEgXCJmb3JnaXZpbmdcIiBtYW5uZXJcbiAgICAgICAgZnJhZ21lbnRDb250ZXh0ICE9PSBudWxsICYmIGZyYWdtZW50Q29udGV4dCAhPT0gdm9pZCAwID8gZnJhZ21lbnRDb250ZXh0IDogKGZyYWdtZW50Q29udGV4dCA9IG9wdHMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChUTi5URU1QTEFURSwgTlMuSFRNTCwgW10pKTtcbiAgICAgICAgLy9OT1RFOiBjcmVhdGUgYSBmYWtlIGVsZW1lbnQgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIHRoZSBgZG9jdW1lbnRgIGZvciBmcmFnbWVudCBwYXJzaW5nLlxuICAgICAgICAvL1RoaXMgaXMgaW1wb3J0YW50IGZvciBqc2RvbSwgd2hlcmUgYSBuZXcgYGRvY3VtZW50YCBjYW5ub3QgYmUgY3JlYXRlZC4gVGhpcyBsZWQgdG9cbiAgICAgICAgLy9mcmFnbWVudCBwYXJzaW5nIG1lc3Npbmcgd2l0aCB0aGUgbWFpbiBgZG9jdW1lbnRgLlxuICAgICAgICBjb25zdCBkb2N1bWVudE1vY2sgPSBvcHRzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJ2RvY3VtZW50bW9jaycsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IHRoaXMob3B0cywgZG9jdW1lbnRNb2NrLCBmcmFnbWVudENvbnRleHQpO1xuICAgICAgICBpZiAocGFyc2VyLmZyYWdtZW50Q29udGV4dElEID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICBwYXJzZXIudG1wbEluc2VydGlvbk1vZGVTdGFjay51bnNoaWZ0KEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEUpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlci5faW5pdFRva2VuaXplckZvckZyYWdtZW50UGFyc2luZygpO1xuICAgICAgICBwYXJzZXIuX2luc2VydEZha2VSb290RWxlbWVudCgpO1xuICAgICAgICBwYXJzZXIuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwYXJzZXIuX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQoKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlcjtcbiAgICB9XG4gICAgZ2V0RnJhZ21lbnQoKSB7XG4gICAgICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKHRoaXMuZG9jdW1lbnQpO1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLl9hZG9wdE5vZGVzKHJvb3RFbGVtZW50LCBmcmFnbWVudCk7XG4gICAgICAgIHJldHVybiBmcmFnbWVudDtcbiAgICB9XG4gICAgLy9FcnJvcnNcbiAgICBfZXJyKHRva2VuLCBjb2RlLCBiZWZvcmVUb2tlbikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghdGhpcy5vblBhcnNlRXJyb3IpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxvYyA9IChfYSA9IHRva2VuLmxvY2F0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBCQVNFX0xPQztcbiAgICAgICAgY29uc3QgZXJyID0ge1xuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIHN0YXJ0TGluZTogbG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgIHN0YXJ0Q29sOiBsb2Muc3RhcnRDb2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogbG9jLnN0YXJ0T2Zmc2V0LFxuICAgICAgICAgICAgZW5kTGluZTogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRMaW5lIDogbG9jLmVuZExpbmUsXG4gICAgICAgICAgICBlbmRDb2w6IGJlZm9yZVRva2VuID8gbG9jLnN0YXJ0Q29sIDogbG9jLmVuZENvbCxcbiAgICAgICAgICAgIGVuZE9mZnNldDogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRPZmZzZXQgOiBsb2MuZW5kT2Zmc2V0LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9uUGFyc2VFcnJvcihlcnIpO1xuICAgIH1cbiAgICAvL1N0YWNrIGV2ZW50c1xuICAgIG9uSXRlbVB1c2gobm9kZSwgdGlkLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1QdXNoKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgbm9kZSk7XG4gICAgICAgIGlmIChpc1RvcCAmJiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDApXG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMobm9kZSwgdGlkKTtcbiAgICB9XG4gICAgb25JdGVtUG9wKG5vZGUsIGlzVG9wKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy5fc2V0RW5kTG9jYXRpb24obm9kZSwgdGhpcy5jdXJyZW50VG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMudHJlZUFkYXB0ZXIpLm9uSXRlbVBvcCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIG5vZGUsIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQpO1xuICAgICAgICBpZiAoaXNUb3ApIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRUYWdJZDtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFnSWQgPSB0aGlzLmZyYWdtZW50Q29udGV4dElEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgKHsgY3VycmVudCwgY3VycmVudFRhZ0lkIH0gPSB0aGlzLm9wZW5FbGVtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMoY3VycmVudCwgY3VycmVudFRhZ0lkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc2V0Q29udGV4dE1vZGVzKGN1cnJlbnQsIHRpZCkge1xuICAgICAgICBjb25zdCBpc0hUTUwgPSBjdXJyZW50ID09PSB0aGlzLmRvY3VtZW50IHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpID09PSBOUy5IVE1MO1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RJbkhUTUwgPSAhaXNIVE1MO1xuICAgICAgICB0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlID0gIWlzSFRNTCAmJiAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgY3VycmVudCk7XG4gICAgfVxuICAgIF9zd2l0Y2hUb1RleHRQYXJzaW5nKGN1cnJlbnRUb2tlbiwgbmV4dFRva2VuaXplclN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoY3VycmVudFRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBuZXh0VG9rZW5pemVyU3RhdGU7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gdGhpcy5pbnNlcnRpb25Nb2RlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG4gICAgfVxuICAgIHN3aXRjaFRvUGxhaW50ZXh0UGFyc2luZygpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICB9XG4gICAgLy9GcmFnbWVudCBwYXJzaW5nXG4gICAgX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dFxuICAgICAgICAgICAgPyB0aGlzLmZyYWdtZW50Q29udGV4dFxuICAgICAgICAgICAgOiB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgIH1cbiAgICBfZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCgpIHtcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSkgPT09IFROLkZPUk0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbm9kZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKSB7XG4gICAgICAgIGlmICghdGhpcy5mcmFnbWVudENvbnRleHQgfHwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5mcmFnbWVudENvbnRleHQpICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmZyYWdtZW50Q29udGV4dElEKSB7XG4gICAgICAgICAgICBjYXNlICQuVElUTEU6XG4gICAgICAgICAgICBjYXNlICQuVEVYVEFSRUE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkNEQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICAgICAgY2FzZSAkLlhNUDpcbiAgICAgICAgICAgIGNhc2UgJC5JRlJBTUU6XG4gICAgICAgICAgICBjYXNlICQuTk9FTUJFRDpcbiAgICAgICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5SQVdURVhUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNDUklQVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5QTEFJTlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1RyZWUgbXV0YXRpb25cbiAgICBfc2V0RG9jdW1lbnRUeXBlKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0b2tlbi5uYW1lIHx8ICcnO1xuICAgICAgICBjb25zdCBwdWJsaWNJZCA9IHRva2VuLnB1YmxpY0lkIHx8ICcnO1xuICAgICAgICBjb25zdCBzeXN0ZW1JZCA9IHRva2VuLnN5c3RlbUlkIHx8ICcnO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldERvY3VtZW50VHlwZSh0aGlzLmRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xuICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50Q2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5kb2N1bWVudCk7XG4gICAgICAgICAgICBjb25zdCBkb2NUeXBlTm9kZSA9IGRvY3VtZW50Q2hpbGRyZW4uZmluZCgobm9kZSkgPT4gdGhpcy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpO1xuICAgICAgICAgICAgaWYgKGRvY1R5cGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGRvY1R5cGVOb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbG9jYXRpb24pIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICBjb25zdCBsb2MgPSBsb2NhdGlvbiAmJiB7XG4gICAgICAgICAgICAgICAgLi4ubG9jYXRpb24sXG4gICAgICAgICAgICAgICAgc3RhcnRUYWc6IGxvY2F0aW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBsb2MpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hcHBlbmRFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCB0b2tlbi5sb2NhdGlvbik7XG4gICAgfVxuICAgIF9pbnNlcnRFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdG9rZW4udGFnSUQpO1xuICAgIH1cbiAgICBfaW5zZXJ0RmFrZUVsZW1lbnQodGFnTmFtZSwgdGFnSUQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdGFnSUQpO1xuICAgIH1cbiAgICBfaW5zZXJ0VGVtcGxhdGUodG9rZW4pIHtcbiAgICAgICAgY29uc3QgdG1wbCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBOUy5IVE1MLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXRUZW1wbGF0ZUNvbnRlbnQodG1wbCwgY29udGVudCk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUodG1wbCwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKHRtcGwsIHRva2VuLnRhZ0lEKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKVxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGNvbnRlbnQsIG51bGwpO1xuICAgIH1cbiAgICBfaW5zZXJ0RmFrZVJvb3RFbGVtZW50KCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KFROLkhUTUwsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKVxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIG51bGwpO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsICQuSFRNTCk7XG4gICAgfVxuICAgIF9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnROb2RlID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVDb21tZW50Tm9kZSh0b2tlbi5kYXRhKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGNvbW1lbnROb2RlKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29tbWVudE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfaW5zZXJ0Q2hhcmFjdGVycyh0b2tlbikge1xuICAgICAgICBsZXQgcGFyZW50O1xuICAgICAgICBsZXQgYmVmb3JlRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpIHtcbiAgICAgICAgICAgICh7IHBhcmVudCwgYmVmb3JlRWxlbWVudCB9ID0gdGhpcy5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKGJlZm9yZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHRCZWZvcmUocGFyZW50LCB0b2tlbi5jaGFycywgYmVmb3JlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnRPck5vZGU7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0b2tlbi5sb2NhdGlvbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMocGFyZW50KTtcbiAgICAgICAgY29uc3QgdGV4dE5vZGVJZHggPSBiZWZvcmVFbGVtZW50ID8gc2libGluZ3MubGFzdEluZGV4T2YoYmVmb3JlRWxlbWVudCkgOiBzaWJsaW5ncy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHRleHROb2RlID0gc2libGluZ3NbdGV4dE5vZGVJZHggLSAxXTtcbiAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGEgbG9jYXRpb24gYXNzaWduZWQgYnkgYW5vdGhlciB0b2tlbiwgdGhlbiBqdXN0IHVwZGF0ZSB0aGUgZW5kIHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHRuTG9jID0gdGhpcy50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlKTtcbiAgICAgICAgaWYgKHRuTG9jKSB7XG4gICAgICAgICAgICBjb25zdCB7IGVuZExpbmUsIGVuZENvbCwgZW5kT2Zmc2V0IH0gPSB0b2tlbi5sb2NhdGlvbjtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIudXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXh0Tm9kZSwgeyBlbmRMaW5lLCBlbmRDb2wsIGVuZE9mZnNldCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2Fkb3B0Tm9kZXMoZG9ub3IsIHJlY2lwaWVudCkge1xuICAgICAgICBmb3IgKGxldCBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcik7IGNoaWxkOyBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcikpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShjaGlsZCk7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHJlY2lwaWVudCwgY2hpbGQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9zZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjbG9zaW5nVG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50KSAmJiBjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0TG9jID0gY2xvc2luZ1Rva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBlbmRMb2MgPSBcbiAgICAgICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmdcbiAgICAgICAgICAgIC8vIHRhZyBhbmQgZm9yIGNhc2VzIGxpa2UgPHRkPiA8cD4gPC90ZD4gLSAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nIHRhZy5cbiAgICAgICAgICAgIGNsb3NpbmdUb2tlbi50eXBlID09PSBUb2tlblR5cGUuRU5EX1RBRyAmJiB0biA9PT0gY2xvc2luZ1Rva2VuLnRhZ05hbWVcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kVGFnOiB7IC4uLmN0TG9jIH0sXG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLmVuZExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGVuZENvbDogY3RMb2MuZW5kQ29sLFxuICAgICAgICAgICAgICAgICAgICBlbmRPZmZzZXQ6IGN0TG9jLmVuZE9mZnNldCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kQ29sOiBjdExvYy5zdGFydENvbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0OiBjdExvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGVuZExvYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9Ub2tlbiBwcm9jZXNzaW5nXG4gICAgc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIC8vIENoZWNrIHRoYXQgbmVpdGhlciBjdXJyZW50ID09PSBkb2N1bWVudCwgb3IgbnMgPT09IE5TLkhUTUxcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnROb3RJbkhUTUwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICBsZXQgY3VycmVudFRhZ0lkO1xuICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgIGN1cnJlbnRUYWdJZCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAoeyBjdXJyZW50LCBjdXJyZW50VGFnSWQgfSA9IHRoaXMub3BlbkVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuU1ZHICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY3VycmVudCkgPT09IFROLkFOTk9UQVRJT05fWE1MICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgLy8gQ2hlY2sgdGhhdCBgY3VycmVudGAgaXMgbm90IGFuIGludGVncmF0aW9uIHBvaW50IGZvciBIVE1MIG9yIE1hdGhNTCBlbGVtZW50cy5cbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSB8fFxuICAgICAgICAgICAgLy8gSWYgaXQgX2lzXyBhbiBpbnRlZ3JhdGlvbiBwb2ludCwgdGhlbiB3ZSBtaWdodCBoYXZlIHRvIGNoZWNrIHRoYXQgaXQgaXMgbm90IGFuIEhUTUxcbiAgICAgICAgICAgIC8vIGludGVncmF0aW9uIHBvaW50LlxuICAgICAgICAgICAgKCh0b2tlbi50YWdJRCA9PT0gJC5NR0xZUEggfHwgdG9rZW4udGFnSUQgPT09ICQuTUFMSUdOTUFSSykgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnRUYWdJZCwgY3VycmVudCwgTlMuSFRNTCkpKTtcbiAgICB9XG4gICAgX3Byb2Nlc3NUb2tlbih0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTnVsbENoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuRE9DVFlQRToge1xuICAgICAgICAgICAgICAgIHRoaXMub25Eb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLlNUQVJUX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5FTkRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVuZFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW9mKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbldoaXRlc3BhY2VDaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vSW50ZWdyYXRpb24gcG9pbnRzXG4gICAgX2lzSW50ZWdyYXRpb25Qb2ludCh0aWQsIGVsZW1lbnQsIGZvcmVpZ25OUykge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBhdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBmb3JlaWduQ29udGVudC5pc0ludGVncmF0aW9uUG9pbnQodGlkLCBucywgYXR0cnMsIGZvcmVpZ25OUyk7XG4gICAgfVxuICAgIC8vQWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgcmVjb25zdHJ1Y3Rpb25cbiAgICBfcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IGxpc3RMZW5ndGggPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpc3RMZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKTtcbiAgICAgICAgICAgIGNvbnN0IHVub3BlbklkeCA9IGVuZEluZGV4IDwgMCA/IGxpc3RMZW5ndGggLSAxIDogZW5kSW5kZXggLSAxO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHVub3BlbklkeDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXNbaV07XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0RWxlbWVudChlbnRyeS50b2tlbiwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZW50cnkuZWxlbWVudCkpO1xuICAgICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vQ2xvc2UgZWxlbWVudHNcbiAgICBfY2xvc2VUYWJsZUNlbGwoKSB7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgfVxuICAgIF9jbG9zZVBFbGVtZW50KCkge1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlApO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5QKTtcbiAgICB9XG4gICAgLy9JbnNlcnRpb24gbW9kZXNcbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAvL0luc2VydGlvbiBtb2RlIHJlc2V0IG1hcFxuICAgICAgICAgICAgc3dpdGNoIChpID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0ID8gdGhpcy5mcmFnbWVudENvbnRleHRJRCA6IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5URk9PVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkNBUFRJT046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3QoaSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLmhlYWRFbGVtZW50ID8gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEIDogSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIH1cbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0KHNlbGVjdElkeCkge1xuICAgICAgICBpZiAoc2VsZWN0SWR4ID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHNlbGVjdElkeCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0biA9IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAodG4gPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUO1xuICAgIH1cbiAgICAvL0Zvc3RlciBwYXJlbnRpbmdcbiAgICBfaXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRuKSB7XG4gICAgICAgIHJldHVybiBUQUJMRV9TVFJVQ1RVUkVfVEFHUy5oYXModG4pO1xuICAgIH1cbiAgICBfc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgJiYgdGhpcy5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCk7XG4gICAgfVxuICAgIF9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW5FbGVtZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkob3BlbkVsZW1lbnQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQ6IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KG9wZW5FbGVtZW50KSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG9wZW5FbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50LCBiZWZvcmVFbGVtZW50OiBvcGVuRWxlbWVudCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaSAtIDFdLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICB9XG4gICAgX2Zvc3RlclBhcmVudEVsZW1lbnQoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpO1xuICAgICAgICBpZiAobG9jYXRpb24uYmVmb3JlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRCZWZvcmUobG9jYXRpb24ucGFyZW50LCBlbGVtZW50LCBsb2NhdGlvbi5iZWZvcmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQobG9jYXRpb24ucGFyZW50LCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NwZWNpYWwgZWxlbWVudHNcbiAgICBfaXNTcGVjaWFsRWxlbWVudChlbGVtZW50LCBpZCkge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gU1BFQ0lBTF9FTEVNRU5UU1tuc10uaGFzKGlkKTtcbiAgICB9XG4gICAgb25DaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUpIHtcbiAgICAgICAgICAgIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uTnVsbENoYXJhY3Rlcih0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkNvbW1lbnQodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5vdEluSFRNTCkge1xuICAgICAgICAgICAgYXBwZW5kQ29tbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkRvY3R5cGUodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgZG9jdHlwZUluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZERvY3R5cGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25TdGFydFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICB0aGlzLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcgJiYgIXRva2VuLmFja1NlbGZDbG9zaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIodG9rZW4sIEVSUi5ub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhIGdpdmVuIHN0YXJ0IHRhZy5cbiAgICAgKlxuICAgICAqIGBvblN0YXJ0VGFnYCBjaGVja3MgaWYgYSBzZWxmLWNsb3NpbmcgdGFnIHdhcyByZWNvZ25pemVkLiBXaGVuIGEgdG9rZW5cbiAgICAgKiBpcyBtb3ZlZCBpbmJldHdlZW4gbXVsdGlwbGUgaW5zZXJ0aW9uIG1vZGVzLCB0aGlzIGNoZWNrIGZvciBzZWxmLWNsb3NpbmdcbiAgICAgKiBjb3VsZCBsZWFkIHRvIGZhbHNlIHBvc2l0aXZlcy4gVG8gYXZvaWQgdGhpcywgYF9wcm9jZXNzU3RhcnRUYWdgIGlzIHVzZWRcbiAgICAgKiBmb3IgbmVzdGVkIGNhbGxzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRva2VuIFRoZSB0b2tlbiB0byBwcm9jZXNzLlxuICAgICAqL1xuICAgIF9wcm9jZXNzU3RhcnRUYWcodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSkge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc3RhcnRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0JlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNhcHRpb24odGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3codGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ2VsbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblNlbGVjdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblNlbGVjdEluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRlbXBsYXRlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkVuZFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Tm90SW5IVE1MKSB7XG4gICAgICAgICAgICBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdCZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5DYXB0aW9uKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZUJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luUm93KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5DZWxsKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblNlbGVjdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5TZWxlY3RJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5GcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uRW9mKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVvZkluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIGVvZkluVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW9mSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RvcFBhcnNpbmcodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbldoaXRlc3BhY2VDaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XG4gICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmNoYXJDb2RlQXQoMCkgPT09IHVuaWNvZGUuQ09ERV9QT0lOVFMuTElORV9GRUVEKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRva2VuLmNoYXJzID0gdG9rZW4uY2hhcnMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG59XG4vL0Fkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG1cbi8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNhZG9wdGlvbkFnZW5jeSlcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1N0ZXBzIDUtOCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4pIHtcbiAgICBsZXQgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0b2tlbi50YWdOYW1lKTtcbiAgICBpZiAoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgICAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG9rZW4udGFnSUQpKSB7XG4gICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0aW5nRWxlbWVudEVudHJ5O1xufVxuLy9TdGVwcyA5IGFuZCAxMCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYU9idGFpbkZ1cnRoZXN0QmxvY2socCwgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgIGxldCBmdXJ0aGVzdEJsb2NrID0gbnVsbDtcbiAgICBsZXQgaWR4ID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7XG4gICAgZm9yICg7IGlkeCA+PSAwOyBpZHgtLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaWR4XTtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgcC5vcGVuRWxlbWVudHMudGFnSURzW2lkeF0pKSB7XG4gICAgICAgICAgICBmdXJ0aGVzdEJsb2NrID0gZWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgfVxuICAgIHJldHVybiBmdXJ0aGVzdEJsb2NrO1xufVxuLy9TdGVwIDEzIG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5uZXJMb29wKHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50KSB7XG4gICAgbGV0IGxhc3RFbGVtZW50ID0gZnVydGhlc3RCbG9jaztcbiAgICBsZXQgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihmdXJ0aGVzdEJsb2NrKTtcbiAgICBmb3IgKGxldCBpID0gMCwgZWxlbWVudCA9IG5leHRFbGVtZW50OyBlbGVtZW50ICE9PSBmb3JtYXR0aW5nRWxlbWVudDsgaSsrLCBlbGVtZW50ID0gbmV4dEVsZW1lbnQpIHtcbiAgICAgICAgLy9OT1RFOiBzdG9yZSB0aGUgbmV4dCBlbGVtZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbiAoaXQgbWF5IGJlIGRlbGV0ZWQgZnJvbSB0aGUgc3RhY2sgYnkgc3RlcCA5LjUpXG4gICAgICAgIG5leHRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgY291bnRlck92ZXJmbG93ID0gZWxlbWVudEVudHJ5ICYmIGkgPj0gQUFfSU5ORVJfTE9PUF9JVEVSO1xuICAgICAgICBjb25zdCBzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzID0gIWVsZW1lbnRFbnRyeSB8fCBjb3VudGVyT3ZlcmZsb3c7XG4gICAgICAgIGlmIChzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzKSB7XG4gICAgICAgICAgICBpZiAoY291bnRlck92ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgaWYgKGxhc3RFbGVtZW50ID09PSBmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuYm9va21hcmsgPSBlbGVtZW50RW50cnk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChlbGVtZW50LCBsYXN0RWxlbWVudCk7XG4gICAgICAgICAgICBsYXN0RWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxhc3RFbGVtZW50O1xufVxuLy9TdGVwIDEzLjcgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KSB7XG4gICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChlbGVtZW50RW50cnkudG9rZW4udGFnTmFtZSwgbnMsIGVsZW1lbnRFbnRyeS50b2tlbi5hdHRycyk7XG4gICAgcC5vcGVuRWxlbWVudHMucmVwbGFjZShlbGVtZW50RW50cnkuZWxlbWVudCwgbmV3RWxlbWVudCk7XG4gICAgZWxlbWVudEVudHJ5LmVsZW1lbnQgPSBuZXdFbGVtZW50O1xuICAgIHJldHVybiBuZXdFbGVtZW50O1xufVxuLy9TdGVwIDE0IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCkge1xuICAgIGNvbnN0IHRuID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGNvbW1vbkFuY2VzdG9yKTtcbiAgICBjb25zdCB0aWQgPSBnZXRUYWdJRCh0bik7XG4gICAgaWYgKHAuX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0aWQpKSB7XG4gICAgICAgIHAuX2Zvc3RlclBhcmVudEVsZW1lbnQobGFzdEVsZW1lbnQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjb21tb25BbmNlc3Rvcik7XG4gICAgICAgIGlmICh0aWQgPT09ICQuVEVNUExBVEUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gcC50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQoY29tbW9uQW5jZXN0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoY29tbW9uQW5jZXN0b3IsIGxhc3RFbGVtZW50KTtcbiAgICB9XG59XG4vL1N0ZXBzIDE1LTE5IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICBjb25zdCBucyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgY29uc3QgeyB0b2tlbiB9ID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gcC50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5zLCB0b2tlbi5hdHRycyk7XG4gICAgcC5fYWRvcHROb2RlcyhmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcbiAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrKG5ld0VsZW1lbnQsIHRva2VuKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICBwLm9wZW5FbGVtZW50cy5pbnNlcnRBZnRlcihmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50LCB0b2tlbi50YWdJRCk7XG59XG4vL0FsZ29yaXRobSBlbnRyeSBwb2ludFxuZnVuY3Rpb24gY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBBQV9PVVRFUl9MT09QX0lURVI7IGkrKykge1xuICAgICAgICBjb25zdCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuKTtcbiAgICAgICAgaWYgKCFmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmdXJ0aGVzdEJsb2NrID0gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgICAgICBpZiAoIWZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbiAgICAgICAgY29uc3QgbGFzdEVsZW1lbnQgPSBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb21tb25BbmNlc3RvciA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7XG4gICAgICAgIGlmIChjb21tb25BbmNlc3RvcilcbiAgICAgICAgICAgIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgICAgIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbn1cbi8vR2VuZXJpYyB0b2tlbiBoYW5kbGVyc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlKTtcbn1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnRUb1Jvb3RIdG1sRWxlbWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5pdGVtc1swXSk7XG59XG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Eb2N1bWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLmRvY3VtZW50KTtcbn1cbmZ1bmN0aW9uIHN0b3BQYXJzaW5nKHAsIHRva2VuKSB7XG4gICAgcC5zdG9wcGVkID0gdHJ1ZTtcbiAgICAvLyBOT1RFOiBTZXQgZW5kIGxvY2F0aW9ucyBmb3IgZWxlbWVudHMgdGhhdCByZW1haW4gb24gdGhlIG9wZW4gZWxlbWVudCBzdGFjay5cbiAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgLy8gTk9URTogSWYgd2UgYXJlIG5vdCBpbiBhIGZyYWdtZW50LCBgaHRtbGAgYW5kIGBib2R5YCB3aWxsIHN0YXkgb24gdGhlIHN0YWNrLlxuICAgICAgICAvLyBUaGlzIGlzIGEgcHJvYmxlbSwgYXMgd2UgbWlnaHQgb3ZlcndyaXRlIHRoZWlyIGVuZCBwb3NpdGlvbiBoZXJlLlxuICAgICAgICBjb25zdCB0YXJnZXQgPSBwLmZyYWdtZW50Q29udGV4dCA/IDAgOiAyO1xuICAgICAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gdGFyZ2V0OyBpLS0pIHtcbiAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSGFuZGxlIGBodG1sYCBhbmQgYGJvZHlgXG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQgJiYgcC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1swXTtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxMb2NhdGlvbiA9IHAudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihodG1sRWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaHRtbExvY2F0aW9uICYmICFodG1sTG9jYXRpb24uZW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oaHRtbEVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzFdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5TG9jYXRpb24gPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oYm9keUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYm9keUxvY2F0aW9uICYmICFib2R5TG9jYXRpb24uZW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW5pdGlhbFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZG9jdHlwZUluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9zZXREb2N1bWVudFR5cGUodG9rZW4pO1xuICAgIGNvbnN0IG1vZGUgPSB0b2tlbi5mb3JjZVF1aXJrcyA/IERPQ1VNRU5UX01PREUuUVVJUktTIDogZG9jdHlwZS5nZXREb2N1bWVudE1vZGUodG9rZW4pO1xuICAgIGlmICghZG9jdHlwZS5pc0NvbmZvcm1pbmcodG9rZW4pKSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm5vbkNvbmZvcm1pbmdEb2N0eXBlKTtcbiAgICB9XG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgbW9kZSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDtcbn1cbmZ1bmN0aW9uIHRva2VuSW5Jbml0aWFsTW9kZShwLCB0b2tlbikge1xuICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3NpbmdEb2N0eXBlLCB0cnVlKTtcbiAgICBwLnRyZWVBZGFwdGVyLnNldERvY3VtZW50TW9kZShwLmRvY3VtZW50LCBET0NVTUVOVF9NT0RFLlFVSVJLUyk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYmVmb3JlIGh0bWxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdCZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuQlIpIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJiZWZvcmUgaGVhZFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkhFQUQgfHwgdG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkJSKSB7XG4gICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uSEVBRCwgJC5IRUFEKTtcbiAgICBwLmhlYWRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQToge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkNEQVRBKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TVFlMRToge1xuICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuU0NSSVBUX0RBVEEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRUZW1wbGF0ZSh0b2tlbik7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay51bnNoaWZ0KEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkJSOlxuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NUaG9yb3VnaGx5KCk7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgIT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnNoaWZ0KCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBoZWFkIG5vIHNjcmlwdFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5IRUFEOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNUWUxFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm5lc3RlZE5vc2NyaXB0SW5IZWFkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIGNvbnN0IGVyckNvZGUgPSB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuRU9GID8gRVJSLm9wZW5FbGVtZW50c0xlZnRBZnRlckVvZiA6IEVSUi5kaXNhbGxvd2VkQ29udGVudEluTm9zY3JpcHRJbkhlYWQ7XG4gICAgcC5fZXJyKHRva2VuLCBlcnJDb2RlKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImFmdGVyIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuYWJhbmRvbmVkSGVhZEVsZW1lbnRDaGlsZCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wdXNoKHAuaGVhZEVsZW1lbnQsICQuSEVBRCk7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUocC5oZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIubWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckhlYWQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQk9EWSwgJC5CT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBtb2RlSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgY2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgIGFwcGVuZENvbW1lbnQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5FTkRfVEFHOiB7XG4gICAgICAgICAgICBlbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuRU9GOiB7XG4gICAgICAgICAgICBlb2ZJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMocC5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBib2R5U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XG4gICAgaWYgKGJvZHlFbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMoYm9keUVsZW1lbnQsIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmcmFtZXNldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgIGlmIChwLmZyYW1lc2V0T2sgJiYgYm9keUVsZW1lbnQpIHtcbiAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGJvZHlFbGVtZW50KTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wQWxsVXBUb0h0bWxFbGVtZW50KCk7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyZWRIZWFkZXIocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZVxuICAgIC8vb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIHByZSBibG9ja3MgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5mb3JtRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZCA9IHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgaWYgKCh0biA9PT0gJC5MSSAmJiBlbGVtZW50SWQgPT09ICQuTEkpIHx8XG4gICAgICAgICAgICAoKHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUKSAmJiAoZWxlbWVudElkID09PSAkLkREIHx8IGVsZW1lbnRJZCA9PT0gJC5EVCkpKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihlbGVtZW50SWQpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKGVsZW1lbnRJZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudElkICE9PSAkLkFERFJFU1MgJiZcbiAgICAgICAgICAgIGVsZW1lbnRJZCAhPT0gJC5ESVYgJiZcbiAgICAgICAgICAgIGVsZW1lbnRJZCAhPT0gJC5QICYmXG4gICAgICAgICAgICBwLl9pc1NwZWNpYWxFbGVtZW50KHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLCBlbGVtZW50SWQpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xufVxuZnVuY3Rpb24gYnV0dG9uU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJVVFRPTikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5CVVRUT04pO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYWN0aXZlRWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKFROLkEpO1xuICAgIGlmIChhY3RpdmVFbGVtZW50RW50cnkpIHtcbiAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGFjdGl2ZUVsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoYWN0aXZlRWxlbWVudEVudHJ5KTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIG5vYnJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5OT0JSKSkge1xuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQpICE9PSBET0NVTUVOVF9NT0RFLlFVSVJLUyAmJiBwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xufVxuZnVuY3Rpb24gYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBpc0hpZGRlbklucHV0KHRva2VuKSB7XG4gICAgY29uc3QgaW5wdXRUeXBlID0gZ2V0VG9rZW5BdHRyKHRva2VuLCBBVFRSUy5UWVBFKTtcbiAgICByZXR1cm4gaW5wdXRUeXBlICE9IG51bGwgJiYgaW5wdXRUeXBlLnRvTG93ZXJDYXNlKCkgPT09IEhJRERFTl9JTlBVVF9UWVBFO1xufVxuZnVuY3Rpb24gaW5wdXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgaWYgKCFpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHRva2VuLnRhZ05hbWUgPSBUTi5JTUc7XG4gICAgdG9rZW4udGFnSUQgPSAkLklNRztcbiAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gdGV4dGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgdGV4dGFyZWEgZWxlbWVudHMgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJDREFUQTtcbiAgICBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHAuaW5zZXJ0aW9uTW9kZTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG59XG5mdW5jdGlvbiB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG5mdW5jdGlvbiBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG4vL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgd2UgYWx3YXlzIGFjdCBhcyBhbiB1c2VyIGFnZW50IHdpdGggZW5hYmxlZCBwbHVnaW5zLCBzbyB3ZSBwYXJzZVxuLy88bm9lbWJlZD4gYXMgcmF3dGV4dC5cbmZ1bmN0aW9uIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG5mdW5jdGlvbiBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID1cbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTiB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFkgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9ST1cgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMXG4gICAgICAgICAgICA/IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFXG4gICAgICAgICAgICA6IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUO1xufVxuZnVuY3Rpb24gb3B0Z3JvdXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLlJVQlkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuUlRDKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBtYXRoU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5NQVRITUwpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gc3ZnU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5TVkcpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSTpcbiAgICAgICAgY2FzZSAkLlM6XG4gICAgICAgIGNhc2UgJC5COlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLlNNQUxMOlxuICAgICAgICBjYXNlICQuU1RSSUtFOlxuICAgICAgICBjYXNlICQuU1RST05HOiB7XG4gICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkE6IHtcbiAgICAgICAgICAgIGFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSDE6XG4gICAgICAgIGNhc2UgJC5IMjpcbiAgICAgICAgY2FzZSAkLkgzOlxuICAgICAgICBjYXNlICQuSDQ6XG4gICAgICAgIGNhc2UgJC5INTpcbiAgICAgICAgY2FzZSAkLkg2OiB7XG4gICAgICAgICAgICBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOlxuICAgICAgICBjYXNlICQuREw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLlVMOlxuICAgICAgICBjYXNlICQuRElWOlxuICAgICAgICBjYXNlICQuRElSOlxuICAgICAgICBjYXNlICQuTkFWOlxuICAgICAgICBjYXNlICQuTUFJTjpcbiAgICAgICAgY2FzZSAkLk1FTlU6XG4gICAgICAgIGNhc2UgJC5BU0lERTpcbiAgICAgICAgY2FzZSAkLkNFTlRFUjpcbiAgICAgICAgY2FzZSAkLkZJR1VSRTpcbiAgICAgICAgY2FzZSAkLkZPT1RFUjpcbiAgICAgICAgY2FzZSAkLkhFQURFUjpcbiAgICAgICAgY2FzZSAkLkhHUk9VUDpcbiAgICAgICAgY2FzZSAkLkRJQUxPRzpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLlNFQ1RJT046XG4gICAgICAgIGNhc2UgJC5TVU1NQVJZOlxuICAgICAgICBjYXNlICQuRklFTERTRVQ6XG4gICAgICAgIGNhc2UgJC5CTE9DS1FVT1RFOlxuICAgICAgICBjYXNlICQuRklHQ0FQVElPTjoge1xuICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSTpcbiAgICAgICAgY2FzZSAkLkREOlxuICAgICAgICBjYXNlICQuRFQ6IHtcbiAgICAgICAgICAgIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOlxuICAgICAgICBjYXNlICQuSU1HOlxuICAgICAgICBjYXNlICQuV0JSOlxuICAgICAgICBjYXNlICQuQVJFQTpcbiAgICAgICAgY2FzZSAkLkVNQkVEOlxuICAgICAgICBjYXNlICQuS0VZR0VOOiB7XG4gICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhSOiB7XG4gICAgICAgICAgICBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5SQjpcbiAgICAgICAgY2FzZSAkLlJUQzoge1xuICAgICAgICAgICAgcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUlQ6XG4gICAgICAgIGNhc2UgJC5SUDoge1xuICAgICAgICAgICAgcnRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUFJFOlxuICAgICAgICBjYXNlICQuTElTVElORzoge1xuICAgICAgICAgICAgcHJlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlhNUDoge1xuICAgICAgICAgICAgeG1wU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNWRzoge1xuICAgICAgICAgICAgc3ZnU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5USVRMRTpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PQlI6IHtcbiAgICAgICAgICAgIG5vYnJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTUFUSDoge1xuICAgICAgICAgICAgbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSU5QVVQ6IHtcbiAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBBUkFNOlxuICAgICAgICBjYXNlICQuVFJBQ0s6XG4gICAgICAgIGNhc2UgJC5TT1VSQ0U6IHtcbiAgICAgICAgICAgIHBhcmFtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklNQUdFOiB7XG4gICAgICAgICAgICBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CVVRUT046IHtcbiAgICAgICAgICAgIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BUFBMRVQ6XG4gICAgICAgIGNhc2UgJC5PQkpFQ1Q6XG4gICAgICAgIGNhc2UgJC5NQVJRVUVFOiB7XG4gICAgICAgICAgICBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSUZSQU1FOiB7XG4gICAgICAgICAgICBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOlxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRU1CRUQ6IHtcbiAgICAgICAgICAgIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRSOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkZSQU1FOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIC8vTk9URTogPGJvZHk+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICAgICAgICAgIGlmIChib2R5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIGVuZFRhZ0FmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmb3JtRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBjb25zdCB7IGZvcm1FbGVtZW50IH0gPSBwO1xuICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKChmb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuRk9STSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBpZiAoaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuRk9STSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZm9ybUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5QLCAkLlApO1xuICAgIH1cbiAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG59XG5mdW5jdGlvbiBsaUVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luTGlzdEl0ZW1TY29wZSgkLkxJKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLkxJKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuTEkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJSLCAkLkJSKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ05hbWU7XG4gICAgY29uc3QgdGlkID0gdG9rZW4udGFnSUQ7XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAvLyBDb21wYXJlIHRoZSB0YWcgbmFtZSBoZXJlLCBhcyB0aGUgdGFnIG1pZ2h0IG5vdCBiZSBhIGtub3duIHRhZyB3aXRoIGFuIElELlxuICAgICAgICBpZiAodGlkID09PSBlbGVtZW50SWQgJiYgKHRpZCAhPT0gJC5VTktOT1dOIHx8IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gdG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0aWQpO1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IGkpXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgZWxlbWVudElkKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5BOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLk5PQlI6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOiB7XG4gICAgICAgICAgICBwRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuVUw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5CVVRUT046XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6XG4gICAgICAgIGNhc2UgJC5GSUVMRFNFVDpcbiAgICAgICAgY2FzZSAkLkJMT0NLUVVPVEU6XG4gICAgICAgIGNhc2UgJC5GSUdDQVBUSU9OOiB7XG4gICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSToge1xuICAgICAgICAgICAgbGlFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuREQ6XG4gICAgICAgIGNhc2UgJC5EVDoge1xuICAgICAgICAgICAgZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIGJyRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZPUk06IHtcbiAgICAgICAgICAgIGZvcm1FbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlb2ZJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW9mSW5UZW1wbGF0ZShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwidGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZW5kVGFnSW5UZXh0KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5TQ1JJUFQpIHtcbiAgICAgICAgKF9hID0gcC5zY3JpcHRIYW5kbGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICB9XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG59XG5mdW5jdGlvbiBlb2ZJblRleHQocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5lb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0KTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcbiAgICBwLm9uRW9mKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKFRBQkxFX1NUUlVDVFVSRV9UQUdTLmhhcyhwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGggPSAwO1xuICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZ25vcmUgbnVsbFxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjtcbn1cbmZ1bmN0aW9uIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbn1cbmZ1bmN0aW9uIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQ09MR1JPVVAsICQuQ09MR1JPVVApO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xufVxuZnVuY3Rpb24gdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRCT0RZLCAkLlRCT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICB0ZFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjoge1xuICAgICAgICAgICAgY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5UQUJMRSk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3Qgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgIC8vIFByb2Nlc3MgdG9rZW4gaW4gYEluIEJvZHlgIG1vZGVcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBzYXZlZEZvc3RlclBhcmVudGluZ1N0YXRlO1xufVxuLy8gVGhlIFwiaW4gdGFibGUgdGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgcC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGNhcHRpb25cIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFRBQkxFX1ZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFskLkNBUFRJT04sICQuQ09MLCAkLkNPTEdST1VQLCAkLlRCT0RZLCAkLlRELCAkLlRGT09ULCAkLlRILCAkLlRIRUFELCAkLlRSXSk7XG5mdW5jdGlvbiBzdGFydFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKFRBQkxFX1ZPSURfRUxFTUVOVFMuaGFzKHRuKSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuQ0FQVElPTikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkNBUFRJT04pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5DYXB0aW9uKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRuKSB7XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5DQVBUSU9OKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBjb2x1bW4gZ3JvdXBcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5DT0xHUk9VUCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0YWJsZSBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRSLCAkLlRSKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiByb3dcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NFTEw7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG9rZW4udGFnSUQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBlbmQgdGFnXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIGNlbGxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAoVEFCTEVfVk9JRF9FTEVNRU5UUy5oYXModG4pKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5URCkgfHwgcC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEgpKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkNlbGwocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIHN3aXRjaCAodG4pIHtcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRTpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAuX2Nsb3NlVGFibGVDZWxsKCk7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBzZWxlY3RcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTlBVVDpcbiAgICAgICAgY2FzZSAkLktFWUdFTjpcbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOlxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TZWxlY3RTY29wZSgkLlNFTEVDVCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi50YWdJRCAhPT0gJC5TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPiAwICYmXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTiAmJlxuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1twLm9wZW5FbGVtZW50cy5zdGFja1RvcCAtIDFdID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbi8vIFRoZSBcImluIHNlbGVjdCBpbiB0YWJsZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8XG4gICAgICAgIHRuID09PSAkLlRBQkxFIHx8XG4gICAgICAgIHRuID09PSAkLlRCT0RZIHx8XG4gICAgICAgIHRuID09PSAkLlRGT09UIHx8XG4gICAgICAgIHRuID09PSAkLlRIRUFEIHx8XG4gICAgICAgIHRuID09PSAkLlRSIHx8XG4gICAgICAgIHRuID09PSAkLlREIHx8XG4gICAgICAgIHRuID09PSAkLlRIKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RhcnRUYWdJblNlbGVjdChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fFxuICAgICAgICB0biA9PT0gJC5UQUJMRSB8fFxuICAgICAgICB0biA9PT0gJC5UQk9EWSB8fFxuICAgICAgICB0biA9PT0gJC5URk9PVCB8fFxuICAgICAgICB0biA9PT0gJC5USEVBRCB8fFxuICAgICAgICB0biA9PT0gJC5UUiB8fFxuICAgICAgICB0biA9PT0gJC5URCB8fFxuICAgICAgICB0biA9PT0gJC5USCkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgcC5vbkVuZFRhZyh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0ZW1wbGF0ZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICAvLyBGaXJzdCwgaGFuZGxlIHRhZ3MgdGhhdCBjYW4gc3RhcnQgd2l0aG91dCBhIG1vZGUgY2hhbmdlXG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmUtcHJvY2VzcyB0aGUgdG9rZW4gaW4gdGhlIGFwcHJvcHJpYXRlIG1vZGVcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBzdGFydFRhZ0luUm93KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5zaGlmdCgpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5vbkVvZih0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IDxodG1sPiBpcyBuZXZlciBwb3BwZWQgZnJvbSB0aGUgc3RhY2ssIHNvIHdlIG5lZWQgdG8gdXBkYXRlZFxuICAgICAgICAvL3RoZSBlbmQgbG9jYXRpb24gZXhwbGljaXRseS5cbiAgICAgICAgaWYgKHAub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvICYmIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1swXSA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihwLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgdG9rZW4pO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBib2R5IGVsZW1lbnQsIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhbiBlbmQgdGFnXG4gICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzFdO1xuICAgICAgICAgICAgaWYgKGJvZHlFbGVtZW50ICYmICEoKF9hID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGJvZHlFbGVtZW50KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVuZFRhZykpIHtcbiAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GUkFNRToge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkZSQU1FU0VUICYmICFwLm9wZW5FbGVtZW50cy5pc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgIT09ICQuRlJBTUVTRVQpIHtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ7XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJhZnRlciBhZnRlciBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG4vLyBUaGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIGZvcmVpZ24gY29udGVudFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIG51bGxDaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgdG9rZW4uY2hhcnMgPSB1bmljb2RlLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHBvcFVudGlsSHRtbE9ySW50ZWdyYXRpb25Qb2ludChwKSB7XG4gICAgd2hpbGUgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpICE9PSBOUy5IVE1MICYmXG4gICAgICAgICFwLl9pc0ludGVncmF0aW9uUG9pbnQocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBpZiAoZm9yZWlnbkNvbnRlbnQuY2F1c2VzRXhpdCh0b2tlbikpIHtcbiAgICAgICAgcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApO1xuICAgICAgICBwLl9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gcC5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50TnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTtcbiAgICAgICAgaWYgKGN1cnJlbnROcyA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjdXJyZW50TnMgPT09IE5TLlNWRykge1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKTtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgICAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBjdXJyZW50TnMpO1xuICAgICAgICB9XG4gICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlAgfHwgdG9rZW4udGFnSUQgPT09ICQuQlIpIHtcbiAgICAgICAgcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApO1xuICAgICAgICBwLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+IDA7IGktLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgcC5fZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhZ05hbWUgPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgIGlmICh0YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRva2VuLnRhZ05hbWUpIHtcbiAgICAgICAgICAgIC8vTk9URTogdXBkYXRlIHRoZSB0b2tlbiB0YWcgbmFtZSBmb3IgYF9zZXRFbmRMb2NhdGlvbmAuXG4gICAgICAgICAgICB0b2tlbi50YWdOYW1lID0gdGFnTmFtZTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgbnVsbCwgImltcG9ydCB7IFRBR19OQU1FUyBhcyAkLCBOUywgaGFzVW5lc2NhcGVkVGV4dCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmltcG9ydCB7IGVzY2FwZVRleHQsIGVzY2FwZUF0dHJpYnV0ZSB9IGZyb20gJ2VudGl0aWVzL2xpYi9lc2NhcGUuanMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbi8vIFNldHNcbmNvbnN0IFZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFtcbiAgICAkLkFSRUEsXG4gICAgJC5CQVNFLFxuICAgICQuQkFTRUZPTlQsXG4gICAgJC5CR1NPVU5ELFxuICAgICQuQlIsXG4gICAgJC5DT0wsXG4gICAgJC5FTUJFRCxcbiAgICAkLkZSQU1FLFxuICAgICQuSFIsXG4gICAgJC5JTUcsXG4gICAgJC5JTlBVVCxcbiAgICAkLktFWUdFTixcbiAgICAkLkxJTkssXG4gICAgJC5NRVRBLFxuICAgICQuUEFSQU0sXG4gICAgJC5TT1VSQ0UsXG4gICAgJC5UUkFDSyxcbiAgICAkLldCUixcbl0pO1xuZnVuY3Rpb24gaXNWb2lkRWxlbWVudChub2RlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUobm9kZSkgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkobm9kZSkgPT09IE5TLkhUTUwgJiZcbiAgICAgICAgVk9JRF9FTEVNRU5UUy5oYXMob3B0aW9ucy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpKSk7XG59XG5jb25zdCBkZWZhdWx0T3B0cyA9IHsgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlciwgc2NyaXB0aW5nRW5hYmxlZDogdHJ1ZSB9O1xuLyoqXG4gKiBTZXJpYWxpemVzIGFuIEFTVCBub2RlIHRvIGFuIEhUTUwgc3RyaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIGEgZG9jdW1lbnQuXG4gKiBjb25zdCBodG1sID0gcGFyc2U1LnNlcmlhbGl6ZShkb2N1bWVudCk7XG4gKlxuICogLy8gU2VyaWFsaXplcyB0aGUgPGh0bWw+IGVsZW1lbnQgY29udGVudC5cbiAqIGNvbnN0IHN0ciA9IHBhcnNlNS5zZXJpYWxpemUoZG9jdW1lbnQuY2hpbGROb2Rlc1sxXSk7XG4gKlxuICogY29uc29sZS5sb2coc3RyKTsgLy8+ICc8aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIG9wdGlvbnMgU2VyaWFsaXphdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5kZWZhdWx0T3B0cywgLi4ub3B0aW9ucyB9O1xuICAgIGlmIChpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdHMpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIHNlcmlhbGl6ZUNoaWxkTm9kZXMobm9kZSwgb3B0cyk7XG59XG4vKipcbiAqIFNlcmlhbGl6ZXMgYW4gQVNUIGVsZW1lbnQgbm9kZSB0byBhbiBIVE1MIHN0cmluZywgaW5jbHVkaW5nIHRoZSBlbGVtZW50IG5vZGUuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7XG4gKlxuICogY29uc3QgZG9jdW1lbnQgPSBwYXJzZTUucGFyc2VGcmFnbWVudCgnPGRpdj5IZWxsbywgPGI+d29ybGQ8L2I+ITwvZGl2PicpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgdGhlIDxkaXY+IGVsZW1lbnQuXG4gKiBjb25zdCBodG1sID0gcGFyc2U1LnNlcmlhbGl6ZU91dGVyKGRvY3VtZW50LmNoaWxkTm9kZXNbMF0pO1xuICpcbiAqIGNvbnNvbGUubG9nKHN0cik7IC8vPiAnPGRpdj5IZWxsbywgPGI+d29ybGQ8L2I+ITwvZGl2PidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIG9wdGlvbnMgU2VyaWFsaXphdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplT3V0ZXIobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLmRlZmF1bHRPcHRzLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIHNlcmlhbGl6ZU5vZGUobm9kZSwgb3B0cyk7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVDaGlsZE5vZGVzKHBhcmVudE5vZGUsIG9wdGlvbnMpIHtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIC8vIEdldCBjb250YWluZXIgb2YgdGhlIGNoaWxkIG5vZGVzXG4gICAgY29uc3QgY29udGFpbmVyID0gb3B0aW9ucy50cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKHBhcmVudE5vZGUpICYmXG4gICAgICAgIG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnROb2RlKSA9PT0gJC5URU1QTEFURSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShwYXJlbnROb2RlKSA9PT0gTlMuSFRNTFxuICAgICAgICA/IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHBhcmVudE5vZGUpXG4gICAgICAgIDogcGFyZW50Tm9kZTtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gb3B0aW9ucy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKGNvbnRhaW5lcik7XG4gICAgaWYgKGNoaWxkTm9kZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBjdXJyZW50Tm9kZSBvZiBjaGlsZE5vZGVzKSB7XG4gICAgICAgICAgICBodG1sICs9IHNlcmlhbGl6ZU5vZGUoY3VycmVudE5vZGUsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBodG1sO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplTm9kZShub2RlLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplRWxlbWVudChub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplVGV4dE5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzQ29tbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUNvbW1lbnROb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8vIFJldHVybiBhbiBlbXB0eSBzdHJpbmcgZm9yIHVua25vd24gbm9kZXNcbiAgICByZXR1cm4gJyc7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVFbGVtZW50KG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB0biA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKTtcbiAgICByZXR1cm4gYDwke3RufSR7c2VyaWFsaXplQXR0cmlidXRlcyhub2RlLCBvcHRpb25zKX0+JHtpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdGlvbnMpID8gJycgOiBgJHtzZXJpYWxpemVDaGlsZE5vZGVzKG5vZGUsIG9wdGlvbnMpfTwvJHt0bn0+YH1gO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIGZvciAoY29uc3QgYXR0ciBvZiB0cmVlQWRhcHRlci5nZXRBdHRyTGlzdChub2RlKSkge1xuICAgICAgICBodG1sICs9ICcgJztcbiAgICAgICAgaWYgKCFhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgaHRtbCArPSBhdHRyLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTlMuWE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYHhtbDoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTUxOUzoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAneG1sbnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sICs9ICd4bWxuczonO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTElOSzoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGB4bGluazoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGAke2F0dHIucHJlZml4fToke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgaHRtbCArPSBgPVwiJHtlc2NhcGVBdHRyaWJ1dGUoYXR0ci52YWx1ZSl9XCJgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZVRleHROb2RlKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHRyZWVBZGFwdGVyIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0cmVlQWRhcHRlci5nZXRUZXh0Tm9kZUNvbnRlbnQobm9kZSk7XG4gICAgY29uc3QgcGFyZW50ID0gdHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgICBjb25zdCBwYXJlbnRUbiA9IHBhcmVudCAmJiB0cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKHBhcmVudCkgJiYgdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnQpO1xuICAgIHJldHVybiBwYXJlbnRUbiAmJlxuICAgICAgICB0cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocGFyZW50KSA9PT0gTlMuSFRNTCAmJlxuICAgICAgICBoYXNVbmVzY2FwZWRUZXh0KHBhcmVudFRuLCBvcHRpb25zLnNjcmlwdGluZ0VuYWJsZWQpXG4gICAgICAgID8gY29udGVudFxuICAgICAgICA6IGVzY2FwZVRleHQoY29udGVudCk7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVDb21tZW50Tm9kZShub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICByZXR1cm4gYDwhLS0ke3RyZWVBZGFwdGVyLmdldENvbW1lbnROb2RlQ29udGVudChub2RlKX0tLT5gO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplRG9jdW1lbnRUeXBlTm9kZShub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICByZXR1cm4gYDwhRE9DVFlQRSAke3RyZWVBZGFwdGVyLmdldERvY3VtZW50VHlwZU5vZGVOYW1lKG5vZGUpfT5gO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4vcGFyc2VyL2luZGV4LmpzJztcbmV4cG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbmV4cG9ydCB7IC8qKiBAaW50ZXJuYWwgKi8gUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgc2VyaWFsaXplLCBzZXJpYWxpemVPdXRlciB9IGZyb20gJy4vc2VyaWFsaXplci9pbmRleC5qcyc7XG5leHBvcnQgeyBFUlIgYXMgRXJyb3JDb2RlcyB9IGZyb20gJy4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCAqIGFzIGZvcmVpZ25Db250ZW50IGZyb20gJy4vY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBodG1sIGZyb20gJy4vY29tbW9uL2h0bWwuanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0ICogYXMgVG9rZW4gZnJvbSAnLi9jb21tb24vdG9rZW4uanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IHsgVG9rZW5pemVyLCBUb2tlbml6ZXJNb2RlIH0gZnJvbSAnLi90b2tlbml6ZXIvaW5kZXguanMnO1xuLy8gU2hvcnRoYW5kc1xuLyoqXG4gKiBQYXJzZXMgYW4gSFRNTCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGh0bWwgSW5wdXQgSFRNTCBzdHJpbmcuXG4gKiBAcGFyYW0gb3B0aW9ucyBQYXJzaW5nIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBEb2N1bWVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhkb2N1bWVudC5jaGlsZE5vZGVzWzFdLnRhZ05hbWUpOyAvLz4gJ2h0bWwnXG4gKmBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoaHRtbCwgb3B0aW9ucykge1xuICAgIHJldHVybiBQYXJzZXIucGFyc2UoaHRtbCwgb3B0aW9ucyk7XG59XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcmFnbWVudChmcmFnbWVudENvbnRleHQsIGh0bWwsIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIGZyYWdtZW50Q29udGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0aW9ucyA9IGh0bWw7XG4gICAgICAgIGh0bWwgPSBmcmFnbWVudENvbnRleHQ7XG4gICAgICAgIGZyYWdtZW50Q29udGV4dCA9IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlciA9IFBhcnNlci5nZXRGcmFnbWVudFBhcnNlcihmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpO1xuICAgIHBhcnNlci50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgcmV0dXJuIHBhcnNlci5nZXRGcmFnbWVudCgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE5vZGVMaWtlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdHlwZVxuICogQHByb3BlcnR5IHtQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9zaXRpb25dXG4gKlxuICogQHR5cGVkZWYgUG9pbnRMaWtlXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtsaW5lXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sdW1uXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICpcbiAqIEB0eXBlZGVmIFBvc2l0aW9uTGlrZVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RhcnRdXG4gKiBAcHJvcGVydHkge1BvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmRdXG4gKi9cblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIHBvc2l0aW9uYWwgaW5mbyBvZiBhIHBvaW50LCBwb3NpdGlvbiAoc3RhcnQgYW5kIGVuZCBwb2ludHMpLFxuICogb3Igbm9kZS5cbiAqXG4gKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IFBvaW50IHwgUG9pbnRMaWtlIHwgUG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiAgIE5vZGUsIHBvc2l0aW9uLCBvciBwb2ludC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFByZXR0eSBwcmludGVkIHBvc2l0aW9uYWwgaW5mbyBvZiBhIG5vZGUgKGBzdHJpbmdgKS5cbiAqXG4gKiAgIEluIHRoZSBmb3JtYXQgb2YgYSByYW5nZSBgbHM6Y3MtbGU6Y2VgICh3aGVuIGdpdmVuIGBub2RlYCBvciBgcG9zaXRpb25gKVxuICogICBvciBhIHBvaW50IGBsOmNgICh3aGVuIGdpdmVuIGBwb2ludGApLCB3aGVyZSBgbGAgc3RhbmRzIGZvciBsaW5lLCBgY2AgZm9yXG4gKiAgIGNvbHVtbiwgYHNgIGZvciBgc3RhcnRgLCBhbmQgYGVgIGZvciBlbmQuXG4gKiAgIEFuIGVtcHR5IHN0cmluZyAoYCcnYCkgaXMgcmV0dXJuZWQgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5laXRoZXIgYG5vZGVgLFxuICogICBgcG9zaXRpb25gLCBub3IgYHBvaW50YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVBvc2l0aW9uKHZhbHVlKSB7XG4gIC8vIE5vdGhpbmcuXG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gTm9kZS5cbiAgaWYgKCdwb3NpdGlvbicgaW4gdmFsdWUgfHwgJ3R5cGUnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlLnBvc2l0aW9uKVxuICB9XG5cbiAgLy8gUG9zaXRpb24uXG4gIGlmICgnc3RhcnQnIGluIHZhbHVlIHx8ICdlbmQnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlKVxuICB9XG5cbiAgLy8gUG9pbnQuXG4gIGlmICgnbGluZScgaW4gdmFsdWUgfHwgJ2NvbHVtbicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9pbnQodmFsdWUpXG4gIH1cblxuICAvLyA/XG4gIHJldHVybiAnJ1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9pbnQgfCBQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb2ludFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcG9pbnQocG9pbnQpIHtcbiAgcmV0dXJuIGluZGV4KHBvaW50ICYmIHBvaW50LmxpbmUpICsgJzonICsgaW5kZXgocG9pbnQgJiYgcG9pbnQuY29sdW1uKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKHBvcykge1xuICByZXR1cm4gcG9pbnQocG9zICYmIHBvcy5zdGFydCkgKyAnLScgKyBwb2ludChwb3MgJiYgcG9zLmVuZClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5mdW5jdGlvbiBpbmRleCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogMVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3QgJiB7dHlwZTogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uIHwgdW5kZWZpbmVkfX0gTm9kZUxpa2VcbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge0FycmF5PE5vZGU+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FuY2VzdG9yc11cbiAqICAgU3RhY2sgb2YgKGluY2x1c2l2ZSkgYW5jZXN0b3Igbm9kZXMgc3Vycm91bmRpbmcgdGhlIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7RXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2F1c2VdXG4gKiAgIE9yaWdpbmFsIGVycm9yIGNhdXNlIG9mIHRoZSBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBbcGxhY2VdXG4gKiAgIFBsYWNlIG9mIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3J1bGVJZF1cbiAqICAgQ2F0ZWdvcnkgb2YgbWVzc2FnZSAob3B0aW9uYWwsIGV4YW1wbGU6IGAnbXktcnVsZSdgKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NvdXJjZV1cbiAqICAgTmFtZXNwYWNlIG9mIHdobyBzZW50IHRoZSBtZXNzYWdlIChvcHRpb25hbCwgZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5UG9zaXRpb259IGZyb20gJ3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uJ1xuXG4vKipcbiAqIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBWRmlsZU1lc3NhZ2UgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluc3RhbmNlIG9mIGBWRmlsZU1lc3NhZ2VgLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3RydWN0b3IoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zT3JQYXJlbnRPclBsYWNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3JpZ2luID0gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCByZWFzb24gPSAnJ1xuICAgIC8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbiAgICBsZXQgb3B0aW9ucyA9IHt9XG4gICAgbGV0IGxlZ2FjeUNhdXNlID0gZmFsc2VcblxuICAgIGlmIChvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAvLyBQb2ludC5cbiAgICAgIGlmIChcbiAgICAgICAgJ2xpbmUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2NvbHVtbicgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBQb3NpdGlvbi5cbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICAnc3RhcnQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2VuZCcgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBOb2RlLlxuICAgICAgZWxzZSBpZiAoJ3R5cGUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UpIHtcbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICBhbmNlc3RvcnM6IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXSxcbiAgICAgICAgICBwbGFjZTogb3B0aW9uc09yUGFyZW50T3JQbGFjZS5wb3NpdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBPcHRpb25zLlxuICAgICAgZWxzZSB7XG4gICAgICAgIG9wdGlvbnMgPSB7Li4ub3B0aW9uc09yUGFyZW50T3JQbGFjZX1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNhdXNlT3JSZWFzb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZWFzb24gPSBjYXVzZU9yUmVhc29uXG4gICAgfVxuICAgIC8vIEVycm9yLlxuICAgIGVsc2UgaWYgKCFvcHRpb25zLmNhdXNlICYmIGNhdXNlT3JSZWFzb24pIHtcbiAgICAgIGxlZ2FjeUNhdXNlID0gdHJ1ZVxuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvbi5tZXNzYWdlXG4gICAgICBvcHRpb25zLmNhdXNlID0gY2F1c2VPclJlYXNvblxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5ydWxlSWQgJiYgIW9wdGlvbnMuc291cmNlICYmIHR5cGVvZiBvcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBpbmRleCA9IG9yaWdpbi5pbmRleE9mKCc6JylcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3B0aW9ucy5zb3VyY2UgPSBvcmlnaW4uc2xpY2UoMCwgaW5kZXgpXG4gICAgICAgIG9wdGlvbnMucnVsZUlkID0gb3JpZ2luLnNsaWNlKGluZGV4ICsgMSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucGxhY2UgJiYgb3B0aW9ucy5hbmNlc3RvcnMgJiYgb3B0aW9ucy5hbmNlc3RvcnMpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IG9wdGlvbnMuYW5jZXN0b3JzW29wdGlvbnMuYW5jZXN0b3JzLmxlbmd0aCAtIDFdXG5cbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgb3B0aW9ucy5wbGFjZSA9IHBhcmVudC5wb3NpdGlvblxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0ID1cbiAgICAgIG9wdGlvbnMucGxhY2UgJiYgJ3N0YXJ0JyBpbiBvcHRpb25zLnBsYWNlXG4gICAgICAgID8gb3B0aW9ucy5wbGFjZS5zdGFydFxuICAgICAgICA6IG9wdGlvbnMucGxhY2VcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PE5vZGU+IHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuYW5jZXN0b3JzID0gb3B0aW9ucy5hbmNlc3RvcnMgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtFcnJvciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNhdXNlID0gb3B0aW9ucy5jYXVzZSB8fCB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFN0YXJ0aW5nIGNvbHVtbiBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNvbHVtbiA9IHN0YXJ0ID8gc3RhcnQuY29sdW1uIDogdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGF0ZSBvZiBwcm9ibGVtLlxuICAgICAqXG4gICAgICogKiBgdHJ1ZWAgXHUyMDE0IGVycm9yLCBmaWxlIG5vdCB1c2FibGVcbiAgICAgKiAqIGBmYWxzZWAgXHUyMDE0IHdhcm5pbmcsIGNoYW5nZSBtYXkgYmUgbmVlZGVkXG4gICAgICogKiBgdW5kZWZpbmVkYCBcdTIwMTQgY2hhbmdlIGxpa2VseSBub3QgbmVlZGVkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUGF0aCBvZiBhIGZpbGUgKHVzZWQgdGhyb3VnaG91dCB0aGUgYFZGaWxlYCBlY29zeXN0ZW0pLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmZpbGVcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZSA9IHJlYXNvblxuXG4gICAgLyoqXG4gICAgICogU3RhcnRpbmcgbGluZSBvZiBlcnJvci5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5saW5lID0gc3RhcnQgPyBzdGFydC5saW5lIDogdW5kZWZpbmVkXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplZCBwb3NpdGlvbmFsIGluZm8gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIE9uIG5vcm1hbCBlcnJvcnMsIHRoaXMgd291bGQgYmUgc29tZXRoaW5nIGxpa2UgYFBhcnNlRXJyb3JgLCBidWl0IGluXG4gICAgICogYFZGaWxlYCBtZXNzYWdlcyB3ZSB1c2UgdGhpcyBzcGFjZSB0byBzaG93IHdoZXJlIGFuIGVycm9yIGhhcHBlbmVkLlxuICAgICAqL1xuICAgIHRoaXMubmFtZSA9IHN0cmluZ2lmeVBvc2l0aW9uKG9wdGlvbnMucGxhY2UpIHx8ICcxOjEnXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge1BvaW50IHwgUG9zaXRpb24gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5wbGFjZSA9IG9wdGlvbnMucGxhY2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMucmVhc29uID0gdGhpcy5tZXNzYWdlXG5cbiAgICAvKipcbiAgICAgKiBDYXRlZ29yeSBvZiBtZXNzYWdlIChleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucnVsZUlkID0gb3B0aW9ucy5ydWxlSWQgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBOYW1lc3BhY2Ugb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnNvdXJjZSA9IG9wdGlvbnMuc291cmNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgbm9ybWFsIGVycm9ycyB0byBzaG93IHdoZXJlIHNvbWV0aGluZyBoYXBwZW5lZCBpblxuICAgICAqIHByb2dyYW1taW5nIGNvZGUsIGlycmVsZXZhbnQgZm9yIGBWRmlsZWAgbWVzc2FnZXMsXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuc3RhY2sgPVxuICAgICAgbGVnYWN5Q2F1c2UgJiYgb3B0aW9ucy5jYXVzZSAmJiB0eXBlb2Ygb3B0aW9ucy5jYXVzZS5zdGFjayA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBvcHRpb25zLmNhdXNlLnN0YWNrXG4gICAgICAgIDogJydcblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBcdTIwMUN3ZWxsIGtub3duXHUyMDFELlxuICAgIC8vIE5vdCBzdGFuZGFyZC5cbiAgICAvLyBGZWVsIGZyZWUgdG8gYWRkIG90aGVyIG5vbi1zdGFuZGFyZCBmaWVsZHMgdG8geW91ciBtZXNzYWdlcy5cblxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGhlIHNvdXJjZSB2YWx1ZSB0aGF0XHUyMDE5cyBiZWluZyByZXBvcnRlZCwgd2hpY2ggaXMgZGVlbWVkXG4gICAgICogaW5jb3JyZWN0LlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFjdHVhbFxuXG4gICAgLyoqXG4gICAgICogU3VnZ2VzdCBhY2NlcHRhYmxlIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYGFjdHVhbGAuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmV4cGVjdGVkXG5cbiAgICAvKipcbiAgICAgKiBMb25nIGZvcm0gZGVzY3JpcHRpb24gb2YgdGhlIG1lc3NhZ2UgKHlvdSBzaG91bGQgdXNlIG1hcmtkb3duKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5ub3RlXG5cbiAgICAvKipcbiAgICAgKiBMaW5rIHRvIGRvY3MgZm9yIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHRoaXMgbXVzdCBiZSBhbiBhYnNvbHV0ZSBVUkwgdGhhdCBjYW4gYmUgcGFzc2VkIGFzIGB4YFxuICAgICAqID4gdG8gYG5ldyBVUkwoeClgLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnVybFxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG4gIH1cbn1cblxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5maWxlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubmFtZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnJlYXNvbiA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm1lc3NhZ2UgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5zdGFjayA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmNvbHVtbiA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5saW5lID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmFuY2VzdG9ycyA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jYXVzZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5mYXRhbCA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5wbGFjZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5ydWxlSWQgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc291cmNlID0gdW5kZWZpbmVkXG4iLCAiLy8gQSBkZXJpdmF0aXZlIHdvcmsgYmFzZWQgb246XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2Jyb3dzZXJpZnkvcGF0aC1icm93c2VyaWZ5Pi5cbi8vIFdoaWNoIGlzIGxpY2Vuc2VkOlxuLy9cbi8vIE1JVCBMaWNlbnNlXG4vL1xuLy8gQ29weXJpZ2h0IChjKSAyMDEzIEphbWVzIEhhbGxpZGF5XG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZlxuLy8gdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpblxuLy8gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0b1xuLy8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Zcbi8vIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbyxcbi8vIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuLy8gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTU1xuLy8gRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SXG4vLyBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVJcbi8vIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOXG4vLyBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuLy8gQSBkZXJpdmF0aXZlIHdvcmsgYmFzZWQgb246XG4vL1xuLy8gUGFydHMgb2YgdGhhdCBhcmUgZXh0cmFjdGVkIGZyb20gTm9kZVx1MjAxOXMgaW50ZXJuYWwgYHBhdGhgIG1vZHVsZTpcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi9tYXN0ZXIvbGliL3BhdGguanM+LlxuLy8gV2hpY2ggaXMgbGljZW5zZWQ6XG4vL1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmV4cG9ydCBjb25zdCBwYXRoID0ge2Jhc2VuYW1lLCBkaXJuYW1lLCBleHRuYW1lLCBqb2luLCBzZXA6ICcvJ31cblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWRlcHRoLCBjb21wbGV4aXR5ICovXG5cbi8qKlxuICogR2V0IHRoZSBiYXNlbmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtleHRdXG4gKiAgIEV4dGVuc2lvbiB0byBzdHJpcC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFN0ZW0gb3IgYmFzZW5hbWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VuYW1lKHBhdGgsIGV4dCkge1xuICBpZiAoZXh0ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImV4dFwiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKVxuICB9XG5cbiAgYXNzZXJ0UGF0aChwYXRoKVxuICBsZXQgc3RhcnQgPSAwXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBzZWVuTm9uU2xhc2hcblxuICBpZiAoZXh0ID09PSB1bmRlZmluZWQgfHwgZXh0Lmxlbmd0aCA9PT0gMCB8fCBleHQubGVuZ3RoID4gcGF0aC5sZW5ndGgpIHtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgICBpZiAoc2Vlbk5vblNsYXNoKSB7XG4gICAgICAgICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91clxuICAgICAgICAvLyBwYXRoIGNvbXBvbmVudC5cbiAgICAgICAgc2Vlbk5vblNsYXNoID0gdHJ1ZVxuICAgICAgICBlbmQgPSBpbmRleCArIDFcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5kIDwgMCA/ICcnIDogcGF0aC5zbGljZShzdGFydCwgZW5kKVxuICB9XG5cbiAgaWYgKGV4dCA9PT0gcGF0aCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgbGV0IGZpcnN0Tm9uU2xhc2hFbmQgPSAtMVxuICBsZXQgZXh0SW5kZXggPSBleHQubGVuZ3RoIC0gMVxuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICBpZiAoc2Vlbk5vblNsYXNoKSB7XG4gICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChmaXJzdE5vblNsYXNoRW5kIDwgMCkge1xuICAgICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvciwgcmVtZW1iZXIgdGhpcyBpbmRleCBpbiBjYXNlXG4gICAgICAgIC8vIHdlIG5lZWQgaXQgaWYgdGhlIGV4dGVuc2lvbiBlbmRzIHVwIG5vdCBtYXRjaGluZy5cbiAgICAgICAgc2Vlbk5vblNsYXNoID0gdHJ1ZVxuICAgICAgICBmaXJzdE5vblNsYXNoRW5kID0gaW5kZXggKyAxXG4gICAgICB9XG5cbiAgICAgIGlmIChleHRJbmRleCA+IC0xKSB7XG4gICAgICAgIC8vIFRyeSB0byBtYXRjaCB0aGUgZXhwbGljaXQgZXh0ZW5zaW9uLlxuICAgICAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IGV4dC5jb2RlUG9pbnRBdChleHRJbmRleC0tKSkge1xuICAgICAgICAgIGlmIChleHRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIC8vIFdlIG1hdGNoZWQgdGhlIGV4dGVuc2lvbiwgc28gbWFyayB0aGlzIGFzIHRoZSBlbmQgb2Ygb3VyIHBhdGhcbiAgICAgICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICAgICAgZW5kID0gaW5kZXhcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRXh0ZW5zaW9uIGRvZXMgbm90IG1hdGNoLCBzbyBvdXIgcmVzdWx0IGlzIHRoZSBlbnRpcmUgcGF0aFxuICAgICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICAgIGV4dEluZGV4ID0gLTFcbiAgICAgICAgICBlbmQgPSBmaXJzdE5vblNsYXNoRW5kXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmRcbiAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kID0gcGF0aC5sZW5ndGhcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0LCBlbmQpXG59XG5cbi8qKlxuICogR2V0IHRoZSBkaXJuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZGlybmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJy4nXG4gIH1cblxuICBsZXQgZW5kID0gLTFcbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICAvLyBQcmVmaXggYC0tYCBpcyBpbXBvcnRhbnQgdG8gbm90IHJ1biBvbiBgMGAuXG4gIHdoaWxlICgtLWluZGV4KSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvclxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuZCA8IDBcbiAgICA/IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuICAgICAgPyAnLydcbiAgICAgIDogJy4nXG4gICAgOiBlbmQgPT09IDEgJiYgcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG4gICAgPyAnLy8nXG4gICAgOiBwYXRoLnNsaWNlKDAsIGVuZClcbn1cblxuLyoqXG4gKiBHZXQgYW4gZXh0bmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFeHRuYW1lLlxuICovXG5mdW5jdGlvbiBleHRuYW1lKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG5cbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBzdGFydFBhcnQgPSAwXG4gIGxldCBzdGFydERvdCA9IC0xXG4gIC8vIFRyYWNrIHRoZSBzdGF0ZSBvZiBjaGFyYWN0ZXJzIChpZiBhbnkpIHdlIHNlZSBiZWZvcmUgb3VyIGZpcnN0IGRvdCBhbmRcbiAgLy8gYWZ0ZXIgYW55IHBhdGggc2VwYXJhdG9yIHdlIGZpbmQuXG4gIGxldCBwcmVEb3RTdGF0ZSA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGNvbnN0IGNvZGUgPSBwYXRoLmNvZGVQb2ludEF0KGluZGV4KVxuXG4gICAgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBzdGFydFBhcnQgPSBpbmRleCArIDFcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91clxuICAgICAgLy8gZXh0ZW5zaW9uLlxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgICBlbmQgPSBpbmRleCArIDFcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gNDYgLyogYC5gICovKSB7XG4gICAgICAvLyBJZiB0aGlzIGlzIG91ciBmaXJzdCBkb3QsIG1hcmsgaXQgYXMgdGhlIHN0YXJ0IG9mIG91ciBleHRlbnNpb24uXG4gICAgICBpZiAoc3RhcnREb3QgPCAwKSB7XG4gICAgICAgIHN0YXJ0RG90ID0gaW5kZXhcbiAgICAgIH0gZWxzZSBpZiAocHJlRG90U3RhdGUgIT09IDEpIHtcbiAgICAgICAgcHJlRG90U3RhdGUgPSAxXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGFydERvdCA+IC0xKSB7XG4gICAgICAvLyBXZSBzYXcgYSBub24tZG90IGFuZCBub24tcGF0aCBzZXBhcmF0b3IgYmVmb3JlIG91ciBkb3QsIHNvIHdlIHNob3VsZFxuICAgICAgLy8gaGF2ZSBhIGdvb2QgY2hhbmNlIGF0IGhhdmluZyBhIG5vbi1lbXB0eSBleHRlbnNpb24uXG4gICAgICBwcmVEb3RTdGF0ZSA9IC0xXG4gICAgfVxuICB9XG5cbiAgaWYgKFxuICAgIHN0YXJ0RG90IDwgMCB8fFxuICAgIGVuZCA8IDAgfHxcbiAgICAvLyBXZSBzYXcgYSBub24tZG90IGNoYXJhY3RlciBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGRvdC5cbiAgICBwcmVEb3RTdGF0ZSA9PT0gMCB8fFxuICAgIC8vIFRoZSAocmlnaHQtbW9zdCkgdHJpbW1lZCBwYXRoIGNvbXBvbmVudCBpcyBleGFjdGx5IGAuLmAuXG4gICAgKHByZURvdFN0YXRlID09PSAxICYmIHN0YXJ0RG90ID09PSBlbmQgLSAxICYmIHN0YXJ0RG90ID09PSBzdGFydFBhcnQgKyAxKVxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0RG90LCBlbmQpXG59XG5cbi8qKlxuICogSm9pbiBzZWdtZW50cyBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHNlZ21lbnRzXG4gKiAgIFBhdGggc2VnbWVudHMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGpvaW4oLi4uc2VnbWVudHMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCBqb2luZWRcblxuICB3aGlsZSAoKytpbmRleCA8IHNlZ21lbnRzLmxlbmd0aCkge1xuICAgIGFzc2VydFBhdGgoc2VnbWVudHNbaW5kZXhdKVxuXG4gICAgaWYgKHNlZ21lbnRzW2luZGV4XSkge1xuICAgICAgam9pbmVkID1cbiAgICAgICAgam9pbmVkID09PSB1bmRlZmluZWQgPyBzZWdtZW50c1tpbmRleF0gOiBqb2luZWQgKyAnLycgKyBzZWdtZW50c1tpbmRleF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gam9pbmVkID09PSB1bmRlZmluZWQgPyAnLicgOiBub3JtYWxpemUoam9pbmVkKVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIGJhc2ljIGZpbGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbi8vIE5vdGU6IGBub3JtYWxpemVgIGlzIG5vdCBleHBvc2VkIGFzIGBwYXRoLm5vcm1hbGl6ZWAsIHNvIHNvbWUgY29kZSBpc1xuLy8gbWFudWFsbHkgcmVtb3ZlZCBmcm9tIGl0LlxuZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGNvbnN0IGFic29sdXRlID0gcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG5cbiAgLy8gTm9ybWFsaXplIHRoZSBwYXRoIGFjY29yZGluZyB0byBQT1NJWCBydWxlcy5cbiAgbGV0IHZhbHVlID0gbm9ybWFsaXplU3RyaW5nKHBhdGgsICFhYnNvbHV0ZSlcblxuICBpZiAodmFsdWUubGVuZ3RoID09PSAwICYmICFhYnNvbHV0ZSkge1xuICAgIHZhbHVlID0gJy4nXG4gIH1cblxuICBpZiAodmFsdWUubGVuZ3RoID4gMCAmJiBwYXRoLmNvZGVQb2ludEF0KHBhdGgubGVuZ3RoIC0gMSkgPT09IDQ3IC8qIC8gKi8pIHtcbiAgICB2YWx1ZSArPSAnLydcbiAgfVxuXG4gIHJldHVybiBhYnNvbHV0ZSA/ICcvJyArIHZhbHVlIDogdmFsdWVcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGAuYCBhbmQgYC4uYCBlbGVtZW50cyBpbiBhIHBhdGggd2l0aCBkaXJlY3RvcnkgbmFtZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHBhcmFtIHtib29sZWFufSBhbGxvd0Fib3ZlUm9vdFxuICogICBXaGV0aGVyIGAuLmAgY2FuIG1vdmUgYWJvdmUgcm9vdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplU3RyaW5nKHBhdGgsIGFsbG93QWJvdmVSb290KSB7XG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgbGFzdFNlZ21lbnRMZW5ndGggPSAwXG4gIGxldCBsYXN0U2xhc2ggPSAtMVxuICBsZXQgZG90cyA9IDBcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBjb2RlXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgbGFzdFNsYXNoSW5kZXhcblxuICB3aGlsZSAoKytpbmRleCA8PSBwYXRoLmxlbmd0aCkge1xuICAgIGlmIChpbmRleCA8IHBhdGgubGVuZ3RoKSB7XG4gICAgICBjb2RlID0gcGF0aC5jb2RlUG9pbnRBdChpbmRleClcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgYnJlYWtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZSA9IDQ3IC8qIGAvYCAqL1xuICAgIH1cblxuICAgIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmIChsYXN0U2xhc2ggPT09IGluZGV4IC0gMSB8fCBkb3RzID09PSAxKSB7XG4gICAgICAgIC8vIEVtcHR5LlxuICAgICAgfSBlbHNlIGlmIChsYXN0U2xhc2ggIT09IGluZGV4IC0gMSAmJiBkb3RzID09PSAyKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXN1bHQubGVuZ3RoIDwgMiB8fFxuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoICE9PSAyIHx8XG4gICAgICAgICAgcmVzdWx0LmNvZGVQb2ludEF0KHJlc3VsdC5sZW5ndGggLSAxKSAhPT0gNDYgLyogYC5gICovIHx8XG4gICAgICAgICAgcmVzdWx0LmNvZGVQb2ludEF0KHJlc3VsdC5sZW5ndGggLSAyKSAhPT0gNDYgLyogYC5gICovXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgbGFzdFNsYXNoSW5kZXggPSByZXN1bHQubGFzdEluZGV4T2YoJy8nKVxuXG4gICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggIT09IHJlc3VsdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSAnJ1xuICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCBsYXN0U2xhc2hJbmRleClcbiAgICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IHJlc3VsdC5sZW5ndGggLSAxIC0gcmVzdWx0Lmxhc3RJbmRleE9mKCcvJylcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICAgICAgICAgIGRvdHMgPSAwXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gJydcbiAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICAgICAgICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgICAgICAgIGRvdHMgPSAwXG4gICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhbGxvd0Fib3ZlUm9vdCkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5sZW5ndGggPiAwID8gcmVzdWx0ICsgJy8uLicgOiAnLi4nXG4gICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAyXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3VsdCArPSAnLycgKyBwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaW5kZXgpXG4gICAgICAgIH1cblxuICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IGluZGV4IC0gbGFzdFNsYXNoIC0gMVxuICAgICAgfVxuXG4gICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgZG90cyA9IDBcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ2IC8qIGAuYCAqLyAmJiBkb3RzID4gLTEpIHtcbiAgICAgIGRvdHMrK1xuICAgIH0gZWxzZSB7XG4gICAgICBkb3RzID0gLTFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIGBwYXRoYCBpcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1BhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgJyArIEpTT04uc3RyaW5naWZ5KHBhdGgpXG4gICAgKVxuICB9XG59XG5cbi8qIGVzbGludC1lbmFibGUgbWF4LWRlcHRoLCBjb21wbGV4aXR5ICovXG4iLCAiLy8gU29tZXdoYXQgYmFzZWQgb246XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2RlZnVuY3R6b21iaWUvbm9kZS1wcm9jZXNzL2Jsb2IvbWFzdGVyL2Jyb3dzZXIuanM+LlxuLy8gQnV0IEkgZG9uXHUyMDE5dCB0aGluayBvbmUgdGlueSBsaW5lIG9mIGNvZGUgY2FuIGJlIGNvcHlyaWdodGVkLiBcdUQ4M0RcdURFMDVcbmV4cG9ydCBjb25zdCBwcm9jID0ge2N3ZH1cblxuZnVuY3Rpb24gY3dkKCkge1xuICByZXR1cm4gJy8nXG59XG4iLCAiLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBoYXMgdGhlIHNoYXBlIG9mIGEgV0hBVFdHIFVSTCBvYmplY3QuXG4gKlxuICogVXNpbmcgYSBzeW1ib2wgb3IgaW5zdGFuY2VvZiB3b3VsZCBub3QgYmUgYWJsZSB0byByZWNvZ25pemUgVVJMIG9iamVjdHNcbiAqIGNvbWluZyBmcm9tIG90aGVyIGltcGxlbWVudGF0aW9ucyAoZS5nLiBpbiBFbGVjdHJvbiksIHNvIGluc3RlYWQgd2UgYXJlXG4gKiBjaGVja2luZyBzb21lIHdlbGwga25vd24gcHJvcGVydGllcyBmb3IgYSBsYWNrIG9mIGEgYmV0dGVyIHRlc3QuXG4gKlxuICogV2UgdXNlIGBocmVmYCBhbmQgYHByb3RvY29sYCBhcyB0aGV5IGFyZSB0aGUgb25seSBwcm9wZXJ0aWVzIHRoYXQgYXJlXG4gKiBlYXN5IHRvIHJldHJpZXZlIGFuZCBjYWxjdWxhdGUgZHVlIHRvIHRoZSBsYXp5IG5hdHVyZSBvZiB0aGUgZ2V0dGVycy5cbiAqXG4gKiBXZSBjaGVjayBmb3IgYXV0aCBhdHRyaWJ1dGUgdG8gZGlzdGluZ3Vpc2ggbGVnYWN5IHVybCBpbnN0YW5jZSB3aXRoXG4gKiBXSEFUV0cgVVJMIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gZmlsZVVybE9yUGF0aFxuICogICBGaWxlIHBhdGggb3IgVVJMLlxuICogQHJldHVybnMge2ZpbGVVcmxPclBhdGggaXMgVVJMfVxuICogICBXaGV0aGVyIGl0XHUyMDE5cyBhIFVSTC5cbiAqL1xuLy8gRnJvbTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcyNMNzIwPlxuZXhwb3J0IGZ1bmN0aW9uIGlzVXJsKGZpbGVVcmxPclBhdGgpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgZmlsZVVybE9yUGF0aCAhPT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIGZpbGVVcmxPclBhdGggPT09ICdvYmplY3QnICYmXG4gICAgICAnaHJlZicgaW4gZmlsZVVybE9yUGF0aCAmJlxuICAgICAgZmlsZVVybE9yUGF0aC5ocmVmICYmXG4gICAgICAncHJvdG9jb2wnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGgucHJvdG9jb2wgJiZcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGluZGV4aW5nIGlzIGZpbmUuXG4gICAgICBmaWxlVXJsT3JQYXRoLmF1dGggPT09IHVuZGVmaW5lZFxuICApXG59XG4iLCAiaW1wb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG5leHBvcnQge2lzVXJsfSBmcm9tICcuL21pbnVybC5zaGFyZWQuanMnXG5cbi8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcz5cblxuLyoqXG4gKiBAcGFyYW0ge1VSTCB8IHN0cmluZ30gcGF0aFxuICogICBGaWxlIFVSTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXJsVG9QYXRoKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xuICAgIHBhdGggPSBuZXcgVVJMKHBhdGgpXG4gIH0gZWxzZSBpZiAoIWlzVXJsKHBhdGgpKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1RoZSBcInBhdGhcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFuIGluc3RhbmNlIG9mIFVSTC4gUmVjZWl2ZWQgYCcgK1xuICAgICAgICBwYXRoICtcbiAgICAgICAgJ2AnXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfQVJHX1RZUEUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIGlmIChwYXRoLnByb3RvY29sICE9PSAnZmlsZTonKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKCdUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUnKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfVVJMX1NDSEVNRSdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgcmV0dXJuIGdldFBhdGhGcm9tVVJMUG9zaXgocGF0aClcbn1cblxuLyoqXG4gKiBHZXQgYSBwYXRoIGZyb20gYSBQT1NJWCBVUkwuXG4gKlxuICogQHBhcmFtIHtVUkx9IHVybFxuICogICBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGdldFBhdGhGcm9tVVJMUG9zaXgodXJsKSB7XG4gIGlmICh1cmwuaG9zdG5hbWUgIT09ICcnKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgJ0ZpbGUgVVJMIGhvc3QgbXVzdCBiZSBcImxvY2FsaG9zdFwiIG9yIGVtcHR5IG9uIGRhcndpbidcbiAgICApXG4gICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBjb25zdCBwYXRobmFtZSA9IHVybC5wYXRobmFtZVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgcGF0aG5hbWUubGVuZ3RoKSB7XG4gICAgaWYgKFxuICAgICAgcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXgpID09PSAzNyAvKiBgJWAgKi8gJiZcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4ICsgMSkgPT09IDUwIC8qIGAyYCAqL1xuICAgICkge1xuICAgICAgY29uc3QgdGhpcmQgPSBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDIpXG4gICAgICBpZiAodGhpcmQgPT09IDcwIC8qIGBGYCAqLyB8fCB0aGlyZCA9PT0gMTAyIC8qIGBmYCAqLykge1xuICAgICAgICAvKiogQHR5cGUge05vZGVKUy5FcnJub0V4Y2VwdGlvbn0gKi9cbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICdGaWxlIFVSTCBwYXRoIG11c3Qgbm90IGluY2x1ZGUgZW5jb2RlZCAvIGNoYXJhY3RlcnMnXG4gICAgICAgIClcbiAgICAgICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIJ1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGF0aG5hbWUpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUtbWVzc2FnZScpLk9wdGlvbnN9IE1lc3NhZ2VPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLkRhdGF9IERhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuVmFsdWV9IFZhbHVlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0ICYge3R5cGU6IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHVuZGVmaW5lZH19IE5vZGVMaWtlXG4gKlxuICogQHR5cGVkZWYge09wdGlvbnMgfCBVUkwgfCBWRmlsZSB8IFZhbHVlfSBDb21wYXRpYmxlXG4gKiAgIFRoaW5ncyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICpcbiAqIEB0eXBlZGVmIFZGaWxlQ29yZU9wdGlvbnNcbiAqICAgU2V0IG11bHRpcGxlIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Jhc2VuYW1lXVxuICogICBTZXQgYGJhc2VuYW1lYCAobmFtZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtjd2RdXG4gKiAgIFNldCBgY3dkYCAod29ya2luZyBkaXJlY3RvcnkpLlxuICogQHByb3BlcnR5IHtEYXRhIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RhdGFdXG4gKiAgIFNldCBgZGF0YWAgKGFzc29jaWF0ZWQgaW5mbykuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtkaXJuYW1lXVxuICogICBTZXQgYGRpcm5hbWVgIChwYXRoIHcvbyBiYXNlbmFtZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtleHRuYW1lXVxuICogICBTZXQgYGV4dG5hbWVgIChleHRlbnNpb24gd2l0aCBkb3QpLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2hpc3RvcnldXG4gKiAgIFNldCBgaGlzdG9yeWAgKHBhdGhzIHRoZSBmaWxlIG1vdmVkIGJldHdlZW4pLlxuICogQHByb3BlcnR5IHtVUkwgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGF0aF1cbiAqICAgU2V0IGBwYXRoYCAoY3VycmVudCBwYXRoKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0ZW1dXG4gKiAgIFNldCBgc3RlbWAgKG5hbWUgd2l0aG91dCBleHRlbnNpb24pLlxuICogQHByb3BlcnR5IHtWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAqICAgU2V0IGB2YWx1ZWAgKHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSkuXG4gKlxuICogQHR5cGVkZWYgTWFwXG4gKiAgIFJhdyBzb3VyY2UgbWFwLlxuICpcbiAqICAgU2VlOlxuICogICA8aHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvc291cmNlLW1hcC9ibG9iLzYwYWRjYjAvc291cmNlLW1hcC5kLnRzI0wxNS1MMjM+LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHZlcnNpb25cbiAqICAgV2hpY2ggdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcCBzcGVjIHRoaXMgbWFwIGlzIGZvbGxvd2luZy5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gc291cmNlc1xuICogICBBbiBhcnJheSBvZiBVUkxzIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IG5hbWVzXG4gKiAgIEFuIGFycmF5IG9mIGlkZW50aWZpZXJzIHdoaWNoIGNhbiBiZSByZWZlcmVuY2VkIGJ5IGluZGl2aWR1YWwgbWFwcGluZ3MuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gW3NvdXJjZVJvb3RdXG4gKiAgIFRoZSBVUkwgcm9vdCBmcm9tIHdoaWNoIGFsbCBzb3VyY2VzIGFyZSByZWxhdGl2ZS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH0gW3NvdXJjZXNDb250ZW50XVxuICogICBBbiBhcnJheSBvZiBjb250ZW50cyBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1hcHBpbmdzXG4gKiAgIEEgc3RyaW5nIG9mIGJhc2U2NCBWTFFzIHdoaWNoIGNvbnRhaW4gdGhlIGFjdHVhbCBtYXBwaW5ncy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmaWxlXG4gKiAgIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiAmIFZGaWxlQ29yZU9wdGlvbnN9IE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqXG4gKiAgIEEgYnVuY2ggb2Yga2V5cyB0aGF0IHdpbGwgYmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGUuXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBSZXBvcnRlclNldHRpbmdzXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIHJlcG9ydGVycy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBbU2V0dGluZ3M9UmVwb3J0ZXJTZXR0aW5nc11cbiAqICAgT3B0aW9ucyB0eXBlLlxuICogQGNhbGxiYWNrIFJlcG9ydGVyXG4gKiAgIFR5cGUgZm9yIGEgcmVwb3J0ZXIuXG4gKiBAcGFyYW0ge0FycmF5PFZGaWxlPn0gZmlsZXNcbiAqICAgRmlsZXMgdG8gcmVwb3J0LlxuICogQHBhcmFtIHtTZXR0aW5nc30gb3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUmVwb3J0LlxuICovXG5cbmltcG9ydCB7VkZpbGVNZXNzYWdlfSBmcm9tICd2ZmlsZS1tZXNzYWdlJ1xuaW1wb3J0IHtwYXRofSBmcm9tICd2ZmlsZS9kby1ub3QtdXNlLWNvbmRpdGlvbmFsLW1pbnBhdGgnXG5pbXBvcnQge3Byb2N9IGZyb20gJ3ZmaWxlL2RvLW5vdC11c2UtY29uZGl0aW9uYWwtbWlucHJvYydcbmltcG9ydCB7dXJsVG9QYXRoLCBpc1VybH0gZnJvbSAndmZpbGUvZG8tbm90LXVzZS1jb25kaXRpb25hbC1taW51cmwnXG5cbi8qKlxuICogT3JkZXIgb2Ygc2V0dGluZyAobGVhc3Qgc3BlY2lmaWMgdG8gbW9zdCksIHdlIG5lZWQgdGhpcyBiZWNhdXNlIG90aGVyd2lzZVxuICogYHtzdGVtOiAnYScsIHBhdGg6ICd+L2IuanMnfWAgd291bGQgdGhyb3csIGFzIGEgcGF0aCBpcyBuZWVkZWQgYmVmb3JlIGFcbiAqIHN0ZW0gY2FuIGJlIHNldC5cbiAqL1xuY29uc3Qgb3JkZXIgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoW1xuICAnaGlzdG9yeScsXG4gICdwYXRoJyxcbiAgJ2Jhc2VuYW1lJyxcbiAgJ3N0ZW0nLFxuICAnZXh0bmFtZScsXG4gICdkaXJuYW1lJ1xuXSlcblxuZXhwb3J0IGNsYXNzIFZGaWxlIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB2aXJ0dWFsIGZpbGUuXG4gICAqXG4gICAqIGBvcHRpb25zYCBpcyB0cmVhdGVkIGFzOlxuICAgKlxuICAgKiAqICAgYHN0cmluZ2Agb3IgYFVpbnQ4QXJyYXlgIFx1MjAxNCBge3ZhbHVlOiBvcHRpb25zfWBcbiAgICogKiAgIGBVUkxgIFx1MjAxNCBge3BhdGg6IG9wdGlvbnN9YFxuICAgKiAqICAgYFZGaWxlYCBcdTIwMTQgc2hhbGxvdyBjb3BpZXMgaXRzIGRhdGEgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICogKiAgIGBvYmplY3RgIFx1MjAxNCBhbGwgZmllbGRzIGFyZSBzaGFsbG93IGNvcGllZCBvdmVyIHRvIHRoZSBuZXcgZmlsZVxuICAgKlxuICAgKiBQYXRoIHJlbGF0ZWQgZmllbGRzIGFyZSBzZXQgaW4gdGhlIGZvbGxvd2luZyBvcmRlciAobGVhc3Qgc3BlY2lmaWMgdG9cbiAgICogbW9zdCBzcGVjaWZpYyk6IGBoaXN0b3J5YCwgYHBhdGhgLCBgYmFzZW5hbWVgLCBgc3RlbWAsIGBleHRuYW1lYCxcbiAgICogYGRpcm5hbWVgLlxuICAgKlxuICAgKiBZb3UgY2Fubm90IHNldCBgZGlybmFtZWAgb3IgYGV4dG5hbWVgIHdpdGhvdXQgc2V0dGluZyBlaXRoZXIgYGhpc3RvcnlgLFxuICAgKiBgcGF0aGAsIGBiYXNlbmFtZWAsIG9yIGBzdGVtYCB0b28uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAgICogICBGaWxlIHZhbHVlLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIE5ldyBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgLyoqIEB0eXBlIHtPcHRpb25zIHwgVkZpbGV9ICovXG4gICAgbGV0IG9wdGlvbnNcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgIH0gZWxzZSBpZiAoaXNVcmwodmFsdWUpKSB7XG4gICAgICBvcHRpb25zID0ge3BhdGg6IHZhbHVlfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCBpc1VpbnQ4QXJyYXkodmFsdWUpKSB7XG4gICAgICBvcHRpb25zID0ge3ZhbHVlfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gdmFsdWVcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cblxuICAgIC8qKlxuICAgICAqIEJhc2Ugb2YgYHBhdGhgIChkZWZhdWx0OiBgcHJvY2Vzcy5jd2QoKWAgb3IgYCcvJ2AgaW4gYnJvd3NlcnMpLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLmN3ZCA9IHByb2MuY3dkKClcblxuICAgIC8qKlxuICAgICAqIFBsYWNlIHRvIHN0b3JlIGN1c3RvbSBpbmZvIChkZWZhdWx0OiBge31gKS5cbiAgICAgKlxuICAgICAqIEl0XHUyMDE5cyBPSyB0byBzdG9yZSBjdXN0b20gZGF0YSBkaXJlY3RseSBvbiB0aGUgZmlsZSBidXQgbW92aW5nIGl0IHRvXG4gICAgICogYGRhdGFgIGlzIHJlY29tbWVuZGVkLlxuICAgICAqXG4gICAgICogQHR5cGUge0RhdGF9XG4gICAgICovXG4gICAgdGhpcy5kYXRhID0ge31cblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgZmlsZSBwYXRocyB0aGUgZmlsZSBtb3ZlZCBiZXR3ZWVuLlxuICAgICAqXG4gICAgICogVGhlIGZpcnN0IGlzIHRoZSBvcmlnaW5hbCBwYXRoIGFuZCB0aGUgbGFzdCBpcyB0aGUgY3VycmVudCBwYXRoLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gICAgICovXG4gICAgdGhpcy5oaXN0b3J5ID0gW11cblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgbWVzc2FnZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PFZGaWxlTWVzc2FnZT59XG4gICAgICovXG4gICAgdGhpcy5tZXNzYWdlcyA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBSYXcgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7VmFsdWV9XG4gICAgICovXG4gICAgdGhpcy52YWx1ZVxuXG4gICAgLy8gVGhlIGJlbG93IGFyZSBub24tc3RhbmRhcmQsIHRoZXkgYXJlIFx1MjAxQ3dlbGwta25vd25cdTIwMUQuXG4gICAgLy8gQXMgaW4sIHVzZWQgaW4gc2V2ZXJhbCB0b29scy5cbiAgICAvKipcbiAgICAgKiBTb3VyY2UgbWFwLlxuICAgICAqXG4gICAgICogVGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGBSYXdTb3VyY2VNYXBgIHR5cGUgZnJvbSB0aGUgYHNvdXJjZS1tYXBgXG4gICAgICogbW9kdWxlLlxuICAgICAqXG4gICAgICogQHR5cGUge01hcCB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5tYXBcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSwgbm9uLXN0cmluZywgY29tcGlsZWQsIHJlcHJlc2VudGF0aW9uLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IHVuaWZpZWQgdG8gc3RvcmUgbm9uLXN0cmluZyByZXN1bHRzLlxuICAgICAqIE9uZSBleGFtcGxlIGlzIHdoZW4gdHVybmluZyBtYXJrZG93biBpbnRvIFJlYWN0IG5vZGVzLlxuICAgICAqXG4gICAgICogQHR5cGUge3Vua25vd259XG4gICAgICovXG4gICAgdGhpcy5yZXN1bHRcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgYSBmaWxlIHdhcyBzYXZlZCB0byBkaXNrLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IHZmaWxlIHJlcG9ydGVycy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuc3RvcmVkXG4gICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cblxuICAgIC8vIFNldCBwYXRoIHJlbGF0ZWQgcHJvcGVydGllcyBpbiB0aGUgY29ycmVjdCBvcmRlci5cbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBvcmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHByb3AgPSBvcmRlcltpbmRleF1cblxuICAgICAgLy8gTm90ZTogd2Ugc3BlY2lmaWNhbGx5IHVzZSBgaW5gIGluc3RlYWQgb2YgYGhhc093blByb3BlcnR5YCB0byBhY2NlcHRcbiAgICAgIC8vIGB2ZmlsZWBzIHRvby5cbiAgICAgIGlmIChcbiAgICAgICAgcHJvcCBpbiBvcHRpb25zICYmXG4gICAgICAgIG9wdGlvbnNbcHJvcF0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBvcHRpb25zW3Byb3BdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgZG9lc25cdTIwMTl0IHVuZGVyc3RhbmQgYmFzaWMgcmVhbGl0eS5cbiAgICAgICAgdGhpc1twcm9wXSA9IHByb3AgPT09ICdoaXN0b3J5JyA/IFsuLi5vcHRpb25zW3Byb3BdXSA6IG9wdGlvbnNbcHJvcF1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcHJvcFxuXG4gICAgLy8gU2V0IG5vbi1wYXRoIHJlbGF0ZWQgcHJvcGVydGllcy5cbiAgICBmb3IgKHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgaWYgKCFvcmRlci5pbmNsdWRlcyhwcm9wKSkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBmaW5lIHRvIHNldCBvdGhlciB0aGluZ3MuXG4gICAgICAgIHRoaXNbcHJvcF0gPSBvcHRpb25zW3Byb3BdXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgQmFzZW5hbWUuXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5iYXNlbmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IGJhc2VuYW1lIChpbmNsdWRpbmcgZXh0bmFtZSkgKGAnaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgY29udGFpbiBwYXRoIHNlcGFyYXRvcnMgKGAnLydgIG9uIHVuaXgsIG1hY09TLCBhbmQgYnJvd3NlcnMsIGAnXFwnYFxuICAgKiBvbiB3aW5kb3dzKS5cbiAgICogQ2Fubm90IGJlIG51bGxpZmllZCAodXNlIGBmaWxlLnBhdGggPSBmaWxlLmRpcm5hbWVgIGluc3RlYWQpLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZW5hbWVcbiAgICogICBCYXNlbmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGJhc2VuYW1lKGJhc2VuYW1lKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoYmFzZW5hbWUsICdiYXNlbmFtZScpXG4gICAgYXNzZXJ0UGFydChiYXNlbmFtZSwgJ2Jhc2VuYW1lJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lIHx8ICcnLCBiYXNlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBhcmVudCBwYXRoIChleGFtcGxlOiBgJ34nYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRGlybmFtZS5cbiAgICovXG4gIGdldCBkaXJuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguZGlybmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwYXJlbnQgcGF0aCAoZXhhbXBsZTogYCd+J2ApLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgc2V0IGlmIHRoZXJlXHUyMDE5cyBubyBgcGF0aGAgeWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gZGlybmFtZVxuICAgKiAgIERpcm5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBkaXJuYW1lKGRpcm5hbWUpIHtcbiAgICBhc3NlcnRQYXRoKHRoaXMuYmFzZW5hbWUsICdkaXJuYW1lJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSB8fCAnJywgdGhpcy5iYXNlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBFeHRuYW1lLlxuICAgKi9cbiAgZ2V0IGV4dG5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5leHRuYW1lKHRoaXMucGF0aCkgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBzZXQgaWYgdGhlcmVcdTIwMTlzIG5vIGBwYXRoYCB5ZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBleHRuYW1lXG4gICAqICAgRXh0bmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGV4dG5hbWUoZXh0bmFtZSkge1xuICAgIGFzc2VydFBhcnQoZXh0bmFtZSwgJ2V4dG5hbWUnKVxuICAgIGFzc2VydFBhdGgodGhpcy5kaXJuYW1lLCAnZXh0bmFtZScpXG5cbiAgICBpZiAoZXh0bmFtZSkge1xuICAgICAgaWYgKGV4dG5hbWUuY29kZVBvaW50QXQoMCkgIT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gJylcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dG5hbWUuaW5jbHVkZXMoJy4nLCAxKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLnN0ZW0gKyAoZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgUGF0aC5cbiAgICovXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aCAtIDFdXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQuXG4gICAqIFlvdSBjYW4gc2V0IGEgZmlsZSBVUkwgKGEgYFVSTGAgb2JqZWN0IHdpdGggYSBgZmlsZTpgIHByb3RvY29sKSB3aGljaCB3aWxsXG4gICAqIGJlIHR1cm5lZCBpbnRvIGEgcGF0aCB3aXRoIGB1cmwuZmlsZVVSTFRvUGF0aGAuXG4gICAqXG4gICAqIEBwYXJhbSB7VVJMIHwgc3RyaW5nfSBwYXRoXG4gICAqICAgUGF0aC5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHBhdGgocGF0aCkge1xuICAgIGlmIChpc1VybChwYXRoKSkge1xuICAgICAgcGF0aCA9IHVybFRvUGF0aChwYXRoKVxuICAgIH1cblxuICAgIGFzc2VydE5vbkVtcHR5KHBhdGgsICdwYXRoJylcblxuICAgIGlmICh0aGlzLnBhdGggIT09IHBhdGgpIHtcbiAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKHBhdGgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBTdGVtLlxuICAgKi9cbiAgZ2V0IHN0ZW0oKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IHBhdGguYmFzZW5hbWUodGhpcy5wYXRoLCB0aGlzLmV4dG5hbWUpXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ZW1cbiAgICogICBTdGVtLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgc3RlbShzdGVtKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoc3RlbSwgJ3N0ZW0nKVxuICAgIGFzc2VydFBhcnQoc3RlbSwgJ3N0ZW0nKVxuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIHN0ZW0gKyAodGhpcy5leHRuYW1lIHx8ICcnKSlcbiAgfVxuXG4gIC8vIE5vcm1hbCBwcm90b3R5cGFsIG1ldGhvZHMuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBmYXRhbCBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgdHJ1ZWAgKGVycm9yOyBmaWxlIG5vdCB1c2FibGUpXG4gICAqIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKiAgIE5ldmVyLlxuICAgKiBAdGhyb3dzIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIGZhaWwoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbilcblxuICAgIG1lc3NhZ2UuZmF0YWwgPSB0cnVlXG5cbiAgICB0aHJvdyBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluZm8gbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHVuZGVmaW5lZGAgKGluZm87IGNoYW5nZVxuICAgKiBsaWtlbHkgbm90IG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgaW5mbyhjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgZmFsc2VgICh3YXJuaW5nOyBjaGFuZ2UgbWF5IGJlXG4gICAqIG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFZGaWxlTWVzc2FnZShcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgICBjYXVzZU9yUmVhc29uLFxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSxcbiAgICAgIG9yaWdpblxuICAgIClcblxuICAgIGlmICh0aGlzLnBhdGgpIHtcbiAgICAgIG1lc3NhZ2UubmFtZSA9IHRoaXMucGF0aCArICc6JyArIG1lc3NhZ2UubmFtZVxuICAgICAgbWVzc2FnZS5maWxlID0gdGhpcy5wYXRoXG4gICAgfVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IGZhbHNlXG5cbiAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSlcblxuICAgIHJldHVybiBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSBmaWxlLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiB3aGljaCBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCBkZXBlbmRzIG9uIHRoZSBlbmdpbmUuXG4gICAqID4gRm9yIGluZm8gb24gTm9kZS5qcywgc2VlOlxuICAgKiA+IDxodHRwczovL25vZGVqcy5vcmcvYXBpL3V0aWwuaHRtbCN3aGF0d2ctc3VwcG9ydGVkLWVuY29kaW5ncz4uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nPSd1dGY4J11cbiAgICogICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdW5kZXJzdGFuZCBgdmFsdWVgIGFzIHdoZW4gaXRcdTIwMTlzIGEgYFVpbnQ4QXJyYXlgXG4gICAqICAgKGRlZmF1bHQ6IGAndXRmLTgnYCkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgU2VyaWFsaXplZCBmaWxlLlxuICAgKi9cbiAgdG9TdHJpbmcoZW5jb2RpbmcpIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoZW5jb2RpbmcgfHwgdW5kZWZpbmVkKVxuICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh0aGlzLnZhbHVlKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBhIHBhdGggKGFzIGluLCBkb2VzIG5vdCBjb250YWluIGBwYXRoLnNlcGApLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFydFxuICogICBGaWxlIHBhdGggcGFydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhcnQocGFydCwgbmFtZSkge1xuICBpZiAocGFydCAmJiBwYXJ0LmluY2x1ZGVzKHBhdGguc2VwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdgJyArIG5hbWUgKyAnYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgJyArIHBhdGguc2VwICsgJ2AnXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBlbXB0eS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGFydFxuICogICBUaGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhcnQgaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnROb25FbXB0eShwYXJ0LCBuYW1lKSB7XG4gIGlmICghcGFydCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGVtcHR5JylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBgcGF0aGAgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBwYXRoXG4gKiAgIFBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBEZXBlbmRlbmN5IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoLCBuYW1lKSB7XG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZyBgJyArIG5hbWUgKyAnYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbycpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICB0aGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBVaW50OEFycmF5fVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICovXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgdmFsdWUgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdieXRlTGVuZ3RoJyBpbiB2YWx1ZSAmJlxuICAgICAgJ2J5dGVPZmZzZXQnIGluIHZhbHVlXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEVycm9ySW5mb1xuICogICBJbmZvIG9uIGEgYHBhcnNlNWAgZXJyb3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVhc29uXG4gKiAgIFJlYXNvbiBvZiBlcnJvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZXNjcmlwdGlvblxuICogICBNb3JlIGluZm8gb24gZXJyb3IuXG4gKiBAcHJvcGVydHkge2ZhbHNlfSBbdXJsXVxuICogICBUdXJuIG9mZiBpZiB0aGlzIGlzIG5vdCBkb2N1bWVudGVkIGluIHRoZSBodG1sNSBzcGVjIChvcHRpb25hbCkuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGVycm9ycyA9IHtcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG1ldGFkYXRhIGVsZW1lbnQgYWZ0ZXIgaGVhZCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBlbGVtZW50IGFmdGVyIGhlYWQuIEV4cGVjdGVkIHRoZSBlbGVtZW50IGJlZm9yZSBgPC9oZWFkPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIGVtcHR5IGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgPmAgb3IgYC0+YC4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgY29tbWVudHMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIHB1YmxpYyBpZGVudGlmaWVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGA+YC4gRXhwZWN0ZWQgYSBjbG9zaW5nIGBcImAgb3IgYFxcJ2AgYWZ0ZXIgdGhlIHB1YmxpYyBpZGVudGlmaWVyJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBzeXN0ZW0gaWRlbnRpZmllcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPmAuIEV4cGVjdGVkIGEgY2xvc2luZyBgXCJgIG9yIGBcXCdgIGFmdGVyIHRoZSBpZGVudGlmaWVyIGlkZW50aWZpZXInXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5vbi1kaWdpdCBhdCBzdGFydCBvZiBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFswLTldYCBmb3IgZGVjaW1hbCByZWZlcmVuY2VzIG9yIGBbMC05YS1mQS1GXWAgZm9yIGhleGFkZWNpbWFsIHJlZmVyZW5jZXMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjZGF0YUluSHRtbENvbnRlbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIENEQVRBIHNlY3Rpb24gaW4gSFRNTCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPCFbQ0RBVEFbYCBpbiBIVE1MLiBSZW1vdmUgaXQsIHVzZSBhIGNvbW1lbnQsIG9yIGVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHRvbyBiaWcgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgaGlnaCBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBFeHBlY3RlZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB0byBiZSBhdCBtb3N0IGhleGFkZWNpbWFsIDEwZmZmZiAob3IgZGVjaW1hbCAxMTE0MTExKSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNsb3NpbmcgdGFnIHdpdGggb3BlbiBjaGlsZCBlbGVtZW50cycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNsb3NpbmcgdGFnLiBFeHBlY3RlZCBvdGhlciB0YWdzIHRvIGJlIGNsb3NlZCBmaXJzdCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW06IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIGAleGAuIEV4cGVjdGVkIGEgbm9uLWNvbnRyb2wgY29kZSBwb2ludCwgMHgwMCwgb3IgQVNDSUkgd2hpdGVzcGFjZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNvbnRyb2wgY2hhcmFjdGVyIGluIHJlZmVyZW5jZS4gRXhwZWN0ZWQgYSBub24tY29udHJvbCBjb2RlIHBvaW50LCAweDAwLCBvciBBU0NJSSB3aGl0ZXNwYWNlJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkOiB7XG4gICAgcmVhc29uOiAnRGlzYWxsb3dlZCBjb250ZW50IGluc2lkZSBgPG5vc2NyaXB0PmAgaW4gYDxoZWFkPmAnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgdGV4dCBjaGFyYWN0ZXIgYCVjYC4gT25seSB1c2UgdGV4dCBpbiBgPG5vc2NyaXB0PmBzIGluIGA8Ym9keT5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBkdXBsaWNhdGVBdHRyaWJ1dGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGR1cGxpY2F0ZSBhdHRyaWJ1dGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBkb3VibGUgYXR0cmlidXRlLiBFeHBlY3RlZCBhdHRyaWJ1dGVzIHRvIG9jY3VyIG9ubHkgb25jZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhBdHRyaWJ1dGVzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUgb24gY2xvc2luZyB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggYXQgZW5kIG9mIGNsb3NpbmcgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB1bm9wZW5lZCBlbmQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIHRhZy4gRXhwZWN0ZWQgbm8gZW5kIHRhZyBvciBhbm90aGVyIGVuZCB0YWcnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkJlZm9yZVRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhZyBuYW1lIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNkYXRhOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBDREFUQScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgXV0+YCB0byBjbG9zZSB0aGUgQ0RBVEEnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNvbW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkRvY3R5cGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGEgdmFsaWQgZG9jdHlwZSAoc3VjaCBhcyBgPCFkb2N0eXBlIGh0bWw+YCknXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBlbGVtZW50IHRoYXQgY2FuIG9ubHkgY29udGFpbiB0ZXh0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRleHQgb3IgYSBjbG9zaW5nIHRhZycsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBjb21tZW50IGluc2lkZSBzY3JpcHQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGA+YCB0byBjbG9zZSB0aGUgdGFnJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlDbG9zZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgY2xvc2VkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgb3BlbmVkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgPCEtLWAgdG8gb3BlbiB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdJbnZhbGlkIHNlcXVlbmNlIGFmdGVyIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIHNlcXVlbmNlIGF0IGAlY2AuIEV4cGVjdGVkIGBwdWJsaWNgIG9yIGBzeXN0ZW1gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnSW52YWxpZCBmaXJzdCBjaGFyYWN0ZXIgaW4gdGFnIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZERvY3R5cGU6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUuIEV4cGVjdGVkIGRvY3R5cGUgYmVmb3JlIGhlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQ6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgYDxoZWFkPmAgc3RhcnQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIHN0YXJ0IHRhZyBgPGhlYWQ+YC4gRXhwZWN0ZWQgYDxoZWFkPmAgZGlyZWN0bHkgYWZ0ZXIgZG9jdHlwZScsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0F0dHJpYnV0ZVZhbHVlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBhbiBhdHRyaWJ1dGUgdmFsdWUgb3Igbm8gYCVjLTFgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgZG9jdHlwZSBiZWZvcmUgb3RoZXIgY29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdFeHBlY3RlZCBhIGA8IWRvY3R5cGUgaHRtbD5gIGJlZm9yZSBhbnl0aGluZyBlbHNlJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUgZW5kIGF0IGAlY2AuIEV4cGVjdGVkIGBodG1sYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgaWRlbnRpZmllciBmb3IgYHB1YmxpY2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBgc3lzdGVtYCBpbnN0ZWFkIChzdWdnZXN0ZWQ6IGBcImFib3V0OmxlZ2FjeS1jb21wYXRcImApJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0VuZFRhZ05hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIG5hbWUgaW4gZW5kIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGA7YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGFmdGVyIHB1YmxpYyBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQ6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmVmb3JlRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmVmb3JlIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXM6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmV0d2VlbiBhdHRyaWJ1dGVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ01pc3Npbmcgd2hpdGVzcGFjZSBiZXR3ZWVuIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBuZXN0ZWQgY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGA8IS0tYC4gRXhwZWN0ZWQgYC0tPmAnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWROb3NjcmlwdEluSGVhZDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbmVzdGVkIGA8bm9zY3JpcHQ+YCBpbiBgPGhlYWQ+YCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPG5vc2NyaXB0PmAuIEV4cGVjdGVkIGEgY2xvc2luZyB0YWcgb3IgYSBtZXRhIGVsZW1lbnQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vbkNvbmZvcm1pbmdEb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub24tY29uZm9ybWluZyBkb2N0eXBlIGRlY2xhcmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdFeHBlY3RlZCBgPCFkb2N0eXBlIGh0bWw+YCBvciBgPCFkb2N0eXBlIGh0bWwgc3lzdGVtIFwiYWJvdXQ6bGVnYWN5LWNvbXBhdFwiPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdHJhaWxpbmcgc2xhc2ggb24gc3RhcnQgdGFnIG9mIG5vbi12b2lkIGVsZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgL2AuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uY2hhcmFjdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ1VuZXhwZWN0ZWQgbm9uY2hhcmFjdGVyIGNvZGUgcG9pbnQgcmVmZXJlbmNlZCBieSBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBub25jaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25jaGFyYWN0ZXJJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub25jaGFyYWN0ZXIgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIG5vbmNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG51bGxDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIE5VTEwgY2hhcmFjdGVyIHJlZmVyZW5jZWQgYnkgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2UgTlVMTCBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2Y6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGNsb3NpbmcgdGFnIGluc3RlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc3Vycm9nYXRlIGNoYXJhY3RlciByZWZlcmVuY2VkIGJ5IGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBzdXJyb2dhdGVJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBzdXJyb2dhdGUgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ0ludmFsaWQgY2hhcmFjdGVyIGFmdGVyIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgYXQgYCVjYC4gRXhwZWN0ZWQgYD5gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIGF0dHJpYnV0ZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIHdoaXRlc3BhY2UsIGAvYCwgYD5gLCBgPWAsIG9yIHByb2JhYmx5IGFuIEFTQ0lJIGxldHRlcidcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBRdW90ZSB0aGUgYXR0cmlidXRlIHZhbHVlIHRvIGluY2x1ZGUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVxdWFscyBzaWduIGJlZm9yZSBhdHRyaWJ1dGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEFkZCBhbiBhdHRyaWJ1dGUgbmFtZSBiZWZvcmUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkTnVsbENoYXJhY3Rlcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgTlVMTCBjaGFyYWN0ZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIE5VTEwgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHF1ZXN0aW9uIG1hcmsgaW5zdGVhZCBvZiB0YWcgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFNvbGlkdXNJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgaXQgZm9sbG93ZWQgYnkgYD5gIG9yIGluIGEgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdW5rbm93biBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNoYXJhY3RlciByZWZlcmVuY2UuIEV4cGVjdGVkIGtub3duIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzJ1xuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuUGFyc2VyRXJyb3J9IFBhcnNlckVycm9yXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge2tleW9mIGVycm9yc30gRXJyb3JDb2RlXG4gKiAgIEtub3duIG5hbWVzIG9mIHBhcnNlIGVycm9ycy5cbiAqXG4gKiBAdHlwZWRlZiB7UGFydGlhbDxSZWNvcmQ8RXJyb3JDb2RlLCBFcnJvclNldmVyaXR5IHwgbnVsbCB8IHVuZGVmaW5lZD4+fSBFcnJvck9wdGlvbnNcbiAqICAgT3B0aW9ucyB0aGF0IGRlZmluZSB0aGUgc2V2ZXJpdHkgb2YgZXJyb3JzLlxuICpcbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgMCB8IDEgfCAyfSBFcnJvclNldmVyaXR5XG4gKiAgIEVycm9yIHNldmVyaXR5OlxuICpcbiAqICAgKiBgMGAgb3IgYGZhbHNlYFxuICogICAgIFx1MjAxNCB0dXJuIHRoZSBwYXJzZSBlcnJvciBvZmZcbiAqICAgKiBgMWAgb3IgYHRydWVgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIGludG8gYSB3YXJuaW5nXG4gKiAgICogYDJgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIGludG8gYW4gYWN0dWFsIGVycm9yOiBwcm9jZXNzaW5nIHN0b3BzLlxuICpcbiAqIEB0eXBlZGVmIEV4dHJhT3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgZGVmaW5lIGhvdyB0byBwYXJzZSBIVE1MLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2ZyYWdtZW50PWZhbHNlXVxuICogICBTcGVjaWZ5IHdoZXRoZXIgdG8gcGFyc2UgYSBmcmFnbWVudCwgaW5zdGVhZCBvZiBhIGNvbXBsZXRlIGRvY3VtZW50XG4gKiAgIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEluIGRvY3VtZW50IG1vZGUsIHVub3BlbmVkIGBodG1sYCwgYGhlYWRgLCBhbmQgYGJvZHlgIGVsZW1lbnRzIGFyZSBvcGVuZWRcbiAqICAgaW4ganVzdCB0aGUgcmlnaHQgcGxhY2VzLlxuICogQHByb3BlcnR5IHtPbkVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29uZXJyb3JdXG4gKiAgIENhbGwgYG9uZXJyb3JgIHdpdGggcGFyc2UgZXJyb3JzIHdoaWxlIHBhcnNpbmcgKG9wdGlvbmFsKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBwYXJzZSBlcnJvcnMgYXJlIGN1cnJlbnRseSBiZWluZyBhZGRlZCB0byBIVE1MLlxuICogICA+IE5vdCBhbGwgZXJyb3JzIGVtaXR0ZWQgYnkgcGFyc2U1IChvciB1cykgYXJlIHNwZWNjZWQgeWV0LlxuICogICA+IFNvbWUgZG9jdW1lbnRhdGlvbiBtYXkgc3RpbGwgYmUgbWlzc2luZy5cbiAqXG4gKiAgIFNwZWNpZmljIHJ1bGVzIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHNldHRpbmcgdGhlbSB0byBgZmFsc2VgIChvciBgMGApLlxuICogICBUaGUgZGVmYXVsdCwgd2hlbiBgZW1pdFBhcnNlRXJyb3JzOiB0cnVlYCwgaXMgYHRydWVgIChvciBgMWApLCBhbmQgbWVhbnNcbiAqICAgdGhhdCBydWxlcyBlbWl0IGFzIHdhcm5pbmdzLlxuICogICBSdWxlcyBjYW4gYWxzbyBiZSBjb25maWd1cmVkIHdpdGggYDJgLCB0byB0dXJuIHRoZW0gaW50byBmYXRhbCBlcnJvcnMuXG4gKlxuICogQHR5cGVkZWYge09taXQ8aW1wb3J0KCdoYXN0LXV0aWwtZnJvbS1wYXJzZTUnKS5PcHRpb25zLCAnZmlsZSc+fSBGcm9tUGFyc2U1T3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgY2FuIGJlIHBhc3NlZCB0aHJvdWdoIHRvIGBoYXN0LXV0aWwtZnJvbS1wYXJzZTVgLlxuICpcbiAqIEBjYWxsYmFjayBPbkVycm9yXG4gKiAgIEhhbmRsZSBwYXJzZSBlcnJvcnMuXG4gKiBAcGFyYW0ge1ZGaWxlTWVzc2FnZX0gZXJyb3JcbiAqICAgTWVzc2FnZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWQgfCB2b2lkfVxuICogICBOb3RoaW5nLlxuICpcbiAqICAgTm90ZTogYHZvaWRgIGluY2x1ZGVkIHVudGlsIFRTIGluZmVycyBgdW5kZWZpbmVkYCBuaWNlbHkuXG4gKlxuICogQHR5cGVkZWYge0Zyb21QYXJzZTVPcHRpb25zICYgRXJyb3JPcHRpb25zICYgRXh0cmFPcHRpb25zfSBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7ZnJvbVBhcnNlNX0gZnJvbSAnaGFzdC11dGlsLWZyb20tcGFyc2U1J1xuaW1wb3J0IHtwYXJzZSwgcGFyc2VGcmFnbWVudH0gZnJvbSAncGFyc2U1J1xuaW1wb3J0IHtWRmlsZX0gZnJvbSAndmZpbGUnXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuL2Vycm9ycy5qcydcblxuY29uc3QgYmFzZSA9ICdodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcGFyc2UtZXJyb3ItJ1xuXG5jb25zdCBkYXNoVG9DYW1lbFJlID0gLy1bYS16XS9nXG5jb25zdCBmb3JtYXRDUmUgPSAvJWMoPzooWy0rXSkoXFxkKykpPy9nXG5jb25zdCBmb3JtYXRYUmUgPSAvJXgvZ1xuXG5jb25zdCBmYXRhbGl0aWVzID0gezI6IHRydWUsIDE6IGZhbHNlLCAwOiBudWxsfVxuXG4vKiogQHR5cGUge1JlYWRvbmx5PE9wdGlvbnM+fSAqL1xuY29uc3QgZW1wdHlPcHRpb25zID0ge31cblxuLyoqXG4gKiBUdXJuIHNlcmlhbGl6ZWQgSFRNTCBpbnRvIGEgaGFzdCB0cmVlLlxuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gdmFsdWVcbiAqICAgU2VyaWFsaXplZCBIVE1MIHRvIHBhcnNlLlxuICogQHBhcmFtIHtSZWFkb25seTxPcHRpb25zPiB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7Um9vdH1cbiAqICAgVHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IdG1sKHZhbHVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3Qgb25lcnJvciA9IHNldHRpbmdzLm9uZXJyb3JcbiAgY29uc3QgZmlsZSA9IHZhbHVlIGluc3RhbmNlb2YgVkZpbGUgPyB2YWx1ZSA6IG5ldyBWRmlsZSh2YWx1ZSlcbiAgY29uc3QgZm4gPSBzZXR0aW5ncy5mcmFnbWVudCA/IHBhcnNlRnJhZ21lbnQgOiBwYXJzZVxuICBjb25zdCBkb2MgPSBTdHJpbmcoZmlsZSlcbiAgY29uc3QgcDVkb2MgPSBmbihkb2MsIHtcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiB0cnVlLFxuICAgIC8vIE5vdGUgYHBhcnNlNWAgdHlwZXMgY3VycmVudGx5IGRvIG5vdCBhbGxvdyBgdW5kZWZpbmVkYC5cbiAgICBvblBhcnNlRXJyb3I6IHNldHRpbmdzLm9uZXJyb3IgPyBpbnRlcm5hbE9uZXJyb3IgOiBudWxsLFxuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IGZhbHNlXG4gIH0pXG5cbiAgLy8gYHBhcnNlNWAgcmV0dXJucyBkb2N1bWVudCB3aGljaCBhcmUgYWx3YXlzIG1hcHBlZCB0byByb290cy5cbiAgcmV0dXJuIC8qKiBAdHlwZSB7Um9vdH0gKi8gKFxuICAgIGZyb21QYXJzZTUocDVkb2MsIHtcbiAgICAgIGZpbGUsXG4gICAgICBzcGFjZTogc2V0dGluZ3Muc3BhY2UsXG4gICAgICB2ZXJib3NlOiBzZXR0aW5ncy52ZXJib3NlXG4gICAgfSlcbiAgKVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYSBwYXJzZSBlcnJvci5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJzZXJFcnJvcn0gZXJyb3JcbiAgICogICBQYXJzZTUgZXJyb3IuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIGludGVybmFsT25lcnJvcihlcnJvcikge1xuICAgIGNvbnN0IGNvZGUgPSBlcnJvci5jb2RlXG4gICAgY29uc3QgbmFtZSA9IGNhbWVsY2FzZShjb2RlKVxuICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5nc1tuYW1lXVxuICAgIGNvbnN0IGNvbmZpZyA9IHNldHRpbmcgPT09IG51bGwgfHwgc2V0dGluZyA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHNldHRpbmdcbiAgICBjb25zdCBsZXZlbCA9IHR5cGVvZiBjb25maWcgPT09ICdudW1iZXInID8gY29uZmlnIDogY29uZmlnID8gMSA6IDBcblxuICAgIGlmIChsZXZlbCkge1xuICAgICAgY29uc3QgaW5mbyA9IGVycm9yc1tuYW1lXVxuICAgICAgYXNzZXJ0KGluZm8sICdleHBlY3RlZCBrbm93biBlcnJvciBmcm9tIGBwYXJzZTVgJylcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBWRmlsZU1lc3NhZ2UoZm9ybWF0KGluZm8ucmVhc29uKSwge1xuICAgICAgICBwbGFjZToge1xuICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICBsaW5lOiBlcnJvci5zdGFydExpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGVycm9yLnN0YXJ0Q29sLFxuICAgICAgICAgICAgb2Zmc2V0OiBlcnJvci5zdGFydE9mZnNldFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5kOiB7XG4gICAgICAgICAgICBsaW5lOiBlcnJvci5lbmRMaW5lLFxuICAgICAgICAgICAgY29sdW1uOiBlcnJvci5lbmRDb2wsXG4gICAgICAgICAgICBvZmZzZXQ6IGVycm9yLmVuZE9mZnNldFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcnVsZUlkOiBjb2RlLFxuICAgICAgICBzb3VyY2U6ICdoYXN0LXV0aWwtZnJvbS1odG1sJ1xuICAgICAgfSlcblxuICAgICAgaWYgKGZpbGUucGF0aCkge1xuICAgICAgICBtZXNzYWdlLmZpbGUgPSBmaWxlLnBhdGhcbiAgICAgICAgbWVzc2FnZS5uYW1lID0gZmlsZS5wYXRoICsgJzonICsgbWVzc2FnZS5uYW1lXG4gICAgICB9XG5cbiAgICAgIG1lc3NhZ2UuZmF0YWwgPSBmYXRhbGl0aWVzW2xldmVsXVxuICAgICAgbWVzc2FnZS5ub3RlID0gZm9ybWF0KGluZm8uZGVzY3JpcHRpb24pXG4gICAgICBtZXNzYWdlLnVybCA9IGluZm8udXJsID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IGJhc2UgKyBjb2RlXG5cbiAgICAgIGFzc2VydChvbmVycm9yLCAnYGludGVybmFsT25lcnJvcmAgaXMgbm90IHBhc3NlZCBpZiBgb25lcnJvcmAgaXMgbm90IHNldCcpXG4gICAgICBvbmVycm9yKG1lc3NhZ2UpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybWF0IGEgaHVtYW4gcmVhZGFibGUgc3RyaW5nIGFib3V0IGFuIGVycm9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAgICogICBWYWx1ZSB0byBmb3JtYXQuXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JtYXQodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKGZvcm1hdENSZSwgZm9ybWF0QykucmVwbGFjZShmb3JtYXRYUmUsIGZvcm1hdFgpXG5cbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0IHRoZSBjaGFyYWN0ZXIuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IF9cbiAgICAgICAqICAgTWF0Y2guXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gJDFcbiAgICAgICAqICAgU2lnbiAoYC1gIG9yIGArYCwgb3B0aW9uYWwpLlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9ICQyXG4gICAgICAgKiAgIE9mZnNldC5cbiAgICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gZm9ybWF0QyhfLCAkMSwgJDIpIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgICAgICAoJDIgPyBOdW1iZXIucGFyc2VJbnQoJDIsIDEwKSA6IDApICogKCQxID09PSAnLScgPyAtMSA6IDEpXG4gICAgICAgIGNvbnN0IGNoYXIgPSBkb2MuY2hhckF0KGVycm9yLnN0YXJ0T2Zmc2V0ICsgb2Zmc2V0KVxuICAgICAgICByZXR1cm4gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpXG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0IHRoZSBjaGFyYWN0ZXIgY29kZS5cbiAgICAgICAqXG4gICAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAgICogICBGb3JtYXR0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGZvcm1hdFgoKSB7XG4gICAgICAgIHJldHVybiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGRvYy5jaGFyQ29kZUF0KGVycm9yLnN0YXJ0T2Zmc2V0KSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgRXJyb3IgY29kZSBpbiBkYXNoIGNhc2UuXG4gKiBAcmV0dXJucyB7RXJyb3JDb2RlfVxuICogICBFcnJvciBjb2RlIGluIGNhbWVsY2FzZS5cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKHZhbHVlKSB7XG4gIC8vIFRoaXMgc2hvdWxkIG1hdGNoIGFuIGVycm9yIGNvZGUuXG4gIHJldHVybiAvKiogQHR5cGUge0Vycm9yQ29kZX0gKi8gKHZhbHVlLnJlcGxhY2UoZGFzaFRvQ2FtZWxSZSwgZGFzaFRvQ2FtZWwpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogICBNYXRjaC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENhbWVsY2FzZWQuXG4gKi9cbmZ1bmN0aW9uIGRhc2hUb0NhbWVsKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyXG4gKiAgIENoYXJhY3Rlci5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZvcm1hdHRlZC5cbiAqL1xuZnVuY3Rpb24gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpIHtcbiAgcmV0dXJuIGNoYXIgPT09ICdgJyA/ICdgIGAgYCcgOiBjaGFyXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGNoYXJDb2RlXG4gKiAgIENoYXJhY3RlciBjb2RlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRm9ybWF0dGVkLlxuICovXG5mdW5jdGlvbiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGNoYXJDb2RlKSB7XG4gIHJldHVybiAnMHgnICsgY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgSFRNTCB2b2lkIHRhZyBuYW1lcy5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGh0bWxWb2lkRWxlbWVudHMgPSBbXG4gICdhcmVhJyxcbiAgJ2Jhc2UnLFxuICAnYmFzZWZvbnQnLFxuICAnYmdzb3VuZCcsXG4gICdicicsXG4gICdjb2wnLFxuICAnY29tbWFuZCcsXG4gICdlbWJlZCcsXG4gICdmcmFtZScsXG4gICdocicsXG4gICdpbWFnZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAna2V5Z2VuJyxcbiAgJ2xpbmsnLFxuICAnbWV0YScsXG4gICdwYXJhbScsXG4gICdzb3VyY2UnLFxuICAndHJhY2snLFxuICAnd2JyJ1xuXVxuIiwgIi8qKlxuICogQGNhbGxiYWNrIEhhbmRsZXJcbiAqICAgSGFuZGxlIGEgdmFsdWUsIHdpdGggYSBjZXJ0YWluIElEIGZpZWxkIHNldCB0byBhIGNlcnRhaW4gdmFsdWUuXG4gKiAgIFRoZSBJRCBmaWVsZCBpcyBwYXNzZWQgdG8gYHp3aXRjaGAsIGFuZCBpdFx1MjAxOXMgdmFsdWUgaXMgdGhpcyBmdW5jdGlvblx1MjAxOXNcbiAqICAgcGxhY2Ugb24gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICogQHBhcmFtIHsuLi5hbnl9IHBhcmFtZXRlcnNcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiAgIFRoZSBmaXJzdCB3aWxsIGJlIGFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYSBjZXJ0YWluIHZhbHVlLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVW5rbm93bkhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLCBidXQgaXRcdTIwMTlzIHNldCB0byBhIHZhbHVlXG4gKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIEFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYW4gdW5rbm93biB2YWx1ZS5cbiAqIEBwYXJhbSB7Li4uYW55fSByZXN0XG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgSW52YWxpZEhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIG5vdCBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgQW55IHVua25vd24gdmFsdWUuXG4gKiBAcGFyYW0gey4uLmFueX0gcmVzdFxuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqIEByZXR1cm5zIHt2b2lkfG51bGx8dW5kZWZpbmVkfG5ldmVyfVxuICogICBUaGlzIHNob3VsZCBjcmFzaCBvciByZXR1cm4gbm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gKHJlcXVpcmVkKS5cbiAqIEBwcm9wZXJ0eSB7SW52YWxpZH0gW2ludmFsaWRdXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7VW5rbm93bn0gW3Vua25vd25dXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciB1bmtub3duIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IFtoYW5kbGVyc11cbiAqICAgSGFuZGxlcnMgdG8gdXNlLlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogSGFuZGxlIHZhbHVlcyBiYXNlZCBvbiBhIGZpZWxkLlxuICpcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIEZpZWxkIHRvIHN3aXRjaCBvbi5cbiAqIEBwYXJhbSB7T3B0aW9uczxJbnZhbGlkLCBVbmtub3duLCBIYW5kbGVycz59IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcmV0dXJucyB7e3Vua25vd246IFVua25vd24sIGludmFsaWQ6IEludmFsaWQsIGhhbmRsZXJzOiBIYW5kbGVycywgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPik6IFJldHVyblR5cGU8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPiwgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8VW5rbm93bj4pOiBSZXR1cm5UeXBlPFVua25vd24+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHp3aXRjaChrZXksIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEJhc2VkIG9uIHRoZSBib3VuZCBga2V5YCwgYSByZXNwZWN0aXZlIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQuXG4gICAqIElmIGB2YWx1ZWAgaXMgbm90IGFuIG9iamVjdCwgb3IgZG9lc25cdTIwMTl0IGhhdmUgYSBga2V5YCBwcm9wZXJ0eSwgdGhlIHNwZWNpYWxcbiAgICogXHUyMDFDaW52YWxpZFx1MjAxRCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkLlxuICAgKiBJZiBgdmFsdWVgIGhhcyBhbiB1bmtub3duIGBrZXlgLCB0aGUgc3BlY2lhbCBcdTIwMUN1bmtub3duXHUyMDFEIGhhbmRsZXIgd2lsbCBiZVxuICAgKiBjYWxsZWQuXG4gICAqXG4gICAqIEFsbCBhcmd1bWVudHMsIGFuZCB0aGUgY29udGV4dCBvYmplY3QsIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgaGFuZGxlcixcbiAgICogYW5kIGl0XHUyMDE5cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiAgIEFueSBjb250ZXh0IG9iamVjdC5cbiAgICogQHBhcmFtIHt1bmtub3dufSBbdmFsdWVdXG4gICAqICAgQW55IHZhbHVlLlxuICAgKiBAcGFyYW0gey4uLnVua25vd259IHBhcmFtZXRlcnNcbiAgICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAgICogQHByb3BlcnR5IHtIYW5kbGVyfSBpbnZhbGlkXG4gICAqICAgSGFuZGxlIGZvciB2YWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcn0gdW5rbm93blxuICAgKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZCwgYnV0IGl0XHUyMDE5cyBzZXQgdG8gYSB2YWx1ZVxuICAgKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IGhhbmRsZXJzXG4gICAqICAgUmVjb3JkIG9mIGhhbmRsZXJzLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn1cbiAgICogICBBbnl0aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIG9uZSh2YWx1ZSwgLi4ucGFyYW1ldGVycykge1xuICAgIC8qKiBAdHlwZSB7SGFuZGxlcnx1bmRlZmluZWR9ICovXG4gICAgbGV0IGZuID0gb25lLmludmFsaWRcbiAgICBjb25zdCBoYW5kbGVycyA9IG9uZS5oYW5kbGVyc1xuXG4gICAgaWYgKHZhbHVlICYmIG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGNvbnN0IGlkID0gU3RyaW5nKHZhbHVlW2tleV0pXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGZuID0gb3duLmNhbGwoaGFuZGxlcnMsIGlkKSA/IGhhbmRsZXJzW2lkXSA6IG9uZS51bmtub3duXG4gICAgfVxuXG4gICAgaWYgKGZuKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCB2YWx1ZSwgLi4ucGFyYW1ldGVycylcbiAgICB9XG4gIH1cblxuICBvbmUuaGFuZGxlcnMgPSBzZXR0aW5ncy5oYW5kbGVycyB8fCB7fVxuICBvbmUuaW52YWxpZCA9IHNldHRpbmdzLmludmFsaWRcbiAgb25lLnVua25vd24gPSBzZXR0aW5ncy51bmtub3duXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbWF0Y2hlcyFcbiAgcmV0dXJuIG9uZVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYgQ29yZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gW3N1YnNldD1bXV1cbiAqICAgV2hldGhlciB0byBvbmx5IGVzY2FwZSB0aGUgZ2l2ZW4gc3Vic2V0IG9mIGNoYXJhY3RlcnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtlc2NhcGVPbmx5PWZhbHNlXVxuICogICBXaGV0aGVyIHRvIG9ubHkgZXNjYXBlIHBvc3NpYmx5IGRhbmdlcm91cyBjaGFyYWN0ZXJzLlxuICogICBUaG9zZSBjaGFyYWN0ZXJzIGFyZSBgXCJgLCBgJmAsIGAnYCwgYDxgLCBgPmAsIGFuZCBgYCBgIGBgLlxuICpcbiAqIEB0eXBlZGVmIEZvcm1hdE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7KGNvZGU6IG51bWJlciwgbmV4dDogbnVtYmVyLCBvcHRpb25zOiBDb3JlV2l0aEZvcm1hdE9wdGlvbnMpID0+IHN0cmluZ30gZm9ybWF0XG4gKiAgIEZvcm1hdCBzdHJhdGVneS5cbiAqXG4gKiBAdHlwZWRlZiB7Q29yZU9wdGlvbnMgJiBGb3JtYXRPcHRpb25zICYgaW1wb3J0KCcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJykuRm9ybWF0U21hcnRPcHRpb25zfSBDb3JlV2l0aEZvcm1hdE9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEVuY29kZSBjZXJ0YWluIGNoYXJhY3RlcnMgaW4gYHZhbHVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7Q29yZVdpdGhGb3JtYXRPcHRpb25zfSBvcHRpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29yZSh2YWx1ZSwgb3B0aW9ucykge1xuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoXG4gICAgb3B0aW9ucy5zdWJzZXQgPyBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKG9wdGlvbnMuc3Vic2V0KSA6IC9bXCImJzw+YF0vZyxcbiAgICBiYXNpY1xuICApXG5cbiAgaWYgKG9wdGlvbnMuc3Vic2V0IHx8IG9wdGlvbnMuZXNjYXBlT25seSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICB2YWx1ZVxuICAgICAgLy8gU3Vycm9nYXRlIHBhaXJzLlxuICAgICAgLnJlcGxhY2UoL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vZywgc3Vycm9nYXRlKVxuICAgICAgLy8gQk1QIGNvbnRyb2wgY2hhcmFjdGVycyAoQzAgZXhjZXB0IGZvciBMRiwgQ1IsIFNQOyBERUw7IGFuZCBzb21lIG1vcmVcbiAgICAgIC8vIG5vbi1BU0NJSSBvbmVzKS5cbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleCwgdW5pY29ybi9uby1oZXgtZXNjYXBlXG4gICAgICAgIC9bXFx4MDEtXFx0XFx2XFxmXFx4MEUtXFx4MUZcXHg3RlxceDgxXFx4OERcXHg4RlxceDkwXFx4OURcXHhBMC1cXHVGRkZGXS9nLFxuICAgICAgICBiYXNpY1xuICAgICAgKVxuICApXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYWlyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWxsXG4gICAqL1xuICBmdW5jdGlvbiBzdXJyb2dhdGUocGFpciwgaW5kZXgsIGFsbCkge1xuICAgIHJldHVybiBvcHRpb25zLmZvcm1hdChcbiAgICAgIChwYWlyLmNoYXJDb2RlQXQoMCkgLSAweGQ4MDApICogMHg0MDAgK1xuICAgICAgICBwYWlyLmNoYXJDb2RlQXQoMSkgLVxuICAgICAgICAweGRjMDAgK1xuICAgICAgICAweDEwMDAwLFxuICAgICAgYWxsLmNoYXJDb2RlQXQoaW5kZXggKyAyKSxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXJhY3RlclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFsbFxuICAgKi9cbiAgZnVuY3Rpb24gYmFzaWMoY2hhcmFjdGVyLCBpbmRleCwgYWxsKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZm9ybWF0KFxuICAgICAgY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCksXG4gICAgICBhbGwuY2hhckNvZGVBdChpbmRleCArIDEpLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gc3Vic2V0XG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICovXG5mdW5jdGlvbiBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKHN1YnNldCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IGdyb3VwcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzdWJzZXQubGVuZ3RoKSB7XG4gICAgZ3JvdXBzLnB1c2goc3Vic2V0W2luZGV4XS5yZXBsYWNlKC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZywgJ1xcXFwkJicpKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/OicgKyBncm91cHMuam9pbignfCcpICsgJyknLCAnZycpXG59XG4iLCAiLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBoZXhhZGVjaW1hbCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGV4YWRlY2ltYWwoY29kZSwgbmV4dCwgb21pdCkge1xuICBjb25zdCB2YWx1ZSA9ICcmI3gnICsgY29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKVxuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICEvW1xcZEEtRmEtZl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSlcbiAgICA/IHZhbHVlXG4gICAgOiB2YWx1ZSArICc7J1xufVxuIiwgIi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgZGVjaW1hbCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRGVjaW1hbChjb2RlLCBuZXh0LCBvbWl0KSB7XG4gIGNvbnN0IHZhbHVlID0gJyYjJyArIFN0cmluZyhjb2RlKVxuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICEvXFxkLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgKyAnOydcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgbGVnYWN5IEhUTUwgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgdGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBzZW1pY29sb24uXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeSA9IFtcbiAgJ0FFbGlnJyxcbiAgJ0FNUCcsXG4gICdBYWN1dGUnLFxuICAnQWNpcmMnLFxuICAnQWdyYXZlJyxcbiAgJ0FyaW5nJyxcbiAgJ0F0aWxkZScsXG4gICdBdW1sJyxcbiAgJ0NPUFknLFxuICAnQ2NlZGlsJyxcbiAgJ0VUSCcsXG4gICdFYWN1dGUnLFxuICAnRWNpcmMnLFxuICAnRWdyYXZlJyxcbiAgJ0V1bWwnLFxuICAnR1QnLFxuICAnSWFjdXRlJyxcbiAgJ0ljaXJjJyxcbiAgJ0lncmF2ZScsXG4gICdJdW1sJyxcbiAgJ0xUJyxcbiAgJ050aWxkZScsXG4gICdPYWN1dGUnLFxuICAnT2NpcmMnLFxuICAnT2dyYXZlJyxcbiAgJ09zbGFzaCcsXG4gICdPdGlsZGUnLFxuICAnT3VtbCcsXG4gICdRVU9UJyxcbiAgJ1JFRycsXG4gICdUSE9STicsXG4gICdVYWN1dGUnLFxuICAnVWNpcmMnLFxuICAnVWdyYXZlJyxcbiAgJ1V1bWwnLFxuICAnWWFjdXRlJyxcbiAgJ2FhY3V0ZScsXG4gICdhY2lyYycsXG4gICdhY3V0ZScsXG4gICdhZWxpZycsXG4gICdhZ3JhdmUnLFxuICAnYW1wJyxcbiAgJ2FyaW5nJyxcbiAgJ2F0aWxkZScsXG4gICdhdW1sJyxcbiAgJ2JydmJhcicsXG4gICdjY2VkaWwnLFxuICAnY2VkaWwnLFxuICAnY2VudCcsXG4gICdjb3B5JyxcbiAgJ2N1cnJlbicsXG4gICdkZWcnLFxuICAnZGl2aWRlJyxcbiAgJ2VhY3V0ZScsXG4gICdlY2lyYycsXG4gICdlZ3JhdmUnLFxuICAnZXRoJyxcbiAgJ2V1bWwnLFxuICAnZnJhYzEyJyxcbiAgJ2ZyYWMxNCcsXG4gICdmcmFjMzQnLFxuICAnZ3QnLFxuICAnaWFjdXRlJyxcbiAgJ2ljaXJjJyxcbiAgJ2lleGNsJyxcbiAgJ2lncmF2ZScsXG4gICdpcXVlc3QnLFxuICAnaXVtbCcsXG4gICdsYXF1bycsXG4gICdsdCcsXG4gICdtYWNyJyxcbiAgJ21pY3JvJyxcbiAgJ21pZGRvdCcsXG4gICduYnNwJyxcbiAgJ25vdCcsXG4gICdudGlsZGUnLFxuICAnb2FjdXRlJyxcbiAgJ29jaXJjJyxcbiAgJ29ncmF2ZScsXG4gICdvcmRmJyxcbiAgJ29yZG0nLFxuICAnb3NsYXNoJyxcbiAgJ290aWxkZScsXG4gICdvdW1sJyxcbiAgJ3BhcmEnLFxuICAncGx1c21uJyxcbiAgJ3BvdW5kJyxcbiAgJ3F1b3QnLFxuICAncmFxdW8nLFxuICAncmVnJyxcbiAgJ3NlY3QnLFxuICAnc2h5JyxcbiAgJ3N1cDEnLFxuICAnc3VwMicsXG4gICdzdXAzJyxcbiAgJ3N6bGlnJyxcbiAgJ3Rob3JuJyxcbiAgJ3RpbWVzJyxcbiAgJ3VhY3V0ZScsXG4gICd1Y2lyYycsXG4gICd1Z3JhdmUnLFxuICAndW1sJyxcbiAgJ3V1bWwnLFxuICAneWFjdXRlJyxcbiAgJ3llbicsXG4gICd5dW1sJ1xuXVxuIiwgIi8qKlxuICogTWFwIG9mIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIGZyb20gSFRNTCA0LlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRW50aXRpZXNIdG1sNCA9IHtcbiAgbmJzcDogJ1x1MDBBMCcsXG4gIGlleGNsOiAnXHUwMEExJyxcbiAgY2VudDogJ1x1MDBBMicsXG4gIHBvdW5kOiAnXHUwMEEzJyxcbiAgY3VycmVuOiAnXHUwMEE0JyxcbiAgeWVuOiAnXHUwMEE1JyxcbiAgYnJ2YmFyOiAnXHUwMEE2JyxcbiAgc2VjdDogJ1x1MDBBNycsXG4gIHVtbDogJ1x1MDBBOCcsXG4gIGNvcHk6ICdcdTAwQTknLFxuICBvcmRmOiAnXHUwMEFBJyxcbiAgbGFxdW86ICdcdTAwQUInLFxuICBub3Q6ICdcdTAwQUMnLFxuICBzaHk6ICdcdTAwQUQnLFxuICByZWc6ICdcdTAwQUUnLFxuICBtYWNyOiAnXHUwMEFGJyxcbiAgZGVnOiAnXHUwMEIwJyxcbiAgcGx1c21uOiAnXHUwMEIxJyxcbiAgc3VwMjogJ1x1MDBCMicsXG4gIHN1cDM6ICdcdTAwQjMnLFxuICBhY3V0ZTogJ1x1MDBCNCcsXG4gIG1pY3JvOiAnXHUwMEI1JyxcbiAgcGFyYTogJ1x1MDBCNicsXG4gIG1pZGRvdDogJ1x1MDBCNycsXG4gIGNlZGlsOiAnXHUwMEI4JyxcbiAgc3VwMTogJ1x1MDBCOScsXG4gIG9yZG06ICdcdTAwQkEnLFxuICByYXF1bzogJ1x1MDBCQicsXG4gIGZyYWMxNDogJ1x1MDBCQycsXG4gIGZyYWMxMjogJ1x1MDBCRCcsXG4gIGZyYWMzNDogJ1x1MDBCRScsXG4gIGlxdWVzdDogJ1x1MDBCRicsXG4gIEFncmF2ZTogJ1x1MDBDMCcsXG4gIEFhY3V0ZTogJ1x1MDBDMScsXG4gIEFjaXJjOiAnXHUwMEMyJyxcbiAgQXRpbGRlOiAnXHUwMEMzJyxcbiAgQXVtbDogJ1x1MDBDNCcsXG4gIEFyaW5nOiAnXHUwMEM1JyxcbiAgQUVsaWc6ICdcdTAwQzYnLFxuICBDY2VkaWw6ICdcdTAwQzcnLFxuICBFZ3JhdmU6ICdcdTAwQzgnLFxuICBFYWN1dGU6ICdcdTAwQzknLFxuICBFY2lyYzogJ1x1MDBDQScsXG4gIEV1bWw6ICdcdTAwQ0InLFxuICBJZ3JhdmU6ICdcdTAwQ0MnLFxuICBJYWN1dGU6ICdcdTAwQ0QnLFxuICBJY2lyYzogJ1x1MDBDRScsXG4gIEl1bWw6ICdcdTAwQ0YnLFxuICBFVEg6ICdcdTAwRDAnLFxuICBOdGlsZGU6ICdcdTAwRDEnLFxuICBPZ3JhdmU6ICdcdTAwRDInLFxuICBPYWN1dGU6ICdcdTAwRDMnLFxuICBPY2lyYzogJ1x1MDBENCcsXG4gIE90aWxkZTogJ1x1MDBENScsXG4gIE91bWw6ICdcdTAwRDYnLFxuICB0aW1lczogJ1x1MDBENycsXG4gIE9zbGFzaDogJ1x1MDBEOCcsXG4gIFVncmF2ZTogJ1x1MDBEOScsXG4gIFVhY3V0ZTogJ1x1MDBEQScsXG4gIFVjaXJjOiAnXHUwMERCJyxcbiAgVXVtbDogJ1x1MDBEQycsXG4gIFlhY3V0ZTogJ1x1MDBERCcsXG4gIFRIT1JOOiAnXHUwMERFJyxcbiAgc3psaWc6ICdcdTAwREYnLFxuICBhZ3JhdmU6ICdcdTAwRTAnLFxuICBhYWN1dGU6ICdcdTAwRTEnLFxuICBhY2lyYzogJ1x1MDBFMicsXG4gIGF0aWxkZTogJ1x1MDBFMycsXG4gIGF1bWw6ICdcdTAwRTQnLFxuICBhcmluZzogJ1x1MDBFNScsXG4gIGFlbGlnOiAnXHUwMEU2JyxcbiAgY2NlZGlsOiAnXHUwMEU3JyxcbiAgZWdyYXZlOiAnXHUwMEU4JyxcbiAgZWFjdXRlOiAnXHUwMEU5JyxcbiAgZWNpcmM6ICdcdTAwRUEnLFxuICBldW1sOiAnXHUwMEVCJyxcbiAgaWdyYXZlOiAnXHUwMEVDJyxcbiAgaWFjdXRlOiAnXHUwMEVEJyxcbiAgaWNpcmM6ICdcdTAwRUUnLFxuICBpdW1sOiAnXHUwMEVGJyxcbiAgZXRoOiAnXHUwMEYwJyxcbiAgbnRpbGRlOiAnXHUwMEYxJyxcbiAgb2dyYXZlOiAnXHUwMEYyJyxcbiAgb2FjdXRlOiAnXHUwMEYzJyxcbiAgb2NpcmM6ICdcdTAwRjQnLFxuICBvdGlsZGU6ICdcdTAwRjUnLFxuICBvdW1sOiAnXHUwMEY2JyxcbiAgZGl2aWRlOiAnXHUwMEY3JyxcbiAgb3NsYXNoOiAnXHUwMEY4JyxcbiAgdWdyYXZlOiAnXHUwMEY5JyxcbiAgdWFjdXRlOiAnXHUwMEZBJyxcbiAgdWNpcmM6ICdcdTAwRkInLFxuICB1dW1sOiAnXHUwMEZDJyxcbiAgeWFjdXRlOiAnXHUwMEZEJyxcbiAgdGhvcm46ICdcdTAwRkUnLFxuICB5dW1sOiAnXHUwMEZGJyxcbiAgZm5vZjogJ1x1MDE5MicsXG4gIEFscGhhOiAnXHUwMzkxJyxcbiAgQmV0YTogJ1x1MDM5MicsXG4gIEdhbW1hOiAnXHUwMzkzJyxcbiAgRGVsdGE6ICdcdTAzOTQnLFxuICBFcHNpbG9uOiAnXHUwMzk1JyxcbiAgWmV0YTogJ1x1MDM5NicsXG4gIEV0YTogJ1x1MDM5NycsXG4gIFRoZXRhOiAnXHUwMzk4JyxcbiAgSW90YTogJ1x1MDM5OScsXG4gIEthcHBhOiAnXHUwMzlBJyxcbiAgTGFtYmRhOiAnXHUwMzlCJyxcbiAgTXU6ICdcdTAzOUMnLFxuICBOdTogJ1x1MDM5RCcsXG4gIFhpOiAnXHUwMzlFJyxcbiAgT21pY3JvbjogJ1x1MDM5RicsXG4gIFBpOiAnXHUwM0EwJyxcbiAgUmhvOiAnXHUwM0ExJyxcbiAgU2lnbWE6ICdcdTAzQTMnLFxuICBUYXU6ICdcdTAzQTQnLFxuICBVcHNpbG9uOiAnXHUwM0E1JyxcbiAgUGhpOiAnXHUwM0E2JyxcbiAgQ2hpOiAnXHUwM0E3JyxcbiAgUHNpOiAnXHUwM0E4JyxcbiAgT21lZ2E6ICdcdTAzQTknLFxuICBhbHBoYTogJ1x1MDNCMScsXG4gIGJldGE6ICdcdTAzQjInLFxuICBnYW1tYTogJ1x1MDNCMycsXG4gIGRlbHRhOiAnXHUwM0I0JyxcbiAgZXBzaWxvbjogJ1x1MDNCNScsXG4gIHpldGE6ICdcdTAzQjYnLFxuICBldGE6ICdcdTAzQjcnLFxuICB0aGV0YTogJ1x1MDNCOCcsXG4gIGlvdGE6ICdcdTAzQjknLFxuICBrYXBwYTogJ1x1MDNCQScsXG4gIGxhbWJkYTogJ1x1MDNCQicsXG4gIG11OiAnXHUwM0JDJyxcbiAgbnU6ICdcdTAzQkQnLFxuICB4aTogJ1x1MDNCRScsXG4gIG9taWNyb246ICdcdTAzQkYnLFxuICBwaTogJ1x1MDNDMCcsXG4gIHJobzogJ1x1MDNDMScsXG4gIHNpZ21hZjogJ1x1MDNDMicsXG4gIHNpZ21hOiAnXHUwM0MzJyxcbiAgdGF1OiAnXHUwM0M0JyxcbiAgdXBzaWxvbjogJ1x1MDNDNScsXG4gIHBoaTogJ1x1MDNDNicsXG4gIGNoaTogJ1x1MDNDNycsXG4gIHBzaTogJ1x1MDNDOCcsXG4gIG9tZWdhOiAnXHUwM0M5JyxcbiAgdGhldGFzeW06ICdcdTAzRDEnLFxuICB1cHNpaDogJ1x1MDNEMicsXG4gIHBpdjogJ1x1MDNENicsXG4gIGJ1bGw6ICdcdTIwMjInLFxuICBoZWxsaXA6ICdcdTIwMjYnLFxuICBwcmltZTogJ1x1MjAzMicsXG4gIFByaW1lOiAnXHUyMDMzJyxcbiAgb2xpbmU6ICdcdTIwM0UnLFxuICBmcmFzbDogJ1x1MjA0NCcsXG4gIHdlaWVycDogJ1x1MjExOCcsXG4gIGltYWdlOiAnXHUyMTExJyxcbiAgcmVhbDogJ1x1MjExQycsXG4gIHRyYWRlOiAnXHUyMTIyJyxcbiAgYWxlZnN5bTogJ1x1MjEzNScsXG4gIGxhcnI6ICdcdTIxOTAnLFxuICB1YXJyOiAnXHUyMTkxJyxcbiAgcmFycjogJ1x1MjE5MicsXG4gIGRhcnI6ICdcdTIxOTMnLFxuICBoYXJyOiAnXHUyMTk0JyxcbiAgY3JhcnI6ICdcdTIxQjUnLFxuICBsQXJyOiAnXHUyMUQwJyxcbiAgdUFycjogJ1x1MjFEMScsXG4gIHJBcnI6ICdcdTIxRDInLFxuICBkQXJyOiAnXHUyMUQzJyxcbiAgaEFycjogJ1x1MjFENCcsXG4gIGZvcmFsbDogJ1x1MjIwMCcsXG4gIHBhcnQ6ICdcdTIyMDInLFxuICBleGlzdDogJ1x1MjIwMycsXG4gIGVtcHR5OiAnXHUyMjA1JyxcbiAgbmFibGE6ICdcdTIyMDcnLFxuICBpc2luOiAnXHUyMjA4JyxcbiAgbm90aW46ICdcdTIyMDknLFxuICBuaTogJ1x1MjIwQicsXG4gIHByb2Q6ICdcdTIyMEYnLFxuICBzdW06ICdcdTIyMTEnLFxuICBtaW51czogJ1x1MjIxMicsXG4gIGxvd2FzdDogJ1x1MjIxNycsXG4gIHJhZGljOiAnXHUyMjFBJyxcbiAgcHJvcDogJ1x1MjIxRCcsXG4gIGluZmluOiAnXHUyMjFFJyxcbiAgYW5nOiAnXHUyMjIwJyxcbiAgYW5kOiAnXHUyMjI3JyxcbiAgb3I6ICdcdTIyMjgnLFxuICBjYXA6ICdcdTIyMjknLFxuICBjdXA6ICdcdTIyMkEnLFxuICBpbnQ6ICdcdTIyMkInLFxuICB0aGVyZTQ6ICdcdTIyMzQnLFxuICBzaW06ICdcdTIyM0MnLFxuICBjb25nOiAnXHUyMjQ1JyxcbiAgYXN5bXA6ICdcdTIyNDgnLFxuICBuZTogJ1x1MjI2MCcsXG4gIGVxdWl2OiAnXHUyMjYxJyxcbiAgbGU6ICdcdTIyNjQnLFxuICBnZTogJ1x1MjI2NScsXG4gIHN1YjogJ1x1MjI4MicsXG4gIHN1cDogJ1x1MjI4MycsXG4gIG5zdWI6ICdcdTIyODQnLFxuICBzdWJlOiAnXHUyMjg2JyxcbiAgc3VwZTogJ1x1MjI4NycsXG4gIG9wbHVzOiAnXHUyMjk1JyxcbiAgb3RpbWVzOiAnXHUyMjk3JyxcbiAgcGVycDogJ1x1MjJBNScsXG4gIHNkb3Q6ICdcdTIyQzUnLFxuICBsY2VpbDogJ1x1MjMwOCcsXG4gIHJjZWlsOiAnXHUyMzA5JyxcbiAgbGZsb29yOiAnXHUyMzBBJyxcbiAgcmZsb29yOiAnXHUyMzBCJyxcbiAgbGFuZzogJ1x1MjMyOScsXG4gIHJhbmc6ICdcdTIzMkEnLFxuICBsb3o6ICdcdTI1Q0EnLFxuICBzcGFkZXM6ICdcdTI2NjAnLFxuICBjbHViczogJ1x1MjY2MycsXG4gIGhlYXJ0czogJ1x1MjY2NScsXG4gIGRpYW1zOiAnXHUyNjY2JyxcbiAgcXVvdDogJ1wiJyxcbiAgYW1wOiAnJicsXG4gIGx0OiAnPCcsXG4gIGd0OiAnPicsXG4gIE9FbGlnOiAnXHUwMTUyJyxcbiAgb2VsaWc6ICdcdTAxNTMnLFxuICBTY2Fyb246ICdcdTAxNjAnLFxuICBzY2Fyb246ICdcdTAxNjEnLFxuICBZdW1sOiAnXHUwMTc4JyxcbiAgY2lyYzogJ1x1MDJDNicsXG4gIHRpbGRlOiAnXHUwMkRDJyxcbiAgZW5zcDogJ1x1MjAwMicsXG4gIGVtc3A6ICdcdTIwMDMnLFxuICB0aGluc3A6ICdcdTIwMDknLFxuICB6d25qOiAnXHUyMDBDJyxcbiAgendqOiAnXHUyMDBEJyxcbiAgbHJtOiAnXHUyMDBFJyxcbiAgcmxtOiAnXHUyMDBGJyxcbiAgbmRhc2g6ICdcdTIwMTMnLFxuICBtZGFzaDogJ1x1MjAxNCcsXG4gIGxzcXVvOiAnXHUyMDE4JyxcbiAgcnNxdW86ICdcdTIwMTknLFxuICBzYnF1bzogJ1x1MjAxQScsXG4gIGxkcXVvOiAnXHUyMDFDJyxcbiAgcmRxdW86ICdcdTIwMUQnLFxuICBiZHF1bzogJ1x1MjAxRScsXG4gIGRhZ2dlcjogJ1x1MjAyMCcsXG4gIERhZ2dlcjogJ1x1MjAyMScsXG4gIHBlcm1pbDogJ1x1MjAzMCcsXG4gIGxzYXF1bzogJ1x1MjAzOScsXG4gIHJzYXF1bzogJ1x1MjAzQScsXG4gIGV1cm86ICdcdTIwQUMnXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIGxlZ2FjeSAodGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBgO2ApIG5hbWVkIHJlZmVyZW5jZXMgd2hpY2ggY291bGQsXG4gKiBkZXBlbmRpbmcgb24gd2hhdCBmb2xsb3dzIHRoZW0sIHR1cm4gaW50byBhIGRpZmZlcmVudCBtZWFuaW5nXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBkYW5nZXJvdXMgPSBbXG4gICdjZW50JyxcbiAgJ2NvcHknLFxuICAnZGl2aWRlJyxcbiAgJ2d0JyxcbiAgJ2x0JyxcbiAgJ25vdCcsXG4gICdwYXJhJyxcbiAgJ3RpbWVzJ1xuXVxuIiwgImltcG9ydCB7Y2hhcmFjdGVyRW50aXRpZXNMZWdhY3l9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3knXG5pbXBvcnQge2NoYXJhY3RlckVudGl0aWVzSHRtbDR9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1odG1sNCdcbmltcG9ydCB7ZGFuZ2Vyb3VzfSBmcm9tICcuLi9jb25zdGFudC9kYW5nZXJvdXMuanMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogYGNoYXJhY3RlckVudGl0aWVzSHRtbDRgIGJ1dCBpbnZlcnRlZC5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuY29uc3QgY2hhcmFjdGVycyA9IHt9XG5cbi8qKiBAdHlwZSB7c3RyaW5nfSAqL1xubGV0IGtleVxuXG5mb3IgKGtleSBpbiBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0KSB7XG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJFbnRpdGllc0h0bWw0LCBrZXkpKSB7XG4gICAgY2hhcmFjdGVyc1tjaGFyYWN0ZXJFbnRpdGllc0h0bWw0W2tleV1dID0ga2V5XG4gIH1cbn1cblxuLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBuYW1lZCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9OYW1lZChjb2RlLCBuZXh0LCBvbWl0LCBhdHRyaWJ1dGUpIHtcbiAgY29uc3QgY2hhcmFjdGVyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKVxuXG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXIpKSB7XG4gICAgY29uc3QgbmFtZSA9IGNoYXJhY3RlcnNbY2hhcmFjdGVyXVxuICAgIGNvbnN0IHZhbHVlID0gJyYnICsgbmFtZVxuXG4gICAgaWYgKFxuICAgICAgb21pdCAmJlxuICAgICAgY2hhcmFjdGVyRW50aXRpZXNMZWdhY3kuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgICFkYW5nZXJvdXMuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgICghYXR0cmlidXRlIHx8XG4gICAgICAgIChuZXh0ICYmXG4gICAgICAgICAgbmV4dCAhPT0gNjEgLyogYD1gICovICYmXG4gICAgICAgICAgL1teXFxkYS16XS9pLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlICsgJzsnXG4gIH1cblxuICByZXR1cm4gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEZvcm1hdFNtYXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlTmFtZWRSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKGAmYW1wO2ApIHdoZXJlIHBvc3NpYmxlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlU2hvcnRlc3RSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgdGhlIHNob3J0ZXN0IHBvc3NpYmxlIHJlZmVyZW5jZSwgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMuXG4gKiAgICoqTm90ZSoqOiBgdXNlTmFtZWRSZWZlcmVuY2VzYCBjYW4gYmUgb21pdHRlZCB3aGVuIHVzaW5nIGB1c2VTaG9ydGVzdFJlZmVyZW5jZXNgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbb21pdE9wdGlvbmFsU2VtaWNvbG9ucz1mYWxzZV1cbiAqICAgV2hldGhlciB0byBvbWl0IHNlbWljb2xvbnMgd2hlbiBwb3NzaWJsZS5cbiAqICAgKipOb3RlKio6IFRoaXMgY3JlYXRlcyB3aGF0IEhUTUwgY2FsbHMgXHUyMDFDcGFyc2UgZXJyb3JzXHUyMDFEIGJ1dCBpcyBvdGhlcndpc2Ugc3RpbGwgdmFsaWQgSFRNTCBcdTIwMTQgZG9uXHUyMDE5dCB1c2UgdGhpcyBleGNlcHQgd2hlbiBidWlsZGluZyBhIG1pbmlmaWVyLlxuICogICBPbWl0dGluZyBzZW1pY29sb25zIGlzIHBvc3NpYmxlIGZvciBjZXJ0YWluIG5hbWVkIGFuZCBudW1lcmljIHJlZmVyZW5jZXMgaW4gc29tZSBjYXNlcy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2F0dHJpYnV0ZT1mYWxzZV1cbiAqICAgQ3JlYXRlIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoaWNoIGRvblx1MjAxOXQgZmFpbCBpbiBhdHRyaWJ1dGVzLlxuICogICAqKk5vdGUqKjogYGF0dHJpYnV0ZWAgb25seSBhcHBsaWVzIHdoZW4gb3BlcmF0aW5nIGRhbmdlcm91c2x5IHdpdGhcbiAqICAgYG9taXRPcHRpb25hbFNlbWljb2xvbnM6IHRydWVgLlxuICovXG5cbmltcG9ydCB7dG9IZXhhZGVjaW1hbH0gZnJvbSAnLi90by1oZXhhZGVjaW1hbC5qcydcbmltcG9ydCB7dG9EZWNpbWFsfSBmcm9tICcuL3RvLWRlY2ltYWwuanMnXG5pbXBvcnQge3RvTmFtZWR9IGZyb20gJy4vdG8tbmFtZWQuanMnXG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGEgY2hhcmFjdGVyIHlpZWxkaW5nIHByZXR0eSBvciBzbWFsbCByZXN1bHRzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtGb3JtYXRTbWFydE9wdGlvbnN9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTbWFydChjb2RlLCBuZXh0LCBvcHRpb25zKSB7XG4gIGxldCBudW1lcmljID0gdG9IZXhhZGVjaW1hbChjb2RlLCBuZXh0LCBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMpXG4gIC8qKiBAdHlwZSB7c3RyaW5nfHVuZGVmaW5lZH0gKi9cbiAgbGV0IG5hbWVkXG5cbiAgaWYgKG9wdGlvbnMudXNlTmFtZWRSZWZlcmVuY2VzIHx8IG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSB7XG4gICAgbmFtZWQgPSB0b05hbWVkKFxuICAgICAgY29kZSxcbiAgICAgIG5leHQsXG4gICAgICBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMsXG4gICAgICBvcHRpb25zLmF0dHJpYnV0ZVxuICAgIClcbiAgfVxuXG4gIC8vIFVzZSB0aGUgc2hvcnRlc3QgbnVtZXJpYyByZWZlcmVuY2Ugd2hlbiByZXF1ZXN0ZWQuXG4gIC8vIEEgc2ltcGxlIGFsZ29yaXRobSB3b3VsZCB1c2UgZGVjaW1hbCBmb3IgYWxsIGNvZGUgcG9pbnRzIHVuZGVyIDEwMCwgYXNcbiAgLy8gdGhvc2UgYXJlIHNob3J0ZXIgdGhhbiBoZXhhZGVjaW1hbDpcbiAgLy9cbiAgLy8gKiBgJiM5OTtgIHZzIGAmI3g2MztgIChkZWNpbWFsIHNob3J0ZXIpXG4gIC8vICogYCYjMTAwO2AgdnMgYCYjeDY0O2AgKGVxdWFsKVxuICAvL1xuICAvLyBIb3dldmVyLCBiZWNhdXNlIHdlIHRha2UgYG5leHRgIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIGBvbWl0YCBpcyB1c2VkLFxuICAvLyBBbmQgaXQgd291bGQgYmUgcG9zc2libGUgdGhhdCBkZWNpbWFscyBhcmUgc2hvcnRlciBvbiBiaWdnZXIgdmFsdWVzIGFzXG4gIC8vIHdlbGwgaWYgYG5leHRgIGlzIGhleGFkZWNpbWFsIGJ1dCBub3QgZGVjaW1hbCwgd2UgaW5zdGVhZCBjb21wYXJlIGJvdGguXG4gIGlmIChcbiAgICAob3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMgfHwgIW5hbWVkKSAmJlxuICAgIG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzXG4gICkge1xuICAgIGNvbnN0IGRlY2ltYWwgPSB0b0RlY2ltYWwoY29kZSwgbmV4dCwgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zKVxuXG4gICAgaWYgKGRlY2ltYWwubGVuZ3RoIDwgbnVtZXJpYy5sZW5ndGgpIHtcbiAgICAgIG51bWVyaWMgPSBkZWNpbWFsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5hbWVkICYmXG4gICAgKCFvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcyB8fCBuYW1lZC5sZW5ndGggPCBudW1lcmljLmxlbmd0aClcbiAgICA/IG5hbWVkXG4gICAgOiBudW1lcmljXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NvcmUuanMnKS5Db3JlT3B0aW9ucyAmIGltcG9ydCgnLi91dGlsL2Zvcm1hdC1zbWFydC5qcycpLkZvcm1hdFNtYXJ0T3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jb3JlLmpzJykuQ29yZU9wdGlvbnN9IExpZ2h0T3B0aW9uc1xuICovXG5cbmltcG9ydCB7Y29yZX0gZnJvbSAnLi9jb3JlLmpzJ1xuaW1wb3J0IHtmb3JtYXRTbWFydH0gZnJvbSAnLi91dGlsL2Zvcm1hdC1zbWFydC5qcydcbmltcG9ydCB7Zm9ybWF0QmFzaWN9IGZyb20gJy4vdXRpbC9mb3JtYXQtYmFzaWMuanMnXG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBlbmNvZGUuXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzKHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBjb3JlKHZhbHVlLCBPYmplY3QuYXNzaWduKHtmb3JtYXQ6IGZvcm1hdFNtYXJ0fSwgb3B0aW9ucykpXG59XG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgIGFzIGhleGFkZWNpbWFscy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZW5jb2RlLlxuICogQHBhcmFtIHtMaWdodE9wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzTGlnaHQodmFsdWUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNvcmUodmFsdWUsIE9iamVjdC5hc3NpZ24oe2Zvcm1hdDogZm9ybWF0QmFzaWN9LCBvcHRpb25zKSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Db21tZW50fSBDb21tZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGNvbW1lbnQuXG4gKlxuICogQHBhcmFtIHtDb21tZW50fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8xXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMlxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWVudChub2RlLCBfMSwgXzIsIHN0YXRlKSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2NvbW1lbnRzPlxuICByZXR1cm4gc3RhdGUuc2V0dGluZ3MuYm9ndXNDb21tZW50c1xuICAgID8gJzw/JyArXG4gICAgICAgIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICAgIG5vZGUudmFsdWUsXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge3N1YnNldDogWyc+J119KVxuICAgICAgICApICtcbiAgICAgICAgJz4nXG4gICAgOiAnPCEtLScgKyBub2RlLnZhbHVlLnJlcGxhY2UoL14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZywgZW5jb2RlKSArICctLT4nXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICAgKi9cbiAgZnVuY3Rpb24gZW5jb2RlKCQwKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgJDAsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIHN1YnNldDogWyc8JywgJz4nXVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Eb2N0eXBlfSBEb2N0eXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBjb2RlIHNlZSByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgZG9jdHlwZS5cbiAqXG4gKiBAcGFyYW0ge0RvY3R5cGV9IF8xXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8yXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfM1xuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG9jdHlwZShfMSwgXzIsIF8zLCBzdGF0ZSkge1xuICByZXR1cm4gKFxuICAgICc8IScgK1xuICAgIChzdGF0ZS5zZXR0aW5ncy51cHBlckRvY3R5cGUgPyAnRE9DVFlQRScgOiAnZG9jdHlwZScpICtcbiAgICAoc3RhdGUuc2V0dGluZ3MudGlnaHREb2N0eXBlID8gJycgOiAnICcpICtcbiAgICAnaHRtbD4nXG4gIClcbn1cbiIsICIvKipcbiAqIENvdW50IGhvdyBvZnRlbiBhIGNoYXJhY3RlciAob3Igc3Vic3RyaW5nKSBpcyB1c2VkIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcmFjdGVyXG4gKiAgIENoYXJhY3RlciAob3Igc3Vic3RyaW5nKSB0byBsb29rIGZvci5cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqICAgTnVtYmVyIG9mIHRpbWVzIGBjaGFyYWN0ZXJgIG9jY3VycmVkIGluIGB2YWx1ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjY291bnQodmFsdWUsIGNoYXJhY3Rlcikge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG5cbiAgaWYgKHR5cGVvZiBjaGFyYWN0ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgY2hhcmFjdGVyJylcbiAgfVxuXG4gIGxldCBjb3VudCA9IDBcbiAgbGV0IGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyKVxuXG4gIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICBjb3VudCsrXG4gICAgaW5kZXggPSBzb3VyY2UuaW5kZXhPZihjaGFyYWN0ZXIsIGluZGV4ICsgY2hhcmFjdGVyLmxlbmd0aClcbiAgfVxuXG4gIHJldHVybiBjb3VudFxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICovXG5cbi8vIEhUTUwgd2hpdGVzcGFjZSBleHByZXNzaW9uLlxuLy8gU2VlIDxodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWktd2hpdGVzcGFjZT4uXG5jb25zdCByZSA9IC9bIFxcdFxcblxcZlxccl0vZ1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyAqaW50ZXItZWxlbWVudCB3aGl0ZXNwYWNlKi5cbiAqXG4gKiBAcGFyYW0ge05vZGVzIHwgc3RyaW5nfSB0aGluZ1xuICogICBUaGluZyB0byBjaGVjayAoYE5vZGVgIG9yIGBzdHJpbmdgKS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBgdmFsdWVgIGlzIGludGVyLWVsZW1lbnQgd2hpdGVzcGFjZSAoYGJvb2xlYW5gKTogY29uc2lzdGluZyBvZlxuICogICB6ZXJvIG9yIG1vcmUgb2Ygc3BhY2UsIHRhYiAoYFxcdGApLCBsaW5lIGZlZWQgKGBcXG5gKSwgY2FycmlhZ2UgcmV0dXJuXG4gKiAgIChgXFxyYCksIG9yIGZvcm0gZmVlZCAoYFxcZmApOyBpZiBhIG5vZGUgaXMgcGFzc2VkIGl0IG11c3QgYmUgYSBgVGV4dGAgbm9kZSxcbiAqICAgd2hvc2UgYHZhbHVlYCBmaWVsZCBpcyBjaGVja2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2hpdGVzcGFjZSh0aGluZykge1xuICByZXR1cm4gdHlwZW9mIHRoaW5nID09PSAnb2JqZWN0J1xuICAgID8gdGhpbmcudHlwZSA9PT0gJ3RleHQnXG4gICAgICA/IGVtcHR5KHRoaW5nLnZhbHVlKVxuICAgICAgOiBmYWxzZVxuICAgIDogZW1wdHkodGhpbmcpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UocmUsICcnKSA9PT0gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcblxuZXhwb3J0IGNvbnN0IHNpYmxpbmdBZnRlciA9IHNpYmxpbmdzKDEpXG5leHBvcnQgY29uc3Qgc2libGluZ0JlZm9yZSA9IHNpYmxpbmdzKC0xKVxuXG4vKiogQHR5cGUge0FycmF5PFJvb3RDb250ZW50Pn0gKi9cbmNvbnN0IGVtcHR5Q2hpbGRyZW4gPSBbXVxuXG4vKipcbiAqIEZhY3RvcnkgdG8gY2hlY2sgc2libGluZ3MgaW4gYSBkaXJlY3Rpb24uXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGluY3JlbWVudFxuICovXG5mdW5jdGlvbiBzaWJsaW5ncyhpbmNyZW1lbnQpIHtcbiAgcmV0dXJuIHNpYmxpbmdcblxuICAvKipcbiAgICogRmluZCBhcHBsaWNhYmxlIHNpYmxpbmdzIGluIGEgZGlyZWN0aW9uLlxuICAgKlxuICAgKiBAdGVtcGxhdGUge1BhcmVudHN9IFBhcmVudFxuICAgKiAgIFBhcmVudCB0eXBlLlxuICAgKiBAcGFyYW0ge1BhcmVudCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqICAgUGFyZW50LlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAgICogICBJbmRleCBvZiBjaGlsZCBpbiBgcGFyZW50YC5cbiAgICogQHBhcmFtIHtib29sZWFuIHwgdW5kZWZpbmVkfSBbaW5jbHVkZVdoaXRlc3BhY2U9ZmFsc2VdXG4gICAqICAgV2hldGhlciB0byBpbmNsdWRlIHdoaXRlc3BhY2UgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICAgKiBAcmV0dXJucyB7UGFyZW50IGV4dGVuZHMge2NoaWxkcmVuOiBBcnJheTxpbmZlciBDaGlsZD59ID8gQ2hpbGQgfCB1bmRlZmluZWQgOiBuZXZlcn1cbiAgICogICBDaGlsZCBvZiBwYXJlbnQuXG4gICAqL1xuICBmdW5jdGlvbiBzaWJsaW5nKHBhcmVudCwgaW5kZXgsIGluY2x1ZGVXaGl0ZXNwYWNlKSB7XG4gICAgY29uc3Qgc2libGluZ3MgPSBwYXJlbnQgPyBwYXJlbnQuY2hpbGRyZW4gOiBlbXB0eUNoaWxkcmVuXG4gICAgbGV0IG9mZnNldCA9IChpbmRleCB8fCAwKSArIGluY3JlbWVudFxuICAgIGxldCBuZXh0ID0gc2libGluZ3Nbb2Zmc2V0XVxuXG4gICAgaWYgKCFpbmNsdWRlV2hpdGVzcGFjZSkge1xuICAgICAgd2hpbGUgKG5leHQgJiYgd2hpdGVzcGFjZShuZXh0KSkge1xuICAgICAgICBvZmZzZXQgKz0gaW5jcmVtZW50XG4gICAgICAgIG5leHQgPSBzaWJsaW5nc1tvZmZzZXRdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogaXRcdTIwMTlzIGEgY29ycmVjdCBjaGlsZC5cbiAgICByZXR1cm4gbmV4dFxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBPbWl0SGFuZGxlXG4gKiAgIENoZWNrIGlmIGEgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKiAgIEVsZW1lbnQgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcuXG4gKlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogRmFjdG9yeSB0byBjaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC5cbiAqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIE9taXRIYW5kbGU+fSBoYW5kbGVyc1xuICogICBPbWlzc2lvbiBoYW5kbGVycywgd2hlcmUgZWFjaCBrZXkgaXMgYSB0YWcgbmFtZSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gKiAgIGNvcnJlc3BvbmRpbmcgaGFuZGxlci5cbiAqIEByZXR1cm5zIHtPbWl0SGFuZGxlfVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcgb2YgYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9taXNzaW9uKGhhbmRsZXJzKSB7XG4gIHJldHVybiBvbWl0XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgZ2l2ZW4gbm9kZSBjYW4gaGF2ZSBhIHRhZyBvbWl0dGVkLlxuICAgKlxuICAgKiBAdHlwZSB7T21pdEhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9taXQobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBvd24uY2FsbChoYW5kbGVycywgbm9kZS50YWdOYW1lKSAmJlxuICAgICAgaGFuZGxlcnNbbm9kZS50YWdOYW1lXShub2RlLCBpbmRleCwgcGFyZW50KVxuICAgIClcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcbmltcG9ydCB7c2libGluZ0FmdGVyfSBmcm9tICcuL3V0aWwvc2libGluZ3MuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3QgY2xvc2luZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY2FwdGlvbjogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGNvbGdyb3VwOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgZGQsXG4gIGR0LFxuICBoZWFkOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgaHRtbCxcbiAgbGksXG4gIG9wdGdyb3VwLFxuICBvcHRpb24sXG4gIHAsXG4gIHJwOiBydWJ5RWxlbWVudCxcbiAgcnQ6IHJ1YnlFbGVtZW50LFxuICB0Ym9keSxcbiAgdGQ6IGNlbGxzLFxuICB0Zm9vdCxcbiAgdGg6IGNlbGxzLFxuICB0aGVhZCxcbiAgdHJcbn0pXG5cbi8qKlxuICogTWFjcm8gZm9yIGA8L2hlYWQ+YCwgYDwvY29sZ3JvdXA+YCwgYW5kIGA8L2NhcHRpb24+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleCwgdHJ1ZSlcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgIT09ICdjb21tZW50JyAmJlxuICAgICAgIShuZXh0LnR5cGUgPT09ICd0ZXh0JyAmJiB3aGl0ZXNwYWNlKG5leHQudmFsdWUuY2hhckF0KDApKSkpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvaHRtbD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGh0bWwoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCBuZXh0LnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9ib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gYm9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3A+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBwKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gbmV4dFxuICAgID8gbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2FkZHJlc3MnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYXJ0aWNsZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdhc2lkZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdibG9ja3F1b3RlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RldGFpbHMnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGl2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RsJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZWxkc2V0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZ2NhcHRpb24nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmlndXJlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Zvb3RlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmb3JtJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gxJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g1JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hlYWRlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoZ3JvdXAnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaHInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbWFpbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdtZW51JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ25hdicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdvbCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdwJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3ByZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdzZWN0aW9uJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3RhYmxlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3VsJylcbiAgICA6ICFwYXJlbnQgfHxcbiAgICAgICAgLy8gQ29uZnVzaW5nIHBhcmVudC5cbiAgICAgICAgIShcbiAgICAgICAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgICAgKHBhcmVudC50YWdOYW1lID09PSAnYScgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnYXVkaW8nIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2RlbCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnaW5zJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdtYXAnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ25vc2NyaXB0JyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICd2aWRlbycpXG4gICAgICAgIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvbGk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBsaShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdsaScpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2R0PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gZHQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBCb29sZWFuKFxuICAgIG5leHQgJiZcbiAgICAgIG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJylcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9kZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGRkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvcnQ+YCBvciBgPC9ycD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHJ1YnlFbGVtZW50KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAncnAnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3J0JykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvb3B0Z3JvdXA+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBvcHRncm91cChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdvcHRncm91cCcpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L29wdGlvbj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIG9wdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ29wdGlvbicgfHwgbmV4dC50YWdOYW1lID09PSAnb3B0Z3JvdXAnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90aGVhZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRoZWFkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gQm9vbGVhbihcbiAgICBuZXh0ICYmXG4gICAgICBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0Ym9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3Rmb290PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGZvb3QoXywgaW5kZXgsIHBhcmVudCkge1xuICByZXR1cm4gIXNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90cj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRyKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ3RyJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGQ+YCBvciBgPC90aD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGNlbGxzKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3RoJykpXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5pbXBvcnQge3NpYmxpbmdBZnRlciwgc2libGluZ0JlZm9yZX0gZnJvbSAnLi91dGlsL3NpYmxpbmdzLmpzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuL2Nsb3NpbmcuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3Qgb3BlbmluZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY29sZ3JvdXAsXG4gIGhlYWQsXG4gIGh0bWwsXG4gIHRib2R5XG59KVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGh0bWw+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaHRtbChub2RlKSB7XG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEpXG4gIHJldHVybiAhaGVhZCB8fCBoZWFkLnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGhlYWQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaGVhZChub2RlKSB7XG4gIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlblxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHNlZW4gPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbltpbmRleF1cbiAgICBpZiAoXG4gICAgICBjaGlsZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChjaGlsZC50YWdOYW1lID09PSAndGl0bGUnIHx8IGNoaWxkLnRhZ05hbWUgPT09ICdiYXNlJylcbiAgICApIHtcbiAgICAgIGlmIChzZWVuLmluY2x1ZGVzKGNoaWxkLnRhZ05hbWUpKSByZXR1cm4gZmFsc2VcbiAgICAgIHNlZW4ucHVzaChjaGlsZC50YWdOYW1lKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbi5sZW5ndGggPiAwXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBib2R5KG5vZGUpIHtcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICByZXR1cm4gKFxuICAgICFoZWFkIHx8XG4gICAgKGhlYWQudHlwZSAhPT0gJ2NvbW1lbnQnICYmXG4gICAgICAhKGhlYWQudHlwZSA9PT0gJ3RleHQnICYmIHdoaXRlc3BhY2UoaGVhZC52YWx1ZS5jaGFyQXQoMCkpKSAmJlxuICAgICAgIShcbiAgICAgICAgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKGhlYWQudGFnTmFtZSA9PT0gJ21ldGEnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnbGluaycgfHxcbiAgICAgICAgICBoZWFkLnRhZ05hbWUgPT09ICdzY3JpcHQnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnc3R5bGUnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAndGVtcGxhdGUnKVxuICAgICAgKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGNvbGdyb3VwPmAuXG4gKiBUaGUgc3BlYyBkZXNjcmliZXMgc29tZSBsb2dpYyBmb3IgdGhlIG9wZW5pbmcgdGFnLCBidXQgaXRcdTIwMTlzIGVhc2llciB0b1xuICogaW1wbGVtZW50IGluIHRoZSBjbG9zaW5nIHRhZywgdG8gdGhlIHNhbWUgZWZmZWN0LCBzbyB3ZSBoYW5kbGUgaXQgdGhlcmVcbiAqIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gY29sZ3JvdXAobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICAvLyBQcmV2aW91cyBjb2xncm91cCB3YXMgYWxyZWFkeSBvbWl0dGVkLlxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcHJldmlvdXMgJiZcbiAgICBwcmV2aW91cy50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICBwcmV2aW91cy50YWdOYW1lID09PSAnY29sZ3JvdXAnICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICdjb2wnKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPHRib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGJvZHkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSlcblxuICAvLyBQcmV2aW91cyB0YWJsZSBzZWN0aW9uIHdhcyBhbHJlYWR5IG9taXR0ZWQuXG4gIGlmIChcbiAgICBwYXJlbnQgJiZcbiAgICBwcmV2aW91cyAmJlxuICAgIHByZXZpb3VzLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIChwcmV2aW91cy50YWdOYW1lID09PSAndGhlYWQnIHx8IHByZXZpb3VzLnRhZ05hbWUgPT09ICd0Ym9keScpICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICd0cicpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge2Njb3VudH0gZnJvbSAnY2NvdW50J1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtmaW5kLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgc3BhY2VzfSBmcm9tICdzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9jbG9zaW5nLmpzJ1xuaW1wb3J0IHtvcGVuaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9vcGVuaW5nLmpzJ1xuXG4vKipcbiAqIE1hcHMgb2Ygc3Vic2V0cy5cbiAqXG4gKiBFYWNoIHZhbHVlIGlzIGEgbWF0cml4IG9mIHR1cGxlcy5cbiAqIFRoZSB2YWx1ZSBhdCBgMGAgY2F1c2VzIHBhcnNlIGVycm9ycywgdGhlIHZhbHVlIGF0IGAxYCBpcyB2YWxpZC5cbiAqIE9mIGJvdGgsIHRoZSB2YWx1ZSBhdCBgMGAgaXMgdW5zYWZlLCBhbmQgdGhlIHZhbHVlIGF0IGAxYCBpcyBzYWZlLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8J2RvdWJsZScgfCAnbmFtZScgfCAnc2luZ2xlJyB8ICd1bnF1b3RlZCcsIEFycmF5PFtBcnJheTxzdHJpbmc+LCBBcnJheTxzdHJpbmc+XT4+fVxuICovXG5jb25zdCBjb25zdGFudHMgPSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS1uYW1lLXN0YXRlPi5cbiAgbmFtZTogW1xuICAgIFsnXFx0XFxuXFxmXFxyICYvPT4nLnNwbGl0KCcnKSwgJ1xcdFxcblxcZlxcciBcIiZcXCcvPT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJy88PT4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCcvPD0+YCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZT4uXG4gIHVucXVvdGVkOiBbXG4gICAgWydcXHRcXG5cXGZcXHIgJj4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGU+LlxuICBzaW5nbGU6IFtcbiAgICBbXCImJ1wiLnNwbGl0KCcnKSwgJ1wiJlxcJ2AnLnNwbGl0KCcnKV0sXG4gICAgW1wiXFwwJidcIi5zcGxpdCgnJyksICdcXDBcIiZcXCdgJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGU+LlxuICBkb3VibGU6IFtcbiAgICBbJ1wiJicuc3BsaXQoJycpLCAnXCImXFwnYCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFwiJicuc3BsaXQoJycpLCAnXFwwXCImXFwnYCcuc3BsaXQoJycpXVxuICBdXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWxlbWVudChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSkge1xuICBjb25zdCBzY2hlbWEgPSBzdGF0ZS5zY2hlbWFcbiAgY29uc3Qgb21pdCA9IHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgPyBmYWxzZSA6IHN0YXRlLnNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3NcbiAgbGV0IHNlbGZDbG9zaW5nID1cbiAgICBzY2hlbWEuc3BhY2UgPT09ICdzdmcnXG4gICAgICA/IHN0YXRlLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50c1xuICAgICAgOiBzdGF0ZS5zZXR0aW5ncy52b2lkcy5pbmNsdWRlcyhub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSlcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBwYXJ0cyA9IFtdXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgbGFzdFxuXG4gIGlmIChzY2hlbWEuc3BhY2UgPT09ICdodG1sJyAmJiBub2RlLnRhZ05hbWUgPT09ICdzdmcnKSB7XG4gICAgc3RhdGUuc2NoZW1hID0gc3ZnXG4gIH1cblxuICBjb25zdCBhdHRycyA9IHNlcmlhbGl6ZUF0dHJpYnV0ZXMoc3RhdGUsIG5vZGUucHJvcGVydGllcylcblxuICBjb25zdCBjb250ZW50ID0gc3RhdGUuYWxsKFxuICAgIHNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnICYmIG5vZGUudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJyA/IG5vZGUuY29udGVudCA6IG5vZGVcbiAgKVxuXG4gIHN0YXRlLnNjaGVtYSA9IHNjaGVtYVxuXG4gIC8vIElmIHRoZSBub2RlIGlzIGNhdGVnb3Jpc2VkIGFzIHZvaWQsIGJ1dCBpdCBoYXMgY2hpbGRyZW4sIHJlbW92ZSB0aGVcbiAgLy8gY2F0ZWdvcmlzYXRpb24uXG4gIC8vIFRoaXMgZW5hYmxlcyBmb3IgZXhhbXBsZSBgbWVudWl0ZW1gcywgd2hpY2ggYXJlIHZvaWQgaW4gVzNDIEhUTUwgYnV0IG5vdFxuICAvLyB2b2lkIGluIFdIQVRXRyBIVE1MLCB0byBiZSBzdHJpbmdpZmllZCBwcm9wZXJseS5cbiAgLy8gTm90ZTogYG1lbnVpdGVtYCBoYXMgc2luY2UgYmVlbiByZW1vdmVkIGZyb20gdGhlIEhUTUwgc3BlYywgYW5kIHNvIGlzIG5vXG4gIC8vIGxvbmdlciB2b2lkLlxuICBpZiAoY29udGVudCkgc2VsZkNsb3NpbmcgPSBmYWxzZVxuXG4gIGlmIChhdHRycyB8fCAhb21pdCB8fCAhb3BlbmluZyhub2RlLCBpbmRleCwgcGFyZW50KSkge1xuICAgIHBhcnRzLnB1c2goJzwnLCBub2RlLnRhZ05hbWUsIGF0dHJzID8gJyAnICsgYXR0cnMgOiAnJylcblxuICAgIGlmIChcbiAgICAgIHNlbGZDbG9zaW5nICYmXG4gICAgICAoc2NoZW1hLnNwYWNlID09PSAnc3ZnJyB8fCBzdGF0ZS5zZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nKVxuICAgICkge1xuICAgICAgbGFzdCA9IGF0dHJzLmNoYXJBdChhdHRycy5sZW5ndGggLSAxKVxuICAgICAgaWYgKFxuICAgICAgICAhc3RhdGUuc2V0dGluZ3MudGlnaHRTZWxmQ2xvc2luZyB8fFxuICAgICAgICBsYXN0ID09PSAnLycgfHxcbiAgICAgICAgKGxhc3QgJiYgbGFzdCAhPT0gJ1wiJyAmJiBsYXN0ICE9PSBcIidcIilcbiAgICAgICkge1xuICAgICAgICBwYXJ0cy5wdXNoKCcgJylcbiAgICAgIH1cblxuICAgICAgcGFydHMucHVzaCgnLycpXG4gICAgfVxuXG4gICAgcGFydHMucHVzaCgnPicpXG4gIH1cblxuICBwYXJ0cy5wdXNoKGNvbnRlbnQpXG5cbiAgaWYgKCFzZWxmQ2xvc2luZyAmJiAoIW9taXQgfHwgIWNsb3Npbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpKSB7XG4gICAgcGFydHMucHVzaCgnPC8nICsgbm9kZS50YWdOYW1lICsgJz4nKVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7UHJvcGVydGllcyB8IG51bGwgfCB1bmRlZmluZWR9IHByb3BzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVBdHRyaWJ1dGVzKHN0YXRlLCBwcm9wcykge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHZhbHVlcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQga2V5XG5cbiAgaWYgKHByb3BzKSB7XG4gICAgZm9yIChrZXkgaW4gcHJvcHMpIHtcbiAgICAgIGlmIChwcm9wc1trZXldICE9PSBudWxsICYmIHByb3BzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHNlcmlhbGl6ZUF0dHJpYnV0ZShzdGF0ZSwga2V5LCBwcm9wc1trZXldKVxuICAgICAgICBpZiAodmFsdWUpIHZhbHVlcy5wdXNoKHZhbHVlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgIGNvbnN0IGxhc3QgPSBzdGF0ZS5zZXR0aW5ncy50aWdodEF0dHJpYnV0ZXNcbiAgICAgID8gdmFsdWVzW2luZGV4XS5jaGFyQXQodmFsdWVzW2luZGV4XS5sZW5ndGggLSAxKVxuICAgICAgOiB1bmRlZmluZWRcblxuICAgIC8vIEluIHRpZ2h0IG1vZGUsIGRvblx1MjAxOXQgYWRkIGEgc3BhY2UgYWZ0ZXIgcXVvdGVkIGF0dHJpYnV0ZXMuXG4gICAgaWYgKGluZGV4ICE9PSB2YWx1ZXMubGVuZ3RoIC0gMSAmJiBsYXN0ICE9PSAnXCInICYmIGxhc3QgIT09IFwiJ1wiKSB7XG4gICAgICB2YWx1ZXNbaW5kZXhdICs9ICcgJ1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZXMuam9pbignJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQHBhcmFtIHtQcm9wZXJ0aWVzW2tleW9mIFByb3BlcnRpZXNdfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlKHN0YXRlLCBrZXksIHZhbHVlKSB7XG4gIGNvbnN0IGluZm8gPSBmaW5kKHN0YXRlLnNjaGVtYSwga2V5KVxuICBjb25zdCB4ID1cbiAgICBzdGF0ZS5zZXR0aW5ncy5hbGxvd1BhcnNlRXJyb3JzICYmIHN0YXRlLnNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnID8gMCA6IDFcbiAgY29uc3QgeSA9IHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycyA/IDAgOiAxXG4gIGxldCBxdW90ZSA9IHN0YXRlLnF1b3RlXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgaWYgKGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4gJiYgKHZhbHVlID09PSBpbmZvLmF0dHJpYnV0ZSB8fCB2YWx1ZSA9PT0gJycpKSB7XG4gICAgdmFsdWUgPSB0cnVlXG4gIH0gZWxzZSBpZiAoXG4gICAgaW5mby5ib29sZWFuIHx8XG4gICAgKGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4gJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJylcbiAgKSB7XG4gICAgdmFsdWUgPSBCb29sZWFuKHZhbHVlKVxuICB9XG5cbiAgaWYgKFxuICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIHZhbHVlID09PSBmYWxzZSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIE51bWJlci5pc05hTih2YWx1ZSkpXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgY29uc3QgbmFtZSA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgIGluZm8uYXR0cmlidXRlLFxuICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgIC8vIEFsd2F5cyBlbmNvZGUgd2l0aG91dCBwYXJzZSBlcnJvcnMgaW4gbm9uLUhUTUwuXG4gICAgICBzdWJzZXQ6IGNvbnN0YW50cy5uYW1lW3hdW3ldXG4gICAgfSlcbiAgKVxuXG4gIC8vIE5vIHZhbHVlLlxuICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgb25seSBvbmUgYm9vbGVhbiBwcm9wZXJ0eSBpbiBTVkc6IGBbZG93bmxvYWRdYCBvblxuICAvLyBgPGE+YC5cbiAgLy8gVGhpcyBwcm9wZXJ0eSBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gYnJvd3NlcnMgKEZpcmVmb3gsIFNhZmFyaSwgQ2hyb21lKSxcbiAgLy8gc28gSSBjYW5cdTIwMTl0IHRlc3QgaWYgZHJvcHBpbmcgdGhlIHZhbHVlIHdvcmtzLlxuICAvLyBCdXQgSSBhc3N1bWUgdGhhdCBpdCBzaG91bGQ6XG4gIC8vXG4gIC8vIGBgYGh0bWxcbiAgLy8gPCFkb2N0eXBlIGh0bWw+XG4gIC8vIDxzdmcgdmlld0JveD1cIjAgMCAxMDAgMTAwXCI+XG4gIC8vICAgPGEgaHJlZj1odHRwczovL2V4YW1wbGUuY29tIGRvd25sb2FkPlxuICAvLyAgICAgPGNpcmNsZSBjeD01MCBjeT00MCByPTM1IC8+XG4gIC8vICAgPC9hPlxuICAvLyA8L3N2Zz5cbiAgLy8gYGBgXG4gIC8vXG4gIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vcHJvcGVydHktaW5mb3JtYXRpb24vYmxvYi9tYWluL2xpYi9zdmcuanM+XG4gIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG5hbWVcblxuICAvLyBgc3BhY2VzYCBkb2Vzblx1MjAxOXQgYWNjZXB0IGEgc2Vjb25kIGFyZ3VtZW50LCBidXQgaXRcdTIwMTlzIGdpdmVuIGhlcmUganVzdCB0b1xuICAvLyBrZWVwIHRoZSBjb2RlIGNsZWFuZXIuXG4gIHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICA/IChpbmZvLmNvbW1hU2VwYXJhdGVkID8gY29tbWFzIDogc3BhY2VzKSh2YWx1ZSwge1xuICAgICAgICBwYWRMZWZ0OiAhc3RhdGUuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzXG4gICAgICB9KVxuICAgIDogU3RyaW5nKHZhbHVlKVxuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyAmJiAhdmFsdWUpIHJldHVybiBuYW1lXG5cbiAgLy8gQ2hlY2sgdW5xdW90ZWQgdmFsdWUuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCkge1xuICAgIHJlc3VsdCA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgdmFsdWUsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIGF0dHJpYnV0ZTogdHJ1ZSxcbiAgICAgICAgc3Vic2V0OiBjb25zdGFudHMudW5xdW90ZWRbeF1beV1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLy8gSWYgd2UgZG9uXHUyMDE5dCB3YW50IHVucXVvdGVkLCBvciBpZiBgdmFsdWVgIGNvbnRhaW5zIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoZW5cbiAgLy8gdW5xdW90ZWRcdTIwMjZcbiAgaWYgKHJlc3VsdCAhPT0gdmFsdWUpIHtcbiAgICAvLyBJZiB0aGUgYWx0ZXJuYXRpdmUgaXMgbGVzcyBjb21tb24gdGhhbiBgcXVvdGVgLCBzd2l0Y2guXG4gICAgaWYgKFxuICAgICAgc3RhdGUuc2V0dGluZ3MucXVvdGVTbWFydCAmJlxuICAgICAgY2NvdW50KHZhbHVlLCBxdW90ZSkgPiBjY291bnQodmFsdWUsIHN0YXRlLmFsdGVybmF0aXZlKVxuICAgICkge1xuICAgICAgcXVvdGUgPSBzdGF0ZS5hbHRlcm5hdGl2ZVxuICAgIH1cblxuICAgIHJlc3VsdCA9XG4gICAgICBxdW90ZSArXG4gICAgICBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgICAvLyBBbHdheXMgZW5jb2RlIHdpdGhvdXQgcGFyc2UgZXJyb3JzIGluIG5vbi1IVE1MLlxuICAgICAgICAgIHN1YnNldDogKHF1b3RlID09PSBcIidcIiA/IGNvbnN0YW50cy5zaW5nbGUgOiBjb25zdGFudHMuZG91YmxlKVt4XVt5XSxcbiAgICAgICAgICBhdHRyaWJ1dGU6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICkgK1xuICAgICAgcXVvdGVcbiAgfVxuXG4gIC8vIERvblx1MjAxOXQgYWRkIGEgYD1gIGZvciB1bnF1b3RlZCBlbXB0aWVzLlxuICByZXR1cm4gbmFtZSArIChyZXN1bHQgPyAnPScgKyByZXN1bHQgOiByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlRleHR9IFRleHRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLWhhc3QnKS5SYXd9IFJhd1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHRleHQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1JhdyB8IFRleHR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gX1xuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXh0KG5vZGUsIF8sIHBhcmVudCwgc3RhdGUpIHtcbiAgLy8gQ2hlY2sgaWYgY29udGVudCBvZiBgbm9kZWAgc2hvdWxkIGJlIGVzY2FwZWQuXG4gIHJldHVybiBwYXJlbnQgJiZcbiAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgKHBhcmVudC50YWdOYW1lID09PSAnc2NyaXB0JyB8fCBwYXJlbnQudGFnTmFtZSA9PT0gJ3N0eWxlJylcbiAgICA/IG5vZGUudmFsdWVcbiAgICA6IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICBub2RlLnZhbHVlLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgICAgc3Vic2V0OiBbJzwnLCAnJiddXG4gICAgICAgIH0pXG4gICAgICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8taGFzdCcpLlJhd30gUmF3XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3RleHR9IGZyb20gJy4vdGV4dC5qcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSByYXcgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1Jhd30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXcobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzSHRtbFxuICAgID8gbm9kZS52YWx1ZVxuICAgIDogdGV4dChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBjb2RlIHNlZSByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgcm9vdC5cbiAqXG4gKiBAcGFyYW0ge1Jvb3R9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gXzFcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8yXG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb290KG5vZGUsIF8xLCBfMiwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLmFsbChub2RlKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7endpdGNofSBmcm9tICd6d2l0Y2gnXG5pbXBvcnQge2NvbW1lbnR9IGZyb20gJy4vY29tbWVudC5qcydcbmltcG9ydCB7ZG9jdHlwZX0gZnJvbSAnLi9kb2N0eXBlLmpzJ1xuaW1wb3J0IHtlbGVtZW50fSBmcm9tICcuL2VsZW1lbnQuanMnXG5pbXBvcnQge3Jhd30gZnJvbSAnLi9yYXcuanMnXG5pbXBvcnQge3Jvb3R9IGZyb20gJy4vcm9vdC5qcydcbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuXG4vKipcbiAqIEB0eXBlIHsobm9kZTogTm9kZXMsIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsIHBhcmVudDogUGFyZW50cyB8IHVuZGVmaW5lZCwgc3RhdGU6IFN0YXRlKSA9PiBzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGUgPSB6d2l0Y2goJ3R5cGUnLCB7XG4gIGludmFsaWQsXG4gIHVua25vd24sXG4gIGhhbmRsZXJzOiB7Y29tbWVudCwgZG9jdHlwZSwgZWxlbWVudCwgcmF3LCByb290LCB0ZXh0fVxufSlcblxuLyoqXG4gKiBGYWlsIHdoZW4gYSBub24tbm9kZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqICAgVW5rbm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTmV2ZXIuXG4gKi9cbmZ1bmN0aW9uIGludmFsaWQobm9kZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vZGUsIG5vdCBgJyArIG5vZGUgKyAnYCcpXG59XG5cbi8qKlxuICogRmFpbCB3aGVuIGEgbm9kZSB3aXRoIGFuIHVua25vd24gdHlwZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVfXG4gKiAgVW5rbm93biBub2RlLlxuICogQHJldHVybnMge25ldmVyfVxuICogICBOZXZlci5cbiAqL1xuZnVuY3Rpb24gdW5rbm93bihub2RlXykge1xuICAvLyBgdHlwZWAgaXMgZ3VhcmFudGVlZCBieSBydW50aW1lIEpTLlxuICBjb25zdCBub2RlID0gLyoqIEB0eXBlIHtOb2Rlc30gKi8gKG5vZGVfKVxuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgJyArIG5vZGUudHlwZSArICdgJylcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3N0cmluZ2lmeS1lbnRpdGllcycpLk9wdGlvbnN9IFN0cmluZ2lmeUVudGl0aWVzT3B0aW9uc1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09taXQ8U3RyaW5naWZ5RW50aXRpZXNPcHRpb25zLCAnYXR0cmlidXRlJyB8ICdlc2NhcGVPbmx5JyB8ICdzdWJzZXQnPn0gQ2hhcmFjdGVyUmVmZXJlbmNlc1xuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM9ZmFsc2VdXG4gKiAgIERvIG5vdCBlbmNvZGUgc29tZSBjaGFyYWN0ZXJzIHdoaWNoIGNhdXNlIFhTUyB2dWxuZXJhYmlsaXRpZXMgaW4gb2xkZXJcbiAqICAgYnJvd3NlcnMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0h0bWw9ZmFsc2VdXG4gKiAgIEFsbG93IGByYXdgIG5vZGVzIGFuZCBpbnNlcnQgdGhlbSBhcyByYXcgSFRNTCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBXaGVuIGBmYWxzZWAsIGBSYXdgIG5vZGVzIGFyZSBlbmNvZGVkLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd1BhcnNlRXJyb3JzPWZhbHNlXVxuICogICBEbyBub3QgZW5jb2RlIGNoYXJhY3RlcnMgd2hpY2ggY2F1c2UgcGFyc2UgZXJyb3JzIChldmVuIHRob3VnaCB0aGV5IHdvcmspLFxuICogICB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtib2d1c0NvbW1lbnRzPWZhbHNlXVxuICogICBVc2UgXHUyMDFDYm9ndXMgY29tbWVudHNcdTIwMUQgaW5zdGVhZCBvZiBjb21tZW50cyB0byBzYXZlIGJ5ZXM6IGA8P2NoYXJsaWU+YFxuICogICBpbnN0ZWFkIG9mIGA8IS0tY2hhcmxpZS0tPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge0NoYXJhY3RlclJlZmVyZW5jZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2hhcmFjdGVyUmVmZXJlbmNlc11cbiAqICAgQ29uZmlndXJlIGhvdyB0byBzZXJpYWxpemUgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9zZUVtcHR5RWxlbWVudHM9ZmFsc2VdXG4gKiAgIENsb3NlIFNWRyBlbGVtZW50cyB3aXRob3V0IGFueSBjb250ZW50IHdpdGggc2xhc2ggKGAvYCkgb24gdGhlIG9wZW5pbmcgdGFnXG4gKiAgIGluc3RlYWQgb2YgYW4gZW5kIHRhZzogYDxjaXJjbGUgLz5gIGluc3RlYWQgb2YgYDxjaXJjbGU+PC9jaXJjbGU+YFxuICogICAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBTZWUgYHRpZ2h0U2VsZkNsb3NpbmdgIHRvIGNvbnRyb2wgd2hldGhlciBhIHNwYWNlIGlzIHVzZWQgYmVmb3JlIHRoZVxuICogICBzbGFzaC5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBIVE1MIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Nsb3NlU2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIENsb3NlIHNlbGYtY2xvc2luZyBub2RlcyB3aXRoIGFuIGV4dHJhIHNsYXNoIChgL2ApOiBgPGltZyAvPmAgaW5zdGVhZCBvZlxuICogICBgPGltZz5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFNlZSBgdGlnaHRTZWxmQ2xvc2luZ2AgdG8gY29udHJvbCB3aGV0aGVyIGEgc3BhY2UgaXMgdXNlZCBiZWZvcmUgdGhlXG4gKiAgIHNsYXNoLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2xsYXBzZUVtcHR5QXR0cmlidXRlcz1mYWxzZV1cbiAqICAgQ29sbGFwc2UgZW1wdHkgYXR0cmlidXRlczogZ2V0IGBjbGFzc2AgaW5zdGVhZCBvZiBgY2xhc3M9XCJcImAgKGRlZmF1bHQ6XG4gKiAgIGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBib29sZWFuIGF0dHJpYnV0ZXMgKHN1Y2ggYXMgYGhpZGRlbmApIGFyZSBhbHdheXMgY29sbGFwc2VkLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29taXRPcHRpb25hbFRhZ3M9ZmFsc2VdXG4gKiAgIE9taXQgb3B0aW9uYWwgb3BlbmluZyBhbmQgY2xvc2luZyB0YWdzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEZvciBleGFtcGxlLCBpbiBgPG9sPjxsaT5vbmU8L2xpPjxsaT50d288L2xpPjwvb2w+YCwgYm90aCBgPC9saT5gIGNsb3NpbmdcbiAqICAgdGFncyBjYW4gYmUgb21pdHRlZC5cbiAqICAgVGhlIGZpcnN0IGJlY2F1c2UgaXRcdTIwMTlzIGZvbGxvd2VkIGJ5IGFub3RoZXIgYGxpYCwgdGhlIGxhc3QgYmVjYXVzZSBpdFx1MjAxOXNcbiAqICAgZm9sbG93ZWQgYnkgbm90aGluZy5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJlZmVyVW5xdW90ZWQ9ZmFsc2VdXG4gKiAgIExlYXZlIGF0dHJpYnV0ZXMgdW5xdW90ZWQgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbcXVvdGU9J1wiJ11cbiAqICAgUHJlZmVycmVkIHF1b3RlIHRvIHVzZSAoZGVmYXVsdDogYCdcIidgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtxdW90ZVNtYXJ0PWZhbHNlXVxuICogICBVc2UgdGhlIG90aGVyIHF1b3RlIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3BhY2U9J2h0bWwnXVxuICogICBXaGVuIGFuIGA8c3ZnPmAgZWxlbWVudCBpcyBmb3VuZCBpbiB0aGUgSFRNTCBzcGFjZSwgdGhpcyBwYWNrYWdlIGFscmVhZHlcbiAqICAgYXV0b21hdGljYWxseSBzd2l0Y2hlcyB0byBhbmQgZnJvbSB0aGUgU1ZHIHNwYWNlIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmdcbiAqICAgaXQgKGRlZmF1bHQ6IGAnaHRtbCdgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBoYXN0IGlzIG5vdCBYTUwuXG4gKiAgID4gSXQgc3VwcG9ydHMgU1ZHIGFzIGVtYmVkZGVkIGluIEhUTUwuXG4gKiAgID4gSXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZmVhdHVyZXMgYXZhaWxhYmxlIGluIFhNTC5cbiAqICAgPiBQYXNzaW5nIFNWRyBtaWdodCBicmVhayBidXQgZnJhZ21lbnRzIG9mIG1vZGVybiBTVkcgc2hvdWxkIGJlIGZpbmUuXG4gKiAgID4gVXNlIFtgeGFzdGBdW3hhc3RdIGlmIHlvdSBuZWVkIHRvIHN1cHBvcnQgU1ZHIGFzIFhNTC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodEF0dHJpYnV0ZXM9ZmFsc2VdXG4gKiAgIEpvaW4gYXR0cmlidXRlcyB0b2dldGhlciwgd2l0aG91dCB3aGl0ZXNwYWNlLCBpZiBwb3NzaWJsZTogZ2V0XG4gKiAgIGBjbGFzcz1cImEgYlwidGl0bGU9XCJjIGRcImAgaW5zdGVhZCBvZiBgY2xhc3M9XCJhIGJcIiB0aXRsZT1cImMgZFwiYCB0byBzYXZlXG4gKiAgIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM9ZmFsc2VdXG4gKiAgIEpvaW4ga25vd24gY29tbWEtc2VwYXJhdGVkIGF0dHJpYnV0ZSB2YWx1ZXMgd2l0aCBqdXN0IGEgY29tbWEgKGAsYCksXG4gKiAgIGluc3RlYWQgb2YgcGFkZGluZyB0aGVtIG9uIHRoZSByaWdodCBhcyB3ZWxsIChgLFx1MjQyMGAsIHdoZXJlIGBcdTI0MjBgIHJlcHJlc2VudHMgYVxuICogICBzcGFjZSkgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0RG9jdHlwZT1mYWxzZV1cbiAqICAgRHJvcCB1bm5lZWRlZCBzcGFjZXMgaW4gZG9jdHlwZXM6IGA8IWRvY3R5cGVodG1sPmAgaW5zdGVhZCBvZlxuICogICBgPCFkb2N0eXBlIGh0bWw+YCB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0U2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIERvIG5vdCB1c2UgYW4gZXh0cmEgc3BhY2Ugd2hlbiBjbG9zaW5nIHNlbGYtY2xvc2luZyBlbGVtZW50czogYDxpbWcvPmBcbiAqICAgaW5zdGVhZCBvZiBgPGltZyAvPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IG9ubHkgdXNlZCBpZiBgY2xvc2VTZWxmQ2xvc2luZzogdHJ1ZWAgb3JcbiAqICAgPiBgY2xvc2VFbXB0eUVsZW1lbnRzOiB0cnVlYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt1cHBlckRvY3R5cGU9ZmFsc2VdXG4gKiAgIFVzZSBhIGA8IURPQ1RZUEVcdTIwMjZgIGluc3RlYWQgb2YgYDwhZG9jdHlwZVx1MjAyNmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgVXNlbGVzcyBleGNlcHQgZm9yIFhIVE1MLlxuICogQHByb3BlcnR5IHtSZWFkb25seUFycmF5PHN0cmluZz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdm9pZHNdXG4gKiAgIFRhZyBuYW1lcyBvZiBlbGVtZW50cyB0byBzZXJpYWxpemUgd2l0aG91dCBjbG9zaW5nIHRhZyAoZGVmYXVsdDogYGh0bWwtdm9pZC1lbGVtZW50c2ApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBJdFx1MjAxOXMgaGlnaGx5IHVubGlrZWx5IHRoYXQgeW91IHdhbnQgdG8gcGFzcyB0aGlzLCBiZWNhdXNlXG4gKiAgID4gaGFzdCBpcyBub3QgZm9yIFhNTCwgYW5kIEhUTUwgd2lsbCBub3QgYWRkIG1vcmUgdm9pZCBlbGVtZW50cy5cbiAqXG4gKiBAdHlwZWRlZiB7J1wiJyB8IFwiJ1wifSBRdW90ZVxuICogICBIVE1MIHF1b3RlcyBmb3IgYXR0cmlidXRlIHZhbHVlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T21pdDxSZXF1aXJlZDx7W2tleSBpbiBrZXlvZiBPcHRpb25zXTogRXhjbHVkZTxPcHRpb25zW2tleV0sIG51bGwgfCB1bmRlZmluZWQ+fT4sICdzcGFjZScgfCAncXVvdGUnPn0gU2V0dGluZ3NcbiAqXG4gKiBAdHlwZWRlZiB7J2h0bWwnIHwgJ3N2Zyd9IFNwYWNlXG4gKiAgIE5hbWVzcGFjZS5cbiAqXG4gKiBAdHlwZWRlZiBTdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBOb2RlcywgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCwgcGFyZW50OiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IG9uZVxuICogICBTZXJpYWxpemUgb25lIG5vZGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IGFsbFxuICogICBTZXJpYWxpemUgdGhlIGNoaWxkcmVuIG9mIGEgcGFyZW50IG5vZGUuXG4gKiBAcHJvcGVydHkge1NldHRpbmdzfSBzZXR0aW5nc1xuICogICBVc2VyIGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtRdW90ZX0gcXVvdGVcbiAqICAgUHJlZmVycmVkIHF1b3RlLlxuICogQHByb3BlcnR5IHtRdW90ZX0gYWx0ZXJuYXRpdmVcbiAqICAgQWx0ZXJuYXRpdmUgcXVvdGUuXG4gKi9cblxuaW1wb3J0IHtodG1sVm9pZEVsZW1lbnRzfSBmcm9tICdodG1sLXZvaWQtZWxlbWVudHMnXG5pbXBvcnQge2h0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2hhbmRsZX0gZnJvbSAnLi9oYW5kbGUvaW5kZXguanMnXG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKiBAdHlwZSB7Q2hhcmFjdGVyUmVmZXJlbmNlc30gKi9cbmNvbnN0IGVtcHR5Q2hhcmFjdGVyUmVmZXJlbmNlcyA9IHt9XG5cbi8qKiBAdHlwZSB7QXJyYXk8bmV2ZXI+fSAqL1xuY29uc3QgZW1wdHlDaGlsZHJlbiA9IFtdXG5cbi8qKlxuICogU2VyaWFsaXplIGhhc3QgYXMgSFRNTC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50PiB8IE5vZGVzfSB0cmVlXG4gKiAgIFRyZWUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSHRtbCh0cmVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IG9wdGlvbnNfID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgcXVvdGUgPSBvcHRpb25zXy5xdW90ZSB8fCAnXCInXG4gIGNvbnN0IGFsdGVybmF0aXZlID0gcXVvdGUgPT09ICdcIicgPyBcIidcIiA6ICdcIidcblxuICBpZiAocXVvdGUgIT09ICdcIicgJiYgcXVvdGUgIT09IFwiJ1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHF1b3RlIGAnICsgcXVvdGUgKyAnYCwgZXhwZWN0ZWQgYFxcJ2Agb3IgYFwiYCcpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBvbmUsXG4gICAgYWxsLFxuICAgIHNldHRpbmdzOiB7XG4gICAgICBvbWl0T3B0aW9uYWxUYWdzOiBvcHRpb25zXy5vbWl0T3B0aW9uYWxUYWdzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dQYXJzZUVycm9yczogb3B0aW9uc18uYWxsb3dQYXJzZUVycm9ycyB8fCBmYWxzZSxcbiAgICAgIGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczogb3B0aW9uc18uYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzIHx8IGZhbHNlLFxuICAgICAgcXVvdGVTbWFydDogb3B0aW9uc18ucXVvdGVTbWFydCB8fCBmYWxzZSxcbiAgICAgIHByZWZlclVucXVvdGVkOiBvcHRpb25zXy5wcmVmZXJVbnF1b3RlZCB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0QXR0cmlidXRlczogb3B0aW9uc18udGlnaHRBdHRyaWJ1dGVzIHx8IGZhbHNlLFxuICAgICAgdXBwZXJEb2N0eXBlOiBvcHRpb25zXy51cHBlckRvY3R5cGUgfHwgZmFsc2UsXG4gICAgICB0aWdodERvY3R5cGU6IG9wdGlvbnNfLnRpZ2h0RG9jdHlwZSB8fCBmYWxzZSxcbiAgICAgIGJvZ3VzQ29tbWVudHM6IG9wdGlvbnNfLmJvZ3VzQ29tbWVudHMgfHwgZmFsc2UsXG4gICAgICB0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6IG9wdGlvbnNfLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0cyB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0U2VsZkNsb3Npbmc6IG9wdGlvbnNfLnRpZ2h0U2VsZkNsb3NpbmcgfHwgZmFsc2UsXG4gICAgICBjb2xsYXBzZUVtcHR5QXR0cmlidXRlczogb3B0aW9uc18uY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMgfHwgZmFsc2UsXG4gICAgICBhbGxvd0Rhbmdlcm91c0h0bWw6IG9wdGlvbnNfLmFsbG93RGFuZ2Vyb3VzSHRtbCB8fCBmYWxzZSxcbiAgICAgIHZvaWRzOiBvcHRpb25zXy52b2lkcyB8fCBodG1sVm9pZEVsZW1lbnRzLFxuICAgICAgY2hhcmFjdGVyUmVmZXJlbmNlczpcbiAgICAgICAgb3B0aW9uc18uY2hhcmFjdGVyUmVmZXJlbmNlcyB8fCBlbXB0eUNoYXJhY3RlclJlZmVyZW5jZXMsXG4gICAgICBjbG9zZVNlbGZDbG9zaW5nOiBvcHRpb25zXy5jbG9zZVNlbGZDbG9zaW5nIHx8IGZhbHNlLFxuICAgICAgY2xvc2VFbXB0eUVsZW1lbnRzOiBvcHRpb25zXy5jbG9zZUVtcHR5RWxlbWVudHMgfHwgZmFsc2VcbiAgICB9LFxuICAgIHNjaGVtYTogb3B0aW9uc18uc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICBxdW90ZSxcbiAgICBhbHRlcm5hdGl2ZVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlLm9uZShcbiAgICBBcnJheS5pc0FycmF5KHRyZWUpID8ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IHRyZWV9IDogdHJlZSxcbiAgICB1bmRlZmluZWQsXG4gICAgdW5kZWZpbmVkXG4gIClcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBub2RlLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG9uZShub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHJldHVybiBoYW5kbGUobm9kZSwgaW5kZXgsIHBhcmVudCwgdGhpcylcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYWxsIGNoaWxkcmVuIG9mIGBwYXJlbnRgLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IHdob3NlIGNoaWxkcmVuIHRvIHNlcmlhbGl6ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGwocGFyZW50KSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGNvbnN0IGNoaWxkcmVuID0gKHBhcmVudCAmJiBwYXJlbnQuY2hpbGRyZW4pIHx8IGVtcHR5Q2hpbGRyZW5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIHJlc3VsdHNbaW5kZXhdID0gdGhpcy5vbmUoY2hpbGRyZW5baW5kZXhdLCBpbmRleCwgcGFyZW50KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHMuam9pbignJylcbn1cbiIsICJcbmV4cG9ydCBpbnRlcmZhY2UgSW5saW5lQ29kZVBhcmFtZXRlcnMge1xuXHRsYW5ndWFnZTogc3RyaW5nO1xuXHR0aXRsZTogc3RyaW5nO1xuXHRpY29uOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmxpbmVDb2RlKGNvZGVUZXh0OiBzdHJpbmcpOiB7cGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMgfCBudWxsLCB0ZXh0OiBzdHJpbmd9IHtcblx0Y29uc3QgbWF0Y2ggPSAvXnsoKD86W15cIid7fVxcXFxdfFxcXFwufFwiKD86W15cIlxcXFxdfFxcXFwuKSpcInwnKD86W14nXFxcXF18XFxcXC4pKicpKil9ICo/KFteIF0uKikkLy5leGVjKGNvZGVUZXh0KTtcblxuXHRjb25zb2xlLmxvZyhtYXRjaCk7XG5cdGlmICh0eXBlb2YgbWF0Y2g/LlsxXSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgbWF0Y2g/LlsyXSAhPT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdGNvbnNvbGUubG9nKG1hdGNoKTtcblx0XHRpZiAobWF0Y2hbMV0gPT09IFwiXCIpXG5cdFx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IG1hdGNoWzJdfTtcblx0XHRlbHNlXG5cdFx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlcnMobWF0Y2hbMV0pLCB0ZXh0OiBtYXRjaFsyXX07XG5cdH0gZWxzZVxuXHRcdHJldHVybiB7cGFyYW1ldGVyczogbnVsbCwgdGV4dDogY29kZVRleHR9O1xufVxuZnVuY3Rpb24gcGFyc2VJbmxpbmVDb2RlUGFyYW1ldGVycyhwYXJhbWV0ZXJMaW5lOiBzdHJpbmcpOiBJbmxpbmVDb2RlUGFyYW1ldGVycyB7XG5cdGNvbnN0IGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyA9IHtcblx0XHRsYW5ndWFnZTogXCJcIixcblx0XHR0aXRsZTogXCJcIixcblx0XHRpY29uOiBmYWxzZSxcblx0fTtcblx0Y29uc3QgbGFuZ3VhZ2VCcmVhayA9IHBhcmFtZXRlckxpbmUuaW5kZXhPZihcIiBcIik7XG5cdGlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlID0gcGFyYW1ldGVyTGluZS5zbGljZSgwLGxhbmd1YWdlQnJlYWsgIT09IC0xP2xhbmd1YWdlQnJlYWs6cGFyYW1ldGVyTGluZS5sZW5ndGgpLnRvTG93ZXJDYXNlKCk7XG5cdGlmIChsYW5ndWFnZUJyZWFrID09PSAtMSlcblx0XHRyZXR1cm4gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdGNvbnN0IHBhcmFtZXRlclN0cmluZ3MgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKGxhbmd1YWdlQnJlYWsrMSkubWF0Y2goLyg/OlteXFxzXCInXSt8XCJbXlwiXSpcInwnW14nXSonKSsvZyk7XG5cdGlmICghcGFyYW1ldGVyU3RyaW5ncylcblx0XHRyZXR1cm4gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdHBhcmFtZXRlclN0cmluZ3MuZm9yRWFjaCgocGFyYW1ldGVyU3RyaW5nKSA9PiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJTdHJpbmcocGFyYW1ldGVyU3RyaW5nLGlubGluZUNvZGVQYXJhbWV0ZXJzKSk7XG5cdHJldHVybiBpbmxpbmVDb2RlUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzKTogdm9pZCB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcInRpdGxlOlwiKSkge1xuXHRcdGNvbnN0IHRpdGxlTWF0Y2ggPSAvKFtcIiddPykoW15cXDFdKylcXDEvLmV4ZWMocGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidGl0bGU6XCIubGVuZ3RoKSk7XG5cdFx0aWYgKHRpdGxlTWF0Y2gpXG5cdFx0XHRpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZSA9IHRpdGxlTWF0Y2hbMl0udHJpbSgpLnJlcGxhY2UoL1xcXFx7L2csIFwie1wiKTtcblx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwiaWNvblwiIHx8IChwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcImljb246XCIpICYmIHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImljb246dHJ1ZVwiKSlcblx0XHRpbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uID0gdHJ1ZTtcbn1cbiIsICJpbXBvcnQgeyBMQU5HVUFHRV9OQU1FUywgQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIEZPTERfUExBQ0VIT0xERVIsIEdJVF9JQ09OUywgU1RBTVBfSUNPTiwgU0lURV9JQ09OUywgVVBEQVRFX0lDT04gfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29kZWJsb2NrUGFyYW1ldGVycywgSGlnaGxpZ2h0cyB9IGZyb20gXCIuL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZ1wiO1xuaW1wb3J0IHsgSW5saW5lQ29kZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi9QYXJzaW5nL0lubGluZUNvZGVQYXJzaW5nXCI7XG5pbXBvcnQgeyBNYXJrZG93blJlbmRlcmVyIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi9tYWluXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIZWFkZXIoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCBoZWFkZXJDb250YWluZXIgPSBjcmVhdGVEaXYoKTtcblx0Y29uc3QgaWNvblVSTCA9IGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2U/Z2V0TGFuZ3VhZ2VJY29uKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLmxhbmd1YWdlSWNvbnMpOnVuZGVmaW5lZDtcblx0aWYgKCFpc0hlYWRlckhpZGRlbihjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lU2V0dGluZ3MsaWNvblVSTCkpIHtcblx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXJcIik7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgIT09IFwiXCIpIHtcblx0XHRcdGlmIChpc0xhbmd1YWdlSWNvblNob3duKGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWVTZXR0aW5ncyxpY29uVVJMKSlcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUltYWdlV3JhcHBlcihpY29uVVJMIGFzIHN0cmluZyxjcmVhdGVEaXYoKSkpO1xuXHRcdFx0aWYgKGlzTGFuZ3VhZ2VUYWdTaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lU2V0dGluZ3MpKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZ1wiLCB0ZXh0OiBnZXRMYW5ndWFnZVRhZyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKX0pKTtcblx0XHR9XG5cdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVRpdGxlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3MsIHNvdXJjZVBhdGgsIHBsdWdpbikpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZSkgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgc2V0dGluZ3MgdG9nZ2xlXG5cdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5ncykpO1xuXHRcdGlmIChmYWxzZSkgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgc2V0dGluZ3MgdG9nZ2xlXG5cdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRXhlY3V0ZUNvZGVDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5ncywgcGx1Z2luKSk7XG5cdH0gZWxzZVxuXHRcdGhlYWRlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW5cIik7XG5cdHJldHVybiBoZWFkZXJDb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVUaXRsZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IHRpdGxlQ29udGFpbmVyID0gY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLXRleHRcIn0pO1xuXHRjb25zdCB0aXRsZSA9IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgfHwgKGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkPyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgfHwgdGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyIHx8IEZPTERfUExBQ0VIT0xERVIpOlwiXCIpO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPT09IFwiXCIpXG5cdFx0dGl0bGVDb250YWluZXIuaW5uZXJUZXh0ID0gdGl0bGU7XG5cdGVsc2UgaWYgKC9eKD86aHR0cHM/fGZpbGUpOlxcL1xcLy8udGVzdChjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSkpXG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxgWyR7dGl0bGV9XSgke2NvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlfSlgLHRpdGxlQ29udGFpbmVyLHNvdXJjZVBhdGgscGx1Z2luKTtcblx0ZWxzZVxuXHRcdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBsdWdpbi5hcHAsYFtbJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZX18JHt0aXRsZX1dXWAsdGl0bGVDb250YWluZXIsc291cmNlUGF0aCxwbHVnaW4pOyAvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCBsaW5rcyB0byBtZXRhZGF0YSBjYWNoZSBwcm9wZXJseVxuXHRyZXR1cm4gdGl0bGVDb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyk6IEhUTUxFbGVtZW50IHtcblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBBZGQgdGhlbWUgc2V0dGluZ3MgdG8gY29uZGl0aW9uYWxseSBzZXQgc2VjdGlvbnNcblx0Y29uc3QgZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIgPSBjcmVhdGVEaXYoeyBjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZVwiIH0pO1xuXHRjb25zdCBzaXRlSWNvbiA9IGNyZWF0ZURpdih7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVwby1pY29uXCIgfSk7XG5cdHNpdGVJY29uLmlubmVySFRNTCA9IFNJVEVfSUNPTlM/Lltjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uc2l0ZSBhcyBzdHJpbmddID8/IFNJVEVfSUNPTlNbXCJnZW5lcmljXCJdO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChzaXRlSWNvbik7XG5cdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVwb1wiLCB0ZXh0OiBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uYXV0aG9yICsgXCIvXCIgKyBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8ucmVwb3NpdG9yeSB9KSk7XG5cdGNvbnN0IHJlZkljb24gPSBjcmVhdGVEaXYoeyBjbHM6IFwiZXh0ZXJuYWwtcmVmZXJlbmNlLXJlZi1pY29uXCIgfSk7XG5cdHJlZkljb24uaW5uZXJIVE1MID0gR0lUX0lDT05TPy5bY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LnJlZkluZm8/LnR5cGUgYXMgc3RyaW5nXSA/PyBHSVRfSUNPTlNbXCJicmFuY2hcIl07XG5cdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlZkljb24pO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVmXCIsIHRleHQ6IGNvZGVibG9ja1BhcmFtZXRlcnM/LmV4dGVybmFsUmVmZXJlbmNlPy5yZWZJbmZvPy5yZWYgYXMgc3RyaW5nfSkpO1xuXHRjb25zdCBzdGFtcEljb24gPSBjcmVhdGVEaXYoeyBjbHM6IFwiZXh0ZXJuYWwtcmVmZXJlbmNlLXRpbWVzdGFtcC1pY29uXCIgfSk7XG5cdHN0YW1wSWNvbi5pbm5lckhUTUwgPSBTVEFNUF9JQ09OO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChzdGFtcEljb24pO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoeyBjbHM6IFwiZXh0ZXJuYWwtcmVmZXJlbmNlLXRpbWVzdGFtcFwiLCB0ZXh0OiBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uZGF0ZXRpbWUgYXMgc3RyaW5nIH0pKTtcblx0Y29uc3QgdXBkYXRlSWNvbiA9IGNyZWF0ZUVsKFwiYnV0dG9uXCIsIHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS11cGRhdGUtaWNvblwifSk7XG5cdHVwZGF0ZUljb24uaW5uZXJIVE1MID0gVVBEQVRFX0lDT047XG5cdHVwZGF0ZUljb24udGl0bGUgPSBcIlVwZGF0ZSBSZWZlcmVuY2VcIjtcblx0dXBkYXRlSWNvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGV2ZW50KSA9PiB7XG5cdFx0Ly8gVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlIGNvZGVibG9ja1xuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHR9KTtcblx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQodXBkYXRlSWNvbik7XG5cdHJldHVybiBleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV4ZWN1dGVDb2RlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IGV4ZWN1dGVDb2RlQ29udGFpbmVyID0gY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLWV4ZWN1dGUtY29kZVwifSk7XG5cdC8vVE9ETyAoQG1heXVyYW5rdikgRmluaXNoXG5cdHJldHVybiBleGVjdXRlQ29kZUNvbnRhaW5lcjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbmxpbmVPcGVuZXIoaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzLCBsYW5ndWFnZUljb25zOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4sIGNvbnRhaW5lckNsYXNzZXM6IEFycmF5PHN0cmluZz4gPSBbXCJjb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyXCJdKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCBvcGVuZXJDb250YWluZXIgPSBjcmVhdGVTcGFuKHtjbHM6IGNvbnRhaW5lckNsYXNzZXMuam9pbihcIiBcIil9KTtcblx0aWYgKGlubGluZUNvZGVQYXJhbWV0ZXJzLmljb24pIHtcblx0XHRjb25zdCBpY29uVVJMID0gZ2V0TGFuZ3VhZ2VJY29uKGlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLGxhbmd1YWdlSWNvbnMpO1xuXHRcdGlmICh0eXBlb2YgaWNvblVSTCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdG9wZW5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTCxjcmVhdGVTcGFuKCksXCJjb2RlLXN0eWxlci1pbmxpbmUtaWNvblwiKSk7XG5cdH1cblx0aWYgKGlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlKVxuXHRcdG9wZW5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuKHtjbHM6IFwiY29kZS1zdHlsZXItaW5saW5lLXRpdGxlXCIsIHRleHQ6IGlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlfSkpO1xuXHRyZXR1cm4gb3BlbmVyQ29udGFpbmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlSW1hZ2VXcmFwcGVyKGljb25VUkw6IHN0cmluZywgaW1hZ2VXcmFwcGVyOiBIVE1MRWxlbWVudCwgaW1nQ2xhc3MgPSBcImNvZGUtc3R5bGVyLWljb25cIik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiKTtcblx0aW1nLmNsYXNzTGlzdC5hZGQoaW1nQ2xhc3MpO1xuXHRpbWcuc3JjID0gaWNvblVSTDtcblx0aW1hZ2VXcmFwcGVyLmFwcGVuZENoaWxkKGltZyk7XG5cdHJldHVybiBpbWFnZVdyYXBwZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZUljb24obGFuZ3VhZ2U6IHN0cmluZywgbGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGxhbmd1YWdlSWNvbnM/LltnZXRMYW5ndWFnZVRhZyhsYW5ndWFnZSldO1xufVxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VUYWcobGFuZ3VhZ2U6IHN0cmluZykge1xuXHRyZXR1cm4gTEFOR1VBR0VfTkFNRVM/LltsYW5ndWFnZV0gPz8gKGxhbmd1YWdlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbGFuZ3VhZ2Uuc2xpY2UoMSkgfHwgXCJcIik7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNIZWFkZXJIaWRkZW4oY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIGljb25VUkw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gIWlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVycykgJiYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwiXCIgfHwgKHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgIT09IFwiYWx3YXlzXCIgJiYgKHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ICE9PSBcImFsd2F5c1wiIHx8ICh0eXBlb2YgaWNvblVSTCA9PSBcInVuZGVmaW5lZFwiKSkpKTtcbn1cbmZ1bmN0aW9uIGlzTGFuZ3VhZ2VJY29uU2hvd24oY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIGljb25VUkw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gKHR5cGVvZiBpY29uVVJMICE9PSBcInVuZGVmaW5lZFwiKSAmJiAodGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IFwiYWx3YXlzXCIgfHwgKGlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVycykgJiYgdGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IFwiaWZfaGVhZGVyX3Nob3duXCIpKTtcbn1cbmZ1bmN0aW9uIGlzTGFuZ3VhZ2VUYWdTaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gdGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gXCJhbHdheXNcIiB8fCAoaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzKSAmJiB0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID09PSBcImlmX2hlYWRlcl9zaG93blwiKTtcbn1cbmZ1bmN0aW9uIGlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgfHwgY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSAhPT0gXCJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmVDbGFzcyhjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBsaW5lTnVtYmVyOiBudW1iZXIsIGxpbmU6IHN0cmluZyk6IEFycmF5PHN0cmluZz4ge1xuXHRsZXQgY2xhc3NMaXN0OiBBcnJheTxzdHJpbmc+ID0gW107XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5saW5lTnVtYmVycy5pbmNsdWRlcyhsaW5lTnVtYmVyK2NvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5wbGFpblRleHQuc29tZSh0ZXh0ID0+IGxpbmUuaW5kZXhPZih0ZXh0KSA+IC0xKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5yZWd1bGFyRXhwcmVzc2lvbnMuc29tZShyZWdFeHAgPT4gcmVnRXhwLnRlc3QobGluZSkpKVxuXHRcdGNsYXNzTGlzdC5wdXNoKFwiY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZFwiKTtcblx0T2JqZWN0LmVudHJpZXMoY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmFsdGVybmF0aXZlKS5mb3JFYWNoKChbYWx0ZXJuYXRpdmVIaWdobGlnaHQsaGlnaGxpZ2h0ZWRMaW5lc106IFtzdHJpbmcsSGlnaGxpZ2h0c10pID0+IHtcblx0XHRpZiAoaGlnaGxpZ2h0ZWRMaW5lcy5saW5lTnVtYmVycy5pbmNsdWRlcyhsaW5lTnVtYmVyK2NvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KSB8fCBoaWdobGlnaHRlZExpbmVzLnBsYWluVGV4dC5zb21lKHRleHQgPT4gbGluZS5pbmRleE9mKHRleHQpID4gLTEpIHx8IGhpZ2hsaWdodGVkTGluZXMucmVndWxhckV4cHJlc3Npb25zLnNvbWUocmVnRXhwID0+IHJlZ0V4cC50ZXN0KGxpbmUpKSlcblx0XHRcdGNsYXNzTGlzdC5wdXNoKGBjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLCBcIi1cIikudG9Mb3dlckNhc2UoKX1gKTtcblx0fSk7XG5cdGlmIChjbGFzc0xpc3QubGVuZ3RoID09PSAwKVxuXHRcdGNsYXNzTGlzdCA9IFtcImNvZGUtc3R5bGVyLWxpbmVcIl07XG5cdHJldHVybiBjbGFzc0xpc3Q7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQUFBLFNBQTJDQSxJQUFNQyxJQUFBQTtBQUMxQixrQkFBQSxPQUFaQyxXQUEwQyxZQUFB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YixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixpQkFBaUI7QUFBQSxFQUNqQixZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDViw0QkFBNEI7QUFBQSxFQUM1QixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxxQkFBcUI7QUFBQSxFQUNyQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixhQUFhO0FBQUEsRUFDYixzQkFBc0I7QUFBQSxFQUN0QixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxlQUFlO0FBQUEsRUFDZixrQkFBa0I7QUFBQSxFQUNsQixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxhQUFhO0FBQUEsRUFDYixRQUFRO0FBQUEsRUFDUixlQUFlO0FBQUEsRUFDZixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxnQkFBZ0I7QUFBQSxFQUNoQixnQkFBZ0I7QUFBQSxFQUNoQixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixxQkFBcUI7QUFBQSxFQUNyQixVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxtQkFBbUI7QUFBQSxFQUNuQixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixrQkFBa0I7QUFBQSxFQUNsQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixjQUFjO0FBQUEsRUFDZCxnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxpQkFBaUI7QUFBQSxFQUNqQixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUI7QUFBQSxFQUNqQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixT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TTtBQUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsWUFBVztBQUFBLEVBQ1gsWUFBVztBQUFBLEVBQ1gsTUFBSztBQUFBLEVBQ0wscUJBQW9CO0FBQUEsRUFDcEIsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsV0FBVTtBQUFBLEVBQ1YsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsbUJBQWtCO0FBQUEsRUFDbEIsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVBQ1AsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsWUFBVztBQUFBLEVBQ1gsUUFBTztBQUFBLEVBQ1AsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsY0FBYTtBQUFBLEVBQ2IsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsYUFBWTtBQUFBLEVBQ1osWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsTUFBSztBQUFBLEVBQ0wsV0FBVTtBQUFBLEVBQ1YsY0FBYTtBQUFBLEVBQ2IsY0FBYTtBQUFBLEVBQ2IsVUFBUztBQUFBLEVB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O0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLGVBQWU7QUFBQSxNQUNkO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGVBQWU7QUFBQSxJQUNkLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxNQUNBO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLG9CQUFvQjtBQUFBLElBQ25CLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxxQkFBcUI7QUFBQSxJQUNwQixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0wsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxLQUFLO0FBQUEsSUFDSixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGFBQWE7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxhQUFhO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsMkJBQTJCO0FBQUEsSUFDMUIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLG1CQUFtQjtBQUFBLElBQ2xCLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFR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QVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFlBQVk7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxnQkFBZ0I7QUFBQSxJQUNmLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxlQUFlO0FBQUEsSUFDZCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0Esb0JBQW9CO0FBQUEsSUFDbkIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FB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QUFFLFFBQU0sV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLGdCQUFjLFdB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QUFBQztBQUF0MkIsSUFBdzJCLElBQUUsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFNBQU8sS0FBSyxJQUFJRCxJQUFFLEtBQUssSUFBSUQsSUFBRUUsRUFBQyxDQUFDO0FBQUM7QUFBMTVCLElBQTQ1QixJQUFFLFNBQVNGLElBQUU7QUFBQyxNQUFHLFlBQVUsT0FBT0EsSUFBRTtBQUFDLFFBQUlDLEtBQUVELEdBQUUsTUFBTSxDQUFDLEdBQUVFLEtBQUUsQ0FBQ0QsR0FBRSxDQUFDO0FBQUUsWUFBT0EsR0FBRSxDQUFDLEdBQUU7QUFBQSxNQUFDLEtBQUssRUFBRTtBQUFRLFFBQUFELEtBQUUsRUFBRSxNQUFJRSxLQUFFLEtBQUssRUFBRTtBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBTSxRQUFBRixLQUFFLEVBQUUsTUFBSUUsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBUyxRQUFBRixLQUFFLEVBQUUsTUFBR0UsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBQSxNQUFRO0FBQVEsUUFBQUYsS0FBRUU7QUFBQSxJQUFDO0FBQUEsRUFBQztBQUFDLFVBQU9GLEtBQUUsT0FBS0EsS0FBRSxPQUFLQSxNQUFHLE1BQUksS0FBSyxNQUFNQSxLQUFFLEdBQUcsSUFBR0E7QUFBQztBQUF6cEMsSUFBMnBDLElBQUUsU0FBU0EsSUFBRUMsSUFBRTtBQUFDLE1BQUlDO0FBQUUsVUFBT0QsSUFBRTtBQUFBLElBQUMsS0FBSyxFQUFFO0FBQVEsTUFBQUMsS0FBRSxFQUFFLFNBQVNGLElBQUU7QUFBQyxlQUFPQSxLQUFFLEtBQUssS0FBRztBQUFBLE1BQUcsRUFBRUEsRUFBQyxDQUFDO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFNLE1BQUFFLEtBQUUsRUFBRUYsS0FBRSxHQUFHO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFTLE1BQUFFLEtBQUUsRUFBRSxLQUFHLElBQUVGLEVBQUM7QUFBRTtBQUFBLElBQU0sS0FBSyxFQUFFO0FBQUEsSUFBUSxLQUFLLEVBQUU7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O0FBQUM7QUFBdi9OLElBQXkvTixPQUFLLElBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFFLFNBQVNBLElBQUU7QUFBQyxNQUFJQyxNQUFHLENBQUMsRUFBRSxRQUFRRCxFQUFDLElBQUUsRUFBRUEsRUFBQyxJQUFFQSxJQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUVFLEtBQUUsRUFBQyxHQUFFLEVBQUVELEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEdBQUUsRUFBRUEsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLENBQUMsRUFBQyxHQUFFRSxLQUFFRixHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDO0FBQUUsU0FBTyxXQUFTRSxPQUFJRCxHQUFFLElBQUUsRUFBRUMsRUFBQyxJQUFFLE1BQUtEO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNGLElBQUU7QUFBQyxNQUFJQyxLQUFFRCxHQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUVFLEtBQUUsRUFBRUQsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsRUFBRUYsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRUgsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUVKLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsR0FBRTJCLEtBQUUsRUFBQyxHQUFFLEtBQUssSUFBSTFCLElBQUUsR0FBRyxHQUFFLEdBQUUsS0FBSyxJQUFJQyxJQUFFLEdBQUcsR0FBRSxHQUFFLEtBQUssSUFBSUMsSUFBRSxHQUFHLEVBQUM7QUFBRSxTQUFPLFdBQVNDLE9BQUl1QixHQUFFLElBQUUsR0FBR3ZCLEVBQUMsSUFBR3VCO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVM1QixJQUFFO0FBQUMsTUFBSUMsS0FBRUQsR0FBRSxNQUFNLEVBQUUsR0FBRyxHQUFF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QUFDLEdBQUcsRUFBRSxHQUFHLElBQUUsU0FBU0EsSUFBRTtBQUFDLFNBQU0sRUFBQyxHQUFFLEVBQUVBLEdBQUUsQ0FBQyxHQUFFLEdBQUUsRUFBRUEsR0FBRSxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsRUFBQztBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNBLElBQUU7QUFBQyxNQUFJQyxLQUFFLEdBQUcsSUFBSUQsRUFBQztBQUFFLFNBQU9DLEdBQUUsSUFBRSxFQUFFRCxJQUFFLEdBQUcsSUFBRSxFQUFFLE1BQUlBLEdBQUUsQ0FBQyxJQUFFLFFBQU9DO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNELElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEdBQUdGLElBQUVDLEVBQUM7QUFBRSxTQUFPLEVBQUVDLElBQUUsR0FBRyxLQUFHLE9BQU9BLEdBQUUsR0FBRUE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLElBQUlGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUU7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRUYsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQztBQUFFLFNBQU8sT0FBT0UsR0FBRSxHQUFFLEdBQUdBLElBQUVELEVBQUM7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLElBQUlGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxHQUFFQyxFQUFDLElBQUUsR0FBRUM7QUFBQyxHQUFFLEVBQUUsRUFBRSxJQUFJLElBQUUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLFNBQU8sR0FBRyxFQUFFRCxH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T0YsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUgsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLE1BQUksR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUEsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTRCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0gsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsSUFBSSxFQUFFSixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVJLEdBQUUsUUFBUTtBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxHQUFFSSxFQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVB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LElBQUUsU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsS0FBSyxJQUFJSixJQUFFQyxFQUFDO0FBQUUsU0FBTyxPQUFPRyxHQUFFLEdBQUVGLEtBQUUsRUFBRSxJQUFJRSxJQUFFRCxFQUFDLElBQUUsR0FBRyxJQUFJQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxLQUFFLEVBQUUsSUFBSUUsSUFBRUQsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEtBQUssSUFBSUosSUFBRUMsRUFBQyxHQUFFSSxLQUFFLEVBQUVELEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPLE9BQU9BLEdBQUUsR0FBRSxPQUFPQyxHQUFFLEdBQUVILEtBQUUsRUFBRSxJQUFJRyxJQUFFRixFQUFDLElBQUUsR0FBRyxJQUFJQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUMsR0FBRUksS0FBRSxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPRixLQUFFLEVBQUUsSUFBSUcsSUFBRUYsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRTtBQUF6MVksSUFBNDFZLEtBQUcsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRUYsR0FBRSxHQUFFQyxFQUFDLEdBQUVFLEtBQUUsRUFBRUgsR0FBRSxHQUFFQyxFQUFDLEdBQUVHLEtBQUUsRUFBRUosR0FBRSxHQUFFQyxFQUFDO0FBQUUsU0FBTyxFQUFFLEVBQUMsR0FBRUMsSUFBRSxHQUFFQyxJQUFFLEdBQUVDLEdBQUMsR0FBRSxFQUFFSixJQUFFLEdBQUcsSUFBRSxFQUFDLEdBQUUsRUFBRUEsR0FBRSxHQUFFQyxFQUFDLEVBQUMsSUFBRSxDQUFDLENBQUM7QUFBQztBQUFsOFksSUFBbzhZLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLFNBQU8sRUFBRSxFQUFDLEdBQUUsRUFBRUQsR0FBRSxHQUFFQyxFQUFDLEdBQUUsR0FBRSxFQUFFRCxHQUFFLEdBQUVDLEVBQUMsR0FBRSxHQUFFLEVBQUVELEdBQUUsR0FBRUMsRUFBQyxFQUFDLEdBQUUsRUFBRUQsSUFBRSxHQUFHLElBQUUsRUFBQyxHQUFFLEVBQUVBLEdBQUUsR0FBRUMsRUFBQyxFQUFDLElBQUUsQ0FBQyxDQUFDO0FBQUM7QUFBMWhaLElBQTRoWixLQUFHLFNBQVNGLElBQUVDLElBQUU7QUFBQyxTQUFNLEVBQUMsR0FBRSxFQUFFRCxHQUFFLEdBQUVDLEVBQUMsR0FBRSxHQUFFLEVBQUVELEdBQUUsR0FBRUMsRUFBQyxHQUFFLEdBQUUsRUFBRUQsR0FBRSxHQUFFQyxFQUFDLEdBQUUsR0FBRSxFQUFFRCxHQUFFLEdBQUVDLEVBQUMsRUFBQztBQUFDO0FBQWhtWixJQUFrbVosS0FBRyxTQUFTRCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0EsR0FBRSxHQUFHSCxJQUFFQyxFQUFDLEdBQUVDLEVBQUM7QUFBQztBQUExb1osSUFBNG9aLEtBQUcsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLEVBQUFGLEtBQUUsTUFBSUEsS0FBRTtBQUFHLE1BQUlHLEtBQUUsU0FBU0wsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFFBQUlDLEtBQUVELEtBQUUsR0FBRUUsTUFBR0gsR0FBRSxJQUFFRCxHQUFFLEtBQUdHLElBQUVFLE1BQUdKLEdBQUUsSUFBRUQsR0FBRSxLQUFHRyxJQUFFeUIsTUFBRzNCLEdBQUUsSUFBRUQsR0FBRSxLQUFHRyxJQUFFRyxLQUFFLEdBQUdOLEdBQUUsQ0FBQyxHQUFFTyxNQUFHLEdBQUdOLEdBQUUsQ0FBQyxJQUFFSyxNQUFHSDtBQUFFLFdBQU8sTUFBTUQsRUFBQyxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUssU0FBU0EsSUFBRU0sSUFBRTtBQUFDLGFBQU8sTUFBSUEsS0FBRVIsS0FBRVEsT0FBSUwsS0FBRUYsS0FBRSxFQUFDLEdBQUUsRUFBRUQsR0FBRSxJQUFFSSxLQUFFSSxFQUFDLEdBQUUsR0FBRSxFQUFFUixHQUFFLElBQUVLLEtBQUVHLEVBQUMsR0FBRSxHQUFFLEVBQUVSLEdBQUUsSUFBRTRCLEtBQUVwQixFQUFDLEdBQUUsR0FBRSxFQUFFRixLQUFFQyxLQUFFQyxFQUFDLEVBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEVBQUUsR0FBR1IsRUFBQyxHQUFFLEdBQUdDLEVBQUMsR0FBRUMsRUFBQztBQUFFLFNBQU9HLEdBQUUsSUFBSyxTQUFTTCxJQUFFO0FBQUMsV0FBT0ksR0FBRUosSUFBRUcsRUFBQztBQUFBLEVBQUMsQ0FBRTtBQUFDO0FBQXg4WixJQUEwOFosS0FBRyxXQUFVO0FBQUMsV0FBU0QsR0FBRUYsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEtBQUssV0FBUyxFQUFFQSxJQUFFRCxFQUFDLEdBQUUsS0FBSyxNQUFJLEdBQUdBLEVBQUMsR0FBRSxLQUFLLFVBQVUsR0FBRSxLQUFLLFdBQVc7QUFBQSxFQUFDO0FBQUMsU0FBT0UsR0FBRSxVQUFVLFlBQVUsV0FBVTtBQUFDLFNBQUssTUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFFLEVBQUMsR0FBRSxLQUFLLElBQUksRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFQSxHQUFFLFVBQVUsb0JBQWtCLFdBQVU7QUFBQyxTQUFLLE1BQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsS0FBSyxJQUFJLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUEsR0FBRSxVQUFVLFlBQVUsV0FBVTtBQUFDLFNBQUssTUFBSSxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFBQyxHQUFFQSxHQUFFLFVBQVUsYUFBVyxXQUFVO0FBQUMsU0FBSyxPQUFLLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLENBQUM7QUFBQSxFQUFDLEdBQUVBLEdBQUUsVUFBVSxtQkFBaUIsV0FBVTtBQUFDLFdBQU8sS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJLEdBQUVBLEdBQUUsVUFBVSxtQkFBaUIsV0FBVTtBQUFDLFdBQU8sS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJLEdBQUVBLEdBQUUsVUFBVSxrQkFBZ0IsV0FBVTtBQUFDLFdBQU8sS0FBSyxrQkFBa0IsR0FBRSxLQUFLLFVBQVUsR0FBRTtBQUFBLEVBQUksR0FBRUEsR0FBRSxVQUFVLGFBQVcsU0FBU0QsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxDQUFDLElBQUcsS0FBSyxXQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxRQUFRLEdBQUVBLEVBQUMsR0FBRTtBQUFBLEVBQUksR0FBRUMsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsRUFBQyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsQ0FBQyxHQUFFO0FBQUEsRUFBSSxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFLE9BQU8sZUFBZUUsR0FBRSxXQUFVLFdBQVUsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEtBQUs7QUFBQSxFQUFRLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEdBQUcsSUFBSSxLQUFLLEdBQUc7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sR0FBRyxLQUFLLEtBQUssR0FBRztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxhQUFZLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGNBQWEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxTQUFTLEdBQUUsRUFBQyxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFNLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFNBQVMsR0FBRSxFQUFDLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxlQUFjLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssVUFBVSxHQUFFLEVBQUMsR0FBRSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFFBQU8sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsTUFBSSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxTQUFRLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUU7QUFBQyxRQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUc7QUFBQSxFQUFDLEdBQUVDLEdBQUUsUUFBTSxTQUFTRixJQUFFO0FBQUMsV0FBTyxFQUFFLElBQUlFLEdBQUUsWUFBWUYsRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGVBQWEsU0FBU0YsSUFBRTtBQUFDLFFBQUlDLEtBQUUsR0FBR0QsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxTQUFPLFNBQVNGLElBQUU7QUFBQyxXQUFPLEVBQUUsSUFBSUUsR0FBRSxhQUFhRixFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLEtBQUtFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZ0JBQWMsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsS0FBSztBQUFBLEVBQUMsR0FBRUMsR0FBRSxVQUFRLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsS0FBSztBQUFFLFdBQU8sRUFBRSxLQUFLRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLG9CQUFrQixTQUFTRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUcsR0FBR0YsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsR0FBRztBQUFBLEVBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsSUFBR0QsR0FBRSxrQkFBa0JGLElBQUVDLElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNILElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUUsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxJQUFHLEdBQUdGLElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVBLEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUdELEdBQUUsbUJBQW1CRixJQUFFQyxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTSCxJQUFFO0FBQUMsYUFBTyxFQUFFLElBQUlBLEVBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVFLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUscUJBQW1CLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGVBQWEsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUksRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGVBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEVBQUVELElBQUVILElBQUVDLEVBQUM7QUFBRSxXQUFPLEdBQUdELElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRUksRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUYsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUVDLEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsZUFBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsRUFBRUQsSUFBRUgsSUFBRUMsRUFBQztBQUFFLFdBQU8sR0FBR0QsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSSxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLGFBQU8sRUFBRSxJQUFJQSxJQUFFSSxFQUFDO0FBQUEsSUFBQyxDQUFFO0FBQUEsRUFBQyxHQUFFRixHQUFFLGtCQUFnQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLElBQUlELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxZQUFVLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsSUFBSUQsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLG1CQUFpQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLEtBQUtELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxhQUFXLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsS0FBS0QsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLG1CQUFpQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLEtBQUtILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxhQUFXLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsS0FBS0gsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLG1CQUFpQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLEtBQUtILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxhQUFXLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcs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QjtBQUFBLElBQ2pCLFVBQVU7QUFBQSxJQUNWLGNBQWM7QUFBQSxJQUNkLFFBQVEsU0FBUztBQUFBLElBQ2pCLGFBQWE7QUFBQSxJQUNiLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQSxJQUNQLEtBQUs7QUFBQSxJQUNMLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLE1BQU07QUFBQSxJQUNOLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGdCQUFnQjtBQUFBLElBQ2hCLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQSxJQUNOLEtBQUs7QUFBQSxJQUNMLFVBQVU7QUFBQSxJQUNWLEtBQUs7QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULGNBQWM7QUFBQSxJQUNkLFlBQVk7QUFBQSxJQUNaLGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLElBQ2hCLGdCQUFnQjtBQUFBLElBQ2hCLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBLElBQ25CLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULGtCQUFrQjtBQUFBLElBQ2xCLFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGdCQUFnQjtBQUFBLElBQ2hCLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNk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WixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxrQkFBa0I7QUFBQSxJQUNsQixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixtQkFBbUI7QUFBQSxJQUNuQixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixpQkFBaUI7QUFBQSxJQUNqQixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYix1QkFBdUI7QUFBQSxJQUN2Qix3QkFBd0I7QUFBQSxJQUN4QixpQkFBaUI7QUFBQSxJQUNqQixrQkFBa0I7QUFBQSxJQUNsQixlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixrQkFBa0I7QUFBQSxJQUNsQixlQUFlO0FBQUEsSUFDZixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixnQkFBZ0I7QUFBQSxJQUNoQixlQUFlO0FBQUEsSUFDZixpQkFBaUI7QUFBQSxJQUNqQixRQUFRO0FBQUEsSUFDUixtQkFBbUI7QUFBQSxJQUNuQixvQkFBb0I7QUFBQSxJQUNwQixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxlQUFlO0FBQUEsSUFDZixjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixTQUFTO0FBQUE7QUFBQSxJQUVULGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxFQUNqQjtBQUFBLEVBQ0EsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsYUFBYTtBQUFBLElBQ2IsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sSUFBSTtBQUFBLElBQ0osVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsTUFBTTtBQUFBLElBQ04sVUFBVTtBQUFBLElBQ1YsZUFBZTtBQUFBLElBQ2YsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1Asb0JBQW9CO0FBQUEsSUFDcEIsMkJBQTJCO0FBQUEsSUFDM0IsY0FBYztBQUFBLElBQ2QsZ0JBQWdCO0FBQUEsSUFDaEIsU0FBUztBQUFBLElBQ1QsbUJBQW1CO0FBQUEsSUFDbkIsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osR0FBRztBQUFBLElBQ0gsVUFBVTtBQUFBLElBQ1YsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsaUJBQWlCO0FBQUEsSUFDakIsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsS0FBSztBQUFBLElBQ0wsU0FBUztBQUFBLElBQ1Qsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLElBQ1AsVUFBVTtBQUFBLElBQ1YsMkJBQTJCO0FBQUEsSUFDM0IsTUFBTTtBQUFBLElBQ04sYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZ0JBQWdCO0FBQUEsSUFDaEIsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osV0FBVztBQUFBLElBQ1gsNEJBQTRCO0FBQUEsSUFDNUIsMEJBQTBCO0FBQUEsSUFDMUIsVUFBVTtBQUFBLElBQ1YsbUJBQW1CO0FBQUEsSUFDbkIsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsSUFBSTtBQUFBLElBQ0osYUFBYTtBQUFBLElBQ2IsZ0JBQWdCO0FBQUEsSUFDaEIsbUJBQW1CO0FBQUEsSUFDbkIsSUFBSTtBQUFBLElBQ0osS0FBSztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsR0FBRztBQUFBLElBQ0gsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBO0FBQUEsSUFDWCxZQUFZO0FBQUE7QUFBQSxJQUNaLFVBQVU7QUFBQTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsbUJBQW1CO0FBQUEsSUFDbkIsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsYUFBYTtBQUFBLElBQ2IsTUFBTTtBQUFBLElBQ04sa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLElBQ1Asd0JBQXdCO0FBQUEsSUFDeEIsdUJBQXVCO0FBQUEsSUFDdkIsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLElBQ1AsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1Qsa0JBQWtCO0FBQUEsSUFDbEIsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sWUFBWTtBQUFBLElBQ1oscUJBQXFCO0FBQUEsSUFDckIsa0JBQWtCO0FBQUEsSUFDbEIsY0FBYztBQUFBLElBQ2QsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YscUJBQXFCO0FBQUEsSUFDckIsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsR0FBRztBQUFBLElBQ0gsUUFBUTtBQUFBLElBQ1IsZ0JBQWdCO0FBQUEsSUFDaEIsTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLElBQ0wsS0FBSztBQUFBLElBQ0wsaUJBQWlCO0FBQUEsSUFDakIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsb0JBQW9CO0FBQUEsSUFDcEIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsaUJBQWlCO0FBQUEsSUFDakIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sZ0JBQWdCO0FBQUEsSUFDaEIsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsa0JBQWtCO0FBQUEsSUFDbEIsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsT0FBTztBQUFBLElBQ1AsT0FBTztBQUFBLElBQ1AsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsdUJBQXVCO0FBQUEsSUFDdkIsd0JBQXdCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsaUJBQWlCO0FBQUEsSUFDakIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsSUFDaEIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2YsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QscUJBQXFCO0FBQUEsSUFDckIsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2Ysc0JBQXNCO0FBQUEsSUFDdEIsZ0JBQWdCO0FBQUEsSUFDaEIsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osZ0JBQWdCO0FBQUEsSUFDaEIsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2YsT0FBTztBQUFBLElBQ1AsbUJBQW1CO0FBQUEsSUFDbkIsTUFBTTtBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osV0FBVztBQUFBLElBQ1gsaUJBQWlCO0FBQUEsSUFDakIsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osbUJBQW1CO0FBQUEsSUFDbkIsb0JBQW9CO0FBQUEsSUFDcEIsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsZUFBZTtBQUFBLElBQ2YsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsY0FBYztBQUFBLElBQ2QsU0FB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QUN0QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLGdCQUFnQixJQUFJO0FBQzlCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsWUFBWSxJQUFJO0FBQzFCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsV0FBVyxJQUFJO0FBQ3pCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsS0FBSyxJQUFJ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LEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sVUFBVSxJQUFJLEVBQUUsSUFBSTtBQUNsQyxFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLEdBQUcsSUFBSSxFQUFFLElBQUk7QUFDM0IsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sV0FBVyxJQUFJLEVBQUUsSUFBSTtBQUNuQyxFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxLQUFLLElBQUksRUFBRSxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJ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T0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDeEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDeEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLGdCQUFnQixPQUFPLGNBQWM7QUFBQSxFQUNoRCxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsWUFBWSxPQUFPLFVBQVU7QUFBQSxFQUN4QyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsV0FBVyxPQUFPLFNBQVM7QUFBQSxFQUN0QyxDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxFQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxFQUNoQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxFQUNsQyxDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxFQUNwQyxDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxFQUM5QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFBQSxFQUN0QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxFQUN4QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxFQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFDOUIsQ0FBQztBQUNNLFNBQVMsU0FBUyxTQUFTO0FBQzlCLE1BQUlDO0FBQ0osVUFBUUEsTUFBSyxlQUFlLElBQUksT0FBTyxPQUFPLFFBQVFBLFFBQU8sU0FBU0EsTUFBSyxPQUFPO0FBQ3RGO0FBQ0EsSUFBTUMsS0FBSTtBQUNILElBQU0sbUJBQW1CO0FBQUEsRUFDNUIsQ0FBQyxHQUFHLElBQUksR0FBRyxvQkFBSSxJQUFJO0FBQUEsSUFDZkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEs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RUFDNUQsQ0FBQyxlQUFlLEVBQUUsUUFBUSxTQUFTLE1BQU0sU0FBUyxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQzNFLENBQUM7QUFFTSxJQUFNLCtCQUErQixJQUFJLElBQUk7QUFBQSxFQUNoRDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0osRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRXJDLElBQU0sd0JBQXdCLG9CQUFJLElBQUk7QUFBQSxFQUNsQyxPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEs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QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUErREEsS0FBSyxlQUFlLHdCQUF3QixRQUFRO0FBRWxELFVBQU0sVUFBVSxLQUFLLFFBQVEsZUFBZSx3QkFBd0IsTUFBTTtBQUUxRSxZQUFRLFFBQVE7QUFFaEIsVUFBTTtBQUFBLEVBQ1I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBNERBLEtBQUssZUFBZSx3QkFBd0IsUUFBUTtBQUVsRCxVQUFNLFVBQVUsS0FBSyxRQUFRLGVBQWUsd0JBQXdCLE1BQU07QUFFMUUsWUFBUSxRQUFRO0FBRWhCLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFB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LEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjs7O0FDM0dPLElBQU0seUJBQXlCO0FBQUEsRUFDcEMsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osU0FBUztBQUFBLEVBQ1QsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsU0FBUztBQUFBLEVBQ1QsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osU0FBUztBQUFBLEVBQ1QsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsU0FBUztBQUFBLEVBQ1QsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFB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QUFBLEVBRUEsTUFBTSxlQUFlO0FBQ3BCLFNBQUssV0FBVyxFQUFDLEdBQUcsZ0JBQWdCLGdCQUFnQixHQUFHLEdBQUcsZ0JBQWdCLE1BQU0sS0FBSyxTQUFTLENBQUMsRUFBQztBQUFBLEVBQ2pHO0FBQUEsRUFFQSxNQUFNLGVBQWU7QUFDcEIsVUFBTSxLQUFLLFNBQVMsS0FBSyxRQUFRO0FBQ2pDLFNBQUssSUFBSSxVQUFVLGNBQWM7QUFDakMsa0JBQWMsS0FBSyxVQUFTLEtBQUssR0FBRztBQUFBLEVBQ3JDO0FBQUEsRUFFQSxvQkFBb0I7QUFDbkIsU0FBSyxJQUFJLFVBQVUsa0JBQWtCLENBQUMsU0FBd0I7QUFDN0QsVUFBSSxLQUFLLGdCQUFnQixpQ0FBZ0IsS0FBSyxLQUFLLFFBQVEsTUFBTTtBQUNoRSxhQUFLLEtBQUssWUFBWSxTQUFTLElBQUk7QUFBQSxJQUNyQyxDQUFDO0FBQUEsRUFDRjtBQUNEOyIsCiAgIm5hbWVzIjogWyJyb290IiwgImZhY3RvcnkiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGVmaW5lIiwgImFtZCIsICJzZWxmIiwgIl9fd2VicGFja19yZXF1aXJlX18iLCAiZGVmaW5pdGlvbiIsICJrZXkiLCAibyIsICJPYmplY3QiLCAiZGVmaW5lUHJvcGVydHkiLCAiZW51bWVyYWJsZSIsICJnZXQiLCAib2JqIiwgInByb3AiLCAicHJvdG90eXBlIiwgImhhc093blByb3BlcnR5IiwgImNhbGwiLCAiU3ltYm9sIiwgInRvU3RyaW5nVGFnIiwgInZhbHVlIiwgImUiLCAidCIsICJFIiwgImV2ZW50TGlzdGVuZXIiLCAibWV0aG9kIiwgImVsZW1lbnRzIiwgImV2ZW50cyIsICJmbiIsICJvcHRpb25zIiwgIkhUTUxDb2xsZWN0aW9uIiwgIk5vZGVMaXN0IiwgIkFycmF5IiwgImZyb20iLCAiaXNBcnJheSIsICJlbCIsICJldiIsICJjYXB0dXJlIiwgInNsaWNlIiwgImFyZ3VtZW50cyIsICJwIiwgInIiLCAiYSIsICJsIiwgInMiLCAiaSIsICJjIiwgIm9uIiwgImJpbmQiLCAib2ZmIiwgImNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nIiwgImh0bWwiLCAiZGl2IiwgImRvY3VtZW50IiwgImNyZWF0ZUVsZW1lbnQiLCAiaW5uZXJIVE1MIiwgInRyaW0iLCAiZmlyc3RFbGVtZW50Q2hpbGQiLCAiY3JlYXRlRnJvbVRlbXBsYXRlIiwgInN0ciIsICJyZW1vdmVBdHRyaWJ1dGUiLCAibmFtZSIsICJnZXRBdHRyaWJ1dGUiLCAicmVzb2x2ZSIsICJlbGVtZW50IiwgImJhc2UiLCAiY29uIiwgInN1YnRyZWUiLCAiY2hpbGQiLCAiY2hpbGRyZW4iLCAiYXJyIiwgInN1YiIsICJwdXNoIiwgImtleXMiLCAibGVuZ3RoIiwgImV2ZW50UGF0aCIsICJldnQiLCAicGF0aCIsICJjb21wb3NlZFBhdGgiLCAidGFyZ2V0IiwgInBhcmVudEVsZW1lbnQiLCAid2luZG93IiwgInJlc29sdmVFbGVtZW50IiwgInZhbCIsICJFbGVtZW50IiwgInNwbGl0IiwgInJlZHVjZSIsICJwdiIsICJjdiIsICJjaSIsICJxdWVyeVNlbGVjdG9yIiwgInNoYWRvd1Jvb3QiLCAiYWRqdXN0YWJsZUlucHV0TnVtYmVycyIsICJtYXBwZXIiLCAidiIsICJoYW5kbGVTY3JvbGwiLCAiaW5jIiwgIk51bWJlciIsICJzaGlmdEtleSIsICJjdHJsS2V5IiwgImRlbHRhWSIsICJpbmRleCIsICJzZWxlY3Rpb25TdGFydCIsICJyZXBsYWNlIiwgImZvY3VzIiwgInNldFNlbGVjdGlvblJhbmdlIiwgInByZXZlbnREZWZhdWx0IiwgImRpc3BhdGNoRXZlbnQiLCAiRXZlbnQiLCAicGFzc2l2ZSIsICJtaW4iLCAibWF4IiwgImZsb29yIiwgInJvdW5kIiwgIk1hdGgiLCAiaHN2VG9SZ2IiLCAiaCIsICJmIiwgInEiLCAibW9kIiwgImhzdlRvSHNsIiwgInJnYlRvSHN2IiwgImciLCAiYiIsICJtaW5WYWwiLCAibWF4VmFsIiwgImRlbHRhIiwgImRyIiwgImRnIiwgImRiIiwgImNteWtUb0hzdiIsICJtIiwgInkiLCAiayIsICJoc2xUb0hzdiIsICJucyIsICJpc05hTiIsICJoZXhUb0hzdiIsICJoZXgiLCAibWF0Y2giLCAibWFwIiwgInBhcnNlSW50IiwgInBhcnNlVG9IU1ZBIiwgInRvTG93ZXJDYXNlIiwgImN0eCIsICJnZXRDb250ZXh0IiwgImZpbGxTdHlsZSIsICJyZWdleCIsICJjbXlrIiwgInJnYmEiLCAiaHNsYSIsICJoc3ZhIiwgImhleGEiLCAibnVtYXJpemUiLCAiYXJyYXkiLCAidGVzdCIsICJ1bmRlZmluZWQiLCAiaW52YWxpZCIsICJ0eXBlIiwgImV4ZWMiLCAidmFsdWVzIiwgImpvaW4iLCAicmF3IiwgInN1YnN0cmluZyIsICJIU1ZhQ29sb3IiLCAib3JpZ2luYWwiLCAibmV4dCIsICJwcmVjaXNpb24iLCAidG9GaXhlZCIsICJ0aGF0IiwgInRvSFNWQSIsICJ0b1N0cmluZyIsICJ0b0hTTEEiLCAidG9SR0JBIiwgInRvQ01ZSyIsICJyZ2IiLCAidG9IRVhBIiwgInBhZFN0YXJ0IiwgImFscGhhIiwgInRvVXBwZXJDYXNlIiwgImNsb25lIiwgImNsYW1wIiwgIk1vdmVhYmxlIiwgIm9wdCIsICJhc3NpZ24iLCAibG9jayIsICJvbmNoYW5nZSIsICJvbnN0b3AiLCAiX2tleWJvYXJkIiwgImFjdGl2ZUVsZW1lbnQiLCAid3JhcHBlciIsICJ1cCIsICJyaWdodCIsICJkb3duIiwgImxlZnQiLCAieG0iLCAieW0iLCAidXBkYXRlIiwgImNhY2hlIiwgIngiLCAic3RhcnRzV2l0aCIsICJfdGFwc3RhcnQiLCAiXyIsICJfdGFwc3RvcCIsICJfdGFwbW92ZSIsICJjYW5jZWxhYmxlIiwgImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsICJ0b3VjaCIsICJ0b3VjaGVzIiwgImNsaWVudFgiLCAiY2xpZW50WSIsICJ3aWR0aCIsICJ0b3AiLCAiaGVpZ2h0IiwgInN0eWxlIiwgIm9mZnNldFdpZHRoIiwgIm9mZnNldEhlaWdodCIsICJjeCIsICJjeSIsICJ0cmlnZ2VyIiwgImRlc3Ryb3kiLCAiU2VsZWN0YWJsZSIsICJjbGFzc05hbWUiLCAib25UYXAiLCAiZm9yRWFjaCIsICJjbGFzc0xpc3QiLCAic3RvcFByb3BhZ2F0aW9uIiwgInZhcmlhbnRGbGlwT3JkZXIiLCAic3RhcnQiLCAibWlkZGxlIiwgImVuZCIsICJwb3NpdGlvbkZsaXBPcmRlciIsICJib3R0b20iLCAicG9zaXRpb24iLCAibWFyZ2luIiwgInBhZGRpbmciLCAiRCIsICJIVE1MRWxlbWVudCIsICJyZWZlcmVuY2UiLCAicG9wcGVyIiwgIkVycm9yIiwgImNvbnRhaW5lciIsICJhcnJvdyIsICJCIiwgIk0iLCAiQyIsICJkb2N1bWVudEVsZW1lbnQiLCAiRiIsICJLIiwgIlMiLCAiViIsICJ2cyIsICJ2bSIsICJ2ZSIsICJocyIsICJobSIsICJoZSIsICIkIiwgIlIiLCAiaiIsICJ1IiwgIm4iLCAiZCIsICJ3IiwgInoiLCAiTCIsICJQIiwgIlQiLCAiTyIsICJIIiwgIlBpY2tyIiwgImNvbnN0cnVjdG9yIiwgIl9pbml0aWFsaXppbmdBY3RpdmUiLCAiX3JlY2FsYyIsICJfbmFub3BvcCIsICJfcm9vdCIsICJfY29sb3IiLCAiX2xhc3RDb2xvciIsICJfc3dhdGNoQ29sb3JzIiwgIl9zZXR1cEFuaW1hdGlvbkZyYW1lIiwgIl9ldmVudExpc3RlbmVyIiwgImluaXQiLCAic2F2ZSIsICJoaWRlIiwgInNob3ciLCAiY2xlYXIiLCAiY2hhbmdlIiwgImNoYW5nZXN0b3AiLCAiY2FuY2VsIiwgInN3YXRjaHNlbGVjdCIsICJ0aGlzIiwgIkRFRkFVTFRfT1BUSU9OUyIsICJzd2F0Y2hlcyIsICJjb21wb25lbnRzIiwgInRoZW1lIiwgInNsaWRlcnMiLCAibG9ja09wYWNpdHkiLCAiaW5jbHVkZXMiLCAiaW50ZXJhY3Rpb24iLCAicHJldmlldyIsICJvcGFjaXR5IiwgImh1ZSIsICJwYWxldHRlIiwgIl9wcmVCdWlsZCIsICJfYnVpbGRDb21wb25lbnRzIiwgIl9iaW5kRXZlbnRzIiwgIl9maW5hbEJ1aWxkIiwgImNvbG9yIiwgImFkZFN3YXRjaCIsICJidXR0b24iLCAiYXBwIiwgImNyZWF0ZVBvcHBlciIsICJzZXRBdHRyaWJ1dGUiLCAiX3QiLCAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwgImNiIiwgInNldENvbG9yIiwgImRlZmF1bHQiLCAiX3JlUG9zaXRpb25pbmdQaWNrZXIiLCAiZGVmYXVsdFJlcHJlc2VudGF0aW9uIiwgIl9yZXByZXNlbnRhdGlvbiIsICJzZXRDb2xvclJlcHJlc2VudGF0aW9uIiwgInNob3dBbHdheXMiLCAiX2VtaXQiLCAiaW5zdGFuY2UiLCAidXNlQXNCdXR0b24iLCAiaW5saW5lIiwgImFwcENsYXNzIiwgImhpZGRlbiIsICJpbnB1dCIsICJpbnQiLCAiZmluZCIsICJhZGQiLCAiY29udGFpbnMiLCAiYXBwZW5kQ2hpbGQiLCAicmVtb3ZlQ2hpbGQiLCAicGFyZW50IiwgIm5leHRTaWJsaW5nIiwgImluc2VydEJlZm9yZSIsICJyZW1vdmUiLCAicGFyZW50Tm9kZSIsICJyZXBsYWNlQ2hpbGQiLCAiZGlzYWJsZWQiLCAiZGlzYWJsZSIsICJjb21wYXJpc29uIiwgInRyYW5zaXRpb24iLCAibGFzdENvbG9yIiwgImluc3QiLCAiY3MiLCAicmVwZWF0IiwgInNvIiwgInNoIiwgImdldENvbG9yIiwgInBpY2tlciIsICJjdXJyZW50Q29sb3IiLCAiX3VwZGF0ZU91dHB1dCIsICJjc3NSR0JhU3RyaW5nIiwgImJhY2tncm91bmQiLCAic2V0UHJvcGVydHkiLCAic2xpZGVyIiwgImJhY2tncm91bmRDb2xvciIsICJzZWxlY3RhYmxlIiwgIl9jb21wb25lbnRzIiwgImV2ZW50QmluZGluZ3MiLCAiX2NsZWFyQ29sb3IiLCAic2V0SFNWQSIsICJhcHBseUNvbG9yIiwgInJlc3VsdCIsICJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCAiY2siLCAiY2xvc2VXaXRoS2V5IiwgImlzT3BlbiIsICJjb2RlIiwgInNvbWUiLCAiYWRqdXN0YWJsZU51bWJlcnMiLCAicmFuZ2VzIiwgInN0ZXAiLCAicmFuZ2UiLCAiZ2V0Q29sb3JSZXByZXNlbnRhdGlvbiIsICJudiIsICJ0b1ByZWNpc2lvbiIsICJhdXRvUmVwb3NpdGlvbiIsICJ0aW1lb3V0IiwgImNsb3NlT25TY3JvbGwiLCAic2V0VGltZW91dCIsICJycyIsICJjbGVhclRpbWVvdXQiLCAiX2V2ZW50QmluZGluZ3MiLCAiYm9keSIsICJlYiIsICJpbm5lckhlaWdodCIsICJpbm5lcldpZHRoIiwgImV2ZW50U291cmNlIiwgIm91dHB1dFByZWNpc2lvbiIsICJzaWxlbnQiLCAiX3BhcnNlTG9jYWxDb2xvciIsICJhbHBoYU1ha2VzQUNoYW5nZSIsICJpMThuIiwgIkkxOE5fREVGQVVMVFMiLCAiZXZlbnQiLCAiYXJncyIsICJjYWxsQmFja3MiLCAiaW5kZXhPZiIsICJzcGxpY2UiLCAicmVtb3ZlU3dhdGNoIiwgInN3YXRjaENvbG9yIiwgImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwgImRlc3Ryb3lBbmRSZW1vdmUiLCAicmVjYWxjIiwgInN0cmluZyIsICJ1dHlwZSIsICJjbGljayIsICJnZXRTZWxlY3RlZENvbG9yIiwgImdldFJvb3QiLCAiZW5hYmxlIiwgInN0YXRpYyIsICJWRVJTSU9OIiwgIm1vZHVsZSIsICJjb3JlIiwgIml0IiwgImUiLCAiZG9jdW1lbnQiLCAiaXMiLCAiUyIsICJmIiwgIk8iLCAiUCIsICJrZXkiLCAiYSIsICJiIiwgImMiLCAic291cmNlIiwgImV4cG9ydHMiLCAib3duIiwgInBvcyIsICJzIiwgImkiLCAibCIsICJjb2RlUG9pbnRBdCIsICJpbmRleCIsICJmcm9tQ29kZVBvaW50IiwgIngiLCAicm9vdCIsICJwYXJzZSIsICJ0ZXh0IiwgInRva2VuIiwgImNvbW1lbnQiLCAidSIsICJwIiwgImJ1ZmZlciIsICJzdHJpbmdpZnkiLCAic3RhY2siLCAidiIsICJ2YWx1ZSIsICJsaXN0IiwgIkpTT041IiwgImltcG9ydF9vYnNpZGlhbiIsICJzZXR0aW5ncyIsICJfYSIsICJpbmRleCIsICJ0IiwgImUiLCAibiIsICJyIiwgImkiLCAibyIsICJjIiwgInUiLCAicyIsICJkIiwgImIiLCAiQSIsICJGIiwgInYiLCAiSCIsICJCIiwgIkMiLCAiayIsICJTIiwgIlIiLCAiTSIsICJPIiwgIkwiLCAiRyIsICJqIiwgIlgiLCAiSSIsICJZIiwgImEiLCAibCIsICJmIiwgImgiLCAicCIsICJnIiwgIm0iLCAieSIsICJFIiwgInRleHQiLCAidmFsdWUiLCAiZSIsICJfYSIsICJQaWNrciIsICJpIiwgImJvZHkiLCAiX2EiLCAiaW1wb3J0X29ic2lkaWFuIiwgImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaSIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaW1wb3J0X29ic2lkaWFuIiwgIl9hIiwgImUiLCAiaW1wb3J0X29ic2lkaWFuIiwgImNoZWNrcyIsICJpbmRleCIsICJhbGwiLCAia2V5IiwgImQiLCAiaXMiLCAiaW5kZXgiLCAib2siLCAiaW5kZXgiLCAiaW5kZXgiLCAia2V5IiwgIl8iLCAiXyIsICJfIiwgImh0bWwiLCAic3ZnIiwgInBhcnNlIiwgImluZGV4IiwgInBhcnNlIiwgInN0cmluZ2lmeSIsICJvd24iLCAiaCIsICJpbmRleCIsICJrZXkiLCAicGFyc2UiLCAidmFsdWUiLCAiaCIsICJodG1sIiwgInMiLCAic3ZnIiwgInNlYXJjaCIsICJpbmRleCIsICJwb2ludCIsICJvd24iLCAic3ZnIiwgImh0bWwiLCAib2siLCAiaW5kZXgiLCAicyIsICJoIiwgInBvc2l0aW9uIiwgImxvY2F0aW9uIiwgImtleSIsICJvcGVuaW5nIiwgImNsb3NpbmciLCAicG9pbnQiLCAiQ09ERV9QT0lOVFMiLCAiRVJSIiwgImkiLCAiVG9rZW5UeXBlIiwgImkiLCAiYyIsICJjIiwgIl9hIiwgIkNoYXJDb2RlcyIsICJCaW5UcmllRmxhZ3MiLCAiRW50aXR5RGVjb2RlclN0YXRlIiwgIkRlY29kaW5nTW9kZSIsICJlcnJvcnMiLCAiYmFzZSIsICJfYSIsICJOUyIsICJBVFRSUyIsICJET0NVTUVOVF9NT0RFIiwgIlRBR19OQU1FUyIsICJUQUdfSUQiLCAiX2EiLCAiJCIsICJTdGF0ZSIsICJpc0FzY2lpQWxwaGFOdW1lcmljIiwgImlzRW50aXR5SW5BdHRyaWJ1dGVJbnZhbGlkRW5kIiwgIl9hIiwgImkiLCAiY3QiLCAibG9jYXRpb24iLCAiZG9jdW1lbnQiLCAiZWxlbWVudCIsICJpIiwgIkVudHJ5VHlwZSIsICJpIiwgImVsZW1lbnQiLCAiZW50cnkiLCAiZG9jdW1lbnQiLCAidGV4dCIsICJqIiwgImVsZW1lbnQiLCAibG9jYXRpb24iLCAiaSIsICJJbnNlcnRpb25Nb2RlIiwgImRvY3VtZW50IiwgImh0bWwiLCAiX2EiLCAiZWxlbWVudCIsICJsb2NhdGlvbiIsICJzaWJsaW5ncyIsICJpIiwgInAiLCAiaW5kZXgiLCAiYyIsICJwYXJzZSIsICJodG1sIiwgInBvc2l0aW9uIiwgInBvaW50IiwgImluZGV4IiwgInBhdGgiLCAiaW5kZXgiLCAibm9ybWFsaXplIiwgInBhdGgiLCAiaW5kZXgiLCAiaW5kZXgiLCAicHJvcCIsICJiYXNlbmFtZSIsICJkaXJuYW1lIiwgImFzc2VydFBhdGgiLCAiZXh0bmFtZSIsICJwYXRoIiwgInBhcnNlIiwgImNhbWVsY2FzZSIsICJvayIsICJ2YWx1ZSIsICJfIiwgIiQyIiwgIm93biIsICJrZXkiLCAib25lIiwgImluZGV4IiwgImFsbCIsICJvd24iLCAiaW5kZXgiLCAiZW1wdHkiLCAiaW5jcmVtZW50IiwgImluZGV4IiwgInNpYmxpbmdzIiwgIm93biIsICJpbmRleCIsICJkdCIsICJodG1sIiwgInAiLCAiXyIsICJpbmRleCIsICJib2R5IiwgImh0bWwiLCAidGJvZHkiLCAiaGVhZCIsICJpbmRleCIsICJlbGVtZW50IiwgImluZGV4IiwgInN2ZyIsICJrZXkiLCAieCIsICJ5IiwgInN0cmluZ2lmeSIsICJfIiwgImluZGV4IiwgImVsZW1lbnQiLCAiZW1wdHlPcHRpb25zIiwgImVtcHR5Q2hpbGRyZW4iLCAib25lIiwgImFsbCIsICJzdmciLCAiaHRtbCIsICJpbmRleCIsICJpbXBvcnRfb2JzaWRpYW4iLCAiX2EiLCAiX2EiLCAidGV4dCIsICJlbGVtZW50IiwgIl9hIiwgIl8iLCAia2V5IiwgInRleHQiLCAiZm9sZCIsICJpbmRleCIsICJyZXN1bHQiLCAiX2EiLCAiY29kZVNlY3Rpb24iLCAiX2EiLCAiXyIsICJlIiwgIl9hIiwgInBvc2l0aW9uIiwgInJlbW92ZUZvbGRMYW5ndWFnZXMiLCAibGFuZyIsICJlbXB0eSIsICJwbHVnaW4iLCAiZm9sZFN0YXJ0IiwgImZvbGRFbmQiLCAiaSIsICJjb252ZXJ0Q29tbWVudExpbmtzIiwgInRleHQiLCAic3R5bGUiLCAiZWxlbWVudCIsICJrZXkiLCAiX2EiXQp9Cg== diff --git a/src/Parsing/InlineCodeParsing.ts b/src/Parsing/InlineCodeParsing.ts index fc672ef..8cd1fbb 100644 --- a/src/Parsing/InlineCodeParsing.ts +++ b/src/Parsing/InlineCodeParsing.ts @@ -6,9 +6,11 @@ export interface InlineCodeParameters { } export function parseInlineCode(codeText: string): {parameters: InlineCodeParameters | null, text: string} { - const match = /^{((?:[^"'{}\\]|\\.|"([^"\\]|\\.)*"|'([^'\\]|\\.)*')*)} *?([^ ].*)$/.exec(codeText); + const match = /^{((?:[^"'{}\\]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')*)} *?([^ ].*)$/.exec(codeText); + console.log(match); if (typeof match?.[1] !== "undefined" && typeof match?.[2] !== "undefined") { + console.log(match); if (match[1] === "") return {parameters: null, text: match[2]}; else